; Shared display-duration epilogue for the Apple II viewers (HGR already on). ; WAITMODE 0 forever, 1 until a key, 2 about WAITSECS seconds. ; key and seconds exit to Applesoft BASIC ($E000 cold start), a real prompt with ; no DOS needed. The II and II+ have no timer, so seconds is a calibrated delay ; loop near 1 MHz. WAITSECS is clamped to 255 by the assembler. #if WAITMODE == 0 awhang: jmp awhang #endif #if WAITMODE == 1 awhang: lda $c000 ; keyboard; bit7 set = a key is down bpl awhang bit $c010 ; clear strobe lda $c051 ; switch to text so the BASIC prompt is visible lda $c054 ; page 1 jmp $e000 ; Applesoft cold start #endif #if WAITMODE == 2 lda #WAITSECS sta $fd ; seconds remaining aw_o: lda #$03 ; ~1 second = 3 * (256*256 inner) at ~1 MHz sta $fc aw_m: ldx #$00 aw_x: ldy #$00 aw_y: dey bne aw_y dex bne aw_x dec $fc bne aw_m dec $fd bne aw_o lda $c051 ; switch to text so the BASIC prompt is visible lda $c054 ; page 1 jmp $e000 ; Applesoft cold start #endif