.INCLUDE "m88def.inc" .equ PAGESIZEB = PAGESIZE*2 ;PAGESIZEB is page size in BYTES, not words .dseg buffer: .byte 64 page_nr: .byte 1 .cseg .org SMALLBOOTSTART rjmp reset RESET: ldi r20,high(RAMEND) out SPH,r20 ldi r20,Low(RAMEND) out SPL,r20 ldi ZL,Low(buffer) ; RAM präparieren ldi ZH,High(buffer) ldi r20,PAGESIZEB clr r17 sts page_nr,r17 ; Page 0 aaa: st Z+,r17 inc r17 dec r20 brne aaa mainloop: lds r17,page_nr ; Pagenummer holen mov ZL,r17 mov ZH,r17 inc r17 ; nächste Pagenummer sts page_nr,r17 ; Speichern swap ZL ; Pagenummer swap ZH ; umrechnen lsl Zl rol ZH lsl Zl rol ZH andi ZL, 0b11100000 andi ZH, 0b00011111 rcall loop rjmp mainloop loop: ldi YL,low(buffer) ldi YH,High(buffer) Write_page: ldi r20, (1<