; Disassembly of the file "P:\public_html\Electrickery\comp\qx10\QX10BOOT.BIN"
;
; CPU Type: Z80
;
; Created with dZ80 2.0
;
; on Sunday, 05 of November 2006 at 03:01 PM
;
SPRTIM equ 00h
SPKFRQ equ 04h
PIT1CM equ 03h
PIT2CM equ 07h
KBBAUD equ 05h
RSBAUD equ 06h
PICM1 equ 08h
PICM2 equ 09h
PICS1 equ 0ch
PICS2 equ 0dh
PPICMD equ 17h
DIP equ 18h
FDDMOT equ 30h
FDDSTD equ 34h
FDDDAT equ 35h
ld sp,0000h
ld a,10h
out (DIP),a ; DIP./SW/Mem. bank reg.
im 0
ld a,32h
out (03h),a ; 8253 No1 command
ld a,00h
out (SPRTIM),a ; Speaker timer
ld a,01h
out (SPRTIM),a ; Speaker timer
ld a,36h
out (07h),a ; 8253 No2 command
ld a,00h
out (SPRFRQ),a ; Speaker freq.
ld a,08h
out (SPRFRQ),a ; Speaker freq.
ld a,76h
out (07h),a ; 8253 No2 command
ld a,80h
out (KBBAUD),a ; Keyboard clock
ld a,06h
out (KBBAUD),a ; Keyboard clock
ld a,0b6h
out (07h),a ; 8253 No2 command
ld a,0d4h
out (RSBAUD),a ; RS232C clock
ld a,00h
out (RSBAUD),a ; RS232C clock
ld a,95h
out (PIC1M),a ; 8259 Master
ld a,07h
out (09h),a ; 8259 Master
ld a,80h
out (09h),a ; 8259 Master
ld a,02h
out (09h),a ; 8259 Master
ld a,2fh
out (09h),a ; 8259 Master
ld a,0b5h
out (0ch),a ; 8259 Slave
ld a,07h
out (0dh),a ; 8259 Slave
ld a,07h
out (0dh),a ; 8259 Slave
ld a,02h
out (0dh),a ; 8259 Slave
ld a,0fah
out (0dh),a ; 8259 Slave
ld hl,07c0h
ld b,0bh
ld c,12h
otir
ld de,0a2eh
ld c,3dh ; Clock address
out (c),d
dec c ; Clock data
out (c),e
ld d,0bh
ld e,0ah
ld c,3dh ; Clock address
out (c),d
dec c ; Clock data
out (c),e
ld de,0d80h
ld c,3dh ; Clock address
out (c),d
dec c ; Clock data
out (c),e
ld a,0a2h
out (17h),a ; 8255 Command
ld a,0bh
out (17h),a ; 8255 Command
ld a,01h
out (17h),a ; 8255 Command
ld a,0ah
out (17h),a ; 8255 Command
xor a
out (4dh),a ; 8237 DMA #1
ld a,49h
out (4bh),a ; 8237 DMA #1
ld hl,0772h
ld a,l
out (42h),a ; 8237 DMA #1
ld a,h
out (42h),a ; 8237 DMA #1
ld a,01h
out (43h),a ; 8237 DMA #1
xor a
out (43h),a ; 8237 DMA #1
ld a,60h
out (48h),a ; 8237 DMA #1
ld a,0dh
out (4fh),a ; 8237 DMA #1
ld a,00h
out (39h),a ; GDC
ld a,6fh
out (39h),a ; GDC
in a,(2ch)
and 01h
jr nz,l011b ; (+55h)
ld a,0eh
out (39h),a ; GDC
ld c,38h
ld b,08h
ld hl,07cbh
otir
l00d3: in a,(38h) ; GDC 7220
and 06h
xor 04h
jr nz,l00d3 ; (-08h)
ld a,4bh
out (39h),a ; GDC
ld a,0fh
out (38h),a ; GDC 7220
ld a,6dh
out (38h),a ; GDC 7220
ld a,70h
out (38h),a ; GDC 7220
ld a,46h
out (39h),a ; GDC
xor a
out (38h),a ; GDC 7220
out (3ah),a ; Zoom
l00f4: in a,(38h) ; GDC 7220
and 06h
xor 04h
jr nz,l00f4 ; (-08h)
ld a,47h
out (39h),a
ld a,50h
out (38h),a ; GDC 7220
ld a,70h
out (39h),a ; GDC
ld a,00h
out (38h),a ; GDC 7220
out (38h),a ; GDC 7220
out (38h),a ; GDC 7220
ld a,19h
out (38h),a ; GDC 7220
ld ix,01b4h
jp l04a1
l011b: ld a,0eh
out (39h),a ; GDC
ld c,38h
ld b,08h
ld hl,07d3h
otir
l0128: in a,(38h)
and 06h
xor 04h
jr nz,l0128 ; (-08h)
ld a,4bh
out (39h),a
xor a
out (38h),a ; GDC 7220
out (38h),a ; GDC 7220
out (38h),a ; GDC 7220
ld a,46h
out (39h),a
xor a
out (38h),a ; GDC 7220
out (3ah),a
l0144: in a,(38h)
and 06h
xor 04h
jr nz,l0144 ; (-08h)
ld a,47h
out (39h),a ; GDC
ld a,28h
out (38h),a ; GDC 7220
ld a,70h
out (39h),a ; GDC
xor a
out (38h),a ; GDC 7220
out (38h),a ; GDC 7220
out (38h),a ; GDC 7220
ld a,19h
out (38h),a ; GDC 7220
ld a,01h
ld hl,016bh
jp l04e4
ld a,04h
ld hl,0173h
jp l04e4
ld a,02h
ld hl,017bh
jp l04e4
ld de,lf000
ld hl,07d3h
ld bc,0008h
ldir
ld hl,lf000
set 4,(hl)
ld b,08h
ld c,38h
ld a,0eh
out (39h),a ; GDC
otir
l0195: in a,(38h) ; GDC 7220
and 06h
xor 04h
jr nz,l0195 ; (-08h)
ld a,47h
out (39h),a ; GDC
ld a,28h
out (38h),a ; GDC 7220
ld a,70h
out (39h),a ; GDC
xor a
out (38h),a ; GDC 7220
out (38h),a ; GDC 7220
out (38h),a ; GDC 7220
ld a,19h
out (38h),a ; GDC 7220
ld a,6bh
out (39h),a
xor a
out (4dh),a
ld b,00h
ld a,b
or a
jr z,l01c5 ; (+04h)
l01c1: jp l045c
halt
l01c5: add a,0d2h
rlca
jr nc,l01c1 ; (-09h)
ld b,a
ld c,b
ld d,c
ld e,d
ld h,e
ld a,h
jp p,l01c1
xor 0a5h
jr nz,l01c1 ; (-16h)
ld bc,0f1eh
ld de,2d3ch
ld hl,4b5ah
exx
exx
ex de,hl
and b
xor c
or d
and e
add a,h
sub l
cp 4bh
jr nz,l01c1 ; (-2ch)
xor a
ld bc,0102h
ld de,0304h
ld hl,0506h
add a,b
add a,c
add a,d
add a,e
add a,h
add a,l
cp 15h
jp nz,l01c1
add hl,bc
add hl,de
add hl,hl
add a,h
add a,l
cp 3fh
jp nz,l01c1
ld ix,0219h
ld bc,0001h
ld de,0001h
ld sp,0000h
nop
nop
xor a
add ix,bc
add ix,de
add ix,sp
ld a,(ix+00h)
cp 0afh
jp nz,l01c1
ld iy,0219h
add iy,bc
add iy,de
add iy,sp
ld a,(iy+00h)
cp 0afh
jp nz,l01c1
ld a,00h
ld hl,l0382
ld bc,0003h
cpi
jp nz,l01c1
inc a
jp z,l01c1
dec a
jp nz,l01c1
neg
cp 11h
jp nz,l01c1
scf
jp nc,l01c1
ccf
jp c,l01c1
ld hl,0280h
ld ix,0283h
ld iy,0286h
jp (hl)
jp l01c1
halt
jp (ix)
halt
jp (iy)
halt
ld b,05h
l0278: djnz l0278 ; (-02h)
xor a
or b
jp nz,l01c1
ld hl,lf000
ld bc,1000h
l0285: ld (hl),0ffh
inc hl
dec bc
ld a,b
or c
jr nz,l0285 ; (-08h)
ld bc,0fffh
ld hl,0ffffh
ld de,0fffeh
l0296: ld a,(de)
and (hl)
jp z,l046c
cp 0ffh
jp nz,l046c
xor (hl)
ld (hl),a
ld a,(hl)
or a
jp nz,l046c
dec hl
dec bc
dec de
ld a,b
or c
jr nz,l0296 ; (-18h)
ld a,(hl)
xor 0ffh
ld (hl),a
jp nz,l046c
ld a,41h
rlca
jp c,l01c1
rla
jp nc,l01c1
rla
jp c,l01c1
rrca
jp nc,l01c1
rra
jp c,l01c1
ld ix,0ffffh
ld (ix+00h),a
rlc (ix+00h)
jp nc,l01c1
rl (ix+00h)
jp nc,l01c1
rrc (ix+00h)
jp nc,l01c1
rr (ix+00h)
jp nc,l01c1
sla (ix+00h)
jp nc,l01c1
sra (ix+00h)
jp c,l01c1
srl (ix+00h)
jp c,l01c1
ld hl,0ffffh
ld a,0eh
rld
jp z,l01c1
rrd
jp z,l01c1
bit 7,a
jp nz,l01c1
bit 3,a
jp z,l01c1
bit 6,(hl)
jp z,l01c1
bit 1,(ix+00h)
jp nz,l01c1
set 6,a
set 7,(hl)
set 2,(ix+00h)
res 3,a
res 0,(hl)
res 5,(ix+00h)
add a,(ix+00h)
jp nc,l01c1
jp z,l01c1
ld de,lf000
ld hl,035eh
ld bc,0010h
ldir
ld a,02h
jr l0351 ; (+01h)
halt
l0351: nop
jr l0355 ; (+01h)
halt
l0355: dec a
or a
jp z,l036e
jp nz,lf000
halt
ld de,0fc00h
ld hl,l0382
ld bc,0006h
lddr
jp lfbfb
nop
nop
l036e: jp l0382
halt
nop
ld sp,0000h
ld ix,0a55ah
ld iy,0a55ah
ld bc,0a55ah
ld de,0a55ah
ld hl,0a55ah
push af
push bc
push de
push hl
push ix
push iy
pop bc
or b
or c
ld c,04h
l0394: pop de
and d
or e
dec c
jr nz,l0394 ; (-06h)
pop ix
ld b,0ffh
xor b
jp nz,l01c1
ld a,03h
call l03bf
call nz,l03c1
jp z,l01c1
jr l03b7 ; (+08h)
and a
ret
or a
ret nz
jp l01c1
halt
l03b7: ld sp,0000h
ld bc,03e1h
ld hl,0708h
ld e,(hl)
l03c1: inc hl
ld ix,03d9h
jp l0555
out (FDDMOT),a ; FDD motor control
call l059c
ld a,03h
out (FDDDAT),a ; FDC Data
call l05ab
ld a,8fh
out (FDDDAT),a ; FDC Data
call l05ab
ld a,12h
out (FDDDAT),a ; FDC Data
ld hl,0fc05h
ld a,01h
ld (hl),a
inc hl
ld a,10h
ld (hl),a
inc hl
ld a,0eh
ld (hl),a
inc hl
ld a,0ffh
ld (hl),a
ld hl,0000h
ld (0fc21h),hl
ld a,00h
ld (0fc01h),a
call l05e4
ld a,27h
ld (0fc02h),a
call l05d8
l0408: ld a,00h
ld (0fc01h),a
call l05e4
ld a,(0fc14h)
and a
jr nz,l0408 ; (-0eh)
ld bc,03e1h
ld hl,0762h
ld e,(hl)
inc hl
ld ix,0435h
jp l0555
ld hl,0fc01h
ld (hl),00h
inc hl
ld (hl),00h
inc hl
ld (hl),00h
inc hl
ld (hl),01h
ld a,0ch
ld (0fc09h),a
ld hl,lf000
ld (0fc0ah),hl
ld hl,0418h
ld (0fc21h),hl
call l0623
jr z,l0408 ; (-41h)
jp lf000
ld a,14h
out (DIP),a ; DIP.SW.Mem.bank reg.
ld hl,0718h
ld ix,0469h
jr l0489 ; (+30h)
l0459: jr l0459 ; (-02h)
halt
l045c: ld hl,073dh
ld ix,0475h
jr l0489 ; (+24h)
l0465: ld a,14h
out (DIP),aa ; DIP.SW.Mem.bank reg.
ld b,05h
ld de,0ffffh
l046e: ld hl,39deh
l0471: add hl,de
jr c,l0471 ; (-03h)
djnz l046e ; (-08h)
ld a,10h
out (DIP),aa ; DIP.SW.Mem.bank reg.
ld b,05h
ld de,0ffffh
l047f: ld hl,39deh
l0482: add hl,de
jr c,l0482 ; (-03h)
djnz l047f ; (-08h)
jr l0465 ; (-24h)
l0489: ld e,(hl)
inc hl
ld bc,0000h
jp l0555
l0491: in a,(38h)
and 06h
xor 04h
jr nz,l0491 ; (-08h)
ld a,49h
out (39h),a
xor a
out (38h),a
out (38h),a
ld b,04h
l04a4: ld hl,3fffh
ld a,4ch
out (39h),a
ld a,02h
out (38h),a
ld a,l
out (38h),a
ld a,h
out (38h),a
ld a,4ah
out (39h),a
ld a,0ffh
out (38h),a
out (38h),a
ld a,20h
out (39h),a
xor a
out (38h),a
out (38h),a
l04c8: in a,(38h)
and 06h
xor 04h
jr nz,l04c8 ; (-08h)
djnz l04a4 ; (-2eh)
jp (ix)
out (2dh),a ; ?
l04d6: in a,(38h)
and 06h
xor 04h
jr nz,l04d6 ; (-08h)
ld a,49h
out (39h),a
xor a
out (38h),a
out (38h),a
out (38h),a
ld a,4ah
out (39h),a
ld a,0ffh
out (38h),a
out (38h),a
l04f3: in a,(38h)
and 06h
xor 04h
jr nz,l04f3 ; (-08h)
ld a,78h
out (39h),a
ld b,08h
ld a,0ffh
l0503: out (38h),a
djnz l0503 ; (-04h)
l0507: in a,(38h)
and 06h
xor 04h
jr nz,l0507 ; (-08h)
ld a,4ch
out (39h),a
ld a,10h
out (38h),a
ld bc,0027h
ld a,c
out (38h),a
ld a,b
out (38h),a
ld bc,0668h
ld a,c
out (38h),a
ld a,b
out (38h),a
ld a,22h
out (39h),a
ld a,68h
out (39h),a
ld a,49h
out (39h),a
xor a
out (38h),a
out (38h),a
out (38h),a
l053c: in a,(38h)
and 06h
xor 04h
jr nz,l053c ; (-08h)
jp (hl)
in a,(2ch)
and 01h
jr nz,l058a ; (+3fh)
l054b: in a,(38h)
and 06h
xor 04h
jr nz,l054b ; (-08h)
ld a,49h
l0555: out (39h),a
ld a,c
out (38h),a
ld a,b
out (38h),a
ld a,4ah
out (39h),a
ld a,0ffh
l0563: out (38h),a
ld a,0ffh
out (38h),a
l0569: in a,(38h)
and 06h
xor 04h
jr nz,l0569 ; (-08h)
ld a,20h
out (39h),a
ld a,(hl)
out (38h),a
ld a,00h
out (38h),a
inc bc
inc hl
l057e: in a,(38h)
and 06h
xor 04h
jr nz,l057e ; (-08h)
dec e
jp nz,l0563
l058a: jp (ix)
l058c: out (FDDMOT),a ; FDD motor control
in a,(FDDSTD) ; FDD status
and 10h
jr nz,l058c ; (-08h)
in a,(FDDSTD) ; FDD status
and 0fh
jr nz,l058c ; (-0eh)
ret
l059b: in a,(FDDSTD) ; FDD status
bit 7,a
jr z,l059b ; (-06h)
bit 6,a
jr nz,l059b ; (-0ah)
ret
l05a6: in a,(FDDSTD) ; FDD status
bit 7,a
jr z,l05a6 ; (-06h)
bit 6,a
jr z,l05a6 ; (-0ah)
ret
call l059c
ld a,04h
l05b6: out (FDDDAT),a ; FDD data
call l05ab
ld a,(0fc01h)
out (FDDDAT),a ; FDD data
call l05b6
in a,(FDDDAT) ; FDD data
and 20h
ret
L05c8: push af
push bc
di
ld a,0fh
ld (0fc00h),a
ld b,03h
jr l05de ; (+0ah)
push af
push bc
di
ld a,07h
ld (0fc00h),a
ld b,02h
l05de: call l0607
ei
l05e2: ld a,(0fc13h)
bit 6,a
jr nz,l05e2 ; (-07h)
ld a,(0fc0ch)
bit 6,a
jr nz,l05f1 ; (+01h)
xor a
l05f1: ld (0fc14h),a
pop bc
pop af
ret
l05f7: call l05c1
jr z,l05f7 ; (-05h)
call l059c
push hl
ld hl,0fc00h
l0603: call l05ab
ld a,(hl)
l0607: out (FDDDAT),a ; FDD data
inc hl
djnz l0603 ; (-09h)
ld hl,0fc13h
set 6,(hl)
pop hl
ret
L0613: di
push hl
push de
push bc
ld c,44h
ld b,60h
call l064c
ld c,46h
ld a,c
ld (0fc00h),a
ld b,09h
call l0607
ei
l062a: ld a,(0fc13h)
bit 6,a
jr nz,l062a ; (-07h)
ld a,(0fc0ch)
and 0c0h
cp 40h
pop bc
pop de
pop hl
ret
L063c: push af
xor a
out (4dh),a ; 8237 DMA #1
ld a,c
out (4bh),a ; 8237 DMA #1
ld a,(0fc0ah)
out (40h),a ; 8237 DMA #1
ld a,(0fc0bh)
out (40h),a ; 8237 DMA #1
ld a,0ffh
out (41h),a ; 8237 DMA #1
ld a,(0fc09h)
dec a
out (41h),a ; 8237 DMA #1
ld a,b
out (48h),a ; 8237 DMA #1
ld a,0eh
out (4fh),a ; 8237 DMA #1
pop af
ret
L0660: push af
in a,(12h) ; Keyboard command
ld (0fc16h),a
bit 0,a
jr z,l0678 ; (+0eh)
ld a,01h
out (12h),a ; Keyboard command
in a,(12h) ; Keyboard command
l0670: ld (0fc17h),a
in a,(10h) ; Keyboard data
ld (0fc18h),a
l0678: ld a,(0fc16h)
bit 2,a
jr nz,l0687 ; (+08h)
ld a,28h
out (12h),a ; Keyboard command
xor a
ld (0fc19h),a
l0687: ld a,30h
out (12h),a ; Keyboard command
ld a,38h
out (12h),a ; Keyboard command
ld a,20h
out (PIC1M),a ; 8259 Master
pop af
ei
reti
L0697: push hl
push bc
push af
ld a,(0fc00h)
or a
jr z,l06ed ; (+4dh)
in a,(FDDSTD) ; FDC status
bit 5,a
jr nz,l06c8 ; (+22h)
bit 4,a
jr nz,l06d4 ; (+2ah)
ld a,08h
out (FDDDAT),a ; FDC data
call l05b6
in a,(FDDDAT) ; FDC data
ld (0fc0ch),a
call l05b6
in a,(FDDDAT) ; FDC data
ld (0fc0fh),a
ld a,(0fc0ch)
rlca
jr c,l06ed ; (+29h)
and 40h
jr nz,l06e8 ; (+20h)
l06c8: ld a,20h
out (PIC1M),a ; 8258 Master
pop af
pop bc
pop bc
pop hl
ld hl,(0fc21h)
jp (hl)
l06d4: xor a
out (4dh),a ; DMA Master
cpl
out (4fh),a ; DMA Master
ld b,07h
ld hl,0fc0ch
l06df: call l05b6
in a,(FDDDAT) ; FDC data
ld (hl),a
inc hl
djnz l06df ; (-09h)
l06e8: ld hl,0fc13h
res 6,(hl)
l06ed: ld a,20h
out (PIC1M),a ; 8258 Master
pop af
pop bc
pop hl
ei
reti
halt
rrca
INSDISK: 'INSERT DISKETTE'
db '$'
DIAGC1: 'DIAGNOSTIC CODE 0001 0.06' ; 0708 - 072c
db '$'
DIAGC2: 'DIAGNOSTIC CODE 0002 0.06' ; 072e - 0751
db 0fh
SPACES: ' '
db 00h
l0763: rst 38h
rst 38h
l0765: rst 38h
rst 38h
l0767: rst 38h
rst 38h
l0769: rst 38h
rst 38h
l076b: rst 38h
rst 38h
l076d: rst 38h
rst 38h
rst 38h
nop
l0771: jp l0707
nop
l0775: jp l0707
nop
l0779: jp l0707
nop
l077d: jp l0707
nop
l0781: jp l0670
nop
jp l0707
nop
jp l06a7
nop
nop
nop
nop
nop
jp l0707
nop
jp l0707
nop
jp l0707
nop
jp l0707
nop
jp l0707
nop
jp l0707
nop
jp l0707
nop
jp l0707
jr l07c6 ; (+14h)
scf
inc bc
pop hl
dec b
jp pe,l0002
ld bc,1410h
ld c,(hl)
ld (bc),a
ld a,(de)
ld (de),a
ld bc,1190h
ld b,26h
inc hl
l07c6: ld de,0704h
sub b
ld h,l
ret pe
call po,lc3c9
ret z
ret
ld b,b
call po,lc8e2
ret
ret pe
pop bc
call nc,l40c1
rst 38h
rst 38h
rst 38h
rst 38h
rst 38h
rst 38h
rst 38h
rst 38h
rst 38h
rst 38h
rst 38h
rst 38h
rst 38h
rst 38h
rst 38h
jp l05d8
jp l0623