Trailing-Edge
-
PDP-10 Archives
-
decuslib20-06
-
decus/20-153/seekit.mac
There is 1 other file named seekit.mac in the archive. Click here to see a list.
TITLE SEEKIT - LOOKUP FILES FOR COBOL
T1=1
T2=2
T3=3
T4=4
T5=5
T6=6
J=16
P=17
CHAN==17 ;USE CHAN 17 WITH DEC STANDARD LIBOL
ENTRY SEEKIT
SEEKIT: PUSH P,T1
PUSH P,T2
PUSH P,T3
PUSH P,T4
PUSH P,T5
PUSH P,T6
MOVE T6,@(J) ;GET TABLE ADDRESS IN T6
MOVE T2,(T6) ;GET THE DEVICE
JUMPN T2,OPENIT ;JUMP IF NOT DEFAULT DEVICE
MOVSI T2,'DSK' ;ASSUME "DSK"
OPENIT: MOVEI T1,17 ;BINARY DUMP
SETZ T3, ;NO BUFFERS
OPEN CHAN,T1 ;CHANNEL 0 IS FREE BY DEFINITION
JRST NODEV
MOVE T1,3(T6) ;PROJECT #
PUSHJ P,ADJUST
HRL T4,T3
SETZ T3,
MOVE T1,4(T6) ;PROGRAMMER #
PUSHJ P,ADJUST
HRR T4,T3
MOVE T1,1(T6) ;GET FILE NAME
MOVE T2,2(T6) ;AND EXT
SETZB T3,T5 ;CLEAR FLAG
LOOKUP CHAN,T1 ;LOOKUP FILE
SETO T5,
MOVE T1,[POINT 6,5(T6)] ;POINTER TO FLAG
MOVEI T2,21 ;ASSUME "YES"
SKIPE T5 ;WAS I RIGHT?
MOVEI T2,20 ;OF COURSE NOT
IDPB T2,T1 ;DEPOSIT ANSWER
RELEAS CHAN, ;RELEASE THE I/O CHANNEL
POP P,T6
POP P,T5
POP P,T4
POP P,T3
POP P,T2
POP P,T1
POPJ P, ;RETURN
ADJUST: IDIVI T1,^D10 ;DIVIDE BY 10
JUMPE T1,.+4
PUSH P,T2
PUSHJ P,ADJUST
POP P,T2
IMULI T3,10 ;MULTIPLY BY 8
ADD T3,T2 ;AND ADD
POPJ P,
NODEV: OUTSTR [ASCIZ/SEEKIT CANNOT OPEN DEVICE
/]
EXIT
END