Posted By
spieler on 2021-04-02 10:18:45
| madpascal and plus4 rs232
I tried to send serial data at 9600baud with madpascal. it also works from tera term to plus4. I just can't make the ASCII characters the way I want them to. some don't fit.
where can you put a picture in here?
greeting
--------------------------------- // KERNAL_SETLFS = $FFBA; // KERNAL_SETNAM = $FFBD; // KERNAL_OPEN = $FFC0; // KERNAL_CLOSE = $FFC3; // KERNAL_CHKIN = $FFC6; // KERNAL_CHKOUT = $FFC9; // KERNAL_CLRCHN = $FFCC; // KERNAL_CHRIN = $FFCF; // KERNAL_CHROUT = $FFD2; // KERNAL_LOAD = $FFD5; // KERNAL_READST = $FE07;
program seriel;
const EMPTY = $20; SCREEN_ADDR = $0c00;
var i,y : byte;
procedure seriell_open(); assembler; asm { lda #1 ldx #2 ldy #2 jsr $ffba lda #2 ldy #$fc ldx #$fd jsr $ffbd jsr $ffc0 }; end; procedure seriell_send(); assembler; asm { ldx #1 jsr $ffc9 lda $fe jsr $ffd2 }; end;
procedure seriell_empfang(); assembler; asm { ldx #1 jsr $ffc6 jsr $ffe4 sta $ff }; end;
procedure seriell_close(); assembler; asm { lda #$01 jsr $ffc3 }; end;
begin FillChar(pointer(SCREEN_ADDR), 24 * 40, EMPTY); seriell_open; pause(10); i:=0; while True do begin pause; seriell_send(); seriell_empfang(); y:=peek($ff); poke($c00+i,peek($ff)-96); i:=i+1; if i=80 then begin i:=0; FillChar(pointer(SCREEN_ADDR), 24 * 40, EMPTY); end; end; seriell_close; end. ----------------------------------------
|
|
Posted By
gerliczer on 2021-04-02 10:34:35
| Re: madpascal and plus4 rs232
Without putting in too much effort understanding what your program does, here are two questions. What should be at memory address $FE as it is seemingly uninitialized? What does the routine at $FFE4 do since you didn't list it as a known KERNAL vector?
|
|
Posted By
spieler on 2021-04-02 10:58:41
| Re: madpascal and plus4 rs232
ff4e > getin fetch characters from rs232
if something is to be received, acia always has to contact to the remote station exist then they come data on the plus4
|
|
Posted By
spieler on 2021-04-02 11:00:41
| Re: madpascal and plus4 rs232
how can you put a picture in here in the forum?
i'm from germany, my text here is probably poorly translated.
|
|
Posted By
spieler on 2021-04-03 07:11:39
| Re: madpascal and plus4 rs232
Hi good afternoon.
with serial sending / receiving, it is easier to direct about the ACIA. There are no open and close.
See demo.
greeting
---------------------------------- // KERNAL_SETLFS = $FFBA; // KERNAL_SETNAM = $FFBD; // KERNAL_OPEN = $FFC0; // KERNAL_CLOSE = $FFC3; // KERNAL_CHKIN = $FFC6; // KERNAL_CHKOUT = $FFC9; // KERNAL_CLRCHN = $FFCC; // KERNAL_CHRIN = $FFCF; // KERNAL_CHROUT = $FFD2; // KERNAL_LOAD = $FFD5; // KERNAL_READST = $FE07;
// ACIA DATA = $fd00; // ACIA STATUS = $fd01; // ACIA COMMAND = $fd02; // ACIA CONTROL = $fd03;
program seriel;
const EMPTY = $20; SCREEN_ADDR = $0c00;
var i,y : byte; procedure seriell_send(); assembler; asm { cli lda #$09 sta $fd02
lda #$1e sta $fd03
lda #66 sta $fd00 }; end;
procedure seriell_empfang(); assembler; asm { cli lda #$09 sta $fd02
lda #$1e sta $fd03
lda $fd00 sta $fc }; end;
begin while True do begin pause(10); seriell_empfang(); poke($c00+i,peek($fc)-96); i:=i+1; if i=80 then begin i:=0; FillChar(pointer(SCREEN_ADDR), 24 * 40, EMPTY); end; end; end. ----------------------------------
|
|
Posted By
seff on 2021-04-03 07:16:18
| Re: madpascal and plus4 rs232
@spieler
To upload a picture, you need to first go to: features and then select: Upload an image to be posted on the forum, then use the HTML link provided and embed it in your post.
|
|
Posted By
spieler on 2021-04-03 07:44:03
| Re: madpascal and plus4 rs232
serial send_receiving : ------------------------------
// ACIA DATA = $fd00; // ACIA STATUS = $fd01; // ACIA COMMAND = $fd02; // ACIA CONTROL = $fd03;
program seriel;
var i,y : byte; procedure seriell_send_empfang(); assembler; asm { cli lda #$09 sta $fd02
lda #$1e sta $fd03
lda $fd sta $fd00 check: lda $fd01 and #$10 beq check lda $fd00 sta $fc }; end;
begin i:=65; while True do begin pause(10); poke($fd,i); // adresse $fd = send_data seriell_send_empfang(); poke($c00,peek($fc)-96); // adresse $fc = empfang_data i:=i+1; if i=91 then begin i:=65; end; end; end. ---------------------------------
|
|
Posted By
Csabo on 2021-04-03 09:02:33
| Re: madpascal and plus4 rs232
Spiler, I assume this is the picture you tried to upload:
(Sorry I didn't see your question here, I answered the same question in the "Let's Play" thread.) As a guest, the simplest thing to do is post your picture or imgur.com or some similar service, the post the link here.
|
|
Posted By
spieler on 2021-04-03 10:39:06
| Re: madpascal and plus4 rs232
send from tera-term to plus4 eee..qqq and ABCDE....send from plus4 to teraterm
// ACIA DATA = $fd00; // ACIA STATUS = $fd01; // ACIA COMMAND = $fd02; // ACIA CONTROL = $fd03;
program seriel;
const EMPTY = $20; SCREEN_ADDR = $0c00;
var i,y : byte; procedure seriell_send_empfang(); assembler; asm { cli lda #$09 sta $fd02
lda #$1e sta $fd03
lda $fd sta $fd00 check: lda $fd01 and #$10 beq check lda $fd00 sta $fc }; end;
begin FillChar(pointer(SCREEN_ADDR), 24 * 40, EMPTY); i:=65; y:=0; while True do begin pause(20); i:=i+1; if i=91 then begin i:=65; end; poke($fd,i); seriell_send_empfang(); y:=y+1; if y=40 then begin y:=0; FillChar(pointer(SCREEN_ADDR), 24 * 40, EMPTY); end; poke($c00+y,peek($fc)-96); end; end.
|
|
Posted By
George on 2021-07-22 15:31:41
| Re: madpascal and plus4 rs232
Hi Spieler can you describe the settings in Vice and Tera Term? I want to try this out..
|
|