File: EDITOR.PA of Disk: Disks/Build-2007/Build-11-03-07
(Source file text) 

/EDIT HANDLER
/
/
/
/
/
/
/
/
/
/COPYRIGHT  (C)  1974,1975 BY DIGITAL EQUIPMENT CORPORATION
/
/
/
/
/
/
/
/
/
/
/THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE
/AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
/CORPORATION.  DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY
/FOR ANY ERRORS THAT MAY APPEAR IN THIS DOCUMENT.
/
/THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FURNISHED TO THE PURCHASER
/UNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED
/(WITH INCLUSION OF DIGITAL'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH
/SYSTEM, EXCEPT AS MAY OTHERWISE BE PROVIDED IN WRITING BY DIGITAL.
/
/DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR THE USE
/OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY
/DIGITAL.
/
/
/
/
/
/
/
/
/
/
/EDIT HANDLER

PSXX=6660 / EDOU like PTP
PSKF=6661
PCLF=6662
PSKE=6663
PSTB=6664
PSIE=6665
PCLP=6666
PCIE=6667

RSKF=6651 / EDIN like PTR
RRRB=6652
RSKE=6653
RRFC=6654
RFRB=6656



        *0
        -2
DEVICE EDIT;DEVICE EDOU;1430;EDO&177;ZBLOCK 2
DEVICE EDIT;DEVICE EDIN;2440;EDI&177;ZBLOCK 2


        VERSION="A&77

        *200
EDO,    VERSION
        CLA CLL CML     /SET LINK ON TO INDICATE PUNCH
        JMS ESETUP      /DO COMMON CRAP
EDOLP,  TAD I EDOCA
        JMS EDOPCH      /FIRST CHAR IN LOW ORDER 8 BITS OF WORD 1
        DCA EDI
        ISZ EDOCA
        TAD I EDOCA
        JMS EDOPCH      /SECOND CHAR IN LOW ORDER 8 BITS OF WORD 2
        CLL RTR
        RTR
        TAD EDI
        RTR
        RTR             /THIRD CHARACTER NOW IN AC
        JMS EDOPCH
EDOEND, ISZ EDOCA
ED70,   70              /JUST IN CASE WERE PUNCHING PG 7600
                        /KEEP THIS LITERAL HERE
        KSF
        JMP EDOISZ      /KEYBOARD FLAG OFF - DON'T WORRY ABOUT ^C
EDOKRS, KRS
        AND EDO177
        TAD EDOM3
        SZA CLA         /IS THERE A ^C IN THE TTY BUFFER?
        JMP EDOISZ      /NO
EDOCIF, CDF CIF 0
        JMP I .+1
        7600

ESETUP, 0
        RDF             /GET FIELD OF CALLING PROGRAM
        TAD EDOCIF
        DCA EDOXIT      /SET UP RETURN SEQUENCE
        TAD I EDO
        AND ED70
        TAD PCDF
        DCA EDOCDF
        RAR             /GET LINK(1=EDO,0=EDI)
        TAD I EDO       /GET FUNCTION WORD
        ISZ EDO
        SPA             /CHECK CORRECT MODE
        JMP EDOERR      /SIGNAL "UNRECOVERABLE DEVICE ERROR"
        AND ED7700
        CMA             /SET UP -(WORD COUNT)/2-1
        DCA EDOWC
        TAD I EDO       /SET UP STARTING ADDRESS
        ISZ EDO
        DCA EDOCA
        TAD I EDO
EDOCDF, 0               /SET DATA FIELD TO ACCESS BUFFER
        EDOEOF=EDOCDF
        SNA CLA
        SZL CLA
        JMP EDOKRS
        TAD EDO336      /INPUT INITIALIZATION - TYPE "^" AND WAIT
        TLS
        KSF
        JMP .-1
        JMS EDIGCH      /INITIALIZE THE EDI BUFFER CHAR
        6032            /CLEAR AC AND KEYBOARD FLAG
        JMP EDOKRS      /CHECK FOR ^C
EDOISZ, ISZ EDOWC
        JMP I ESETUP    /LOOP FOR BUFFER SIZE (128 WORDS)
EDORTN, TAD EDOEOF
        SZA CLA         /DID WE RUN OUT OF TAPE?
        ISZ EDO
        ISZ EDO
EDOXIT, HLT             /EXIT CDF GOES HERE
        JMP I EDO

EDOPCH, 0
	SNA
	JMP I EDOPCH	/IGNORE NULLS
        PCLP            /NOTICE THE GLORIOUS LACK OF OVERLAP
        PSKF
        JMP .-1
        AND ED7400
        JMP I EDOPCH
EDOCA,  0

EDI,    VERSION         /*** CORRECT ENTRY IN MAIN ASSEMBLY IF THIS IS MOVED!
        CLA CLL
        TAD EDI
        DCA EDO
        JMS ESETUP      /SET UP ADDRESS, COUNT, FIELDS
EDILP,  JMS EDIGCH      /READ FIRST CHARACTER OF 3
        DCA I EDOCA
        JMS EDIGCH
        DCA EDOPCH
        JMS EDIGCH
        RTL
        RTL
        AND ED7400
        TAD I EDOCA
        DCA I EDOCA     /HIGH ORDER 4 BITS INTO WORD 1
        TAD EDI         /GET THE CHAR FROM THE EDI BUFFER
        RTR
        RTR
        RAR             /PUT THE LOW ORDER BITS INTO AC 0-3
        AND ED7400
        TAD EDOPCH
        ISZ EDOCA
ED7400, 7400
        DCA I EDOCA     /LOW ORDER 4 BITS INTO WORD 2
        JMP EDOEND
EDIGCH, 0
        TAD EDOEOF
ED7700, SMA CLA		/INITIALIZED WITH 62X1
        JMP ED0BFR      /MAKE SURE BUFFER IS ZEROED
        RRFC
EDO232, 232
EDO336, 336             /FALL THROUGH CONSTANTS TO STALL FOR TIME
EDO177, 177
EDTIME,	RSKE		/END OF FILE?
	JMP EDCHLP
	DCA EDOEOF
        TAD EDO232      /SEND ^Z TO BUFFER
ED0BFR, DCA EDI
        JMP EDIXX       /AND 0 GARBAGE CHARACTER
EDCHLP, TAD EDOTMP
        DCA EDI
        RSKF
        JMP EDTIME      /READER NOT READY - CHECK TIMING
        RRRB            /READER READY - READ CHAR
EDIXX,  DCA EDOTMP      /BUFFER READER BY ONE CHARACTER TO ELIMINATE
        TAD EDI         /GARBAGE CHARACTER AT END OF TAPE
        JMP I EDIGCH    /AND RETURN
EDOERR, CLA CLL CML RAR /SIGNAL A "PERMANENT I/O ERROR" ON THE DEVICE
        JMP EDOXIT-2

PCDF,   CDF 0
EDOTMP, 0
EDOWC,  0
EDOM3,  -3
$$$$$$$$