Login
Back to forumReply to this topicGo to last reply

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..



Back to topReply to this topic


Copyright © Plus/4 World Team, 2001-2024