{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: LOADERII867)}}
====== LOADERII867 ======
(George Source)
**Macros used:** [[george:macro:CHAIN|CHAIN]], [[george:macro:CLINK|CLINK]], [[george:macro:COOR1X|COOR1X]], [[george:macro:EMSACTX|EMSACTX]], [[george:macro:EMSCORE|EMSCORE]], [[george:macro:FINDPEREC|FINDPEREC]], [[george:macro:FPUT|FPUT]], [[george:macro:FWAIT|FWAIT]], [[george:macro:GEOERR|GEOERR]], [[george:macro:GETEMSCR|GETEMSCR]], [[george:macro:GMONTIDY|GMONTIDY]], [[george:macro:JENVNOT|JENVNOT]], [[george:macro:LINKSET|LINKSET]], [[george:macro:LINT|LINT]], [[george:macro:NAME|NAME]], [[george:macro:PAIR|PAIR]], [[george:macro:PUDDL|PUDDL]]
22FL #SKI G3
22^= (
23DW #OPT K0LOADER=K0KERNEL>K0ALLGEO
23YG #LIS K0LOADER
24D6 ...#SEG LOADERII86 [M. DRUKKER
24GP ...# ########################################################
24K# ...#
24MX ...# (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1982
24QG ...#
24T5 ...# #########################################################
24XQ #
25CB # NEW INTERFACE VERSION FOR G3 ONLY
25X2 # HAVING LOADED GEORGES FIXED CORE, THIS PART OF LOADER
26BL # PROCEEDS TO SET UP PM LINK, FORM THE FREE CORE CHAIN,
26W= # THE TRACE BUFFER, CREATE EMS ACTIVITY AND THE BSA WHICH
27*W # READS CHAPTERS INTO CORE.
27TG #
28*6 K99LOADERII
28SQ #GAP 20 [MENDS
29#B #
29S2 TOPEND +0 [POINTER TO END OF VARIABLE CORE
2=?L ZINTBS +0 [INTERNAL NO. OF GEORGE DEVICE
2=R= XECWORDS
2?=W +KTAB+1
2?QG +G3MARK
2#=6 ... +KTAB+1
2#PQ #
2*9B # VARIOUS BLOCK TYPES
2*P2 #
2B8L TYPEA
2BN= #HAL BSA,0
2C7W TYPEB
2CMG #HAL BSA+BTFAIL,0
2D76 TYPEC
2DLQ #HAL CONSA+CNTRAL,0
2F6B SLINK6
2FL2 PAIR TRANFAIL,1 [LINK TO TFA
2G5L SLINK7
2GK= PAIR EMSENG,1
2H4W # TABLE OF BEATTIMES AND CHAPTIMES OF CENTRAL PROCESSORS.
2HJG # PROCESSOR TYPE GIVEN BY THE GIVE/6 EXTRACODE.X WILL CONTAIN
2J46 # A NUMBER CORRESPONDING TO THE PROCESSOR TYPE.
2JHQ #
2K3B JTCPU
2KH2 TCPU +0
2L2L #HAL 555,1320 [ 1 1904
2LG= #HAL 555,1320 [ 2 1905
2L^W #HAL 182,1320 [ 3 1909
2MFG #HAL 769,880 [ 4 1906 STORE CYCLE 1.1
2M^6 #HAL 588,880 [ 5 1906 STORE CYCLE 2.1
2NDQ #HAL 769,880 [ 6 1907 STORE CYCLE 1.1
2NYB #HAL 588,880 [ 7 1907 STORE CYCLE 2.1
2PD2 #HAL 714,1320 [ 8 1904E
2PXL #HAL 909,1320 [ 9 1904E WITH HARDWARE ACCUMULATORS
2QC= #HAL 714,1320 [10 1905E
2QWW #HAL 909,1320 [11 1905E WITH HARDWARE ACCUMULATORS
2RBG #HAL 667,1320 [12 1906E
2RW6 #HAL 833,1320 [13 1906E WITH HARDWARE ACCUMULATORS
2S*Q #HAL 667,1320 [14 1907E
2STB #HAL 833,1320 [15 1907E WITH HARDWARE ACCUMULATORS
2T*2 #HAL 1111,1320 [16 1904F
2TSL #HAL 1111,1320 [17 1905F
2W#= #HAL 909,1320 [18 1906F
2WRW #HAL 909,1320 [19 1907F
2X?G #HAL 1000,1750 [20 1903A
2XR6 #HAL 2000,1900 [21 1904A
2Y=Q #HAL 1200,350 [22 1906A
2YQB #HAL 500,1750 [23 1902S
2^=2 #HAL 1000,1750 [24 1903S
2^PL #HAL 2600,1900 [25 1904S
329= #HAL 1700,350 [26 1906S
32NW #HAL 2000,1900 [27 1904S DUAL
338G #HAL 1600,1900 [28 1904A DUAL
33N6 #HAL 1500,1900 [29 1903T
33XY ...#HAL 875,1750 [30 1902T
342H ...#HAL 1000,750 [31 2960/DME REL. 2
3456 ...#HAL 1000,580 [32 2960/DME REL. 3
347Q TCPUEND
34MB #GAP 5
3572 K1LOADERII
36KW LINT GBSDL(2),0
375G STO 0 ZINTBS(2)
37=N ... PUDDL 5 [MOVE DEVICE LIST DOWN
37CW ... STO 5 TOPEND(2) [STORE END OF VARIABLE CORE
37J3 ... JENVNOT XDLY2,DME
37N8 ... NGN 4 1 [DELAY FOR DME
37S* ...XDLY1 BCT 4 XDLY1
37X* ...# TO USE FINDPEREC WITH APINT AND A CONSOLE
382* ...# WE MUST USE %G AS A CONSOLE WILL APPEAR
385* ...# AS ANONYMOUS AS IT HAS A UNIT NO. OF 0
388* ...XDLY2 FINDPEREC 3,APINT,CONDL(2),,,,XFIND [CONVERT CONSOLE INTERNAL NO
38?* ... BPZ 3 XFIND [JUST IN CASE ITS GONE!
38B* ... GEOERR 1,NOCON?
38F* ...XFIND STO 3 CONDL(2) [DEVICE POINTER
38JB LDX 4 FCORES [UPDATED BY PUDDL
3942 ... ADX 4 CIRNDA [ROUND UP TO NEXT
39HL ANDX 4 IROUNDNG [MULTIPLE OF 4
3=3= STO 4 FCORES [MOVABLE CORE AND STORE
3=GW LDN 3 BFREE [SET UP
3?2G MOVE 3 2 [FREE CORE
3?G6 LDN 1 1
3?^Q SMO 4
3#FB STO 1 AFLAG
3*DL STO 4 BFREE [CHAIN
3*Y= STO 4 BFREE+1
3BCW LDX 1 TOPEND(2) [TOP OF VARIABLE CORE
3BXG STO 1 JTRATOP [SET ADDRESS OF TOP OF TRACE BUFFER
3CC6 SBX 1 JTRALEN [LENGTH OF TRACE BUFFER
3CWQ STO 1 JTRABUFF [SET ADDRESS OF TRACE BUFFER
3DBB STO 1 JTRAPNTR [SET TRACE POINTER
3DW2 SBX 1 GSCANLEN [LENGTH OF GSCAN BUFFER
3F*L STO 1 GSCANBUFF [SET ADDRESS OF GSCAN BUFFER
3FT= STO 1 GSCANPNTR [SET GSCAN POINTER
3G#W JLMEAS
3GSG BRN JLNOMEAS [THIS IS NULLED TO INCLUDE
3H#6 [MEASUREMENT BUFFERS
3HRQ SBN 1 512 [SET UP TWO BLOCKS FOR THE
3J?B ...JLMEASA [MEASUREMENT PACKAGE
3JR2 ... STO 1 0 [MENDED WITH ADDR OF 1ST BUFFER PTR
3K=L SBN 1 512
3KQ= JLMEASB
3L9W ... STO 1 0 [MENDED WITH ADDR OF 2ND BUFFER PTR
3LPG JLNOMEAS
3M96 SBX 1 4 [TAKE OFF FIXED CORE
3MNQ STO 1 AFREE [TOTAL MOVABLE CORE
3N8B SMO 4
3NN2 STO 1 ASIZE [INSERT SIZE OF FC BLOCK
3P7L STO 1 CFREE [TOTAL FREE AVAILABLE
3P## ... LDX 1 BFREE [ ADDED FOT ICT AND CAS IN MK865
3PF2 ... CALL 0 (GFRIN)
3PM= #
3Q6W # SET UP BSTB/CCTABLE TO HOLD INFORMATION ABOUT THE GEORGE FILE
3QLG #
3R66 # WD 0 B0-B5 DEVICE TYPE *
3RKQ # WD 1 B0-B23 DATUM OF GEORGE FILE * DRUMS
3S5B # WD 2 B0-B23 LENGTH OF GEORGE FILE *
3SK2 #
3T4L # WD 0 B0-B5 DEVICE TYPE B18-B23 SUBTYPE *
3TJ= # WD 1 B0-B23 ABSOLUTE STARTING CYLINDER *
3W3W # WD 2 B0-B23 STARTING SEGMENT * DISCS
3WHG # WD 3 B0-B23 NUMBER OF CYLINDERS *
3X36 # WD 4 B0-B23 NUMBER OF SEGMENTS *
3XGQ # WD 5 B0-B23 SERIAL NUMBER *
3Y2B #
3YG2 #
3Y^L LDN 5 12
3^F= LDX 6 BLTYPE(2) [DEVICE TYPE
3^YW SBN 6 9
42DG BZE 6 N5 [J IF SLOW DRUM
42Y6 SBN 6 16
43CQ N5 CALL 7 N90 [CORE FOR CCTABLE
43XB LDX 2 BACT
44C2 STO 2 ACCTP
44WL NAME 2,BSTB,CCTABLE
45B= CHAIN 2,BINDEX+1 [CHAIN CCTABLE TO INDEX CHAIN
45TW LDX 2 BINDEX
46*G LDX 1 G3DOL
46T6 BZE 6 N6
47#Q LDCT 0 #60 [B0-B5 =6 FOR ALL DISCS
47SB STO 0 A1(2)
48#2 LDX 0 BLSUB(1) [DEVICE SUBTYPE
48RL ORS 0 A1(2) [TO CCTABLE
49?= LDN 4 BLDATUM(1)
49QW LDN 5 A1+1(2)
4==G MOVE 4 4
4=Q6 LDX 0 BLFAC+3(1)
4?9Q STO 0 A1+5(2) [SERIAL NO.
4?PB BRN N8
4#92 N6 LDX 4 BLDRUM(1)
4#NL LDX 0 BLTYPE(1) [DEVICE TYPE
4*8= SBN 0 25
4*MW BNZ 0 NX1 [J IF SLOW DRUM
4B7G SRL 45 12 [X4=DATUM
4BM6 SRL 5 12 [X5=LENGTH
4C6Q BRN NX2
4CLB NX1 SRL 45 10
4D62 ANDN 4 #3777
4DKL SRL 5 14 [CLEAR LS PART OF X5
4F5= SLL 4 10 [DATUM
4FJW SLL 5 10 [AND LENGTH FOR SLOW DRUM
4G4G NX2 LDX 0 BLTYPE(1)
4GJ6 SLL 0 18
4H3Q STO 0 A1(2) [DEVICE TYPE TO B0-B5 OF A1 OF CCTABL
4HHB STO 4 A1+1(2) [DATUM
4J32 STO 5 A1+2(2) [AND LENGTH OF DRUM FILE
4JGL BRN N9
4K2= #
4KFW # SET UP EWDAS/EXOF BLOCK FOR THE GEORGE DEVICE
4K^G #
4LF6 N8 LDN 5 FDCELLS-A1 [LENGTH OF EXOF
4LYQ CALL 7 N90 [CORE FOR EXOF BLOCK
4MDB LDX 2 G3DOL
4MY2 LDX 1 BACT
4NCL NAME 1,EWDAS,EXOF
4NX= STOZ BACK1(1)
4PBW LDN 0 1
4PWG STO 0 BACK2(1) [EXOFILE NUMBER
4QB6 STO 0 COPEN(1) [COUNT OF OPENS
4QTQ STO 0 FBUK(1)
4R*B LDCT 0 #500
4RT2 STO 0 EXMARK(1) [OPEN FOR WRITING TO THE SYSTEM
4S#L LDX 0 BLADDR(2) [WD ADD OF FIP CELL ON BACKING STORE
4SS= STO 0 HOME(1)
4T?W LDX 0 BLFAC+3(2) [GET SUSN
4TRG STO 0 ASUSN(1)
4W?6 LDN 4 BLDISC+2(2)
4WQQ LDN 5 FIP(1)
4X=B MOVE 4 15 [FILE INDEX AND PARAMS
4XQ2 CHAIN 1,BCCB [PUT BLOCK IN
4Y9L N9
4YP= #
4^8W #
4^NG # SET UP OPS CONSOLE ACTIVITY
5286 #
52MQ LDN 5 CONSALEN [LENGTH OF CONSOLE ACTIVITY
537B LDX 3 G3DOL
53M2 LDX 6 TYPEC(3) [TYPE/SUBTYPE
546L CALL 7 N90A [GETCORE AT TOP END
54L= LDX 2 BPTR(2) [PTR TO GOT BLOCK
555W LINKSET 2,SLINK7(3) [INSERT LINK
55KG LDX 0 CONDL(3)
5656 STO 0 CPPTR(2) [PTR TO DL INTO ACTIVITY
56JQ STO 0 JCTWPTR [& INTO PSEUDO PM ACTIVITY
574B FWAIT #50 [SET WAITING FOR CONSOLE
5752 ...#
575L ...#UNS ENHOPER
576= ...(
576W ...#
577G ...# SET UP CONBUFF/CNTRL BLOCK ON
5786 ...# ON MISCELLANEOUS CHAIN IF RUNNING IN DME
578Q ...#
579B ... JENVNOT NOTDME,DME
57=2 ... LDN 5 CNTRLEN
57=L ... CALL 7 N90
57?= ... LDX 3 FPTR(2)
57?W ... STO 3 CONSCNTRL [SET UP POINTER TO IT
57#G ... NAME 3,CONBUFF,CNTRL
57*6 ... LDN 0 0 [INITIALISE THE BLOCK,
57*Q ... STO 0 COIN(3)
57BB ... LDN 5 COIN(3)
57C2 ... LDN 6 COIN+1(3) [ALL BEING ZERO EXCEPT ...
57CL ... MOVE 5 CNTRLEN-1 [1ST BLOCKLET TO BE USED ...
57D= ... LDN 0 1 [IN RECALL FILE, WHICH IS 1
57DW ... STO 0 COBLK(3)
57FG ... CHAIN 3,BMISC+1
57G6 ...NOTDME
57GQ ...)
57HB ...#
57J2 #
583L #
58H= #
592W # CREATE ACT BLK FOR TRANSFER FAIL ACTIVITY
59GG LDX 5 BSABL
5=26 LDX 3 G3DOL [LOADER'S BASE
5=FQ LDX 6 TYPEB(3) [TRANSFER FAIL ACTIVITY TYPE
5=^B CALL 7 N90A
5?F2 LDX 1 BPTR(2)
5?YL STO 1 ATFAPTR [REMEMBER IN FIXED
5#D= LINKSET 1,SLINK6(3) [INSERT LINK
5#XW LDCT 0 #200
5*CG STO 0 CLONG1(1) [PRIV BIT
5*X6 LDN 5 AFRAILLEN
5BBQ GETEMSCR 5 [CORE FOR FAIL LIST
5BWB LDX 3 BACT
5CB2 NAME 3,BSTB,BFRAIL
5CTL LDN 6 A1(3) [CLEAR OUT BLOCK
5D*= LDN 7 A1+1(3)
5DSW STOZ A1(3)
5F#G MOVE 6 AFRAILLEN-1
5FS6 NGN 7 1
5G?Q STO 7 A1+1(3)
5GRB CHAIN 3,ATFAPTR [CHAIN BEHIND TFA
5H?2 #
5HQL #
5J== # CREATE ACT BLK FOR BS CONTAINING GEORGE
5JPW LDX 5 BSABL
5K9G LDX 3 G3DOL
5KP6 LDX 6 TYPEA(3)
5L8Q CALL 7 N90A
5LNB LDX 1 BPTR(2) [NEW BLOCK
5M82 STO 1 BBAC [BASE OF BACKING STORE ACTIVITY BLOCK
5MML LDX 0 GEOBSPTR
5N7= STO 0 CPPTR(1) [DEVICE
5NLW LDX 4 BSUN [BS UNIT NO
5P6G STO 4 BACK2(1) [GEORGES BSUN TO BSA
5PL6 LDN 4 1
5Q5Q ADS 4 BSUN [UPDATE
5QKB LDX 4 BSTSEP
5R52 #SKI CLINK
5RJL STO 4 ALINK1(1) [BSTS ENTRY POINT
5S4= #SKI CLINK<1$1
5SHW STO 4 ALINK2(1) [BSTS ENTRY POINT
5T3G LDX 4 BLSUB(3)
5TH6 SLL 4 12
5W2Q ORX 4 BLTYPE(3) [SUBTYPE/TYPE FOR G. DEVICE.
5WGB STO 4 AWORK1(1) [STORE IN BSA
5X22 LDX 4 ZINTBS(3) [INTERNAL NO. FOR BUTTON UP MACRO.
5XFL LDN 0 24
5X^= DVS 3 0
5YDW STO 4 BA3(1) [WORD 0,1 OR 2 OF ENGAGE BUTTON AREA
5YYG LDCT 0 #400
5^D6 SRL 0 0(3) [BIT WITHIN WORD
5^XQ STO 0 BA2(1) [STORE IN BSA
62CB LDN 5 AFAILLEN
62X2 GETEMSCR 5 [GETCORE FOR FAIL LISTS
63BL LDX 2 BACT
63W= NAME 2,BSTB,BFAIL
64*W LDN 6 A1(2)
64TG LDN 7 A1+1(2)
65*6 STOZ A1(2)
65SQ MOVE 6 AFAILLEN-1 [CLEAR OUT BLOCK
66#B NGN 7 1
66S2 STO 7 A1+1(2)
67?L CHAIN 2,BBAC [AND CHAIN BEHIND BSA
67#= ...#
67#W ...#UNS ENHOPER
67*G ...(
67B6 ...# SET UP A GMON/JRNAL BLOCK FOR EACH CONSOLE MESSAGE
67BQ ...# TO PUT IT ONTO THE JOURNAL CHAIN (FOR DME)
67CB ...#
67D2 ... JENVNOT MSS8,DME [APPARENTLY ONLY FOR DME
67DL ... STO 2 FX2 [NEEDED FOR FPUT LATER
67F= ... LDX 2 G3DOL
67HQ ... LDX 1 OPMESS(2)
67JB ... LDX 1 0(1) [MESSAGE BUFFER
67K2 ... BZE 1 MSS9 [NO MESSAGES (VIA GELL)
67KL ...MSS1 LDX 5 0(1) [COUNT WORD
67L= ... BZE 5 MSS9 [NO MORE MESSAGES
67LW ... ADN 5 6 [6 MORE WORDS IN BLOCK
67MG ... STO 1 FX1 [GETEMSCR CORRUPTS
67N6 ... GETEMSCR 5 [GET CORE FOR BLOCK
67NQ ... LDX 3 BACT
67PB ... NAME 3,GMON,JRNAL
67Q2 ... STOZ JWAITER(3) [AUTONOMOUS
67QL ... LDN 0 5
67R= ... SLL 0 11
67RW ... STO 0 JCATS(3) [SET JL & CL; UNSET PA - UNPACKED
67SG ... STOZ JJOBNO(3) [NO JOB
67T6 ... LDN 0 274
67TQ ... SLL 0 12
67WB ... STO 0 JPACKORG(3) [MESSAGE NO
67X2 ... LDX 1 FX1
67XL ... LDX 5 1
67Y= ... ADN 5 1 [START OF MESSAGE
67YW ... LDN 6 JMESSAGE(3)
67^G ... SMO 0(1)
6826 ... MOVE 5 0 [COPY IN MESSAGE
682Q ... LDX 5 0(1)
683B ... SBN 5 1 [TURN EXCLUSIVE
6842 ... SLL 5 2 [CHAR COUNT FOR GMONTIDY
684L ... GMONTIDY 3,5,UNPACKED [INSERTS RED TAPE & CHECKSUM
685= ... CHAIN 3,BSJC+BPTR [STICK ON JOURNAL CHAIN
685W ... LDX 1 FX1
686G ... ADX 1 0(1) [NEXT MESSAGE IN BUFFER
6876 ... BRN MSS1
687Q ...MSS9 LDX 2 FX2
688B ...MSS8
6892 ...)
689L ...GIVE6
68=W SMO G3DOL
68QG LDN 6 XECWORDS
69=6 LDN 7 25
69PQ MOVE 6 3
6=9B LDX 3 GIVE6REP
6=P2 LDN 0 TCPUEND-TCPU
6?8L TXL 3 0
6?N= BCC PN1 [GIVE6 REPLY FROM
6#7W BZE 3 PN1 [EXEC OUT OF RANGE
6#MG LDX 6 BEATTIME
6*76 LDX 7 CHAPTIME
6*LQ ... SMO G3DOL
6B6B LDX 4 TCPU(3) [BEATTIME & CHAPTIME FROM TABLE
6BL2 SRL 45 12
6C5L SRL 5 12
6CK= BNZ 6 PN2 [J IF BEATTIME ALREADY SET
6D4W STO 4 BEATTIME [ELSE STORE DEFAULT
6DJG PN2 BNZ 7 PN3 [J IF CHAPTIME SET
6F46 STO 5 CHAPTIME [ELSE SET DEFAULT
6FHQ PN3 STO 3 GIVE6REP [STORE REPLY IN FIXED
6G3B [GEORGE TO USE.CURRENTLY GIVE6REP=19
6GH2 FPUT [LIST IT
6GJ3 ...# CODE TO CLEAR EBA FOR CONSOLE
6GK4 ... LDX 2 G3DOL
6GL5 ... LDN 5 24
6GM6 ... LINT CONDL(2),7
6GN7 ... DVS 6 5
6GP8 ... SMO 7
6GQ9 ... LDX 5 EBA
6GR= ... BZE 5 NOBUTTON
6GS? ... LDX 4 GSIGN
6GT# ... SMO 6
6GW* ... SRL 4 0
6GXB ... ANDX 4 5
6GYC ... ERS 4 5
6G^D ...NOBUTTON
6H2L STOZ K7 [ZEROISE MILL TIMER
6HG= LDX 5 GEN0 [SET UP EXEC : GEORGE POST-MORTEM
6H^W STO 5 K0 [LINK
6JFG STOZ GEN0 [AND CLEAR GEN0 AND GEN1
6J^6 STOZ GEN1
6KDQ SMO G3DOL [PICK UP THE REPLY FROM LOADERFS
6KYB LDX 0 JLGENRESFLG [AND TELL BACKMAP WHETHER OR NOT
6LD2 STO 0 G3DOL [A GENERAL RESTORE IS NEEDED
6LG9 ...JICTA 0
6LJD ... 0 [GAP FOR RINGMEL MACRO
6LLM ... 0
6LNW ... 0
6LR5 ... 0
6LT# ... 0
6LXL COOR1X [START
6MC= PN1 GEOERR 1,GIVE6REP
6MWW N90 EMSCORE 5
6N6N ... BRN XCASB
6NBG ...#GAP 15 [GAP IN CASE NEEDED FOR CAS OR ICT I
6NL# ...XCASB EXIT 7 0
6NW6 N90A EMSACTX 6,5 [ACT BLOCK CORE
6P5Y ... BRN XCASD
6P*Q ...#GAP 10 [GAP IN CASE NEEDED FOR CAS OR ICT I
6PKJ ...XCASD EXIT 7 0
6PN7 ...K77LOADERII
6PQQ ...#GAP 250
6PTB #END
6Q*2 )
^^^^ ...727151210001