DataMuseum.dk

Presents historical artifacts from the history of:

Philips Data Systems

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Philips Data Systems

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦02a934940⟧

    Length: 17526 (0x4476)
    Notes: pts_type(SC)
    Names: »DROD01.SC«

Derivation

└─⟦110b7ed5e⟧ Bits:30009664 Philips computer tape "600106"
    └─⟦this⟧ »TOSSWORK/DROD01.SC« 

PTS(SC)

	IDENT DROD01 	REL 9.2 79-11-16  870105040920 

* 
******************************************* 
* 
*   PHILIPS TERMINAL SYSTEM PTS 
* 
*   DROR01 = DRIVER OPTICAL CHARACTER READER
* 
* 
* 
* 
* 
* 
******************************************* 
* 
* 
*    THIS DRIVER HANDLES INPUT FROM OCR 
*    CONNECTED TO CPU VIA CHLT OR CHRT. 
* 
*    ONLY INPUT DATA FROM OCR 
*    ARE HANDLED BY THE DRIVER. 
* 
* 
*    THE DRIVER CONSISTS OF FOLLOWING PARTS:
* 
*    A C O D : ACTIVATION PART
* 
*    I H O D : INTERRUPT HANDLER
* 
*    R C O D : RECOVERY ROUTINE 
* 
	EJECT
* 
* 
*    THE FOLLOWING ORDERS ARE THREATED: 
* 
*    ORDER 02: READ DOCUMENT
*    ORDER 04: RESET INPUT BUFFER 
* 
* 
*    NORMAL REGISTER USAGE :
* 
*    REGISTER A1 : RETURN CODE
*             A2 : INPUT CHARACTER
*             A3 : BUFFER INDEX 
*             A4 : WORK REGISTER
*             A5 : STACK BASE 
*             A6 : DWT-ADDRESS
*             A7 : ORDER
*             A8 : ECB-ADDRESS
* 
* 
* 
*    SYSTEM ADAPTATION
* 
*    THE LENGTH OF THE CIRCULAR INPUT BUFFER IS 
*    DEFINED IN DWT. STANDARD VALUE IS 80 CHARACTERS
*    NOTE !!!  THAT LENGTH MUST BE THE SAME FOR ALL 
*    DWT:S IN SYSTEM
* 
*    IF TIMING IS WANTED, TIMER POINTER 
*    IN DWT MUST BE SET UNEQUAL TO ZERO.
*    STANDARD VALUE FOR TIME-OUT IS 30 SECONDS
*    SINCE LAST CHARACTER. IF ANOTHER VALUE 
*    IS WANTED FOR A SYSTEM, INDICATOR
*    IN DRIVER MUST BE CHANGED. 
* 
	EJECT
* 
*    BY MEANS OF CONDITIONAL ASSEMBLY IT IS POSSIBLE
*    TO EXCLUDE FROM THE DRIVER FOLLOWING FUNCTIONS:
* 
*    -----POWER ON INDICATION 
*    -----TIME-OUT-FUNCTION 
* 
*   ENTRIES 
* 
* 
	ENTRY	ODAD	ADDRESS-BLOCK 
* 
* 
* 
*    EXTERNAL TOSS MODULE ENTRIES 
* 
* 
* 
	EXTRN	DISIOE	I/O REQUEST ERROR 
	EXTRN	DISEND	END I/O AND GO TO DISPATCHER
	EXTRN	TENDIO	END I/O 
	EXTRN	TDISP	DISPATCHER ENTRY 
	EXTRN	LDREG	LOAD REGISTERS A2-A8 AND RETURN
	EXTRN	STREG	STORE REGISTERS AND GO TO DISPATCER
	EXTRN	LDREGE	RETURN FROM ECHOE HANDLING
	EXTRN	LDREGF	PANIK EXTERN
	EXTRN	SETIME	SET TIME
	EXTRN	SETIMP	SET TIME
	EXTRN	SAVE8	SAVE 8 REGISTERS 
	EXTRN	ECHRTN	RETURN FROM ECHO
	EXTRN	ECHO	ECHO ROUTINE
	EXTRN	ECHEND	END OF ECHOING
* 
* 
	EXTRN	DWTCHP	CHANEL PARAMETER
	EXTRN	DWTST	STATUS 
	EXTRN	DWTBC	BYTE COUNTER 
	EXTRN	DWTADR	DRIVER ADDRESS BLOCK
	EXTRN	DWTA3	SAVE AREA A3 
	EXTRN	DWTA4	SAVE AREA A4 
	EXTRN	DWTA5	SAVE AREA A5 
	EXTRN	DWTSB2	STACK BASE 2 IN DWT 
	EXTRN	DWTTP	TIMER POINTER
	EXTRN	DWTWAT	SAVE INPUT DWT
	EXTRN	ECBBA	ECB BUFFER ADDRESS 
	EXTRN	ECBRL	ECB REQUESTED LENGTH 
	EXTRN	ECBEL	ECB EFFECTIVE LENGTH 
	EXTRN	ECBRC	ECB RETURN CODE
	EXTRN	ECBCW	ECB CONTROL WORD 
	EJECT
* 
* 
* 
*     CONSTANTS 
* 
* 
* 
OVMASK	EQU	/2	OVERFLOW IN INPUT BUFFER
* 
X:B	EQU	80	LENGTH OF CIRCULAR INPUT BUFFER
DWTLNG	EQU	X:B	NUMBER OF BYTES IN DECIMAL FORM
ETX	EQU	/03	END CHARACTER 
* 
*    TIME BEFORE TIME-OUT 
* 
TIME	EQU	300	TIME OUT CONSTANT
* 
* 
* 
* 
	EJECT
* 
* 
****************************************
*    CONDITIONAL ASSEMBLY              *
****************************************
* 
* 
*      BY SETTING X:A = 1 THE FOLOWING POWER OFF FUNCTION 
*      IS INCLUDED IN THE DRIVER. 
*      IF THERE IS A READ REQUEST THIS IS COMPLETED WITH
*      -2 IN THE CONTROL WORD OF ECB. 
*      IF THERE IS NO READ REQUEST , THE FIRST READ REQUEST 
*      AFTER POWER ON IS COMPLETED WITH -2 IN CONTROL WORD
*      OF ECB 
* 
* 
X:A	EQU	0 
POWOFF	EQU	X:A
* 
* 
*    TIME OUT FUNCTION MAY BE EXCLUDED BY 
*    SETTING X:A = 0. 
* 
X:F	EQU	1 
CTIMUT	EQU	X:F
* 
* 
*   THIS DRIVER CAN BE MADE TO HANDLE CREDIT ORDERS 
*   BY SETTING CREDIT = 1 
*   ORDER /04 IS THEN REPLACED BY ORDER /31 
*    CONTROL WORD OF ECB IS SET TO ZERO INSTEAD OF-2
*    ORDER /04 IS THEN REPLACED BY ORDER /31
CREDIT	EQU	0
* 
* 
*   MMU BUFFER SIZE 
* 
X:C	EQU	80
DVBLEN	EQU	X:C
* 
* 
*   MMU KEY TABLE SIZE
* 
X:D	EQU	10
DVBKTB	EQU	X:D
* 
* 
*	A PROGRAM VERSION USING TOSS MMU PAGING 
*	IS OBTAINED BY SETTING MMUPAG EQU 1.
* 
MMUPAG	EQU	0
* 
* 
*	A PROGRAM VERSION USING THE EXTENDED INSTRUCTION
*	SET IS OBTAINED BY SETTING CPU852 EQU 0.
* 
CPU852	EQU	1
* 
	EJECT
* 
* 
********************* 
* DWT DISPLACEMENTS * 
********************* 
* 
* 
DWTDRD	EQU	/10	START OF DRIVER DEFINED PART 
* 
	IFT	MMUPAG=0 
START	EQU	DWTDRD
	XIF
* 
	IFT	MMUPAG=1 
START	EQU	DWTDRD+4
	XIF
* 
DWTCON	EQU	START+/00	CONVERSION TABLE 
DWTLRC	EQU	START+/16	LRC ACKUMULATOR
DWTINQ	EQU	START+/18	POINTER TO FIRST PLACE IN QUEUE
DWTUTQ	EQU	START+/1A	POINTER TO LAST PLACE IN QUEUE 
DWTSQ	EQU	START+/1C	START OF QUEUE
DWTEQ	EQU	DWTSQ+DWTLNG	END OF QUEUE 
* 
	EJECT
* 
* 
**************
* TABLES     *
**************
* 
* 
	DATA	DVBKTB	MMU KEY TABLE SIZE 
	DATA	DVBLEN	MMU BUFFER SIZE
	DATA	6	DEVICE INDEX
ODAD	EQU	*
	DATA	ACOD	ACTIVATION DRIVER
	DATA	0	ABORT ROUTINE ADDRESS 
	DATA	IHOD	INTERRUPT HANDLER
* 
	IFF	POWOFF=1 
	DATA	0	NO RECOVERY 
	XIF
* 
	IFT	POWOFF=1 
* 
	DATA	RCOD	RECOVERY ROUTINE 
	EJECT
* 
* 
*    R C O D
* 
*    THIS IS THE RECOVERY ROUTINE FOR OCR 
*    ENTERED FROM CHLT/CHRT DRIVER
* 
RCOD	EQU	*
	INH
	IFT	CPU852=1 
	CF	A15,SAVE8	SAVE A1-A8
	XIF
* 
	IFT	POWOFF=1 
	IFT	CPU852=0 
	MSR	8,A15	SAVE A1-A8 
	XIF
* 
	IFT	POWOFF=1 
	LDKL	A1,/200 
	ORS	A1,DWTST,A6	INDICATE POWER OFF OCCURED 
	LD	A3,DWTST,A6	I/O-REQUEST 
	RF(N)	RCOD05	NO
	LD	A4,DWTTP,A6	TIME EQUAL 0
	RF(Z)	RCOD05	YES 
	CM*	DWTTP,A6	RESET TIME
	CM	DWTTP,A6	RESET TIMER
RCOD05	EQU	*
	LDK	A1,1 
	ORS	A1,DWTST,A6	RECOVERY FLAG
RCOD10	EQU	*
	LDKL	A4,DWTTP
	ADR	A4,A6
	LDR	A1,A6
	CF	A15,SETIMP
	DATA	RCTUT,/A
	ST	A4,DWTTP,A6 
	RF	RCTDIS	DISPATCH 
RCTUT	EQU	* 
	INH
	IFT	POWOFF=1 
	LDR	A6,A1
RCTUT5	EQU	*
	CM	DWTTP,A6
			GET DWT-ADDRESS
	LD	A8,4,A6	GET ECB-ADDRESS 
	RF(Z)	RCTUT6	SYSTEM START SKIP BUFFER
	INH
	XIF
	IFT	CREDIT-POWOFF=-1 
	LDKL	A1,-2	INDICATE POWER ON 
	ST	A1,ECBCW,A8 
	XIF
	IFT	CREDIT+POWOFF=2
	CM	10,A8	INDICATE POWER ON 
	XIF
	IFT	POWOFF=1 
RCTUT6	EQU	*
	ENB
	ENB
	LDKL	A1,/FFFE	RESET RECOVERY 
	ANS	A1,DWTST,A6
	LDK	A1,0 
	LD	A2,DWTINQ,A6
	SCR	A1,A2
	ST	A2,DWTUTQ,A6
	LD	A3,DWTST,A6 
	RF(NN)	RCEND 
RCTDIS	EQU	*
	ABL	TDISP
RCEND	EQU	* 
	LDKL	A4,/FDFF
	ANS	A4,DWTST,A6	RESET POWER OFF
	ABL	DISEND 
	XIF
* 
	EJECT
* 
* 
*    A C O D
* 
*    ACTIVATION PART: 
* 
*    CHECKS VALIDITY OF ORDERS AND EXAMINES 
*    INPUT BUFFER TO SEE IF SOME QUEUED 
*    TO THREAT. 
* 
* 
ACOD	EQU	*
	LDK	A1,0 
	LDK	A3,0	START BUFFER INDEX
	ST	A3,DWTLRC,A6	CLEAR LRC-ACKUMULATOR
	LDR	A4,A7

	SUK	A4,4 

	IFT	CREDIT=1 
	SUK	A4,/2D 
	RF(Z)	CRE:10	SKIP INPUT BUFFER 
	ADK	A4,/2D 
CRE:10	EQU	*
	XIF
	RF(Z)	AOD110	ORDER 4 
	RF(N)	AOD200	ORDER 2 
AOD100	ORKL	A1,/8000	I/O REQUEST ERROR
AOD105	EQU	*
	ABL	ENDI10 
	EJECT
* 
* 
*    ORDER 4 RESET INPUT BUFFER 
* 
AOD110	LD	A2,DWTINQ,A6	ORDER 4
	SCR	A1,A2	RESET OVERFLOW IF OCCURED
	ST	A2,DWTUTQ,A6	RESET OUTPUT QUEUE 
	ABL	ENDIO	END I/O
	EJECT
* 
* 
* 
* 
AOD200	EQU	*
* 
	IFT	POWOFF=1 
* 
	LD	A2,DWTST,A6 
	ANKL	A2,/200	POWER OFF ? 
	RF(E)	AOD205 
	XRS	A2,DWTST,A6	RESET BIT
	XIF
AOD202	EQU	*
	IFT	CREDIT-POWOFF=-1 
	LDKL	A1,-2	INDICATE POWER ON 
	ST	A1,ECBCW,A8 
	XIF
	IFT	CREDIT+POWOFF=2
	CM	10,A8	INDICATE POWER ON 
	XIF
	IFT	POWOFF=1 
	ABL	AOD380 
* 
	XIF
* 
AOD205	EQU	*
* 
	IFT	CTIMUT=1 
* 
	LDR*	A1,A6	
	ANK	A1,/40	TIMING ?
	RF(E)	AOD210	NO TIMING FOR THIS DEVICE 
	LD	A4,DWTTP,A6 
	RF(E)	AODTIM 
	RF	AOD210
AODTIM	EQU	*
	LDKL	A4,DWTTP	TIMER POINTER
	ADR	A4,A6	ADD DWT-ADDRESS
	LDR	A1,A6
	CF	A15,SETIMP	SET TIME 
	DATA	AODTUT,TIME	TIME OUT ROUTINE AND TIME 
	ST	A4,DWTTP,A6	STORE TIMER ADDRESS IN DWT
* 
	XIF
* 
	EJECT
* 
* 
AOD210	EQU	*
	LD	A2,ECBRL,A8	REQUESTED LENGTH=0
AOD220	RF(E)	AOD380 
      	LDR	A3,A3	FIRTST RIME? 
	RF(NE)	AOD240	N0!
	LD	A1,ECBBA,A8	BUFFER ADDRESS
	SUK	A1,1 
	ADR	A1,A2
AOD230	SCR	A3,A1	CLEAR ECB BUFFER 
	SUK	A1,1 
	SUK	A2,1 
	RB(NE)	AOD230
AOD240	EQU	*
	LD	A1,DWTUTQ,A6
	LCR	A2,A1
      	LDR	A4,A2
	XRK	A4,/FF	OVERFLOW? 
	RF(NE)	AOD250	N0!
      	SCR	A4,A1	YES! 
	LDK	A1,OVMASK	OVERFLOW SET 
	RF	ENDIO	END I/O 
AOD250	CW	A1,DWTINQ,A6	SOMETHING IN QUEUE?
	RF(NE)	AOD260	 
	CF	A5,STREG	NOTHING IN QUEUE 
	IFT	CTIMUT=1 
	LDR	A1,A1	CHECK TIME OUT RETURN CODE 
	RF(Z)	AOD270	NO TIME-OUT 
	RF	ENDI05	END I/O AT TIME OUT
	XIF
	IFT	CTIMUT=0 
	RF	AOD270
	XIF
AOD260	CF	A15,EOQUEU	NEXT OUT POINTER 
	ST	A1,DWTUTQ,A6	STORE NEW POINTER
AOD270	EQU	*
	LDR	A4,A7
	SUK	A4,2 
	RF(NN)	AOD310	ORDER 2
	RB	AOD100	I/O REQUEST ERROR
	EJECT
* 
* 
* 
*    ORDER 2  READ DOCUMENT 
* 
* 
* 
* 
* 
AOD310	EQU	*
	LDR	A3,A3	FIRST CHARACTER
	RF(N)	AOD400	NO:LRC-CHARACTER
AOD320	EQU	*
	LDK	A4,/40 
	TM	A4,A2	CHECK IF END CHARACTER
	RF(Z)	AOD330	NO
	ST	A3,ECBEL,A8	STORE EFFECTIVE LENGTH IN ECB 
	NGR	A3,A3	NEGATE REGISTER
	RF	AOD340
AOD330	EQU	*
	CWK	A2,/3F	REJECTED CHARACTER
	RF(NE)	AOD331	NO 
	LDKL	A1,/1000	INDICATE REJECTED CHARACTER
	ORS	A1,ECBRC,A8	STORE IN ECB-RETURN CODE 
AOD331	EQU	*
	CWK	A2,/21	DIRECTION REJECTED
	RF(NE)	AOD332	NO 
	LDK	A1,/10	INDICATE DIRECTION ERROR
	RF	ENDIO 
AOD332	EQU	*
	CWK	A2,/1C	QUADRATURE REJECTED?
	RF(NE)	AOD333	NO 
	LDKL	A1,/800	INDICATE QUADRATURE ERROR 
	RF	ENDIO 
AOD333	EQU	*
	CW	A3,ECBRL,A8	REQ.LENGTH=EFF.LENGTH 
	RF(NL)	AOD360	YES
	LD	A1,ECBCW,A8	KEY TABLE ADDRESS 
	RF(Z)	AOD340	NO KEYTABLE 
	LCR	A4,A1	TABLE LENGTH IN A4 
	ANK	A4,/FF 
	ADR	A1,A4	LAST PLACE IN KEY TABLE
	ADK	A1,1 
AOD335	EQU	*
	SUK	A4,1 
	RF(N)	AOD340	KEY NOT FOUND 
	SUK	A1,1	NEXT KEY
	CCR	A2,A1	FOUND? 
	RB(NE)	AOD335
	XRS	A2,DWTLRC,A6	UPDATE LRC ACKUMULATOR
	RB	AOD240
AOD340	EQU	*
	XRS	A2,DWTLRC,A6	UPDATE LRC-ACKUMULATOR
	CF	A15,CDCHK	CODE CHECK IF LESS /1F SET BIT 7
	LDR	A3,A3
	RF(N)	AOD345 
	CF	A15,STORE	STORE IN ECB-BUFFER 
AOD345	EQU	*
	RB	AOD240
AOD400	EQU	*
	ANK	A2,/3F	DELETE LRC-BIT
	XR	A2,DWTLRC,A6	CHECK LRC-SUM
	ANK	A2,/F
	RF(E)	AOD380	CORRECT   END I/O 
	LDK	A1,4	INDICATE LRC RERROR 
	RF	ENDIO 
AOD360	EQU	*
	CF	A15,CDCHK	CODE CHECK
	LDK	A1,8	LENGTH OVERFLOW 
	RF	ENDIO 
AOD380	LDK	A1,0	RETURN CODE 
	EJECT
* 
* 
*    THIS IS A COMMON END OF THE DRIVER 
* 
*    SET EFFECTIVE LENGTH AND PERFORM END I/O 
* 
* 
ENDIO	EQU	* 
	IFT	CTIMUT=1 
	INH
	LD	A4,DWTTP,A6 
	RF(E)	ENDI05	NO TIMING ON THIS DEVICE
	CM*	DWTTP,A6	RESET TIMER 
	CM	DWTTP,A6
	XIF
* 
*** 
* 
ENDI05	EQU	*
	LDR	A3,A3
	RF(N)	ENDI10 
	ST	A3,ECBEL,A8	STORE EFFECTIVE LENGTH
ENDI10	EQU	*
* 
	ABL	DISEND 
* 
	EJECT
* 
* 
* 
*     IHOD
* 
* 
*     THIS IS THE INTERRUPT HANDLER ENTERED FROM CHLT/CHRT DRIVER 
* 
* 
* 
IHOD	EQU	*
	ANK	A2,/FF 
	IFT	POWOFF=1 
	LD	A4,DWTST,A6	I/O-REQUEST 
	ANK	A4,1	RECOVERY? 
	RF(NZ)	EXIT2	YES 
	XIF
	LD	A3,DWTST,A6	I/O REQUEST?
	RF(N)	IHOD10	NO
	SLL	A3,7	INTERRUPTS ALLOWED? 
	RF(NN)	IHOD10	NO,STORE CHARACTER IN DWT-BUFFER 
* 
	IFT	CTIMUT=1 
* 
	LD	A3,DWTTP,A6 
	RF(E)	IHOD05	NO TIMING ON THIS DEVICE
	LDKL	A3,-TIME	RESTART TIME 
	ST*	A3,DWTTP,A6
* 
	XIF
* 
IHOD05	EQU	*
	ABL	LDREG	RETURN TO READ ROUTINE 
IHOD10	EQU	*
	LD	A1,DWTINQ,A6
	LCR	A4,A1
	XRK	A4,/FF	ALREADY OVERFLOW? 
	RF(E)	EXIT	YES 
	LDR	A3,A1
	CF	A15,EOQUEU	GET NEXT OUTQUEUE POINTER ADDRESS
	CW	A1,DWTUTQ,A6	OVERFLOW?
	RF(NE)	IHOD20
	ORK	A2,/FF	SET OVERFLOWBIT IN INPUT BUFFER 
	RF	IHOD30
IHOD20	ST	A1,DWTINQ,A6	STORE INQUEUE POINTER
IHOD30	SCR	A2,A3
EXIT	ABL	TDISP
	EJECT
	IFT	POWOFF=1 
EXIT2	EQU	* 
	LD	A3,DWTA3,A6 
	RF(N)	EXIT4
	LD	A4,DWTTP,A6	TIMER CLEARED 
	RF(Z)	EXIT3	YES
	LDKL	A3,-100 
	ST*	A3,DWTTP,A6	RESTART TIMER
	LDK	A3,1 
EXIT3	EQU	* 
	ADK	A3,1 
	LDK	A4,/40 
	TM	A4,A2	ETX CHARACTER 
	RF(Z)	EXIT5	NO 
	NGR	A3,A3
EXIT5	EQU	* 
	ST	A3,DWTA3,A6 
	RB	EXIT	DISPATCH 
EXIT4	EQU	* 
	CM*	DWTTP,A6	CLEAR TIMER 
	LDK	A3,0 
	ABL	RCTUT5 
	XIF
	EJECT
* 
* 
*    A O D T U T
* 
*    THIS IS THE TIME-OUT ROUTINE 
* 
* 
	IFT	CTIMUT=1 
* 
AODTUT	EQU	*
	LDR	A6,A1	GET DWT-ADDRESS
	LD	A1,DWTST,A6 
	RB(N)	EXIT 
	LDK	A1,/40	SET RETURN CODE 
	CM	DWTTP,A6
	RB	IHOD05	RESTORE REGISTERS AND END I/O
* 
	XIF
* 
	EJECT
* 
*    STORE = SUBROUTINE TO STORE A CHARACTER IN 
*            ECB-BUFFER AND INCREMENT BUFFER INDEX
* 
*    ON ENTRY:
* 
*    A2 = CHARACTER TO STORE
*    A3 = BUFFER INDEX
* 
* 
STORE	EQU	* 
	LD	A4,ECBBA,A8	BUFFER ADDRESS
	ADR	A4,A3	ADD BUFFER INDEX 
	SCR	A2,A4	STORE CHARACTER IN BUFFER
	ADK	A3,1	INCREMENT BUFFER INDEX
	ANK	A2,/7F 
STORTN	ADKL	A15,2 
	LDR*	P,A15 
	EJECT
* 
* 
*    EOQUEU = SUBROUTINE TO GET NEXT QUEUE POINTER
* 
*    ON ENTRY:
* 
*    A1 = QUEUE POINTER 
*    A6 = DWT-ADDRESS 
* 
*    ON EXIT: 
* 
*    A1 = NEW QUEUE POINTER 
EOQUEU	EQU	*
	ADK	A1,1 
	SUR	A1,A6
	CWK	A1,DWTEQ	END OF QUEUE? 
	RF(NE)	EOQU10
	LDK	A1,DWTSQ	SET QUEUE START ADDRESS 
EOQU10	ADR	A1,A6
	RB	STORTN
	EJECT
* 
* 
*         CODE CHECK
* 
* 
*           AT ENTRY   A2= 6-BIT OCTAL CHARACTER
* 
*            AT EXIT   A2= 7-BIT ASCII CHARACTER
CDCHK	EQU	* 
	LDR	A4,A2	SAVE REGISTER
	SUK	A4,/1F	LESS THEN /1F CONVERT TO ASCII
	RF(NN)	CDC05	NO
	ORK	A2,/40	SET BIT 7 
CDC05	EQU	* 
	RB	STORTN
	END

Full view