Ich habe vorkuzem angefangen mit Assembler zu programmieren und habe folgendes Programm programmiert um den Bildschirm zu Leeren:
Code
- *=$0801
- BYTE $0E, $08, $0A, $00, $9E, $20, $28, $34, $30, $39, $36, $29, $00, $00, $00
- *=$1000
- main
- ldy #96
- jsr sub_one
- jsr sub_two
- jsr sub_three
- jsr sub_four
- ldx #0
- stx $D6
- sub_one
- ldx #0
- tya
- loopone
- sta 1024,x
- inx
- cpx #255
- bne loopone
- rts
- sub_two
- ldx #0
- tya
- looptwo
- sta 1279,x
- inx
- cpx #255
- bne looptwo
- rts
- sub_three
- ldx #0
- tya
- loopthree
- sta 1534,x
- inx
- cpx #255
- bne loopthree
- rts
- sub_four
- ldx #0
- tya
- loopfour
- sta 1789,x
- inx
- cpx #255
- bne loopfour
- rts
Ich weiß dass es einfachere methoden gibt den Bildschirm zu Leeren aber ich wollte ein Programm schreiben
dass im Speicheradressenbereich: 1024 bis 2023 die Zahl 96 reinschreibt.
Ich habe das Problem dass mein Programm reisig ist weil es 999 Speicheradressen sind aber die Register nur höchsten 255 halten können.
Wie kann ich das Programm verkleinern?
Ich habe mich auch gefragt wie ich die Zahl 96 in die Speicheradressen reinkriege ohne es vorher in ein Register zu stecken.