1
0
mirror of https://github.com/retro-software/B5500-software.git synced 2026-01-13 15:17:03 +00:00

Commit initial B6500 MCP Mark 0.0 source, transcribed by James Fehlinger, as of 2014-06-04.

This commit is contained in:
Paul Kimpel 2014-07-25 23:31:19 +00:00
parent a18c850a00
commit 8c710f2381

175
source/B65MCP/MARK00.esp_m Normal file
View File

@ -0,0 +1,175 @@
BEGIN 00000000
COMMENT MCP LISTING DIRECTORY 00001000
010000000 INDEPENDENT RUNNER FORWARD DECLARATION 00002000
020000000 FORWARD PROCEDURE DECLARATION 00003000
08000000 INITIAL VALUE TABLES 00004000
08000000 BCL TO EBCEDIC 00005000
08018000 EBCEDIC TO BCL 00006000
08084000 TRUTH SETS 00007000
08106000 POWER OF TEN TABLES 00007100
08247000 CONTROL CARD 00007200
09000000 STANDARD QUEUE DECLARATION 00008000
10000000 GLOBALS 00009000
10017000 INTERRUPT - EVENT HANDLING GLOBALS 00010000
10055000 TAG DEFINITION 00011000
10075000 CONTROL WORD LAYOUTS 00012000
10252000 REGISTERS DEFINITIONS 00013000
11000000 STORAGE ALLOCATION GLOBALS 00014000
12000000 INITIALIZE GLOBALS 00015000
13000000 INPUT - OUTPUT GLOBALS 00016000
13056500 VALUE ARRAYS - MCPID,KEYIN GLOSSARIES,ETC. 00016100
13276000 KEYIN - SPOUT GLOBALS 00017000
13318000 IOQUE QUEUE DECLARATION 00018000
13375000 WAITCHANNELQUE QUEUE DECLARATION 00019000
14000000 DISK MANAGEMENT 00020000
15000000 GETAREA - FORGET AREA GLOBALS 00021000
16000000 STANDARD INSERT 00022000
16016000 STANDARD DELINK 00023000
17000000 NAMEQUE QUEUE DECLARATION 00024000
17021000 BLOCKSOFAREAQUE QUEUE DECLARATION 00025000
17035000 KEYING QUEUE DECLARATION 00026000
18007000 FILE MANAGEMENT 00027000
19000000 REPLY MESSAGE 00028000
20000000 INDEPENDENT RUNNER GLOBALS 00029000
21140000 READYQ QUEUE DECLARATION 00030000
21263000 SHEETQ QUEUE DECLARATION 00031000
21357000 TERMINATEQ QUEUE DECLARATION 00032000
23000000 DIRECTORY MANAGEMENT 00034000
24000000 I/0 INTRINSIC DECLARATIONS 00034100
30000000 GETSPACE / FORGETSPACE 00035000
31000000 GETAREA / FORGETAREA 00036000
32000000 INITIALIZE 00037000
33000000 HARDWAREINTERRUPT 00038000
33167000 PRESENCEBIT 00039000
33538000 WHATDOIDO 00040000
33567000 EVENTHANDLER 00041000
33763000 SOFTWAREINTERRUPTDEC 00042000
33855000 HOLD 00043000
33890000 HOLDINITIALIZE 00044000
33961000 GETINDEPENDENTRUNNERSTACK 00045000
33960000 INDEPENDENTRUNNER 00046000
34051000 RUN 00047000
34086000 LOADFIXDIRSTACK 00048000
38000000 CONTROL CARD 00048600
40000000 INPUT - OUTPUT ROUNTINES 00049000
40005000 STARTIO 00050000
40037000 INITIATEIO 00051000
40075000 IOREQUEST 00052000
40089000 WAITIO 00053000
40131000 NEWIO 00054000
40154000 IOFINISH 00055000
40316000 STATUS 00056000
40565000 DISKIO 00057000
40597000 DISKWAIT 00058000
44022000 DISPLAY ROUTINES 00059000
44097000 KEYIN 00060000
44176000 SPOUT 00061000
50000000 ERROR ROUTINES 00062000
50000000 IOERROR 00063000
55000000 DISK MANAGEMENT 00064000
55018000 FORGETESPDISK 00066000
55039000 GETUSERDISK 00067000
55123000 FORGETUSERDISK 00068000
58000000 LIBRARY MAINTENANCE 00068900
59000000 PERIPHERALINITIALIZE 00069000
60000000 PROGRAM INTRINSICS 00070000
65000000 ARRAYDEC 00071000
65174000 BLOCKEXIT 00072000
65228000 GOTOSOLVER 00073000
70000000 PROGRAM INPUT- OUTPUT INTRINSICS 00074000
80000000 SELECTION - PROCESS HANDLING 00075000
80361000 INITIATE 00076000
80519000 SELECTION 00077000
80600000 TERMINATE 00077200
99000000 MONITOR 00078000
99970000 MCP OUTER BLOCK 00079000
; 00999999
COMMENT FOLLOWING ARE FORWARD DECLARATIONS FOR PROCEDURES CAPABLE OF 01000000
RUNNING AS INDEPENDENT RUNNERS. THE FORWARD DECLARATION FOR 01001000
A NEW INDEPENDENT RUNNER MUST APPEAR BEFORE THAT FOR STATUS IF 01001500
IT IS CAPAPABLE OF MULTIPLE REPRESENTATION. AN INDICATOR MAY. 01002000
BE ASSOCIATED WITH AN INDEPENDENT RUNNER (SEE CROSS FEFERENCE 01002500
FOR "TERMINATE" AND "TERMINATEINDICATOR" FOR HOW THIS IS 01003000
EFFECTED). THIS INDICATOR ISNOT NECESSARY TO THE 01003500
IMPLEMENTATION, HOWEVER IT IS NECESSARY IF INDEPENDENTRUNNER IS01004000
01004300
TO RECOGNISE THE NEW RUNNER AS A SPECIAL CASE 01004500
01004600
; 01005000
PROCEDURE CONTROLCARD (PARAMETER); 01006000
WORD PARAMETER; FORWARD; 01007100
PROCEDURE READALABEL(LINFO);VALUE LINFO;REAL LINFO;FORWARD; 01007105
PROCEDURE PURGIT(U);VALUE U;REAL U;FORWARD; 01007107
PROCEDURE DIRECTORYCOMPLEMENT(ROW); ARRAY ROW[*]; FORWARD; 01007200
PROCEDURE IRTEST(IND); INTEGER IND; FORWARD; 01008000
PROCEDURE INITIATE (DUMMY); REAL DUMMY; FORWARD; 01008200
PROCEDURE IOERROR(RD); REAL RD; FORWARD; 01008500
01009000
PROCEDURE STATUS (COUNT); INTEGER COUNT; FORWARD; 01009100
PROCEDURE KEYIN(COUNT); REAL COUNT; FORWARD; 01009110
PROCEDURE CONNSOUL(COUNT); REAL COUNT; FORWARD;% 01010000
PROCEDURE TERMINATE (PARAMETER); REAL PARAMETER ; FORWARD; 01011000
COMMENT: FOR THOSE OF YOU WHO DON"T KNOW SO, TERMINATE MUST BE THE 01011100
LAST INDEPENDENTRUNNER DECLARED IN THIS FORWARD LIST. 01011200
ONE WRITES "FORK(<PROCEDURE ID>, <PARAMETER>)" TO START ONE OF 01011300
THESE GUYS UP; 01011400
PROCEDURE WHATDOIDO; FORWARD; 02000000
PROCEDURE INDEPENDENTRUNNER(INDEX,PAR);VALUE INDEX,PAR;REAL INDEX; 02001000
WORD PAR; FORWARD; 02002000
PROCEDURE LOADFIXEDIRSTACK(STACKNO);VALUE STACKNO;INTEGER STACKNO; 02003000
FORWARD; 02004000
SAVE INTEGER PROCEDURE TRACE = (0,19) ( TRACTER ) ; 02005000
VALUE TRACTER; INTEGER TRACTER; FORWARD; 02006000
SAVE REAL PROCEDURE GETSPACE (SIZE, WHOFOR, TYPE, ADDRESS); 02007000
VALUE SIZE, WHOFOR, TYPE, ADDRESS; 02008000
INTEGER SIZE, WHOFOR, TYPE; 02009000
REAL ADDRESS; FORWARD; 02010000
SAVE INTEGER PROCEDURE FORGETSPACE (ADDRESS); 02011000
VALUE ADDRESS; INTEGER ADDRESS; FORWARD; 02012000
SAVE PROCEOURE OVERLAY (ADDRESS); VALUE ADDRESS;INTEGER ADDRESS;FORWARD;02013000
REAL PROCEDURE DIRECTORYSEARCH(POINT, CODE, LLOCK); 02016100
VALUE POINT, CODE, LLOCK; 02016200
POINTER POINT; 02016300
REAL CODE; 02016400
BOOLEAN LLOCK; FORWARD; 02016500
SAVE PROCEDURE IOFINISH(MPXINDEX); VALUE MPXINDEX; 02017000
INTEGER MPXINDEX; FORWARD; 02018000
PROCEDURE FINISHOFFIO(IOCB); VALUE IOCB; REFERENCE IOCB; FORWARD;02019000
PROCEDURE FINISHOFFIO(IOCB); VALUE IOCB; REFERENCE IOCB; ; COMMENT * * ;02020000
SAVE 02020998
PROCEDURE SPOUT(IOCB,U);VALUE IOCB,U;REAL U;REFERERCE IOCB;FORWARD; 02021000
PROCEDURE MESSER(W,INFO);VALUE W,INFO;REAL W;WORD INFO;FORWARD;% 02021100
PROCEDURE MIXPRINT(BUF);ARRAY BUF[*]; FORWARD;% 02022000
BOOLEAN PROCEDURE JULIT(P);POINTER P; FORWARD; 02022300
PROCEDURE DATIT(P); POINTER P; FORWARD;% 02022400
REAL PROCEDURE CURRENTTIME; FORWARD; 02022500
PROCEDURE CHANLOUT(I,BUFF);VALUE I;REAL I;ARRAY BUFF[*];FORWARD; 02022600
SAVE PROCEDURE CONNQUEST(UNIT); VALUE UNIT; REAL UNIT; FORWARD; 02023000
SAVE PROCEDURE UNEXPIOERROR(IOCB,IOERRORMASK); 02024000
VALUE IOCB,IOERRORMASK; 02025000
REFERENCE IOCB; 02026000
REAL IOERRORMASK; ; COMMENT * * * * * * * * ** ; 02027000
SAVE REAL PROCEDURE WAITIO(AREA, USER, IOMASK); 02030000
VALUE USER, IOMASK; 02031000
ARRAY AREA[*]; 02032000
REAL USER, IOMASK; 02033000
FORWARD; 02034000
SAVE PROCEDURE IOREQUEST(IOCB);VALUE IOCB;REFERENCE IOCB:FORWARD; 02034100
SAVE REFERENCE PROCEDURE DISKIO(CORE,INDEX,SIZE,DISK,MASK,DISKIOEVNT); 02035000
VALUE INDEX,SIZE,DISK,MASK; 02036000
INTEGER INDEX,SIZE,DISK,MASK; 02037000
ARRAY CORE [*]; 02038000
EVENT DISKIOEVNT ; FORWARD; 02039000
SAVE PROCEDURE DISKWAIT(CORE,INDEX,SIZE.DISK,MASK); 02040000
VALUE INDEX,SIZE,DISK,MASK; 02041000
INTEGER INDEX,SIZE,DISK,MASK; 02042000
ARRAY CORE[*]; 02043000
FORWARD; 02044000
PROCEDURE HARDWAREINTERRUPT(P1,P2); VALUE P1,P2; 02045000
INTEGER P1; WORD P2; FORWARD; 02046000
WORD HARDWAREINTERRUPTPCW = HARDWAREINTERRUPT; 02046100
WORD D03 = (O, 3); 02046200
SAVE PROCEDURE HOLDINITIALISE; FORWARD; 02047000
SAVE PROCEDURE PERIPHERALINITIALIZE; FORWARD; 02048000
REAL MCPDISKBASE = PERIPHERALINITIALIZE; COMMENT ADDRESS OF MCP DISK; 02049000
SAVE PROCEDURE INITIALIZE(P1, P2); 02050000