	.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$$

