Browse Source

Device Type ID Reorganization

Driver Device Type ID's have been stored in the upper nibble.  However, running out of ID's, I have changed them to occupy the entire byte.

This is a breaking change, so I have updated the minor version number to maintain integrity between components.  So, v3.3 will never become a stable release and I am moving directly to v3.4.
patch v3.4.0-dev.0
Wayne Warthen 2 years ago
parent
commit
a157d9ba13
  1. 5
      Doc/ChangeLog.txt
  2. BIN
      Doc/RomWBW Applications.pdf
  3. BIN
      Doc/RomWBW Disk Catalog.pdf
  4. BIN
      Doc/RomWBW Errata.pdf
  5. BIN
      Doc/RomWBW ROM Applications.pdf
  6. BIN
      Doc/RomWBW System Guide.pdf
  7. BIN
      Doc/RomWBW User Guide.pdf
  8. 8
      Source/Apps/assign.asm
  9. 4
      Source/CBIOS/cbios.asm
  10. 77
      Source/Doc/SystemGuide.md
  11. 11
      Source/HBIOS/hbios.asm
  12. 86
      Source/HBIOS/hbios.inc
  13. 9
      Source/HBIOS/std.asm
  14. 4
      Source/ver.inc
  15. 4
      Source/ver.lib

5
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

BIN
Doc/RomWBW Applications.pdf

Binary file not shown.

BIN
Doc/RomWBW Disk Catalog.pdf

Binary file not shown.

BIN
Doc/RomWBW Errata.pdf

Binary file not shown.

BIN
Doc/RomWBW ROM Applications.pdf

Binary file not shown.

BIN
Doc/RomWBW System Guide.pdf

Binary file not shown.

BIN
Doc/RomWBW User Guide.pdf

Binary file not shown.

8
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

4
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

77
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

11
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

86
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
;

9
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)

4
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

4
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

Loading…
Cancel
Save