David Schultz and I conversed:
>>>> What about the model part, anyone OCR'ing that?
>>> I already have but it needs a lot of cleanup
I have now run the text through a compiler (of sorts). This detected
some more OCR typos. The result is now probably very close to the
original. The updated file is available throught the same URL above.
I have noted a few oddities:
SCR # 23 dated 1980; what is "C;"?
SCR # 45 text beoynd column 64.
SCR # 61 references "." which is defined in screen 76.
SCR # 68 unbalanced control-flow stack.
SCR # 72 dated dec 79; "U<" is undefined; text (in PDF) is small.
SCR # 76 line 13 is strange.
My "compiler" does some consistency checks and emits an index of all
definitions:
SCR # 6: EMIT KEY CR ?TERMINAL
SCR # 7: HOME SCROLL
SCR # 8: KEY EMIT CR ?TERMINAL
SCR # 12:
SCR # 13: LIT PUSH PUT NEXT
SCR # 14: SETUP EXECUTE
SCR # 15: BRANCH 0BRANCH BUMP:
SCR # 16: (LOOP) L1: L2: (+LOOP)
SCR # 17: (DO) POPTWO POP I
SCR # 18: DIGIT
SCR # 19: (FIND)
SCR # 20: ENCLOSE
SCR # 21: EMIT KEY ?TERMINAL CR
SCR # 22: CMOVE
SCR # 23: U*
SCR # 24: U/
SCR # 25: AND OR XOR
SCR # 26: SP@ PUSH0A SP! RP! ;S
SCR # 27: LEAVE >R R> R
SCR # 28: 0= 0<
SCR # 29: + D+ MINUS DMINUS
SCR # 30: OVER DROP SWAP DUP
SCR # 31: +! TOGGLE
SCR # 32: @ C@ ! C!
SCR # 33: : ;
SCR # 34: CONSTANT VARIABLE USER
SCR # 35: 0 1 2 3 BL C/L FIRST LIMIT B/BUF B/SCR +ORIGIN
SCR # 36: TIB WIDTH WARNING FENCE DP VOC-LINK BLK IN OUT SCR
SCR # 37: OFFSET CONTEXT CURRENT STATE BASE DPL PLO CSP R# HLD
SCR # 38: 1+ 2+ HERE ALLOT , C, - = < > ROT SPACE -DUP
SCR # 39: TRAVERSE LATEST LFA CFA NFA PFA
SCR # 40: !CSP ?ERROR ?COMP ?EXEC ?PAIRS ?CSP ?LOADING
SCR # 41: COMPILE [ ] SMUDGE HEX DECIMAL
SCR # 42: (;CODE) ;CODE
SCR # 43: <BUILDS DOES>
SCR # 44: COUNT TYPE -TRAILING (.") ."
SCR # 45: EXPECT QUERY X
SCR # 46: FILL ERASE BLANKS HOLD PAD
SCR # 47: WORD
SCR # 48: (NUMBER) NUMBER -FIND
SCR # 49: (ABORT) ERROR ID.
SCR # 50: CREATE
SCR # 51: [COMPILE] LITERAL DLITERAL ?STACK
SCR # 52: INTERPRET
SCR # 53: IMMEDIATE VOCABULARY FORTH DEFINITIONS (
SCR # 54: QUIT ABORT
SCR # 55: COLD
SCR # 56: S->D +- D+- ABS DABS MIN MAX
SCR # 57: M* M/ * /MOD / MOD */MOD */ M/MOD
SCR # 58: USE PREV +BUF UPDATE EMPTY-BUFFERS DR0 DR1
SCR # 59: BUFFER
SCR # 60: BLOCK
SCR # 61: (LINE) .LINE MESSAGE
SCR # 62: LOAD -->
SCR # 63:
SCR # 64:
SCR # 65: DATA STATUS #HL
SCR # 66: D/CHAR ?DISC
SCR # 67: BLOCK-WRITE
SCR # 68: BLOCK-READ
SCR # 69: R/W
SCR # 70:
SCR # 71:
SCR # 72: ' FORGET
SCR # 73: BACK BEGIN ENDIF THEN DO LOOP +LOOP UNTIL
SCR # 74: END AGAIN REPEAT IF ELSE WHILE
SCR # 75: SPACES <# #> SIGN # #S
SCR # 76: D.R D. .R . ?
SCR # 77: LIST INDEX TRIAD
SCR # 78: VLIST
SCR # 79: MON
SCR # 80: