{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: ONLINEA867)}}
====== ONLINEA867 ======
(George Source)
**Macros used:** [[george:macro:ACROSS|ACROSS]], [[george:macro:CHEKLFN2|CHEKLFN2]], [[george:macro:COMBRKIN|COMBRKIN]], [[george:macro:COMERRX|COMERRX]], [[george:macro:ENDCOM|ENDCOM]], [[george:macro:FINDOC|FINDOC]], [[george:macro:FINDPEREC|FINDPEREC]], [[george:macro:FJOCA|FJOCA]], [[george:macro:FREECORE|FREECORE]], [[george:macro:GEOERR|GEOERR]], [[george:macro:HLSXONCH|HLSXONCH]], [[george:macro:INFORM|INFORM]], [[george:macro:ISPER|ISPER]], [[george:macro:LONGOFF|LONGOFF]], [[george:macro:LONGSTOP|LONGSTOP]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MFREE|MFREE]], [[george:macro:MFREEW|MFREEW]], [[george:macro:MHUNT|MHUNT]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:OUTPARAM|OUTPARAM]], [[george:macro:OUTPAUSE|OUTPAUSE]], [[george:macro:PARABEG|PARABEG]], [[george:macro:PARALYSE|PARALYSE]], [[george:macro:PARANUMB|PARANUMB]], [[george:macro:PERCON|PERCON]], [[george:macro:PERON|PERON]], [[george:macro:PROPERTY|PROPERTY]], [[george:macro:PUTPERENT|PUTPERENT]], [[george:macro:RELPERENT|RELPERENT]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETUPCORE|SETUPCORE]], [[george:macro:SINMAC3|SINMAC3]], [[george:macro:SPARABEG|SPARABEG]], [[george:macro:SPARANOT|SPARANOT]], [[george:macro:TESTREP|TESTREP]], [[george:macro:TESTREP2|TESTREP2]], [[george:macro:TESTREPNOT|TESTREPNOT]], [[george:macro:ZERRORX|ZERRORX]], [[george:macro:ZERRORY|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