diff --git a/Source/Apps/Assign.asm b/Source/Apps/Assign.asm index 3ccdf17e..e00a6b18 100644 --- a/Source/Apps/Assign.asm +++ b/Source/Apps/Assign.asm @@ -18,6 +18,7 @@ ;_______________________________________________________________________________ ; ; Change Log: +; 2016-03-21 [WBW] Updated for HBIOS 2.8 ;_______________________________________________________________________________ ; ; ToDo: @@ -37,7 +38,7 @@ bdos .equ $0005 ; BDOS invocation vector stamp .equ $40 ; loc of RomWBW CBIOS zero page stamp ; rmj .equ 2 ; CBIOS version - major -rmn .equ 7 ; CBIOS version - minor +rmn .equ 8 ; CBIOS version - minor ; ;=============================================================================== ; Code Section @@ -283,22 +284,18 @@ devlist: or a ; set flags jr nz,devlstu ; do UNA mode dev list ; - ld b,$1a ; hbios func: diodevcnt - rst 08 ; call hbios, device count to B + ld b,$f7 ; hbios func: sysget + ld c,$10 ; sysget subfunc: diocnt + rst 08 ; call hbios, E := device count + ld b,e ; use device count for loop count ld c,0 ; use C for device index devlist1: call crlf ; formatting ld de,indent ; indent call prtstr ; ... to look nice push bc ; preserve loop control - ld b,$1b ; hbios func: diodevinf - rst 08 ; call hbios, return device/unit in C - ld a,c ; device/unit to A - push af ; save it + ld c,a ; device to A call prtdev ; print device mnemonic - pop af ; get device/unit back - and $0f ; isolate unit num - call prtdecb ; append unit num ld a,':' ; colon for device/unit format call prtchr ; print it pop bc ; restore loop control @@ -426,7 +423,7 @@ dph_init2: push bc ; save DPH location push bc ; move DPH location pop de ; ... to DE - ld a,(hl) ; device/unit to A + ld a,(hl) ; unit to A call makdph ; make the DPH pop de ; restore DPH pointer to DE pop hl ; restore drive map pointer to HL @@ -644,11 +641,11 @@ valid2: ; setup for inner loop ; valid3: ; inner loop ; bypass unassigned drives (only need to test 1) - ld a,(hl) ; get first drive device/unit in A + ld a,(hl) ; get first drive unit in A cp $ff ; unassigned? jr z,valid4 ; yes, skip ; - ; compare device/unit/slice values + ; compare unit/slice values ld a,(de) ; first byte to A cp (hl) ; compare jr nz,valid4 ; if not equal, continue loop @@ -768,7 +765,7 @@ drvswap: xor a ; signal success ret ; exit ; -; Assign drive to specified device/unit/slice +; Assign drive to specified unit/slice ; drvmap: ; check for UNA mode @@ -801,32 +798,46 @@ drvmap1: ; loop through device table looking for a match djnz drvmap1 ; and loop jp errdev ; -drvmap2: ; verify the unit is eligible for assignment (hard disk unit only!) - ld a,c ; get the specified device number -; call chktyp ; check it -; jp nz,errtyp ; abort with bad unit error -; - ; construct the requested dph table entry - ld a,c ; C has device num +drvmap2: + ; convert index to device type id + ld a,c ; index to accum rlca ; move it to upper nibble rlca ; ... rlca ; ... rlca ; ... - ld c,a ; stash it back in C - ld a,(unit) ; get the unit number - or c ; combine device and unit - ld c,a ; and save in C - ld a,(slice) ; get the slice - ld b,a ; and save in B -; - ; check for valid device/unit (supported by BIOS) - push bc ; save device/unit/slice - ld a,c ; device/unit to A - call chkdev ; device/unit OK? - pop bc ; restore device/unit/slice -; jp nz,errdev ; invalid device specified - ret nz + ld (device),a ; save as device id ; + ; loop thru hbios units looking for device type/unit match + ld b,$f7 ; hbios func: sysget + ld c,$10 ; sysget subfunc: diocnt + rst 08 ; call hbios, E := device count + ld b,e ; use device count for loop count + ld c,0 ; use C for device index +drvmap3: + push bc ; preserve loop control + ld b,$17 ; hbios func: diodevice + rst 08 ; call hbios, D := device, E := unit + pop bc ; restore loop control + ld a,(device) + cp d + jr nz,drvmap4 + ld a,(unit) + cp e + jr z,drvmap5 ; match, continue, C = BIOS unit +drvmap4: + ; continue looping + inc c + djnz drvmap3 + jp errdev ; invalid device specified +; +drvmap5: + ; check for valid unit (supported by BIOS) + push bc ; save unit + ld a,c ; unit to A + call chkdev ; check validity + pop bc ; restore unit + ret nz ; bail out on error + ; resolve the CBIOS DPH table entry ld a,(dstdrv) ; dest drv num to A call chkdrv ; valid drive? @@ -837,10 +848,11 @@ drvmap2: ; verify the unit is eligible for assignment (hard disk unit only!) call addhl ; adjust HL to point to entry ld (dstptr),hl ; save it ; - ; shove updated device/unit/slice into the entry - ld (hl),c ; save device/unit byte + ; shove updated unit/slice into the entry + ld (hl),c ; save unit byte inc hl ; bump to next byte - ld (hl),b ; save slice + ld a,(slice) + ld (hl),a ; save slice ; ; finish up ld a,(dstdrv) ; get the destination drive @@ -911,14 +923,7 @@ drvmapu1: call addhl ; adjust HL to point to entry ld (dstptr),hl ; save it ; -; ; verify the drive letter being assigned is a hard disk -; ld a,(hl) ; get the device/unit byte -; push hl ; save pointer -; call chktypu ; check it -; pop hl ; recover pointer -; jp nz,errtyp ; abort with bad device type error -; - ; shove updated device/unit/slice into the entry + ; shove updated unit/slice into the entry ld a,(unit) ; get specified unit ld (hl),a ; save it inc hl ; next byte is slice @@ -945,7 +950,9 @@ showall: ; showall1: ; loop ld a,c ; + push bc ; save loop control call showass + pop bc ; restore loop control inc c djnz showall1 or $ff @@ -962,7 +969,7 @@ showass: rlca rlca call addhl ; HL = address of drive map table entry - ld a,(hl) ; get device/unit value + ld a,(hl) ; get unit value cp $ff ; compare to unassigned value ld a,c ; recover original drive num ret z ; bail out if unassigned drive @@ -997,16 +1004,13 @@ showone: call prtchr ; print it ; ; render the map entry - ld a,(hl) ; load device/unit + ld a,(hl) ; load unit cp $FF ; empty? ret z ; yes, bypass call prtdev ; print device mnemonic - ld a,(hl) ; load device/unit again - and $0f ; isolate unit num - call prtdecb ; print it - inc hl ; point to slice num - ld a,':' ; colon to separate slice + ld a,':' ; colon for device/unit format call prtchr ; print it + inc hl ; point to slice num ld a,(hl) ; load slice num call prtdecb ; print it ; @@ -1033,6 +1037,11 @@ prtdev: or a ; set flags ld a,e ; put device num back jr nz,prtdevu ; print device in UNA mode + ld b,$17 ; hbios func: diodevice + ld c,a ; unit to C + rst 08 ; call hbios, D := device, E := unit + push de ; save results + ld a,d ; device to A rrca ; isolate high nibble (device) rrca ; ... rrca ; ... @@ -1048,54 +1057,63 @@ prtdev: ld e,a ; ... call prtstr ; print the device nmemonic pop hl ; restore HL + pop de ; get device/unit data back + ld a,e ; device id to a + call prtdecb ; print it ret ; done ; prtdevu: - ld e,a ; save unit num in E push bc push de push hl +; ; UNA mode version of print device ld b,a ; B := unit num + push bc ; save for later ld c,$48 ; UNA func: get disk type rst 08 ; call UNA ld a,d ; disk type to A - pop hl - pop de - pop bc + pop bc ; get unit num back in C ; + ; pick string based on disk type cp $40 ; RAM/ROM? jr z,prtdevu1 ; if so, handle it cp $41 ; IDE? ld de,udevide ; load string - jp z,prtstr ; if IDE, print and return + jr z,prtdevu2 ; if IDE, print and return cp $42 ; PPIDE? ld de,udevppide ; load string - jp z,prtstr ; if PPIDE, print and return + jr z,prtdevu2 ; if PPIDE, print and return cp $43 ; SD? ld de,udevsd ; load string - jp z,prtstr ; if SD, print and return + jr z,prtdevu2 ; if SD, print and return cp $44 ; DSD? ld de,udevdsd ; load string - jp z,prtstr ; if DSD, print and return + jr z,prtdevu2 ; if DSD, print and return ld de,udevunk ; load string for unknown - jp prtstr ; and print it + jr prtdevu2 ; and print it ; prtdevu1: ; handle RAM/ROM - push bc - push hl - ld b,e ; unit num to B + push bc ; save unit num ld c,$45 ; UNA func: get disk info ld de,$9000 ; 512 byte buffer *** FIX!!! *** rst 08 ; call UNA bit 7,b ; test RAM drive bit - pop hl - pop bc + pop bc ; restore unit num ld de,udevrom ; load string - jp z,prtstr ; print and return + jr z,prtdevu2 ; print and return ld de,udevram ; load string - jp prtstr ; print and return + jr prtdevu2 ; print and return +; +prtdevu2: + call prtstr ; print the device nmemonic + ld a,b ; get the unit num back + call prtdecb ; append it + pop hl + pop de + pop bc + ret ; ; Check that specified drive num is valid ; @@ -1105,36 +1123,32 @@ chkdrv: cp a ; set Z to signal good ret ; and return ; -; Check that the device/unit value in A is valid +; Check that the unit value in A is valid ; according to active BIOS support. ; ; chkdev: ; HBIOS variant - push af ; save incoming device/unit - ld b,$1a ; hbios func: diodevcnt - rst 08 ; call hbios, device count to B - ld c,0 ; use C for device index - pop af ; restore incoming device/unit -chkdev1: - push bc ; preserve loop control - push af ; save incoming device/unit - ld b,$1b ; hbios func: diodevinf - rst 08 ; call hbios, return device/unit in C - pop af ; restore incoming device/unit - cp c ; match to device/unit from BIOS list? - pop bc ; restore loop control - jr z,chkdev2 ; yes, match - inc c ; next device list entry - djnz chkdev1 ; loop as needed - jp errdev ; no match, handle error -; -chkdev2: ; check slice support + push af ; save incoming unit + ld b,$f7 ; hbios func: sysget + ld c,$10 ; sysget subfunc: diocnt + rst 08 ; call hbios, E := device count + pop af ; restore incoming unit + cp e ; compare to unit count + jp nc,errdev ; if too high, error +; + ; get device/unit info + ld b,$17 ; hbios func: diodevice + ld c,a ; unit to C + rst 08 ; call hbios, D := device, E := unit + ld a,d ; device to A +; + ; check slice support cp $30 ; A has device/unit, in hard disk range? - jr c,chkdev3 ; if not hard disk, check slice val + jr c,chkdev1 ; if not hard disk, check slice val xor a ; otherwise, signal OK ret ; -chkdev3: ; not a hard disk, make sure slice == 0 +chkdev1: ; not a hard disk, make sure slice == 0 ld a,(slice) ; get specified slice or a ; set flags jp nz,errslc ; invalid slice error @@ -1615,10 +1629,10 @@ stack .equ $ ; stack top ; Messages ; indent .db " ",0 -msgban1 .db "ASSIGN v1.0a for RomWBW CP/M 2.2, 25-Oct-2014",0 +msgban1 .db "ASSIGN v1.0b for RomWBW CP/M 2.2, 20-Mar-2016",0 msghb .db " (HBIOS Mode)",0 msgub .db " (UBIOS Mode)",0 -msgban2 .db "Copyright 2014, Wayne Warthen, GNU GPL v3",0 +msgban2 .db "Copyright 2016, Wayne Warthen, GNU GPL v3",0 msguse .db "Usage: ASSIGN D:[=[{D:|[]:[]}]][,...]",13,10 .db " ex. ASSIGN (display all active assignments)",13,10 .db " ASSIGN /? (display version and usage)",13,10 diff --git a/Source/CBIOS/cbios.asm b/Source/CBIOS/cbios.asm index e9828812..babc9dc6 100644 --- a/Source/CBIOS/cbios.asm +++ b/Source/CBIOS/cbios.asm @@ -59,7 +59,7 @@ MEMTOP .EQU $10000 #ENDIF ; #IFDEF PLTUNA -#INCLUDE "../HBIOS/ubios.inc" +#INCLUDE "../UBIOS/ubios.inc" #ENDIF ; .ORG CBIOS_LOC ; DEFINED IN STD.ASM @@ -1790,19 +1790,14 @@ INIT: LD HL,($FFFE) ; UNA ENTRY VECTOR LD (9),HL ; STORE AT 0x0009 #ELSE - ; ASK HBIOS FOR CRITICAL BANK ID'S (BIOS AND USER BANKS) - ; SAVE THESE VALUES FOR LATER USE - LD B,BF_SYSHCBGETB ; HB FUNC: GET HCB BYTE - LD C,HCB_BIDBIOS ; BIOS BANK ID - CALL $FFF0 ; RST 8 IS NOT YET INSTALLED - LD A,E ; PUT IN A - LD (BNKBIOS),A ; SAVE IT - LD B,BF_SYSHCBGETB ; HB FUNC: GET HCB BYTE - LD C,HCB_BIDUSR ; USER BANK ID - CALL $FFF0 ; RST 8 IS NOT YET INSTALLED - LD A,E ; PUT IN A - LD (BNKUSER),A ; SAVE IT - + LD B,BF_SYSGET ; HBIOS FUNC=GET SYS INFO + LD C,BF_SYSGET_BNKINFO ; HBIOS SUBFUNC=GET BANK ASSIGNMENTS + CALL $FFF0 ; CALL HBIOS, RST 08 NOT YET INSTALLED + LD A,D ; GET HBIOS BANK RETURNED IN D + LD (BNKBIOS),A ; ... AND SAVE IT + LD A,E ; GET USER BANK RETURNED IN E + LD (BNKUSER),A ; ... AND SAVE IT + ; MAKE SURE USER BANK IS ACTIVE LD B,BF_SYSSETBNK ; HB FUNC: SET BANK LD A,(BNKUSER) ; SELECT USER BANK @@ -1831,11 +1826,6 @@ INIT: LD (BNKRAMD),A #ENDIF - ; CBIOS BANNER - CALL NEWLINE ; FORMATTING - LD DE,STR_BANNER ; POINT TO BANNER - CALL WRITESTR ; DISPLAY IT - ; PARAMETER INITIALIZATION XOR A ; LOAD DEFAULT IOBYTE LD (IOBYTE),A ; STORE IT @@ -1844,6 +1834,11 @@ INIT: XOR A ; ZERO LD (DEFDRIVE),A ; STORE IT + ; CBIOS BANNER + CALL NEWLINE ; FORMATTING + LD DE,STR_BANNER ; POINT TO BANNER + CALL WRITESTR ; DISPLAY IT + #IFDEF PLTUNA ; SAVE COMMAND PROCESSOR IMAGE TO MALLOCED CACHE IN UNA BIOS PAGE LD C,$F7 ; UNA MALLOC diff --git a/Source/HBIOS/API.txt b/Source/HBIOS/API.txt index 1687f0f2..d6a6c589 100644 --- a/Source/HBIOS/API.txt +++ b/Source/HBIOS/API.txt @@ -243,20 +243,22 @@ CP/M 2.2 Copyright 1979 (c) by Digital Research _INI: - CALL _RES - - INITIALIZE EMULATION BY CALLING EMU_INIT (PASS IN C=EMU_TYPE & DE=VDA_DISPATCH ADDRESS) - - EMU_INIT RETURNS ADDRESS OF CIO DISPATCHER ADDRESS FOR SUBSEQUENT FORWARDING - - RECORD EMULATORS CIO DISPATCHER ADDRESS IN _CIODISPATCH + - INITIALIZE EMULATION BY CALLING EMU_INIT (PASS IN B=EMU_TYPE, C=VDA CIO UNIT NUM, DE=VDA DISPATCH ADR) + - RECORD DE (EMULATOR CIO DISPATCH ADR) _CIODISPADR TO FORWARD SUBSEQUENT CIO FUNCTION CALLS + - RETURN (A=STATUS) _RES: - RESET HARDWARE + - RETURN (A=STATUS) -EMU_INIT: - - CALL _INIT BASED ON VALUE IN C +EMU_INIT: (B=EMU TYPE, C=VDA CIO UNIT #, DE=VDA DISPATCH ADR) ==> (DE=EMULATOR CIO DISPATCH ADR) + - GOTO TO _INIT BASED ON VALUE IN B -_INIT: - - RECORD DE IN VDA_DISPADR +_INIT: (C=VDA CIO UNIT #, DE=VDA DISPATCH ADR) ==> (DE=EMULATOR CIO DISPATCH ADR) + - RECORD C (VDA CIO UNIT) IN _VDACIOUNIT SO _DEVICE FUNCTION CAN RETURN IT + - RECORD DE IN _VDADISPADR FOR LATER USE IN CALLING PARENT VDA DRIVER - INITIALIZE/RESET EMULATION ENGINE - - RETURN EMULATOR CIO DISPATCH ADDRESS IN DE + - RETURN (A=STATUS, DE=EMULATOR CIO DISPATCH) diff --git a/Source/HBIOS/Config/mk4_cvdu.asm b/Source/HBIOS/Config/mk4_cvdu.asm index a9762072..b332d2e4 100644 --- a/Source/HBIOS/Config/mk4_cvdu.asm +++ b/Source/HBIOS/Config/mk4_cvdu.asm @@ -9,10 +9,7 @@ CPUOSC .EQU 18432000 ; CPU OSC FREQ RAMSIZE .EQU 512 ; SIZE OF RAM IN KB, MUST MATCH YOUR HARDWARE!!! CONBAUD .EQU 38400 ; DEFAULT BAUDRATE USED BELOW ; -SERDEV .EQU CIODEV_ASCI ; PRIMARY SERIAL DEVICE FOR BOOT/DEBUG/MONITOR (TYPICALLY CIODEV_UART OR CIODEV_ASCI) -CRTDEV .EQU CIODEV_VDA ; CRT DEVICE (CIODEV_PRPCON, CIODEV_PPPCON, CIODEV_VDA), USE CIODEV_NUL IF NO CRT CRTACT .EQU FALSE ; CRT ACTIVATION AT STARTUP -VDADEV .EQU VDADEV_CVDU ; CRT VDA DEVICE (VDADEV_NONE, VDADEV_VDU, VDADEV_CVDU, VDADEV_N8V, VDADEV_UPD7220) VDAEMU .EQU EMUTYP_ANSI ; DEFAULT VDA EMULATION (EMUTYP_TTY, EMUTYP_ANSI, ...) ; DSKYENABLE .EQU FALSE ; TRUE FOR DSKY SUPPORT (DO NOT COMBINE WITH PPIDE) @@ -31,7 +28,7 @@ ASCI1BAUD .EQU CONBAUD ; ASCI1 BAUDRATE (IMPLEMENTED BY Z180_ASCIB1) VDUENABLE .EQU FALSE ; TRUE FOR VDU BOARD SUPPORT CVDUENABLE .EQU TRUE ; TRUE FOR CVDU BOARD SUPPORT UPD7220ENABLE .EQU FALSE ; TRUE FOR uPD7220 BOARD SUPPORT -N8VENABLE .EQU FALSE ; TRUE FOR N8 (TMS9918) VIDEO/KBD SUPPORT +SCGENABLE .EQU FALSE ; TRUE FOR N8 (TMS9918) VIDEO/KBD SUPPORT ; MDENABLE .EQU TRUE ; TRUE FOR ROM/RAM DISK SUPPORT (ALMOST ALWAYS WANT THIS ENABLED) MDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF MDENABLE = TRUE) @@ -67,9 +64,9 @@ SDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE SDCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) SDCSIOFAST .EQU TRUE ; TABLE-DRIVEN BIT INVERTER ; -PRPENABLE .EQU FALSE ; TRUE FOR PROPIO SD SUPPORT (FOR N8VEM PROPIO ONLY!) +PRPENABLE .EQU FALSE ; TRUE FOR PROPIO SUPPORT PRPIOB .EQU $A8 ; PORT IO ADDRESS BASE -PRPSDENABLE .EQU TRUE ; TRUE FOR PROPIO SD SUPPORT (FOR N8VEM PROPIO ONLY!) +PRPSDENABLE .EQU TRUE ; TRUE FOR PROPIO SD SUPPORT PRPSDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PRPSDENABLE = TRUE) PRPSDCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) PRPCONENABLE .EQU TRUE ; TRUE FOR PROPIO CONSOLE SUPPORT (PS/2 KBD & VGA VIDEO) diff --git a/Source/HBIOS/Config/mk4_diskio3.asm b/Source/HBIOS/Config/mk4_diskio3.asm index 8b18c62a..8c0a16eb 100644 --- a/Source/HBIOS/Config/mk4_diskio3.asm +++ b/Source/HBIOS/Config/mk4_diskio3.asm @@ -9,10 +9,7 @@ CPUOSC .EQU 18432000 ; CPU OSC FREQ RAMSIZE .EQU 512 ; SIZE OF RAM IN KB, MUST MATCH YOUR HARDWARE!!! CONBAUD .EQU 38400 ; DEFAULT BAUDRATE USED BELOW ; -SERDEV .EQU CIODEV_ASCI ; PRIMARY SERIAL DEVICE FOR BOOT/DEBUG/MONITOR (TYPICALLY CIODEV_UART OR CIODEV_ASCI) -CRTDEV .EQU CIODEV_NUL ; CRT DEVICE (CIODEV_PRPCON, CIODEV_PPPCON, CIODEV_VDA), USE CIODEV_NUL IF NO CRT CRTACT .EQU FALSE ; CRT ACTIVATION AT STARTUP -VDADEV .EQU VDADEV_NONE ; CRT VDA DEVICE (VDADEV_NONE, VDADEV_VDU, VDADEV_CVDU, VDADEV_N8V, VDADEV_UPD7220) VDAEMU .EQU EMUTYP_TTY ; DEFAULT VDA EMULATION (EMUTYP_TTY, EMUTYP_ANSI, ...) ; DSKYENABLE .EQU FALSE ; TRUE FOR DSKY SUPPORT (DO NOT COMBINE WITH PPIDE) @@ -31,7 +28,7 @@ ASCI1BAUD .EQU CONBAUD ; ASCI1 BAUDRATE (IMPLEMENTED BY Z180_ASCIB1) VDUENABLE .EQU FALSE ; TRUE FOR VDU BOARD SUPPORT CVDUENABLE .EQU FALSE ; TRUE FOR CVDU BOARD SUPPORT UPD7220ENABLE .EQU FALSE ; TRUE FOR uPD7220 BOARD SUPPORT -N8VENABLE .EQU FALSE ; TRUE FOR N8 (TMS9918) VIDEO/KBD SUPPORT +SCGENABLE .EQU FALSE ; TRUE FOR N8 (TMS9918) VIDEO/KBD SUPPORT ; MDENABLE .EQU TRUE ; TRUE FOR ROM/RAM DISK SUPPORT (ALMOST ALWAYS WANT THIS ENABLED) MDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF MDENABLE = TRUE) @@ -67,9 +64,9 @@ SDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE SDCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) SDCSIOFAST .EQU FALSE ; TABLE-DRIVEN BIT INVERTER ; -PRPENABLE .EQU FALSE ; TRUE FOR PROPIO SD SUPPORT (FOR N8VEM PROPIO ONLY!) +PRPENABLE .EQU FALSE ; TRUE FOR PROPIO SUPPORT PRPIOB .EQU $A8 ; PORT IO ADDRESS BASE -PRPSDENABLE .EQU TRUE ; TRUE FOR PROPIO SD SUPPORT (FOR N8VEM PROPIO ONLY!) +PRPSDENABLE .EQU TRUE ; TRUE FOR PROPIO SD SUPPORT PRPSDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PRPSDENABLE = TRUE) PRPSDCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) PRPCONENABLE .EQU TRUE ; TRUE FOR PROPIO CONSOLE SUPPORT (PS/2 KBD & VGA VIDEO) diff --git a/Source/HBIOS/Config/mk4_dsd.asm b/Source/HBIOS/Config/mk4_dsd.asm index d0f13127..d6e9ae76 100644 --- a/Source/HBIOS/Config/mk4_dsd.asm +++ b/Source/HBIOS/Config/mk4_dsd.asm @@ -9,10 +9,7 @@ CPUOSC .EQU 18432000 ; CPU OSC FREQ RAMSIZE .EQU 512 ; SIZE OF RAM IN KB, MUST MATCH YOUR HARDWARE!!! CONBAUD .EQU 38400 ; DEFAULT BAUDRATE USED BELOW ; -SERDEV .EQU CIODEV_ASCI ; PRIMARY SERIAL DEVICE FOR BOOT/DEBUG/MONITOR (TYPICALLY CIODEV_UART OR CIODEV_ASCI) -CRTDEV .EQU CIODEV_VDA ; CRT DEVICE (CIODEV_PRPCON, CIODEV_PPPCON, CIODEV_VDA), USE CIODEV_NUL IF NO CRT CRTACT .EQU FALSE ; CRT ACTIVATION AT STARTUP -VDADEV .EQU VDADEV_CVDU ; CRT VDA DEVICE (VDADEV_NONE, VDADEV_VDU, VDADEV_CVDU, VDADEV_N8V, VDADEV_UPD7220) VDAEMU .EQU EMUTYP_ANSI ; DEFAULT VDA EMULATION (EMUTYP_TTY, EMUTYP_ANSI, ...) ; DSKYENABLE .EQU FALSE ; TRUE FOR DSKY SUPPORT (DO NOT COMBINE WITH PPIDE) @@ -31,7 +28,7 @@ ASCI1BAUD .EQU CONBAUD ; ASCI1 BAUDRATE (IMPLEMENTED BY Z180_ASCIB1) VDUENABLE .EQU FALSE ; TRUE FOR VDU BOARD SUPPORT CVDUENABLE .EQU FALSE ; TRUE FOR CVDU BOARD SUPPORT UPD7220ENABLE .EQU FALSE ; TRUE FOR uPD7220 BOARD SUPPORT -N8VENABLE .EQU FALSE ; TRUE FOR N8 (TMS9918) VIDEO/KBD SUPPORT +SCGENABLE .EQU FALSE ; TRUE FOR N8 (TMS9918) VIDEO/KBD SUPPORT ; MDENABLE .EQU TRUE ; TRUE FOR ROM/RAM DISK SUPPORT (ALMOST ALWAYS WANT THIS ENABLED) MDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF MDENABLE = TRUE) @@ -64,9 +61,9 @@ SDMODE .EQU SDMODE_DSD ; SDMODE_JUHA, SDMODE_CSIO, SDMODE_UART, SDMODE_PPI, SDM SDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE = TRUE) SDCSIOFAST .EQU TRUE ; TABLE-DRIVEN BIT INVERTER ; -PRPENABLE .EQU FALSE ; TRUE FOR PROPIO SD SUPPORT (FOR N8VEM PROPIO ONLY!) +PRPENABLE .EQU FALSE ; TRUE FOR PROPIO SUPPORT PRPIOB .EQU $A8 ; PORT IO ADDRESS BASE -PRPSDENABLE .EQU TRUE ; TRUE FOR PROPIO SD SUPPORT (FOR N8VEM PROPIO ONLY!) +PRPSDENABLE .EQU TRUE ; TRUE FOR PROPIO SD SUPPORT PRPSDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PRPSDENABLE = TRUE) PRPCONENABLE .EQU TRUE ; TRUE FOR PROPIO CONSOLE SUPPORT (PS/2 KBD & VGA VIDEO) ; diff --git a/Source/HBIOS/Config/mk4_propio.asm b/Source/HBIOS/Config/mk4_propio.asm index f8871538..e162519c 100644 --- a/Source/HBIOS/Config/mk4_propio.asm +++ b/Source/HBIOS/Config/mk4_propio.asm @@ -9,10 +9,7 @@ CPUOSC .EQU 18432000 ; CPU OSC FREQ RAMSIZE .EQU 512 ; SIZE OF RAM IN KB, MUST MATCH YOUR HARDWARE!!! CONBAUD .EQU 38400 ; DEFAULT BAUDRATE USED BELOW ; -SERDEV .EQU CIODEV_ASCI ; PRIMARY SERIAL DEVICE FOR BOOT/DEBUG/MONITOR (TYPICALLY CIODEV_UART OR CIODEV_ASCI) -CRTDEV .EQU CIODEV_PRPCON ; CRT DEVICE (CIODEV_PRPCON, CIODEV_PPPCON, CIODEV_VDA), USE CIODEV_NUL IF NO CRT CRTACT .EQU FALSE ; CRT ACTIVATION AT STARTUP -VDADEV .EQU VDADEV_NONE ; CRT VDA DEVICE (VDADEV_NONE, VDADEV_VDU, VDADEV_CVDU, VDADEV_N8V, VDADEV_UPD7220) VDAEMU .EQU EMUTYP_TTY ; DEFAULT VDA EMULATION (EMUTYP_TTY, EMUTYP_ANSI, ...) ; DSKYENABLE .EQU FALSE ; TRUE FOR DSKY SUPPORT (DO NOT COMBINE WITH PPIDE) @@ -31,7 +28,7 @@ ASCI1BAUD .EQU CONBAUD ; ASCI1 BAUDRATE (IMPLEMENTED BY Z180_ASCIB1) VDUENABLE .EQU FALSE ; TRUE FOR VDU BOARD SUPPORT CVDUENABLE .EQU FALSE ; TRUE FOR CVDU BOARD SUPPORT UPD7220ENABLE .EQU FALSE ; TRUE FOR uPD7220 BOARD SUPPORT -N8VENABLE .EQU FALSE ; TRUE FOR N8 (TMS9918) VIDEO/KBD SUPPORT +SCGENABLE .EQU FALSE ; TRUE FOR N8 (TMS9918) VIDEO/KBD SUPPORT ; MDENABLE .EQU TRUE ; TRUE FOR ROM/RAM DISK SUPPORT (ALMOST ALWAYS WANT THIS ENABLED) MDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF MDENABLE = TRUE) @@ -67,9 +64,9 @@ SDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE SDCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) SDCSIOFAST .EQU FALSE ; TABLE-DRIVEN BIT INVERTER ; -PRPENABLE .EQU TRUE ; TRUE FOR PROPIO SD SUPPORT (FOR N8VEM PROPIO ONLY!) +PRPENABLE .EQU TRUE ; TRUE FOR PROPIO SD SUPPORT PRPIOB .EQU $A8 ; PORT IO ADDRESS BASE -PRPSDENABLE .EQU TRUE ; TRUE FOR PROPIO SD SUPPORT (FOR N8VEM PROPIO ONLY!) +PRPSDENABLE .EQU TRUE ; TRUE FOR PROPIO SD SUPPORT PRPSDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PRPSDENABLE = TRUE) PRPSDCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) PRPCONENABLE .EQU TRUE ; TRUE FOR PROPIO CONSOLE SUPPORT (PS/2 KBD & VGA VIDEO) diff --git a/Source/HBIOS/Config/mk4_std.asm b/Source/HBIOS/Config/mk4_std.asm index 3af06228..2bdffa69 100644 --- a/Source/HBIOS/Config/mk4_std.asm +++ b/Source/HBIOS/Config/mk4_std.asm @@ -9,10 +9,7 @@ CPUOSC .EQU 18432000 ; CPU OSC FREQ RAMSIZE .EQU 512 ; SIZE OF RAM IN KB, MUST MATCH YOUR HARDWARE!!! CONBAUD .EQU 38400 ; DEFAULT BAUDRATE USED BELOW ; -SERDEV .EQU CIODEV_ASCI ; PRIMARY SERIAL DEVICE FOR BOOT/DEBUG/MONITOR (TYPICALLY CIODEV_UART OR CIODEV_ASCI) -CRTDEV .EQU CIODEV_VDA ; CRT DEVICE (CIODEV_PRPCON, CIODEV_PPPCON, CIODEV_VDA), USE CIODEV_NUL IF NO CRT CRTACT .EQU FALSE ; CRT ACTIVATION AT STARTUP -VDADEV .EQU VDADEV_CVDU ; CRT VDA DEVICE (VDADEV_NONE, VDADEV_VDU, VDADEV_CVDU, VDADEV_N8V, VDADEV_UPD7220) VDAEMU .EQU EMUTYP_ANSI ; DEFAULT VDA EMULATION (EMUTYP_TTY, EMUTYP_ANSI, ...) ; DSKYENABLE .EQU FALSE ; TRUE FOR DSKY SUPPORT (DO NOT COMBINE WITH PPIDE) @@ -31,7 +28,7 @@ ASCI1BAUD .EQU CONBAUD ; ASCI1 BAUDRATE (IMPLEMENTED BY Z180_ASCIB1) VDUENABLE .EQU FALSE ; TRUE FOR VDU BOARD SUPPORT CVDUENABLE .EQU FALSE ; TRUE FOR CVDU BOARD SUPPORT UPD7220ENABLE .EQU FALSE ; TRUE FOR uPD7220 BOARD SUPPORT -N8VENABLE .EQU FALSE ; TRUE FOR N8 (TMS9918) VIDEO/KBD SUPPORT +SCGENABLE .EQU FALSE ; TRUE FOR N8 (TMS9918) VIDEO/KBD SUPPORT ; MDENABLE .EQU TRUE ; TRUE FOR ROM/RAM DISK SUPPORT (ALMOST ALWAYS WANT THIS ENABLED) MDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF MDENABLE = TRUE) @@ -64,9 +61,9 @@ SDMODE .EQU SDMODE_MK4 ; SDMODE_JUHA, SDMODE_CSIO, SDMODE_UART, SDMODE_PPI, SDM SDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE = TRUE) SDCSIOFAST .EQU TRUE ; TABLE-DRIVEN BIT INVERTER ; -PRPENABLE .EQU FALSE ; TRUE FOR PROPIO SD SUPPORT (FOR N8VEM PROPIO ONLY!) +PRPENABLE .EQU FALSE ; TRUE FOR PROPIO SUPPORT PRPIOB .EQU $A8 ; PORT IO ADDRESS BASE -PRPSDENABLE .EQU TRUE ; TRUE FOR PROPIO SD SUPPORT (FOR N8VEM PROPIO ONLY!) +PRPSDENABLE .EQU TRUE ; TRUE FOR PROPIO SD SUPPORT PRPSDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PRPSDENABLE = TRUE) PRPCONENABLE .EQU TRUE ; TRUE FOR PROPIO CONSOLE SUPPORT (PS/2 KBD & VGA VIDEO) ; diff --git a/Source/HBIOS/Config/n8_2312.asm b/Source/HBIOS/Config/n8_2312.asm index 5bbce2cf..5bab0803 100644 --- a/Source/HBIOS/Config/n8_2312.asm +++ b/Source/HBIOS/Config/n8_2312.asm @@ -9,10 +9,7 @@ CPUOSC .EQU 18432000 ; CPU OSC FREQ RAMSIZE .EQU 512 ; SIZE OF RAM IN KB, MUST MATCH YOUR HARDWARE!!! CONBAUD .EQU 38400 ; DEFAULT BAUDRATE USED BELOW ; -SERDEV .EQU CIODEV_ASCI ; PRIMARY SERIAL DEVICE FOR BOOT/DEBUG/MONITOR (TYPICALLY CIODEV_UART OR CIODEV_ASCI) -CRTDEV .EQU CIODEV_VDA ; CRT DEVICE (CIODEV_PRPCON, CIODEV_PPPCON, CIODEV_VDA), USE CIODEV_NUL IF NO CRT CRTACT .EQU FALSE ; CRT ACTIVATION AT STARTUP -VDADEV .EQU VDADEV_N8V ; CRT VDA DEVICE (VDADEV_NONE, VDADEV_VDU, VDADEV_CVDU, VDADEV_N8V, VDADEV_UPD7220) VDAEMU .EQU EMUTYP_ANSI ; DEFAULT VDA EMULATION (EMUTYP_TTY, EMUTYP_ANSI, ...) ; DSKYENABLE .EQU FALSE ; TRUE FOR DSKY SUPPORT (DO NOT COMBINE WITH PPIDE) @@ -31,7 +28,7 @@ ASCI1BAUD .EQU CONBAUD ; ASCI1 BAUDRATE (IMPLEMENTED BY Z180_ASCIB1) VDUENABLE .EQU FALSE ; TRUE FOR VDU BOARD SUPPORT CVDUENABLE .EQU FALSE ; TRUE FOR CVDU BOARD SUPPORT UPD7220ENABLE .EQU FALSE ; TRUE FOR uPD7220 BOARD SUPPORT -N8VENABLE .EQU TRUE ; TRUE FOR N8 (TMS9918) VIDEO/KBD SUPPORT +SCGENABLE .EQU TRUE ; TRUE FOR N8 (TMS9918) VIDEO/KBD SUPPORT ; MDENABLE .EQU TRUE ; TRUE FOR ROM/RAM DISK SUPPORT (ALMOST ALWAYS WANT THIS ENABLED) MDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF MDENABLE = TRUE) @@ -67,9 +64,9 @@ SDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE SDCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) SDCSIOFAST .EQU TRUE ; TABLE-DRIVEN BIT INVERTER ; -PRPENABLE .EQU FALSE ; TRUE FOR PROPIO SD SUPPORT (FOR N8VEM PROPIO ONLY!) +PRPENABLE .EQU FALSE ; TRUE FOR PROPIO SUPPORT PRPIOB .EQU $A8 ; PORT IO ADDRESS BASE -PRPSDENABLE .EQU TRUE ; TRUE FOR PROPIO SD SUPPORT (FOR N8VEM PROPIO ONLY!) +PRPSDENABLE .EQU TRUE ; TRUE FOR PROPIO SD SUPPORT PRPSDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PRPSDENABLE = TRUE) PRPSDCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) PRPCONENABLE .EQU TRUE ; TRUE FOR PROPIO CONSOLE SUPPORT (PS/2 KBD & VGA VIDEO) diff --git a/Source/HBIOS/Config/n8_2511.asm b/Source/HBIOS/Config/n8_2511.asm index 63f921d0..84a9991a 100644 --- a/Source/HBIOS/Config/n8_2511.asm +++ b/Source/HBIOS/Config/n8_2511.asm @@ -9,10 +9,7 @@ CPUOSC .EQU 18432000 ; CPU OSC FREQ RAMSIZE .EQU 512 ; SIZE OF RAM IN KB, MUST MATCH YOUR HARDWARE!!! CONBAUD .EQU 38400 ; DEFAULT BAUDRATE USED BELOW ; -SERDEV .EQU CIODEV_ASCI ; PRIMARY SERIAL DEVICE FOR BOOT/DEBUG/MONITOR (TYPICALLY CIODEV_UART OR CIODEV_ASCI) -CRTDEV .EQU CIODEV_VDA ; CRT DEVICE (CIODEV_PRPCON, CIODEV_PPPCON, CIODEV_VDA), USE CIODEV_NUL IF NO CRT CRTACT .EQU FALSE ; CRT ACTIVATION AT STARTUP -VDADEV .EQU VDADEV_N8V ; CRT VDA DEVICE (VDADEV_NONE, VDADEV_VDU, VDADEV_CVDU, VDADEV_N8V, VDADEV_UPD7220) VDAEMU .EQU EMUTYP_ANSI ; DEFAULT VDA EMULATION (EMUTYP_TTY, EMUTYP_ANSI, ...) ; DSKYENABLE .EQU FALSE ; TRUE FOR DSKY SUPPORT (DO NOT COMBINE WITH PPIDE) @@ -31,7 +28,7 @@ ASCI1BAUD .EQU CONBAUD ; ASCI1 BAUDRATE (IMPLEMENTED BY Z180_ASCIB1) VDUENABLE .EQU FALSE ; TRUE FOR VDU BOARD SUPPORT CVDUENABLE .EQU FALSE ; TRUE FOR CVDU BOARD SUPPORT UPD7220ENABLE .EQU FALSE ; TRUE FOR uPD7220 BOARD SUPPORT -N8VENABLE .EQU TRUE ; TRUE FOR N8 (TMS9918) VIDEO/KBD SUPPORT +SCGENABLE .EQU TRUE ; TRUE FOR N8 (TMS9918) VIDEO/KBD SUPPORT ; MDENABLE .EQU TRUE ; TRUE FOR ROM/RAM DISK SUPPORT (ALMOST ALWAYS WANT THIS ENABLED) MDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF MDENABLE = TRUE) @@ -67,9 +64,9 @@ SDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE SDCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) SDCSIOFAST .EQU FALSE ; TABLE-DRIVEN BIT INVERTER ; -PRPENABLE .EQU FALSE ; TRUE FOR PROPIO SD SUPPORT (FOR N8VEM PROPIO ONLY!) +PRPENABLE .EQU FALSE ; TRUE FOR PROPIO SUPPORT PRPIOB .EQU $A8 ; PORT IO ADDRESS BASE -PRPSDENABLE .EQU TRUE ; TRUE FOR PROPIO SD SUPPORT (FOR N8VEM PROPIO ONLY!) +PRPSDENABLE .EQU TRUE ; TRUE FOR PROPIO SD SUPPORT PRPSDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PRPSDENABLE = TRUE) PRPSDCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) PRPCONENABLE .EQU TRUE ; TRUE FOR PROPIO CONSOLE SUPPORT (PS/2 KBD & VGA VIDEO) diff --git a/Source/HBIOS/Config/sbc_ci.asm b/Source/HBIOS/Config/sbc_ci.asm index 1a8369b3..d0aaff44 100644 --- a/Source/HBIOS/Config/sbc_ci.asm +++ b/Source/HBIOS/Config/sbc_ci.asm @@ -1,6 +1,6 @@ ; ;================================================================================================== -; ROMWBW 2.X CONFIGURATION FOR N8VEM SBC W/ CASSETTE INTERFACE +; ROMWBW 2.X CONFIGURATION FOR SBC W/ CASSETTE INTERFACE ;================================================================================================== ; ; BUILD CONFIGURATION OPTIONS @@ -9,10 +9,7 @@ CPUOSC .EQU 8000000 ; CPU OSC FREQ RAMSIZE .EQU 512 ; SIZE OF RAM IN KB, MUST MATCH YOUR HARDWARE!!! CONBAUD .EQU 38400 ; DEFAULT BAUDRATE USED BELOW ; -SERDEV .EQU CIODEV_UART ; PRIMARY SERIAL DEVICE FOR BOOT/DEBUG/MONITOR (TYPICALLY CIODEV_UART OR CIODEV_ASCI) -CRTDEV .EQU CIODEV_NUL ; CRT DEVICE (CIODEV_PRPCON, CIODEV_PPPCON, CIODEV_VDA), USE CIODEV_NUL IF NO CRT CRTACT .EQU FALSE ; CRT ACTIVATION AT STARTUP -VDADEV .EQU VDADEV_NONE ; CRT VDA DEVICE (VDADEV_NONE, VDADEV_VDU, VDADEV_CVDU, VDADEV_N8V, VDADEV_UPD7220) VDAEMU .EQU EMUTYP_TTY ; DEFAULT VDA EMULATION (EMUTYP_TTY, EMUTYP_ANSI, ...) ; DSKYENABLE .EQU FALSE ; TRUE FOR DSKY SUPPORT (DO NOT COMBINE WITH PPIDE) @@ -26,7 +23,7 @@ UARTCNT .EQU 2 ; NUMBER OF UARTS UART0IOB .EQU $68 ; UART0 IOBASE UART0OSC .EQU 1843200 ; UART0 OSC FREQUENCY UART0BAUD .EQU CONBAUD ; UART0 BAUDRATE -UART0FIFO .EQU TRUE ; UART0 TRUE ENABLES UART FIFO (16550 ASSUMED, N8VEM AND ZETA ONLY) +UART0FIFO .EQU TRUE ; UART0 TRUE ENABLES UART FIFO (16550 ASSUMED, SBC AND ZETA ONLY) UART0AFC .EQU FALSE ; UART0 TRUE ENABLES AUTO FLOW CONTROL (YOUR TERMINAL/UART MUST SUPPORT RTS/CTS FLOW CONTROL!!!) UART1IOB .EQU $80 ; UART1 IOBASE IS $80 FOR CASSETTE INTERFACE UART1OSC .EQU 1843200 ; UART1 OSC FREQUENCY @@ -41,7 +38,7 @@ ASCI1BAUD .EQU CONBAUD ; ASCI1 BAUDRATE (IMPLEMENTED BY Z180_CNTLB1) VDUENABLE .EQU FALSE ; TRUE FOR VDU BOARD SUPPORT CVDUENABLE .EQU FALSE ; TRUE FOR CVDU BOARD SUPPORT UPD7220ENABLE .EQU FALSE ; TRUE FOR uPD7220 BOARD SUPPORT -N8VENABLE .EQU FALSE ; TRUE FOR N8 (TMS9918) VIDEO/KBD SUPPORT +SCGENABLE .EQU FALSE ; TRUE FOR N8 (TMS9918) VIDEO/KBD SUPPORT ; MDENABLE .EQU TRUE ; TRUE FOR ROM/RAM DISK SUPPORT (ALMOST ALWAYS WANT THIS ENABLED) MDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF MDENABLE = TRUE) @@ -77,9 +74,9 @@ SDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE SDCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) SDCSIOFAST .EQU FALSE ; TABLE-DRIVEN BIT INVERTER ; -PRPENABLE .EQU FALSE ; TRUE FOR PROPIO SD SUPPORT (FOR N8VEM PROPIO ONLY!) +PRPENABLE .EQU FALSE ; TRUE FOR PROPIO SUPPORT PRPIOB .EQU $A8 ; PORT IO ADDRESS BASE -PRPSDENABLE .EQU TRUE ; TRUE FOR PROPIO SD SUPPORT (FOR N8VEM PROPIO ONLY!) +PRPSDENABLE .EQU TRUE ; TRUE FOR PROPIO SD SUPPORT PRPSDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PRPSDENABLE = TRUE) PRPSDCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) PRPCONENABLE .EQU TRUE ; TRUE FOR PROPIO CONSOLE SUPPORT (PS/2 KBD & VGA VIDEO) diff --git a/Source/HBIOS/Config/sbc_cvdu.asm b/Source/HBIOS/Config/sbc_cvdu.asm index a9da99c3..e7ad49ed 100644 --- a/Source/HBIOS/Config/sbc_cvdu.asm +++ b/Source/HBIOS/Config/sbc_cvdu.asm @@ -1,6 +1,6 @@ ; ;================================================================================================== -; ROMWBW 2.X CONFIGURATION FOR N8VEM SBC W/ COLOR VDU +; ROMWBW 2.X CONFIGURATION FOR SBC W/ COLOR VDU ;================================================================================================== ; ; BUILD CONFIGURATION OPTIONS @@ -9,10 +9,7 @@ CPUOSC .EQU 8000000 ; CPU OSC FREQ RAMSIZE .EQU 512 ; SIZE OF RAM IN KB, MUST MATCH YOUR HARDWARE!!! CONBAUD .EQU 38400 ; DEFAULT BAUDRATE USED BELOW ; -SERDEV .EQU CIODEV_UART ; PRIMARY SERIAL DEVICE FOR BOOT/DEBUG/MONITOR (TYPICALLY CIODEV_UART OR CIODEV_ASCI) -CRTDEV .EQU CIODEV_VDA ; CRT DEVICE (CIODEV_PRPCON, CIODEV_PPPCON, CIODEV_VDA), USE CIODEV_NUL IF NO CRT CRTACT .EQU FALSE ; CRT ACTIVATION AT STARTUP -VDADEV .EQU VDADEV_CVDU ; CRT VDA DEVICE (VDADEV_NONE, VDADEV_VDU, VDADEV_CVDU, VDADEV_N8V, VDADEV_UPD7220) VDAEMU .EQU EMUTYP_ANSI ; DEFAULT VDA EMULATION (EMUTYP_TTY, EMUTYP_ANSI, ...) ; DSKYENABLE .EQU FALSE ; TRUE FOR DSKY SUPPORT (DO NOT COMBINE WITH PPIDE) @@ -26,7 +23,7 @@ UARTCNT .EQU 1 ; NUMBER OF UARTS UART0IOB .EQU $68 ; UART0 IOBASE UART0OSC .EQU 1843200 ; UART0 OSC FREQUENCY UART0BAUD .EQU CONBAUD ; UART0 BAUDRATE -UART0FIFO .EQU TRUE ; UART0 TRUE ENABLES UART FIFO (16550 ASSUMED, N8VEM AND ZETA ONLY) +UART0FIFO .EQU TRUE ; UART0 TRUE ENABLES UART FIFO (16550 ASSUMED, SBC AND ZETA ONLY) UART0AFC .EQU TRUE ; UART0 TRUE ENABLES AUTO FLOW CONTROL (YOUR TERMINAL/UART MUST SUPPORT RTS/CTS FLOW CONTROL!!!) ; ASCIENABLE .EQU FALSE ; TRUE FOR Z180 ASCI SUPPORT @@ -36,7 +33,7 @@ ASCI1BAUD .EQU CONBAUD ; ASCI1 BAUDRATE (IMPLEMENTED BY Z180_CNTLB1) VDUENABLE .EQU FALSE ; TRUE FOR VDU BOARD SUPPORT CVDUENABLE .EQU TRUE ; TRUE FOR CVDU BOARD SUPPORT UPD7220ENABLE .EQU FALSE ; TRUE FOR uPD7220 BOARD SUPPORT -N8VENABLE .EQU FALSE ; TRUE FOR N8 (TMS9918) VIDEO/KBD SUPPORT +SCGENABLE .EQU FALSE ; TRUE FOR N8 (TMS9918) VIDEO/KBD SUPPORT ; MDENABLE .EQU TRUE ; TRUE FOR ROM/RAM DISK SUPPORT (ALMOST ALWAYS WANT THIS ENABLED) MDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF MDENABLE = TRUE) @@ -72,9 +69,9 @@ SDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE SDCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) SDCSIOFAST .EQU FALSE ; TABLE-DRIVEN BIT INVERTER ; -PRPENABLE .EQU FALSE ; TRUE FOR PROPIO SD SUPPORT (FOR N8VEM PROPIO ONLY!) +PRPENABLE .EQU FALSE ; TRUE FOR PROPIO SUPPORT PRPIOB .EQU $A8 ; PORT IO ADDRESS BASE -PRPSDENABLE .EQU TRUE ; TRUE FOR PROPIO SD SUPPORT (FOR N8VEM PROPIO ONLY!) +PRPSDENABLE .EQU TRUE ; TRUE FOR PROPIO SD SUPPORT PRPSDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PRPSDENABLE = TRUE) PRPSDCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) PRPCONENABLE .EQU TRUE ; TRUE FOR PROPIO CONSOLE SUPPORT (PS/2 KBD & VGA VIDEO) diff --git a/Source/HBIOS/Config/sbc_dide.asm b/Source/HBIOS/Config/sbc_dide.asm index a2951714..9946042a 100644 --- a/Source/HBIOS/Config/sbc_dide.asm +++ b/Source/HBIOS/Config/sbc_dide.asm @@ -1,6 +1,6 @@ ; ;================================================================================================== -; ROMWBW 2.X CONFIGURATION FOR N8VEM SBC W/ DUAL IDE + FLOPPY +; ROMWBW 2.X CONFIGURATION FOR SBC W/ DUAL IDE + FLOPPY ;================================================================================================== ; ; BUILD CONFIGURATION OPTIONS @@ -9,10 +9,7 @@ CPUOSC .EQU 8000000 ; CPU OSC FREQ RAMSIZE .EQU 512 ; SIZE OF RAM IN KB, MUST MATCH YOUR HARDWARE!!! CONBAUD .EQU 38400 ; DEFAULT BAUDRATE USED BELOW ; -SERDEV .EQU CIODEV_UART ; PRIMARY SERIAL DEVICE FOR BOOT/DEBUG/MONITOR (TYPICALLY CIODEV_UART OR CIODEV_ASCI) -CRTDEV .EQU CIODEV_NUL ; CRT DEVICE (CIODEV_PRPCON, CIODEV_PPPCON, CIODEV_VDA), USE CIODEV_NUL IF NO CRT CRTACT .EQU FALSE ; CRT ACTIVATION AT STARTUP -VDADEV .EQU VDADEV_NONE ; CRT VDA DEVICE (VDADEV_NONE, VDADEV_VDU, VDADEV_CVDU, VDADEV_N8V, VDADEV_UPD7220) VDAEMU .EQU EMUTYP_TTY ; DEFAULT VDA EMULATION (EMUTYP_TTY, EMUTYP_ANSI, ...) ; DSKYENABLE .EQU FALSE ; TRUE FOR DSKY SUPPORT (DO NOT COMBINE WITH PPIDE) @@ -26,7 +23,7 @@ UARTCNT .EQU 1 ; NUMBER OF UARTS UART0IOB .EQU $68 ; UART0 IOBASE UART0OSC .EQU 1843200 ; UART0 OSC FREQUENCY UART0BAUD .EQU CONBAUD ; UART0 BAUDRATE -UART0FIFO .EQU TRUE ; UART0 TRUE ENABLES UART FIFO (16550 ASSUMED, N8VEM AND ZETA ONLY) +UART0FIFO .EQU TRUE ; UART0 TRUE ENABLES UART FIFO (16550 ASSUMED, SBC AND ZETA ONLY) UART0AFC .EQU FALSE ; UART0 TRUE ENABLES AUTO FLOW CONTROL (YOUR TERMINAL/UART MUST SUPPORT RTS/CTS FLOW CONTROL!!!) ; ASCIENABLE .EQU FALSE ; TRUE FOR Z180 ASCI SUPPORT @@ -36,7 +33,7 @@ ASCI1BAUD .EQU CONBAUD ; ASCI1 BAUDRATE (IMPLEMENTED BY Z180_CNTLB1) VDUENABLE .EQU FALSE ; TRUE FOR VDU BOARD SUPPORT CVDUENABLE .EQU FALSE ; TRUE FOR CVDU BOARD SUPPORT UPD7220ENABLE .EQU FALSE ; TRUE FOR uPD7220 BOARD SUPPORT -N8VENABLE .EQU FALSE ; TRUE FOR N8 (TMS9918) VIDEO/KBD SUPPORT +SCGENABLE .EQU FALSE ; TRUE FOR N8 (TMS9918) VIDEO/KBD SUPPORT ; MDENABLE .EQU TRUE ; TRUE FOR ROM/RAM DISK SUPPORT (ALMOST ALWAYS WANT THIS ENABLED) MDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF MDENABLE = TRUE) @@ -72,9 +69,9 @@ SDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE SDCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) SDCSIOFAST .EQU FALSE ; TABLE-DRIVEN BIT INVERTER ; -PRPENABLE .EQU FALSE ; TRUE FOR PROPIO SD SUPPORT (FOR N8VEM PROPIO ONLY!) +PRPENABLE .EQU FALSE ; TRUE FOR PROPIO SUPPORT PRPIOB .EQU $A8 ; PORT IO ADDRESS BASE -PRPSDENABLE .EQU TRUE ; TRUE FOR PROPIO SD SUPPORT (FOR N8VEM PROPIO ONLY!) +PRPSDENABLE .EQU TRUE ; TRUE FOR PROPIO SD SUPPORT PRPSDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PRPSDENABLE = TRUE) PRPSDCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) PRPCONENABLE .EQU TRUE ; TRUE FOR PROPIO CONSOLE SUPPORT (PS/2 KBD & VGA VIDEO) diff --git a/Source/HBIOS/Config/sbc_diskio.asm b/Source/HBIOS/Config/sbc_diskio.asm index f11dcf2f..51fd4711 100644 --- a/Source/HBIOS/Config/sbc_diskio.asm +++ b/Source/HBIOS/Config/sbc_diskio.asm @@ -1,6 +1,6 @@ ; ;================================================================================================== -; ROMWBW 2.X CONFIGURATION FOR N8VEM W/ DISKIO (ORIGINAL V1) +; ROMWBW 2.X CONFIGURATION FOR SBC W/ DISKIO (ORIGINAL V1) ;================================================================================================== ; ; BUILD CONFIGURATION OPTIONS @@ -9,10 +9,7 @@ CPUOSC .EQU 8000000 ; CPU OSC FREQ RAMSIZE .EQU 512 ; SIZE OF RAM IN KB, MUST MATCH YOUR HARDWARE!!! CONBAUD .EQU 38400 ; DEFAULT BAUDRATE USED BELOW ; -SERDEV .EQU CIODEV_UART ; PRIMARY SERIAL DEVICE FOR BOOT/DEBUG/MONITOR (TYPICALLY CIODEV_UART OR CIODEV_ASCI) -CRTDEV .EQU CIODEV_NUL ; CRT DEVICE (CIODEV_PRPCON, CIODEV_PPPCON, CIODEV_VDA), USE CIODEV_NUL IF NO CRT CRTACT .EQU FALSE ; CRT ACTIVATION AT STARTUP -VDADEV .EQU VDADEV_NONE ; CRT VDA DEVICE (VDADEV_NONE, VDADEV_VDU, VDADEV_CVDU, VDADEV_N8V, VDADEV_UPD7220) VDAEMU .EQU EMUTYP_TTY ; DEFAULT VDA EMULATION (EMUTYP_TTY, EMUTYP_ANSI, ...) ; DSKYENABLE .EQU FALSE ; TRUE FOR DSKY SUPPORT (DO NOT COMBINE WITH PPIDE) @@ -26,7 +23,7 @@ UARTCNT .EQU 1 ; NUMBER OF UARTS UART0IOB .EQU $68 ; UART0 IOBASE UART0OSC .EQU 1843200 ; UART0 OSC FREQUENCY UART0BAUD .EQU CONBAUD ; UART0 BAUDRATE -UART0FIFO .EQU TRUE ; UART0 TRUE ENABLES UART FIFO (16550 ASSUMED, N8VEM AND ZETA ONLY) +UART0FIFO .EQU TRUE ; UART0 TRUE ENABLES UART FIFO (16550 ASSUMED, SBC AND ZETA ONLY) UART0AFC .EQU FALSE ; UART0 TRUE ENABLES AUTO FLOW CONTROL (YOUR TERMINAL/UART MUST SUPPORT RTS/CTS FLOW CONTROL!!!) ; ASCIENABLE .EQU FALSE ; TRUE FOR Z180 ASCI SUPPORT @@ -36,7 +33,7 @@ ASCI1BAUD .EQU CONBAUD ; ASCI1 BAUDRATE (IMPLEMENTED BY Z180_CNTLB1) VDUENABLE .EQU FALSE ; TRUE FOR VDU BOARD SUPPORT CVDUENABLE .EQU FALSE ; TRUE FOR CVDU BOARD SUPPORT UPD7220ENABLE .EQU FALSE ; TRUE FOR uPD7220 BOARD SUPPORT -N8VENABLE .EQU FALSE ; TRUE FOR N8 (TMS9918) VIDEO/KBD SUPPORT +SCGENABLE .EQU FALSE ; TRUE FOR N8 (TMS9918) VIDEO/KBD SUPPORT ; MDENABLE .EQU TRUE ; TRUE FOR ROM/RAM DISK SUPPORT (ALMOST ALWAYS WANT THIS ENABLED) MDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF MDENABLE = TRUE) @@ -72,9 +69,9 @@ SDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE SDCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) SDCSIOFAST .EQU FALSE ; TABLE-DRIVEN BIT INVERTER ; -PRPENABLE .EQU FALSE ; TRUE FOR PROPIO SD SUPPORT (FOR N8VEM PROPIO ONLY!) +PRPENABLE .EQU FALSE ; TRUE FOR PROPIO SUPPORT PRPIOB .EQU $A8 ; PORT IO ADDRESS BASE -PRPSDENABLE .EQU TRUE ; TRUE FOR PROPIO SD SUPPORT (FOR N8VEM PROPIO ONLY!) +PRPSDENABLE .EQU TRUE ; TRUE FOR PROPIO SD SUPPORT PRPSDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PRPSDENABLE = TRUE) PRPSDCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) PRPCONENABLE .EQU TRUE ; TRUE FOR PROPIO CONSOLE SUPPORT (PS/2 KBD & VGA VIDEO) diff --git a/Source/HBIOS/Config/sbc_diskio3+cvdu.asm b/Source/HBIOS/Config/sbc_diskio3+cvdu.asm index 1cb14068..3fe489eb 100644 --- a/Source/HBIOS/Config/sbc_diskio3+cvdu.asm +++ b/Source/HBIOS/Config/sbc_diskio3+cvdu.asm @@ -1,6 +1,6 @@ ; ;================================================================================================== -; ROMWBW 2.X CONFIGURATION FOR N8VEM SBC W/ COLOR VDU +; ROMWBW 2.X CONFIGURATION FOR SBC W/ COLOR VDU ;================================================================================================== ; ; BUILD CONFIGURATION OPTIONS @@ -9,10 +9,7 @@ CPUOSC .EQU 8000000 ; CPU OSC FREQ RAMSIZE .EQU 512 ; SIZE OF RAM IN KB, MUST MATCH YOUR HARDWARE!!! CONBAUD .EQU 38400 ; DEFAULT BAUDRATE USED BELOW ; -SERDEV .EQU CIODEV_UART ; PRIMARY SERIAL DEVICE FOR BOOT/DEBUG/MONITOR (TYPICALLY CIODEV_UART OR CIODEV_ASCI) -CRTDEV .EQU CIODEV_VDA ; CRT DEVICE (CIODEV_PRPCON, CIODEV_PPPCON, CIODEV_VDA), USE CIODEV_NUL IF NO CRT CRTACT .EQU TRUE ; CRT ACTIVATION AT STARTUP -VDADEV .EQU VDADEV_CVDU ; CRT VDA DEVICE (VDADEV_NONE, VDADEV_VDU, VDADEV_CVDU, VDADEV_N8V, VDADEV_UPD7220) VDAEMU .EQU EMUTYP_ANSI ; DEFAULT VDA EMULATION (EMUTYP_TTY, EMUTYP_ANSI, ...) ; DSKYENABLE .EQU FALSE ; TRUE FOR DSKY SUPPORT (DO NOT COMBINE WITH PPIDE) @@ -26,7 +23,7 @@ UARTCNT .EQU 1 ; NUMBER OF UARTS UART0IOB .EQU $68 ; UART0 IOBASE UART0OSC .EQU 1843200 ; UART0 OSC FREQUENCY UART0BAUD .EQU CONBAUD ; UART0 BAUDRATE -UART0FIFO .EQU TRUE ; UART0 TRUE ENABLES UART FIFO (16550 ASSUMED, N8VEM AND ZETA ONLY) +UART0FIFO .EQU TRUE ; UART0 TRUE ENABLES UART FIFO (16550 ASSUMED, SBC AND ZETA ONLY) UART0AFC .EQU FALSE ; UART0 TRUE ENABLES AUTO FLOW CONTROL (YOUR TERMINAL/UART MUST SUPPORT RTS/CTS FLOW CONTROL!!!) ; ASCIENABLE .EQU FALSE ; TRUE FOR Z180 ASCI SUPPORT @@ -36,7 +33,7 @@ ASCI1BAUD .EQU CONBAUD ; ASCI1 BAUDRATE (IMPLEMENTED BY Z180_CNTLB1) VDUENABLE .EQU FALSE ; TRUE FOR VDU BOARD SUPPORT CVDUENABLE .EQU TRUE ; TRUE FOR CVDU BOARD SUPPORT UPD7220ENABLE .EQU FALSE ; TRUE FOR uPD7220 BOARD SUPPORT -N8VENABLE .EQU FALSE ; TRUE FOR N8 (TMS9918) VIDEO/KBD SUPPORT +SCGENABLE .EQU FALSE ; TRUE FOR N8 (TMS9918) VIDEO/KBD SUPPORT ; MDENABLE .EQU TRUE ; TRUE FOR ROM/RAM DISK SUPPORT (ALMOST ALWAYS WANT THIS ENABLED) MDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF MDENABLE = TRUE) @@ -72,9 +69,9 @@ SDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE SDCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) SDCSIOFAST .EQU FALSE ; TABLE-DRIVEN BIT INVERTER ; -PRPENABLE .EQU FALSE ; TRUE FOR PROPIO SD SUPPORT (FOR N8VEM PROPIO ONLY!) +PRPENABLE .EQU FALSE ; TRUE FOR PROPIO SUPPORT PRPIOB .EQU $A8 ; PORT IO ADDRESS BASE -PRPSDENABLE .EQU TRUE ; TRUE FOR PROPIO SD SUPPORT (FOR N8VEM PROPIO ONLY!) +PRPSDENABLE .EQU TRUE ; TRUE FOR PROPIO SD SUPPORT PRPSDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PRPSDENABLE = TRUE) PRPSDCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) PRPCONENABLE .EQU TRUE ; TRUE FOR PROPIO CONSOLE SUPPORT (PS/2 KBD & VGA VIDEO) diff --git a/Source/HBIOS/Config/sbc_diskio3.asm b/Source/HBIOS/Config/sbc_diskio3.asm index 83281aec..17f14447 100644 --- a/Source/HBIOS/Config/sbc_diskio3.asm +++ b/Source/HBIOS/Config/sbc_diskio3.asm @@ -1,6 +1,6 @@ ; ;================================================================================================== -; ROMWBW 2.X CONFIGURATION FOR N8VEM SBC W/ DISKIO V3 +; ROMWBW 2.X CONFIGURATION FOR SBC W/ DISKIO V3 ;================================================================================================== ; ; BUILD CONFIGURATION OPTIONS @@ -9,10 +9,7 @@ CPUOSC .EQU 8000000 ; CPU OSC FREQ RAMSIZE .EQU 512 ; SIZE OF RAM IN KB, MUST MATCH YOUR HARDWARE!!! CONBAUD .EQU 38400 ; DEFAULT BAUDRATE USED BELOW ; -SERDEV .EQU CIODEV_UART ; PRIMARY SERIAL DEVICE FOR BOOT/DEBUG/MONITOR (TYPICALLY CIODEV_UART OR CIODEV_ASCI) -CRTDEV .EQU CIODEV_NUL ; CRT DEVICE (CIODEV_PRPCON, CIODEV_PPPCON, CIODEV_VDA), USE CIODEV_NUL IF NO CRT CRTACT .EQU FALSE ; CRT ACTIVATION AT STARTUP -VDADEV .EQU VDADEV_NONE ; CRT VDA DEVICE (VDADEV_NONE, VDADEV_VDU, VDADEV_CVDU, VDADEV_N8V, VDADEV_UPD7220) VDAEMU .EQU EMUTYP_TTY ; DEFAULT VDA EMULATION (EMUTYP_TTY, EMUTYP_ANSI, ...) ; DSKYENABLE .EQU FALSE ; TRUE FOR DSKY SUPPORT (DO NOT COMBINE WITH PPIDE) @@ -26,7 +23,7 @@ UARTCNT .EQU 1 ; NUMBER OF UARTS UART0IOB .EQU $68 ; UART0 IOBASE UART0OSC .EQU 1843200 ; UART0 OSC FREQUENCY UART0BAUD .EQU CONBAUD ; UART0 BAUDRATE -UART0FIFO .EQU TRUE ; UART0 TRUE ENABLES UART FIFO (16550 ASSUMED, N8VEM AND ZETA ONLY) +UART0FIFO .EQU TRUE ; UART0 TRUE ENABLES UART FIFO (16550 ASSUMED, SBC AND ZETA ONLY) UART0AFC .EQU FALSE ; UART0 TRUE ENABLES AUTO FLOW CONTROL (YOUR TERMINAL/UART MUST SUPPORT RTS/CTS FLOW CONTROL!!!) ; ASCIENABLE .EQU FALSE ; TRUE FOR Z180 ASCI SUPPORT @@ -36,7 +33,7 @@ ASCI1BAUD .EQU CONBAUD ; ASCI1 BAUDRATE (IMPLEMENTED BY Z180_CNTLB1) VDUENABLE .EQU FALSE ; TRUE FOR VDU BOARD SUPPORT CVDUENABLE .EQU FALSE ; TRUE FOR CVDU BOARD SUPPORT UPD7220ENABLE .EQU FALSE ; TRUE FOR uPD7220 BOARD SUPPORT -N8VENABLE .EQU FALSE ; TRUE FOR N8 (TMS9918) VIDEO/KBD SUPPORT +SCGENABLE .EQU FALSE ; TRUE FOR N8 (TMS9918) VIDEO/KBD SUPPORT ; MDENABLE .EQU TRUE ; TRUE FOR ROM/RAM DISK SUPPORT (ALMOST ALWAYS WANT THIS ENABLED) MDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF MDENABLE = TRUE) @@ -72,9 +69,9 @@ SDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE SDCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) SDCSIOFAST .EQU FALSE ; TABLE-DRIVEN BIT INVERTER ; -PRPENABLE .EQU FALSE ; TRUE FOR PROPIO SD SUPPORT (FOR N8VEM PROPIO ONLY!) +PRPENABLE .EQU FALSE ; TRUE FOR PROPIO SUPPORT PRPIOB .EQU $A8 ; PORT IO ADDRESS BASE -PRPSDENABLE .EQU TRUE ; TRUE FOR PROPIO SD SUPPORT (FOR N8VEM PROPIO ONLY!) +PRPSDENABLE .EQU TRUE ; TRUE FOR PROPIO SD SUPPORT PRPSDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PRPSDENABLE = TRUE) PRPSDCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) PRPCONENABLE .EQU TRUE ; TRUE FOR PROPIO CONSOLE SUPPORT (PS/2 KBD & VGA VIDEO) diff --git a/Source/HBIOS/Config/sbc_dsd.asm b/Source/HBIOS/Config/sbc_dsd.asm index 4eb10cd8..c2774326 100644 --- a/Source/HBIOS/Config/sbc_dsd.asm +++ b/Source/HBIOS/Config/sbc_dsd.asm @@ -1,6 +1,6 @@ ; ;================================================================================================== -; ROMWBW 2.X CONFIGURATION FOR N8VEM SBC W/ DUAL SD +; ROMWBW 2.X CONFIGURATION FOR SBC W/ DUAL SD ;================================================================================================== ; ; BUILD CONFIGURATION OPTIONS @@ -9,10 +9,7 @@ CPUOSC .EQU 8000000 ; CPU OSC FREQ RAMSIZE .EQU 512 ; SIZE OF RAM IN KB, MUST MATCH YOUR HARDWARE!!! CONBAUD .EQU 38400 ; DEFAULT BAUDRATE USED BELOW ; -SERDEV .EQU CIODEV_UART ; PRIMARY SERIAL DEVICE FOR BOOT/DEBUG/MONITOR (TYPICALLY CIODEV_UART OR CIODEV_ASCI) -CRTDEV .EQU CIODEV_NUL ; CRT DEVICE (CIODEV_PRPCON, CIODEV_PPPCON, CIODEV_VDA), USE CIODEV_NUL IF NO CRT CRTACT .EQU FALSE ; CRT ACTIVATION AT STARTUP -VDADEV .EQU VDADEV_NONE ; CRT VDA DEVICE (VDADEV_NONE, VDADEV_VDU, VDADEV_CVDU, VDADEV_N8V, VDADEV_UPD7220) VDAEMU .EQU EMUTYP_TTY ; DEFAULT VDA EMULATION (EMUTYP_TTY, EMUTYP_ANSI, ...) ; DSKYENABLE .EQU FALSE ; TRUE FOR DSKY SUPPORT (DO NOT COMBINE WITH PPIDE) @@ -26,7 +23,7 @@ UARTCNT .EQU 1 ; NUMBER OF UARTS UART0IOB .EQU $68 ; UART0 IOBASE UART0OSC .EQU 1843200 ; UART0 OSC FREQUENCY UART0BAUD .EQU CONBAUD ; UART0 BAUDRATE -UART0FIFO .EQU TRUE ; UART0 TRUE ENABLES UART FIFO (16550 ASSUMED, N8VEM AND ZETA ONLY) +UART0FIFO .EQU TRUE ; UART0 TRUE ENABLES UART FIFO (16550 ASSUMED, SBC AND ZETA ONLY) UART0AFC .EQU FALSE ; UART0 TRUE ENABLES AUTO FLOW CONTROL (YOUR TERMINAL/UART MUST SUPPORT RTS/CTS FLOW CONTROL!!!) ; ASCIENABLE .EQU FALSE ; TRUE FOR Z180 ASCI SUPPORT @@ -36,7 +33,7 @@ ASCI1BAUD .EQU CONBAUD ; ASCI1 BAUDRATE (IMPLEMENTED BY Z180_CNTLB1) VDUENABLE .EQU FALSE ; TRUE FOR VDU BOARD SUPPORT CVDUENABLE .EQU FALSE ; TRUE FOR CVDU BOARD SUPPORT UPD7220ENABLE .EQU FALSE ; TRUE FOR uPD7220 BOARD SUPPORT -N8VENABLE .EQU FALSE ; TRUE FOR N8 (TMS9918) VIDEO/KBD SUPPORT +SCGENABLE .EQU FALSE ; TRUE FOR N8 (TMS9918) VIDEO/KBD SUPPORT ; MDENABLE .EQU TRUE ; TRUE FOR ROM/RAM DISK SUPPORT (ALMOST ALWAYS WANT THIS ENABLED) MDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF MDENABLE = TRUE) @@ -72,9 +69,9 @@ SDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE SDCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) SDCSIOFAST .EQU FALSE ; TABLE-DRIVEN BIT INVERTER ; -PRPENABLE .EQU FALSE ; TRUE FOR PROPIO SD SUPPORT (FOR N8VEM PROPIO ONLY!) +PRPENABLE .EQU FALSE ; TRUE FOR PROPIO SUPPORT PRPIOB .EQU $A8 ; PORT IO ADDRESS BASE -PRPSDENABLE .EQU TRUE ; TRUE FOR PROPIO SD SUPPORT (FOR N8VEM PROPIO ONLY!) +PRPSDENABLE .EQU TRUE ; TRUE FOR PROPIO SD SUPPORT PRPSDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PRPSDENABLE = TRUE) PRPSDCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) PRPCONENABLE .EQU TRUE ; TRUE FOR PROPIO CONSOLE SUPPORT (PS/2 KBD & VGA VIDEO) diff --git a/Source/HBIOS/Config/sbc_mfpic.asm b/Source/HBIOS/Config/sbc_mfpic.asm index be937ace..36834ed2 100644 --- a/Source/HBIOS/Config/sbc_mfpic.asm +++ b/Source/HBIOS/Config/sbc_mfpic.asm @@ -1,6 +1,6 @@ ; ;================================================================================================== -; ROMWBW 2.X CONFIGURATION FOR N8VEM SBC W/ MF/PIC +; ROMWBW 2.X CONFIGURATION FOR SBC W/ MF/PIC ;================================================================================================== ; ; BUILD CONFIGURATION OPTIONS @@ -9,10 +9,7 @@ CPUOSC .EQU 8000000 ; CPU OSC FREQ RAMSIZE .EQU 512 ; SIZE OF RAM IN KB, MUST MATCH YOUR HARDWARE!!! CONBAUD .EQU 38400 ; DEFAULT BAUDRATE USED BELOW ; -SERDEV .EQU CIODEV_UART ; PRIMARY SERIAL DEVICE FOR BOOT/DEBUG/MONITOR (TYPICALLY CIODEV_UART OR CIODEV_ASCI) -CRTDEV .EQU CIODEV_NUL ; CRT DEVICE (CIODEV_PRPCON, CIODEV_PPPCON, CIODEV_VDA), USE CIODEV_NUL IF NO CRT CRTACT .EQU FALSE ; CRT ACTIVATION AT STARTUP -VDADEV .EQU VDADEV_NONE ; CRT VDA DEVICE (VDADEV_NONE, VDADEV_VDU, VDADEV_CVDU, VDADEV_N8V, VDADEV_UPD7220) VDAEMU .EQU EMUTYP_TTY ; DEFAULT VDA EMULATION (EMUTYP_TTY, EMUTYP_ANSI, ...) ; DSKYENABLE .EQU FALSE ; TRUE FOR DSKY SUPPORT (DO NOT COMBINE WITH PPIDE) @@ -26,12 +23,12 @@ UARTCNT .EQU 2 ; NUMBER OF UARTS UART0IOB .EQU $68 ; UART0 IOBASE UART0OSC .EQU 1843200 ; UART0 OSC FREQUENCY UART0BAUD .EQU CONBAUD ; UART0 BAUDRATE -UART0FIFO .EQU TRUE ; UART0 TRUE ENABLES UART FIFO (16550 ASSUMED, N8VEM AND ZETA ONLY) +UART0FIFO .EQU TRUE ; UART0 TRUE ENABLES UART FIFO (16550 ASSUMED, SBC AND ZETA ONLY) UART0AFC .EQU FALSE ; UART0 TRUE ENABLES AUTO FLOW CONTROL (YOUR TERMINAL/UART MUST SUPPORT RTS/CTS FLOW CONTROL!!!) UART1IOB .EQU $48 ; UART1 IOBASE AT $48 FOR MFPIC UART1OSC .EQU 1843200 ; UART1 OSC FREQUENCY UART1BAUD .EQU CONBAUD ; UART1 BAUDRATE -UART1FIFO .EQU TRUE ; UART1 TRUE ENABLES UART FIFO (16550 ASSUMED, N8VEM AND ZETA ONLY) +UART1FIFO .EQU TRUE ; UART1 TRUE ENABLES UART FIFO (16550 ASSUMED, SBC AND ZETA ONLY) UART1AFC .EQU FALSE ; UART1 TRUE ENABLES AUTO FLOW CONTROL (YOUR TERMINAL/UART MUST SUPPORT RTS/CTS FLOW CONTROL!!!) ; ASCIENABLE .EQU FALSE ; TRUE FOR Z180 ASCI SUPPORT @@ -41,7 +38,7 @@ ASCI1BAUD .EQU CONBAUD ; ASCI1 BAUDRATE (IMPLEMENTED BY Z180_CNTLB1) VDUENABLE .EQU FALSE ; TRUE FOR VDU BOARD SUPPORT CVDUENABLE .EQU FALSE ; TRUE FOR CVDU BOARD SUPPORT UPD7220ENABLE .EQU FALSE ; TRUE FOR uPD7220 BOARD SUPPORT -N8VENABLE .EQU FALSE ; TRUE FOR N8 (TMS9918) VIDEO/KBD SUPPORT +SCGENABLE .EQU FALSE ; TRUE FOR N8 (TMS9918) VIDEO/KBD SUPPORT ; MDENABLE .EQU TRUE ; TRUE FOR ROM/RAM DISK SUPPORT (ALMOST ALWAYS WANT THIS ENABLED) MDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF MDENABLE = TRUE) @@ -77,9 +74,9 @@ SDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE SDCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) SDCSIOFAST .EQU FALSE ; TABLE-DRIVEN BIT INVERTER ; -PRPENABLE .EQU FALSE ; TRUE FOR PROPIO SD SUPPORT (FOR N8VEM PROPIO ONLY!) +PRPENABLE .EQU FALSE ; TRUE FOR PROPIO SUPPORT PRPIOB .EQU $A8 ; PORT IO ADDRESS BASE -PRPSDENABLE .EQU TRUE ; TRUE FOR PROPIO SD SUPPORT (FOR N8VEM PROPIO ONLY!) +PRPSDENABLE .EQU TRUE ; TRUE FOR PROPIO SD SUPPORT PRPSDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PRPSDENABLE = TRUE) PRPSDCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) PRPCONENABLE .EQU TRUE ; TRUE FOR PROPIO CONSOLE SUPPORT (PS/2 KBD & VGA VIDEO) diff --git a/Source/HBIOS/Config/sbc_ppide.asm b/Source/HBIOS/Config/sbc_ppide.asm index f0f93715..f7760347 100644 --- a/Source/HBIOS/Config/sbc_ppide.asm +++ b/Source/HBIOS/Config/sbc_ppide.asm @@ -1,6 +1,6 @@ ; ;================================================================================================== -; ROMWBW 2.X CONFIGURATION FOR N8VEM SBC W/ PPIDE +; ROMWBW 2.X CONFIGURATION FOR SBC W/ PPIDE ;================================================================================================== ; ; BUILD CONFIGURATION OPTIONS @@ -9,10 +9,7 @@ CPUOSC .EQU 8000000 ; CPU OSC FREQ RAMSIZE .EQU 512 ; SIZE OF RAM IN KB, MUST MATCH YOUR HARDWARE!!! CONBAUD .EQU 38400 ; DEFAULT BAUDRATE USED BELOW ; -SERDEV .EQU CIODEV_UART ; PRIMARY SERIAL DEVICE FOR BOOT/DEBUG/MONITOR (TYPICALLY CIODEV_UART OR CIODEV_ASCI) -CRTDEV .EQU CIODEV_NUL ; CRT DEVICE (CIODEV_PRPCON, CIODEV_PPPCON, CIODEV_VDA), USE CIODEV_NUL IF NO CRT CRTACT .EQU FALSE ; CRT ACTIVATION AT STARTUP -VDADEV .EQU VDADEV_NONE ; CRT VDA DEVICE (VDADEV_NONE, VDADEV_VDU, VDADEV_CVDU, VDADEV_N8V, VDADEV_UPD7220) VDAEMU .EQU EMUTYP_TTY ; DEFAULT VDA EMULATION (EMUTYP_TTY, EMUTYP_ANSI, ...) ; DSKYENABLE .EQU FALSE ; TRUE FOR DSKY SUPPORT (DO NOT COMBINE WITH PPIDE) @@ -26,7 +23,7 @@ UARTCNT .EQU 1 ; NUMBER OF UARTS UART0IOB .EQU $68 ; UART0 IOBASE UART0OSC .EQU 1843200 ; UART0 OSC FREQUENCY UART0BAUD .EQU CONBAUD ; UART0 BAUDRATE -UART0FIFO .EQU TRUE ; UART0 TRUE ENABLES UART FIFO (16550 ASSUMED, N8VEM AND ZETA ONLY) +UART0FIFO .EQU TRUE ; UART0 TRUE ENABLES UART FIFO (16550 ASSUMED, SBC AND ZETA ONLY) UART0AFC .EQU FALSE ; UART0 TRUE ENABLES AUTO FLOW CONTROL (YOUR TERMINAL/UART MUST SUPPORT RTS/CTS FLOW CONTROL!!!) ; ASCIENABLE .EQU FALSE ; TRUE FOR Z180 ASCI SUPPORT @@ -36,7 +33,7 @@ ASCI1BAUD .EQU CONBAUD ; ASCI1 BAUDRATE (IMPLEMENTED BY Z180_CNTLB1) VDUENABLE .EQU FALSE ; TRUE FOR VDU BOARD SUPPORT CVDUENABLE .EQU FALSE ; TRUE FOR CVDU BOARD SUPPORT UPD7220ENABLE .EQU FALSE ; TRUE FOR uPD7220 BOARD SUPPORT -N8VENABLE .EQU FALSE ; TRUE FOR N8 (TMS9918) VIDEO/KBD SUPPORT +SCGENABLE .EQU FALSE ; TRUE FOR N8 (TMS9918) VIDEO/KBD SUPPORT ; MDENABLE .EQU TRUE ; TRUE FOR ROM/RAM DISK SUPPORT (ALMOST ALWAYS WANT THIS ENABLED) MDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF MDENABLE = TRUE) @@ -72,9 +69,9 @@ SDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE SDCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) SDCSIOFAST .EQU FALSE ; TABLE-DRIVEN BIT INVERTER ; -PRPENABLE .EQU FALSE ; TRUE FOR PROPIO SD SUPPORT (FOR N8VEM PROPIO ONLY!) +PRPENABLE .EQU FALSE ; TRUE FOR PROPIO SUPPORT PRPIOB .EQU $A8 ; PORT IO ADDRESS BASE -PRPSDENABLE .EQU TRUE ; TRUE FOR PROPIO SD SUPPORT (FOR N8VEM PROPIO ONLY!) +PRPSDENABLE .EQU TRUE ; TRUE FOR PROPIO SD SUPPORT PRPSDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PRPSDENABLE = TRUE) PRPSDCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) PRPCONENABLE .EQU TRUE ; TRUE FOR PROPIO CONSOLE SUPPORT (PS/2 KBD & VGA VIDEO) diff --git a/Source/HBIOS/Config/sbc_ppisd.asm b/Source/HBIOS/Config/sbc_ppisd.asm index 8243fdf5..4a14ac25 100644 --- a/Source/HBIOS/Config/sbc_ppisd.asm +++ b/Source/HBIOS/Config/sbc_ppisd.asm @@ -1,6 +1,6 @@ ; ;================================================================================================== -; ROMWBW 2.X CONFIGURATION FOR N8VEM SBC W/ PPISD +; ROMWBW 2.X CONFIGURATION FOR SBC W/ PPISD ;================================================================================================== ; ; BUILD CONFIGURATION OPTIONS @@ -9,10 +9,7 @@ CPUOSC .EQU 8000000 ; CPU OSC FREQ RAMSIZE .EQU 512 ; SIZE OF RAM IN KB, MUST MATCH YOUR HARDWARE!!! CONBAUD .EQU 38400 ; DEFAULT BAUDRATE USED BELOW ; -SERDEV .EQU CIODEV_UART ; PRIMARY SERIAL DEVICE FOR BOOT/DEBUG/MONITOR (TYPICALLY CIODEV_UART OR CIODEV_ASCI) -CRTDEV .EQU CIODEV_NUL ; CRT DEVICE (CIODEV_PRPCON, CIODEV_PPPCON, CIODEV_VDA), USE CIODEV_NUL IF NO CRT CRTACT .EQU FALSE ; CRT ACTIVATION AT STARTUP -VDADEV .EQU VDADEV_NONE ; CRT VDA DEVICE (VDADEV_NONE, VDADEV_VDU, VDADEV_CVDU, VDADEV_N8V, VDADEV_UPD7220) VDAEMU .EQU EMUTYP_TTY ; DEFAULT VDA EMULATION (EMUTYP_TTY, EMUTYP_ANSI, ...) ; DSKYENABLE .EQU FALSE ; TRUE FOR DSKY SUPPORT (DO NOT COMBINE WITH PPIDE) @@ -26,7 +23,7 @@ UARTCNT .EQU 1 ; NUMBER OF UARTS UART0IOB .EQU $68 ; UART0 IOBASE UART0OSC .EQU 1843200 ; UART0 OSC FREQUENCY UART0BAUD .EQU CONBAUD ; UART0 BAUDRATE -UART0FIFO .EQU TRUE ; UART0 TRUE ENABLES UART FIFO (16550 ASSUMED, N8VEM AND ZETA ONLY) +UART0FIFO .EQU TRUE ; UART0 TRUE ENABLES UART FIFO (16550 ASSUMED, SBC AND ZETA ONLY) UART0AFC .EQU FALSE ; UART0 TRUE ENABLES AUTO FLOW CONTROL (YOUR TERMINAL/UART MUST SUPPORT RTS/CTS FLOW CONTROL!!!) ; ASCIENABLE .EQU FALSE ; TRUE FOR Z180 ASCI SUPPORT @@ -36,7 +33,7 @@ ASCI1BAUD .EQU CONBAUD ; ASCI1 BAUDRATE (IMPLEMENTED BY Z180_CNTLB1) VDUENABLE .EQU FALSE ; TRUE FOR VDU BOARD SUPPORT CVDUENABLE .EQU FALSE ; TRUE FOR CVDU BOARD SUPPORT UPD7220ENABLE .EQU FALSE ; TRUE FOR uPD7220 BOARD SUPPORT -N8VENABLE .EQU FALSE ; TRUE FOR N8 (TMS9918) VIDEO/KBD SUPPORT +SCGENABLE .EQU FALSE ; TRUE FOR N8 (TMS9918) VIDEO/KBD SUPPORT ; MDENABLE .EQU TRUE ; TRUE FOR ROM/RAM DISK SUPPORT (ALMOST ALWAYS WANT THIS ENABLED) MDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF MDENABLE = TRUE) @@ -72,9 +69,9 @@ SDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE SDCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) SDCSIOFAST .EQU FALSE ; TABLE-DRIVEN BIT INVERTER ; -PRPENABLE .EQU FALSE ; TRUE FOR PROPIO SD SUPPORT (FOR N8VEM PROPIO ONLY!) +PRPENABLE .EQU FALSE ; TRUE FOR PROPIO SUPPORT PRPIOB .EQU $A8 ; PORT IO ADDRESS BASE -PRPSDENABLE .EQU TRUE ; TRUE FOR PROPIO SD SUPPORT (FOR N8VEM PROPIO ONLY!) +PRPSDENABLE .EQU TRUE ; TRUE FOR PROPIO SD SUPPORT PRPSDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PRPSDENABLE = TRUE) PRPSDCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) PRPCONENABLE .EQU TRUE ; TRUE FOR PROPIO CONSOLE SUPPORT (PS/2 KBD & VGA VIDEO) diff --git a/Source/HBIOS/Config/sbc_propio.asm b/Source/HBIOS/Config/sbc_propio.asm index 4f129aa9..17db2724 100644 --- a/Source/HBIOS/Config/sbc_propio.asm +++ b/Source/HBIOS/Config/sbc_propio.asm @@ -1,6 +1,6 @@ ; ;================================================================================================== -; ROMWBW 2.X CONFIGURATION FOR N8VEM SBC W/ PROP IO +; ROMWBW 2.X CONFIGURATION FOR SBC W/ PROP IO ;================================================================================================== ; ; BUILD CONFIGURATION OPTIONS @@ -9,10 +9,7 @@ CPUOSC .EQU 8000000 ; CPU OSC FREQ RAMSIZE .EQU 512 ; SIZE OF RAM IN KB, MUST MATCH YOUR HARDWARE!!! CONBAUD .EQU 38400 ; DEFAULT BAUDRATE USED BELOW ; -SERDEV .EQU CIODEV_UART ; PRIMARY SERIAL DEVICE FOR BOOT/DEBUG/MONITOR (TYPICALLY CIODEV_UART OR CIODEV_ASCI) -CRTDEV .EQU CIODEV_PRPCON ; CRT DEVICE (CIODEV_PRPCON, CIODEV_PPPCON, CIODEV_VDA), USE CIODEV_NUL IF NO CRT CRTACT .EQU TRUE ; CRT ACTIVATION AT STARTUP -VDADEV .EQU VDADEV_NONE ; CRT VDA DEVICE (VDADEV_NONE, VDADEV_VDU, VDADEV_CVDU, VDADEV_N8V, VDADEV_UPD7220) VDAEMU .EQU EMUTYP_TTY ; DEFAULT VDA EMULATION (EMUTYP_TTY, EMUTYP_ANSI, ...) ; DSKYENABLE .EQU FALSE ; TRUE FOR DSKY SUPPORT (DO NOT COMBINE WITH PPIDE) @@ -26,7 +23,7 @@ UARTCNT .EQU 1 ; NUMBER OF UARTS UART0IOB .EQU $68 ; UART0 IOBASE UART0OSC .EQU 1843200 ; UART0 OSC FREQUENCY UART0BAUD .EQU CONBAUD ; UART0 BAUDRATE -UART0FIFO .EQU TRUE ; UART0 TRUE ENABLES UART FIFO (16550 ASSUMED, N8VEM AND ZETA ONLY) +UART0FIFO .EQU TRUE ; UART0 TRUE ENABLES UART FIFO (16550 ASSUMED, SBC AND ZETA ONLY) UART0AFC .EQU FALSE ; UART0 TRUE ENABLES AUTO FLOW CONTROL (YOUR TERMINAL/UART MUST SUPPORT RTS/CTS FLOW CONTROL!!!) ; ASCIENABLE .EQU FALSE ; TRUE FOR Z180 ASCI SUPPORT @@ -36,7 +33,7 @@ ASCI1BAUD .EQU CONBAUD ; ASCI1 BAUDRATE (IMPLEMENTED BY Z180_CNTLB1) VDUENABLE .EQU FALSE ; TRUE FOR VDU BOARD SUPPORT CVDUENABLE .EQU FALSE ; TRUE FOR CVDU BOARD SUPPORT UPD7220ENABLE .EQU FALSE ; TRUE FOR uPD7220 BOARD SUPPORT -N8VENABLE .EQU FALSE ; TRUE FOR N8 (TMS9918) VIDEO/KBD SUPPORT +SCGENABLE .EQU FALSE ; TRUE FOR N8 (TMS9918) VIDEO/KBD SUPPORT ; MDENABLE .EQU TRUE ; TRUE FOR ROM/RAM DISK SUPPORT (ALMOST ALWAYS WANT THIS ENABLED) MDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF MDENABLE = TRUE) @@ -72,9 +69,9 @@ SDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE SDCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) SDCSIOFAST .EQU FALSE ; TABLE-DRIVEN BIT INVERTER ; -PRPENABLE .EQU TRUE ; TRUE FOR PROPIO SD SUPPORT (FOR N8VEM PROPIO ONLY!) +PRPENABLE .EQU TRUE ; TRUE FOR PROPIO SD SUPPORT PRPIOB .EQU $A8 ; PORT IO ADDRESS BASE -PRPSDENABLE .EQU TRUE ; TRUE FOR PROPIO SD SUPPORT (FOR N8VEM PROPIO ONLY!) +PRPSDENABLE .EQU TRUE ; TRUE FOR PROPIO SD SUPPORT PRPSDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PRPSDENABLE = TRUE) PRPSDCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) PRPCONENABLE .EQU TRUE ; TRUE FOR PROPIO CONSOLE SUPPORT (PS/2 KBD & VGA VIDEO) diff --git a/Source/HBIOS/Config/sbc_rf.asm b/Source/HBIOS/Config/sbc_rf.asm index a24a8c22..cbe92bd4 100644 --- a/Source/HBIOS/Config/sbc_rf.asm +++ b/Source/HBIOS/Config/sbc_rf.asm @@ -9,10 +9,7 @@ CPUOSC .EQU 8000000 ; CPU OSC FREQ RAMSIZE .EQU 512 ; SIZE OF RAM IN KB, MUST MATCH YOUR HARDWARE!!! CONBAUD .EQU 38400 ; DEFAULT BAUDRATE USED BELOW ; -SERDEV .EQU CIODEV_UART ; PRIMARY SERIAL DEVICE FOR BOOT/DEBUG/MONITOR (TYPICALLY CIODEV_UART OR CIODEV_ASCI) -CRTDEV .EQU CIODEV_NUL ; CRT DEVICE (CIODEV_PRPCON, CIODEV_PPPCON, CIODEV_VDA), USE CIODEV_NUL IF NO CRT CRTACT .EQU FALSE ; CRT ACTIVATION AT STARTUP -VDADEV .EQU VDADEV_NONE ; CRT VDA DEVICE (VDADEV_NONE, VDADEV_VDU, VDADEV_CVDU, VDADEV_N8V, VDADEV_UPD7220) VDAEMU .EQU EMUTYP_TTY ; DEFAULT VDA EMULATION (EMUTYP_TTY, EMUTYP_ANSI, ...) ; DSKYENABLE .EQU FALSE ; TRUE FOR DSKY SUPPORT (DO NOT COMBINE WITH PPIDE) @@ -26,7 +23,7 @@ UARTCNT .EQU 1 ; NUMBER OF UARTS UART0IOB .EQU $68 ; UART0 IOBASE UART0OSC .EQU 1843200 ; UART0 OSC FREQUENCY UART0BAUD .EQU CONBAUD ; UART0 BAUDRATE -UART0FIFO .EQU TRUE ; UART0 TRUE ENABLES UART FIFO (16550 ASSUMED, N8VEM AND ZETA ONLY) +UART0FIFO .EQU TRUE ; UART0 TRUE ENABLES UART FIFO (16550 ASSUMED, SBC AND ZETA ONLY) UART0AFC .EQU FALSE ; UART0 TRUE ENABLES AUTO FLOW CONTROL (YOUR TERMINAL/UART MUST SUPPORT RTS/CTS FLOW CONTROL!!!) ; ASCIENABLE .EQU FALSE ; TRUE FOR Z180 ASCI SUPPORT @@ -36,7 +33,7 @@ ASCI1BAUD .EQU CONBAUD ; ASCI1 BAUDRATE (IMPLEMENTED BY Z180_CNTLB1) VDUENABLE .EQU FALSE ; TRUE FOR VDU BOARD SUPPORT CVDUENABLE .EQU FALSE ; TRUE FOR CVDU BOARD SUPPORT UPD7220ENABLE .EQU FALSE ; TRUE FOR uPD7220 BOARD SUPPORT -N8VENABLE .EQU FALSE ; TRUE FOR N8 (TMS9918) VIDEO/KBD SUPPORT +SCGENABLE .EQU FALSE ; TRUE FOR N8 (TMS9918) VIDEO/KBD SUPPORT ; MDENABLE .EQU TRUE ; TRUE FOR ROM/RAM DISK SUPPORT (ALMOST ALWAYS WANT THIS ENABLED) MDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF MDENABLE = TRUE) @@ -72,9 +69,9 @@ SDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE SDCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) SDCSIOFAST .EQU FALSE ; TABLE-DRIVEN BIT INVERTER ; -PRPENABLE .EQU FALSE ; TRUE FOR PROPIO SD SUPPORT (FOR N8VEM PROPIO ONLY!) +PRPENABLE .EQU FALSE ; TRUE FOR PROPIO SUPPORT PRPIOB .EQU $A8 ; PORT IO ADDRESS BASE -PRPSDENABLE .EQU TRUE ; TRUE FOR PROPIO SD SUPPORT (FOR N8VEM PROPIO ONLY!) +PRPSDENABLE .EQU TRUE ; TRUE FOR PROPIO SD SUPPORT PRPSDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PRPSDENABLE = TRUE) PRPSDCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) PRPCONENABLE .EQU TRUE ; TRUE FOR PROPIO CONSOLE SUPPORT (PS/2 KBD & VGA VIDEO) diff --git a/Source/HBIOS/Config/sbc_simh.asm b/Source/HBIOS/Config/sbc_simh.asm index 3c8ba5a5..5caa2a26 100644 --- a/Source/HBIOS/Config/sbc_simh.asm +++ b/Source/HBIOS/Config/sbc_simh.asm @@ -9,10 +9,7 @@ CPUOSC .EQU 8000000 ; CPU OSC FREQ RAMSIZE .EQU 512 ; SIZE OF RAM IN KB, MUST MATCH YOUR HARDWARE!!! CONBAUD .EQU 115200 ; DEFAULT BAUDRATE USED BELOW ; -SERDEV .EQU CIODEV_UART ; PRIMARY SERIAL DEVICE FOR BOOT/DEBUG/MONITOR (TYPICALLY CIODEV_UART OR CIODEV_ASCI) -CRTDEV .EQU CIODEV_NUL ; CRT DEVICE (CIODEV_PRPCON, CIODEV_PPPCON, CIODEV_VDA), USE CIODEV_NUL IF NO CRT CRTACT .EQU FALSE ; CRT ACTIVATION AT STARTUP -VDADEV .EQU VDADEV_NONE ; CRT VDA DEVICE (VDADEV_NONE, VDADEV_VDU, VDADEV_CVDU, VDADEV_N8V, VDADEV_UPD7220) VDAEMU .EQU EMUTYP_TTY ; DEFAULT VDA EMULATION (EMUTYP_TTY, EMUTYP_ANSI, ...) ; DSKYENABLE .EQU FALSE ; TRUE FOR DSKY SUPPORT (DO NOT COMBINE WITH PPIDE) @@ -26,7 +23,7 @@ UARTCNT .EQU 1 ; NUMBER OF UARTS UART0IOB .EQU $68 ; UART0 IOBASE UART0OSC .EQU 1843200 ; UART0 OSC FREQUENCY UART0BAUD .EQU CONBAUD ; UART0 BAUDRATE -UART0FIFO .EQU FALSE ; UART0 TRUE ENABLES UART FIFO (16550 ASSUMED, N8VEM AND ZETA ONLY) +UART0FIFO .EQU FALSE ; UART0 TRUE ENABLES UART FIFO (16550 ASSUMED, SBC AND ZETA ONLY) UART0AFC .EQU FALSE ; UART0 TRUE ENABLES AUTO FLOW CONTROL (YOUR TERMINAL/UART MUST SUPPORT RTS/CTS FLOW CONTROL!!!) ; ASCIENABLE .EQU FALSE ; TRUE FOR Z180 ASCI SUPPORT @@ -36,7 +33,7 @@ ASCI1BAUD .EQU CONBAUD ; ASCI1 BAUDRATE (IMPLEMENTED BY Z180_CNTLB1) VDUENABLE .EQU FALSE ; TRUE FOR VDU BOARD SUPPORT CVDUENABLE .EQU FALSE ; TRUE FOR CVDU BOARD SUPPORT UPD7220ENABLE .EQU FALSE ; TRUE FOR uPD7220 BOARD SUPPORT -N8VENABLE .EQU FALSE ; TRUE FOR N8 (TMS9918) VIDEO/KBD SUPPORT +SCGENABLE .EQU FALSE ; TRUE FOR N8 (TMS9918) VIDEO/KBD SUPPORT ; MDENABLE .EQU TRUE ; TRUE FOR ROM/RAM DISK SUPPORT (ALMOST ALWAYS WANT THIS ENABLED) MDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF MDENABLE = TRUE) @@ -72,9 +69,9 @@ SDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE SDCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) SDCSIOFAST .EQU FALSE ; TABLE-DRIVEN BIT INVERTER ; -PRPENABLE .EQU FALSE ; TRUE FOR PROPIO SD SUPPORT (FOR N8VEM PROPIO ONLY!) +PRPENABLE .EQU FALSE ; TRUE FOR PROPIO SUPPORT PRPIOB .EQU $A8 ; PORT IO ADDRESS BASE -PRPSDENABLE .EQU TRUE ; TRUE FOR PROPIO SD SUPPORT (FOR N8VEM PROPIO ONLY!) +PRPSDENABLE .EQU TRUE ; TRUE FOR PROPIO SD SUPPORT PRPSDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PRPSDENABLE = TRUE) PRPSDCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) PRPCONENABLE .EQU TRUE ; TRUE FOR PROPIO CONSOLE SUPPORT (PS/2 KBD & VGA VIDEO) diff --git a/Source/HBIOS/Config/sbc_std.asm b/Source/HBIOS/Config/sbc_std.asm index dec07ba2..4f48786b 100644 --- a/Source/HBIOS/Config/sbc_std.asm +++ b/Source/HBIOS/Config/sbc_std.asm @@ -1,6 +1,6 @@ ; ;================================================================================================== -; ROMWBW 2.X CONFIGURATION FOR N8VEM SBC +; ROMWBW 2.X CONFIGURATION FOR SBC ;================================================================================================== ; ; BUILD CONFIGURATION OPTIONS @@ -9,10 +9,7 @@ CPUOSC .EQU 8000000 ; CPU OSC FREQ RAMSIZE .EQU 512 ; SIZE OF RAM IN KB, MUST MATCH YOUR HARDWARE!!! CONBAUD .EQU 38400 ; DEFAULT BAUDRATE USED BELOW ; -SERDEV .EQU CIODEV_UART ; PRIMARY SERIAL DEVICE FOR BOOT/DEBUG/MONITOR (TYPICALLY CIODEV_UART OR CIODEV_ASCI) -CRTDEV .EQU CIODEV_NUL ; CRT DEVICE (CIODEV_PRPCON, CIODEV_PPPCON, CIODEV_VDA), USE CIODEV_NUL IF NO CRT CRTACT .EQU FALSE ; CRT ACTIVATION AT STARTUP -VDADEV .EQU VDADEV_NONE ; CRT VDA DEVICE (VDADEV_NONE, VDADEV_VDU, VDADEV_CVDU, VDADEV_N8V, VDADEV_UPD7220) VDAEMU .EQU EMUTYP_TTY ; DEFAULT VDA EMULATION (EMUTYP_TTY, EMUTYP_ANSI, ...) ; DSKYENABLE .EQU FALSE ; TRUE FOR DSKY SUPPORT (DO NOT COMBINE WITH PPIDE) @@ -26,7 +23,7 @@ UARTCNT .EQU 1 ; NUMBER OF UARTS UART0IOB .EQU $68 ; UART0 IOBASE UART0OSC .EQU 1843200 ; UART0 OSC FREQUENCY UART0BAUD .EQU CONBAUD ; UART0 BAUDRATE -UART0FIFO .EQU TRUE ; UART0 TRUE ENABLES UART FIFO (16550 ASSUMED, N8VEM AND ZETA ONLY) +UART0FIFO .EQU TRUE ; UART0 TRUE ENABLES UART FIFO (16550 ASSUMED, SBC AND ZETA ONLY) UART0AFC .EQU FALSE ; UART0 TRUE ENABLES AUTO FLOW CONTROL (YOUR TERMINAL/UART MUST SUPPORT RTS/CTS FLOW CONTROL!!!) ; ASCIENABLE .EQU FALSE ; TRUE FOR Z180 ASCI SUPPORT @@ -36,7 +33,7 @@ ASCI1BAUD .EQU CONBAUD ; ASCI1 BAUDRATE (IMPLEMENTED BY Z180_CNTLB1) VDUENABLE .EQU FALSE ; TRUE FOR VDU BOARD SUPPORT CVDUENABLE .EQU FALSE ; TRUE FOR CVDU BOARD SUPPORT UPD7220ENABLE .EQU FALSE ; TRUE FOR uPD7220 BOARD SUPPORT -N8VENABLE .EQU FALSE ; TRUE FOR N8 (TMS9918) VIDEO/KBD SUPPORT +SCGENABLE .EQU FALSE ; TRUE FOR N8 (TMS9918) VIDEO/KBD SUPPORT ; MDENABLE .EQU TRUE ; TRUE FOR ROM/RAM DISK SUPPORT (ALMOST ALWAYS WANT THIS ENABLED) MDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF MDENABLE = TRUE) @@ -72,9 +69,9 @@ SDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE SDCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) SDCSIOFAST .EQU FALSE ; TABLE-DRIVEN BIT INVERTER ; -PRPENABLE .EQU FALSE ; TRUE FOR PROPIO SD SUPPORT (FOR N8VEM PROPIO ONLY!) +PRPENABLE .EQU FALSE ; TRUE FOR PROPIO SUPPORT PRPIOB .EQU $A8 ; PORT IO ADDRESS BASE -PRPSDENABLE .EQU TRUE ; TRUE FOR PROPIO SD SUPPORT (FOR N8VEM PROPIO ONLY!) +PRPSDENABLE .EQU TRUE ; TRUE FOR PROPIO SD SUPPORT PRPSDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PRPSDENABLE = TRUE) PRPSDCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) PRPCONENABLE .EQU TRUE ; TRUE FOR PROPIO CONSOLE SUPPORT (PS/2 KBD & VGA VIDEO) diff --git a/Source/HBIOS/Config/sbc_vdu.asm b/Source/HBIOS/Config/sbc_vdu.asm index 9d958ec5..722ce80d 100644 --- a/Source/HBIOS/Config/sbc_vdu.asm +++ b/Source/HBIOS/Config/sbc_vdu.asm @@ -1,6 +1,6 @@ ; ;================================================================================================== -; ROMWBW 2.X CONFIGURATION FOR N8VEM SBC W/ VDU +; ROMWBW 2.X CONFIGURATION FOR SBC W/ VDU ;================================================================================================== ; ; BUILD CONFIGURATION OPTIONS @@ -9,10 +9,7 @@ CPUOSC .EQU 8000000 ; CPU OSC FREQ RAMSIZE .EQU 512 ; SIZE OF RAM IN KB, MUST MATCH YOUR HARDWARE!!! CONBAUD .EQU 38400 ; DEFAULT BAUDRATE USED BELOW ; -SERDEV .EQU CIODEV_UART ; PRIMARY SERIAL DEVICE FOR BOOT/DEBUG/MONITOR (TYPICALLY CIODEV_UART OR CIODEV_ASCI) -CRTDEV .EQU CIODEV_NUL ; CRT DEVICE (CIODEV_PRPCON, CIODEV_PPPCON, CIODEV_VDA), USE CIODEV_NUL IF NO CRT CRTACT .EQU TRUE ; CRT ACTIVATION AT STARTUP -VDADEV .EQU VDADEV_VDU ; CRT VDA DEVICE (VDADEV_NONE, VDADEV_VDU, VDADEV_CVDU, VDADEV_N8V, VDADEV_UPD7220) VDAEMU .EQU EMUTYP_ANSI ; DEFAULT VDA EMULATION (EMUTYP_TTY, EMUTYP_ANSI, ...) ; DSKYENABLE .EQU FALSE ; TRUE FOR DSKY SUPPORT (DO NOT COMBINE WITH PPIDE) @@ -26,7 +23,7 @@ UARTCNT .EQU 1 ; NUMBER OF UARTS UART0IOB .EQU $68 ; UART0 IOBASE UART0OSC .EQU 1843200 ; UART0 OSC FREQUENCY UART0BAUD .EQU CONBAUD ; UART0 BAUDRATE -UART0FIFO .EQU TRUE ; UART0 TRUE ENABLES UART FIFO (16550 ASSUMED, N8VEM AND ZETA ONLY) +UART0FIFO .EQU TRUE ; UART0 TRUE ENABLES UART FIFO (16550 ASSUMED, SBC AND ZETA ONLY) UART0AFC .EQU FALSE ; UART0 TRUE ENABLES AUTO FLOW CONTROL (YOUR TERMINAL/UART MUST SUPPORT RTS/CTS FLOW CONTROL!!!) ; ASCIENABLE .EQU FALSE ; TRUE FOR Z180 ASCI SUPPORT @@ -36,7 +33,7 @@ ASCI1BAUD .EQU CONBAUD ; ASCI1 BAUDRATE (IMPLEMENTED BY Z180_CNTLB1) VDUENABLE .EQU TRUE ; TRUE FOR VDU BOARD SUPPORT CVDUENABLE .EQU FALSE ; TRUE FOR CVDU BOARD SUPPORT UPD7220ENABLE .EQU FALSE ; TRUE FOR uPD7220 BOARD SUPPORT -N8VENABLE .EQU FALSE ; TRUE FOR N8 (TMS9918) VIDEO/KBD SUPPORT +SCGENABLE .EQU FALSE ; TRUE FOR N8 (TMS9918) VIDEO/KBD SUPPORT ; MDENABLE .EQU TRUE ; TRUE FOR ROM/RAM DISK SUPPORT (ALMOST ALWAYS WANT THIS ENABLED) MDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF MDENABLE = TRUE) @@ -72,9 +69,9 @@ SDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE SDCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) SDCSIOFAST .EQU FALSE ; TABLE-DRIVEN BIT INVERTER ; -PRPENABLE .EQU FALSE ; TRUE FOR PROPIO SD SUPPORT (FOR N8VEM PROPIO ONLY!) +PRPENABLE .EQU FALSE ; TRUE FOR PROPIO SUPPORT PRPIOB .EQU $A8 ; PORT IO ADDRESS BASE -PRPSDENABLE .EQU TRUE ; TRUE FOR PROPIO SD SUPPORT (FOR N8VEM PROPIO ONLY!) +PRPSDENABLE .EQU TRUE ; TRUE FOR PROPIO SD SUPPORT PRPSDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PRPSDENABLE = TRUE) PRPSDCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) PRPCONENABLE .EQU TRUE ; TRUE FOR PROPIO CONSOLE SUPPORT (PS/2 KBD & VGA VIDEO) diff --git a/Source/HBIOS/Config/zeta2_ppide.asm b/Source/HBIOS/Config/zeta2_ppide.asm index 42d686d5..5239c583 100644 --- a/Source/HBIOS/Config/zeta2_ppide.asm +++ b/Source/HBIOS/Config/zeta2_ppide.asm @@ -9,10 +9,7 @@ CPUOSC .EQU 20000000 ; CPU OSC FREQ RAMSIZE .EQU 512 ; SIZE OF RAM IN KB, MUST MATCH YOUR HARDWARE!!! CONBAUD .EQU 38400 ; DEFAULT BAUDRATE USED BELOW ; -SERDEV .EQU CIODEV_UART ; PRIMARY SERIAL DEVICE FOR BOOT/DEBUG/MONITOR (TYPICALLY CIODEV_UART OR CIODEV_ASCI) -CRTDEV .EQU CIODEV_NUL ; CRT DEVICE (CIODEV_PRPCON, CIODEV_PPPCON, CIODEV_VDA), USE CIODEV_NUL IF NO CRT CRTACT .EQU FALSE ; CRT ACTIVATION AT STARTUP -VDADEV .EQU VDADEV_NONE ; CRT VDA DEVICE (VDADEV_NONE, VDADEV_VDU, VDADEV_CVDU, VDADEV_N8V, VDADEV_UPD7220) VDAEMU .EQU EMUTYP_TTY ; DEFAULT VDA EMULATION (EMUTYP_TTY, EMUTYP_ANSI, ...) ; DSKYENABLE .EQU FALSE ; TRUE FOR DSKY SUPPORT (DO NOT COMBINE WITH PPIDE) @@ -26,7 +23,7 @@ UARTCNT .EQU 1 ; NUMBER OF UARTS UART0IOB .EQU $68 ; UART0 IOBASE UART0OSC .EQU 1843200 ; UART0 OSC FREQUENCY UART0BAUD .EQU CONBAUD ; UART0 BAUDRATE -UART0FIFO .EQU TRUE ; UART0 TRUE ENABLES UART FIFO (16550 ASSUMED, N8VEM AND ZETA ONLY) +UART0FIFO .EQU TRUE ; UART0 TRUE ENABLES UART FIFO (16550 ASSUMED, SBC AND ZETA ONLY) UART0AFC .EQU FALSE ; UART0 TRUE ENABLES AUTO FLOW CONTROL (YOUR TERMINAL/UART MUST SUPPORT RTS/CTS FLOW CONTROL!!!) ; ASCIENABLE .EQU FALSE ; TRUE FOR Z180 ASCI SUPPORT @@ -36,7 +33,7 @@ ASCI1BAUD .EQU CONBAUD ; ASCI1 BAUDRATE (IMPLEMENTED BY Z180_CNTLB1) VDUENABLE .EQU FALSE ; TRUE FOR VDU BOARD SUPPORT CVDUENABLE .EQU FALSE ; TRUE FOR CVDU BOARD SUPPORT UPD7220ENABLE .EQU FALSE ; TRUE FOR uPD7220 BOARD SUPPORT -N8VENABLE .EQU FALSE ; TRUE FOR N8 (TMS9918) VIDEO/KBD SUPPORT +SCGENABLE .EQU FALSE ; TRUE FOR N8 (TMS9918) VIDEO/KBD SUPPORT ; MDENABLE .EQU TRUE ; TRUE FOR ROM/RAM DISK SUPPORT (ALMOST ALWAYS WANT THIS ENABLED) MDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF MDENABLE = TRUE) @@ -72,9 +69,9 @@ SDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE SDCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) SDCSIOFAST .EQU FALSE ; TABLE-DRIVEN BIT INVERTER ; -PRPENABLE .EQU FALSE ; TRUE FOR PROPIO SD SUPPORT (FOR N8VEM PROPIO ONLY!) +PRPENABLE .EQU FALSE ; TRUE FOR PROPIO SUPPORT PRPIOB .EQU $A8 ; PORT IO ADDRESS BASE -PRPSDENABLE .EQU TRUE ; TRUE FOR PROPIO SD SUPPORT (FOR N8VEM PROPIO ONLY!) +PRPSDENABLE .EQU TRUE ; TRUE FOR PROPIO SD SUPPORT PRPSDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PRPSDENABLE = TRUE) PRPSDCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) PRPCONENABLE .EQU TRUE ; TRUE FOR PROPIO CONSOLE SUPPORT (PS/2 KBD & VGA VIDEO) diff --git a/Source/HBIOS/Config/zeta2_ppisd.asm b/Source/HBIOS/Config/zeta2_ppisd.asm index 6cb2be98..afa10291 100644 --- a/Source/HBIOS/Config/zeta2_ppisd.asm +++ b/Source/HBIOS/Config/zeta2_ppisd.asm @@ -9,10 +9,7 @@ CPUOSC .EQU 20000000 ; CPU OSC FREQ RAMSIZE .EQU 512 ; SIZE OF RAM IN KB, MUST MATCH YOUR HARDWARE!!! CONBAUD .EQU 38400 ; DEFAULT BAUDRATE USED BELOW ; -SERDEV .EQU CIODEV_UART ; PRIMARY SERIAL DEVICE FOR BOOT/DEBUG/MONITOR (TYPICALLY CIODEV_UART OR CIODEV_ASCI) -CRTDEV .EQU CIODEV_NUL ; CRT DEVICE (CIODEV_PRPCON, CIODEV_PPPCON, CIODEV_VDA), USE CIODEV_NUL IF NO CRT CRTACT .EQU FALSE ; CRT ACTIVATION AT STARTUP -VDADEV .EQU VDADEV_NONE ; CRT VDA DEVICE (VDADEV_NONE, VDADEV_VDU, VDADEV_CVDU, VDADEV_N8V, VDADEV_UPD7220) VDAEMU .EQU EMUTYP_TTY ; DEFAULT VDA EMULATION (EMUTYP_TTY, EMUTYP_ANSI, ...) ; DSKYENABLE .EQU FALSE ; TRUE FOR DSKY SUPPORT (DO NOT COMBINE WITH PPIDE) @@ -26,7 +23,7 @@ UARTCNT .EQU 1 ; NUMBER OF UARTS UART0IOB .EQU $68 ; UART0 IOBASE UART0OSC .EQU 1843200 ; UART0 OSC FREQUENCY UART0BAUD .EQU CONBAUD ; UART0 BAUDRATE -UART0FIFO .EQU TRUE ; UART0 TRUE ENABLES UART FIFO (16550 ASSUMED, N8VEM AND ZETA ONLY) +UART0FIFO .EQU TRUE ; UART0 TRUE ENABLES UART FIFO (16550 ASSUMED, SBC AND ZETA ONLY) UART0AFC .EQU FALSE ; UART0 TRUE ENABLES AUTO FLOW CONTROL (YOUR TERMINAL/UART MUST SUPPORT RTS/CTS FLOW CONTROL!!!) ; ASCIENABLE .EQU FALSE ; TRUE FOR Z180 ASCI SUPPORT @@ -36,7 +33,7 @@ ASCI1BAUD .EQU CONBAUD ; ASCI1 BAUDRATE (IMPLEMENTED BY Z180_CNTLB1) VDUENABLE .EQU FALSE ; TRUE FOR VDU BOARD SUPPORT CVDUENABLE .EQU FALSE ; TRUE FOR CVDU BOARD SUPPORT UPD7220ENABLE .EQU FALSE ; TRUE FOR uPD7220 BOARD SUPPORT -N8VENABLE .EQU FALSE ; TRUE FOR N8 (TMS9918) VIDEO/KBD SUPPORT +SCGENABLE .EQU FALSE ; TRUE FOR N8 (TMS9918) VIDEO/KBD SUPPORT ; MDENABLE .EQU TRUE ; TRUE FOR ROM/RAM DISK SUPPORT (ALMOST ALWAYS WANT THIS ENABLED) MDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF MDENABLE = TRUE) @@ -72,9 +69,9 @@ SDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE SDCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) SDCSIOFAST .EQU FALSE ; TABLE-DRIVEN BIT INVERTER ; -PRPENABLE .EQU FALSE ; TRUE FOR PROPIO SD SUPPORT (FOR N8VEM PROPIO ONLY!) +PRPENABLE .EQU FALSE ; TRUE FOR PROPIO SUPPORT PRPIOB .EQU $A8 ; PORT IO ADDRESS BASE -PRPSDENABLE .EQU TRUE ; TRUE FOR PROPIO SD SUPPORT (FOR N8VEM PROPIO ONLY!) +PRPSDENABLE .EQU TRUE ; TRUE FOR PROPIO SD SUPPORT PRPSDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PRPSDENABLE = TRUE) PRPSDCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) PRPCONENABLE .EQU TRUE ; TRUE FOR PROPIO CONSOLE SUPPORT (PS/2 KBD & VGA VIDEO) diff --git a/Source/HBIOS/Config/zeta2_ppp.asm b/Source/HBIOS/Config/zeta2_ppp.asm index 1e6a7b9c..e4a00493 100644 --- a/Source/HBIOS/Config/zeta2_ppp.asm +++ b/Source/HBIOS/Config/zeta2_ppp.asm @@ -9,10 +9,7 @@ CPUOSC .EQU 20000000 ; CPU OSC FREQ RAMSIZE .EQU 512 ; SIZE OF RAM IN KB, MUST MATCH YOUR HARDWARE!!! CONBAUD .EQU 38400 ; DEFAULT BAUDRATE USED BELOW ; -SERDEV .EQU CIODEV_UART ; PRIMARY SERIAL DEVICE FOR BOOT/DEBUG/MONITOR (TYPICALLY CIODEV_UART OR CIODEV_ASCI) -CRTDEV .EQU CIODEV_PPPCON ; CRT DEVICE (CIODEV_PRPCON, CIODEV_PPPCON, CIODEV_VDA), USE CIODEV_NUL IF NO CRT CRTACT .EQU TRUE ; CRT ACTIVATION AT STARTUP -VDADEV .EQU VDADEV_NONE ; CRT VDA DEVICE (VDADEV_NONE, VDADEV_VDU, VDADEV_CVDU, VDADEV_N8V, VDADEV_UPD7220) VDAEMU .EQU EMUTYP_TTY ; DEFAULT VDA EMULATION (EMUTYP_TTY, EMUTYP_ANSI, ...) ; DSKYENABLE .EQU FALSE ; TRUE FOR DSKY SUPPORT (DO NOT COMBINE WITH PPIDE) @@ -26,7 +23,7 @@ UARTCNT .EQU 1 ; NUMBER OF UARTS UART0IOB .EQU $68 ; UART0 IOBASE UART0OSC .EQU 1843200 ; UART0 OSC FREQUENCY UART0BAUD .EQU CONBAUD ; UART0 BAUDRATE -UART0FIFO .EQU TRUE ; UART0 TRUE ENABLES UART FIFO (16550 ASSUMED, N8VEM AND ZETA ONLY) +UART0FIFO .EQU TRUE ; UART0 TRUE ENABLES UART FIFO (16550 ASSUMED, SBC AND ZETA ONLY) UART0AFC .EQU FALSE ; UART0 TRUE ENABLES AUTO FLOW CONTROL (YOUR TERMINAL/UART MUST SUPPORT RTS/CTS FLOW CONTROL!!!) ; ASCIENABLE .EQU FALSE ; TRUE FOR Z180 ASCI SUPPORT @@ -36,7 +33,7 @@ ASCI1BAUD .EQU CONBAUD ; ASCI1 BAUDRATE (IMPLEMENTED BY Z180_CNTLB1) VDUENABLE .EQU FALSE ; TRUE FOR VDU BOARD SUPPORT CVDUENABLE .EQU FALSE ; TRUE FOR CVDU BOARD SUPPORT UPD7220ENABLE .EQU FALSE ; TRUE FOR uPD7220 BOARD SUPPORT -N8VENABLE .EQU FALSE ; TRUE FOR N8 (TMS9918) VIDEO/KBD SUPPORT +SCGENABLE .EQU FALSE ; TRUE FOR N8 (TMS9918) VIDEO/KBD SUPPORT ; MDENABLE .EQU TRUE ; TRUE FOR ROM/RAM DISK SUPPORT (ALMOST ALWAYS WANT THIS ENABLED) MDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF MDENABLE = TRUE) @@ -72,9 +69,9 @@ SDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE SDCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) SDCSIOFAST .EQU FALSE ; TABLE-DRIVEN BIT INVERTER ; -PRPENABLE .EQU FALSE ; TRUE FOR PROPIO SD SUPPORT (FOR N8VEM PROPIO ONLY!) +PRPENABLE .EQU FALSE ; TRUE FOR PROPIO SUPPORT PRPIOB .EQU $A8 ; PORT IO ADDRESS BASE -PRPSDENABLE .EQU TRUE ; TRUE FOR PROPIO SD SUPPORT (FOR N8VEM PROPIO ONLY!) +PRPSDENABLE .EQU TRUE ; TRUE FOR PROPIO SD SUPPORT PRPSDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PRPSDENABLE = TRUE) PRPSDCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) PRPCONENABLE .EQU TRUE ; TRUE FOR PROPIO CONSOLE SUPPORT (PS/2 KBD & VGA VIDEO) diff --git a/Source/HBIOS/Config/zeta2_std.asm b/Source/HBIOS/Config/zeta2_std.asm index b4c9e957..1f84c68f 100644 --- a/Source/HBIOS/Config/zeta2_std.asm +++ b/Source/HBIOS/Config/zeta2_std.asm @@ -9,10 +9,7 @@ CPUOSC .EQU 20000000 ; CPU OSC FREQ RAMSIZE .EQU 512 ; SIZE OF RAM IN KB, MUST MATCH YOUR HARDWARE!!! CONBAUD .EQU 38400 ; DEFAULT BAUDRATE USED BELOW ; -SERDEV .EQU CIODEV_UART ; PRIMARY SERIAL DEVICE FOR BOOT/DEBUG/MONITOR (TYPICALLY CIODEV_UART OR CIODEV_ASCI) -CRTDEV .EQU CIODEV_NUL ; CRT DEVICE (CIODEV_PRPCON, CIODEV_PPPCON, CIODEV_VDA), USE CIODEV_NUL IF NO CRT CRTACT .EQU FALSE ; CRT ACTIVATION AT STARTUP -VDADEV .EQU VDADEV_NONE ; CRT VDA DEVICE (VDADEV_NONE, VDADEV_VDU, VDADEV_CVDU, VDADEV_N8V, VDADEV_UPD7220) VDAEMU .EQU EMUTYP_TTY ; DEFAULT VDA EMULATION (EMUTYP_TTY, EMUTYP_ANSI, ...) ; DSKYENABLE .EQU FALSE ; TRUE FOR DSKY SUPPORT (DO NOT COMBINE WITH PPIDE) @@ -26,7 +23,7 @@ UARTCNT .EQU 1 ; NUMBER OF UARTS UART0IOB .EQU $68 ; UART0 IOBASE UART0OSC .EQU 1843200 ; UART0 OSC FREQUENCY UART0BAUD .EQU CONBAUD ; UART0 BAUDRATE -UART0FIFO .EQU TRUE ; UART0 TRUE ENABLES UART FIFO (16550 ASSUMED, N8VEM AND ZETA ONLY) +UART0FIFO .EQU TRUE ; UART0 TRUE ENABLES UART FIFO (16550 ASSUMED, SBC AND ZETA ONLY) UART0AFC .EQU FALSE ; UART0 TRUE ENABLES AUTO FLOW CONTROL (YOUR TERMINAL/UART MUST SUPPORT RTS/CTS FLOW CONTROL!!!) ; ASCIENABLE .EQU FALSE ; TRUE FOR Z180 ASCI SUPPORT @@ -36,7 +33,7 @@ ASCI1BAUD .EQU CONBAUD ; ASCI1 BAUDRATE (IMPLEMENTED BY Z180_CNTLB1) VDUENABLE .EQU FALSE ; TRUE FOR VDU BOARD SUPPORT CVDUENABLE .EQU FALSE ; TRUE FOR CVDU BOARD SUPPORT UPD7220ENABLE .EQU FALSE ; TRUE FOR uPD7220 BOARD SUPPORT -N8VENABLE .EQU FALSE ; TRUE FOR N8 (TMS9918) VIDEO/KBD SUPPORT +SCGENABLE .EQU FALSE ; TRUE FOR N8 (TMS9918) VIDEO/KBD SUPPORT ; MDENABLE .EQU TRUE ; TRUE FOR ROM/RAM DISK SUPPORT (ALMOST ALWAYS WANT THIS ENABLED) MDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF MDENABLE = TRUE) @@ -72,9 +69,9 @@ SDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE SDCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) SDCSIOFAST .EQU FALSE ; TABLE-DRIVEN BIT INVERTER ; -PRPENABLE .EQU FALSE ; TRUE FOR PROPIO SD SUPPORT (FOR N8VEM PROPIO ONLY!) +PRPENABLE .EQU FALSE ; TRUE FOR PROPIO SUPPORT PRPIOB .EQU $A8 ; PORT IO ADDRESS BASE -PRPSDENABLE .EQU TRUE ; TRUE FOR PROPIO SD SUPPORT (FOR N8VEM PROPIO ONLY!) +PRPSDENABLE .EQU TRUE ; TRUE FOR PROPIO SD SUPPORT PRPSDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PRPSDENABLE = TRUE) PRPSDCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) PRPCONENABLE .EQU TRUE ; TRUE FOR PROPIO CONSOLE SUPPORT (PS/2 KBD & VGA VIDEO) diff --git a/Source/HBIOS/Config/zeta_ppide.asm b/Source/HBIOS/Config/zeta_ppide.asm index c1309233..666bba53 100644 --- a/Source/HBIOS/Config/zeta_ppide.asm +++ b/Source/HBIOS/Config/zeta_ppide.asm @@ -9,10 +9,7 @@ CPUOSC .EQU 20000000 ; CPU OSC FREQ RAMSIZE .EQU 512 ; SIZE OF RAM IN KB, MUST MATCH YOUR HARDWARE!!! CONBAUD .EQU 38400 ; DEFAULT BAUDRATE USED BELOW ; -SERDEV .EQU CIODEV_UART ; PRIMARY SERIAL DEVICE FOR BOOT/DEBUG/MONITOR (TYPICALLY CIODEV_UART OR CIODEV_ASCI) -CRTDEV .EQU CIODEV_NUL ; CRT DEVICE (CIODEV_PRPCON, CIODEV_PPPCON, CIODEV_VDA), USE CIODEV_NUL IF NO CRT CRTACT .EQU FALSE ; CRT ACTIVATION AT STARTUP -VDADEV .EQU VDADEV_NONE ; CRT VDA DEVICE (VDADEV_NONE, VDADEV_VDU, VDADEV_CVDU, VDADEV_N8V, VDADEV_UPD7220) VDAEMU .EQU EMUTYP_TTY ; DEFAULT VDA EMULATION (EMUTYP_TTY, EMUTYP_ANSI, ...) ; DSKYENABLE .EQU FALSE ; TRUE FOR DSKY SUPPORT (DO NOT COMBINE WITH PPIDE) @@ -26,7 +23,7 @@ UARTCNT .EQU 1 ; NUMBER OF UARTS UART0IOB .EQU $68 ; UART0 IOBASE UART0OSC .EQU 1843200 ; UART0 OSC FREQUENCY UART0BAUD .EQU CONBAUD ; UART0 BAUDRATE -UART0FIFO .EQU TRUE ; UART0 TRUE ENABLES UART FIFO (16550 ASSUMED, N8VEM AND ZETA ONLY) +UART0FIFO .EQU TRUE ; UART0 TRUE ENABLES UART FIFO (16550 ASSUMED, SBC AND ZETA ONLY) UART0AFC .EQU FALSE ; UART0 TRUE ENABLES AUTO FLOW CONTROL (YOUR TERMINAL/UART MUST SUPPORT RTS/CTS FLOW CONTROL!!!) ; ASCIENABLE .EQU FALSE ; TRUE FOR Z180 ASCI SUPPORT @@ -36,7 +33,7 @@ ASCI1BAUD .EQU CONBAUD ; ASCI1 BAUDRATE (IMPLEMENTED BY Z180_CNTLB1) VDUENABLE .EQU FALSE ; TRUE FOR VDU BOARD SUPPORT CVDUENABLE .EQU FALSE ; TRUE FOR CVDU BOARD SUPPORT UPD7220ENABLE .EQU FALSE ; TRUE FOR uPD7220 BOARD SUPPORT -N8VENABLE .EQU FALSE ; TRUE FOR N8 (TMS9918) VIDEO/KBD SUPPORT +SCGENABLE .EQU FALSE ; TRUE FOR N8 (TMS9918) VIDEO/KBD SUPPORT ; MDENABLE .EQU TRUE ; TRUE FOR ROM/RAM DISK SUPPORT (ALMOST ALWAYS WANT THIS ENABLED) MDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF MDENABLE = TRUE) @@ -72,9 +69,9 @@ SDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE SDCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) SDCSIOFAST .EQU FALSE ; TABLE-DRIVEN BIT INVERTER ; -PRPENABLE .EQU FALSE ; TRUE FOR PROPIO SD SUPPORT (FOR N8VEM PROPIO ONLY!) +PRPENABLE .EQU FALSE ; TRUE FOR PROPIO SUPPORT PRPIOB .EQU $A8 ; PORT IO ADDRESS BASE -PRPSDENABLE .EQU TRUE ; TRUE FOR PROPIO SD SUPPORT (FOR N8VEM PROPIO ONLY!) +PRPSDENABLE .EQU TRUE ; TRUE FOR PROPIO SD SUPPORT PRPSDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PRPSDENABLE = TRUE) PRPSDCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) PRPCONENABLE .EQU TRUE ; TRUE FOR PROPIO CONSOLE SUPPORT (PS/2 KBD & VGA VIDEO) diff --git a/Source/HBIOS/Config/zeta_ppisd.asm b/Source/HBIOS/Config/zeta_ppisd.asm index 5532ce26..92094346 100644 --- a/Source/HBIOS/Config/zeta_ppisd.asm +++ b/Source/HBIOS/Config/zeta_ppisd.asm @@ -9,10 +9,7 @@ CPUOSC .EQU 20000000 ; CPU OSC FREQ RAMSIZE .EQU 512 ; SIZE OF RAM IN KB, MUST MATCH YOUR HARDWARE!!! CONBAUD .EQU 38400 ; DEFAULT BAUDRATE USED BELOW ; -SERDEV .EQU CIODEV_UART ; PRIMARY SERIAL DEVICE FOR BOOT/DEBUG/MONITOR (TYPICALLY CIODEV_UART OR CIODEV_ASCI) -CRTDEV .EQU CIODEV_NUL ; CRT DEVICE (CIODEV_PRPCON, CIODEV_PPPCON, CIODEV_VDA), USE CIODEV_NUL IF NO CRT CRTACT .EQU FALSE ; CRT ACTIVATION AT STARTUP -VDADEV .EQU VDADEV_NONE ; CRT VDA DEVICE (VDADEV_NONE, VDADEV_VDU, VDADEV_CVDU, VDADEV_N8V, VDADEV_UPD7220) VDAEMU .EQU EMUTYP_TTY ; DEFAULT VDA EMULATION (EMUTYP_TTY, EMUTYP_ANSI, ...) ; DSKYENABLE .EQU FALSE ; TRUE FOR DSKY SUPPORT (DO NOT COMBINE WITH PPIDE) @@ -26,7 +23,7 @@ UARTCNT .EQU 1 ; NUMBER OF UARTS UART0IOB .EQU $68 ; UART0 IOBASE UART0OSC .EQU 1843200 ; UART0 OSC FREQUENCY UART0BAUD .EQU CONBAUD ; UART0 BAUDRATE -UART0FIFO .EQU TRUE ; UART0 TRUE ENABLES UART FIFO (16550 ASSUMED, N8VEM AND ZETA ONLY) +UART0FIFO .EQU TRUE ; UART0 TRUE ENABLES UART FIFO (16550 ASSUMED, SBC AND ZETA ONLY) UART0AFC .EQU FALSE ; UART0 TRUE ENABLES AUTO FLOW CONTROL (YOUR TERMINAL/UART MUST SUPPORT RTS/CTS FLOW CONTROL!!!) ; ASCIENABLE .EQU FALSE ; TRUE FOR Z180 ASCI SUPPORT @@ -36,7 +33,7 @@ ASCI1BAUD .EQU CONBAUD ; ASCI1 BAUDRATE (IMPLEMENTED BY Z180_CNTLB1) VDUENABLE .EQU FALSE ; TRUE FOR VDU BOARD SUPPORT CVDUENABLE .EQU FALSE ; TRUE FOR CVDU BOARD SUPPORT UPD7220ENABLE .EQU FALSE ; TRUE FOR uPD7220 BOARD SUPPORT -N8VENABLE .EQU FALSE ; TRUE FOR N8 (TMS9918) VIDEO/KBD SUPPORT +SCGENABLE .EQU FALSE ; TRUE FOR N8 (TMS9918) VIDEO/KBD SUPPORT ; MDENABLE .EQU TRUE ; TRUE FOR ROM/RAM DISK SUPPORT (ALMOST ALWAYS WANT THIS ENABLED) MDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF MDENABLE = TRUE) @@ -72,9 +69,9 @@ SDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE SDCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) SDCSIOFAST .EQU FALSE ; TABLE-DRIVEN BIT INVERTER ; -PRPENABLE .EQU FALSE ; TRUE FOR PROPIO SD SUPPORT (FOR N8VEM PROPIO ONLY!) +PRPENABLE .EQU FALSE ; TRUE FOR PROPIO SUPPORT PRPIOB .EQU $A8 ; PORT IO ADDRESS BASE -PRPSDENABLE .EQU TRUE ; TRUE FOR PROPIO SD SUPPORT (FOR N8VEM PROPIO ONLY!) +PRPSDENABLE .EQU TRUE ; TRUE FOR PROPIO SD SUPPORT PRPSDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PRPSDENABLE = TRUE) PRPSDCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) PRPCONENABLE .EQU TRUE ; TRUE FOR PROPIO CONSOLE SUPPORT (PS/2 KBD & VGA VIDEO) diff --git a/Source/HBIOS/Config/zeta_ppp.asm b/Source/HBIOS/Config/zeta_ppp.asm index 7d1cae51..b8a7ddd9 100644 --- a/Source/HBIOS/Config/zeta_ppp.asm +++ b/Source/HBIOS/Config/zeta_ppp.asm @@ -9,10 +9,7 @@ CPUOSC .EQU 20000000 ; CPU OSC FREQ RAMSIZE .EQU 512 ; SIZE OF RAM IN KB, MUST MATCH YOUR HARDWARE!!! CONBAUD .EQU 38400 ; DEFAULT BAUDRATE USED BELOW ; -SERDEV .EQU CIODEV_UART ; PRIMARY SERIAL DEVICE FOR BOOT/DEBUG/MONITOR (TYPICALLY CIODEV_UART OR CIODEV_ASCI) -CRTDEV .EQU CIODEV_PPPCON ; CRT DEVICE (CIODEV_PRPCON, CIODEV_PPPCON, CIODEV_VDA), USE CIODEV_NUL IF NO CRT CRTACT .EQU TRUE ; CRT ACTIVATION AT STARTUP -VDADEV .EQU VDADEV_NONE ; CRT VDA DEVICE (VDADEV_NONE, VDADEV_VDU, VDADEV_CVDU, VDADEV_N8V, VDADEV_UPD7220) VDAEMU .EQU EMUTYP_TTY ; DEFAULT VDA EMULATION (EMUTYP_TTY, EMUTYP_ANSI, ...) ; DSKYENABLE .EQU FALSE ; TRUE FOR DSKY SUPPORT (DO NOT COMBINE WITH PPIDE) @@ -26,7 +23,7 @@ UARTCNT .EQU 1 ; NUMBER OF UARTS UART0IOB .EQU $68 ; UART0 IOBASE UART0OSC .EQU 1843200 ; UART0 OSC FREQUENCY UART0BAUD .EQU CONBAUD ; UART0 BAUDRATE -UART0FIFO .EQU TRUE ; UART0 TRUE ENABLES UART FIFO (16550 ASSUMED, N8VEM AND ZETA ONLY) +UART0FIFO .EQU TRUE ; UART0 TRUE ENABLES UART FIFO (16550 ASSUMED, SBC AND ZETA ONLY) UART0AFC .EQU FALSE ; UART0 TRUE ENABLES AUTO FLOW CONTROL (YOUR TERMINAL/UART MUST SUPPORT RTS/CTS FLOW CONTROL!!!) ; ASCIENABLE .EQU FALSE ; TRUE FOR Z180 ASCI SUPPORT @@ -36,7 +33,7 @@ ASCI1BAUD .EQU CONBAUD ; ASCI1 BAUDRATE (IMPLEMENTED BY Z180_CNTLB1) VDUENABLE .EQU FALSE ; TRUE FOR VDU BOARD SUPPORT CVDUENABLE .EQU FALSE ; TRUE FOR CVDU BOARD SUPPORT UPD7220ENABLE .EQU FALSE ; TRUE FOR uPD7220 BOARD SUPPORT -N8VENABLE .EQU FALSE ; TRUE FOR N8 (TMS9918) VIDEO/KBD SUPPORT +SCGENABLE .EQU FALSE ; TRUE FOR N8 (TMS9918) VIDEO/KBD SUPPORT ; MDENABLE .EQU TRUE ; TRUE FOR ROM/RAM DISK SUPPORT (ALMOST ALWAYS WANT THIS ENABLED) MDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF MDENABLE = TRUE) @@ -72,9 +69,9 @@ SDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE SDCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) SDCSIOFAST .EQU FALSE ; TABLE-DRIVEN BIT INVERTER ; -PRPENABLE .EQU FALSE ; TRUE FOR PROPIO SD SUPPORT (FOR N8VEM PROPIO ONLY!) +PRPENABLE .EQU FALSE ; TRUE FOR PROPIO SUPPORT PRPIOB .EQU $A8 ; PORT IO ADDRESS BASE -PRPSDENABLE .EQU TRUE ; TRUE FOR PROPIO SD SUPPORT (FOR N8VEM PROPIO ONLY!) +PRPSDENABLE .EQU TRUE ; TRUE FOR PROPIO SD SUPPORT PRPSDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PRPSDENABLE = TRUE) PRPSDCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) PRPCONENABLE .EQU TRUE ; TRUE FOR PROPIO CONSOLE SUPPORT (PS/2 KBD & VGA VIDEO) diff --git a/Source/HBIOS/Config/zeta_std.asm b/Source/HBIOS/Config/zeta_std.asm index e421703a..644f3bec 100644 --- a/Source/HBIOS/Config/zeta_std.asm +++ b/Source/HBIOS/Config/zeta_std.asm @@ -9,10 +9,7 @@ CPUOSC .EQU 20000000 ; CPU OSC FREQ RAMSIZE .EQU 512 ; SIZE OF RAM IN KB, MUST MATCH YOUR HARDWARE!!! CONBAUD .EQU 38400 ; DEFAULT BAUDRATE USED BELOW ; -SERDEV .EQU CIODEV_UART ; PRIMARY SERIAL DEVICE FOR BOOT/DEBUG/MONITOR (TYPICALLY CIODEV_UART OR CIODEV_ASCI) -CRTDEV .EQU CIODEV_NUL ; CRT DEVICE (CIODEV_PRPCON, CIODEV_PPPCON, CIODEV_VDA), USE CIODEV_NUL IF NO CRT CRTACT .EQU FALSE ; CRT ACTIVATION AT STARTUP -VDADEV .EQU VDADEV_NONE ; CRT VDA DEVICE (VDADEV_NONE, VDADEV_VDU, VDADEV_CVDU, VDADEV_N8V, VDADEV_UPD7220) VDAEMU .EQU EMUTYP_TTY ; DEFAULT VDA EMULATION (EMUTYP_TTY, EMUTYP_ANSI, ...) ; DSKYENABLE .EQU FALSE ; TRUE FOR DSKY SUPPORT (DO NOT COMBINE WITH PPIDE) @@ -26,7 +23,7 @@ UARTCNT .EQU 1 ; NUMBER OF UARTS UART0IOB .EQU $68 ; UART0 IOBASE UART0OSC .EQU 1843200 ; UART0 OSC FREQUENCY UART0BAUD .EQU CONBAUD ; UART0 BAUDRATE -UART0FIFO .EQU TRUE ; UART0 TRUE ENABLES UART FIFO (16550 ASSUMED, N8VEM AND ZETA ONLY) +UART0FIFO .EQU TRUE ; UART0 TRUE ENABLES UART FIFO (16550 ASSUMED, SBC AND ZETA ONLY) UART0AFC .EQU FALSE ; UART0 TRUE ENABLES AUTO FLOW CONTROL (YOUR TERMINAL/UART MUST SUPPORT RTS/CTS FLOW CONTROL!!!) ; ASCIENABLE .EQU FALSE ; TRUE FOR Z180 ASCI SUPPORT @@ -36,7 +33,7 @@ ASCI1BAUD .EQU CONBAUD ; ASCI1 BAUDRATE (IMPLEMENTED BY Z180_CNTLB1) VDUENABLE .EQU FALSE ; TRUE FOR VDU BOARD SUPPORT CVDUENABLE .EQU FALSE ; TRUE FOR CVDU BOARD SUPPORT UPD7220ENABLE .EQU FALSE ; TRUE FOR uPD7220 BOARD SUPPORT -N8VENABLE .EQU FALSE ; TRUE FOR N8 (TMS9918) VIDEO/KBD SUPPORT +SCGENABLE .EQU FALSE ; TRUE FOR N8 (TMS9918) VIDEO/KBD SUPPORT ; MDENABLE .EQU TRUE ; TRUE FOR ROM/RAM DISK SUPPORT (ALMOST ALWAYS WANT THIS ENABLED) MDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF MDENABLE = TRUE) @@ -72,9 +69,9 @@ SDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE SDCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) SDCSIOFAST .EQU FALSE ; TABLE-DRIVEN BIT INVERTER ; -PRPENABLE .EQU FALSE ; TRUE FOR PROPIO SD SUPPORT (FOR N8VEM PROPIO ONLY!) +PRPENABLE .EQU FALSE ; TRUE FOR PROPIO SUPPORT PRPIOB .EQU $A8 ; PORT IO ADDRESS BASE -PRPSDENABLE .EQU TRUE ; TRUE FOR PROPIO SD SUPPORT (FOR N8VEM PROPIO ONLY!) +PRPSDENABLE .EQU TRUE ; TRUE FOR PROPIO SD SUPPORT PRPSDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PRPSDENABLE = TRUE) PRPSDCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) PRPCONENABLE .EQU TRUE ; TRUE FOR PROPIO CONSOLE SUPPORT (PS/2 KBD & VGA VIDEO) diff --git a/Source/HBIOS/ansi.asm b/Source/HBIOS/ansi.asm index 9c214d2b..875e8f07 100644 --- a/Source/HBIOS/ansi.asm +++ b/Source/HBIOS/ansi.asm @@ -18,17 +18,23 @@ ANSI_DEFCOLOR .EQU 7 ; WHITE ON BLACK ; ANSI EMULATION MODULE ;================================================================================================== ; +; INITIALIZATION OF EMULATION MODULE CALLED BY PARENT VDA DRIVER +; ON ENTRY: +; C: CIO UNIT NUMBER OF CALLING VDA DRIVER +; DE: DISPATCH ADDRESS OF CALLING VDA DRIVER +; RETURNS: +; DE: OUR CIO DISPATCH ADDRESS +; ANSI_INIT: ; SAVE INCOMING VDA DISPATCH ADDRESS - CALL TSTPT ; *DEBUG* - LD (EMU_VDADISPADR),DE ; RECORD NEW VDA DISPATCH ADDRESS + LD C,A ; VDA DRIVER'S CIO UNIT NUMBER + LD (ANSI_CIOUNIT),A ; ... SAVED LOCALLY + LD (ANSI_VDADISPADR),DE ; RECORD NEW VDA DISPATCH ADDRESS ; ; QUERY THE VIDEO DRIVER FOR SCREEN DIMENSIONS LD B,BF_VDAQRY ; FUNCTION IS QUERY LD HL,0 ; WE DO NOT WANT A COPY OF THE CHARACTER BITMAP DATA - CALL TSTPT ; *DEBUG* - CALL EMU_VDADISP ; PERFORM THE QUERY FUNCTION - CALL TSTPT ; *DEBUG* + CALL ANSI_VDADISP ; PERFORM THE QUERY FUNCTION LD (ANSI_DIM),DE ; SAVE THE SCREEN DIMENSIONS RETURNED ; ; INITIALIZE ALL WORKING VARIABLES @@ -60,14 +66,18 @@ ANSI_INIT2: ; LOOP TO RESET TAB STOPS DJNZ ANSI_INIT2 ; LOOP TILL ALL BYTES DONE ; LD DE,ANSI_DISPATCH ; RETURN OUR DISPATCH ADDRESS - CALL TSTPT ; *DEBUG* XOR A RET ; ; ; +ANSI_VDADISP: + JP PANIC +ANSI_VDADISPADR .EQU $ - 2 +; +; +; ANSI_DISPATCH: - LD (ANSI_CIODEV),A ; *DEBUG* LD A,B ; GET REQUESTED FUNCTION AND $0F ; ISOLATE SUB-FUNCTION JR Z,ANSI_IN ; $30 @@ -109,7 +119,7 @@ ANSI_IN: ; HANDLE INPUT REQUEST ; ANSI_IN1: ; PERFORM ACTUAL KEYBOARD INPUT LD B,BF_VDAKRD ; SET FUNCTION TO KEYBOARD READ - CALL EMU_VDADISP ; CALL VDA DISPATCHER + CALL ANSI_VDADISP ; CALL VDA DISPATCHER LD A,E ; CHARACTER READ INTO A BIT 7,A ; TEST HIGH BIT JR NZ,ANSI_IN2 ; HANDLE $80 OR HIGHER AS SPECIAL CHAR @@ -151,13 +161,13 @@ ANSI_IST: ; CHECK QUEUE FIRST ; ; QUEUE WAS EMPTY, CHECK HARDWARE STATUS LD B,BF_VDAKST ; SET FUNCTION TO KEYBOARD STATUS - CALL EMU_VDADISP ; CHECK STATUS + CALL ANSI_VDADISP ; CHECK STATUS OR A ; SET FLAGS RET Z ; NO KEYS WAITING, RETURN NO JOY ; ; KEY WAITING, GET IT AND HANDLE IT LD B,BF_VDAKRD ; SET FUNCTION TO KEYBOARD READ - CALL EMU_VDADISP ; DO IT + CALL ANSI_VDADISP ; DO IT LD A,E ; CHARACTER READ TO A BIT 7,A ; TEST HIGH BIT JR NZ,ANSI_IST1 ; HANDLE $80 OR HIGHER AS SPECIAL CHAR @@ -198,9 +208,8 @@ ANSI_QUERY: ; REPORT DEVICE ; ANSI_DEVICE: - ;LD D,CIODEV_VDA ; D := DEVICE TYPE - LD A,(ANSI_CIODEV) ; GET THE CURRENT CIO DEVICE *DEBUG* - LD D,A ; AND PASS BACK IN D *DEBUG* + LD A,(ANSI_CIOUNIT) ; GET THE CURRENT CIO DEVICE + LD D,A ; AND PASS BACK IN D LD E,C ; E := PHYSICAL UNIT XOR A ; SIGNAL SUCCESS RET @@ -554,7 +563,7 @@ ANSI_RENDER: ANSI_RENDER1: ; WRITE THE CHARACTER POP DE ; RECOVER THE CHAR TO RENDER LD B,BF_VDAWRC ; FUNC := WRITE CHARACTER - CALL EMU_VDADISP ; SPIT OUT THE RAW CHARACTER + CALL ANSI_VDADISP ; SPIT OUT THE RAW CHARACTER ; ; END OF LINE HANDLING (CHECK FOR RIGHT MARGIN EXCEEDED) LD A,(ANSI_COLS) ; GET SCREEN COLUMNS @@ -582,7 +591,7 @@ ANSI_FF: CALL MULT8 ; HL := H * E TO GET TOTAL SCREEN POSITIONS LD E,' ' ; FILL SCREEN WITH BLANKS LD B,BF_VDAFIL ; SET FUNCTION TO FILL - CALL EMU_VDADISP ; PERFORM FILL + CALL ANSI_VDADISP ; PERFORM FILL JP ANSI_XY ; HOME CURSOR AND RETURN ; ANSI_BS: @@ -610,7 +619,7 @@ ANSI_LF: ; LINEFEED (FORWARD INDEX) ANSI_LF1: ; SCROLL LD E,1 ; SCROLL FORWARD 1 LINE LD B,BF_VDASCR ; SET FUNCTION TO SCROLL - JP EMU_VDADISP ; DO THE SCROLLING AND RETURN + JP ANSI_VDADISP ; DO THE SCROLLING AND RETURN ; ANSI_RI: ; REVERSE INDEX (REVERSE LINEFEED) LD A,(ANSI_ROW) ; GET CURRENT ROW @@ -653,7 +662,7 @@ ANSI_HT2: ; COMMIT THE NEW COLUMN VALUE ANSI_RI1: ; REVERSE SCROLL LD E,-1 ; SCROLL -1 LINES (REVERSE SCROLL 1 LINE) LD B,BF_VDASCR ; SET FUNCTION TO SCROLL - JP EMU_VDADISP ; DO THE SCROLLING AND RETURN + JP ANSI_VDADISP ; DO THE SCROLLING AND RETURN ; ; ; @@ -915,7 +924,7 @@ ANSI_ED1: ; ERASE CURSOR THRU EOS ANSI_ED2: ; ERASE START THRU CURSOR LD DE,0 ; CURSOR TO 0,0 FOR NOW LD B,BF_VDASCP ; SET FUNCTION TO SET CURSOR POSITION - CALL EMU_VDADISP ; DO IT + CALL ANSI_VDADISP ; DO IT LD DE,(ANSI_POS) ; GET ORIGINAL CURSOR POSITION CALL ANSI_XY2IDX ; HL NOW HAS INDEX INC HL ; ADD 1 POSITION TO ERASE THRU CURSOR POSITION @@ -924,14 +933,14 @@ ANSI_ED2: ; ERASE START THRU CURSOR ANSI_ED3: ; ERASE FULL DISPLAY LD DE,0 ; CURSOR POS 0,0 LD B,BF_VDASCP ; FUNCTION = SET CURSOR POS - CALL EMU_VDADISP ; DO IT + CALL ANSI_VDADISP ; DO IT LD DE,(ANSI_DIM) ; DE := SCREEN ROWS/COLS CALL ANSI_XY2IDX ; HL := CHARS ON SCREEN ; ANSI_ED4: ; COMMON FILL PROCESS COMPLETION LD E,' ' ; FILL WITH BLANK LD B,BF_VDAFIL ; FUNCTION = FILL - CALL EMU_VDADISP ; DO IT + CALL ANSI_VDADISP ; DO IT JP ANSI_XY ; RESTORE CURSOR POS AND RETURN ; ; @@ -963,7 +972,7 @@ ANSI_EL2: ; ERASE START THRU CURSOR LD DE,(ANSI_POS) ; GET CURSOR POS LD E,0 ; COL := 0, START OF ROW LD B,BF_VDASCP ; SET FUNCTION TO SET CURSOR POSITION - CALL EMU_VDADISP ; DO IT + CALL ANSI_VDADISP ; DO IT LD HL,(ANSI_POS) ; GET ORIGINAL CURSOR POSITION LD H,0 ; ONLY ERASE COLUMNS INC HL ; ADD 1 POSITION TO ERASE THRU CURSOR POSITION @@ -973,7 +982,7 @@ ANSI_EL3: ; ERASE FULL LINE LD DE,(ANSI_POS) ; GET CURSOR POSITION LD E,0 ; COL := 0 (START OF ROW) LD B,BF_VDASCP ; FUNC = SET CURSOR POS - CALL EMU_VDADISP ; DO IT + CALL ANSI_VDADISP ; DO IT LD HL,(ANSI_DIM) ; GET SCREEN DIM IN HL LD H,0 ; H := 0, HL IS NOW CHARS IN A LINE JR ANSI_EL4 ; COMPLETE THE FILL @@ -1009,7 +1018,7 @@ ANSI_IL3: ; SET CURSOR POSITION TO DEST PUSH DE ; PRESERVE DE LD B,BF_VDASCP ; FUNC = SET CURSOR POS - CALL EMU_VDADISP ; DO IT + CALL ANSI_VDADISP ; DO IT POP DE ; RECOVER DE ; SET HL TO LENGTH LD HL,(ANSI_DIM) ; GET DIMENSIONS @@ -1023,14 +1032,14 @@ ANSI_IL3: ; DO THE COPY PUSH DE ; PRESERVE DE LD B,BF_VDACPY ; FUNCTION = COPY - CALL EMU_VDADISP ; COPY THE LINE + CALL ANSI_VDADISP ; COPY THE LINE POP DE ; RECOVER DE JR ANSI_IL3 ; LOOP ; ANSI_IL4: ;CLEAR INSERTED LINE LD E,' ' ; FILL WITH BLANK LD B,BF_VDAFIL ; FUNCTION = FILL - JP EMU_VDADISP ; DO IT + JP ANSI_VDADISP ; DO IT ; ; ; @@ -1060,7 +1069,7 @@ ANSI_DL3: ; SET CURSOR TO START OF DEST ROW PUSH DE ; PRESERVE DE LD B,BF_VDASCP ; FUNC = SET CURSOR POS - CALL EMU_VDADISP ; DO IT + CALL ANSI_VDADISP ; DO IT POP DE ; RECOVER DE ; SET DE TO SOURCE POS INC D ; NEXT ROW, DE NOW HAS SOURCE @@ -1074,14 +1083,14 @@ ANSI_DL3: ; DO THE COPY PUSH DE ; PRESERVE DE LD B,BF_VDACPY ; FUNCTION = COPY - CALL EMU_VDADISP ; COPY THE LINE + CALL ANSI_VDADISP ; COPY THE LINE POP DE ; RECOVER DE JR ANSI_DL3 ; LOOP ; ANSI_DL4: ;CLEAR BOTTOM LINE LD E,' ' ; FILL WITH BLANK LD B,BF_VDAFIL ; FUNCTION = FILL - JP EMU_VDADISP ; DO IT + JP ANSI_VDADISP ; DO IT ; ; ; @@ -1105,11 +1114,11 @@ ANSI_SGR1: ; PROCESSING LOOP LD A,(ANSI_ATTR) ; GET THE ATTRIBUTE VALUE LD E,A ; MOVE TO E LD B,BF_VDASAT ; SET ATTRIBUTE FUNCTION - CALL EMU_VDADISP ; CALL THE FUNCTION + CALL ANSI_VDADISP ; CALL THE FUNCTION LD A,(ANSI_COLOR) ; GET THE COLOR VALUE LD E,A ; MOVE TO E LD B,BF_VDASCO ; SET ATTRIBUTE FUNCTION - CALL EMU_VDADISP ; CALL THE FUNCTION + CALL ANSI_VDADISP ; CALL THE FUNCTION RET ; RETURN ; ANSI_SGR2: ; HANDLE THE REQUEST CODE @@ -1197,7 +1206,7 @@ ANSI_DECALN: ; DEC SCREEN ALIGNMENT TEST CALL MULT8 ; HL := H * E TO GET TOTAL SCREEN POSITIONS LD E,'E' ; FILL SCREEN WITH BLANKS LD B,BF_VDAFIL ; SET FUNCTION TO FILL - CALL EMU_VDADISP ; PERFORM FILL + CALL ANSI_VDADISP ; PERFORM FILL JP ANSI_XY ; HOME CURSOR AND RETURN ; ;================================================================================================== @@ -1318,7 +1327,7 @@ ANSI_XY: LD (ANSI_WRAP),A ; CLEAR THE WRAP FLAG LD DE,(ANSI_POS) ; GET THE DESIRED CURSOR POSITION LD B,BF_VDASCP ; SET FUNCTION TO SET CURSOR POSITION - JP EMU_VDADISP ; REPOSITION CURSOR + JP ANSI_VDADISP ; REPOSITION CURSOR ; ; CONVERT XY COORDINATES IN DE INTO LINEAR INDEX IN HL ; D=ROW, E=COL @@ -1367,4 +1376,4 @@ ANSI_PARIDX .DB 0 ; NUMBER OF PARAMETERS RECORDED ANSI_PARLST .FILL 16,0 ; PARAMETER VALUE LIST (UP TO 16 BYTE VALUES) ANSI_VARLEN .EQU $ - ANSI_VARS ; -ANSI_CIODEV .DB 0 ; *DEBUG* +ANSI_CIOUNIT .DB $FF ; CIO UNIT NUMBER OF PARENT VDA diff --git a/Source/HBIOS/cvdu.asm b/Source/HBIOS/cvdu.asm index ae6ded25..19df96fb 100644 --- a/Source/HBIOS/cvdu.asm +++ b/Source/HBIOS/cvdu.asm @@ -42,13 +42,13 @@ CVDU_INIT: LD C,CIODEV_CVDU ; DEVICE TYPE LD DE,0 ; UNIT DATA BLOB ADDRESS CALL CIO_ADDENT ; ADD ENTRY, A := UNIT ASSIGNED + LD (CVDU_CIOUNIT),A ; SAVE IT LOCALLY LD (HCB + HCB_CRTDEV),A ; SET OURSELVES AS THE CRT DEVICE - CALL TSTPT ; *DEBUG* LD D,VDAEMU ; DEFAULT EMULATION LD E,0 ; VIDEO MODE = 0 JP CVDU_VDAINI -; +; ;====================================================================== ; CVDU DRIVER - CHARACTER I/O (CIO) DISPATCHER AND FUNCTIONS ;====================================================================== @@ -101,12 +101,12 @@ CVDU_VDAINI: POP DE ; RECOVER EMULATION TYPE ; INITIALIZE EMULATION - LD C,D ; EMULATION MODE TO C + LD B,D ; EMULATION TYPE TO B + LD A,(CVDU_CIOUNIT) ; CIO UNIT NUMBER + LD C,A ; ... IS PASSED IN C LD DE,CVDU_DISPATCH ; DISPATCH ADDRESS TO DE - CALL TSTPT ; *DEBUG* CALL EMU_INIT ; INITIALIZE EMULATION, DE := CIO DISPATCHER LD (CVDU_CIODISPADR),DE ; SAVE EMULATORS CIO DISPATCH INTERFACE ADDRESS - CALL TSTPT ; *DEBUG* XOR A ; SIGNAL SUCCESS RET @@ -649,6 +649,8 @@ CVDU_BLKCPY1: ; CVDU DRIVER - DATA ;================================================================================================== ; +CVDU_CIOUNIT .DB $FF ; LOCAL COPY OF OUR CIO UNIT NUMBER +; CVDU_ATTR .DB 0 ; CURRENT COLOR CVDU_POS .DW 0 ; CURRENT DISPLAY POSITION ; diff --git a/Source/HBIOS/cvdu_font.asm b/Source/HBIOS/cvdu_font.asm index 07d8e7c6..dbe80ba0 100644 --- a/Source/HBIOS/cvdu_font.asm +++ b/Source/HBIOS/cvdu_font.asm @@ -1,1027 +1,1025 @@ CVDU_FONTDATA: - .DB $18,$18,$18,$FF,$FF,$18,$18,$18 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $C0,$C0,$30,$30,$C0,$C0,$30,$30 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $18,$18,$18,$18,$18,$18,$18,$18 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $33,$33,$CC,$CC,$33,$33,$CC,$CC - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $33,$99,$CC,$66,$33,$99,$CC,$66 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $F0,$F0,$F0,$F0,$F0,$F0,$F0,$F0 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$00,$00,$FF,$FF,$FF,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $C0,$C0,$C0,$C0,$C0,$C0,$C0,$C0 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $CC,$CC,$33,$33,$CC,$CC,$33,$33 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $03,$03,$03,$03,$03,$03,$03,$03 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$00,$00,$CC,$CC,$33,$33 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $CC,$99,$33,$66,$CC,$99,$33,$66 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $03,$03,$03,$03,$03,$03,$03,$03 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $18,$18,$18,$1F,$1F,$18,$18,$18 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$00,$00,$0F,$0F,$0F,$0F - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $18,$18,$18,$1F,$1F,$00,$00,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$00,$F8,$F8,$18,$18,$18 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$00,$00,$00,$00,$FF,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$00,$1F,$1F,$18,$18,$18 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $18,$18,$18,$FF,$FF,$00,$00,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$00,$FF,$FF,$18,$18,$18 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $18,$18,$18,$F8,$F8,$18,$18,$18 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $C0,$C0,$C0,$C0,$C0,$C0,$C0,$C0 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $E0,$E0,$E0,$E0,$E0,$E0,$E0,$E0 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $07,$07,$07,$07,$07,$07,$07,$07 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$FF,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$FF,$FF,$00,$00,$00,$00,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$00,$00,$00,$FF,$FF,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $01,$03,$06,$6C,$78,$70,$60,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $18,$18,$18,$18,$00,$00,$18,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $66,$66,$66,$00,$00,$00,$00,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $66,$66,$FF,$66,$FF,$66,$66,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $18,$3E,$60,$3C,$06,$7C,$18,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $62,$66,$0C,$18,$30,$66,$46,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $3C,$66,$3C,$38,$67,$66,$3F,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $06,$0C,$18,$00,$00,$00,$00,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $0C,$18,$30,$30,$30,$18,$0C,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $30,$18,$0C,$0C,$0C,$18,$30,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$66,$3C,$FF,$3C,$66,$00,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$18,$18,$7E,$18,$18,$00,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$00,$00,$00,$18,$18,$30 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$00,$7E,$00,$00,$00,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$00,$00,$00,$18,$18,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$03,$06,$0C,$18,$30,$60,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $3C,$66,$6E,$76,$66,$66,$3C,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $18,$18,$38,$18,$18,$18,$7E,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $3C,$66,$06,$0C,$30,$60,$7E,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $3C,$66,$06,$1C,$06,$66,$3C,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $06,$0E,$1E,$66,$7F,$06,$06,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $7E,$60,$7C,$06,$06,$66,$3C,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $3C,$66,$60,$7C,$66,$66,$3C,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $7E,$66,$0C,$18,$18,$18,$18,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $3C,$66,$66,$3C,$66,$66,$3C,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $3C,$66,$66,$3E,$06,$66,$3C,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$18,$00,$00,$18,$00,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$18,$00,$00,$18,$18,$30 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $0E,$18,$30,$60,$30,$18,$0E,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$7E,$00,$7E,$00,$00,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $70,$18,$0C,$06,$0C,$18,$70,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $3C,$66,$06,$0C,$18,$00,$18,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $3C,$66,$6E,$6E,$60,$62,$3C,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $18,$3C,$66,$7E,$66,$66,$66,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $7C,$66,$66,$7C,$66,$66,$7C,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $3C,$66,$60,$60,$60,$66,$3C,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $78,$6C,$66,$66,$66,$6C,$78,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $7E,$60,$60,$78,$60,$60,$7E,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $7E,$60,$60,$78,$60,$60,$60,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $3C,$66,$60,$6E,$66,$66,$3C,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $66,$66,$66,$7E,$66,$66,$66,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $3C,$18,$18,$18,$18,$18,$3C,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $1E,$0C,$0C,$0C,$0C,$6C,$38,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $66,$6C,$78,$70,$78,$6C,$66,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $60,$60,$60,$60,$60,$60,$7E,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $63,$77,$7F,$6B,$63,$63,$63,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $66,$76,$7E,$7E,$6E,$66,$66,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $3C,$66,$66,$66,$66,$66,$3C,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $7C,$66,$66,$7C,$60,$60,$60,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $3C,$66,$66,$66,$66,$3C,$0E,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $7C,$66,$66,$7C,$78,$6C,$66,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $3C,$66,$60,$3C,$06,$66,$3C,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $7E,$18,$18,$18,$18,$18,$18,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $66,$66,$66,$66,$66,$66,$3C,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $66,$66,$66,$66,$66,$3C,$18,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $63,$63,$63,$6B,$7F,$77,$63,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $66,$66,$3C,$18,$3C,$66,$66,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $66,$66,$66,$3C,$18,$18,$18,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $7E,$06,$0C,$18,$30,$60,$7E,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $3C,$30,$30,$30,$30,$30,$3C,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $40,$60,$30,$18,$0C,$06,$02,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $3C,$0C,$0C,$0C,$0C,$0C,$3C,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$18,$24,$42,$42,$00,$00,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$30,$18,$0C,$04,$00,$00,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$3C,$06,$3E,$66,$3E,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$60,$60,$7C,$66,$66,$7C,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$3C,$60,$60,$60,$3C,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$06,$06,$3E,$66,$66,$3E,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$3C,$66,$7E,$60,$3C,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$0E,$18,$3E,$18,$18,$18,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$3E,$66,$66,$3E,$06,$7C - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$60,$60,$7C,$66,$66,$66,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$18,$00,$38,$18,$18,$3C,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$06,$00,$06,$06,$06,$06,$3C - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$60,$60,$6C,$78,$6C,$66,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$38,$18,$18,$18,$18,$3C,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$66,$7F,$7F,$6B,$63,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$7C,$66,$66,$66,$66,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$3C,$66,$66,$66,$3C,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$7C,$66,$66,$7C,$60,$60 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$3E,$66,$66,$3E,$06,$06 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$7C,$66,$60,$60,$60,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$3E,$60,$3C,$06,$7C,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$18,$7E,$18,$18,$18,$0E,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$66,$66,$66,$66,$3E,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$66,$66,$66,$3C,$18,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$63,$6B,$7F,$3E,$36,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$66,$3C,$18,$3C,$66,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$66,$66,$66,$3E,$0C,$78 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$7E,$0C,$18,$30,$7E,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$0C,$10,$10,$20,$10,$10,$0C - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$18,$18,$18,$18,$18,$18,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$18,$04,$04,$02,$04,$04,$18 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$00,$00,$32,$4C,$00,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$81,$81,$81,$81,$81,$81,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $F0,$F0,$F0,$F0,$0F,$0F,$0F,$0F - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $C3,$99,$91,$91,$9F,$99,$C3,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$FF,$C3,$F9,$C1,$99,$C1,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$9F,$9F,$83,$99,$99,$83,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$FF,$C3,$9F,$9F,$9F,$C3,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$F9,$F9,$C1,$99,$99,$C1,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$FF,$C3,$99,$81,$9F,$C3,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$F1,$E7,$C1,$E7,$E7,$E7,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$FF,$C1,$99,$99,$C1,$F9,$83 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$9F,$9F,$83,$99,$99,$99,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$E7,$FF,$C7,$E7,$E7,$C3,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$F9,$FF,$F9,$F9,$F9,$F9,$C3 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$9F,$9F,$93,$87,$93,$99,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$C7,$E7,$E7,$E7,$E7,$C3,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$FF,$99,$80,$80,$94,$9C,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$FF,$83,$99,$99,$99,$99,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$FF,$C3,$99,$99,$99,$C3,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$FF,$83,$99,$99,$83,$9F,$9F - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$FF,$C1,$99,$99,$C1,$F9,$F9 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$FF,$83,$99,$9F,$9F,$9F,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$FF,$C1,$9F,$C3,$F9,$83,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$E7,$81,$E7,$E7,$E7,$F1,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$FF,$99,$99,$99,$99,$C1,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$FF,$99,$99,$99,$C3,$E7,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$FF,$9C,$94,$80,$C1,$C9,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$FF,$99,$C3,$E7,$C3,$99,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$FF,$99,$99,$99,$C1,$F3,$87 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$FF,$81,$F3,$E7,$CF,$81,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $C3,$CF,$CF,$CF,$CF,$CF,$C3,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $F3,$ED,$CF,$83,$CF,$9D,$03,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $C3,$F3,$F3,$F3,$F3,$F3,$C3,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$E7,$C3,$81,$E7,$E7,$E7,$E7 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$EF,$CF,$80,$80,$CF,$EF,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $E7,$E7,$E7,$E7,$FF,$FF,$E7,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $99,$99,$99,$FF,$FF,$FF,$FF,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $99,$99,$00,$99,$00,$99,$99,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $E7,$C1,$9F,$C3,$F9,$83,$E7,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $9D,$99,$F3,$E7,$CF,$99,$B9,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $C3,$99,$C3,$C7,$98,$99,$C0,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $F9,$F3,$E7,$FF,$FF,$FF,$FF,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $F3,$E7,$CF,$CF,$CF,$E7,$F3,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $CF,$E7,$F3,$F3,$F3,$E7,$CF,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$99,$C3,$00,$C3,$99,$FF,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$E7,$E7,$81,$E7,$E7,$FF,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$FF,$FF,$FF,$FF,$E7,$E7,$CF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$FF,$FF,$81,$FF,$FF,$FF,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$FF,$FF,$FF,$FF,$E7,$E7,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$FC,$F9,$F3,$E7,$CF,$9F,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $C3,$99,$91,$89,$99,$99,$C3,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $E7,$E7,$C7,$E7,$E7,$E7,$81,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $C3,$99,$F9,$F3,$CF,$9F,$81,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $C3,$99,$F9,$E3,$F9,$99,$C3,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $F9,$F1,$E1,$99,$80,$F9,$F9,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $81,$9F,$83,$F9,$F9,$99,$C3,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $C3,$99,$9F,$83,$99,$99,$C3,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $81,$99,$F3,$E7,$E7,$E7,$E7,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $C3,$99,$99,$C3,$99,$99,$C3,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $C3,$99,$99,$C1,$F9,$99,$C3,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$FF,$E7,$FF,$FF,$E7,$FF,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$FF,$E7,$FF,$FF,$E7,$E7,$CF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $F1,$E7,$CF,$9F,$CF,$E7,$F1,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$FF,$81,$FF,$81,$FF,$FF,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $8F,$E7,$F3,$F9,$F3,$E7,$8F,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $C3,$99,$F9,$F3,$E7,$FF,$E7,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$FF,$FF,$00,$00,$FF,$FF,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $E7,$C3,$99,$81,$99,$99,$99,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $83,$99,$99,$83,$99,$99,$83,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $C3,$99,$9F,$9F,$9F,$99,$C3,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $87,$93,$99,$99,$99,$93,$87,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $81,$9F,$9F,$87,$9F,$9F,$81,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $81,$9F,$9F,$87,$9F,$9F,$9F,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $C3,$99,$9F,$91,$99,$99,$C3,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $99,$99,$99,$81,$99,$99,$99,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $C3,$E7,$E7,$E7,$E7,$E7,$C3,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $E1,$F3,$F3,$F3,$F3,$93,$C7,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $99,$93,$87,$8F,$87,$93,$99,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $9F,$9F,$9F,$9F,$9F,$9F,$81,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $9C,$88,$80,$94,$9C,$9C,$9C,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $99,$89,$81,$81,$91,$99,$99,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $C3,$99,$99,$99,$99,$99,$C3,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $83,$99,$99,$83,$9F,$9F,$9F,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $C3,$99,$99,$99,$99,$C3,$F1,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $83,$99,$99,$83,$87,$93,$99,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $C3,$99,$9F,$C3,$F9,$99,$C3,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $81,$E7,$E7,$E7,$E7,$E7,$E7,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $99,$99,$99,$99,$99,$99,$C3,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $99,$99,$99,$99,$99,$C3,$E7,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $9C,$9C,$9C,$94,$80,$88,$9C,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $99,$99,$C3,$E7,$C3,$99,$99,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $99,$99,$99,$C3,$E7,$E7,$E7,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $81,$F9,$F3,$E7,$CF,$9F,$81,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $E7,$E7,$E7,$00,$00,$E7,$E7,$E7 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $3F,$3F,$CF,$CF,$3F,$3F,$CF,$CF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $E7,$E7,$E7,$E7,$E7,$E7,$E7,$E7 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $CC,$CC,$33,$33,$CC,$CC,$33,$33 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $CC,$66,$33,$99,$CC,$66,$33,$99 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $0F,$0F,$0F,$0F,$0F,$0F,$0F,$0F - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$FF,$FF,$FF,$00,$00,$00,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$FF,$FF,$FF,$FF,$FF,$FF,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $3F,$3F,$3F,$3F,$3F,$3F,$3F,$3F - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $33,$33,$CC,$CC,$33,$33,$CC,$CC - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FC,$FC,$FC,$FC,$FC,$FC,$FC,$FC - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$FF,$FF,$FF,$33,$33,$CC,$CC - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $33,$66,$CC,$99,$33,$66,$CC,$99 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FC,$FC,$FC,$FC,$FC,$FC,$FC,$FC - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $E7,$E7,$E7,$E0,$E0,$E7,$E7,$E7 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$FF,$FF,$FF,$F0,$F0,$F0,$F0 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $E7,$E7,$E7,$E0,$E0,$FF,$FF,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$FF,$FF,$07,$07,$E7,$E7,$E7 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$FF,$FF,$FF,$FF,$FF,$00,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$FF,$FF,$E0,$E0,$E7,$E7,$E7 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $E7,$E7,$E7,$00,$00,$FF,$FF,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$FF,$FF,$00,$00,$E7,$E7,$E7 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $E7,$E7,$E7,$07,$07,$E7,$E7,$E7 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $3F,$3F,$3F,$3F,$3F,$3F,$3F,$3F - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $1F,$1F,$1F,$1F,$1F,$1F,$1F,$1F - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $F8,$F8,$F8,$F8,$F8,$F8,$F8,$F8 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$FF,$FF,$FF,$FF,$FF,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$00,$FF,$FF,$FF,$FF,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$FF,$FF,$FF,$FF,$00,$00,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FE,$FC,$F9,$93,$87,$8F,$9F,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$FF,$FF,$FF,$0F,$0F,$0F,$0F - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $F0,$F0,$F0,$F0,$FF,$FF,$FF,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $E7,$E7,$E7,$07,$07,$FF,$FF,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $0F,$0F,$0F,$0F,$FF,$FF,$FF,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 -#IF 0 ; *DEBUG* - .DB $0F,$0F,$0F,$0F,$F0,$F0,$F0,$F0 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $3C,$66,$6E,$6E,$60,$62,$3C,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $18,$3C,$66,$7E,$66,$66,$66,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $7C,$66,$66,$7C,$66,$66,$7C,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $3C,$66,$60,$60,$60,$66,$3C,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $78,$6C,$66,$66,$66,$6C,$78,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $7E,$60,$60,$78,$60,$60,$7E,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $7E,$60,$60,$78,$60,$60,$60,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $3C,$66,$60,$6E,$66,$66,$3C,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $66,$66,$66,$7E,$66,$66,$66,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $3C,$18,$18,$18,$18,$18,$3C,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $1E,$0C,$0C,$0C,$0C,$6C,$38,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $66,$6C,$78,$70,$78,$6C,$66,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $60,$60,$60,$60,$60,$60,$7E,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $63,$77,$7F,$6B,$63,$63,$63,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $66,$76,$7E,$7E,$6E,$66,$66,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $3C,$66,$66,$66,$66,$66,$3C,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $7C,$66,$66,$7C,$60,$60,$60,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $3C,$66,$66,$66,$66,$3C,$0E,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $7C,$66,$66,$7C,$78,$6C,$66,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $3C,$66,$60,$3C,$06,$66,$3C,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $7E,$18,$18,$18,$18,$18,$18,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $66,$66,$66,$66,$66,$66,$3C,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $66,$66,$66,$66,$66,$3C,$18,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $63,$63,$63,$6B,$7F,$77,$63,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $66,$66,$3C,$18,$3C,$66,$66,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $66,$66,$66,$3C,$18,$18,$18,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $7E,$06,$0C,$18,$30,$60,$7E,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $3C,$30,$30,$30,$30,$30,$3C,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $0C,$12,$30,$7C,$30,$62,$FC,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $3C,$0C,$0C,$0C,$0C,$0C,$3C,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$18,$3C,$7E,$18,$18,$18,$18 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$10,$30,$7F,$7F,$30,$10,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $18,$18,$18,$18,$00,$00,$18,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $66,$66,$66,$00,$00,$00,$00,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $66,$66,$FF,$66,$FF,$66,$66,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $18,$3E,$60,$3C,$06,$7C,$18,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $62,$66,$0C,$18,$30,$66,$46,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $3C,$66,$3C,$38,$67,$66,$3F,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $06,$0C,$18,$00,$00,$00,$00,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $0C,$18,$30,$30,$30,$18,$0C,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $30,$18,$0C,$0C,$0C,$18,$30,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$66,$3C,$FF,$3C,$66,$00,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$18,$18,$7E,$18,$18,$00,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$00,$00,$00,$18,$18,$30 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$00,$7E,$00,$00,$00,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$00,$00,$00,$18,$18,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$03,$06,$0C,$18,$30,$60,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $3C,$66,$6E,$76,$66,$66,$3C,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $18,$18,$38,$18,$18,$18,$7E,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $3C,$66,$06,$0C,$30,$60,$7E,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $3C,$66,$06,$1C,$06,$66,$3C,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $06,$0E,$1E,$66,$7F,$06,$06,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $7E,$60,$7C,$06,$06,$66,$3C,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $3C,$66,$60,$7C,$66,$66,$3C,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $7E,$66,$0C,$18,$18,$18,$18,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $3C,$66,$66,$3C,$66,$66,$3C,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $3C,$66,$66,$3E,$06,$66,$3C,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$18,$00,$00,$18,$00,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$18,$00,$00,$18,$18,$30 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $0E,$18,$30,$60,$30,$18,$0E,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$7E,$00,$7E,$00,$00,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $70,$18,$0C,$06,$0C,$18,$70,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $3C,$66,$06,$0C,$18,$00,$18,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$00,$FF,$FF,$00,$00,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $08,$1C,$3E,$7F,$7F,$1C,$3E,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $18,$18,$18,$18,$18,$18,$18,$18 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$00,$FF,$FF,$00,$00,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$FF,$FF,$00,$00,$00,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$FF,$FF,$00,$00,$00,$00,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$00,$00,$FF,$FF,$00,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $30,$30,$30,$30,$30,$30,$30,$30 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $0C,$0C,$0C,$0C,$0C,$0C,$0C,$0C - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$00,$E0,$F0,$38,$18,$18 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $18,$18,$1C,$0F,$07,$00,$00,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $18,$18,$38,$F0,$E0,$00,$00,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $C0,$C0,$C0,$C0,$C0,$C0,$FF,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $C0,$E0,$70,$38,$1C,$0E,$07,$03 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $03,$07,$0E,$1C,$38,$70,$E0,$C0 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$FF,$C0,$C0,$C0,$C0,$C0,$C0 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$FF,$03,$03,$03,$03,$03,$03 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$3C,$7E,$7E,$7E,$7E,$3C,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$00,$00,$00,$FF,$FF,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $36,$7F,$7F,$7F,$3E,$1C,$08,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $60,$60,$60,$60,$60,$60,$60,$60 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$00,$07,$0F,$1C,$18,$18 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $C3,$E7,$7E,$3C,$3C,$7E,$E7,$C3 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$3C,$7E,$66,$66,$7E,$3C,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $18,$18,$66,$66,$18,$18,$3C,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $06,$06,$06,$06,$06,$06,$06,$06 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $08,$1C,$3E,$7F,$3E,$1C,$08,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $18,$18,$18,$FF,$FF,$18,$18,$18 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $C0,$C0,$30,$30,$C0,$C0,$30,$30 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $18,$18,$18,$18,$18,$18,$18,$18 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$03,$3E,$76,$36,$36,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$7F,$3F,$1F,$0F,$07,$03,$01 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $F0,$F0,$F0,$F0,$F0,$F0,$F0,$F0 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$00,$00,$FF,$FF,$FF,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $C0,$C0,$C0,$C0,$C0,$C0,$C0,$C0 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $CC,$CC,$33,$33,$CC,$CC,$33,$33 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $03,$03,$03,$03,$03,$03,$03,$03 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$00,$00,$CC,$CC,$33,$33 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$FE,$FC,$F8,$F0,$E0,$C0,$80 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $03,$03,$03,$03,$03,$03,$03,$03 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $18,$18,$18,$1F,$1F,$18,$18,$18 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$00,$00,$0F,$0F,$0F,$0F - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $18,$18,$18,$1F,$1F,$00,$00,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$00,$F8,$F8,$18,$18,$18 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$00,$00,$00,$00,$FF,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$00,$1F,$1F,$18,$18,$18 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $18,$18,$18,$FF,$FF,$00,$00,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$00,$FF,$FF,$18,$18,$18 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $18,$18,$18,$F8,$F8,$18,$18,$18 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $C0,$C0,$C0,$C0,$C0,$C0,$C0,$C0 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $E0,$E0,$E0,$E0,$E0,$E0,$E0,$E0 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $07,$07,$07,$07,$07,$07,$07,$07 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$FF,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$FF,$FF,$00,$00,$00,$00,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$00,$00,$00,$FF,$FF,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $03,$03,$03,$03,$03,$03,$FF,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$00,$00,$F0,$F0,$F0,$F0 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $0F,$0F,$0F,$0F,$00,$00,$00,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $18,$18,$18,$F8,$F8,$00,$00,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $F0,$F0,$F0,$F0,$00,$00,$00,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $F0,$F0,$F0,$F0,$0F,$0F,$0F,$0F - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $C3,$99,$91,$91,$9F,$99,$C3,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $E7,$C3,$99,$81,$99,$99,$99,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $83,$99,$99,$83,$99,$99,$83,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $C3,$99,$9F,$9F,$9F,$99,$C3,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $87,$93,$99,$99,$99,$93,$87,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $81,$9F,$9F,$87,$9F,$9F,$81,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $81,$9F,$9F,$87,$9F,$9F,$9F,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $C3,$99,$9F,$91,$99,$99,$C3,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $99,$99,$99,$81,$99,$99,$99,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $C3,$E7,$E7,$E7,$E7,$E7,$C3,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $E1,$F3,$F3,$F3,$F3,$93,$C7,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $99,$93,$87,$8F,$87,$93,$99,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $9F,$9F,$9F,$9F,$9F,$9F,$81,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $9C,$88,$80,$94,$9C,$9C,$9C,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $99,$89,$81,$81,$91,$99,$99,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $C3,$99,$99,$99,$99,$99,$C3,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $83,$99,$99,$83,$9F,$9F,$9F,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $C3,$99,$99,$99,$99,$C3,$F1,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $83,$99,$99,$83,$87,$93,$99,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $C3,$99,$9F,$C3,$F9,$99,$C3,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $81,$E7,$E7,$E7,$E7,$E7,$E7,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $99,$99,$99,$99,$99,$99,$C3,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $99,$99,$99,$99,$99,$C3,$E7,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $9C,$9C,$9C,$94,$80,$88,$9C,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $99,$99,$C3,$E7,$C3,$99,$99,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $99,$99,$99,$C3,$E7,$E7,$E7,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $81,$F9,$F3,$E7,$CF,$9F,$81,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $C3,$CF,$CF,$CF,$CF,$CF,$C3,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $F3,$ED,$CF,$83,$CF,$9D,$03,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $C3,$F3,$F3,$F3,$F3,$F3,$C3,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$E7,$C3,$81,$E7,$E7,$E7,$E7 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$EF,$CF,$80,$80,$CF,$EF,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $E7,$E7,$E7,$E7,$FF,$FF,$E7,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $99,$99,$99,$FF,$FF,$FF,$FF,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $99,$99,$00,$99,$00,$99,$99,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $E7,$C1,$9F,$C3,$F9,$83,$E7,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $9D,$99,$F3,$E7,$CF,$99,$B9,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $C3,$99,$C3,$C7,$98,$99,$C0,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $F9,$F3,$E7,$FF,$FF,$FF,$FF,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $F3,$E7,$CF,$CF,$CF,$E7,$F3,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $CF,$E7,$F3,$F3,$F3,$E7,$CF,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$99,$C3,$00,$C3,$99,$FF,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$E7,$E7,$81,$E7,$E7,$FF,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$FF,$FF,$FF,$FF,$E7,$E7,$CF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$FF,$FF,$81,$FF,$FF,$FF,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$FF,$FF,$FF,$FF,$E7,$E7,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$FC,$F9,$F3,$E7,$CF,$9F,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $C3,$99,$91,$89,$99,$99,$C3,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $E7,$E7,$C7,$E7,$E7,$E7,$81,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $C3,$99,$F9,$F3,$CF,$9F,$81,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $C3,$99,$F9,$E3,$F9,$99,$C3,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $F9,$F1,$E1,$99,$80,$F9,$F9,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $81,$9F,$83,$F9,$F9,$99,$C3,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $C3,$99,$9F,$83,$99,$99,$C3,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $81,$99,$F3,$E7,$E7,$E7,$E7,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $C3,$99,$99,$C3,$99,$99,$C3,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $C3,$99,$99,$C1,$F9,$99,$C3,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$FF,$E7,$FF,$FF,$E7,$FF,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$FF,$E7,$FF,$FF,$E7,$E7,$CF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $F1,$E7,$CF,$9F,$CF,$E7,$F1,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$FF,$81,$FF,$81,$FF,$FF,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $8F,$E7,$F3,$F9,$F3,$E7,$8F,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $C3,$99,$F9,$F3,$E7,$FF,$E7,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$FF,$FF,$00,$00,$FF,$FF,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $F7,$E3,$C1,$80,$80,$E3,$C1,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $E7,$E7,$E7,$E7,$E7,$E7,$E7,$E7 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$FF,$FF,$00,$00,$FF,$FF,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$FF,$00,$00,$FF,$FF,$FF,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$00,$00,$FF,$FF,$FF,$FF,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$FF,$FF,$FF,$00,$00,$FF,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $CF,$CF,$CF,$CF,$CF,$CF,$CF,$CF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $F3,$F3,$F3,$F3,$F3,$F3,$F3,$F3 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$FF,$FF,$1F,$0F,$C7,$E7,$E7 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $E7,$E7,$E3,$F0,$F8,$FF,$FF,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $E7,$E7,$C7,$0F,$1F,$FF,$FF,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $3F,$3F,$3F,$3F,$3F,$3F,$00,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $3F,$1F,$8F,$C7,$E3,$F1,$F8,$FC - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FC,$F8,$F1,$E3,$C7,$8F,$1F,$3F - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$3F,$3F,$3F,$3F,$3F,$3F - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$FC,$FC,$FC,$FC,$FC,$FC - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$C3,$81,$81,$81,$81,$C3,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$FF,$FF,$FF,$FF,$00,$00,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $C9,$80,$80,$80,$C1,$E3,$F7,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $9F,$9F,$9F,$9F,$9F,$9F,$9F,$9F - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$FF,$FF,$F8,$F0,$E3,$E7,$E7 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $3C,$18,$81,$C3,$C3,$81,$18,$3C - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$C3,$81,$99,$99,$81,$C3,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $E7,$E7,$99,$99,$E7,$E7,$C3,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $F9,$F9,$F9,$F9,$F9,$F9,$F9,$F9 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $F7,$E3,$C1,$80,$C1,$E3,$F7,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $E7,$E7,$E7,$00,$00,$E7,$E7,$E7 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $3F,$3F,$CF,$CF,$3F,$3F,$CF,$CF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $E7,$E7,$E7,$E7,$E7,$E7,$E7,$E7 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$FF,$FC,$C1,$89,$C9,$C9,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$80,$C0,$E0,$F0,$F8,$FC,$FE - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $0F,$0F,$0F,$0F,$0F,$0F,$0F,$0F - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$FF,$FF,$FF,$00,$00,$00,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$FF,$FF,$FF,$FF,$FF,$FF,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $3F,$3F,$3F,$3F,$3F,$3F,$3F,$3F - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $33,$33,$CC,$CC,$33,$33,$CC,$CC - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FC,$FC,$FC,$FC,$FC,$FC,$FC,$FC - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$FF,$FF,$FF,$33,$33,$CC,$CC - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$01,$03,$07,$0F,$1F,$3F,$7F - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FC,$FC,$FC,$FC,$FC,$FC,$FC,$FC - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $E7,$E7,$E7,$E0,$E0,$E7,$E7,$E7 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$FF,$FF,$FF,$F0,$F0,$F0,$F0 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $E7,$E7,$E7,$E0,$E0,$FF,$FF,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$FF,$FF,$07,$07,$E7,$E7,$E7 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$FF,$FF,$FF,$FF,$FF,$00,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$FF,$FF,$E0,$E0,$E7,$E7,$E7 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $E7,$E7,$E7,$00,$00,$FF,$FF,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$FF,$FF,$00,$00,$E7,$E7,$E7 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $E7,$E7,$E7,$07,$07,$E7,$E7,$E7 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $3F,$3F,$3F,$3F,$3F,$3F,$3F,$3F - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $1F,$1F,$1F,$1F,$1F,$1F,$1F,$1F - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $F8,$F8,$F8,$F8,$F8,$F8,$F8,$F8 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$FF,$FF,$FF,$FF,$FF,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $00,$00,$00,$FF,$FF,$FF,$FF,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$FF,$FF,$FF,$FF,$00,$00,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FC,$FC,$FC,$FC,$FC,$FC,$00,$00 - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $FF,$FF,$FF,$FF,$0F,$0F,$0F,$0F - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $F0,$F0,$F0,$F0,$FF,$FF,$FF,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $E7,$E7,$E7,$07,$07,$FF,$FF,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 - .DB $0F,$0F,$0F,$0F,$FF,$FF,$FF,$FF - .DB $00,$00,$00,$00,$00,$00,$00,$00 -#ENDIF \ No newline at end of file + .DB $18,$18,$18,$FF,$FF,$18,$18,$18 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $C0,$C0,$30,$30,$C0,$C0,$30,$30 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $18,$18,$18,$18,$18,$18,$18,$18 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $33,$33,$CC,$CC,$33,$33,$CC,$CC + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $33,$99,$CC,$66,$33,$99,$CC,$66 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $F0,$F0,$F0,$F0,$F0,$F0,$F0,$F0 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$00,$00,$FF,$FF,$FF,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $C0,$C0,$C0,$C0,$C0,$C0,$C0,$C0 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $CC,$CC,$33,$33,$CC,$CC,$33,$33 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $03,$03,$03,$03,$03,$03,$03,$03 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$00,$00,$CC,$CC,$33,$33 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $CC,$99,$33,$66,$CC,$99,$33,$66 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $03,$03,$03,$03,$03,$03,$03,$03 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $18,$18,$18,$1F,$1F,$18,$18,$18 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$00,$00,$0F,$0F,$0F,$0F + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $18,$18,$18,$1F,$1F,$00,$00,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$00,$F8,$F8,$18,$18,$18 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$00,$00,$00,$00,$FF,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$00,$1F,$1F,$18,$18,$18 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $18,$18,$18,$FF,$FF,$00,$00,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$00,$FF,$FF,$18,$18,$18 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $18,$18,$18,$F8,$F8,$18,$18,$18 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $C0,$C0,$C0,$C0,$C0,$C0,$C0,$C0 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $E0,$E0,$E0,$E0,$E0,$E0,$E0,$E0 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $07,$07,$07,$07,$07,$07,$07,$07 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$FF,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$FF,$FF,$00,$00,$00,$00,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$00,$00,$00,$FF,$FF,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $01,$03,$06,$6C,$78,$70,$60,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $18,$18,$18,$18,$00,$00,$18,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $66,$66,$66,$00,$00,$00,$00,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $66,$66,$FF,$66,$FF,$66,$66,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $18,$3E,$60,$3C,$06,$7C,$18,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $62,$66,$0C,$18,$30,$66,$46,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $3C,$66,$3C,$38,$67,$66,$3F,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $06,$0C,$18,$00,$00,$00,$00,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $0C,$18,$30,$30,$30,$18,$0C,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $30,$18,$0C,$0C,$0C,$18,$30,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$66,$3C,$FF,$3C,$66,$00,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$18,$18,$7E,$18,$18,$00,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$00,$00,$00,$18,$18,$30 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$00,$7E,$00,$00,$00,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$00,$00,$00,$18,$18,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$03,$06,$0C,$18,$30,$60,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $3C,$66,$6E,$76,$66,$66,$3C,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $18,$18,$38,$18,$18,$18,$7E,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $3C,$66,$06,$0C,$30,$60,$7E,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $3C,$66,$06,$1C,$06,$66,$3C,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $06,$0E,$1E,$66,$7F,$06,$06,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $7E,$60,$7C,$06,$06,$66,$3C,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $3C,$66,$60,$7C,$66,$66,$3C,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $7E,$66,$0C,$18,$18,$18,$18,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $3C,$66,$66,$3C,$66,$66,$3C,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $3C,$66,$66,$3E,$06,$66,$3C,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$18,$00,$00,$18,$00,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$18,$00,$00,$18,$18,$30 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $0E,$18,$30,$60,$30,$18,$0E,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$7E,$00,$7E,$00,$00,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $70,$18,$0C,$06,$0C,$18,$70,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $3C,$66,$06,$0C,$18,$00,$18,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $3C,$66,$6E,$6E,$60,$62,$3C,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $18,$3C,$66,$7E,$66,$66,$66,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $7C,$66,$66,$7C,$66,$66,$7C,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $3C,$66,$60,$60,$60,$66,$3C,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $78,$6C,$66,$66,$66,$6C,$78,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $7E,$60,$60,$78,$60,$60,$7E,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $7E,$60,$60,$78,$60,$60,$60,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $3C,$66,$60,$6E,$66,$66,$3C,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $66,$66,$66,$7E,$66,$66,$66,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $3C,$18,$18,$18,$18,$18,$3C,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $1E,$0C,$0C,$0C,$0C,$6C,$38,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $66,$6C,$78,$70,$78,$6C,$66,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $60,$60,$60,$60,$60,$60,$7E,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $63,$77,$7F,$6B,$63,$63,$63,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $66,$76,$7E,$7E,$6E,$66,$66,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $3C,$66,$66,$66,$66,$66,$3C,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $7C,$66,$66,$7C,$60,$60,$60,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $3C,$66,$66,$66,$66,$3C,$0E,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $7C,$66,$66,$7C,$78,$6C,$66,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $3C,$66,$60,$3C,$06,$66,$3C,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $7E,$18,$18,$18,$18,$18,$18,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $66,$66,$66,$66,$66,$66,$3C,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $66,$66,$66,$66,$66,$3C,$18,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $63,$63,$63,$6B,$7F,$77,$63,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $66,$66,$3C,$18,$3C,$66,$66,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $66,$66,$66,$3C,$18,$18,$18,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $7E,$06,$0C,$18,$30,$60,$7E,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $3C,$30,$30,$30,$30,$30,$3C,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $40,$60,$30,$18,$0C,$06,$02,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $3C,$0C,$0C,$0C,$0C,$0C,$3C,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$18,$24,$42,$42,$00,$00,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$30,$18,$0C,$04,$00,$00,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$3C,$06,$3E,$66,$3E,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$60,$60,$7C,$66,$66,$7C,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$3C,$60,$60,$60,$3C,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$06,$06,$3E,$66,$66,$3E,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$3C,$66,$7E,$60,$3C,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$0E,$18,$3E,$18,$18,$18,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$3E,$66,$66,$3E,$06,$7C + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$60,$60,$7C,$66,$66,$66,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$18,$00,$38,$18,$18,$3C,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$06,$00,$06,$06,$06,$06,$3C + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$60,$60,$6C,$78,$6C,$66,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$38,$18,$18,$18,$18,$3C,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$66,$7F,$7F,$6B,$63,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$7C,$66,$66,$66,$66,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$3C,$66,$66,$66,$3C,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$7C,$66,$66,$7C,$60,$60 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$3E,$66,$66,$3E,$06,$06 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$7C,$66,$60,$60,$60,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$3E,$60,$3C,$06,$7C,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$18,$7E,$18,$18,$18,$0E,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$66,$66,$66,$66,$3E,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$66,$66,$66,$3C,$18,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$63,$6B,$7F,$3E,$36,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$66,$3C,$18,$3C,$66,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$66,$66,$66,$3E,$0C,$78 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$7E,$0C,$18,$30,$7E,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$0C,$10,$10,$20,$10,$10,$0C + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$18,$18,$18,$18,$18,$18,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$18,$04,$04,$02,$04,$04,$18 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$00,$00,$32,$4C,$00,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$81,$81,$81,$81,$81,$81,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $F0,$F0,$F0,$F0,$0F,$0F,$0F,$0F + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $C3,$99,$91,$91,$9F,$99,$C3,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$FF,$C3,$F9,$C1,$99,$C1,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$9F,$9F,$83,$99,$99,$83,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$FF,$C3,$9F,$9F,$9F,$C3,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$F9,$F9,$C1,$99,$99,$C1,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$FF,$C3,$99,$81,$9F,$C3,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$F1,$E7,$C1,$E7,$E7,$E7,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$FF,$C1,$99,$99,$C1,$F9,$83 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$9F,$9F,$83,$99,$99,$99,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$E7,$FF,$C7,$E7,$E7,$C3,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$F9,$FF,$F9,$F9,$F9,$F9,$C3 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$9F,$9F,$93,$87,$93,$99,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$C7,$E7,$E7,$E7,$E7,$C3,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$FF,$99,$80,$80,$94,$9C,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$FF,$83,$99,$99,$99,$99,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$FF,$C3,$99,$99,$99,$C3,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$FF,$83,$99,$99,$83,$9F,$9F + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$FF,$C1,$99,$99,$C1,$F9,$F9 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$FF,$83,$99,$9F,$9F,$9F,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$FF,$C1,$9F,$C3,$F9,$83,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$E7,$81,$E7,$E7,$E7,$F1,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$FF,$99,$99,$99,$99,$C1,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$FF,$99,$99,$99,$C3,$E7,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$FF,$9C,$94,$80,$C1,$C9,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$FF,$99,$C3,$E7,$C3,$99,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$FF,$99,$99,$99,$C1,$F3,$87 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$FF,$81,$F3,$E7,$CF,$81,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $C3,$CF,$CF,$CF,$CF,$CF,$C3,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $F3,$ED,$CF,$83,$CF,$9D,$03,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $C3,$F3,$F3,$F3,$F3,$F3,$C3,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$E7,$C3,$81,$E7,$E7,$E7,$E7 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$EF,$CF,$80,$80,$CF,$EF,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $E7,$E7,$E7,$E7,$FF,$FF,$E7,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $99,$99,$99,$FF,$FF,$FF,$FF,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $99,$99,$00,$99,$00,$99,$99,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $E7,$C1,$9F,$C3,$F9,$83,$E7,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $9D,$99,$F3,$E7,$CF,$99,$B9,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $C3,$99,$C3,$C7,$98,$99,$C0,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $F9,$F3,$E7,$FF,$FF,$FF,$FF,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $F3,$E7,$CF,$CF,$CF,$E7,$F3,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $CF,$E7,$F3,$F3,$F3,$E7,$CF,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$99,$C3,$00,$C3,$99,$FF,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$E7,$E7,$81,$E7,$E7,$FF,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$FF,$FF,$FF,$FF,$E7,$E7,$CF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$FF,$FF,$81,$FF,$FF,$FF,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$FF,$FF,$FF,$FF,$E7,$E7,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$FC,$F9,$F3,$E7,$CF,$9F,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $C3,$99,$91,$89,$99,$99,$C3,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $E7,$E7,$C7,$E7,$E7,$E7,$81,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $C3,$99,$F9,$F3,$CF,$9F,$81,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $C3,$99,$F9,$E3,$F9,$99,$C3,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $F9,$F1,$E1,$99,$80,$F9,$F9,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $81,$9F,$83,$F9,$F9,$99,$C3,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $C3,$99,$9F,$83,$99,$99,$C3,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $81,$99,$F3,$E7,$E7,$E7,$E7,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $C3,$99,$99,$C3,$99,$99,$C3,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $C3,$99,$99,$C1,$F9,$99,$C3,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$FF,$E7,$FF,$FF,$E7,$FF,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$FF,$E7,$FF,$FF,$E7,$E7,$CF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $F1,$E7,$CF,$9F,$CF,$E7,$F1,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$FF,$81,$FF,$81,$FF,$FF,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $8F,$E7,$F3,$F9,$F3,$E7,$8F,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $C3,$99,$F9,$F3,$E7,$FF,$E7,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$FF,$FF,$00,$00,$FF,$FF,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $E7,$C3,$99,$81,$99,$99,$99,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $83,$99,$99,$83,$99,$99,$83,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $C3,$99,$9F,$9F,$9F,$99,$C3,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $87,$93,$99,$99,$99,$93,$87,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $81,$9F,$9F,$87,$9F,$9F,$81,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $81,$9F,$9F,$87,$9F,$9F,$9F,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $C3,$99,$9F,$91,$99,$99,$C3,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $99,$99,$99,$81,$99,$99,$99,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $C3,$E7,$E7,$E7,$E7,$E7,$C3,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $E1,$F3,$F3,$F3,$F3,$93,$C7,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $99,$93,$87,$8F,$87,$93,$99,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $9F,$9F,$9F,$9F,$9F,$9F,$81,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $9C,$88,$80,$94,$9C,$9C,$9C,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $99,$89,$81,$81,$91,$99,$99,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $C3,$99,$99,$99,$99,$99,$C3,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $83,$99,$99,$83,$9F,$9F,$9F,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $C3,$99,$99,$99,$99,$C3,$F1,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $83,$99,$99,$83,$87,$93,$99,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $C3,$99,$9F,$C3,$F9,$99,$C3,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $81,$E7,$E7,$E7,$E7,$E7,$E7,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $99,$99,$99,$99,$99,$99,$C3,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $99,$99,$99,$99,$99,$C3,$E7,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $9C,$9C,$9C,$94,$80,$88,$9C,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $99,$99,$C3,$E7,$C3,$99,$99,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $99,$99,$99,$C3,$E7,$E7,$E7,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $81,$F9,$F3,$E7,$CF,$9F,$81,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $E7,$E7,$E7,$00,$00,$E7,$E7,$E7 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $3F,$3F,$CF,$CF,$3F,$3F,$CF,$CF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $E7,$E7,$E7,$E7,$E7,$E7,$E7,$E7 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $CC,$CC,$33,$33,$CC,$CC,$33,$33 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $CC,$66,$33,$99,$CC,$66,$33,$99 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $0F,$0F,$0F,$0F,$0F,$0F,$0F,$0F + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$FF,$FF,$FF,$00,$00,$00,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$FF,$FF,$FF,$FF,$FF,$FF,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $3F,$3F,$3F,$3F,$3F,$3F,$3F,$3F + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $33,$33,$CC,$CC,$33,$33,$CC,$CC + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FC,$FC,$FC,$FC,$FC,$FC,$FC,$FC + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$FF,$FF,$FF,$33,$33,$CC,$CC + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $33,$66,$CC,$99,$33,$66,$CC,$99 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FC,$FC,$FC,$FC,$FC,$FC,$FC,$FC + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $E7,$E7,$E7,$E0,$E0,$E7,$E7,$E7 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$FF,$FF,$FF,$F0,$F0,$F0,$F0 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $E7,$E7,$E7,$E0,$E0,$FF,$FF,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$FF,$FF,$07,$07,$E7,$E7,$E7 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$FF,$FF,$FF,$FF,$FF,$00,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$FF,$FF,$E0,$E0,$E7,$E7,$E7 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $E7,$E7,$E7,$00,$00,$FF,$FF,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$FF,$FF,$00,$00,$E7,$E7,$E7 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $E7,$E7,$E7,$07,$07,$E7,$E7,$E7 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $3F,$3F,$3F,$3F,$3F,$3F,$3F,$3F + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $1F,$1F,$1F,$1F,$1F,$1F,$1F,$1F + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $F8,$F8,$F8,$F8,$F8,$F8,$F8,$F8 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$FF,$FF,$FF,$FF,$FF,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$00,$FF,$FF,$FF,$FF,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$FF,$FF,$FF,$FF,$00,$00,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FE,$FC,$F9,$93,$87,$8F,$9F,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$FF,$FF,$FF,$0F,$0F,$0F,$0F + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $F0,$F0,$F0,$F0,$FF,$FF,$FF,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $E7,$E7,$E7,$07,$07,$FF,$FF,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $0F,$0F,$0F,$0F,$FF,$FF,$FF,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $0F,$0F,$0F,$0F,$F0,$F0,$F0,$F0 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $3C,$66,$6E,$6E,$60,$62,$3C,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $18,$3C,$66,$7E,$66,$66,$66,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $7C,$66,$66,$7C,$66,$66,$7C,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $3C,$66,$60,$60,$60,$66,$3C,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $78,$6C,$66,$66,$66,$6C,$78,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $7E,$60,$60,$78,$60,$60,$7E,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $7E,$60,$60,$78,$60,$60,$60,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $3C,$66,$60,$6E,$66,$66,$3C,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $66,$66,$66,$7E,$66,$66,$66,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $3C,$18,$18,$18,$18,$18,$3C,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $1E,$0C,$0C,$0C,$0C,$6C,$38,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $66,$6C,$78,$70,$78,$6C,$66,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $60,$60,$60,$60,$60,$60,$7E,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $63,$77,$7F,$6B,$63,$63,$63,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $66,$76,$7E,$7E,$6E,$66,$66,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $3C,$66,$66,$66,$66,$66,$3C,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $7C,$66,$66,$7C,$60,$60,$60,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $3C,$66,$66,$66,$66,$3C,$0E,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $7C,$66,$66,$7C,$78,$6C,$66,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $3C,$66,$60,$3C,$06,$66,$3C,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $7E,$18,$18,$18,$18,$18,$18,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $66,$66,$66,$66,$66,$66,$3C,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $66,$66,$66,$66,$66,$3C,$18,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $63,$63,$63,$6B,$7F,$77,$63,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $66,$66,$3C,$18,$3C,$66,$66,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $66,$66,$66,$3C,$18,$18,$18,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $7E,$06,$0C,$18,$30,$60,$7E,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $3C,$30,$30,$30,$30,$30,$3C,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $0C,$12,$30,$7C,$30,$62,$FC,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $3C,$0C,$0C,$0C,$0C,$0C,$3C,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$18,$3C,$7E,$18,$18,$18,$18 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$10,$30,$7F,$7F,$30,$10,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $18,$18,$18,$18,$00,$00,$18,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $66,$66,$66,$00,$00,$00,$00,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $66,$66,$FF,$66,$FF,$66,$66,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $18,$3E,$60,$3C,$06,$7C,$18,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $62,$66,$0C,$18,$30,$66,$46,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $3C,$66,$3C,$38,$67,$66,$3F,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $06,$0C,$18,$00,$00,$00,$00,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $0C,$18,$30,$30,$30,$18,$0C,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $30,$18,$0C,$0C,$0C,$18,$30,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$66,$3C,$FF,$3C,$66,$00,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$18,$18,$7E,$18,$18,$00,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$00,$00,$00,$18,$18,$30 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$00,$7E,$00,$00,$00,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$00,$00,$00,$18,$18,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$03,$06,$0C,$18,$30,$60,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $3C,$66,$6E,$76,$66,$66,$3C,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $18,$18,$38,$18,$18,$18,$7E,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $3C,$66,$06,$0C,$30,$60,$7E,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $3C,$66,$06,$1C,$06,$66,$3C,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $06,$0E,$1E,$66,$7F,$06,$06,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $7E,$60,$7C,$06,$06,$66,$3C,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $3C,$66,$60,$7C,$66,$66,$3C,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $7E,$66,$0C,$18,$18,$18,$18,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $3C,$66,$66,$3C,$66,$66,$3C,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $3C,$66,$66,$3E,$06,$66,$3C,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$18,$00,$00,$18,$00,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$18,$00,$00,$18,$18,$30 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $0E,$18,$30,$60,$30,$18,$0E,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$7E,$00,$7E,$00,$00,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $70,$18,$0C,$06,$0C,$18,$70,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $3C,$66,$06,$0C,$18,$00,$18,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$00,$FF,$FF,$00,$00,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $08,$1C,$3E,$7F,$7F,$1C,$3E,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $18,$18,$18,$18,$18,$18,$18,$18 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$00,$FF,$FF,$00,$00,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$FF,$FF,$00,$00,$00,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$FF,$FF,$00,$00,$00,$00,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$00,$00,$FF,$FF,$00,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $30,$30,$30,$30,$30,$30,$30,$30 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $0C,$0C,$0C,$0C,$0C,$0C,$0C,$0C + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$00,$E0,$F0,$38,$18,$18 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $18,$18,$1C,$0F,$07,$00,$00,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $18,$18,$38,$F0,$E0,$00,$00,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $C0,$C0,$C0,$C0,$C0,$C0,$FF,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $C0,$E0,$70,$38,$1C,$0E,$07,$03 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $03,$07,$0E,$1C,$38,$70,$E0,$C0 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$FF,$C0,$C0,$C0,$C0,$C0,$C0 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$FF,$03,$03,$03,$03,$03,$03 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$3C,$7E,$7E,$7E,$7E,$3C,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$00,$00,$00,$FF,$FF,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $36,$7F,$7F,$7F,$3E,$1C,$08,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $60,$60,$60,$60,$60,$60,$60,$60 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$00,$07,$0F,$1C,$18,$18 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $C3,$E7,$7E,$3C,$3C,$7E,$E7,$C3 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$3C,$7E,$66,$66,$7E,$3C,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $18,$18,$66,$66,$18,$18,$3C,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $06,$06,$06,$06,$06,$06,$06,$06 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $08,$1C,$3E,$7F,$3E,$1C,$08,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $18,$18,$18,$FF,$FF,$18,$18,$18 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $C0,$C0,$30,$30,$C0,$C0,$30,$30 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $18,$18,$18,$18,$18,$18,$18,$18 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$03,$3E,$76,$36,$36,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$7F,$3F,$1F,$0F,$07,$03,$01 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $F0,$F0,$F0,$F0,$F0,$F0,$F0,$F0 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$00,$00,$FF,$FF,$FF,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $C0,$C0,$C0,$C0,$C0,$C0,$C0,$C0 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $CC,$CC,$33,$33,$CC,$CC,$33,$33 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $03,$03,$03,$03,$03,$03,$03,$03 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$00,$00,$CC,$CC,$33,$33 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$FE,$FC,$F8,$F0,$E0,$C0,$80 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $03,$03,$03,$03,$03,$03,$03,$03 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $18,$18,$18,$1F,$1F,$18,$18,$18 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$00,$00,$0F,$0F,$0F,$0F + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $18,$18,$18,$1F,$1F,$00,$00,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$00,$F8,$F8,$18,$18,$18 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$00,$00,$00,$00,$FF,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$00,$1F,$1F,$18,$18,$18 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $18,$18,$18,$FF,$FF,$00,$00,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$00,$FF,$FF,$18,$18,$18 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $18,$18,$18,$F8,$F8,$18,$18,$18 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $C0,$C0,$C0,$C0,$C0,$C0,$C0,$C0 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $E0,$E0,$E0,$E0,$E0,$E0,$E0,$E0 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $07,$07,$07,$07,$07,$07,$07,$07 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$FF,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$FF,$FF,$00,$00,$00,$00,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$00,$00,$00,$FF,$FF,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $03,$03,$03,$03,$03,$03,$FF,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$00,$00,$F0,$F0,$F0,$F0 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $0F,$0F,$0F,$0F,$00,$00,$00,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $18,$18,$18,$F8,$F8,$00,$00,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $F0,$F0,$F0,$F0,$00,$00,$00,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $F0,$F0,$F0,$F0,$0F,$0F,$0F,$0F + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $C3,$99,$91,$91,$9F,$99,$C3,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $E7,$C3,$99,$81,$99,$99,$99,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $83,$99,$99,$83,$99,$99,$83,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $C3,$99,$9F,$9F,$9F,$99,$C3,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $87,$93,$99,$99,$99,$93,$87,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $81,$9F,$9F,$87,$9F,$9F,$81,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $81,$9F,$9F,$87,$9F,$9F,$9F,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $C3,$99,$9F,$91,$99,$99,$C3,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $99,$99,$99,$81,$99,$99,$99,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $C3,$E7,$E7,$E7,$E7,$E7,$C3,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $E1,$F3,$F3,$F3,$F3,$93,$C7,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $99,$93,$87,$8F,$87,$93,$99,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $9F,$9F,$9F,$9F,$9F,$9F,$81,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $9C,$88,$80,$94,$9C,$9C,$9C,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $99,$89,$81,$81,$91,$99,$99,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $C3,$99,$99,$99,$99,$99,$C3,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $83,$99,$99,$83,$9F,$9F,$9F,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $C3,$99,$99,$99,$99,$C3,$F1,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $83,$99,$99,$83,$87,$93,$99,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $C3,$99,$9F,$C3,$F9,$99,$C3,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $81,$E7,$E7,$E7,$E7,$E7,$E7,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $99,$99,$99,$99,$99,$99,$C3,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $99,$99,$99,$99,$99,$C3,$E7,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $9C,$9C,$9C,$94,$80,$88,$9C,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $99,$99,$C3,$E7,$C3,$99,$99,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $99,$99,$99,$C3,$E7,$E7,$E7,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $81,$F9,$F3,$E7,$CF,$9F,$81,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $C3,$CF,$CF,$CF,$CF,$CF,$C3,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $F3,$ED,$CF,$83,$CF,$9D,$03,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $C3,$F3,$F3,$F3,$F3,$F3,$C3,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$E7,$C3,$81,$E7,$E7,$E7,$E7 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$EF,$CF,$80,$80,$CF,$EF,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $E7,$E7,$E7,$E7,$FF,$FF,$E7,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $99,$99,$99,$FF,$FF,$FF,$FF,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $99,$99,$00,$99,$00,$99,$99,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $E7,$C1,$9F,$C3,$F9,$83,$E7,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $9D,$99,$F3,$E7,$CF,$99,$B9,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $C3,$99,$C3,$C7,$98,$99,$C0,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $F9,$F3,$E7,$FF,$FF,$FF,$FF,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $F3,$E7,$CF,$CF,$CF,$E7,$F3,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $CF,$E7,$F3,$F3,$F3,$E7,$CF,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$99,$C3,$00,$C3,$99,$FF,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$E7,$E7,$81,$E7,$E7,$FF,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$FF,$FF,$FF,$FF,$E7,$E7,$CF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$FF,$FF,$81,$FF,$FF,$FF,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$FF,$FF,$FF,$FF,$E7,$E7,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$FC,$F9,$F3,$E7,$CF,$9F,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $C3,$99,$91,$89,$99,$99,$C3,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $E7,$E7,$C7,$E7,$E7,$E7,$81,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $C3,$99,$F9,$F3,$CF,$9F,$81,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $C3,$99,$F9,$E3,$F9,$99,$C3,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $F9,$F1,$E1,$99,$80,$F9,$F9,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $81,$9F,$83,$F9,$F9,$99,$C3,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $C3,$99,$9F,$83,$99,$99,$C3,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $81,$99,$F3,$E7,$E7,$E7,$E7,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $C3,$99,$99,$C3,$99,$99,$C3,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $C3,$99,$99,$C1,$F9,$99,$C3,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$FF,$E7,$FF,$FF,$E7,$FF,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$FF,$E7,$FF,$FF,$E7,$E7,$CF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $F1,$E7,$CF,$9F,$CF,$E7,$F1,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$FF,$81,$FF,$81,$FF,$FF,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $8F,$E7,$F3,$F9,$F3,$E7,$8F,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $C3,$99,$F9,$F3,$E7,$FF,$E7,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$FF,$FF,$00,$00,$FF,$FF,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $F7,$E3,$C1,$80,$80,$E3,$C1,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $E7,$E7,$E7,$E7,$E7,$E7,$E7,$E7 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$FF,$FF,$00,$00,$FF,$FF,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$FF,$00,$00,$FF,$FF,$FF,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$00,$00,$FF,$FF,$FF,$FF,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$FF,$FF,$FF,$00,$00,$FF,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $CF,$CF,$CF,$CF,$CF,$CF,$CF,$CF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $F3,$F3,$F3,$F3,$F3,$F3,$F3,$F3 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$FF,$FF,$1F,$0F,$C7,$E7,$E7 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $E7,$E7,$E3,$F0,$F8,$FF,$FF,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $E7,$E7,$C7,$0F,$1F,$FF,$FF,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $3F,$3F,$3F,$3F,$3F,$3F,$00,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $3F,$1F,$8F,$C7,$E3,$F1,$F8,$FC + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FC,$F8,$F1,$E3,$C7,$8F,$1F,$3F + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$3F,$3F,$3F,$3F,$3F,$3F + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$FC,$FC,$FC,$FC,$FC,$FC + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$C3,$81,$81,$81,$81,$C3,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$FF,$FF,$FF,$FF,$00,$00,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $C9,$80,$80,$80,$C1,$E3,$F7,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $9F,$9F,$9F,$9F,$9F,$9F,$9F,$9F + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$FF,$FF,$F8,$F0,$E3,$E7,$E7 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $3C,$18,$81,$C3,$C3,$81,$18,$3C + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$C3,$81,$99,$99,$81,$C3,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $E7,$E7,$99,$99,$E7,$E7,$C3,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $F9,$F9,$F9,$F9,$F9,$F9,$F9,$F9 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $F7,$E3,$C1,$80,$C1,$E3,$F7,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $E7,$E7,$E7,$00,$00,$E7,$E7,$E7 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $3F,$3F,$CF,$CF,$3F,$3F,$CF,$CF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $E7,$E7,$E7,$E7,$E7,$E7,$E7,$E7 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$FF,$FC,$C1,$89,$C9,$C9,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$80,$C0,$E0,$F0,$F8,$FC,$FE + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $0F,$0F,$0F,$0F,$0F,$0F,$0F,$0F + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$FF,$FF,$FF,$00,$00,$00,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$FF,$FF,$FF,$FF,$FF,$FF,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $3F,$3F,$3F,$3F,$3F,$3F,$3F,$3F + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $33,$33,$CC,$CC,$33,$33,$CC,$CC + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FC,$FC,$FC,$FC,$FC,$FC,$FC,$FC + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$FF,$FF,$FF,$33,$33,$CC,$CC + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$01,$03,$07,$0F,$1F,$3F,$7F + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FC,$FC,$FC,$FC,$FC,$FC,$FC,$FC + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $E7,$E7,$E7,$E0,$E0,$E7,$E7,$E7 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$FF,$FF,$FF,$F0,$F0,$F0,$F0 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $E7,$E7,$E7,$E0,$E0,$FF,$FF,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$FF,$FF,$07,$07,$E7,$E7,$E7 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$FF,$FF,$FF,$FF,$FF,$00,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$FF,$FF,$E0,$E0,$E7,$E7,$E7 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $E7,$E7,$E7,$00,$00,$FF,$FF,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$FF,$FF,$00,$00,$E7,$E7,$E7 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $E7,$E7,$E7,$07,$07,$E7,$E7,$E7 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $3F,$3F,$3F,$3F,$3F,$3F,$3F,$3F + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $1F,$1F,$1F,$1F,$1F,$1F,$1F,$1F + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $F8,$F8,$F8,$F8,$F8,$F8,$F8,$F8 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$FF,$FF,$FF,$FF,$FF,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $00,$00,$00,$FF,$FF,$FF,$FF,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$FF,$FF,$FF,$FF,$00,$00,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FC,$FC,$FC,$FC,$FC,$FC,$00,$00 + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $FF,$FF,$FF,$FF,$0F,$0F,$0F,$0F + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $F0,$F0,$F0,$F0,$FF,$FF,$FF,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $E7,$E7,$E7,$07,$07,$FF,$FF,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 + .DB $0F,$0F,$0F,$0F,$FF,$FF,$FF,$FF + .DB $00,$00,$00,$00,$00,$00,$00,$00 diff --git a/Source/HBIOS/dbgmon.asm b/Source/HBIOS/dbgmon.asm index 60e2ea1b..7bdc605d 100644 --- a/Source/HBIOS/dbgmon.asm +++ b/Source/HBIOS/dbgmon.asm @@ -687,6 +687,83 @@ GETLNDONE: LD (HL),00H ; STORE NULL IN BUFFER POP DE ; RESTORE DE RET ; + +#IF (PLATFORM == PLT_UNA) + +; +;__COUT_______________________________________________________________________ +; +; OUTPUT CHARACTER FROM A +;_____________________________________________________________________________ +; +COUT: + ; SAVE ALL INCOMING REGISTERS + PUSH AF + PUSH BC + PUSH DE + PUSH HL +; + ; OUTPUT CHARACTER TO CONSOLE VIA UBIOS + LD E,A + LD BC,$12 + RST 08 +; + ; RESTORE ALL REGISTERS + POP HL + POP DE + POP BC + POP AF + RET + RET +; +;__CIN________________________________________________________________________ +; +; INPUT CHARACTER TO A +;_____________________________________________________________________________ +; +CIN: + ; SAVE INCOMING REGISTERS (AF IS OUTPUT) + PUSH BC + PUSH DE + PUSH HL +; + ; INPUT CHARACTER FROM CONSOLE VIA UBIOS + LD BC,$11 + RST 08 + LD A,E +; + ; RESTORE REGISTERS (AF IS OUTPUT) + POP HL + POP DE + POP BC + RET + RET +; +;__CST________________________________________________________________________ +; +; RETURN INPUT STATUS IN A (0 = NO CHAR, !=0 CHAR WAITING) +;_____________________________________________________________________________ +; +CST: + ; SAVE INCOMING REGISTERS (AF IS OUTPUT) + PUSH BC + PUSH DE + PUSH HL +; + ; GET CONSOLE INPUT STATUS VIA UBIOS + LD BC,$13 + RST 08 + LD A,E +; + ; RESTORE REGISTERS (AF IS OUTPUT) + POP HL + POP DE + POP BC + RET + RET + +#ELSE + ; ;__COUT_______________________________________________________________________ ; @@ -757,6 +834,8 @@ CST: POP DE POP BC RET + +#ENDIF ; ;__KIN________________________________________________________________________ ; diff --git a/Source/HBIOS/fd.asm b/Source/HBIOS/fd.asm index 7ae53245..3538d1a0 100644 --- a/Source/HBIOS/fd.asm +++ b/Source/HBIOS/fd.asm @@ -764,18 +764,6 @@ FD_SELECTUNIT: ; ; FD_SEEK: - ;CALL TSTPT ; *DEBUG* - ;PUSH BC ; *DEBUG* - ;CALL PC_COLON - ;PUSH HL - ;POP BC - ;CALL PRTHEXWORD - ;PUSH DE - ;POP BC - ;CALL PRTHEXWORD - ;CALL PC_SPACE - ;POP BC ; *DEBUG* - LD (HSTSEC),DE ; RECORD HEAD/SECTOR LD (HSTTRK),HL ; RECORD TRACK XOR A ; SIGNAL SUCCESS @@ -784,7 +772,6 @@ FD_SEEK: ; ; FD_READ: - ;CALL TSTPT ; *DEBUG* LD (FD_DSKBUF),HL ; SAVE DISK BUFFER ADDRESS LD A,DOP_READ JR FD_RUN @@ -826,12 +813,10 @@ FD_RETRY: PUSH BC CALL FD_START POP BC - ;CALL TSTPT ; *DEBUG* LD A,(FST_RC) ; CHECK RESULT OR A RET Z ; SUCCESS - ;CALL TSTPT ; *DEBUG* DJNZ FD_RETRY ; RETRY TILL COUNTER EXHAUSTED @@ -1297,10 +1282,6 @@ FOP_CMD2: ; START OF LOOP TO SEND NEXT BYTE FOP_CMD4: ; START OF STATUS LOOP, WAIT FOR FDC TO BE READY FOR BYTE CALL DELAY ; FDC MAY TAKE UP TO 12us TO UPDATE MSR IN A,(FDC_MSR) ; READ MAIN STATUS REGISTER -; PUSH AF ; *DEBUG* -; CALL PC_SPACE ; *DEBUG* -; CALL PRTHEXBYTE ; *DEBUG* -; POP AF ; *DEBUG* AND 0C0H ; ISOLATE RQM/DIO CP 080H ; LOOKING FOR RQM=1, DIO=0 (FDC READY FOR A BYTE) JR Z,FOP_CMD6 ; GOOD, GO TO SEND BYTE diff --git a/Source/HBIOS/hbios.asm b/Source/HBIOS/hbios.asm index f4dec2f4..69e775cf 100644 --- a/Source/HBIOS/hbios.asm +++ b/Source/HBIOS/hbios.asm @@ -617,8 +617,8 @@ HB_INITTBL: #IF (UPD7220ENABLE) .DW UPD7220_INIT #ENDIF -#IF (N8VENABLE) - .DW N8V_INIT +#IF (SCGENABLE) + .DW SCG_INIT #ENDIF #IF (DSKYENABLE) .DW DSKY_INIT @@ -751,10 +751,6 @@ CIO_DISPATCH: CALL PANIC ; PANIC OR $FF ; SIGNAL ERROR RET ; AND RETURN -; -CIO_DISPATCH_CON: - LD A,(HCB + HCB_CONDEV) ; PUT CONSOLE UNIT NUMBER IN A - JR CIO_DISPATCH1 ; AND CONTINUE ;; ;CIO_DISPATCH_VDA: ; LD A,B ; FUNCTION NUMBER TO A @@ -763,6 +759,10 @@ CIO_DISPATCH_CON: ; POP HL ; RESTORE HL/STACK ; JP EMU_DISPATCH ; CHAIN TO EMULATOR DISPATCH ; +CIO_DISPATCH_CON: + LD A,(HCB + HCB_CONDEV) ; PUT CONSOLE UNIT NUMBER IN A + ; FALL THRU +; CIO_DISPATCH1: ; INC HL ; BUMP PAST COUNT PREFIX TO START OF TABLE @@ -804,9 +804,9 @@ CIO_DISPATCH1: CP CIODEV_UPD7220 JP Z,UPD7220_DISPCIO #ENDIF -#IF (N8VENABLE) - CP CIODEV_N8V - JP Z,N8V_DISPCIO +#IF (SCGENABLE) + CP CIODEV_SCG + JP Z,SCG_DISPCIO #ENDIF CALL PANIC RET @@ -1069,10 +1069,13 @@ RTC_DISPATCH: ; THE VDA DRIVER CALLS EMU_INIT TO DISPATCH THE INITIALIZATION REQUEST ; TO THE CORRRECT EMULATION MODULE. ; -; C: EMULATION TYPE +; B: EMULATION TYPE ID (1=TTY, 2=ANSI, ETC.) +; C: VDA DRIVER'S CIO UNIT NUMBER +; DE: VDA DRIVER'S DISPATCH ADDRESS +; ; EMU_INIT: - LD A,C ; GET REQUESTED EMULATION + LD A,B ; GET REQUESTED EMULATION ; DEC A ; 1 = TTY #IF (TTYENABLE) @@ -1088,26 +1091,9 @@ EMU_INIT: RET ; EMU_INIT1: - CALL TSTPT ; *DEBUG* JP (HL) ; DO THE EMULATOR INIT, DE := CIO DISPATCH ADR ; ;================================================================================================== -; VDA DISPATCHING FOR EMULATION HANDLERS -;================================================================================================== -; -; BELOW IS THE DYNAMICALLY MANAGED EMULATION VDA DISPATCH. -; EMULATION HANDLERS CAN CALL EMU_VDADISP TO INVOKE A VDA -; FUNCTION. EMU_VDADISPADR IS USED TO MARK THE LOCATION -; OF THE VDA DISPATCH ADDRESS. THIS ALLOWS US TO MODIFY -; THE CODE DYNAMICALLY WHEN EMULATION IS INITIALIZED AND -; A NEW VDA TARGET IS SPECIFIED. -; -EMU_VDADISP: - JP PANIC ; JP TGT IS UPDATED DYNAMICALLY -; -EMU_VDADISPADR .EQU $ - 2 ; ADDRESS PORTION OF JP INSTRUCTION ABOVE -; -;================================================================================================== ; VIDEO DISPLAY ADAPTER DEVICE DISPATCHER ;================================================================================================== ; @@ -1130,9 +1116,9 @@ VDA_DISPATCH: CP VDADEV_7220 JP Z,UPD7220_DISPATCH #ENDIF -#IF (N8VENABLE) - CP VDADEV_N8V - JP Z,N8V_DISPATCH +#IF (SCGENABLE) + CP VDADEV_SCG + JP Z,SCG_DISPATCH #ENDIF CALL PANIC ; @@ -1145,29 +1131,27 @@ VDA_DISPATCH: SYS_DISPATCH: LD A,B ; GET REQUESTED FUNCTION AND $0F ; ISOLATE SUB-FUNCTION - JR Z,SYS_SETBNK ; $F0 + JP Z,SYS_SETBNK ; $F0 DEC A - JR Z,SYS_GETBNK ; $F1 + JP Z,SYS_GETBNK ; $F1 DEC A JP Z,SYS_COPY ; $F2 DEC A JP Z,SYS_XCOPY ; $F3 DEC A - JR Z,SYS_ALLOC ; $F4 - DEC A - JR Z,SYS_GET ; $F5 + JP Z,SYS_ALLOC ; $F4 DEC A - JR Z,SYS_SET ; $F6 + JP Z,SYS_FREE ; $F5 DEC A - ;JR Z,SYS_??? ; $F7 + JP Z,SYS_VER ; $F6 DEC A - JR Z,SYS_HCBGETB ; $F8 + JP Z,SYS_GET ; $F7 DEC A - JR Z,SYS_HCBPUTB ; $F9 + JP Z,SYS_SET ; $F8 DEC A - JR Z,SYS_HCBGETW ; $FA + JP Z,SYS_PEEK ; $F9 DEC A - JR Z,SYS_HCBPUTW ; $FB + JP Z,SYS_POKE ; $FA CALL PANIC ; INVALID ; ; SET ACTIVE MEMORY BANK AND RETURN PREVIOUSLY ACTIVE MEMORY BANK @@ -1256,30 +1240,97 @@ SYS_XCOPY: SYS_ALLOC: JP HB_ALLOC ; +; FREE HEAP MEMORY BY SIMPLY RELEASING ALL +; MEMORY BEYOND POINTER IN HL. +; ON SUCCESS RETURN A == 0, AND Z SET +; ON FAILURE A <> 0 AND NZ SET AND HL TRASHED +; ALL OTHER REGISTERS PRESERVED +; +SYS_FREE: + CALL PANIC ; NOT YET IMPLEMENTED + OR $FF + RET +; +; GET THE CURRENT HBIOS VERSION +; ON INPUT, C=0 +; RETURNS VERSION IN DE AS BCD +; D: MAJOR VERION IN TOP 4 BITS, MINOR VERSION IN LOW 4 BITS +; E: UPDATE VERION IN TOP 4 BITS, PATCH VERSION IN LOW 4 BITS +; L: PLATFORM ID +; +SYS_VER: + LD DE,0 | (RMJ << 12) | (RMN << 8) | (RUP << 4) | RTP + LD L,PLATFORM + XOR A + RET +; ; GET SYSTEM INFORMATION ; ITEM TO RETURN INDICATED IN C ; SYS_GET: LD A,C ; GET REQUESTED SUB-FUNCTION - CP BF_SYSGET_VER - JR Z,SYS_GETVER CP BF_SYSGET_CIOCNT JR Z,SYS_GETCIOCNT CP BF_SYSGET_DIOCNT JR Z,SYS_GETDIOCNT + CP BF_SYSGET_BOOTINFO + JR Z,SYS_GETBOOTINFO + CP BF_SYSGET_CPUINFO + JR Z,SYS_GETCPUINFO + CP BF_SYSGET_MEMINFO + JR Z,SYS_GETMEMINFO + CP BF_SYSGET_BNKINFO + JR Z,SYS_GETBNKINFO OR $FF ; SIGNAL ERROR RET - ; -; GET THE CURRENT HBIOS VERSION -; RETURNS VERSION IN DE AS BCD -; D: MAJOR VERION IN TOP 4 BITS, MINOR VERSION IN LOW 4 BITS -; E: UPDATE VERION IN TOP 4 BITS, PATCH VERSION IN LOW 4 BITS -; L: PLATFORM ID +; GET BOOT INFORMATION +; RETURNS: +; L: BOOT BANK ID +; DE: BOOT DISK VOLUME (UNIT/SLICE) ; -SYS_GETVER: - LD DE,0 | (RMJ << 12) | (RMN << 8) | (RUP << 4) | RTP - LD L,PLATFORM +SYS_GETBOOTINFO: + LD A,(HCB + HCB_BOOTBID) + LD L,A + LD DE,(HCB + HCB_BOOTVOL) + XOR A + RET +; +; GET CPU INFORMATION +; RETURNS: +; H: Z80 CPU VARIANT +; L: CPU SPEED IN MHZ +; DE: CPU SPEED IN KHZ +; +SYS_GETCPUINFO: + LD H,0 ; NOT YET DEFINED + LD A,(HCB + HCB_CPUMHZ) + LD L,A + LD DE,(HCB + HCB_CPUKHZ) + XOR A + RET +; +; GET MEMORY INFORMATION +; RETURNS: +; D: COUNT OF ROM BANKS +; E: COUNT OF RAM BANKS +; +SYS_GETMEMINFO: + LD D,ROMSIZE / 32 + LD D,RAMSIZE / 32 + XOR A + RET +; +; GET SERIAL UNIT COUNT +; RETURNS: +; D: HBIOS BANK ID +; E: USER BANK ID +; +SYS_GETBNKINFO: + LD A,(HCB + HCB_BIDBIOS) + LD D,A + LD A,(HCB + HCB_BIDUSR) + LD E,A XOR A RET ; @@ -1298,63 +1349,93 @@ SYS_GETDIOCNT: LD E,A ; PUT IT IN E XOR A ; SIGNALS SUCCESS RET - - ; ; SET SYSTEM PARAMETERS ; PARAMETER(S) TO SET INDICATED IN C ; SYS_SET: + LD A,C ; GET REQUESTED SUB-FUNCTION + CP BF_SYSSET_BOOTINFO + JR Z,SYS_SETBOOTINFO OR $FF ; SIGNAL ERROR RET - -; -; GET HCB VALUE BYTE -; C: HCB INDEX (OFFSET INTO HCB) -; RETURN BYTE VALUE IN E ; -SYS_HCBGETB: - CALL SYS_HCBPTR ; LOAD HL WITH PTR - LD E,(HL) ; GET BYTE VALUE - RET ; DONE +; SET BOOT INFORMATION +; ON ENTRY: +; L: BOOT BANK ID +; DE: BOOT DISK VOLUME (UNIT/SLICE) ; -; PUT HCB VALUE BYTE -; C: HCB INDEX (OFFSET INTO HCB) -; E: VALUE TO WRITE -; -SYS_HCBPUTB: - CALL SYS_HCBPTR ; LOAD HL WITH PTR - LD (HL),E ; PUT BYTE VALUE +SYS_SETBOOTINFO: + LD A,L + LD (HCB + HCB_BOOTBID),A + LD (HCB + HCB_BOOTVOL),DE + XOR A RET ; -; GET HCB VALUE WORD -; C: HCB INDEX (OFFSET INTO HCB) -; RETURN WORD VALUE IN DE -; -SYS_HCBGETW: - CALL SYS_HCBPTR ; LOAD HL WITH PTR - LD E,(HL) ; GET BYTE VALUE - INC HL - LD D,(HL) ; GET BYTE VALUE - RET ; DONE -; -; PUT HCB VALUE WORD -; C: HCB INDEX (OFFSET INTO HCB) -; DE: VALUE TO WRITE +; RETURN A BYTE OF MEMORY FROM HBIOS BANK +; ENTRY: HL=ADDRESS IN HBIOS BANK (0H-7FFFH) +; RETURN: C=BYTE VALUE ; -SYS_HCBPUTW: - CALL SYS_HCBPTR ; LOAD HL WITH PTR - LD (HL),E ; PUT BYTE VALUE - INC HL - LD (HL),D ; PUT BYTE VALUE +SYS_PEEK: + LD C,(HL) + XOR A RET ; -; CALCULATE REAL ADDRESS OF HCB VALUE FROM HCB OFFSET +; WRITE A BYTE OF MEMORY TO HBIOS BANK +; ENTRY: HL=ADDRESS IN HBIOS BANK (0H-7FFFH) +; RETURN: C=BYTE VALUE ; -SYS_HCBPTR: - LD A,C ; LOAD INDEX (HCB OFFSET) - LD HL,HCB ; GET HCB ADDRESS - JP ADDHLA ; CALC REAL ADDRESS AND RET +SYS_POKE: + LD (HL),C + XOR A + RET +;; +;; GET HCB VALUE BYTE +;; C: HCB INDEX (OFFSET INTO HCB) +;; RETURN BYTE VALUE IN E +;; +;SYS_HCBGETB: +; CALL SYS_HCBPTR ; LOAD HL WITH PTR +; LD E,(HL) ; GET BYTE VALUE +; RET ; DONE +;; +;; PUT HCB VALUE BYTE +;; C: HCB INDEX (OFFSET INTO HCB) +;; E: VALUE TO WRITE +;; +;SYS_HCBPUTB: +; CALL SYS_HCBPTR ; LOAD HL WITH PTR +; LD (HL),E ; PUT BYTE VALUE +; RET +;; +;; GET HCB VALUE WORD +;; C: HCB INDEX (OFFSET INTO HCB) +;; RETURN WORD VALUE IN DE +;; +;SYS_HCBGETW: +; CALL SYS_HCBPTR ; LOAD HL WITH PTR +; LD E,(HL) ; GET BYTE VALUE +; INC HL +; LD D,(HL) ; GET BYTE VALUE +; RET ; DONE +;; +;; PUT HCB VALUE WORD +;; C: HCB INDEX (OFFSET INTO HCB) +;; DE: VALUE TO WRITE +;; +;SYS_HCBPUTW: +; CALL SYS_HCBPTR ; LOAD HL WITH PTR +; LD (HL),E ; PUT BYTE VALUE +; INC HL +; LD (HL),D ; PUT BYTE VALUE +; RET +; +;; CALCULATE REAL ADDRESS OF HCB VALUE FROM HCB OFFSET +;; +;SYS_HCBPTR: +; LD A,C ; LOAD INDEX (HCB OFFSET) +; LD HL,HCB ; GET HCB ADDRESS +; JP ADDHLA ; CALC REAL ADDRESS AND RET ; ;================================================================================================== ; GLOBAL HBIOS FUNCTIONS @@ -1544,12 +1625,12 @@ SIZ_UPD7220 .EQU $ - ORG_UPD7220 .ECHO " bytes.\n" #ENDIF ; -#IF (N8VENABLE) -ORG_N8V .EQU $ - #INCLUDE "n8v.asm" -SIZ_N8V .EQU $ - ORG_N8V - .ECHO "N8V occupies " - .ECHO SIZ_N8V +#IF (SCGENABLE) +ORG_SCG .EQU $ + #INCLUDE "scg.asm" +SIZ_SCG .EQU $ - ORG_SCG + .ECHO "SCG occupies " + .ECHO SIZ_SCG .ECHO " bytes.\n" #ENDIF ; diff --git a/Source/HBIOS/hbios.inc b/Source/HBIOS/hbios.inc index 9cd488fd..aba6f6d0 100644 --- a/Source/HBIOS/hbios.inc +++ b/Source/HBIOS/hbios.inc @@ -57,32 +57,37 @@ BF_SYSGETBNK .EQU BF_SYS + 1 ; GET CURRENT BANK BF_SYSCPY .EQU BF_SYS + 2 ; COPY TO/FROM RAM/ROM MEMORY BANK BF_SYSXCPY .EQU BF_SYS + 3 ; EXTENDED COPY SETUP BF_SYSALLOC .EQU BF_SYS + 4 ; ALLOC HBIOS HEAP MEMORY -BF_SYSGET .EQU BF_SYS + 5 ; GET HBIOS INFO -BF_SYSSET .EQU BF_SYS + 6 ; SET HBIOS PARMS -BF_SYSHCBGETB .EQU BF_SYS + 8 ; GET HCB BYTE VALUE -BF_SYSHCBPUTB .EQU BF_SYS + 9 ; PUT HCB BYTE VALUE -BF_SYSHCBGETW .EQU BF_SYS + 10 ; GET HCB WORD VALUE -BF_SYSHCBPUTW .EQU BF_SYS + 11 ; PUT HCB BYTE VALUE -; -BF_SYSGET_CIOCNT .EQU $00 ; GET SERIAL UNIT COUNT +BF_SYSFREE .EQU BF_SYS + 5 ; FREE HBIOS HEAP MEMORY +BF_SYSVER .EQU BF_SYS + 6 ; GET HBIOS VERSION +BF_SYSGET .EQU BF_SYS + 7 ; GET HBIOS INFO +BF_SYSSET .EQU BF_SYS + 8 ; SET HBIOS PARAMETERS +BF_PEEK .EQU BF_SYS + 9 ; GET A BYTE FROM HBIOS BANK +BF_POKE .EQU BF_SYS + 10 ; PUT A BYTE TO HBIOS BANK +; +BF_SYSGET_CIOCNT .EQU $00 ; GET CHAR UNIT COUNT BF_SYSGET_DIOCNT .EQU $10 ; GET DISK UNIT COUNT -BF_SYSGET_VER .EQU $F0 ; GET HBIOS VERSION INFO +BF_SYSGET_BOOTINFO .EQU $E0 ; GET BOOT INFORMATION +BF_SYSGET_CPUINFO .EQU $F0 ; GET CPU INFORMATION +BF_SYSGET_MEMINFO .EQU $F1 ; GET MEMORY CAPACTITY INFO +BF_SYSGET_BNKINFO .EQU $F2 ; GET BANK ASSIGNMENT INFO ; -; CHARACTER DEVICES +BF_SYSSET_BOOTINFO .EQU $E0 ; SET BOOT INFORMATION +; +; CHARACTER DEVICE IDS ; CIODEV_UART .EQU $00 CIODEV_ASCI .EQU $10 CIODEV_VDU .EQU $20 CIODEV_CVDU .EQU $30 CIODEV_UPD7220 .EQU $40 -CIODEV_N8V .EQU $50 +CIODEV_SCG .EQU $50 CIODEV_PRPCON .EQU $60 CIODEV_PPPCON .EQU $70 CIODEV_CONSOLE .EQU $D0 -CIODEV_VDA .EQU $E0 -CIODEV_NUL .EQU $F0 +;CIODEV_VDA .EQU $E0 ; DEPRECATED +;CIODEV_NUL .EQU $F0 ; DEPRECATED ; -; DISK DEVICES (ONLY FIRST NIBBLE RELEVANT, SECOND NIBBLE RESERVED FOR UNIT) +; DISK DEVICE IDS ; DIODEV_MD .EQU $00 DIODEV_FD .EQU $10 @@ -95,13 +100,13 @@ DIODEV_PRPSD .EQU $70 DIODEV_PPPSD .EQU $80 DIODEV_HDSK .EQU $90 ; -; VDA DEVICES (VIDEO DISPLAY ADAPTER) +; VDA DEVICE IDS ; VDADEV_NONE .EQU $00 ; NO VDA DEVICE VDADEV_VDU .EQU $10 ; ECB VDU - 6545 CHIP VDADEV_CVDU .EQU $20 ; ECB COLOR VDU - 8563 CHIP (NOT IMP) VDADEV_UPD7220 .EQU $30 ; ECB uP7220 (NOT IMPLEMENTED) -VDADEV_N8V .EQU $40 ; N8 ONBOARD VDA SUBSYSTEM +VDADEV_SCG .EQU $40 ; N8 ONBOARD VDA SUBSYSTEM ; ; EMULATION TYPES ; @@ -141,11 +146,11 @@ HCB_BIDRAMDN .EQU $DD ; LAST BANK OF RAM DRIVE HCB_BIDROMD0 .EQU $DE ; FIRST BANK OF ROM DRIVE HCB_BIDROMDN .EQU $DF ; LAST BANK OF ROM DRIVE -; DEVICE LISTS (POINTS TO START OF LIST, PREFIXED BY ENTRY COUNT) -HCB_CDL .EQU $E0 + 1 ; CHARACTER DEVICES (MAX 7) -HCB_PDL .EQU $E8 + 1 ; PRINT DEVICE LIST (MAX 3) -HCB_VDL .EQU $EC + 1 ; VIDEO DEVICE LIST (MAX 3) -HCB_DDL .EQU $F0 + 1 ; DISK DEVICE LIST (MAX 15) +;; DEVICE LISTS (POINTS TO START OF LIST, PREFIXED BY ENTRY COUNT) +;HCB_CDL .EQU $E0 + 1 ; CHARACTER DEVICES (MAX 7) +;HCB_PDL .EQU $E8 + 1 ; PRINT DEVICE LIST (MAX 3) +;HCB_VDL .EQU $EC + 1 ; VIDEO DEVICE LIST (MAX 3) +;HCB_DDL .EQU $F0 + 1 ; DISK DEVICE LIST (MAX 15) ; ; HBIOS PROXY COMMON DATA BLOCK ; EXACTLY 32 BYTES AT $FFE0-$FFFF diff --git a/Source/HBIOS/md.asm b/Source/HBIOS/md.asm index 4ae495e5..c1056944 100644 --- a/Source/HBIOS/md.asm +++ b/Source/HBIOS/md.asm @@ -103,12 +103,13 @@ MD_CAP: JR Z,MD_CAP1 ; UNIT 1 CALL PANIC ; PANIC ON INVALID UNIT MD_CAP0: - LD HL,(HCB + HCB_ROMBANKS) ; POINT TO ROM BANK COUNT + LD A,(HCB + HCB_ROMBANKS) ; POINT TO ROM BANK COUNT JR MD_CAP2 MD_CAP1: - LD HL,(HCB + HCB_RAMBANKS) ; POINT TO RAM BANK COUNT + LD A,(HCB + HCB_RAMBANKS) ; POINT TO RAM BANK COUNT MD_CAP2: - LD H,(HL) ; H := # BANKS + SUB 4 ; SUBTRACT OUT RESERVED BANKS + LD H,A ; H := # BANKS LD E,64 ; # 512 BYTE BLOCKS / BANK CALL MULT8 ; HL := TOTAL # 512 BYTE BLOCKS LD DE,0 ; NEVER EXCEEDS 64K, ZERO HIGH WORD @@ -121,7 +122,6 @@ MD_GEOM: ; RAM/ROM DISKS ALLOW CHS STYLE ACCESS BY EMULATING ; A DISK DEVICE WITH 1 HEAD AND 16 SECTORS / TRACK. CALL MD_CAP ; HL := CAPACITY IN BLOCKS - EX DE,HL ; SWAP LD D,1 | $80 ; HEADS / CYL := 1 BY DEFINITION, SET LBA CAPABILITY BIT LD E,16 ; SECTORS / TRACK := 16 BY DEFINTION LD B,4 ; PREPARE TO DIVIDE BY 16 diff --git a/Source/HBIOS/romldr.asm b/Source/HBIOS/romldr.asm index 2b38b6f2..9e6179de 100644 --- a/Source/HBIOS/romldr.asm +++ b/Source/HBIOS/romldr.asm @@ -219,9 +219,14 @@ GOCPM2: LD BC,$01FC ; UNA FUNC: SET BOOTSTRAP HISTORY RST 08 ; CALL UNA #ELSE - LD B,BF_SYSHCBPUTW ; HB FUNC: PUT HCB WORD - LD C,HCB_BOOTVOL ; BOOT VOLUME (UNIT, SLICE) - LD DE,$0100 + ;LD B,BF_SYSHCBPUTW ; HB FUNC: PUT HCB WORD + ;LD C,HCB_BOOTVOL ; BOOT VOLUME (UNIT, SLICE) + ;LD DE,$0100 + LD B,BF_SYSSET ; HB FUNC: SET HBIOS PARAMETER + LD C,BF_SYSSET_BOOTINFO ; HB SUBFUNC: SET BOOT INFO + LD A,(HB_CURBNK) ; GET CURRENT BANK ID FROM PROXY DATA + LD L,A ; ... AND SAVE AND BOOT BANK + LD DE,$0100 ; BOOT VOLUME (UNIT, SLICE) RST 08 #ENDIF JP CPM_ENT @@ -571,8 +576,12 @@ DB_LOOP: CALL NEWLINE ; FORMATTING ; PASS BOOT DEVICE/UNIT/LU TO CBIOS COLD BOOT - LD B,BF_SYSHCBPUTW ; HB FUNC: PUT HCB WORD - LD C,HCB_BOOTVOL ; BOOT VOLUME (DEV/UNIT, SLICE) + ;LD B,BF_SYSHCBPUTW ; HB FUNC: PUT HCB WORD + ;LD C,HCB_BOOTVOL ; BOOT VOLUME (DEV/UNIT, SLICE) + LD B,BF_SYSSET ; HB FUNC: SET HBIOS PARAMETER + LD C,BF_SYSSET_BOOTINFO ; HB SUBFUNC: SET BOOT INFO + LD A,(HB_CURBNK) ; GET CURRENT BANK ID FROM PROXY DATA + LD L,A ; ... AND SAVE AND BOOT BANK LD A,(BL_DEVICE) ; LOAD BOOT DEVICE/UNIT LD D,A ; SAVE IN D LD A,(BL_LU) ; LOAD BOOT LU @@ -887,6 +896,8 @@ BOOT: ; CONSOLE CHARACTER I/O HELPER ROUTINES (REGISTERS PRESERVED) ;================================================================================================== ; +#IF (PLATFORM != PLT_UNA) +; ; OUTPUT CHARACTER FROM A ; COUT: @@ -948,6 +959,71 @@ CST: POP BC RET ; +#ENDIF +; +#IF (PLATFORM == PLT_UNA) +; +; OUTPUT CHARACTER FROM A +; +COUT: + ; SAVE ALL INCOMING REGISTERS + PUSH AF + PUSH BC + PUSH DE + PUSH HL +; + ; OUTPUT CHARACTER TO CONSOLE VIA UBIOS + LD E,A + LD BC,$12 + RST 08 +; + ; RESTORE ALL REGISTERS + POP HL + POP DE + POP BC + POP AF + RET +; +; INPUT CHARACTER TO A +; +CIN: + ; SAVE INCOMING REGISTERS (AF IS OUTPUT) + PUSH BC + PUSH DE + PUSH HL +; + ; INPUT CHARACTER FROM CONSOLE VIA UBIOS + LD BC,$11 + RST 08 + LD A,E +; + ; RESTORE REGISTERS (AF IS OUTPUT) + POP HL + POP DE + POP BC + RET +; +; RETURN INPUT STATUS IN A (0 = NO CHAR, !=0 CHAR WAITING) +; +CST: + ; SAVE INCOMING REGISTERS (AF IS OUTPUT) + PUSH BC + PUSH DE + PUSH HL +; + ; GET CONSOLE INPUT STATUS VIA UBIOS + LD BC,$13 + RST 08 + LD A,E +; + ; RESTORE REGISTERS (AF IS OUTPUT) + POP HL + POP DE + POP BC + RET +; +#ENDIF +; ; READ A CONSOLE CHARACTER AND CONVERT TO UPPER CASE ; CINUC: diff --git a/Source/HBIOS/n8v.asm b/Source/HBIOS/scg.asm similarity index 59% rename from Source/HBIOS/n8v.asm rename to Source/HBIOS/scg.asm index d2f12cfa..d18957c4 100644 --- a/Source/HBIOS/n8v.asm +++ b/Source/HBIOS/scg.asm @@ -11,82 +11,82 @@ ; - IMPLEMENT DYNAMIC READ/WRITE OF CHARACTER BITMAP DATA? ; ;====================================================================== -; N8V DRIVER - CONSTANTS +; SCG DRIVER - CONSTANTS ;====================================================================== ; -N8V_CMDREG .EQU N8_BASE + $19 ; READ STATUS / WRITE REG SEL -N8V_DATREG .EQU N8_BASE + $18 ; READ/WRITE DATA +SCG_CMDREG .EQU N8_BASE + $19 ; READ STATUS / WRITE REG SEL +SCG_DATREG .EQU N8_BASE + $18 ; READ/WRITE DATA ; -N8V_ROWS .EQU 24 -N8V_COLS .EQU 40 +SCG_ROWS .EQU 24 +SCG_COLS .EQU 40 ; ; BELOW WAS TUNED FOR N8 AT 18MHZ WITH 3 IO WAIT STATES ; WILL NEED TO BE MODIFIED FOR DIFFERENT ACCESS SPEEDS ; IF YOU SEE SCREEN CORRUPTION, ADJUST THIS!!! ; -#DEFINE N8V_IODELAY NOP \ NOP \ NOP \ NOP \ NOP \ NOP +#DEFINE SCG_IODELAY NOP \ NOP \ NOP \ NOP \ NOP \ NOP ; ;====================================================================== -; N8V DRIVER - INITIALIZATION +; SCG DRIVER - INITIALIZATION ;====================================================================== ; -N8V_INIT: - PRTS("N8V: IO=0x$") - LD A,N8V_DATREG +SCG_INIT: + PRTS("SCG: IO=0x$") + LD A,SCG_DATREG CALL PRTHEXBYTE ; - CALL N8V_CRTINIT ; SETUP THE N8V CHIP REGISTERS - CALL N8V_LOADFONT ; LOAD FONT DATA FROM ROM TO N8V STRORAGE + CALL SCG_CRTINIT ; SETUP THE SCG CHIP REGISTERS + CALL SCG_LOADFONT ; LOAD FONT DATA FROM ROM TO SCG STRORAGE ; ; ADD OURSELVES TO CIO DISPATCH TABLE LD B,0 ; PHYSICAL UNIT IS ZERO - LD C,CIODEV_N8V ; DEVICE TYPE + LD C,CIODEV_SCG ; DEVICE TYPE LD DE,0 ; UNIT DATA BLOB ADDRESS CALL CIO_ADDENT ; ADD ENTRY, A := UNIT ASSIGNED + LD (SCG_CIOUNIT),A ; SAVE IT LOCALLY LD (HCB + HCB_CRTDEV),A ; SET OURSELVES AS THE CRT DEVICE - CALL TSTPT ; *DEBUG* LD D,VDAEMU ; DEFAULT EMULATION LD E,0 ; VIDEO MODE = 0 - JP N8V_VDAINI + JP SCG_VDAINI ; ;====================================================================== -; N8V DRIVER - CHARACTER I/O (CIO) DISPATCHER AND FUNCTIONS +; SCG DRIVER - CHARACTER I/O (CIO) DISPATCHER AND FUNCTIONS ;====================================================================== ; -N8V_DISPCIO: +SCG_DISPCIO: JP PANIC -N8V_CIODISPADR .EQU $ - 2 +SCG_CIODISPADR .EQU $ - 2 ; ;====================================================================== -; N8V DRIVER - VIDEO DISPLAY ADAPTER (VDA) DISPATCHER AND FUNCTIONS +; SCG DRIVER - VIDEO DISPLAY ADAPTER (VDA) DISPATCHER AND FUNCTIONS ;====================================================================== ; -N8V_DISPATCH: +SCG_DISPATCH: LD A,B ; GET REQUESTED FUNCTION AND $0F ; ISOLATE SUB-FUNCTION - JP Z,N8V_VDAINI ; $40 + JP Z,SCG_VDAINI ; $40 DEC A - JP Z,N8V_VDAQRY ; $41 + JP Z,SCG_VDAQRY ; $41 DEC A - JP Z,N8V_VDARES ; $42 + JP Z,SCG_VDARES ; $42 DEC A - JP Z,N8V_VDASCS ; $43 + JP Z,SCG_VDASCS ; $43 DEC A - JP Z,N8V_VDASCP ; $44 + JP Z,SCG_VDASCP ; $44 DEC A - JP Z,N8V_VDASAT ; $45 + JP Z,SCG_VDASAT ; $45 DEC A - JP Z,N8V_VDASCO ; $46 + JP Z,SCG_VDASCO ; $46 DEC A - JP Z,N8V_VDAWRC ; $47 + JP Z,SCG_VDAWRC ; $47 DEC A - JP Z,N8V_VDAFIL ; $48 + JP Z,SCG_VDAFIL ; $48 DEC A - JP Z,N8V_VDACPY ; $49 + JP Z,SCG_VDACPY ; $49 DEC A - JP Z,N8V_VDASCR ; $4A + JP Z,SCG_VDASCR ; $4A DEC A JP Z,PPK_STAT ; $4B DEC A @@ -95,302 +95,302 @@ N8V_DISPATCH: JP Z,PPK_READ ; $4D CALL PANIC -N8V_VDAINI: +SCG_VDAINI: ; RESET VDA PUSH DE ; SAVE EMULATION TYPE (IN D) - CALL N8V_VDARES ; RESET VDA + CALL SCG_VDARES ; RESET VDA POP DE ; RECOVER EMULATION TYPE ; INITIALIZE EMULATION - LD C,D ; EMULATION MODE TO C - LD DE,N8V_DISPATCH ; DISPATCH ADDRESS TO DE - CALL TSTPT ; *DEBUG* + LD B,D ; EMULATION TYPE TO B + LD A,(SCG_CIOUNIT) ; CIO UNIT NUMBER + LD C,A ; ... IS PASSED IN C + LD DE,SCG_DISPATCH ; DISPATCH ADDRESS TO DE CALL EMU_INIT ; INITIALIZE EMULATION, DE := CIO DISPATCHER - LD (N8V_CIODISPADR),DE ; SAVE EMULATORS CIO DISPATCH INTERFACE ADDRESS - CALL TSTPT ; *DEBUG* + LD (SCG_CIODISPADR),DE ; SAVE EMULATORS CIO DISPATCH INTERFACE ADDRESS XOR A ; SIGNAL SUCCESS RET -N8V_VDAQRY: +SCG_VDAQRY: LD C,$00 ; MODE ZERO IS ALL WE KNOW - LD D,N8V_ROWS ; ROWS - LD E,N8V_COLS ; COLS + LD D,SCG_ROWS ; ROWS + LD E,SCG_COLS ; COLS LD HL,0 ; EXTRACTION OF CURRENT BITMAP DATA NOT SUPPORTED YET XOR A ; SIGNAL SUCCESS RET -N8V_VDARES: +SCG_VDARES: LD DE,0 ; ROW = 0, COL = 0 - CALL N8V_XY ; SEND CURSOR TO TOP LEFT + CALL SCG_XY ; SEND CURSOR TO TOP LEFT LD A,' ' ; BLANK THE SCREEN - LD DE,N8V_ROWS * N8V_COLS ; FILL ENTIRE BUFFER - CALL N8V_FILL ; DO IT + LD DE,SCG_ROWS * SCG_COLS ; FILL ENTIRE BUFFER + CALL SCG_FILL ; DO IT LD DE,0 ; ROW = 0, COL = 0 - CALL N8V_XY ; SEND CURSOR TO TOP LEFT + CALL SCG_XY ; SEND CURSOR TO TOP LEFT XOR A DEC A - LD (N8V_CURSAV),A - CALL N8V_SETCUR ; SET CURSOR + LD (SCG_CURSAV),A + CALL SCG_SETCUR ; SET CURSOR XOR A ; SIGNAL SUCCESS RET -N8V_VDASCS: +SCG_VDASCS: CALL PANIC ; NOT IMPLEMENTED (YET) -N8V_VDASCP: - CALL N8V_CLRCUR - CALL N8V_XY ; SET CURSOR POSITION - CALL N8V_SETCUR +SCG_VDASCP: + CALL SCG_CLRCUR + CALL SCG_XY ; SET CURSOR POSITION + CALL SCG_SETCUR XOR A ; SIGNAL SUCCESS RET -N8V_VDASAT: +SCG_VDASAT: XOR A ; NOT POSSIBLE, JUST SIGNAL SUCCESS RET -N8V_VDASCO: +SCG_VDASCO: XOR A ; NOT POSSIBLE, JUST SIGNAL SUCCESS RET -N8V_VDAWRC: - CALL N8V_CLRCUR ; CURSOR OFF +SCG_VDAWRC: + CALL SCG_CLRCUR ; CURSOR OFF LD A,E ; CHARACTER TO WRITE GOES IN A - CALL N8V_PUTCHAR ; PUT IT ON THE SCREEN - CALL N8V_SETCUR + CALL SCG_PUTCHAR ; PUT IT ON THE SCREEN + CALL SCG_SETCUR XOR A ; SIGNAL SUCCESS RET -N8V_VDAFIL: - CALL N8V_CLRCUR +SCG_VDAFIL: + CALL SCG_CLRCUR LD A,E ; FILL CHARACTER GOES IN A EX DE,HL ; FILL LENGTH GOES IN DE - CALL N8V_FILL ; DO THE FILL - CALL N8V_SETCUR + CALL SCG_FILL ; DO THE FILL + CALL SCG_SETCUR XOR A ; SIGNAL SUCCESS RET -N8V_VDACPY: - CALL N8V_CLRCUR - ; LENGTH IN HL, SOURCE ROW/COL IN DE, DEST IS N8V_POS +SCG_VDACPY: + CALL SCG_CLRCUR + ; LENGTH IN HL, SOURCE ROW/COL IN DE, DEST IS SCG_POS ; BLKCPY USES: HL=SOURCE, DE=DEST, BC=COUNT PUSH HL ; SAVE LENGTH - CALL N8V_XY2IDX ; ROW/COL IN DE -> SOURCE ADR IN HL + CALL SCG_XY2IDX ; ROW/COL IN DE -> SOURCE ADR IN HL POP BC ; RECOVER LENGTH IN BC - LD DE,(N8V_POS) ; PUT DEST IN DE - CALL N8V_BLKCPY ; DO A BLOCK COPY - CALL N8V_SETCUR + LD DE,(SCG_POS) ; PUT DEST IN DE + CALL SCG_BLKCPY ; DO A BLOCK COPY + CALL SCG_SETCUR XOR A RET -N8V_VDASCR: - CALL N8V_CLRCUR -N8V_VDASCR0: +SCG_VDASCR: + CALL SCG_CLRCUR +SCG_VDASCR0: LD A,E ; LOAD E INTO A OR A ; SET FLAGS - JR Z,N8V_VDASCR2 ; IF ZERO, WE ARE DONE + JR Z,SCG_VDASCR2 ; IF ZERO, WE ARE DONE PUSH DE ; SAVE E - JP M,N8V_VDASCR1 ; E IS NEGATIVE, REVERSE SCROLL - CALL N8V_SCROLL ; SCROLL FORWARD ONE LINE + JP M,SCG_VDASCR1 ; E IS NEGATIVE, REVERSE SCROLL + CALL SCG_SCROLL ; SCROLL FORWARD ONE LINE POP DE ; RECOVER E DEC E ; DECREMENT IT - JR N8V_VDASCR0 ; LOOP -N8V_VDASCR1: - CALL N8V_RSCROLL ; SCROLL REVERSE ONE LINE + JR SCG_VDASCR0 ; LOOP +SCG_VDASCR1: + CALL SCG_RSCROLL ; SCROLL REVERSE ONE LINE POP DE ; RECOVER E INC E ; INCREMENT IT - JR N8V_VDASCR0 ; LOOP -N8V_VDASCR2: - CALL N8V_SETCUR + JR SCG_VDASCR0 ; LOOP +SCG_VDASCR2: + CALL SCG_SETCUR XOR A RET ; ;====================================================================== -; N8V DRIVER - PRIVATE DRIVER FUNCTIONS +; SCG DRIVER - PRIVATE DRIVER FUNCTIONS ;====================================================================== ; ;---------------------------------------------------------------------- ; SET TMS9918 REGISTER VALUE -; N8V_SET WRITES VALUE IN A TO VDU REGISTER SPECIFIED IN C +; SCG_SET WRITES VALUE IN A TO VDU REGISTER SPECIFIED IN C ;---------------------------------------------------------------------- ; -N8V_SET: - OUT (N8V_CMDREG),A ; WRITE IT - N8V_IODELAY +SCG_SET: + OUT (SCG_CMDREG),A ; WRITE IT + SCG_IODELAY LD A,C ; GET THE DESIRED REGISTER OR $80 ; SET BIT 7 - OUT (N8V_CMDREG),A ; SELECT THE DESIRED REGISTER - N8V_IODELAY + OUT (SCG_CMDREG),A ; SELECT THE DESIRED REGISTER + SCG_IODELAY RET ; ;---------------------------------------------------------------------- ; SET TMS9918 READ/WRITE ADDRESS -; N8V_WR SETS TMS9918 TO BEGIN WRITING TO ADDRESS SPECIFIED IN HL -; N8V_RD SETS TMS9918 TO BEGIN READING TO ADDRESS SPECIFIED IN HL +; SCG_WR SETS TMS9918 TO BEGIN WRITING TO ADDRESS SPECIFIED IN HL +; SCG_RD SETS TMS9918 TO BEGIN READING TO ADDRESS SPECIFIED IN HL ;---------------------------------------------------------------------- ; -N8V_WR: +SCG_WR: PUSH HL SET 6,H ; SET WRITE BIT - CALL N8V_RD + CALL SCG_RD POP HL RET ; -N8V_RD: +SCG_RD: LD A,L - OUT (N8V_CMDREG),A - N8V_IODELAY + OUT (SCG_CMDREG),A + SCG_IODELAY LD A,H - OUT (N8V_CMDREG),A - N8V_IODELAY + OUT (SCG_CMDREG),A + SCG_IODELAY RET ; ;---------------------------------------------------------------------- ; MOS 8563 DISPLAY CONTROLLER CHIP INITIALIZATION ;---------------------------------------------------------------------- ; -N8V_CRTINIT: +SCG_CRTINIT: ; SET WRITE ADDRESS TO $0 LD HL,0 - CALL N8V_WR + CALL SCG_WR ; ; FILL ENTIRE RAM CONTENTS LD DE,$4000 -N8V_CRTINIT1: +SCG_CRTINIT1: XOR A - OUT (N8V_DATREG),A + OUT (SCG_DATREG),A DEC DE LD A,D OR E - JR NZ,N8V_CRTINIT1 + JR NZ,SCG_CRTINIT1 ; ; INITIALIZE VDU REGISTERS LD C,0 ; START WITH REGISTER 0 - LD B,N8V_INIT9918LEN ; NUMBER OF REGISTERS TO INIT - LD HL,N8V_INIT9918 ; HL = POINTER TO THE DEFAULT VALUES -N8V_CRTINIT2: + LD B,SCG_INIT9918LEN ; NUMBER OF REGISTERS TO INIT + LD HL,SCG_INIT9918 ; HL = POINTER TO THE DEFAULT VALUES +SCG_CRTINIT2: LD A,(HL) ; GET VALUE - CALL N8V_SET ; WRITE IT + CALL SCG_SET ; WRITE IT INC HL ; POINT TO NEXT VALUE INC C ; POINT TO NEXT REGISTER - DJNZ N8V_CRTINIT2 ; LOOP + DJNZ SCG_CRTINIT2 ; LOOP RET ; ;---------------------------------------------------------------------- ; LOAD FONT DATA ;---------------------------------------------------------------------- ; -N8V_LOADFONT: +SCG_LOADFONT: ; SET WRITE ADDRESS TO $800 LD HL,$800 - CALL N8V_WR + CALL SCG_WR ; ; FILL $800 BYTES FROM FONTDATA - LD HL,N8V_FONTDATA + LD HL,SCG_FONTDATA LD DE,$100 * 8 -N8V_LOADFONT1: +SCG_LOADFONT1: LD B,8 -N8V_LOADFONT2: +SCG_LOADFONT2: LD A,(HL) PUSH AF INC HL - DJNZ N8V_LOADFONT2 + DJNZ SCG_LOADFONT2 ; LD B,8 -N8V_LOADFONT3: +SCG_LOADFONT3: POP AF - OUT (N8V_DATREG),A + OUT (SCG_DATREG),A DEC DE - DJNZ N8V_LOADFONT3 + DJNZ SCG_LOADFONT3 ; LD A,D OR E - JR NZ,N8V_LOADFONT1 + JR NZ,SCG_LOADFONT1 ; RET ; ;---------------------------------------------------------------------- ; VIRTUAL CURSOR MANAGEMENT -; N8V_SETCUR CONFIGURES AND DISPLAYS CURSOR AT CURRENT CURSOR LOCATION -; N8V_CLRCUR REMOVES THE CURSOR +; SCG_SETCUR CONFIGURES AND DISPLAYS CURSOR AT CURRENT CURSOR LOCATION +; SCG_CLRCUR REMOVES THE CURSOR ; ; VIRTUAL CURSOR IS GENERATED BY DYNAMICALLY CHANGING FONT GLYPH ; FOR CHAR 255 TO BE THE INVERSE OF THE GLYPH OF THE CHARACTER UNDER ; THE CURRENT CURSOR POSITION. THE CHARACTER CODE IS THEN SWITCH TO ; THE VALUE 255 AND THE ORIGINAL VALUE IS SAVED. WHEN THE DISPLAY ; NEEDS TO BE CHANGED THE PROCESS IS UNDONE. IT IS ESSENTIAL THAT -; ALL DISPLAY CHANGES BE BRACKETED WITH CALLS TO N8V_CLRCUR PRIOR TO -; CHANGES AND N8V_SETCUR AFTER CHANGES. +; ALL DISPLAY CHANGES BE BRACKETED WITH CALLS TO SCG_CLRCUR PRIOR TO +; CHANGES AND SCG_SETCUR AFTER CHANGES. ;---------------------------------------------------------------------- ; -N8V_SETCUR: +SCG_SETCUR: PUSH HL ; PRESERVE HL PUSH DE ; PRESERVE DE - LD HL,(N8V_POS) ; GET CURSOR POSITION - CALL N8V_RD ; SETUP TO READ VDU BUF - IN A,(N8V_DATREG) ; GET REAL CHAR UNDER CURSOR - N8V_IODELAY ; DELAY + LD HL,(SCG_POS) ; GET CURSOR POSITION + CALL SCG_RD ; SETUP TO READ VDU BUF + IN A,(SCG_DATREG) ; GET REAL CHAR UNDER CURSOR + SCG_IODELAY ; DELAY PUSH AF ; SAVE THE CHARACTER - CALL N8V_WR ; SETUP TO WRITE TO THE SAME PLACE + CALL SCG_WR ; SETUP TO WRITE TO THE SAME PLACE LD A,$FF ; REPLACE REAL CHAR WITH 255 - OUT (N8V_DATREG),A ; DO IT - N8V_IODELAY ; DELAY + OUT (SCG_DATREG),A ; DO IT + SCG_IODELAY ; DELAY POP AF ; RECOVER THE REAL CHARACTER LD B,A ; PUT IT IN B - LD A,(N8V_CURSAV) ; GET THE CURRENTLY SAVED CHAR + LD A,(SCG_CURSAV) ; GET THE CURRENTLY SAVED CHAR CP B ; COMPARE TO CURRENT - JR Z,N8V_SETCUR3 ; IF EQUAL, BYPASS EXTRA WORK + JR Z,SCG_SETCUR3 ; IF EQUAL, BYPASS EXTRA WORK LD A,B ; GET REAL CHAR BACK TO A - LD (N8V_CURSAV),A ; SAVE IT + LD (SCG_CURSAV),A ; SAVE IT ; GET THE GLYPH DATA FOR REAL CHARACTER LD HL,0 ; ZERO HL LD L,A ; HL IS NOW RAW CHAR INDEX LD B,3 ; LEFT SHIFT BY 3 BITS -N8V_SETCUR0: ; MULT BY 8 FOR FONT INDEX +SCG_SETCUR0: ; MULT BY 8 FOR FONT INDEX SLA L ; SHIFT LSB INTO CARRY RL H ; SHFT MSB FROM CARRY - DJNZ N8V_SETCUR0 ; LOOP 3 TIMES + DJNZ SCG_SETCUR0 ; LOOP 3 TIMES LD DE,$800 ; OFFSET TO START OF FONT TABLE ADD HL,DE ; ADD TO FONT INDEX - CALL N8V_RD ; SETUP TO READ GLYPH + CALL SCG_RD ; SETUP TO READ GLYPH LD B,8 ; 8 BYTES - LD HL,N8V_BUF ; INTO BUFFER -N8V_SETCUR1: ; READ GLYPH LOOP - IN A,(N8V_DATREG) ; GET NEXT BYTE - N8V_IODELAY ; IO DELAY + LD HL,SCG_BUF ; INTO BUFFER +SCG_SETCUR1: ; READ GLYPH LOOP + IN A,(SCG_DATREG) ; GET NEXT BYTE + SCG_IODELAY ; IO DELAY LD (HL),A ; SAVE VALUE IN BUF INC HL ; BUMP BUF POINTER - DJNZ N8V_SETCUR1 ; LOOP FOR 8 BYTES + DJNZ SCG_SETCUR1 ; LOOP FOR 8 BYTES ; ; NOW WRITE INVERTED GLYPH INTO FONT INDEX 255 LD HL,$800 + (255 * 8) ; LOC OF GLPYPH DATA FOR CHAR 255 - CALL N8V_WR ; SETUP TO WRITE THE INVERTED GLYPH + CALL SCG_WR ; SETUP TO WRITE THE INVERTED GLYPH LD B,8 ; 8 BYTES PER GLYPH - LD HL,N8V_BUF ; POINT TO BUFFER -N8V_SETCUR2: ; WRITE INVERTED GLYPH LOOP + LD HL,SCG_BUF ; POINT TO BUFFER +SCG_SETCUR2: ; WRITE INVERTED GLYPH LOOP LD A,(HL) ; GET THE BYTE INC HL ; BUMP THE BUF POINTER XOR $FF ; INVERT THE VALUE - OUT (N8V_DATREG),A ; WRITE IT TO VDU - N8V_IODELAY ; IO DELAY - DJNZ N8V_SETCUR2 ; LOOP FOR ALL 8 BYTES OF GLYPH + OUT (SCG_DATREG),A ; WRITE IT TO VDU + SCG_IODELAY ; IO DELAY + DJNZ SCG_SETCUR2 ; LOOP FOR ALL 8 BYTES OF GLYPH ; -N8V_SETCUR3: ; RESTORE REGISTERS AND RETURN +SCG_SETCUR3: ; RESTORE REGISTERS AND RETURN POP DE ; RECOVER DE POP HL ; RECOVER HL RET ; RETURN ; ; ; -N8V_CLRCUR: ; REMOVE VIRTUAL CURSOR FROM SCREEN +SCG_CLRCUR: ; REMOVE VIRTUAL CURSOR FROM SCREEN PUSH HL ; SAVE HL - LD HL,(N8V_POS) ; POINT TO CURRENT CURSOR POS - CALL N8V_WR ; SET UP TO WRITE TO VDU - LD A,(N8V_CURSAV) ; GET THE REAL CHARACTER - OUT (N8V_DATREG),A ; WRITE IT - N8V_IODELAY ; IO DELAY + LD HL,(SCG_POS) ; POINT TO CURRENT CURSOR POS + CALL SCG_WR ; SET UP TO WRITE TO VDU + LD A,(SCG_CURSAV) ; GET THE REAL CHARACTER + OUT (SCG_DATREG),A ; WRITE IT + SCG_IODELAY ; IO DELAY POP HL ; RECOVER HL RET ; RETURN ; @@ -398,9 +398,9 @@ N8V_CLRCUR: ; REMOVE VIRTUAL CURSOR FROM SCREEN ; SET CURSOR POSITION TO ROW IN D AND COLUMN IN E ;---------------------------------------------------------------------- ; -N8V_XY: - CALL N8V_XY2IDX ; CONVERT ROW/COL TO BUF IDX - LD (N8V_POS),HL ; SAVE THE RESULT (DISPLAY POSITION) +SCG_XY: + CALL SCG_XY2IDX ; CONVERT ROW/COL TO BUF IDX + LD (SCG_POS),HL ; SAVE THE RESULT (DISPLAY POSITION) RET ; ;---------------------------------------------------------------------- @@ -408,10 +408,10 @@ N8V_XY: ; D=ROW, E=COL ;---------------------------------------------------------------------- ; -N8V_XY2IDX: +SCG_XY2IDX: LD A,E ; SAVE COLUMN NUMBER IN A LD H,D ; SET H TO ROW NUMBER - LD E,N8V_COLS ; SET E TO ROW LENGTH + LD E,SCG_COLS ; SET E TO ROW LENGTH CALL MULT8 ; MULTIPLY TO GET ROW OFFSET LD E,A ; GET COLUMN BACK ADD HL,DE ; ADD IT IN @@ -421,15 +421,15 @@ N8V_XY2IDX: ; WRITE VALUE IN A TO CURRENT VDU BUFFER POSTION, ADVANCE CURSOR ;---------------------------------------------------------------------- ; -N8V_PUTCHAR: +SCG_PUTCHAR: PUSH AF ; SAVE CHARACTER - LD HL,(N8V_POS) ; LOAD CURRENT POSITION INTO HL - CALL N8V_WR ; SET THE WRITE ADDRESS + LD HL,(SCG_POS) ; LOAD CURRENT POSITION INTO HL + CALL SCG_WR ; SET THE WRITE ADDRESS POP AF ; RECOVER CHARACTER TO WRITE - OUT (N8V_DATREG),A ; WRITE THE CHARACTER - LD HL,(N8V_POS) ; LOAD CURRENT POSITION INTO HL + OUT (SCG_DATREG),A ; WRITE THE CHARACTER + LD HL,(SCG_POS) ; LOAD CURRENT POSITION INTO HL INC HL - LD (N8V_POS),HL + LD (SCG_POS),HL RET ; ;---------------------------------------------------------------------- @@ -439,19 +439,19 @@ N8V_PUTCHAR: ; DE: NUMBER OF CHARACTERS TO FILL ;---------------------------------------------------------------------- ; -N8V_FILL: +SCG_FILL: LD C,A ; SAVE THE CHARACTER TO WRITE - LD HL,(N8V_POS) ; SET STARTING POSITION - CALL N8V_WR ; SET UP FOR WRITE + LD HL,(SCG_POS) ; SET STARTING POSITION + CALL SCG_WR ; SET UP FOR WRITE ; -N8V_FILL1: +SCG_FILL1: LD A,C ; RECOVER CHARACTER TO WRITE - OUT (N8V_DATREG),A - N8V_IODELAY + OUT (SCG_DATREG),A + SCG_IODELAY DEC DE LD A,D OR E - JR NZ,N8V_FILL1 + JR NZ,SCG_FILL1 ; RET ; @@ -459,50 +459,50 @@ N8V_FILL1: ; SCROLL ENTIRE SCREEN FORWARD BY ONE LINE (CURSOR POSITION UNCHANGED) ;---------------------------------------------------------------------- ; -N8V_SCROLL: +SCG_SCROLL: LD HL,0 ; SOURCE ADDRESS OF CHARACER BUFFER - LD C,N8V_ROWS - 1 ; SET UP LOOP COUNTER FOR ROWS - 1 + LD C,SCG_ROWS - 1 ; SET UP LOOP COUNTER FOR ROWS - 1 ; -N8V_SCROLL0: ; READ LINE THAT IS ONE PAST CURRENT DESTINATION +SCG_SCROLL0: ; READ LINE THAT IS ONE PAST CURRENT DESTINATION PUSH HL ; SAVE CURRENT DESTINATION - LD DE,N8V_COLS + LD DE,SCG_COLS ADD HL,DE ; POINT TO NEXT ROW SOURCE - CALL N8V_RD ; SET UP TO READ - LD DE,N8V_BUF - LD B,N8V_COLS -N8V_SCROLL1: - IN A,(N8V_DATREG) - N8V_IODELAY + CALL SCG_RD ; SET UP TO READ + LD DE,SCG_BUF + LD B,SCG_COLS +SCG_SCROLL1: + IN A,(SCG_DATREG) + SCG_IODELAY LD (DE),A INC DE - DJNZ N8V_SCROLL1 + DJNZ SCG_SCROLL1 POP HL ; RECOVER THE DESTINATION ; ; WRITE THE BUFFERED LINE TO CURRENT DESTINATION - CALL N8V_WR ; SET UP TO WRITE - LD DE,N8V_BUF - LD B,N8V_COLS -N8V_SCROLL2: + CALL SCG_WR ; SET UP TO WRITE + LD DE,SCG_BUF + LD B,SCG_COLS +SCG_SCROLL2: LD A,(DE) - OUT (N8V_DATREG),A - N8V_IODELAY + OUT (SCG_DATREG),A + SCG_IODELAY INC DE - DJNZ N8V_SCROLL2 + DJNZ SCG_SCROLL2 ; ; BUMP TO NEXT LINE - LD DE,N8V_COLS + LD DE,SCG_COLS ADD HL,DE DEC C ; DECREMENT ROW COUNTER - JR NZ,N8V_SCROLL0 ; LOOP THRU ALL ROWS + JR NZ,SCG_SCROLL0 ; LOOP THRU ALL ROWS ; ; FILL THE NEWLY EXPOSED BOTTOM LINE - CALL N8V_WR + CALL SCG_WR LD A,' ' - LD B,N8V_COLS -N8V_SCROLL3: - OUT (N8V_DATREG),A - N8V_IODELAY - DJNZ N8V_SCROLL3 + LD B,SCG_COLS +SCG_SCROLL3: + OUT (SCG_DATREG),A + SCG_IODELAY + DJNZ SCG_SCROLL3 ; RET ; @@ -510,50 +510,50 @@ N8V_SCROLL3: ; REVERSE SCROLL ENTIRE SCREEN BY ONE LINE (CURSOR POSITION UNCHANGED) ;---------------------------------------------------------------------- ; -N8V_RSCROLL: - LD HL,N8V_COLS * (N8V_ROWS - 1) - LD C,N8V_ROWS - 1 +SCG_RSCROLL: + LD HL,SCG_COLS * (SCG_ROWS - 1) + LD C,SCG_ROWS - 1 ; -N8V_RSCROLL0: ; READ THE LINE THAT IS ONE PRIOR TO CURRENT DESTINATION +SCG_RSCROLL0: ; READ THE LINE THAT IS ONE PRIOR TO CURRENT DESTINATION PUSH HL ; SAVE THE DESTINATION ADDRESS - LD DE,-N8V_COLS + LD DE,-SCG_COLS ADD HL,DE ; SET SOURCE ADDRESS - CALL N8V_RD ; SET UP TO READ - LD DE,N8V_BUF ; POINT TO BUFFER - LD B,N8V_COLS ; LOOP FOR EACH COLUMN -N8V_RSCROLL1: - IN A,(N8V_DATREG) ; GET THE CHAR - N8V_IODELAY ; RECOVER + CALL SCG_RD ; SET UP TO READ + LD DE,SCG_BUF ; POINT TO BUFFER + LD B,SCG_COLS ; LOOP FOR EACH COLUMN +SCG_RSCROLL1: + IN A,(SCG_DATREG) ; GET THE CHAR + SCG_IODELAY ; RECOVER LD (DE),A ; SAVE IN BUFFER INC DE ; BUMP BUFFER POINTER - DJNZ N8V_RSCROLL1 ; LOOP THRU ALL COLS + DJNZ SCG_RSCROLL1 ; LOOP THRU ALL COLS POP HL ; RECOVER THE DESTINATION ADDRESS ; ; WRITE THE BUFFERED LINE TO CURRENT DESTINATION - CALL N8V_WR ; SET THE WRITE ADDRESS - LD DE,N8V_BUF ; POINT TO BUFFER - LD B,N8V_COLS ; INIT LOOP COUNTER -N8V_RSCROLL2: + CALL SCG_WR ; SET THE WRITE ADDRESS + LD DE,SCG_BUF ; POINT TO BUFFER + LD B,SCG_COLS ; INIT LOOP COUNTER +SCG_RSCROLL2: LD A,(DE) ; LOAD THE CHAR - OUT (N8V_DATREG),A ; WRITE TO SCREEN - N8V_IODELAY ; DELAY + OUT (SCG_DATREG),A ; WRITE TO SCREEN + SCG_IODELAY ; DELAY INC DE ; BUMP BUF POINTER - DJNZ N8V_RSCROLL2 ; LOOP THRU ALL COLS + DJNZ SCG_RSCROLL2 ; LOOP THRU ALL COLS ; ; BUMP TO THE PRIOR LINE - LD DE,-N8V_COLS ; LOAD COLS (NEGATIVE) + LD DE,-SCG_COLS ; LOAD COLS (NEGATIVE) ADD HL,DE ; BACK UP THE ADDRESS DEC C ; DECREMENT ROW COUNTER - JR NZ,N8V_RSCROLL0 ; LOOP THRU ALL ROWS + JR NZ,SCG_RSCROLL0 ; LOOP THRU ALL ROWS ; ; FILL THE NEWLY EXPOSED BOTTOM LINE - CALL N8V_WR + CALL SCG_WR LD A,' ' - LD B,N8V_COLS -N8V_RSCROLL3: - OUT (N8V_DATREG),A - N8V_IODELAY - DJNZ N8V_RSCROLL3 + LD B,SCG_COLS +SCG_RSCROLL3: + OUT (SCG_DATREG),A + SCG_IODELAY + DJNZ SCG_RSCROLL3 ; RET ; @@ -561,48 +561,50 @@ N8V_RSCROLL3: ; BLOCK COPY BC BYTES FROM HL TO DE ;---------------------------------------------------------------------- ; -N8V_BLKCPY: +SCG_BLKCPY: ; SAVE DESTINATION AND LENGTH PUSH BC ; LENGTH PUSH DE ; DEST ; ; READ FROM THE SOURCE LOCATION -N8V_BLKCPY1: - CALL N8V_RD ; SET UP TO READ FROM ADDRESS IN HL - LD DE,N8V_BUF ; POINT TO BUFFER +SCG_BLKCPY1: + CALL SCG_RD ; SET UP TO READ FROM ADDRESS IN HL + LD DE,SCG_BUF ; POINT TO BUFFER LD B,C -N8V_BLKCPY2: - IN A,(N8V_DATREG) ; GET THE NEXT BYTE - N8V_IODELAY ; DELAY +SCG_BLKCPY2: + IN A,(SCG_DATREG) ; GET THE NEXT BYTE + SCG_IODELAY ; DELAY LD (DE),A ; SAVE IN BUFFER INC DE ; BUMP BUF PTR - DJNZ N8V_BLKCPY2 ; LOOP AS NEEDED + DJNZ SCG_BLKCPY2 ; LOOP AS NEEDED ; ; WRITE TO THE DESTINATION LOCATION POP HL ; RECOVER DESTINATION INTO HL - CALL N8V_WR ; SET UP TO WRITE - LD DE,N8V_BUF ; POINT TO BUFFER + CALL SCG_WR ; SET UP TO WRITE + LD DE,SCG_BUF ; POINT TO BUFFER POP BC ; GET LOOP COUNTER BACK LD B,C -N8V_BLKCPY3: +SCG_BLKCPY3: LD A,(DE) ; GET THE CHAR FROM BUFFER - OUT (N8V_DATREG),A ; WRITE TO VDU - N8V_IODELAY ; DELAY + OUT (SCG_DATREG),A ; WRITE TO VDU + SCG_IODELAY ; DELAY INC DE ; BUMP BUF PTR - DJNZ N8V_BLKCPY3 ; LOOP AS NEEDED + DJNZ SCG_BLKCPY3 ; LOOP AS NEEDED ; RET ; ;================================================================================================== -; N8V DRIVER - DATA +; SCG DRIVER - DATA ;================================================================================================== ; -N8V_POS .DW 0 ; CURRENT DISPLAY POSITION -N8V_CURSAV .DB 0 ; SAVES ORIGINAL CHARACTER UNDER CURSOR -N8V_BUF .FILL 256,0 ; COPY BUFFER +SCG_CIOUNIT .DB $FF ; LOCAL COPY OF OUR CIO UNIT NUMBER +; +SCG_POS .DW 0 ; CURRENT DISPLAY POSITION +SCG_CURSAV .DB 0 ; SAVES ORIGINAL CHARACTER UNDER CURSOR +SCG_BUF .FILL 256,0 ; COPY BUFFER ; ;================================================================================================== -; N8V DRIVER - TMS9918 REGISTER INITIALIZATION +; SCG DRIVER - TMS9918 REGISTER INITIALIZATION ;================================================================================================== ; ; Control Registers (write CMDREG): @@ -643,7 +645,7 @@ N8V_BUF .FILL 256,0 ; COPY BUFFER ; 5S Fifth sprite (not displayed) detected. Value in FS* is valid. ; INT Set at each screen update, used for interrupts. ; -N8V_INIT9918: +SCG_INIT9918: .DB $00 ; REG 0 - NO EXTERNAL VID .DB $50 ; REG 1 - ENABLE SCREEN, SET MODE 1 .DB $00 ; REG 2 - PATTERN NAME TABLE := 0 @@ -653,11 +655,11 @@ N8V_INIT9918: .DB $00 ; REG 6 - NO SPRITE GENERATOR TABLE .DB $F0 ; REG 7 - WHITE ON BLACK ; -N8V_INIT9918LEN .EQU $ - N8V_INIT9918 +SCG_INIT9918LEN .EQU $ - SCG_INIT9918 ; ;================================================================================================== -; N8V DRIVER - FONT DATA +; SCG DRIVER - FONT DATA ;================================================================================================== ; -N8V_FONTDATA: -#INCLUDE "n8v_font.inc" \ No newline at end of file +SCG_FONTDATA: +#INCLUDE "scg_font.inc" \ No newline at end of file diff --git a/Source/HBIOS/n8v_font.inc b/Source/HBIOS/scg_font.inc similarity index 100% rename from Source/HBIOS/n8v_font.inc rename to Source/HBIOS/scg_font.inc diff --git a/Source/HBIOS/std.asm b/Source/HBIOS/std.asm index 3bc4f887..c10d7f3c 100644 --- a/Source/HBIOS/std.asm +++ b/Source/HBIOS/std.asm @@ -33,9 +33,9 @@ PLT_N8 .EQU 4 ; N8 (HOME COMPUTER) Z180 SBC PLT_MK4 .EQU 5 ; MARK IV PLT_UNA .EQU 6 ; UNA BIOS ; -;#IFDEF PLTWBW +#IF (PLATFORM != PLT_UNA) #INCLUDE "hbios.inc" -;#ENDIF +#ENDIF ; ; BOOT STYLE ; diff --git a/Source/HBIOS/tty.asm b/Source/HBIOS/tty.asm index 21ccd28a..b947b6f8 100644 --- a/Source/HBIOS/tty.asm +++ b/Source/HBIOS/tty.asm @@ -6,14 +6,23 @@ ; TODO: ; - SOME FUNCTIONS ARE NOT IMPLEMENTED!!! ; +; INITIALIZATION OF EMULATION MODULE CALLED BY PARENT VDA DRIVER +; ON ENTRY: +; C: CIO UNIT NUMBER OF CALLING VDA DRIVER +; DE: DISPATCH ADDRESS OF CALLING VDA DRIVER +; RETURNS: +; DE: OUR CIO DISPATCH ADDRESS +; TTY_INIT: - ; SAVE INCOMING VDA DISPATCH ADDRESS - LD (EMU_VDADISPADR),DE ; RECORD NEW VDA DISPATCH ADDRESS + ; SAVE CALLING VDA DRIVER'S CIO UNIT NUMBER AND VDA DISPATCH ADDRESS + LD C,A ; VDA DRIVER'S CIO UNIT NUMBER + LD (TTY_CIOUNIT),A ; ... SAVED LOCALLY + LD (TTY_VDADISPADR),DE ; ALSO SAVE VDA DRIVER'S DISPATCH ADDRESS ; ; QUERY THE VIDEO DRIVER FOR SCREEN DIMENSIONS LD B,BF_VDAQRY ; FUNCTION IS QUERY LD HL,0 ; WE DO NOT WANT A COPY OF THE CHARACTER BITMAP DATA - CALL EMU_VDADISP ; PERFORM THE QUERY FUNCTION + CALL TTY_VDADISP ; PERFORM THE QUERY FUNCTION LD (TTY_DIM),DE ; SAVE THE SCREEN DIMENSIONS RETURNED ; LD DE,0 ; DE := 0, CURSOR TO HOME POSITION 0,0 @@ -25,8 +34,13 @@ TTY_INIT: ; ; ; +TTY_VDADISP: + JP PANIC +TTY_VDADISPADR .EQU $ - 2 +; +; +; TTY_DISPATCH: - LD (TTY_CIODEV),A ; *DEBUG* LD A,B ; GET REQUESTED FUNCTION AND $0F ; ISOLATE SUB-FUNCTION JR Z,TTY_IN ; $30 @@ -48,7 +62,7 @@ TTY_DISPATCH: ; TTY_IN: LD B,BF_VDAKRD ; SET FUNCTION TO KEYBOARD READ - JP EMU_VDADISP ; CHAIN TO VDA DISPATCHER + JP TTY_VDADISP ; CHAIN TO VDA DISPATCHER ; ; ; @@ -61,7 +75,7 @@ TTY_OUT: ; TTY_IST: LD B,BF_VDAKST ; SET FUNCTION TO KEYBOARD STATUS - JP EMU_VDADISP ; CHAIN TO VDA DISPATCHER + JP TTY_VDADISP ; CHAIN TO VDA DISPATCHER ; ; ; @@ -85,9 +99,8 @@ TTY_QUERY: ; ; TTY_DEVICE: - ;LD D,CIODEV_VDA ; D := DEVICE TYPE - LD A,(TTY_CIODEV) ; GET THE CURRENT CIO DEVICE *DEBUG* - LD D,A ; AND PASS BACK IN D *DEBUG* + LD A,(TTY_CIOUNIT) ; PARENT VDA CIO UNIT + LD D,A ; AND PASS BACK IN D LD E,C ; E := PHYSICAL UNIT XOR A ; SIGNAL SUCCESS RET @@ -107,7 +120,7 @@ TTY_DOCHAR: CP 32 ; COMPARE TO SPACE (FIRST PRINTABLE CHARACTER) RET C ; SWALLOW OTHER CONTROL CHARACTERS LD B,BF_VDAWRC - CALL EMU_VDADISP ; SPIT OUT THE RAW CHARACTER + CALL TTY_VDADISP ; SPIT OUT THE RAW CHARACTER LD A,(TTY_COL) ; GET CUR COL INC A ; INCREMENT LD (TTY_COL),A ; SAVE IT @@ -126,7 +139,7 @@ TTY_FF: CALL MULT8 ; HL := H * E TO GET TOTAL SCREEN POSITIONS LD E,' ' ; FILL SCREEN WITH BLANKS LD B,BF_VDAFIL ; SET FUNCTION TO FILL - CALL EMU_VDADISP ; PERFORM FILL + CALL TTY_VDADISP ; PERFORM FILL JR TTY_XY ; HOME CURSOR AND RETURN ; TTY_BS: @@ -154,12 +167,12 @@ TTY_LF: ; LINEFEED (FORWARD INDEX) TTY_LF1: ; SCROLL LD E,1 ; SCROLL FORWARD 1 LINE LD B,BF_VDASCR ; SET FUNCTION TO SCROLL - JP EMU_VDADISP ; DO THE SCROLLING AND RETURN + JP TTY_VDADISP ; DO THE SCROLLING AND RETURN ; TTY_XY: LD DE,(TTY_POS) ; GET THE DESIRED CURSOR POSITION LD B,BF_VDASCP ; SET FUNCTIONT TO SET CURSOR POSITION - JP EMU_VDADISP ; REPOSITION CURSOR + JP TTY_VDADISP ; REPOSITION CURSOR ; ; ; @@ -171,4 +184,4 @@ TTY_DIM: TTY_COLS .DB 80 ; NUMBER OF COLUMNS ON SCREEN TTY_ROWS .DB 24 ; NUMBER OF ROWS ON SCREEN ; -TTY_CIODEV .DB 0 ; *DEBUG* +TTY_CIOUNIT .DB $FF ; CIO UNIT NUMBER OF PARENT VDA diff --git a/Source/HBIOS/util.asm b/Source/HBIOS/util.asm index f084743d..83691705 100644 --- a/Source/HBIOS/util.asm +++ b/Source/HBIOS/util.asm @@ -501,7 +501,8 @@ BYTE2BCD1: POP BC RET -;#IFDEF PLTWBW +#IF (PLATFORM != PLT_UNA) + #IFDEF USEDELAY ; @@ -593,10 +594,14 @@ LDELAY: ; CPU SCALER := MAX(1, (PHIMHZ - 2)) ; DELAY_INIT: - LD B,BF_SYSHCBGETB ; HB FUNC: GET HCB BYTE - LD C,HCB_CPUMHZ ; CPU SPEED IN MHZ - RST 08 ; DO IT - LD A,E ; VALUE TO ACCUM + ;LD B,BF_SYSHCBGETB ; HB FUNC: GET HCB BYTE + ;LD C,HCB_CPUMHZ ; CPU SPEED IN MHZ + ;RST 08 ; DO IT + ;LD A,E ; VALUE TO ACCUM + LD B,BF_SYSGET ; HBIOS FUNC=GET SYS INFO + LD C,BF_SYSGET_CPUINFO ; HBIOS SUBFUNC=GET CPU INFO + RST 08 ; CALL HBIOS, RST 08 NOT YET INSTALLED + LD A,L ; PUT SPEED IN MHZ IN ACCUM SUB 2 ; ADJUST AS REQUIRED BY DELAY FUNCTIONS LD (CPUSCL),A ; UPDATE CPU SCALER VALUE CP 1 ; CHECK FOR MINIMUM VALUE ALLOWED @@ -604,7 +609,7 @@ DELAY_INIT: LD A,1 ; OTHERWISE, SET MIN VALUE LD (CPUSCL),A ; AND SAVE IT RET -; + #IF (CPUMHZ < 3) CPUSCL .DB 1 ; CPU SCALER MUST BE > 0 #ELSE @@ -612,7 +617,8 @@ CPUSCL .DB CPUMHZ - 2 ; OTHERWISE 2 LESS THAN PHI MHZ #ENDIF ; #ENDIF -;#ENDIF +; +#ENDIF ; ; SHORT DELAY FUNCTIONS. NO CLOCK SPEED COMPENSATION, SO THEY ; WILL RUN LONGER ON SLOWER SYSTEMS. THE NUMBER INDICATES THE diff --git a/Source/HBIOS/vdu.asm b/Source/HBIOS/vdu.asm index ad41d8c5..fa9ad785 100644 --- a/Source/HBIOS/vdu.asm +++ b/Source/HBIOS/vdu.asm @@ -39,9 +39,9 @@ VDU_INIT: LD C,CIODEV_VDU ; DEVICE TYPE LD DE,0 ; UNIT DATA BLOB ADDRESS CALL CIO_ADDENT ; ADD ENTRY, A := UNIT ASSIGNED + LD (VDU_CIOUNIT),A ; SAVE IT LOCALLY LD (HCB + HCB_CRTDEV),A ; SET OURSELVES AS THE CRT DEVICE - CALL TSTPT ; *DEBUG* LD D,VDAEMU ; DEFAULT EMULATION LD E,0 ; VIDEO MODE = 0 JP VDU_VDAINI @@ -98,12 +98,12 @@ VDU_VDAINI: POP DE ; RECOVER EMULATION TYPE ; INITIALIZE EMULATION - LD C,D ; EMULATION MODE TO C + LD B,D ; EMULATION TYPE TO B + LD A,(VDU_CIOUNIT) ; CIO UNIT NUMBER + LD C,A ; ... IS PASSED IN C LD DE,VDU_DISPATCH ; DISPATCH ADDRESS TO DE - CALL TSTPT ; *DEBUG* CALL EMU_INIT ; INITIALIZE EMULATION, DE := CIO DISPATCHER LD (VDU_CIODISPADR),DE ; SAVE EMULATORS CIO DISPATCH INTERFACE ADDRESS - CALL TSTPT ; *DEBUG* XOR A ; SIGNAL SUCCESS RET @@ -468,6 +468,8 @@ VDU_RSCROLL: ; VDU DRIVER - DATA ;================================================================================================== ; +VDU_CIOUNIT .DB $FF ; LOCAL COPY OF OUR CIO UNIT NUMBER +; VDU_POS .DW 0 ; CURRENT DISPLAY POSITION VDU_OFFSET .DW 0 ; CURRENT DISPLAY POSITION VDU_BUF .FILL 256,0 ; COPY BUFFER diff --git a/Source/HBIOS/ver.inc b/Source/HBIOS/ver.inc index 912f5ba4..7ae71b71 100644 --- a/Source/HBIOS/ver.inc +++ b/Source/HBIOS/ver.inc @@ -1,5 +1,5 @@ #DEFINE RMJ 2 -#DEFINE RMN 7 -#DEFINE RUP 2 +#DEFINE RMN 8 +#DEFINE RUP 0 #DEFINE RTP 0 -#DEFINE BIOSVER "2.7.2-alpha.7" +#DEFINE BIOSVER "2.8.0-alpha.0" diff --git a/Source/RomDsk/ROM_1024KB/FDISK80.COM b/Source/RomDsk/ROM_1024KB/FDISK80.COM new file mode 100644 index 00000000..dfe3f668 Binary files /dev/null and b/Source/RomDsk/ROM_1024KB/FDISK80.COM differ diff --git a/Source/RomDsk/ROM_512KB/FDISK80.COM b/Source/RomDsk/ROM_512KB/FDISK80.COM new file mode 100644 index 00000000..dfe3f668 Binary files /dev/null and b/Source/RomDsk/ROM_512KB/FDISK80.COM differ diff --git a/Source/RomDsk/ROM_512KB/LBREXT.COM b/Source/RomDsk/ROM_512KB/LBREXT.COM deleted file mode 100644 index c0c950e3..00000000 Binary files a/Source/RomDsk/ROM_512KB/LBREXT.COM and /dev/null differ diff --git a/Source/RomDsk/ROM_512KB/ZDENST.COM b/Source/RomDsk/ROM_512KB/ZDENST.COM deleted file mode 100644 index 8ccc9767..00000000 Binary files a/Source/RomDsk/ROM_512KB/ZDENST.COM and /dev/null differ diff --git a/Source/RomDsk/sbc_ci/T5.COM b/Source/RomDsk/sbc_ci/T5.COM deleted file mode 100644 index ab55d759..00000000 Binary files a/Source/RomDsk/sbc_ci/T5.COM and /dev/null differ diff --git a/Source/RomDsk/sbc_cvdu/T5.COM b/Source/RomDsk/sbc_cvdu/T5.COM deleted file mode 100644 index ab55d759..00000000 Binary files a/Source/RomDsk/sbc_cvdu/T5.COM and /dev/null differ diff --git a/Source/RomDsk/sbc_dide/T5.COM b/Source/RomDsk/sbc_dide/T5.COM deleted file mode 100644 index ab55d759..00000000 Binary files a/Source/RomDsk/sbc_dide/T5.COM and /dev/null differ diff --git a/Source/RomDsk/sbc_diskio/T5.COM b/Source/RomDsk/sbc_diskio/T5.COM deleted file mode 100644 index ab55d759..00000000 Binary files a/Source/RomDsk/sbc_diskio/T5.COM and /dev/null differ diff --git a/Source/RomDsk/sbc_diskio3+cvdu/T5.COM b/Source/RomDsk/sbc_diskio3+cvdu/T5.COM deleted file mode 100644 index ab55d759..00000000 Binary files a/Source/RomDsk/sbc_diskio3+cvdu/T5.COM and /dev/null differ diff --git a/Source/RomDsk/sbc_diskio3/T5.COM b/Source/RomDsk/sbc_diskio3/T5.COM deleted file mode 100644 index ab55d759..00000000 Binary files a/Source/RomDsk/sbc_diskio3/T5.COM and /dev/null differ diff --git a/Source/RomDsk/sbc_dsd/T5.COM b/Source/RomDsk/sbc_dsd/T5.COM deleted file mode 100644 index ab55d759..00000000 Binary files a/Source/RomDsk/sbc_dsd/T5.COM and /dev/null differ diff --git a/Source/RomDsk/sbc_mfpic/T5.COM b/Source/RomDsk/sbc_mfpic/T5.COM deleted file mode 100644 index ab55d759..00000000 Binary files a/Source/RomDsk/sbc_mfpic/T5.COM and /dev/null differ diff --git a/Source/RomDsk/sbc_ppide/T5.COM b/Source/RomDsk/sbc_ppide/T5.COM deleted file mode 100644 index ab55d759..00000000 Binary files a/Source/RomDsk/sbc_ppide/T5.COM and /dev/null differ diff --git a/Source/RomDsk/sbc_ppisd/T5.COM b/Source/RomDsk/sbc_ppisd/T5.COM deleted file mode 100644 index ab55d759..00000000 Binary files a/Source/RomDsk/sbc_ppisd/T5.COM and /dev/null differ diff --git a/Source/RomDsk/sbc_propio/T5.COM b/Source/RomDsk/sbc_propio/T5.COM deleted file mode 100644 index ab55d759..00000000 Binary files a/Source/RomDsk/sbc_propio/T5.COM and /dev/null differ diff --git a/Source/RomDsk/sbc_rf/T5.COM b/Source/RomDsk/sbc_rf/T5.COM deleted file mode 100644 index ab55d759..00000000 Binary files a/Source/RomDsk/sbc_rf/T5.COM and /dev/null differ diff --git a/Source/RomDsk/sbc_std/T5.COM b/Source/RomDsk/sbc_std/T5.COM deleted file mode 100644 index ab55d759..00000000 Binary files a/Source/RomDsk/sbc_std/T5.COM and /dev/null differ diff --git a/Source/RomDsk/sbc_vdu/T5.COM b/Source/RomDsk/sbc_vdu/T5.COM deleted file mode 100644 index ab55d759..00000000 Binary files a/Source/RomDsk/sbc_vdu/T5.COM and /dev/null differ diff --git a/Source/HBIOS/ubios.inc b/Source/UBIOS/ubios.inc similarity index 100% rename from Source/HBIOS/ubios.inc rename to Source/UBIOS/ubios.inc