mbabbl.8 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736
  1. TITLE New, exquisitely tasteful, BABBLE (MARC 10/10/76)
  2. .MLLIT==1
  3. A=1
  4. B=2
  5. C=3
  6. D=4
  7. E=5
  8. F=6
  9. I=11
  10. J=12
  11. THIS=7
  12. LAST=10
  13. PLAYER=13
  14. P=17
  15. PKPAGE==293.
  16. RECLEN==6
  17. NMSLOT==0
  18. PRSLOT==1
  19. SCSLOT==2
  20. MXSLOT==3
  21. RKSLOT==4
  22. PCSLOT==5
  23. TVI==1
  24. TYOC==0
  25. TYIC==2
  26. LOC 42
  27. JSR TSINT
  28. LOC 100
  29. TVNAME: SIXBIT /FILE/
  30. BABNAM: .FNAM2
  31. PEEKSW: 0
  32. RNDFLG: 0
  33. REPTSW: 0
  34. HPOS: 0
  35. SUM: 0
  36. MAXPRG: 0
  37. NAME: 0
  38. VERBOS: 0
  39. PASSES: 0
  40. RANK: 0
  41. RUMODE: 0
  42. UMODE: PCSLOT
  43. MODE: PCSLOT
  44. XUNAME: 0
  45. PDL: BLOCK 40
  46. JCL: BLOCK 16
  47. NUM: 0
  48. SWITCH: 0
  49. PRUNE: 0
  50. SLEEPR: 150.
  51. SORTLN==<1024./3>
  52. SORTBL: BLOCK SORTLN
  53. SCOROF==671.
  54. TELEOF==335.
  55. TSINT: 0 ;HERE TO CATCH INT. CHARS
  56. 0
  57. MOVEI B,TYIC
  58. .ITYIC B,
  59. .VALUE
  60. CAIN B,19.
  61. JRST [MOVEI B,"T
  62. .IOT TYOC,B
  63. JRST TSINT1]
  64. CAIN B,7.
  65. JRST [.RESET TYOC,
  66. .RESET TYIC,
  67. .VALUE [ASCIZ /:
  68. *ERROR*
  69. CONTROL-G?
  70. LISTENING-AT-LEVEL 2 PROCESS 1
  71. 
  72. :KILL
  73. /]]
  74. CAIL B,"0
  75. CAILE B,"9
  76. JRST TSINT2
  77. .DISMIS TSINT+1
  78. SUBI B,"0
  79. SKIPN B
  80. ADDI B,1
  81. IMULI B,30.
  82. MOVEM B,SLEEPR
  83. .DISMIS [TVPEEK]
  84. TSINT2: CAIE B,"P
  85. CAIN B,"p
  86. JRST [.RESET TYIC,
  87. .VALUE [ASCIZ /J/]
  88. .DISMIS [TVPEEK]]
  89. CAIE B,"Q
  90. CAIN B,"q
  91. JRST TSINT1
  92. .DISMIS TSINT+1
  93. TSINT1: .RESET TYOC, ;FLUSH OUTPUT
  94. .RESET TYIC, ;AND INPUT
  95. .BREAK 16,40000
  96. START: .BREAK 12,[5,,JCL]
  97. MOVE P,[-40,,PDL-1]
  98. PUSHJ P,TTYOPN
  99. PUSHJ P,JCLHAK
  100. MOVE A,UMODE
  101. MOVEM A,RUMODE
  102. .CALL [SETZ
  103. SIXBIT /OPEN/
  104. 1000,,TVI
  105. 5000,,6
  106. [SIXBIT /DSK/]
  107. [SIXBIT /TV/]
  108. TVNAME
  109. SETZ [SIXBIT /MADMAN/]]
  110. .VALUE
  111. .SUSET [.RXUNAM,,XUNAME]
  112. .CALL [SETZ
  113. SIXBIT /CORBLK/
  114. 1000,,10000
  115. [-1]
  116. 1000,,2
  117. 1000,,TVI
  118. SETZI PKPAGE]
  119. .VALUE
  120. .CLOSE TVI,
  121. .SUSET [.RJNAME,,A]
  122. CAMN A,[SIXBIT /TVPEEK/]
  123. JRST TVPEEK
  124. JRST BABBIN
  125. TVPEEK: SETOM PEEKSW
  126. SKIPE REPTSW
  127. OCTLP "C
  128. OASC [ASCIZ /
  129. TVPEEK/]
  130. PUSHJ P,HEADER
  131. MOVEI B,TVBEG+7
  132. MOVEI C,84.
  133. PEEKLP: SKIPE (B)
  134. JRST PEKEND
  135. SKIPN RNDFLG
  136. OASCR [ASCIZ /
  137. Player Status Entered/]
  138. SETOM RNDFLG
  139. SKIPN 1(B)
  140. JRST [OASC [ASCIZ /HACKER Password/]
  141. JRST PEKDAT]
  142. SETZM HPOS
  143. OSIX 1(B)
  144. MOVE A,1(B)
  145. OHPOS 6.
  146. CAME A,[SIXBIT /JMB/]
  147. CAMN A,[SIXBIT /MARC/]
  148. OASC [ASCIZ / */]
  149. CAMN A,[SIXBIT /TAA/]
  150. OASC [ASCIZ / */]
  151. OHPOS 9.
  152. SKIPGE TELEOF+3(B)
  153. OASCI "T
  154. OHPOS 11.
  155. HLRZ A,3(B)
  156. LSH A,1
  157. OASC STBL(A)
  158. OHPOS 20.
  159. HLRZ A,3(B)
  160. CAIE A,1
  161. CAIN A,9.
  162. JRST [HRRZ D,3(B)
  163. SKIPN D
  164. JRST PEKDAT
  165. OASCI "#
  166. ODEC D
  167. JRST PEKDAT]
  168. CAIE A,4
  169. JRST PEKDAT
  170. HRRZ C,3(B)
  171. SKIPN C
  172. JRST PEKDAT
  173. LSH C,1
  174. OASC TTBL-2(C)
  175. PEKDAT: OHPOS 27.
  176. MOVE A,2(B)
  177. PUSHJ P,PDATE
  178. OASCR [0]
  179. PEKEND: ADDI B,4
  180. SOJGE C,PEEKLP
  181. SKIPN RNDFLG
  182. OASC [ASCIZ /No TRIVIAtors./]
  183. OASCR [0]
  184. SKIPN REPTSW
  185. .BREAK 16,40000
  186. OCTLP "E
  187. MOVE A,SLEEPR
  188. .SLEEP A,
  189. JRST TVPEEK
  190. HEADER: OASC [ASCIZ / Version /]
  191. OSIX BABNAM
  192. OASC [ASCIZ / It is now/]
  193. .CALL RQDATE
  194. .VALUE
  195. PUSHJ P,PDATE
  196. OASCI ".
  197. OASCR [0]
  198. POPJ P,
  199. RQDATE: SETZ
  200. SIXBIT /RQDATE/
  201. MOVEM A
  202. SETZM
  203. ;HERE TO MUNG THE PLAYER NAMES INTO THE RIGHT SLOTS
  204. BABBIN: OASC [ASCIZ /BABBLE/]
  205. PUSHJ P,HEADER
  206. MOVEI A,SORTBL ;TOP OF NEW TABLE
  207. MOVE B,TVBEG+3
  208. MOVEM B,MAXPRG
  209. MOVEI B,TVBEG+7 ;TOP OF PEEK PAGE
  210. MOVEI C,84. ;COUNTER OF PLAYERS
  211. MOVLP: SKIPN D,1(B)
  212. JRST SORTEM
  213. MOVEM D,NMSLOT(A)
  214. MOVE D,SCOROF+2(B) ;PROGRESS
  215. MOVEM D,PRSLOT(A)
  216. MOVE D,SCOROF+3(B) ;SCORE
  217. MOVE E,SCOROF+4(B) ;MAXIMUM
  218. MOVEM D,SCSLOT(A)
  219. MOVEM E,MXSLOT(A)
  220. FDVR D,E
  221. FMPRI D,(1000.0)
  222. MULI D,400
  223. TSC D,D
  224. ASH E,-243(D)
  225. SKIPN SCOROF+4(B)
  226. MOVE E,[-1]
  227. MOVEM E,PCSLOT(A)
  228. SETZM RKSLOT(A) ;EMPTY SLOT
  229. ADDI B,4
  230. ADDI A,RECLEN
  231. SOJGE C,MOVLP
  232. ;HERE TO SORT THE LOSERS
  233. SORTEM: AOS PASSES
  234. MOVEI B,SORTBL+RECLEN ;START OF 2ND ENTRY
  235. MOVEI A,SORTBL
  236. ADD A,MODE
  237. MOVE LAST,(A) ;FIRST ONE
  238. SETZM SWITCH
  239. LOOP: MOVE A,B
  240. ADD A,MODE
  241. MOVE THIS,(A)
  242. SKIPN (B)
  243. JRST ELOOP
  244. SKIPN MODE
  245. JRST [CAML THIS,LAST
  246. JRST LOOP1
  247. JRST LOOP1+1]
  248. CAMG THIS,LAST
  249. LOOP1: JRST [MOVE LAST,THIS
  250. ADDI B,RECLEN
  251. JRST LOOP]
  252. AOS SWITCH
  253. HRLI B,-RECLEN ;SWITCH!
  254. XLOOP: MOVE A,-RECLEN(B)
  255. EXCH A,(B)
  256. MOVEM A,-RECLEN(B)
  257. AOBJN B,XLOOP
  258. JRST LOOP
  259. ELOOP: SKIPE SWITCH
  260. JRST SORTEM
  261. MOVE B,UMODE
  262. JUMPL B,BABBLE
  263. CAIN B,PCSLOT ;SCORE MODE IS NORMAL
  264. JRST [SETOM MODE
  265. JRST BABBLE] ;PRINT RIGHT AWAY
  266. SETZ B,
  267. MOVEI A,SORTBL
  268. RLOOP: AOJ B,
  269. SKIPN NMSLOT(A)
  270. JRST RLOOP1
  271. MOVEM B,4(A) ;CRASH THE LOCK SLOT!
  272. ADDI A,RECLEN
  273. JRST RLOOP
  274. RLOOP1: MOVE A,UMODE
  275. MOVEM A,MODE
  276. SETOM UMODE
  277. JRST SORTEM
  278. ;HERE TO PRINT THE BABBLE
  279. BABBLE: OASC [ASCIZ /
  280. TRIVIA Statistics sorted by /]
  281. MOVE A,RUMODE
  282. LSH A,1
  283. OASC BYTBL(A)
  284. OASC [ASCIZ/ High question = /]
  285. ODEC MAXPRG
  286. MOVE B,MAXPRG
  287. LSH B,-4
  288. MOVEM B,MINPRG
  289. OASC [ASCIZ /
  290. Rank Nut Score Maximum Average Progress
  291. ==== ===== ===== ======= ======= ========
  292. /]
  293. MOVEI PLAYER,SORTBL
  294. SETZM RANK
  295. PLOOP0: MOVEI 0,5
  296. MOVEM 0,TENCNT
  297. PLOOP: AOS RANK
  298. SKIPN NMSLOT(PLAYER)
  299. JRST DONE
  300. MOVE B,PRSLOT(PLAYER)
  301. MOVE A,NMSLOT(PLAYER)
  302. CAMN A,XUNAME
  303. JRST [CAMG B,MINPRG
  304. OASCR [0]
  305. JRST PLOOPA]
  306. MOVE A,VERBOS ;IN VERBOSE MODE
  307. JUMPN A,PLOOPA
  308. CAMG B,MINPRG
  309. JRST [ADDI PLAYER,RECLEN
  310. JRST PLOOP]
  311. PLOOPA: MOVE A,MODE
  312. JUMPL A,[MOVE B,RANK
  313. JRST PLOOPB]
  314. MOVE B,4(PLAYER)
  315. PLOOPB: ODEC B
  316. OASC [ASCIZ /. /]
  317. OSIX NMSLOT(PLAYER)
  318. OHPOS 17.
  319. MOVE D,SCSLOT(PLAYER)
  320. PUSHJ P,PFLOAT
  321. OHPOS 27.
  322. MOVE D,MXSLOT(PLAYER)
  323. PUSHJ P,PFLOAT
  324. OHPOS 38.
  325. MOVE D,PCSLOT(PLAYER)
  326. JUMPL D,[SKIPE MXSLOT(PLAYER)
  327. JRST PLOOPC
  328. OASC [ASCIZ /----/]
  329. JRST PLOOPD]
  330. PLOOPC: OASCI ".
  331. CAIGE D,100.
  332. OASCI "0
  333. CAIGE D,10.
  334. OASCI "0
  335. ODEC D
  336. PLOOPD: OHPOS 48.
  337. MOVE D,PRSLOT(PLAYER)
  338. CAIGE D,100.
  339. OASCI 40
  340. CAIGE D,10.
  341. OASCI 40
  342. ODEC D
  343. OASCR [0]
  344. ADDI PLAYER,RECLEN
  345. SOSE TENCNT
  346. JRST PLOOP
  347. OASCR [0]
  348. JRST PLOOP0
  349. PFLOAT: MOVE A,D
  350. MULI A,400
  351. TSC A,A
  352. ASH B,-243(A)
  353. CAIGE B,100.
  354. OASCI 40
  355. CAIGE B,10.
  356. OASCI 40
  357. ODEC B
  358. IDIVI B,400000
  359. FSC C,233
  360. FSBR D,C
  361. FMPRI D,(1000.0)
  362. MULI D,400
  363. TSC D,D
  364. ASH E,-243(D)
  365. OASCI ".
  366. CAIGE E,100.
  367. OASCI "0
  368. CAIGE E,10.
  369. OASCI "0
  370. ODEC E
  371. POPJ P,
  372. MINPRG: 0
  373. TENCNT: 0
  374. DONE: OASCR [0]
  375. .BREAK 16,40000
  376. TTYOPN: .CALL [SETZ
  377. SIXBIT /OPEN/
  378. 5000,,4001
  379. 1000,,TYOC
  380. SETZ [SIXBIT /TTY /]]
  381. .VALUE
  382. .OPEN TYIC,[.UAI,,'TTY]
  383. .VALUE
  384. .SUSET [.SIMSK2,,[4]]
  385. .CALL TTYSET ;SET UP TTY TO TAKE CONTROL-S
  386. .VALUE
  387. .CALL CNSGET
  388. .VALUE
  389. CAIN A,3
  390. OCTLP "C
  391. POPJ P,
  392. CNSGET: SETZ
  393. SIXBIT /CNSGET/
  394. MOVEI TYIC
  395. MOVEM
  396. MOVEM
  397. SETZM A
  398. TTYSET: SETZ
  399. SIXBIT /TTYSET/
  400. MOVEI TYIC
  401. TTYS1
  402. SETZ TTYS2
  403. TTYS1: 002121,,000000
  404. TTYS2: 210000,,000000
  405. JCLHAK: MOVE E,[440700,,JCL]
  406. JCLHK1: ILDB 0,E
  407. CAIE 0,15
  408. CAIN 0,0
  409. POPJ P,
  410. CAIE 0,"D
  411. CAIN 0,"d
  412. JRST [MOVE A,[SIXBIT /FOO/]
  413. MOVEM A,TVNAME
  414. JRST JCLHAK+1]
  415. CAIE 0,"S
  416. CAIN 0,"s
  417. JRST [MOVEI A,SCSLOT
  418. MOVEM A,UMODE
  419. JRST JCLHAK+1]
  420. CAIE 0,"a
  421. CAIN 0,"A
  422. JRST [MOVEI A,NMSLOT
  423. MOVEM A,UMODE
  424. JRST JCLHAK+1]
  425. CAIE 0,"p
  426. CAIN 0,"P
  427. JRST [MOVEI A,PRSLOT
  428. MOVEM A,UMODE
  429. JRST JCLHAK+1]
  430. CAIE 0,"m
  431. CAIN 0,"M
  432. JRST [MOVEI A,MXSLOT
  433. MOVEM A,UMODE
  434. JRST JCLHAK+1]
  435. CAIE 0,"v
  436. CAIN 0,"V
  437. JRST [SETOM VERBOS
  438. JRST JCLHAK+1]
  439. CAIE 0,"R
  440. CAIN 0,"r
  441. JRST [SETOM REPTSW
  442. JRST JCLHAK+1]
  443. MOVE A,0
  444. OASC [ASCIZ /
  445. Ignored switch - /]
  446. OASCI (A)
  447. OASCR [0]
  448. JRST JCLHAK+1
  449. BADNUM: .VALUE [ASCIZ /:BAD JCL BARF BARF BARF
  450. :KILL
  451. /]
  452. ;PAGE DEFINITIONS
  453. TVPAGE==<<.+1777>/2000>+1
  454. TVBEG==TVPAGE*2000
  455. ; TYPEOUT UUOS (STRAIGHT FROM DIRED, WITH SOME HELP FROM PDL)
  456. ZZZ==.
  457. LOC 40
  458. 0
  459. JSR UUOH
  460. LOC ZZZ
  461. UUOCT==0
  462. UUOTAB: JRST ILUUO
  463. IRPS X,,[ODEC OBPTR OHPOS OCTLP OALIGN OSIX OASC OASCI OASCR OSIXS]
  464. UUOCT==UUOCT+1
  465. X=UUOCT_33
  466. JRST U!X
  467. TERMIN
  468. UUOMAX==.-UUOTAB
  469. UUOH: 0
  470. PUSH P,A
  471. PUSH P,B
  472. PUSH P,C
  473. PUSH P,D
  474. MOVEI @40 ; GET EFF ADDR. OF UUO
  475. MOVEM UUOE'
  476. MOVE @0
  477. MOVEM UUOD' ; CONTENTS OF EFF ADR
  478. MOVE B,UUOE ; EFF ADR
  479. LDB A,[270400,,40] ; GET UUO AC,
  480. LDB C,[330600,,40] ; OP CODE
  481. CAIL C,UUOMAX
  482. MOVEI C,0 ; GRT=>ILLEGAL
  483. JRST @UUOTAB(C) ; GO TO PROPER ROUT
  484. UUORET: POP P,D
  485. POP P,C
  486. POP P,B
  487. POP P,A ; RESTORE AC'S
  488. JRST 2,@UUOH
  489. ILUUO: .VALUE [ASCIZ /:ILLEGAL UUO/]
  490. UOBPTR: MOVEI C,0
  491. MOVE B,@40
  492. JRST UOASC1
  493. UOASCR: SKIPA C,[^M] ; CR FOR END OF TYPE
  494. UOASC: MOVEI C,0 ; NO CR
  495. HRLI B,440700 ; MAKE ASCII POINTER
  496. UOASC1: ILDB A,B ; GET CHAR
  497. JUMPE A,.+3 ; FINISH?
  498. PUSHJ P,IOTA
  499. JRST .-3 ; AND GET ANOTHER
  500. SKIPE A,C ; GET SAVED CR?
  501. PUSHJ P,IOTA
  502. JRST UUORET
  503. UOASCC: HRLI B,440700 ; MAKE ASCII POINTER
  504. UOAS1C: ILDB A,B ; GET CHAR
  505. CAIN A,^C
  506. JRST UUORET
  507. PUSHJ P,IOTA
  508. JRST UOAS1C ; AND GET ANOTHER
  509. UOCTLP: MOVEI A,^P
  510. PUSHJ P,IOTA1
  511. UOASCI: MOVE A,B ; PRT ASCII IMMEDIATE
  512. PUSHJ P,IOTA
  513. JRST UUORET
  514. UOSIX: MOVE B,UUOD
  515. USXOOP: JUMPE B,UUORET
  516. LDB A,[360600,,B]
  517. ADDI A,40
  518. PUSHJ P,IOTA
  519. LSH B,6
  520. JRST USXOOP
  521. UOSIXS: MOVE A,[440600,,UUOD]
  522. USLOOP: ILDB C,A
  523. ADDI C,40
  524. PUSHJ P,IOTC
  525. TLNE A,770000
  526. JRST USLOOP
  527. JRST UUORET
  528. UOHPOS: SUB B,HPOS
  529. JUMPLE B,UOASCI
  530. UOHPO1: MOVEI A,40
  531. PUSHJ P,IOTA
  532. SOJG B,UOHPO1
  533. JRST UUORET
  534. POWER: 0 ? 1 ? 10. ? 100. ? 1000. ? 10000. ? 100000. ? 1000000.
  535. UOALIG: MOVE D,UUOD
  536. ANDI A,7
  537. MOVE A,POWER(A)
  538. MOVEI C,40
  539. UOALI1: CAMLE A,D
  540. PUSHJ P,IOTC
  541. IDIVI A,10.
  542. CAIE A,1
  543. JRST UOALI1
  544. SETZ A,
  545. UODEC: SKIPA C,[10.] ; GET BASE FOR DECIMAL
  546. UOOCT: MOVEI C,8. ; OCTAL BASE
  547. MOVE B,UUOD ; GET ACTUAL WORD TO PRT
  548. JRST .+3 ; JOIN CODE
  549. UODECI: SKIPA C,[10.] ; DECIMAL
  550. UOOCTI: MOVEI C,8.
  551. MOVEM C,BASE'
  552. SKIPN A
  553. HRREI A,-1 ; A=DIGIT COUNT
  554. PUSHJ P,UONUM ; PRINT NUMBR
  555. JRST UUORET
  556. UONUM: IDIV B,BASE
  557. HRLM C,(P) ; SAVE DIGIT
  558. SOJE A,UONUM1 ; DONE IF 0
  559. SKIPG A ; + => MORE
  560. SKIPE B ; - => B=0 => DONE
  561. PUSHJ P,UONUM ; ELSE MORE
  562. UONUM1: HLRZ C,(P) ; RETREIVE DIGITS
  563. ADDI C,"0 ; MAKE TO ASCII
  564. CAILE C,"9 ; IS IT GOOD DIG
  565. ADDI C,"A-"9-1 ; MAKE HEX DIGIT
  566. PUSHJ P,IOTC
  567. POPJ P, ; RET
  568. IOTC: PUSH P,A
  569. MOVE A,C
  570. PUSHJ P,IOTA
  571. JRST POPAJ
  572. IOTA: CAIN A,^P
  573. JRST IOTAP
  574. IOTA1: CAIN A,^J
  575. POPJ P,
  576. .IOT TYOC,A
  577. CAIN A,^I
  578. JRST [MOVE A,HPOS
  579. ADDI A,10
  580. ANDI A,7770
  581. MOVEM A,HPOS
  582. POPJ P,]
  583. AOS HPOS
  584. CAIE A,^M
  585. POPJ P,
  586. SETZM HPOS
  587. POPJ P,
  588. IOTAP: .IOT TYOC,["^]
  589. ADDI A,100
  590. JRST IOTA1
  591. POPAJ: POP P,A
  592. POPJ P,
  593. ;HERE TO PRINT DATES (AS IN TRIVIA) DATE IS IN A
  594. PDATE: PUSH P,B
  595. PUSH P,C
  596. HRRZ E,A
  597. OASC [ASCIZ / /]
  598. LDB B,[270400,,A]
  599. LSH B,1
  600. OASC MTBL-2(B)
  601. OASC [ASCIZ / /]
  602. LDB B,[220500,,A]
  603. ODEC B
  604. OASC [ASCIZ / at /]
  605. MOVE C,E
  606. IDIVI C,7200.
  607. CAIGE C,12.
  608. JRST PDATE1
  609. SUBI C,12.
  610. SKIPA F,[ASCIZ / PM/]
  611. PDATE1: MOVE F,[ASCIZ / AM/]
  612. SKIPN C
  613. MOVEI C,12.
  614. ODEC C
  615. OASCI ":
  616. IDIVI D,120.
  617. CAIGE D,10.
  618. OASCI "0
  619. ODEC D
  620. OASC F
  621. POP P,C
  622. POP P,B
  623. POPJ P,
  624. MTBL: ASCIZ /January/
  625. ASCIZ /February/
  626. ASCIZ /March /
  627. ASCIZ /April /
  628. ASCIZ /May /
  629. ASCIZ /June /
  630. ASCIZ /July /
  631. ASCIZ /August/
  632. ASCIZ /September/
  633. ASCIZ /October/
  634. ASCIZ /November/
  635. ASCIZ /December/
  636. STBL: ASCIZ /Grade /
  637. ASCIZ /Answer/
  638. ASCIZ /Babble/
  639. ASCIZ /Read mail/
  640. ASCIZ /Make /
  641. ASCIZ /Peek /
  642. ASCIZ /Start up/
  643. ASCIZ /P.score/
  644. ASCIZ /Command/
  645. ASCIZ /Update/
  646. ASCIZ /Status/
  647. ASCIZ /FLUSH /
  648. ASCIZ /ERROR /
  649. ASCIZ /SHOUT /
  650. TTBL: ASCIZ /ZORK! /
  651. ASCIZ /Long /
  652. ASCIZ /Match /
  653. ASCIZ /M.C. /
  654. ASCIZ &T/F &
  655. ASCIZ /ZORK! /
  656. ASCIZ /Simple/
  657. BYTBL: ASCIZ /NAME /
  658. ASCIZ /PROGRESS/
  659. ASCIZ /SCORE /
  660. ASCIZ /MAXIMUM/
  661. ASCIZ /LOSSAGE/
  662. ASCIZ /AVERAGE/
  663. END START