File: SV2BN.PA of Disk: V50/Source/Source-Listing-PAL-1
(Source file text) 

/SAVED FILE TO BINARY CONVERT

	*20
NAME,	ZBLOCK 4	/NAME BLOCK
OMAXLN,	0		/MAXIMUM FILE LENGTH
OCNT,	0
OHNDL,	0
IHNDL,	0
TEMP,	0
CNTR,	0
CHKSUM,	0
FELD,	0
FELDX,	0
SEGNO,	0
CCPT,	0
PAGES,	0
INBLK,	0
TEMP1,	0
	ERR=JMP I [7600
	PUT=JMS I .
	DECPUT
	PUTWD=JMS I .
	PUTWDX
	OUT=1000
	BUFF=3000
	CCBLK=5000
	BUFPG=10
	BUFBLK=4
	WORDS=2000
	PAGE
	OUHNDL=6000
	INHNDL=6200
	PAGE

START,	CLA CLL
	CIF 10
	JMS I [7700
	10
	CIF 10
	JMS I [200
	5
	2326		/.SV
	TAD [7600
	DCA 10
	CDF 10
	TAD I 10
	DCA NAME
	TAD I 10
	DCA NAME+1
	TAD I 10
	DCA NAME+2
	TAD I 10
	SNA
	TAD [216	/.BN
	DCA NAME+3
	TAD [OUHNDL
	DCA OHPT
	TAD [NAME
	DCA OUPT
	TAD I [7600
	CDF
	SNA
	ERR
	CIF 10
	JMS I [200
	1
OHPT,	0
	ERR
	CIF CDF 10
	TAD I [7600
	CDF
	JMS I [200
	3
OUPT,	0
OUMAX,	0
	ERR
	TAD OUPT
	DCA OBLK
	TAD OUMAX
	DCA OMAXLN
	TAD [INHNDL
	DCA IHPT
	CDF 10
	TAD I [7620
	DCA INBLK
	TAD I [7617
	CDF
	SNA
	ERR
	CIF 10
	JMS I [200
	1
IHPT,	0
	ERR
	JMS OSETP
	TAD OHPT
	DCA OHNDL
	TAD IHPT
	DCA IHNDL
	CLA CMA
	DCA FELDX
	DCA CHKSUM
	DCA OCNT
	JMP GO
	PAGE

GO,	TAD INBLK
	ISZ INBLK
	DCA .+4
	JMS I IHNDL
	0100
	CCBLK
	0
	ERR
	TAD I .-3
	DCA SEGNO
	CLL
	TAD SEGNO
	TAD [40
	SNL CLA
	ERR
	TAD [CCBLK+4
	DCA CCPT
	JMS LEADER
	TAD [200
	STL
	JMS PUTONE

SEGLP,	JMS STBLK
	TAD I CCPT
	ISZ CCPT
	CLL RTR
	RTR
	RTR
	AND [37
	SNA
	TAD [40
	DCA PAGES
PAGLP,	TAD PAGES
	TAD [-BUFPG
	SPA
	JMP LSTPG
	DCA PAGES
	TAD INBLK
	DCA .+4
	JMS I IHNDL
	1000
	BUFF
	0
	HLT
	TAD INBLK
	TAD [BUFBLK
	DCA INBLK
	TAD [-WORDS
	DCA CNTR
	TAD [BUFF-1
	DCA 10
	TAD I 10
	PUTWD
	ISZ CNTR
	JMP .-3
	JMP PAGLP
LSTPG,	CLA CLL
	TAD PAGES
	SNA
	JMP PGDONE
	CLL RTL
	RTL
	RTL
	DCA IFUN
	TAD IFUN
	RAL
	CIA
	DCA CNTR
	TAD INBLK
	DCA .+4
	JMS I IHNDL
IFUN,	0
	BUFF
	0
	HLT
	TAD [BUFF-1
	DCA 10
	TAD I 10
	PUTWD
	ISZ CNTR
	JMP .-3
	TAD PAGES
	CLL IAC
	RAR
	TAD INBLK
	DCA INBLK
PGDONE,	ISZ SEGNO
	JMP SEGLP
	TAD CHKSUM
	PUTWD
	JMS LEADER
	SKP CLA
	PUT
	TAD OCRCNT
	TAD [200
	SZA CLA
	JMP .-4
	TAD OCNT
	DCA .+7
	CIF CDF 10
	TAD I [7600
	CDF
	JMS I [200
	4
	NAME
	0
	ERR
	JMP 204
	PAGE

DECPUT,	0		/DEVICE-INDEPENDENT I/O
	ISZ O3		/3RD CHAR OF 3?
	JMP O2		/NO
	JMS RT		/YES, SPECIAL HANDLING
	TAD T1		/TEMP STORAGE
	JMS RT
	TAD [-3		/RESET SWITCH
	DCA O3
	ISZ OCRCNT	/END OF BUFFER?
	JMP I DECPUT	/NO
	JMS I OHNDL
	4200		/ONE BLOCK
	OUT
OBLK,	0
	HLT
	ISZ OBLK	/BUMP RECORD POINTER
	ISZ OCNT	/AND COUNT
	CLA CLL
	TAD OCNT	/HAS HE GONE TOO FAR?
	TAD OMAXLN
	SZL CLA
	HLT		/YES-KILL HIM
	JMS OSETP	/NO, RESET POINTERS
	JMP I DECPUT	/AND RETURN
O2,	AND [377
	DCA I OPTR1	/NORMAL HANDLING
	ISZ OPTR1	/BUMP POINTER
	JMP I DECPUT
RT,	0		/HALF-CHAR PACK ROUTINE
	CLL RTL
	RTL
	DCA T1		/TEMPORARY STORAGE
	TAD T1
	AND [7400
	TAD I OPTR2	/ADD IT ON
	DCA I OPTR2
	ISZ OPTR2
	JMP I RT
OPTR1,	0
OPTR2,	0
OCRCNT,	0
O3,	0
T1,	0
OSETP,	0		/ROUTINE TO RESET OUTPUT POINTERS
	TAD [-3		/3-WAY SWITCH
	DCA O3
	TAD [OUT	/BUFFER POINTERS
	DCA OPTR1
	TAD [OUT
	DCA OPTR2
	TAD [-200
	DCA OCRCNT	/CHARACTER COUNT
	JMP I OSETP
LEADER,	0
	TAD [-100
	DCA CNTR
	TAD [200
	PUT
	ISZ CNTR
	JMP .-3
	JMP I LEADER
STBLK,	0
	TAD I CCPT
	ISZ CCPT
	DCA TEMP
	TAD I CCPT
	AND [70
	DCA FELD
	TAD FELDX
	CLL CIA
	TAD FELD
	SNA CLA
	JMP .+6
	TAD FELD
	DCA FELDX
	TAD FELD
	TAD [300
	PUT
	TAD TEMP
	CLL CML
	JMS PUTONE
	JMP I STBLK
PUTONE,	0
	DCA TEMP
	TAD TEMP
	RTR
	RTR
	RTR
	AND [177
	DCA TEMP1
	TAD TEMP1
	TAD CHKSUM
	DCA CHKSUM
	TAD TEMP1
	PUT
	TAD TEMP
	AND [77
	TAD CHKSUM
	DCA CHKSUM
	TAD TEMP
	AND [77
	PUT
	JMP I PUTONE
PUTWDX,	0
	CLL
	JMS PUTONE
	JMP I PUTWDX
	$