Assembler-Beispiel BA - TSX.asm
Aus C64-Wiki
Zur Navigation springenZur Suche springen
; Dieses Programm gibt einen Text als Inline-Parameter zum JSR-Aufruf aus. ; Programmstart mit SYS 49152 *=$c000 ; Startadresse des Programms BSOUT = $ffd2 para = $fd start jsr print ; folgenden Inline-Text ausgeben .text "HALLO ALLERSEITS" .byte $0d,$00 ; Zeilenvorschub, Textendemarkierung jsr print ; folgenden Inline-Text ausgeben .text "BEI C64-WIKI.DE!" .byte $00 ; Textendemarkierung rts print tsx lda $0101,x ; Low-Byte der Rücksprungadresse, Stapel in Page 1 sta para lda $0102,x ; High-Byte der Rücksprungadresse sta para+1 ldy #1 ; Korrektur, weil Rücksprungadresse um 1 zu niedrig ausgabe lda (para),y ; Zeichen holen, die dem JSR folgen beq fertig ; 0 ist Endezeichen, dann Abbruch jsr BSOUT ; Zeichen ausgeben, Register bleiben unverändert! iny ; nächstes Zeichen bne ausgabe ; solange Y ungleich 0, also max. 254 Zeichen erlaubt fertig tya ; Anzahl der ausgegeben clc ; Übertrag für Addition löschen adc para ; Rücksprungadresse korrigieren sta $0101,x ; Low-Byte am Stack korrigiert lda para+1 adc #0 ; Übertrag beim High-Byte berücksichtigen sta $0102,x ; High-Byte am Stack korrigieren rts ; zurück zur Stelle nach dem Inline-Parameter