{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: REPERT867)}}
====== REPERT867 ======
(George Source)
**Macros used:** [[george:macro:BXE|BXE]], [[george:macro:CHNUMCOD|CHNUMCOD]], [[george:macro:COMERRX|COMERRX]], [[george:macro:ENDCOM|ENDCOM]], [[george:macro:FREECORE|FREECORE]], [[george:macro:GEOERR|GEOERR]], [[george:macro:GEOPACK|GEOPACK]], [[george:macro:JFREE|JFREE]], [[george:macro:LADDP|LADDP]], [[george:macro:LFPACTLF|LFPACTLF]], [[george:macro:LPROP|LPROP]], [[george:macro:LTYPE|LTYPE]], [[george:macro:MHUNT|MHUNT]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:MONOUTX|MONOUTX]], [[george:macro:OUTBLOCK|OUTBLOCK]], [[george:macro:OUTPACK|OUTPACK]], [[george:macro:OUTPACKX|OUTPACKX]], [[george:macro:PARABEG|PARABEG]], [[george:macro:PARANUMB|PARANUMB]], [[george:macro:PARSORTX|PARSORTX]], [[george:macro:PARUNACC|PARUNACC]], [[george:macro:SAWCEJX|SAWCEJX]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SPARANOX|SPARANOX]], [[george:macro:TESTREP2|TESTREP2]], [[george:macro:TRACE|TRACE]], [[george:macro:UNIFREE|UNIFREE]]
2278 ...#OPT K0REPERT=0
22#B ...#LIS K0REPERT>K0ALLGEO>K0GREATGEO>K0COMMAND
22FL #SEG REPERT8
22^= 8HREPERT
2394 ...[ (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1983
23DW SEGENTRY K1REPERT,POINT1
23GK ...[ THIS SEGMENT IMPLEMENTS THE REPERTOIRE COMMAND
23J# ...[ WHICH INTERROGATES/INFORMS THE SYSTEM OF THE
23L3 ...[ REPERTOIRE OF A CENTRAL LINE PRINTER.
23MQ ...[ THE 'REPERTOIRE' INCLUDES :-
23PF ...[ 1. THE CHARACTER SET (IF A TRAIN PRINTER)
23R8 ...[ 2. THE ASSUMED PRINT WIDTH
23SX ...[ 3. THE ASSUMED PAGELENGTH
23WL ...[ *************************
23YG [
24D6 [ DATA AREA
24XQ [
257J ...[ *************************
25CB PARTBL +6 [LENGTH PARAMETER
25X2 8HLENGTH
26BL +TLEN
26W= XLEN #20 [B19 SET IF LENGTH SPECIFIED
27*W +5 [WIDTH PARAMETER
27TG 8HWIDTH
28*6 +TWID
28SQ XWID #10 [B20SET IF WIDTH SPECIFIED
29#B +7 [CHARSET PARAMETER
29S2 8HCHARSET
2=?L +TCHA
2=R= XCHA #4 [B21 SET IF CHARSET SPECIFIED
2?=W XLP +2
2?QG ...XTRLP #20000
2#=6 XPP +160
2#PQ +132
2*9B +120
2*P2 +96
2B8L XLEMSK #7777
2B96 ...XCHMSK #77774777
2B9M ...[ MESSAGE IDENTIFIERS
2B=N ...XJRR +JRR
2B?P ...XJRRWI +JRRWI
2B#Q ...XJRRLE +JRRLE
2B*R ...XJNOPAR +JNOPAR
2BBS ...XJILLCH +JILLCH
2BCT ...XJSMALL +JSMALL
2BDW ...XJLARGE +JLARGE
2BFX ...XJINCAP +JINCAP
2BGY ...XJPARMIS +JPARMIS
2BH^ ...XJPERMIS +JPERMIS
2BK2 ...XJRES +JRES
2BL3 ...XJNOTCT +JNOTCT
2BM4 ...XJNOTTR +JNOTTR
2BN= [
2C7W [ ******************************
2CMG [ SUBROUTINE AREA
2D76 [ ******************************
2DLQ [
2F6B SPARPER
2FL2 [ THIS S/R SETS UP A GMON/ASET BLK & DOES AN OUTPACK
2G5L [ FOR THE PERIPHERAL PARAM. IN THE MESSAGE
2GK= SBX 7 FX1
2H4W LDN 5 6
2HJG OUTBLOCK 5
2J46 ST1 MHUNTW 2,CPAR,JSCE
2JHQ GEOPACK 4,JSCEA(2)
2K3B OUTPACK 4,1,GEOPER,ST1 [J TO ST1 IF COORD.
2KH2 ADX 7 FX1
2L2L EXIT 7 0
2LG= [
2L^W SPARNUM
2MFG [ THIS S/R DOES AN OUTPACKX FOR THE NUMBER PARAM.
2M^6 SBX 7 FX1
2NDQ LDN 4 1
2NYB LDN 5 JPDNUMA
2PD2 OUTPACKX 3,4,5,PARM [J TO PARM IF COORD.
2PXL MONOUTX 6
2QC= ADN 7 1
2QWW PARM ADX 7 FX1
2RBG EXIT 7 0
2RW6 SERR
2S*Q SBX 7 FX1
2STB MHUNTW 3,CPAR,JSCE
2T*2 LDX 4 JSCEP(3)
2TSL FREECORE 3
2W#= SRL 4 12
2WRW ... SPARANOX 4
2X?G ADX 7 FX1
2XR6 EXIT 7 0
2Y=Q [
2YQB [ ENTRY POINT
2^=2 POINT1
2^PL ... PARANUMB 4 [HOW MANY PERAMETERS
329= STOZ AWORK1(2)
32NW BZE 4 NOPARAMS [NO COMMAND PARAMETERS
338G SBN 4 2
33N6 BPZ 4 START [J IF MORE THAN ONE PARAMETER
343T ... LDX 0 GSIGN
34CJ ... STO 0 AWORK4(2)
34R? ... BRN TPER [J TO DO PARSORT ETC.
3572 START
35LL STOZ AWORK4(2)
366= ... LDN 7 10
36KW SRET ADX 1 7 [SET MODIFIER FOR PARAMETER TABLE
375G LDX 5 PARTBL(1) [GET PARAMETER LENGTH
37K6 TLOOP
384Q PARABEG 1,5,PARTBL+1(1),,0 [PASS FIRST UNACCESSED PARAM
38JB MHUNT 3,CPB,CUNI [FIND BLOCK
3942 LDX 4 ANUM(3)
39HL BNG 4 SRET2 [NO PARAMETER
39L9 ... SMO 7
39NS ... LDX 0 PARTBL+4(1) [SET APPROP. BIT IN AWRK4
39W2 ... ORS 0 AWORK4(2) [TO INDICATE WHICH PARAM GIVEN
3=3= BZE 4 SETDEF [J IF NO FURTHER CHARS IN STRING
3=GW CHNUMCOD [CONVERT PARAMETER TO BINARY
3?G6 TESTREP2 CHNUMERR,TEND
3?^Q SMO 7 [FIND WHICH ROUTINE TO USE
3#FB LDX 6 PARTBL+3(1)
3#^2 ADX 6 1
3*DL LDX 5 ACOMMUNE1(2) [GET RESULT OF CONVERSION
3*Y= BRN (6) [J TO APPROPRIATE ROUTINE
3BCW SRET2 FREECORE 3 [NO PARAM FOUND - FREE BLK
3BXG SBN 5 3 [JUMP IF SHORTENED PARAMETER
3CC6 ... BNG 5 RETURN [HAS ALREDY BEEN LOOKED FOR
3CWQ LDN 5 2 [OTHERWISE SET PARAM LENGTH TO 2
3DBB ADX 1 7 [RESET MODIFIER
3DW2 BRN TLOOP [AND BRN BACK
3F*L RETURN
3FT= BZE 7 TPER [J IF ONLY PERIPHERAL PARAM REMAINS
3G#W [TO BE LOOKED AT
3GSG ... SBN 7 5 [UPDATE POINTER TO TABLE
3H#6 BRN SRET
3HRQ [
3J?B [CHARACTER SET PARAMETER
3JR2 [
3K=L TCHA
3KQ= LDCT 4 #400
3L9W SBN 5 48
3LPG BZE 5 TCHA1 [J IF 48 SPECIFIED
3M96 STOZ 4
3MNQ SBN 5 16
3N8B BZE 5 TCHA1 [J IF 64 SPECIFIED
3NN2 LDCT 4 #200
3P7L SBN 5 32
3PM= BNZ 5 YILLCH [J IF ILLEGAL CH. SET
3Q6W TCHA1
3QLG STO 4 AWORK1(2)
3R66 BRN RETURN [J TO LOOK FOR WIDTH PARAM
3RKQ [
3S5B [ WIDTH PARAMETER
3SK2 [
3T4L TWID
3TJ= STO 5 AWORK2(2)
3W3W LDN 6 141
3WHG BRN TCOMM [J TO COMMON CODE
3X36 [
3XGQ [ LENGTH PARAMETER
3Y2B [
3YG2 TLEN
3Y^L STO 5 AWORK3(2)
3^F= LDN 6 4076
3^YW TCOMM SBN 5 20
42DG BNG 5 YSMALL [PARAMETER VALUE TOO SMALL
42Y6 SBX 5 6
43CQ BPZ 5 YLARGE [PARAMETER VALUE TOO LARGE
43XB BRN RETURN
44C2 [ HERE WE DEAL WITH SETTING DEFAULT VALUES
44WL [ FOR CHARSET,WIDTH AND LENGTH
45B= SETDEF
45TW UNIFREE
46*G ... SBN 7 5 [X7 CONTAINS 8,4 OR ZERO
46T6 BZE 7 SDEFW [J TO SET DEFAULT WIDTH
47#Q BNG 7 SDEFL [J TO SET DEFAULT LENGTH
47SB ... LDN 4 0 [SET MODIFIER FOR CHARSET FLAG
48#2 ... BRN SRET [TO DEFAULT OF 64
48RL SDEFW
49?= NGN 0 1
49QW STO 0 AWORK2(2) [FLAG TO INDICATE H/W WIDTH ASSUMED
4==G ... BRN SRET [NOW J TO LOOK FOR LENGTH PARAM
4=Q6 SDEFL
4?9Q LDX 0 GSIGN
4?PB STO 0 AWORK3(2) [AWORK3 NEGATIVE IF DEFAULT LENGTH
4#92 ... BRN TPER
4#NL [NOW FOR THE PERIPHERAL PARAMETER
4*8= TPER PARUNACC [PASS NEXT UNACCESSED PARAMETER
4*MW MHUNT 3,CPB,CUNI
4B7G LDX 0 ANUM(3)
4BM6 BNG 0 YNOPER [NO PERIPHERAL PARAMETER
4C6Q LDX 5 JPARNUM(3) [PARAMETER NUMBER FOR PARSORTX
4CLB ... PARSORTX SBRK,5,INCOUT,GROPE
4D62 MHUNT 2,CPAR,JSCE
4DKL BNG 2 TEND [IF NO PERIPHERAL PARAM - ENDCOM
4F5= LDX 3 JSCEP(2) [GET POINTER TO DEVICE LIST
4FJW LTYPE 3,4 [PERIPHERAL TYPE TO X4
4FP# ... BXE 4 XLP(1),XYLP [J. PRINTER
4GCG ... BRN NCENT [J. NOT CENTRAL
4GJ6 [J TO NCENT IF DEVICE NOT PRINTER OR IF NOT CENTRAL PRINTER
4GWH ...[(OR IF NOT CENTRAL TAPE PUNCH - G.S. ONLY)
4HCW ...XYLP
4HHB ... SAWCEJX JSCEB(2),TCENT,NCENT,NCENT
4J32 [ FIRST CHECK IF DEVICE IS A TRAIN PRINTER
4JGL [
4K2= [ X3 HOLDS POINTER TO DEVICE LIST
4KFW TCENT
4KG7 ... LDX 2 FX2
4K^G LDX 0 K52+1(3) [B 10 SET IF TRAIN PRINTER
4LF6 ANDX 0 XTRLP(1)
4LYQ BNZ 0 TCHAR [J IF TRAIN PRINTER
4MDB LDX 6 GSIGN [IF NOT SET AWORK1 NEGATIVE
4MY2 STO 6 AWORK1(2) [FOR LATER USE
4NCL [ WAS CHARSET OF CH SPECIFIED?
4NX= [
4PBW TCHAR
4PWG LDX 0 AWORK4(2)
4QB6 ... ANDX 0 XCHA(1)
4QTQ BZE 0 NOCHA [NO CHARSET PARAMETER
4R*B BNG 6 NOTTR [COMERR - NOT TRAIN PRINTER
4RT2 NOCHA
4S#L LDX 0 AWORK4(2)
4SS= ... ANDX 0 XWID(1)
4T?W ... BZE 0 TRR [NO WIDTH PARAMETER
4TRG ...[ NOW GET H/W WIDTH OF PRINTER
4W?6 [
4WQQ ... LPROP 3,4 [PICK UP PROPERTY BITS
4Y9L ... LDN 7 160
4YP= ... SRC 4 5
4^8W ... BNG 4 TSTOW [J IF 160 PP
4^NG ... SBN 7 28
5286 ... SLC 4 3
52MQ ... BNG 4 TSTOW [J IF 132 PP
537B ... SBN 7 12
53M2 ... SRC 4 2
546L ... BNG 4 TSTOW [J IF 120 PP
54L= ... SBN 7 24
555W ...TSTOW
56JQ LDX 0 AWORK2(2)
574B BNG 0 TNEXT [J IF H/W WIDTH ASSUMED
57J2 SBX 7 0
583L BNG 7 YINCAP [WIDTH SPECIFIED > H/W WIDTH
588S ... BRN TRR
58B3 ...TNEXT
58ND ... STO 7 AWORK2(2)
5984 ...TRR
5=26 LDX 0 AWORK4(2) [IF INTERROGATORY REPERTOIRE
5=FQ BNG 0 TINT [GO ON TO OUTPUT MESSAGES
5=^B [ OTHERWISE CHECK IF PRINTER FREE OR WAITING FOR PROPERTY ATTR.
5?F2 ... JFREE 3,TFREE [J IF PRINTER FREE
5?YL MHUNTW 3,CPAR,JSCE [ELSE CHECK WAITING STYLE
5#D= GEOPACK 4,JSCEA(3)
5#XW LFPACTLF 4,3 [LOCATE ACTLF
5*CG BNG 3 YNREQ [J IF NO ACTLF
5*X6 LDEX 0 CLONG1(3)
5BBQ SBN 0 #73
5BWB BNZ 0 YNREQ [J IF WS NOT #73
5CB2 [ NOW CHECK ON PARAMETERS GIVEN AND SET
5CTL [ APPROPRIATE BITS IN DEVICE LIST AND APIA
5D*= TFREE
5DSW LDX 2 FX2
5G48 ... MHUNTW 3,CPAR,JSCE
5G#= ... LDX 4 JSCEP(3)
5GHS ... LDX 7 AWORK4(2)
5GJ4 ... ANDX 7 XCHA(1)
5GJ9 ... LADDP 4,3 [X3 = PNTR TO APIA
5GJB ... BZE 7 SWID [J IF CH. NOT SPECIFIED
5GYH ... LDX 0 AREPERT(3)
5H#N ... ANDX 0 XCHMSK(1)
5HNT ... LDX 7 AWORK1(2)
5J52 ... SRL 7 13
5JF7 ... ORX 0 7
5JT# ... STO 0 AREPERT(3) [SET CH BITS 13,14
5K9G [NOW DEAL WITH WIDTH
5KP6 SWID
5LNB LDX 7 AWORK4(2)
5M82 ANDX 7 XWID(1)
5MML BZE 7 SLEN [J IF WIDTH NOT SPECIFIED
5N7= LDX 6 AWORK2(2)
5NLW ... DEX 6 AREPERT(3) [PUT WIDTH INTO BOTTOM 9 BITS
5PL6 SLEN
5Q5Q LDX 7 AWORK4(2)
5QKB ANDX 7 XLEN(1)
5R52 BZE 7 TCHECK [J IF LENGTH NOT SPECIFIED
5RJL LDX 6 AWORK3(2)
5S4= LDX 0 XLEMSK(1)
5SHW ... ANDS 0 AREPERT(3) [MASK OUT B0-11
5T3G BPZ 6 SETL
5TH6 LDN 0 65 [SET B0-11 OF LREPERT TO
5W2Q STO 0 AWORK3(2)
5W=J ... SLL 0 12
5WGB ... ORS 0 AREPERT(3) [DEFAULT OF 65
5X22 BRN TCHECK [NOW J TO OUTPUT MESSAGES IF NECC.
5XFL SETL
5X^= SLL 6 12
5YDW ... ORS 6 AREPERT(3) [PUT SPECIFIED LENGTH IN B0-11
5YYG [ NOW RE-CHECK PARAMS GIVEN AND OUTPUT APPROPRIATE MESSAGE
5^D6 ...TCHECK
5^XQ LDX 6 AWORK4(2)
62CB SRC 6 3
62X2 BNG 6 TMESC
63BL ... SRC 6 2
63W= ... BNG 6 ROUTL
64*W ... SLC 6 1
64TG ... BNG 6 ROUTW
65*6 TRACE 6,RRAWRK4
65SQ BRN TEND
66#B [ INTERROGARY RR - WE NOW OUTPUT REPERTOIRE MESSAGES
66S2 [ FIRST CHECK IF DEVICE IS A TRAIN PRINTER -FLAG WORD AWORK1
67?L TINT
67R= LDX 0 AWORK1(2)
68=W BNG 0 TMESW [NOT TRAIN PRINTER
68MW ...[ GET CHARSET FRO APIA
694X ...TMESC MHUNTW 3,CPAR,JSCE
69C# ... LDX 3 JSCEP(3)
69KS ... LADDP 3,3
69S# ... LDX 6 AREPERT(3)
6=2S ... SLL 6 13
6=9B SRL 6 22
6=P2 BNZ 6 T96
6?8L ...T64 LDN 0 64 [IF 64 CH SET
6?N= STO 0 AWORK1(2) [AWORK1 TO BE USED IN SPAREOUT
6#7W ... BRN TMESW
6#MG T96 SBN 6 1
6*76 BNZ 6 T48
6*LQ LDN 0 96
6B6B STO 0 AWORK1(2) [IF 96 CH SET
6BL2 ... BRN TMESW
6C5L T48 SBN 6 1
6CK= BNZ 6 TRESET [J.IF BIT SETTING WRONG
6D4W LDN 0 48
6DJG STO 0 AWORK1(2)
6F46 ... BRN TMESW
6FHQ ...[ IF BIT SETTING CH SET WRONG WE MUST RESET IT TO 64
6G3B TRESET
6GH2 ... TRACE 6,RRAPERT?
6H2L ... LDX 0 XCHMSK(1)
6HG= ... ANDS 0 AREPERT(3) [CLEAR CH BITS
6H^W BRN T64
6JFG [ WE HAVE THE APPROPRIATE CHAR. SET IN AWORK1
6J^6 [ NOW GET WIDTH FROM APIA
6KDQ TMESW
6KNJ ... MHUNTW 3,CPAR,JSCE
6KYB ... LDX 3 JSCEP(3)
6L88 ... LADDP 3,3
6LD2 LDX 2 FX2
6LXL ... LDEX 0 AREPERT(3) [WIDTH HELD IN BOTTOM 9 BITS
6MC= STO 0 AWORK2(2) [TO BE USED LATER
6MWW [ NOW GET PAGELENGTH FROMAPIA
6NBG TMESL
6NW6 ... LDX 0 AREPERT(3)
6P*Q SRL 0 12
6PTB STO 0 AWORK3(2) [PUT LENGTH IN AWORK3
6Q*2 [ NOW WE OUTPUT THE PRINTER REPERTOIRE MESSAGES
6QSL [ AT THIS POINT :
6R#= [
6RRW [ AWORK1 = CHARSET
6S?G [ AWORK2 = WIDTH
6SR6 [ AWORK3 = LENGTH
6T=Q [ FIRST OF ALL THE CHARACTER SET MESSAGE!
6TQB ROUTC
6TXJ ... LDX 0 AWORK1(2)
6W4R ... BNG 0 ROUTL
6W=2 CALL 7 SPARPER [OUTPACK FOR PERI PARAM
6WPL ST2 LDN 3 AWORK1(2) [START ADDRESS OF CH PARAM
6X9= ... LDX 6 XJRR(1) [CH. SET MESSAGE IDENTIFIER
6XNW CALL 7 SPARNUM [OUTPACKX PLUS MONOUT
6Y8G BRN ST2 [IF COORDINATION DURING OUTPACK
6YN6 LDX 0 AWORK4(2)
6^7Q ... BNG 0 ROUTL [J IF INTERR. RR
6^MB ... SRC 0 5
7272 BPZ 0 TCHEK
72J? ...[ OTHERWISE OUTPUT PAGELENGTH MESS.
72^J ...ROUTL
73BT ... CALL 7 SPARPER
73S6 ...ST4 LDN 3 AWORK3(2)
749C ... LDX 6 XJRRLE(1) [LENGTH MESS. IDENTIFIER
74LN ... CALL 7 SPARNUM
753^ ... BRN ST4
75F= ...TCHEK
75WH ... LDX 0 AWORK4(2)
76?S ... BNG 0 ROUTW [J IF INTERR. RR
76P5 ... SRC 0 4
776B ... BPZ 0 TEND [ENDCOM !
77HM ...[ NOW FOR THE PRINT WIDTH MESSAGE
77YY ...ROUTW
78B9 ... CALL 7 SPARPER
78RG ...ST3 LDN 3 AWORK2(2)
798R ... LDX 6 XJRRWI(1) [WIDTH MESS. IDENTIFIER
79L4 ... CALL 7 SPARNUM
7=3* ... BRN ST3
7=DL TEND
7=Y= ENDCOM
7?CW [ NOW FOR THE EXCEPTION PATHS
7?XG NOPARAMS
7#9X ... LDX 1 FX1
7#J# ... LDX 6 XJNOPAR(1)
7#WQ BRN REPORT
7*BB [
7*W2 YILLCH
7B8C ... LDX 1 FX1
7BGS ... LDX 6 XJILLCH(1)
7BT= BRN REPORT
7C#W [
7CSG YSMALL
7D6X ... LDX 1 FX1
7DF# ... LDX 6 XJSMALL(1)
7DRQ BRN REPORT
7F?B [
7FR2 YLARGE
7G5C ... LDX 1 FX1
7GCS ... LDX 6 XJLARGE(1)
7GQ= BRN REPORT
7H9W [
7HPG YINCAP
7J3X ... LDX 1 FX1
7JB# ... LDX 6 XJINCAP(1)
7JNQ BRN REPORT
7K8B [
7KN2 YNOPER
7KXS ... LDX 6 XJPARMIS(1)
7L7L ... LDX 7 XJPERMIS(1)
7LCD ... COMERRX 6,7
7LM= [
7M6W YNREQ
7MF? ... LDX 1 FX1
7MRN ... LDX 6 XJRES(1)
7N66 BRN REP
7NKQ [
7P5B NCENT
7PCR ... LDX 1 FX1
7PQ8 ... LDX 6 XJNOTCT(1)
7Q4L BRN REP
7QJ= [
7R3W NOTTR
7RB? ... LDX 1 FX1
7RNN ... LDX 6 XJNOTTR(1)
7S36 REP CALL 7 SERR
7SGQ [
7T2B REPORT
7TG2 COMERRX 6
7T^L [
7WF= SBRK
7WYW GEOERR 1,RRBRKIN
7XDG #END
^^^^ ...074316060001