Programowanie: Konwersje znaków ATASCII i ANTIC
From Atariki
(Różnice między wersjami)
Wersja z dnia 09:48, 22 wrz 2017
[Edytuj]
ATASCII → ANTIC
Program przekształca wpisany do akumulatora znak w kodzie ATASCII na kod ekranowy ANTIC-a. Wynik w akumulatorze.
atascii2antic: asl php cmp #2*$60 bcs @ sbc #2*$20-1 bcs @ adc #2*$60 @ plp ror rts
Można oczywiście użyć tablicy:
atascii2antic: tax lda antic,x rts antic: :32 .byte $40+# :64 .byte $00+# :32 .byte $60+# :32 .byte $c0+# :64 .byte $80+# :32 .byte $e0+#
[Edytuj]
ANTIC → ATASCII
Zasadniczo konwersję przeprowadza się analogicznie:
antic2atascii: asl php cmp #2*$60 bcs @ sbc #2*$40-1 bcs @ adc #2*$60 @ plp ror rts
i w wersji tablicowej:
antic2atascii: tax lda atascii,x rts atascii: :64 .byte $20+# :32 .byte $00+# :32 .byte $60+# :64 .byte $a0+# :32 .byte $80+# :32 .byte $e0+#
[Edytuj]
Warianty
Jeśli w programie mamy już procedurę konwersji ATASCII → ANTIC, można użyć innej metody:
antic2atascii: jsr atascii2antic jmp atascii2antic
lub też (dysponując wersją stablicowaną):
antic2atascii: tax ldy antic,x lda antic,y rts
Analogiczną konwersję ATASCII → ANTIC można oczywiście przeprowadzić mając procedurę konwersji ANTIC → ATASCII
atascii2antic: jsr antic2atascii jmp antic2atascii
lub dysponując tablicą:
atascii2antic: tax ldy atascii,x lda atascii,y rts