IMD 1.17: 27/06/2012 9:41:19 TERAK TERMINAL EMULATOR & JED FILES  @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TERAK @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ D(ŗ%!ŗkh HBf     B d 7×h3 7 ?IO ERROR WHILE BOOTING? 7 ?NOT ENOUGH CORE TO BOOT?   e    Ӈ\ߕ vߕ 7* SYSTEM.PASCAL? w7SYSTEM.8510.QX? @Aw  `! mG~d!~  \ZD C& H&  0  EL  ~28-01.TEXT[*0 RGS06-01.TEXT[06 RGS08-01.TEXT[6< RGS09-01.TEXT[<B RGS22-01.TEXT[BH RGS02-18.TEXT[RhT2.BACKDehqT.CODE/2.CODE/ 74LS461.TEXTFp! RGS29-01.TEXTFpT2.TEXTDe  _~U@pe &  %C e U&f&  BA!A C5 D  ! A!U  C`C!C  U U5w \E ŋw 2Ŋw ( C! @ D~̋   wwDDԤ  Ӌ5 eW 7 ?YOU DON'T HAVE A  ߋt_v @ @ ld a,(vbcnt) cp b ret nz ; really behind ld a,(scanline) ; stall to top of screen cp 0f0h ; lest the kernel screw up jp nc,s_waitframe ret ************************************* * transfer sprite data to work area * ************************************* s_transfer ld hl,C_spritecnt ld (pointer),hl ;set pointer to read # of sprites nop nop nop in a,(whsh) ;get # of sprites  PAL0t2@ !SYSTEM.8510.QX[!B SYSTEM.PASCAL[BGSYSTEM.CHARSET["Gc SYSTEM.FILER[gcSYSTEM.COMPILER SYSTEM.LINKER[ SYSTEM.SYNTAX[SYSTEM.ASSMBLERȠ 11.OPCODES[ 11.ERRORS[ß  LIBRARY.CODE[s  LIBMAP.CODE[Ÿ2SYSTEM.LIBRARY[Ƞ2JSYSTEM.8510.QB[JP RGS09-01.BACKewPV RGS02-02.TEXT[V\ RGS02-04.TEXT[\b RGS03-01.TEXT[bh RGS04-01.TE <f,4~%x$J8#V"COPYRIGHT (C) 1978, REGENTS OF UNIV OF CALIF,SDHJKC  >P  ? /efAA,"<w XT[k SYSTEM.EDITOR[ RGS05-01.TEXT[ YALOE.CODE[C RGS07-01.TEXT[ RGS17-01.TEXT[ RGS01-01.TEXT[ RGS19-01.TEXT[ RGS24-01.TEXT[ RGS26-01.TEXT[ RGS30-01.TEXT[ RGS10-01.TEXT[ RGS11-01.TEXT[ RGS14-01.TEXT[ RGS15-01.TEXT[ T1.TEXTJw  RGS16-01.TEXT[ RGS18-01.TEXT[  RGS21-01.TEXT[ $ RGS27-01.TEXT[$* RGS7 &  G 6E7, 6 ?  w pr&E7 5@|<7w {7yw 7 psw mw g-@_ azE ~ ~UV3T E@ JD B94T?4 E@" "-l7? ~7E@U@  E7 w wU &   28-01.TEXT[*0 RGS06-01.TEXT[06 RGS08-01.TEXT[6< RGS09-01.TEXT[<B RGS22-01.TEXT[BH RGS02-18.TEXT[RhT2.BACKDehqT.CODE/2.CODE/ 74LS461.TEXTFp! RGS29-01.TEXTFpT2.TEXTDe *7 7 7 zv x7 vEl7 h 7 E7 tv wU W r7 $7 " ^ E@ &?  w U@w > 6 & h ^7 X F @~w 2 ?*  "U@  wE 7 wv FRX\`& F J ^ f j n x |  " 6 B D J f 2  4 ^ v ~   6 j | h*06NV\bzy call s_reset ; reset, cls, and fill are immediates call s_clrscreen call s_fill ld a,(bufflag) ; flip buffer we're reading from xor -1 ld (bufflag),a ld hl,C_ready1 ; ready flag for odd buffer jp m,s_wait2 ; he's up, alright ld hl,C_ready0 ; even buffer s_wait2 ld (pointer),hl nop nop nop in a,(whsh) or a jr z,s_waitready ; nothing yet, 'round again trying nop xor a ; the other guy Z Z ` f:@FLRX^djpv| "*2``@Z`8f"a8f"@"$ F% &@L$f&b8f"c8f" \ j .   @ @f ~f{fxfufrfoflfifffcf `f"]f$Zf&Wf(Tf*Q NKHEB?<963 0"-$*&'($*! PAL0t2@ !SYSTEM.8510.QX[!B SYSTEM.PASCAL[BGSYSTEM.CHARSET["Gc SYSTEM.FILER[gcSYSTEM.COMPILER SYSTEM.LINKER[ SYSTEM.SYNTAX[SYSTEM.ASSMBLERȠ 11.OPCODES[ 11.ERRORS[ß  LIBRARY.CODE[s  LIBMAP.CODE[Ÿ2SYSTEM.LIBRARY[Ƞ2JSYSTEM.8510.QB[JP RGS09-01.BACKewPV RGS02-02.TEXT[V\ RGS02-04.TEXT[\b RGS03-01.TEXT[bh RGS04-01.TEeeee e  e e& f   EezN EE7- @$@$@$@" EB~f r&z%% 7 (\7 (``WtB  aBE B<<  wN EC~ B~Uf rfVpfz  eN 8@ 6NE LU@t7`.~BE B @Wtw`& B~<z& & EXT[k SYSTEM.EDITOR[ RGS05-01.TEXT[ YALOE.CODE[C RGS07-01.TEXT[ RGS17-01.TEXT[ RGS01-01.TEXT[ RGS19-01.TEXT[ RGS24-01.TEXT[ RGS26-01.TEXT[ RGS30-01.TEXT[ RGS10-01.TEXT[ RGS11-01.TEXT[ RGS14-01.TEXT[ RGS15-01.TEXT[ T1.TEXTJw  RGS16-01.TEXT[ RGS18-01.TEXT[  RGS21-01.TEXT[ $ RGS27-01.TEXT[$* RGS  28*7 2E 7 _$7  E7 V&U@ % E7 ez\& Dr)&&\   5@5@7 X&'&'0'0' )'''' )& )& )& )&$'(:' )&D' )D'x'f&\  \& \\r1@\[?\ ew & ?U?*@ڪAD C %     @  f&\   B -  e \z\DZ&X( &7 |v7 n|7 `|7 T 7 < 6 \ = "  \m\  W  m ef5`\_e w5 5@ \ɋE 5\\\f F^T2&,FR,: f6 W Y#w (Q&vI  >7 7(w& EFHJKABCDWX][f@@ N Z[  N\Et& B~ & > ~UB~  Ձ@  a a!~F@  B~ ~<E `E `EՀW @p@ `E e `&& `& `E e `&EՀ~<  7Z   ҂ ~< E e ` E   @ ` G7vz   7H 7Z 6W w{Z N B U7MwG7 % @`?R wLVxx|xt@ wU ::K E7 w z2@t  w Et@_7   O 0E]'U `  xZ7Wm7 P ]Dw=7w Zl Fw bI w tR <w H<  Alw&f65t w E   e@ׇEU  <6 E E7 ~<& EE Jd`n d %  D~ " ~ E D~ D C~ %  D~  ~& <AA~E e @`& E&~AA~E e @`&AA~E e @`  `` t @L A@@A tBt B@P< ``f~ ``A~ c ҇ef rʵm H& W Y#w H^E. U w w  UEw  Bw Zć  tw  h!w  UOw p w 먇  <w  0w `ʽ W Y#w tʕ U Q~ʕ \׌UE׌x׌"  e @7 6_ 8 E7 _ 7 v7 7 7 P 7"``&& `  E e @a&&6E e @a&E e @a \d<Z@@`@`$fH@7 `e B~  B~< _7@` dd&`f&d&b&  m ef ɋ e  rfwBC % e 7d,\ Aɋ BJ@ Bw h07  w w N!.7 eJww  U @e @wxBEfEP ]p |ʋD~ G~ 5E~ E~e  e  ` e  |ZT| ** wU &f&f7 .U   0ɝ^& _E7 .C DE!:7  7aehD A   aw7m8~@ Bm*~@ Bm~     I?zr& 7h  AF eA -Bl: \.<$WFl<   mAɋF! &ffD e w5 wDe`<nC<B@B <C``& ΟX @ e E`E``B~8A Ew0w.Dw$ &  e:wXP@P7n@eI70@wnM)w\ 7 , ßz 5U$ J  E     7 7  @  27 !ׯ+U E `    ͋D 5|w 5B N  5 , W#D  7W ΁?Zw w   D5H5   :@ S~ e&-"wn.5) 5|w '((@`@`( (+m ]   P~P~eeNPP  W  ~~e<ee``!~ e C~C~ %< C~C~ceί%@ eAp6% "1, 1,1,^  % ^A %^A&Daef ¥_09E AZ  77 :  .-& pU`E@ wHw .:" FU@ % eC ~% C ``` ezLN wU  E@ e ]& 7 7 7ߐ2 7  | t ~"w d    X N wK w: 7 ,* $? U@ _E7 wf  C  f ee $ $ $ $ @A eeee >eJ< !$'(****AND 'ARRAY ,BEGIN CASE CONST DIV 'DO DOWNTO ELSE END EXTERNAL5FOR FILE .FORWARD "FUNCTION GOTO IF IMPLEMEN4IN )INTERFAC3LABEL MOD 'NOT &OF OR (PACKED +PROCEDURPROGRAM !RECORD -U?  E7 PRTV + wU  E@  U@ _E7 _$$ K wU  J _&2 -/ ->%$  -~>%$t t n d ^_TR HDREPEAT SET *SEGMENT !SEPARATE6THEN TO TYPE UNIT 2UNTIL USES 1VAR WHILE WITH 7 <)& @  z7 <)7 )7 )7 &7 *7 &7 '7 ,,\ vw *< R'(((@ BCzEG@HPtJ$LM nO(kQRChTV焵W!cY_[\^^k `#ǭaxXc'exfhShjQYkoNmo9?pIrs|ouEw7x߄z @|Η}½  & &   áá ~צ/13:!       šˡ 퓄 Ä퓡w š   ɍL  "ˡ.ˡ   d쓡  21šá. Ą ɡ 낫š ꓡ2:+:azȄaA:) Type צ to continue) & ,Í ˫hp(ުPצצ22ȡ5233 ȡ 23aĩ3zȄ 23aA22š*á ?צ:22ȡá;2á!2ȡ5252š[ץ22š2222ȡ2š5252á4w4]ץ11á4\1šV42233zš땫ĚL삫Ú š a "á61 ɚ l šš áš  šš!邚邫镫ë퓡S  ! "ˡ! "ˡ "ˡáˡ 3042221é42é1Ä2*á444ń55P.TEXTׯ]צ.CODEJ.BACKׯ7צ.INFO$.GRAFׯצ.FOTO8 <!~áë  ÄÄȄĄMȄtiȡF ōɍ ō ȍ  dč "쓡ë f C_  fW & @&&&&7 f( )<)p((f('&v( )&'&&'V(&\( )(e\\;@\ \N @   =@f&ysE[\pCf&f&\% a @w   6 6 &  f 6A  v  6N\z\\\ N A f C %C B    \ w  D& &&@7 &)D& && 6  A7 ^'*'&**'*&"*** )J* )& )& )& )& ))  쓡ת!!9 D*~ éÍ~  , Ą쓡"á  :"ë á 쓡ת$Ꟛšq#ń? z 0 ń Ȅ! ~Í`~W ˡ!  ,ȫ$* "ë넡, ~ e\ \S\ e& @7 &:*)e\z*f& \:יc&>X4%]@& & & & & D&&D&& @%7 r'*  IA e e@ e& & & & & D&&e #@  @6 7 'J+6 6 #?%-0 @ ׳f&& @׳@f&7 )&+&'+f&f&7 l )+ )& )& )& )& )&&,&.)+   \(,f&*Í2~ š˄ `+ \ (   d˯7 H ȡ   צ0H" ġ  *@#ٕš ګ۫ š۫ ګ,0   ȡQɫ  ȡ 0  0ȡ? ȡ  ġ  á \ e\>:L]L?ƪ@ \fEA#& e@ & f& f& f7 '&X, ff w   &@& ,  ġMáš6 삫뻥 d #( /Íáɡ 럚肚X ū   áš  h ! ! Ä & ! !  Ä  1  !š Í 7ÄU 8>`  PASCALSYUSERPROGDEBUGGERPRINTERRINITIALIGETCMD ǐɄ:6ń~66! á ~횩 ˄˥ń á   uš  gá /Ä+  ɡ"á a˄ ת     n ɡOšOɡšF  LS#  , P#  , I#  l,á*6!F *STK OFLOW*תPFF+ ˡ 6!:9 "8?á <צ Exec err #   á, ,(+, ,ábÍo00ń0ˡ oɡ` Nȡš 뾿  .dá0á-  :*צ dup dir entry(צfile already open(צ file not open(צbad input format(ring buffer overflowת(צdisk write protected(uillegal block #ת(]bad byte countת(Fצbad init record(.&}eN:%oYDצ IO error: (צUnimplemented instruction(צFloating point error(uString overflowת(]Programmed HALTת(EProgrammed break-pointת(&ReP9$oYC  Q l>š 쾿  .Tá " *áá0á +-Í-ëzV 0á$-á z kO  ȡ*ń٢ š٢ ٢٢ 4*ƁV`tDoo odoo'zŕʁʁʁצ*SYSTEM.MISCINFOP*"áO* ?́*́ʁʁʁʁʁʁʁ%ʁ% t*&*n تٞ&"á ~٤  :SYSTEM.ASSMBLERת :SYSTEM.COMPILERת :SYSTEM.EDITORת :SYSTEM.FILERת צ:SYSTEM.LINKERƁ&̨<́b ́cʁcȡ~ؤȄ4šáRתPńȄ ,ń.áš蕿@šQȡ2 š:X fE6!~?8FצPut in :P?FP'Ǡá*EEE   !#E$ á"ˡ"& E ##&́dʁdתʁd0ʁdʁd؞&"á*ʁd ضá0?ʁdצ*SYSTEM.STARTUP(߫7́%́eʁ%ʁeȡlضʁ%ʁbQ́fƁfʁdƁfƁ&ʁ% Ɓf(ߡʁ% ʁbʁ%́bʁ%́%;??ٟá'C CONSOLEצSYSTERMGRAPHICצPRINTERREMINצREMOUTex<ƋD*SYSTEM.CHARSETת(ƋDʋI&"áǀʋUʋTʋKƆD ʋT  ̌fʌEá +6+6ˡ6á  T4P"hvf J.*L .Tf* zF d2:X fE6!~?8FצPut in :P?FP'Ǡá*EEE   !#E$ á"ˡ"& E ##&Eá +6+6ˡ6á  T4 5 FILEHAND 8:9á'צ*SYSTEM.STARTUP %áá  6   FצKCommand: E(dit, R(un, F(ile, C(omp, L(ink, X(ecute, A(ssem, D(ebug,? [II.0]P')%?á@Fצ*Command: U(ser restart, I(nitialize, H(altP')%$z쓡 Linking...ˡ&צ Restarting...צ U not allowedGצצkת{צcתת(WצSתԦת(KצOת  n`Äצ(ڹצParity (CRC) error(Bad unit numberת(Bad I/O operationת( Timeout errorת(Vol went off-lineת(File lost in dirת(|צ Bad file name(fצNo room on vol(ONo such vol on-lineת(3File not foundת( t`K1ٹVol already on-lineת(Text file lostת(צCode file lost(RRJHá68AX0qz((* "D&(,. Dv\x6   FצKCommand: E(dit, R(un, F(ile, C(omp, L(ink, X(ecute, A(ssem, D(ebug,? [II.0]P')%?á@Fצ*Command: U(ser restart, I(nitialize, H(altP')%$z쓡 Linking...ˡ&צ Restarting...צ U not allowed File foundת(צBlkd vol( Unblkd volת(צ File name(צFile/(unblkd vol)(צFile/(blkd vol)(צFile/vol(Vol nameת(צOutput file full(Workfile is savedת(No directory on volת(No workfile to saveת(Wildcard not allowedת(צ"Bad form (Wild Non-Wild) card(Ill file/vol nameת(}Ill change (Vol file) nameת(UBad dest for files foundת(4,"iEbUġ#(צ >*>$$~$~$$>> >.*.:*:8DD88(800   $~$|8(8 ~8(8``0 > BB~~BB~>BBBBB>~>~~>>"rBB^@BBB~BBB ">B""B~fZBBBBBBFJZRbB~BBBBB~~BB~~BBBRr~@~BB>BBB<expected1(& Ş"˶ I/O error # 4!צ Filer error # ء\&),áY 6(" ȡ3پ!}ȄپaپzȄ پaAצI T  ܪ۪ڪ-ˡ[ ġR&    צ ? (Y/N) - -F&צ ? B<@B<~BBBBBB~BBBBB$BBBBBZfBB$$BBBBB<~B0< B~>> 0``|@@@@@|><@\B|:FBF:BBBB>xx > ުP11ˡCۡ>1áIllegal file nameצNo file ́3ˡ  not code3"ˡצ Bad block #02́42ʁ4ȡCƀ2ƀ2ō$ƀ ƀ  3222́42ʁ4ȡuƀ2ˡaݡ9צ Linking...ܡ #צMust L(ink firstg222́42ʁ4ȡJ22č7ʁ302́532́6ʁ5ʁ5ʁ6ʁ5ʁ622ہہǻýýýýݽe f@^ڤ áڤ !~ e ת*U  !! !:!!ڤ  ڤ  áڤ R áצ Assemblingצ Compiling...á999':::::&:(yáצAssembleצCompile what text? (ׯ::(:.TEXT-:( ÿ۽ϟÿŹýýýŹýýýŻQˡá "ˡ$צ Can't find ::9 ƀצ:9 ƀ:SYSTEM.SWAPDISK&:(7-*SYSTEM.WRK.CODE[*]תצTo what codefile? (צ,áuצ$,,ˡ-,::(,$,]ˡ$-::(:צ.CODE[*]0:--"ˡ צ Can't open -   áث 7_a 7& š+ ??`l  (>ǟ`Ƌ`8`8 ` `o`o?š%צSYSTEM.WRK.CODEsSYSTEM.WRK.CODE׷Fš5צ.CODE.. Execute what file? šA.á צ.CODEm%צ:) Running...ء ء:9 #٪ؓצ *SYSTEM.WRK.,C:[., $[.GC .צE&Save as :. ? 瓡צSave asצ[š C?/צTEXT$CODE$饀".[G&TEXT&  #hKצ*..CODEOld code removed,  0ު(áܲ~Í %&ܥKO &&ȡu ''k'ȡKk'k-'' ܡšڡKN Y˄ &"&& & ܡ&'&k'{[{ c󓍄E''S'צ:'{!'0'c?'(&K&not proccessed Text file saved  & 0צCODE  #צCode file saved62"o.צצ not named2 Workfile is :.񄓡 (not saved) No workfilev%.ת&תת(&Ɓ.񄓡9&צThrow away current workfile ?  ءצ*SYSTEM.WRK.TEXTצ*SYSTEM.WRK.CODEצ*SYSTEM.LST.TEXT**.*צ.BACK*צá á3!:W~,gڲ= ggۓ$=?'ز=g(=g=&=g&Pɡۡצ ...too long <ٹFצ file name < scan string #צ vol name  M8!ۡ1á    - char. max >- Illegal formatT<=ڲ= ݪצc&.צ what fileצRemove  ء&צWorkfile cleared&Tf ' ݪܪ  : .  ǀá@ .  ڲ צ& * )'Getצǐ&G.[.&ؓń=.צ.TEXT.צ.CODE ..Ȳ.׷:.TEXTצText ײ&)צ.CODEצCode )١&צNo  file loaded (-  what vol ?  , gg#š=jgjPg?=ɍ :g=#g=ɍ=*á =*jjjצ:j($hh=ɡX="#š=P="="=h"h=h"h"=P=gg=á?gg=ɡ, 󍓡 =gPܓÄ)jjSjצ:jˡjj(jAj(ܓfOGK׷Ȅ&+- ȡ%ܾz ܾ0ŶȄ: \,%Date set: <1..31>--<00..99>Cˡ_צ Today is C -C-C  New date ?  ,Cػ+škGGȡ"GؾAĥGؾZȄ GإGؾAa ȡ$GCػ+c,C ػ?צ:@Äff@Զ  rުݪ"צPWkKGšׯɄS{c\ڥs[KG2G:[ Remove oldRƁ-צChangeChange to what׷{צSW,,W,צ:,(,,(,{A,(*צChange*[")ǐ ),, d,,[,["𥀈{á򥀿D Cצ The date is C -C-C 6 *,%ö,ÍP$&,􍓡~%K:, %,,,|.ٕڶ+šڸ+*ڂ*ŶB < UNUSED >     .p/ƃƅ'Dir listing ofצ׷١糖 צ#1:(ƃ"١̅.̅-̅,̅+̅*̅) ̅(á" G"+!+~G?KÄ?G;K;GK,,G,:, ׯ>צRemoveǀ RemoveE+Gޤ removed%á % ń,&Update directory ? צ Ɓ3"ݣ ɡݣ  ڕš"ق ɡ& Invalid #aP  ˄8&Destroy Gצ: ?  J [ áF([*****]/(ġ 0 2` ٪ # ת á 1 0 ء,ˡ   ߓ`&צPut  : in unit  ء ߓ ٨š5Kˡ*   ġ" ء " ܡC׷C#ÄÄ~Íj%á*צPut in G:'צInsert destination disk % š " ݢÄݢÄ ۡ"ˡ ݢڶ /ݢ0/0 /0/0 0 òCń /C"ݢݢ///צ://td צTN۪ڪƁK""áN׷9& צ ? "  ڪ٪ت&:&Pɡ(š --> 4ثضÍצ$*á-:á?::á ;&Pġ - عEXå[ׯGC81(o*ransferTo whereׯ󓄡=H3Transferצblocks# of blocks to transfer צTransfer  צ. Ɓ-צMakeǐh"))** **"&G:[ madeצT! ߪ Ɓ8 55 *SYSTEM.WRK. 5 5 4454=5  d66.6.6 65ݪ   p  MJLN0A$6Uۡ &Pɡ צ, áצ áצ fܪ(G[!nء CGGá+á &"ˡ~[צ[ ˡ  .  sآWצ:آ(Yצc& آצ ? ) ,áYø۪    C f$3>A COMPDUMM PASCALCOCOMPINITDECLARATBODYPARTWRITELINUNITPARTצDuplicate dir ?   Are thereצblks on the diskצ# of blocks on the disk צNew vol name ?  饀:˥׷!צ:DGצ : correct ? G CK"צ: zeroed p1šצFile(s) endangered:Mȡl\ؤ áצ Directoryڢڢ  v 2^^^Uˍ^U^^ؚ^E/)ǐȄ Zá .Z Z ZڕڕǴצ <<<<Line W , error  :/2( (continue), (terminate), E(dit EÍeÍ^ÍEeÍ ^U ǐÍ ^ /<W >Sp Z$M/áUˡ$/á0Uˡ$$)U,+Z$/%+XUˡZ ȡ<ڤ š+ؓښڤ ȡ3ؓ R j3צBad block scan ofצHScan forצblocksScan for how many blocks ܕšۏ"ˡ`ۂȡQ"ˡ93צBlock  צ is badۂġ צ bad blocks2 4צExamine blocks onצH&Block-range ? S  SRR  RRˡRˡX%*U.-Z%$UˡǑá $áUU:&DK 0,*W  \ X ZdšdZڞá% š  ڞ d66U6Zń/צ>>>>>> Error # 6 l~ڟá ~ؚ7؞áeá ؞á٢ؚ٢ؚآآ< bWW/2.WV2á ġ RSSRō5%SVR̂dVʂdȡ V3VVš#2 Fix them ? Ǡ  T USVR̂dVʂdȡצBlock V ƁdVƁdV"á dV"Ɓdd  may be okz is badV3ˡYV šOUVˡ9TTTM šTVTVVUVVá52Mark bad blocks ?š$צ (files will be removed !)צ (Y/N) <W >),áZ ááP P &XX ڿڞڂ,$áˡ,Í +۹Iš)P +ë0+ë+ë2+-Í+ë-(*á) %  ǖ X"ˡ.X(.TEXT-"ˡǓ%.Z-U*U +-Í&+ë))צ*SYSTEM.LST.TEXT("ëYbcCZ BAD.xxxxx.BADתV̂dVʂdȡV̂eʂeWʂeXT̂fTʂfġ1Z TʂeoT0ʂeʂeoTTT TWT ɡTTWT#VV צBad blocks markedH`]t5 ۢˡMoving ۢۢצ SYSTEM.PASCAL G?   š  " " ġ  7) -ë/򥂀 z+ë1s-ë#l+ë(e+-Í-ë11-2$(0 -CU&fc^ [xrmhc,ˡ áá)}Í+-*68Fu!^:,+,++ á +'á,'ˡ++%++á #R---+-+RZ   '09ō.á7.ˡ. 09ȄáEáL צCrunch@צFrom end of disk, blockצStarting at block # 3 % forward ת  ȡ'  š 7  צback  ġ ɡ7 G : crunched#צPlease re-boot{ X6تPFP') xR88תVצOFiler: G(et, S(ave, W(hat, N(ew, L(dir, R(em, C(hng, T(rans, D(ate, Q(uit [C.4]8+צ-á  +á09Ȅɡáȡ:  0 ń  0 #ثە$ġ  ȡ5áؚ 澂0šؚ0ە ȡ  0ġ 0ڕ$ ȡ 徂0 á $ $$ b3&Filer: G, S, N, L, R, C, T, D, Q [C.4]8?áVOFiler: B(ad-blks, E(xt-dir, K(rnch, M(ake, P(refix, V(ols, X(amine, Z(ero [C.4]8+&Filer: W, B, E, K, M, P, V, X, Z [C.4]8ڡ$&B% ȡ~٤ܦ׷u ȡhܲ~ؤVWarning units   &  צ have the same name--('"צPrefix titles byl;G& Prefix is ;:`%\!X0T4P1L5H6צ Ä . %̅,ړצListƅ-~$ʅ.áWriting.ʅ.̅.ʅ- ̅/ʅ- ʅ//ʅ/ʅ/̅)ʅ(ʅ)̅(ƃʅ/ƃצʅ/ƃʅ) ƃʅ/  ƃ-ƃƅ0ʅ/ ƅ0ƃ-ƃʅ/   ءQƃʅ/ ƃʅ/  ƃƃƅ0ʅ/ƅ0ƃfile3ƃʅ/ ƃ ƃƅ0ʅ/ƅ0. ڍʅ- /ƃʅ. ƃ/ƃ  ƃ files;ƃצw\ ƁG&צSYSTEM.WRK.TEXT צSYSTEM.WRK.CODE &PĶ (Dɞ(ń?Íצ0???JanFebMarAprMayJunJulAugSepOctNovDec?????????0צ Bad CodeTextInfoDataGrafFoto ~%"0 & L (*&brB\( "&`'"#))'D+*,H--*..\//x0001B1Z1h55p8L5H6sted/in-dir>, ƃʅ( ƃ blocks usedƃ, ƃʅ* ƃ unusedƃצ, ƃʅ+ ƃצ in largest"١ ƃƃ"ƃ ,  N- Vols on-line: ȡ &G ȡR~צ; צ #  :צRoot vol is - ?:צPrefix is - ;: 0 צ Zero dir ofצH  ۢ @ @INPUT רۢ7ۢۢ ۢ @ ? ?OUTPUT ۢ7ۢۢ ۢ ?  KEYBOARDۢ7ۢۢ ۢ  ȡN ܢ8áFALSE TRUE ܢؚܢ ښܢ 8ٚ NIL רۢ6ۢۢ ۢ  MAXINT ۢۢۢ   ZG G רآآF F آآآ آE E רآآآ آ آD D רآآ/á á ǐ" .ٟˡإá؟؟"ġ>~ڟˡ(áڣb 3g3ChG4E(DFCBښá !ک9áˡ <  ڟˡá 9Ä    y2y y%á:á9% ީ4 ޢآ آCC آآآآآآآ آ آ آآ آ BB רآآآآآآآ آ آ آآ آ VREAD READLN WRITE WRITELN EOF EOLN PRED SUCC  ORD  SQR  ABS  NEW  UNITREADUNITWRITCONCAT LENGTH ޢ ǂإ (é`á  á  ˡgá áVީ;áá ᚹ2ީ:&á ᚹi#ááإj$áá ;إF0á5á.ީ ޢإ j   ޚ á۟ڟÍáH Hˡ Ä ޓ%  HHINSERT DELETE COPY POS MOVELEFTMOVERIGHEXIT IDSEARCHTREESEARTIME FILLCHAROPENNEW OPENOLD REWRITE CLOSE  SEEK !RESET "GET #PUT $SCAN %BLOCKREA&BLOCKWRI'TRUNC (PAGE )SIZEOF *ST߫HÄ dݟܟ˄ބݟÄܟÄÄÄ#`!%á á ,0I; ؿ  ٿ 4áˡǒ6šۥٞقق؍+áˡǒٕálR +GOTOXY +̀ʀȡ{(ٳ %`ٳڡ  ̀ʀʀʀڡ ʀʀʀ ʀ ٚ b ODD CHR MEMAVAILROUND SIN COS LOG ATAN  LN  EXP  SQRT  MARK  RELEASE IORESULTUNITBUSYPWROFTENUN z [ġ%ؤáQ񂥀ؤ[NQQ.J ^؟ˡN٣`;٣ á4٣ á-٣(uצ undefined\#!   D á OO&J XIō~ %M >á á á  á M Mé Äܓ+MáM Mé ÄmܓMá áITWAITUNITCLEAHALT SSȡܳ 0ܹ8 TTT9 TT;T; TTTTTTۚTbZ8 TTT@;:5-&{ VP84$3ݡ  TTT T ݡTT؟ˡآTښTؚ Rd(&š##=AHZX)UWVȡ1Nڢڢ ڢڢMÄ% Ä  xMˡݣ 9.*IÄN+N[I \M!M MON Iá>D.  MáZ^FƂƃƂ0ƃ\ƂXƃƁƃ* Y ma ˡ)WW V VYY *+N/W צ linesYšSצ, Y< <Ϧ*SYSTEM.PASCALת(Ϧ*SYSTEM.LIBRARYת( -&Q[\RǂNJ+* P'!/"0, 21(.3%$ȡؤKW'  By8uyq)|u]tmiexaM }*I /R ȡ  PASCAL Compiler [II.0.A.1]< 0>~؟آآآ(T   secs, YW  lines/min/DSmallest available space = T  words ̄ʄȡN̄̄ʄȡ3N̄̄ʄȡ̄ʄȡN̄ʄȡNP̄ʄȡΟˡ Ω(̄ʄȡ ƂƂ0ƂXƁ<s$` 0T @NDZ 8 T z ~ x\6 Y< %>PNmmDz I~؟آآآ N>>آآPROGRAM آآآ آ آ آ آ آآآ!á^ áN>ˡ >>   á (má  á  L M Mآ آآ>آآIآ\آ آLj z Z }*I /R ȡ  PASCAL Compiler [II.0.A.1]< 0>~؟آآآ(T   آآ;;آآ::dL آ99آآ88آآ66آآ77,آآ955,آآ94 4آPآآآآآآ9آP INTEGER ۢۢ  REAL ۢ;ۢ  CHAR רۢ9ۢ  BOOLEAN ۢ8ۢ  STRING רۢ4ۢ  TEXT ۢ7ۢ  INTERACTרۢ52f JK/}*á*.á =á '((')   =>) )=á   {  "$&(*,.2468:<@,NPRTVXZ\^`nplnprtvxz|~&%1  PPš Nۢۢ"ڤ ۢ ۢbڤۢ[Ǿ á $,Z+U)U  68 Iˡǽ   ؓ*$<ؓ˄ $+<́ʁˡʁ ʁ́Ǽ ء"ƁTURTLE ר́́Ɓ\Ɓ [( צ words]<W >́ [́Ɓ ʁoƁ ʁ́ʁƁʁ<ʁʁ' ʁ ʁ ʁ ʁ<[áʁ 'Uu u uá ~ˡ  á2 ߚ    " " ˡߢ á  á  ád ǔ  á   ߢ ˡk ߩ4Äg  á4ō P Pˡ ߩ4  á  váqáW ߩ:  á$ ' ʁ ʁ['ؓ ˫ ˡ  ؍ؓá  ʁʁƁ$ <0ce2 #áS~؟ٓˡ Ǧ ٓ۩ۢۢڢؚ      ˫  á   ˡ  á ۥۢۢۢ )é Ä    آٚآ á%   é   ˡ    á  á ǿ ߟˡkߢ  ǔ ޚ á   ߢ ˡk ߟˡ/á&ˡ ;áǏ š f ߚ  ٟ$; ڟ˶zbک;˄2 ġ%ɡ܂5 ɡ۸ ik3T@š  ڢ  ڢ ڢ ڢ  á ݥݢݢ )é Ä   ڢۚ=ٟˡ)گ ٩=ˡآ=á%   é  =ˡu ={ áM   ݥݢٚݢݢݢ I ݢ ݢ   ] ] ˫  á  ]ٟˡ<ݢۚݢ ܂ á۟ˡáݢ~~ؚá%   / ł ڢ ڢ  ˡ   ٶ˄/ڣ %ڣ áڢ ڣ ڣ Ȅ ڢ ڢ ٢٢٢ á   ٢٢٢٢ 3 3 á!   á  áU  ˡ8ȡ,; m   ء n       ł á       ˡ o    é  ]=ˡu =OS ^   áw   @ ! @á  ˡ = ߚá I   . ˫   áJ á<    ˡááy  ȡ 䏂  á ( (  ߟˡ ˡ á( @ !٢٢ ٢٢    ˫  á  á  á (  š  öń ˡ%      ł  á%    ˫    Í kk    áá>  ߚ       ˫  á    á+    آˡZޚˡ@á -á&ȡ   ޚٟl ء@. Ǐ QP[ [  Ǐ  á X&á$ R~ ܟˡ?ܣáܣÄܣ Äܣáܣ Äܣ ÄޓǠ ޓá     I [ $ [ $ˡ ál ˡáá&     ޟˡ ߚá؟*/1-" h   آآ ái3 3 á)  إآ آ=آ =$ ˡ ˩   l   q q qu á+á$ ] ] ,á á    ߚءPš PPN[Ǖá [[á l۟ˡJá5á  š á  š ܣ ˡܣ [ؓǏ   CI \ ܣ \IɡII  ɡ. ~ޡ áޓܢۚo ޓܢۚáP á4ޡz  ܢݚݟˡ x ܢ   ޓ{ á  ܢ5é$'IˡǷ  $Ǹ ء ޟˡ1ȡ$ީ;á m á Ǖ ޚq ˫  á   á   ˡ ál "ȡˡ9   ȡ ǎ   ߟá-á  ɡ ~  ł ~ߚ á  *á  á   ߟˡ%Íߩ;Í s  ߩ;ár    [( צ words]<W >\*5á+ á    $ܢ"é Bޡǡ ܢ"á á    @ߡ O MM M I \ء[&#!!  /@#.IéP Ä $ 1á  á' Ǻ ~   á  áߚߟˡ% š ǩ \.áW ǿ    á  ߚߟˡ ,(  ٟá138:+ Aٟ٥ -N٣ ë''٣ [N٣ /80"ˡ ǻ 0ˡ ǻ 9"ڤ "ڤ ~/rڤbڤë'']PP  á IáNC $ !á ǹ ˡQ$  D+%ݍm   aTOA v$~  Zn RJ O MM M I \ء[&#!!  /@#.IéP Ä $ 1á  á' Ǻ ~   á  á  t ޮ < á  á á    á áá`  !á > ؟ˡ4أ á'أ أ  أ " أ } } nˡ} á  á  " ˡ} á' á" ˡ} á   ˡ}  á -á ;ˡ;áá} U'NweD+$&*,._ 6>@DFHJLޡá  (s ;;Í؍á ;á ٩;0)Í!á :á ة:6*e: e e^  ܣáܮ&ܣá  ܮˡá ; á9 4 8خ2خ"ɡٮM2خ˫  ɡ  šث  4 ٚ t á +ˡ/îá2خá   ˡ ˡ} á    ˡ ˡ} á/M2خ٣ɡ ٣ šث ٫+áMM: á :} á     t ^"ˡ ˡ} ás á'ǀš'(&ˡǒ &&'('ک} ۢ ۢٚ۩Q؂''h&ˡ ǀ DSړ Ǧ  ȡۢ ڡ " ^Ȅ "3ǔ ؀ ؀ ɡ:ȡ ǀ  (ǀ 3ámá šˡ ۚš$ ġ  á ٳ0d@ h ٳ ǀ  FJ)ÍȄ )eNORMAL ILOCK ׯ 2PURGE CRUNCH ׯ    M- "ˡˡ}  áǏ Xá   ˡ} } FM?M8ˡ 9ˡǏ  M (_83 6-!ˡ ˡ} á  )á á á}  }  ˡ 9ˡ} á  "á    "ˡá ؂ ؂ #Ȅ ؂ خ @MÍǀ   Gڳáقšخáخǀ  خj[ؤ[[[[Ǖš +2 ؤá "Oؤ Oؤ8`ǀ Ȅ ?á(ۢ䚩á 䥁 $ۢ9á ۢښ   8ˡLJ !خ  ٢`m ˡ}  ˡǏ á  á  " ˡ} á   ˡ} %áM-#á}  ˡ.$ع0sokgc_ [!W"S#O$KG +@7575 799;9E"$&EC,GIGEG8SIGi٣á٣ á%٣  2I٣ ٣ ٣ á)٣  6I٣ ٣ J%@ö=} ˡ(á!9á " á ۢۢ`mɡ'ġ 9!٫ خ 4Pˡáb'ڢȡ;á$خڢ+;˄6á;á33S,á)6I)##:<> 4!O˄˄0  ˡS>á+ 8I6ˡǐ #;=? E.dˡfN &ǐ E&á%2  ˄ٮ%"ág ˡ[ M K; <:  )9 M M} -˫  áٮ%M- &?ö;}R ˡ(á!9á " á ˄ۮ%&؟ˡ#š á$ á% &ˡ ˡ  á ١M ة;á5١á" " ˡ ˡ} rة:  ١]ة9á ١MJIˡ"g . VCtˡuN &ǐ E&á%2Iˡ"g . VCˡˡء!%R   ˡ Ä á)  6I ~á Iá)6    < ˡǖ g     ١M5 )ˡ ݕ١ܮܮM} -˫  áۮ%M-Y4 'ޣ á ޣ ˡǐ áٟá~  "ٟ˄٣ڟˍ٣áȡw9Ä á \áá :;é1 %ک;  ; 4D Ä ,'Sˡ ݕˡǎ ګ1á&ág ڟˡ ˡǎ ǚ  ǎ ٟˡˡá   :ˡńi; i iáݟˡˡ NJ   ˡ ˡq ݟˡ < , 1 ˡ䀮šNj ˡ>'á 1 @$ńˡá  áˡˡ nj  áˡu á ǘ ^ " ǐ  !   ˡń  WˡOٟˡ~ ޣ áޣá V"7ޣ ޣ ÄOޣ ޣ á Mޣ ޣ Ǖ ޣMޣ ޣ Fޣ ˡ Mޣ ޣ 4ޣ áBޣ %ޣ IáNޣ ޣ áOޣ .ޣ  ޣ á(ޣ ޣ ˄ޣ (HSx(أ áأ á t ݳ͐o" ݳ}ݹ&'ޡ2 ˡˡ} 9ÄǏ @%áM M 8ˡáás ˡ ġ} ˡáÍ; ááǏ ˡńǍ  i i 1-.+Gv dá}   Eܮ29Ä Há=ءǚ á/9á'RݢݢR 4  ˡ} 4  x"ˡ' áˡ át á " ٟáǞ eˡǢ WˡQ ة;Íǟ < -؟ˡ á ;á} ˡá;á}  >á  á    ˡ ˡ} Má   Má   á  á   ˡ ˡ} á   ˡ ˡ}  "ˡ ˡ} ˡ!áM )  ÍM  n1/a˫   á  8: B2á8á ܓ ٮ á 4  /ܡ ۡګ  á-ܓ  9خ ٮ /ܡ ۓګ خܓٮ 3  9߮ ٟˡ٩;Í ǐ  á    ٟˡ^ Oܟˡ ȡáǜ   ܚޚ۟áښǓ ˫  á  /aڟˡ9 ˫   Í߮ء~Nڟˡȡ𥀲ܤˡܹ FSEEK ר~ FREADREAרj FWRITEREרV FREADDECרB FWRITEDEר$ ' DECOPS  tbP>%ȡ  "!    ܤ ܤ   ܤȡ      +ء*4<NG&F$ y{ġ  ˡˡ$&LGv .Ǐ  &ݟˡ` ݚܟá ,   9 š   ݟá á  >=jFG#4 خ/a˫   á خ 5 EG V5 ٮ@ خ á 6 /9ٮ خB6áX}  á   Ǜ ؟ˡũ;  Ǐ   A áW ˡ>ˡǐ 0 ! ؟ˡé1 Ǒ 3 *SYSTEM.INFO[*]"ˡǒ . Ƕ . Ǐ QI \ [ MPPPPš [  ˡ TAݟޓݥ e ޓ* A ݫAN؞ (M M I ɡ- ~ݟˡ   á   0'&6á" 2ˡ "" N NN 3á   _4ˡ a   ǀ @ˡnˡǐ ` Q ؟ˡé1 8߮ 6 šá40Ǒ 7 @ ! á 6 / á9߮  ] 7á}   EBخˡxál ɡ_ ~á~ۢۢۢ+8~ۢۢ š nj ˫  á 6 /ڕ ٕ  8J  :     á   -8Ä퓫 ˡ8ˡ LJ   á  ˡˡ Lj   Ȅ  áG    lj ޡȄ   ޡ 䔜ߡlj ˫  á  ߡ,RRR RRRj0b J#á[~ݤˡ~ݤޟˡ# áǥ ǧ  á  0 UW,  a `}p  ܣá ܮ0v 2o 1h 3a 4Z 6S 5L 7E 8>6h  "$&fZUIRFAm!dš  &  JJ7 Ql  /#!  /# @# ( Tɡ Tˡ;צ [  "$&(*,.02468:<>@BDFtdPRTVXZ\^`M e -&$d--'á  - ܟ˄)*Ä?ܩ;;Ä/Ä   dž )ܩ;;Ä dž v*ÄÄ  dž FÄ dž -ܩ88Ä dž  'rD0 $R, (é`   words]<W >ˡڟˡ ˡtáašQ2 6ٮ / *ˡ (ޕ( áWV~ܟˡ ܢ  .Iá(<ڟˡڣ ġ ڣ M~ڟˡN 2 2 ,á5á9áMIéUW/a˫   á  ~ڟˡ 2 M %Iá<ڟˡڣ ,. á";áá dž (á  , ܟ˄)*Ä?ܩ;;Ä/Ä  dž )*Ä?ܩ;;Ä/Ä  dž (ܩ88Ä  dž  |& +ˡ ەˡǁ ؚ,.+)á 9Íˡ ȡ  S + 9ġ ڣ áV' áA-á۶~ܟˡ `mˡǨ ੁ šߤ ޶á     ؕ  \ I ..N QQ\QG ART!99  F8``  L r4p` !2""#$$%L&&N' B((( f,,F--J///0./0~00b1p222B3r 9 á  ~ڟˡ 2 M %Iá<ڟˡڣ ˡ ȡ ܟ˄á+á   ǁ  ǂ ˡ )* .  S. f  ܩ;á ܩ8á  ǃ   DŽ  u %  ˡ  ǃ 5ǃ  "Dž  o1 á @*564/1(0!7/ 1, )ǁ 8 jF@خá &š(ˡ2'é&Ä&ȡW&ɡǀ' ȡ%٩(á( ܩ&ɡ ګ ȡ  l ڣé ڣ  ,ڣ ڣá ڣ ڣ á[ڣ áOڣá$ڣ"   " "ڣ"  " ١qˡAۣá "ۣáȡ ˡ ō  á 9 ˡ ȡ ٟ˄á;  ;: á :ˡ ǁ :ޡK9Ä47ˡ.  9˄Sˡǁ ٫٫ e1 h ]WGޡ*٣(('( ǒ  MoQM`A#ǁ 3   02 #áP~ڤˡ~ڤ؟ٓá 9 ٓǧ   7R `  ڣ 0  ]Z@B.١NáöÍ١ بȡ      áأ ` أ  أ             ȡ   á     $ y{ġ  ˡˡ$&LGv .Ǐ  &  ݟˡ2ݢܱ !ݢܵ ˡ: H ܟˡBܢȡ&ޢ ۯ ޢ`á:צUnit  not foundl ȡ" - > [ ڂتP.(2.P."ˡ2צ in workspace.CODEP."ˡ&.!צNo file Pˡ !צOpening /s//./ٚ./ٟˡáٸ ٢ؚ٢٢٢٢٢Ǡٶ ٸ ٸ T!!צ missing proc` ٟˡaáUá ؟ˡ%áá ٢ؚá ٢ iF xڟˡ0 ٟˡٚښ7B#۶ˡábá& ɡ>ڟá0ˡ"ڟˡˡá ڟáٟá ضؚؚo8l$ˡˡsegtbl read errá>-2-2ȡ+/c-˫ZZ--Z/ -0,á11/22`-ˡצ bad byte sex02`-Ä02-2`-˄'2`-ˍfunny code seg2-2-ɍ2-,ōצ bad diskinfo2`-1צ bad seg kind2 -  bad seg name,š----š0ÄצAll segs linked,á/[`#ݢˡݢ ݢˡݢ ݢݢ ˡݢݢ # áݢˡ á  ۡ,צProc  param mismatch #áݢˡá  ۡ,צFunc  param mismatchO áݢݢ unit err$3Z:$V  áZGlobal iצPublic VConst DProc 3צFunc "bQB 8)9ȡ Linker [II.0 a2]E˫[':'צ in workspace'*SYSTEM.LIBRARYצ Host file? 'ׯ?':'צ in workspace'š  ȡXצ Lib file? 'צ***SYSTEM.LIBRARYצ Map name? 'צ,.á .TEXTץ'۫۟á!@1 undefined˄$ܚsX$ f"؟ˡ&&&آߣޟˡš ޢ? ɡ`  ת' #Zë[ !šššá8 ١צ li read err ١آn ٟˡhˡc٢ˡUáצno room in seginfo6  ٚۢۢۢ non-alpha name٢ōצ too many refsצ bad formatáōצ ۂۂۀ Nˡۂ.ɡ3 ꕞNˡ.Nצ Your file is   bytes long.UáV?&צSYSTEM.WRK.TEXTN*SYSTEM.WRK.CODENתeצ4Do you want to E(xit from or R(eturn to the editor?   EګצWriting out the file*ZlDTXZ\l\B.5$< bad privateá ˡٮǠōɍ Nōצ bad globdefō bad publicdefe٢٢Ǡōɍdōצ bad proc/func$  vY[]_* Ŕ&ʁ&́'ʁ'ʁ',צReading ʁ& ́%Z4Ɓ ́&ʁ&ȡƁ Ɓ ˡ bad litype fzá́%nšE   ۢZ ́&ʁ&ȡۢ&SYSTEMLELINKER  ۟ˡá2á*Ȅ  צ bad host LCʁ% ܢ ٢ áWsBJ؟ˡآōצ bad proc #ڶ˶˄disagreeing p #Iٕȍ Nōצproc place err  N (ǐɡ sep seg 2 big ȡˡsep seg reaتP%Type (continue), (terminate)++á+ á VTrٚi.ھZڿ Zǀ"ȡ6ݢܢ`ܢ`ښ>  R ٢٢ٟáٚUۢ٢  !ۢ٢   ٚ۟áڟˡܡڢٚڢٚT x d err5Ǡō bad proc dict!   #ȡ ˡk N] J D7 ǀ$  U/YHڡٟˡ@ á ٟˡ šN ؟ˡYD٢ؚ٢٢٢٢ ٢Ǡ ٢أǠٶٸf؟ˡu!!!`أáW   á [ɡ addr oflow$g[NPi  ˡš ؓ c ޟˡáߟᄡ:á. ġɡ ᓡ6$ڶ ڶڶ,ɡ  - á' 2ضˡצcode write err  1:Error in simple type  2:Identifier expected  3:'PROGRAM' expected  4:')' expected  5:':' expected  6:Illegal symbol (terminator expected)  7:Error in parameter list  8:'OF' expected  9:'(' expected  10:Error in type  11:'[' expected  12:']' expected  13:'END' expected  14:semicolon expected  15:Integer expected  16:'=' expected  17:'BEGIN' expected  18:Error in declaration part  19:error in  20:'.' expected  21:'*' expected  22:'INTERFACE' expected  23:'IMPLEMENTATION' e@#؂.  Seg #    ,  #  ؟ˡ Sep procs ؟ˡ צ   á  proc  func  #    base =   leng =   ȡ١.؟ˡ" צ Sep proc refs -؟ˡ# צ Local seg refs ؟ˡ צ  xpected  24:'UNIT' expected  50:Error in constant  51:':=' expected  52:'THEN' expected  53:'UNTIL' expected  54:'DO' expected  55:'TO' or 'DOWNTO' expected in for statement  56:'IF' expected  57:'FILE' expected  58:Error in (bad expression)  59:Error in variable  101:Identifier declared twice 102:Low bound exceeds high bound 103:Identifier is not of the appropriate class  104:Undeclared identifier  105:sign not allowed  106:Number expected  107:Incompatible subrange types  public LC =   צ const val =   privat LC =   צ unit seg# =  _ glob def in    @  s j Q  @ ;&H_0 O Linking #צ #  á(׷0*--.   !/Ɓ ƂL/צ Output file?  '  108:File not allowed here  109:Type must not be real  110: type must be scalar or subrange  111:Incompatible with part 112:Index type must not be real  113:Index type must be a scalar or a subrange  114:Base type must not be real  115:Base type must be a scalar or a subrange  116:Error in type of standard procedure parameter  117:Unsatisified forward reference  118:Forward reference type identifier in variable declaration  119:Re-specified params not OK for a forward declareׯ2*SYSTEM.WRK.CODE[*] 2 "ˡ Code open err ƀ  ̂MʂMȡ'@ ƀצƁ "ˡ-צ Can't open ת'WƁ Link map for ˡƁ #Ɓ Ɓ צ assem hostƁ Ɓ  #̂MʂMȡ" ˥ ˄/ˡ/Z 2 ˡCode write erráh2#?SYSTEM.WRK.CODEת׷3ˡ'Ɓ צnext d procedure 120:Function result type must be scalar, subrange or pointer  121:File value parameter not allowed  122:A forward declared function's result type can't be re-specified  123:Missing result type in function declaration  124:F-format for reals only  125:Error in type of standard procedure parameter  126:Number of parameters does not agree with declaration  127:Illegal parameter substitution  128:Result type does not agree with declaration  129:Type conflict of operands base LC = Ɓ Ɓ Ɓ Ɓ r2Ɓ^&2  $F.  n \:,$ T@ F$ h###f$$2%%%%%&&L&`0n ת'WƁ Link map for ˡƁ #Ɓ Ɓ צ assem hostƁ Ɓ  #̂MʂMȡ" ˥ ˄/ˡ/Z 2 ˡCode write erráh2#?SYSTEM.WRK.CODEת׷3ˡ'Ɓ צnext #ڢ욥    ˡ+  "؟ˡ`%" '" ٟˡ ٢؟ˡ 8%"4o(ǐɡ no mem roomȡ  ܶˡ seg read errڕڕڕˡ4šٶەەڞ 6 $) "   Ɓ Ɓ Ɓ r2Ɓ^&2  $F.  n \:,$ T@ F$ h###f$$2%%%%%&&L&`0n ת'WƁ Link map for ˡƁ #Ɓ Ɓ צ assem hostƁ Ɓ  #̂MʂMȡ" ˥ ˄/ˡ/Z 2 ˡCode write erráh2#?SYSTEM.WRK.CODEת׷3ˡ'Ɓ צnext   ޟˡ á ڂُȡצ size oflow)Ǡ ޟˡQ ؚá6ǠǠšצproc num oflowǠޢǠݶq (! (ǐɡ%(ǐɡצ out of mem  Wȡˡsep seg read errظZ+! (ǐġO^%ނ  ȡ݂ˡצ proc read errLáܞ+á؂ ,  ݟˡ  ˡ+J Copying  áצproc func  N,ˡٕ! *ٟˡ  f}u f  155:Control variable cannot be formal or non-local  156:Multidefined case label  157:Too many cases in case statement  158:No such variant in this record  159:Real or string tagfields not allowed  160:Previous declaration was not forward  161:Again forward declared  162:Parameter size must be constant  163:Missing variant in declaration  164:Substition of standard proc/func not allowed  165:Multidefined label 166:Multideclared label  167:Undeclared label  168:Undefined label  169:Error in bas" Iצ*  I  7á 8٨ǀɍm Location H HHHH8HH87  "ˡ."ء&*,ȡxؤˡf&IIצ>>>>>IؤD󄓡)>>>>>ؤؤ*,* áu)ɡe set  170:Value parameter expected  171:Standard file was re-declared  172:Undeclared external file  173:Fortran procedure or function expected!  174:Pascal function or procedure expected  182:Nested units not allowed  183:External declaration not allowed at this nesting level  184:External declatation not allowed in INTERFACE section  185:Segment declaration not allowed in UNIT  186:Labels not allowed in interface section  187:Attempt to open library unsuccessful m>6 H) fɡH)#H)#f, H) fɡH)# H)#fD@[( ]<! >#PDII I IPAGE - I" I IoIצ FILE:IDIIצ IIII "" !!D.!2á  7á  ɡCcc cIצ|  188:Unit not declared in previous USES  189:'USES' not allowed at this nesting level  190:Unit not in library  191:File not allowed to be private  192:'USES' must be in interface section  193:Not enough room for this operation  194:Comment must appear at top of program  195:Unit not importable  201:Error in real number - digit expected  202:String constant must not exceed source line  203:Integer constant exceeds range  204:8 or 9 in octal number  250:Too many scopes of nested identifiers  25II| Iceše#←áI#III IIácX #3*j" ءUá"IHIHá'I I I áDIH IHIHIHáNI I  I  I I I   5šGHá6 2š2HH551:Too many nested procedures or functions  252:Too many forward references of procedure entries  253:Procedure too long  254:Too many long constants in this procedure  256:Too many external references  257:Too many externals  258:Too many local files  259:Expression too complicated  300:Division by zero  301:No case provided for this value  302:Index expression out of bounds  303:Value to be assinged is out of bounds  304:Element expression out of range  398:Implementation restriction 66H5ؿ5565443š43B{á2ȡ+c쥈HcHc á<ȡ5c0c0c0c  ڨ؍áfȡ_c* ɡc쥈H cHˡ cHcHc ázȡsc* ɡ(c0c 0c 0ˡ*c0c0c0c ؓB  B @  399:Implementation restriction  400:Illegal character in text  401:Unexpected end of input  402:Error in writing code file, not enough room  403:Error in reading include file  404:Error in writing list file, not enough room 405:Call not allowed in separate procedure  406:Include file not legal  500:Error while Assembling.  4*?r$˄8á$oؚo٨o 4Jn0o5ppˡ  0s?0ssˡ  0T&LG  "$&(*,.0246s:<>@BHsˡ0sstt4tssts.|&/-u! (,$. W|gknV  130:Expression is not of set type  131:Tests on equality allowed only  132:Strict inclusion not allowed  133:File comparison not allowed  134:Illegal type of operand(s)  135:Type of operand must be boolean  136:Set element type must be scalar or subrange  137:Set element types must be compatible  138:Type of variable is not array  139:Index type is not compatible with the declaration  140:Type of variable is not record 141:Type of variable must be file or pointer 142:Illegal parameter solution J&6 B %. TLA INITIALISYMTBLDUPROCEND ASSEMBLEPRINTERR V2.0 Rev A 143:Illegal type of loop control variable  144:Illegal type of expression  145:Type conflict  146:Assignment of files not allowed  147:Label type incompatible with selecting expression  148:Subrange bounds must be scalar  149:Index type must be integer  150:Assignment to standard function is not allowed  151:Assignment to formal function is not allowed 152:No such field in this record  153:Type error in read  154:Actual parameter must be a variable II#ffIIERROR #I IءEI"I11Iצ.ERRORS" file not aroundI ڂ D󄓡#ffERROR # ءD"11.ERRORS" file not around ,(šE(dit,,ٶ/<ȄooEeÍ:<% & ) '  oo á 7Ʉ  D󄓡s B#nV #^ L#3<GH'( H'()'('(á><0&'%) H'(Gáš%GG ˡH) ˡ))(á#3@󓄩Ä DAá<#橂ˡ%<0 P P ˄ 0YYPY0ǠYP á'&)%G ')(D󄓡#ffR! רɡEȡڂؾړلٓǀړلٓ٫>l > >Gá,G ëCeɡ##G %á J éA*f G ؂fɡ# ؂؂ ˡfɡ# á > >š G H %éń, Í;ÍZšF G F H ؂Gá >] éABfɡ# š G H ˡ fɡ# á >))>)ġH)é:HڤE˄ EEh𩂒 %   !$!ungV'N'  "$&(*,.0246O:DdHJcڤڤꚹ'áá"vš  ) ˡ *,*GáG D(C :áBȄ#F>(*<V" רء$ۤ) ëC))H) ;áf H) )؂) 0 éA:f H) )؂) ˡ á C^*ō˄ J(ˡ 뚶á#á  òHÄ&rqòHÄf_!뚹 %rq+á* *+,ɡá'EE+Ʉ+ E++E},á (nءH++,+** ȡ٤٤򥂳+ &,,CC:Ä>R @#DA PתP"PɄ ˄5򿥁,,P,Ǡ,PáA١ؑ ؂ á()Pš*w $(ëC áC á( "!   ˡġݡHáٳ$س$$$Ä?oڳ<<ڹ$$Íޢۂ$ˡػ$$Äޢە$ˡ$ܡ ޢۍܡ ޢۄzܡޢۓۄbܡ ޢۏQܡ ޢۆ@ܡ ޢێ/(tT-  ^$á{1ޢEޢ   (*$á09ō>##$+áá>-á(á>>á>!~3?Bz  "$&(v\EL 468:<>@BDFHJLNPRTVXZ\^`bdfVxA~wƄoƅƄGƅsIƁu  $ũ@  ?áƄoƄGI-X6ޢ$) ASH$XnV;;x}?뻹ˡ %;á áI**á5á n%Hš 뚹 뻹á nV nnánV%HšEá 6ȡ+ȡ۾$HšF,zT#$J 2x| l!!L""#$D$H$+áá>-á(á>>á>!~3?Bz  "$&(v\EL 468:<>@BDFHJLNPRTVXZ\^`bdfVxA~wƄoƅƄGƅsIƁu  $ũ@  ?áƄoƄGI-Xo+&á+&áon+p+%HšnHš%o onꫂs%onꫂs%onꫂssonꫂsV&NC  "$&(*,_acegHš뚹áˡܤܤܤܤHˡšFOQSALIGN ר'$ASCII 'BLOCK ר'%BYTE ''CONST ר'8EQU '3FUNC ר'>PUBLIC '6PRIVATE ר'7 PROC ' = WORD ר' & INTERP ' 0 MACRO ר' 1 ENDM ' GIF ר'2ENDC ')ELSE ר'*REF '4DEF ר'5UWi$od,u0>@BDFHJLNPTVXZ\^`dfhjlnprtvxz|~y  ,4,. P P~7Aġ .7.0XXPX.ǠXPÍHá8.á .á$BáBá>E.ڹšMɡXX.PXǠXPW WWWWšyɡXX.PXǠXPXXȡ"پ š $ 434r%á qr%á nǀĶȄ<r%á qqr%á :n١qo7ppˡ  s1ssˡ  T&L9  "$&(*,.0246k:<>@B{}HHIIs  پ ń ÄɡXX.PXǠXPXXȡپš WW W WWWWšZɡXX.PXǠXPXXȡ%پš   WٕپW&Nq *] P  רɡá-EE Ʉؤ EE-> ORG '"INCLUDE ר'ALIST '9NOLIST ר':ASECT ' PSECT ר'!TITLE '<END ר'?PAGE ';MACROLISר'+NOMACROL',PATCHLISר'-NOPATCHL'. ABSOLUTEר' /ë9  ȡƶWWWE ȡ"قٓ؄9!ȡڤڤV- Bة6ɡf4šHɡ6ق2šق2 "áHá65ة6š4šHɡ6ق2šق2 2ġ("áH222ɡ62"áHá65ة65 ?ˡgVȡNVVá5ȡ*Vܤˡ4Vܤȡ ܤˡ4ܤǀٓ؄ؓ٤E˄ EE2Opcode declared twice=OڡWWۚWW٤٤ꚲWW WÍW=&'>)(,* FRB*LINKER.INFO[*]ת.11צ.OPCODES PW*.Q"ˡW#4:.S"ˡW#5:.S"ˡW#9:.-m u| ˡ Vȡ䥃ؤˡ'II>>>>>I  D󄓡$>>>>>V FVVVuVkVaV WV M#F  "$&(*,.02468:uogUVVVVVˡ;VáVV ˡVVS"ˡuW#10:.T"ˡLWצ#11:.T"ˡ#W#12:.T"ˡ8. not on any vol on line&@BDV WƁf #3צ11צ Assembler צ II.0 [d.4]́ʁȡ X cX H0123456789ABCDEFר5!$ .á v&v.v @2Output file for assembled listing: ( for none) áV$VVá V V VVVVVVVN#F[  "$&(*,.02468:9;=?T&L  "$&(*,.0246:468:<>HJ nrV ˡ V ȡ/VVáVܮܩ67 l (š(@FICurrent minimum space is I I words@á$ġ  ˡ áٿצCONSOLE:#1:ׯDצDPRINTER:ׯ#6:ׯצREMOUT:#8:ׯ Ib.TEXTá+ÍƁPƁצ.TEXT[*]XƁ$ÍƁPƁ[*]SƁ"ءצ @87? ́ʁȡVX[&ZYnVWn ;A:<FBo ר" P)IPAGE - I" I""oI@DMצCurrent minimum space is  צ wordso 36545 nV41w$41#41#ƥFn!ثHFƨȡH WI I blocks for procedure code I( Iצ words leftID_  blocks for procedure code ( צ words left643 25#w Há6Wh-jPV  áٿצCONSOLE:#1:ׯDצDPRINTER:ׯ#6:ׯצREMOUT:#8:ׯ Ib.TEXTá+ÍƁPƁצ.TEXT[*]XƁ$ÍƁPƁ[*]SƁ"ءצ @87? ́ʁȡVX[&ZYnVWn ;A:<FBo ר" P)IPAGE - I" I""o$ F ƁVƂƁ.ƂZƂ@#$š ?á$̂ʂġ٥wڤ $ ٫#5Hɡ6ڂ ʁV ʁV רʁVƁVƁ."áƁ.HáH "áHɡ6 #@ǀ Ɓ II.0 [d.4]תPƁ HÔʂȡڥsH "áá6@DIIAssembly complete:I! Iצ lineب 'áߢꚹ%áߢꚹޡ]rˡI  AB תP  LB תP  PR תP  FC תP  PB תP  PV תP  RF תP  DF תPr  UD תPd  MC תPV'Nx  "$&(*,.0246Z:>tnbI o4 IéDéDI  7á I| ˡsII Iצ" Errors flagged on this AssemblyII IƁ.&צAssembly complete:!  lines צ" Errors flagged on this Assembly쥈n $$ 0 /| .u -$šƁVoo 41=á#Fˡ>$áso$áEˡcX  (ˡ(ˡ #3&ƁV  ?á  #3  רݢݢ__ȡzܤˡeV'N   "$&(*,.0246C:GIKMOQSUWY6ǪPǦSYMBOLTABLE DUMPתP I>AB - Absolute LB - Label UD - Undefined MC - MacroII=RF - Ref DF - Def PR - Proc FC - FuncIIצ,PB - Public PV - Private CS - ConstsIII  áצ------ áצ-./! ݢݣޢÄ@@@   á ޣ Ąޣ ݣ ˡRݣ &ݢ ݢݢ!ݣ "ˡݣ ˄ݢ!ۂ"ˡ\ݣ ݣ šݢ ݣ ݢݣݣ ݣ ݣݣńݢݣݢݢݢˡݢݢ ۚݢܚ   pVz X 6 ^  ˡcX  (ˡ(ˡ #3&ƁV--- 6PI   ! .4 __ȡzܤˡeV'N   "$&(*,.0246C:GIKMOQSUWY6ǪPǦSYMBOLTABLE DUMPתP I>AB - Absolute LB - Label UD - Undefined MC - MacroII=RF - Ref DF - Def PR - Proc FC - FuncIIצ,PB - Public PV - Private CS - ConstsIII  áצ------ áצ-  A' or 'B' expecteddexed addressingPROCtBundefined labelcteddexed addressingPROCtBoperand out of rangeexed addressingPROCtBmust have procedure name addressingPROCtBnumber of parameters expectedessingPROCtBextra garbage on lineexpectedessingPROCtBinput line over 80 charactersessingPROCtBnot enough .IF's80 charactersessingPROCtB&must be declared in .ASECT before usedCtBidentifier previously declaredore usedCtBimproper formatiously declaredore usedCtB .EQU expectedatiously declaredore usedCtB&must .E($  0.,*(&$" P  D @2٩؄٤ء  2 D@#5IצCurrent memory available:I( IBCÍȍ@č$(Ʉ(ˡ 7788$š@?  (ɡ( qmieɡNJ?Bk|YDáAPړ ˡ>Dáۯ.S;Eo8á+ ۯX(ˡ(ˡ eš á#3.á Ʉ>IF ׯ (ENDC ׯ ɡ  ةELSE ׯ ةENDC ڡH eš á#3.áykig7=$QY[]_a~|~ˡ(ˡ(ˡ Fy2~G"`(b^ ` b \  < צCurrent memory available:I( IBCÍȍ@č$(Ʉ(ˡ 7788$š@?  (ɡ( qmieɡNJ?Bk|Y רɄ>IF ׯ (ENDC ׯ ɡ  ةENDC ׯ ڡ ٟˡc6٢؂٢Ʉoo٨o٢٫jrBáZF꫄Fٟ˄á"+&áá $% FNFá,>+&ˡ ,+%+++Bá3ˡ٩>Ɓ.́mƁmצ#4:Ɓm11Ɓm.ERRORS Ɓm"ˡ8́mƁmצ#5:Ɓm11Ɓm.ERRORS Ɓm"ˡ8́mƁmצ#9:Ɓm11Ɓm.ERRORS Ɓm"ˡ9́mƁmצ#10:Ɓmצ11Ɓmצ.ERRORS Ɓm"ˡ9́mƁm#11:Ɓm11Ɓm.ERRORS Ɓm"ˡ9́mƁmצ#12:Ɓmצ11Ɓmצ.ERRORS ƁmƁC "ˡw0II#ffIII  D󄓡/#ff0ššٕȡ   RDá<ȡ(˄  #3ؾ  9 VF xo?5F"ˡ-á F$F0 FF FˡF%éF"Í FF F 'ˡ=@ 'GG á>G7 ר: šGešG á (.á ɡ r ݢݣޢÄ@@@   á ޣ Ąޣ ݣ ˡRݣ &ݢ ݢݢ!ݣ "ˡݣ ˄ݢ!ۂ"ˡ\ݣ ݣ šݢ ݣ ݢݣݣ ݣ ݣݣńݢݣݢݢݢˡݢݢ ۚݢܚ   px0II#ffIII  D󄓡/#ffENDM ׯ  ȡG GG &: aSá Aáǀȡ  v á 6Ä ˡ8X á Eǀ Ä ˡE b UGá;é? (ɡȡ   h)# MTPD MFPD @MTPS MFPS PC SP R7 R6 R5 R4 R3 R2 R1 R0 MARK SOB ~TRAP EMT BPT IOT RTI RTT RESET WAIT HALT CLR CLRB COM @ COMB @INC INCB DEC DECB NEG NEGB TST TSTB ASR ASRB ASL ASLB ROR !48 #-FˡCˡ 5 á+áEáآآˡ&\Dá ǥP."á.áˍáJåÄ݂FÄ ˡLMvá `á.á á)á åÄNá˥ÄFÄd áRá RORB ROL @ ROLB @SWAB ADC @ ADCB @SBC SBCB SXT MOV  MOVB CMP CMPB ADD ` SUB BIT 0 BITB BIC @ BICB BIS P BISB BR BNE BEQ BPL BMI BVC BVS BCC BCS BGE BLT BGT BLE BHI BLOS BHIS BLO CLC CLV CLZ CLN SEC  ݂>ġá ݂Oá LMáO  Ǡ Ǡ qq,Ǡ hnnV ڻ ٻܡnhۡ \Ǡ á P4Ǡ á QˡRhnnV ڻ ٻܡnhۡ ~S Ǡ  SEV SEZ SEN SCC CCC NOP JMP @JSR RTS MFPI @ MTPI XOR xMUL p DIV r ASH t ASHC v FADD zFSUB zFMUL zFDIV z áR á=3%á*@nV TRQvǠ    ݻ ܻhnnVˡR ڻ ٻbnnVnhߡnbޡǠ ˡRá QhnnV ڻ ٻܡnhۡ ~Ǡ ǀ :(@<840,  LIBMAP ?COPYRIGHT (C) 1979, THE REGENTS OF THE UNIVERSITY OF CALIFORNIA LIBRARIA ?COPYRIGHT (C) 1979, THE REGENTS OF THE UNIVERSITY OF CALIFORNIAٚ@.ȡ$ˡ@,  TȡAݢܢ`ܢ`ښܢpH \ȡ" - >ō  ˡ,+Interface read error+ |   4  á á  ō+ +ٚ@$ȡܾۤˡ@&  Bȡ(٤ܢۢ`٤ۢp٤0 >á-٢D""ˡ#"- I/O error # תP 8-Link Code File -> תPP*צ*SYSTEM.LIBRARYPš P[Íx ȡ -ۢ ڤڤ  QU before use if not to a labelCtBmacro identifier expectedot to a labelCtBword addressed machinetedot to a labelCtB#backward .ORG currently not allowedbelCtBidentifier expectedntly not allowedbelCtBconstant expectededntly not allowedbelCtBinvalid structureedntly not allowedbelCtBextra special symboltly not allowedbelCtBbranch too farsymboltly not allowedbelCtBvariable not PC relativenot allowedbelCtBillegal macro parameter indexllowedbelCtBnot enough macro parametersexllowedbelCtBoperand not abs-ۢ   -ۢ    -ۢ   -Code file length - תP  (  á[ ˡ#-Link info read errתPG ˡ#-Code file overflowתP    - Bad link infoתPۓ3>`&š ۡoluteametersexllowedbelCtBillegal use of special symbolslowedbelCtBill-formed expressionl symbolslowedbelCtBnot enough operandsonl symbolslowedbelCtB&cannot handle this relative expressionCtBconstant overflows relative expressionCtBillegal decimal constantive expressionCtBillegal octal constantntive expressionCtBillegal binary constanttive expressionCtBinvalid key wordonstanttive expressionCtB%macro stack overflow - 5 nested limitnCtBinclude files may not be nested limitnCtBunexpected end of input ōٍؕ-צInterface errorP,p[ڂˡ"-צInterface read errPDˡ#-צInterface write errPۡ,pآ` آp[ˡ'-צError reading seg P ˡ(-צI/O error - no room on diskPj, آ ,,آ`آ`ōآ`,`آ`آ`ˡe nested limitnCtB(this is a bad place for an .INCLUDE fileB'only labels & comments may occupy col 1eBexpected local labelts may occupy col 1eBlocal label stack overflow occupy col 1eB#string constant must be on one lineol 1eB%string constant exceeds 80 characters 1eBillegal use of macro parameterracters 1eBno local labels in .ASECTmeterracters 1eBexpected key wordn .ASECTmeterracters 1eBstring expectedrdn .ASECTmeterracters 1eBbad block, parity error (CRC)rracters 1eBbad unit numberty error (CRC)rr , @  , -תPá  0 ˡڤšګ-צSeg to link into? P Y,ˡV-צ, N(ew file, Q(uit, A(bortP  c@@[5   -צPascal System Librarian [II.0]P,-צOutput code file -> P  P * צ*SYSTEM.LIBRARYP á  ˡ', ,VWWȡV  ר سس-צNotice? P,O,,á !CtB nested macro definitions illegall or intB'=' or '<>' expectedions illegall or intBmay not EQU to undefined labelsll or intB'must declare .ABSOLUTE before 1st .PROCtB ust declare .ABSOLUTE before 1st .PROCtB ust declare .ABSOLUTE before 1st .PROCtB ust declare .ABSOLUTE before 1st .PROCtB ust declare .ABSOLUTE before 1st .PROCtB ust declare .ABSOLUTE before 1st .PROCtB ust declare .ABSOLUTE before 1st .PROCtB ust declare .ABSOLUTE before 1st .PROCtB ust declare .ABSOLUTE before 1st .PROCtB ust ode write error @K Ɓ[ƂƁƂƁ[ƁT2^VB L  X -צPascal System Librarian [II.0]P,-צOutput code file -> P  P * צ*SYSTEM.LIBRARYP á  ˡ', ,VWWȡV  ר سس-צNotice? P,O,,á !Cdeclare .ABSOLUTE before 1st .PROCtB ust declare .ABSOLUTE before 1st .PROCtB ust declare .ABSOLUTE before 1st .PROCtBclose paren ')' expectedefore 1st .PROCtBregister expectedxpectedefore 1st .PROCtBtoo many special symbolsefore 1st .PROCtBunrecognizable operandlsefore 1st .PROCtBregister reference onlysefore 1st .PROCtBfirst operand must be register1st .PROCtBcomma ',' expected be register1st .PROCtBunimplimented instructionister1st .PROCtBmust branch backwards to label1st .PROCtB  -ݑ š 0 0 ߿`ġ(   ݂. ݕ ؂݂3  ݕ 0 . ݑ0 ݕ݂ ؂ ɡ   x,  & * عuuh[NA4 '  }rg\QF;0%á +-Í-۲z0ݡߑ ع    , DRWBLK PASCALIODECOPS DRWSTUFFGRAPHICS  V2.0-R0-L2    k P  5  O ~eL3N <<Df\A4 '  }rg\QF;0%á +-Í-۲z0ݡߑ ع  &fet  pt `mwhE Z: 7  Dt7.2m2,((7 $ E 77 77 ev 6 e wt  {~7vP @ 7v7vx7v~e~elh~mjmb7vZwtN{ wvFPPA H7t27v2< 7t"7v"x, N\Znb2222222222 PASCALIOFSEEK FSEEK FREADREA FREADREA FREADDEC FREADDEC FWRITERE FWRITERE FWRITEDE  FWRITEDE  DECOPS @  $-1:>GK,/36:GJNQUbeilp}  }rg\QF;0%á +-Í-۲z0ݡߑ ع  DRWBLK  DRWBLK DRWBLK + áI ١%+library read error!+ ١آ~ تPY+ + P+צ word referenceB+ byte reference'+צ big reference W>% ˡ)+צ (+ +צ times)+ (once)++ 5+5ȡ , ++#h +# c+ completely linked segment++צ Pascal host outer block $ "TYPE DECMAX = INTEGER[36]; STUNT = RECORD CASE INTEGER OF 12:(W2:INTEGER[4]); 13:(W3:INTEGER[8]); 14:(W4:INTEGER[12]); 15:(W5:INTEGER[16]); 16:(W6:INTEGER[20]); 17:(W7:INTEGER[24]); 18:(W8:INTEGER[28]); 19:(W9:INTEGER[32]); 110:(W10:INTEGER[36]) /END; ' " "PROCEDURE FSEEK(VAR F: FIB; RECNUM: INTEGER); PROCEDURE FREADREAL(VAR F: FIB; VAR X: REAL); "PROCEDURE FWRITEREAL(VAR F: FIB; X: REAL; W, D: INTEGER); "PROCEDURE FREADDEC(VAR F: FIB; VAR D: STUNT; L: INTEGER); "PROCEDURE FWR++ Pascal segment+s p+ library unit+s @+ separate procedure segment+@ l>́ʁʁZ䍡 [<Ɓ́́ʁʁȡƁʁʁ́Ɓˡ߹ZM+ + global addr P #+ +צ, I #+ +Z6+ + public var base = + +Z5+ +צ constant value of + +Y5+ITEDEC(VAR F: FIB; D: DECMAX; RLENG: INTEGER); "  IMPLEMENTATION $ "PROCEDURE FSEEK(*VAR F: FIB; RECNUM: INTEGER*); $LABEL 1; $VAR BYTE,BLOCK,N: INTEGER; "BEGIN SYSCOM^.IORSLT := INOERROR; $IF F.FISOPEN THEN &WITH F,FHEADER DO (BEGIN *IF (RECNUM < 0) OR NOT FSOFTBUF OR 2((DFKIND = TEXTFILE) AND (FRECSIZE = 1)) THEN $ "TYPE DECMAX = INTEGER[36]; STUNT = RECORD CASE INTEGER OF 12:(W2:INTEGER[4]); 13:(W3:INTEGER[8]); 14:(W4:INTEGER[12]); 15:(W5:INTEGER[16]); 16:(W6:INT +צ external proc P #+ ++ + separate proc P #+ +{ global m public _ constant O separate ? unit 3 private $s#aUKWKMás 6 Nb,tȡš+צ Segment #+ +: ++צF----------------------------------------------------------------------K++  [צenter library name: ,ݢݣޢÄ@@@   á ޣ Ąޣ ݣ ˡRݣ &ݢ ݢݢ!ݣ "ˡݣ ˄ݢ!ۂ"ˡ\ݣ ݣ šݢ ݣ ݢݣݣ ݣ ݣݣńݢݣݢݢݢˡݢݢ ۚݢܚ   p á +-Í-ڲzؼ 0.áAP,צ +,*,*SYSTEM.LIBRARYתP,"ˡ.CODE,P,,ˡצbad file[UUȡ]ɥɍ,ō#!not a code filelist linker info table (Y/N)? ٳ@@ٳZZZolist referenced items (Y/N)? ٳ@@ٳ YYXڲzؼ 0ڲzQeEÍݍ.á '߂ۓۡܡ ؼɡ ؼ߀$ ؼߞ$"Hɍ -   $ $ ݞ$' ݑ$ $݂ō $݂ġ ݂$ $ $ȡ%  0 ފ$čQ   .ˡ5  Eɡ map output file name: PׯצCONSOLE:P.á  :ˡ.TEXTP+"á++צ LIBRARY MAP FOR +,++š+ ++++ gKM.6 Ɓ+ƂWƁƂ/Ղ1Library map utility [II.0]X XƁ+Ɓlrl ~^  ^  ferenced items (Y/N)? ٳ@@ٳ YYX  #TYPE SCRN = PACKED ARRAY[0..319 , 0..79] OF BOOLEAN;{one zone} # PSCRN = ^SCRN ; #PROCEDURE INIT_GRF ; #PROCEDURE USE_SURF ( S:PSCRN ) ; #PROCEDURE DRAW_VS ( SIZE: INTEGER ) ; #PROCEDURE DISP_VS ( DISPLACEMENT , GRZONES , CHZONES:INTEGER ) ; #PROCEDURE SET_VPRT ( LEFT , RIGHT , BOTTOM , TOP:REAL ) ; #PROCEDURE SET_WNDW ( XMIN , XMAX , YMIN , YMAX:REAL ) ; #PROCEDURE SET_LNST ( LSTYLE:INTEGER ) ; #PROCEDURE NEW_FRAM ; #PROCEDURE INQ_CPOS ( VAR XPOS , YPOS:REAL ) ; #PROCEDURE MOVE_ABS ( X^TPJ$BLOCK <= FMAXBLK) AND (BYTE <> FBLKSIZE) THEN 0BEGIN 2UNITREAD(FUNIT,FBUFFER,FBLKSIZE,DFIRSTBLK+BLOCK-1); 2IF IORESULT <> ORD(INOERROR) THEN GOTO 1 0END ,END; *IF FNXTBLK > FMAXBLK THEN ,BEGIN FMAXBLK := FNXTBLK; FMAXBYTE := FNXTBYTE END *ELSE ,IF (FNXTBLK = FMAXBLK) AND (FNXTBYTE > FMAXBYTE) THEN .FMAXBYTE := FNXTBYTE; *FEOF := FALSE; FEOLN := FALSE; FREPTCNT := 0; *IF FSTATE <> FJANDW THEN FSTATE := FNEEDCHAR; *FNXTBLK := BLOCK; FNXTBYTE := BYTE  , Y:REAL ) ; #PROCEDURE MOVE_REL ( X , Y:REAL ) ; #PROCEDURE LINE_ABS ( X , Y:REAL ) ; #PROCEDURE LINE_REL ( X , Y:REAL ) ; #PROCEDURE MARK_ABS ( X , Y:REAL ) ; #PROCEDURE MARK_REL ( X , Y:REAL ) ; #PROCEDURE SET_CHPR ( CHPR:INTEGER ) ; #PROCEDURE SET_CHSZ ( XSIZE , YSIZE:INTEGER ) ; #PROCEDURE SET_CHSP ( XSPACE , YSPACE:REAL ) ; #PROCEDURE TEXT ( S:STRING ) ; #PROCEDURE SET_MKSM ( N:INTEGER ) ; # P !IMPLEMENTATION ! VAR #TYPE SCRN = PACKED ARRAY[0..319 ,DECOPS DECOPS GDEC GDEC ثáBצdraw_on_view_surface not calledVةȓɍ ō" drvs error 1@ȡ@ǀ ثIm ōɍō צ dsvs error؂ˡ ǀ ڏZ"צ vprt error  l7 7 w v7 v jj^7 ^ CptE`eE /6 .-00(7 $m-  ` ~ m- ` ~-,    5  \v h& , @ @|rfVVVVV&fE C"צ wndw error ō"צ lnst error šB áǀ ؞ 0٥إ  &   E ww  wRCaE ee e wz tE WuEB  N uED 7>tEpWuE` mtEp  uE` m %   ACBvC@A CBv xC L@PM|C L@A C@Pmlm`A C@xm\mPe:86VTLXjh|l22222222 &f2w&7$" G8  x*b`$7w& 8  & 2  D!@   Aa@  U  D D   D          f   w\  __ _B B`A b e  QB  b   j7 ev a " j b \ H HH  ` H HhHh    e p C`WqP b tm ?Y AaWp(mEtU  5tUBE vv n ds D`   <T L]LM W!  ~ (  enb^(&f@ACpe& Δ~BB  LBB  LB e ~B ee# ~CpPp(Cm r `W  W  eru~ _DB F  F   _% _ "77 * &     w aB  ~ B   `w`7& 7 7 7 7a E  Da7 D7zE mna R Ha H R e<! F  (&   _d 7dwH J7 D aw> w* (7 "D 7Da7  e&~e&~eep`@I**I"AAA"A""A>"A"AAAAA>""">J*v5t5t "* (  enb^(&f@ACpe& Δ~BB  LBB  LB e ~B ee# ~CpPp(Cm r `W  W  eru~ -w` F   &  & w %% | x |rntjfhX \L -LL   *      l  b  w!     a  E _ vJ  b h^  XVD$`h d  20$`   DRWSTUFF DRWSTUFFDRAWLINE DRAWLINEBITTER vDRAWBLOC  DRAWBLOCGCHAR GCHAR BITTER  GMARK  GMARK THROTTLE THROTTLE  747( a "  ` $$ _ * ˕͕07 7   ͕- ͕0  F\  F  ##- (    "& f X7 vwpn  @\Z \ V ͕0F ͕0 0 _  ``f  6  _ ;NJ#&;KLZzĊ @" R _ eeee e  e e& f   EezN EE7- @$@$@$@" EB~f r&z%% 7 *\7 *``WtB  aBE B<<  wN EC~ B~Uf rfVpfz  eN 8@ 6NE LU@t7`.~BE B @Wtw`& B~<z& & E ō"צ chpr error :ɍ"צ chsz error ث٫<تP +,5,5ȡ31/3-131/-x31á:3?PP1  ,3?1Pá,,h ث  BtlH ,@`<,XxV  N\Et& B~ & > ~UB~  Ձ@  a a!~F@  B~ ~<E `E `EՀW @p@ `E e `&& `& `E e `&EՀ~<  7Z   ҂ ~< E e ` E   @ ` G7vz   7H 7Z 6W w{Z N B GRAPHICS o 0+i; YBOT 6GCHAR WCX iVCX {VCY WCY CHPRECIS %3CHARWIDTsi CHARHEIGf !oTHROTTLE IMPLICIT"SKRN {Eb@ XLEFT $GMARK  SPDX y ,SPDY 3  <6 E E7 ~<& EE Jd`n d %  D~ " ~ E D~ D C~ %  D~  ~& <AA~E e @`& E&~AA~E e @`&AA~E e @`  `` t @L A@@A tBt B@P< ``f~ ``A~ c ҇ef rDRAWLINE XRIGHT -MRKSYM )[ NZONES [ 1IRe  C CXPOS `{3Geoq t WSX toVSX uVSY &WSY YTOP 4?STYLE 5!l CYPOS  h8Pjy y ,SPDY 3 ``&& `  E e @a&&6E e @a&E e @a \d<Z@@`@`$fH@7 `e B~  B~< _7@` dd&`f&d&b&  m ef ɋ e  rfwBC % e 7d,\ Aɋ BJ@ B <fr.4H'B&J8$!COPYRIGHT (C) 1978, REGENTS OF UNIV OF CALIF,SDHJKC  >P  ? /efAA,"<w m8~@ Bm*~@ Bm~     I?zr& 7h  AF eA -Bl: \.<$WFl<   mAɋF! &ffD e w5 wDe`<nC<B@B <C``& ΟX @ e E`E``B~8A Ew0w.Dw$ &  7 &  G 6E7, 6 ?  w pr&E7 5@|<7w {7yw 7 psw mw g-@_ azE ~ ~UV3T E@ JD B94T?4 E@" "-l7? ~7E@U@  E7 w wU &      rټؼܼۼܼڼټؼټڼ ,ݼܼ ۼڼ ˍš á   ޓ  ڥC  ڥ,  ۥ  ۥݼܼ ޡ_ ټؼD bP ?ነ? *7 7 7 zv x7 vEl7 h 7 E7 tv wU W r7 $7 " ^ E@ &?  w U@w > 6 & h ^7 X F @~w 2 ?*  "U@  wE 7 wv FRX\`& F J ^ f j n x |  " 6 B D J f 2  4 ^ v ~   6 j | h*06NV\bz?. F  ɩ ō$צ marker error     P ? 劐??劐劐)    Z Z ` f:@FLRX^djpv| "*2``@Z`6!a6!@$% ''@&0(b6!c6! \ j .   @ @f ~f{fxfufrfoflfifffcf `f"]f$Zf&Wf(Tf*Q NKHEB?<963 0"-$*&'($*!(ō"צ chpr error :ɍ"צ chsz error ث٫<تP +,5,5ȡ31/3-131/-x31á:3?PP1  ,3?1Pá,,h ث  BtlH ,@`<,XxV    @t@@T$  LN wU  E@ e ]& 7 7 7ߐ2 7  | t ~"w d    X N wK w: 7 ,* $? U@ _E7 wf U?  E7 REPEAT SET *SEGMENT !SEPARATE6THEN TO TYPE UNIT 2UNTIL USES 1VAR WHILE WITH 7 +& @  z7 +7 t+7 X+7 R(7 ,7 V(7 )7 -\ vw *< R'(((@ BCzEG@HPtJ$LM nO(kQRChTV焵W!cY_[\^^k `#ǭaxXc'exfhShjQYkoNmo9?pIrs|ouEw7x߄z @|Η}½  & &PRTV + wU  E@  U@ _E7 _z&z& K wU  J _&2 -/ -'z&  -~'z&t t n d ^_TR HD 28*7 2E 7 _z&7  Z&X( &7 |v7 n|7 `|7 T 7 < 6 \ = "  \m\  W  m ef5`\_e w5 5@ \ɋE 5\\\f F^T2&,FR,: f6 W Y#w (Q&vI  >7 7(w& EFHJKABCDWX][f@@ N Z[ E7  (U@ % E7 ez\& Dr)&&\   5@5@7 XJ((N()((*((((*N(*N(*N(*N((*)*N()*)B)f&\  \& \\r1@\[?\ ew & ?U?*@ڪAD C %     @  f&\   B -  e \z\D f C_  fW & @&&&&7 0**+:*U7MwG7 % @`?R wLVxx|xt@ wU ::K E7 w z2@t  w Et@_7   O 0E]'U `  xZ7Wm7 P ]Dw=7w Zl Fw bI w tR <w H<  Alw&f65t w E   e@ׇEU *0*)J(@**N()N(N() *N(&**|*e\\;@\ \N @   =@f&ysE[\pCf&f&\% a @w   6 6 &  f 6A  v  6N\z\\\ N A f C %C B    \ w  D& &&@7 N(+D& && 6  A7 ^)+P)J(++P)+J(+++*,*N(*N(*N(*N(*+ e\ \S\ e& @7 ʵm H& W Y#w H^E. U w w  UEw  Bw Zć  tw  h!w  UOw p w 먇  <w  0w `ʽ W Y#w tʕ U Q~ʕ \׌UE׌x׌"  e @7 6_ 8 E7 _ 7 v7 7 7 P 7"N(,+e\D,f& \:יc&>X4%]@& & & & & D&&D&& @%7 r),  IA e e@ e& & & & & D&&e #@  @6 7 )-6 6 #?%-0 @ ׳f&& @׳@f&7 *J(-J()t-f&f&7 l*-*N(*N(*N(*N(*N(N(-N(*-   \-f& \ e\>:L]L?ƪ@ \fEA#w h07  w w N!.7 eJww  U @e @wxBEfEP ]p |ʋD~ G~ 5E~ E~e  e  ` e  |ZT| *, wU  @E  @7LWE w<E 7$  7 t$Wax$Waw$  w w& e@ & f& f& f7 )N(". ff w   &@& n. y7|7v$ :)wmwed$ $ w[&$ $  E?R?DŸJE R7~  #l d#\ a:-:2* $ $ :?$ ,g SF $ ':t w` 1T $ '& _w E  t_! \RU \@@&2E '((@`@`( (+m ]   P~P~eeNPP  W  ~~e<ee``!~ e C~C~ %< C~C~ceί%@ eAp6% "1, 1,1,^  % ^A %^A&Daef ¥_09E AZ  Ub ]ER H7h$ga7k$`7n$[7q$VwLwCw;7B DI~A< | r $ _ $B  #E %M~ @E  a7 w7 _w7wm ,URN WW=774\% eC ~% C ``` e7 %  % % ` % C  f ee $ $ $ $ @A eeee >eJ< !$'(****AND 'ARRAY ,BEGIN CASE CONST DIV 'DO DOWNTO ELSE END EXTERNAL5FOR FILE .FORWARD "FUNCTION GOTO IF IMPLEMEN4IN )INTERFAC3LABEL MOD 'NOT &OF OR (PACKED +PROCEDURPROGRAM !RECORD -  PAL16L8 PAL DESIGN SPECIFICATION RGS02-02 ALEX R. McKAY 05/13/84 RASTER GAME SYSTEM-MASTER I/O DECODER CINEMATRONICS *D2222* G0*F0* L0000 11111111111111111111111111111111* L0032 11101011011101110111111111111111* L0064 10101111011101111011111111111111* L0256 11111111111111111111111111111111* L0288 11111111111111111111110111011111* L0320 11111110111111111111111111011111* L0352 11111110111111111111111011111111* L0384 11111111111111111111111111111110* L0512 11111111111111111111111111111111* L0544 11101001101110111111111101110111* L0576 11101011101110111111111101111011* L0768 11111111111111111111111111111111* L0800 11101010101110111111111101110111* L0832 11101011101110111111111110110111* L1024 11111111111111111111111111111111*  PAL16R8 PAL DESIGN SPECIFICATION RGS09 ALEX R. McKAY 11-24-84 RASTER GAME SYSTEM-VRAM WRITE TIMING #1 CINEMATRONICS *D2224* G0*F0* L0000 11111111111111111111110110011110* L0032 11111111111111111111110111011010* L0064 11111111111111111011110111011101* L0096 11111111111111111111100111011101* L0128 111011111L1056 10101101101110111111111101110111* L1088 10101111101110111111111101111011* L1280 11111111111111111111111111111111* L1312 11101011101110111111111101110111* L1344 10101111101110111111111101110111* L1536 11111111111111111111111111111111* L1568 11111110111111111111111011111111* L1600 11111111111111111111110111101111* L1632 11111110111111111111111111101111* L1664 11111111111111111111111111111110* L1792 11111111111111111111111111111111* L1824 10101110101110111111111101110111* L1856 1010111110111011111111111011111111111111011101111* L0256 11111111111111111111110111011010* L0288 11111111111111111111100111011101* L0320 11111110111111111111111011101101* L0352 11111110111101111111111011101110* L0512 11111111111111111111110111011010* L0544 11111111111111111111100111011101* L0576 11111111111011111111111011101101* L0608 11111111011011111111111011101110* L0768 11111111111111111111110110011110* L0800 11111111111111111011110111011101* 110111* V0001 1XXXXXXXXNXHXXHHHXHN* V0002 00100XX01NXLXXHHHXHN* V0003 00100XX10NXHXXLHHXHN* V0004 01000XX01NXHXXHLHXHN* V0005 01000XX10NXHXXHHLXHN* V0006 1XXXXXXXXN0HLHHHHLHN* V0007 001110XXXNXHXXHHHXLN* V0008 010111XXXNXHXXHHHXLN* 0000 L0832 11111111111111101111111011101101* L0864 11110111111111101111111011101110* L1024 11111111111111111111110110011110* L1056 11111111111111111011110111011101* L1088 11111111111111111110111011101101* L1120 01111111111111111110111011101110* L1280 11111111111111111111110111111111* L1536 11111111111111111111110111011111* L1568 11111111111111111111111011101111* L1792 11111111111111111111110111011101* L1824 11111111111111111111111011111110* L1856 11111111111111111111111111101110* 0000  PAL16L8 PAL DESIGN SPECIFICATION RGS02 ALEX R. McKAY 10/31/84 RASTER GAME SYSTEM-MASTER I/O DECODER CINEMATRONICS *D2222* G0*F0* L0000 11111111111111111111111111111111* L0032 11101011011110110111111111111111* L0064 10101111011110111011111111111111* L0256 11111111111111111111111111111111* L0288 111111111 L1376 11111011111111111111111111111111* L1536 11111111111111111111111111111111* L1568 10111111111111111111111111111010* L1792 11111111111111111111111111111111* L1824 10111111111111111111111111111001* V0001 XX01XXXXXNXXXLXXXXXN* V0002 XX11X0XXXNXXXHXXXXXN* V0003 XX10X1XXXNXXXLXXXXXN* V0004 XX10X0XXXNXXXHXXXXXN* V0005 X0XXXXXX0N0HLXHHXHHN* V0006 X0XXXXXX0N1LHXHHXHHN* V0007 X0XX0X001N1HHLLHXHHN* V0008 X0XX0X011N1HHLHLXHHN* V0009 X0XX1X101N1HHXHHXHLN* V0010 X0XX0X111N1HHXHHXLHN* V0011 0XXXXXXXXNXXXXXXZXXN* V00111111111111110111011111* L0320 11111110111111111111111111011111* L0352 11111110111111111111111011111111* L0384 11111111111111111111111111111110* L0512 11111111111111111111111111111111* L0544 11101001101101111111111101110111* L0576 11101011101101111111111101111011* L0768 11111111111111111111111111111111* L0800 11101010101101111111111101110111* L0832 11101011101101111111111110110111* L1024 11111111111111111111111111111111* 2 10110X001N1HHLLHLHHN* V0013 10110X011N1HHLHLLHHN* 0000 L1056 10101101101101111111111101110111* L1088 10101111101101111111111101111011* L1280 11111111111111111111111111111111* L1312 11101011101101111111111101110111* L1344 10101111101101111111111101110111* L1536 11111111111111111111111111111111* L1568 11111110111111111111111011111111* L1600 11111111111111111111110111101111* L1632 11111110111111111111111111101111* L1664 11111111111111111111111111111110* L1792 11111111111111111111111111111111* L1824 10101110101101111111111101110111* L1856 10101111101101111111111110110111* V0001 1XXXXXXXXNXHXXHHHXHN* V0002 00101XX01NXLXXHHHXHN* V0003 00101XX10NXHXXLHHXHN* V0004 01001XX01NXHXXHLHXHN* V0005 01001XX10NXHXXHHLXHN* V0006 1XXXXXXXXN0HLHHHHLHN* V0007 001100XXXNXHXXHHHXLN* V0008 010101XXXNXHXXHHHXLN* 0000  PAL16L8 PAL DESIGN SPECIFICATION RGS04 ALEX R. McKAY 11/13/84 RASTER GAME SYSTEM-SLAVE I/O DECODER CINEMATRONICS *D2222* G0*F0* L0000 11111111111111111111111111111111* L0032 11111111111111101111110101110111* L0064 11111111111111101111111101111011* L0256 11111111111111111111111111111111* L0288 11111111111111101111111001110111* L0320 11111111111111101111111110110111* L0512 11111111111111111111111111111111* L0544 11111111111111111110111011111111* L0576 11111111111011111101111111111111* L0608 11111111111011111111111011111111* L0640 11111111111111111111111111111110* L0768 11111111111111111111111111111111* L0800 11101011101101111111111111110111* L0832 11101011101101111111111101111111* L1024 11111111111111111111111111111111*  PAL16L8 PAL DESIGN SPECIFICATION RGS03 ALEX R. McKAY 02/06/85 RASTER GAME SYSTEM-SLAVE MEMORY DECODER CINEMATRONICS *D2222* G0*F0* L0000 11111111111111111111111111111111* L0032 10111111111101111111011110110101* L0256 11111111111111111111111111111111* L0288 10111111111110111111011101110101* L0512 110111111L1056 11101011101101111111111101110111* L1088 10101111101101111111111101110111* L1280 11111111111111111111111111111111* L1312 11111111110111111101111111111111* L1344 11111111110111111111111011111111* L1376 11111111111111111110111011111111* L1408 11111111111111111111111111111110* L1536 11111111111111111111111111111111* L1568 10101111101101111111110101110111* L1600 10101111101101111111111101111011* L1792 11111111111111111111111111111111* L1824 10101111101101111111111001110111* L1856 1010111110110111111111111011111111111111111111111* L0544 10111111111110111111101101110101* L0576 10111111111110111111101110110101* L0608 11111111101111110111111111111111* L0768 11111111111111111111111111111111* L0800 10111111111110111111101101110101* L1024 11111111111111111111111111111111* L1056 10111111111110111111101110110101* L1280 11111111111111111111111111111111* L1312 10111111111110111111101111110101* L1344 11111111101111110111111111111111* 110111* 0000  ؓɍš  ٚáء  d  ݂ɡ ݂ەݕ : X-š 0ۍۡ צRepeatfactor > 10,000 \ á 킫6ڕ škKThere is no room to copy the deletion. Do you wish to delete anyway? (y/n)תP Yá(ڕ񩁠Readingˡצ Reading file.!n  ABCDFIJLM N P Q R SVXZ,>.+-?/=<('('+   09̂GʂGȡ *    Ʉ?Í ɡ צ>Edit:V ̂GƂGƂG:ƂG&ƂGP "ˡWorkfile lost ڂ ٕ ݞ݂ ˡ !U܂Zfڡ?١ 1ۥ č%`ȡ3Fڤá ZڤġZڤZڤ؂ ĩɄ ؂ Tfګ ء6꾩 꾩 쩃áܕܕ  á  -á á@  Äە߂ũȍ, á  ߞ á7á + 꾩Í ߂  á߂߂܂܂  iZ6^ ٪Pצ what marker? -P,-V,Vȡ-,-, ,,-- -- C צBad disk tran MODE COM1:96,N,8,2,P prompt $t$h$h$h$h$h$h $n$g path a:\;b:\ B: TIME DATE sfer. $ۓMá%oˡ$#oˡ$ۓh"éȄéĄۓMá%oˡ$#oˡ$ۓt!šáǸ ބu!ޡio oٞȡ/FݤáFݤZݤZݤ܂ق.ܫǸ ބ{!ޡoo oٕٕٞȡ1FݤáFݤZݤZݤ܂.ܕۂ镫ܑ۫۞hPpġۥoەoەە "ȡTFܤåZܤĄZܤȄ-á Fܤ FܤZܤZܤە.k %á   ۂɡ.%ߡצRan out of disk roomߓÍɡɄ ڕڕ ȡ*FޤáZޤZޤڕ ڕ 0 d ,+ EDITOR INITIALIOUT COPYFILEENVIRONMPUTSYNTAEDITCOREL2 Version L.2a  á ۂɡ.%ߡRan out of disk roomߓ𩁡ńɄ٫  š2ꕞꕚꕫ D#ƁƂƁƂ   šá á  á ƁƁYB~8NP" < x  v p H . F J%ޤڕ ڕɡ š    ڶ˄Oڶ(á6ڶ(á%ڶ'áڶ'á ڤpڳ * ˡ عI٢L?٢0٢!٢ QD9, FP    ٤ؚٳ قؚ.  ȡض ض    .TEXTĄ Pצ.TEXTUPP.BACKUPV ˡd ~^򫃂  ȡn   CCP: vتP:,,š,*á.:.&--- d-.8.:l5$55(Ɓ3"ˡ FP&  ٪P&áצERROR: á<& Please press to continue. áR۾5۾á۾ ۾ á ܕeP ^ۥ   ڞڂ ˡ  !Uقčs^  á ܂áũצCan't open backup file! کɡ$Not enough room for backup! צ Copying to کˡReading Page Zero / /ȡ"F F   ˡצWriting Page Zero"ˡצBad input file.ˡCˡRan out of room."ˡצOn backup file.ققáîګ^צ>Edit:צ צImproper marker specification.  2肶##>צMarker exceeds file bounds. :蕕*צ[á$ ר  צ]ɍٲˍ.ڕ.P..P,áؕ     ە ..ȡ۲۾ .. pages worth in the buffer. צ Patterns:2צ = 'ǀ'. , = '[ǀ'šצ Markers:צ ȡצ Fá  !Fȡ <>˶Ä  Created צ; Last updated צ (Revision ȡ ۲ ۾ ..ȡ۲۾ צ.TEXT˲ȍ.˄#..P.צ.TEXTU.P.áȡHٕڂġ&Buffer overflow.  ڞڂV= ˸ "ˡ%Bad disk transfer .   ĶɄd, ڨ߶ߤ  ).r>  צ+ Environment: {options} to leaveP    Jצ Not option ~  { eU >0AT(A q"Q<   "Tv|dF  Created צ; Last updated צ (Revision ߤ Marker not there. ٲgߤزSߤá h x   ׷   ׷ U=ˡ ׷     ׷     Ƃ=ƃiצ& Copy: From what file[marker,marker]? P ƂPƂá Ƃ=Ƃ# Copy: File not present. Filename? תP"áצ CopyP  Ⓞ ڕɄ čⓄ% Ʉ .4No workfile is present. File? ( for no file ) תP P á *SYSTEM.WRK.TEXTתP   צP"ˡ System volume not on line5ˡ!צFile system terminal error?&SYSTEM.WRK.TEXTתצ*SYSTEM.WRK.CODEצצ*SYSTEM.WRK.TEXTJ צNot present. File? P"á𥁤  Í >"ˡ Disk Error.Ƃ=Ƃ=fV^x0v*  ׷   ׷ U=ˡ ׷     ׷     Ƃ=ƃiצ& Copy: From what file[marker,marker]? P ƂPƂá Ƃ=Ƃ# Copy: File not present. Filename? תP"áצ CopyP  Ⓞ ڕɄ čⓄ% Ʉ %̂GʂGʂGʂGʂGʂG ʂG ̂GʂGȡܤܚAẐGʂGȡܤAaẑGʂGȡܤA09̂GʂGȡܤA    oV F P4Rp>r@@n\ &SYSTEM.WRK.TEXTתצ*SYSTEM.WRK.CODEצצ*SYSTEM.WRK.TEXTJ צNot present. File? P"á𥁤  Í >بáNONE Äצ ChristmasÄצ New Years Äצ HalloweenJanuaryתPFebruaryתPצMarchPצAprilPצMayPצJunePJulyתPrצAugustPc SeptemberתPQOctoberתPANovemberתP0צDecemberP ~sh[K=.  צ,  l !#%DeT  ȡ,ءצTrueتP:,,š,*á.:.&--- d-.8.:l ؚ$F>Quit:תPF# U(pdate the workfile and leaveצ% E(xit (but workfile not updated)1 R(eturn to the editor without doing anything $ RáEá{šc"á=-Backup file not present (tried to remove it).צFalse0 ڳ@@צT or Fȡ TáTrue צFalse Z  # ڳɡ ڂ0   ع7-n{nnnanT-RL?  "$&(*,.C2468:<>mBFHJlWriting Cáš LPAGE+1>RPAGE*"ˡˡˡ"ˡ܂܂á̂2ʂ2ȡ,FۤġFۤFۤ򥁤ˡצThe workfile, צ, is   blocks long.š'The backup file is צWriting out the fileP |_`צNSet tabs: C(ol# {N(o R(ight L(eft D(ecimal stop} ȡIn(-.L$RD0( צColumn #   AP aCá   ?á ؕ -á ؂ á$  A(uto indent ~צ F(illing  L(eft margin jp Writing Cáš LPAGE+1>RPAGE*"ˡˡˡ"ˡ܂܂á̂2ʂ2ȡ,FۤġFۤFۤ򥁤ˡצThe workfile, צ, is   blocks long.š'The backup file is צWriting out the fileP |_`  R(ight margin   P(ara margin   C(ommand ch  S(et tabstops  T(oken def  צ bytes used,   available.צ There are  צ pages in the left stack, and  צ pages in the right stack.צ You have   pages of room,צ and at most   צEMarker overflow. Which one to replace? (Type in the letter or ) P AtצSet Pȡ٤ ؤZؤ蚥FؤةáIwI v Set: E(nvironment M(arker תP  EáMá ةˡة G~o< eXchange: TEXT { a char} [ escapes; accepts]תP ĸ š#Ķ Í "    '()؂ɡÄ؂ eš ꕞ.dšצBuffer overflow* ꕞˡꕫ؂ +  K Adjust: L(just R(just C(enter { to leave}תP  á á2š+ؾ` áS ˄? ǟō?辿á٫؞ǀ4蕀PšrL WARNING! You are about to zap more than 80 chars, do you wish to zap? (y/n)תP  Yˡ   A š 蕞 ?蕕ɡ"צNo room á   0á<>  ȩd' Tá+J ܹ-+2ڕ+%ڕ앩+5.#á+vá +d!O á +- áڕ+ڕ앩+ ˡá۫l *ȡu >á&%>á) nɄnń۶ >á&%}6T ,   to insert.  f~˄&  肫肶~Ä  Í  ڶȡ6No insertion to back over.   oڶġd5Please finish up the insertion   ڶ š Buffer Overflow!!!!  á( nɄض  M(<)8<á()+ $ .,20. 46E%l&h<á%&[#W$S'NšToo many'/,+ $* IGb`% Of Í }á1áá  Cá1á  á    /-ȡEھ á-ń ۂھM X.B V ~  á \áH Íɡd ġ ꕞ"ꕞ 삿Vá"4! á3!~ǠɄ?       Syntax Error #תP צ . Type @Ƃ ƃ7Ƃ צ*SYSTEM.SYNTAX"ˡ mȡ- ǃȡ ǜȡ ȡ Ƃ ˡ á d d   0 0 00 :  ؕ؞ق ق   پÍ پáG ؕDؕ צ . Type  á   Ƃ #%dast updated צ (Revision         á   ǀd ؂ȡ ؂ġ  ؂š!  ؂  P  ɡ          š   ˡZ-    ٕةġ-á- ؕ  ؕ ؞؞ ~٫ګ    U ؂ \   á><A&% Banish: To the L(eft or Right תP  ةةˡ Lá Rá ةˡ _ J Next: F(orwards, B(ackwards in the file; S(tart, E(nd of the file. תP  ةdةˡ Fá  cBá  TSá#š ,Eá'ɡ ةˡ =g &! CopyצH Insert: Text { a char, a line} [ accepts, escapes]P  ˡPšǀ3á ǀ }á$ȡ  á ĄÄ˄Ąۄx á  gáNȡ$ ˡܡ    á áث: B(uffer F(rom file תP  fDBá򩁡驁 ũĄצ Invalid copy.驁ġNo room{詁ĩɄ詁 詁驁詁#詁#  Fá 8 LeapingFȡ-ťF˄ /ɥF˄ 1` Jump to ׷ ٩4 (   Ʉګ ڂ٥ č9g  ^ġ)š !(š  ) <öÍ   ˄ "ń    ɡ"T b# Ȅ4 ɡá٤ ٤ צ Not there.WF٤ˡ F٤ˡMarker all messed up. Z٤  $ JUMP: B(eginning E(nd M(arker תP  Bá)EáMá ةˡة $ Zi ~ צInappropriate environmentR  áȡGaق) ٤ ášĶ "       $ń7 á    ɡ"gr% Ʉ9 á šĶ "   &<áRń/ á 肫ġ  ø ɡ"yɄ1 ɡá  7ǀ ڶo š á 8ض     á   5  zt 8   á X: Ʉ öɄ   Ʉ á ? ;     á:;11111111111110111* L0320 1111111110111111111111111111111111111011* L0360 1111111111101111111111111111111111110111* L0480 1111111111111011111111111111111111111011* L0520 1111111111111110111111111111111111110111* L0640 1111111111111111101111111111111111111011* L0680 1111111111111111111011111111111111110111* L0800 1111111111111111111110111111111111111011* L0840 1111111111111111111111101111111111110111* L0960 1111111111111111111111111011111111111011* >á87v  b á:;   6ǀ  š 5 áxAáje  ˄ ȍ  á ȥ  Ä4 H9.۪PڪP.P [ / צ]: ء% áL(itT(okz<  Replaceצ' aborts, 'R' replaces, ' ' doesn't<L1000 1111111111111111111111111110111111110111* L1120 1111111111111111111111111111101111111011* L1160 1111111111111111111111111111111011110111* L1280 1111111111111111111111111111111110111011* L1320 1111111111111111111111111111111111100111* L1440 0111111111111111111110111011101110111011* L1480 1111111111111111111111111111111111110110* V0001 XXXXXXXXXXXN1ZZZZZZZZZZN* V0002 C0000000000N0HLLLLLLLLHN* V0003 C0111111110N0HHHHHHHHHHN* V0004 C0101010100N0HLHLHLHLHHN* V0005 C0XXXXXXXX1N0HLHLHLHLHHN* V0006 C001010101á Rr˄ šYš9Buffer full. Aborting Replace  蕞ɡ 蕞[ˡ 驁詁@=̀̀  áצ Findצ =><(צ Replace V(fy =><123ʀ 4 á12̀3ʀ [4é é ȩل9١ ߂ á=<á  >éɄ<éńۡY0N0HHLHLHLHLHN* V0007 C0XXXXXXXX1N0HHLHLHLHLHN* V0008 C1000000000N0LLLLLLLLLLN* V0009 C1000100000N0LLLLLHLLLHN* V0010 C1000000010N0HHLLLLLLLLN* V0011 C1000100000N0LLLLLHLLLHN* V0012 C1X1XXX1XX0N0HXXHXXXHXHN* V0013 C11XXX1XXX0N0HXXXHXXXHHN* V0014 C1111111110N0HHHHHHHHHHN* 0000 b4End of Buffer encountered. Get more from disk? (Y/N)תP @YáAFindingתP>á    Oٓ1ń'ۡPattern not in the fileNo old pattern.  3lnrt$D_צM Edit: A(djst C(py D(lete F(ind I(nsrt J(mp R(place Q(uit X(chng Z(ap [L.2a]P  |á  á   l  dnPASCALSYSEDITOR ;COPYRIGHT (C) 1979, REGENTS OF THE UNIVERSITY OF CALIFORNIA ~|xtplh HD ˡ> b  4 @x~Jfp 4T L H _צM Edit: A(djst C(py D(lete F(ind I(nsrt J(mp R(place Q(uit X(chng Z(ap [L.2a]P  |á  á   l ȡˡˡȡ ȡ 4` x! š ɡ/ń šٮ! ݮ./    @ Delete: < > { to delete, to abort}תP   á   vK%e&a<á%&T#P$L'Gá<>",13B@[YH_ٕ /˄ ápÄ O ٕ܄ɡ 蕞 ٕٕ  ث ٕ٫ ö ݓ0á0 á*- á  ö oD1 12 Lá 1Vá 1 Tá 1 VTÍLÍ2SsV^32L(Invalid delimiter. 1á*۾ ń  čġ.צYour pattern is too long Ä 4۶ۂ۾Ä۶#.5  á,46ǀ ٶo ġ   ض á 8 ؂    á   5  zt  PAL20X10 PAL DESIGN SPECIFICATION RGS05 ALEX R. McKAY 11/24/84 RASTER GAME SYSTEM-SLAVE VIDEO WRITE DATA LATCH (HIGH) CINEMATRONICS *D2206* G0*F0* L0000 0111101110111011101111111111111111111011* L0040 1110111111111111111111111111111111110111* L0160 1111101111111111111111111111111111111011* L0200 11111110111111111111111 ˡ7!Output file error. HELP!$!$٫s .$ $ [%Fצ@Quit: U(pdate work file, E(xit without update, R(eturn to editorP'UuÍwצ*SYSTEM.WRK.TEXT$?&SYSTEM.WRK.TEXTת*SYSTEM.WRK.CODEת$$צ.  %צ!Yet Another Line Oriented Editor.5Advance Beginning Change Delete Get Insert Jump-۳( , 쾂0ǀ ō۳ $ˡ =áǼܡڑġ۳I۹   %  Unimplemented ۳ $?zx{ywusqoqnHFyFDB@:<>@BD צ5Kill List Macro Now 8Quit Read Save Unsave Verify Write eXchange ?elp%Ctrl-X (can) to cancel command input.צ The macros you have defined are:צ -  ȡ&ˡ צ - צYour text buffer is  צ bytes,  צ of which are filled, leaving  צYour 'save' text is <$ƁP* $.t|XBl  \  44 Nb2$ˡ =áǼܡڑġ۳I۹   %  Unimplemented ۳ $?zx{ywusqoqnHFyFDB@:<>@BD  צ bytes@   +   ٓáǀáǀ١álšg# %< áȡ ág@BD %ڿ Ą˄ڿ Pġšpצ/Command buffer full. Type or (^X).á  áá 0ؓÄ(צ please finish  ġ܂$;|+<  : IS IN ERROR, COMMAND STOPPED.D ȡ2 ڂɍ' ڂÍ*^ n á  ꕸɡɡؕث$ɍ ؕꕕl ɡ! ȡ " ġ 9nvɡ ؂ˡfġ!צ Find too long9؞9ؿؿڍڡ'9צ not foundɡ؂؂ث Z  ڂš@%insertion truncated, not enough spaceš'צ'save' area deleted.ڂڂڞڂڂګ ءڂá ɶɄ ōt: ȡؕؕؕꕕD ȡ ؕ ,ɶ ō# á 2 dōÍ-Error in macro definitionٞdٕ ٚقš@$á ەš ۞%צnot enough space  $$ "ˍ܍.$צnot enough spaceYš7 ނš $۞ꂫ@\ <YALOE:%צ - ? for details ڕLjڕńܓܡɡ}2 ȡ 2á0ۤá-צILLEGAL MACRO...Try again ō# ۤۤš@ܡ צ macro haltedثګ٫ܡZ  ńؿ؞$"á x$(.TEXT-"á DFile: צ is in error. Not read$File name error.؂,Z  ȡٕؕȡ1צNot enough room to save ȡ " , , $:&*צLost workfile sourceEצ Workfile .š. צread in*צNo workfile to read 23r"  $áɡ|  ؂؂؀ $ˡ5!צOutput file error: Help$؂ɡ_ꕕ $ inȡ ؞؞táS؂ڂɡڞ؞؂$צnot enough spaceh Ȅؿ؞ؾ.ؾ]˄צ.TEXTÄ(.TEXT-(ؾ.á$"áSFile: .צ is in error. Write not done.K! Illegal title؂(x ɡ 񗜳Ʉ 10111101101110111111111* L0256 01010101011111111111111111111111* L0288 10111110111111111111111111111111* L0320 11111010111111111111111111111111* L0352 11111110101111111111111111111111* L0384 11101110111111111111111111111111* L0416 01100110010111101101110111111111* L0512 01010101010111111111111111111111* L0544 10111111111011111111111111111111* L0576 11111011111011111111111111111111* L0608 11111111101011111111111111111111* 11111111111111111111111* L0544 11111111111110111111111111111111* L0768 11111111111111111111111111111111* L0800 11111111111100111111111111111111* L1024 11111111111111111111111111111111* L1056 11111011111111111111111111111111* L1280 11111111111111111111111111111111* L1312 11111111101111111111111111111111* L1536 11111111111111111111111111111111* L1568 11111111111110111111111111111111* L1792 11111111111111111111111111111111* L0640 11101111111011111111111111111111* L0672 11111110111011111111111111111111* L0704 01100110010111101101110111111111* L0768 01010101010111011111111111111111* L0800 10111111111111101111111111111111* L0832 11111011111111101111111111111111* L0864 11111111101111101111111111111111* L0896 11101111111111101111111111111111* L0928 11111110111111101111111111111111* L0960 11111111111011101111111111111111* L0992 01100110010111101101110111111111* L1024 01010101010111011101111111111111* L1056 10111111111111111110111111L1824 11111111111100111111111111111111* V0001 0X1XXXXXXNXXXXXXXXHN* V0002 1X0111XXXNXXXXXHHHLN* V0003 1X1011XXXNXXXXXHHLHN* V0004 1X1101XXXNXXXXXHLHHN* V0005 1X1111XXXNXXXXXHHHHN* V0006 1X1111XXXNXXXXXHHHHN* V0007 1X1110XXXNXXXXXHHHHN* V0008 X01XXXXXXNXXXXHXXXXN* V0009 X10111XXXNXHHHLXXXXN* V0010 X11011XXXNXHHLHXXXXN* V0011 X11101XXXNXHLHHXXXXN* V0012 X11111XXXNXHHHHXXXXN* V0013 X11111XXXNXHHHHXXXXN* V0014 X11110XXXNXHHHHXXXXN* 0000 111111* L1088 11111011111111111110111111111111* L1120 11111111101111111110111111111111* L1152 11111111111110111110111111111111* L1184 01100110010111101101110111111111* L1280 01010101010111011101110111111111* L1312 10111111111111111111111011111111* L1344 11111011111111111111111011111111* L1376 11111111101111111111111011111111* L1408 11111111111110111111111011111111* L1440 11111111111111111110111011111111* L1472 01100110010111101101110111111111* L1536 11111111111111011110110111111111* L1568 11111111111111101101110111111111* L1792 11111111111111110111011101110111* 0000  PAL16L8 PAL DESIGN SPECIFICATION RGS01 ALEX R. McKAY 02/06/84 RASTER GAME SYSTEM-MASTER MEMORY DECODER CINEMATRONICS *D2222* G0*F0* L0000 11111111111111111111111111111111* L0032 11101111011110111111111101111011* L0256 11111111111111111111111111111111* L0288 11101111111110111111101101110111* L0512 111111111 PAL16R8 PAL DESIGN SPECIFICATION RGS07 ALEX R. McKAY 11/08/84 RASTER GAME SYSTEM-HORIZONTAL COUNTER CINEMATRONICS *D2224* G0*F0* L0000 01010111011111111111111111111111* L0032 10101111111111111111111111111111* L0064 11101011111111111111111111111111* L0096 11101111101111111111111111111111* L0128 011001100 PAL16L8 PAL DESIGN SPECIFICATION RGS-2RAM JAMES M. WIDDEL 09-06-85 RASTER GAME SYSTEM - EXTRA MEMORY BOARD 2 RAM CONTROL CINEMATRONICS INC. *D2222* G0*F0* L0000 11111111111111111111111111111111* L0032 11111011111111111111111111111111* L0256 11111111111111111111111111111111* L0288 11111111101111111111111111111111* L0512 111111111 11111111111111111111111* L0544 11101111111110111111011101110111* L0768 11111111111111111111111111111111* L0800 11101111111110111111111101110111* L0832 11111011111111110111111111111111* L0864 10111111111111111111111111111111* L1024 11111111111111111111111111111111* L1056 11101111111111111111111110111011* L1280 11111111111111111111111111111111* L1312 11101111111111111111111110110111* L1536 11111111111111111111111111111111* 1N* V0008 C0XXXX010N0LHLLLHH1N* V0009 C1XXXX010N0LLLLHLL1N* V0010 C0XXXX010N0LHLLHLH1N* V0011 C0XXXX010N0LHLLHHL1N* V0012 C0XXXX010N0LHLLHHH1N* V0013 C0XXXX010N0LHLHLLL1N* V0014 C1XXXX010N0LLLHLLH1N* V0015 C1XXXX010N0LLLHLHL1N* V0016 C1XXXX010N0LLLHLHH1N* V0017 C1XXXX010N0LLLHHLL1N* V0018 C1XXXX010N0LLLHHLH1N* V0019 C0XXXX010N0LHLHHHL1N* V0020 C0XXXX010N0LHLHHHH1N* V0021 C0XXXX010N0LHHLLLL1N* V0022 C0XXXX010N0LHHLLLH1N* L1568 11101111011111111111111101111011* L1600 11111111101111111111111111111111* L1792 11111111111111111111111111111101* L1824 11101111111110111111011101110111* L1856 11101111111110111111101101110111* L1888 11111011111111110111111111111111* V0001 1XXXXXXXXNXXXHHXHHXN* V0002 XXX0XXXXXNX1LXXXXXXN* V0003 X01XXXXXXN1XXXXLXXXN* V0004 X10XX0XXXNXXXXXHXXXN* V0005 X10XX1XXXNXXXXXLXXXN* V0006 X1XXX0XXXNXXXXXHXXXN* V0007 0XXXXXX00NXXXHLXHHHN* V0008 0XXXXXX01NXXXLHXHHHN* V0009 0XX11XX10NX0LHHXHHHN* V0010 0XX10XX10NX0LHV0023 C0XXXX010N0LHHLLHL1N* V0024 C0XXXX010N0LHHLLHH1N* V0025 C0XXXX010N0LHHLHLL1N* V0026 C1XXXX010N0LLHLHLH1N* V0027 C1XXXX010N0LLHLHHL1N* V0028 C1XXXX010N0LLHLHHH1N* V0029 C0XXXX010N0LHHHLLL1N* V0030 C0XXXX010N0LHHHLLH1N* V0031 C0XXXX010N0LHHHLHL1N* V0032 C1XXXX010N0LLHHLHH1N* V0033 C1XXXX010N0LLHHHLL1N* V0034 C1XXXX010N0LLHHHLH1N* V0035 C1XXXX010N0LLHHHHL1N* V0036 C1XXXX010N0LLHHHHH1N* 0000 HXHHLN* V0011 011X0X011NXXXHHLHLHN* V0012 011X0X111NXXXHHLLHHN* V0013 XXXXXXXXXN0ZXXXXXXXN* V0014 011X0X011N1LXHHLHLHN* V0015 011X0X111N1LXHHLLHHN* 0000  PAL16R6 PAL DESIGN SPECIFICATION RGS-XOP1 JAMES M. WIDDEL 08-13-85 RASTER GAME SYSTEM - SHAFT ENCODER WITH 1 DECODE CINEMATRONICS INC. *D2224* G0*F0* L0256 11111101111111111111111111111111* L0288 11101111111111111111111111111111* L0512 11111101110111111111111111111111* L0544 11111110111011111111111111111111* L0576 111011111PALASM XPLOT, V2.19 I - M.M.I. INTERNAL RELEASE (6-FEB-1986) (C) - COPYRIGHT MONOLITHIC MEMORIES INC., 1984,1985 Title : DUAL ENCODER I/O DECODE Author : JIM WIDDEL Pattern : DSEIO.PDS Company : CINEMATRONICS INC. Revision : A Date : 10-02-86  PAL16L8 DSEIO* D2217* G0*F0* L0000 11111111111111111111111111111111* L0032 10101111011101110111011101110111* L0064 10101111011101110111011101111011* L0256 111111111111111111111111111111111111111111* L0768 11111101110111011111111111111111* L0800 11111110111111101111111111111111* L0832 11111111111011101111111111111111* L0864 11101111111111111111111111111111* L1024 11111101110111011101111111111111* L1056 11111110111111111110111111111111* L1088 11111111111011111110111111111111* L1120 11111111111111101110111111111111* L1152 11101111111111111111111111111111* L1280 11111101110111011101110111111111* 1111111111111* L0288 10101111011101110111011101111011* L0512 11111111111111111111111111111111* L0544 10101111011101110111011101110111* L0768 11111111111111111111111111111111* L0800 10101111011101110111011110110111* L1024 11111111111111111111111111111111* L1056 10111101110111011111111111111101* L1280 11111111111111111111111111111111* L1312 11101011011101110111101101110111* L1536 11111111111111111111111111111111* L1312 11111110111111111111111011111111* L1344 11111111111011111111111011111111* L1376 11111111111111101111111011111111* L1408 11111111111111111110111011111111* L1440 11101111111111111111111111111111* L1536 01111111111111111111111111111111* L1792 11111111111111111111111111111111* L1824 11111111111111111111101101111011* V0001 XXXXXXXXXN1XZZZZZZXN* V0002 XXXXXX1XXNXHXXXXXXXN* V0003 XXXXXXXX1NXHXXXXXXXN* V0004 XXXXXXX0XNXHXXXXXXXN* V0005 C0XXXX010N0LHLLLLL0N* V0006 C1XXXX010N0LLLLLLH1N* V0007 C1XXXX010N0LLLLLHL  L1568 11101011011101110111011110111011* C38D5* 0000 PALASM XPLOT, V2.19 I - M.M.I. INTERNAL RELEASE (6-FEB-1986) (C) - COPYRIGHT MONOLITHIC MEMORIES INC., 1984,1985 Title : 186 DAC I/O DECODE Author : JIM WIDDEL Pattern : 186IO.PDS Company : CINEMATRONICS Revision : A Date : 08-01-86  PAL16L8 186IO* D2217* G0*F0* L0000 11111111111111111111111111111111* L0032 11111111101110111111111111111111* L0256 11111111111111111111111111111111* L0288 11111111111111111101111111111111* L0512 11111111111111111111111111111111* L0544 11101111111111111011111111111111* L0768 11111111111111111111111111111111* L0800 11101111111111111111101111111111* L1024 11111111111111111111111111111111* L1056 10101011111111111111111111111001* L1280 11111111111111111111111111111111* L1312 11111111101011111111111111111111* L1792 11111111111111111111111111111111* L1824 11111111111111111111111110101111* PALASM XPLOT, V2.19 I - M.M.I. INTERNAL RELEASE (6-FEB-1986) (C) - COPYRIGHT MONOLITHIC MEMORIES INC., 1984,1985 Title : 186 Z80 MEMORY DECODE Author : JIM WIDDEL Pattern : 186ZMEM.PDS Company : CINEMATRONICS INC. Revision : A Date : 10-17-86  PAL16L8 186ZMEM* D2217* G0*F0* L0000 11111111111111111111111111111111* L0032 11111111101111111111101111111111* L0064 11111111001111111111011111111111* L0096 10011011101111111C36D2* 0000 011111111111111* L0256 11111111111111111111111111111111* L0288 10011011101110111011111111111111* L0320 10011011101110110111101111111111* L0352 10011011101101111111101111111111* L0384 10011011011110111111101111111111* L0416 10011011011101111011101111111111* L0512 11111111111111111111111111111111* L0544 10011011101110110111011111111111* L0576 10011011101101111111011111111111* L0608 10011011011110111011011111111111* L0768 11111111111111111111111111111111* L0800 10011111011110110111011111111111* L1024 11111111111111111111111111111111* L1056 10011111011110110111011111111111* L1088 10011111011101111011011111111111* L1792 11111111111111111111111111111111* L1824 11111110111111111111111111111111* L1856 11111111111011111111111111111111* L1888 11111011111111111110111111111111* C5737* 0000 !  PAL16L8 PAL DESIGN SPECIFICATION RGS-XMEM JAMES M. WIDDEL 08-26-85 RASTER GAME SYSTEM - EXTRA MEMORY DECODER CINEMATRONICS INC. *D2222* G0*F0* L0000 11111111111111111111111111111111* L0032 11111011111111111111011101110110* L0064 11111011111111111111011110111001* L0256 11111111111111111111111111111111* L0288 11111011111111111111011101111010* L0320 11111011111111111111011110110110* L0352 11111011111111111111011101110110* L0384 11111011111111111111011110111001* L0416 11111011111111111111011101111001* L0448 11111011111111111111011110110101* L0512 11111111111111111111111111111111* L0544 10111111111111111111110111111111* L0768 11111111111111111111111111111111* L0800 11111111111111111111011111111111* L1024 11111111111111111111111111111111*  PAL16R8 PAL DESIGN SPECIFICATION RGS11 ALEX R. McKAY 01/06/85 RASTER GAME SYSTEM-VRAM WRITE TIMING #3 CINEMATRONICS *D2224* G0*F0* L0000 01110111011101111111111111111111* L0256 10101011101101111111111111111111* L0512 10110111011101110110111101110111* L0544 10110111011111110110111111111011* L0576 10110111011111110110111110111111* L0608 10110111011101110111111001110111* L0640 10110111011111110111111011111011* L0672 10110111011111110111111010111111* L0704 01110111011011111111111111111111* L0736 10111011101011111111111111111111* L0768 01110111011111111110111111111111* L0800 01110111011111111111111011111111* L0832 10111011101111101111111111111111* L1024 01111011011111111111111111110111* L1056 01111011011111111111111101111111*  PAL16R8 PAL DESIGN SPECIFICATION RGS10 ALEX R. McKAY 01/06/84 RASTER GAME SYSTEM-VRAM WRITE TIMING #2 CINEMATRONICS *D2224* G0*F0* L0000 01110111101101111111111111111111* L0256 10101011011101111111111111111111* L0512 10110111101101110110111101110111* L0544 10110111101111110110111111111011* L0576 101101111L1088 10110111011101111110111101110111* L1120 10110111011111111110111110110111* L1152 10110111011111111110101101111011* L1184 10110111011101111111111001110111* L1216 10110111011111111111111010110111* L1248 10110111011111111111101001111011* L1280 01111011011111111111111111110111* L1312 01111011011111111111111101111111* L1344 10110111011110111110111101110111* L1376 10110111011111111110111101111011* L1408 10110111011111111110101110110111* L1440 10110111011110111111111001110111* L1472 1011011101111111111111100101111110110111110111111* L0608 10110111101101110111111001110111* L0640 10110111101111110111111011111011* L0672 10110111101111110111111010111111* L0704 01110111101011111111111111111111* L0736 10111011011011111111111111111111* L0768 01110111101111111110111111111111* L0800 01110111101111111111111011111111* L0832 10111011011111101111111111111111* L1024 01111011101111111111111111110111* L1056 01111011101111111111111101111111* 111011* L1504 10110111011111111111101010110111* L1536 10111011111111111111111111111111* L1792 01110111111111111111111111111111* 0000 L1088 10110111101101111110111101110111* L1120 10110111101111111110111110110111* L1152 10110111101111111110101101111011* L1184 10110111101101111111111001110111* L1216 10110111101111111111111010110111* L1248 10110111101111111111101001111011* L1280 01111011101111111111111111110111* L1312 01111011101111111111111101111111* L1344 10110111101110111110111101110111* L1376 10110111101111111110111101111011* L1408 10110111101111111110101110110111* L1440 10110111101110111111111001110111* L1472 10110111101111111111111001111011* L1504 10110111101111111111101010110111* L1536 10110111111111111111111111111111* L1792 01111011111111111111111111111111* 0000 " urther notice. % %The information contained herein is proprietary to TERAK CORPORATION %and must be treated as confidential. It may not be disclosed to %others or used for any purpose except as expressly consented to by %TERAK. 6COPYRIGHT 1980 BY TERAK CORPORATION ="ALL RIGHTS RESERVED"}  {Program to emulate a terminal to a 'HOST' computer system. This HOST is #typically a time-sharer using telecom, but can also be another local 11111111111111111111111* L0800 01010111011101110111101101101011* L0832 01010111011101110111101101101110* L1024 11111111111111111111111111111111* L1056 01010111011101110111011101101011* L1280 11111111111111111111111111111111* L1312 01010111011101111011111111101011* L1792 11111111111111111111111111111111* L1824 11111111111111111110111111111111* L1856 11111111111011111111111111111111* L1888 11111111111111101111111111111111* #stand-alone computer. There are four local commands: receive file, #send file, emulate terminal, and quit. The serial interface is #supported by our own handler (rather than REMOTE:) to maximize the #buffer space, minimize latency, and detect all error conditions. Also, #the console is polled, and the system disk handler runs interruptable, #all to minimize the possibility of overrun during data file reception. #The emulated terminal will be a Data Media. However, by translating #control charactL1920 11111111111111111111111011111111* L1952 11111110111111111111111111111111* V0001 XXXXXXXXXNXH1HHHHHXN* V0002 0XXXXXXXXNXH0HHHHHXN* V0003 X0XXXXXXXNXH0HHHHHXN* V0004 XX0XXXXXXNXH0HHHHHXN* V0005 XXX0XXXXXNXH0HHHHHXN* V0006 XXXX0XXXXNXH0HHHHHXN* V0007 XXXXXXXX1N1H0HHHHHXN* V0008 111111110N1L0HLHHHXN* V0009 111111111N0L0HHHHLXN* V0010 111111100N1H0HHHHHXN* V0011 111111101N0L0HHHLHXN* V0012 111111010N1L0HHLHHXN* V0013 111111011N0L0HHLHHXN* V0014 111110XX0N1L0LHHHHXN* V0015 111110XX1N0H0HHHHHXN* 0000 ers, any terminal could be emulated. Parts of TERMINAL #which are HOST dependent, are flagged by... <<<<<<<< .}  {$S+}  {$R-}  {$I-} PROGRAM TERMINAL; CONST HALFDUPLEX = FALSE; {Change to TRUE to run half duplex} QUEUESIZE = 16384; NUL = 0; BEL = 7; &BS = 8; {Non-destructive backspace} LF = 10; FF = 12; {Clear Console} &CR = 13; DLE = 16; {Preamble for space compression} DC3 = 19; {Keystroke to toggle ALPHALOCK} L1056 11111111111111111111110111111111* L1280 11111111111111111111111111111111* L1312 11101111111111111111111111111111* L1344 11111111111111111011111111111111* L1376 11111110111111111111111111111111* L1536 11111111111111111111111111111111* L1568 11111011111111111111011101110110* L1600 11111011111111111111011101111001* L1792 11111111111111111111111111111111* L1824 11111011111111111111011101110110* L1856 11111011111111111111011110111001* L1888 11111011111111111111011101111001* L1920 11111011111111111111011110110101* V0001 111XX10XXNXHHHLHHHHN* V0002 100XX1001N0HHHLHLHHN* V0003 110XX1010N1HHHLHHHHN* V0004 100XX1100N0HHHLLLHHN* V0005 110XX1110N0HHLHLHLHN* V0006 100XX1101N0HHLHLHLHN* V0007 110XX1111N0LLLHLHLLN* V0008 100XX1100N1LHLHLHLLN* V0009 110XX1110N1LLLHLHLHN* V0010 100XX1101N1LHLHLHLHN* V0011 100XX1111N1HHHLLLHHN* V0012 011XX11XXNXHHLHLHHHN* V0013 101XX00XXNXHHLHHHHHN* 0000 O^gw {TERAK CORPORATION believes that the information contained herein is %accurate. In no event will TERAK be liable for any losses or damages, %whether direct or indirect, resulting from the use of such %information, including, without limitation, losses arising from %claims of patent, copyright, and trademark infringement. No license %is granted hereby for the use of any patent or patent rights of %TERAK. TERAK reserves the right to update the information contained %herein at any time without f PAL16L8 PAL DESIGN SPECIFICATION RGS-XIO JAMES M. WIDDEL 08-13-85 RASTER GAME SYSTEM - I/0 DECODING CINEMATRONICS INC. *D2222* G0*F0* L0256 11111111111111111111111111111111* L0288 01010111011101110111011101101110* L0512 11111111111111111111111111111111* L0544 01010111011101110111011110101110* L0768 111111111# D END;   (*$IT2.TEXT*)   FUNCTION FETCH(S:STRING): INTEGER; {Read absolute memory}  VAR MEM: RECORD CASE BOOLEAN OF TRUE:(ADR: INTEGER); FALSE:(DAT: ^INTEGER) END;  BEGIN MEM.ADR:=OCTAL(S); FETCH:=MEM.DAT^; END; ) PROCEDURE PATCH(S:STRING; X:INTEGER); {Write absolute memory}  VAR MEM: RECORD CASE BOOLEAN OF TRUE:(ADR: INTEGER); FALSE:(DAT: ^INTEGER) END;  BEGIN MEM.ADR:=OCTAL(S); MEM.DAT^:=X; END;  PROCEDURE ALPHAMAP(VAR CH:CHAR);  BEGIN IF CH IN ['a'..'z'] THEN CH:=CHR(ORD(CH)-32) END;   PROCEDURE WRITECH(CH: CHAR); {Write Char to console} "BEGIN IF ORD(CH) IN [1..126,160..254] THEN BEGIN {Delete NUL, and both DELs} $REPEAT UNTIL CSLU.REG^.XCS.DUN; CSLU.REG^.XDB:=CH END END;   PROCEDURE WRITELN; {Write , to console} "BEGIN WRITECH(CHR(CR)); WRITECH(CHR(LF)) END;   PROCEDURE PROMPT(S: STRING); {Write a string to console} "VAR I:INTEGER; "BEGIN WRITECH(CHR(EOL)); FOR I:=1 TO LENGTH(S) DO WRITECH(S[I]) END;   PROCEDURE NOTICE(S:STRING);  BEGIN WRITELN; PROMPT(S); WRITELN; END;   FUNCTION READCH(VAR CH:CHAR;SYS:BOOLEAN):BOOLEAN; "{Read a char from console, if possible.}  BEGIN "IF CSLU.REG^.RCS.DUN THEN $BEGIN &CH:=CSLU.REG^.RDB; &READCH:=TRUE; &IF CH IN [' '..'~'] THEN BEGIN (IF ALPHALOCK OR SYS THEN ALPHAMAP(CH); (IF HALFDUPLEX OR SYS THEN WRITECH(CH) &END ELSE IF ORD(CH)=DC3 THEN BEGIN READCH:=FALSE; (ALPHALOCK:=NOT ALPHALOCK END (ELSE IF (ORD(CH)1 THEN RUBOUT; (DEL: WHILE I>1 DO RUBOUT; (CR: WRITELN &END; "UNTIL ORD(CH)=CR; "S[0]:=CHR(I-1); {Horse string length into correctitude}  END;   HOME = 25; {Home cursor} &EOM = 25; CNTRLZ=26; {End of file char} &EOL = 29; {Erase to end-of-line} &DEL = 127; &FOREVER = FALSE;   TYPE  RECVCS = PACKED RECORD 0JUNK: 0 .. 63; 0INT: BOOLEAN; {Interrupt enable} 0DUN: BOOLEAN; {DONE...true-> character received} 0BUNK: 0 .. 7; 0OVF: BOOLEAN; {Software flag...ring buffer overflow occured} 0OVR: BOOLEAN; {Overrun hardware error occured} 0BRK: BOOLEAN; {Continuous break detected} 0PTY: BOOLEAN; {Parity error detect FUNCTION RECVBYT(VAR C:CHAR):BOOLEAN; "{Pull a byte, if possible, from HOST handler ring buffer. " TRUE -> byte was transfered. FALSE -> nothing availble, or error}  BEGIN WITH H^ DO BEGIN "IF STATUS.ERR THEN $BEGIN RECVBYT:=FALSE; {Function false...} &ABORT:=TRUE; WRITECH(CHR(BEL));  IF STATUS.OVF THEN NOTICE('Software overrun occured'); &IF STATUS.OVR THEN NOTICE('Hardware overrun occured'); &IF STATUS.BRK THEN NOTICE('Cont''s break received'); &IF STATUS.PTY THEN NOTICE('Parity error ded} 0ERR: BOOLEAN {Inclusive OR of above four bits}  END;  XMITCS = PACKED RECORD 0BREAK: BOOLEAN; {Xmit cont's break} 0JUNK: 0 .. 31; 0INT: BOOLEAN; {Interrupt enable} 0DUN: BOOLEAN; {DONE...true-> character received} 0BUNK: 0 .. 127; 0RDY: BOOLEAN {Data terminal ready (static ready signal) }  END;  CSDB = PACKED RECORD /RCS: RECVCS; /RDB: CHAR; /JNK: CHAR; /XCS: XMITCS; /XDB: CHAR  END;  QUEUE = PACKED ARRAY [0..QUEUESIZE] OF CHAR; {Ring buffer for receiver} etected'); &CODE[-1]:=0; {Turn off all error bits} $END ELSE IF QHEAD=QTAIL THEN {Buffer is empty} RECVBYT:=FALSE ELSE &BEGIN C:=Q^[QTAIL]; RECVBYT:=TRUE; (IF QTAIL=QUEUESIZE THEN QTAIL:=0 ELSE QTAIL:=QTAIL+1 END;  END END;   PROCEDURE XMITCHR(C:CHAR); {Send character to HOST synchronously}  BEGIN REPEAT UNTIL HSLU.REG^.XCS.DUN; HSLU.REG^.XDB:=C; END;   PROCEDURE XMITSTR(S:STRING); {Send string synchrounously, no delimiters added}  VAR CURSOR:INTEGER;  HANDLER = RECORD ,QBASE: INTEGER; {Address of ring buffer} ,QHEAD: INTEGER; {Index for insertion} ,QTAIL: INTEGER; {Index for extraction} ,STATUS: RECVCS; {Status of reception} ,CODE: ARRAY [0..29] OF INTEGER *END; {Note that STATUS is addressable as CODE[-1].}  CLKHANDLER = ARRAY [0..15] OF INTEGER;   VAR $I,J,LINECNT: INTEGER; $ABORT: BOOLEAN; $CH: CHAR; $SRC,TGT,S: STRING; $ALPHALOCK: BOOLEAN; $TXTFILE: TEXT; $BINFILE: FILE; $BLKFILE: FILE; $  CSLU,  BEGIN CURSOR:=1; WHILE CURSOR<=LENGTH(S) DO "BEGIN XMITCHR(S[CURSOR]); CURSOR:=CURSOR+1; END; END;   PROCEDURE RESTART; {Call to start listening to HOST}  BEGIN WITH HSLU.REG^ DO BEGIN "RCS.INT:=FALSE; {Quit listening} "H^.QTAIL:=0; {Purge the...} "H^.QHEAD:=0; {input buffer} "H^.CODE[-1]:=0; {Reset errors} "RDB:=RDB; {Purge receiver} "RCS.INT:=TRUE; {Listen up} "{ WRITECH(CHR(FF)); } {Clear console} "XMITCHR(CHR(CR)) {Ret the HOST}  EN {CONSOLE SLU}  HSLU: {HOST SLU} 'RECORD CASE BOOLEAN OF )TRUE: (ADR: INTEGER); )FALSE:(REG: ^CSDB) 'END; $  Q: ^QUEUE; {Ring buffer for receiver}  H: ^HANDLER; {Receiver interrupt service routine, with Q pointers}  CLK: ^CLKHANDLER; {'New' line clock interrupt service routine}   FUNCTION OCTAL(S:STRING): INTEGER; {Interpret 6 digit string as integer}  VAR R,I: INTEGER;  BEGIN R:=0; I:=0; "WHILE I with each 128 char block} *PURGE; {Wait for reply before proceeding} MD := 'T' END; &'S': BEGIN SENDFILE(FALSE); CMD := 'T' END $END; "UNTIL CMD='T'; "RESTART  END;  PROCEDURE SENDBREAK;  BEGIN WITH HSLU.REG^ DO BEGIN "CLK^[14]:=14; {TIMEOUT 200 DIV 16} "RCS.INT:=FALSE; {Quit listening} "XCS.BREAK:=TRUE; {Send break} "WHILE CLK^[14]>0 DO; {for 200 ms.} "XCS.BREAK:=FALSE; "RESTART {Start listening}  END END;   BEGIN  SETUP;  PROMPT('TERMINAL V01-03... terminal emulator and file transfer utility.');  WRITELN; *TALLY; {Check-sum could be injected easily.} (END; $CLOSE(BINFILE) "END;  PROCEDURE SENDTXTFILE; "VAR REPTCNT: INTEGER; "BEGIN "{XMITCHR(CHR(2));} $REPEAT &READ(TXTFILE,CH); REPTCNT:=1; &CASE ORD(CH) OF (NUL: REPTCNT:=0; (DLE: BEGIN READ(TXTFILE,CH); REPTCNT:=ORD(CH)-32; CH:=' ' END &END; &WHILE REPTCNT>0 DO & BEGIN ( REPTCNT:=REPTCNT-1; XMITCHR(CH); WRITECH(CH); (END; &IF EOLN(TXTFILE) THEN (BEGIN *READLN(TXTFILE); *XMITCHR(CHR(CR)); XMITCHR(CHR(LF)); *WRITELN; (EN PROMPT(' Type DC3 to alphalock, ^NUL to command OR break.');  WRITELN;  REPEAT "IF READCH(CH,FALSE) THEN {Poll keyboard for anything from operator} $IF ORD(CH)=NUL THEN COMMAND &ELSE IF ORD(CH)=EOM THEN SENDBREAK (ELSE *BEGIN * XMITCHR(CH); ,IF ORD(CH) = CR THEN XMITCHR(CHR(LF)); *END; "IF RECVBYT(CH) THEN WRITECH(CH); {Poll handler for anything from HOST}  UNTIL FOREVER;  END.  D; &ABORTCHK; $UNTIL ABORT OR EOF(TXTFILE); $CLOSE(TXTFILE) "END;   BEGIN {SENDFILE} "REPEAT $PROMPT('Local source file name: '); READS(SRC); $IF LENGTH(SRC)>0 THEN &BEGIN (IF BINARYMODE THEN RESET(BINFILE,SRC) *ELSE BEGIN SRC:=CONCAT(SRC,'.TEXT'); RESET(TXTFILE,SRC) END; (IF IORESULT<>0 THEN NOTICE(CONCAT(SRC,' not found!')); &END; "UNTIL (LENGTH(SRC)=0) OR (IORESULT=0); "IF LENGTH(SRC)>0 THEN $BEGIN &(* PROMPT('Host target file name: '); READS(TGT); &IF LENGTH(TGT)>0 THEN (BEGIN *) "CSLU.ADR:=OCTAL('177560'); {SLU #0, or 8532 keyboard} "CH:=CSLU.REG^.RDB; {Purge receiver} "CSLU.REG^.RCS.INT:=FALSE; {Turn it off} "CSLU.REG^.XCS.INT:=FALSE; {Xmitter too} {Set up new clock handler, to prevent reentry when priority goes to other tasks} "NEW(CLK); { ;ENTER AT LEVEL 7} "CLK^[0] :=OCTAL('005167'); { COM 1$ ;COUNT ENTRIES} "CLK^[1] :=OCTAL('000016'); "CLK^[2] :=OCTAL('001405'); { BEQ 2$ ;SKIP IF ON} (LINECNT:=0; *(* S:=CONCAT('HERE COMES ',TGT); {Adjust to HOST. <<<<<<<< } *XMITSTR(S); *) *RESTART; {Sends to HOST} *(* PROMPT('Transmitting'); *) *PURGE; *IF BINARYMODE THEN SENDBINFILE ELSE SENDTXTFILE; *IF ABORT THEN BEGIN NOTICE('Transfer aborted'); .(* XMITCHR(CHR(NUL)) *) END {Send Abort-file character. <<<<<<<< } ,ELSE BEGIN NOTICE(CONCAT('TRANSMISSION OF ',SRC,' COMPLETE'); .(* XMITCHR(CHR(CNTRLZ)) *) END; {Send end-of-file character. <<<<<<<< } ((* END *) $END  END;   PROCED"CLK^[3] :=OCTAL('106746'); { MFPS -(SP) ;FAKE-A-INTERRUPT} "CLK^[4] :=OCTAL('106427'); { MTPS #1 ;SERVICE AT LEVEL 0} "CLK^[5] :=1; { ;INT SERV EXPECTS CARRY SET} "CLK^[6] :=OCTAL('004737'); { JSR PC, @(PC)+ ;JUMP TO IT} "CLK^[7] :=FETCH('000100'); { .WORD 0 ;Old clock vector} "CLK^[8] :=OCTAL('005127'); { 2$: COM (PC)+ ;TURN OFF FLAG} "CLK^[9] :=0; { 1$: .WORD 0} URE TAKEFILE;  CONST TIMEOUT= 180; {3 secs max wait for each char <<<<<<<<}  VAR INDEX: INTEGER; PAGE: PACKED ARRAY [0..1023] OF CHAR; " "PROCEDURE PAGEDUMP; {Null fill page buffer, and write} "BEGIN $FILLCHAR(PAGE[INDEX],1024-INDEX,0); INDEX:=0; $IF BLOCKWRITE(BLKFILE,PAGE,2) <> 2 THEN &BEGIN NOTICE('Disk output error'); ABORT:=TRUE END "END; " "PROCEDURE PULLFILE; "BEGIN $(* S:=CONCAT('PLEASE SEND ',SRC); {Adjust to HOST. <<<<<<<< } $XMITSTR(S); *) $RESTART; {Sends to HOST} "CLK^[10]:=OCTAL('005767'); { TST 3$ ;TIMER FOR LOCAL USE} "CLK^[11]:=OCTAL('000004'); "CLK^[12]:=OCTAL('001402'); { BEQ 4$} "CLK^[13]:=OCTAL('005327'); { DEC (PC)+ ;TO USE, PUT TIME INTO} "CLK^[14]:=0; { 3$: .WORD 0 ;CLK^[14]} "CLK^[15]:=OCTAL('000006'); { 4$: RTT ;AND WAIT FOR ZERO} "PATCH('000100', ORD(CLK));  {MAKE FLOPPY INTERRUPTABLE} "PATCH('000252',0); {QX controller status word}  {PRINT AN INIT$PROMPT('Receiving...'); WRITELN; PURGE; CLK^[14]:=600; $WHILE (CLK^[14]>0) AND (NOT ABORT) DO &BEGIN (IF RECVBYT(CH) THEN *BEGIN ,CLK^[14]:=TIMEOUT; {Reset timeout counter} ,IF ORD(CH)<>LF THEN {Delete all 's} .BEGIN 0PAGE[INDEX]:=CH; INDEX:=INDEX+1; WRITECH(CH); 0IF ORD(CH)=CR THEN 0 BEGIN 0 WRITECH(CHR(LF)); 0 IF INDEX>920 THEN PAGEDUMP 4END .END *END; (ABORTCHK; &END; $WRITELN; $HSLU.REG^.RCS.INT:=FALSE; $IF NOT((INDEX=0) OR ABORT) THEN PAGEDUMP "END; (  BEGIN {IAL CHARACTER TO EACH PORT} "RESTART {Turn on receiver}  END;   PROCEDURE SHUTDOWN; {Must call before leaving program to O/S}  BEGIN "HSLU.REG^.RCS.INT:=FALSE; {Host service OFF!} "PATCH('000100',CLK^[7]); {Repair line clock vector} PATCH('000252',OCTAL('000340')); {Repair QX controller vector} "CSLU.REG^.RCS.INT:=TRUE; {Turn on ...} "CSLU.REG^.XCS.INT:=TRUE; {Console service} TAKEFILE} "(* PROMPT('Host source file name: '); READS(SRC); "IF LENGTH(SRC)>0 THEN $BEGIN *) &REPEAT (PROMPT('Local target file name: '); READS(TGT); (IF LENGTH(TGT)>0 THEN *BEGIN TGT:=CONCAT(TGT,'.TEXT'); REWRITE(BLKFILE,TGT); ,IF IORESULT<>0 THEN NOTICE(CONCAT(TGT,' is illegal!')); &END; &UNTIL (IORESULT=0) OR (LENGTH(S)=0); &IF LENGTH(TGT)>0 THEN (BEGIN *INDEX:=0; LINECNT:=0; *PAGEDUMP; {Write 2 blks of nulls for EDIT compatibility} *IF NOT ABORT THEN PULLFILE; *IF ABORT THEN "EXIT(TERMINAL) {Ascend to Nirvanna}  END; "  PROCEDURE ABORTCHK;  VAR X:CHAR; BEGIN IF READCH(X,TRUE) THEN ABORT:=(ORD(X)=NUL) OR ABORT END;   PROCEDURE PURGE; {Wait for either from host, or from operator}  BEGIN (* REPEAT "REPEAT ABORTCHK UNTIL RECVBYT(CH) OR ABORT  UNTIL (ORD(CH)=LF) OR ABORT *) END;   PROCEDURE TALLY;  BEGIN WRITECH('.'); LINECNT:=LINECNT+1; IF LINECNT MOD 50=0 THEN WRITELN; END;   PROCEDURE SENDFILE(BINARYMODE: BOOLEAN);  "PROCEDU,BEGIN NOTICE('Transfer aborted'); CLOSE(TXTFILE,PURGE) END ,ELSE BEGIN NOTICE(CONCAT('transferred to ',TGT)); .CLOSE(BLKFILE,LOCK) END ((* END *) $END  END;   PROCEDURE COMMAND;  VAR CMD:CHAR;  BEGIN WRITECH(CHR(FF)); REPEAT $HSLU.REG^.RCS.INT:=FALSE; {Stop listening} $WRITECH(CHR(HOME)); $PROMPT('Terminal: S(end file, R(eceive file, T(erminal mode, Q(uit '); $REPEAT UNTIL READCH(CMD,TRUE); WRITELN; ALPHAMAP(CMD); ABORT:=FALSE; $CASE CMD OF &'Q': SHUTDOWN; &'R': BEGIN TAKEFILE; C* @áۢۢ1 ػ تP++ȡ+++T*آآ @" ةآآآآ010046آ016700آ177764آ066700آ177756آ113710آ177522آ053767آ177520آ 177752آ 100421آ 142720آ 000200آ 166L1824 11111111111100111111111111111111* V0001 0X1XXXXXXNXXXXXXXXHN* V0002 1X0111XXXNXXXXXHHHLN* V0003 1X1011XXXNXXXXXHHLHN* V0004 1X1101XXXNXXXXXHLHHN* V0005 1X1111XXXNXXXXXHHHHN* V0006 1X1111XXXNXXXXXHHHHN* V0007 1X1110XXXNXXXXXHHHHN* V0008 X01XXXXXXNXXXXHXXXXN* V0009 X10111XXXNXHHHLXXXXN* V0010 X11011XXXNXHHLHXXXXN* V0011 X11101XXXNXHLHHXXXXN* V0012 X11111XXXNXHHHHXXXXN* V0013 X11111XXXNXHHHHXXXXN* V0014 X11110XXXNXHHHHXXXXN* 0000 700آ177732آ020027آ@آ101401آ005000آ020067آ177722آ001004آ012767آ104000آ177714آ000402آ010067آ177702آ012600آ000006177520120שצ122צ200צ177560צ005167צ000016צ001405צ106746צ106427צ004737צ000100צ005127  צ005767 צ000004 צ001402 צ005327צ000006צ000100צ000252*000100ש000252צ000340N 퍫.2á퓄Ńʁȡ>́ʁȡ" @ ǀ 򥁱pSG |;  )"  9š     D צLocal source file name: Z Zšaء Z)ZZP.TEXTUPZ"ˡ#ZPצ not found![ ZÞ"ÍZšdءצTransfer aborted :צTRANSMISSION OF Z` COMPLETEi j  ٲˡצDisk output error Lצ Receiving...X퓄A 5Ǵ ˡ& á ǘš퍓g צLocal target file name: 1 1š[1̂Ƃ1PƂ.TEXTUƂP٥1"ˡ(̂Ƃ1PƂצ is illegal!\Ƃ "åÍ1ša퓡צTransfer aborted 2̂Ƃtransferred to Ƃ1_Ƃ b ;Terminal: S(end file, R(eceive file, T(erminal mode, Q(uit   TERMINAL عTT QSTáA آšآe :ƁƃƁƂƀƁՁצATERMINAL V01-03... terminal emulator and file transfer utility.צ5 Type DC3 to alphalock, ^NUL to command OR break. áá  á  ƁƁƀL J.<Z $ T x h lBb:nd file, R(eceive file, T(erminal mode, Q(uit  ڪP.--ɡ--.-0..%V8ڪP--T٪P,,ؚT &Ǡػ<  تP+,+,ȡ+++V 2تPR ^۩ڍڍ!á ړr    ڳPɡ PAL16L8 PAL DESIGN SPECIFICATION RGS-2RAM JAMES M. WIDDEL 09-06-85 RASTER GAME SYSTEM - EXTRA MEMORY BOARD 2 RAM CONTROL CINEMATRONICS INC. *D2222* G0*F0* L0000 11111111111111111111111111111111* L0032 11111011111111111111111111111111* L0256 11111111111111111111111111111111* L0288 11111111101111111111111111111111* L0512 111111111ڿ ڹš š   "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdfhjlnprtvxz|~ á U]h ۢۢ צSoftware overrun occured ۢ Hardware overrun occured ۢ צCont's break received ۢצParity error detected ۢ.á"11111111111111111111111* L0544 11111111111110111111111111111111* L0768 11111111111111111111111111111111* L0800 11111111111100111111111111111111* L1024 11111111111111111111111111111111* L1056 11111011111111111111111111111111* L1280 11111111111111111111111111111111* L1312 11111111101111111111111111111111* L1536 11111111111111111111111111111111* L1568 11111111111110111111111111111111* L1792 11111111111111111111111111111111* + V0010 C1111001XN0XXHLLHZLN* V0011 C1101001XN0XXLHHHZLN* V0012 001010011N0XXLHHHZHN* V0013 000010011N0XXLHHHZHN* C1F16* 0000 L1480 1110110111011101110111011101110111011111* V0001 C0100000001N0HLLLLLLLHXN* V0002 C1XXXXXXXX1N0HLLLLLLHL0N* V0003 C0110000001N0HLLLLLLHHXN* V0004 C1XXXXXXXX1N0HLLLLLHLL0N* V0005 C0111000001N0HLLLLLHHHXN* V0006 C1XXXXXXXX1N0HLLLLHLLL0N* V0007 C0111100001N0HLLLLHHHHXN* V0008 C1XXXXXXXX1N0HLLLHLLLL0N* V0009 C0111110001N0HLLLHHHHHXN* V0010 C1XXXXXXXX1N0HLLHLLLLL0N* V0011 C0111111001N0HLLHHHHHHXN* V0012 C1XXXXXXXX1N0HLHLLLLLL0N* V0013 C0111111101N0HLHHHHHHHXN* V0014 C1XXXXXXXX1N0HHLLLLLLL0N* V0015 C0111111111N0LHHHHHHHH0N* V0016 C1XXXXXXXX1N0HLLLLLLLL0N* V0017 C0111111111N0LHHHHHHHH0N* V0018 C0011111111N0HHHHHHHHLXN* V0019 C0101111111N0HHHHHHHLHXN* V0020 C0110111111N0HHHHHHLHHXN* V0021 C0111011111N0HHHHHLHHHXN* V0022 C0111101111N0HHHHLHHHHXN* V0023 C0111110111N0HHHLHHHHHXN* V0024 C0111111011N0HHLHHHHHHXN* V0025 C0111111101N0HLHHHHHHHXN* V0026 C0111111111N0LHHHHHHHH0N* V0027 C0XXXXXXXX0N0HLLLLLLLLXN* V0028 C1XXXXXXXX1N0HLLLLLLLH0N* V0029 C1XXXXXXXX1N0HLLLLLLHL0N* V0030 C1XXXXXXXX1N0HLLLLLLHH0N* V0031 C1XXXXXXXX1N0HLLLLLHLL0N* V0032 C1XXXXXXXX1N0HLLLLLHLH0N* V0033 C1XXXXXXXX1N0HLLLLLHHL0N* V0034 C1XXXXXXXX1N0HLLLLLHHH0N* V0035 C1XXXXXXXX1N0HLLLLHLLL0N* V0036 C1XXXXXXXX1N0HLLLLHLLH0N* V0037 C1XXXXXXXX1N0HLLLLHLHL0N* V0038 C1XXXXXXXX1N0HLLLLHLHH0N* V0039 C1XXXXXXXX1N0HLLLLHHLL0N* V0040 C0011111111N0HHHHHHHHLXN* V0041 C1XXXXXXXX1N0LHHHHHHHH0N* V0042 C1XXXXXXXX1N0HHHHHHHHH1N* V0043 C1000000000N0LHHHHHHHH0N* V0044 C1111111111N0HLLLLLLLL0N* V0045 XXXXXXXXXXXN1XZZZZZZZZXN* 0000   PAL20X8 74LS461 OCTAL COUNTER CINEMATRONICS, CA. *D2223* G0*F0* L0160 1011111111111111111111111111111111111011* L0200 0111111011111111111111111111111111111111* L0240 1011101111111111111111111111111111110111* L0280 0110111111111111111111111111111111110111* L0320 1011111111111111111111111111111111111011* L0360 0111111111101111111111111111111111111111* L0400 1011111110111111111111111111111111110111* L0440 0110110111111111111111111111111111110111* L0480 1011111111111111111111111111111111111011* L0520 0111111111111110111111111111111111111111* L0560 1011111111111011111111111111111111110111* L0600 0110110111011111111111111111111111110111* L0640 1011111111111111111111111111111111111011* PALASM XPLOT, V2.19 I - M.M.I. INTERNAL RELEASE (6-FEB-1986) (C) - COPYRIGHT MONOLITHIC MEMORIES INC., 1984,1985 Title : Bowling I/O Expander Author : Alex R. McKay Pattern : Bowlio.pds Company : Cinematronics Inc. Revision : A Date : 4-16-86  PAL16R4 BOWLIO* D2224* G0*F0* L0000 11111111111111111111111111111111* L0032 01110111111111111111111111111111* L0256 10110111111111111111110111111111* L0288 111111111111111111L0680 0111111111111111111011111111111111111111* L0720 1011111111111111101111111111111111110111* L0760 0110110111011101111111111111111111110111* L0800 1011111111111111111111111111111111111011* L0840 0111111111111111111111101111111111111111* L0880 1011111111111111111110111111111111110111* L0920 0110110111011101110111111111111111110111* L0960 1011111111111111111111111111111111111011* L1000 0111111111111111111111111110111111111111* L1040 1011111111111111111111111011111111110111* L1080 0110110111011101110111011111111111111011* L0512 11111111011110111111111111111111* L0768 11111111011111111011111111111111* L1024 11111111011111111111101111111111* L1280 11111111101111111111111111111111* V0001 X00XXXXXXN0XXXXXXZHN* V0002 X1100001XN0XXXXXXZLN* V0003 X0000001XN0XXXXXXZHN* V0004 C1110111XN0XXHHHLZLN* V0005 00110111XN0XXHHHLXHN* V0006 C1111011XN0XXHHLHZLN* V0007 00011011XN0XXHHLHZHN* V0008 C1100001XN0XXLHHHZLN* V0009 00000001XN0XXLHHHZHN* 11111111110111* L1120 1011111111111111111111111111111111111011* L1160 0111111111111111111111111111111011111111* L1200 1011111111111111111111111111101111110111* L1240 0110110111011101110111011101111111110111* L1280 1011111111111111111111111111111111111011* L1320 0111111111111111111111111111111111101111* L1360 1011111111111111111111111111111110110111* L1400 0110110111011101110111011101110111110111* L1440 1111111111111111111111111111111111111111* ,   PROCEDURE SETUP; {Call one time only} BEGIN "ALPHALOCK:=TRUE; "NEW(H); {Memory space for handler...} "NEW(Q); { and for input ring buffer.} "WITH H^ DO BEGIN  {LOAD RECEIVE HANDLER} $QBASE:=ORD(Q); $QHEAD:=0; $QTAIL:=0; $STATUS.ERR:=FALSE; ${The following text was generated by MACRO-11, and PAS2RT.} $CODE[ 0] :=OCTAL('010046'); {1$: MOV R0, -(SP) } $CODE[ 1] :=OCTAL('016700'); { MOV QHEAD, R0 } $CODE[ 2] :=OCTAL('177764'); $CODE[ 3] :=OCTAL('066700'); { ADD QBASE, R0 } $CODE["EXIT(TERMINAL) {Ascend to Nirvanna}  END; "  PROCEDURE ABORTCHK;  VAR X:CHAR; BEGIN IF READCH(X,TRUE) THEN ABORT:=(ORD(X)=NUL) OR ABORT END;   PROCEDURE PURGE; {Wait for either from host, or from operator}  BEGIN (* REPEAT "REPEAT ABORTCHK UNTIL RECVBYT(CH) OR ABORT  UNTIL (ORD(CH)=LF) OR ABORT *) END;   PROCEDURE TALLY;  BEGIN WRITECH('.'); LINECNT:=LINECNT+1; IF LINECNT MOD 50=0 THEN WRITELN; END;   PROCEDURE SENDFILE(BINARYMODE: BOOLEAN);  "PROCEDU 4] :=OCTAL('177756'); $CODE[ 5] :=OCTAL('113710'); { MOVB @#RDB, (R0) } $CODE[ 6] :=OCTAL('177522'); $CODE[ 7] :=OCTAL('053767'); { BIS @#RCS, QSTAT } $CODE[ 8] :=OCTAL('177520'); $CODE[ 9] :=OCTAL('177752'); $CODE[10] :=OCTAL('100421'); { BMI 4$ } $CODE[11] :=OCTAL('142720'); { BICB #200, (R0)+ } $CODE[12] :=OCTAL('000200'); $CODE[13] :=OCTAL('166700'); { SUB QBASE, R0 } $CODE[14] :=OCTAL('177732'); $CODE[15] :=OCTAL('020027'); { CMP R0, #QUEUESIZE } RE SENDBINFILE; { Binary file xmitter is HOST dependent. <<<<<<<< } "VAR $BUF: PACKED ARRAY [0..7] OF PACKED ARRAY [0..127] OF 0..15; "BEGIN $WHILE (BLOCKREAD(BINFILE,BUF,1) = 1) AND NOT ABORT DO &FOR I:=0 TO 7 DO (BEGIN *FOR J:=0 TO 127 DO ,BEGIN .XMITCHR(CHR(BUF[I,J]+ORD('@'))); .ABORTCHK; IF ABORT THEN BEGIN I:=10; J:=128 END; ,END; *XMITCHR(CHR(CR)); {Send a with each 128 char block} *PURGE; {Wait for reply before proceeding} $CODE[16] :=QUEUESIZE; $CODE[17] :=OCTAL('101401'); { BLOS 2$ } $CODE[18] :=OCTAL('005000'); { CLR R0 } $CODE[19] :=OCTAL('020067'); {2$: CMP R0, QTAIL } $CODE[20] :=OCTAL('177722'); $CODE[21] :=OCTAL('001004'); { BNE 3$ } $CODE[22] :=OCTAL('012767'); { MOV #^B1000100000000000, QSTAT } $CODE[23] :=OCTAL('104000'); $CODE[24] :=OCTAL('177714'); $CODE[25] :=OCTAL('000402'); { BR 4$ } $CODE[26] :=OCTAL('010067'); {3$: MOV R0, QHEAD } $CODE[27] :=OCTAL('177702'); $CODE[2*TALLY; {Check-sum could be injected easily.} (END; $CLOSE(BINFILE) "END;  PROCEDURE SENDTXTFILE; "VAR REPTCNT: INTEGER; "BEGIN $REPEAT &READ(TXTFILE,CH); REPTCNT:=1; &CASE ORD(CH) OF (NUL: REPTCNT:=0; (DLE: BEGIN READ(TXTFILE,CH); REPTCNT:=ORD(CH)-32; CH:=' ' END &END; &WHILE REPTCNT>0 DO & BEGIN ( REPTCNT:=REPTCNT-1; XMITCHR(CH); WRITECH(CH); (END; &IF EOLN(TXTFILE) THEN (BEGIN *READLN(TXTFILE); *XMITCHR(CHR(CR)); XMITCHR(CHR(LF)); *WRITELN; (END; &ABORTCHK; $UNTI8] :=OCTAL('012600'); {4$: MOV (SP)+, R0 } $CODE[29] :=OCTAL('000006'); { RTT } "END;  {SET UP HOST RECEIVER} "HSLU.ADR:=OCTAL('177520'); {SLU #1} "{REPEAT UNTIL HSLU.REG^.XCS.RDY;{Wait on ready bit} {<-- Compile iff modem dready valid} "HSLU.REG^.RCS.INT:=FALSE; {Turn off receiver}  HSLU.REG^.XCS.INT:=FALSE; {and transmitter.} {SET UP VECTOR FOR RECEIVER} "PATCH('120', ORD(H)+8); "PATCH('122', OCTAL('200'));  {Turn off all CONSOLE interrupts} L ABORT OR EOF(TXTFILE); $CLOSE(TXTFILE) "END;   BEGIN {SENDFILE} "REPEAT $PROMPT('Local source file name: '); READS(SRC); $IF LENGTH(SRC)>0 THEN &BEGIN (IF BINARYMODE THEN RESET(BINFILE,SRC) *ELSE BEGIN { SRC:=CONCAT(SRC,'.TEXT'); } RESET(TXTFILE,SRC) END; (IF IORESULT<>0 THEN NOTICE(CONCAT(SRC,' not found!')); &END; "UNTIL (LENGTH(SRC)=0) OR (IORESULT=0); "IF LENGTH(SRC)>0 THEN $BEGIN &(* PROMPT('Host target file name: '); READS(TGT); &IF LENGTH(TGT)>0 THEN (BEGIN *) (LINECNT:=0; "CSLU.ADR:=OCTAL('177560'); {SLU #0, or 8532 keyboard} "CH:=CSLU.REG^.RDB; {Purge receiver} "CSLU.REG^.RCS.INT:=FALSE; {Turn it off} "CSLU.REG^.XCS.INT:=FALSE; {Xmitter too} {Set up new clock handler, to prevent reentry when priority goes to other tasks} "NEW(CLK); { ;ENTER AT LEVEL 7} "CLK^[0] :=OCTAL('005167'); { COM 1$ ;COUNT ENTRIES} "CLK^[1] :=OCTAL('000016'); "CLK^[2] :=OCTAL('001405'); { BEQ 2$ ;SKIP IF ON} *(* S:=CONCAT('HERE COMES ',TGT); {Adjust to HOST. <<<<<<<< } *XMITSTR(S); *) *RESTART; {Sends to HOST} *(* PROMPT('Transmitting'); *) *PURGE; *IF BINARYMODE THEN SENDBINFILE ELSE SENDTXTFILE; *IF ABORT THEN BEGIN NOTICE('Transfer aborted'); .(* XMITCHR(CHR(NUL)) *) END {Send Abort-file character. <<<<<<<< } ,ELSE BEGIN { NOTICE(CONCAT(SRC,' transferred to ',TGT));} .(* XMITCHR(CHR(CNTRLZ)) *) END; {Send end-of-file character. <<<<<<<< } ((* END *) $END  END;   PROCEDURE TAKEFILE;  CON"CLK^[3] :=OCTAL('106746'); { MFPS -(SP) ;FAKE-A-INTERRUPT} "CLK^[4] :=OCTAL('106427'); { MTPS #1 ;SERVICE AT LEVEL 0} "CLK^[5] :=1; { ;INT SERV EXPECTS CARRY SET} "CLK^[6] :=OCTAL('004737'); { JSR PC, @(PC)+ ;JUMP TO IT} "CLK^[7] :=FETCH('000100'); { .WORD 0 ;Old clock vector} "CLK^[8] :=OCTAL('005127'); { 2$: COM (PC)+ ;TURN OFF FLAG} "CLK^[9] :=0; { 1$: .WORD 0} O^g"CLK^[10]:=OCTAL('005767'); { TST 3$ ;TIMER FOR LOCAL USE} "CLK^[11]:=OCTAL('000004'); "CLK^[12]:=OCTAL('001402'); { BEQ 4$} "CLK^[13]:=OCTAL('005327'); { DEC (PC)+ ;TO USE, PUT TIME INTO} "CLK^[14]:=0; { 3$: .WORD 0 ;CLK^[14]} "CLK^[15]:=OCTAL('000006'); { 4$: RTT ;AND WAIT FOR ZERO} "PATCH('000100', ORD(CLK));  {MAKE FLOPPY INTERRUPTABLE} "PATCH('000252',0); {QX controller status word}  {PRINT AN INITIAL CHARACTER TO EACH PORT} "RESTART {Turn on receiver}  END;   PROCEDURE SHUTDOWN; {Must call before leaving program to O/S}  BEGIN "HSLU.REG^.RCS.INT:=FALSE; {Host service OFF!} "PATCH('000100',CLK^[7]); {Repair line clock vector} PATCH('000252',OCTAL('000340')); {Repair QX controller vector} "CSLU.REG^.RCS.INT:=TRUE; {Turn on ...} "CSLU.REG^.XCS.INT:=TRUE; {Console service} - $PROMPT('Receiving...'); WRITELN; PURGE; CLK^[14]:=600; $WHILE (CLK^[14]>0) AND (NOT ABORT) DO &BEGIN (IF RECVBYT(CH) THEN *BEGIN ,CLK^[14]:=TIMEOUT; {Reset timeout counter} ,IF ORD(CH)<>LF THEN {Delete all 's} .BEGIN 0PAGE[INDEX]:=CH; INDEX:=INDEX+1; WRITECH(CH); 0IF ORD(CH)=CR THEN 0 BEGIN 0 WRITECH(CHR(LF)); 0 IF INDEX>920 THEN PAGEDUMP 4END .END *END; (ABORTCHK; &END; $WRITELN; $HSLU.REG^.RCS.INT:=FALSE; $IF NOT((INDEX=0) OR ABORT) THEN PAGEDUMP "END; (  BEGIN {ڿ ڹš š   "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdfhjlnprtvxz|~ á U]h ۢۢ צSoftware overrun occured ۢ Hardware overrun occured ۢ צCont's break received ۢצParity error detected ۢ.á"TAKEFILE} "(* PROMPT('Host source file name: '); READS(SRC); "IF LENGTH(SRC)>0 THEN $BEGIN *) &REPEAT (PROMPT('Local target file name: '); READS(TGT); (IF LENGTH(TGT)>0 THEN *BEGIN { TGT:=CONCAT(TGT,'.TEXT'); } REWRITE(BLKFILE,TGT); ,IF IORESULT<>0 THEN NOTICE(CONCAT(TGT,' is illegal!')); &END; &UNTIL (IORESULT=0) OR (LENGTH(S)=0); &IF LENGTH(TGT)>0 THEN (BEGIN *INDEX:=0; LINECNT:=0; *PAGEDUMP; {Write 2 blks of nulls for EDIT compatibility} *IF NOT ABORT THEN PULLFILE; *IF ABORT THEN @áۢۢ1 ػ تP++ȡ+++T*آآ @" ةآآآآ010046آ016700آ177764آ066700آ177756آ113710آ177522آ053767آ177520آ 177752آ 100421آ 142720آ 000200آ 166,BEGIN NOTICE('Transfer aborted'); CLOSE(TXTFILE,PURGE) END ,ELSE BEGIN NOTICE(CONCAT(SRC,' transferred to ',TGT)); .CLOSE(BLKFILE,LOCK) END ((* END *) $END  END;   PROCEDURE COMMAND;  VAR CMD:CHAR;  BEGIN WRITECH(CHR(FF)); REPEAT $HSLU.REG^.RCS.INT:=FALSE; {Stop listening} $WRITECH(CHR(HOME)); $PROMPT('Terminal: S(end file, R(eceive file, T(erminal mode, Q(uit '); $REPEAT UNTIL READCH(CMD,TRUE); WRITELN; ALPHAMAP(CMD); ABORT:=FALSE; $CASE CMD OF &'Q': SHUTDOWN; &'R': BEGIN TAKEFI700آ177732آ020027آ@آ101401آ005000آ020067آ177722آ001004آ012767آ104000آ177714آ000402آ010067آ177702آ012600آ000006177520120שצ122צ200צ177560צ005167צ000016צ001405צ106746LE; CMD := 'T' END; &'S': BEGIN SENDFILE(FALSE); CMD := 'T' END $END; "UNTIL CMD='T'; "RESTART  END;  PROCEDURE SENDBREAK;  BEGIN WITH HSLU.REG^ DO BEGIN "CLK^[14]:=14; {TIMEOUT 200 DIV 16} "RCS.INT:=FALSE; {Quit listening} "XCS.BREAK:=TRUE; {Send break} "WHILE CLK^[14]>0 DO; {for 200 ms.} "XCS.BREAK:=FALSE; "RESTART {Start listening}  END END;   BEGIN  SETUP;  PROMPT('TERMINAL V01-03... terminal emulator and file transfer utility.');  WRITELN; צ106427צ004737צ000100צ005127  צ005767 צ000004 צ001402 צ005327צ000006צ000100צ000252*000100ש000252צ000340N 퍫.2á퓄Ńʁȡ>́ʁȡ" @ ǀ 򥁱pSG PROMPT(' Type DC3 to alphalock, ^NUL to command, ^EOM to break.');  WRITELN;  REPEAT "IF READCH(CH,FALSE) THEN {Poll keyboard for anything from operator} $IF ORD(CH)=NUL THEN COMMAND &ELSE IF ORD(CH)=EOM THEN SENDBREAK (ELSE *BEGIN * XMITCHR(CH); ,IF ORD(CH) = CR THEN XMITCHR(CHR(LF)); *END; "IF RECVBYT(CH) THEN WRITECH(CH); {Poll handler for anything from HOST}  UNTIL FOREVER;  END.   |;  )"  9š     D צLocal source file name: Z ZšBء Z Z"ˡ#ZP not found![ ZÞ"ÍZš*ءTransfer aborted \ ٲˡצDisk output error Lצ Receiving...X퓄A 5 ˡ& á ǘš퍓g צLocal target file name: 1 1š8٥1"ˡ(̂Ƃ1PƂ is illegal!\Ƃ "åÍ1šm퓡Transfer aborted >̂ƂZPƂ transferred to `Ƃ1ǰƂ   ;Terminal: S(end file, R(eceive file, T(erminal mode, Q(uit  عTT QSTáaA آšآX TERMINAL ST TIMEOUT= 255; {4.? secs max wait for each char <<<<<<<<}  VAR INDEX: INTEGER; PAGE: PACKED ARRAY [0..1023] OF CHAR; " "PROCEDURE PAGEDUMP; {Null fill page buffer, and write} "BEGIN $FILLCHAR(PAGE[INDEX],1024-INDEX,0); INDEX:=0; $IF BLOCKWRITE(BLKFILE,PAGE,2) <> 2 THEN &BEGIN NOTICE('Disk output error'); ABORT:=TRUE END "END; " "PROCEDURE PULLFILE; "BEGIN $(* S:=CONCAT('PLEASE SEND ',SRC); {Adjust to HOST. <<<<<<<< } $XMITSTR(S); *) $RESTART; {Sends to HOST} ڪP.--ɡ--.-0..%V8ڪP--T٪P,,ؚT &Ǡػ<  تP+,+,ȡ+++V 2تPR ^۩ڍڍ!á ړr    ڳPɡ. e :ƁƃƁƂƀƁՁצATERMINAL V01-03... terminal emulator and file transfer utility.צ; Type DC3 to alphalock, ^NUL to command, ^EOM to break. áá  á  ƁƁƀ2L Pt Dt  h Vj:e, R(eceive file, T(erminal mode, Q(uit  عTT QSTáaA آšآ"CLK^[3] :=OCTAL('106746'); { MFPS -(SP) ;FAKE-A-INTERRUPT} "CLK^[4] :=OCTAL('106427'); { MTPS #1 ;SERVICE AT LEVEL 0} "CLK^[5] :=1; { ;INT SERV EXPECTS CARRY SET} "CLK^[6] :=OCTAL('004737'); { JSR PC, @(PC)+ ;JUMP TO IT} "CLK^[7] :=FETCH('000100'); { .WORD 0 ;Old clock vector} "CLK^[8] :=OCTAL('005127'); { 2$: COM (PC)+ ;TURN OFF FLAG} "CLK^[9] :=0; { 1$: .WORD 0} O^g"CLK^[10]:=OCTAL('005767'); { TST 3$ ;TIMER FOR LOCAL USE} "CLK^[11]:=OCTAL('000004'); "CLK^[12]:=OCTAL('001402'); { BEQ 4$} "CLK^[13]:=OCTAL('005327'); { DEC (PC)+ ;TO USE, PUT TIME INTO} "CLK^[14]:=0; { 3$: .WORD 0 ;CLK^[14]} "CLK^[15]:=OCTAL('000006'); { 4$: RTT ;AND WAIT FOR ZERO} "PATCH('000100', ORD(CLK));  {MAKE FLOPPY INTERRUPTABLE} "PATCH('000252',0); {QX controller status word}  {PRINT AN INITIAL CHARACTER TO EACH PORT} "RESTART {Turn on receiver}  END;   PROCEDURE SHUTDOWN; {Must call before leaving program to O/S}  BEGIN "HSLU.REG^.RCS.INT:=FALSE; {Host service OFF!} "PATCH('000100',CLK^[7]); {Repair line clock vector} PATCH('000252',OCTAL('000340')); {Repair QX controller vector} "CSLU.REG^.RCS.INT:=TRUE; {Turn on ...} "CSLU.REG^.XCS.INT:=TRUE; {Console service}   PROCEDURE SETUP; {Call one time only} BEGIN "ALPHALOCK:=TRUE; "NEW(H); {Memory space for handler...} "NEW(Q); { and for input ring buffer.} "WITH H^ DO BEGIN  {LOAD RECEIVE HANDLER} $QBASE:=ORD(Q); $QHEAD:=0; $QTAIL:=0; $STATUS.ERR:=FALSE; ${The following text was generated by MACRO-11, and PAS2RT.} $CODE[ 0] :=OCTAL('010046'); {1$: MOV R0, -(SP) } $CODE[ 1] :=OCTAL('016700'); { MOV QHEAD, R0 } $CODE[ 2] :=OCTAL('177764'); $CODE[ 3] :=OCTAL('066700'); { ADD QBASE, R0 } $CODE["EXIT(TERMINAL) {Ascend to Nirvanna}  END; "  PROCEDURE ABORTCHK;  VAR X:CHAR; BEGIN IF READCH(X,TRUE) THEN ABORT:=(ORD(X)=NUL) OR ABORT END;   PROCEDURE PURGE; {Wait for either from host, or from operator}  BEGIN (* REPEAT "REPEAT ABORTCHK UNTIL RECVBYT(CH) OR ABORT  UNTIL (ORD(CH)=LF) OR ABORT *) END;   PROCEDURE TALLY;  BEGIN WRITECH('.'); LINECNT:=LINECNT+1; IF LINECNT MOD 50=0 THEN WRITELN; END;   PROCEDURE SENDFILE(BINARYMODE: BOOLEAN);  "PROCEDU 4] :=OCTAL('177756'); $CODE[ 5] :=OCTAL('113710'); { MOVB @#RDB, (R0) } $CODE[ 6] :=OCTAL('177522'); $CODE[ 7] :=OCTAL('053767'); { BIS @#RCS, QSTAT } $CODE[ 8] :=OCTAL('177520'); $CODE[ 9] :=OCTAL('177752'); $CODE[10] :=OCTAL('100421'); { BMI 4$ } $CODE[11] :=OCTAL('142720'); { BICB #200, (R0)+ } $CODE[12] :=OCTAL('000200'); $CODE[13] :=OCTAL('166700'); { SUB QBASE, R0 } $CODE[14] :=OCTAL('177732'); $CODE[15] :=OCTAL('020027'); { CMP R0, #QUEUESIZE } RE SENDBINFILE; { Binary file xmitter is HOST dependent. <<<<<<<< } "VAR $BUF: PACKED ARRAY [0..7] OF PACKED ARRAY [0..127] OF 0..15; "BEGIN $WHILE (BLOCKREAD(BINFILE,BUF,1) = 1) AND NOT ABORT DO &FOR I:=0 TO 7 DO (BEGIN *FOR J:=0 TO 127 DO ,BEGIN .XMITCHR(CHR(BUF[I,J]+ORD('@'))); .ABORTCHK; IF ABORT THEN BEGIN I:=10; J:=128 END; ,END; *XMITCHR(CHR(CR)); {Send a with each 128 char block} *PURGE; {Wait for reply before proceeding} $CODE[16] :=QUEUESIZE; $CODE[17] :=OCTAL('101401'); { BLOS 2$ } $CODE[18] :=OCTAL('005000'); { CLR R0 } $CODE[19] :=OCTAL('020067'); {2$: CMP R0, QTAIL } $CODE[20] :=OCTAL('177722'); $CODE[21] :=OCTAL('001004'); { BNE 3$ } $CODE[22] :=OCTAL('012767'); { MOV #^B1000100000000000, QSTAT } $CODE[23] :=OCTAL('104000'); $CODE[24] :=OCTAL('177714'); $CODE[25] :=OCTAL('000402'); { BR 4$ } $CODE[26] :=OCTAL('010067'); {3$: MOV R0, QHEAD } $CODE[27] :=OCTAL('177702'); $CODE[2*TALLY; {Check-sum could be injected easily.} (END; $CLOSE(BINFILE) "END;  PROCEDURE SENDTXTFILE; "VAR REPTCNT: INTEGER; "BEGIN $REPEAT $NOTICE('GOT TO SENDTEXTFILE'); &READ(TXTFILE,CH); REPTCNT:=1; &CASE ORD(CH) OF (NUL: REPTCNT:=0; (DLE: BEGIN READ(TXTFILE,CH); REPTCNT:=ORD(CH)-32; CH:=' ' END &END; &WHILE REPTCNT>0 DO & BEGIN ( REPTCNT:=REPTCNT-1; XMITCHR(CH); WRITECH(CH); (END; &IF EOLN(TXTFILE) THEN (BEGIN *READLN(TXTFILE); *XMITCHR(CHR(CR)); XMITCHR(CHR(LF)); *W8] :=OCTAL('012600'); {4$: MOV (SP)+, R0 } $CODE[29] :=OCTAL('000006'); { RTT } "END;  {SET UP HOST RECEIVER} "HSLU.ADR:=OCTAL('177520'); {SLU #1} "{REPEAT UNTIL HSLU.REG^.XCS.RDY;{Wait on ready bit} {<-- Compile iff modem dready valid} "HSLU.REG^.RCS.INT:=FALSE; {Turn off receiver}  HSLU.REG^.XCS.INT:=FALSE; {and transmitter.} {SET UP VECTOR FOR RECEIVER} "PATCH('120', ORD(H)+8); "PATCH('122', OCTAL('200'));  {Turn off all CONSOLE interrupts} RITELN; (END; &ABORTCHK; $UNTIL ABORT OR EOF(TXTFILE); $CLOSE(TXTFILE) "END;   BEGIN {SENDFILE} "REPEAT $PROMPT('Local source file name: '); READS(SRC); $IF LENGTH(SRC)>0 THEN &BEGIN (IF BINARYMODE THEN RESET(BINFILE,SRC) *ELSE BEGIN { SRC:=CONCAT(SRC,'.TEXT'); } RESET(TXTFILE,SRC) END; (IF IORESULT<>0 THEN NOTICE(CONCAT(SRC,' not found!')); &END; "UNTIL (LENGTH(SRC)=0) OR (IORESULT=0); "IF LENGTH(SRC)>0 THEN $BEGIN &(* PROMPT('Host target file name: '); READS(TGT); "CSLU.ADR:=OCTAL('177560'); {SLU #0, or 8532 keyboard} "CH:=CSLU.REG^.RDB; {Purge receiver} "CSLU.REG^.RCS.INT:=FALSE; {Turn it off} "CSLU.REG^.XCS.INT:=FALSE; {Xmitter too} {Set up new clock handler, to prevent reentry when priority goes to other tasks} "NEW(CLK); { ;ENTER AT LEVEL 7} "CLK^[0] :=OCTAL('005167'); { COM 1$ ;COUNT ENTRIES} "CLK^[1] :=OCTAL('000016'); "CLK^[2] :=OCTAL('001405'); { BEQ 2$ ;SKIP IF ON} /  |צGOT TO SENDTEXTFILE ;  )"  9š     D צLocal source file name: Z ZšBء Z Z"ˡ#ZP not found![ ZÞ"ÍZš*ءTransfer aborted \ ٲˡצDisk output error Lצ Receiving...X퓄A 5&IF LENGTH(TGT)>0 THEN (BEGIN *) (LINECNT:=0; *(* S:=CONCAT('HERE COMES ',TGT); {Adjust to HOST. <<<<<<<< } *XMITSTR(S); *) *RESTART; {Sends to HOST} *(* PROMPT('Transmitting'); *) *PURGE; *IF BINARYMODE THEN SENDBINFILE ELSE SENDTXTFILE; *IF ABORT THEN BEGIN NOTICE('Transfer aborted'); .(* XMITCHR(CHR(NUL)) *) END {Send Abort-file character. <<<<<<<< } ,ELSE BEGIN { NOTICE(CONCAT(SRC,' transferred to ',TGT));} .(* XMITCHR(CHR(CNTRLZ)) *) END; {Send end-of-file character. <<<<<<<< } ((* Ep TERMINAL ND *) $END  END;   PROCEDURE TAKEFILE;  CONST TIMEOUT= 255; {4.? secs max wait for each char <<<<<<<<}  VAR INDEX: INTEGER; PAGE: PACKED ARRAY [0..1023] OF CHAR; " "PROCEDURE PAGEDUMP; {Null fill page buffer, and write} "BEGIN $FILLCHAR(PAGE[INDEX],1024-INDEX,0); INDEX:=0; $IF BLOCKWRITE(BLKFILE,PAGE,2) <> 2 THEN &BEGIN NOTICE('Disk output error'); ABORT:=TRUE END "END; " "PROCEDURE PULLFILE; "BEGIN $(* S:=CONCAT('PLEASE SEND ',SRC); {Adjust to HOST. <<<<<<<< } $XMITSTR(S); *) ڪP.--ɡ--.-0..%V8ڪP--T٪P,,ؚT &Ǡػ<  تP+,+,ȡ+++V 2تPR ^۩ڍڍ!á ړr    ڳPɡ$RESTART; {Sends to HOST} $PROMPT('Receiving...'); WRITELN; PURGE; CLK^[14]:=600; $WHILE (CLK^[14]>0) AND (NOT ABORT) DO &BEGIN (IF RECVBYT(CH) THEN *BEGIN ,CLK^[14]:=TIMEOUT; {Reset timeout counter} ,IF ORD(CH)<>LF THEN {Delete all 's} .BEGIN 0PAGE[INDEX]:=CH; INDEX:=INDEX+1; WRITECH(CH); 0IF ORD(CH)=CR THEN 0 BEGIN 0 WRITECH(CHR(LF)); 0 IF INDEX>920 THEN PAGEDUMP 4END .END *END; (ABORTCHK; &END; $WRITELN; $HSLU.REG^.RCS.INT:=FALSE; $IF NOT((INDEX=0) OR ABORT) Tڿ ڹš š   "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdfhjlnprtvxz|~ á U]h ۢۢ צSoftware overrun occured ۢ Hardware overrun occured ۢ צCont's break received ۢצParity error detected ۢ.á"HEN PAGEDUMP "END; (  BEGIN {TAKEFILE} "(* PROMPT('Host source file name: '); READS(SRC); "IF LENGTH(SRC)>0 THEN $BEGIN *) &REPEAT (PROMPT('Local target file name: '); READS(TGT); (IF LENGTH(TGT)>0 THEN *BEGIN { TGT:=CONCAT(TGT,'.TEXT'); } REWRITE(BLKFILE,TGT); ,IF IORESULT<>0 THEN NOTICE(CONCAT(TGT,' is illegal!')); &END; &UNTIL (IORESULT=0) OR (LENGTH(S)=0); &IF LENGTH(TGT)>0 THEN (BEGIN *INDEX:=0; LINECNT:=0; *PAGEDUMP; {Write 2 blks of nulls for EDIT compatibility} @áۢۢ1 ػ تP++ȡ+++T*آآ @" ةآآآآ010046آ016700آ177764آ066700آ177756آ113710آ177522آ053767آ177520آ 177752آ 100421آ 142720آ 000200آ 166*IF NOT ABORT THEN PULLFILE; *IF ABORT THEN ,BEGIN NOTICE('Transfer aborted'); CLOSE(TXTFILE,PURGE) END ,ELSE BEGIN NOTICE(CONCAT(SRC,' transferred to ',TGT)); .CLOSE(BLKFILE,LOCK) END ((* END *) $END  END;   PROCEDURE COMMAND;  VAR CMD:CHAR;  BEGIN WRITECH(CHR(FF)); REPEAT $HSLU.REG^.RCS.INT:=FALSE; {Stop listening} $WRITECH(CHR(HOME)); $PROMPT('Terminal: S(end file, R(eceive file, T(erminal mode, Q(uit '); $REPEAT UNTIL READCH(CMD,TRUE); WRITELN; ALPHAMAP(CMD); ABORT:=FALSE; $CASE700آ177732آ020027آ@آ101401آ005000آ020067آ177722آ001004آ012767آ104000آ177714آ000402آ010067آ177702آ012600آ000006177520120שצ122צ200צ177560צ005167צ000016צ001405צ106746 CMD OF &'Q': SHUTDOWN; &'R': BEGIN TAKEFILE; CMD := 'T' END; &'S': BEGIN SENDFILE(FALSE); CMD := 'T' END $END; "UNTIL CMD='T'; "RESTART  END;  PROCEDURE SENDBREAK;  BEGIN WITH HSLU.REG^ DO BEGIN "CLK^[14]:=14; {TIMEOUT 200 DIV 16} "RCS.INT:=FALSE; {Quit listening} "XCS.BREAK:=TRUE; {Send break} "WHILE CLK^[14]>0 DO; {for 200 ms.} "XCS.BREAK:=FALSE; "RESTART {Start listening}  END END;   BEGIN  SETUP; צ106427צ004737צ000100צ005127  צ005767 צ000004 צ001402 צ005327צ000006צ000100צ000252*000100ש000252צ000340N 퍫.2á퓄Ńʁȡ>́ʁȡ" @ ǀ 򥁱pSG PROMPT('TERMINAL V01-03... terminal emulator and file transfer utility.');  WRITELN;  PROMPT(' Type DC3 to alphalock, ^NUL to command, ^EOM to break.');  WRITELN;  REPEAT "IF READCH(CH,FALSE) THEN {Poll keyboard for anything from operator} $IF ORD(CH)=NUL THEN COMMAND &ELSE IF ORD(CH)=EOM THEN SENDBREAK (ELSE *BEGIN * XMITCHR(CH); ,IF ORD(CH) = CR THEN XMITCHR(CHR(LF)); *END; "IF RECVBYT(CH) THEN WRITECH(CH); {Poll handler for anything from HOST}  UNTIL FOREVER;  END.  0   PROCEDURE SETUP; {Call one time only} BEGIN "ALPHALOCK:=TRUE; "NEW(H); {Memory space for handler...} "NEW(Q); { and for input ring buffer.} "WITH H^ DO BEGIN  {LOAD RECEIVE HANDLER} $QBASE:=ORD(Q); $QHEAD:=0; $QTAIL:=0; $STATUS.ERR:=FALSE; ${The following text was generated by MACRO-11, and PAS2RT.} $CODE[ 0] :=OCTAL('010046'); {1$: MOV R0, -(SP) } $CODE[ 1] :=OCTAL('016700'); { MOV QHEAD, R0 } $CODE[ 2] :=OCTAL('177764'); $CODE[ 3] :=OCTAL('066700'); { ADD QBASE, R0 } $CODE[$CODE[16] :=QUEUESIZE; $CODE[17] :=OCTAL('101401'); { BLOS 2$ } $CODE[18] :=OCTAL('005000'); { CLR R0 } $CODE[19] :=OCTAL('020067'); {2$: CMP R0, QTAIL } $CODE[20] :=OCTAL('177722'); $CODE[21] :=OCTAL('001004'); { BNE 3$ } $CODE[22] :=OCTAL('012767'); { MOV #^B1000100000000000, QSTAT } $CODE[23] :=OCTAL('104000'); $CODE[24] :=OCTAL('177714'); $CODE[25] :=OCTAL('000402'); { BR 4$ } $CODE[26] :=OCTAL('010067'); {3$: MOV R0, QHEAD } $CODE[27] :=OCTAL('177702'); $CODE[2 4] :=OCTAL('177756'); $CODE[ 5] :=OCTAL('113710'); { MOVB @#RDB, (R0) } $CODE[ 6] :=OCTAL('177522'); $CODE[ 7] :=OCTAL('053767'); { BIS @#RCS, QSTAT } $CODE[ 8] :=OCTAL('177520'); $CODE[ 9] :=OCTAL('177752'); $CODE[10] :=OCTAL('100421'); { BMI 4$ } $CODE[11] :=OCTAL('142720'); { BICB #200, (R0)+ } $CODE[12] :=OCTAL('000200'); $CODE[13] :=OCTAL('166700'); { SUB QBASE, R0 } $CODE[14] :=OCTAL('177732'); $CODE[15] :=OCTAL('020027'); { CMP R0, #QUEUESIZE } 8] :=OCTAL('012600'); {4$: MOV (SP)+, R0 } $CODE[29] :=OCTAL('000006'); { RTT } "END;  {SET UP HOST RECEIVER} "HSLU.ADR:=OCTAL('177520'); {SLU #1} "{REPEAT UNTIL HSLU.REG^.XCS.RDY;{Wait on ready bit} {<-- Compile iff modem dready valid} "HSLU.REG^.RCS.INT:=FALSE; {Turn off receiver}  HSLU.REG^.XCS.INT:=FALSE; {and transmitter.} {SET UP VECTOR FOR RECEIVER} "PATCH('120', ORD(H)+8); "PATCH('122', OCTAL('200'));  {Turn off all CONSOLE interrupts}  ˡ& á ǘš퍓g צLocal target file name: 1 1š8٥1"ˡ(̂Ƃ1PƂ is illegal!\Ƃ "åÍ1šm퓡Transfer aborted >̂ƂZPƂ transferred to `Ƃ1ǰƂ   ;Terminal: S(end file, R(eceive file, T(erminal mode, Q(uit  عTT QSTáaA آ"CSLU.ADR:=OCTAL('177560'); {SLU #0, or 8532 keyboard} "CH:=CSLU.REG^.RDB; {Purge receiver} "CSLU.REG^.RCS.INT:=FALSE; {Turn it off} "CSLU.REG^.XCS.INT:=FALSE; {Xmitter too} {Set up new clock handler, to prevent reentry when priority goes to other tasks} "NEW(CLK); { ;ENTER AT LEVEL 7} "CLK^[0] :=OCTAL('005167'); { COM 1$ ;COUNT ENTRIES} "CLK^[1] :=OCTAL('000016'); "CLK^[2] :=OCTAL('001405'); { BEQ 2$ ;SKIP IF ON} šآe :ƁƃƁƂƀƁՁצATERMINAL V01-03... terminal emulator and file transfer utility.צ; Type DC3 to alphalock, ^NUL to command, ^EOM to break. áá  á  ƁƁƀ2L Pt8\  &  6n0:e, R(eceive file, T(erminal mode, Q(uit  عTT QSTáaA آ"CLK^[3] :=OCTAL('106746'); { MFPS -(SP) ;FAKE-A-INTERRUPT} "CLK^[4] :=OCTAL('106427'); { MTPS #1 ;SERVICE AT LEVEL 0} "CLK^[5] :=1; { ;INT SERV EXPECTS CARRY SET} "CLK^[6] :=OCTAL('004737'); { JSR PC, @(PC)+ ;JUMP TO IT} "CLK^[7] :=FETCH('000100'); { .WORD 0 ;Old clock vector} "CLK^[8] :=OCTAL('005127'); { 2$: COM (PC)+ ;TURN OFF FLAG} "CLK^[9] :=0; { 1$: .WORD 0} O^g"CLK^[10]:=OCTAL('005767'); { TST 3$ ;TIMER FOR LOCAL USE} "CLK^[11]:=OCTAL('000004'); "CLK^[12]:=OCTAL('001402'); { BEQ 4$} "CLK^[13]:=OCTAL('005327'); { DEC (PC)+ ;TO USE, PUT TIME INTO} "CLK^[14]:=0; { 3$: .WORD 0 ;CLK^[14]} "CLK^[15]:=OCTAL('000006'); { 4$: RTT ;AND WAIT FOR ZERO} "PATCH('000100', ORD(CLK));  {MAKE FLOPPY INTERRUPTABLE} "PATCH('000252',0); {QX controller status word}  {PRINT AN INITIAL CHARACTER TO EACH PORT} "RESTART {Turn on receiver}  END;   PROCEDURE SHUTDOWN; {Must call before leaving program to O/S}  BEGIN "HSLU.REG^.RCS.INT:=FALSE; {Host service OFF!} "PATCH('000100',CLK^[7]); {Repair line clock vector} PATCH('000252',OCTAL('000340')); {Repair QX controller vector} "CSLU.REG^.RCS.INT:=TRUE; {Turn on ...} "CSLU.REG^.XCS.INT:=TRUE; {Console service}   PROCEDURE SETUP; {Call one time only} BEGIN "ALPHALOCK:=TRUE; "NEW(H); {Memory space for handler...} "NEW(Q); { and for input ring buffer.} "WITH H^ DO BEGIN  {LOAD RECEIVE HANDLER} $QBASE:=ORD(Q); $QHEAD:=0; $QTAIL:=0; $STATUS.ERR:=FALSE; ${The following text was generated by MACRO-11, and PAS2RT.} $CODE[ 0] :=OCTAL('010046'); {1$: MOV R0, -(SP) } $CODE[ 1] :=OCTAL('016700'); { MOV QHEAD, R0 } $CODE[ 2] :=OCTAL('177764'); $CODE[ 3] :=OCTAL('066700'); { ADD QBASE, R0 } $CODE["EXIT(TERMINAL) {Ascend to Nirvanna}  END; "  PROCEDURE ABORTCHK;  VAR X:CHAR; BEGIN IF READCH(X,TRUE) THEN ABORT:=(ORD(X)=NUL) OR ABORT END;   PROCEDURE PURGE; {Wait for either from host, or from operator}  BEGIN (* REPEAT "REPEAT ABORTCHK UNTIL RECVBYT(CH) OR ABORT  UNTIL (ORD(CH)=LF) OR ABORT *) END;   PROCEDURE TALLY;  BEGIN WRITECH('.'); LINECNT:=LINECNT+1; IF LINECNT MOD 50=0 THEN WRITELN; END;   PROCEDURE SENDFILE(BINARYMODE: BOOLEAN);  "PROCEDU 4] :=OCTAL('177756'); $CODE[ 5] :=OCTAL('113710'); { MOVB @#RDB, (R0) } $CODE[ 6] :=OCTAL('177522'); $CODE[ 7] :=OCTAL('053767'); { BIS @#RCS, QSTAT } $CODE[ 8] :=OCTAL('177520'); $CODE[ 9] :=OCTAL('177752'); $CODE[10] :=OCTAL('100421'); { BMI 4$ } $CODE[11] :=OCTAL('142720'); { BICB #200, (R0)+ } $CODE[12] :=OCTAL('000200'); $CODE[13] :=OCTAL('166700'); { SUB QBASE, R0 } $CODE[14] :=OCTAL('177732'); $CODE[15] :=OCTAL('020027'); { CMP R0, #QUEUESIZE } 1 "EXIT(TERMINAL) {Ascend to Nirvanna}  END; "  PROCEDURE ABORTCHK;  VAR X:CHAR; BEGIN IF READCH(X,TRUE) THEN ABORT:=(ORD(X)=NUL) OR ABORT END;   PROCEDURE PURGE; {Wait for either from host, or from operator}  BEGIN (* REPEAT "REPEAT ABORTCHK UNTIL RECVBYT(CH) OR ABORT  UNTIL (ORD(CH)=LF) OR ABORT *) END;   PROCEDURE TALLY;  BEGIN WRITECH('.'); LINECNT:=LINECNT+1; IF LINECNT MOD 50=0 THEN WRITELN; END;   PROCEDURE SENDFILE(BINARYMODE: BOOLEAN);  "PROCEDU 4] :=OCTAL('177756'); $CODE[ 5] :=OCTAL('113710'); { MOVB @#RDB, (R0) } $CODE[ 6] :=OCTAL('177522'); $CODE[ 7] :=OCTAL('053767'); { BIS @#RCS, QSTAT } $CODE[ 8] :=OCTAL('177520'); $CODE[ 9] :=OCTAL('177752'); $CODE[10] :=OCTAL('100421'); { BMI 4$ } $CODE[11] :=OCTAL('142720'); { BICB #200, (R0)+ } $CODE[12] :=OCTAL('000200'); $CODE[13] :=OCTAL('166700'); { SUB QBASE, R0 } $CODE[14] :=OCTAL('177732'); $CODE[15] :=OCTAL('020027'); { CMP R0, #QUEUESIZE } RE SENDBINFILE; { Binary file xmitter is HOST dependent. <<<<<<<< } "VAR $BUF: PACKED ARRAY [0..7] OF PACKED ARRAY [0..127] OF 0..15; "BEGIN $WHILE (BLOCKREAD(BINFILE,BUF,1) = 1) AND NOT ABORT DO &FOR I:=0 TO 7 DO (BEGIN *FOR J:=0 TO 127 DO ,BEGIN .XMITCHR(CHR(BUF[I,J]+ORD('@'))); .ABORTCHK; IF ABORT THEN BEGIN I:=10; J:=128 END; ,END; *XMITCHR(CHR(CR)); {Send a with each 128 char block} *PURGE; {Wait for reply before proceeding} $CODE[16] :=QUEUESIZE; $CODE[17] :=OCTAL('101401'); { BLOS 2$ } $CODE[18] :=OCTAL('005000'); { CLR R0 } $CODE[19] :=OCTAL('020067'); {2$: CMP R0, QTAIL } $CODE[20] :=OCTAL('177722'); $CODE[21] :=OCTAL('001004'); { BNE 3$ } $CODE[22] :=OCTAL('012767'); { MOV #^B1000100000000000, QSTAT } $CODE[23] :=OCTAL('104000'); $CODE[24] :=OCTAL('177714'); $CODE[25] :=OCTAL('000402'); { BR 4$ } $CODE[26] :=OCTAL('010067'); {3$: MOV R0, QHEAD } $CODE[27] :=OCTAL('177702'); $CODE[2*TALLY; {Check-sum could be injected easily.} (END; $CLOSE(BINFILE) "END;  PROCEDURE SENDTXTFILE; "VAR REPTCNT: INTEGER; "BEGIN "{XMITCHR(CHR(2));} $REPEAT &READ(TXTFILE,CH); REPTCNT:=1; &CASE ORD(CH) OF (NUL: REPTCNT:=0; (DLE: BEGIN READ(TXTFILE,CH); REPTCNT:=ORD(CH)-32; CH:=' ' END &END; &WHILE REPTCNT>0 DO & BEGIN ( REPTCNT:=REPTCNT-1; XMITCHR(CH); WRITECH(CH); (END; &IF EOLN(TXTFILE) THEN (BEGIN *READLN(TXTFILE); *XMITCHR(CHR(CR)); XMITCHR(CHR(LF)); *WRITELN; (EN8] :=OCTAL('012600'); {4$: MOV (SP)+, R0 } $CODE[29] :=OCTAL('000006'); { RTT } "END;  {SET UP HOST RECEIVER} "HSLU.ADR:=OCTAL('177520'); {SLU #1} "{REPEAT UNTIL HSLU.REG^.XCS.RDY;{Wait on ready bit} {<-- Compile iff modem dready valid} "HSLU.REG^.RCS.INT:=FALSE; {Turn off receiver}  HSLU.REG^.XCS.INT:=FALSE; {and transmitter.} {SET UP VECTOR FOR RECEIVER} "PATCH('120', ORD(H)+8); "PATCH('122', OCTAL('200'));  {Turn off all CONSOLE interrupts} $CODE[16] :=QUEUESIZE; $CODE[17] :=OCTAL('101401'); { BLOS 2$ } $CODE[18] :=OCTAL('005000'); { CLR R0 } $CODE[19] :=OCTAL('020067'); {2$: CMP R0, QTAIL } $CODE[20] :=OCTAL('177722'); $CODE[21] :=OCTAL('001004'); { BNE 3$ } $CODE[22] :=OCTAL('012767'); { MOV #^B1000100000000000, QSTAT } $CODE[23] :=OCTAL('104000'); $CODE[24] :=OCTAL('177714'); $CODE[25] :=OCTAL('000402'); { BR 4$ } $CODE[26] :=OCTAL('010067'); {3$: MOV R0, QHEAD } $CODE[27] :=OCTAL('177702'); $CODE[2"CSLU.ADR:=OCTAL('177560'); {SLU #0, or 8532 keyboard} "CH:=CSLU.REG^.RDB; {Purge receiver} "CSLU.REG^.RCS.INT:=FALSE; {Turn it off} "CSLU.REG^.XCS.INT:=FALSE; {Xmitter too} {Set up new clock handler, to prevent reentry when priority goes to other tasks} "NEW(CLK); { ;ENTER AT LEVEL 7} "CLK^[0] :=OCTAL('005167'); { COM 1$ ;COUNT ENTRIES} "CLK^[1] :=OCTAL('000016'); "CLK^[2] :=OCTAL('001405'); { BEQ 2$ ;SKIP IF ON} 8] :=OCTAL('012600'); {4$: MOV (SP)+, R0 } $CODE[29] :=OCTAL('000006'); { RTT } "END;  {SET UP HOST RECEIVER} "HSLU.ADR:=OCTAL('177520'); {SLU #1} "{REPEAT UNTIL HSLU.REG^.XCS.RDY;{Wait on ready bit} {<-- Compile iff modem dready valid} "HSLU.REG^.RCS.INT:=FALSE; {Turn off receiver}  HSLU.REG^.XCS.INT:=FALSE; {and transmitter.} {SET UP VECTOR FOR RECEIVER} "PATCH('120', ORD(H)+8); "PATCH('122', OCTAL('200'));  {Turn off all CONSOLE interrupts} "CLK^[3] :=OCTAL('106746'); { MFPS -(SP) ;FAKE-A-INTERRUPT} "CLK^[4] :=OCTAL('106427'); { MTPS #1 ;SERVICE AT LEVEL 0} "CLK^[5] :=1; { ;INT SERV EXPECTS CARRY SET} "CLK^[6] :=OCTAL('004737'); { JSR PC, @(PC)+ ;JUMP TO IT} "CLK^[7] :=FETCH('000100'); { .WORD 0 ;Old clock vector} "CLK^[8] :=OCTAL('005127'); { 2$: COM (PC)+ ;TURN OFF FLAG} "CLK^[9] :=0; { 1$: .WORD 0} "CSLU.ADR:=OCTAL('177560'); {SLU #0, or 8532 keyboard} "CH:=CSLU.REG^.RDB; {Purge receiver} "CSLU.REG^.RCS.INT:=FALSE; {Turn it off} "CSLU.REG^.XCS.INT:=FALSE; {Xmitter too} {Set up new clock handler, to prevent reentry when priority goes to other tasks} "NEW(CLK); { ;ENTER AT LEVEL 7} "CLK^[0] :=OCTAL('005167'); { COM 1$ ;COUNT ENTRIES} "CLK^[1] :=OCTAL('000016'); "CLK^[2] :=OCTAL('001405'); { BEQ 2$ ;SKIP IF ON} "CLK^[10]:=OCTAL('005767'); { TST 3$ ;TIMER FOR LOCAL USE} "CLK^[11]:=OCTAL('000004'); "CLK^[12]:=OCTAL('001402'); { BEQ 4$} "CLK^[13]:=OCTAL('005327'); { DEC (PC)+ ;TO USE, PUT TIME INTO} "CLK^[14]:=0; { 3$: .WORD 0 ;CLK^[14]} "CLK^[15]:=OCTAL('000006'); { 4$: RTT ;AND WAIT FOR ZERO} "PATCH('000100', ORD(CLK));  {MAKE FLOPPY INTERRUPTABLE} "PATCH('000252',0); {QX controller status word}  {PRINT AN INIT"CLK^[3] :=OCTAL('106746'); { MFPS -(SP) ;FAKE-A-INTERRUPT} "CLK^[4] :=OCTAL('106427'); { MTPS #1 ;SERVICE AT LEVEL 0} "CLK^[5] :=1; { ;INT SERV EXPECTS CARRY SET} "CLK^[6] :=OCTAL('004737'); { JSR PC, @(PC)+ ;JUMP TO IT} "CLK^[7] :=FETCH('000100'); { .WORD 0 ;Old clock vector} "CLK^[8] :=OCTAL('005127'); { 2$: COM (PC)+ ;TURN OFF FLAG} "CLK^[9] :=0; { 1$: .WORD 0} IAL CHARACTER TO EACH PORT} "RESTART {Turn on receiver}  END;   PROCEDURE SHUTDOWN; {Must call before leaving program to O/S}  BEGIN "HSLU.REG^.RCS.INT:=FALSE; {Host service OFF!} "PATCH('000100',CLK^[7]); {Repair line clock vector} PATCH('000252',OCTAL('000340')); {Repair QX controller vector} "CSLU.REG^.RCS.INT:=TRUE; {Turn on ...} "CSLU.REG^.XCS.INT:=TRUE; {Console service}   PROCEDURE SETUP; {Call one time only} BEGIN "ALPHALOCK:=TRUE; "NEW(H); {Memory space for handler...} "NEW(Q); { and for input ring buffer.} "WITH H^ DO BEGIN  {LOAD RECEIVE HANDLER} $QBASE:=ORD(Q); $QHEAD:=0; $QTAIL:=0; $STATUS.ERR:=FALSE; ${The following text was generated by MACRO-11, and PAS2RT.} $CODE[ 0] :=OCTAL('010046'); {1$: MOV R0, -(SP) } $CODE[ 1] :=OCTAL('016700'); { MOV QHEAD, R0 } $CODE[ 2] :=OCTAL('177764'); $CODE[ 3] :=OCTAL('066700'); { ADD QBASE, R0 } $CODE[2 ڿ ڹš š   "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdfhjlnprtvxz|~ á U]h ۢۢ צSoftware overrun occured ۢ Hardware overrun occured ۢ צCont's break received ۢצParity error detected ۢ.á"TAKEFILE} "(* PROMPT('Host source file name: '); READS(SRC); "IF LENGTH(SRC)>0 THEN $BEGIN *) &REPEAT (PROMPT('Local target file name: '); READS(TGT); (IF LENGTH(TGT)>0 THEN *BEGIN TGT:=CONCAT(TGT,'.TEXT'); REWRITE(BLKFILE,TGT); ,IF IORESULT<>0 THEN NOTICE(CONCAT(TGT,' is illegal!')); &END; &UNTIL (IORESULT=0) OR (LENGTH(S)=0); &IF LENGTH(TGT)>0 THEN (BEGIN *INDEX:=0; LINECNT:=0; *PAGEDUMP; {Write 2 blks of nulls for EDIT compatibility} *IF NOT ABORT THEN PULLFILE; *IF ABORT THEN @áۢۢ1 ػ تP++ȡ+++T*آآ @" ةآآآآ010046آ016700آ177764آ066700آ177756آ113710آ177522آ053767آ177520آ 177752آ 100421آ 142720آ 000200آ 166,BEGIN NOTICE('Transfer aborted'); CLOSE(TXTFILE,PURGE) END ,ELSE BEGIN NOTICE(CONCAT('transferred to ',TGT)); .CLOSE(BLKFILE,LOCK) END ((* END *) $END  END;   PROCEDURE COMMAND;  VAR CMD:CHAR;  BEGIN WRITECH(CHR(FF)); REPEAT $HSLU.REG^.RCS.INT:=FALSE; {Stop listening} $WRITECH(CHR(HOME)); $PROMPT('Terminal: S(end file, R(eceive file, T(erminal mode, Q(uit '); $REPEAT UNTIL READCH(CMD,TRUE); WRITELN; ALPHAMAP(CMD); ABORT:=FALSE; $CASE CMD OF &'Q': SHUTDOWN; &'R': BEGIN TAKEFILE; C700آ177732آ020027آ@آ101401آ005000آ020067آ177722آ001004آ012767آ104000آ177714آ000402آ010067آ177702آ012600آ000006177520120שצ122צ200צ177560צ005167צ000016צ001405צ106746MD := 'T' END; &'S': BEGIN SENDFILE(FALSE); CMD := 'T' END $END; "UNTIL CMD='T'; "RESTART  END;  PROCEDURE SENDBREAK;  BEGIN WITH HSLU.REG^ DO BEGIN "CLK^[14]:=14; {TIMEOUT 200 DIV 16} "RCS.INT:=FALSE; {Quit listening} "XCS.BREAK:=TRUE; {Send break} "WHILE CLK^[14]>0 DO; {for 200 ms.} "XCS.BREAK:=FALSE; "RESTART {Start listening}  END END;   BEGIN  SETUP;  PROMPT('TERMINAL V01-03... terminal emulator and file transfer utility.');  WRITELN; צ106427צ004737צ000100צ005127  צ005767 צ000004 צ001402 צ005327צ000006צ000100צ000252*000100ש000252צ000340N 퍫.2á퓄Ńʁȡ>́ʁȡ" @ ǀ 򥁱pSG PROMPT(' Type DC3 to alphalock, ^NUL to command OR break.');  WRITELN;  REPEAT "IF READCH(CH,FALSE) THEN {Poll keyboard for anything from operator} $IF ORD(CH)=NUL THEN COMMAND &ELSE IF ORD(CH)=EOM THEN SENDBREAK (ELSE *BEGIN * XMITCHR(CH); ,IF ORD(CH) = CR THEN XMITCHR(CHR(LF)); *END; "IF RECVBYT(CH) THEN WRITECH(CH); {Poll handler for anything from HOST}  UNTIL FOREVER;  END.  D; &ABORTCHK; $UNTIL ABORT OR EOF(TXTFILE); $CLOSE(TXTFILE) "END;   BEGIN {SENDFILE} "REPEAT $PROMPT('Local source file name: '); READS(SRC); $IF LENGTH(SRC)>0 THEN &BEGIN (IF BINARYMODE THEN RESET(BINFILE,SRC) *ELSE BEGIN SRC:=CONCAT(SRC,'.TEXT'); RESET(TXTFILE,SRC) END; (IF IORESULT<>0 THEN NOTICE(CONCAT(SRC,' not found!')); &END; "UNTIL (LENGTH(SRC)=0) OR (IORESULT=0); "IF LENGTH(SRC)>0 THEN $BEGIN &(* PROMPT('Host target file name: '); READS(TGT); &IF LENGTH(TGT)>0 THEN (BEGIN *) (LINECNT:=0; *(* S:=CONCAT('HERE COMES ',TGT); {Adjust to HOST. <<<<<<<< } *XMITSTR(S); *) *RESTART; {Sends to HOST} *(* PROMPT('Transmitting'); *) *PURGE; *IF BINARYMODE THEN SENDBINFILE ELSE SENDTXTFILE; *IF ABORT THEN BEGIN NOTICE('Transfer aborted'); .(* XMITCHR(CHR(NUL)) *) END {Send Abort-file character. <<<<<<<< } ,ELSE BEGIN NOTICE('TRANSMISSION COMPLETE'); .(* XMITCHR(CHR(CNTRLZ)) *) END; {Send end-of-file character. <<<<<<<< } ((* END *) $END  END;   PROCEDURE TAKEFILE;  CO TERMINAL NST TIMEOUT= 180; {3 secs max wait for each char <<<<<<<<}  VAR INDEX: INTEGER; PAGE: PACKED ARRAY [0..1023] OF CHAR; " "PROCEDURE PAGEDUMP; {Null fill page buffer, and write} "BEGIN $FILLCHAR(PAGE[INDEX],1024-INDEX,0); INDEX:=0; $IF BLOCKWRITE(BLKFILE,PAGE,2) <> 2 THEN &BEGIN NOTICE('Disk output error'); ABORT:=TRUE END "END; " "PROCEDURE PULLFILE; "BEGIN $(* S:=CONCAT('PLEASE SEND ',SRC); {Adjust to HOST. <<<<<<<< } $XMITSTR(S); *) $RESTART; {Sends to HOST} ڪP.--ɡ--.-0..%V8ڪP--T٪P,,ؚT &Ǡػ<  تP+,+,ȡ+++V 2تPR ^۩ڍڍ!á ړr    ڳPɡ$PROMPT('Receiving...'); WRITELN; PURGE; CLK^[14]:=600; $WHILE (CLK^[14]>0) AND (NOT ABORT) DO &BEGIN (IF RECVBYT(CH) THEN *BEGIN ,CLK^[14]:=TIMEOUT; {Reset timeout counter} ,IF ORD(CH)<>LF THEN {Delete all 's} .BEGIN 0PAGE[INDEX]:=CH; INDEX:=INDEX+1; WRITECH(CH); 0IF ORD(CH)=CR THEN 0 BEGIN 0 WRITECH(CHR(LF)); 0 IF INDEX>920 THEN PAGEDUMP 4END .END *END; (ABORTCHK; &END; $WRITELN; $HSLU.REG^.RCS.INT:=FALSE; $IF NOT((INDEX=0) OR ABORT) THEN PAGEDUMP "END; (  BEGIN {3  PAL16R8 PAL DESIGN SPECIFICATION RGS11 ALEX R. McKAY 01/06/85 RASTER GAME SYSTEM-VRAM WRITE TIMING #3 CINEMATRONICS *D2224* G0*F0* L0000 01110111011101111111111111111111* L0256 10101011101101111111111111111111* L0512 10110111011101110110111101110111* L0544 10110111011111110110111111111011* L0576 10110111011111110110111110111111* L0608 10110111011101110111111001110111* L0640 10110111011111110111111011111011* L0672 10110111011111110111111010111111* L0704 01110111011011111111111111111111* L0736 10111011101011111111111111111111* L0768 01110111011111111110111111111111* L0800 01110111011111111111111011111111* L0832 10111011101111101111111111111111* L1024 01111011011111111111111111110111* L1056 01111011011111111111111101111111*  PAL16R8 PAL DESIGN SPECIFICATION RGS10 ALEX R. McKAY 01/06/84 RASTER GAME SYSTEM-VRAM WRITE TIMING #2 CINEMATRONICS *D2224* G0*F0* L0000 01110111101101111111111111111111* L0256 10101011011101111111111111111111* L0512 10110111101101110110111101110111* L0544 10110111101111110110111111111011* L0576 101101111L1088 10110111011101111110111101110111* L1120 10110111011111111110111110110111* L1152 10110111011111111110101101111011* L1184 10110111011101111111111001110111* L1216 10110111011111111111111010110111* L1248 10110111011111111111101001111011* L1280 01111011011111111111111111110111* L1312 01111011011111111111111101111111* L1344 10110111011110111110111101110111* L1376 10110111011111111110111101111011* L1408 10110111011111111110101110110111* L1440 10110111011110111111111001110111* L1472 1011011101111111111111100101111110110111110111111* L0608 10110111101101110111111001110111* L0640 10110111101111110111111011111011* L0672 10110111101111110111111010111111* L0704 01110111101011111111111111111111* L0736 10111011011011111111111111111111* L0768 01110111101111111110111111111111* L0800 01110111101111111111111011111111* L0832 10111011011111101111111111111111* L1024 01111011101111111111111111110111* L1056 01111011101111111111111101111111* 111011* L1504 10110111011111111111101010110111* L1536 10111011111111111111111111111111* L1792 01110111111111111111111111111111* 0000 L1088 10110111101101111110111101110111* L1120 10110111101111111110111110110111* L1152 10110111101111111110101101111011* L1184 10110111101101111111111001110111* L1216 10110111101111111111111010110111* L1248 10110111101111111111101001111011* L1280 01111011101111111111111111110111* L1312 01111011101111111111111101111111* L1344 10110111101110111110111101110111* L1376 10110111101111111110111101111011* L1408 10110111101111111110101110110111* L1440 10110111101110111111111001110111* L1472 10110111101111111111111001 |;  )"  9š     D צLocal source file name: Z Zšaء Z)ZZP.TEXTUPZ"ˡ#ZPצ not found![ ZÞ"ÍZš?ءצTransfer aborted FILE transferred \ ٲˡצDisk output error Lצ Receiving...111011* L1504 10110111101111111111101010110111* L1536 10110111111111111111111111111111* L1792 01111011111111111111111111111111* 0000 X퓄A 5 ˡ& á ǘš퍓g צLocal target file name: 1 1š[1̂Ƃ1PƂ.TEXTUƂP٥1"ˡ(̂Ƃ1PƂצ is illegal!\Ƃ "åÍ1šb퓡צTransfer aborted 3̂Ƃ transferred to Ƃ1`Ƃ 1d  ;Terminal: S(end file, R(eceive file, T(erminal mode, Q(uit  عTT QSTáA آšآe :ƁƃƁƂƀƁՁצATERMINAL V01-03... terminal emulator and file transfer utility.צ5 Type DC3 to alphalock, ^NUL to command OR break. áá  á  ƁƁƀL Jf 6 0 T D Hd>^:nd file, R(eceive file, T(erminal mode, Q(uit  عTT QS4  PAL16L8 PAL DESIGN SPECIFICATION RGS-XMEM JAMES M. WIDDEL 08-26-85 RASTER GAME SYSTEM - EXTRA MEMORY DECODER CINEMATRONICS INC. *D2222* G0*F0* L0000 11111111111111111111111111111111* L0032 11111011111111111111011101110110* L0064 11111011111111111111011110111001* L0256 11111111111111111111111111111111* L0288 111110111 PAL16L8 PAL DESIGN SPECIFICATION RGS-XIO JAMES M. WIDDEL 08-13-85 RASTER GAME SYSTEM - I/0 DECODING CINEMATRONICS INC. *D2222* G0*F0* L0256 11111111111111111111111111111111* L0288 01010111011101110111011101101110* L0512 11111111111111111111111111111111* L0544 01010111011101110111011110101110* L0768 11111111111111111111011101111010* L0320 11111011111111111111011110110110* L0352 11111011111111111111011101110110* L0384 11111011111111111111011110111001* L0416 11111011111111111111011101111001* L0448 11111011111111111111011110110101* L0512 11111111111111111111111111111111* L0544 10111111111111111111110111111111* L0768 11111111111111111111111111111111* L0800 11111111111111111111011111111111* L1024 11111111111111111111111111111111* 11111111111111111111111* L0800 01010111011101110111101101101011* L0832 01010111011101110111101101101110* L1024 11111111111111111111111111111111* L1056 01010111011101110111011101101011* L1280 11111111111111111111111111111111* L1312 01010111011101111011111111101011* L1792 11111111111111111111111111111111* L1824 11111111111111111110111111111111* L1856 11111111111011111111111111111111* L1888 11111111111111101111111111111111* L1056 11111111111111111111110111111111* L1280 11111111111111111111111111111111* L1312 11101111111111111111111111111111* L1344 11111111111111111011111111111111* L1376 11111110111111111111111111111111* L1536 11111111111111111111111111111111* L1568 11111011111111111111011101110110* L1600 11111011111111111111011101111001* L1792 11111111111111111111111111111111* L1824 11111011111111111111011101110110* L1856 11111011111111111111011110111001* L1888 11111011111111111111011101111001* L1920 11111011111111111111011110L1920 11111111111111111111111011111111* L1952 11111110111111111111111111111111* V0001 XXXXXXXXXNXH1HHHHHXN* V0002 0XXXXXXXXNXH0HHHHHXN* V0003 X0XXXXXXXNXH0HHHHHXN* V0004 XX0XXXXXXNXH0HHHHHXN* V0005 XXX0XXXXXNXH0HHHHHXN* V0006 XXXX0XXXXNXH0HHHHHXN* V0007 XXXXXXXX1N1H0HHHHHXN* V0008 111111110N1L0HLHHHXN* V0009 111111111N0L0HHHHLXN* V0010 111111100N1H0HHHHHXN* V0011 111111101N0L0HHHLHXN* V0012 111111010N1L0HHLHHXN* V0013 111111011N0L0HHLHHXN* V0014 111110XX0N1L0LHHHHXN* V0015 111110XX1N0H0HHHHHXN* 0000 110101* V0001 111XX10XXNXHHHLHHHHN* V0002 100XX1001N0HHHLHLHHN* V0003 110XX1010N1HHHLHHHHN* V0004 100XX1100N0HHHLLLHHN* V0005 110XX1110N0HHLHLHLHN* V0006 100XX1101N0HHLHLHLHN* V0007 110XX1111N0LLLHLHLLN* V0008 100XX1100N1LHLHLHLLN* V0009 110XX1110N1LLLHLHLHN* V0010 100XX1101N1LHLHLHLHN* V0011 100XX1111N1HHHLLLHHN* V0012 011XX11XXNXHHLHLHHHN* V0013 101XX00XXNXHHLHHHHHN* 0000 5 11111111111110111* L0320 1011111111111111111111111111111111111011* L0360 0111111111101111111111111111111111111111* L0400 1011111110111111111111111111111111110111* L0440 0110110111111111111111111111111111110111* L0480 1011111111111111111111111111111111111011* L0520 0111111111111110111111111111111111111111* L0560 1011111111111011111111111111111111110111* L0600 0110110111011111111111111111111111110111* L0640 1011111111111111111111111111111111111011*  PAL16L8 PAL DESIGN SPECIFICATION RGS-2RAM JAMES M. WIDDEL 09-06-85 RASTER GAME SYSTEM - EXTRA MEMORY BOARD 2 RAM CONTROL CINEMATRONICS INC. *D2222* G0*F0* L0000 11111111111111111111111111111111* L0032 11111011111111111111111111111111* L0256 11111111111111111111111111111111* L0288 11111111101111111111111111111111* L0512 111111111L0680 0111111111111111111011111111111111111111* L0720 1011111111111111101111111111111111110111* L0760 0110110111011101111111111111111111110111* L0800 1011111111111111111111111111111111111011* L0840 0111111111111111111111101111111111111111* L0880 1011111111111111111110111111111111110111* L0920 0110110111011101110111111111111111110111* L0960 1011111111111111111111111111111111111011* L1000 0111111111111111111111111110111111111111* L1040 1011111111111111111111111011111111110111* L1080 0110110111011101110111011111111111111111111111111* L0544 11111111111110111111111111111111* L0768 11111111111111111111111111111111* L0800 11111111111100111111111111111111* L1024 11111111111111111111111111111111* L1056 11111011111111111111111111111111* L1280 11111111111111111111111111111111* L1312 11111111101111111111111111111111* L1536 11111111111111111111111111111111* L1568 11111111111110111111111111111111* L1792 11111111111111111111111111111111* 11111111110111* L1120 1011111111111111111111111111111111111011* L1160 0111111111111111111111111111111011111111* L1200 1011111111111111111111111111101111110111* L1240 0110110111011101110111011101111111110111* L1280 1011111111111111111111111111111111111011* L1320 0111111111111111111111111111111111101111* L1360 1011111111111111111111111111111110110111* L1400 0110110111011101110111011101110111110111* L1440 1111111111111111111111111111111111111111* L1824 11111111111100111111111111111111* V0001 0X1XXXXXXNXXXXXXXXHN* V0002 1X0111XXXNXXXXXHHHLN* V0003 1X1011XXXNXXXXXHHLHN* V0004 1X1101XXXNXXXXXHLHHN* V0005 1X1111XXXNXXXXXHHHHN* V0006 1X1111XXXNXXXXXHHHHN* V0007 1X1110XXXNXXXXXHHHHN* V0008 X01XXXXXXNXXXXHXXXXN* V0009 X10111XXXNXHHHLXXXXN* V0010 X11011XXXNXHHLHXXXXN* V0011 X11101XXXNXHLHHXXXXN* V0012 X11111XXXNXHHHHXXXXN* V0013 X11111XXXNXHHHHXXXXN* V0014 X11110XXXNXHHHHXXXXN* 0000 L1480 1110110111011101110111011101110111011111* V0001 C0100000001N0HLLLLLLLHXN* V0002 C1XXXXXXXX1N0HLLLLLLHL0N* V0003 C0110000001N0HLLLLLLHHXN* V0004 C1XXXXXXXX1N0HLLLLLHLL0N* V0005 C0111000001N0HLLLLLHHHXN* V0006 C1XXXXXXXX1N0HLLLLHLLL0N* V0007 C0111100001N0HLLLLHHHHXN* V0008 C1XXXXXXXX1N0HLLLHLLLL0N* V0009 C0111110001N0HLLLHHHHHXN* V0010 C1XXXXXXXX1N0HLLHLLLLL0N* V0011 C0111111001N0HLLHHHHHHXN* V0012 C1XXXXXXXX1N0HLHLLLLLL0N* V0013 C0111111101N0HLHHHHHHHXN* V0014 C1XXXXXXXX1N0HHLLLLLLL0N* V0015 C0111111111N0LHHHHHHHH0N* V0016 C1XXXXXXXX1N0HLLLLLLLL0N* V0017 C0111111111N0LHHHHHHHH0N* V0018 C0011111111N0HHHHHHHHLXN* V0019 C0101111111N0HHHHHHHLHXN* V0020 C0110111111N0HHHHHHLHHXN* V0021 C0111011111N0HHHHHLHHHXN* V0022 C0111101111N0HHHHLHHHHXN* V0023 C0111110111N0HHHLHHHHHXN* V0024 C0111111011N0HHLHHHHHHXN* V0025 C0111111101N0HLHHHHHHHXN* V0026 C0111111111N0LHHHHHHHH0N* V0027 C0XXXXXXXX0N0HLLLLLLLLXN* V0028 C1XXXXXXXX1N0HLLLLLLLH0N* V0029 C1XXXXXXXX1N0HLLLLLLHL0N* V0030 C1XXXXXXXX1N0HLLLLLLHH0N* V0031 C1XXXXXXXX1N0HLLLLLHLL0N* V0032 C1XXXXXXXX1N0HLLLLLHLH0N* V0033 C1XXXXXXXX1N0HLLLLLHHL0N* V0034 C1XXXXXXXX1N0HLLLLLHHH0N* V0035 C1XXXXXXXX1N0HLLLLHLLL0N* V0036 C1XXXXXXXX1N0HLLLLHLLH0N* V0037 C1XXXXXXXX1N0HLLLLHLHL0N* V0038 C1XXXXXXXX1N0HLLLLHLHH0N* V0039 C1XXXXXXXX1N0HLLLLHHLL0N* V0040 C0011111111N0HHHHHHHHLXN* V0041 C1XXXXXXXX1N0LHHHHHHHH0N* V0042 C1XXXXXXXX1N0HHHHHHHHH1N* V0043 C1000000000N0LHHHHHHHH0N* V0044 C1111111111N0HLLLLLLLL0N* V0045 XXXXXXXXXXXN1XZZZZZZZZXN* 0000   PAL20X8 74LS461 OCTAL COUNTER CINEMATRONICS, CA. *D2223* G0*F0* L0160 1011111111111111111111111111111111111011* L0200 0111111011111111111111111111111111111111* L0240 1011101111111111111111111111111111110111* L0280 011011111111111111111116 צ106427צ004737צ000100צ005127  צ005767 צ000004 צ001402 צ005327צ000006צ000100צ000252*000100ש000252צ000340N 퍫.2á퓄Ńʁȡ>́ʁȡ" @ ǀ 򥁱pSG |;  )"  9š  צ END OF LINE    1R צLocal source file name: Z ZšBء Z Z"ˡ#ZP not found![ ZÞ"ÍZš?ءTransfer aborted צFILE transferred 0\  ٲˡצDisk output error Lצ Receiving...XA 5 ˡ& á ǘš퍓g צLocal target file name: 1 1š8٥1"ˡ(̂Ƃ1PƂ is illegal!\Ƃ "åÍ1šm퓡Transfer aborted >̂ƂZPƂ transferred to `Ƃ1ǰƂ   ;Terminal: S(end file, R(eceive file, T(erminal mode, Q(uit  عTT QSTáaA PALASM XPLOT, V2.19 I - M.M.I. INTERNAL RELEASE (6-FEB-1986) (C) - COPYRIGHT MONOLITHIC MEMORIES INC., 1984,1985 Title : 186 DMA LOGIC Author : JIM WIDDEL Pattern : 186DMA.PDS Company : CINEMATRONICS Revision : A Date : 08-01-86  PAL16R4 186DMA* D2224* G0*F0* L0000 11111111111111111111111111111111* L0032 11111111111110111111111111111011* L0256 11111111111111111111111111111111* L0288 111111110111111111آšآe :ƁƃƁƂƀƁՁצATERMINAL V01-03... terminal emulator and file transfer utility.צ; Type DC3 to alphalock, ^NUL to command, ^EOM to break. áá  á  ƁƁƀ2L PtDh  2 " &Bz<:e, R(eceive file, T(erminal mode, Q(uit  عTT QSTáaA 11111111111111* L0512 01111111111111111111111111111110* L0544 01111111111011111111111111111111* L0768 11110111111111111111111111101111* L0800 11110111111111101111111111111111* L1024 11111111111111111101111111111111* L1280 11101111111111111111111111111111* L1536 11111111111111111111111111111111* L1568 11111111101111111011011110111111* L1792 11111111111111111111111111111111* L1824 11111111101111111011101110111111* O^gC360D* 0000   PROCEDURE SETUP; {Call one time only} BEGIN "ALPHALOCK:=TRUE; "NEW(H); {Memory space for handler...} "NEW(Q); { and for input ring buffer.} "WITH H^ DO BEGIN  {LOAD RECEIVE HANDLER} $QBASE:=ORD(Q); $QHEAD:=0; $QTAIL:=0; $STATUS.ERR:=FALSE; ${The following text was generated by MACRO-11, and PAS2RT.} $CODE[ 0] :=OCTAL('010046'); {1$: MOV R0, -(SP) } $CODE[ 1] :=OCTAL('016700'); { MOV QHEAD, R0 } $CODE[ 2] :=OCTAL('177764'); $CODE[ 3] :=OCTAL('066700'); { ADD QBASE, R0 } $CODE[700آ177732آ020027آ@آ101401آ005000آ020067آ177722آ001004آ012767آ104000آ177714آ000402آ010067آ177702آ012600آ000006177520120שצ122צ200צ177560צ005167צ000016צ001405צ106746 4] :=OCTAL('177756'); $CODE[ 5] :=OCTAL('113710'); { MOVB @#RDB, (R0) } $CODE[ 6] :=OCTAL('177522'); $CODE[ 7] :=OCTAL('053767'); { BIS @#RCS, QSTAT } $CODE[ 8] :=OCTAL('177520'); $CODE[ 9] :=OCTAL('177752'); $CODE[10] :=OCTAL('100421'); { BMI 4$ } $CODE[11] :=OCTAL('142720'); { BICB #200, (R0)+ } $CODE[12] :=OCTAL('000200'); $CODE[13] :=OCTAL('166700'); { SUB QBASE, R0 } $CODE[14] :=OCTAL('177732'); $CODE[15] :=OCTAL('020027'); { CMP R0, #QUEUESIZE } 7 "EXIT(TERMINAL) {Ascend to Nirvanna}  END; "  PROCEDURE ABORTCHK;  VAR X:CHAR; BEGIN IF READCH(X,TRUE) THEN ABORT:=(ORD(X)=NUL) OR ABORT END;   PROCEDURE PURGE; {Wait for either from host, or from operator}  BEGIN (* REPEAT "REPEAT ABORTCHK UNTIL RECVBYT(CH) OR ABORT  UNTIL (ORD(CH)=LF) OR ABORT *) END;   PROCEDURE TALLY;  BEGIN WRITECH('.'); LINECNT:=LINECNT+1; IF LINECNT MOD 50=0 THEN WRITELN; END;   PROCEDURE SENDFILE(BINARYMODE: BOOLEAN);  "PROCEDU*IF NOT ABORT THEN PULLFILE; *IF ABORT THEN ,BEGIN NOTICE('Transfer aborted'); CLOSE(TXTFILE,PURGE) END ,ELSE BEGIN NOTICE(CONCAT(SRC,' transferred to ',TGT)); .CLOSE(BLKFILE,LOCK) END ((* END *) $END  END;   PROCEDURE COMMAND;  VAR CMD:CHAR;  BEGIN WRITECH(CHR(FF)); REPEAT $HSLU.REG^.RCS.INT:=FALSE; {Stop listening} $WRITECH(CHR(HOME)); $PROMPT('Terminal: S(end file, R(eceive file, T(erminal mode, Q(uit '); $REPEAT UNTIL READCH(CMD,TRUE); WRITELN; ALPHAMAP(CMD); ABORT:=FALSE; $CASERE SENDBINFILE; { Binary file xmitter is HOST dependent. <<<<<<<< } "VAR $BUF: PACKED ARRAY [0..7] OF PACKED ARRAY [0..127] OF 0..15; "BEGIN $WHILE (BLOCKREAD(BINFILE,BUF,1) = 1) AND NOT ABORT DO &FOR I:=0 TO 7 DO (BEGIN *FOR J:=0 TO 127 DO ,BEGIN .XMITCHR(CHR(BUF[I,J]+ORD('@'))); .ABORTCHK; IF ABORT THEN BEGIN I:=10; J:=128 END; ,END; *XMITCHR(CHR(CR)); {Send a with each 128 char block} *PURGE; {Wait for reply before proceeding} $CODE[16] :=QUEUESIZE; $CODE[17] :=OCTAL('101401'); { BLOS 2$ } $CODE[18] :=OCTAL('005000'); { CLR R0 } $CODE[19] :=OCTAL('020067'); {2$: CMP R0, QTAIL } $CODE[20] :=OCTAL('177722'); $CODE[21] :=OCTAL('001004'); { BNE 3$ } $CODE[22] :=OCTAL('012767'); { MOV #^B1000100000000000, QSTAT } $CODE[23] :=OCTAL('104000'); $CODE[24] :=OCTAL('177714'); $CODE[25] :=OCTAL('000402'); { BR 4$ } $CODE[26] :=OCTAL('010067'); {3$: MOV R0, QHEAD } $CODE[27] :=OCTAL('177702'); $CODE[2*TALLY; {Check-sum could be injected easily.} (END; $CLOSE(BINFILE) "END;  PROCEDURE SENDTXTFILE; "VAR REPTCNT: INTEGER; "BEGIN #XMITCHR(CHR(2)); #READ(TXTFILE,CH); $REPEAT &READ(TXTFILE,CH); REPTCNT:=1; &CASE ORD(CH) OF (NUL: REPTCNT:=0; (DLE: BEGIN READ(TXTFILE,CH); REPTCNT:=ORD(CH)-32; CH:=' ' END &END; &WHILE REPTCNT>0 DO & BEGIN ( REPTCNT:=REPTCNT-1; XMITCHR(CH); WRITECH(CH); (END; &IF EOLN(TXTFILE) THEN (BEGIN *READLN(TXTFILE); *XMITCHR(CHR(CR)); XMITCHR(CHR(LF)8] :=OCTAL('012600'); {4$: MOV (SP)+, R0 } $CODE[29] :=OCTAL('000006'); { RTT } "END;  {SET UP HOST RECEIVER} "HSLU.ADR:=OCTAL('177520'); {SLU #1} "{REPEAT UNTIL HSLU.REG^.XCS.RDY;{Wait on ready bit} {<-- Compile iff modem dready valid} "HSLU.REG^.RCS.INT:=FALSE; {Turn off receiver}  HSLU.REG^.XCS.INT:=FALSE; {and transmitter.} {SET UP VECTOR FOR RECEIVER} "PATCH('120', ORD(H)+8); "PATCH('122', OCTAL('200'));  {Turn off all CONSOLE interrupts} ); *WRITELN; (END; &ABORTCHK; $UNTIL ABORT OR EOF(TXTFILE); $CLOSE(TXTFILE) "END;   BEGIN {SENDFILE} "REPEAT $PROMPT('Local source file name: '); READS(SRC); $IF LENGTH(SRC)>0 THEN &BEGIN (IF BINARYMODE THEN RESET(BINFILE,SRC) *ELSE BEGIN { SRC:=CONCAT(SRC,'.TEXT'); } RESET(TXTFILE,SRC) END; (IF IORESULT<>0 THEN NOTICE(CONCAT(SRC,' not found!')); &END; "UNTIL (LENGTH(SRC)=0) OR (IORESULT=0); "IF LENGTH(SRC)>0 THEN $BEGIN &(* PROMPT('Host target file name: '); READS(TGT); "CSLU.ADR:=OCTAL('177560'); {SLU #0, or 8532 keyboard} "CH:=CSLU.REG^.RDB; {Purge receiver} "CSLU.REG^.RCS.INT:=FALSE; {Turn it off} "CSLU.REG^.XCS.INT:=FALSE; {Xmitter too} {Set up new clock handler, to prevent reentry when priority goes to other tasks} "NEW(CLK); { ;ENTER AT LEVEL 7} "CLK^[0] :=OCTAL('005167'); { COM 1$ ;COUNT ENTRIES} "CLK^[1] :=OCTAL('000016'); "CLK^[2] :=OCTAL('001405'); { BEQ 2$ ;SKIP IF ON} &IF LENGTH(TGT)>0 THEN (BEGIN *) (LINECNT:=0; *(* S:=CONCAT('HERE COMES ',TGT); {Adjust to HOST. <<<<<<<< } *XMITSTR(S); *) *RESTART; {Sends to HOST} *(* PROMPT('Transmitting'); *) *PURGE; *IF BINARYMODE THEN SENDBINFILE ELSE SENDTXTFILE; *IF ABORT THEN BEGIN NOTICE('Transfer aborted'); .(* XMITCHR(CHR(NUL)) *) END {Send Abort-file character. <<<<<<<< } ,ELSE BEGIN NOTICE('FILE transferred'); .(* XMITCHR(CHR(CNTRLZ)) *) END; {Send end-of-file character. <<<<<<<< } ((* END *) $END  END;"CLK^[3] :=OCTAL('106746'); { MFPS -(SP) ;FAKE-A-INTERRUPT} "CLK^[4] :=OCTAL('106427'); { MTPS #1 ;SERVICE AT LEVEL 0} "CLK^[5] :=1; { ;INT SERV EXPECTS CARRY SET} "CLK^[6] :=OCTAL('004737'); { JSR PC, @(PC)+ ;JUMP TO IT} "CLK^[7] :=FETCH('000100'); { .WORD 0 ;Old clock vector} "CLK^[8] :=OCTAL('005127'); { 2$: COM (PC)+ ;TURN OFF FLAG} "CLK^[9] :=0; { 1$: .WORD 0}    PROCEDURE TAKEFILE;  CONST TIMEOUT= 255; {4.? secs max wait for each char <<<<<<<<}  VAR INDEX: INTEGER; PAGE: PACKED ARRAY [0..1023] OF CHAR; " "PROCEDURE PAGEDUMP; {Null fill page buffer, and write} "BEGIN $FILLCHAR(PAGE[INDEX],1024-INDEX,0); INDEX:=0; $IF BLOCKWRITE(BLKFILE,PAGE,2) <> 2 THEN &BEGIN NOTICE('Disk output error'); ABORT:=TRUE END "END; " "PROCEDURE PULLFILE; "BEGIN $(* S:=CONCAT('PLEASE SEND ',SRC); {Adjust to HOST. <<<<<<<< } $XMITSTR(S); *) "CLK^[10]:=OCTAL('005767'); { TST 3$ ;TIMER FOR LOCAL USE} "CLK^[11]:=OCTAL('000004'); "CLK^[12]:=OCTAL('001402'); { BEQ 4$} "CLK^[13]:=OCTAL('005327'); { DEC (PC)+ ;TO USE, PUT TIME INTO} "CLK^[14]:=0; { 3$: .WORD 0 ;CLK^[14]} "CLK^[15]:=OCTAL('000006'); { 4$: RTT ;AND WAIT FOR ZERO} "PATCH('000100', ORD(CLK));  {MAKE FLOPPY INTERRUPTABLE} "PATCH('000252',0); {QX controller status word}  {PRINT AN INIT$RESTART; {Sends to HOST} $PROMPT('Receiving...'); WRITELN; PURGE; CLK^[14]:=600; $WHILE (CLK^[14]>0) AND (NOT ABORT) DO &BEGIN (IF RECVBYT(CH) THEN *BEGIN ,CLK^[14]:=TIMEOUT; {Reset timeout counter} ,IF ORD(CH)<>LF THEN {Delete all 's} .BEGIN 0PAGE[INDEX]:=CH; INDEX:=INDEX+1; WRITECH(CH); 0IF ORD(CH)=CR THEN 0 BEGIN 0 WRITECH(CHR(LF)); 0 IF INDEX>920 THEN PAGEDUMP 4END .END *END; (ABORTCHK; &END; $WRITELN; $HSLU.REG^.RCS.INT:=FALSE; $IF NOT((INDEX=0) OR ABORT) TIAL CHARACTER TO EACH PORT} "RESTART {Turn on receiver}  END;   PROCEDURE SHUTDOWN; {Must call before leaving program to O/S}  BEGIN "HSLU.REG^.RCS.INT:=FALSE; {Host service OFF!} "PATCH('000100',CLK^[7]); {Repair line clock vector} PATCH('000252',OCTAL('000340')); {Repair QX controller vector} "CSLU.REG^.RCS.INT:=TRUE; {Turn on ...} "CSLU.REG^.XCS.INT:=TRUE; {Console service} HEN PAGEDUMP "END; (  BEGIN {TAKEFILE} "(* PROMPT('Host source file name: '); READS(SRC); "IF LENGTH(SRC)>0 THEN $BEGIN *) &REPEAT (PROMPT('Local target file name: '); READS(TGT); (IF LENGTH(TGT)>0 THEN *BEGIN { TGT:=CONCAT(TGT,'.TEXT'); } REWRITE(BLKFILE,TGT); ,IF IORESULT<>0 THEN NOTICE(CONCAT(TGT,' is illegal!')); &END; &UNTIL (IORESULT=0) OR (LENGTH(S)=0); &IF LENGTH(TGT)>0 THEN (BEGIN *INDEX:=0; LINECNT:=0; *PAGEDUMP; {Write 2 blks of nulls for EDIT compatibility} 8 ڿ ڹš š   "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdfhjlnprtvxz|~ á U]h ۢۢ צSoftware overrun occured ۢ Hardware overrun occured ۢ צCont's break received ۢצParity error detected ۢ.á"@áۢۢ1 ػ تP++ȡ+++T*آآ @" ةآآآآ010046آ016700آ177764آ066700آ177756آ113710آ177522آ053767آ177520آ 177752آ 100421آ 142720آ 000200آ 166  PROCEDURE SETUP; {Call one time only} BEGIN "ALPHALOCK:=TRUE; "NEW(H); {Memory space for handler...} "NEW(Q); { and for input ring buffer.} "WITH H^ DO BEGIN  {LOAD RECEIVE HANDLER} $QBASE:=ORD(Q); $QHEAD:=0; $QTAIL:=0; $STATUS.ERR:=FALSE; ${The following text was generated by MACRO-11, and PAS2RT.} $CODE[ 0] :=OCTAL('010046'); {1$: MOV R0, -(SP) } $CODE[ 1] :=OCTAL('016700'); { MOV QHEAD, R0 } $CODE[ 2] :=OCTAL('177764'); $CODE[ 3] :=OCTAL('066700'); { ADD QBASE, R0 } $CODE[700آ177732آ020027آ@آ101401آ005000آ020067آ177722آ001004آ012767آ104000آ177714آ000402آ010067آ177702آ012600آ000006177520120שצ122צ200צ177560צ005167צ000016צ001405צ106746 CMD OF &'Q': SHUTDOWN; &'R': BEGIN TAKEFILE; CMD := 'T' END; &'S': BEGIN SENDFILE(FALSE); CMD := 'T' END $END; "UNTIL CMD='T'; "RESTART  END;  PROCEDURE SENDBREAK;  BEGIN WITH HSLU.REG^ DO BEGIN "CLK^[14]:=14; {TIMEOUT 200 DIV 16} "RCS.INT:=FALSE; {Quit listening} "XCS.BREAK:=TRUE; {Send break} "WHILE CLK^[14]>0 DO; {for 200 ms.} "XCS.BREAK:=FALSE; "RESTART {Start listening}  END END;   BEGIN  SETUP; צ106427צ004737צ000100צ005127  צ005767 צ000004 צ001402 צ005327צ000006צ000100צ000252*000100ש000252צ000340N 퍫.2á퓄Ńʁȡ>́ʁȡ" @ ǀ 򥁱pSG PROMPT('TERMINAL V01-03... terminal emulator and file transfer utility.');  WRITELN;  PROMPT(' Type DC3 to alphalock, ^NUL to command, ^EOM to break.');  WRITELN;  REPEAT "IF READCH(CH,FALSE) THEN {Poll keyboard for anything from operator} $IF ORD(CH)=NUL THEN COMMAND &ELSE IF ORD(CH)=EOM THEN SENDBREAK (ELSE *BEGIN * XMITCHR(CH); ,IF ORD(CH) = CR THEN XMITCHR(CHR(LF)); *END; "IF RECVBYT(CH) THEN WRITECH(CH); {Poll handler for anything from HOST}  UNTIL FOREVER;  END.   |<  *"  :š     3D צLocal source file name: Z ZšBء Z Z"ˡ#ZP not found![ ZÞ"ÍZš?ءTransfer aborted צFILE transferred 0\  ٲˡצDisk output error Lצ Receiving...X퓄A 5 ˡ& á ǘš퍓g צLocal target file name: 1 1š8٥1"ˡ(̂Ƃ1PƂ is illegal!\Ƃ "åÍ1šm퓡Transfer aborted >̂ƂZPƂ transferred to `Ƃ1ǰƂ   ;Terminal: S(end file, R(eceive file, T(erminal mode, Q(uit  عTT QSTáaA z TERMINAL آšآe :ƁƃƁƂƀƁՁצATERMINAL V01-03... terminal emulator and file transfer utility.צ; Type DC3 to alphalock, ^NUL to command, ^EOM to break. áá  á  ƁƁƀ2L PtBf 0 $@x::e, R(eceive file, T(erminal mode, Q(uit  عTT QSTáaA ڪP.--ɡ--.-0..%V8ڪP--T٪P,,ؚT &Ǡػ<  تP+,+,ȡ+++V 2تPR ^۩ڍڍ!á ړr    ڳPɡO^g9 "CLK^[3] :=OCTAL('106746'); { MFPS -(SP) ;FAKE-A-INTERRUPT} "CLK^[4] :=OCTAL('106427'); { MTPS #1 ;SERVICE AT LEVEL 0} "CLK^[5] :=1; { ;INT SERV EXPECTS CARRY SET} "CLK^[6] :=OCTAL('004737'); { JSR PC, @(PC)+ ;JUMP TO IT} "CLK^[7] :=FETCH('000100'); { .WORD 0 ;Old clock vector} "CLK^[8] :=OCTAL('005127'); { 2$: COM (PC)+ ;TURN OFF FLAG} "CLK^[9] :=0; { 1$: .WORD 0} ;  CONST TIMEOUT= 255; {4.? secs max wait for each char <<<<<<<<}  VAR INDEX: INTEGER; PAGE: PACKED ARRAY [0..1023] OF CHAR; " "PROCEDURE PAGEDUMP; {Null fill page buffer, and write} "BEGIN $FILLCHAR(PAGE[INDEX],1024-INDEX,0); INDEX:=0; $IF BLOCKWRITE(BLKFILE,PAGE,2) <> 2 THEN &BEGIN NOTICE('Disk output error'); ABORT:=TRUE END "END; " "PROCEDURE PULLFILE; "BEGIN $(* S:=CONCAT('PLEASE SEND ',SRC); {Adjust to HOST. <<<<<<<< } $XMITSTR(S); *) $RESTART; {Sends to HOST} "CLK^[10]:=OCTAL('005767'); { TST 3$ ;TIMER FOR LOCAL USE} "CLK^[11]:=OCTAL('000004'); "CLK^[12]:=OCTAL('001402'); { BEQ 4$} "CLK^[13]:=OCTAL('005327'); { DEC (PC)+ ;TO USE, PUT TIME INTO} "CLK^[14]:=0; { 3$: .WORD 0 ;CLK^[14]} "CLK^[15]:=OCTAL('000006'); { 4$: RTT ;AND WAIT FOR ZERO} "PATCH('000100', ORD(CLK));  {MAKE FLOPPY INTERRUPTABLE} "PATCH('000252',0); {QX controller status word}  {PRINT AN INIT$PROMPT('Receiving...'); WRITELN; PURGE; CLK^[14]:=600; $WHILE (CLK^[14]>0) AND (NOT ABORT) DO &BEGIN (IF RECVBYT(CH) THEN *BEGIN ,CLK^[14]:=TIMEOUT; {Reset timeout counter} ,IF ORD(CH)<>LF THEN {Delete all 's} .BEGIN 0PAGE[INDEX]:=CH; INDEX:=INDEX+1; WRITECH(CH); 0IF ORD(CH)=CR THEN 0 BEGIN 0 WRITECH(CHR(LF)); 0 IF INDEX>920 THEN PAGEDUMP 4END .END *END; (ABORTCHK; &END; $WRITELN; $HSLU.REG^.RCS.INT:=FALSE; $IF NOT((INDEX=0) OR ABORT) THEN PAGEDUMP "END; (  BEGIN {IAL CHARACTER TO EACH PORT} "RESTART {Turn on receiver}  END;   PROCEDURE SHUTDOWN; {Must call before leaving program to O/S}  BEGIN "HSLU.REG^.RCS.INT:=FALSE; {Host service OFF!} "PATCH('000100',CLK^[7]); {Repair line clock vector} PATCH('000252',OCTAL('000340')); {Repair QX controller vector} "CSLU.REG^.RCS.INT:=TRUE; {Turn on ...} "CSLU.REG^.XCS.INT:=TRUE; {Console service} TAKEFILE} "(* PROMPT('Host source file name: '); READS(SRC); "IF LENGTH(SRC)>0 THEN $BEGIN *) &REPEAT (PROMPT('Local target file name: '); READS(TGT); (IF LENGTH(TGT)>0 THEN *BEGIN { TGT:=CONCAT(TGT,'.TEXT'); } REWRITE(BLKFILE,TGT); ,IF IORESULT<>0 THEN NOTICE(CONCAT(TGT,' is illegal!')); &END; &UNTIL (IORESULT=0) OR (LENGTH(S)=0); &IF LENGTH(TGT)>0 THEN (BEGIN *INDEX:=0; LINECNT:=0; *PAGEDUMP; {Write 2 blks of nulls for EDIT compatibility} *IF NOT ABORT THEN PULLFILE; *IF ABORT THEN "EXIT(TERMINAL) {Ascend to Nirvanna}  END; "  PROCEDURE ABORTCHK;  VAR X:CHAR; BEGIN IF READCH(X,TRUE) THEN ABORT:=(ORD(X)=NUL) OR ABORT END;   PROCEDURE PURGE; {Wait for either from host, or from operator}  BEGIN (* REPEAT "REPEAT ABORTCHK UNTIL RECVBYT(CH) OR ABORT  UNTIL (ORD(CH)=LF) OR ABORT *) END;   PROCEDURE TALLY;  BEGIN WRITECH('.'); LINECNT:=LINECNT+1; IF LINECNT MOD 50=0 THEN WRITELN; END;   PROCEDURE SENDFILE(BINARYMODE: BOOLEAN);  "PROCEDU 4] :=OCTAL('177756'); $CODE[ 5] :=OCTAL('113710'); { MOVB @#RDB, (R0) } $CODE[ 6] :=OCTAL('177522'); $CODE[ 7] :=OCTAL('053767'); { BIS @#RCS, QSTAT } $CODE[ 8] :=OCTAL('177520'); $CODE[ 9] :=OCTAL('177752'); $CODE[10] :=OCTAL('100421'); { BMI 4$ } $CODE[11] :=OCTAL('142720'); { BICB #200, (R0)+ } $CODE[12] :=OCTAL('000200'); $CODE[13] :=OCTAL('166700'); { SUB QBASE, R0 } $CODE[14] :=OCTAL('177732'); $CODE[15] :=OCTAL('020027'); { CMP R0, #QUEUESIZE } RE SENDBINFILE; { Binary file xmitter is HOST dependent. <<<<<<<< } "VAR $BUF: PACKED ARRAY [0..7] OF PACKED ARRAY [0..127] OF 0..15; "BEGIN $WHILE (BLOCKREAD(BINFILE,BUF,1) = 1) AND NOT ABORT DO &FOR I:=0 TO 7 DO (BEGIN *FOR J:=0 TO 127 DO ,BEGIN .XMITCHR(CHR(BUF[I,J]+ORD('@'))); .ABORTCHK; IF ABORT THEN BEGIN I:=10; J:=128 END; ,END; *XMITCHR(CHR(CR)); {Send a with each 128 char block} *PURGE; {Wait for reply before proceeding} $CODE[16] :=QUEUESIZE; $CODE[17] :=OCTAL('101401'); { BLOS 2$ } $CODE[18] :=OCTAL('005000'); { CLR R0 } $CODE[19] :=OCTAL('020067'); {2$: CMP R0, QTAIL } $CODE[20] :=OCTAL('177722'); $CODE[21] :=OCTAL('001004'); { BNE 3$ } $CODE[22] :=OCTAL('012767'); { MOV #^B1000100000000000, QSTAT } $CODE[23] :=OCTAL('104000'); $CODE[24] :=OCTAL('177714'); $CODE[25] :=OCTAL('000402'); { BR 4$ } $CODE[26] :=OCTAL('010067'); {3$: MOV R0, QHEAD } $CODE[27] :=OCTAL('177702'); $CODE[2*TALLY; {Check-sum could be injected easily.} (END; $CLOSE(BINFILE) "END;  PROCEDURE SENDTXTFILE; "VAR REPTCNT: INTEGER; "BEGIN #XMITCHR(CHR(2)); $REPEAT &READ(TXTFILE,CH); REPTCNT:=1; &CASE ORD(CH) OF (NUL: REPTCNT:=0; (DLE: BEGIN READ(TXTFILE,CH); REPTCNT:=ORD(CH)-32; CH:=' ' END &END; &WHILE REPTCNT>0 DO & BEGIN ( REPTCNT:=REPTCNT-1; XMITCHR(CH); WRITECH(CH); (END; &IF EOLN(TXTFILE) THEN (BEGIN *READLN(TXTFILE); *XMITCHR(CHR(CR)); XMITCHR(CHR(LF)); *WRITELN; (END;8] :=OCTAL('012600'); {4$: MOV (SP)+, R0 } $CODE[29] :=OCTAL('000006'); { RTT } "END;  {SET UP HOST RECEIVER} "HSLU.ADR:=OCTAL('177520'); {SLU #1} "{REPEAT UNTIL HSLU.REG^.XCS.RDY;{Wait on ready bit} {<-- Compile iff modem dready valid} "HSLU.REG^.RCS.INT:=FALSE; {Turn off receiver}  HSLU.REG^.XCS.INT:=FALSE; {and transmitter.} {SET UP VECTOR FOR RECEIVER} "PATCH('120', ORD(H)+8); "PATCH('122', OCTAL('200'));  {Turn off all CONSOLE interrupts}  &ABORTCHK; $UNTIL ABORT OR EOF(TXTFILE); $CLOSE(TXTFILE) "END;   BEGIN {SENDFILE} "REPEAT $PROMPT('Local source file name: '); READS(SRC); $IF LENGTH(SRC)>0 THEN &BEGIN (IF BINARYMODE THEN RESET(BINFILE,SRC) *ELSE BEGIN { SRC:=CONCAT(SRC,'.TEXT'); } RESET(TXTFILE,SRC) END; (IF IORESULT<>0 THEN NOTICE(CONCAT(SRC,' not found!')); &END; "UNTIL (LENGTH(SRC)=0) OR (IORESULT=0); "IF LENGTH(SRC)>0 THEN $BEGIN &(* PROMPT('Host target file name: '); READS(TGT); &IF LENGTH(TGT)>0 THEN "CSLU.ADR:=OCTAL('177560'); {SLU #0, or 8532 keyboard} "CH:=CSLU.REG^.RDB; {Purge receiver} "CSLU.REG^.RCS.INT:=FALSE; {Turn it off} "CSLU.REG^.XCS.INT:=FALSE; {Xmitter too} {Set up new clock handler, to prevent reentry when priority goes to other tasks} "NEW(CLK); { ;ENTER AT LEVEL 7} "CLK^[0] :=OCTAL('005167'); { COM 1$ ;COUNT ENTRIES} "CLK^[1] :=OCTAL('000016'); "CLK^[2] :=OCTAL('001405'); { BEQ 2$ ;SKIP IF ON} (BEGIN *) (LINECNT:=0; *(* S:=CONCAT('HERE COMES ',TGT); {Adjust to HOST. <<<<<<<< } *XMITSTR(S); *) *RESTART; {Sends to HOST} *(* PROMPT('Transmitting'); *) *PURGE; *IF BINARYMODE THEN SENDBINFILE ELSE SENDTXTFILE; *IF ABORT THEN BEGIN NOTICE('Transfer aborted'); .(* XMITCHR(CHR(NUL)) *) END {Send Abort-file character. <<<<<<<< } ,ELSE BEGIN NOTICE('FILE transferred'); .(* XMITCHR(CHR(CNTRLZ)) *) END; {Send end-of-file character. <<<<<<<< } ((* END *) $END  END;   PROCEDURE TAKEFILE: 5 ˡ& á ǘš퍓g צLocal target file name: 1 1š8٥1"ˡ(̂Ƃ1PƂ is illegal!\Ƃ "åÍ1šm퓡Transfer aborted >̂ƂZPƂ transferred to `Ƃ1ǰƂ   ;Terminal: S(end file, R(eceive file, T(erminal mode, Q(uit  عTT QSTáaA آl TERMINAL šآe :ƁƃƁƂƀƁՁצATERMINAL V01-03... terminal emulator and file transfer utility.צ5 Type DC3 to alphalock, ^NUL to command OR break. áá  á  ƁƁƀL Jn4X " |  2j~ ,:nd file, R(eceive file, T(erminal mode, Q(uit  عTT QSTáaA آڪP.--ɡ--.-0..%V8ڪP--T٪P,,ؚT &Ǡػ<  تP+,+,ȡ+++V 2تPR ^۩ڍڍ!á ړr    ڳPɡO^ڿ ڹš š   "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdfhjlnprtvxz|~ á U]h ۢۢ צSoftware overrun occured ۢ Hardware overrun occured ۢ צCont's break received ۢצParity error detected ۢ.á"@áۢۢ1 ػ تP++ȡ+++T*آآ @" ةآآآآ010046آ016700آ177764آ066700آ177756آ113710آ177522آ053767آ177520آ 177752آ 100421آ 142720آ 000200آ 166,BEGIN NOTICE('Transfer aborted'); CLOSE(TXTFILE,PURGE) END ,ELSE BEGIN NOTICE(CONCAT(SRC,' transferred to ',TGT)); .CLOSE(BLKFILE,LOCK) END ((* END *) $END  END;   PROCEDURE COMMAND;  VAR CMD:CHAR;  BEGIN WRITECH(CHR(FF)); REPEAT $HSLU.REG^.RCS.INT:=FALSE; {Stop listening} $WRITECH(CHR(HOME)); $PROMPT('Terminal: S(end file, R(eceive file, T(erminal mode, Q(uit '); $REPEAT UNTIL READCH(CMD,TRUE); WRITELN; ALPHAMAP(CMD); ABORT:=FALSE; $CASE CMD OF &'Q': SHUTDOWN; &'R': BEGIN TAKEFI700آ177732آ020027آ@آ101401آ005000آ020067آ177722آ001004آ012767آ104000آ177714آ000402آ010067آ177702آ012600آ000006177520120שצ122צ200צ177560צ005167צ000016צ001405צ106746LE; CMD := 'T' END; &'S': BEGIN SENDFILE(FALSE); CMD := 'T' END $END; "UNTIL CMD='T'; "RESTART  END;  PROCEDURE SENDBREAK;  BEGIN WITH HSLU.REG^ DO BEGIN "CLK^[14]:=14; {TIMEOUT 200 DIV 16} "RCS.INT:=FALSE; {Quit listening} "XCS.BREAK:=TRUE; {Send break} "WHILE CLK^[14]>0 DO; {for 200 ms.} "XCS.BREAK:=FALSE; "RESTART {Start listening}  END END;   BEGIN  SETUP;  PROMPT('TERMINAL V01-03... terminal emulator and file transfer utility.');  WRITELN; צ106427צ004737צ000100צ005127  צ005767 צ000004 צ001402 צ005327צ000006צ000100צ000252*000100ש000252צ000340N 퍫.2á퓄Ńʁȡ>́ʁȡ" @ ǀ 򥁱pSG PROMPT(' Type DC3 to alphalock, ^NUL to command OR break.');  WRITELN;  REPEAT "IF READCH(CH,FALSE) THEN {Poll keyboard for anything from operator} $IF ORD(CH)=NUL THEN COMMAND &ELSE IF ORD(CH)=EOM THEN SENDBREAK (ELSE *BEGIN * XMITCHR(CH); ,IF ORD(CH) = CR THEN XMITCHR(CHR(LF)); *END; "IF RECVBYT(CH) THEN WRITECH(CH); {Poll handler for anything from HOST}  UNTIL FOREVER;  END.   |<  *"  :š     D צLocal source file name: Z ZšBء Z Z"ˡ#ZP not found![ ZÞ"ÍZš?ءTransfer aborted צFILE transferred 0\  ٲˡצDisk output error Lצ Receiving...X퓄A ; L1024 11111111111111111111110110011110* L1056 11111111111111111011110111011101* L1088 11111111111111111110111011101101* L1120 01111111111111111110111011101110* L1280 11111111111111111111110111111111* L1536 11111111111111111111110111011111* L1568 11111111111111111111111011101111* L1792 11111111111111111111110111011101* L1824 11111111111111111111111011111110* L1856 11111111111111111111111111101110* 0000 "CSLU.ADR:=OCTAL('177560'); {SLU #0, or 8532 keyboard} "CH:=CSLU.REG^.RDB; {Purge receiver} "CSLU.REG^.RCS.INT:=FALSE; {Turn it off} "CSLU.REG^.XCS.INT:=FALSE; {Xmitter too} {Set up new clock handler, to prevent reentry when priority goes to other tasks} "NEW(CLK); { ;ENTER AT LEVEL 7} "CLK^[0] :=OCTAL('005167'); { COM 1$ ;COUNT ENTRIES} "CLK^[1] :=OCTAL('000016'); "CLK^[2] :=OCTAL('001405'); { BEQ 2$ ;SKIP IF ON} "CLK^[3] :=OCTAL('106746'); { MFPS -(SP) ;FAKE-A-INTERRUPT} "CLK^[4] :=OCTAL('106427'); { MTPS #1 ;SERVICE AT LEVEL 0} "CLK^[5] :=1; { ;INT SERV EXPECTS CARRY SET} "CLK^[6] :=OCTAL('004737'); { JSR PC, @(PC)+ ;JUMP TO IT} "CLK^[7] :=FETCH('000100'); { .WORD 0 ;Old clock vector} "CLK^[8] :=OCTAL('005127'); { 2$: COM (PC)+ ;TURN OFF FLAG} "CLK^[9] :=0; { 1$: .WORD 0} O^g"CLK^[10]:=OCTAL('005767'); { TST 3$ ;TIMER FOR LOCAL USE} "CLK^[11]:=OCTAL('000004'); "CLK^[12]:=OCTAL('001402'); { BEQ 4$} "CLK^[13]:=OCTAL('005327'); { DEC (PC)+ ;TO USE, PUT TIME INTO} "CLK^[14]:=0; { 3$: .WORD 0 ;CLK^[14]} "CLK^[15]:=OCTAL('000006'); { 4$: RTT ;AND WAIT FOR ZERO} "PATCH('000100', ORD(CLK));  {MAKE FLOPPY INTERRUPTABLE} "PATCH('000252',0); {QX controller status word}  {PRINT AN INITIAL CHARACTER TO EACH PORT} "RESTART {Turn on receiver}  END;   PROCEDURE SHUTDOWN; {Must call before leaving program to O/S}  BEGIN "HSLU.REG^.RCS.INT:=FALSE; {Host service OFF!} "PATCH('000100',CLK^[7]); {Repair line clock vector} PATCH('000252',OCTAL('000340')); {Repair QX controller vector} "CSLU.REG^.RCS.INT:=TRUE; {Turn on ...} "CSLU.REG^.XCS.INT:=TRUE; {Console service}   PROCEDURE SETUP; {Call one time only} BEGIN "ALPHALOCK:=TRUE; "NEW(H); {Memory space for handler...} "NEW(Q); { and for input ring buffer.} "WITH H^ DO BEGIN  {LOAD RECEIVE HANDLER} $QBASE:=ORD(Q); $QHEAD:=0; $QTAIL:=0; $STATUS.ERR:=FALSE; ${The following text was generated by MACRO-11, and PAS2RT.} $CODE[ 0] :=OCTAL('010046'); {1$: MOV R0, -(SP) } $CODE[ 1] :=OCTAL('016700'); { MOV QHEAD, R0 } $CODE[ 2] :=OCTAL('177764'); $CODE[ 3] :=OCTAL('066700'); { ADD QBASE, R0 } $CODE["EXIT(TERMINAL) {Ascend to Nirvanna}  END; "  PROCEDURE ABORTCHK;  VAR X:CHAR; BEGIN IF READCH(X,TRUE) THEN ABORT:=(ORD(X)=NUL) OR ABORT END;   PROCEDURE PURGE; {Wait for either from host, or from operator}  BEGIN (* REPEAT "REPEAT ABORTCHK UNTIL RECVBYT(CH) OR ABORT  UNTIL (ORD(CH)=LF) OR ABORT *) END;   PROCEDURE TALLY;  BEGIN WRITECH('.'); LINECNT:=LINECNT+1; IF LINECNT MOD 50=0 THEN WRITELN; END;   PROCEDURE SENDFILE(BINARYMODE: BOOLEAN);  "PROCEDU 4] :=OCTAL('177756'); $CODE[ 5] :=OCTAL('113710'); { MOVB @#RDB, (R0) } $CODE[ 6] :=OCTAL('177522'); $CODE[ 7] :=OCTAL('053767'); { BIS @#RCS, QSTAT } $CODE[ 8] :=OCTAL('177520'); $CODE[ 9] :=OCTAL('177752'); $CODE[10] :=OCTAL('100421'); { BMI 4$ } $CODE[11] :=OCTAL('142720'); { BICB #200, (R0)+ } $CODE[12] :=OCTAL('000200'); $CODE[13] :=OCTAL('166700'); { SUB QBASE, R0 } $CODE[14] :=OCTAL('177732'); $CODE[15] :=OCTAL('020027'); { CMP R0, #QUEUESIZE } PAL16R8 PAL DESIGN SPECIFICATION RGS09 ALEX R. McKAY 11-24-84 RASTER GAME SYSTEM-VRAM WRITE TIMING #1 CINEMATRONICS *D2224* G0*F0* L0000 11111111111111111111110110011110* L0032 11111111111111111111110111011010* L0064 11111111111111111011110111011101* L0096 11111111111111111111100111011101* L0128 11101111111$CODE[16] :=QUEUESIZE; $CODE[17] :=OCTAL('101401'); { BLOS 2$ } $CODE[18] :=OCTAL('005000'); { CLR R0 } $CODE[19] :=OCTAL('020067'); {2$: CMP R0, QTAIL } $CODE[20] :=OCTAL('177722'); $CODE[21] :=OCTAL('001004'); { BNE 3$ } $CODE[22] :=OCTAL('012767'); { MOV #^B1000100000000000, QSTAT } $CODE[23] :=OCTAL('104000'); $CODE[24] :=OCTAL('177714'); $CODE[25] :=OCTAL('000402'); { BR 4$ } $CODE[26] :=OCTAL('010067'); {3$: MOV R0, QHEAD } $CODE[27] :=OCTAL('177702'); $CODE[2111111111111011101111* L0256 11111111111111111111110111011010* L0288 11111111111111111111100111011101* L0320 11111110111111111111111011101101* L0352 11111110111101111111111011101110* L0512 11111111111111111111110111011010* L0544 11111111111111111111100111011101* L0576 11111111111011111111111011101101* L0608 11111111011011111111111011101110* L0768 11111111111111111111110110011110* L0800 11111111111111111011110111011101* L0832 11111111111111101111111011101101* L0864 11110111111111101111111011101110* 8] :=OCTAL('012600'); {4$: MOV (SP)+, R0 } $CODE[29] :=OCTAL('000006'); { RTT } "END;  {SET UP HOST RECEIVER} "HSLU.ADR:=OCTAL('177520'); {SLU #1} "{REPEAT UNTIL HSLU.REG^.XCS.RDY;{Wait on ready bit} {<-- Compile iff modem dready valid} "HSLU.REG^.RCS.INT:=FALSE; {Turn off receiver}  HSLU.REG^.XCS.INT:=FALSE; {and transmitter.} {SET UP VECTOR FOR RECEIVER} "PATCH('120', ORD(H)+8); "PATCH('122', OCTAL('200'));  {Turn off all CONSOLE interrupts} < *TALLY; {Check-sum could be injected easily.} (END; $CLOSE(BINFILE) "END;  PROCEDURE SENDTXTFILE; "VAR REPTCNT: INTEGER; "BEGIN "{XMITCHR(CHR(2));} $REPEAT &READ(TXTFILE,CH); REPTCNT:=1; &CASE ORD(CH) OF (NUL: REPTCNT:=0; (DLE: BEGIN READ(TXTFILE,CH); REPTCNT:=ORD(CH)-32; CH:=' ' END &END; &WHILE REPTCNT>0 DO & BEGIN ( REPTCNT:=REPTCNT-1; XMITCHR(CH); WRITECH(CH); (END; &IF EOLN(TXTFILE) THEN (BEGIN *READLN(TXTFILE); *XMITCHR(CHR(CR)); XMITCHR(CHR(LF)); *WRITELN; (EN PROMPT(' Type DC3 to alphalock, ^NUL to command OR break.');  WRITELN;  REPEAT "IF READCH(CH,FALSE) THEN {Poll keyboard for anything from operator} $IF ORD(CH)=NUL THEN COMMAND &ELSE IF ORD(CH)=EOM THEN SENDBREAK (ELSE *BEGIN * XMITCHR(CH); ,IF ORD(CH) = CR THEN XMITCHR(CHR(LF)); *END; "IF RECVBYT(CH) THEN WRITECH(CH); {Poll handler for anything from HOST}  UNTIL FOREVER;  END.  D; &ABORTCHK; $UNTIL ABORT OR EOF(TXTFILE); $CLOSE(TXTFILE) "END;   BEGIN {SENDFILE} "REPEAT $PROMPT('Local source file name: '); READS(SRC); $IF LENGTH(SRC)>0 THEN &BEGIN (IF BINARYMODE THEN RESET(BINFILE,SRC) *ELSE BEGIN { SRC:=CONCAT(SRC,'.TEXT'); } RESET(TXTFILE,SRC) END; (IF IORESULT<>0 THEN NOTICE(CONCAT(SRC,' not found!')); &END; "UNTIL (LENGTH(SRC)=0) OR (IORESULT=0); "IF LENGTH(SRC)>0 THEN $BEGIN &(* PROMPT('Host target file name: '); READS(TGT); &IF LENGTH(TGT)>0 THEN (BEGIN *) (LINECNT:=0; *(* S:=CONCAT('HERE COMES ',TGT); {Adjust to HOST. <<<<<<<< } *XMITSTR(S); *) *RESTART; {Sends to HOST} *(* PROMPT('Transmitting'); *) *PURGE; *IF BINARYMODE THEN SENDBINFILE ELSE SENDTXTFILE; *IF ABORT THEN BEGIN NOTICE('Transfer aborted'); .(* XMITCHR(CHR(NUL)) *) END {Send Abort-file character. <<<<<<<< } ,ELSE BEGIN NOTICE('FILE transferred'); .(* XMITCHR(CHR(CNTRLZ)) *) END; {Send end-of-file character. <<<<<<<< } ((* END *) $END  END;   PROCEDURE TAKEFILEh TERMINAL ;  CONST TIMEOUT= 255; {4.? secs max wait for each char <<<<<<<<}  VAR INDEX: INTEGER; PAGE: PACKED ARRAY [0..1023] OF CHAR; " "PROCEDURE PAGEDUMP; {Null fill page buffer, and write} "BEGIN $FILLCHAR(PAGE[INDEX],1024-INDEX,0); INDEX:=0; $IF BLOCKWRITE(BLKFILE,PAGE,2) <> 2 THEN &BEGIN NOTICE('Disk output error'); ABORT:=TRUE END "END; " "PROCEDURE PULLFILE; "BEGIN $(* S:=CONCAT('PLEASE SEND ',SRC); {Adjust to HOST. <<<<<<<< } $XMITSTR(S); *) $RESTART; {Sends to HOST} ڪP.--ɡ--.-0..%V8ڪP--T٪P,,ؚT &Ǡػ<  تP+,+,ȡ+++V 2تPR ^۩ڍڍ!á ړr    ڳPɡ$PROMPT('Receiving...'); WRITELN; PURGE; CLK^[14]:=600; $WHILE (CLK^[14]>0) AND (NOT ABORT) DO &BEGIN (IF RECVBYT(CH) THEN *BEGIN ,CLK^[14]:=TIMEOUT; {Reset timeout counter} ,IF ORD(CH)<>LF THEN {Delete all 's} .BEGIN 0PAGE[INDEX]:=CH; INDEX:=INDEX+1; WRITECH(CH); 0IF ORD(CH)=CR THEN 0 BEGIN 0 WRITECH(CHR(LF)); 0 IF INDEX>920 THEN PAGEDUMP 4END .END *END; (ABORTCHK; &END; $WRITELN; $HSLU.REG^.RCS.INT:=FALSE; $IF NOT((INDEX=0) OR ABORT) THEN PAGEDUMP "END; (  BEGIN {ڿ ڹš š   "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdfhjlnprtvxz|~ á U]h ۢۢ צSoftware overrun occured ۢ Hardware overrun occured ۢ צCont's break received ۢצParity error detected ۢ.á"TAKEFILE} "(* PROMPT('Host source file name: '); READS(SRC); "IF LENGTH(SRC)>0 THEN $BEGIN *) &REPEAT (PROMPT('Local target file name: '); READS(TGT); (IF LENGTH(TGT)>0 THEN *BEGIN { TGT:=CONCAT(TGT,'.TEXT'); } REWRITE(BLKFILE,TGT); ,IF IORESULT<>0 THEN NOTICE(CONCAT(TGT,' is illegal!')); &END; &UNTIL (IORESULT=0) OR (LENGTH(S)=0); &IF LENGTH(TGT)>0 THEN (BEGIN *INDEX:=0; LINECNT:=0; *PAGEDUMP; {Write 2 blks of nulls for EDIT compatibility} *IF NOT ABORT THEN PULLFILE; *IF ABORT THEN @áۢۢ1 ػ تP++ȡ+++T*آآ @" ةآآآآ010046آ016700آ177764آ066700آ177756آ113710آ177522آ053767آ177520آ 177752آ 100421آ 142720آ 000200آ 166,BEGIN NOTICE('Transfer aborted'); CLOSE(TXTFILE,PURGE) END ,ELSE BEGIN NOTICE(CONCAT(SRC,' transferred to ',TGT)); .CLOSE(BLKFILE,LOCK) END ((* END *) $END  END;   PROCEDURE COMMAND;  VAR CMD:CHAR;  BEGIN WRITECH(CHR(FF)); REPEAT $HSLU.REG^.RCS.INT:=FALSE; {Stop listening} $WRITECH(CHR(HOME)); $PROMPT('Terminal: S(end file, R(eceive file, T(erminal mode, Q(uit '); $REPEAT UNTIL READCH(CMD,TRUE); WRITELN; ALPHAMAP(CMD); ABORT:=FALSE; $CASE CMD OF &'Q': SHUTDOWN; &'R': BEGIN TAKEFIRE SENDBINFILE; { Binary file xmitter is HOST dependent. <<<<<<<< } "VAR $BUF: PACKED ARRAY [0..7] OF PACKED ARRAY [0..127] OF 0..15; "BEGIN $WHILE (BLOCKREAD(BINFILE,BUF,1) = 1) AND NOT ABORT DO &FOR I:=0 TO 7 DO (BEGIN *FOR J:=0 TO 127 DO ,BEGIN .XMITCHR(CHR(BUF[I,J]+ORD('@'))); .ABORTCHK; IF ABORT THEN BEGIN I:=10; J:=128 END; ,END; *XMITCHR(CHR(CR)); {Send a with each 128 char block} *PURGE; {Wait for reply before proceeding} LE; CMD := 'T' END; &'S': BEGIN SENDFILE(FALSE); CMD := 'T' END $END; "UNTIL CMD='T'; "RESTART  END;  PROCEDURE SENDBREAK;  BEGIN WITH HSLU.REG^ DO BEGIN "CLK^[14]:=14; {TIMEOUT 200 DIV 16} "RCS.INT:=FALSE; {Quit listening} "XCS.BREAK:=TRUE; {Send break} "WHILE CLK^[14]>0 DO; {for 200 ms.} "XCS.BREAK:=FALSE; "RESTART {Start listening}  END END;   BEGIN  SETUP;  PROMPT('TERMINAL V01-03... terminal emulator and file transfer utility.');  WRITELN; = 700آ177732آ020027آ@آ101401آ005000آ020067آ177722آ001004آ012767آ104000آ177714آ000402آ010067آ177702آ012600آ000006177520120שצ122צ200צ177560צ005167צ000016צ001405צ10674611111111111111011101111* L0256 11111111111111111111110111011010* L0288 11111111111111111111100111011101* L0320 11111110111111111111111011101101* L0352 11111110111101111111111011101110* L0512 11111111111111111111110111011010* L0544 11111111111111111111100111011101* L0576 11111111111011111111111011101101* L0608 11111111011011111111111011101110* L0768 11111111111111111111110110011110* L0800 11111111111111111011110111011101* צ106427צ004737צ000100צ005127  צ005767 צ000004 צ001402 צ005327צ000006צ000100צ000252*000100ש000252צ000340N 퍫.2á퓄Ńʁȡ>́ʁȡ" @ ǀ 򥁱pSGL0832 11111111111111101111111011101101* L0864 11110111111111101111111011101110* L1024 11111111111111111111110110011110* L1056 11111111111111111011110111011101* L1088 11111111111111111110111011101101* L1120 01111111111111111110111011101110* L1280 11111111111111111111110111111111* L1536 11111111111111111111110111011111* L1568 11111111111111111111111011101111* L1792 11111111111111111111110111011101* L1824 11111111111111111111111011111110* L1856 11111111111111111111111111101110* 0000  |;  )"  9š     D צLocal source file name: Z ZšBء Z Z"ˡ#ZP not found![ ZÞ"ÍZš?ءTransfer aborted צFILE transferred 0\  ٲˡצDisk output error Lצ Receiving...X퓄A 5 ˡ& á ǘš퍓g צLocal target file name: 1 1š8٥1"ˡ(̂Ƃ1PƂ is illegal!\Ƃ "åÍ1šm퓡Transfer aborted >̂ƂZPƂ transferred to `Ƃ1ǰƂ   ;Terminal: S(end file, R(eceive file, T(erminal mode, Q(uit  عTT QSTáaA آO^gšآe :ƁƃƁƂƀƁՁצATERMINAL V01-03... terminal emulator and file transfer utility.צ5 Type DC3 to alphalock, ^NUL to command OR break. áá  á  ƁƁƀL Jn0T  x  .fz(:nd file, R(eceive file, T(erminal mode, Q(uit  عTT QSTáaA آ  PROCEDURE SETUP; {Call one time only} BEGIN "ALPHALOCK:=TRUE; "NEW(H); {Memory space for handler...} "NEW(Q); { and for input ring buffer.} "WITH H^ DO BEGIN  {LOAD RECEIVE HANDLER} $QBASE:=ORD(Q); $QHEAD:=0; $QTAIL:=0; $STATUS.ERR:=FALSE; ${The following text was generated by MACRO-11, and PAS2RT.} $CODE[ 0] :=OCTAL('010046'); {1$: MOV R0, -(SP) } $CODE[ 1] :=OCTAL('016700'); { MOV QHEAD, R0 } $CODE[ 2] :=OCTAL('177764'); $CODE[ 3] :=OCTAL('066700'); { ADD QBASE, R0 } $CODE[ 4] :=OCTAL('177756'); $CODE[ 5] :=OCTAL('113710'); { MOVB @#RDB, (R0) } $CODE[ 6] :=OCTAL('177522'); $CODE[ 7] :=OCTAL('053767'); { BIS @#RCS, QSTAT } $CODE[ 8] :=OCTAL('177520'); $CODE[ 9] :=OCTAL('177752'); $CODE[10] :=OCTAL('100421'); { BMI 4$ } $CODE[11] :=OCTAL('142720'); { BICB #200, (R0)+ } $CODE[12] :=OCTAL('000200'); $CODE[13] :=OCTAL('166700'); { SUB QBASE, R0 } $CODE[14] :=OCTAL('177732'); $CODE[15] :=OCTAL('020027'); { CMP R0, #QUEUESIZE }  PAL16R8 PAL DESIGN SPECIFICATION RGS09 ALEX R. McKAY 11-24-84 RASTER GAME SYSTEM-VRAM WRITE TIMING #1 CINEMATRONICS *D2224* G0*F0* L0000 11111111111111111111110110011110* L0032 11111111111111111111110111011010* L0064 11111111111111111011110111011101* L0096 11111111111111111111100111011101* L0128 111011111> ,BEGIN NOTICE('Transfer aborted'); CLOSE(TXTFILE,PURGE) END ,ELSE BEGIN NOTICE(CONCAT(' transferred to ',TGT)); .CLOSE(BLKFILE,LOCK) END ((* END *) $END  END;   PROCEDURE COMMAND;  VAR CMD:CHAR;  BEGIN WRITECH(CHR(FF)); REPEAT $HSLU.REG^.RCS.INT:=FALSE; {Stop listening} $WRITECH(CHR(HOME)); $PROMPT('Terminal: S(end file, R(eceive file, T(erminal mode, Q(uit '); $REPEAT UNTIL READCH(CMD,TRUE); WRITELN; ALPHAMAP(CMD); ABORT:=FALSE; $CASE CMD OF &'Q': SHUTDOWN; &'R': BEGIN TAKEFILE; RE SENDBINFILE; { Binary file xmitter is HOST dependent. <<<<<<<< } "VAR $BUF: PACKED ARRAY [0..7] OF PACKED ARRAY [0..127] OF 0..15; "BEGIN $WHILE (BLOCKREAD(BINFILE,BUF,1) = 1) AND NOT ABORT DO &FOR I:=0 TO 7 DO (BEGIN *FOR J:=0 TO 127 DO ,BEGIN .XMITCHR(CHR(BUF[I,J]+ORD('@'))); .ABORTCHK; IF ABORT THEN BEGIN I:=10; J:=128 END; ,END; *XMITCHR(CHR(CR)); {Send a with each 128 char block} *PURGE; {Wait for reply before proceeding} $CODE[16] :=QUEUESIZE; $CODE[17] :=OCTAL('101401'); { BLOS 2$ } $CODE[18] :=OCTAL('005000'); { CLR R0 } $CODE[19] :=OCTAL('020067'); {2$: CMP R0, QTAIL } $CODE[20] :=OCTAL('177722'); $CODE[21] :=OCTAL('001004'); { BNE 3$ } $CODE[22] :=OCTAL('012767'); { MOV #^B1000100000000000, QSTAT } $CODE[23] :=OCTAL('104000'); $CODE[24] :=OCTAL('177714'); $CODE[25] :=OCTAL('000402'); { BR 4$ } $CODE[26] :=OCTAL('010067'); {3$: MOV R0, QHEAD } $CODE[27] :=OCTAL('177702'); $CODE[2*TALLY; {Check-sum could be injected easily.} (END; $CLOSE(BINFILE) "END;  PROCEDURE SENDTXTFILE; "VAR REPTCNT: INTEGER; "BEGIN "{XMITCHR(CHR(2));} $REPEAT &READ(TXTFILE,CH); REPTCNT:=1; &CASE ORD(CH) OF (NUL: REPTCNT:=0; (DLE: BEGIN READ(TXTFILE,CH); REPTCNT:=ORD(CH)-32; CH:=' ' END &END; &WHILE REPTCNT>0 DO & BEGIN ( REPTCNT:=REPTCNT-1; XMITCHR(CH); WRITECH(CH); (END; &IF EOLN(TXTFILE) THEN (BEGIN *READLN(TXTFILE); *XMITCHR(CHR(CR)); XMITCHR(CHR(LF)); *WRITELN; (EN8] :=OCTAL('012600'); {4$: MOV (SP)+, R0 } $CODE[29] :=OCTAL('000006'); { RTT } "END;  {SET UP HOST RECEIVER} "HSLU.ADR:=OCTAL('177520'); {SLU #1} "{REPEAT UNTIL HSLU.REG^.XCS.RDY;{Wait on ready bit} {<-- Compile iff modem dready valid} "HSLU.REG^.RCS.INT:=FALSE; {Turn off receiver}  HSLU.REG^.XCS.INT:=FALSE; {and transmitter.} {SET UP VECTOR FOR RECEIVER} "PATCH('120', ORD(H)+8); "PATCH('122', OCTAL('200'));  {Turn off all CONSOLE interrupts} D; &ABORTCHK; $UNTIL ABORT OR EOF(TXTFILE); $CLOSE(TXTFILE) "END;   BEGIN {SENDFILE} "REPEAT $PROMPT('Local source file name: '); READS(SRC); $IF LENGTH(SRC)>0 THEN &BEGIN (IF BINARYMODE THEN RESET(BINFILE,SRC) *ELSE BEGIN SRC:=CONCAT(SRC,'.TEXT'); RESET(TXTFILE,SRC) END; (IF IORESULT<>0 THEN NOTICE(CONCAT(SRC,' not found!')); &END; "UNTIL (LENGTH(SRC)=0) OR (IORESULT=0); "IF LENGTH(SRC)>0 THEN $BEGIN &(* PROMPT('Host target file name: '); READS(TGT); &IF LENGTH(TGT)>0 THEN (BEGIN *) "CSLU.ADR:=OCTAL('177560'); {SLU #0, or 8532 keyboard} "CH:=CSLU.REG^.RDB; {Purge receiver} "CSLU.REG^.RCS.INT:=FALSE; {Turn it off} "CSLU.REG^.XCS.INT:=FALSE; {Xmitter too} {Set up new clock handler, to prevent reentry when priority goes to other tasks} "NEW(CLK); { ;ENTER AT LEVEL 7} "CLK^[0] :=OCTAL('005167'); { COM 1$ ;COUNT ENTRIES} "CLK^[1] :=OCTAL('000016'); "CLK^[2] :=OCTAL('001405'); { BEQ 2$ ;SKIP IF ON} (LINECNT:=0; *(* S:=CONCAT('HERE COMES ',TGT); {Adjust to HOST. <<<<<<<< } *XMITSTR(S); *) *RESTART; {Sends to HOST} *(* PROMPT('Transmitting'); *) *PURGE; *IF BINARYMODE THEN SENDBINFILE ELSE SENDTXTFILE; *IF ABORT THEN BEGIN NOTICE('Transfer aborted'); .(* XMITCHR(CHR(NUL)) *) END {Send Abort-file character. <<<<<<<< } ,ELSE BEGIN NOTICE('FILE transferred'); .(* XMITCHR(CHR(CNTRLZ)) *) END; {Send end-of-file character. <<<<<<<< } ((* END *) $END  END;   PROCEDURE TAKEFILE;  CONST T"CLK^[3] :=OCTAL('106746'); { MFPS -(SP) ;FAKE-A-INTERRUPT} "CLK^[4] :=OCTAL('106427'); { MTPS #1 ;SERVICE AT LEVEL 0} "CLK^[5] :=1; { ;INT SERV EXPECTS CARRY SET} "CLK^[6] :=OCTAL('004737'); { JSR PC, @(PC)+ ;JUMP TO IT} "CLK^[7] :=FETCH('000100'); { .WORD 0 ;Old clock vector} "CLK^[8] :=OCTAL('005127'); { 2$: COM (PC)+ ;TURN OFF FLAG} "CLK^[9] :=0; { 1$: .WORD 0} IMEOUT= 255; {4.? secs max wait for each char <<<<<<<<}  VAR INDEX: INTEGER; PAGE: PACKED ARRAY [0..1023] OF CHAR; " "PROCEDURE PAGEDUMP; {Null fill page buffer, and write} "BEGIN $FILLCHAR(PAGE[INDEX],1024-INDEX,0); INDEX:=0; $IF BLOCKWRITE(BLKFILE,PAGE,2) <> 2 THEN &BEGIN NOTICE('Disk output error'); ABORT:=TRUE END "END; " "PROCEDURE PULLFILE; "BEGIN $(* S:=CONCAT('PLEASE SEND ',SRC); {Adjust to HOST. <<<<<<<< } $XMITSTR(S); *) $RESTART; {Sends to HOST} "CLK^[10]:=OCTAL('005767'); { TST 3$ ;TIMER FOR LOCAL USE} "CLK^[11]:=OCTAL('000004'); "CLK^[12]:=OCTAL('001402'); { BEQ 4$} "CLK^[13]:=OCTAL('005327'); { DEC (PC)+ ;TO USE, PUT TIME INTO} "CLK^[14]:=0; { 3$: .WORD 0 ;CLK^[14]} "CLK^[15]:=OCTAL('000006'); { 4$: RTT ;AND WAIT FOR ZERO} "PATCH('000100', ORD(CLK));  {MAKE FLOPPY INTERRUPTABLE} "PATCH('000252',0); {QX controller status word}  {PRINT AN INIT$PROMPT('Receiving...'); WRITELN; PURGE; CLK^[14]:=600; $WHILE (CLK^[14]>0) AND (NOT ABORT) DO &BEGIN (IF RECVBYT(CH) THEN *BEGIN ,CLK^[14]:=TIMEOUT; {Reset timeout counter} ,IF ORD(CH)<>LF THEN {Delete all 's} .BEGIN 0PAGE[INDEX]:=CH; INDEX:=INDEX+1; WRITECH(CH); 0IF ORD(CH)=CR THEN 0 BEGIN 0 WRITECH(CHR(LF)); 0 IF INDEX>920 THEN PAGEDUMP 4END .END *END; (ABORTCHK; &END; $WRITELN; $HSLU.REG^.RCS.INT:=FALSE; $IF NOT((INDEX=0) OR ABORT) THEN PAGEDUMP "END; (  BEGIN {IAL CHARACTER TO EACH PORT} "RESTART {Turn on receiver}  END;   PROCEDURE SHUTDOWN; {Must call before leaving program to O/S}  BEGIN "HSLU.REG^.RCS.INT:=FALSE; {Host service OFF!} "PATCH('000100',CLK^[7]); {Repair line clock vector} PATCH('000252',OCTAL('000340')); {Repair QX controller vector} "CSLU.REG^.RCS.INT:=TRUE; {Turn on ...} "CSLU.REG^.XCS.INT:=TRUE; {Console service} TAKEFILE} "(* PROMPT('Host source file name: '); READS(SRC); "IF LENGTH(SRC)>0 THEN $BEGIN *) &REPEAT (PROMPT('Local target file name: '); READS(TGT); (IF LENGTH(TGT)>0 THEN *BEGIN TGT:=CONCAT(TGT,'.TEXT'); REWRITE(BLKFILE,TGT); ,IF IORESULT<>0 THEN NOTICE(CONCAT(TGT,' is illegal!')); &END; &UNTIL (IORESULT=0) OR (LENGTH(S)=0); &IF LENGTH(TGT)>0 THEN (BEGIN *INDEX:=0; LINECNT:=0; *PAGEDUMP; {Write 2 blks of nulls for EDIT compatibility} *IF NOT ABORT THEN PULLFILE; *IF ABORT THEN "EXIT(TERMINAL) {Ascend to Nirvanna}  END; "  PROCEDURE ABORTCHK;  VAR X:CHAR; BEGIN IF READCH(X,TRUE) THEN ABORT:=(ORD(X)=NUL) OR ABORT END;   PROCEDURE PURGE; {Wait for either from host, or from operator}  BEGIN (* REPEAT "REPEAT ABORTCHK UNTIL RECVBYT(CH) OR ABORT  UNTIL (ORD(CH)=LF) OR ABORT *) END;   PROCEDURE TALLY;  BEGIN WRITECH('.'); LINECNT:=LINECNT+1; IF LINECNT MOD 50=0 THEN WRITELN; END;   PROCEDURE SENDFILE(BINARYMODE: BOOLEAN);  "PROCEDU? $CODE[16] :=QUEUESIZE; $CODE[17] :=OCTAL('101401'); { BLOS 2$ } $CODE[18] :=OCTAL('005000'); { CLR R0 } $CODE[19] :=OCTAL('020067'); {2$: CMP R0, QTAIL } $CODE[20] :=OCTAL('177722'); $CODE[21] :=OCTAL('001004'); { BNE 3$ } $CODE[22] :=OCTAL('012767'); { MOV #^B1000100000000000, QSTAT } $CODE[23] :=OCTAL('104000'); $CODE[24] :=OCTAL('177714'); $CODE[25] :=OCTAL('000402'); { BR 4$ } $CODE[26] :=OCTAL('010067'); {3$: MOV R0, QHEAD } $CODE[27] :=OCTAL('177702'); $CODE[211111111111111111111111* L0544 11101111111110111111011101110111* L0768 11111111111111111111111111111111* L0800 11101111111110111111111101110111* L0832 11111011111111110111111111111111* L0864 10111111111111111111111111111111* L1024 11111111111111111111111111111111* L1056 11101111111111111111111110111011* L1280 11111111111111111111111111111111* L1312 11101111111111111111111110110111* L1536 11111111111111111111111111111111* 8] :=OCTAL('012600'); {4$: MOV (SP)+, R0 } $CODE[29] :=OCTAL('000006'); { RTT } "END;  {SET UP HOST RECEIVER} "HSLU.ADR:=OCTAL('177520'); {SLU #1} "{REPEAT UNTIL HSLU.REG^.XCS.RDY;{Wait on ready bit} {<-- Compile iff modem dready valid} "HSLU.REG^.RCS.INT:=FALSE; {Turn off receiver}  HSLU.REG^.XCS.INT:=FALSE; {and transmitter.} {SET UP VECTOR FOR RECEIVER} "PATCH('120', ORD(H)+8); "PATCH('122', OCTAL('200'));  {Turn off all CONSOLE interrupts} L1568 11101111011111111111111101111011* L1600 11111111101111111111111111111111* L1792 11111111111111111111111111111101* L1824 11101111111110111111011101110111* L1856 11101111111110111111101101110111* L1888 11111011111111110111111111111111* V0001 1XXXXXXXXNXXXHHXHHXN* V0002 XXX0XXXXXNX1LXXXXXXN* V0003 X01XXXXXXN1XXXXLXXXN* V0004 X10XX0XXXNXXXXXHXXXN* V0005 X10XX1XXXNXXXXXLXXXN* V0006 X1XXX0XXXNXXXXXHXXXN* V0007 0XXXXXX00NXXXHLXHHHN* V0008 0XXXXXX01NXXXLHXHHHN* V0009 0XX11XX10NX0LHHXHHHN* V0010 0XX10XX10NX0LHCMD := 'T' END; &'S': BEGIN SENDFILE(FALSE); CMD := 'T' END $END; "UNTIL CMD='T'; "RESTART  END;  PROCEDURE SENDBREAK;  BEGIN WITH HSLU.REG^ DO BEGIN "CLK^[14]:=14; {TIMEOUT 200 DIV 16} "RCS.INT:=FALSE; {Quit listening} "XCS.BREAK:=TRUE; {Send break} "WHILE CLK^[14]>0 DO; {for 200 ms.} "XCS.BREAK:=FALSE; "RESTART {Start listening}  END END;   BEGIN  SETUP;  PROMPT('TERMINAL V01-03... terminal emulator and file transfer utility.');  WRITELN; HXHHLN* V0011 011X0X011NXXXHHLHLHN* V0012 011X0X111NXXXHHLLHHN* V0013 XXXXXXXXXN0ZXXXXXXXN* V0014 011X0X011N1LXHHLHLHN* V0015 011X0X111N1LXHHLLHHN* 0000  PROMPT(' Type DC3 to alphalock, ^NUL to command OR break.');  WRITELN;  REPEAT "IF READCH(CH,FALSE) THEN {Poll keyboard for anything from operator} $IF ORD(CH)=NUL THEN COMMAND &ELSE IF ORD(CH)=EOM THEN SENDBREAK (ELSE *BEGIN * XMITCHR(CH); ,IF ORD(CH) = CR THEN XMITCHR(CHR(LF)); *END; "IF RECVBYT(CH) THEN WRITECH(CH); {Poll handler for anything from HOST}  UNTIL FOREVER;  END.  O^g  PROCEDURE SETUP; {Call one time only} BEGIN "ALPHALOCK:=TRUE; "NEW(H); {Memory space for handler...} "NEW(Q); { and for input ring buffer.} "WITH H^ DO BEGIN  {LOAD RECEIVE HANDLER} $QBASE:=ORD(Q); $QHEAD:=0; $QTAIL:=0; $STATUS.ERR:=FALSE; ${The following text was generated by MACRO-11, and PAS2RT.} $CODE[ 0] :=OCTAL('010046'); {1$: MOV R0, -(SP) } $CODE[ 1] :=OCTAL('016700'); { MOV QHEAD, R0 } $CODE[ 2] :=OCTAL('177764'); $CODE[ 3] :=OCTAL('066700'); { ADD QBASE, R0 } $CODE[ 4] :=OCTAL('177756'); $CODE[ 5] :=OCTAL('113710'); { MOVB @#RDB, (R0) } $CODE[ 6] :=OCTAL('177522'); $CODE[ 7] :=OCTAL('053767'); { BIS @#RCS, QSTAT } $CODE[ 8] :=OCTAL('177520'); $CODE[ 9] :=OCTAL('177752'); $CODE[10] :=OCTAL('100421'); { BMI 4$ } $CODE[11] :=OCTAL('142720'); { BICB #200, (R0)+ } $CODE[12] :=OCTAL('000200'); $CODE[13] :=OCTAL('166700'); { SUB QBASE, R0 } $CODE[14] :=OCTAL('177732'); $CODE[15] :=OCTAL('020027'); { CMP R0, #QUEUESIZE }  PAL16L8 PAL DESIGN SPECIFICATION RGS01 ALEX R. McKAY 02/06/84 RASTER GAME SYSTEM-MASTER MEMORY DECODER CINEMATRONICS *D2222* G0*F0* L0000 11111111111111111111111111111111* L0032 11101111011110111111111101111011* L0256 11111111111111111111111111111111* L0288 11101111111110111111101101110111* L0512 111111111@ ,BEGIN NOTICE('Transfer aborted'); CLOSE(TXTFILE,PURGE) END ,ELSE BEGIN NOTICE(CONCAT('transferred to ',TGT)); .CLOSE(BLKFILE,LOCK) END ((* END *) $END  END;   PROCEDURE COMMAND;  VAR CMD:CHAR;  BEGIN WRITECH(CHR(FF)); REPEAT $HSLU.REG^.RCS.INT:=FALSE; {Stop listening} $WRITECH(CHR(HOME)); $PROMPT('Terminal: S(end file, R(eceive file, T(erminal mode, Q(uit '); $REPEAT UNTIL READCH(CMD,TRUE); WRITELN; ALPHAMAP(CMD); ABORT:=FALSE; $CASE CMD OF &'Q': SHUTDOWN; &'R': BEGIN TAKEFILE; CRE SENDBINFILE; { Binary file xmitter is HOST dependent. <<<<<<<< } "VAR $BUF: PACKED ARRAY [0..7] OF PACKED ARRAY [0..127] OF 0..15; "BEGIN $WHILE (BLOCKREAD(BINFILE,BUF,1) = 1) AND NOT ABORT DO &FOR I:=0 TO 7 DO (BEGIN *FOR J:=0 TO 127 DO ,BEGIN .XMITCHR(CHR(BUF[I,J]+ORD('@'))); .ABORTCHK; IF ABORT THEN BEGIN I:=10; J:=128 END; ,END; *XMITCHR(CHR(CR)); {Send a with each 128 char block} *PURGE; {Wait for reply before proceeding} MD := 'T' END; &'S': BEGIN SENDFILE(FALSE); CMD := 'T' END $END; "UNTIL CMD='T'; "RESTART  END;  PROCEDURE SENDBREAK;  BEGIN WITH HSLU.REG^ DO BEGIN "CLK^[14]:=14; {TIMEOUT 200 DIV 16} "RCS.INT:=FALSE; {Quit listening} "XCS.BREAK:=TRUE; {Send break} "WHILE CLK^[14]>0 DO; {for 200 ms.} "XCS.BREAK:=FALSE; "RESTART {Start listening}  END END;   BEGIN  SETUP;  PROMPT('TERMINAL V01-03... terminal emulator and file transfer utility.');  WRITELN; *TALLY; {Check-sum could be injected easily.} (END; $CLOSE(BINFILE) "END;  PROCEDURE SENDTXTFILE; "VAR REPTCNT: INTEGER; "BEGIN "{XMITCHR(CHR(2));} $REPEAT &READ(TXTFILE,CH); REPTCNT:=1; &CASE ORD(CH) OF (NUL: REPTCNT:=0; (DLE: BEGIN READ(TXTFILE,CH); REPTCNT:=ORD(CH)-32; CH:=' ' END &END; &WHILE REPTCNT>0 DO & BEGIN ( REPTCNT:=REPTCNT-1; XMITCHR(CH); WRITECH(CH); (END; &IF EOLN(TXTFILE) THEN (BEGIN *READLN(TXTFILE); *XMITCHR(CHR(CR)); XMITCHR(CHR(LF)); *WRITELN; (EN PROMPT(' Type DC3 to alphalock, ^NUL to command OR break.');  WRITELN;  REPEAT "IF READCH(CH,FALSE) THEN {Poll keyboard for anything from operator} $IF ORD(CH)=NUL THEN COMMAND &ELSE IF ORD(CH)=EOM THEN SENDBREAK (ELSE *BEGIN * XMITCHR(CH); ,IF ORD(CH) = CR THEN XMITCHR(CHR(LF)); *END; "IF RECVBYT(CH) THEN WRITECH(CH); {Poll handler for anything from HOST}  UNTIL FOREVER;  END.  D; &ABORTCHK; $UNTIL ABORT OR EOF(TXTFILE); $CLOSE(TXTFILE) "END;   BEGIN {SENDFILE} "REPEAT $PROMPT('Local source file name: '); READS(SRC); $IF LENGTH(SRC)>0 THEN &BEGIN (IF BINARYMODE THEN RESET(BINFILE,SRC) *ELSE BEGIN SRC:=CONCAT(SRC,'.TEXT'); RESET(TXTFILE,SRC) END; (IF IORESULT<>0 THEN NOTICE(CONCAT(SRC,' not found!')); &END; "UNTIL (LENGTH(SRC)=0) OR (IORESULT=0); "IF LENGTH(SRC)>0 THEN $BEGIN &(* PROMPT('Host target file name: '); READS(TGT); &IF LENGTH(TGT)>0 THEN (BEGIN *) "CSLU.ADR:=OCTAL('177560'); {SLU #0, or 8532 keyboard} "CH:=CSLU.REG^.RDB; {Purge receiver} "CSLU.REG^.RCS.INT:=FALSE; {Turn it off} "CSLU.REG^.XCS.INT:=FALSE; {Xmitter too} {Set up new clock handler, to prevent reentry when priority goes to other tasks} "NEW(CLK); { ;ENTER AT LEVEL 7} "CLK^[0] :=OCTAL('005167'); { COM 1$ ;COUNT ENTRIES} "CLK^[1] :=OCTAL('000016'); "CLK^[2] :=OCTAL('001405'); { BEQ 2$ ;SKIP IF ON} (LINECNT:=0; *(* S:=CONCAT('HERE COMES ',TGT); {Adjust to HOST. <<<<<<<< } *XMITSTR(S); *) *RESTART; {Sends to HOST} *(* PROMPT('Transmitting'); *) *PURGE; *IF BINARYMODE THEN SENDBINFILE ELSE SENDTXTFILE; *IF ABORT THEN BEGIN NOTICE('Transfer aborted'); .(* XMITCHR(CHR(NUL)) *) END {Send Abort-file character. <<<<<<<< } ,ELSE BEGIN NOTICE('TRANSMISSION COMPLETE'); .(* XMITCHR(CHR(CNTRLZ)) *) END; {Send end-of-file character. <<<<<<<< } ((* END *) $END  END;   PROCEDURE TAKEFILE;  CO"CLK^[3] :=OCTAL('106746'); { MFPS -(SP) ;FAKE-A-INTERRUPT} "CLK^[4] :=OCTAL('106427'); { MTPS #1 ;SERVICE AT LEVEL 0} "CLK^[5] :=1; { ;INT SERV EXPECTS CARRY SET} "CLK^[6] :=OCTAL('004737'); { JSR PC, @(PC)+ ;JUMP TO IT} "CLK^[7] :=FETCH('000100'); { .WORD 0 ;Old clock vector} "CLK^[8] :=OCTAL('005127'); { 2$: COM (PC)+ ;TURN OFF FLAG} "CLK^[9] :=0; { 1$: .WORD 0} NST TIMEOUT= 180; {3 secs max wait for each char <<<<<<<<}  VAR INDEX: INTEGER; PAGE: PACKED ARRAY [0..1023] OF CHAR; " "PROCEDURE PAGEDUMP; {Null fill page buffer, and write} "BEGIN $FILLCHAR(PAGE[INDEX],1024-INDEX,0); INDEX:=0; $IF BLOCKWRITE(BLKFILE,PAGE,2) <> 2 THEN &BEGIN NOTICE('Disk output error'); ABORT:=TRUE END "END; " "PROCEDURE PULLFILE; "BEGIN $(* S:=CONCAT('PLEASE SEND ',SRC); {Adjust to HOST. <<<<<<<< } $XMITSTR(S); *) $RESTART; {Sends to HOST} "CLK^[10]:=OCTAL('005767'); { TST 3$ ;TIMER FOR LOCAL USE} "CLK^[11]:=OCTAL('000004'); "CLK^[12]:=OCTAL('001402'); { BEQ 4$} "CLK^[13]:=OCTAL('005327'); { DEC (PC)+ ;TO USE, PUT TIME INTO} "CLK^[14]:=0; { 3$: .WORD 0 ;CLK^[14]} "CLK^[15]:=OCTAL('000006'); { 4$: RTT ;AND WAIT FOR ZERO} "PATCH('000100', ORD(CLK));  {MAKE FLOPPY INTERRUPTABLE} "PATCH('000252',0); {QX controller status word}  {PRINT AN INIT$PROMPT('Receiving...'); WRITELN; PURGE; CLK^[14]:=600; $WHILE (CLK^[14]>0) AND (NOT ABORT) DO &BEGIN (IF RECVBYT(CH) THEN *BEGIN ,CLK^[14]:=TIMEOUT; {Reset timeout counter} ,IF ORD(CH)<>LF THEN {Delete all 's} .BEGIN 0PAGE[INDEX]:=CH; INDEX:=INDEX+1; WRITECH(CH); 0IF ORD(CH)=CR THEN 0 BEGIN 0 WRITECH(CHR(LF)); 0 IF INDEX>920 THEN PAGEDUMP 4END .END *END; (ABORTCHK; &END; $WRITELN; $HSLU.REG^.RCS.INT:=FALSE; $IF NOT((INDEX=0) OR ABORT) THEN PAGEDUMP "END; (  BEGIN {IAL CHARACTER TO EACH PORT} "RESTART {Turn on receiver}  END;   PROCEDURE SHUTDOWN; {Must call before leaving program to O/S}  BEGIN "HSLU.REG^.RCS.INT:=FALSE; {Host service OFF!} "PATCH('000100',CLK^[7]); {Repair line clock vector} PATCH('000252',OCTAL('000340')); {Repair QX controller vector} "CSLU.REG^.RCS.INT:=TRUE; {Turn on ...} "CSLU.REG^.XCS.INT:=TRUE; {Console service} TAKEFILE} "(* PROMPT('Host source file name: '); READS(SRC); "IF LENGTH(SRC)>0 THEN $BEGIN *) &REPEAT (PROMPT('Local target file name: '); READS(TGT); (IF LENGTH(TGT)>0 THEN *BEGIN TGT:=CONCAT(TGT,'.TEXT'); REWRITE(BLKFILE,TGT); ,IF IORESULT<>0 THEN NOTICE(CONCAT(TGT,' is illegal!')); &END; &UNTIL (IORESULT=0) OR (LENGTH(S)=0); &IF LENGTH(TGT)>0 THEN (BEGIN *INDEX:=0; LINECNT:=0; *PAGEDUMP; {Write 2 blks of nulls for EDIT compatibility} *IF NOT ABORT THEN PULLFILE; *IF ABORT THEN "EXIT(TERMINAL) {Ascend to Nirvanna}  END; "  PROCEDURE ABORTCHK;  VAR X:CHAR; BEGIN IF READCH(X,TRUE) THEN ABORT:=(ORD(X)=NUL) OR ABORT END;   PROCEDURE PURGE; {Wait for either from host, or from operator}  BEGIN (* REPEAT "REPEAT ABORTCHK UNTIL RECVBYT(CH) OR ABORT  UNTIL (ORD(CH)=LF) OR ABORT *) END;   PROCEDURE TALLY;  BEGIN WRITECH('.'); LINECNT:=LINECNT+1; IF LINECNT MOD 50=0 THEN WRITELN; END;   PROCEDURE SENDFILE(BINARYMODE: BOOLEAN);  "PROCEDUA @áۢۢ1 ػ تP++ȡ+++T*آآ @" ةآآآآ010046آ016700آ177764آ066700آ177756آ113710آ177522آ053767آ177520آ 177752آ 100421آ 142720آ 000200آ 166  PAL20X10 PAL DESIGN SPECIFICATION RGS06 ALEX R. McKAY 11/24/84 RASTER GAME SYSTEM-SLAVE VIDEO WRITE DATA LATCH (LOW) CINEMATRONICS *D2206* G0*F0* L0000 0111101110111011101111111111111111111011* L0040 1110111111111111111111111111111111110111* L0160 1111101111111111111111111111111111111011* L0200 11111110111111111111111700آ177732آ020027آ@آ101401آ005000آ020067آ177722آ001004آ012767آ104000آ177714آ000402آ010067آ177702آ012600آ000006177520120שצ122צ200צ177560צ005167צ000016צ001405צ10674611111111111110111* L0320 1111111110111111111111111111111111111011* L0360 1111111111101111111111111111111111110111* L0480 1111111111111011111111111111111111111011* L0520 1111111111111110111111111111111111110111* L0640 1111111111111111101111111111111111111011* L0680 1111111111111111111011111111111111110111* L0800 1111111111111111111110111111111111111011* L0840 1111111111111111111111101111111111110111* L0960 1111111111111111111111111011111111111011* צ106427צ004737צ000100צ005127  צ005767 צ000004 צ001402 צ005327צ000006צ000100צ000252*000100ש000252צ000340N 퍫.2á퓄Ńʁȡ>́ʁȡ" @ ǀ 򥁱pSGL1000 1111111111111111111111111110111111110111* L1120 1111111111111111111111111111101111111011* L1160 1111111111111111111111111111111011110111* L1280 1111111111111111111111111111111110111011* L1320 1111111111111111111111111111111111100111* L1440 0111111111111111111110111011101110111011* L1480 1111111111111111111111111111111111110110* V0001 XXXXXXXXXXXN1ZZZZZZZZZZN* V0002 C0000000000N0HLLLLLLLLHN* V0003 C0111111110N0HHHHHHHHHHN* V0004 C0101010100N0HLHLHLHLHHN* V0005 C0XXXXXXXX1N0HLHLHLHLHHN* V0006 C001010101 |;  )"  9š     D צLocal source file name: Z Zšaء Z)ZZP.TEXTUPZ"ˡ#ZPצ not found![ ZÞ"ÍZšDءצTransfer aborted TRANSMISSION COMPLETE \  ٲˡצDisk output error Lצ Receiving...X퓄A 5Ǵ ˡ& á ǘš퍓g צLocal target file name: 1 1š[1̂Ƃ1PƂ.TEXTUƂP٥1"ˡ(̂Ƃ1PƂצ is illegal!\Ƃ "åÍ1ša퓡צTransfer aborted 2̂Ƃtransferred to Ƃ1_Ƃ b ;Terminal: S(end file, R(eceive file, T(erminal mode, Q(uit  عTT QS TERMINAL TáA آšآe :ƁƃƁƂƀƁՁצATERMINAL V01-03... terminal emulator and file transfer utility.צ5 Type DC3 to alphalock, ^NUL to command OR break. áá  á  ƁƁƀL Jj:  4 X H Lh"Bb:nd file, R(eceive file, T(erminal mode, Q(uit  عTT QSڪP.--ɡ--.-0..%V8ڪP--T٪P,,ؚT &Ǡػ<  تP+,+,ȡ+++V 2تPR ^۩ڍڍ!á ړr    ڳPɡڿ ڹš š   "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdfhjlnprtvxz|~ á U]h ۢۢ צSoftware overrun occured ۢ Hardware overrun occured ۢ צCont's break received ۢצParity error detected ۢ.á"B 11111111111111011101111* L0256 11111111111111111111110111011010* L0288 11111111111111111111100111011101* L0320 11111110111111111111111011101101* L0352 11111110111101111111111011101110* L0512 11111111111111111111110111011010* L0544 11111111111111111111100111011101* L0576 11111111111011111111111011101101* L0608 11111111011011111111111011101110* L0768 11111111111111111111110110011110* L0800 11111111111111111011110111011101*  PAL16R4 PAL DESIGN SPECIFICATION RGS08 ALEX R. McKAY 11/14/84 RASTER GAME SYSTEM-BACKGROUND SYNC CINEMATRONICS *D2224* G0*F0* L0512 11111111111111111011111111111111* L0544 11111111111111111111101111111111* L0576 11111111111111111111111110111111* L0608 11111111111111111111111111111011* L0768 100110101L0832 11111111111111101111111011101101* L0864 11110111111111101111111011101110* L1024 11111111111111111111110110011110* L1056 11111111111111111011110111011101* L1088 11111111111111111110111011101101* L1120 01111111111111111110111011101110* L1280 11111111111111111111110111111111* L1536 11111111111111111111110111011111* L1568 11111111111111111111111011101111* L1792 11111111111111111111110111011101* L1824 11111111111111111111111011111110* L1856 11111111111111111111111111101110* 0000 01110111011101110101001* L0800 01100101011101111011101101011010* L0832 10010101011101111011101101011010* L0864 01101001011101111011101101011001* L0896 10011001011101111011101101011001* L0928 01100110101110111011101110101010* L0960 10010110101110111011101110101010* L0992 01101010101110111011101110101001* L1024 11111101111111111111111101100111* L1280 10011011101110111111111111111101* L1312 01100111011101111111111111111110* L1344 10010111011101111111111111111110* L1376 01101011011101111111111111111101* L1408 10011011011101111111111111111101* L1440 01100111101110111111111111111110* L1472 10010111101110111111111111111110* L1504 01101011101110111111111111111101* V0001 XXXXXXXXXN1XXZZZZXXN* V0002 C11110010N001LXLX10N* V0003 C01110010N001LXLX11N* V0004 C10110010N011LXLX10N* V0005 C00110010N011LXLX11N* V0006 C11000000N000LXLX00N* V0007 C01000000N000LXLX01N* V0008 C10000000N010LXLX00N* V0009 C00000000N010LXLX01N* 0000 0N0HHLHLHLHLHN* V0007 C0XXXXXXXX1N0HHLHLHLHLHN* V0008 C1000000000N0LLLLLLLLLLN* V0009 C1000100000N0LLLLLHLLLHN* V0010 C1000000010N0HHLLLLLLLLN* V0011 C1000100000N0LLLLLHLLLHN* V0012 C1X1XXX1XX0N0HXXHXXXHXHN* V0013 C11XXX1XXX0N0HXXXHXXXHHN* V0014 C1111111110N0HHHHHHHHHHN* 0000  PAL16R8 PAL DESIGN SPECIFICATION RGS09 ALEX R. McKAY 11-24-84 RASTER GAME SYSTEM-VRAM WRITE TIMING #1 CINEMATRONICS *D2224* G0*F0* L0000 11111111111111111111110110011110* L0032 11111111111111111111110111011010* L0064 11111111111111111011110111011101* L0096 11111111111111111111100111011101* L0128 111011111C 8] :=OCTAL('012600'); {4$: MOV (SP)+, R0 } $CODE[29] :=OCTAL('000006'); { RTT } "END;  {SET UP HOST RECEIVER} "HSLU.ADR:=OCTAL('177520'); {SLU #1} "{REPEAT UNTIL HSLU.REG^.XCS.RDY;{Wait on ready bit} {<-- Compile iff modem dready valid} "HSLU.REG^.RCS.INT:=FALSE; {Turn off receiver}  HSLU.REG^.XCS.INT:=FALSE; {and transmitter.} {SET UP VECTOR FOR RECEIVER} "PATCH('120', ORD(H)+8); "PATCH('122', OCTAL('200'));  {Turn off all CONSOLE interrupts} V0010 C1111001XN0XXHLLHZLN* V0011 C1101001XN0XXLHHHZLN* V0012 001010011N0XXLHHHZHN* V0013 000010011N0XXLHHHZHN* C1F16* 0000 "CSLU.ADR:=OCTAL('177560'); {SLU #0, or 8532 keyboard} "CH:=CSLU.REG^.RDB; {Purge receiver} "CSLU.REG^.RCS.INT:=FALSE; {Turn it off} "CSLU.REG^.XCS.INT:=FALSE; {Xmitter too} {Set up new clock handler, to prevent reentry when priority goes to other tasks} "NEW(CLK); { ;ENTER AT LEVEL 7} "CLK^[0] :=OCTAL('005167'); { COM 1$ ;COUNT ENTRIES} "CLK^[1] :=OCTAL('000016'); "CLK^[2] :=OCTAL('001405'); { BEQ 2$ ;SKIP IF ON} "CLK^[3] :=OCTAL('106746'); { MFPS -(SP) ;FAKE-A-INTERRUPT} "CLK^[4] :=OCTAL('106427'); { MTPS #1 ;SERVICE AT LEVEL 0} "CLK^[5] :=1; { ;INT SERV EXPECTS CARRY SET} "CLK^[6] :=OCTAL('004737'); { JSR PC, @(PC)+ ;JUMP TO IT} "CLK^[7] :=FETCH('000100'); { .WORD 0 ;Old clock vector} "CLK^[8] :=OCTAL('005127'); { 2$: COM (PC)+ ;TURN OFF FLAG} "CLK^[9] :=0; { 1$: .WORD 0} O^g"CLK^[10]:=OCTAL('005767'); { TST 3$ ;TIMER FOR LOCAL USE} "CLK^[11]:=OCTAL('000004'); "CLK^[12]:=OCTAL('001402'); { BEQ 4$} "CLK^[13]:=OCTAL('005327'); { DEC (PC)+ ;TO USE, PUT TIME INTO} "CLK^[14]:=0; { 3$: .WORD 0 ;CLK^[14]} "CLK^[15]:=OCTAL('000006'); { 4$: RTT ;AND WAIT FOR ZERO} "PATCH('000100', ORD(CLK));  {MAKE FLOPPY INTERRUPTABLE} "PATCH('000252',0); {QX controller status word}  {PRINT AN INITIAL CHARACTER TO EACH PORT} "RESTART {Turn on receiver}  END;   PROCEDURE SHUTDOWN; {Must call before leaving program to O/S}  BEGIN "HSLU.REG^.RCS.INT:=FALSE; {Host service OFF!} "PATCH('000100',CLK^[7]); {Repair line clock vector} PATCH('000252',OCTAL('000340')); {Repair QX controller vector} "CSLU.REG^.RCS.INT:=TRUE; {Turn on ...} "CSLU.REG^.XCS.INT:=TRUE; {Console service}   PROCEDURE SETUP; {Call one time only} BEGIN "ALPHALOCK:=TRUE; "NEW(H); {Memory space for handler...} "NEW(Q); { and for input ring buffer.} "WITH H^ DO BEGIN  {LOAD RECEIVE HANDLER} $QBASE:=ORD(Q); $QHEAD:=0; $QTAIL:=0; $STATUS.ERR:=FALSE; ${The following text was generated by MACRO-11, and PAS2RT.} $CODE[ 0] :=OCTAL('010046'); {1$: MOV R0, -(SP) } $CODE[ 1] :=OCTAL('016700'); { MOV QHEAD, R0 } $CODE[ 2] :=OCTAL('177764'); $CODE[ 3] :=OCTAL('066700'); { ADD QBASE, R0 } $CODE["EXIT(TERMINAL) {Ascend to Nirvanna}  END; "  PROCEDURE ABORTCHK;  VAR X:CHAR; BEGIN IF READCH(X,TRUE) THEN ABORT:=(ORD(X)=NUL) OR ABORT END;   PROCEDURE PURGE; {Wait for either from host, or from operator}  BEGIN (* REPEAT "REPEAT ABORTCHK UNTIL RECVBYT(CH) OR ABORT  UNTIL (ORD(CH)=LF) OR ABORT *) END;   PROCEDURE TALLY;  BEGIN WRITECH('.'); LINECNT:=LINECNT+1; IF LINECNT MOD 50=0 THEN WRITELN; END;   PROCEDURE SENDFILE(BINARYMODE: BOOLEAN);  "PROCEDU 4] :=OCTAL('177756'); $CODE[ 5] :=OCTAL('113710'); { MOVB @#RDB, (R0) } $CODE[ 6] :=OCTAL('177522'); $CODE[ 7] :=OCTAL('053767'); { BIS @#RCS, QSTAT } $CODE[ 8] :=OCTAL('177520'); $CODE[ 9] :=OCTAL('177752'); $CODE[10] :=OCTAL('100421'); { BMI 4$ } $CODE[11] :=OCTAL('142720'); { BICB #200, (R0)+ } $CODE[12] :=OCTAL('000200'); $CODE[13] :=OCTAL('166700'); { SUB QBASE, R0 } $CODE[14] :=OCTAL('177732'); $CODE[15] :=OCTAL('020027'); { CMP R0, #QUEUESIZE } PALASM XPLOT, V2.19 I - M.M.I. INTERNAL RELEASE (6-FEB-1986) (C) - COPYRIGHT MONOLITHIC MEMORIES INC., 1984,1985 Title : Bowling I/O Expander Author : Alex R. McKay Pattern : Bowlio.pds Company : Cinematronics Inc. Revision : A Date : 4-16-86  PAL16R4 BOWLIO* D2224* G0*F0* L0000 11111111111111111111111111111111* L0032 01110111111111111111111111111111* L0256 10110111111111111111110111111111* L0288 111111111111111111$CODE[16] :=QUEUESIZE; $CODE[17] :=OCTAL('101401'); { BLOS 2$ } $CODE[18] :=OCTAL('005000'); { CLR R0 } $CODE[19] :=OCTAL('020067'); {2$: CMP R0, QTAIL } $CODE[20] :=OCTAL('177722'); $CODE[21] :=OCTAL('001004'); { BNE 3$ } $CODE[22] :=OCTAL('012767'); { MOV #^B1000100000000000, QSTAT } $CODE[23] :=OCTAL('104000'); $CODE[24] :=OCTAL('177714'); $CODE[25] :=OCTAL('000402'); { BR 4$ } $CODE[26] :=OCTAL('010067'); {3$: MOV R0, QHEAD } $CODE[27] :=OCTAL('177702'); $CODE[211111111111011* L0512 11111111011110111111111111111111* L0768 11111111011111111011111111111111* L1024 11111111011111111111101111111111* L1280 11111111101111111111111111111111* V0001 X00XXXXXXN0XXXXXXZHN* V0002 X1100001XN0XXXXXXZLN* V0003 X0000001XN0XXXXXXZHN* V0004 C1110111XN0XXHHHLZLN* V0005 00110111XN0XXHHHLXHN* V0006 C1111011XN0XXHHLHZLN* V0007 00011011XN0XXHHLHZHN* V0008 C1100001XN0XXLHHHZLN* V0009 00000001XN0XXLHHHZHN* D MD := 'T' END; &'S': BEGIN SENDFILE(FALSE); CMD := 'T' END $END; "UNTIL CMD='T'; "RESTART  END;  PROCEDURE SENDBREAK;  BEGIN WITH HSLU.REG^ DO BEGIN "CLK^[14]:=14; {TIMEOUT 200 DIV 16} "RCS.INT:=FALSE; {Quit listening} "XCS.BREAK:=TRUE; {Send break} "WHILE CLK^[14]>0 DO; {for 200 ms.} "XCS.BREAK:=FALSE; "RESTART {Start listening}  END END;   BEGIN  SETUP;  PROMPT('TERMINAL V01-03... terminal emulator and file transfer utility.');  WRITELN; *TALLY; {Check-sum could be injected easily.} (END; $CLOSE(BINFILE) "END;  PROCEDURE SENDTXTFILE; "VAR REPTCNT: INTEGER; "BEGIN "{XMITCHR(CHR(2));} $REPEAT &READ(TXTFILE,CH); REPTCNT:=1; &CASE ORD(CH) OF (NUL: REPTCNT:=0; (DLE: BEGIN READ(TXTFILE,CH); REPTCNT:=ORD(CH)-32; CH:=' ' END &END; &WHILE REPTCNT>0 DO & BEGIN ( REPTCNT:=REPTCNT-1; XMITCHR(CH); WRITECH(CH); (END; &IF EOLN(TXTFILE) THEN (BEGIN *READLN(TXTFILE); *XMITCHR(CHR(CR)); XMITCHR(CHR(LF)); *WRITELN; (EN PROMPT(' Type DC3 to alphalock, ^NUL to command OR break.');  WRITELN;  REPEAT "IF READCH(CH,FALSE) THEN {Poll keyboard for anything from operator} $IF ORD(CH)=NUL THEN COMMAND &ELSE IF ORD(CH)=EOM THEN SENDBREAK (ELSE *BEGIN * XMITCHR(CH); ,IF ORD(CH) = CR THEN XMITCHR(CHR(LF)); *END; "IF RECVBYT(CH) THEN WRITECH(CH); {Poll handler for anything from HOST}  UNTIL FOREVER;  END.  D; &ABORTCHK; $UNTIL ABORT OR EOF(TXTFILE); $CLOSE(TXTFILE) "END;   BEGIN {SENDFILE} "REPEAT $PROMPT('Local source file name: '); READS(SRC); $IF LENGTH(SRC)>0 THEN &BEGIN (IF BINARYMODE THEN RESET(BINFILE,SRC) *ELSE BEGIN SRC:=CONCAT(SRC,'.TEXT'); RESET(TXTFILE,SRC) END; (IF IORESULT<>0 THEN NOTICE(CONCAT(SRC,' not found!')); &END; "UNTIL (LENGTH(SRC)=0) OR (IORESULT=0); "IF LENGTH(SRC)>0 THEN $BEGIN &(* PROMPT('Host target file name: '); READS(TGT); &IF LENGTH(TGT)>0 THEN (BEGIN *) (LINECNT:=0; *(* S:=CONCAT('HERE COMES ',TGT); {Adjust to HOST. <<<<<<<< } *XMITSTR(S); *) *RESTART; {Sends to HOST} *(* PROMPT('Transmitting'); *) *PURGE; *IF BINARYMODE THEN SENDBINFILE ELSE SENDTXTFILE; *IF ABORT THEN BEGIN NOTICE('Transfer aborted'); .(* XMITCHR(CHR(NUL)) *) END {Send Abort-file character. <<<<<<<< } ,ELSE BEGIN NOTICE(CONCAT('TRANSMISSION OF ',SRC,' COMPLETE')); .(* XMITCHR(CHR(CNTRLZ)) *) END; {Send end-of-file character. <<<<<<<< } ((* END *) $END  END;   PROCE@DURE TAKEFILE;  CONST TIMEOUT= 180; {3 secs max wait for each char <<<<<<<<}  VAR INDEX: INTEGER; PAGE: PACKED ARRAY [0..1023] OF CHAR; " "PROCEDURE PAGEDUMP; {Null fill page buffer, and write} "BEGIN $FILLCHAR(PAGE[INDEX],1024-INDEX,0); INDEX:=0; $IF BLOCKWRITE(BLKFILE,PAGE,2) <> 2 THEN &BEGIN NOTICE('Disk output error'); ABORT:=TRUE END "END; " "PROCEDURE PULLFILE; "BEGIN $(* S:=CONCAT('PLEASE SEND ',SRC); {Adjust to HOST. <<<<<<<< } $XMITSTR(S); *) $RESTART; {Sends to HOST} @$PROMPT('Receiving...'); WRITELN; PURGE; CLK^[14]:=600; $WHILE (CLK^[14]>0) AND (NOT ABORT) DO &BEGIN (IF RECVBYT(CH) THEN *BEGIN ,CLK^[14]:=TIMEOUT; {Reset timeout counter} ,IF ORD(CH)<>LF THEN {Delete all 's} .BEGIN 0PAGE[INDEX]:=CH; INDEX:=INDEX+1; WRITECH(CH); 0IF ORD(CH)=CR THEN 0 BEGIN 0 WRITECH(CHR(LF)); 0 IF INDEX>920 THEN PAGEDUMP 4END .END *END; (ABORTCHK; &END; $WRITELN; $HSLU.REG^.RCS.INT:=FALSE; $IF NOT((INDEX=0) OR ABORT) THEN PAGEDUMP "END; (  BEGIN {@TAKEFILE} "(* PROMPT('Host source file name: '); READS(SRC); "IF LENGTH(SRC)>0 THEN $BEGIN *) &REPEAT (PROMPT('Local target file name: '); READS(TGT); (IF LENGTH(TGT)>0 THEN *BEGIN TGT:=CONCAT(TGT,'.TEXT'); REWRITE(BLKFILE,TGT); ,IF IORESULT<>0 THEN NOTICE(CONCAT(TGT,' is illegal!')); &END; &UNTIL (IORESULT=0) OR (LENGTH(S)=0); &IF LENGTH(TGT)>0 THEN (BEGIN *INDEX:=0; LINECNT:=0; *PAGEDUMP; {Write 2 blks of nulls for EDIT compatibility} *IF NOT ABORT THEN PULLFILE; *IF ABORT THEN @,BEGIN NOTICE('Transfer aborted'); CLOSE(TXTFILE,PURGE) END ,ELSE BEGIN NOTICE(CONCAT('transferred to ',TGT)); .CLOSE(BLKFILE,LOCK) END ((* END *) $END  END;   PROCEDURE COMMAND;  VAR CMD:CHAR;  BEGIN WRITECH(CHR(FF)); REPEAT $HSLU.REG^.RCS.INT:=FALSE; {Stop listening} $WRITECH(CHR(HOME)); $PROMPT('Terminal: S(end file, R(eceive file, T(erminal mode, Q(uit '); $REPEAT UNTIL READCH(CMD,TRUE); WRITELN; ALPHAMAP(CMD); ABORT:=FALSE; $CASE CMD OF &'Q': SHUTDOWN; &'R': BEGIN TAKEFILE; CRE SENDBINFILE; { Binary file xmitter is HOST dependent. <<<<<<<< } "VAR $BUF: PACKED ARRAY [0..7] OF PACKED ARRAY [0..127] OF 0..15; "BEGIN $WHILE (BLOCKREAD(BINFILE,BUF,1) = 1) AND NOT ABORT DO &FOR I:=0 TO 7 DO (BEGIN *FOR J:=0 TO 127 DO ,BEGIN .XMITCHR(CHR(BUF[I,J]+ORD('@'))); .ABORTCHK; IF ABORT THEN BEGIN I:=10; J:=128 END; ,END; *XMITCHR(CHR(CR)); {Send a with each 128 char block} *PURGE; {Wait for reply before proceeding} E @@@@@@@@@@@@@@@F @@@@@@@@@@@@@@@G @@@@@@@@@@@@@@@H @@@@@@@@@@@@@@@I @@@@@@@@@@@@@@@J @@@@@@@@@@@@@@@K @  PROCEDURE SETUP; {Call one time only} BEGIN "ALPHALOCK:=TRUE; "NEW(H); {Memory space for handler...} "NEW(Q); { and for input ring buffer.} "WITH H^ DO BEGIN  {LOAD RECEIVE HANDLER} $QBASE:=ORD(Q); $QHEAD:=0; $QTAIL:=0; $STATUS.ERR:=FALSE; ${The following text was generated by MACRO-11, and PAS2RT.} $CODE[ 0] :=OCTAL('010046'); {1$: MOV R0, -(SP) } $CODE[ 1] :=OCTAL('016700'); { MOV QHEAD, R0 } $CODE[ 2] :=OCTAL('177764'); $CODE[ 3] :=OCTAL('066700'); { ADD QBASE, R0 } $CODE[@  PROCEDURE SETUP; {Call one time only} BEGIN "ALPHALOCK:=TRUE; "NEW(H); {Memory space for handler...} "NEW(Q); { and for input ring buffer.} "WITH H^ DO BEGIN  {LOAD RECEIVE HANDLER} $QBASE:=ORD(Q); $QHEAD:=0; $QTAIL:=0; $STATUS.ERR:=FALSE; ${The following text was generated by MACRO-11, and PAS2RT.} $CODE[ 0] :=OCTAL('010046'); {1$: MOV R0, -(SP) } $CODE[ 1] :=OCTAL('016700'); { MOV QHEAD, R0 } $CODE[ 2] :=OCTAL('177764'); $CODE[ 3] :=OCTAL('066700'); { ADD QBASE, R0 } $CODE[@ 4] :=OCTAL('177756'); $CODE[ 5] :=OCTAL('113710'); { MOVB @#RDB, (R0) } $CODE[ 6] :=OCTAL('177522'); $CODE[ 7] :=OCTAL('053767'); { BIS @#RCS, QSTAT } $CODE[ 8] :=OCTAL('177520'); $CODE[ 9] :=OCTAL('177752'); $CODE[10] :=OCTAL('100421'); { BMI 4$ } $CODE[11] :=OCTAL('142720'); { BICB #200, (R0)+ } $CODE[12] :=OCTAL('000200'); $CODE[13] :=OCTAL('166700'); { SUB QBASE, R0 } $CODE[14] :=OCTAL('177732'); $CODE[15] :=OCTAL('020027'); { CMP R0, #QUEUESIZE } @$CODE[16] :=QUEUESIZE; $CODE[17] :=OCTAL('101401'); { BLOS 2$ } $CODE[18] :=OCTAL('005000'); { CLR R0 } $CODE[19] :=OCTAL('020067'); {2$: CMP R0, QTAIL } $CODE[20] :=OCTAL('177722'); $CODE[21] :=OCTAL('001004'); { BNE 3$ } $CODE[22] :=OCTAL('012767'); { MOV #^B1000100000000000, QSTAT } $CODE[23] :=OCTAL('104000'); $CODE[24] :=OCTAL('177714'); $CODE[25] :=OCTAL('000402'); { BR 4$ } $CODE[26] :=OCTAL('010067'); {3$: MOV R0, QHEAD } $CODE[27] :=OCTAL('177702'); $CODE[2@8] :=OCTAL('012600'); {4$: MOV (SP)+, R0 } $CODE[29] :=OCTAL('000006'); { RTT } "END;  {SET UP HOST RECEIVER} "HSLU.ADR:=OCTAL('177520'); {SLU #1} "{REPEAT UNTIL HSLU.REG^.XCS.RDY;{Wait on ready bit} {<-- Compile iff modem dready valid} "HSLU.REG^.RCS.INT:=FALSE; {Turn off receiver}  HSLU.REG^.XCS.INT:=FALSE; {and transmitter.} {SET UP VECTOR FOR RECEIVER} "PATCH('120', ORD(H)+8); "PATCH('122', OCTAL('200'));  {Turn off all CONSOLE interrupts} @"CSLU.ADR:=OCTAL('177560'); {SLU #0, or 8532 keyboard} "CH:=CSLU.REG^.RDB; {Purge receiver} "CSLU.REG^.RCS.INT:=FALSE; {Turn it off} "CSLU.REG^.XCS.INT:=FALSE; {Xmitter too} {Set up new clock handler, to prevent reentry when priority goes to other tasks} "NEW(CLK); { ;ENTER AT LEVEL 7} "CLK^[0] :=OCTAL('005167'); { COM 1$ ;COUNT ENTRIES} "CLK^[1] :=OCTAL('000016'); "CLK^[2] :=OCTAL('001405'); { BEQ 2$ ;SKIP IF ON} @@@L "CLK^[3] :=OCTAL('106746'); { MFPS -(SP) ;FAKE-A-INTERRUPT} "CLK^[4] :=OCTAL('106427'); { MTPS #1 ;SERVICE AT LEVEL 0} "CLK^[5] :=1; { ;INT SERV EXPECTS CARRY SET} "CLK^[6] :=OCTAL('004737'); { JSR PC, @(PC)+ ;JUMP TO IT} "CLK^[7] :=FETCH('000100'); { .WORD 0 ;Old clock vector} "CLK^[8] :=OCTAL('005127'); { 2$: COM (PC)+ ;TURN OFF FLAG} "CLK^[9] :=0; { 1$: .WORD 0} URE TAKEFILE;  CONST TIMEOUT= 180; {3 secs max wait for each char <<<<<<<<}  VAR INDEX: INTEGER; PAGE: PACKED ARRAY [0..1023] OF CHAR; " "PROCEDURE PAGEDUMP; {Null fill page buffer, and write} "BEGIN $FILLCHAR(PAGE[INDEX],1024-INDEX,0); INDEX:=0; $IF BLOCKWRITE(BLKFILE,PAGE,2) <> 2 THEN &BEGIN NOTICE('Disk output error'); ABORT:=TRUE END "END; " "PROCEDURE PULLFILE; "BEGIN $(* S:=CONCAT('PLEASE SEND ',SRC); {Adjust to HOST. <<<<<<<< } $XMITSTR(S); *) $RESTART; {Sends to HOST} "CLK^[10]:=OCTAL('005767'); { TST 3$ ;TIMER FOR LOCAL USE} "CLK^[11]:=OCTAL('000004'); "CLK^[12]:=OCTAL('001402'); { BEQ 4$} "CLK^[13]:=OCTAL('005327'); { DEC (PC)+ ;TO USE, PUT TIME INTO} "CLK^[14]:=0; { 3$: .WORD 0 ;CLK^[14]} "CLK^[15]:=OCTAL('000006'); { 4$: RTT ;AND WAIT FOR ZERO} "PATCH('000100', ORD(CLK));  {MAKE FLOPPY INTERRUPTABLE} "PATCH('000252',0); {QX controller status word}  {PRINT AN INIT$PROMPT('Receiving...'); WRITELN; PURGE; CLK^[14]:=600; $WHILE (CLK^[14]>0) AND (NOT ABORT) DO &BEGIN (IF RECVBYT(CH) THEN *BEGIN ,CLK^[14]:=TIMEOUT; {Reset timeout counter} ,IF ORD(CH)<>LF THEN {Delete all 's} .BEGIN 0PAGE[INDEX]:=CH; INDEX:=INDEX+1; WRITECH(CH); 0IF ORD(CH)=CR THEN 0 BEGIN 0 WRITECH(CHR(LF)); 0 IF INDEX>920 THEN PAGEDUMP 4END .END *END; (ABORTCHK; &END; $WRITELN; $HSLU.REG^.RCS.INT:=FALSE; $IF NOT((INDEX=0) OR ABORT) THEN PAGEDUMP "END; (  BEGIN {IAL CHARACTER TO EACH PORT} "RESTART {Turn on receiver}  END;   PROCEDURE SHUTDOWN; {Must call before leaving program to O/S}  BEGIN "HSLU.REG^.RCS.INT:=FALSE; {Host service OFF!} "PATCH('000100',CLK^[7]); {Repair line clock vector} PATCH('000252',OCTAL('000340')); {Repair QX controller vector} "CSLU.REG^.RCS.INT:=TRUE; {Turn on ...} "CSLU.REG^.XCS.INT:=TRUE; {Console service} TAKEFILE} "(* PROMPT('Host source file name: '); READS(SRC); "IF LENGTH(SRC)>0 THEN $BEGIN *) &REPEAT (PROMPT('Local target file name: '); READS(TGT); (IF LENGTH(TGT)>0 THEN *BEGIN TGT:=CONCAT(TGT,'.TEXT'); REWRITE(BLKFILE,TGT); ,IF IORESULT<>0 THEN NOTICE(CONCAT(TGT,' is illegal!')); &END; &UNTIL (IORESULT=0) OR (LENGTH(S)=0); &IF LENGTH(TGT)>0 THEN (BEGIN *INDEX:=0; LINECNT:=0; *PAGEDUMP; {Write 2 blks of nulls for EDIT compatibility} *IF NOT ABORT THEN PULLFILE; *IF ABORT THEN "EXIT(TERMINAL) {Ascend to Nirvanna}  END; "  PROCEDURE ABORTCHK;  VAR X:CHAR; BEGIN IF READCH(X,TRUE) THEN ABORT:=(ORD(X)=NUL) OR ABORT END;   PROCEDURE PURGE; {Wait for either from host, or from operator}  BEGIN (* REPEAT "REPEAT ABORTCHK UNTIL RECVBYT(CH) OR ABORT  UNTIL (ORD(CH)=LF) OR ABORT *) END;   PROCEDURE TALLY;  BEGIN WRITECH('.'); LINECNT:=LINECNT+1; IF LINECNT MOD 50=0 THEN WRITELN; END;   PROCEDURE SENDFILE(BINARYMODE: BOOLEAN);  "PROCEDU,BEGIN NOTICE('Transfer aborted'); CLOSE(TXTFILE,PURGE) END ,ELSE BEGIN NOTICE(CONCAT('transferred to ',TGT)); .CLOSE(BLKFILE,LOCK) END ((* END *) $END  END;   PROCEDURE COMMAND;  VAR CMD:CHAR;  BEGIN WRITECH(CHR(FF)); REPEAT $HSLU.REG^.RCS.INT:=FALSE; {Stop listening} $WRITECH(CHR(HOME)); $PROMPT('Terminal: S(end file, R(eceive file, T(erminal mode, Q(uit '); $REPEAT UNTIL READCH(CMD,TRUE); WRITELN; ALPHAMAP(CMD); ABORT:=FALSE; $CASE CMD OF &'Q': SHUTDOWN; &'R': BEGIN TAKEFILE; CRE SENDBINFILE; { Binary file xmitter is HOST dependent. <<<<<<<< } "VAR $BUF: PACKED ARRAY [0..7] OF PACKED ARRAY [0..127] OF 0..15; "BEGIN $WHILE (BLOCKREAD(BINFILE,BUF,1) = 1) AND NOT ABORT DO &FOR I:=0 TO 7 DO (BEGIN *FOR J:=0 TO 127 DO ,BEGIN .XMITCHR(CHR(BUF[I,J]+ORD('@'))); .ABORTCHK; IF ABORT THEN BEGIN I:=10; J:=128 END; ,END; *XMITCHR(CHR(CR)); {Send a with each 128 char block} *PURGE; {Wait for reply before proceeding} MD := 'T' END; &'S': BEGIN SENDFILE(FALSE); CMD := 'T' END $END; "UNTIL CMD='T'; "RESTART  END;  PROCEDURE SENDBREAK;  BEGIN WITH HSLU.REG^ DO BEGIN "CLK^[14]:=14; {TIMEOUT 200 DIV 16} "RCS.INT:=FALSE; {Quit listening} "XCS.BREAK:=TRUE; {Send break} "WHILE CLK^[14]>0 DO; {for 200 ms.} "XCS.BREAK:=FALSE; "RESTART {Start listening}  END END;   BEGIN  SETUP;  PROMPT('TERMINAL V01-03... terminal emulator and file transfer utility.');  WRITELN; *TALLY; {Check-sum could be injected easily.} (END; $CLOSE(BINFILE) "END;  PROCEDURE SENDTXTFILE; "VAR REPTCNT: INTEGER; "BEGIN "{XMITCHR(CHR(2));} $REPEAT &READ(TXTFILE,CH); REPTCNT:=1; &CASE ORD(CH) OF (NUL: REPTCNT:=0; (DLE: BEGIN READ(TXTFILE,CH); REPTCNT:=ORD(CH)-32; CH:=' ' END &END; &WHILE REPTCNT>0 DO & BEGIN ( REPTCNT:=REPTCNT-1; XMITCHR(CH); WRITECH(CH); (END; &IF EOLN(TXTFILE) THEN (BEGIN *READLN(TXTFILE); *XMITCHR(CHR(CR)); XMITCHR(CHR(LF)); *WRITELN; (EN PROMPT(' Type DC3 to alphalock, ^NUL to command OR break.');  WRITELN;  REPEAT "IF READCH(CH,FALSE) THEN {Poll keyboard for anything from operator} $IF ORD(CH)=NUL THEN COMMAND &ELSE IF ORD(CH)=EOM THEN SENDBREAK (ELSE *BEGIN * XMITCHR(CH); ,IF ORD(CH) = CR THEN XMITCHR(CHR(LF)); *END; "IF RECVBYT(CH) THEN WRITECH(CH); {Poll handler for anything from HOST}  UNTIL FOREVER;  END.  D; &ABORTCHK; $UNTIL ABORT OR EOF(TXTFILE); $CLOSE(TXTFILE) "END;   BEGIN {SENDFILE} "REPEAT $PROMPT('Local source file name: '); READS(SRC); $IF LENGTH(SRC)>0 THEN &BEGIN (IF BINARYMODE THEN RESET(BINFILE,SRC) *ELSE BEGIN SRC:=CONCAT(SRC,'.TEXT'); RESET(TXTFILE,SRC) END; (IF IORESULT<>0 THEN NOTICE(CONCAT(SRC,' not found!')); &END; "UNTIL (LENGTH(SRC)=0) OR (IORESULT=0); "IF LENGTH(SRC)>0 THEN $BEGIN &(* PROMPT('Host target file name: '); READS(TGT); &IF LENGTH(TGT)>0 THEN (BEGIN *) (LINECNT:=0; *(* S:=CONCAT('HERE COMES ',TGT); {Adjust to HOST. <<<<<<<< } *XMITSTR(S); *) *RESTART; {Sends to HOST} *(* PROMPT('Transmitting'); *) *PURGE; *IF BINARYMODE THEN SENDBINFILE ELSE SENDTXTFILE; *IF ABORT THEN BEGIN NOTICE('Transfer aborted'); .(* XMITCHR(CHR(NUL)) *) END {Send Abort-file character. <<<<<<<< } ,ELSE BEGIN NOTICE(CONCAT('TRANSMISSION OF ',SRC,' COMPLETE'); .(* XMITCHR(CHR(CNTRLZ)) *) END; {Send end-of-file character. <<<<<<<< } ((* END *) $END  END;   PROCED