home *** CD-ROM | disk | FTP | other *** search
/ World of A1200 / World_Of_A1200.iso / programs / develop / as65 / connect_c64 / screen.asm < prev   
Assembly Source File  |  1995-02-27  |  2KB  |  67 lines

  1.                         ;*****************************
  2.                         ;Datenübertragung AMIGA -> C64
  3.                         ;
  4.                         ;Screen Routinen
  5.                         ;*****************************
  6.  
  7.  
  8.  
  9.                         ;===============================
  10.                         ;Texte ausgeben
  11.                         ;X-Reg. low Byte der Textadresse
  12.                         ;Y-Reg. high Byte
  13.                         ;ACCU Offset zum Screen-Start
  14.                         ;===============================
  15.  
  16. print_txt
  17.                         .block                ;Blockstart
  18.                         stx HELP                ;Textadresse setzen
  19.                         sty HELP+1
  20.                         clc
  21.                         adc SCREEN            ;Offset zum Screenstart addieren
  22.                         bcc set_low            ;kein Überlauf
  23.                         inc SCREEN+1        ;high Byte+1
  24. set_low                sta SCREEN
  25.  
  26.                         ldy #$00
  27. loop                    lda (HELP),y        ;Buchstabe holen
  28.                         beq end                ;alle ausgegeben
  29.                         cmp #"A"                ;Buchstabe >A
  30.                         bmi output            ;ja, nicht umwandeln
  31.                         sec
  32.                         sbc #64                ;in 64`er Bildschirmcode wandeln
  33. output                sta (SCREEN),y        ;und ausgeben
  34.                         iny
  35.                         bne loop                ;nächstes Zeichen
  36.  
  37. end                    ldx #<SCREEN_ADR    ;low Byte des Screens
  38.                         ldy #>SCREEN_ADR    ;high Byte des Screens
  39.                         stx SCREEN            ;setzen
  40.                         sty SCREEN+1        ;setzen
  41.                         clc
  42.                         rts
  43.                         .bend
  44.  
  45.  
  46.                         ;==============
  47.                         ;Screen löschen
  48.                         ;==============
  49. cls
  50.                         lda #$04                ;High Byte Anzahl Ausgaben
  51.                         sta HELP                ;setzen
  52.                         lda #SPACE
  53.                         ldy #$00
  54. clr                    sta (SCREEN),y
  55.                         iny
  56.                         bne clr
  57.                         inc SCREEN+1        ;nächste Page setzten
  58.                         dec HELP                ;alle ausgegeben?
  59.                         bne clr                ;nein, weitere 256 Zeichen ausgeben
  60.  
  61.                         ldx #<SCREEN_ADR    ;low Byte des Screens
  62.                         ldy #>SCREEN_ADR    ;high Byte des Screens
  63.                         stx SCREEN            ;setzen
  64.                         sty SCREEN+1        ;setzen
  65.                         rts
  66.  
  67.