1
0
mirror of https://github.com/pkimpel/retro-b5500.git synced 2026-04-26 20:27:41 +00:00
Files
pkimpel.retro-b5500/source/E-mode/utilities/NEATUPINFO.alg_m
paul.kimpel@digm.com 8b0d19deba Release emulator version 1.00:
1. Implement new system and disk subsystem configuration mechanism.
2. Implement initial Mark-XIII Cold Start card deck for use with new configuration interfaces.
3. Deprecate use of B5500ColdLoader.html script (replaced by new configuration mechanism and Cold Start deck), but correct and enhance IndexedDB database detection, creation, and deletion in it.
4. Implement "Application Cache" support to allow emulator to run off-line in a browser.
5. Implement web-font support and update all UIs to use DejaVu Sans and DejaVu Sans Mono from downloaded .woff or .ttf font files.
6. Rework some code in Processor OPDC, DESC, and indexDescriptor routines, attempting to resolve Flag Bit errors (issue #23). This appears to result in some improvement, but we still see them occasionally under load.
7. Line Printer:
    - Implement new line printer driver with more realistic UI and operator controls.
    - Implement Algol Glyphs option to render special Algol characters in Unicode.
    - Implement support for optional "greenbar" shading on the "paper".
8. SPO:
    - Redesign SPO driver to accept input from a text <input> element instead of capturing keystrokes directly from the window or "paper" <iframe>. This was done to allow input from tablet and mobile devices that will not pop up a keyboard unless an input-like element has the focus.
    - Implement Unicode Algol Glyphs support on output.
    - Intelligently resize "paper" area when SPO window is resized.
    - Accept "_" as a substitute for "~" as end-of-message on input.
9. Card Punch:
    - Implement Unicode Algol Glyphs support on output.
    - Implement stacker-full annunciators in UI.
10. Card Reader:
    - Implement Unicode Algol Glyphs support on input.
    - Accept "_" as a substitute for "~" on input.
11. Disk:
    - Adapt B5500DiskUnit driver to new configuration mechanism.
    - Implement support for Model-IB (slow) disk and non-DFX disk storage configurations; support up to 20 EUs.
    - Implement check for DKA readiness in cc.load() if not doing card-load-select.
12. Datacom:
    - Rework datacom driver keystroke handling for compatibility with Google Chrome.
    - Correct typo (line 437) in B5500DatacomUnit reported by Peter Grootswagers (issue #28).
13. Magnetic Tape:    
    - Implement more granular tape reel animation in B5500MagTapeDrive.
    - Open the tape loader window on top of its device window.
14. Correct color of NOT READY lamps in peripheral device UIs; convert <progress> bars to <meter> elements.
15. More intelligently resize peripheral UI controls when their window is resized.
16. Implement lamp test during power-on in B5500Console.
17. Illuminate NOT READY light on Console at power-on if certain minimum configuration requirements are not met.
18. Set all HTML <meta> Content-Type character sets to UTF-8 (were ISO-8859-1); correct problem with FireFox requiring the character set to be specified within the first 1024 characters of an HTML file.
19. Clean up and refactor CSS style sheets
20. Split Javascript code out from B5500Console.html to new B5500Console.js.
21. Refactor common UI routines into webUI\B5500Util.js.
22. Move images and fonts to new webUI/resources directory; rearrange files in webUI/tool, tools, tests, source directories of repo.
23. Make significant wiki updates to document the new features in this release.
2014-09-29 15:28:56 +00:00

199 lines
18 KiB
Plaintext

BEGIN 00000100120323PK
INTEGER 00000200120323PK
W, 00000300120323PK
X; 00000400120323PK
FILE 00000500120323PK
DISK(KIND=DISK, MAXRECSIZE=90, BLOCKSIZE=1800, FRAMESIZE=8, 00000600120323PK
AREAS=1, AREASIZE=1000, FLEXIBLE, 00000700120323PK
TITLE="DATA/MISC/B5500/NEATUPINFO."); 00000750120323PK
00000800120323PK
EBCDIC VALUE ARRAY LEXICONTEXT 0000090081/10/14.1
("TRANSLATETABLELOCKCOMMENTSLEFTCOMMENTSINDENTTHENIFINDE", 0000100081/10/14.1
"NTELSEIFDEFINEINDENTBEGINOFFSETELSEOFFSETLINELENGTHONE", 0000110081/10/14.1
"PERLINEATUPLISTPROCINDENTNEATUPSEQDECINDENTREFERENCEPR", 0000120081/10/14.1
"OCEDUREINTERRUPTINTERLOCKTRUTHSETDATABASECOMPLEXBOOLEA", 0000130081/10/14.1
"NPOINTERPICTUREINTEGERMONITORMESSAGELIBRARYLAYOUTFORMA", 0000140081/10/14.1
"TEXPORTNUMBERSTRINGSWITCHEBCDICDOUBLEDIRECTMARGINEVENT", 0000150081/10/14.1
"ASCIIARRAYRESETALPHAVALUEQUEUEFIELDLABELWHILEUNTILCASE", 0000160081/10/14.1
"THRUSTEPLONGFILEREALWORDOMITPAGEPOPBCLANDOWNHEXNOTNEQM", 0000170081/10/14.1
"ODLSSEQLENDIVLEQIMPGTRGEQVBY"); 0000180081/10/14.1
VALUE ARRAY COARSEINDEX( 0000190081/10/14.1
4"000000000003",4"000004000008",4"00000900000B",4"00000C000013", 0000200081/10/14.1
4"00001400001B",4"00001C00001F",4"000020000021",4"000022000022", 0000210081/10/14.1
4"00002300002B",4"000001000000",4"000001000000",4"00002C000036", 0000220081/10/14.1
4"00003700003A",4"00003B000040",4"000041000046",4"00004700004C", 0000230081/10/14.1
4"00004D00004D",4"00004E000050",4"000051000054",4"000055000058", 0000240081/10/14.1
4"000059000059",4"00005A00005A",4"00005B00005C",4"000001000000", 0000250081/10/14.1
4"000001000000",4"000001000000",4"000001000000",4"000001000000", 0000260081/10/14.1
4"000001000000",4"000001000000",4"000001000000",4"000001000000", 0000270081/10/14.1
4"000001000000",4"000001000000",4"000001000000"); 0000280081/10/14.1
VALUE ARRAY INFOARRAY( 0000290081/10/14.1
4"0C30841A0012",4"145030144000",4"14502E149000",4"14502C153000", 0000300081/10/14.1
4"0820881CA002",4"0C303219D000",4"14508604A002",4"1C70340D2000", 0000310081/10/14.1
4"2CB00204A001",4"10408A176002",4"1C70380CB000",4"1C7036012000", 0000320081/10/14.1
4"08208E12D002",4"0C308C1BA002",4"18603C03E000",4"18604012D000", 0000330081/10/14.1
4"18603E133000",4"20803A0C3000",4"24900408E001",4"30C00603E001", 0000340081/10/14.1
4"0C30941B5022",4"0C30921B8182",4"0C30961C7012",4"104090038182", 0000350081/10/14.1
4"14504413F000",4"186042127000",4"18604610F000",4"28A008055001", 0000360081/10/14.1
4"0C3098109042",4"10404A186000",4"145048162008",4"18604C109000", 0000370081/10/14.1
4"0C309C1C3022",4"0C309A1C6022",4"0C304E1A6000",4"0820A0026022", 0000380081/10/14.1
4"08209E030002",4"0C30A21C0012",4"18600A026001",4"1C70500E7000", 0000390081/10/14.1
4"2490540A9000",4"2490520B2008",4"30C00C032001",4"30C00E026001", 0000400081/10/14.1
4"0C30A41BD022",4"0C30A61B2022",4"104060182000",4"10405E00E008", 0000410081/10/14.1
4"10405C077000",4"145056167000",4"186058103008",4"1C705A0FC000", 0000420081/10/14.1
4"28A01405F001",4"30C01200E001",4"30C01001A001",4"0C30A81AF002", 0000430081/10/14.1
4"186016139001",4"1C70640EE000",4"1C70620F5004",4"0C30AC1A9012", 0000440081/10/14.1
4"0C30AA1AC022",4"186066115000",4"186018071001",4"24901C085001", 0000450081/10/14.1
4"28A01A071001",4"082068069000",4"0820B00F3012",4"0820AE04F002", 0000460081/10/14.1
4"0C306A1A3000",4"10401E192001",4"28A020069001",4"0C302419A001", 0000470081/10/14.1
4"104022196001",4"1C706C0E0000",4"1C706E0D9000",4"2490700A0000", 0000480081/10/14.1
4"28A02607B001",4"14507215D00C",4"10407418A000",4"14502814E001", 0000490081/10/14.1
4"249076097000",4"0C302A052001",4"1040B417E002",4"18607811B000", 0000500081/10/14.1
4"18607A121000",4"1040B202C102",4"1040B617A042",4"20807E0BB000", 0000510081/10/14.1
4"38E07C000000",4"1450B8171082",4"145080158000",4"10408218E008", 0000520081/10/14.1
4"1450BA16C042"); 0000530081/10/14.1
DEFINE 0000540081/10/14.1
ALPHAC = 22 #, 0000550081/10/14.1
ANDC = 66 #, 0000560081/10/14.1
ARRAYC = 23 #, 0000570081/10/14.1
ASCIIC = 24 #, 0000580081/10/14.1
BCLC = 25 #, 0000590081/10/14.1
BEGINC = 67 #, 0000600081/10/14.1
BEGINOFFSETC = 1 #, 0000610081/10/14.1
BOOLEANC = 26 #, 0000620081/10/14.1
BYC = 68 #, 0000630081/10/14.1
CASEC = 69 #, 0000640081/10/14.1
COMMENTC = 27 #, 0000650081/10/14.1
COMPLEXC = 28 #, 0000660081/10/14.1
DATABASEC = 29 #, 0000670081/10/14.1
DECINDENTC = 2 #, 0000680081/10/14.1
DEFINEC = 30 #, 0000690081/10/14.1
DEFINEINDENTC = 3 #, 0000700081/10/14.1
DIRECTC = 31 #, 0000710081/10/14.1
DIVC = 70 #, 0000720081/10/14.1
DOC = 71 #, 0000730081/10/14.1
DOUBLEC = 32 #, 0000740081/10/14.1
EBCDICC = 33 #, 0000750081/10/14.1
ELSEC = 72 #, 0000760081/10/14.1
ELSEOFFSETC = 4 #, 0000770081/10/14.1
ENDC = 73 #, 0000780081/10/14.1
EQLC = 74 #, 0000790081/10/14.1
EQVC = 75 #, 0000800081/10/14.1
EVENTC = 34 #, 0000810081/10/14.1
EXPORTC = 35 #, 0000820081/10/14.1
FIELDC = 36 #, 0000830081/10/14.1
FILEC = 37 #, 0000840081/10/14.1
FORC = 76 #, 0000850081/10/14.1
FORMATC = 38 #, 0000860081/10/14.1
GEQC = 77 #, 0000870081/10/14.1
GTRC = 78 #, 0000880081/10/14.1
HEXC = 39 #, 0000890081/10/14.1
IFC = 79 #, 0000900081/10/14.1
IMPC = 81 #, 0000910081/10/14.1
INC = 80 #, 0000920081/10/14.1
INDENTC = 5 #, 0000930081/10/14.1
INDENTELSEIFC = 6 #, 0000940081/10/14.1
INDENTTHENIFC = 7 #, 0000950081/10/14.1
INTEGERC = 40 #, 0000960081/10/14.1
INTERLOCKC = 41 #, 0000970081/10/14.1
INTERRUPTC = 42 #, 0000980081/10/14.1
LABELC = 43 #, 0000990081/10/14.1
LAYOUTC = 44 #, 0001000081/10/14.1
LEFTCOMMENTSC = 8 #, 0001010081/10/14.1
LEQC = 82 #, 0001020081/10/14.1
LIBRARYC = 45 #, 0001030081/10/14.1
LINELENGTHC = 10 #, 0001040081/10/14.1
LISTC = 46 #, 0001050081/10/14.1
LOCKC = 47 #, 0001060081/10/14.1
LOCKCOMMENTSC = 9 #, 0001070081/10/14.1
LONGC = 48 #, 0001080081/10/14.1
LSSC = 83 #, 0001090081/10/14.1
MARGINC = 11 #, 0001100081/10/14.1
MESSAGEC = 49 #, 0001110081/10/14.1
MODC = 84 #, 0001120081/10/14.1
MONITORC = 50 #, 0001130081/10/14.1
NEATUPC = 12 #, 0001140081/10/14.1
NEATUPLISTC = 13 #, 0001150081/10/14.1
NEATUPSEQC = 14 #, 0001160081/10/14.1
NEQC = 85 #, 0001170081/10/14.1
NOTC = 86 #, 0001180081/10/14.1
NUMBERC = 51 #, 0001190081/10/14.1
OFC = 87 #, 0001200081/10/14.1
OMITC = 15 #, 0001210081/10/14.1
ONC = 52 #, 0001220081/10/14.1
ONEPERLINEC = 16 #, 0001230081/10/14.1
ORC = 88 #, 0001240081/10/14.1
OWNC = 53 #, 0001250081/10/14.1
PAGEC = 17 #, 0001260081/10/14.1
PICTUREC = 54 #, 0001270081/10/14.1
POINTERC = 55 #, 0001280081/10/14.1
POPC = 18 #, 0001290081/10/14.1
PROCEDUREC = 56 #, 0001300081/10/14.1
PROCINDENTC = 19 #, 0001310081/10/14.1
QUEUEC = 57 #, 0001320081/10/14.1
REALC = 58 #, 0001330081/10/14.1
REFERENCEC = 59 #, 0001340081/10/14.1
RESETC = 20 #, 0001350081/10/14.1
SETC = 21 #, 0001360081/10/14.1
STEPC = 90 #, 0001370081/10/14.1
STRINGC = 60 #, 0001380081/10/14.1
SWITCHC = 61 #, 0001390081/10/14.1
THENC = 89 #, 0001400081/10/14.1
THRUC = 91 #, 0001410081/10/14.1
TRANSLATETABLEC = 62 #, 0001420081/10/14.1
TRUTHSETC = 63 #, 0001430081/10/14.1
UNTILC = 92 #, 0001440081/10/14.1
VALUEC = 64 #, 0001450081/10/14.1
WHILEC = 93 #, 0001460081/10/14.1
WORDC = 65 #; 0001470081/10/14.1
DEFINE 0001480081/10/14.1
ALGOL = 0 #, 0001490081/10/14.1
BOOLEANOP = 0 #, 0001500081/10/14.1
DCALGOL = 1 #, 0001510081/10/14.1
DECLARATOR = 0 #, 0001520081/10/14.1
ESPOL = 2 #, 0001530081/10/14.1
ESPOLORDCALGOL = 3 #, 0001540081/10/14.1
ITERATIONOP = 2 #, 0001550081/10/14.1
LINEENDER = 4 #, 0001560081/10/14.1
MYOPTION = 1 #, 0001570081/10/14.1
RELATIONOP = 1 #, 0001580081/10/14.1
RESWORD = 2 #, 0001590081/10/14.1
TERMINATOR = 3 #; 0001600081/10/14.1
DEFINE 0001610081/10/14.1
COARSEFINISHF = [23:24] # 0001620081/10/14.1
,COARSESTARTF = [47:24] # 0001630081/10/14.1
,INFODEFINEVALUE(INX) = INFOARRAY[INX].[35:11] # 0001640081/10/14.1
,DEFINEVALUE(INX) = INFOARRAY[INX].[35:11] # 0001650081/10/14.1
,INFOMINSIZE(INX) = INFOARRAY[INX].[47:6] # 0001660081/10/14.1
,MINSIZE(INX) = INFOARRAY[INX].[47:6] # 0001670081/10/14.1
,INFOLEXPTR(INX) = INFOARRAY[INX].[24:13] # 0001680081/10/14.1
,INFOTEXTSIZE(INX) = INFOARRAY[INX].[41:6] # 0001690081/10/14.1
,ITEMTYPE(INX) = INFOARRAY[INX].[1:2] # 0001700081/10/14.1
,DECLANGUAGE(INX) = INFOARRAY[INX].[3:2] # 0001710081/10/14.1
,RESWORDTYPE(INX,BIT) = BOOLEAN(INFOARRAY[INX].[4+BIT:1]) # 0001720081/10/14.1
,ITEMKEY(INX) = INFOARRAY[INX].[35:11] # 0001730081/10/14.1
,INFOENTRYSIZE = 1 #; 0001740081/10/14.1
DEFINE HASH(R,PTR) = 0001750081/10/14.1
(R:=(R:=REAL(PTR,1)).[3:4]-1-R.[5:1]+9*R.[5:2])#; 0001760081/10/14.1
0001770081/10/14.1
WRITE(DISK, <"COARSE INDEX:">); 00017800120323PK
FOR X:= 0 STEP 1 WHILE X < SIZE(COARSEINDEX) DO 00017900120323PK
BEGIN 00018000120323PK
W:= COARSEINDEX[X]; 00018100120323PK
WRITE(DISK, <I3,":",2I4>, X, W.COARSESTARTF, W.COARSEFINISHF); 00018200120323PK
END; 00018300120323PK
00018400120323PK
WRITE(DISK, </,"INFOARRAY:">); 00018450120323PK
FOR X:= 0 STEP 1 WHILE X < SIZE(INFOARRAY) DO 00018500120323PK
BEGIN 00018600120323PK
WRITE(DISK, <I3,":",4I3,I6,I5,2I3,X1,A*>, 00018700120323PK
X, HASH(W, LEXICONTEXT[INFOLEXPTR(X)]), 00018800120323PK
ITEMTYPE(X), DECLANGUAGE(X), INFOARRAY[X].[11:8], 00018900120323PK
DEFINEVALUE(X), INFOLEXPTR(X), 00019000120323PK
INFOMINSIZE(X), INFOTEXTSIZE(X), INFOTEXTSIZE(X), 00019100120323PK
LEXICONTEXT[INFOLEXPTR(X)]); 00019200120323PK
END; 00019300120323PK
00019320120323PK
CLOSE(DISK, CRUNCH); 00019340120323PK
END. 00019400120323PK