.Z80 ;********************************************************************* ;********************************************************************* ;********************************************************************* ;*** **** ;*** ****** * * ****** ******* ****** * * ******* **** ;*** * * * * * * * * * **** ;*** ***** * ***** * ****** * * **** ;*** * * * * * * * * **** ;*** ****** * ****** * ****** * * * **** ;*** **** ;********************************************************************* ;********************************************************************* ;********************************************************************* ; Warning: This is the user interface area and do ; not alter any spaces in SYSTEXTP.MAC!!! PAGE ;$$SYSTEM$$ ;$$HARDWARE TYPE EQUATE$$ T800 EQU 12 T803 EQU 13 T803H EQU 14 TPC EQU 13 ;$$HARDWARE TYPE EQUATE$$ ;$$HARDWARE TYPE SELECTION$$ IF TS800 HTYPE EQU T800 USRPROM EQU 04 ENDIF IF TS803 HTYPE EQU T803 USRPROM EQU 04 ENDIF IF TS803H HTYPE EQU T803H USRPROM EQU 05 ENDIF IF TPCI HTYPE EQU TPC USRPROM EQU 07 ENDIF ;$$HARDWARE TYPE SELECTION$$ ; ; O P E R A T I N G S Y S T E M T Y P E ; ;$$OPTYPE EQUATE$$ SUCPM EQU 1 MUCPM EQU 2 ;$$OPTYPE EQUATE$$ ;$$OPTYPE SELECTION$$ IF STDCPM OTYPE EQU SUCPM ENDIF IF USRCPM OTYPE EQU MUCPM ENDIF ;$$OPTYPE SELECTION$$ ; ; ; I/O D R I V E R T Y P E ; ;$$DRTYPE$$ CRTDRV EQU TRUE ;CONSOLE DRIVER TTYDRV EQU TRUE ;TTY DEVICE DRIVER ETXDRV EQU TRUE ;ETX/ACK PRINTER DRIVER XONDRV EQU TRUE ;XON/XOFF PRINTER DRIVER IF USRCPM LPTDRV EQU TRUE ;SERVICE PROCESSOR PRINTER DRIVER ELSE LPTDRV EQU FALSE ENDIF IF NOT ETXDRV ETXOUT EQU 0 ETXOST EQU 0 ENDIF IF NOT XONDRV XONOUT EQU 0 XONOST EQU 0 ENDIF IF NOT LPTDRV LPTOUT EQU 0 LPTOST EQU 0 ENDIF ;$$DRTYPE$$ ; ; ; I/O P O R T A D D R E S S ; ;$$PORTAD$$ KBDDP EQU 30H ;DART channel A data port(Keyboard) KBDCP EQU 32H ;DART channel A control port PRNTDP EQU 31H ;DART channel B data port(Printer) PRNTCP EQU 33H ;DART channel B control port MODMDP EQU 2FH ;USART data register MODMCP EQU 2CH ;USART control register MODRSR EQU 2DH ;Receiver Staus Register MODTSR EQU 2EH ;Transmitter Status Register ;$$PORTAD$$ ; ; ; S T I P O R T A D D R E S S ; ;$$STIADD$$ SCR EQU 20H ; SYNC CHAR REG TDDR EQU 20H ; DATA REG FOR TIMER D TCDR EQU 20H ; DATA REG FOR TIMER C AER EQU 20H ; ACTIVE EDGE REG IERB EQU 20H ; INTERRUPT ENABLE REG FOR B IERA EQU 20H ; INTERRUPT ENABLE REG FOR A DDR EQU 20H ; DATA DIRECTION REG TCDCR EQU 20H ; CONTROL REG FOR TIMERS C & D GPIP EQU 21H ; GENERAL PURPOSE I/O INTERRUPT IPRB EQU 22H ; INTERRUPT PENDING REG B IPRA EQU 23H ; INTERRUPT PENDING REG A ISRB EQU 24H ; INTERRUPT IN-SERVICE REG B ISRA EQU 25H ; INTERRUPT IN-SERVICE REG A IMRB EQU 26H ; INTERRUPT MASK REG B IMRA EQU 27H ; INTERRUPT MASK REG A PVR EQU 28H ; POINTER/VECTOR REG TABCR EQU 29H ; CONTROL REG FOR TIMERS A & B PRTSTI EQU 2AH ; DATA REG FOR TIMER B(TBDR) MODSTI EQU 2BH ; DATA REG FOR TIMER A(TADR) ;$$STIADD$$ ; ; B A U D R A T E C O N S T A N T ; ;$$BAUDCS$$ B9600 EQU 1 B4800 EQU 2 B2400 EQU 4 B1200 EQU 8 B600 EQU 16 B300 EQU 32 B150 EQU 64 B75 EQU 128 ;$$BAUDCS$$ ;$$MASKBIT$$ ; ; M A S K B I T S T A B L E ; MASK8 EQU 11111111B MASK7 EQU 01111111B MASK6 EQU 00111111B MASK5 EQU 00011111B ;$$MASKBIT$$ ; ; B I O S J U M P T A B L E ; BIOS: JP BOOT ; Cold boot entry point JP WBOOT ; Warm boot entry point JP CONST ; Console status routine JP CONIN ; Console input JP CONOUT ; Console output JP LIST ; List device output JP PUNCH ; Punch device output JP READER ; Reader device input JP HOME ; Home drive JP SELDSK ; Select disk JP SETTRK ; Set track JP SETSEC ; Set sector JP SETDMA ; Set DMA address JP READ ; Read the disk JP WRITE ; Write the disk JP LISTST ; List device status JP SECTRN ; Sector translation JP UNUSED ;CONOST JP UNUSED ;MODIST JP UNUSED ;MODOST JP UNUSED ;DEVTAB JP UNUSED ;DEVINI JP UNUSED ;DRVTBL JP UNUSED ;MULTIO JP UNUSED ;FLUSH JP UNUSED ;MOVE JP UNUSED ;XMOVE JP UNUSED ;SELBNK JP UNUSED ;SETBNK JP UNUSED ; Last jump ; ; 37-BYTE LOCAL STACK AREA FOR ALPHA DRIVER ; GRAPHIC DRIVER ; LOCSTK EQU $ ; ; System default iobyte ; IF STDCPM IODEF: DEFB 11010101B ; For stand-alone system ENDIF IF USRCPM IODEF: DEFB 00010101B ; For multi-user system ENDIF ; HSYSTM: DEFB HTYPE ; System hardware type SSYSTM: DEFB OTYPE ; System operating system type ; MSECNT: DEFB 0 ; LSB DEFB 0 ; MSB 16-bit counter increment every 10ms ; ; ; I / O P O R T T A B L E ; ;$$IOPORT$$ IOPTAB: CON: DEFB KBDDP,KBDCP,MASK7 ; CON:=TTY: DEFB KBDDP,KBDCP,MASK7 ; CON:=CRT: DEFB PRNTDP,PRNTCP,MASK8 ; CON:=BAT: DEFB MODMDP,MODMCP,MASK8 ; CON:=UC1: RDR: DEFB PRNTDP,PRNTCP,MASK8 ; RDR:=TTY: DEFB KBDDP,KBDCP,MASK7 ; RDR:=PTR: DEFB MODMDP,MODMCP,MASK8 ; RDR:=UR1: DEFB PRNTDP,PRNTCP,MASK8 ; RDR:=UR2: PUN: DEFB PRNTDP,PRNTCP,MASK8 ; PUN:=TTY: DEFB MODMDP,MODMCP,MASK8 ; PUN:=PTP: DEFB MODMDP,MODMCP,MASK8 ; PUN:=UP1: DEFB MODMDP,MODMCP,MASK8 ; PUN:=UP2: LST: DEFB MODMDP,MODMCP,MASK8 ; LST:=TTY: DEFB MODMDP,MODMCP,MASK8 ; LST:=CRT: DEFB MODMDP,MODMCP,MASK8 ; LST:=LPT: DEFB PRNTDP,PRNTCP,MASK8 ; LST:=UL1: ;$$IOPORT$$ DRIVER: DEFW CRTOUT DCRTOUT EQU 0 DEFW CRTIN DCRTIN EQU 2 DEFW CRTST DCRTST EQU 4 DEFW CRTOST DCRTOST EQU 6 DEFW TTYOUT DTTYOUT EQU 8 DEFW TTYIN DTTYIN EQU 10 DEFW TTYST DTTYST EQU 12 DEFW TTYOST DTTYOST EQU 14 DEFW ETXOUT DETXOUT EQU 16 DEFW ETXOST DETXOST EQU 18 DEFW XONOUT DXONOUT EQU 20 DEFW XONOST DXONOST EQU 22 DEFW LIST DLIST EQU 24 DEFW READER DRDRIN EQU 26 DEFW RDRST DRDRST EQU 28 DEFW LPTOUT DLPTOUT EQU 30 DEFW LPTOST DLPTOST EQU 32 ; ; ; I / O D R I V E R T A B L E ; ;$$IODRVR$$ IF STDCPM CONOUT: CALL IODISP DEFB 0 ;CONSOLE DEVICE TYPE DEFB DCRTOUT ;CRT PROTOCOL DEVICE DEFB DCRTOUT DEFB DLIST DEFB DTTYOUT CONIN: CALL IODISP DEFB 0 DEFB DCRTIN DEFB DCRTIN DEFB DRDRIN DEFB DTTYIN CONST: CALL IODISP DEFB 0 DEFB DCRTST DEFB DCRTST DEFB DRDRST DEFB DTTYST READER: CALL IODISP DEFB 2 ;CARD READER DEVICE TYPE DEFB DTTYIN DEFB DCRTIN DEFB DTTYIN DEFB DTTYIN RDRST: CALL IODISP DEFB 2 DEFB DTTYST DEFB DCRTST DEFB DTTYST DEFB DTTYST PUNCH: CALL IODISP DEFB 4 ;CARD PUNCHER DEVICE TYPE DEFB DTTYOUT DEFB DTTYOUT DEFB DETXOUT DEFB DXONOUT LIST: CALL IODISP DEFB 6 ;LIST DEVICE TYPE DEFB DTTYOUT ;DTR PROTOCOL DEVICE TYPE(MODEM PORT) DEFB DXONOUT ;XON/XOFF PROTOCOL DEVICE TYPE DEFB DETXOUT ;ETX/ACK PROTOCOL DEVICE TYPE DEFB DTTYOUT ;DTR PROTOCOL DEVICE TYPE(PRINTER PORT) LISTST: CALL IODISP DEFB 6 DEFB DTTYOST DEFB DXONOST DEFB DETXOST DEFB DTTYOST ; ELSE ; ; * For satellite user stations ; CONOUT: CALL IODISP DEFB 0 ;CONSOLE DEVICE TYPE DEFB DCRTOUT ;CRT PROTOCOL DEVICE DEFB DCRTOUT DEFB DLIST DEFB DTTYOUT CONIN: CALL IODISP DEFB 0 DEFB DCRTIN DEFB DCRTIN DEFB DRDRIN DEFB DTTYIN CONST: CALL IODISP DEFB 0 DEFB DCRTST DEFB DCRTST DEFB DRDRST DEFB DTTYST READER: CALL IODISP DEFB 2 ;CARD READER DEVICE TYPE DEFB DTTYIN DEFB DCRTIN DEFB DTTYIN DEFB DTTYIN RDRST: CALL IODISP DEFB 2 DEFB DTTYST DEFB DCRTST DEFB DTTYST DEFB DTTYST PUNCH: CALL IODISP DEFB 4 ;CARD PUNCHER DEVICE TYPE DEFB DTTYOUT ;DTR PROTOCOL DEVICE(PRINTER PORT) DEFB DTTYOUT ;DTR PROTOCOL DEVICE(MODEM PORT) DEFB DETXOUT ;ETX/ACK PROTOCOL DEVICE DEFB DXONOUT ;XON/XOUT PROTOCOL DEVICE LIST: CALL IODISP DEFB 6 ;LIST DEVICE TYPE DEFB DLPTOUT ;OUTPUT TO SERVICE PROCESSOR DEFB DLPTOUT ;PRINTER DEVICE DEFB DLPTOUT DEFB DTTYOUT ;LOCAL DTR PROTOCOL DEVICE LISTST: CALL IODISP DEFB 6 DEFB DLPTOST DEFB DLPTOST DEFB DLPTOST DEFB DTTYOST ENDIF ;$$IODRVR$$ ; ; ; D A R T C O N T R O L T A B L E ; ;$$DARTAB$$ KBDTAB: DEFB KBDCP ; DART CHANNEL A FOR KEYBOARD PORT DEFB 10 DEFB 00011000B ; RESET CHANNEL DEFB 00011000B ; ANOTHER FOR SAFETY DEFB 00010100B ; EXTERNAL STAT RESET, W WRC4: DEFB 00001100B ; BAUD RATE MULT DEFB 5 ; PT TO WR5 WRC5: DEFB 11101010B ; TX 8 BITS TX ENABLE DEFB 1 ; PT TO WR1 WRC1: DEFB 00011000B ; ENABLE RCV INT. DEFB 3 ; PT TO WR3 WRC3: DEFB 11100001B ; RX 8 BITS RX ENABLE ; PRNTAB: DEFB PRNTCP ; DART CHANNEL B FOR PRINTER PORT DEFB 12 WRP0: DEFB 00011000B ; RESET CHANNEL DEFB 00011000B ; ANOTHER FOR SAFETY DEFB 00010010B ; WRITE TO WR #2 DEFB KBDIVL ; LOW BYTE OF DART INTERRUPT VECTOR DEFB 00010100B ; EXTERNAL STAT RESET, W WRP4: DEFB 01001100B ; BAUD RATE MULT DEFB 5 ; PT TO WR5 WRP5: DEFB 11101010B ; TX 8 BITS TX ENABLE DEFB 1 ; PT TO WR1 WRP1: DEFB 00000100B ; STATUS AFFECT VECTOR DEFB 3 ; PT TO WR3 WRP3: DEFB 11100001B ; RX 8 BITS RX ENABLE ; UARTCW: DEFB 10011000B ; UART CONTROL WORD ;$$DARTAB$$ ; ; B A U D R A T E T A B L E ; ;$$BAUDRT$$ PBAUD: DEFB 8 ; UNINITIALIZED PRINTER BAUD RATE MBAUD: DEFB 0 ; UNINITIALIZED MODEM BAUD RATE ;$$BAUDRT$$ ; ; M O U S E F L A G ; HAVMSC: DEFB 0 ; 0 = MOUSE-OFF, FF = MOUSE-ON ; ; A U T O L O A D ; ;$$AUTOLD$$ ;$$FLAG=0 IF NO AUTOLOAD, FLAG=1 IF AUTOLOAD AT COLDBOOT$$ AUTOFLG: DEFB 0 ;$$STORAGE FOR AUTOLOAD FILENAME PROVIDED BY 30 BYTES$$ ;$$WARNING: DO NOT DELETE ANY BLANK SPACES$$ COLDBEG: IF STDCPM DEFB 'AUTOLOAD ' ENDIF IF USRCPM DEFB 'B:AUTOLOAD ' ENDIF ; DEFAULT AUTOLOAD FILENAME ; ; STACK AREA FOR PRINT BUFFER ; 14 LEVEL OF STACK. ; PBUF_STACK EQU $ ; COLDEND: DEFB 0 ;$$AUTOLD$$ ; ; R E S E R V E D S P A C E ; ; Warning: Reserved space must be ended with the address with xxxF. ; DEFS 33 ; RESERVED SPACE FOR FUTURE USE ; ; STACK AREA FOR MODEM RCV. INTERRUPT. ; 16 LEVELS OF STACK. CURRENT ROUTINE USED 8 LEVELS ; THE REMAINDER IS FOR USER ROUTINES. ; MRX_STACK EQU $-2 ; ;$$END OF SYSTEXTP$$