From 0c442f1d463ee32d2f1aa511522c4023df237d5c Mon Sep 17 00:00:00 2001 From: mgcaret Date: Sun, 26 Nov 2017 20:58:34 -0800 Subject: [PATCH] add build metadata --- rom5x/B1_D6CE_rom5x_misc.s | 127 +++++++++++++++++++------------------ 1 file changed, 65 insertions(+), 62 deletions(-) diff --git a/rom5x/B1_D6CE_rom5x_misc.s b/rom5x/B1_D6CE_rom5x_misc.s index 6d462f2..99b7961 100644 --- a/rom5x/B1_D6CE_rom5x_misc.s +++ b/rom5x/B1_D6CE_rom5x_misc.s @@ -1,55 +1,56 @@ .code .psc02 .include "iic+.defs" - .org misc5x ; max 306 bytes - bra domenu ; Display menu - bra dobann ; Display banner (title + By MG) - bra gtkey ; get a key - bra confirm ; ask SURE? - bra ntitle ; display "Apple IIc +" + .org misc5x ; max 306 bytes + bra domenu ; Display menu + bra dobann ; Display banner (title + By MG) + bra gtkey ; get a key + bra confirm ; ask SURE? + bra ntitle ; display "Apple IIc +" dobann: jsr ntitle - ldx #(msg2-msg1) ; msg display entry point - jmp disp + ldx #(msg2-msg1) ; msg display entry point + jmp disp domenu: jsr ntitle ; "Apple ||c +" - ldx #$00 ; menu start - jsr disp ; show it - rts + ldx #$00 ; menu start + jsr disp ; show it + rts gtkey: lda #$60 - sta ($0),y ; cursor - sta kbdstrb ; clr keyboard + sta ($0),y ; cursor + sta kbdstrb ; clr keyboard kbdin: lda kbd ; get key - bpl kbdin - sta kbdstrb ; clear keyboard - sta ($0),y ; put it on screen - rts + bpl kbdin + sta kbdstrb ; clear keyboard + sta ($0),y ; put it on screen + rts ; display message, input x = message start relative to msg1 -disp: ldy #$0 ; needs to be zero +disp: ldy #$0 ; needs to be zero disp0: lda msg1,x ; get message byte - bne disp1 ; proceed if nonzero - rts ; exit if 0 + bne disp1 ; proceed if nonzero + rts ; exit if 0 disp1: inx ; next byte either way - cmp #$20 ; ' ' - bcc disp2 ; start of ptr if < 20 - eor #$80 ; invert high bit - sta ($0),y ; write to mem - inc $0 ; inc address low byte - bra disp0 ; back to the beginning + cmp #$20 ; ' ' + bcc disp2 ; start of ptr if < 20 + eor #$80 ; invert high bit + sta ($0),y ; write to mem + inc $0 ; inc address low byte + bra disp0 ; back to the beginning disp2: sta $1 ; write address high - lda msg1,x ; get it - sta $0 ; write address low - inx ; set next msg byte - bra disp0 ; back to the beginning -confirm: pha - ldx #(msg3-msg1) ; ask confirm - jsr disp - jsr gtkey - plx - ora #$20 ; to lower - cmp #$f9 ; "y" - php - txa - plp - rts + lda msg1,x ; get it + sta $0 ; write address low + inx ; set next msg byte + bra disp0 ; back to the beginning +confirm: + pha + ldx #(msg3-msg1) ; ask confirm + jsr disp + jsr gtkey + plx + ora #$20 ; to lower + cmp #$f9 ; "y" + php + txa + plp + rts ; display "Apple IIc +" in a convoluted manner ; we push the address of swrts/swrts2 onto the stack ; and then the address of the title routine @@ -57,30 +58,32 @@ confirm: pha ; display "Apple IIc +", which then RTS to swrts, which ; switches banks back to here and RTS to our caller. ntitle: lda #>(swrts2-1) ; put return addr of swrts/swrts2 on stack - pha - lda #<(swrts2-1) - pha - lda #>(banner-1) ; put addr of the Title routine on the stack - pha - lda #<(banner-1) - pha - jmp swrts2 ; jump to swrts2 + pha + lda #<(swrts2-1) + pha + lda #>(banner-1) ; put addr of the Title routine on the stack + pha + lda #<(banner-1) + pha + jmp swrts2 ; jump to swrts2 ; msg format ; A byte < $20 indicates high byte of address. ; Next byte must be low byte of address. Anything ; else are characters to display and will have their ; upper bit inverted before being written to the screen. msg1 = * - .byte $05,$06,"0 Monitor" - .byte $05,$86,"1 Reboot" - .byte $06,$06,"2 Zero RAM Card" - .byte $06,$86,"3 Sys Diags" - .byte $07,$06,"4 RAM Card Diags" - .byte $07,$86,"5 Boot 3.5/SmartPort" - .byte $04,$2e,"6 Boot 5.25" - .byte $04,$ae,"7 Accelerator" - .byte $07,$5f,"By M.G." -msg2: .byte $07,$db,"ROM 5X 04/08/17" - .byte $05,$ae,$00 ; cursor pos in menu -msg3: .byte $05,$b0,"SURE? ",$00 - + .byte $05,$06,"0 Monitor" + .byte $05,$86,"1 Reboot" + .byte $06,$06,"2 Zero RAM Card" + .byte $06,$86,"3 Sys Diags" + .byte $07,$06,"4 RAM Card Diags" + .byte $07,$86,"5 Boot 3.5/SmartPort" + .byte $04,$2e,"6 Boot 5.25" + .byte $04,$ae,"7 Accelerator" + .byte $07,$5f,"By M.G." +msg2: .byte $07,$db,"ROM 5X 04/08/17" + .byte $05,$ae,$00 ; cursor pos in menu +msg3: .byte $05,$b0,"SURE? ",$00 +; metadata to identify build conditions + .dword .time + .word .version