diff --git a/Doc/ChangeLog.txt b/Doc/ChangeLog.txt index 66972684..040b26c8 100644 --- a/Doc/ChangeLog.txt +++ b/Doc/ChangeLog.txt @@ -1,3 +1,8 @@ +Version 3.4 +----------- +NOTE: Changes require HBIOS/CBIOS/Apps sync, version bump to 3.4 to ensure integrity +- WBW: Device type number moved from upper nibble to full byte + Version 3.3 ----------- - WBW: Support Front Panel switches diff --git a/Doc/RomWBW Applications.pdf b/Doc/RomWBW Applications.pdf index d9647ab5..bdd7cbf5 100644 Binary files a/Doc/RomWBW Applications.pdf and b/Doc/RomWBW Applications.pdf differ diff --git a/Doc/RomWBW Disk Catalog.pdf b/Doc/RomWBW Disk Catalog.pdf index 579f4dee..5a5d4d88 100644 Binary files a/Doc/RomWBW Disk Catalog.pdf and b/Doc/RomWBW Disk Catalog.pdf differ diff --git a/Doc/RomWBW Errata.pdf b/Doc/RomWBW Errata.pdf index 321a72e5..70a0eb9e 100644 Binary files a/Doc/RomWBW Errata.pdf and b/Doc/RomWBW Errata.pdf differ diff --git a/Doc/RomWBW ROM Applications.pdf b/Doc/RomWBW ROM Applications.pdf index e17f29fd..4e6869c8 100644 Binary files a/Doc/RomWBW ROM Applications.pdf and b/Doc/RomWBW ROM Applications.pdf differ diff --git a/Doc/RomWBW System Guide.pdf b/Doc/RomWBW System Guide.pdf index 92b304bf..efdd3ce9 100644 Binary files a/Doc/RomWBW System Guide.pdf and b/Doc/RomWBW System Guide.pdf differ diff --git a/Doc/RomWBW User Guide.pdf b/Doc/RomWBW User Guide.pdf index 4582a6f7..27ec9c5e 100644 Binary files a/Doc/RomWBW User Guide.pdf and b/Doc/RomWBW User Guide.pdf differ diff --git a/Source/Apps/assign.asm b/Source/Apps/assign.asm index 41cd6007..e590054b 100644 --- a/Source/Apps/assign.asm +++ b/Source/Apps/assign.asm @@ -1066,10 +1066,6 @@ drvmap1: ; loop through device table looking for a match drvmap2: ; convert index to device type id ld a,c ; index to accum - rlca ; move it to upper nibble - rlca ; ... - rlca ; ... - rlca ; ... ld (device),a ; save as device id ; ; loop thru hbios units looking for device type/unit match @@ -1309,10 +1305,6 @@ prtdev: 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 ; ... - rrca ; ... into low nibble and $0F ; mask out undesired bits push hl ; save HL add a,a ; multiple A by two for word table diff --git a/Source/CBIOS/cbios.asm b/Source/CBIOS/cbios.asm index 6a52d97a..805ef457 100644 --- a/Source/CBIOS/cbios.asm +++ b/Source/CBIOS/cbios.asm @@ -3346,10 +3346,6 @@ DEVUNK .DB "UNK$" RST 08 ; CALL HBIOS LD A,D ; RESULTANT DEVICE TYPE PUSH DE ; NEED TO SAVE UNIT NUMBER (IN E) - RRCA ; ROTATE DEVICE - RRCA ; ... BITS - RRCA ; ... INTO - RRCA ; ... LOWEST 4 BITS AND $0F ; ISOLATE DEVICE BITS ADD A,A ; MULTIPLY BY TWO FOR WORD TABLE LD HL,DEVTBL ; POINT TO START OF DEVICE NAME TABLE diff --git a/Source/Doc/SystemGuide.md b/Source/Doc/SystemGuide.md index baef2796..cac5cf9b 100644 --- a/Source/Doc/SystemGuide.md +++ b/Source/Doc/SystemGuide.md @@ -390,17 +390,20 @@ below enumerates these values. | **Device Type** | **ID** | **Description** | **Driver** | |-----------------|-------:|------------------------------------------|------------| | CIODEV_UART | 0x00 | 16C550 Family Serial Interface | uart.asm | -| CIODEV_ASCI | 0x10 | Z180 Built-in Serial Ports | asci.asm | -| CIODEV_TERM | 0x20 | Terminal | ansi.asm | -| CIODEV_PRPCON | 0x30 | PropIO Serial Console Interface | prp.asm | -| CIODEV_PPPCON | 0x40 | ParPortProp Serial Console Interface | ppp.asm | -| CIODEV_SIO | 0x50 | Zilog Serial Port Interface | sio.asm | -| CIODEV_ACIA | 0x60 | MC68B50 Asynchronous Interface | acia.asm | -| CIODEV_PIO | 0x70 | Zilog Parallel Interface Controller | pio.asm | -| CIODEV_UF | 0x80 | FT232H-based ECB USB FIFO | uf.asm | -| CIODEV_DUART | 0x90 | SCC2681 Family Dual UART | duart.asm | -| CIODEV_Z2U | 0xA0 | Zilog Z280 Built-in Serial Ports | z2u.asm | -| CIODEV_LPT | 0xB0 | Parallel I/O Controller | lpt.asm | +| CIODEV_ASCI | 0x01 | Z180 Built-in Serial Ports | asci.asm | +| CIODEV_TERM | 0x02 | Terminal | ansi.asm | +| CIODEV_PRPCON | 0x03 | PropIO Serial Console Interface | prp.asm | +| CIODEV_PPPCON | 0x04 | ParPortProp Serial Console Interface | ppp.asm | +| CIODEV_SIO | 0x05 | Zilog Serial Port Interface | sio.asm | +| CIODEV_ACIA | 0x06 | MC68B50 Asynchronous Interface | acia.asm | +| CIODEV_PIO | 0x07 | Zilog Parallel Interface Controller | pio.asm | +| CIODEV_UF | 0x08 | FT232H-based ECB USB FIFO | uf.asm | +| CIODEV_DUART | 0x09 | SCC2681 Family Dual UART | duart.asm | +| CIODEV_Z2U | 0x0A | Zilog Z280 Built-in Serial Ports | z2u.asm | +| CIODEV_LPT | 0x0B | Parallel I/O Controller | lpt.asm | +| CIODEV_ESPCON | 0x0B | ESP32 VGA Console | esp.asm | +| CIODEV_ESPSER | 0x0B | ESP32 Serial Port | esp.asm | +| CIODEV_SCON | 0x0B | S100 Console | scon.asm | Character devices can usually be configured with line characteristics such as speed, framing, etc. A word value (16 bit) is used to describe @@ -568,15 +571,20 @@ below enumerates there values. | **Device Type** | **ID** | **Description** | **Driver** | |-----------------|-------:|------------------------------------------|------------| | DIODEV_MD | 0x00 | Memory Disk | md.asm | -| DIODEV_FD | 0x10 | Floppy Disk | fd.asm | -| DIODEV_RF | 0x20 | RAM Floppy | rf.asm | -| DIODEV_IDE | 0x30 | IDE Disk | ide.asm | -| DIODEV_ATAPI | 0x40 | ATAPI Disk (not implemented) | | -| DIODEV_PPIDE | 0x50 | PPIDE Disk | ppide.asm | -| DIODEV_SD | 0x60 | SD Card | sd.asm | -| DIODEV_PRPSD | 0x70 | PropIO SD Card | prp.asm | -| DIODEV_PPPSD | 0x80 | ParPortProp SD Card | ppp.asm | -| DIODEV_HDSK | 0x90 | SIMH HDSK Disk | hdsk.asm | +| DIODEV_FD | 0x01 | Floppy Disk | fd.asm | +| DIODEV_RF | 0x02 | RAM Floppy | rf.asm | +| DIODEV_IDE | 0x03 | IDE Disk | ide.asm | +| DIODEV_ATAPI | 0x04 | ATAPI Disk (not implemented) | | +| DIODEV_PPIDE | 0x05 | PPIDE Disk | ppide.asm | +| DIODEV_SD | 0x06 | SD Card | sd.asm | +| DIODEV_PRPSD | 0x07 | PropIO SD Card | prp.asm | +| DIODEV_PPPSD | 0x08 | ParPortProp SD Card | ppp.asm | +| DIODEV_HDSK | 0x09 | SIMH HDSK Disk | hdsk.asm | +| DIODEV_PPA | 0x0A | Iomega PPA Disk | ppa.asm | +| DIODEV_IMM | 0x0B | Iomega IMM Disk | imm.asm | +| DIODEV_SYQ | 0x0C | Syquest Sparq Disk | syq.asm | +| DIODEV_CHUSB | 0x0D | CH375/376 USB Disk | ch.asm | +| DIODEV_CHSD | 0x0E | CH375/376 SD Card | ch.asm | A fixed set of media types are defined. The currently defined media types identifiers are listed below. Each driver will support one or @@ -878,11 +886,11 @@ unit. The table below enumerates these values. | **Device Type** | **ID** | **Description** | **Driver** | |-----------------|-------:|------------------------------------------|------------| | RTCDEV_DS | 0x00 | Maxim DS1302 Real-Time Clock w/ NVRAM | dsrtc.asm | -| RTCDEV_BQ | 0x10 | BQ4845P Real Time Clock | bqrtc.asm | -| RTCDEV_SIMH | 0x20 | SIMH Simulator Real-Time Clock | simrtc.asm | -| RTCDEV_INT | 0x30 | Interrupt-based Real Time Clock | intrtc.asm | -| RTCDEV_DS7 | 0x40 | Maxim DS1307 PCF I2C RTC w/ NVRAM | ds7rtc.asm | -| RTCDEV_RP5 | 0x50 | Ricoh RPC01A Real-Time Clock w/ NVRAM | rp5rtc.asm | +| RTCDEV_BQ | 0x01 | BQ4845P Real Time Clock | bqrtc.asm | +| RTCDEV_SIMH | 0x02 | SIMH Simulator Real-Time Clock | simrtc.asm | +| RTCDEV_INT | 0x03 | Interrupt-based Real Time Clock | intrtc.asm | +| RTCDEV_DS7 | 0x04 | Maxim DS1307 PCF I2C RTC w/ NVRAM | ds7rtc.asm | +| RTCDEV_RP5 | 0x05 | Ricoh RPC01A Real-Time Clock w/ NVRAM | rp5rtc.asm | The time functions to get and set the time (RTCGTM and RTCSTM) require a 6 byte date/time buffer in the following format. Each byte is BCD @@ -1021,8 +1029,8 @@ unit. The table below enumerates these values. | **Device Type** | **ID** | **Description** | **Driver** | |-----------------|-------:|------------------------------------------|------------| -| DSKYDEV_ICM | 0x00 | Original ICM7218 based DSKY | icm.asm | -| DSKYDEV_PKD | 0x10 | Next Gen Intel P8279 based DSKY | pkd.asm | +| DSKYDEV_ICM | 0x01 | Original ICM7218 based DSKY | icm.asm | +| DSKYDEV_PKD | 0x02 | Next Gen Intel P8279 based DSKY | pkd.asm | When segment display function encodes the display data in a byte per character format. Currently, all segment displays are exactly @@ -1214,10 +1222,11 @@ below enumerates there values. | **Device Type** | **ID** | **Description** | **Driver** | |-----------------|-------:|------------------------------------------|------------| | VDADEV_VDU | 0x00 | MC6845 Family Video Display Controller | vdu.asm | -| VDADEV_CVDU | 0x10 | MC8563-based Video Display Controller | cvdu.asm | -| VDADEV_GDC | 0x20 | uPD7220 Video Display Controller | gdc.asm | -| VDADEV_TMS | 0x30 | TMS9918/38/58 Video Display Controller | tms.asm | -| VDADEV_VGA | 0x40 | HD6445CP4-based Video Display Controller | vga.asm | +| VDADEV_CVDU | 0x01 | MC8563-based Video Display Controller | cvdu.asm | +| VDADEV_GDC | 0x02 | uPD7220 Video Display Controller | gdc.asm | +| VDADEV_TMS | 0x03 | TMS9918/38/58 Video Display Controller | tms.asm | +| VDADEV_VGA | 0x04 | HD6445CP4-based Video Display Controller | vga.asm | +| VDADEV_VRC | 0x05 | VGARC | vrc.asm | Depending on the capabilities of the hardware, the use of colors and attributes may or may not be supported. If the hardware does not support @@ -1629,9 +1638,9 @@ below enumerates these values. | **Device Type** | **ID** | **Description** | **Driver** | |-----------------|-------:|----------------------------------------------|-------------| | SNDDEV_SN76489 | $00 | SN76489 Programmable Sound Generator | sn76489.asm | -| SNDDEV_AY38910 | $10 | AY-3-8910/YM2149 Programmable Sound Generator| ay38910.asm | -| SNDDEV_BITMODE | $20 | Bit-bang Speaker | spk.asm | -| SNDDEV_YM2612 | $30 | YM2612 Programmable Sound Generator | ym2612.asm | +| SNDDEV_AY38910 | $01 | AY-3-8910/YM2149 Programmable Sound Generator| ay38910.asm | +| SNDDEV_BITMODE | $02 | Bit-bang Speaker | spk.asm | +| SNDDEV_YM2612 | $03 | YM2612 Programmable Sound Generator | ym2612.asm | The Sound functions defer the actual programming of the sound chip until the SNDPLAY function is called. You will call the volume diff --git a/Source/HBIOS/hbios.asm b/Source/HBIOS/hbios.asm index ecef8685..f681a456 100644 --- a/Source/HBIOS/hbios.asm +++ b/Source/HBIOS/hbios.asm @@ -6945,7 +6945,6 @@ PS_PRTDT: BIT 7,A ; FLOPPY BIT SET? LD HL,PS_DTFLOP ; ASSUME FLOPPY JP NZ,PS_PRT18 ; IF FLOPPY, JUMP AHEAD - LD C,E LD DE,PS_DTHARD LD A,00001111B @@ -7242,10 +7241,9 @@ PS_SOUND: LD E,BF_SNDQ_DEV RST 08 PUSH BC - LD C,B - LD A,11110000B ; TYPE IS IN UPPER NIBBLE + LD A,B LD DE,PS_SDSN76489 - CALL PRTIDXMSK + CALL PRTIDXDEA CALL PS_PAD18 POP BC ; @@ -7270,9 +7268,8 @@ PS_SOUND: ; PS_PRTDEV: EX DE,HL - LD C,H - LD A,11110000B ; TYPE IS IN UPPER NIBBLE - CALL PRTIDXMSK + LD A,H ; TYPE ID + CALL PRTIDXDEA ; PRINT TYPE LABEL LD A,L ; UNIT NUMBER CALL PRTDECB ; PRINT NUM, ASSUME 1 CHAR CALL PC_COLON ; PRINT COLON diff --git a/Source/HBIOS/hbios.inc b/Source/HBIOS/hbios.inc index a8233cc4..8546cf95 100644 --- a/Source/HBIOS/hbios.inc +++ b/Source/HBIOS/hbios.inc @@ -303,20 +303,20 @@ MID_HDNEW .EQU 10 ; CHAR DEVICE IDS ; CIODEV_UART .EQU $00 -CIODEV_ASCI .EQU $10 -CIODEV_TERM .EQU $20 -CIODEV_PRPCON .EQU $30 -CIODEV_PPPCON .EQU $40 -CIODEV_SIO .EQU $50 -CIODEV_ACIA .EQU $60 -CIODEV_PIO .EQU $70 -CIODEV_UF .EQU $80 -CIODEV_DUART .EQU $90 -CIODEV_Z2U .EQU $A0 -CIODEV_LPT .EQU $B0 -CIODEV_ESPCON .EQU $C0 -CIODEV_ESPSER .EQU $D0 -CIODEV_SCON .EQU $E0 +CIODEV_ASCI .EQU $01 +CIODEV_TERM .EQU $02 +CIODEV_PRPCON .EQU $03 +CIODEV_PPPCON .EQU $04 +CIODEV_SIO .EQU $05 +CIODEV_ACIA .EQU $06 +CIODEV_PIO .EQU $07 +CIODEV_UF .EQU $08 +CIODEV_DUART .EQU $09 +CIODEV_Z2U .EQU $0A +CIODEV_LPT .EQU $0B +CIODEV_ESPCON .EQU $0C +CIODEV_ESPSER .EQU $0D +CIODEV_SCON .EQU $0E ; ; SUB TYPES OF CHAR DEVICES ; @@ -328,51 +328,51 @@ CIODEV_SCON .EQU $E0 ; DISK DEVICE IDS ; DIODEV_MD .EQU $00 -DIODEV_FD .EQU $10 -DIODEV_RF .EQU $20 -DIODEV_IDE .EQU $30 -DIODEV_ATAPI .EQU $40 -DIODEV_PPIDE .EQU $50 -DIODEV_SD .EQU $60 -DIODEV_PRPSD .EQU $70 -DIODEV_PPPSD .EQU $80 -DIODEV_HDSK .EQU $90 -DIODEV_PPA .EQU $A0 -DIODEV_IMM .EQU $B0 -DIODEV_SYQ .EQU $C0 -DIODEV_CHUSB .EQU $D0 -DIODEV_CHSD .EQU $E0 +DIODEV_FD .EQU $01 +DIODEV_RF .EQU $02 +DIODEV_IDE .EQU $03 +DIODEV_ATAPI .EQU $04 +DIODEV_PPIDE .EQU $05 +DIODEV_SD .EQU $06 +DIODEV_PRPSD .EQU $07 +DIODEV_PPPSD .EQU $08 +DIODEV_HDSK .EQU $09 +DIODEV_PPA .EQU $0A +DIODEV_IMM .EQU $0B +DIODEV_SYQ .EQU $0C +DIODEV_CHUSB .EQU $0D +DIODEV_CHSD .EQU $0E ; ; RTC DEVICE IDS ; RTCDEV_DS .EQU $00 ; DS1302 -RTCDEV_BQ .EQU $10 ; BQ4845P -RTCDEV_SIMH .EQU $20 ; SIMH -RTCDEV_INT .EQU $30 ; PERIODIC INT TIMER -RTCDEV_DS7 .EQU $40 ; DS1307 (I2C) -RTCDEV_RP5 .EQU $50 ; RP5C01 +RTCDEV_BQ .EQU $01 ; BQ4845P +RTCDEV_SIMH .EQU $02 ; SIMH +RTCDEV_INT .EQU $03 ; PERIODIC INT TIMER +RTCDEV_DS7 .EQU $04 ; DS1307 (I2C) +RTCDEV_RP5 .EQU $05 ; RP5C01 ; ; DSKY DEVICE IDS ; DSKYDEV_ICM .EQU $00 ; Intersil ICM7218 -DSKYDEV_PKD .EQU $10 ; Intel P8279 -DSKYDEV_H8P .EQU $20 ; Heath H8 Panel +DSKYDEV_PKD .EQU $01 ; Intel P8279 +DSKYDEV_H8P .EQU $02 ; Heath H8 Panel ; ; VIDEO DEVICE IDS ; VDADEV_VDU .EQU $00 ; ECB VDU - MOTOROLA 6545 -VDADEV_CVDU .EQU $10 ; ECB COLOR VDU - MOS 8563 -VDADEV_GDC .EQU $20 ; GRAPHICS DISPLAY CTLR - UPD7220 -VDADEV_TMS .EQU $30 ; N8 ONBOARD VDA SUBSYSTEM - TMS 9918 -VDADEV_VGA .EQU $40 ; ECB VGA3 - HITACHI HD6445 -VDADEV_VRC .EQU $50 ; VGARC +VDADEV_CVDU .EQU $01 ; ECB COLOR VDU - MOS 8563 +VDADEV_GDC .EQU $02 ; GRAPHICS DISPLAY CTLR - UPD7220 +VDADEV_TMS .EQU $03 ; N8 ONBOARD VDA SUBSYSTEM - TMS 9918 +VDADEV_VGA .EQU $04 ; ECB VGA3 - HITACHI HD6445 +VDADEV_VRC .EQU $05 ; VGARC ; ; SOUND DEVICE IDS ; SNDDEV_SN76489 .EQU $00 -SNDDEV_AY38910 .EQU $10 -SNDDEV_BITMODE .EQU $20 -SNDDEV_YM2612 .EQU $30 +SNDDEV_AY38910 .EQU $01 +SNDDEV_BITMODE .EQU $02 +SNDDEV_YM2612 .EQU $03 ; ; DSKY KEYS ; diff --git a/Source/HBIOS/std.asm b/Source/HBIOS/std.asm index 651d3f6e..e221fc5f 100644 --- a/Source/HBIOS/std.asm +++ b/Source/HBIOS/std.asm @@ -583,6 +583,8 @@ BID_ROMN .EQU (BID_ROM0 + ROMBANKS - 1) BID_RAMN .EQU (BID_RAM0 + RAMBANKS - 1) ; #IF (ROMSIZE > 0) +; +; NORMAL SYSTEM WITH ROM & RAM ; -- TYPICAL -- BID_BOOT .EQU BID_ROM0 + 0 ; BOOT BANK 0x00 BID_IMG0 .EQU BID_ROM0 + 1 ; ROM LOADER AND FIRST IMAGES BANK 0x01 @@ -600,6 +602,9 @@ BID_USR .EQU BID_RAMN - 1 ; USER BANK (CP/M TPA, ETC.) 0x8E BID_COM .EQU BID_RAMN - 0 ; COMMON BANK, UPPER 32K 0x8F ; #ELSE +; +; SPECIAL CONFIGURATION FOR A ROMLESS SYSTEM +; RAM IS POPULATED PRIOR TO ROMWBW STARTUP ; -- TYPICAL -- BID_BOOT .EQU BID_RAM0 + 0 ; BOOT BANK 0x80 BID_IMG0 .EQU BID_RAM0 + 1 ; ROM LOADER AND FIRST IMAGES BANK 0x81 @@ -618,10 +623,6 @@ BID_ROMDN .EQU $FF ; NO ROM DRIVE ; #ENDIF ; -#IF (ROMSIZE == 0) -BID_BOOT .SET BID_RAM0 ; SPECIAL CASE ROM-LESS SYSTEM -#ENDIF -; #IF (BIOS == BIOS_WBW) ; #IF (!MDRAM) diff --git a/Source/ver.inc b/Source/ver.inc index 41ceb60f..e45a237c 100644 --- a/Source/ver.inc +++ b/Source/ver.inc @@ -1,8 +1,8 @@ #DEFINE RMJ 3 -#DEFINE RMN 3 +#DEFINE RMN 4 #DEFINE RUP 0 #DEFINE RTP 0 -#DEFINE BIOSVER "3.3.0-dev.63" +#DEFINE BIOSVER "3.4.0-dev.0" #define rmj RMJ #define rmn RMN #define rup RUP diff --git a/Source/ver.lib b/Source/ver.lib index 76cbecbf..ba4a577a 100644 --- a/Source/ver.lib +++ b/Source/ver.lib @@ -1,7 +1,7 @@ rmj equ 3 -rmn equ 3 +rmn equ 4 rup equ 0 rtp equ 0 biosver macro - db "3.3.0-dev.63" + db "3.4.0-dev.0" endm