{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: INPUTJDF82)}}
====== INPUTJDF82 ======
(George Source)
**Macros used:** [[george:macro:ABANDCOM|ABANDCOM]], [[george:macro:ACROSS|ACROSS]], [[george:macro:ADDREC|ADDREC]], [[george:macro:BACKSPACE|BACKSPACE]], [[george:macro:BXE|BXE]], [[george:macro:BXU|BXU]], [[george:macro:CLOSE|CLOSE]], [[george:macro:CLOSEABANDON|CLOSEABANDON]], [[george:macro:CLOSEMULT|CLOSEMULT]], [[george:macro:COMERRX|COMERRX]], [[george:macro:ENDCOM|ENDCOM]], [[george:macro:ERASEMULT|ERASEMULT]], [[george:macro:ERROR|ERROR]], [[george:macro:FINDCORE|FINDCORE]], [[george:macro:FREECORE|FREECORE]], [[george:macro:GEOERR|GEOERR]], [[george:macro:GETCORE|GETCORE]], [[george:macro:HUNT2|HUNT2]], [[george:macro:HUNTW|HUNTW]], [[george:macro:INFINB|INFINB]], [[george:macro:INPUTFULL|INPUTFULL]], [[george:macro:LONGSET|LONGSET]], [[george:macro:LONGSTOP|LONGSTOP]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MHUNT|MHUNT]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:NAME|NAME]], [[george:macro:PARAMSUB|PARAMSUB]], [[george:macro:READ|READ]], [[george:macro:SEG|SEG]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:STEP|STEP]], [[george:macro:TESTMULT|TESTMULT]], [[george:macro:TESTREP2|TESTREP2]]
22FL SEG INPUTJDF,74,P STANSFIELD,USERCOMS
22^= [
23DW [
23YG SEGENTRY K1INPUTJDF,Z1INPUTJDF
24D6 [
24XQ [THIS SEGMENT IS ENTERED FROM PREPREAD IF INPUT IS FROM JDF/MDF
25CB [
25X2 [
26BL [THIS SUBROUTINE STEPS FOR APPENDING A RECORD WHOSE LENGTH IS IN X1 AND
26W= [MOVES THE RECORD INTO THE FUAB
27*W [
27TG XAPP SBX 5 FX1
28*6 STEP LDX 2 A1(2)
28SQ ... SBN 2 503 [ >2000 CHARACTERS IN RECORD ?
29#B BNG 2 XSTEP [ J IF OK
29S2 BRN M2XCEED [ ERROR-RECORD OVERFLOW
2=?L XSTEP
2=R= ... ADN 2 503
2?=W STEP ,0(2),XBREAK
2?QG TESTREP2 FILEFULL,XFULL,REFUSED,REFUS,APPWAIT,WAIT
2#=6 MHUNTW 2,FILE,FRB
2#PQ LDX 4 2
2*9B LDX 1 A1(2)
2*P2 ADN 2 A1
2B8L MOVE 2 0(1)
2BN= ADX 5 FX1
2C7W EXIT 5 0
2CCN WAIT
2CMG LONGSET IWTDEST,XGEOERR
2CX# LONGSTOP XBREAK
2D76 XHUNT MHUNTW 2,FILE,FRB
2DLQ BRN STEP
2F6B [
2FL2 XALAS LDX 3 FX2
2G5L NEXT HUNT2 3,CPB,CALAS
2GK= LDX 0 CPBCPLEV(3)
2H4W BNG 0 NEXT
2HJG EXIT 5 0
2J46 [
2JHQ [THIS SUBROUTINE READS A RECORD FROM JDF AND TESTS IT FOR TERMINATOR.
2K3B [THE TERMINATOR HAS BEEN READ: EXIT 7 0
2KH2 [THE TERMINATOR HAS NOT BEEN READ: EXIT 7 1
2L2L [
2LG= SREAD LDX 1 AWORK3(2) [AWORK3=1 IF MULTIFILE
2L^W SBX 7 FX1
2MFG READ 1(1)
2NDQ CALL 5 XALAS
2NYB MHUNT 2,FILE,FRB [FIND THE RECORD BLOCK
2PD2 LDX 1 A1(2)
2PXL BZE 1 XERR [J IF NO RECORD
2QC= ADDREC 3,0 [STEP THE RECORD COUNT
2QWW SMO FX2
2RBG LDX 3 AWORK1
2RW6 ANDN 3 #4000
2S*Q BZE 3 NOPS [ PARAMSUB SPECIFIED?
2STB LDCT 4 #600
2T*2 ANDX 4 A1+1(2)
2TSL BNZ 4 SPARECHARS
2W#= LDN 4 1
2WRW SPARECHARS
2X?G ADX 4 A1(2)
2XR6 SBN 4 3
2Y=Q BZE 4 NOPS
2YQB SLC 4 2
2^=2 LDX 5 A1+1(2)
2^PL HUNTW 1,FI,FUTILITY
329= NAME 2,FI,FUTILITY
32NW BPZ 1 SETFRB
333? ... LDX 3 2
33*N ... GETCORE A1(3),1
33N6 FINDCORE 1
347Q SETFRB
34MB NAME 1,FILE,FRB
3572 ANDX 5 BITS22LS
35LL STO 5 A1+1(1)
366= PARAMSUB FI,FUTILITY,A1+2,FILE,FRB,,4
36KW TESTREP2 NALL,XGER,IPID,PIDERR
375G LDX 4 ACOMMUNE2(2)
37K6 MHUNTW 2,FILE,FRB
384Q #SKI K6PREPREAD>599-599
38JB BLOCKTRA 2,FILEFRB
3942 LDX 3 4
39HL SLC 4 2
3=3= SBN 4 A1*4
3=GW LDN 5 0
3?2G SRL 45 2
3?G6 BZE 5 NOODD
3?^Q ORS 5 A1+1(2)
3#FB ADN 4 1
3#^2 ADX 3 2
3*DL SLC 5 2
3*Y= LDN 0 4
3BCW SBX 0 5
3BXG LDN 5 #20
3CC6 SPACEFILL
3CWQ DCH 5 0(3)
3DBB BCHX 3 £
3DW2 BCT 0 SPACEFILL
3F*L NOODD STO 4 A1(2)
3FN3 ...NOPS ADX 7 FX1
3FQL ... LDX 0 A1(2)
3FT9 ... SBN 0 3
3FXS ... BNG 0 NOTRM
3G2D ... BXE 6 A1+2(2),YTRM
3G7M ...NOTRM
3G#W LDX 0 A1+1(2)
3GSG ANDN 0 #7700
3H#6 BZE 0 YNTM [J IF GRAPHIE
3HRQ LDCH 5 A1+2(2)
3J?B SBN 5 #74 [OF LAST RECORD ALPHA?
3JR2 BNZ 5 YNTM [J IF NOT
3K=L LDX 5 A1+2(2)
3KQ= SLL 5 6 [REMOVE ALPHA
3L9W LDCH 0 A1+3(2)
3LPG ORX 5 0 [INSERT CHARACTER
3M96 BXU 6 5,YNTM [TEST FOR TERMINATOR
3MNQ YTRM EXIT 7 0 [TERMINATOR HAS BEEN READ
3N8B YNTM EXIT 7 1 [TERMINATOR HAS NOT BEEN READ
3NN2 [
3P7L [
3PM= [
3Q6W Z1INPUTJDF
3QLG LDX 6 AWORK2(2) [PICK UP TERMINATOR
3R66 LDN 7 1
3RKQ TESTMULT NOTDEPTH1
3S5B LDN 7 0
3SK2 NOTDEPTH1
3T4L STO 7 AWORK3(2)
3TJ= RD CALL 7 SREAD [READ RECORD
3W3W BRN TERM
3WHG NOTTM CALL 5 XAPP
3X36 FREECORE 4 [FREE RECORD BLOCK
3XGQ BRN RD [READ NEXT RECORD
3Y2B TERM
3YG2 MHUNTW 3,FILE,FRB [FIND THE RECORD BLOCK
3Y^L NAME 3,ADATA,ALINE
3^F= ACROSS TIDYREAD,1
3^YW XFULL INPUTFULL XBRK,XHUNT,JOVER1
42DG NGN 6 1 [ JDF,MDF IS THE OMLY FILE NOW OPEN
42Y6 STO 6 AWORK3(2) [ AWORK3=-1 TO REFLECT LEVEL 0
43CQ LDX 6 AWORK2(2)
43XB SRD CALL 7 SREAD
44C2 BRN QUIT
44WL FREECORE 2
45B= BRN SRD
45TW QUIT FREECORE 2 [FREE THE INPUT BUFFER
46*G CALL 5 SINFIN [UNSET BIT FOR FINISH
46T6 ENDCOM
47#Q XBRK
47SB CALL 5 SINFIN
48#2 ABANDCOM
48RL XERR [COME HERE IF READ OFF END OF FILE
49?= LDX 2 FX2
49QW LDX 1 AWORK3(2)
4==G BACKSPACE 1(1)
4=Q6 ERROR BMISS,JTERM [ERROR 'TERMINATOR MISSING'
4?9Q CALL 7 SCLOSE
4?PB ENDCOM
4#92 REFUS
4#NL CALL 7 SCLOSE
4*8= CALL 3 XCOMERR
4*MW +EREXQUOTA
4B7G PIDERR
4BM6 CALL 7 XABAND [ CLOSE FILE+ABANDON
4C6Q CALL 3 XCOMERR
4CLB +JPARIDERR
4D62 XCOMERR
4DKL LDX 3 0(3)
4F5= COMERRX 3
4FJW XGER GEOERR 1,PSLEVEL
4G4G XBREAK
4GJ6 CALL 7 SCLOSE
4H3Q ABANDCOM
4HHB SCLOSE
4J32 SBX 7 FX1
4J88 ... LDX 0 AWORK3(2)
4J*B ... BNG 0 XENDC [J IF FILE CLOSED BY INPUTFULL
4JGL TESTMULT STRM
4K2= CLOSE
4KFW BRN XENDC
4K^G STRM CLOSE
4LF6 CLOSEMULT
4LYQ XENDC
4MDB CALL 5 SINFIN
4MY2 ADX 7 FX1
4NCL EXIT 7 0
4NX= [
4PBW [ THIS SUBROUTINE UNSETS BIT FOR FINISH COMMAND
4PWG SINFIN
4QB6 INFINB
4QTQ EXIT 5 0
4R*B #
4RT2 M2XCEED
4S4S ... LDX 2 FX2
4S#L CALL 7 XABAND [ CLOSE FILE+ABANDON
4SS= CALL 3 XCOMERR [ ERROR-RECORD OVERFLOW
4T?W +JRECOFLOW
4TRG XABAND
4W?6 SBX 7 FX1
4WD# ... LDX 0 AWORK3(2)
4WKG ... BNG 0 XENDC [J IF FILE CLOSED BY INPUTFULL
4WQQ TESTMULT XMULT [ J IF M,F
4X=B CLOSEABANDON
4XQ2 BRN XENDC
4Y9L XMULT CLOSE
4YP= ERASEMULT
4^8W BRN XENDC
4^B4 XGEOERR
4^H= GEOERR 1,LONGSET?
4^NG SEGENTRY K99INPUTJDF
5286 MENDAREA 100,K99INPUTJDF
52MQ #END
^^^^ ...47027426001100000000