{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: PMBDTS863)}}
====== PMBDTS863 ======
(George Source)
**Macros used:** [[george:macro:BXE|BXE]], [[george:macro:BXGE|BXGE]], [[george:macro:BXL|BXL]], [[george:macro:CONSOLE|CONSOLE]], [[george:macro:ENDLIST|ENDLIST]], [[george:macro:PMCORES|PMCORES]], [[george:macro:PMESSAGE|PMESSAGE]], [[george:macro:SEGENTRY|SEGENTRY]]
22FL ...#OPT K0PMBDTS=0
22^= ...#LIS K0PMBDTS>K0POST>K0ALLGEO
23DW ...#
23YG ...#SEG PMBDTS84 [KAREL KOSKUBA - DIAG
24D6 ...#
24XQ ...# THIS SEGMENT PRINTS THE BASIC DEVICE TABLE
25CB ...# AND THE DEVICE LISTS
25X2 ...#
27*W 8HPMBDTS
27TG ...#
28*6 ...# ENTRY POINT TABLE
28SQ ...#
29#B ... SEGENTRY K1PMBDTS,XK1PMBDTS
29S2 ...#
2=3S ...TEXT0 24HPERIPHERAL INCIDENT AREA
2=?L ...TEXT1 24HTHE BASIC DEVICE TABLE.
2=R= ...TEXT2 12HDEVICE LISTS
2?=W ...TEXT3 12HBDTL IS ZERO [ ADD 4 TO BDTL = BDTP
2*9B WORD1 12HINVALID BDTL
2*P2 WORD2 24HENDLIST POINTER INVALID
2B8L WORD3 +0
2BN= 20HDEVICE LIST TOO LONG
2C7W THINDS 24H1ST 2ND 3RD 4TH 5TH 6TH
2CMG TYPE 16H DEVICE TYPE 000
2D76 Z 16H0 TAPE READER
2DLQ 16H1 TAPE PUNCH
2F6B 16H2 LINE PRINTER
2FL2 16H3 CARD READER
2G5L 16H4 CARD PUNCH
2GK= 16H5 MAGNETIC TAPE
2H4W 16H6 EDS8
2HJG 16H7 MCF (TYPE 7)
2J46 16H8 DATA DISC FILE
2JHQ 16H9 DRUM (TYPE 9)
2K3B 16H: UNIPLEXOR
2KH2 16H; MULTIPLEXOR
2L2L 16H< CASSETTE TAPE
2LG= 16H= FIXED DISC
2L^W 16H( 7901/7903
2MFG 16H) HI SPEED DRUM
2M^6 ... 16H* EDS30/60/200
2NDQ 16H+ IPB (IPC)
2NYB 16H_ CONSOLE T/W
2PD2 ...XK81 +0 [HOLDS THE SIZE OF PIA TO BE PRINTED
2QC= YLIST +0
2QWW +K51
2RBG +K52
2RW6 +K53
2S*Q +K54
2STB +K55
2T*2 +K56
2TSL +K57
2W#= YYLIST [ TO ALLOW THE LIST TO BE INCREASED WITHOUT ALTERUNG CODE
2Y=Q QPPW +0
2YQB ...SNA +0
2^=2 ...#GAP 13
329= STERIX 4H****
32NW YBLNO +0
338G YCOLNO +0
33N6 YLINK +0
347Q ...#
34MB ...#
3572 ...# ROUTINE TO FORMAT DEVICE LIST PRINTING
35LL ...#
366= ...#
36KW ...# ON ENTRY X1 LINE NO. TO BE PRINTED RELATIVE TO CURRENT BASE
375G ...#
37K6 ...# X2 CURRENT COLUMN NO.
384Q ...#
38JB ...# ON EXIT X2 HAS BEEN UPDATED
3942 ...#
39HL ...# X1 IS INTACT
3=3= ...#
3=GW ...# ALL OTHER ACCS HAVE BEEN CORRUPTED
3?2G ...#
3?G6 ...#
3?^Q ...XCHK SMO FXPM1
3#FB ... STO 7 YLINK
3#^2 ... SMO FXPM1
3*DL ... LDX 3 SNA(2)
6H^W LDN 4 K53
6JFG BXGE 1 4,XCHK5 [J IF PAST K53
6J^6 LDX 5 JCTWREC(1)
6KDQ BXE 3 JCTWPTR,XCHK2 [J IF CONSOLE T/W
6KYB LDX 5 JLPREC(1)
6L88 ... SMO FXPMDR
6LD2 BXE 3 JLPPTR,XCHK2 [J IF LP USED BY PM
6MWW LDX 5 JGEOREC(1)
6NBG BXE 3 JGEOPTR,XCHK2 [J IF GEORGE EDS FILE
6ND9 ... SMO FXPMDR
6NFY ... LDX 5 JSCFREC(1)
6NHM ... SMO FXPMDR
6NKB ... BXE 3 JSCFPTR,XCHK2 [J IF SCF DEVICE
6NM5 ... SMO FXPMDR
6NNS ... LDX 5 JMTREC(1)
6NQH ... SMO FXPMDR
6NS= ... BXE 3 JMTPTR,XCHK2 [J IF MT USED BY PM
6NW6 XCHK1 ADX 3 1
6P*Q LDX 5 0(3) [GET WORD TO PRINT
6PTB XCHK2 LDN 3 6
6Q7R ...XCHKS SMO FXPM1
6QG8 ... BXE 1 TLS(3),XCHK3 [COMPARE LINE NO AGAINST SLIST ITEM
6QSL BCT 3 XCHKS
6R#= LDN 3 9
6RLM ...XCHKP SMO FXPM1
6R^4 ... BXE 1 TLP(3),XCHK4 [COMPARE LINE NO AGAINST PLIST ITEM
6S?G BCT 3 XCHKP
6SKX ... CALL 7 (JOCT) [DEFAULT IS OCTAL
6SY# ... SMO FXPM1
6T=P ... LDX 7 YLINK
6TK6 ... BUX 2 (7)
6TXH ...XCHK3 CALL 7 (JUP)
6W=2 +1
6WHB ... CALL 7 (JDECS) [DECIMAL N
6WSQ ... SMO FXPM1
6X66 ... LDX 7 YLINK
6XCG ...TLS BUX 2 (7)
6XNW +K50+2
6Y8G +K51+2
6YN6 +K52+7
6^7Q +K52+8
6^MB +K52+9
7272 +K52+10
72DB ...XCHK4 CALL 7 (JDECP) [DECIMAL N.N
72PQ ... SMO FXPM1
7336 ... LDX 7 YLINK
73#G ...TLP BUX 2 (7)
73KW +K50+1
745G +K50+3
74K6 +K50+5
754Q +K51+1
75JB +K51+3
7642 +K51+5
76HL +K53
76T2 ...XCHK5 SMO FXPM1
776B ... LDX 4 SNA+7(2)
77CQ ... SMO FXPM1
77P6 ... SBX 4 SNA(2)
782G BXL 1 4,XCHK1 [J NOT FINISHED THIS LIST
78G6 ... CALL 7 (JUP)
78^Q +9
79FB LDN 5 1
79^2 SLC 5 0(2) [ELSE CLEAR BIT
7=8S ... SMO FXPM1
7=DL ORS 5 QPPW [IN QPPW
7=ND ... SMO FXPM1
7=Y= ERS 5 QPPW
7=YC ... SMO FXPM1
7=YJ ... LDX 7 YLINK
7=YP ... BUX 2 (7)
7=YQ ...XK1PMBDTS [ MAIN ENTRY - ONLY ENTRY
7=YR ... PMESSAGE TEXT0,6,FXPM1
7=YS ... CALL 7 (JPRINT1)
7=YT ... CALL 7 (JUP) [UPDATE JPMOD POINTER BY 2 CHARACTERS
7=YW ... 2
7=YX ... LDX 1 JPTI+64 [X1=THE BASE OF THE PERIPHERAL INCIDE
7=YY ...#UNS ELOGDME
7=Y^ ...#SKI
7=^2 ... LDN 4 K81 [LOAD SIZE OF PIA(K81 IS THE SIZE OF
7=^3 ...#UNS ELOGDME [VARIABLE PIA LENGTH
7=^4 ... LDX 4 ELPIALEN [LOAD SIZE OF PIA TO BE PRINTED
7=^5 ... LDX 5 1
7=^6 ... CALL 7 (JDECN) [CONVERT THE BASE OF PIA INTO DECIMAL
7=^7 ... CALL 7 (JUP) [UPDATE JPMOD POINTER BY 6 CHARACTERS
7=^8 ... 6
7=^9 ...NEXTWORD
7=^= ... LDX 5 0(1) [X5=THE CONTENTS OF FIRST/NEXT ENTRY
7=^? ... ADN 1 1 [INCREMENT X1 TO POINT TO NEXT ENTRY
7=^# ... CALL 7 (JOCT) [CONVERT THE CONTENT OF ENTRY INTO OC
7=^* ... CALL 7 (JUP) [UPDATE THE JPMOD POINTER BY 2 CHARAC
7=^B ... 2
7=^C ... CALL 7 (JDECP) [CONVERT THE CONTENTS OF ENTRY INTO D
7=^D ... CALL 7 (JPRINT1) [PRINT ONE LINE OF BUFFER
7=^F ... CALL 7 (JUP)
7=^G ... 15
7=^H ... BCT 4 NEXTWORD [BRANCH IF STILL TO BE PRINTED
7=^J ... PMESSAGE TEXT1,6,FXPM1
7=^K ... CALL 7 (JPRINT1)
7=^L ... LDX 1 BDTL
7=^M ... LDN 4 512
7=^N ... BXGE 4 1,ZOK [J IF LENGTH OK
7=^S ... STO 4 BDTL [ELSE ADJUST
7=^^ ... PMESSAGE WORD1,3,FXPM1 [AND COMMENT
7?26 ...ZOK BZE 1 ZC2 [J IF LENGTH ZERO
7?2? ... LDX 1 BDTP
7?2D ... BNZ 1 ZC1
7?2K ... LDN 1 4 [ L + 4 = P
7?2Q ... SMO FXPM1
7?2X ... ADS 1 TEXT3
7?34 ...ZC2 PMESSAGE TEXT3,3,FXPM1
7?39 ... BRN (JPMSEG) [
7?3B ...ZC1 LDN 1 0
7?3H ... LDX 5 BDTP [ SET UP ADDRESS FOR FIRST LINE
7?3N ...ZC3 CALL 7 (JUP)
7?3T ... 2
7?42 ... CALL 7 (JDECN)
7?47 ... CALL 7 (JUP)
7?4# ... 2
7?4F ... SMO BDTP
7?4L ... LDX 5 0(1)
7?4R ... CALL 7 (JDECP) [ PUTS OUT VALUE AS CHARACTER POIN
7?4Y ... BNG 5 ZC5
7?55 ... PMCORES 5,,ZC7
7?5= ...ZC5
7?5C ... SMO FXPM1
7?5J ... LDX 6 STERIX
7?5P ... STO 6 2(3)
7?5W ... SMO BDTP
7?63 ... STOZ 0(1)
7?68 ...ZC7 CALL 7 (JPRINT1)
7?6* ... ADN 1 1
7?6G ... LDX 5 1 [ SET UP LINE NO. AFTER LINE 0
7?6M ... TXU 1 BDTL
7?6S ... BCS ZC3
7?6^ ...#
7?76 ...# SUSPICIOUS POINTERS HAVE BEEN ZEROISED
7?7? ...#
7?7D ... PMESSAGE TEXT2,3,FXPM1
7?7K ... ENDLIST 1 [PUTS ADDRESS AFTER LISTS IN ACC 1
7?7Q ... PMCORES 1,,Z1 [J IF POINTER OK
7?7X ... PMESSAGE WORD2,6,FXPM1 [ELSE COMMENT
7?84 ... LDX 1 CORES [AND ADJUST
7?89 ...Z1 SMO FXPM1
7?8B ... STO 1 SNA+6
7?8H ...# THIS LAST REMARK STORES AWAY AN UPPER BOUND FOR ALL LISTS
7?8N ...#
7?8T ...# THERE IS NO PAGE COUNT, YBLNO < BDTL INITIATES ANOTHER PAGE
7?92 ... SMO FXPM1
7?97 ... STOZ YBLNO [COUNT OF DEVICES PRINTED
7?9# ... [CONSTANTS FOR THE FOLLOWING ROUTINE
7?9F ...Z3 LDN 0 6 [X0=MAX NO OF BLOCKS TO BE CONSIDERED
7?9L ... LDN 2 0 [X2=MODIFIER ON SNA
7?9R ... LDN 6 1 [X6=UPDATE CONSTANT
7?9Y ... LDX 7 BDTL [X7=LENGTH OF BDT
7?=5 ... SMO FXPM1
7?== ... LDX 4 SNA+6 [ FOR POSSIBLE STORAGE IN SNA +7(2)
7?=C ...# AN OVERALL UPPER BOUND. IN ALL CASES BUT ONE, IT GETS REDUCE
7?=J ...#
7?=P ...# THE Z4 LOOP COUNTS OUT GROUPS OF 6 SETTING UP BOUNDS 6 = MA
7?=W ...# PER PAGE, BUT IF YBLNO = BDTL THEN SOME NO. LESS THAN 6 GOES
7??3 ... LDX 3 BDTP
7??8 ... SMO FXPM1
7??* ... ADX 3 YBLNO
7??G ...Z4
7??M ... LDX 5 0(3)
7??S ... BZE 5 Z5
7??^ ... SMO FXPM1
7?#6 ... STO 5 SNA(2)
7?#? ... SMO FXPM1
7?#D ... STO 4 SNA+7(2)
7?#K ... ADS 6 2 [UPDATE X2
7?#Q ...Z5
7?#X ... ADS 6 3 [ AUGMENT (3) BY UNITY
7?*4 ...# NEXT THREE LINES TAKE CARE OF THE LAST PAGE, WHEN POSSIBLY L
7?*9 ...# 6 COLUMNS, WHILE THE TWO SUBSEQUENT LINES CHANGE PAGES AFTER
7?*B ... SMO FXPM1
7?*H ... ADS 6 YBLNO [UPDATE YBLNO
7?*N ... SMO FXPM1
7?*T ... TXU 7 YBLNO [YBLNO=BDTL?
7?B2 ... BCC Z6 [IF YES (EXHAUSTED TABLE) J
7?B7 ... TXU 2 0 [X2=6?
7?B# ... BCS Z4 [NO J
7?BF ...Z6 SMO FXPM1
7?BL ... STO 2 YCOLNO [X2 IS NO OF COLUMNS IN OUTPUT
7?BR ...# THIS NEXT IS TO SORT BOUNDS INTO APPROPRIATE PAIRS
7?BY ...#
7?C5 ...# THE Z7.Z8 LOOPS ARE EQUIVALENT TO
7?C= ...# FOR ACC 2 = 0 STEP 1 UNTIL YCOLNO - 1 DO
7?CC ...# BEGIN SET UP BASE
7?CJ ...# FOR ACC 1 = 0 STEP 1 UNTIL BDTL - 1 DO
7?CP ...# IF BASE < 0(BDTP)(1) < UPPER LIMIT THEN U.L. _ 0(BDTP)(1) EN
7?CW ... LDN 2 0 [X2 IS A MODIFIER BOUNDED BY YCOLNO
7?D3 ...Z7
7?D8 ... LDN 1 0 [X1 POINTS TO RELATIVE ADDRESS IN BDT
7?D* ...Z8 LDX 3 BDTP [ROUTINE TO FIND NEXT HIGH NO IN BDT
7?DG ... ADX 3 1
7?DM ... LDX 5 0(3)
7?DS ... SMO FXPM1
7?D^ ... TXL 5 SNA(2)
7?F6 ... BCS Z9
7?F? ... SMO FXPM1
7?FD ... TXU 5 SNA(2)
7?FK ... BCC Z9
7?FQ ... SMO FXPM1
7?FX ... TXL 5 SNA+7(2)
7?G4 ... BCC Z9
7?G9 ... SMO FXPM1
7?GB ... STO 5 SNA+7(2) [RESET SNATCH+7
7?GH ...Z9 ADN 1 1 [UPDATE X1
7?GN ... TXL 1 BDTL [TABLE FINISHED
7?GT ... BCS Z8 [NO J
7?H2 ... LDN 4 1024
7?H7 ... SMO FXPM1
7?H# ... LDX 3 SNA+7(2)
7?HF ... SMO FXPM1
7?HL ... SBX 3 SNA(2) [GET LENGTH OF LIST
7?HR ... BXGE 4 3,Z10 [J IF LENGTH OK
7?HY ... SMO FXPM1
7?J5 ... LDX 3 THINDS(2) [ELSE SET UP MESSAGE
7?J= ... SMO FXPM1
7?JC ... STO 3 WORD3
7?JJ ... PMESSAGE WORD3,6,FXPM1 [PRINT
7?JP ... SMO FXPM1
7?JW ... LDX 4 SNA(2)
7?K3 ... ADN 4 1024 [DEFAULT LENGTH FOR ANY LIST
7?K8 ... SMO FXPM1
7?K* ... STO 4 SNA+7(2)
7?KG ...Z10 ADN 2 1 [UPDATE POINTER TO SNA NUMBER
7?KM ... SMO FXPM1
7?KS ... TXL 2 YCOLNO [POINTER=YCOLNO?
7?K^ ... BCS Z7 [ IF FALSE THEN JUMP ELSE OUTPUT
7?L6 ...#
7?L? ...# THE ZJ1 LOOP INSERTS TYPES INTO 1ST LINE PER PAGE
7?LD ... LDN 2 0
7?LK ...ZJ1 SMO FXPM1
7?LQ ... LDX 3 SNA(2)
7?LX ... LDX 6 JK52C(3)
7?M4 ... SRL 6 15 [GET PERIPHERAL TYPE
7?M9 ... SMO FXPM1
7?MB ... LDN 3 Z [START OF TABLE
7?MH ...ZJ2 LDX 5 0(3)
7?MN ... BZE 5 ZJ4 [J IF END OF TABLE
7?MT ... LDCH 5 0(3)
7?N2 ... TXU 5 6
7?N7 ... BCC ZJ3 [J IF CORRECT TYPE
7?N# ... ADN 3 4
7?NF ... BRN ZJ2
7?NL ...ZJ4 CALL 7 (JGNO1)
7?NR ... SMO FXPM1
7?NY ... STO 5 TYPE+3 [STORE TYPE NUMBER
7?P5 ... SMO FXPM1
7?P= ... LDN 3 TYPE ['DEVICE TYPE NN'
7?PC ...ZJ3 BCHX 3 £
7?PJ ... LDX 4 JPMOD
7?PP ... ADN 4 1
7?PW ... MVCH 3 15 [PERIPHERAL TYPE NAME INTO BUFFER
7?Q3 ... CALL 7 (JUP)
7?Q8 ... +20
7?Q* ... ADN 2 1
7?QG ... SMO FXPM1
7?QM ... TXL 2 YCOLNO
7?QS ... BCS ZJ1
7?Q^ ... CALL 7 (JPRINT2) [PRINT LINE
7?R6 ...#
7?R? ...# AFTER SETTING UP YCOLNO OF HEADINGS THE LISTS THEMSELVES
7?RD ...# ACC 1 IS THE LINE COUNT, ACC 2 THE COLUMN COUNT
7?RK ...# THE FIRST LINE IS HANDLED DIFFERENTLY FROM THE SECOND ONES
7?RQ ...# THE FIRST WORD IN EACH LIST HAS ITS ADDRESS IN DECIMAL
7?RX ... LDN 1 0
7?S4 ... LDN 2 0
7?S9 ...XBR1 CALL 7 (JUP) [UPDATE BUFFER MODIFIER
7?SB ... 2
7?SH ... SMO FXPM1
7?SN ... LDX 5 SNA(2) [GIVE ADD OF 1ST WORD OF LIST IN DEC
7?ST ... CALL 7 (JDECN)
7?T2 ... CALL 7 (JUP) [UPDATE BUFFER MODIFIER
7?T7 ... 2
7?T# ... CALL 7 XCHK [GET CONTENTS IN OCTAL
7?TF ... SMO FXPM1
7?TL ... TXL 2 YCOLNO [ IS ROW FINISHED
7?TR ... BCS XBR1 [NO-REPEAT
7?TY ... CALL 7 (JPRINT2) [YES-PRINT LINE
7?W5 ...#
7?W= ...# SUBSEQUENT LINES HAVE NO ABSOLUTE ADDRESS BUT POSSIBLY A K M
7?WC ...# HOWEVER WE MUST INVESTIGATE WHETHER THE LIST IS COMPLETE AND
7?WJ ...# THE PAGE PATTERN WORD AS WELL AS ADJUSTING THE BUFFER POINTE
7?WP ...# CORRECT NO OF SPACES
7?WW ... SMO FXPM1
7?X3 ... LDX 2 YCOLNO
7?X8 ... NGN 1 1
7?X* ... LDN 0 0
7?XG ... SLL 01 0(2)
7?XM ... SMO FXPM1
7?XS ... STO 0 QPPW
7?X^ ...#
7?Y6 ...# XBR2 LOOP DOES A LINE ACC 1 IS LINE NUMBER
7?Y? ... LDN 1 0 [ RESTORE (1) = 0
7?YD ...XBR2 LDN 5 0 [IN X5 COLUMN COUNT
7?YK ... ADN 1 1 [IN X1 LINE COUNT
7?YQ ... LDN 4 K57
7?YX ... TXL 4 1
7?^4 ... BCS XBR4
7?^9 ... LDN 3 YYLIST-YLIST-1 [ ALLOWS LIST TO BE INCREASED
7?^B ...XBR3 SMO FXPM1
7?^H ... TXU 1 YLIST(3)
7?^N ... BCC XBR5
7?^T ... BCT 3 XBR3
7#22 ...# XBR3 LOOP FINDS OUT IF LINE NO. REQUIRES A K MNEMONIC
7#27 ...#
7#2# ...# XBR4 LOOP DOES THE (YCOLNO) OF ELEMENYTS IN EACH LINE
7#2F ...XBR4 CALL 7 (JUP)
7#2L ... 5
7#2R ... BRN XBR7
7#2Y ...XBR5 CALL 7 (JUP)
7#35 ... 5
7#3= ... LDN 4 #2053 [#2053 = SPACE,K
7#3C ... SLL 4 12
7#3J ... ADN 4 #500 [# 500 = 5 ,0
7#3P ... ADX 4 3 [REQUIRES (3) TO BE A SINGLE DIGIT
7#3W ... LDN 2 0
7#43 ... LDX 3 JPMOD
7#48 ...#
7#4* ...# XBR6 LOOP INSERS ANY K MNEMONIC IF COLUMN IS NOT EXHAUSTED
7#4G ...XBR6 SMO FXPM1
7#4M ... LDX 7 SNA+7(2)
7#4S ... SMO FXPM1
7#4^ ... SBX 7 SNA(2)
7#56 ... TXL 1 7
7#5? ... BCC XBR8
7#5D ... STO 4 0(3)
7#5K ...XBR8 ADN 3 5
7#5Q ... ADN 2 1
7#5X ... SMO FXPM1
7#64 ... TXU 2 YCOLNO
7#69 ... BCS XBR6
7#6B ...XBR7 CALL 7 (JUP)
7#6H ... 6
7#6N ... LDX 2 5
7#6T ... CALL 7 XCHK
7#72 ... LDX 5 2
7#77 ... SMO FXPM1
7#7# ... TXU 2 YCOLNO
7#7F ... BCS XBR4
7#7L ... CALL 7 (JPRINT1)
7#7R ... SMO FXPM1
7#7Y ... LDX 4 QPPW
7#85 ... BNZ 4 XBR2
7#8= ...#
7#8C ...# WHEN IT IS FOUND EXHAUSTED THE PAGE IS COMPLETE AND WE INVETI
7#8J ... SMO FXPM1
7#8P ... LDX 5 YBLNO
7#8W ... TXU 5 BDTL
7#93 ... BCS Z3
7#98 ... BRN (JPMSEG)
7#C6 #END
^^^^ ...52133721000100000000