; 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