; 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