
; DATA STORAGE

; TIME AND DATE STORAGE

CLOCK:	DEFB	0		; 1/100 SEC COUNTER(BCD) 0 TO 59
SECOND:	DEFB	0		; SECOND (BCD) 0 TO 59
MINUTE:	DEFB	0		; MINUTE (BCD) 0 TO 59
HOUR:	DEFB	0		; HOUR   (BCD) 1 TO 23
DATE:	DEFB	1		; DATE   (BCD) 1 TO 31
MONTH:	DEFB	1		; MONTH  (BCD) 1 TO 12
YEAR:	DEFB	0		; YEAR   (BCD) 0 TO 99 LSB
	DEFB	0		; YEAR   (BCD) 0 TO 99 MSB

TINITF:	DEFB	1		; DATE AND TIME INITIALIZE FLAG 
FDTIME:	DEFB	FDTOUT		; FLOP DISK TIMER(0=DISABLE MOTOR TIMEOUT)
MOTFLG:	DEFB	0		; MOTOR ON/OFF FLAG (1=ON, 0=OFF)

; TIMER STACK AREA

	DEFS	8
LSTACK:	DEFS	2
TUSTACK:
	DEFS	2		; USER STACK

; DMA INITIALIZATION TABLES FOR READ 
; AND WRITE OPERATIONS

RDSTAB:	DEFB	DMA		; PORT ADDRESS
	DEFB	15		; TABLE COUNT
	DEFB	11000011B	; RESET THE DMA
	DEFB	01101101B	; PORT ADDRESS FOLLOWS 
	DEFB	FDCDAT		; FDC DATA PORT ADDRESS
	DEFW	0FFH		; DISK BUFFER - 1
	DEFB	00111100B	; PORT A IS FIXED
	DEFB	00010000B	; PORT B IS MEMORY, INCREMENTS
	DEFB	11001101B	; PORT B MEMORY ADDRESS FOLLOWS
	DEFW	HSTBUF		; ADDRESS OF DISK BUFFER
	DEFB	10001010B	; READY ACTIVE HIGH, END OF BLOCK
	DEFB	11001111B	; LOAD REGISTERS
	DEFB	00000101B	; A -> B, TRANSFER MODE
	DEFB	11001111B	; LOAD REGISTERS
	DEFB	10000111B	; ARM THE DMA
 
WTSTAB:	DEFB	DMA		; PORT ADDRESS
	DEFB	15		; TABLE COUNT
	DEFB	11000011B	; RESET THE DMA
	DEFB	01101101B	; PORT ADDRESS FOLLOWS 
	DEFB	FDCDAT		; FDC DATA PORT ADDRESS
	DEFW	0FFH		; DISK BUFFER - 1
	DEFB	00111100B	; PORT A IS FIXED
	DEFB	00010000B	; PORT B IS MEMORY, INCREMENTS
	DEFB	11001101B	; PORT B MEMORY ADDRESS FOLLOWS
	DEFW	HSTBUF		; ADDRESS OF DISK BUFFER
	DEFB	10001010B	; READY ACTIVE HIGH, END OF BLOCK
	DEFB	11001111B	; LOAD REGISTERS
	DEFB	00000001B	; B -> A, TRANSFER MODE
	DEFB	11001111B	; LOAD REGISTERS
	DEFB	10000111B	; ARM THE DMA

; SIO INITIALIZATION TABLE FOR
; SERIAL PRINTER, 9600 BAUD,
; ETX/ACK PROTOCOL.

SIOTAB:	DEFB	SIOBC1		; PORT ADDRESS
	DEFB	8		; TABLE SIZE
	DEFB	00011000B	; CHANNEL RESET
	DEFB	00011000B	; ANOTHER ONE
	DEFB	00010100B	; EXTERNAL STATUS RESET, POINT TO WR4
	DEFB	01001100B	; X16 CLOCK, 2 STOP BITS
	DEFB	00000011B	; POINT TO WR3
	DEFB	11000001B	; 8 BITS RX, RX ENABLE
	DEFB	00000101B	; POINT TO WR5
	DEFB	11101010B	; DTR, 8 BITS TX, RTS, TX ENABLE

; MODEM PORT INITIALIZATION TABLE

MODTAB:	DEFB	SIOAC1		; PORT ADDRESS
	DEFB	10
	DEFB	11011000B	; RESET CHANNEL
	DEFB	11011000B	; ANOTHER FOR SAFETY
	DEFB	00010100B	; EXTRN STAT RESET, WR #4
	DEFB	01001100B	; X16 CLOCK 2 STOP BITS
	DEFB	00010011B	; WRITE TO WR #3
	DEFB	11000001B	; 8 BITS RX, RX ENABLE
	DEFB	00010101B	; WRITE TO WR #5
	DEFB	11101010B	; DTR, 8 BITS TX, RTS, TX ENABLE
	DEFB	00010001B	; WRITE TO WR #1
	DEFB	00000000B	; DISABLE RCV INT

; MESSAGES, MESSAGES

SIGNON:	DEFB	0EH		; DISABLE XON/XOFF TO CRT (^N)
	DEFB	0DH
	DEFB	0AH
	DEFB	0AH
	DEFB	'TELEVIDEO SYSTEM TS-802 V'
	DEFB	REVNUM/10+'0'	; CBIOS REVISION NUMBER
	DEFB	'.'
	DEFB	(REVNUM MOD 10)+'0'
	DEFB	0DH
	DEFB	0AH
	DEFB	SMSIZE/10+'0'	; CP/M MEMORY SIZE
	DEFB	(SMSIZE MOD 10)+'0'
	DEFB	'k CP/M vers. '	; CP/M VERSION NUMBER
	DEFB	CPMREV/10+'0'
	DEFB	'.'
	DEFB	(CPMREV MOD 10)+'0'
	DEFB	0DH
	DEFB	0AH
	DEFB	0		; TERMINATION

BOOMSG:	DEFB	0DH
	DEFB	0AH
	DEFB	'Bios Error: Boot Failure -- '	; ERROR ON WARM BOOT
	DEFB	'Hit any key to retry.'
	DEFB	0DH
	DEFB	0AH
	DEFB	0

; DETAILED ERROR MESSAGE TABLE

ERRMSG:	DEFB	0DH
	DEFB	0AH
	DEFB	'Bios '
VCMD:	DEFS	5		; COMMAND
	DEFB	' Error on '
VDRV:	DEFS	1		; DRIVE
	DEFB	':'
	DEFB	0DH
	DEFB	0AH
	DEFB	'Track = '
VTRK:	DEFB	'99'		; TRACK NUMBER
	DEFB	', Sector = '
VSEC:	DEFB	'99'		; SECTOR NUMBER
	DEFB	', FDC status = '
VSTAT:	DEFS	2		; ERROR STATUS
	DEFB	'H'
	DEFB	0DH
	DEFB	0AH
	DEFB	0
RMSG:	DEFB	'READ '
WMSG:	DEFB	'WRITE'

; DOOR MESSAGE TABLE

RDYMSG:	DEFB	0DH
	DEFB	0AH
	DEFM	'Check the disk in drive "'
VDRIVE:	DEFS	1
	DEFM	'", and close the door.'
	DEFB	0DH
	DEFB	0AH
	DEFB	0

; TEMPORARY STORAGES FOR REGISTERS

TEMPBC:	DEFW	0
TEMPDE:	DEFW	0
TEMPHL:	DEFW	0

JMPSW:	DEFB	0		; FLAG FOR DOOR MESSAGE PRINT
DRIVE:	DEFS	1		; STORAGE FOR SAVING CURRENT DRIVE NO
TSEC:	DEFS	1		; TARGET SECTOR

; HERE ARE THE VERSION 2 DISK PARAMETER TABLES

DPBASE:

; DRIVE 0 DISK PARAMETER HEADER

HEAD0:	DEFW	0		; ADDR. OF SECTOR TRANSLATE TABLE FOR DISK 0
	DEFW	0		; BDOS SCRATCH WORDS
	DEFW	0		; THREE OF THEM
	DEFW	0
	DEFW	DIRBUF		; ADDR. OF DIRECTORY BUFFER FOR DISK 
	DEFW	DPRMB0		; ADDR. OF DISK PARAMETER BLOCK 0
	DEFW	CHKSV0		; ADDR. OF CHECK SCRATCHPAD
	DEFW	ALOCV0		; ADDR. OF DISK ALLOCATION SCRATCHPAD


; DRIVE 1 DISK PARAMETER HEADER

HEAD1:	DEFW	0		; ADDR. OF SECTOR TRANSLATE TABLE FOR DISK 1
	DEFW	0		; BDOS SCRATCH WORDS
	DEFW	0		; THREE OF THEM
	DEFW	0
	DEFW	DIRBUF		; ADDR. OF DIRECTORY BUFFER FOR DISK 
	DEFW	DPRMB1		; ADDR. OF DISK PARAMETER BLOCK 1
	DEFW	CHKSV1		; ADDR. OF CHECK SCRATCHPAD
	DEFW	ALOCV1		; ADDR. OF DISK ALLOCATION SCRATCHPAD


; HERE ARE THE DISK PARAMETER BLOCKS

DPRMB0:		
DPRMB1:	
	DEFW	SPT0		; NO. OF SECTOR PER TRACK
	DEFB	BSH0		; BLOCK SHIFT FACTOR
	DEFB	BLM0		; BLOCK MASK
	DEFB	EXM0		; EXTENT MASK
	DEFW	DSM0		; DETERMINES TOTAL STORAGE CAPACITY
	DEFW	DRM0		; DETERMINES TOTAL NO. OF DIR. ENTRIES
	DEFB	ALL0		; BLOCK ALLOCATION FOR DIRECTORY	
	DEFB	ALH0		; HIGH ORDER BYTE OF ABOVE
	DEFW	CKS0		; SIZE OF DIRECTORY CHECK VECTOR
	DEFW	OFF0		; NO. OF TRACKS RESERVED FOR SYSTEM

; MISCELLANEOUS INITIALIZED STORAGE

UL1SIZ:	DEFB	80H		; SIZE OF SERIAL PRINTER BUFFER		

; UNALLOCATED STORAGE AREAS

DIRBUF:	DEFS	128		; DIRECTORY BUFFER

; DRIVE 0 STORAGE AREA

ALOCV0:	DEFS	(DSM0/8)+1	; ALLOCATION VECTOR STORAGE
CHKSV0:	DEFS	CKS0		; CHECK VECTOR STORAGE

; DRIVE 1 STORAGE AREA

ALOCV1:	DEFS	(DSM1/8)+1	; ALLOCATION VECTOR STORAGE
CHKSV1:	DEFS	CKS1		; CHECK VECTOR STORAGE

; DISK I/O COMMAND PARAMETERS

COMAND:	DEFS	1		; CURRENT COMMAND
FDDBYT:	DEFS	1		; DRIVE, SIDE, DENSITY, SELECT LATCH
RETRY:	DEFS	1		; RETRY COUNT
UNMSTA:	DEFS	1		; UNMASKED VERSION OF ABOVE
DMATAB:	DEFS	2		; DMA INITIALIZE PARAMETER POINTER

; UNITIALIZED RAM DATA AREAS

SEKDSK:	DEFS	1		; SEEK DISK NUMBER
SEKTRK:	DEFS	1		; SEEK TRACK NUMBER
SEKSEC:	DEFS	1		; SEEK SECTOR NUMBER

HSTDSK: DEFS	1		; HOST DISK NUMBER
HSTTRK:	DEFS	1		; HOST TRACK NUMBER
HSTSEC:	DEFS	1		; HOST SECTOR NUMBER

SEKHST:	DEFS	1		; SEEK HOST SECTOR NUMBER
HSTACT:	DEFS	1		; HOST ACTIVE FLAG
HSTWRT:	DEFS	1		; HOST BUFFER WRITE PENDING FLAG

UNACNT:	DEFS	1		; UNALLOATED SECTOR COUNT
UNADSK:	DEFS	1		; UNALLOCATED DISK
UNATRK:	DEFS	1		; UNALLOCATED TRACK
UNASEC:	DEFS	1		; UNALOCATED SECTOR

ERFLAG:	DEFS	1		; ERROR REPORTING
RSFLAG:	DEFS	1		; PRE-READ SECTOR FLAG
READOP:	DEFS	1		; 0 IF WRITE OPERATION; 1 IF READ OPER.
WRTYPE:	DEFS	1		; WRITE OPERATION TYPE
DMAADR:	DEFS	2		; LAST DMA ADDRESS
TRKTAB:	DEFS	NODRVS		; CURRENT TRACK TABLE
HSTBUF:	DEFS	HSTSIZ		; HOST DISK I/O BUFFER AREA.
UL1CNT:	DEFB	0		; SERIAL PRINTER BUFFER COUNT
CRTMSK:	DEFS	1		; TRANSMIT OUT FLAG

; END OF 802FDATA.MAC
