.include "basicloader.asm" .include "chameleon_test_chars.asm" .code jmp main COREID = $04 ORGCFGENA = $10 ; Startup value of CFGENA ORGCFGTUR = $11 ; Startup value of CFGTUR ORGCFGREG = $12 ; Startup value of CFGREG REPEATCNT = $20 ; Repeat a test CMP_TEMP = $21 ; Temp storage to compare two values STRINGL = $f9 STRINGH = $fa COLOR = $fb COLORL = $fc COLORH = $fd CURSORL = $fe CURSORH = $ff REGENPOS = $0400 CHARPOS = $3800 RASTER = $D012 VIC_VMCB = $D018 VERIDX = $D0A8 VERDAT = $D0A9 CFGTUR = $D0F3 CFGREG = $D0FA CFGDIS = $D0FD CFGENA = $D0FE CFGRTI = $D0FF CIA1_TALO = $DC04 CIA1_TAHI = $DC05 CIA1_TBLO = $DC06 CIA1_TBHI = $DC07 CIA1_TODTEN = $DC08 CIA1_TODSEC = $DC09 CIA1_TODMIN = $DC0A CIA1_TODHR = $DC0B CIA1_CRA = $DC0E CIA1_CRB = $DC0F COLORRAM = $D800 BANK_RAM = 0 BANK_VIC = 1 BANK_SID = 2 BANK_CFG = 3 BANK_MMU = 4 BANK_UNK = 5 DEF_COLOR = 14 GRN_COLOR = 5 RED_COLOR = 2 .macro SPACES nr ldx #nr jsr print_spaces .endmacro .macro STRING addr ldx #addr jsr printstr .endmacro .macro BANK_RESULT bank_a, print_a ldx #bank_a lda #>print_a jsr printhex lda #REGENPOS sta CURSORH lda #COLORRAM sta COLORH rts backup_storage: .repeat 256 .byte 0 .endrep backup_d700: ; Enable all Chameleon registers lda #$ff sta CFGREG ldx #$00 backup_d700_l: lda $D700,x sta backup_storage,x inx bne backup_d700_l rts restore_d700: ; Enable all Chameleon registers lda #$ff sta CFGREG ldx #$00 restore_d700_l: lda backup_storage,x sta $D700,x inx bne restore_d700_l rts printstr: stx STRINGL sty STRINGH ldy #$00 printstr1: lda (STRINGL),y beq printstr_e jsr print_char inc STRINGL bne printstr1 inc STRINGH bne printstr1 printstr_e: rts printhex: pha lsr lsr lsr lsr jsr printnibble pla printnibble: and #$0f stx print_tempx tax lda hextbl,x ldx print_tempx jmp print_char print_tempx: .byte 0 redgreen: pha beq redgreen2 lda #RED_COLOR redgreen1: sta COLOR pla rts redgreen2: lda #GRN_COLOR bne redgreen1 redgreen_hex: jsr redgreen jsr printhex lda #DEF_COLOR sta COLOR rts print_spaces: jsr space dex bne print_spaces rts space: lda #$20 print_char: sty print_tempy ldy #$00 sta (CURSORL),y lda COLOR sta (COLORL),y inc CURSORL inc COLORL bne print_char_e inc CURSORH inc COLORH print_char_e: ldy print_tempy rts print_tempy: .byte 0