	TITLE	'XSTAM transmit module vers 1.304'
;
;********************************
;*				*
;*	   BSTAM v4.3		*
;*	    TRANSMIT		*
;*	  LOCAL REV 04		*
;*				*
;********************************
;
; MODIFICATION HISTORY
;=====================
; 
; 10/Jun/82 Added error count to abort after a number
;	  of error messages.
; 06/Aug/81 INCORPORATED K'S FIX TO BUG IN LOCPRT,
;	  MADE CONSOLE ABORT ASSEMBLE SIMPLE
;	  RETURN IF QUIET MODE IS TRUE, BROUGHT
;	  LOCAL REV NUMBER UP TO 3 (R)
; 04/Aug/81 FIXED BUFFER EQUATES	(R)
; 31/Jul/81 ADDED QUIET MODE,CONDITIONALS FOR NOT SENDING
;	  COM FILES, SYS FILES, TAGGED FILES, AND FILES
;	  WITH NAMES ENDING IN "#"	(R)
;
	ORG	0100H
;
FALSE	EQU	0
TRUE	EQU	NOT FALSE
;
QUIET	EQU	TRUE 	;TRUE ASSEMBLES TQ.COM
NOCOMS	EQU	TRUE	;TRUE SUPPRESSES COM FILES
NOTAGS	EQU	TRUE	;TRUE SUPPRESSES TAG2 FILES
NOSYS	EQU	TRUE	;TRUE SUPPRESSES SYS FILES
NOPNDS	EQU	TRUE	;TRUE SUPPRESSES FILES
			;ENDING IN "#"
;
BDOS	EQU	5
DBUF	EQU	80H
DFCB	EQU	5CH
EXT	EQU	0CH
SPEED	EQU	6	;CPU Speed in MHz
MAXDROP	EQU	10	;Maximum number of line dropouts
CARSEC	EQU	5	;Carrier timeout in seconds
MAXERR	EQU	20	;Number of error messages before
			; quiting, reset after each good block
;
CR	EQU	13
LF	EQU	10
;
VDP80	EQU	TRUE	;True for RCPM system
VDATA	EQU	81H
VSTAT	EQU	80H
VMASK	EQU	04H
;
	PAGE
;
; PRINT MACRO FOR MESSAGES
; TO BE SUPPRESSED IN QUIET MODE
;
$-MACRO 		;TURN ON SUPPRESSION
;
PRINT	MACRO	STRING
	LOCAL	OVRSTR,MARK
	JMP	OVRSTR
MARK:	DB	CR,LF,STRING
OVRSTR: LXI	D,MARK
;
	IF	QUIET
	CALL	LOCPRT	;MAYBE PRINT LOCAL ONLY
	ELSE
	MVI	C,9	;NON-QUIET, USE BDOS
	CALL	BDOS
	ENDIF
;
	ENDM
;
; PRINT MACRO FOR MESSAGES ALWAYS PRINTED
;
APRINT	MACRO	STRING
	LOCAL	OVRSTR,MARK
	JMP	OVRSTR
MARK:	DB	CR,LF,STRING
OVRSTR: LXI	D,MARK
	MVI	C,9
	CALL	BDOS
	ENDM
;
;
	PAGE
;
; USER AREA
; NOTE: THE USER AREA SHOULD BE SILENT
; WHEN ASSEMBLED FOR TQ.COM
;
;
USER	EQU	$	;DEFINE USER AREA
;
	JMP	ENTRY
;****************************************************************
;*								*
;*	   XSTAM Interface routines for 2651 UART.		*
;*		on Godbout System Support 1 Board		*
;*								*
;****************************************************************
; 
;************************************************
;*						*
;*	     2651 Baud Rate Table		*
;*						*
;************************************************
;
B50	EQU	0000B			;50 bps
B75	EQU	0001B			;75 bps
B110	EQU	0010B			;110 bps
B134	EQU	0011B			;134.5 bps
B150	EQU	0100B			;150 bps
B300	EQU	0101B			;300 bps
B600	EQU	0110B			;600 bps
B1200	EQU	0111B			;1200 bps
B1800	EQU	1000B			;1800 bps
B2000	EQU	1001B			;2000 bps
B2400	EQU	1010B			;2400 bps
B3600	EQU	1011B			;3600 bps
B4800	EQU	1100B			;4800 bps
B7200	EQU	1101B			;7200 bps
B9600	EQU	1110B			;9600 bps
B19200	EQU	1111B			;19200 bps
;
;************************************************
;*						*
;*		2651 Equates			*
;*						*
;************************************************
;
BASE	EQU	5CH			;UART base register
DATA	EQU	BASE+0			;Data port
MSTATUS	EQU	BASE+1			;Status port
MODE	EQU	BASE+2			;Mode register
CMMD	EQU	BASE+3			;Command register
USERP	EQU	BASE+7			;User select port
UNUM	EQU	6			;Modem user number
MODE1	EQU	01101110B		;Asynch,16x,8 data bits,
					; no parity, even, 1 stop bit
MODE2	EQU	01110000B + B300	;Baud rate
CMMDB	EQU	00100111B		;Tx enabled, RX enabled, no break
					; DTR high, RTS high
ERESET	EQU	CMMDB+10H		;Error reset
GBDTR	EQU	10000000B		;CCITT 108
GBCD	EQU	01000000B		;Carrier detect
;
SYSSPT	EQU	TRUE			;True for Godbout system support
INTER3	EQU	NOT SYSSPT		;True for Godbout Interfacer 3
;
UINITV:
	JMP	INITIU		;UART/USART INITIALATION ENTRY POINT
MSTSV:
	JMP	INSPRU		;STATUS PORT READ ENTRY POINT
ERRSET:
	JMP	ERRSTU		;UART/USART ERROR RESET ENTRY POINT
INPORT:
	JMP	INPRTU		;READ DATA PORT ENTRY POINT
OUTPORT:
	JMP	OUTPRU		;WRITE DATA PORT ENTRY POINT
;
; NEW VECTOR FOR LOCAL CONSOLE
; OUTPUT: PRINT CHAR IN C, CAN
; MODIFY ANY REGISTERS
;
LCOV:	JMP	LCO
;
INITIU:
	CALL	SIGNON		;Announce version

	if	inter3
	MVI	A,UNUM
	OUT	USERP		;Select UART
	endif	;inter3

	MVI	A,MODE1		;Get first mode word
	OUT	MODE
	MVI	A,MODE2		;Get second mode word
	OUT	MODE
	MVI	A,CMMDB		;Get command byte
	OUT	CMMD
	RET			;Retuen to XSTAM
;
INSPRU:
RDMSTS:

	if	inter3
	MVI	A,UNUM
	OUT	USERP		;Select UART
	endif	;inter3

	IN	MSTATUS		;GET MODEM STATUS
	ANI	GBCD		;GOT A CARRIER?
	JNZ	CARROK		;YES, GO ON WITH TESTS
	LDA	DROPOUT		;Get dropout count
	ADI	1		;Increment it
	CPI	MAXDROP		;Bad line?
	JZ	NOCAR		;Yes, reset system
	STA	DROPOUT		;Save for later
	PUSH	B		;PRESERVE BC SO WE CAN USE IT
	MVI	B,CARSEC*10	;SETUP TIMEOUT
CARLP:
	CALL	DELAY		;WAIT .1 SECONDS
	IN	MSTATUS		;GET MODEM STATUS
	ANI	GBCD		;HAS CARRIER RETURNED?
	MOV	A,B		;PRESERVE COUNTDOWN VALUE
	POP	B		;FIX STACK IN CASE ALL IS OK
	JNZ	CARROK		;GOT CARRIER, CONTINUE ON
	DCR	A		;COUNT TIME DOWN
	STC			;IN CASE THIS IS THE END OF TIME
	PUSH	B		;PRESERVE B
	MOV	B,A		;GET COUNTER VALUE IN B
	JNZ	CARLP		;KEEP CHECKING
	POP	B
NOCAR:
	LXI	D,LOST		;Sending anything to conosle
	MVI	C,9		; will let BYE grab control if
	CALL	5		; carrier lost totally else
	JMP	0		; back to CP/M if dropout max
				; was reached.
;
LOST:
	DB	CR,LF,'    ++CARRIER LOST++'
	DB	CR,LF,'The modem is now '
	DB	'DISCONNECTED',CR,LF,'$'
;
CARROK:
	if	inter3
	MVI	A,UNUM
	OUT	USERP		;Select UART
	endif	;inter3

	IN	MSTATUS		;Get status
	ORI	4		;Force Tx empty high
	RET
;
DELAY:
	PUSH	B		;Delay 0.1 second
	LXI	B,SPEED*4167 	;TIMING CONSTANT
DELAY1:
	DCX	B
	MOV	A,B
	ORA	C
	JNZ	DELAY1
	POP	B
	RET
;
ERRSTU:
	if	inter3
	MVI	A,UNUM
	OUT	USERP		;Select UART
	endif	;inter3

	MVI	A,ERESET	;Reset error flags in 2651
	OUT	CMMD
	MVI	A,CMMDB		;Restore normal operation
	OUT	CMMD
	RET
;
INPRTU:
	if	inter3
	MVI	A,UNUM
	OUT	USERP		;Select UART
	endif	;inter3

	IN	DATA		;Get data
	RET
;
OUTPRU:
	if	inter3
	PUSH	PSW
	MVI	A,UNUM
	OUT	USERP		;Select UART
	POP	PSW
	endif	;inter3

	OUT	DATA		;Send data
	RET
;
;
SIGNON:
	PUSH	B		;Save  the environment
	PUSH	D
	PUSH	H
	LXI	D,MESSGE
	MVI	C,9		;BDOS display string command
	CALL	BDOS		;Announce version to user
	POP	H		;Restore the enviroment
	POP	D
	POP	B
	RET
;
hexnum	macro	num
	if	(num/16) > 9 	
	db	(num/16 and 0fh) + 'A' - 10
	else
	db	(num/16 and 0fh) + '0'
	endif
	if	(num and 0fh) > 9
	db	(num and 0fh) + 'A' - 10
	else
	db	(num and 0fh) + '0'
	endif
	endm

MESSGE:
	if	not quiet
	DB	CR,LF,LF
	DB	'Version 1.304, March 29, 1982 by Software Tools',CR,LF
	DB	'2651 UART on '

	if	sysspt
	DB	'Godbout System Support 1 Board'
	endif	;sysspt

	if	inter3
	DB	'Godbout Interfacer 3 Board'
	endif	;sysspt

	DB	CR,LF
	DB	'UART Addressed at ' 
	hexnum	%BASE
	DB	'H, 300 bps, no parity.',CR,LF

	if	inter3
	DB	'UART Relative User '
	hexnum	%UNUM
	DB	',',CR,LF
	endif	;inter3
	endif	;not quite

	DB	'$'
;
; NEW HANDLER FOR LOCAL-CONSOLE
; ONLY.  PRINT REG C, CAN USE
; ANY REGISTER
;
LCO:
	if	vdp80
	IN	VSTAT
	ANI	VMASK
	JZ	LCO
	MOV	A,C
	OUT	VDATA
	else
	LHLD	1
	LXI	D,9	;Offset to COUT
	DAD	D
	PCHL
	endif	;vdp80

	RET		;NULL FOR NOW
;
; END OF USER AREA
;
	PAGE
	ORG	USER+300	;ALLOW 300 BYTES USER AREA
;
; BSTAM INITIAL ENTRY POINT
;
ENTRY:
	LXI	H,0
	DAD	SP
	SHLD	STACK
	LXI	SP,STACK
	JMP	BYSTAK
;
	DB	0,0,0,0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0,0
	LXI	H,0
	DAD	SP
	SHLD	STACK
	LXI	SP,STACK
	JMP	BYSTAK
;
STACK:	DW	0
;
BYSTAK:
	APRINT	'XSTAM rev 1.304$'
	APRINT	'Transmit Ready$'
	APRINT	'$'
;
PASTMS:
	LDA	DBUF
	CPI	0
	JNZ	GOTFIL
	APRINT	'**** NO FILE NAME - PROGRAM ABORTING ****$'
	JMP	EXIT
;
GOTFIL:
	JMP	START
;
BLDMAP:
	SHLD	NAMSTO
	LXI	H,DBUF
	MVI	C,11H
	LXI	D,DFCB
	LDAX	D
	STA	SDRIVE
	JMP	SRCH2
;
SRCHLP:
	LXI	H,DBUF
	MVI	C,12H
	LXI	D,DFCB
SRCH2:
	CALL	5
	LXI	H,DBUF
	CPI	0FFH
	RZ
	ANI	3
	RLC
	RLC
	RLC
	RLC
	RLC
	ADD	L
	MOV	L,A
;
	IF	NOTAGS	;CODE TO SKIP TAGGED FILES
	INX	H
	INX	H	;POINT TO F2 BYTE
	MOV	A,M	;LOAD IT
	DCX	H	;POINT BACK
	DCX	H
	ORA	A	;SET FLAGS ON A
	JM	SRCHLP	;AND SKIP IF ATR SET
	ENDIF		;NOTAGS
;
	IF	NOSYS	;CODE TO SKIP SYS FILES
	XCHG		;PUT NAME PTR IN DE
	LXI	H,10	;OFFSET TO T2 BYTE
	DAD	D
	MOV	A,M	;PICK UP T2
	XCHG		;RESTORE POINTER
	ORA	A	;SET FLAGS ON A
	JM	SRCHLP	;SKIP IF SYS ATR SET
	ENDIF		;NOSYS
;
	IF	NOPNDS	;CODE TO SKIP "#" FILES
	XCHG		;MOVE PTR TO DE
	LXI	H,11	;OFFSET TO LAST FT CHAR
	DAD	D
	MOV	A,M	;LOAD IT
	ANI	7FH	;KILL ANY ATR BIT
	XCHG		;RESTORE POINTER
	CPI	'#'	;GOT A # FILE?
	JZ	SRCHLP	;SKIP IT IF SO
	ENDIF		;NOPNDS
;
	IF	NOCOMS	;CODE TO SKIP COM FILES
	XCHG		;MOVE POINTER TO DE
	LXI	H,9	;OFFSET TO FIRST FT CHAR
	DAD	D
	MOV	A,M	;PICK UP FIRST
	ANI	7FH	;KILL ATR BIT
	CPI	'C'	;CHAR 1 OF 'COM'
	JNZ	FILOK	;JMP, NOT COM
	INX	H	;GOT C, CHECK FOR 'O'
	MOV	A,M	;PICK UP 2ND FILETYPE CHAR
	ANI	7FH	;KILL ATTRIBUTE
	CPI	'O'
	JNZ	FILOK	;NO COM, FILE OK TO SEND
	INX	H	;GOT 'CO', CHECK FOR 'M'
	MOV	A,M
	ANI	7FH	;STRIP ATR
	CPI	'M'	;NOW...HAVE WE GOT 'COM'?
	JZ	SRCHLP	;SKIP IF SO
FILOK:
	XCHG		;NOPE, RESTORE NAME PTR
	ENDIF		;NOCOMS
;
	LDA	SDRIVE
	MOV	M,A
	CALL	MOVNAM
	JMP	SRCHLP
MOVNAM:
	MVI	B,12
	XCHG
	LHLD	NAMSTO
	XCHG
MOVLP:
	MOV	A,M
	ANI	7FH	;KILL ANY ATTRIBUTES
	STAX	D
	INX	H
	INX	D
	DCR	B
	JNZ	MOVLP
	XCHG
	SHLD	NAMSTO
	RET
;
SDRIVE: DB	0
NAMSTO: DW	0
;
START:
	LXI	H,BUFFER
	CALL	BLDMAP
	LXI	H,BUFFER
	SHLD	NAMPTR
MORCHK:
	MVI	A,0
	STA	FILFLG
	CALL	INI
	LDA	FILFLG
	CPI	1
	JZ	NOMORE
MAIN:
	LDA	FILFLG
	SUI	0
	JNZ	NOMORE
	CALL	SNDFIL
	JMP	MAIN
;
NOMORE:
	CALL	CLNUP
EXIT:
	LDA	FILFLG
	SUI	2
	JZ	MORCHK
	LHLD	STACK
	SPHL
	RET
;
; LOCAL PRINT SUBROUTINE...EMULATES BDOS
; FUNCTION 9 ON LOCAL CONSOLE WHEN 'QUIET'
; CONDITIONAL TRUE...USES LOCAL CO VECTOR
; IN USER AREA (WHICH CAN SIMPLY DO RET
; TO BE TRULY QUIET).
;
	IF	QUIET
LOCPRT:
	LDAX	D	;PICK UP CHAR
	INX	D	;POINT PAST IT
	CPI	'$'	;GOT TERMINATOR?
	RZ		;WE'RE DONE IF SO
	MOV	C,A	;NOT TERM, OUTPUT IT
	PUSH	D	;SAVE STRING PTR
	CALL	LCOV	;SEND IT
	POP	D	;GET STR PTR BACK
	JMP	LOCPRT	;PRINT REST OF STRING
	ENDIF		;QUIET
;
INI:
	MVI	A,0
	STA	L12A9
	STA	L1522
	STA	FILFLG
	STA	ERRCNT	;Reset error count
	STA	L12B7
	STA	ERRHIT	;Reset error count
	MVI	A,1
	STA	L1510
	CALL	UINITV
	PRINT	'**** CONNECTING TO REMOTE CPU ****$'
	JMP	L079A
;
L050E:
	SHLD	L0781
	SHLD	L0785
	XCHG
	SHLD	L0789
	MOV	H,B
	MOV	L,C
	SHLD	L0787
	STA	L078B
	MVI	A,0
	LHLD	L0789
	MOV	M,A
	INX	H
	INX	H
	INX	H
	MOV	M,A
	DCX	H
	MVI	A,0FFH
	MOV	M,A
	DCX	H
	MVI	A,0
	MOV	M,A
	INX	H
	INX	H
	INX	H
	MOV	M,A
	INX	H
	MVI	A,0FFH
	MOV	M,A
	MVI	A,1
	STA	L0784
	STA	L0783
	CALL	ERRSET		;Reset UART errors
L0545:
	LDA	L0784
	SUI	1
	JNZ	L0780
	LHLD	L0787
	MOV	A,M
	LHLD	L0789
	INX	H
	INX	H
	INX	H
	CMP	M
	JNZ	L0697
	MVI	A,0
	STA	L0784
	JMP	L05DB
MODOUT:
	STA	L05DA
	SHLD	L05D5
	XCHG
	SHLD	L05D7
MODLP:
	CALL	MSTSV
	STA	STATUS
	ANI	1
	JZ	MODLP
	LDA	STATUS
	ANI	4
	JZ	MODLP
	LHLD	L05D7
	MOV	A,M
	CALL	OUTPORT
L0587:
	CALL	MSTSV
	ANI	4
	JZ	L0587
	LDA	L05DA
	CPI	1
	RNZ
	LHLD	L05D5
	INX	H
	INX	H
	MOV	D,M
	INX	H
	INX	H
	INX	H
	MOV	E,M
	LHLD	L05D7
	MOV	A,M
	XCHG
	JMP	L05C6
;
CRCADD:
	XRA	H
	MOV	B,A
	RLC
	RLC
	RLC
	RLC
	XRA	B
	MOV	C,A
	ANI	0F0H
	MOV	D,A
	ADD	C
	MOV	E,A
	MOV	A,D
	ACI	0
	XRA	L
	MOV	H,A
	MOV	A,B
	ANI	0F0H
	MOV	B,A
	XRA	E
	MOV	L,A
	MOV	A,B
	RRC
	RRC
	RRC
	XRA	H
	MOV	H,A
	RET
;
L05C6:
	CALL	CRCADD
	XCHG
	LHLD	L05D5
	INX	H
	INX	H
	MOV	M,D
	INX	H
	INX	H
	INX	H
	MOV	M,E
	RET
;
L05D5:	DW	0
L05D7:	DW	0
STATUS: DB	0
L05DA:	DB	0
;
L05DB:
	LHLD	L0789
	XCHG
	LHLD	L078F
	XCHG
	MVI	A,1
	CALL	MODOUT
	CALL	MSTSV
	ANI	2
	JZ	L05FA
	LHLD	L0789
	MVI	A,2
	ORA	M
	MOV	M,A
	JMP	L077D
;
L05FA:
	LDA	L078B
	CPI	1
	JZ	L0612
	LHLD	L0789
	XCHG
	LHLD	L0792
	XCHG
	MVI	A,1
	CALL	MODOUT
	JMP	L063E
;
L0612:
	LHLD	NAMPTR
	INX	H
	MOV	A,M
	CPI	0
	JZ	NONAMS
	MVI	A,2
	STA	FILFLG
	LHLD	L0789
	XCHG
	LHLD	L078C
	XCHG
	MVI	A,1
	CALL	MODOUT
	JMP	L063E
;
NONAMS:
	LHLD	L0789
	XCHG
	LHLD	L0795
	XCHG
	MVI	A,1
	CALL	MODOUT
L063E:
	CALL	MSTSV
	ANI	2
	JZ	L0650
	LHLD	L0789
	MVI	A,2
	ORA	M
	MOV	M,A
	JMP	L077D
;
L0650:
	LHLD	L0789
	INX	H
	INX	H
	SHLD	L0798
	LHLD	L0789
	XCHG
	LHLD	L0798
	XCHG
	MVI	A,0
	CALL	MODOUT
	CALL	MSTSV
	ANI	2
	JNZ	L068D
	LHLD	L0789
	INX	H
	INX	H
	INX	H
	INX	H
	INX	H
	SHLD	L0798
	LHLD	L0789
	XCHG
	LHLD	L0798
	XCHG
	MVI	A,0
	CALL	MODOUT
	CALL	MSTSV
	ANI	2
	JZ	L077D
L068D:
	LHLD	L0789
	MVI	A,2
	ORA	M
	MOV	M,A
	JMP	L077D
;
L0697:
	CALL	MSTSV
	ANI	2
	JZ	L06AE
	LHLD	L0789
	MVI	A,2
	ORA	M
	MOV	M,A
	MVI	A,0
	STA	L0784
	JMP	L077D
;
L06AE:
	LDA	L0783
	SUI	1
	JNZ	L071E
	LHLD	L0789
	INX	H
	INX	H
	INX	H
	MOV	A,M
	INR	A
	MOV	M,A
	LHLD	L0789
	XCHG
	LHLD	L0785
	XCHG
	MVI	A,1
	CALL	MODOUT
	LHLD	L0785
	INX	H
	SHLD	L0785
	CALL	MSTSV
	ANI	2
	JZ	L06EA
	LHLD	L0789
	MVI	A,2
	ORA	M
	MOV	M,A
	MVI	A,0
	STA	L0784
	JMP	L077D
;
L06EA:
	LHLD	L0789
	INX	H
	INX	H
	INX	H
	MOV	A,M
	INR	A
	MOV	M,A
	LHLD	L0789
	XCHG
	LHLD	L0785
	XCHG
	MVI	A,1
	CALL	MODOUT
	LHLD	L0785
	INX	H
	SHLD	L0785
	DCX	H
	MVI	A,2
	CMP	M
	JNZ	L0716
	MVI	A,0
	STA	L0783
	JMP	L077D
;
L0716:
	MVI	A,0
	STA	L0784
	JMP	L077D
;
L071E:
	LHLD	L0789
	INX	H
	INX	H
	INX	H
	MOV	A,M
	INR	A
	MOV	M,A
	LHLD	L0789
	XCHG
	LHLD	L0785
	XCHG
	MVI	A,1
	CALL	MODOUT
	LHLD	L0785
	INX	H
	SHLD	L0785
	CALL	MSTSV
	ANI	2
	JZ	L0752
	LHLD	L0789
	MVI	A,2
	ORA	M
	MOV	M,A
	MVI	A,0
	STA	L0784
	JMP	L077D
;
L0752:
	LHLD	L0785
	DCX	H
	MVI	A,10H
	CMP	M
	JNZ	L077D
	LHLD	L0789
	XCHG
	LHLD	L078F
	XCHG
	MVI	A,1
	CALL	MODOUT
	CALL	MSTSV
	ANI	2
	JZ	L077D
	LHLD	L0789
	MVI	A,2
	ORA	M
	MOV	M,A
	MVI	A,0
	STA	L0784
L077D:
	JMP	L0545
;
L0780:
	RET
;
L0781:	DW	0
L0783:	DB	0
L0784:	DB	0
L0785:	DW	0
L0787:	DW	0
L0789:	DW	0
L078B:	DB	0
L078C:	DW	L078E
L078E:	DB	1BH
L078F:	DW	L0791
L0791:	DB	10H
L0792:	DW	L0794
L0794:	DB	3
L0795:	DW	L0797
L0797:	DB	17H
L0798:	DW	0
;
L079A:
	LXI	H,L1511
	LXI	D,STSTOR
	LXI	B,L12B4
	MVI	A,0
	CALL	L050E
L07A8:
	LDA	L1510
	SUI	1
	JNZ	L0CC8
	LDA	STSTOR
	CPI	0
	JZ	L0989
	JMP	ERRORS
;
ERRCHK:
	SHLD	STSPTR
	MVI	A,80H
	ANA	M
	JZ	PARCHK
	PRINT	'**** FRAMING ERROR ****$'
PARCHK:
	LHLD	STSPTR
	MVI	A,40H
	ANA	M
	JZ	OVRCHK
	PRINT	'**** PARITY ERROR ****$'
OVRCHK:
	LHLD	STSPTR
	MVI	A,20H
	ANA	M
	JZ	BCCHCK
	PRINT	'**** OVERRUN ERROR ****$'
BCCHCK:
	LHLD	STSPTR
	MVI	A,10H
	ANA	M
	JZ	LOSCHK
	PRINT	'**** BCC ERROR ****$'
LOSCHK:
	LHLD	STSPTR
	MVI	A,8
	ANA	M
	JZ	TIMCHK
	PRINT	'**** LOST DATA ERROR ****$'
TIMCHK:
	LHLD	STSPTR
	MVI	A,4
	ANA	M
	JZ	EXCHEK
	PRINT	'**** TIME OUT ERROR ****$'
EXCHEK:
	LHLD	STSPTR
	MVI	A,2
	ANA	M
	JZ	LENCHK
	PRINT	'**** EXCEPTION ERROR ****$'
LENCHK:
	LHLD	STSPTR
	MVI	A,1
	ANA	M
	JZ	HITS
	PRINT	'**** LENGTH ERROR ****$'
;
HITS:
	LDA	ERRHIT
	INR	A
	STA	ERRHIT
	CPI	MAXERR
	RNZ
	PRINT	'**** ABORTED, TOO MANY ERRORS ****$'
	XRA	A
	STA	L12A8
	JMP	EXIT
;
STSPTR: DW	0
;
ERRORS:
	LXI	H,STSTOR
	CALL	ERRCHK
	JMP	L0986
;
STOPCK: 
	MVI	C,11
	CALL	5
	ORA	A	;Character at console?
	RZ		;No
	MVI	C,1	;Yes
	CALL	5
	CPI	3	;Abort (control-c)?
	RNZ		;No
	PRINT	'**** ABORTED BY USER ****$'
	XRA	A
	STA	L12A8
	JMP	EXIT
;
L0986:
	CALL	STOPCK
L0989:
	JMP	L0C38
;
L098C:
	SHLD	L0C33
	XCHG
	SHLD	L0C36
	STA	L0C35
	LHLD	L0C33
	SHLD	L0C31
	MVI	A,1
	STA	L0C2C
	STA	L0C2D
	STA	L0C2F
	MVI	A,0
	STA	L0C2E
	LHLD	L0C36
	MOV	M,A
	INX	H
	MOV	M,A
	INX	H
	MVI	A,0FFH
	MOV	M,A
	INX	H
	MVI	A,0
	MOV	M,A
	INX	H
	MOV	M,A
	INX	H
	MVI	A,0FFH
	MOV	M,A
L09C0:
	LDA	L0C2F
	SUI	1
	JNZ	L0C2B
	LHLD	L0C36
	INX	H
	INX	H
	INX	H
	LDA	L0C35
	CMP	M
	JNZ	L0A0A
	MVI	A,0
	STA	L0C2F
	LHLD	L0C31
	DCX	H
	DCX	H
	MOV	A,M
	CPI	10H
	JNZ	L0A00
	INX	H
	MOV	A,M
	CPI	6
	JZ	L0C28
	CPI	15H
	JZ	L0C28
	CPI	5
	JZ	L0C28
	CPI	3
	JZ	L0C28
	CPI	17H
	JZ	L0C28
L0A00:
	LHLD	L0C36
	MVI	A,1
	ORA	M
	MOV	M,A
	JMP	L0C28
;
L0A0A:
	LHLD	L0C36
	MVI	A,0
	MOV	M,A
	JMP	L0AAF
;
GFMODM:
	SHLD	HLSAVE
	STA	ASAVE
	LHLD	L0AAB
	SHLD	L0AA9
L0A1F:
	CALL	MSTSV
	STA	L0AAE
	LDA	L0AAE
	ANI	10H
	JZ	L0A38
	CALL	ERRSET
	LHLD	HLSAVE
	MVI	A,20H
	ORA	M
	MOV	M,A
	RET
;
L0A38:
	LDA	L0AAE
	ANI	8
	JZ	L0A4B
	CALL	ERRSET
	LHLD	HLSAVE
	MVI	A,40H
	ORA	M
	MOV	M,A
	RET
;
L0A4B:
	LDA	L0AAE
	ANI	2
	JZ	L0A85
	CALL	INPORT
	STA	L0AAE
	LDA	ASAVE
	CPI	1
	JZ	L0A65
	LDA	L0AAE
	RET
;
L0A65:
	LHLD	HLSAVE
	INX	H
	INX	H
	MOV	D,M
	INX	H
	INX	H
	INX	H
	MOV	E,M
	LDA	L0AAE
	XCHG
	CALL	CRCADD
	XCHG
	LHLD	HLSAVE
	INX	H
	INX	H
	MOV	M,D
	INX	H
	INX	H
	INX	H
	MOV	M,E
	LDA	L0AAE
	RET
;
L0A85:
	LHLD	L0AA9
	DCX	H
	MVI	A,0
	CMP	H
	JZ	L0A95
	SHLD	L0AA9
	JMP	L0A1F
;
L0A95:
	CMP	L
	JZ	L0A9F
	SHLD	L0AA9
	JMP	L0A1F
;
L0A9F:
	LHLD	HLSAVE
	MVI	A,4
	ORA	M
	MOV	M,A
	RET
;
HLSAVE: DW	0
L0AA9:	DW	0
L0AAB:	DW	0
ASAVE:	DB	0
L0AAE:	DB	0
;
L0AAF:
	LHLD	L0C36
	MVI	A,1
	CALL	GFMODM
	STA	L0C30
	LHLD	L0C36
	MVI	A,0
	CMP	M
	JZ	L0ACB
	MVI	A,0
	STA	L0C2F
	JMP	L0C28
;
L0ACB:
	LDA	L0C2C
	SUI	1
	JNZ	L0B43
	LDA	L0C2D
	SUI	1
	JNZ	L0AFB
	LDA	L0C30
	CPI	10H
	JNZ	L0AEB
	MVI	A,0
	STA	L0C2D
	JMP	L0B2A
L0AEB:
	LHLD	L0C36
	MVI	A,8
	ORA	M
	XCHG
	STAX	D
	MVI	A,0
	STA	L0C2F
	JMP	L0B2A
;
L0AFB:
	LDA	L0C30
	CPI	2
	JNZ	L0B0B
	MVI	A,0
	STA	L0C2C
	JMP	L0B2A
;
L0B0B:
	LDA	L0C30
	CPI	6
	JZ	L0B25
	CPI	15H
	JZ	L0B25
	CPI	5
	JZ	L0B25
	MVI	A,8
	LHLD	L0C36
	ORA	M
	XCHG
	STAX	D
L0B25:
	MVI	A,0
	STA	L0C2F
L0B2A:
	LDA	L0C30
	LHLD	L0C31
	XCHG
	STAX	D
	INX	D
	XCHG
	SHLD	L0C31
	LHLD	L0C36
	INX	H
	INX	H
	INX	H
	MOV	A,M
	INR	A
	MOV	M,A
	JMP	L0C28
;
L0B43:
	LDA	L0C2E
	SUI	1
	JNZ	L0C07
	LDA	L0C30
	CPI	10H
	JNZ	L0B6F
	MVI	A,0
	STA	L0C2E
	LDA	L0C30
	LHLD	L0C31
	MOV	M,A
	INX	H
	SHLD	L0C31
	LHLD	L0C36
	INX	H
	INX	H
	INX	H
	MOV	A,M
	INR	A
	MOV	M,A
	JMP	L0C28
;
L0B6F:
	LDA	L0C30
	CPI	17H
	JZ	L0B9F
	CPI	3
	JZ	L0B9F
	CPI	1BH
	JZ	L0B9F
	LHLD	L0C36
	MVI	A,8
	ORA	M
	MOV	M,A
	LDA	L0C30
	LHLD	L0C31
	MOV	M,A
	INX	H
	SHLD	L0C31
	LHLD	L0C36
	INX	H
	INX	H
	INX	H
	MOV	A,M
	INR	A
	MOV	M,A
	JMP	L0BFF
;
L0B9F:
	MVI	A,10H
	LHLD	L0C31
	MOV	M,A
	INX	H
	LDA	L0C30
	MOV	M,A
	LHLD	L0C36
	INX	H
	INX	H
	INX	H
	MOV	A,M
	INR	A
	INR	A
	MOV	M,A
	LHLD	L0C36
	MVI	A,0
	CALL	GFMODM
	STA	L0C30
	LHLD	L0C36
	MVI	A,0
	CMP	M
	JNZ	L0BFF
	INX	H
	LDA	L0C30
	MOV	M,A
	LHLD	L0C36
	MVI	A,0
	CALL	GFMODM
	STA	L0C30
	LHLD	L0C36
	MVI	A,0
	CMP	M
	JNZ	L0BFF
	INX	H
	INX	H
	INX	H
	INX	H
	LDA	L0C30
	MOV	M,A
	INX	H
	CMP	M
	JNZ	L0BF8
	LHLD	L0C36
	INX	H
	MOV	A,M
	INX	H
	CMP	M
	JZ	L0BFF
L0BF8:
	MVI	A,10H
	LHLD	L0C36
	ORA	M
	MOV	M,A
L0BFF:
	MVI	A,0
	STA	L0C2F
	JMP	L0C28
;
L0C07:
	LDA	L0C30
	CPI	10H
	JNZ	L0C17
	MVI	A,1
	STA	L0C2E
	JMP	L0C28
;
L0C17:
	LHLD	L0C31
	MOV	M,A
	INX	H
	SHLD	L0C31
	LHLD	L0C36
	INX	H
	INX	H
	INX	H
	MOV	A,M
	INR	A
	MOV	M,A
L0C28:
	JMP	L09C0
L0C2B:
	RET
;
L0C2C:	DB	0
L0C2D:	DB	0
L0C2E:	DB	0
L0C2F:	DB	0
L0C30:	DB	0
L0C31:	DW	0
L0C33:	DW	0
L0C35:	DB	0
L0C36:	DW	0
;
L0C38:
	LXI	H,L1380
	LXI	D,L1519
	MVI	A,2
	CALL	L098C
	LDA	L1519
	CPI	0
	JZ	L0C65
	LXI	H,L1519
	CALL	ERRCHK
	CALL	STOPCK
	LXI	H,L1511
	LXI	D,STSTOR
	LXI	B,L12B4
	MVI	A,0
	CALL	L050E
	JMP	L0CC5
;
L0C65:
	LDA	L1380
	CPI	10H
	JNZ	L0C7D
	LDA	SYNCB
	CPI	6
	JNZ	L0C7D
	MVI	A,0
	STA	L1510
	JMP	L0CC5
L0C7D:
	PRINT	'**** CONNECTION IS STILL IN PROGRESS ****$'
	CALL	STOPCK
	LXI	H,L1511
	LXI	D,STSTOR
	LXI	B,L12B4
	MVI	A,0
	CALL	L050E
L0CC5:
	JMP	L07A8
;
L0CC8:
	XRA	A
	STA	ERRHIT	;Reset error count
	PRINT	'**** REMOTE CPU IS NOW CONNECTED ****$'
	RET
;
SNDFIL:
	MVI	A,1
	STA	L151F
	STA	L1520
	MVI	A,0
	STA	ERRCNT
	STA	ERRSFL
	LDA	L1522
	SUI	1
	JZ	OPENOK
	LHLD	NAMPTR
	LXI	D,DFCB
	MVI	C,0CH
MV1:
	MOV	A,M
	STAX	D
	INX	H
	INX	D
	DCR	C
	JNZ	MV1
	LXI	D,L12B8
	LHLD	NAMPTR
	INX	H
	MVI	C,0BH
MV2:
	MOV	A,M
	STAX	D
	INX	H
	INX	D
	DCR	C
	JNZ	MV2
	SHLD	NAMPTR
	MVI	A,1
	STA	L1522
	MVI	B,8
	LXI	H,DFCB+1
	LXI	D,FILNAM
MV3:
	MOV	A,M
	STAX	D
	INX	H
	INX	D
	DCR	B
	JNZ	MV3
	INX	D
	MVI	B,3
MV4:
	MOV	A,M
	STAX	D
	INX	H
	INX	D
	DCR	B
	JNZ	MV4
FILNAM	EQU	$+24+3
	PRINT	'---- TRANSMITING FILE --------.--- ----$'
	JMP	BLDFCB
;
MOVE:
	MOV	A,M
	STAX	D
	INX	H
	INX	D
	DCR	C
	JNZ	MOVE
	RET
;
BLDFCB:
	LXI	H,DFCB
	LXI	D,MYFCB
	MVI	C,0CH
	CALL	MOVE
	JMP	PSTFCB
;
MYFCB:	DB	'****$',0EH,9,11H,80H,0CH
	DB	0CDH,5
	DB	0,0CDH,'4',9,'!',11H,15H,11H
	DB	13H,15H,1,0B4H,12H,'>',0,0CDH
	DB	0EH,5,0C3H,0A8H
FILREC: DB	7
FILBAS: DW	L1B25
BUFLEN: DW	L1380
BUFPTR: DW	L2A0A
;
PSTFCB:
	JMP	OPNFCB
;
RDFILE:
	LHLD	BUFLEN
	XCHG
	LHLD	BUFPTR
	MOV	A,L
	SUB	E
	MOV	A,H
	SBB	D
	JC	NOREAD
	LXI	H,0
	SHLD	BUFPTR
RDLOOP:
	XCHG
	LHLD	BUFLEN
	MOV	A,E
	SUB	L
	MOV	A,D
	SBB	H
	JNC	L0E19
	LHLD	FILBAS
	DAD	D
	XCHG
	MVI	C,1AH
	CALL	5
	LXI	D,MYFCB
	MVI	C,14H
	CALL	5
	ORA	A
	JNZ	BADRD
	LXI	D,DBUF
	LHLD	BUFPTR
	DAD	D
	SHLD	BUFPTR
	JMP	RDLOOP
;
BADRD:
	LHLD	BUFPTR
	SHLD	BUFLEN
L0E19:
	LXI	D,DBUF
	MVI	C,1AH
	CALL	5
	LXI	H,0
	SHLD	BUFPTR
NOREAD:
	XCHG
	LHLD	FILBAS
	DAD	D
	XCHG
	LHLD	BUFLEN
	MOV	A,L
	ORA	H
	MVI	A,1AH
	RZ
	LDAX	D
	LHLD	BUFPTR
	INX	H
	SHLD	BUFPTR
	RET
;
OPNFCB:
	XRA	A
	STA	MYFCB+EXT
	STA	FILREC
	LXI	H,1380H ;LENGTH OF BUFFER
	SHLD	BUFLEN
	SHLD	BUFPTR
	MVI	C,0FH
	LXI	D,MYFCB
	CALL	5
	INR	A
	JNZ	OPENOK
	MVI	C,9
	LXI	D,NOFEMS
	CALL	5
	JMP	0
;
NOFEMS: DB	CR,LF,'NO SOURCE FILE$'
;
OPENOK:
	CALL	RDFILE
	JNZ	L0E84
	MVI	A,1
	STA	FILFLG
	JMP	L0EF4
;
L0E84:
	MVI	C,80H
	LXI	H,L1448
L0E89:
	MOV	M,A
	INX	H
	SHLD	L12AE
	DCR	C
	JZ	L0EF4
	MOV	A,C
	STA	L12B2
	CALL	RDFILE
	JNZ	OKRD
	PRINT	'**** BUG 2 IN PROGRAM CONTACT SOFTWARE TOOLS ****$'
	MVI	A,1
	STA	FILFLG
	STA	ERRSFL
	RET
;
OKRD:
	STA	L12B3
	LDA	L12B2
	MOV	C,A
	LHLD	L12AE
	LDA	L12B3
	JMP	L0E89
;
L0EF4:
	LDA	L151F
	SUI	1
	JNZ	BLOKCK
	LDA	FILFLG
	CPI	0
	JZ	L0F2E
	LDA	L12A9
	SUI	0
	JNZ	L0F1D
	LXI	H,L12B5
	LXI	D,STSTOR
	LXI	B,L12AC
	MVI	A,1
	CALL	L050E
	JMP	L0F55
;
L0F1D:
	LXI	H,L12B5
	LXI	D,STSTOR
	LXI	B,L12AD
	MVI	A,1
	CALL	L050E
	JMP	L0F55
;
L0F2E:
	LDA	L12A9
	SUI	0
	JNZ	L0F47
	LXI	H,L12B5
	LXI	D,STSTOR
	LXI	B,L12AC
	MVI	A,0
	CALL	L050E
	JMP	L0F55
;
L0F47:
	LXI	H,L12B5
	LXI	D,STSTOR
	LXI	B,L12AD
	MVI	A,0
	CALL	L050E
L0F55:
	LDA	STSTOR
	CPI	0
	JZ	L1009
L0F5D:
	LDA	L1520
	SUI	1
	JNZ	L1006
	LXI	H,STSTOR
	CALL	ERRCHK
	LDA	ERRCNT
	INR	A
	STA	ERRCNT
	LDA	ERRCNT
	SUI	0C8H
	JC	RETRY
	JZ	RETRY
	APRINT	'**** PERMANENT TRANSMISSION ERROR - PROGRAM ABORTING ****$'
	MVI	A,1
	STA	FILFLG
	STA	ERRSFL
	MVI	A,0
	STA	L151F
	STA	L1520
RETRY:
	LXI	H,L1380
	LXI	D,L1519
	MVI	A,2
	CALL	L098C
	LDA	L1519
	SUI	0
	JZ	L0FFE
	LXI	H,L1519
	CALL	ERRCHK
	LXI	H,L1523
	LXI	D,STSTOR
	LXI	B,L12B4
	MVI	A,0
	CALL	L050E
	JMP	L1003
;
L0FFE:
	MVI	A,0
	STA	L1520
L1003:
	JMP	L0F5D
;
L1006:
	JMP	L11E5
;
L1009:
	LDA	L1520
	SUI	1
	JNZ	L11E5
	LXI	H,L1380
	LXI	D,L1519
	MVI	A,2
	CALL	L098C
	LDA	L1519
	SUI	0
	JZ	L10B7
	LDA	FILFLG
	SUI	0
	JZ	L1034
	LDA	L1519
	SUI	4
	JZ	L10C7
L1034:
	LXI	H,L1519
	CALL	ERRCHK
	LDA	ERRCNT
	INR	A
	STA	ERRCNT
	LDA	ERRCNT
	SUI	0C8H
	JC	RETRY2
	JZ	RETRY2
	APRINT	'**** PERMANENT TRANSMISSION ERROR - PROGRAM ABORTING ****$'
	MVI	A,1
	STA	FILFLG
	STA	ERRSFL
	MVI	A,0
	STA	L151F
	STA	L1520
	JMP	L10B4
;
RETRY2:
	LXI	H,L1523
	LXI	D,STSTOR
	LXI	B,L12B4
	MVI	A,0
	CALL	L050E
L10B4:
	JMP	RETRY3
;
L10B7:
	LDA	L1380
	CPI	10H
	JNZ	L10E9
	LDA	SYNCB
	CPI	6
	JNZ	L10E9
L10C7:
	LDA	L12B7
	INR	A
	STA	L12B7
	LXI	H,L1448
	LXI	D,L12B8
	MVI	C,80H
L10D6:
	MOV	A,M
	STAX	D
	INX	H
	INX	D
	DCR	C
	JNZ	L10D6
	MVI	A,0
	STA	L151F
	STA	L1520
	JMP	RETRY3
;
L10E9:
	LDA	SYNCB
	CPI	5
	JNZ	SYNCOK
	PRINT	'**** SYNCHRONIZATION ERROR ****$'
	PRINT	'**** WILL ATTEMPT TO RE-TRANSMIT FILE ****$'
	XRA	A
	STA	ERRHIT
	INR	A
	STA	ERRSFL
	INR	A
	STA	FILFLG
	LHLD	NAMPTR
	DCX	H
	DCX	H
	DCX	H
	DCX	H
	DCX	H
	DCX	H
	DCX	H
	DCX	H
	DCX	H
	DCX	H
	DCX	H
	DCX	H
	SHLD	NAMPTR
	JMP	L11DA
SYNCOK:
	MVI	A,0
	STA	L1520
	LDA	ERRCNT
	INR	A
	STA	ERRCNT
	LDA	ERRCNT
	SUI	0C8H
	JC	RETRY3
	JZ	RETRY3
	PRINT	'**** PERMANENT TRANSMISSION ERROR - PROGRAM ABORTING ****$'
	MVI	A,1
	STA	FILFLG
	STA	ERRSFL
L11DA:
	MVI	A,0
	STA	L151F
	STA	L1520
RETRY3:
	JMP	L1009
;
L11E5:
	MVI	A,1
	STA	L1520
	JMP	L0EF4
BLOKCK:
	LDA	ERRSFL
	SUI	1
	JZ	BKBACK
	PRINT	'**** BLOCK TRANSMITTED CORRECTLY ****$'
	XRA	A
	STA	ERRHIT	;Reset error count
	INR	A
	STA	L12A9
BKBACK:
	RET
;
CLNUP:
	LDA	ERRSFL
	CPI	0
	JNZ	CLBACK
	PRINT	'---- FILE HAS BEEN COMPLETELY TRANSMITTED ----$'
	PRINT	'**** DISCONNECTING FROM REMOTE CPU ****$'
CLBACK:
	RET
;
L12A8:	DB	0
L12A9:	DB	0
FILFLG: DB	0
ERRCNT: DB	0
L12AC:	DB	0EH
L12AD:	DB	83H
L12AE:	DB	0,0
NAMPTR: DB	0,0
L12B2:	DB	0
L12B3:	DB	0
L12B4:	DB	2
L12B5:	DB	10H,2
L12B7:	DB	0
L12B8:	DB	0,0,0,0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0,0
L1380:	DB	0
SYNCB:	DB	0,0,0,0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0
L1448:	DB	0,0,0,0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0,0
L1510:	DB	0
L1511:	DB	10H,5
STSTOR: DB	0,0,0,0,0,0
L1519:	DB	0,0,0,0,0,0
L151F:	DB	0
L1520:	DB	0
ERRSFL: DB	0
L1522:	DB	0
L1523:	DB	10H,15H
DROPOUT:
	DB	0	;Carrier dropout count
ERRHIT:	DB	0	;Error count	
BUFFER: DB	0
;
	REPT	256	;GET 2K OF ZEROES
	DW	0,0,0,0,0,0,0,0
	ENDM
;
L1B25	EQU	BUFFER+600H
L2A0A	EQU	BUFFER + (2A0AH-1525H)
;
	END
