qboot: testing re-entrancy

This commit is contained in:
Vince Weaver 2020-08-22 01:26:08 -04:00
parent 9ad4a8c17b
commit 8e1eeb0376
6 changed files with 81 additions and 5 deletions

View File

@ -24,7 +24,7 @@ static int goto_dos_track_sector(int fd, int track, int sector) {
result=lseek(fd,(translated_sector*256)+(track*16*256),SEEK_SET);
printf("going to: T=%d S=%d (%d)\n",track,sector,translated_sector);
// printf("going to: T=%d S=%d (%d)\n",track,sector,translated_sector);
return result;
}

View File

@ -4,15 +4,60 @@ FULLGR = $C052
PAGE0 = $C054
HIRES = $C057
WAIT = $FCA8 ;; delay 1/2(26+27A+5A^2) us
KEYPRESS = $C000
KEYRESET = $C010
the_1980s:
forever:
bit SET_GR
bit FULLGR
bit PAGE0
bit HIRES
jmp forever
forever:
lda KEYPRESS
bpl forever
bit KEYRESET
;============================
; setup load code
;============================
; enable drive motor
lda $c0e9 ; fixme, patch
; wait 1s
ldx #6
wait_1s:
lda #255
jsr WAIT
dex
bne wait_1s
entry=$1f00
phase=$bf2e
lda #>(entry-1)
pha
lda #<(entry-1)
pha
lda #<(8*2)
sta phase+1
ldx #33
lda #$1f
ldy #0
jmp $be07
.align $100

View File

@ -5,16 +5,18 @@ DOS33_RAW = ../dos33fs-utils/dos33_raw
all: boot.dsk compare.dsk
compare.dsk: THE80S
compare.dsk: THE80S LS
cp empty.dsk compare.dsk
$(DOS33) -y compare.dsk BSAVE -a 0x1f00 THE80S
$(DOS33) -y compare.dsk BSAVE -a 0x1f00 LS
boot.dsk: BOOT THE80S
boot.dsk: BOOT THE80S LS
cp empty.dsk boot.dsk
$(DOS33_RAW) boot.dsk 0 0 BOOT 0 1
$(DOS33_RAW) boot.dsk 0 2 BOOT 1 1
$(DOS33_RAW) boot.dsk 0 4 BOOT 2 1
$(DOS33_RAW) boot.dsk 3 0 THE80S 0 33
$(DOS33_RAW) boot.dsk 8 0 LS 0 33
BOOT: boot_sector.o
ld65 -o BOOT boot_sector.o -C ../linker_scripts/apple2_800.inc
@ -22,6 +24,15 @@ BOOT: boot_sector.o
boot_sector.o: boot_sector.s stage2.s
ca65 -o boot_sector.o boot_sector.s -l boot_sector.lst
###
LS: ls.o
ld65 -o LS ls.o -C ../linker_scripts/apple2_1f00.inc
ls.o: ls.s lsc.hgr
ca65 -o ls.o ls.s -l ls.lst
###
THE80S: 80s.o
ld65 -o THE80S 80s.o -C ../linker_scripts/apple2_1f00.inc

19
qboot/ls.s Normal file
View File

@ -0,0 +1,19 @@
SET_GR = $C050
FULLGR = $C052
PAGE0 = $C054
HIRES = $C057
the_1980s:
forever:
bit SET_GR
bit FULLGR
bit PAGE0
bit HIRES
jmp forever
.align $100
.incbin "lsc.hgr"

BIN
qboot/lsc.hgr Normal file

Binary file not shown.

View File

@ -265,3 +265,4 @@ addrtbl: .res 16
partial1 = *
partial2 = partial1+1
code_end=partial2+1