(George Source)
Macros used: ACROSS, CHEKLFN2, COMBRKIN, COMERRX, ENDCOM, FINDOC, FINDPEREC, FJOCA, FREECORE, GEOERR, HLSXONCH, INFORM, ISPER, LONGOFF, LONGSTOP, MENDAREA, MFREE, MFREEW, MHUNT, MHUNTW, OUTPARAM, OUTPAUSE, PARABEG, PARALYSE, PARANUMB, PERCON, PERON, PROPERTY, PUTPERENT, RELPERENT, SEGENTRY, SETUPCORE, SINMAC3, SPARABEG, SPARANOT, TESTREP, TESTREP2, TESTREPNOT, ZERRORX, ZERRORY
22FL #SEG ONLINEA8 [A C PUTMAN 22LS ...# (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1983. 22S3 #OPT K0ONLINEA=0 236D #LIS K0ONLINEA>K0ONLINE>K0COMMAND>K0ALLGEO 23DW 8HONLINEA 23YG # 24D6 SEGENTRY K1ONLINEA,SK1ONLINEA 24XQ # 25CB TBL1 #00010100 [TABLE OF BRANCH 25X2 #01020303 [MODIFIERS - TYPE DEPENDENT 26BL #05120404 26W= #02030506 27*W #06060606 27TG #05050505 28*6 #10120404 28SQ #11060606 29#B #06060606 29S2 #06060606 2=?L #06060606 2=R= #06060606 2=YD #SKI JSKI19<1$1 2?5L ( 2?=W #06060606 2?QG #06050505 2?SP ) 2?WY #SKI JSKI19 2?^7 ( 2#3B #06061314 2#5K #14050505 2#7S ) 2#=6 #05050605 2#PQ #07060606 2*9B TBL2 BRN SI 2*P2 BRN SO 2B8L BRN MT 2BN= BRN XBS 2C7W BRN MX 2CMG BRN XOTIC [BRANCH FOR EXOTIC PERIPHERALS 2D76 BRN XOTIC ["SPECIAL" PERI. : TREAT AS EXOTIC 2DLQ BRN OLCI 2F6B BRN XIPB 2FL2 BRN XIPC 2HJG BRN XDR 2HM5 #SKI JSKI19 2HPN ( 2HS? BRN XFH 2HWW BRN XFH 2H^F ) 2H^P # 2H^^ #SKI JWPHASE4 2J29 ( 2J2F XONLINE 2J2P SBX 5 FX1 2J2^ HLSXONCH XBI,AWORK1(2),SLHON [TELL HLS OF TYPE/UNIT NO 2J39 ADX 5 FX1 2J3F EXIT 5 0 2J3P ) 2J46 # 2JHQ # ANALYSE PARAMETERS , GIVE COMMAND ERROR IF INVALID . GO TO ROUTINE 2K3B # APPROPRIATE TO PERIPHERAL TYPE ; SLOW PERIPHERALS DEALT WITH HERE 2KH2 # 2L2L SK1ONLINEA 2L7S #UNS ASI 2L*2 SINMAC3 OL [MACRO FOR SECURITY INTERFACE 2LG= LDN 4 1 2L^W LDCT 5 #320 2MFG PARABEG 1,4 [GET PERIPHERAL PARAMETER 2M^6 MHUNT 3,CPB,CUNI 2NDQ LDX 4 ANUM(3) 2NYB BNG 4 OUTP [BRANCH IF NO PARAMETER 2PD2 LDX 4 ATYPE(3) 2PXL ANDN 4 #7777 [ISOLATE PARAM. NO. 2QC= SBN 4 1 2QWW BNZ 4 PERR [PARAM. ERROR IF NOT 1ST PAR. 2RBG PERCON [CONVERT PERIPHERAL PARAM. 2RW6 TESTREP PARERR,XIT [ERROR IN PERI PARAM 2S*Q MFREE CPB,CUNI 2STB MHUNTW 3,CPAR,GPERCON [GET PERCON REPLY BLOCK. 2T*2 LDX 3 A1(3) [TYPE / UNIT NO. 2TSL STO 3 AWORK1(2) 2W#= RELPERENT 3 [RELEASE REPIPHERAL IF NECESSARY 2WRW SRL 3 15 [ISOLATE TYPE. 2X?G SRC 3 2 [MAKE TYPE A CHARACTER MODIFIER 2XR6 SMO 1 2Y=Q LDCH 4 TBL1(3) [ACCESS THE RELEVANT BRANCH MODIFIER 2YQB SLC 3 2 [RESTORE TYPE. 2^=2 LDX 7 4 [0 IF SLOW INPUT ; 1 IF SLOW OUTPUT 2^PL SMO 4 [AND 329= BRN TBL2 [BRANCH TO THE NECESSARY SUBROUTINE 32NW # 338G MT ACROSS OLMTA,1 [MAGNETIC TAPE PERIPHERAL 33N6 XBS ACROSS SOUP,1 [BRANCH FOR MARK 7 BACKING STORE 33SX MX 34?= ACROSS ONLINEB,1 [MULTIPLEXORS AND UNIPLEXORS. 34D3 XIPB 34WB ACROSS ONLINEB,2 3537 XOTIC 357Y #SKI JWPHASE4 35#P CALL 5 XONLINE 35FG ACROSS ONLINEC,1 [EXOTIC PERIPHERALS 35LL XJS ACROSS ONLINEC,2 [PSEUDO OFF-LINE SLOW PERIPHERALS 366= OLCI ACROSS ONLINEC,3 [COMMAND ISSUER 36?L XIPC 36F2 #SKI JWPHASE4 36LB CALL 5 XONLINE 36RQ ACROSS IPCOPENB,1 [INTER PROGRAM COMMUNICATOR 36^6 XDR 376G #SKI JWPHASE4 37?W CALL 5 XONLINE 37F= ACROSS DRUM,4 37LT #SKI JSKI19 37NJ ( 37Q? # 37S2 # ONLINE FILE READER,WRITER,HANDLER : SET UP X7 FOR ONLINEC 37TP # 37XD XFH SBN 7 #13 37^7 BRN XJS 382W ) 384Q # 38JB # ONLINE SLOW PERIPHERAL ; CHECK DOCUMENT NAME FORMAT 3942 # 39HL SI LDN 7 0 [SET SW. FOR SLOW INPUT PERIPHERALS. 3=3= SO PARANUMB 6 [SLOW OUTPUT PERIPHERALS. 3=GW SBN 6 2 3?2G BNG 6 XJS [NO DOCUMENT NAME SPECIFIED 3?7N #SKI JWPHASE4 3?#W CALL 5 XONLINE 3?G6 BZE 7 NPRO [DO ISPER FOR INPUT PERIPHERALS 3?^Q STO 6 AWORK4(2) [USED BY LISTFILE ROUTINES 3#FB BZE 6 NOIS [2 PARAMETERS ONLY : NO PROPERTIES 3#^2 PROPERTY NOTIS,2,,1,1 [ANALYSE PROPERTIES FOR OUTPUT 3*DL NOTIS LDN 7 1 [PROPERTY MAY HAWE ZEROISED X7 3*Y= BRN NOIS 3BCW NPRO LDCT 0 #200 [B1 INDICATES 'ONLINE' TO ISPER 3BXG ORX 3 0 [PERIPHERAL TYPE IN B18-23 3CC6 ISPER 3,XBI 3CWQ TESTREP NOTAV,NOIS 3DBB TESTREPNOT OK,PERNA [BRANCH IF NOT. 3DW2 NOIS LDN 5 0 [SWITCH 3F*L MFREEW CPAR,GPERCON 3FT= SPARANOT 2 [OBTAIN THE DOCUMENT NAME 3G#W MHUNT 3,CPB,CUNI 3GSG LDX 6 ANUM(3) 3H#6 BZE 6 PN1 [DOC NAME NULL 3HRQ #SKI K6ONLINE>99-99 3J?B BNG 6 PN 3JR2 LDCH 4 APARA(3) [J. IF DOC. NAME IS NOT 3K=L SBN 4 #12 [PREFIXED BY A COLON. 3KQ= BNZ 4 SIM 3L9W LDN 5 2 [PARAM. NO. 3LPG PARALYSE #36,,5 [SPLIT DOC. NAME ABOUT ".". 3LWN ...#UNS ANSTOOMANY 3M3W ... TESTREP2 TOOMANY,XTOOMANY 3M96 PARANUMB 4 [J. IF NOT JUST TWO PARTS. 3MNQ #SKI K6ONLINE>99-99 3N8B BZE 4 PN 3NN2 SBN 4 2 3P7L BNZ 4 XDOCN 3PM= LDN 4 1 [CHAR. CT. 3Q6W LDCT 5 #120 [COLON. 3QLG SPARABEG 1,4 3R66 BRN PSIM2 3RKQ PSIM1 SPARANOT 2 [2ND. PARAM. FROM CPB/CMULTI BLOCK. 3S5B MFREE CPB,CMULTI 3SK2 LDN 4 0 [CLEAR SWITCH. 3T4L PSIM2 MHUNT 3,CPB,CUNI 3TJ= SIM CHEKLFN2 XDOCN,XDOCN,3 [%A IS ACTUALLY GEOERR IN MOST CASES. 3W3W BZE 5 SPS 3WHG FREECORE 3 [FREE CPB/CUNI BLOCK. 3X36 BNZ 4 PSIM1 [J. FOR 2ND. TIME THROUGH. 3XGQ ANDN 6 #7777 [MASK OUT DOC. NAME CHARACTER CT. 3Y2B SPS BNZ 7 NMOK 3YG2 # 3Y^L # INPUT : LOOK FOR DOCUMENT REQUESTED ; INFORM OPERATORS IF MISSING 3^F= # 3^YW Z1 FINDOC XBI [FIND THE DOCUMENT: INITIALLY X7=0. 42DG MHUNTW 3,ADATA,ADOC 42Y6 LDX 4 AWORK1(2) [TYPE / UNIT NUMBER 43CQ LDX 5 A1(3) [J. IF ZERO HEADER : RECORD NOT 43XB BZE 5 NOFD [FOUND AND FINDOC HAS LONGSET #60. 44C2 LDX 0 A1+1(3) 44WL SRL 0 12 [POINTER TO PERI WDS IN DOC BLOCK 45B= #SKI K6ONLINE>99-99 45TW ( 46*G SMO 0 46T6 ERX 4 0(3) [COMPARE WITH TYPE IN ADOC BLOCK. 47#Q SRL 4 15 47SB BNZ 4 RONGPER [DIFFERENT : FINDOC ERROR. 48#2 ) 48RL SMO 0 49?= LDEX 6 1(3) [GEOG NO. FROM 2ND PERIPHERAL WORD 49QW MFREE CPB,CUNI [DOCUMENT NAME PARAMETER 4==G FREECORE 3 [ADATA/ADOC BLOCK 4?9* FINDPEREC 3,APGEOG,6 [POINT TO DEVICE LIST 4?9Q PERON 3 [MARK PERIPHERAL ONLINE 4?PB PUTPERENT AWORK1(2),3 [INSERT ONLINE ENTRY IN PRB 4#92 XIT ENDCOM 4#NL # 4*8= NOFD SRL 4 15 [GET TYPE IN B15-23 4*MW FREECORE 3 [ADATA/ADOC BLOCK 4B7G OUT ISPER 4,XBI 4BM6 TESTREP OK,PAV [PERIPHERAL NOT ALLOCATED EXISTS 4C6Q TESTREPN NOTAV,NOP [READERS WRONGED SINCE LAST ISPER 4CLB LONGSTOP XBI [WAIT FOR PERIPHERAL OF REQUIRED TYPE 4D62 BRN Z1 [WAS EVENT REQUIRED DOCUMENT? 4DKL PAV OUTPARAM 6,APARA,CPB,CUNI 4F5= INFORM 1,ALODOC,0 [PLEASE LOAD DOCUMENT TO CENTRAL CONS 4FJW OUTPAUSE XBI,Z1,Z3,2,RETY [WAIT FOR 2 MINS. 4G4G BRN OUT [LONGSET STILL OPERATIVE 4GJ6 # 4H3Q # OUTPUT : PREPARE GOUT/INFO BLOCK FOR PASSING TO LISTPARS 4HHB # 4J32 NMOK LDX 5 6 [NO. OF CHARS. IN DOC. NAME. 4JGL ADN 5 GHEAD-A1+1*4+3 4K2= SRL 5 2 4KFW SETUPCORE 5,2,GOUT,INFO [OBTAIN LISTPARS CORE BLOCK 4KJF STOZ GOUTKEY1(2) 4KM4 LDN 3 GOUTKEY1(2) 4KPM LDN 4 GOUTKEY2(2) 4KS= MOVE 3 11 4KWT [ 4K^G STO 5 A1(2) [REC. HEADER SET 4LF6 LDCT 4 #400 4LYQ STO 4 GMODE(2) [MARKER TO SAY ENTRY FOR ONLINE 4MDB MHUNT 1,CPB,CUNI [DOCUMENT NAME BLOCK 4MY2 STO 6 GSUSE(2) [CHARACTER CT. 4NCL LDN 3 APARA(1) [POINT TO START OF DOCUMENT NAME 4NX= LDN 4 GHEAD(2) 4PBW SMO 6 4PWG MVCH 3 0 4QB6 LDX 5 2 [SAVE POINTER TO GOUT/INFO BLOCK 4QTQ FREECORE 1 4R*B LDX 7 AWORK1(2) 4RT2 LDX 4 JOBNO(2) 4S#L LDX 2 5 [RESTORE POINTER TO GOUT/INFO BLOCK 4SS= STO 7 GOPTY(2) [PERIPHERAL TYPE / UNIT NO. 4T?W STO 4 GJOBS(2) [STORE JOB NUMBER 4TRG FJOCA 3,FX2 [FIND JOB BLOCK 4W?6 LDX 2 5 4WQQ LDN 4 JUSER(3) 4X=B LDN 5 GUSER(2) 4XQ2 MOVE 4 3 [INSERT USER NAME 4Y9L LDN 4 JNAME(3) 4YP= LDN 5 GJOBN(2) 4^8W MOVE 4 3 [INSERT JOB NAME 4^NG STOZ GCOUNT(2) [INITIALISE LISTFIND SWITCH 5286 ACROSS LISTPARS,1 [OBTAIN THE OUTPUT PERIPHERAL 52MQ # 537B # VARIOUS COMMAND ERRORS AND GEORGE ERRORS 53M2 # 546L PJDOCN +JDOCN [DOCUMENT NAME. 54L= PAPER +APER [PERIPHERAL. 555W ZERRORY 55KG # 5656 XBI COMBRKIN 56JQ # 574B XDOCN LDX 5 PJDOCN(1) 57J2 CALL 1 OUT2X 583L +ADOCER [%C FORMAT ERROR. 58H= PN1 LDX 5 PJDOCN(1) 592W PMIS CALL 1 OUT2X 59GG +JPARMIS [%C PARAMETER MISSING. 5=26 OUTP LDX 5 PAPER(1) 5=FQ BRN PMIS 5=^B OUT2X LDX 4 0(1) 5?F2 COMERRX 4,5 [OUTPUT RELEVANT ERROR MESSAGE 5?YL NOP LONGOFF 5#D= PERNA SPARANOT 1 5#XW ZERRORX JPERNA [PERIPHERAL NOT AVAILABLE 5*CG PERR ZERRORX JSEQ [PARAMETER NOT IN SEQUENCE 5*X6 Z3 ZERRORX JONLINE [REQD NAME NOT FOUND 5B4# #SKI JWPHASE4 5B9G SLHON ZERRORX ERHLSONL [HLS FORBIDS ACQUISITION 5B=B ...#UNS ANSTOOMANY 5B?= ...( 5B#6 ...XTOOMANY 5B*2 ... ZERRORX JMAXPAR 5B*W ...) 5BBQ # 5BWB #SKI K6ONLINE>99-99 5CB2 ( 5CTL PN GEOERR 1,RONGPATH [PARAMETER MISSING AFTER PARANUMB 5D*= RONGPER 5DSW GEOERR 1,WRONGPER [DOCUMENT ON INCORRECT PERIPHERAL 5F#G ) 5FS6 MENDAREA 10,K100ONLINEA 5G?Q #END ^^^^ ...45615731000100000000