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