,ML   X c0C)HCCH Mhhݩh `eCDiCD`  RyHP   * 1H0芢@) Y0.Ș`i#(PMRR\ \b Pgi 0  % @ / ՠ`d   0DDԝLHN@  )?HI Y0`HIJH) * J j * hJJJ )HJ h i      YS S0 i`ϣ߳ϣ߳H J3xj2h 1 |9 ӭ45(420 *(0241өX.`  R *i)Lvw  ~*PE 5 LN(G E  r s k rsrL ( E LO(0d( L iE0O +)$IC  H S8 q p h   j 8no CDLQ CFl M  LO Ri)Llk2'")*F$F$F$F$F$ 5 )ШF/Șl]kpqС,LQ/A! Ti)Zlk@ ܬ/i)(")")k$F$F$F 5$/L /lF@jj(LNkle$$%8(k()` R 8 ELO Ri)^>jf | NrC s  ) vw5g   enfo Glvw LQ@iLm>j FL ~Jjjjii p qEhjlrs`LQ:$ȱ$@+[_#{ 8  Խut! ai 8   E I   ] C H h    ˰ 8  N   Lm E  ,  [ `LQ ,/ 8 ~/  Ơ? ѩ/  [ / Lj0?MoLn FjMqLp NklLOLQnLoMlNLO R"(+ըHH`Q R!!  % !   / .   FȑF! /GF \H"+0+* ! F t LQnm: J~nTF1F  *n+)5! n (, n)1JJJn(n*o I ,0  ci a oF? @ , 8,0 ʩ0H Eh   i  D ]D mmFLQvtu`*&!*@h ] 0 ^0` c 0l$$%()()%*&J%H,@hH hH@,h $% 8i8$(%)0hhH ]h`() c 0H c 0 h`hhh&JJ ]( ll  LQ0  /qnoHH 9 9 H H  I9  9  Nd EH  Q8 o n  FnoL HII/ Ih8`h`Lnon`no`u F E VEhLO/luF l0BF/lɜɛ׽hE N  b VFL FREE SECTORS C H) *Fh ):FȽ F FC IH' 0 d  i:Fȩ/F.l`CD/08HDICIHȰ/F`ȱ$>.+.i ȱ$:刄H !A \ Hȱ$*?ȝ 2. ? [_{ ,0-:) 0$:>WI  IТ,LQH  0hLd ~ t u`C ?( 0(C.` E  R =! .ti S0N EE D XC )0')AY  )ע ? 0E088FG \on  (HhLcL3 iJ i Lqp 0=rspnqopqlk`jZj0  j FL`HFhȑFȽlFi0 h FFLFpvqwgneofLF pq7  G0i 0 FJJh1FqȱFpȱFk`B!08`hEE D 8. =D}tui( TʩL`b!)    cȌaȌd b`aabH8 hdaHcd8 cH hHH  \h hc` =Hh I8ih( t  ( t(!` L\CJfCJfCJfCDfC` a  HII  INdh  `h  `n)8jHniPoijIjFIjFIjh` a I 38  8H0 I  ' H LQ8j Y  8j NdY  &I &I &IHeH.pIiq  `!.莿 2Jjj }.m Ȉ!m FG` ɩLQ z  e Hi04 \ Ȍ  8 i h !`I0 `C Y8.`DOS SYS I  ` ~ݩ.C/`ba.m۩mѤC9 `C L] H  ,- '0 l , BLVDE`D1:AUTORUN.SYS8hhJ ȱHȱIȱBȱDȱEeeHHLV)  1*  ,,p-  0 I &  '0   Lw)l, 0  I&LD1:MEM.SAVE:D1:DUP.SYSFJ)1CD1:DOS.SYS  * \*`آ R'S )ɀ@  U))% BError loading MEM.SAV or memory!  0* b*c*d*e* R Hd*JSDd*J-=e* 0c*ʈд =}MYDOS 4.50 -- Copyright 1988,˛Disks 1S- D: = D1: ~= =1-8.Dir of D1:-D8: *. Dir of D:A. Disk Directory K. Save MemoryB. Run Cartridge L. Load MemoryC. Copy File(s) M. Run at AddressD. Delete File(s) N. Load MEM.SAVE. Rename File(s) O. Change Config.F. Lock File(s) P. Set DensityG. Unlock File(s) Q. Make DirectoryH. Write DOS Files R. Pick DirectoryI. Initialize Disk S. Set RAMdisk #J. Duplicate Disk V. Set Verify Flag  ?莼( 0  =Select Item ( for menu):@  =ɛL)1L,*L,:W@ ,,L=No such item!L*, -L*, BNeed new file name! BNo drive or directories allowed in new name!Lock Unlock Delete Lock which file?â-#Unlock which file?ɢ-$((H @ AQ/wDelete what file?Ѣ-!((H @ ANJ =Answer 'Y' or 'N'h `B L?;(( ~=( ~= =? =Y ?Lj.H @ AhR ?R)L*,LM/L-Lz-File to rename, new name? @ A(9', ȱ:>0{ ПFull directory name?Z"L.Directory to be used as 'D:'? @ A(5)L.(I: ȱޝL*, BInvalid directory!L?( (0Li-File source, destination? '( @C۩2ڭ82ܭC B9'0 @(ߍeލd(DЍ( ? 9' A rBȱޙ':>Ȍ(C0J* .B :'ȱ/.* #,ɛȝ:' ߰ A L?,(0L*, 'ut(:'3?&' .'Ƚ:'?&'  .ى'Q?''(#( ~= =-->' ~=Q =YR_o (J(  0?B݌''BK)`''utz0( >(L0L*,L?nDisk to FORMAT: YA B(UTލ1 =(Press for Enhanced Dns)Type to Format Drive 2: =AIYZNj[R VL?L*,D1:DUP.SYSDrive to write DOS files to? YAH1:*K)2J) Z wB hpJ) 2<2UTC٩1ة۩کL;Source, Destination (Sectors)? YA)((9'( SA)((((( @(0% =Insert both disks, type  = A( A((/( B(( BDrives not compatible!J(j(9'Hi''h(ɛy BInvalid options! @-&& @)׍&&(&&&۩ک&&&&8* <4&&&& <48*8(ܭ(!ݥ2C, BNot enough memory! ک&&`(Mh  & =L?&i &&&&mm   =  &((&թԥԍ(Ս(((( ( ((C2((ՠԍ((,(0"( "(( =m(m( & &("L*,  ( AL4,(, =Insert DESTINATION disk, press =Nͼ J) b( 0K) ?((ԭ(խ( ( (((L4Drive, new density: YA9'ɛ BDrive unchanged#.(ު90٨Ȍ(SD  ABL)xԌҭHӭ@ @ ʎӆ@ӭ@@ :  $ӹ @hөԥX` Aˠ =RAM disk present? =NL#8 =xlon or E type RAMdisk? =$Aό  L   M A, A6: ' =No extra memory available!L#8L7 & & & =Use default config for 0)ȩ ~= =K? =NL7 =Size(K)? ? @FjFjFjFj: =Page sequence? ? @o* =RAM disk driv%e no? = 09) `8 -8**H***) 9 Ȋ)h9 @@ʊ H'h(#''/'(ɛ ? @(@: 3 ʽ' L7 =Duplicated sequence number!L7 =Wrong number of entries!L7K&큅쀄 =Verify WRITEs? ; =Number of File Buffers? ? @  6 Lw),R( ';L*,Drive number or : =ɛLC99L60Ȍ( =Remove drive? =Y =Is drive configurable? '=YЂ =High capacity drive? =Yy =Is drive double sided? =Y ; =Tracks/side? ? @#0M P( ; =Step rate? =4/ ; ';L*, =Drive size (in sectors)? ? @H(h *;L*,RAM disk drive no? 8L*,Verify WRIT(Es? ;L*, =WNPy`(`(  LABSAVE:filename,start,end(,init(,run)) @TUH @Cp` 2< @؆8օڊ BInvalid START-END range!۩ @  @ hԄՠAμȌZ wB04* ) 0$ڍXۍY֍T׍U,0LBLB #CL?ֆ׌`Load MEM.SAV from what file? 0#L*,L?Load from what file?) @TU&̩Z wB &0&-&а&𨭼INIZ'RV0II BNO CARTRIDGE!*Ԇխ  )L?Run from what address? ?ɛ @ BAddress must be 1-4 hex digits! BHILV n=`hh =HH` =0{a Hɛ n= n=h` n=L*, = = pHH =hh`K: p `(+((( i ɀ((L?(`(B'(0!HH''^>I^>(`^>DH(` (HI`(o5 ~= =( B( >@A (J wB0x((HHIIDDEE B ?(CɈK(٢A ~= =( BL>(B^>,((ڤ ܝHݝI VL_>L?(" B !B J)  B(L& R XY( ?&:0H&((& ( .( & ( .(ʩ(`ލD&ߍEBIʎH( V0`ԩ ؠ-@ȱ@ȱ)@ BError -- 128&`$8f 3AԄձG/ $<68i/(Ԧ`H&եԦ&&eԅheԅԊe(iL*@&&&&ԅL*@B ? 3A?*(ɛ:./2SX(0ȱ/.ɛ(.ލ9'ި0#:Ȱ :ފ :ȱ: : CAD CAޥ`(eޅީe߅`(` @L\A @TUȪ: BFile name not allowed!: )  i( =0+L TUD BNot a disk file!(0` =Insert SOURCE disk, pr/ess =,(pӮ(A(O  1B AB1B ` % 1(L/ b(de BJKO L?O` B((*(((`ȱޙ((:>Ȍ(`D:`OS.SYS,DOS.SYShh =L*, 0 VLJ C C,pLiLF#Խ٩Յ׆  LB` % 1(L/ b(de BJKO L?O` B((*(((`ȱޙ((:>Ȍ(`D:`OS.SYS,DOS.SYShh =L*, F#5م膳;A6S6M6 3Source file = 6O6B6J6 3Object file = 6L6S6T6 3List file = )6ۅ66+6- )6 40nA6S6M65506 40:6 40> ' 0 P0 102$eeL$ 480즛 40*ƆLi%۩6惥Ą兰 L$ 6 40+z"{"HI BzD"E V0L~$L$) 5555L%'55Ⅸ b3*&" 1 33 4P0 ## @2 60 45 575C&" 1 3Press [RETURN] to continue6l <<< RUN/INIT VECTORS >>><<< ERRORS OCCURRED >>>ADCANDASLBCCBCSBEQ BITBMIBNEBPLBRABRKBVCBVSCLCCLDCLICLVCMPCPXC4PYIDBJDCDECDEXDEYCDSHDWBENDEORAEQUEINCLUDEINCINXINY JMP JSRLDA LDX LDYDLISTLSRLMACROMMENDNOPORA@ORGKPAGEPHAPHPPLAPLPROLRORRTIRTSSBCSECSEDSEISTASTXSTYGSUBTTLTAXTAYFTITLETSXTXA5TXSTYA6` / 6 *0 *0;ʪ0=& *0Lq( / *0[&ȱee0赜#{a тOꅇ`斱@L&+ (E)eeL^3 -娅Ɖ婅ƈ i6 ŘV`(, -)rL) -L{) -L)L) 媅aAȱ0{È#u(# - 𶱀,3 *YFX+8`Ɩ -􈱀,s)ȱ,| *Y۩, ,L)Y̦d `\ ߩFƖ - Ř7V"   *XХȱ)О`Ɩ, *XL)ȱ{a ```x ;6` * -<6襉<6膖,_ * *$Z#+ *0 *'+:*g/c%_&B|w]𔦮 ![ ,`Ư8!!`!%![@ ,`! !! ,`L-!!+-[@ ,`!Խ!!<& ,` M1 /1)$0 `U /ɱ$@ȱg5aWG)A7 :00&&&&L.`8`%L@\*x':0:00H& & &eeheeȱLK/ȱ01П&&L/ȱ800&=&&L/ȥȱ'ɛ'ɛ 'SL//A"[ _a{ 啜豀:0蕛`ɛ ȱ ``ۅ6 2兰 /1 2 2$U#LPE# ȝ#eeiř<# @2L>0>6r6 M1RƓĂ僰祐eeJJj(jJJ8j`)т`D` H)΅h  ȱ*(ȱ*`ۆ6嫰T8eejf0 ƃƂ0 ٙ ,Ȱ?eī Ū`ł僰壟 20 2L1 2 20 3 2# 255P0 @200 2 3#L"2`ŲP g5f5e5津ԥ ؠȱd5)d5 B!D5EHI VD@#E BQHILVHJJJJ8 i:#h)8 i:؝#` #P#` 3 3#ɛP`#+3;CHIJKLMNO 2ƒ擤A6B6<6Ē` r3<6 3` r3 3`mz"{"Ũ 3z"{"`~"AH{"mz"|"}" 8hiHI V0}"{"|"Ȍz"{"`l hh BHI Ȅ V䤒ȱȱBHID6E V0 Q4ȹ6eiHH`6#ȹ660.󩛙6 :.Ɠȹ6肋 .6ȭ66ȭ6B6ȭ66ȩ666D6:6` BLV䄒H 4JhDEBLV䄒H B VݦBdHID"E VH"` Page C (C) 1984 WORDMARK Systems#D"E VH"` Page j PlPlPS\%TxH)Ӡ Key buffer is now off.Auto Key Off By Craig S. Thom 6/3/87hXlP`PLgfffffff>`<|fl0fF68of;p88pf< 80 0 ~~`0 0```nf>ff~fff~~f<flxxlf`````~cwkcc Ffv~~nfgggogsss>ggggggfl7g<~~<0~0 ~ ρ<>f>``|ff|<```<>ff>>ff>|``|fff8<<``lxlf8< Hfkc|ffffff>|f```>`<|~ffff>fff<ck>6f< x~ 0~`p||p`pppB#A#/,2/7&2%% I~}@ ` @`LOAD FILE:SAVE FILE:PRINT DEV:FIND WHAT?REP. WITH:DIRECTORY FOR DRIVE [1-2-3-4-8]?DIRECTORY PAUSED - PRESS A KEYDIRECTORY FINISHED - PRESS A KEYDIRECTORY ERRORREPLACE J STRING - Y/N?QUIT EDITORERASE MEMORYPRINT TEXTSAVE I/O ERRORLOAD I/O ERRORPRINTER ERRORPage # !2%9/5352% 9.WORD COUNT: 00000E:P:12348D1:D1:*.*TEDIT a0rogram4ext%ditor7ritten"y "ryan03chappelc ANALOG#ompu Kting 0ressa+ey `{} ~   ڨ­6Z>t1&1*dwǪ=CԪݪܭ4үw`@`OK`''s` ɛ GM`~HЭ hyɀɁ LIL*ɂ I@L*Ƀ@ЬɄ `Ʌ🥒@a { LKœE`Ȅ 嶭,- 嶭67LbHHB ԍhh@Ј报 I?XL_䥍   a`Ȅ ܦȄ M L Υu *)[8 Y 8` `s  aLhhb \_ \@Ԣ B VB JKDE Vl LM`   0*DE8吝H呝I 0 ƪL   *ƪL`ˠ   0 N%  a   ƪL*`ĥ K0ߥą 嶭i ʥi ˥i ̥åɛ S0 K0 0𭥝 KLީƪL   0Q HI 0;H8HII}H}I ƪ LM O  ƪL*ʆ8傅``` 挥ŇeiLᵥLᵩ8ő ML dL`I`Hȱh`8呅Ɖ扑` eLᵩ RL P e`eeɟhh`ee8岅峅 ee``eϫΫeҫѫ褶 ϫҫ`ĸ⥶`LᵥƌƋL  G & b` G &Lb8吅 Qhh``8IeIe8崅嵅 ⫥8弅彅`8剪Hhɛ`"} GLh` } P`I` Ԫyi饇Ō  ŋL ML d}iH RHmi MhhŀL dʥ8Lf ŀL Ԫ 򳄂`8傅` 来L  Ǫ8内88内 `8必 wLᵥ SŇ ee8崅嵅8崅嵅 8弅彅`֠  .`, ]  o ᠤ  .` ꮥ [ Lخ Gш 扥ŇDeił僐)8¥ ᵠI T MI``8…aee8崅嵅淥ū 8 e GīeiLᵠ)?! ;I@L w`Fű ȱŘ8ei PH) ihHhݩ U S08内ũ`ᠥ  ɛ G_L* Y0Р)` ܰ` Ұ) `e扥8内`` 檢B*DEJKLV BLV*© w *Ƭ V8`)x~ ƫ ԤXYɜ𿤫ɛ GX L7ɛX`XY` .hhL::* *ɛ*ESD*`BDELVɛ{a8 i@` BDE WPHILV w -0来> - - -ĩ`젤  *`*  M  ƪL* ܦiiƅ /0Mɛ Gƥ 来iiL˲  *젤 L,  * ƪLܦBD XEHILVii8吅)`&戱)%ȄĂei&@Lʳi(L{`Ő ő`8ő`&%e YiŌإŋ` Y` Y`H****)h)`ة"/ \ \ԩ01 Gyzyz ,ƹ)&&&iE j M 1Ь$)a{8 ZA [8@EL)|0 gh ML´捥ɛ)x0L´ ɛ`H` *h G M8内 ii L´ /8嘥噰8吅 M8勅包mi ML`8 [8吅 `8内``T `&u` ضi`H)hJJJJ`Ȑ 8L d8d 8 iii` \ꝿ( 讀i(iL*8内凅 A`&u` ضi`H)hJJJJ`Ȑ 8L d8d 8 iii` ^ting 0ressa+ey `{} ~   ڨ­6Z>t1&1*dwǪ=CԪݪܭ4үw`@`OK`''s` ɛ GM`~HЭ hyɀɁ L;@F((Opening VT.FNT..P))@@D:VT.FNTZ(Opening VTCHSET.ASM..d..@@ D:VTCHSET.ASMn*(( Working..*(@tmpchsetx Ap(@ db -@@_&)@"(@,& ')@(@' A0((Done!! D:CHMAK.BAS@ D:VTCHSET.ASMn*(( Working..*(@tmpchsetx Ap(@ db -@@x&gW=6hWC&&D&E&+ 5B&&&© 1 V-L*B&˜ ' h4&0& 1&& *L*& & 1 ,& & 1 , , *`RUNTIME ERROR AT LINE &&Lk*+ +L&` '& &L&PaROGRAM STOPPED&&Ńł ȱ`iL'HH **La/ k* r. 1 {+ - . - 1 - ' 1 {+ - 'hhL-ʥ`HHhh`8L'u`Hbuh` Lk*L' Lk*L' ( - ( - ' k* -Lh* ( - ' + ( - ' {+ ' k* ' {+ 1 + - h*Lk* ( ' ' + ( - ' {+ ' k* ' {+ 1 + - !( c- h*Lh* ' ** -La/` ( k* -L- ( r. - {+ ' - ' +L' ( ' + ' - {+ 'L'C&D&E& ) 1 1,E&eC&iD&`E&8LF& - -E&`ʔȱdȱȱ **Șe惠 惨06%*16&* L*HHhh```Lh*ʱ`p B V8+* &)L&l Lw TO BOOT FOR DOS TO REReUN *ȱLk*&&8c5d58凅刐SJj)ee`ффiiL+8L+ LF&uuuLk*8` +Lk*iLk*豂Hȱh`p +Lk*+H+ fBHI+ [4h`8` +Lu, +#` +0 +0Lu, +0` +0L,L},`޵` `Ȕ`ʔ惥u`+ BHIDEH [4hLhg*L+ލ1-+2- +- 0-0 0-Lk* -Lk*` 3-H -h 0 0-`L+8 0ƅ`66&L;-HH` B VhH)Kh)0 IJD-EB [4hLk*S:+Lk*TUVLh* -`++L+ L+ʱȱȱ`ȵȵLk*hLk* - - -ʥ - - - -LK3 - - r. r. **uȱuȱu P* ** -0 ,,LB3 ȱLk* @,LT.ʵ`eeLF&HHhh`ؐHH **La/ k*HH r.i r.6 {+i i .i i -hh - - 'hh -`HH **% k*HH 1L. ** - LF& r.6 {+ - {+` ** -ޠ - 1 {+Lf/  h*Lk*H+ B Vh` ҵ  h*Lh*H+BHjI [4+h+L1 0+KJB@D0EH+ [4h h*Lk* k* -@0Ɔ򩛙@0` -H`B [4h`w0w0L1Lk*Lk* +`H h*hL10HH eHHƆeiH -lꦆk 1Օ`0  L,`8`21(1-12- ,@ 1021L121@021`1 k* -1 1`+6-1L1801LF& + 1 r. 1 1 {++ 1 {+Ɔʭ1 +`ʕ`66`HHH66l666uuuhhhLk* +愵 ' + 'I 1 T280/66&&&`uuu` T2 a2Ј a2 h* +`@\32@2 .22222 LF&ȥmΖ2i22\3`L*J32 J3`LF&2@82ƅJ3 ȱ222` -3L2J3L2H\3 2h`1+ %  88L]3 h* h*` h* h*`  h* h*` ]3$' ]n3"0 ]30 3Lu, 3Lu, 3Lu,L1L1d4 1 - .c4d4g4g4`H+? ++HIc4De4d4Ef4B [4Hg4h` VLF&g4` 3e4 1f4g4g4 1Lh4 3g4LF&e4f4, g4g4e4 1f48ee4f4go4 11L81  'Lk*hhLk* 4L2 4L*d42&&ȱ0 W5L5 W5c5d5&& L25&&`i`C&&D&E&` *ȱ&&%8e慱HȱhױE&iC&iD&Lkp*+ BH Vh 1LP*+&BH [4hN 1 P*L 1MLP*+%BNLMH [4hLh*)v***G*P*o*11{++2+u,M,_,,,,@,%,4,,**++++,,,-,V-----..-/W/y/2231c0x0{00y)///0//333333Q0&='9(_(( )")O)n44h40q45005B3e5s5&55 6 1======$=.=B=L=V=`=j=======  > > >*/>4M>>^>H^>Rd>\>f>p>z>>>>>> ?+?I?`?`?f??? ? ? ?$ ?. ?8 @B ,@L J@V h@` @j @t @~ @r @ @ @ @ @ A 5A SA qA A A A A B B =B( HB2 SB< pBF BP BZ Bd Bn Cx $C BC `C ~C C C C C D 2D PD nD D D D D E" E, /E6 ME@ kEJ ET E^ Eh Er F| F =F [FmFmFqFqFqFwFFFFFsFFG"G,G6G@&GJ=GTPG^cGhoGryG|GGGGGGGGGHH3H7H8H8HMHbH&tH0H:HDHNHXHbHl Iv*IGIHI`IlIIIIIIII J*J 1JHJ _J*iJ4rJ>{JHJRJ\JfJpJzJtJK"K"K0K6KBKNKZKfKKKKKKK$K.K8KBKLLVL`&Lj=LtWL~[LoL|LLLLLLLLLLLL LMM(2M2LM<PMFhMPrMZMdMnMxMM NN-NCN^NyNNNNNNuNNNN"N,N6O@OJOTO^3OhJOrYO|eO}OOOOOOOOOOOOPPPP&)P01P:5PDIPN`PXdPbrPl|PvPPPPPPPPQ QQ$Q;QRQZQ xQQ Q*Q4Q>QHQRQ\ RfRp0Rvz@RURjR|RRRRRRRRRSSSS.S$=S.ZS8oSBsSLSVS`SjStS~SSTT!T/T2=@2=hhh{hh΢̑B2= i̐iͥB2=.i(ΐڥiϐ`Bw=@w=QRRRRRRRRRRRRRRRRRRRWRRBw=RRRRRWRRRRRRRRRRE|Bw=.|Bw=D||ZRRRRRRRRBw=ZRRRRRRRRRRRSRRRWRRRSRRBw=pRRRRRRRRD|Bw=|||#5Bw=23/2|Bw=|||!!.)-Bw=!4%|Bw=||| 5),$Bw="-Cw="-Cw=|Bw=|||##,%!2Bw=|}Bw=-ARRRXRRRD''%4|Bw=B|Bw=W|)).)4|Bw=l|Bw=|,,/!$|Bw=|Bw=|0054|Bw=|Bw=~|33!6%|Bw=||1Bw=15)4|Bw=ARRRRRRRXRRRBw=)RRRRRRRDBw=>|Bw=S|Bw=hARRRRRRRRRRRRRRRBw=}RRRDBw=| Bw=|Bw=| ! #|Bw="-Cw=|Bw=$%&'()*+,-./012345|Bw=|67Bw=89:;<=>?@ABCDEFG|Bw=%|HIJKBw=:LMNOPQRSTUVWXY|QRRRRRBw=ORRRRRRRRRRRRRRDZ[\]^_Bw=d`abcdefghijk||Bw=y|lmnopqrsBw=tuvwxyz{|}|ZRRRRRRRRRBw=RRRRRRRRRRXRRRRRRRRRRBw= RRRRRRRRCB ="#=D&=D&=A)=6)=-)=F)=~F =F = = &= =)=-B = =@"#=D+&=D=G&=QA&=DQ=&GP,=D:A&=D/=Gh&=F:=PG^&=F:9cGh,=&=DAr,=&=DBG/=,=D/|G$,=/=/=F.=GP|G%,=,=D/.FNTBl?,=D+" =2=D.5=D.8=J|G$ /=" ;=3H/=>=|G%+A= MHD=A=@A=bHD=A= A=_tHD=A=>=G=D= =J=D.>=5=D.JM=(D= =P=D.>=S=JV=H =P=D.Y=(S=J =P=D.Y=(S=J =P=D.Y=(S=2J =P=D.Y=(S=:J+ =\=D.S=JV= =P=D.>=S=J+_=@Y=&b=@&#=@,=@(&=@e=&@5=@5=B5=@B5=5=DB#= B#= B#=#=DB#=Bb=-=+*_|\^HN ABCGILPSQAh=jk=h= S=k=n=k= G=n=jn=  /"q=01M=q=q=8=M=(b=D/|G$/=Jt=S=/=e=(t=t=t=|G% =P=D.w=D.M=J4K:7k=o   T&& =\=D.S=J8"#=D INIT (Y/N)? )=6"#=D)=YK =P=D.G=Jz=|G$G=/=~G=/=T/==LG=/=WLG=|G%}==A=@5n=R /.**======")=6= L"#=D==="%Mt=b=D/M$)=b=t=t=F5LMPPM%" Ġ٠= =\=D.e=((J =\=D.t=e=(Jt=dLnLxLL..t= LLLL..t= FLFLFLFL..t= LLLL..t=NV= t= -Nt=t= CN*t= LTL,LL..t= LLLL..t=N============;=*;=* =\=D.5=D.@J ==D.5=D.>=J&=4 CHARACTERS? A*_=&=DA&=DQ=JO_=D/YO|T =\=D.S=JV= =\=D.S=2J |G$A=_=/=/=F5*/=Y=(>=|G%&=LOAD? A*,*4,=D7 ==D.G=JN&=SAVE? A*,*4,=D7 ==D. G=J4"#=D4"#=DĠŠ=V= P&=SELECT A&=_=DB&= ? B*|G$&=D_=/=/=F=QP|G%A=&=D5}=="}=="=6>=G=}= = =QQ=*Q}=}==+Q}=}= =-Q== ==Q===Q==Q=}= R}=}=R}===R0RD=>=G=  D=@URA=D= D=?jRA=D=@ D=_|RA=D==RR=}= =  =P=D.=>=J0**t=R =J=D.>=5=D.J ==D.5=D.>=J= ;=&=CHRS? A*&=D/=SSLOW FAST QUIT =J=D.G=5=D.J*==S=>S~====@S=@" FAST=8S== ==T=" SLOW =//T"#=D&=D/|G$A=&=/=/=F5* =2=D.5=D.8=J ==D.=J|G%=T2"==T SLOW =@T FAST==@ T2 SLOW FASTB ==D.t=>=J0**== ==== ==== ====== =====U==U==U==U== V^=== &=5===FA&=D~=?V&=A"&=D=QV&=~A5===&=DC&=D ==D.5=D.>=J:*;= V| =" = >======V=V*"#=D QUIT (Y/N)? )=6)=Y%W"#=Djh= R}& ==D.5=D.>=J:*;= V| =" = >======V=V*"#=D QUIT (Y/N)? )=6)=Y%W"#=Djh= R} DDDDDDfD"D"D"DDD""D"DDDD"DDDDDDDDDDDDDD""DDDDDDDDD"D"""f""""D̪D"DDDDDDf"DDDDDD"DD"D"DD"DDDfD̪̪ff̪ffDDDDf"""D̪"̪̈"̪̪fD""DDDDDDDDDDDD"DfDDDDfDD""DDDDDUUUUDDDwDDDDDDDDDDDDDDDDDDDDDDDDDD"DD"D"D"DDDDDDwDDDDDDDDDDDDDDDDDDDDDw(80p p0` D""̪ff""ffDffff"̪DDDf"""""̪DDDDf̪DD̪̈ff""ffD"DDDDfDDDf""DfDDDfDDDDDDDDD"DDTTTTTT"̪ff""ffDffff"̪DDDf"""""̪DDDDf̪DD̪̈ff""ffD"DDDDfDDDf""DfDDDfDDDDDDDDD"DD tmpchset db 0,0,0,0,0,0,0,0 db 0,68,68,68,68,0,68,0 db 0,170,170,0,0,0,0,0 db 0,170,238,170,238,170,0,0 db 68,102,136,68,34,204,68,0 db 0,136,34,68,136,34,0,0 db 0,68,170,68,170,68,34,0 db 0,34,68,0,0,0,0,0 db 0,34,68,68,68,68,34,0 db 0,136,68,68,68,68,136,0 db 0,170,68,238,68,170,0,0 db 0,68,68,238,68,68,0,0 db 0,0,0,0,0,68,68,136 db 0,0,0,238,0,0,0,0 db 0,0,0,0,0,68,68,0 db 0,34,34,68,68,136,136,0 db 0,68,170,170,170,170,68,0 db 0,68,204,68,68,68,238,0 db 0,68,170,34,68,136,238,0 db 0,204,34,204,34,34,204,0 db 0,170,170,170,102,34,34,0 db 0,238,136,204,34,34,204,0 db 0,68,136,204,170,170,68,0 db 0,238,34,68,68,136,136,0 db 0,68,170,68,170,170,68,0 db 0,68,170,170,102,34,68,0 db 0,0,68,0,0,68,0,0 db 0,0,68,0,68,68,136,0 db 0,34,68,136,68,34,0,0 db 0,0,238,0,238,0,0,0 db 0,136,68,34,68,136,0,0 db 0,68,170,34,68,0,68,0 db 0,68,238,238,170,136,102,0 db 0,68,170,170,238,170,170,0 db 0,204,170,204,170,170,238,0 db 0,102,136,136,136,136,102,0 db 0,204,170,170,170,170,204,0 db 0,238,136,238,136,136,238,0 db 0,238,136,238,136,136,136,0 db 0,102,136,136,170,170,102,0 db 0,170,170,238,170,170,170,0 db 0,238,68,68,68,68,238,0 db 0,102,34,34,34,170,68,0 db 0,170,170,204,170,170,170,0 db 0,136,136,136,136,136,238,0 db 0,170,238,170,170,170,170,0 db 0,34,170,238,238,170,136,0 db 0,238,170,170,170,170,238,0 db 0,204,170,170,204,136,136,0 db 0,238,170,170,170,238,34,0 db 0,204,170,204,170,170,170,0 db 0,102,136,68,34,34,204,0 db 0,238,68,68,68,68,68,0 db 0,170,170,170,170,170,238,0 db 0,170,170,170,170,68,68,0 db 0,170,170,170,170,238,170,0 db 0,170,170,68,68,170,170,0 db 0,170,170,170,68,68,68,0 db 0,238,34,68,136,136,238,0 db 0,102,68,68,68,68,102,0 db 0,136,136,68,68,34,34,0 db 0,204,68,68,68,68,204,0 db 0,68,170,0,0,0,0,0 db 0,0,0,0,0,0,238,0 db 170,85,170,85,170,85,170,85 db 68,68,68,119,68,68,68,68 db 17,17,17,17,17,17,17,17 db 68,68,68,204,0,0,0,0 db 68,68,68,204,68,68,68,68 db 0,0,0,204,68,68,68,68 db 0,68,68,238,238,68,68,0 db 0,68,170,68,0,0,0,0 db 0,68,238,68,0,238,0,0 db 0,34,68,136,68,34,238,0 db 0,136,68,34,68,136,238,0 db 0,0,255,170,170,170,170,0 db 0,34,238,68,238,136,0,0 db 0,68,204,68,238,68,238,0 db 0,0,0,68,68,0,0,0 db 255,0,0,0,0,0,0,0 db 0,255,0,0,0,0,0,0 db 0,0,0,119,68,68,68,68 db 0,0,0,255,0,0,0,0 db 68,68,68,255,68,68,68,68 db 0,0,0,255,0,0,0,0 db 0,0,0,0,0,255,0,0 db 136,136,136,136,136,136,136,136 db 0,0,0,255,68,68,68,68 db 68,68,68,255,0,0,0,0 db 0,0,0,0,0,0,0,255 db 68,68,68,119,0,0,0,0 db 245,171,175,171,0,40,56,170 db 0,14,24,48,24,24,14,0 db 0,112,24,12,24,24,112,0 db 0,24,48,0,0,0,0,0 db 0,96,146,12,0,0,0,0 db 0,68,34,0,0,0,0,0 db 0,0,204,34,238,170,238,0 db 0,136,136,204,170,170,204,0 db 0,0,102,136,136,136,102,0 db 0,34,34,102,170,170,102,0 db 0,0,68,170,238,136,102,0 db 0,102,136,238,136,136,136,0 db 0,0,102,170,170,102,34,204 db 0,136,136,204,170,170,170,0 db 0,68,0,204,68,68,102,0 db 0,34,0,34,34,34,34,204 db 0,136,136,170,204,170,170,0 db 0,204,68,68,68,68,102,0 db 0,0,170,238,170,170,170,0 db 0,0,204,170,170,170,170,0 db 0,0,68,170,170,170,68,0 db 0,0,204,170,170,204,136,136 db 0,0,102,170,170,102,34,34 db 0,0,102,136,136,136,136,0 db 0,0,102,136,68,34,204,0 db 0,68,238,68,68,68,102,0 db 0,0,170,170,170,170,238,0 db 0,0,170,170,170,68,68,0 db 0,0,170,170,170,238,170,0 db 0,0,170,170,68,170,170,0 db 0,0,170,170,170,102,34,204 db 0,0,238,34,68,136,238,0 db 0,102,68,136,68,68,102,0 db 68,68,68,68,68,68,68,68 db 0,204,68,34,68,68,204,0 db 255,255,255,255,255,255,255,255 db 0,84,84,84,84,84,84,0;0,170,238,170,0 db 0,0,170,170,68,170,170,0 db 0,0,170,170,170,102,34,204 db 0,0,238,34,68,136,238,0 db 0,102,68,136,68,68,102,0 db 68,68,68,68,68,68,68,68 db 0,204,68,34,68,68,F8K8P?@     Y`  Y0 l `883J)I*P Terminal 󠠠Ӡ򠠠Ԡ (21Really wanna quit? Quit M;; Ԡ ; A VT-100 terminal emulator ; by Itay Chamiel ;; Version 1.0 - (c)1994 ;; Part of main program - VT1.ASM;init cld ldx #0chsetinit lda tmpchset,x sta charset,x lda tmpchset+$100,x sta charset+$100,x( lda tmpchset+$200,x sta charset+$200,x lda tmpchset+$300,x sta charset+$300,x inx cpx #0 bne chsetinit; lda $79 bne nofefe lda #$fe sta $79 sta $7anofefe lda 12 sta jrst+1 lda 13 sta jrst+2 lda #LO[reset] sta 12 lda #HI[reset] sta( 13 lda #0 taxerchset sta charset,x inx cpx #8 bne erchset ldx #0tabchdo lda xchars,x sta dlist-16,x inx cpx #16 bne tabchdo lda #0 sta 580; jsr close2; ldx #$20 lda #3 sta iccom+$20 lda #4 sta icaux1+$20 lda #0 sta icaux2+$20( lda #LO[cfgname] sta icbal+$20 lda #HI[cfgname] sta icbah+$20 jsr ciov cpy #128 bcc initopok jsr close2 ldx #0interrlp lda cfgdat,x sta savddat,x inx cpx #13 bne interrlp jmp interrinitopok ldx #$20 lda #5 sta iccom+$20 lda #LO[savd(dat] sta icbal+$20 lda #HI[savddat] sta icbah+$20 lda #13 sta icbll+$20 lda #0 sta icblh+$20 jsr ciov; jsr close2 jmp norstreset lda #0 sta 559 jsr vdelay lda #LO[regmode] sta trmode+1 lda #HI[regmode] sta trmode+2 lda $79 bne jrst( lda #$fe sta $79 sta $7ajrst jsr rtsplcnorst ldx #0getcfglp lda savddat,x sta cfgdat,x inx cpx #13 bne getcfglp;interr lda autowrap sta wrpmode; jsr vdelay lda #24 sta look lda #0 taxclkinit sta clockdat,x inx cpx #8 bne clki(;; Ԡ terminal emulator ; by Itay Chamiel ;; (This is the file to assemble if ; you don't want the 850 interface ; booter installed automatically.) ;; Assembling will create VTNR.OBJ. ; include VTIN.ASM include VTV.ASM include%nit sta dobell sta doclick sta flashcnt sta newflash sta oldflash sta fscrolup sta fscroldn lda bckgrnd and #3 sta bckgrnd asl a asl a tax ldy #0scollp lda sccolors,x sta 709,y inx iny cpy #4 bne scollp lda 712 sta sv712 lda #0 (sta 712 lda drive clc adc #49 sta fldrive ldy #LO[vbi1] ldx #HI[vbi1] lda #6 jsr setvbv ldy #LO[vbi2] ldx #HI[vbi2] lda #7 jsr setvbv lda #LO[dli] sta 512 lda #HI[dli] sta 513 lda #192 sta 54286 lda #0 sta 559 lda #HI[dlist] sta 56(1 sta prchar+1 lda #LO[dlist] sta 560 clc adc #2 sta prchar lda #$70 sta dlist sta dlist+1 lda #LO[screen] sta cntrl lda #HI[screen] sta cntrh ldx #0dodl ldy #0 lda #$4f sta (prchar),y iny lda cntrl sta (prchar),y clc adc #LO[320]( (40*8) sta cntrl iny lda cntrh sta (prchar),y adc #HI[320] sta cntrh lda #$f iny sta (prchar),y iny sta (prchar),y iny sta (prchar),y iny sta (prchar),y iny sta (prchar),y iny sta (prchar),y iny sta (prchar),y clc lda prchar adc( #10 sta prchar inx cpx #1 bne dlnoblnk lda #0 tay sta (prchar),y inc prchardlnoblnk cpx #25 bne dodl lda dlist+2 ora #128 sta dlist+2 ldy #0 lda #$41 sta (prchar),y sta dlst2+$100 iny lda #LO[dlist] sta (prchar),y sta dlst2+$101 (iny lda #HI[dlist] sta (prchar),y sta dlst2+$102 lda #LO[screen-320] sta dlist+3 lda #HI[screen-320] sta dlist+4 lda #LO[screen-640] sta dlist+134 lda #HI[screen-640] sta dlist+135 ldx #0dlcplp lda dlist,x sta dlst2,x inx cpx #0 bne dl(cplp lda #LO[xtraln] sta cntrl sta nextln lda #HI[xtraln] sta cntrh sta nextln+1 jsr erslineraw; lda dlist+3 sta linadr lda dlist+4 sta linadr+1 ldx #10 ldy #2mklnadrs lda dlist+4,x sta linadr,y lda dlist+5,x sta linadr+1,y iny iny( txa clc adc #10 tax cpx #250 bne mklnadrs; lda #LO[txscrn] sta cntrl lda #HI[txscrn] sta cntrh ldx #0mktxlnadrs lda cntrl sta txlinadr,x lda cntrh sta txlinadr+1,x inx inx clc lda cntrl adc #80 sta cntrl lda cntrh adc #0 sta cn(trh cpx #48 bne mktxlnadrs jsr clrscrn; ldy #menudta&255 ldx #menudta/256 jsr prmesgnov;; Open K: for I/O; ldx #$10 lda #12 sta iccom+$10 jsr ciov; ldx #$10 lda #3 sta iccom+$10 lda #4 sta icaux1+$10 lda #0 sta icaux2+$10 lda #kna(me&255 sta icbal+$10 lda #kname/256 sta icbah+$10 jsr ciov; lda #0 taxsettabs sta tabs,x inx cpx #80 bne settabs ldx #8settabs2 lda #1 sta tabs,x txa clc adc #8 tax cpx #80 bcc settabs2 lda #1 sta g1set sta savg1 sta scrltop s(ta ty sta savcursy lda #24 sta scrlbot jsr rslnsize lda #LO[buffer] sta bufget sta bufput lda #HI[buffer] sta bufget+1 sta bufput+1 lda #0 sta outnum sta crsscrl sta rush sta didrush sta mybcount sta mybcount+1 sta oldbufc sta numofwi(n sta ctrl1mod sta newlmod sta invon sta capslock sta useset sta iggrn sta undrln sta blink sta revvid sta invsbl sta seol sta g0set sta savg0 sta chset sta savchs sta ckeysmod sta numlock sta tx sta savcursx sta mnmnucnt lda #255 (sta 764 lda #17 sta x lda #5 sta y lda #2 sta lnsizdat+4 lda #3 sta lnsizdat+5 ldx #0prtillp lda tilmesg1,x sta prchar txa pha jsr printerm pla tax inc y lda tilmesg1,x sta prchar txa pha jsr printerm pla tax dec y inc x inx( cpx #5 bne prtillp; ldx #HI[tilmesg2] ldy #LO[tilmesg2] jsr prmesgnov ldx #HI[tilmesg3] ldy #LO[tilmesg3] jsr prmesgnov ldx #HI[tilmesg4] ldy #LO[tilmesg4] jsr prmesgnov ldx #HI[tilmesg5] ldy #LO[tilmesg5] jsr prmesgnov ldx #HI[tilmesg6]( ldy #LO[tilmesg6] jsr prmesgnov; jsr rslnsize lda linadr+34 clc adc #17 sta cntrl lda linadr+35 adc #0 sta cntrh ldx #0 ldy #0tltdr lda icesoft,x sta (cntrl),y inx iny cpy #5 bne tltdr ldy #0 lda cntrl clc adc #40 sta cntrl ld(a cntrh adc #0 sta cntrh cpx #40 bne tltdr jsr ropen cpy #128 bcc ropok ldx #norhw/256 ldy #norhw&255 jsr drawwin lda sv712 sta 712 lda #34 sta 559 jsr getkey jmp doquitropok lda sv712 sta 712 lda #34 sta 559 jsr getkeybuff jsr cl(rscrn;;lda $216;sta irqexit+1;lda $217;sta irqexit+2;lda #LO[irq];sta $216;lda #HI[irq];sta $217; lda #32 ldx #0txsvclr sta txsav,x sta txsav+$100,x sta txsav+$200,x sta txsav+$300,x sta txsav+$400,x sta txsav+$500,x sta txsav+$600,x( sta txsav+$680,x inx cpx #0 bne txsvclr lda #LO[txsav] sta scrlsv lda #HI[txsav] sta scrlsv+1; jmp mnmnloopmnmenu lda mnlnofbl sta lnofbl jsr getscrnmnmnloop ldx #mnmnuxdt/256 ldy #mnmnuxdt&255 lda mnmnucnt sta mnucnt lda mnmenux s(ta menux; jsr menudo2; lda menux sta mnmenux lda mnucnt sta mnmnucnt lda lnofbl sta mnlnofbl lda menret cmp #255 beq mnquit asl a tax lda mntbjmp+1,x pha lda mntbjmp,x phartsplc rtsmnquit ldx #mnquitw/256 ldy #mnquitw&255 jsr dra(wwin ldx #mnquitd/256 ldy #mnquitd&255 lda #0 sta mnucnt jsr menudo2 lda menret cmp #255 beq mnodoquit cmp #0 beq mnodoquit jmp doquitmnodoquit jmp mnmenu;doquit lda #2 sta 82 jsr buffdo jsr close2 jsr vdelay lda jrst+1 sta 12 lda( jrst+2 sta 13 ldx #sysvbv/256 ldy #sysvbv&255 lda #6 jsr setvbv ldx #xitvbv/256 ldy #xitvbv&255 lda #7 jsr setvbv ldx #$60 lda #12 sta iccom+$60 jsr ciov ldx #$60 lda #3 sta iccom+$60 lda #sname&255 sta icbal+$60 lda #sname/256 sta (icbah+$60 lda #12 sta icaux1+$60 lda #0 sta icaux2+$60 jsr ciov lda #0 sta 767 jmp ($a);bkopt jsr getscrn lda svmnucnt sta mnucnt jmp bkopt2options lda #0 sta mnucnt ldx #optmnu/256 ldy #optmnu&255 jsr drawwinbkopt2 ldx #optmnudta/(256 ldy #optmnudta&255 jsr menudo2 lda mnucnt sta svmnucnt lda menret cmp #255 bne optprscc jmp mnmenuoptprscc asl a tax lda opttbl+1,x pha lda opttbl,x pha rts;bkset jsr getscrn lda svmnucnt sta mnucnt jmp bkset2settings lda #0( sta mnucnt ldx #setmnu/256 ldy #setmnu&255 jsr drawwinbkset2 ldx #setmnudta/256 ldy #setmnudta&255 jsr menudo2 lda mnucnt sta svmnucnt lda menret cmp #255 bne setprcss jmp mnmenusetprcss asl a tax lda settbl+1,x pha lda settbl,x pha( rts;; Configure terminal parameters:;setbps ; 堛 ldx #setbpsw/256 ldy #setbpsw&255 jsr drawwin ldx #setbpsd/256 ldy #setbpsd&255 lda baudrate sec sbc #8 sta mnucnt jsr menudo1 lda menret cmp #255 beq nodobps lda mnucnt (clc adc #8 cmp baudrate beq nodobps sta baudrate jsr vdelay jsr ropennodobps jmp bkset;setloc ;  ldx #setlocw/256 ldy #setlocw&255 jsr drawwin ldx #setlocd/256 ldy #setlocd&255 lda localecho sta mnucnt jsr menudo1 lda (menret cmp #255 beq nodoloc sta localechonodoloc jmp bksetsetbts ; ﮠ ldx #setbtsw/256 ldy #setbtsw&255 jsr drawwin ldx #setbtsd/256 ldy #setbtsd&255 lda stopbits clc rol a rol a sta mnucnt jsr menudo1 lda menret c(mp #255 beq nodobts clc ror a ror a cmp stopbits beq nodobts sta stopbits jsr vdelay jsr ropennodobts jmp bkset;setwrp ; ldx #setwrpw/256 ldy #setwrpw&255 jsr drawwin ldx #setwrpd/256 ldy #setwrpd&255 lda autowrap( eor #1 sta mnucnt jsr menudo1 lda menret cmp #255 beq nodowrp eor #1 sta autowrap sta wrpmodenodowrp jmp bkset;setclk ; 堛 ldx #setclkw/256 ldy #setclkw&255 jsr drawwin ldx #setclkd/256 ldy #setclkd&255 lda click st(a mnucnt jsr menudo1 lda menret cmp #255 beq nochclk sta clicknochclk jmp bkopt;setscr ; 栛 ldx #HI[setscrw] ldy #LO[setscrw] jsr drawwin ldx #HI[setscrd] ldy #LO[setscrd] lda finescrol sta mnucnt jsr menudo1 lda menr(et cmp #255 beq nodoscr sta finescrolnodoscr jmp bkopt;setcol ; ldx #setcolw/256 ldy #setcolw&255 jsr drawwin lda bckgrnd asl a asl a asl a asl a clc adc bckcolr sta mnucnt ldx #setcold/256 ldy #setcold&255 j(sr menudo1 lda menret cmp #255 beq nodocolr pha and #15 sta bckcolr pla lsr a lsr a lsr a lsr a sta bckgrnd asl a asl a tax ldy #0collp lda sccolors,x sta 709,y inx iny cpy #4 bne collpnodocolr jmp bkopt;setcrs ; ( (_/) ldx #setcrsw/256 ldy #setcrsw&255 jsr drawwin ldx #setcrsd/256 ldy #setcrsd&255 lda curssiz lsr a and #1 sta mnucnt jsr menudo1 lda menret cmp #255 beq nodocurs cmp #1 bne docrs1 lda #6docrs1 sta curssiznodocurs jmp bkop(t;setdel ; ldx #setdelw/256 ldy #setdelw&255 jsr drawwin ldx #setdeld/256 ldy #setdeld&255 lda delchr sta mnucnt jsr menudo1 lda menret cmp #255 beq nododel sta delchrnododel jmp bkset;settmr ; ldx #settm(rw/256 ldy #settmrw&255 jsr drawwin lda #0 taxsettmrlp sta clockdat,x inx cpx #7 bne settmrlp jsr getkeybuff jmp bkoptsetclo ; 렛 ldy #6 ldx #3sclp1 lda clockdat,y clc adc #48 sta setclow+1,x ora #128 sta setclkpr,xscnk i(nx cpx #5 beq scnk dey cpy #2 bne sclp1 ldx #HI[setclow] ldy #LO[setclow] jsr drawwin lda #0 sta erslscmn ldx ersl lda setclkpr+3,x and #127 sta setclkpr+3,x ldx #HI[setclkpr] ldy #LO[setclkpr] jsr prmesg ldx ersl lda setclkpr+3,x o(ra #128 sta setclkpr+3,x jsr getkeybuff cmp #27 bne scnes jmp bkoptscnes cmp #48 bcc scnonum cmp #58 bcs scnonum jsr chkclok ldx ersl ora #128 sta setclkpr+3,x jsr scrt jmp scmnscnonum cmp #42 bne scnort jsr scrt jmp scmnscnort cm(p #43 bne scnolt jsr sclt jmp scmnscnolt cmp #155 bne scmn ldy #6 ldx #0scrtlp lda setclkpr+3,x sec sbc #176 sta clockdat,y deyscrto inx cpx #2 beq scrto cpy #255 bne scrtlp jmp bkoptscrt inc ersl lda ersl cmp #5 bne srto lda (#0 sta erslsrto cmp #2 beq scrt rtssclt dec ersl lda ersl cmp #255 bne slto lda #4 sta erslslto cmp #2 beq sclt rts;savcfg ; ; ldx #savcfgw/256 ldy #savcfgw&255 jsr drawwin jsr buffdo jsr close2; ldx #$20 l(da #3 sta iccom+$20 lda #8 sta icaux1+$20 lda #0 sta icaux2+$20 lda #cfgname&255 sta icbal+$20 lda #cfgname/256 sta icbah+$20 jsr ciov cpy #128 bcc savnr1 jmp savcfgerrsavnr1; ldx #$20 lda #9 sta iccom+$20 lda #cfgdat&255 sta icbal+$(20 lda #cfgdat/256 sta icbah+$20 lda #13 sta icbll+$20 lda #0 sta icblh+$20 jsr ciov cpy #128 bcc savnr2 jmp savcfgerrsavnr2; ldx #0savcfglp lda cfgdat,x sta savddat,x inx cpx #10 bne savcfglp; jsr ropen jmp bksetsavcfgerr jsr nu(mber lda numb sta savcfgn lda numb+1 sta savcfgn+1 lda numb+2 sta savcfgn+2 ldx #HI[savcfgwe1] ldy #LO[savcfgwe1] jsr prmesg ldx #HI[savcfgwe2] ldy #LO[savcfgwe2] jsr prmesg jsr ropen jsr getkeybuff jmp bkset;; --- Menu Doer --- ; Need(s:; X,Y - addr of data table holding:; # of plcs X, # of plcs Y, length; of blocks. (min. 1 for all), X,Y; of each place..;menudo1 lda #0 sta nodoinv beq menudo3menudo2 lda #1 sta nodoinvmenudo3 stx prfrom+1 sty prfrom ldy #0 lda (prfro(m),y sta noplcx iny lda (prfrom),y sta noplcy iny lda (prfrom),y lsr a sta lnofbl lda prfrom clc adc #3 sta prfrom lda prfrom+1 adc #0 sta prfrom+1 ldx noplcy lda noplcx cpx #1 beq mnomltplmnmltply clc adc noplcx dex cpx #1 bne (mnmltplymnomltpl sta noplcs lda mnucntmnuxdo cmp noplcx bcc mnuxok sec sbc noplcx jmp mnuxdomnuxok sta menuxmxstrt lda mnucnt asl a tay lda (prfrom),y lsr a sta x iny lda (prfrom),y asl a tax lda linadr,x clc adc x sta invlo l(da linadr+1,x adc #0 sta invhi lda nodoinv bne nodoinvl jsr doinvnodoinvl lda #0 sta nodoinvmxmloop jsr getkeybuff cmp #43 bne mxnolt lda mnucnt cmp #0 bne mxlt lda noplcs sta mnucnt lda noplcx sta menuxmxlt dec mnucnt dec menux l(da menux cmp noplcx bcc mxlt1 lda noplcx sta menux dec menuxmxlt1 jsr doinv jmp mxstrtmxnolt cmp #42 bne mxnort inc mnucnt inc menux lda menux cmp noplcx bcc mxrt1 lda #0 sta menuxmxrt1 lda mnucnt cmp noplcs bne mxrt lda #0 sta m(nucnt sta menuxmxrt jsr doinv jmp mxstrtmxnort cmp #61 bne mxnodown lda mnucnt clc adc noplcx sta mnucnt cmp noplcs bcc mxdown inc menux lda #0 ldx menux cpx noplcx bcs mxdwn1 lda menuxmxdwn1 sta mnucnt sta menuxmxdown jsr doinv( jmp mxstrtmxnodown cmp #45 bne mxnoup lda mnucnt sec sbc noplcx sta mnucnt cmp noplcs bcc mxup dec menux lda menux cmp #255 bne mxup1 lda noplcs sta mnucnt dec mnucnt lda noplcx sta menux dec menux jmp mxupmxup1 lda noplcs sec s(bc noplcx clc adc menux sta mnucntmxup jsr doinv jmp mxstrtmxnoup cmp #27 bne mxnoesc lda #255 sta menret rtsmxnoesc cmp #155 bne mxnoretmxret lda mnucnt sta menret rtsmxnoret cmp #32 beq mxret jmp mxmloop;; Inverse-bar maker; (invhi,lo - addr of place; lnofbl - length of block (bytes);doinv lda invhi sta cntrh lda invlo sta cntrl ldx #0invlp ldy #0invlp2 lda (cntrl),y eor #255 sta (cntrl),y iny cpy lnofbl bne invlp2 lda cntrl clc adc #40 sta cntrl lda (cntrh adc #0 sta cntrh inx cpx #8 bne invlp rts;; -- Window drawer -- ;; Reads from X,Y registers addr ; that holds a table holding... ; top-x,top-y,bot-x,bot-y,string ;drawwin stx prfrom+1 sty prfrom tya pha txa pha ld(y #0winvlp lda (prfrom),y sta topx,y iny cpy #4 bne winvlp;; The following copies the memory ; that will be erased because of ; this window, into a buffer. ; lda numofwin asl a tax lda winbufs,x sta prfrom inx lda winbufs,x sta p(rfrom+1; inc boty inc boty inc botx lsr topx lsr botx; ldy #0svwndat lda topx,y sta (prfrom),y iny cpy #4 bne svwndat lda prfrom clc adc #4 sta prfrom lda prfrom+1 adc #0 sta prfrom+1;wincpinit lda topy asl a tax lda linadr,x( clc adc topx sta cntrl lda linadr+1,x adc #0 sta cntrh lda botx sec sbc topx clc adc #1 sta winchng1+1 ldx #0 ldy #0wincplp lda (cntrl),y sta (prfrom),y inywinchng1 cpy #0 bne wincplp ldy #0 lda cntrl clc adc #40 sta cntrl lda( cntrh adc #0 sta cntrh lda prfrom clc adc winchng1+1 sta prfrom lda prfrom+1 adc #0 sta prfrom+1 inx cpx #8 bne wincplp inc topy lda topy cmp boty bne wincpinit inc numofwin; pla sta prfrom+1 pla sta prfrom ldy #0winvlp2 lda (p(rfrom),y sta topx,y iny cpy #4 bne winvlp2 lda prfrom clc adc #4 sta prfrom lda prfrom+1 adc #0 sta prfrom+1 lda botx cmp #77 bcc winxokwinyno rtswinxok lda boty cmp #23 bcs winyno; lda topx sta x lda topy sta y lda #145 sta p(rchar jsr print inc xtplnlp lda #146 sta prchar jsr print inc x lda x cmp botx bne tplnlp lda #133 sta prchar jsr print dec botx inc ywinlp lda topx sta x lda #252 sta prchar jsr print inc x lda #160 sta prchar jsr print inc x(wlnlp ldy #0 lda (prfrom),y eor #128 sta prchar jsr print inc prfrom lda prfrom bne wnocr inc prfrom+1wnocr inc x lda x cmp botx bne wlnlp lda #160 sta prchar jsr print inc x lda #252 sta prchar jsr print inc x jsr blurbyte inc x( inc y lda y cmp boty bne winlp lda topx sta x inc botx lda #154 sta prchar jsr print inc xbotlnlp lda #146 sta prchar jsr print inc x lda x cmp botx bne botlnlp lda #131 sta prchar jsr print inc x jsr blurbyte inc x inc topx (inc topx inc botx inc botx inc botx inc y lda topx sta xshline jsr blurbyte inc x inc x lda x cmp botx bcc shline rts;getkeybuff jsr buffdo lda rush beq gknrsh jsr dovt100gknrsh lda 764 cmp #255 beq getkeybuffgetkey lda 764 cm(p #255 beq getkey lda click cmp #2 beq getkey2 cmp #0 beq nodoclk lda #1 sta doclicknodoclk ldy 764 lda #255 sta 764 lda ($79),y rtsgetkey2 ldy 764 lda ($79),y pha lda temp pha lda #1 sta 764 ldx #$10 lda #temp&255 sta icbal+$10( lda #temp/256 sta icbah+$10 lda #0 sta icbll+$10 sta icblh+$10 lda #7 sta iccom+$10 jsr ciov pla sta temp pla rts;; Click = 0 - None, 1 - small click,; 2 - Regular Atari click;blurbyte lda y asl a tax lda linadr,x sta cntr(l lda linadr+1,x sta cntrh lda x lsr a tay ldx #0blurlp lda (cntrl),y and #$aa sta (cntrl),y clc lda cntrl adc #40 sta cntrl lda cntrh adc #0 sta cntrh lda (cntrl),y and #$55 sta (cntrl),y clc lda cntrl adc #40 sta cntrl lda cnt(rh adc #0 sta cntrh inx cpx #4 bne blurlp rts;print lda y asl a tax lda linadr,x sta cntrl lda linadr+1,x sta cntrh lda #0 sta pos lda x lsr a rol pos adc cntrl sta cntrl lda cntrh adc #0 sta cntrh ldy #0 sty prchar+1 sty tem(p lda prchar cmp #128 bcc prchrdo2 sec sbc #128 pha lda #1 sta temp plaprchrdo2 cmp #96 bcs prcharok cmp #32 bcs prchrdo1 clc adc #64 jmp prcharokprchrdo1 sec sbc #32prcharok asl a asl a rol prchar+1 asl a rol prchar+1 sta prc(har lda prchar+1 clc adc #HI[charset] sta prchar+1 ldx poswrtchar lda (cntrl),y and postbl1,x sta (cntrl),y lda (prchar),y and postbl2,x adc (cntrl),y ldx temp beq noinv ldx pos eor postbl2,xnoinv ldx pos sta (cntrl),y lda cntrl clc( adc #39 sta cntrl lda cntrh adc #0 sta cntrh iny cpy #8 bne wrtchar rts;; - Scrollers - ;scrldown lda scrltop ; Move scrolled-out line cmp #1 ; into screen-saver bne noscrsv ; (from top line only) lda txlinadr sta ersl ld(a txlinadr+1 sta ersl+1 ldy #0scrllnsv lda (ersl),y sta (scrlsv),y iny cpy #80 bne scrllnsv clc lda scrlsv adc #80 sta scrlsv lda scrlsv+1 adc #0 sta scrlsv+1 cmp #HI[txsav+1920] (80*24) bcc noscrsv lda scrlsv cmp #LO[txsav+1920] bcc( noscrsv lda #LO[txsav] sta scrlsv lda #HI[txsav] sta scrlsv+1;noscrsv lda fscroldn cmp #1 beq noscrsv lda crsscrl bne noscrsv dec scrltop dec scrlbot ; Scroll line-size tbl ldx scrltop lda scrlbot sec sbc scrltop beq nodnlnszscdnszl(p lda lnsizdat+1,x sta lnsizdat,x inx cpx scrlbot bne scdnszlpnodnlnsz lda #0 sta lnsizdat,x inc scrltop inc scrlbot; lda scrlbot sec sbc scrltop beq scdnadbd lda scrlbot ; Scroll address-tbl asl a sta scrlbot lda scrltop asl a tax( lda linadr,x sta nextlnt lda linadr+1,x sta nextlnt+1scdnadlp lda linadr+2,x sta linadr,x lda linadr+3,x sta linadr+1,x inx inx cpx scrlbot bne scdnadlp jmp scdnadokscdnadbd lda scrlbot ; This is in case top= asl a ; bot, so no (scroll sta scrlbot tax lda linadr,x sta nextlnt lda linadr+1,x sta nextlnt+1scdnadok lda nextln sta linadr,x lda nextln+1 sta linadr+1,x lda nextlnt sta nextln lda nextlnt+1 sta nextln+1 lda scrlbot lsr a sta scrlbot; lda scrltop( ; Scroll text mirror cmp scrlbot beq dncltxln asl a tay dey dey sec lda scrlbot sbc scrltop tax lda txlinadr,y pha lda txlinadr+1,y phadntbtxlp lda txlinadr+2,y sta txlinadr,y lda txlinadr+3,y sta txlinadr+1,y iny iny dex cpx #(0 bne dntbtxlp pla sta txlinadr+1,y pla sta txlinadr,ydncltxln lda scrlbot asl a tax dex dex lda txlinadr,x sta ersl lda txlinadr+1,x sta ersl+1 ldy #0 lda #32dnerstxlp sta (ersl),y iny cpy #80 bne dnerstxlp; lda rush bne scdnru(sh; lda finescrol ; Fine-scroll if on beq doscroldn jsr scvbwta inc fscroldnscdnrush rts;doscroldn lda scrlbot asl a tax lda linadr,x sta cntrl lda linadr+1,x sta cntrh jsr erslineraw lda #1 sta crsscrl rts;; - Scroll up -;scrlu(p dec scrlbot ; Scroll line-size tbl dec scrltop ldx scrlbot lda scrlbot sec sbc scrltop beq scupnolzscupszlp lda lnsizdat-1,x sta lnsizdat,x dex cpx scrltop bne scupszlpscupnolz lda #0 sta lnsizdat,x inc scrltop inc scrlbot;scupwtfn(s lda fscrolup cmp #1 beq scupwtfnsscupwtcrs lda crsscrl bne scupwtcrs lda scrlbot ; Scroll line-adr tbl sec sbc scrltop beq scupadbd lda scrltop asl a sta scrltop lda scrlbot asl a tax lda linadr,x sta nextlnt lda linadr+1,x sta nex(tlnt+1scupadlp lda linadr-1,x sta linadr+1,x lda linadr-2,x sta linadr,x dex dex cpx scrltop bne scupadlp jmp scupadokscupadbd lda scrltop asl a sta scrltop tax lda linadr,x sta nextlnt lda linadr+1,x sta nextlnt+1scupadok lda nextl(n sta linadr,x lda nextln+1 sta linadr+1,x lda nextlnt sta nextln lda nextlnt+1 sta nextln+1; lda scrltop lsr a sta scrltop; lda scrltop ; Scroll text mirror cmp scrlbot beq uperstxln sec lda scrlbot pha sbc scrltop tay pla asl a (tax dex dex lda txlinadr,x sta ersl lda txlinadr+1,x sta ersl+1scruptxlp lda txlinadr-2,x sta txlinadr,x lda txlinadr-1,x sta txlinadr+1,x dex dex dey cpy #0 bne scruptxlp lda ersl sta txlinadr,x lda ersl+1 sta txlinadr+1,x jmp gupe)rtxlnuperstxln lda scrltop asl a tax dex dex lda txlinadr,x sta ersl lda txlinadr+1,x sta ersl+1gupertxln ldy #0 lda #32uperstxlp sta (ersl),y iny cpy #80 bne uperstxlp; lda rush bne scuprush; lda finescrol beq doscrolup jsr scv)bwta inc fscrolupscuprush rtsdoscrolup lda scrltop asl a tax lda linadr,x sta cntrl lda linadr+1,x sta cntrh jsr erslineraw lda #1 sta crsscrl rts;ersline lda ersl sta y cmp #0 beq noerstx asl a tax dex dex lda txlinadr,x sta )ersl lda txlinadr+1,x sta ersl+1 ldy #0 lda #32erstxlnlp sta (ersl),y iny cpy #80 bne erstxlnlpnoerstx lda y asl a tax lda linadr,x sta cntrl lda linadr+1,x sta cntrherslineraw lda #0 tayers1 sta (cntrl),y iny cpy #0 bne ers1 i)nc cntrhers2 sta (cntrl),y iny cpy #64 bne ers2 rts;lookst ; Init buffer-scroller lda scrlsv sta lookln lda scrlsv+1 sta lookln+1 lda #23*2 sta lookln2 lda #24 sta looklkupen rtslookup ; Buffer-scroll UP lda look beq lkup)en dec look jsr scvbwta dec lookln2 dec lookln2 sec lda lookln sbc #80 sta lookln lda lookln+1 sbc #0 sta lookln+1 cmp #HI[txsav] bcs novrup lda #LO[txsav+1840] (80*23) sta lookln lda #HI[txsav+1840] sta lookln+1novrup jsr crsifneed;) lda linadr+48 ; Scroll linadr table sta nextlnt lda linadr+49 sta nextlnt+1 ldx #46lkupscadlp lda linadr,x sta linadr+2,x lda linadr+1,x sta linadr+3,x dex dex cpx #0 bne lkupscadlp lda nextln sta linadr+2 lda nextln+1 sta linadr+3 )lda nextlnt sta nextln lda nextlnt+1 sta nextln+1; lda finescrol beq lkupnofn lda scrltop ; initiate fine scroll pha lda scrlbot pha lda #1 sta scrltop lda #24 sta scrlbot jsr scvbwta inc fscrolup lda $14 phalkupnofn ldy #0 ; Pr)int new line sty x lda #1 sta ylkupprlp lda (lookln),y sta prchar cmp #0 beq lkupnopr cmp #32 beq lkupnopr tya pha jsr print pla taylkupnopr inc x iny cpy #80 bne lkupprlp; lda finescrol beq lkupcrs; plalkupwtvb ; continue fin)e scroll cmp $14 beq lkupwtvb pla sta scrlbot pla sta scrltop jsr scvbwta jsr crsifneedlkdnen rtslkupcrs jsr vdelay ; Coarse-scroll ldx #2 ldy #10lkupsclp lda linadr,x sta dlist+4,y lda linadr+1,x sta dlist+5,y inx inx tya clc ) adc #10 tay cpy #250 bcc lkupsclp jsr crsifneed lda nextln sta cntrl lda nextln+1 sta cntrh jmp erslineraw;lookdn ; Buffer-scroll DOWN lda look cmp #24 beq lkdnen inc look jsr scvbwta inc lookln2 inc lookln2 clc lda lookln adc #8) 0 sta lookln lda lookln+1 adc #0 sta lookln+1 cmp #HI[txsav+1920] (80*24) bcc novrdn lda lookln cmp #LO[txsav+1920] bcc novrdn lda #LO[txsav] sta lookln lda #HI[txsav] sta lookln+1novrdn jsr crsifneed; lda linadr+2 ; Scroll linadr table) sta nextlnt lda linadr+3 sta nextlnt+1 ldx #2lkdnscadlp lda linadr+2,x sta linadr,x lda linadr+3,x sta linadr+1,x inx inx cpx #48 bne lkdnscadlp lda nextln sta linadr,x lda nextln+1 sta linadr+1,x lda nextlnt sta nextln lda nextlnt) +1 sta nextln+1; lda finescrol beq lkdnnofn lda scrltop ; initiate Fine-scroll pha lda scrlbot pha lda #1 sta scrltop lda #24 sta scrlbot jsr scvbwta inc fscroldn lda $14 pha;lkdnnofn ldy #0 ; Print new line sty x lda #24 sta y ) lda lookln2 pha tax lda txlinadr,x sta lookln2 lda txlinadr+1,x sta lookln2+1lkdnprlp lda (lookln2),y sta prchar cmp #32 beq lkdnnopr tya pha jsr print pla taylkdnnopr inc x iny cpy #80 bne lkdnprlp pla sta lookln2; lda finescro)l ; Skip if no f-scroll beq lkdndocr; plalkdnvbwt ; continue fine-scroll cmp $14 beq lkdnvbwt pla sta scrlbot pla sta scrltop jsr scvbwta jsr crsifneed rts;lkdndocr jsr vdelay ; Coarse scroll ldx #2 ldy #10lkdnsclp lda linadr,x st)a dlist+4,y lda linadr+1,x sta dlist+5,y inx inx tya clc adc #10 tay cpy #250 bcc lkdnsclp jsr crsifneed lda nextln sta cntrl lda nextln+1 sta cntrh jmp erslineraw;lookbk ; Go all the way down lda look cmp #24 beq noneedcrs js)r lookdn jmp lookbknoneedcrs rts;crsifneed lda oldflash beq noneedcrs jmp putcrs;clrscrn ; Clear screen ldx #0 lda #LO[txsav] sta ersl lda #HI[txsav] sta ersl+1cpyscrnlp lda txlinadr,x sta cntrl lda txlinadr+1,x sta cntrh ldy #0cp)yscrlp2 lda (cntrl),y sta (ersl),y lda #32 sta (cntrl),y iny cpy #80 bne cpyscrlp2 clc lda ersl adc #80 sta ersl lda ersl+1 adc #0 sta ersl+1 inx inx cpx #48 bne cpyscrnlp lda #LO[txsav] sta scrlsv lda #HI[txsav] sta scrlsv+1;clr)scrnraw ldx #1clrscrnl txa asl a tay lda linadr,y sta cntrl lda linadr+1,y sta cntrh jsr erslineraw inx cpx #25 bne clrscrnl jmp rslnsize;vdelay ; Waits for next VBI to finish lda $14vdelwt cmp $14 beq vdelwt rts;prmesg;; Messag)e printer!; Reads string and outputs it, byte ; by byte, to the 'print' routine. ;; Reads from whatever's in X-hi, Y-lo; (registers): x,y,length,string.; jsr vdelayprmesgnov sty prfrom stx prfrom+1 ldy #0 lda (prfrom),y sta x iny lda (pr);; Ԡ ; A VT-100 terminal emulator ; by Itay Chamiel ;; Version 1.0 - (c)1994 ;; Part of main program - VT2.ASM;;; ԭ򠠛;connect lda linadr sta cntrl lda linadr+1 sta cn-trh jsr erslineraw jsr chklnsiz lda bckgrnd eor invon asl a asl a tax ldy #0concollp lda sccolors,x sta 709,y inx iny cpy #4 bne concollp jsr vdelay jsr shctrl1 jsr shcaps ldx #HI[sts2] ldy #LO[sts2] jsr prmesgnov jsr shnuml ldx #-HI[sts3] ldy #LO[sts3] jsr prmesgnov jsr clokdo lda #1 sta flashcnt sta newflash sta oldflash lda didrush bne entnorsh jsr putcrs; lda rush bne entnorsh lda didrush beq entnorsh jsr clrscrnraw lda #1 sta crsscrl jsr vdelay jsr screen-get jsr crsifneed lda #0 sta didrushentnorsh lda baktow cmp #2 beq gdopause lda #0 sta baktow jmp bufgotgdopause jmp dopausetermloop lda newflash cmp oldflash beq noflsh sta oldflash ; Flash cursor lda didrush bne noflsh jsr putcrsn-oflsh jsr clokdo jsr buffdo ; Update buffer txa pha jsr bufcntdo pla tax cpx #0 beq bufgot lda didrush beq vt1norsh lda rush bne vt1norsh jsr clrscrnraw lda #1 sta crsscrl jsr vdelay jsr screenget jsr crsifneed lda #0 sta didrushvt-1norsh jsr readk ; Get key if bfr empty lda ctrl1mod bne dopause ; Check for ^1 jmp termloopbufgot lda #0 sta chrcnt lda oldflash beq keepget ; Remove cursor lda didrush bne keepget jsr putcrskeepget jsr buffpl ; Pull char from bfr cpx #-1 beq endlp jsr dovt100 ; Process char inc chrcnt lda chrcnt bne getno256 jsr clokdo jsr buffdo jsr bufcntdo lda didrush beq getno256 lda rush bne getno256 jsr clrscrnraw lda #1 sta crsscrl jsr vdelay jsr screenget jsr crsifneed lda #-0 sta didrushgetno256 lda 764 cmp #255 beq keepget ; Key? lda #0 sta baktow jsr readk lda ctrl1mod beq keepget jmp dopauseendlp lda newflash sta oldflash beq endlpncrs lda didrush bne endlpncrs jsr putcrs ; Return cursorendlpncrs jmp- termloop;dopause;; Enter Pause ; jsr lookst jsr vdelay jsr shctrl1;; Pause mode ;pausloop jsr clokdo jsr buffdo jsr bufcntdo lda rush beq pausl2 jsr buffpl jsr dovt100pausl2 lda newflash cmp oldflash beq pausl1 sta oldflash lda- didrush bne pausl1 jsr putcrspausl1 lda 53279 cmp #3 ; Option = Up bne nolkup lda didrush beq psokup lda #14 sta dobell jmp nolkuppsokup jsr lookup lda look cmp #0 bne pausl2nolkup lda 53279 cmp #5 ; Select = Down bne no-lkdn lda didrush beq psokdn lda #14 sta dobell jmp nolkdnpsokdn jsr lookdn lda look cmp #24 bne pausl2nolkdn; lda #2 sta baktow jsr readk lda ctrl1mod bne pausloop;; Exit pause; lda finescrol pha lda #0 sta finescrol jsr lookbk- pla sta finescrol jsr shctrl1 lda #0 sta baktow lda rush bne expnorsh lda didrush beq expnorsh jsr clrscrnraw lda #1 sta crsscrl jsr vdelay jsr screenget jsr crsifneed lda #0 sta didrushexpnorsh jmp bufgot;dovt100 ; Gets byte fro- m A and and #127 ; VT100's it!!! cmp #127 beq badbyt cmp #0 beq badbyt cmp #32 bcs trmode jmp ctrlcodetrmode jmp regmode ; Changes during exec ;badbyt rtsputcrs ; Cursor flasher lda ty tay dey asl a tax lda linadr,x sta-! cntrl lda linadr+1,x sta cntrh lda lnsizdat,y cmp #4 bcs smcurs cmp #0 bne bigcurssmcurs lda #0 sta pos lda tx lsr a rol pos adc cntrl sta cntrl lda cntrh adc #0 sta cntrh ldx pos ldy curssiz beq cursloop lda cntrl clc adc #39*6-" sta cntrl lda cntrh adc #0 sta cntrhcursloop lda (cntrl),y eor postbl2,x sta (cntrl),y lda cntrl clc adc #39 sta cntrl lda cntrh adc #0 sta cntrh iny cpy #8 bne cursloop rtsbigcurs lda tx cmp #40 bcc bgc1 lda #39bgc1 clc adc -#cntrl sta cntrl lda cntrh adc #0 sta cntrh ldy curssiz beq bgcursloop lda cntrl clc adc #39*6 sta cntrl lda cntrh adc #0 sta cntrhbgcursloop lda (cntrl),y eor #255 sta (cntrl),y lda cntrl clc adc #39 sta cntrl lda cntrh adc #0 st-$a cntrh iny cpy #8 bne bgcursloop rts;regmode ; Display normal byte sta prchar lda #LO[regmode] sta trmode+1 lda #HI[regmode] sta trmode+2 ldx chset lda g0set,x beq notgrph lda prchar sec sbc #95 bcc notgrph tax lda graftabl,x cmp -%#254 bne grnoblank lda #0 taxgrblklp sta charset+728,y inx cpx #8 bne grblklp lda #27 jmp grnoescgrnoblank cmp #128 bcc grnoesc and #127 asl a asl a asl a tax ldy #0gresclp lda digraph,x sta charset+728,y inx iny cpy #8 bne gre-&sclp lda #27grnoesc sta prchar lda #1 sta useset sta dblgrphnotgrph lda seol beq noseol jsr retrn jsr rseolnoseol lda tx sta x lda ty sta y tax dex lda lnsizdat,x cmp #4 bcs nospch cmp #0 beq nospch lda dblgrph bne nospch lda #-'0 sta useset lda prchar cmp #96 bne bgno96 lda #30 jmp ysspchbgno96 cmp #123 bne bgno123 lda #28 jmp ysspchbgno123 cmp #125 bne bgno125 lda #29 jmp ysspchbgno125 cmp #126 bne nospch lda #31ysspch sta prchar lda #1 sta usesetnosp-(ch jsr printerm lda #0 sta useset sta dblgrph inc tx ldx ty dex lda lnsizdat,x cmp #4 bcs not40 cmp #0 beq not40 lda tx cmp #40 bcc xno80 dec tx lda wrpmode beq xno80 sta seol rtsnot40 lda tx cmp #80 bne xno80 dec tx lda wrpmod-)e beq xno80 sta seol rtsrseol lda #0 sta seol rtsxno80 jmp rseolctrlcode cmp #27 bne noesc lda #LO[esccode] sta trmode+1 lda #HI[esccode] sta trmode+2 rtsnoesc cmp #7 ; ^G - bell bne nobell lda #14 sta dobell rtsnobell cmp #13 -* ; ^M - CR bne nocreqcm lda #0 sta tx jmp rseolnocr cmp #10 ; ^J - LF bne nolfysff lda newlmod beq nolfcr lda #0 sta txnolfcr jsr cmovedwn jmp rseolnolf cmp #12 ; ^L - FF, same as lf beq ysff cmp #11 ; ^K - VT, same as lf beq ys-+ff cmp #8 ; ^H - Backspace bne nobs dec tx lda tx cmp #80 bcc bsok lda #0 sta txbsok jmp rseolnobs cmp #24 ; ^X - cancel esc bne nocanyscan lda trmode+1 cmp #LO[regmode] bne docan lda trmode+2 cmp #HI[regmode] bne docan rtsdocan-, lda #0 jmp regmodenocan cmp #25 ; ^Y - SUB, same as CAN. beq yscan cmp #9 ; ^I - tab bne nohteqci ldx txfindtblp inx cpx #79 bcs donetab2 lda tabs,x bne donetab1 jmp findtblpdonetab1 stx tx jmp rseoldonetab2 ldx #79 stx tx jmp rse--olnoht cmp #14 ; ^N - use g1 bne noso lda #1 sta chset rtsnoso cmp #15 ; ^O - use g0 bne nosi lda #0 sta chsetnosi rtsretrn lda #0 sta tx jmp cmovedwnesccode cmp #91 ; '[' bne nobrak lda #LO[brakpro1] sta trmode+1 lda #HI[brakpr-.o1] sta trmode+2 lda #255 sta finnum sta numstk lda #0 sta qmark sta numgot sta digitgot sta gogetdg rtsnobrak cmp #68 ; D - down 1 line bne noind jsr cmovedwn jmp fincmndnoind cmp #69 ; E - return bne nonel jsr retrn jmp fincmnd1n-/onel cmp #77 ; M - up line bne nori jsr cmoveup jmp fincmnd1nori cmp #61 ; = - Numlock off bne nodeckpam lda #0 sta numlock jsr vdelay jsr shnuml jmp fincmndnodeckpam cmp #62 bne nodeckpnm ; > - Num on lda #1 sta numlock jsr vdelay js-0r shnuml jmp fincmndnodeckpnm cmp #55 ; 7 - save curs+attrib bne nodecsc lda tx sta savcursx lda ty sta savcursy lda wrpmode sta savwrap lda g0set sta savg0 lda g1set sta savg1 lda chset sta savchs lda undrln sta savgrn lda blink st-1a savgrn+1 lda revvid sta savgrn+2 lda invsbl sta savgrn+3 jmp fincmndnodecsc cmp #56 ; 8 - restore above bne nodecrc lda savcursx sta tx lda savcursy sta ty lda savwrap sta wrpmode lda savg0 sta g0set lda savg1 sta g1set lda savchs-2 sta chset lda savgrn sta undrln lda savgrn+1 sta blink lda savgrn+2 sta revvid lda savgrn+3 sta invsbl jmp fincmndnodecrc cmp #90 ; Z - id device bne nodecid jsr decid jmp fincmndnodecid cmp #72 ; H - set tab at this pos. bne nohts ld-3x tx lda #1 sta tabs,x jmp fincmndnohts cmp #40 ; ( - start seq for g0 bne noparop lda #LO[parpro] sta trmode+1 lda #HI[parpro] sta trmode+2 lda #0 sta gntodo rtsnoparop cmp #41 ; ) - start seq for g1 bne noparcl lda #LO[parpro] sta tr-4mode+1 lda #HI[parpro] sta trmode+2 lda #1 sta gntodo rtsnoparcl cmp #35 ; # - start for line size bne nonmbr lda #nmbrpro&255 sta trmode+1 lda #nmbrpro/256 sta trmode+2 rtsnonmbr jmp fincmnd;nmbrpro;; Chars after ' ESC # ' -5;; 3 - double-height/width, top ; 4 - double-height/width, bottom ; 5 - normal size ; 6 - double-width ; 7 - normal size ; 8 - Fill screen with E's ; cmp #56 ; 8 - see above bne nofle j-6mp fillenofle pha jsr chklnsiz pla ldx ty stx y dex sec sbc #51 cmp #5 bcc stszokay ; 3/4/5/6/7 - see above jmp fincmndstszokay tay lda sizes,y cmp lnsizdat,x bne nosmsz jmp fincmndnosmsz pha lda lnsizdat,x sta scvar1 pla sta lns-7izdat,x tax lda szlen,x sta szprchng+1 jsr calctxln lda #32 ldx #0szloop1 sta lnbufr,x inx cpx #80 bne szloop1 ldx #0 ldy #0szloop2 lda (ersl),y sta lnbufr,x iny inx lda scvar1 beq szlp2v inyszlp2v cpy #80 bne szloop2 lda invsbl-8 pha lda blink pha lda revvid pha lda undrln pha lda #0 sta invsbl sta blink sta revvid sta undrln sta x taxszprloop lda lnbufr,x cmp #128 bcc sznoinv and #127 ldx #1 stx revvidsznoinv sta prchar jsr printerm lda #0 sta revvid-9 inc x lda x taxszprchng cmp #80 bne szprloop pla sta undrln pla sta revvid pla sta blink pla sta invsbl jmp fincmnd;fille ; Fill screen with E's lda #1 sta yfletxlp1 jsr calctxln lda #69 ; -E ldy #0fletxlp2 sta (ersl),y-: iny cpy #80 bne fletxlp2 inc y lda y cmp #25 bne fletxlp1; jsr rslnsize lda #0 sta x sta y inc iggrnflelpy inc y lda y asl a tax lda linadr,x sta cntrl lda linadr+1,x sta cntrh ldx #0flelpx lda charset+296,x (37*8) ldy #0flelp-;1 sta (cntrl),y iny cpy #40 bne flelp1 lda cntrl clc adc #40 sta cntrl lda cntrh adc #0 sta cntrh inx cpx #8 bne flelpx lda y cmp #24 bne flelpy dec iggrn jmp fincmnd;parpro ldx gntodo cmp #65 beq dog1 cmp #66 bne dog2dog1 ld- gotcomnd cmp #48 bcc gotcomnd sec sbc #48 sta temp lda digitgot bne mltpl10 lda temp sta finnum inc digitgot lda #1 sta gogetdg rtsmltpl10 lda finnum asl a asl a clc adc finnum asl a clc adc temp sta finnum lda #1 sta gogetdg -?rtsgotcomnd sta temp lda gogetdg beq nogetdg lda finnum ldx numgot sta numstk,x inc numgotnogetdg lda temp ldx qmark beq doall jmp notbcdoall cmp #72 ; H - Pos cursor bne nocuphvp ; f - ditto ldx numgot cpx #2 bcs hvpdo lda-@ #1 sta numstk+1 cpx #0 bne hvpdo lda #1 sta numstkhvpdo lda numstk cmp #255 bne hvp1 lda #1 sta numstkhvp1 lda numstk+1 cmp #255 bne hvp2 lda #1 sta numstk+1hvp2 lda numstk sta ty dec ty lda ty cmp #255 bne hvp3 lda #0 sta ty-Ahvp3 cmp #24 bcc hvpok1 lda #23 sta tyhvpok1 inc ty dec numstk+1 lda numstk+1 sta tx cmp #255 bne hvp4 lda #0 sta txhvp4 cmp #80 bcc hvpok3 lda #79 sta txhvpok3 jmp fincmnd1nocup cmp #102 ; f - Position beq hvp; cmp #65 ; A - M-Bove up bne nocuu lda numstk cmp #255 beq cuudodef cmp #0 bne cuuokcuudodef lda #1 sta numstkcuuok lda ty sec sbc numstk sta ty ldx ty dex cpx #24 bcs cuubad jmp fincmnd1cuubad lda #1 sta ty jmp fincmnd1nocuu cmp #66 ; B - Move -Cdown bne nocud lda numstk cmp #255 beq cuddodef cmp #0 bne cudokcuddodef lda #1 sta numstkcudok lda numstk clc adc ty sta ty tax dex cpx #24 bcs cudbad jmp fincmnd1cudbad lda #24 sta ty jmp fincmnd1nocud cmp #67 ; C - Move righ-Dt bne nocuf lda numstk cmp #255 beq cufdodef cmp #0 bne cufokcufdodef lda #1 sta numstkcufok lda numstk clc adc tx sta tx cmp #80 bcs cufbad jmp fincmnd1cufbad lda #79 sta tx jmp fincmnd1nocuf cmp #68 ; D - Move left bne nocub -Elda numstk cmp #255 beq cubdodef cmp #0 bne cubokcubdodef lda #1 sta numstkcubok lda tx sec sbc numstk sta tx bcc cubbad jmp fincmnd1cubbad lda #0 sta tx jmp fincmnd1nocub cmp #114 ; r - set scroll margins bne nodecstbm ldx numgot-F cpx #2 bcs stbm1 lda #24 sta numstk+1 cpx #1 bcs stbm1 lda #1 sta numstkstbm1 lda numstk cmp #255 bne stbm2 lda #1stbm2 cmp #1 bcs stbm3 lda #1stbm3 cmp #24 bcc stbm4 lda #23stbm4 sta numstk; lda numstk+1 cmp #255 bne stbm5 -Glda #24stbm5 cmp #2 bcs stbm6 lda #2stbm6 cmp #25 bcc stbm7 lda #24stbm7 sta numstk+1; cmp numstk bcs stbm8 bne stbm8 lda #1 sta numstk lda #24 sta numstk+1stbm8 lda numstk sta scrltop lda numstk+1 sta scrlbot lda #1 sta ty sta-H tx dec tx jmp fincmnd1nodecstbm cmp #75 ; K - erase in line bne noel lda numgot cmp #0 bne el1 sta numstkel1 lda numstk cmp #3 bcc el2 lda #0 sta numstkel2 cmp #0 bne elno0 jsr ersfmcurs jmp fincmndelno0 cmp #1 bne elno1 jsr ers-Itocurs jmp fincmndelno1 lda ty sta y sta ersl jsr ersline jmp fincmndnoel cmp #74 bne noed ; J - erase in screen lda numgot cmp #0 bne ed1 sta numstked1 lda numstk cmp #3 bcc ed2 lda #0 sta numstked2 cmp #0 bne edno0 jsr ersfmcur-Js lda ty sta yed0lp inc y lda y cmp #25 beq ed0ok sta ersl jsr ersline jmp ed0lped0ok jmp fincmndedno0 cmp #1 bne edno1 lda #1 sta yed1lp lda y cmp ty beq ed1ok sta ersl jsr ersline inc y jmp ed1lped1ok jsr erstocurs jmp finc-Kmndedno1 jsr clrscrn jmp fincmndnoed cmp #99 ; c - id device bne noda jsr decid jmp fincmndnoda cmp #110 ; n - device stat beq yesdsr jmp nodsryesdsr lda numgot cmp #0 bne dsr1 lda #5 sta numstkdsr1 lda numstk cmp #5 bne dsrno5 l-Ldx #$20 lda #11 sta iccom+$20 lda #4 sta icbll+$20 lda #0 sta icblh+$20 lda #dsrdata&255 sta icbal+$20 lda #dsrdata/256 sta icbah+$20 jsr ciov jmp fincmnddsrno5 cmp #6 beq dsrys6 jmp dsrno6dsrys6 lda #27 sta cprd lda #91 sta cprd+1-M lda #0 sta cprv1 lda tycprlp1 cmp #10 bcc cprok1 sec sbc #10 inc cprv1 jmp cprlp1cprok1 clc adc #48 sta cprd+3 lda cprv1 beq cpr1 clc adc #48cpr1 sta cprd+2 lda #59 sta cprd+4 lda #0 sta cprv1 lda tx clc adc #1cprlp2 cmp #10-N bcc cprok2 sec sbc #10 inc cprv1 jmp cprlp2cprok2 clc adc #48 sta cprd+6 lda cprv1 beq cpr2 clc adc #48cpr2 sta cprd+5 lda #82 sta cprd+7; lda #0 sta cprv1cprdolp ldx cprv1 lda cprd,x beq cprnodo pha ldx #$20 lda #11 sta icc-Oom+$20 lda #0 sta icbll+$20 sta icblh+$20 pla jsr ciovcprnodo inc cprv1 lda cprv1 cmp #8 bne cprdolpdsrno6 jmp fincmndnodsr cmp #103 ; g - clear tabs bne notbc lda numgot bne tbc1 lda #255 sta numstktbc1 lda numstk cmp #255 bne tb-Pc2 lda #0 sta numstktbc2 lda numstk cmp #3 bne tbcno3 lda #0 taxtbc3lp sta tabs,x inx cpx #80 bne tbc3lp jmp fincmndtbcno3 cmp #0 bne tbcno0 ldx tx sta tabs,xtbcno0 jmp fincmndnotbc cmp #104 ; h - set mode bne nosm lda #1 sta m-Qodedo jmp domodenosm cmp #108 ; l - reset mode bne norm1 lda #0 sta modedo jmp domodenorm1 ldx qmark beq norm2 jmp fincmndnorm2 jmp normdomode ; This part for h and l lda qmark bne sm1 lda numgot beq moddone lda numstk cmp #20 bne -Rmoddone lda modedo sta newlmod ; Newline modemoddone jmp fincmndsm1 lda numgot cmp #0 beq moddone lda numstk cmp #1 ; Set arrowkeys mode bne nodecckm lda modedo sta ckeysmod jmp fincmndnodecckm cmp #5 ; set inverse screen bne nodecscnm-S lda modedo sta invon eor bckgrnd asl a asl a tax ldy #0colchng lda sccolors,x sta 709,y inx iny cpy #4 bne colchng jmp fincmndnodecscnm cmp #7 ; Set auto-wrap mode bne nodecawm lda modedo sta wrpmodenodecawm jmp fincmndnorm cmp #-T109 ; m - set graphic rendition bne nosgr lda numgot cmp #0 bne sgr1 sta undrln sta blink sta revvid sta invsbl jmp fincmndsgr1 ldy #255sgrlp iny cpy numgot beq sgrdone lda numstk,y cmp #0 beq sgrmd0 cmp #255 bne sgrmdno0sgrmd0 lda-U #0 sta undrln sta blink sta revvid sta invsbl jmp sgrlpsgrmdno0 cmp #4 bne sgrmdno4 lda #1 sta undrln jmp sgrlpsgrmdno4 cmp #5 bne sgrmdno5 lda #1 sta blink jmp sgrlpsgrmdno5 cmp #7 bne sgrmdno7 lda #1 sta revvid jmp sgrlpsgrmdn-Vo7 cmp #8 bne sgrlp lda #1 sta invsbl jmp sgrlpsgrdone jmp fincmndnosgrfincmnd1 jsr rseolfincmnd lda #regmode&255 sta trmode+1 lda #regmode/256 sta trmode+2 rts;erstocurs lda tx sta x lda ty sta y jsr calctxln ldy y dey lda x -Wldx lnsizdat,x beq smlersto lda x asl a cmp #80 bcc smlersto lda #79smlersto sta x inc x ldy #0 lda #32erstotxlp sta (ersl),y iny cpy x bne erstotxlp; lda ty sta y tay asl a tax lda linadr,x pha lda linadr+1,x pha lda tx sta -Xx dey ldx lnsizdat,y bne bigersto and #1 bne ertobt lda #32 sta prchar jsr print lda x dec x cmp #0 bne ertobt pla pla rtsertobt pla sta cntrh pla sta cntrl lda x lsr a sta temp inc temp lda #0 tax tayertobtlp sta (cntrl),y-Y iny cpy temp bne ertobtlp lda cntrl clc adc #40 sta cntrl lda cntrh adc #0 sta cntrh lda #0 tay inx cpx #8 bne ertobtlp rtsbigersto lda x cmp #40 bcc bigersok lda #39bigersok sta temp inc temp lda #0 tax tay jmp ertobtlp;er-Zsfmcurs lda tx sta x lda ty sta y jsr calctxln ldy y dey lda lnsizdat,y bne bigtxerfm ldy x lda #32txerfm sta (ersl),y iny cpy #80 bne txerfm jmp nobigefmbigtxerfm lda x cmp #40 bcc bigtxefmc lda #39bigtxefmc asl a tay lda #32-[bigefmlp sta (ersl),y iny cpy #80 bne bigefmlpnobigefm; lda y tay asl a tax lda linadr,x pha lda linadr+1,x pha lda tx sta x dey ldx lnsizdat,y bne bigersfm and #1 beq erfmbt lda #32 sta prchar jsr print lda x inc x cmp #79 b-\ne erfmbt pla pla rtserfmbt pla sta cntrh pla sta cntrl lda x lsr a sta temp tay lda #0 taxerfmbtlp sta (cntrl),y iny cpy #40 bne erfmbtlp lda cntrl clc adc #40 sta cntrl lda cntrh adc #0 sta cntrh lda #0 ldy temp inx cpx #-]8 bne erfmbtlp rts;bigersfm pla sta cntrh pla sta cntrl ldy x cpy #40 bcc gofmbt ldy #39gofmbt sty temp lda #0 tax jmp erfmbtlp;decid ldx #$20 lda #11 sta iccom+$20 lda #7 sta icbll+$20 lda #0 sta icblh+$20 lda #deciddata&255-^ sta icbal+$20 lda #deciddata/256 sta icbah+$20 jmp ciov;cmovedwn ; subroutine to move cursor lda ty ; down 1 line, scroll up if cmp scrlbot ; margin is reached. bne mdnoscrl jsr scrldown rtsmdnoscrl cmp #24 beq mdok inc tymdok rts;-_cmoveup lda ty cmp scrltop bne munoscrl jsr scrlup rtsmunoscrl cmp #1 beq muok dec tymuok rts;; Parameters for line size:;; 0 - normal-sized characters ; 1 - x2 width, single height ; 2 - x2 double height, upper ; 3 - x2 double height-`, lower ;rslnsize lda #0 taxrslnloop sta lnsizdat,x inx cpx #24 bne rslnloopinvprt rtsprinterm;; Will print character at x,y. ; (x,y are memory locations.) ; Uses prchar as char to print.; Checks all special character ; modes: graphic-a renditions, ; sizes, etc.. ; jsr chklnsiz jsr calctxln lda y cmp #0 beq notxprn tay dey lda lnsizdat,y beq ptxreg lda x; lda #40 for hebrew; sec "; sbc x " cmp #40 bcc ptxxok lda #39; lda #0 for hebrewptxxok asl a tay-b lda prchar sta (ersl),y iny lda #32 sta (ersl),y lda revvid beq notxprn dey lda prchar ora #128 sta (ersl),y iny lda #128+32,y sta (ersl),y jmp notxprn;ptxreg ldy x; lda #80 for hebrew; sec "; sbc x "; tay " lda prc-char sta (ersl),y lda revvid beq notxprn lda prchar ora #128 sta (ersl),y;notxprn lda y cmp #0 beq ignrsh lda rush beq ignrsh rtsignrsh lda iggrn bne pri1 lda invsbl bne invprtpri1 lda y asl a tax lda linadr,x sta cntrl lda lina-ddr+1,x sta cntrh lda prchar and #127 cmp #96 bcs prt1 cmp #32 bcc prt2 sec sbc #96prt2 clc adc #64prt1 sta prchar lda #0 sta prchar+1 asl prchar asl prchar rol prchar+1 asl prchar rol prchar+1 ldx y dex lda lnsizdat,x sta temp -eldx iggrn bne pno3 cmp #1 bne pno1 jmp psiz1pno1 cmp #2 bne pno2 jmp psiz2pno2 cmp #3 bne pno3 jmp psiz3pno3 jsr psiz0;psizok lda iggrn bne prsnorvd lda blink beq prsnobln lda #0 taxblnklp sta chartemp2,x inx cpx #8 bne blnklp-fprsnobln lda undrln beq prsnouln lda #255 sta chartemp+7 sta chartemp2+7prsnouln lda revvid beq prsnorvd ldy #0snrevdo lda chartemp,y eor #255 sta chartemp,y lda chartemp2,y eor #255 sta chartemp2,y iny cpy #8 bne snrevdoprsnorvd l-gda temp cmp #4 bcs prsmch cmp #0 beq prsmch jmp prbgchprsmch lda x; lda #80 for hebrew; sec "; sbc x " lsr a ldy #0 sty temp rol temp ldx temp clc adc cntrl sta cntrl lda cntrh adc #0 sta cntrh ldy #0prsnlp lda chartemp,-qBDOS SYSBDUP SYSB1A65 OLDBDEDIT B]CHMAK BASB3`CHAREDITOBJBVT FNTBVTCHSET ASMBJVT3 ASMBVTNR ASMBVT1 ASMBxVT2 ASMC2VT OBJBAUTORUN ASMBVTIN ASMCOPTIMIZEBASCVTNR UUEB/ICET CFGC/VTNR UUEBCVTHEB OBJBmVTIN OBJB0VTHEB FNTBfVTCHHEB ASMBVT ASMBVTHEB ASMBbA65 BVTIBM FNTjPLAIN FNTB,ICET ASMAUTORUN SYSB(VTV ASM.VT OBJy and postbl2,x sta chartemp,y lda (cntrl),y and postbl1,x clc adc chartemp,y sta (cntrl),y lda cntrl clc adc #39 sta cntrl lda cntrh adc #0 sta cntrh iny cpy #8 bne prsnlp rts;psiz0 lda prchar+1 clc adc #charset/256 sta prchar+1-r ldy #0ps0lp lda (prchar),y sta chartemp,y sta chartemp2,y iny cpy #8 bne ps0lp rtspsiz1 jsr pbchsdopsz1lp lda (prchar),y jsr dblchar ; sta chartemp,y sta chartemp2,y iny cpy #8 bne psz1lp jmp psizokpsiz2 jsr pbchsdo jmp psz23lpp-ssiz3 jsr pbchsdo ldy #4psz23lp lda (prchar),y jsr dblchar ; sta chartemp,x sta chartemp2,x inx sta chartemp,x sta chartemp2,x inx iny cpx #8 bne psz23lp jmp psizokpbchsdo lda #0 tax tay lda useset beq usatst lda prchar+1 clc adc -t#HI[charset] sta prchar+1 txa rtsusatst lda prchar+1 clc adc #224 sta prchar+1 txa rtsprbgch lda x; lda #40 for hebrew; sec "; sbc x " cmp #40 bcc pxok lda #39pxok clc adc cntrl sta cntrl lda cntrh adc #0 sta cntrh ldy-u #0prbiglp lda chartemp,y sta (cntrl),y lda cntrl clc adc #39 sta cntrl lda cntrh adc #0 sta cntrh iny cpy #8 bne prbiglp rtschklnsiz ldx #0chklnslp lda lnsizdat,x cmp #4 bcc chkln1 lda #0 sta lnsizdat,xchkln1 inx cpx #24 bne c-vhklnslp rtsdblchar sta dbltmp1 sta dbltmp2 lda dblgrph beq dblnotdo lda #0 sta dbltmp2; lda dbltmp1 and #$88 jsr dblchdo lda dbltmp1 and #$44 jsr dblchdo lda dbltmp1 and #$22 jsr dblchdo lda dbltmp1 and #$11 jsr dblchdo;dblnotdo -wlda dbltmp2 rtsdblchdo cmp #0 beq dblch2 sec rol dbltmp2 sec rol dbltmp2 rtsdblch2 clc rol dbltmp2 clc rol dbltmp2 rts;; I need help here! --------------- ; This IRQ should put a #59 in ; 764 if it senses a press of ; Brea-xk.. But it just puts a #1 in ; there all the time, nonstop! (??) ;irq pha lda $d20e and #128 bne ibrk lda 17 cmp #0 bne inobrkibrk lda #59 sta 764inobrk plairqexit jmp $ffff;; - End of incoming-code processing ;; and now...; Outgo-ying stuff - keyboard handler ;readk lda 764 cmp #255 bne gtky rtsgtky sta s764 and #192 cmp #192 beq ctshft jmp noctshftctshft lda s764 and #63 cmp #10 bne noprtscrn jmp prntscrnnoprtscrn lda s764 and #63 tax lda numlock beq keya-zpp jmp keynum;; Keypad application mode;keyapp lda #27 sta outdat lda #79 sta outdat+1 lda #3 sta outnum; lda keytab,x cmp #48 bcc numk1 cmp #58 bcs numk1 clc adc #64 jmp numkoknumk1 cmp #45 ; - bne numk2 lda #109 jmp numkoknum-{k2 cmp #44 ; , bne numk3 lda #108 jmp numkoknumk3 cmp #46 ; . bne numk4 lda #110 jmp numkoknumk4 cmp #kretrn bne numk5 lda #77 jmp numkoknumk5 cmp #113 ; q bne numk6 lda #80 jmp numkoknumk6 cmp #119 ; w bne numk7 lda #81 jmp numk-|oknumk7 cmp #101 ; e bne numk8 lda #82 jmp numkoknumk8 cmp #114 ; r bne numk9 lda #83 jmp numkoknumk9 rtsnumkok sta outdat+2 jmp outputdat rts;; Numeric-keypad mode;keynum lda #1 sta outnum lda keytab,x cmp #48 bcc numk10 cmp #-}58 bcs numk10 jmp numnoknumk10 cmp #kretrn bne numk11 lda #13 jmp numnoknumk11 cmp #113 ; q beq numk12 cmp #119 ; w beq numk12 cmp #101 ; e beq numk12 cmp #114 ; r beq numk12 jmp numk13numk12 jmp keyappnumk13 cmp #44 ; , beq numnok-~ cmp #45 ; - beq numnok cmp #46 ; . beq numnok rtsnumnok sta outdat jmp outputdat;noctshft lda s764 tax lda keytab,x cmp #128 bcc norkey jmp spshkey;; Basic key pressed.;; Check for caps-lock and change; char if necessary;norkey -cmp #65 bcc ctk2 cmp #91 bcs ctk1 ldx capslock beq ctk1 clc adc #32 jmp ctk2ctk1 cmp #97 bcc ctk2 cmp #123 bcs ctk2 ldx capslock beq ctk2 sec sbc #32ctk2;; Any alphabetical char has; inverted its caps-mode if caps-; lock is on.; -cmp #0 bne oknoz rtsoknoz ldx 53279 ; Start = Meta cpx #6 bne oknostrt ldx #27 stx outdat sta outdat+1 lda #2 sta outnum jmp outputdatoknostrt sta outdat lda #1 sta outnumoutputdat lda #1 sta 764 jsr getkeyoutqit lda localecho be-q outnoeko ldx #0ekoloop txa pha lda outdat,x jsr buffdo pla tax inx cpx outnum bcc ekoloopoutnoeko ldx #$20 lda #11 sta iccom+$20 lda outnum sta icbll+$20 lda #0 sta outnum sta icblh+$20 lda #outdat&255 sta icbal+$20 lda #outdat/-256 sta icbah+$20 jmp ciovspshkey cmp #kexit bne knoexit jsr getkey lda finescrol pha lda #0 sta finescrol jsr lookbk pla sta finescrol lda oldflash beq txnopc jsr putcrstxnopc lda #0 sta y jsr filline lda bckgrnd asl a asl a tax- ldy #0txclp lda sccolors,x sta 709,y inx iny cpy #4 bne txclp jsr vdelay ldx #menudta/256 ldy #menudta&255 jsr prmesg pla pla jmp mnmnloopknoexit cmp #kcaps bne knocaps lda capslock eor #1 sta capslock jsr getkey jsr vdelay jmp -shcapsknocaps cmp #kscaps bne knoscaps lda #1 sta capslock jsr getkey jsr vdelay jmp shcapsknoscaps cmp #kdel bne knodel ldx delchr lda deltab,x sta outdat lda #1 sta outnum jmp outputdatknodel cmp #ksdel bne knosdel lda delchr eor- #1 tax lda deltab,x sta outdat lda #1 sta outnum jmp outputdatknosdel cmp #kretrn bne knoret lda #13 sta outdat lda #1 sta outnum jmp outputdatknoret cmp #kbrk bne knobrk lda #1 sta 764 jsr getkey lda oldflash beq brknof1 jsr put-crsbrknof1 jsr dobreak lda oldflash beq brknof2 jmp putcrsbrknof2 rtsknobrk cmp #kzero bne knozero ldx #0 stx outdat inx stx outnum jmp outputdatknozero cmp #kctrl1 bne knoctrl1 lda #1 sta 764 jsr getkey lda ctrl1mod eor #1 sta c-trl1mod rtsknoctrl1 cmp #kup bcc knoarrow cmp #kexit bcs knoarrow sec sbc #129 clc adc #65 sta outdat+2 lda #27 sta outdat lda #3 sta outnum lda #91 sta outdat+1 lda ckeysmod beq karrdo lda #79 sta outdat+1karrdo jmp outputdatkno-arrow rtsprntscrn lda #1 sta 764 jsr getkey ldx #prntwin/256 ldy #prntwin&255 jsr drawwin jsr buffdo jsr close2 ldx #$20 lda #3 sta iccom+$20 lda #scrnname&255 sta icbal+$20 lda #scrnname/256 sta icbah+$20 lda #8 sta icaux1,x lda #0- sta icaux2,x jsr ciov cpy #128 bcs prnterr; lda #1 sta yprntlp1 jsr calctxln ldy #0prntlp2 lda (ersl),y sta lnbufr,y iny cpy #80 bne prntlp2 lda #155 sta lnbufr,y; ldx #$20 lda #11 sta iccom+$20 lda #lnbufr&255 sta icbal+$20 lda- #lnbufr/256 sta icbah+$20 lda #81 sta icbll+$20 lda #0 sta icblh+$20 jsr ciov cpy #128 bcs prnterr; inc y lda y cmp #25 bne prntlp1; ldx #$20 lda #11 sta iccom+$20 lda #endofpg&255 sta icbal+$20 lda #endofpg/256 sta icbah+$20 lda .F;; Ԡ ; A VT-100 terminal emulator ; by Itay Chamiel ;; - Program data -- VTV.ASM - ; org $2e0 dw init;; Zero-page equates; org $80;sv712 ds 1cntrl ds 1cntrh ds 1pos ds 1x yds 1y ds 1prchar ds 2temp ds 1prlen ds 1prcntr ds 2prfrom ds 2;mnmnucnt ds 1mnmenux ds 1mnlnofbl ds 1svmnucnt ds 1;ctrl1mod ds 1oldbufc ds 1mybcount ds 2baktow ds 1invon ds 1g0set ds 1g1set ds 1chset y ds 1iggrn ds 1useset ds 1seol ds 1newlmod ds 1numlock ds 1wrpmode ds 1undrln ds 1blink ds 1revvid ds 1invsbl ds 1savgrn ds 4savcursx ds 1savcursy ds 1savwrap ds 1savg0 ds 1savg1 ds 1savchs ds 1gntodo y ds 1qmark ds 1cprv1 ds 1modedo ds 1ckeysmod ds 1finnum ds 1numgot ds 1digitgot ds 1gogetdg ds 1scrltop ds 1scrlbot ds 1tx ds 1ty ds 1flashcnt ds 1newflash ds 1oldflash ds 1oldctrl1 ds 1dobell ds 1doclick y ds 1capslock ds 1s764 ds 1outnum ds 1outdat ds 3;noplcs ds 1noplcx ds 1noplcy ds 1lnofbl ds 1mnucnt ds 1menux ds 1menret ds 1invlo ds 1invhi ds 1nodoinv ds 1;numofwin ds 1topx ds 1topy ds 1botx z;; Ԡ ; A VT-100 terminal emulator ; by Itay Chamiel ;; Version 1.0 - (c)1994 ;; Part of main program - VT3.ASM;; ;dli inc clockdat rtivbi1 inc flashcnt lda flashcnt! cmp #30 bcc nochnflsh lda #0 sta flashcnt lda newflash eor #1 sta newflashnochnflsh lda #8 sta 53279 lda 560 sta $d402 lda 561 sta $d403 ldx #0 lda clockdat cmp #60 bcc clkok lda clockdat sec sbc #60 sta clockdat inc clockdat+1 !lda clockdat+1 cmp #10 bne clkok stx clockdat+1 inc clockdat+2 lda clockdat+2 cmp #6 bne clkok stx clockdat+2 inc clockdat+3 lda clockdat+3 cmp #10 bne clkok stx clockdat+3 inc clockdat+4 lda clockdat+4 cmp #6 bne clkok stx clockdat+4! inc clockdat+5 lda clockdat+5 cmp #4 bne clno24 lda clockdat+6 cmp #2 bne clno24 stx clockdat+5 stx clockdat+6clno24 lda clockdat+5 cmp #10 bne clkok stx clockdat+5 inc clockdat+6clkok jmp sysvbv;vbi2 lda crsscrl beq nocrsscrl ldx !#2 ldy #14crsscrllp lda linadr,x sta dlist,y lda linadr+1,x sta dlist+1,y inx inx tya clc adc #10 tay cpy #254 bne crsscrllp lda #0 sta crsscrlnocrsscrl ldx #0vbcollp lda bckcolr asl a asl a asl a asl a clc adc 709,x sta $d017! VT1.ASM include VT2.ASM include VT3.ASM include VTCHSET.ASM;his is the file to assemble if ; you don't want the 850 interface ; booter installed automatically.) ;; Assembling will create VTNR.OBJ. ; include VTIN.ASM include VTV.ASM include$B;; ;; The original Atari "AUTORUN.SYS" ; file, disassembled. (c) Atari ;; For Ice-T terminal emulator. ; Commented by Itay Chamiel ; org $3800;; System equates used ;siov =$e459 ; Main routine for SI]from),y sta y iny lda (prfrom),y sta prlen ldy #0 cpy prlen beq prmesgen lda prfrom clc adc #3 sta prfrom lda prfrom+1 adc #0 sta prfrom+1prmesglp lda (prfrom),y sta prchar tya pha jsr print inc x pla tay iny cpy prlen bne prme)sglpprmesgen rts;ropen ; Sub to open R: (uses config) ; jsr close2 ; Close if already open ;; Turn DTR on; ldx #$20 lda #rname&255 sta icbal+$20 lda #rname/256 sta icbah+$20 lda #34 sta iccom+$20 lda #192 sta icaux1+$20 jsr ciov cpy *%,x inx cpx #4 bne vbcollp lda doclick beq nodoclick ldx #1 stx 53279 dex stx doclicknodoclick lda dobell cmp #2 bcc nodobell clc adc #$40 sta $d01a dec dobellnodobell lda oldctrl1 cmp 767 beq noctrl1 lda kbcode sta 764noctrl1 ld!a 767 sta oldctrl1 lda finescrol ; Fine Scroll bne vbdofscrl jmp xitvbvvbdofscrl lda fscroldn bne vbchd1 lda fscrolup beq vbnoscup jmp vbchu1vbnoscup jmp xitvbvvbchd1 ; Fine Scroll DOWN cmp #1 bne vbchd2 jsr vbcp12 lda scrltop ! ; 1 down asl a asl a adc scrltop asl a adc #3 sta vbsctp adc #10 sta vbfm sta vbto dec vbto lda scrlbot asl a asl a adc scrlbot asl a adc #3 sta vbscbt sec sbc vbsctp sta vbln jsr vbmvb2 lda vbscbt clc adc #11 sta vbtemp ldx! #255vbdn1lp lda dlst2-2,x sta dlst2,x dex cpx vbtemp bne vbdn1lp lda #LO[dlst2] sta dlst2+256 lda #HI[dlst2] sta dlst2+257 lda scrlbot asl a tay lda linadr+1,y sta dlst2,x lda linadr,y sta dlst2-1,x lda #$4f sta dlst2-2,x ldx vbsctp! lda dlst2+1,x sta vbtemp2 lda dlst2+2,x sta vbtemp2+1 jsr vbscrtld2 inc fscroldn jsr vbdl2 jmp xitvbvvbchd2 cmp #2 bne vbchd3 jsr vbcp21 dec vbfm ; 2 down dec vbto inc vbln inc vbln inc vbln inc vbln jsr vbmvb ldx vbscbt lda !O dcb =$300 ; Device control block ddevic=$300 ; Serial bus I.D. dunit =$301 ; Device number dcomnd=$302 ; Command byte dstats=$303 ; Read / Write (status) dbuflo=$304 ; Data buffer pointer-lodbufhi=$305 ; Data b]uffer pointer-hidtimlo=$306 ; Timeout value dbytlo=$308 ; # of bytes to xfer-lo dbythi=$309 ; # of bytes to xfer-hi daux1 =$30a ; Auxiliary byte #1 daux2 =$30b ; Auxiliary byte #2 ;boot850 lda #80 ; Call interface sta d]G78K__3No R: handler present!! Hit any key to quit /堠 Local echo StJ*I+op bits Auto wrap Delete code Save config       D8v8889:%렠 Fine scroll Background Cursor style Set cloMck Zero timer 8 9(9k999,G 300 600 1200 1800 2400 4800 9600 19K .4:J+I,@.4:@,5 Off On ..,7 1 2 ..,5 Yes No .."1 None Simple Standard  $$$$- Off M On &&$7 Normal 0 1 2 3 4 5 6 7 8 9 a b c d e fInverse 0 1 2 3 4 5 6 7 8 9 a b c d e fJ,I-&(*,.024&(*,.024&(*,.024& ( * , . 0 2 4 $/ Block Line &&.= $7F DEL $08 BS ^H  00.? SaMving current parameters 0ɯϠ0򠠠$-xx:xx &$)OkUDDS:R:K:D:ICETJ-I..CFG| w""̈wfDwfUwfD̪DDwDw""""DD8@M@88"" 8 DD8""DD8""8 P((( [?1;0cP: 1 Printing screen- J.I/Please wait -!! lj;k+*opui-=vcbxz436521, .nm/~rey twq9078<>fhdgsaLJ:K\M^OPUI_|VCBXZ$#&%"![ ]NM?REYTWQ()'@FHDGSA    {}`Online |PJ/I0aused |衡 Caps  |Num &| Shift-ESC for menu | [] |- Ice-T3A MVT100 terminal emulator by Itay Chamiel.. (c)1994! Version 1.0 KThis program is Shareware, and may be freely distributed. For registration, J0I1Pplease send $15 to Itay Chamiel, 9A Narkiss St, Apt. 13, Jerusalem 92461 Israel.OYou MUST registrate yoMur copy after a 30-day trial period. May not be modified.  NzLDNQHPx2C젠4c(9 Filename J1I2 Drive no. Verbosity Delete file Lock file Unlock file *******au_` aM*a3aL7"/ > C ੀL67 3E)̥ ;ͅJ7I8̅˅ )H)H`) z<) ;L7L/M7R F D C 4 4 _ \b \`  V`>-  Vl 3EL7̢* z<* ;̅L/7 +H+H` 3EL&8̢*' z<* ;̅L/7 *H*H`+ J8I9z<+AO-8 ;iO- O- C -DL8+T Mz<+dQ- ;Q-L8+k z<+P-** ;jjP- P- C -DL8+ z<+U-I ;IU-L8+ z<+ŭR- ;R-L7+ z<+ޭT- ;T-L7+ zL7#i0 - -- z<צ׽-)-- C׽- - >L70: e - a:L9* a:L9+ r:L9ɛЫJ:I;-8鰙#L7ץM`ץ`, z< F D bjkDd-e VL: bOd-e hi VL:O-ч -DL8 Ve܇-݇-އ -, C, C -D >L8цȱȱJ˥iiʥJ;I<eȥɐ8LY;ͥM Jȱ eϽiХ P< >+$ȅ̥ɅͥɐɅ P >愩 M>愥񩅅 >慥Ӆ >愩 >愠I >挥愥婠 >愩 > j>慥аӅթ >愩 >愥񩃅 > j>慥Ӆ j>愥Ր` F HR-y`yHHJ>I?TMUXYR Vhh` J)i(i)Ui(i` J&eiɀ 8Hh` i@L>8 & &i=+-=,-q],-i'i`4׭ؠבPJ?I@MiPiɇɀੀƸƹ8 湥8( 齱꽲L? 齱睰蝱襹JŹ- 8帪HHhh ʽ׽ؠ P T- EMJ@IA` A`ƹƸ8 湥8( 齱꽯L@ 齱睰蝱襸JŹ68H帨h ʽ׽ؽ~ʈם؝L0A ʽ׽ؠ P MT- EJAIB` A`ׅ ʽ׽ؠ P 悑@`.` E8Pɀ0㩇 Cៅ.獲荳T-HH EHㅆ M H >hPJBICT-hhh E C` C i C煁腂LA EiPiɇɀ㩀 C魳0睰蝱T-HH EHH彁兆 H >hMPhT-hhhJCID E C` C i C煁腂LA BL}C`LIשؽש PiPץi0ԩੀ ALfS` CȱȱĉiiH >hĉM` D @d-e"bj VJDIE`&b j V`$bkO-mP-J V`b j V`(bdfehi jkLV bLVũ V (E F D "bjk@d-e V (E (E (E "bjk@d-e V -D (EũMLV C ``ҥ '-(-JEIFii eӅi8iEmEii(iԥЫ`` F`Hii~ɐn8h`L2F M b V`mmmJFIGm~ yɐtLF bhide Vmm-~'ii~ɐn~ e`LG b8h~idehi VnеL FM A CUW-E !. C Y X/j JGIHC X/z C jY# I C C e CLGLSHž  I jY FH (Yh* C C e C UrLG I EG H) jY F (YM C C e C ULSHJHII ILG A C Y jY F (Y E Hž  ILH AԭLH Bи UЙT-HT- }ChT- Y C C e CLG) MLJLI` AJ&eiS- JIIJiꅁi],-i'i`('eiS- iꅁiIi'i`IIIA8_:[-ؚLIɀ) -ؚM;; Ԡ terminal emulator ; by Itay Chamiel ;; I N T R O demo ; (VTIN.ASM) ;setvbv=$e45c ;;;sysvbv=$e45f ;;; org $7000;; Go after main program ;initdl db $70,$70,$70,$70,$70 db $44 d9#$f sta dlist+11,x jsr vbscrtld inc fscroldn jsr vbdl1 jmp xitvbvvbcp21 ldx #0vbcp2lp lda dlst2,x sta dlist,x inx cpx #0 bne vbcp2lp lda dlst2+$100 sta dlist+$100 lda dlst2+$101 sta dlist+$101 lda dlst2+$102 sta dlist+$102 rts;testd!w intscreen db 4,4,4,4,4,4,4,4,4 db 4,4,4,4,4,4,4,4,4 db $41 dw initdl;intscreen db ' !"#$%&',39,'()*+,-./ ' db ' "#$%&',39,'()*+,-./0 ' db ' #$ ()*+, 01 ' db ' 9 $ )*+,- 2 ' db ' % *+,-. 3 ' db ' +,-./ ' db ' ,-./0 ' db ' -./01 ' db ' ./012 9 ' db ' /0123 ' db ' 01234 ' db ' 12345 ' db ' 23456 ' db ' 34567 ' db 9' 45678 ' db ' 56789 ' db ' 6789: ' db ' 789:; ' db ' 6789:;<=> '; 012345678901234569789012345678901;456789; 1 2 3 ;intinit lda #0 taxintnopl sta 53248,x inx cpx #8 bne intnopl lda #0 sta intmode sta 559 sta 712 jsr intvwt lda #40 sta 710 lda #42 sta 709 lda #44 sta 708 lda #$a0 sta 79 +K Jʽ 51-`LIJ{LIJ}LIJ~JJIK rS溦ʽ (ƺ`Pƺ``LJ 2IKI`` LJ  DSLJ ƺPLJIɬII`LIM O LKLJOLJ``LDS[qIMI⟩JKIL`D DSLQE +KLQM USLQ= C XLQ>  C XLQ7+LQ8+LQZM56 lda #HI[initdl] sta 561 lda #LO[initdl] sta 560 lda #255 ldx #0intchs1 sta $a000,x inx cpx #0 bne intchs1 lda #0 taxintchs2 sta $a000,x inx cpx #8 bne intchs2 lda 53770 and #$7f sta intdely ldx #0intscin lda intscreen,x sec 9sbc #32 sta intscreen,x lda intscreen+256,x sec sbc #32 sta intscreen+256,x inx cpx #0 bne intscinintscin2 lda intscreen+512,x sec sbc #32 sta intscreen+512,x inx cpx #248 ; 256->767 248->759 bne intscin2 lda #34 sta 559 jsr intvwt9 lda #6 ldx #HI[intvbi] ldy #LO[intvbi]; jmp setvbv jsr setvbvtttt jmp ttttintvwt lda $14intvdl cmp $14 beq intvdl rts;;intvbi lda $d010 ;trig0 bne intnof jmp sysvbvintnof lda intmode bne imode1 dec intdely ; Delay mode 0 lda int9 &SLQH LQ(BIMI`)BIMI`# @ILI`LQ8LLH CJLIMUh83LQ. LQH h .L Y PםPHHHHɀ) rS愥PhhhhLQ YEMP慥 fS慥 ((i(i⥅ƛLQABJMINLQ012LQIMI`?LfMH fMh;浩`:*0&80 涩` e e` 浥LQHbM⟭⟭㟭⟅ƻ㟭㟅POLQfJNIOA)⟥8⟅LQLQB(⟭eLQLQC&⟭ePLQOLQD$Mdely bne intend0 inc intmode lda #7 sta intcnt lda #255 sta intplcintend0 jmp sysvbvimode1 cmp #1 bne imode2 ldx intcnt ; Starter mode 1 ldy #0imd1lp lda intbot,x sta $a008,y inx iny cpx #8 bne imd1lp inc intplc dec intcnt lda in98⟅LQLQrj⟭⟭⟰ ⟩JOIP㟭⟅㟅ƺLQK5⟭ RLQ QLQ bALQJW⟭ R慥 bALOLQMŻ bALO QLQ CLQc &SLQnLP⟭! bhid.e VLQLP[JPIQ 8 LQPi0i0;i 8 L{Pi0 i0R H bhih V汥LQg6M⟭⟭PLQLQhL QlL QLQLtQ LQLQJQIRMW- !.LQLQm_ LQĵD LQLQLQLQMоLQLQ JIII` Y PO愠 Ą HH D) >Ƅhh`hhJJRIS戩Ĉi(i`('戩LRR Y  PLR(' P HHM C) >Ohh`hhJ(i(i`hh('LR bhi)d.eLV䥻ŹJSIT 1?``Ÿ b@`ƻ` ` CU Y= &(' ȩ ץ ȩLSץ ץM`Т )` 8`i@&&ʽ LTLTLT T6 JTIUII륈LUJ&ei=,-𯱁=+-y𯑁i'i`iN5; lda $100; beq testdok; dec $100; pla; pla; jmp xitvbv;testdok; lda #45; sta $100; rtsvbchd3 cmp #3 bne vbchd4 jsr vbcp12 dec vbfm ; 3 down dec vbto jsr vbmvb2 jsr vbscrtld2 inc fscroldn jsr vbdl2 jmp xitvbvvbcp12 ldx #0vb!cp1lp lda dlist,x sta dlst2,x inx cpx #0 bne vbcp1lp lda dlist+$100 sta dlst2+$100 lda dlist+$101 sta dlst2+$101 lda dlist+$102 lda dlst2+$102 rtsvbchd4 cmp #4 bne vbchd5 jsr vbcp21 dec vbfm ; 4 down dec vbto jsr vbmvb jsr vbsc!devic lda #1 ; Unit #1 sta dunit lda #63 ; Command #63 sta dcomnd lda #64 ; Read data sta dstats lda #5 sta dtimlo ; 5 secs for timeout sta dbufhi ; Load data into $5__ lda #0 sta dbuflo ; Load data into $_00 sta dbythi ; Get] $00__ bytes sta daux1 ; Send a 0 as both sta daux2 ; auxiliary bytes lda #12 sta dbytlo ; Get 12 bytes - $__0C jsr siov ; Execute! bpl btnoerr1 rts ; Error - abort btnoerr1 ; No error ldx #11btloop lda $500,x ; Copy downl]oaded init sta dcb,x ; info as parameters dex ; to use to get main bpl btloop ; R: handler from 850 jsr siov ; Download it. bmi bterr3 ; Error? jsr $506 ; No. Initialize it jmp (12) ; Imitate Reset and exit bterr3 rts] ; Yes, abort; org $2e2 dw boot850 ; Load in init-address;; Include the following modules to ; generate the complete program: ;; include VTIN.ASM ; Loading screen include VTV.ASM ; Data tables include VT1.ASM ; Main - part 1 ] include VT2.ASM ; Main - part 2 include VT3.ASM ; Main - part 3 include VTCHSET.ASM ; Characters ;nerate the complete program: ;; include VTIN.ASM ; Loading screen include VTV.ASM ; Data tables include VT1.ASM ; Main - part 1 \nrtld inc fscroldn jsr vbdl1 jmp xitvbvvbchd5 cmp #5 bne vbchd6 jsr vbcp12 dec vbfm ; 5 down dec vbto jsr vbmvb2 jsr vbscrtld2 inc fscroldn jsr vbdl2 jmp xitvbvvbchd6 cmp #6 bne vbchd7 jsr vbcp21 dec vbfm ; 6 down dec vbto! jsr vbmvb jsr vbscrtld inc fscroldn jsr vbdl1 jmp xitvbvvbchd7 cmp #7 bne vbchd8 jsr vbcp12 dec vbfm ; 7 down dec vbto jsr vbmvb2 jsr vbscrtld2 inc fscroldn jsr vbdl2 jmp xitvbvvbchd8 cmp #8 bne vbnod8 jsr vbcp21 dec vbfm ! ; 8 down dec vbto dec vbto dec vbto jsr vbmvb lda vbscbt clc adc #12 tax lda #$f sta dlist-9,x sta dlist-8,x sta dlist-7,xvbdn8lp lda dlist,x sta dlist-2,x inx cpx #0 bne vbdn8lp lda #LO[dlist] sta dlist+254 lda #HI[dlist] sta d!list+255 lda #0 tayvbdn8erl1 sta (vbtemp2),y iny cpy #0 bne vbdn8erl1 inc vbtemp2+1vbdn8erl2 sta (vbtemp2),y iny cpy #320-256 bne vbdn8erl2vbnod8 lda #0 sta fscroldn jsr vbdl1 jmp xitvbv;vbscrtlu ; Make top line scroll up ldx vbsct!p sec lda dlist+1,x sbc #40 sta dlist+1,x lda dlist+2,x sbc #0 sta dlist+2,x rtsvbscrtlu2 ; same for dlist2 ldx vbsctp sec lda dlst2+1,x sbc #40 sta dlst2+1,x lda dlst2+2,x sbc #0 sta dlst2+2,x rtsvbscrtld ; Make top line scroll dwn ! ldx vbsctp clc lda dlist+1,x adc #40 sta dlist+1,x lda dlist+2,x adc #0 sta dlist+2,x rtsvbscrtld2 ; same for dlist2 ldx vbsctp clc lda dlst2+1,x adc #40 sta dlst2+1,x lda dlst2+2,x adc #0 sta dlst2+2,x rtsvbmvf ; Mem-move subrouti!ne - fwd lda vbfm clc adc vbln tax dex lda vbto clc adc vbln tay dey dec vbfmvbmvflp lda dlist,x sta dlist,y dex dey cpx vbfm bne vbmvflp inc vbfm rtsvbmvf2 ; same for dlist2 lda vbfm clc adc vbln tax dex lda vbto clc adc v!bln tay dey dec vbfmvbmvf2lp lda dlst2,x sta dlst2,y dex dey cpx vbfm bne vbmvf2lp inc vbfm rtsvbmvb ; Mem-move subroutine - back ldx vbfm ldy vbto lda #0 sta vbtempvbmvblp lda dlist,x sta dlist,y inx iny inc vbtemp lda vbtemp! cmp vbln bne vbmvblp rtsvbmvb2 ; Same for dlist2 ldx vbfm ldy vbto lda #0 sta vbtempvbmvb2lp lda dlst2,x sta dlst2,y inx iny inc vbtemp lda vbtemp cmp vbln bne vbmvb2lp rtsvbdl1 ; Set dlist 1 lda #LO[dlist] sta 560 lda #HI[dlist]! sta 561 rtsvbdl2 ; Set dlist 2 lda #LO[dlst2] sta 560 lda #HI[dlst2] sta 561 rtsvbchu1 ; Fine Scroll UP cmp #1 bne vbchu2; jsr testd jsr vbcp12 lda scrltop ; 1 up asl a asl a adc scrltop asl a adc #3 sta vbsctp sta vbfm clc!;; Autorun help file ;dlist=$80 org $3000start lda #LO[text] sta dlist lda #HI[text] sta dlist+1 ldy #0 jsr do inc dlist+1 jsr do inc dlist+1 jsr do inc dlist+1 jsr do lda #0clloop sta clear,y sta clear+$100,y sta clear+$200,y st5 adc #3 sta vbto lda scrlbot asl a asl a adc scrlbot asl a adc #3 sta vbscbt sec sbc vbsctp clc adc #3 sta vbln ldx vbscbt lda dlst2+1,x sta vbtemp2 lda dlst2+2,x sta vbtemp2+1 txa clc adc #11 sta vbtemp ldx #255vbuplp1 lda dls!t2-2,x sta dlst2,x dex cpx vbtemp bne vbuplp1 lda #LO[dlst2] sta dlst2+256 lda #HI[dlst2] sta dlst2+257 lda #$f sta dlst2,x sta dlst2-1,x jsr vbmvf2 lda scrltop asl a tax ldy vbsctp lda linadr,x clc adc #LO[280] sta dlst2+1,y lda li!nadr+1,x adc #HI[280] sta dlst2+2,y inc fscrolup jsr vbdl2 jmp xitvbvvbchu2 cmp #2 bne vbchu3; jsr testd jsr vbcp21 inc vbfm ; 2 up inc vbfm inc vbln jsr vbmvf ldx vbsctp lda #$f sta dlist+3,x jsr vbscrtlu inc fscrolup jsr vbdl1! jmp xitvbvvbchu3 cmp #3 bne vbchu4; jsr testd jsr vbcp12 inc vbfm ; 3 up inc vbto jsr vbmvf2 jsr vbscrtlu2 inc fscrolup jsr vbdl2 jmp xitvbvvbchu4 cmp #4 bne vbchu5; jsr testd jsr vbcp21 inc vbfm ; 4 up inc vbto jsr vbmvf! jsr vbscrtlu inc fscrolup jsr vbdl1 jmp xitvbvvbchu5 cmp #5 bne vbchu6; jsr testd jsr vbcp12 inc vbfm ; 5 up inc vbto jsr vbmvf2 jsr vbscrtlu2 inc fscrolup jsr vbdl2 jmp xitvbvvbchu6 cmp #6 bne vbchu7; jsr testd jsr vbcp21 inc! vbfm ; 6 up inc vbto jsr vbmvf jsr vbscrtlu inc fscrolup jsr vbdl1 jmp xitvbvvbchu7 cmp #7 bne vbchu8; jsr testd jsr vbcp12 inc vbfm ; 7 up inc vbto jsr vbmvf2 jsr vbscrtlu2 inc fscrolup jsr vbdl2 jmp xitvbvvbchu8 cmp #8 !bne vbnou8; jsr testd jsr vbcp21 inc vbfm ; 8 up inc vbto dec vbln jsr vbmvf lda vbscbt clc adc #12 taxvbup8lp lda dlist,x sta dlist-2,x inx cpx #0 bne vbup8lp lda #LO[dlist] sta dlist+254 lda #HI[dlist] sta dlist+255 jsr vbscr!a clear+$300,y iny cpy #0 bne clloop lda 561 sta dlist+1 lda 560 sta dlist ldy #4 lda #LO[text] sta (dlist),y iny lda #HI[text] sta (dlist),y dey lda #0 sta 710 lda #10 sta 709 lda #2 sta 712 lda #255 sta 764loop lda 764 cmp #255tlu lda #0 tayvbup8erl1 sta (vbtemp2),y iny cpy #0 bne vbup8erl1 inc vbtemp2+1vbup8erl2 sta (vbtemp2),y iny cpy #320-256 bne vbup8erl2vbnou8 lda #0 sta fscrolup jsr vbdl1 jmp xitvbv;bkxfr jsr getscrn lda svmnucnt sta mnucnt jmp b!5 beq loop lda #255 sta 764 lda 88 sta (dlist),y iny lda 89 sta (dlist),y rtsdo lda (dlist),y cmp #96 bcs ok cmp #32 bcs do1 clc adc #64+32do1 sec sbc #32ok sta (dlist),y iny cpy #0 bne do rts; org $3400text db ' 5 ' db ' For the first-time user ' db ' ----------------------- ' db ' ' db 'In the DOS menu, binary-load READER.COM.' db 'Select tari EOL, and the f5ile ' db 'ICET.DOC. When the file loads press ' db '"?" (Shift-?) for instructions. ' db ' ' db 'If you wish to erase this message, ' db 'delete AUTORUN.SYS. ' db '6tcnt cmp #255 bne intend1intrtry lda 53770 and #60 ; 00111100 beq intrtry sta intlen inc intmodeintend1 jmp sysvbv;imode2 cmp #2 bne imode3 ldx intplc ; Middle mode 2 im2lp lda $a008,x sta $a009,x dex cpx #255 bne im2lp lda #$55 9sta $a008 inc intplc dec intlen lda intlen cmp #0 bne intend2 inc intmode lda #7 sta intcntintend2 jmp sysvbvimode3 cmp #3 bne imode4 ldx intplc ; End mode 3 im3lp lda $a008,x sta $a009,x dex cpx #255 bne im3lp ldx intcnt lda intto9p,x sta $a008 inc intplc dec intcnt lda intcnt cmp #255 bne intend3 lda #0 sta intcnt inc intmodeintend3 jmp sysvbvimode4 cmp #4 bne mode0 ldx intplc ; Mover mode 4 dexim4lp lda $a008,x sta $a009,x dex cpx intlen bne im4lp lda #$9ff sta $a008,x lda intplc beq im4lb inc intplcim4lb lda intlen cmp #255 bne intend4 inc intmodeintend4 inc intlen jmp sysvbvmode0 lda 53770 and #$7f sta intdely lda #0 sta intmode jmp sysvbv;intmode db 0intdely db 0intlen db 0in:.kxfr2xfer ; File-transfer menu lda #0 sta mnucnt ldx #HI[xfrwin] ldy #LO[xfrwin] jsr drawwinbkxfr2 ldx #HI[xfrdat] ldy #LO[xfrdat] jsr menudo2 lda menret cmp #255 beq xfrquit lda mnucnt sta svmnucnt asl a tax lda xfrtbl+1,x pha lda x!frtbl,x pha rtsxfrquit jmp mnmenu;bkfil jsr getscrn lda svmnucnt sta mnucnt jmp bkfil2file ; Mini-DOS menu lda #0 sta mnucnt ldx #HI[filwin] ldy #LO[filwin] jsr drawwinbkfil2 ldx #HI[fildat] ldy #LO[fildat] jsr menudo2 lda menret !cmp #255 beq filquit lda mnucnt sta svmnucnt asl a tax lda filtbl+1,x pha lda filtbl,x pha rtsfilquit jmp mnmenu;filnam ; 堛 ldx #0namloop1 lda flname,x cmp #65 bcc namok cmp #91 bcs namok clc adc #32namok eor #12!8 sta nammsg+3,x inx cpx #12 bne namloop1 ldx #HI[namwin] ldy #LO[namwin] jsr drawwin lda #0 sta x jmp namprntnamloop2 jsr getkeybuff cmp #27 bne namnq jmp bkfilnamnq cmp #43 bne namnlt lda x cmp #0 beq namloop2 dec x jmp namprnt!namnlt cmp #42 bne namnrt lda x cmp #11 beq namloop2 inc x jmp namprntnamnrt; cmp #255; bne namnin; ldx #11; cpx x; beq naminok;naminlp; lda nammsg+2,x; sta nammsg+3,x; dex; cpx x; bne naminlp;naminok; lda #160; sta nammsg+3,x; jm!p namprnt;namnin cmp #254 bne namndlnamdldo ldx x cpx #11 beq namdloknamdllp lda nammsg+4,x sta nammsg+3,x inx cpx #11 bne namdllpnamdlok lda #160 sta nammsg+14 jmp namprntnamndl cmp #126 bne namnbks lda x cmp #0 beq namloop2 dec! x jmp namdldonamnbks cmp #155 beq namret jmp namnretnamret lda nammsg+3 and #127 cmp #32 beq namsper ldx #1namsplk lda nammsg+3,x and #127 cmp #32 bne namspok lda nammsg+4,x and #127 cmp #32 bne namspernamspok inx cpx #11 bne na"msplk jmp namrtchnmnamsper lda x pha jsr getscrn ldx #HI[namspwin] ldy #LO[namspwin] jsr drawwin jsr getkeybuff jsr getscrn ldx #HI[namwin] ldy #LO[namwin] jsr drawwin pla sta x jmp namprntnamrtchnm lda nammsg+3 and #127 cmp #48 bcc" nmrtnonm and #127 cmp #58 bcs nmrtnonm lda x pha jsr getscrn ldx #HI[namnmwin] ldy #LO[namnmwin] jsr drawwin jsr getkeybuff jsr getscrn ldx #HI[namwin] ldy #LO[namwin] jsr drawwin pla sta x jmp namprntnmrtnonm ldx #0namretlp lda na"mmsg+3,x eor #128 cmp #97 bcc namretok cmp #123 bcs namretok sec sbc #32namretok sta flname,x inx cpx #12 bne namretlp jmp bkfilnamnret; cmp #32; beq namkok cmp #46 beq namkok cmp #48 bcc gnamloop2 cmp #58 bcc namkok cmp #97 bcc "gnamloop2 cmp #123 bcs gnamloop2namkok pha lda x tax cmp #11 beq namkdn ldx #11namklp lda nammsg+2,x sta nammsg+3,x dex cpx x bne namklpnamkdn pla eor #128 sta nammsg+3,x lda x cmp #11 beq namprnt inc xnamprnt ldx x lda nammsg+"3,x eor #128 sta nammsg+3,x txa pha ldx #HI[nammsg] ldy #LO[nammsg] jsr prmesg pla tax sta x lda nammsg+3,x eor #128 sta nammsg+3,xgnamloop2 jmp namloop2;fildrv ; ldx #HI[drvwin] ldy #LO[drvwin] jsr drawwin lda" drive sta mnucnt ldx #HI[drvdat] ldy #LO[drvdat] jsr menudo1 lda menret cmp #255 beq drvqt lda mnucnt sta drive clc adc #49 sta fldrivedrvqt jmp bkfil;filvrb ; ldx #HI[vrbwin] ldy #LO[vrbwin] jsr drawwin lda verbo"se sta mnucnt ldx #HI[vrbdat] ldy #LO[vrbdat] jsr menudo1 lda menret cmp #255 beq vrbqt lda mnucnt sta verbosevrbqt jmp bkfil;fildlt ; 堛 ldx #HI[dltdat] ldy #LO[dltdat] lda #33 jmp filgenfillok ; 堛 ldx #HI[lokdat"C ds 1boty ds 1;ersl ds 2ersltmp ds 2scvar1 ds 1scvar2 ds 2scvar3 ds 2;scrlsv ds 2look ds 1lookln ds 2lookln2 ds 2;nextln ds 2nextlnt ds 2fscroldn ds 1fscrolup ds 1vbsctp ds 1vbscbt ds 1vbfm ds 1zvbto ds 1vbln ds 1vbtemp ds 1vbtemp2 ds 2;fltmp ds 2dbltmp1 ds 1dbltmp2 ds 1dblgrph ds 1;bufput ds 2bufget ds 2chrcnt ds 1;block ds 1ptblock ds 1putbt ds 1retry ds 1chksum ds 1;rush ds 1didrushz ds 1crsscrl ds 1;; More program equates;buftop =$7e90xtraln =$7e90txsav =$8000 org $8780lnbufr ds 81savddat ds 11numb ds 3; xxxxx ds (33)wind1 =$8800wind2 =$8c00txscrn =$9000txlinadr=$9780tabs =$97b0charset =$9800dlisz t =$9c00 org $9d03; xxxx ds (45)screen =$9fb0 org $9fb0linadr ds 50numstk ds $100; xxxx ds (14) org $aff0chartemp ds 8chartemp2 ds 8dlst2 ds $103cprd ds 8lnsizdat ds 24clockdat ds 7; xxxx ds (5);; System equates;bcz ount =747iccom =$342icbal =$344icbah =$345icptl =$346icpth =$347icbll =$348icblh =$349icaux1 =$34aicaux2 =$34bciov =$e456setvbv =$e45csysvbv =$e45fxitvbv =$e462kbcode =$d209;; Main program data ; org $294a ; Overwrite Mydos's z DUP;menudta db 0,0,80 db ' Terminal ' db '󠠠' db 'Ӡ' db 'Ԡ'mnmnuxdt db 5,1,10 db 10,0,20,0,30,0,40,0,50,0mnquitw db 28,4,49,8 db 'Really wanna quit?' db ''z db ' Quit 'mnquitd db 1,2,18 db 30,6,30,7mntbjmp dw connect-1,options-1,settings-1 dw file-1,xfer-1norhw db 25,16,51,19 db 'No R: handler present!!' db ' Hit any key to quit ';setmnu db 30,1,47,8 db '堠' db ' Lzocal echo ' db ' Stop bits ' db ' Auto wrap ' db ' Delete code ' db ' Save config 'setmnudta db 1,6,14 db 32,2,32,3,32,4,32,5,32,6,32,7settbl dw setbps-1,setloc-1,setbts-1 dw setwrp-1,setdel-1,savcfg-1optmnu db 20,1,37,8 db 'z렠' db ' Fine scroll ' db ' Background ' db ' Cursor style ' db ' Set clock ' db ' Zero timer 'optmnudta db 1,6,14 db 22,2,22,3,22,4,22,5,22,6,22,7opttbl dw setclk-1,setscr-1,setcol-1 dw setcrs-1,setclo-1,settmr-1;setbpsw dbz 44,2,71,5 db ' 300 600 1200 1800 ' db ' 2400 4800 9600 19K 'setbpsd db 4,2,6 db 46,3,52,3,58,3,64,3 db 46,4,52,4,58,4,64,4;setlocw db 44,2,53,5 db ' Off ' db ' On 'setlocd db 1,2,6 db 46,3,46,4;setbtsw db 44,3,55,6 db ' 1z ' db ' 2 'setbtsd db 1,2,8 db 46,4,46,5;setwrpw db 44,4,53,7 db ' Yes ' db ' No 'setwrpd db 1,2,6 db 46,5,46,6;setclkw db 34,2,49,6 db ' None ' db ' Simple ' db ' Standard 'setclkd db 1,3,12 db 36,3,36,4,36,z5;setscrw db 36,2,45,5 db ' Off ' db ' On 'setscrd db 1,2,6 db 38,3,38,4;setcolw db 36,3,55,10 db 'Normal ' db ' 0 1 2 3 4 5 6 7' db ' 8 9 a b c d e f' db 'Inverse ' db ' 0 1 2 3 4 5 6 7' db ' 8 9 a b c d e f'setcolzd db 8,4,2 db 38,5,40,5,42,5,44,5 db 46,5,48,5,50,5,52,5 db 38,6,40,6,42,6,44,6 db 46,6,48,6,50,6,52,6 db 38,8,40,8,42,8,44,8 db 46,8,48,8,50,8,52,8 db 38,9,40,9,42,9,44,9 db 46,9,48,9,50,9,52,9;setcrsw db 36,4,47,7 db ' Block ' db ' Linez 'setcrsd db 1,2,8 db 38,5,38,6;setdelw db 46,5,61,8 db ' $7F DEL ' db ' $08 BS ^H 'setdeld db 1,2,12 db 48,6,48,7;savcfgw db 46,6,63,9 db 'Saving current' db ' parameters 'savcfgwe1 db 48,7,14 db 'ɯϠ'savcfgwe2 dzb 48,8,14 db ''savcfgn db ''setclow db 36,5,45,7 db 'xx:xx 'setclkpr db 38,6,5 db '' db ''settmrw db 36,6,41,8 db 'Ok';winbufs dw wind1,wind2;postbl1 db $0fpostbl2 db $f0,$0f;xchars db 0,85,170,0,0,0,0,0 db 17z0,170,170,68,68,170,170,170;sname db 'S:'rname db 'R:'kname db 'K:';cfgname db 'D:ICET.CFG',155cfgdat;baudrate db 8stopbits db 0localecho db 0click db 0curssiz db 1finescrol db 1autowrap db 1delchr db 0bckgrnd db 0bckcolzr db 0;verbose db 0drive db 0;graftabl db 254,6,0,128,129,130,131,7,8 db 132,133,3,5,17,26,19,15,16 db 20,21,25,1,4,24,23,124 db 9,10,11,12,13,14,255;blkchr db 0,0,238,238,238,238,0,0digraph db 170,238,170,0,119,34,34,0 ; ht db 2z38,204,136,0,119,102,68,0 ; ff db 238,136,238,0,119,102,85,0 ; cr db 136,136,238,0,119,102,68,0 ; lf db 204,170,170,0,68,68,119,0 ; nl db 170,170,68,0,119,34,34,0 ; vtdignumb db 28,34,34,0,68,68,56,0 ; 0 db 0,2,2,0,4,4,0,0 ; 1 db 28,2z,2,24,64,64,56,0 ; 2 db 28,2,2,24,4,4,56,0 ; 3 db 0,34,34,24,4,4,0,0 ; 4 db 28,32,32,24,4,4,56,0 ; 5 db 28,32,32,24,68,68,56,0 ; 6 db 28,2,2,0,4,4,0,0 ; 7 db 28,34,34,24,68,68,56,0 ; 8 db 28,34,34,24,4,4,56,0 ; 9 db 4,12,8,0,z8,24,16,0 ; : db 0,0,0,0,0,0,0,0 ; blank;sizes db 2,3,0,1,0szlen db 80,40,40,40;dsrdata db 27 db '[0n';sccolors db 14,0,0,2 ; Black db 4,14,0,12 ; White ;deciddata db 27 db '[?1;0c';kretrn=128kup =129kdzown =130kright=131kleft =132kexit =133kcaps =134kscaps=135kdel =136ksdel =137kbrk =138kzero =139kctrl1=140;deltab db 127,8;scrnname db 'P:'endofpg db $0cprntwin db 31,7,49,10 db 'Printing screen' db '- Please wait -'prnterr1 db 3z3,8,15 db ''prnterr2 db 33,9,15 db ''prnterr3 db ''keytab;; Ctrl and Shift off (0-63); db 108,106,59,kup,kdown,107,43,42 db 111,0,112,117,kretrn,105,45,61 db 118,0,99,kleft,kright,98,120 db 122,52,0,51,54,27,5z3,50,49,44 db 32,46,110,0,109,47,126,114,0 db 101,121,9,116,119,113,57,0,48 db 55,kdel,56,60,62,102,104,100 db kbrk,kcaps,103,115,97;; Shift-char (64-127); db 76,74,58,kup,kdown,75,92,94,79 db 0,80,85,kretrn,73,95,124,86,0 db 67,kleft,kright,6z6,88,90,36,0 db 35,38,kexit,37,34,33,91,32,93 db 78,0,77,63,0,82,0,69,89,0,84 db 87,81,40,0,41,39,ksdel,64,0,0 db 70,72,68,0,kscaps,71,83,65;; Ctrl-char (128-191); db 12,10,31,kup,kdown,11,kleft db kright,15,0,16,21,kretrn,9,kup db kdown,22,0,z3,kleft,kright,2,24 db 26,0,0,0,30,kbrk,0,0,kctrl1,27; Note on this ^^^^: ; kbrk will be removed when the ; break key works (now it's C-esc) ; db kzero,29,14,0,13,28,0,18,0,5 db 25,0,20,23,17,123,0,125,96,0 db kzero,0,0,6,8,4,0z ,0,7,19,1;ctr1offp db 1,0,8 db 'Online |'ctr1onp db 1,0,8 db 'Paused |'rushpr db 1,0,8 db '衡'capsonp db 10,0,4 db 'Caps'capsoffp db 10,0,4 db ' 'sts2 db 15,0,1 db '|'numlonp db 17,0,3 db 'Num'numloffp db 17,0,3 db ' z!'sts3 db 21,0,38 db '| Shift-ESC for menu | [' db 14,14,14,14,14 db 14,14,14,14,14,14 db '] |'bufcntpr db 45,0,11bufcntdt db ' 'tilmesg1 db 'Ice-T'tilmesg2 db 14,8,51 db 'A VT100 terminal emulator' db ' by Itay Chamiel.. (c)199z"4'tilmesg3 db 33,10,11 db 'Version 1.0'tilmesg4 db 2,12,75 db 'This program is Shareware, and may be freely distributed. For registration,'tilmesg5 db 0,13,80 db 'please send $15 to Itay Chamiel, 9A Narkiss St, Apt. 13, Jerusalem 92461 Israel.'z#tilmesg6 db 1,14,79 db 'You MUST registrate your copy after a 30-day trial period. May not be modified.';icesoft ; IceSoft logo data db 30,32,0,0,4 db 18,32,14,6,78 db 122,76,208,8,68 db 78,81,200,205,224 db 72,162,5,80,128 db 120,15z$3,185,144,192 db 0,0,0,0,0 db 255,255,255,255,128;xfrwin db 50,1,67,3 db '젠'xfrdat db 1,1,14 db 52,2xfrtbl dw xmddnl-1filwin db 40,1,57,9 db '' db ' Filename ' db ' Drive no. ' db ' Verbosity ' db 'zM#128 bcc rhok1 rtsrhok1;; Set no translation; lda #38 sta iccom+$20 lda #32 sta icaux1+$20 jsr ciov cpy #128 bcc rhok2 rtsrhok2;; Set baud,wordsize,stopbits; lda #36 sta iccom+$20 lda #0 sta icaux2+$20 lda baudrate clc adc stopb*&its sta icaux1,x jsr ciov cpy #128 bcc rhok3 rtsrhok3;; Open "r:" for read/write; lda #3 sta iccom+$20 lda #13 sta icaux1+$20 jsr ciov cpy #128 bcc rhok4 rtsrhok4;; Enable concurrent mode I/O, use ; mini-buffer (after the program) *'; lda #40 sta iccom+$20 lda #LO[minibuf] sta icbal+$20 lda #HI[minibuf] sta icbah+$20 lda #LO[buffer-minibuf-1] sta icbll+$20 lda #HI[buffer-minibuf-1] sta icblh+$20 lda #13 sta icaux1+$20 lda #0 sta icaux2+$20 jmp ciov;; Close #2;clo*(se2 ldx #$20 lda #12 sta iccom+$20 jmp ciov;; The following sends a Break!;dobreak lda #19 sta outdat lda #1 sta outnum jsr outqit jsr wait10 jsr buffdo jsr close2; ldx #$20 lda #34 sta iccom+$20 lda #2 sta icaux1+$20 lda #0 sta *)icaux2+$20 lda #LO[rname] sta icbal+$20 lda #HI[rname] sta icbah+$20 jsr ciov ; Xio 34,#2,2,0,"R:" ; jsr wait10 jsr wait10 ; Wait 1/2 sec jsr wait10; ldx #$20 lda #34 sta iccom+$20 lda #3 sta icaux1+$20 lda #0 sta icaux2+$20 lda #**LO[rname] sta icbal+$20 lda #HI[rname] sta icbah+$20 jsr ciov ; Xio 34,#2,3,0,"R:" jsr ropen jsr wait10 lda #17 sta outdat lda #1 sta outnum jmp outqit;wait10 ldx #0wt10lp jsr vdelay inx cpx #10 bne wt10lp rts;getscrn ; - Close*+ window - lda numofwin bne gtwin rtsgtwin dec numofwin lda numofwin asl a tax lda winbufs,x sta prfrom lda winbufs+1,x sta prfrom+1 ldy #0gtwninlp lda (prfrom),y sta topx,y iny cpy #4 bne gtwninlp lda prfrom clc adc #4 sta prfrom*I;; Ԡ terminal emulator ; by Itay Chamiel ;; (This is the file to assemble if ; you don't want the 850 interface ; booter installed automatically.) ;; Assembling will create ICET.OBJ. ; include VTV.ASM include VT1.ASM include r-VT2.ASM include VT3.ASM include VTCHSET.ASM; Chamiel ;; (This is the file to assemble if ; you don't want the 850 interface ; booter installed automatically.) ;; Assembling will create ICET.OBJ. ; include VTV.ASM include VT1.ASM include p0tcnt db 0intplc db 0;inttop db $fe,$fe,$f9,$f9,$e5,$e5,$95,$95intbot db $56,$56,$5b,$5b,$6f,$6f,$bf,$bf; org $2e2 dw intinit;ode0 lda 53770 and #$7f sta intdely lda #0 sta intmode jmp sysvbv;intmode db 0intdely db 0intlen db 0in8 DD̪̈ff""ffD"DDDDfDDDf""DfDDDfDDDDDDDDD"DDTTTTTT"̪fJY+Zf""ffDffff"̪DDDf"""""̪DDDDfD DDDDDDfD"D"D"DDD"DDD"DDDD"DDDDDDDDDDDDDD""DDDDDDDDD"D"""f""""D̪D"DDDDDDf"DDDDDD"DD"D"DD"DV1DDfD̪̪ff̪ffDDDDf"""D̪"̪̈"̪̪fD""DDDDDDDDDDDD"DfDDDDfDD""DDDDDV2UUUUDDDwDDDDDDDDDDDDDDDDDDDDDDDDDD"DD"D"D"DDDDDDwDDDDDDDDDDDDDDDDDDDDDw0p p0V3` "fDDD""f""""""D"""""D""DD̪fD""""""""""""""f"D""""""D""""f""""̪""DDDD"""""""""DDfffffDDDfDDDDDDDDD"DDV4TTTTTTfDDD""f""""""D"""""D""DD̪fD""""""""""""""f"D""""""D""""f""""̪""DDDD"""""""""DDfffffDDDfDDDDDDDDD"DDT ` T WUL#T TLT T WUL#T i`i`('ei𯑁i'i` JUIV ` ) U)D U)" U) U`8&8&`&&`H);hLN6`)LV)? LX)?LAVũOƩĽ{.0 :i@L;V-mL;V,lL;V.nL;VɀML;VqPL;VwQL;VeRL;VrSL;V`LV`Ľ{.0JVIW:LVɀ LVqw erLrVLU, -.`LVê{.ɀLWA[ i LVa N7{8 ` ŅƩLVũĩ >Q-H FhĐ bčhčiōdeLVɅD >T-HT- }ChT- I YW- !. CJWIX)J ChhL67ɆI > CLXɇ  > CLXɈV-0.ũLVɉV-I0.ũN8LVɀ ũLVɊ > I DLI`ɋ LVɌ >I`Ɂ#Ʌ8iAǩũĩ[ƥOLV` >.5 z< F D b2d.eJK JXIYVj YיP bdeQhi V0慥¢ bN94d.ehi V -DL3E Ve܇m.݇n.އo..W C.i C -D >L3E/cLC/\LC/tLC/nLC/QLC/;LC/FLCJJœ`H/ h JYIZ /|-ؚ/LC'$ Y% Y Y& Y' Y N:Y( Y) -i(i戥` 悑@`Hƅ ׽h`#@漥 IЭ0ԭ1Ԣ#`01`01`{ [ e ii e i8ii  >] ii ]Lb [ ] \ ]LbJ^I_ [ >] \ ]Lb [ ] N?\ ]Lb [ >] \ ]Lb [ ] \ ]Lb [ >] \ ]Lb= [ ]i \@ ]Lb 3EL#_̢1 z<1' ;̅ -1H,1H`L/7 3ELJ_I`W_̢1. z<1 ;̅N@ 1H1H`L/7,3A[i I1 1 z<L` >LB_+ ƄL`* L` 11 1L`~ ƄL_ɛL`1) 1) 1)  L>`H 3E2 z< > 3E1 z 3ENA1 zhLB_2 C D hb)d3ejk V)% Ve܇2݇2އ22 C -D >LB_ -DLB_ 3E C*322 C D bjkd2e V bnɛ A[i H >hکP戩慥JbIcƅ b)NO] ldy #LO[lokdat] lda #35 jmp filgenfilunl ; 堛 ldx #HI[unldat] ldy #LO[unldat] lda #36 jmp filgen;filgen stx cntrh sty cntrl pha ldy #0fgnlp lda (cntrl),y sta fgnprt,y lda flname,y cmp #65 bcc fgnok cmp #91 bcs fgnok c"Dlc adc #32fgnok sta fgnfil,y iny cpy #12 bne fgnlp ldx #HI[fgnwin] ldy #LO[fgnwin] jsr drawwin jsr getkeybuff cmp #27 bne fgnnoq pla jmp bkfilfgnnoq ldx #HI[fgnblk] ldy #LO[fgnblk] jsr prmesg jsr close2 ldx #$20 pla sta iccom+$20 "Elda #LO[xferfile] sta icbal+$20 lda #HI[xferfile] sta icbah+$20 lda #0 sta icaux1+$20 sta icaux2+$20 jsr ciov tya and #128 beq fgnnoerr jsr number lda numb sta fgnern lda numb+1 sta fgnern+1 lda numb+2 sta fgnern+2 ldx #HI[fgnerr] ldy"P#1 sta icbll+$20 lda #0 sta icblh+$20 jsr ciov cpy #128 bcs prnterr;prntend jsr ropen jmp getscrnprnterr jsr number lda numb sta prnterr3 lda numb+1 sta prnterr3+1 lda numb+2 sta prnterr3+2 ldx #prnterr1/256 ldy #prnterr1&255 jsr pr.Gmesg ldx #prnterr2/256 ldy #prnterr2&255 jsr prmesg jsr ropen jsr getkeybuff jmp getscrn;; Status line doers ;shcaps lda capslock bne capson ldx #capsoffp/256 ldy #capsoffp&255 jmp prmesgnov ;capson ldx #capsonp/256 ldy #capsonp&255 j.Hmp prmesgnov ;shnuml lda numlock bne numlon ldx #numloffp/256 ldy #numloffp&255 jmp prmesgnov ;numlon ldx #numlonp/256 ldy #numlonp&255 jmp prmesgnov ;shctrl1 lda rush beq ctrl1pok ldx #HI[rushpr] ldy #LO[rushpr] jmp prmesgnovctrl1pok ._ lda prfrom+1 adc #0 sta prfrom+1;gtwninit lda topy asl a tax lda linadr,x clc adc topx sta cntrl lda linadr+1,x adc #0 sta cntrh lda botx sec sbc topx clc adc #1 sta winchng2+1 ldx #0 ldy #0gtwnlp lda (prfrom),y sta (cntrl),y *Jinywinchng2 cpy #0 bne gtwnlp ldy #0 lda prfrom clc adc winchng2+1 sta prfrom lda prfrom+1 adc #0 sta prfrom+1 lda cntrl clc adc #40 sta cntrl lda cntrh adc #0 sta cntrh inx cpx #8 bne gtwnlp inc topy lda topy cmp boty bne gtwni*Knit rts;scvbwta lda fscroldn bne scvbwta lda fscrolup bne scvbwta rts;buffpl ; Pull one byte from buffer lda bufget ; into A cmp bufput bne bufpok1 lda bufget+1 cmp bufput+1 bne bufpok1 jsr buffdo cpx #0 beq buffpl rtsbufpok1 ldy *L#0 lda (bufget),y pha clc lda bufget adc #1 sta bufget lda bufget+1 adc #0 sta bufget+1 cmp #HI[buftop] bne bufpok2 lda bufget cmp #LO[buftop] bne bufpok2 lda #LO[buffer] sta bufget lda #HI[buffer] sta bufget+1bufpok2 sec lda mybcou*Q Delete file ' db ' Lock file ' db ' Unlock file 'fildat db 1,7,14 db 42,2,42,3,42,4,42,5,42,6,42,7 db 42,8filtbl dw fildir-1,filnam-1,fildrv-1 dw filvrb-1,fildlt-1,fillok-1 dw filunl-1;namwin db 52,2,69,4 db ' 'nammsg zNdb 55,3,12 db '12345678.123'namnmwin db 52,2,65,7 db ' First ' db 'character ' db 'can',39,'t be a' db ' number! 'namspwin db 52,2,65,7 db 'Spaces not' db 'allowed as' db 'seperators' db 'or 1st chr';drvwin db 54,3,63,7 db ' 1 2 3'z[&n0:慥Lb% Ve܇)3݇)3އ)33 CLb2 C -D F > C eLL_ n bdnehiLVppOpBAbb C0JcIdNR #LO[fgnerr] jsr prmesg jsr ropen jsr getkeybuff jmp bkfilfgnnoerr jsr ropen jmp bkfil;fildir ; jsr getscrn jsr clrscrnraw lda fldrive sta drname+1 ldx #HI[drmsg] ldy #LO[drmsg] jsr prmesg jsr close2; ldx #$20 lda #3"Snt sbc #1 sta mybcount lda mybcount+1 sbc #0 sta mybcount+1 pla ldx #0 rts;buffdo ; Intelligent buffer manager; ldx outnum ; Insert local char into beq bfdnolk ; buffer for local-echo tay lda #0 sta bcount+1 lda #1 sta bcount jmp bfok*X1h >Ld D0 r V0r)t3uPxy{z V -Dg d dLpdLhd dm dm & & & & & &iinH dhm d'( D d -DLcN` sta iccom+$20 lda #6 sta icaux1+$20 lda #0 sta icaux2+$20 lda #LO[drname] sta icbal+$20 lda #HI[drname] sta icbah+$20 jsr ciov; jsr input; lda #4 sta y ldy #0 sty x;drloop lda buffer,y cmp #155 beq drnoprt cmp #32 beq drnoprt c"Tmp #65 bcc drprt cmp #91 bcs drprt clc adc #32drprt sta prchar tya pha jsr print pla taydrnoprt iny inc x cpy #20 bne drloop; lda #0 sta temp lda x cmp #80 bcc drnox inc temp lda #0 sta x inc y lda y cmp #25 bcc drnox dec "Uydrnox jsr input tya and #128 bne drerr ldy #0 lda buffer cmp #48 bcc drloop cmp #58 bcs drloop lda #0 sta x lda temp bne dirnoe inc ydirnoe inc y lda y cmp #25 bcc drloop lda #24 sta y jmp drloop;drerr cpy #136 beq drend js"Vr number lda numb and #127 sta drernm lda numb+1 and #127 sta drernm+1 lda numb+2 and #127 sta drernm+2 ldx #HI[drerms] ldy #LO[drerms] jsr prmesg jmp drerrokdrend ldx #HI[drmsg2] ldy #LO[drmsg2] jsr prmesgdrerrok jsr ropendrwt jsr "Wbuffdo lda 764 cmp #255 beq drwt jsr getkey jsr clrscrnraw jsr screenget jmp file;input lda #32 ldx #0inplp sta buffer,x inx cpx #20 bne inplp; ldx #$20 lda #5 sta iccom+$20 lda #LO[buffer] sta icbal+$20 lda #HI[buffer] sta icbah"]1bfdnolk ldx #$20 lda #13 sta iccom+$20 ; check stat jsr ciov ; of built-in buffer lda bcount bne bfok1 lda bcount+1 bne bfok1 ldx #1 rtsbfok1; jsr bfchkstt; sta bfstat clc lda mybcount adc bcount sta mybcount lda mybcount+1 adc bcou*Ynt+1 sta mybcount+1 clc lda bufput adc bcount tax lda bufput+1 adc bcount+1 cmp #HI[buftop] ; Check for wrap bcc bfok2 beq bfchk bcs bfwrapbfchk txa cmp #LO[buftop] bcs bfwrapbfok2 lda outnum beq bfnoek1 tya ldy #0 sta (bufput),y j*Zmp bfnoek2bfnoek1 ldx #$20 ; No wrap, read data lda #7 sta iccom+$20 lda bcount sta icbll+$20 lda bcount+1 sta icblh+$20 lda bufput sta icbal+$20 lda bufput+1 sta icbah+$20 jsr ciovbfnoek2 clc lda bufput adc bcount sta bufput lda buf*a db ' 4 5 6' db ' 7 8 9'drvdat db 3,3,2 db 56,4,58,4,60,4 db 56,5,58,5,60,5 db 56,6,58,6,60,6;vrbwin db 54,4,65,7 db 'Doesn',39,'t ' db ' matter!'; db ' Long '; db ' Short 'vrbdat db 1,2,8 db 56,5,56,6;dltdat db 'Delete file:'lokdz\at db 'Lock file: 'unldat db 'Unlock file:';fgnwin db 56,5,71,9fgnprt db ' 'fgnfil db ' ' db 'Esc to abort'fgnblk db 58,8,12 db ''fgnerr db 58,8,12 db ''fgnern db '';drmsg db 0,2,29 dz+$20 lda #0 sta icbll+$20 lda #1 sta icblh+$20 jmp ciov;xfrdl db 112,112,$4f dw screen-320 db $8f,$f,$f,$f,$f,$f,$f,0,$42 dw 0 db 2,2,2,2,2,2,2,2,2,2 db 2,2,2,2,2,2,2,2,2,2 db 2,2,2,65 dw $680xmddnl ; lda #HI[buff"^er+5120+$100] sta xfrdl+15 ldx #0xfrdodl lda xfrdl,x sta $680,x inx cpx #$80 bne xfrdodl lda #0 taxxmdclr sta buffer+5120,x sta buffer+5120+$100,x sta buffer+5120+$200,x sta buffer+5120+$300,x sta buffer+5120+$400,x inx cpx #0 bne xmd"lda ctrl1mod bne ctrl1on ldx #ctr1offp/256 ldy #ctr1offp&255 jmp prmesgnov ;ctrl1on ldx #ctr1onp/256 ldy #ctr1onp&255 jmp prmesgnov ;bufcntdo lda mybcount+1 lsr a lsr a cmp oldbufc bne bufcntok rtsbufcntok pha lda #14 ldx #0bufdtfl .JdIe rLca dLudbLudsc D d0 r V -D d C01L#_ bhi LV bhiLV`0 rtnuy .y .y .y .y .y .yxLV 3E C -D eLL_ HH >hhPNput+1 adc bcount+1 sta bufput+1 lda mybcount+1 cmp #HI[buftop-buffer] bcc bfnovr1 lda mybcount cmp #LO[buftop-buffer] bcc bfnovr1 clc lda bufput ; Overflow adc #1 sta bufget lda bufput+1 adc #0 sta bufget+1 cmp #HI[buftop] bne bfovrntop*R L\䥁HH10)i(ȱiLJ)8(ȱhhL_#5م膳;A6S6M6 3Source file = 6O6B6J6 3Object file = 6L6S6T6 3List file = )6ۅ66+6- )fc6 40nA6S6M65506 40:6 40> ' 0 P0 10$eeL$ 480즛 40*ƆLi%۩6惥Ą兰 L$ 6 40+z"{"HI BzD"E V0L~fd$L$) 5555L%'55Ⅸ b3*&" 1 3 4P0 ## @2 60 45 575C&" 1 3Press [RETURN] to continue6l <<< RUN/INIT VECTORS >>><<< ERRORS OCCURRED >>>ADCfeANDASLBCCBCSBEQ BITBMIBNEBPLBRABRKBVCBVSCLCCLDCLICLVCMPCPXCPYIDBJDCDECDEXDEYCDSHDWBENDEORAEQUEINCLUDEINCINXINY JMP JSRLDA LDX LDYDLISTLSRLMACROMMENDNOPORA@ORGKPAGEPHAPHPPLfgtmpchset db 0,0,0,0,0,0,0,0 db 0,68,68,68,68,0,68,0 db 0,170,170,0,0,0,0,0 db 0,170,238,170,238,170,0,0 db 68,102,136,68,34,204,68,0 db 0,136,34,68,136,34,0,0 db 0,68,170,68,170,68,34,0 db 0,68,68,68,0,0,0,0 db 0,34,68,68,68,68,34,0 db 0,136,6ZrAPLPROLRORRTIRTSSBCSECSEDSEISTASTXSTYGSUBTTLTAXTAYFTITLETSXTXATXSTYA6` / 6 *0 *0;ʪ0=& *0Lq( / *0[&ȱee0赜#{a тOfhꅇ`斱@L&+ (E)eeL^3 -娅Ɖ婅ƈ i ŘV`(, -)rL) -L{) -L)L) 媅aAȱ0{È#u(# - 𶱀,3 *YFX+8`Ɩ fi-􈱀,s)ȱ,| *Y۩, ,L)Y̦d `\ ߩFƖ - ŘV"   *XХȱ)О`Ɩ, *XL)ȱ{a ```x ;6` * -<6襉<6膖,_ * *$fjZ#+ *0 *' t/ s(*,p10 )tp8 pq8 qr8 r"/ ss \Ls`L_䭧tΨtt tttL_.ttRqtΪtt )+:*g/c%_&B|w]𔦮 ![ ,`Ư8!!f`!%![@ ,`! !! ,`L-!!+-[@ ,`!Խ!!& ,` M1 /1)$0 `U /ɱ$@ȱg5aWG)A7 :00&&&&L.`8`%L@\*x':f0:00H& & &eeheeȱLK/ȱ01П&&L/ȱ800&&&L/ȥȱ'ɛ'ɛ 'SL//A"[ _a{ 啜豀:0蕛`ɛ ȱ ``ۅ6 2f兰 /1 2 2$U#LPE# ȝ#eeiř<# @2L>06r6 M1RƓĂ僰祐eeJJj(jJJ8j`)т`D` H)΅h  ȱf*(ȱ*`ۆ6嫰T8eejf0 ƃƂ0 ٙ ,Ȱȱeī Ū`ł僰壟 20 2L1 2 20 3 2# 255P0 @200 2 3#L"2f`ŲP g5f5e5津ԥ ؠȱd5)d5 B!D5EHI VD#E BQHILVHJJJJ8 i:#h)8 i:؝#` #P#` 3 3#ɛP`#+3;CHIJKLMNO 2ƒ擤A6f;; ;; The original Atari "AUTORUN.SYS" ; file, disassembled. (c) Atari ;;For Ice-T HEBREW terminal emulator. ; Commented by Itay Chamiel ; org $3800;; System equates used ;siov =$e459 ; Main routine fobB6<6Ē` r3<6 3` r3 3`mz"{"Ũ 3z"{"`~"H{"mz"|"}" 8hiHI V0}"{"|"Ȍz"{"`l hh BHI Ȅ V䤒ȱȱBHID6E V0 Q4fr SIO dcb =$300 ; Device control block ddevic=$300 ; Serial bus I.D. dunit =$301 ; Device number dcomnd=$302 ; Command byte dstats=$303 ; Read / Write (status) dbuflo=$304 ; Data buffer pointer-lodbufhi=$305 ; Dabta buffer pointer-hidtimlo=$306 ; Timeout value dbytlo=$308 ; # of bytes to xfer-lo dbythi=$309 ; # of bytes to xfer-hi daux1 =$30a ; Auxiliary byte #1 daux2 =$30b ; Auxiliary byte #2 ;boot850 lda #80 ; Call interface sbta ddevic lda #1 ; Unit #1 sta dunit lda #63 ; Command #63 sta dcomnd lda #64 ; Read data sta dstats lda #5 sta dtimlo ; 5 secs for timeout sta dbufhi ; Load data into $5__ lda #0 sta dbuflo ; Load data into $_00 sta dbythi ;b Get $00__ bytes sta daux1 ; Send a 0 as both sta daux2 ; auxiliary bytes lda #12 sta dbytlo ; Get 12 bytes - $__0C jsr siov ; Execute! bpl btnoerr1 rts ; Error - abort btnoerr1 ; No error ldx #11btloop lda $500,x ; Copy dbownloaded init sta dcb,x ; info as parameters dex ; to use to get main bpl btloop ; R: handler from 850 jsr siov ; Download it. bmi bterr3 ; Error? jsr $506 ; No. Initialize it jmp (12) ; Imitate Reset and exit bterr3b rts ; Yes, abort; org $2e2 dw boot850 ; Load in init-address;; Include the following modules to ; generate the complete program: ; include VTV.ASM ; Data tables include VT1.ASM ; Main - part 1 include VT2.ASM ; Main - part 2b include VT3.ASM ; Main - part 3 include VTCHHEB.ASM ; Characters ;nclude the following modules to ; generate the complete program: ; include VTV.ASM ; Data tables include VT1.ASM ; Main - part 1 include VT2.ASM ; Main - part 2`Mȹ6eiHH`6#ȹ660.󩛙6 :.Ɠȹ6肋 .6ȭ66ȭ66ȭ66ȩ666D6:6` BLV䄒H 4JhDEBLV䄒H B VݦBdHID"E VH"` f Page (C) 1984 WORDMARK Systems#D"E VH"` dsta bufcntdt,x inx cpx #11 bne bufdtfl pla sta oldbufc cmp #0 beq bufdtok tax cpx #12 bcc notbig12 ldx #11notbig12 lda #27bufdtmk sta bufcntdt-1,x dex cpx #0 bne bufdtmkbufdtok ldx #0bufchlp lda blkchr,x sta charset+728,x inx cp.b 'Reading directory from 'drname db 'Dx:*.*'drmsg2 db 0,24,12 db ' Hit any key'drerms db 0,24,27 db 'Disk error 'drernm db ' . Hit any key';xferfile db 'D'fldrive db '1:'flname db 'TEMP.FIL ';; End of data ;msg db 0,2,29 dx lda bufget cmp #LO[buftop] bne bfovrntop lda #LO[buffer] sta bufget lda #HI[buffer] sta bufget+1bfovrntop lda #LO[buftop-buffer] sta mybcount lda #HI[buftop-buffer] sta mybcount+1bfnovr1 jsr chkrsh ldx #0 rtsbfwrap lda outnum beq bfn*oek3 tya ldy #0 sta (bufput),y jmp bfwrapexbfnoek3 ldx #$20 lda #7 sta iccom+$20 sec lda #LO[buftop] ; Wrap sbc bufput sta icbll+$20 lda #HI[buftop] sbc bufput+1 sta icblh+$20 lda bufput sta icbal+$20 lda bufput+1 sta icbah+$20 lda i*cbll+$20 bne bfnowrpex lda icblh+$20 beq bfwrapexbfnowrpex jsr ciovbfwrapex lda #LO[buffer] sta bufput lda #HI[buffer] sta bufput+1 lda outnum bne bfnovr1 jmp buffdo;; EOF.(c) Itay Chamiel ; icbal+$20 lda bufput+1 sta icbah+$20 lda i(clr jsr vdelay lda #$80 sta 560 lda #6 sta 561; line 0: "Xmodem download - | Ice-T"; "Downloading into ";path;filename; "Hit any key to begin, Esc to abort" lda #104 sta buffer+5120+$200 jsr getkeybuff cmp #27 bne xdnoqt jmp endxmdnxdnoqt" jsr close2 ldx #$30 lda #12 ; close #3 sta iccom+$30 jsr ciov ldx #$30 lda #3 ; open #3,8,0,path;filename sta iccom+$30 lda #LO[xferfile] sta icbal+$30 lda #HI[xferfile] sta icbah+$30 lda #80 sta icbll+$30 lda #0 sta icblh+$30 sta icau"轀Jef慥`܇݇އȐ 8Ȩ܇Led 8d܇ 8 ݇Leiއ`2$3 -)06`hhL9'~!/ YT-HT- }ChT-` Y`noDDDDDDfD"ND"D"DDD"DDD"DDDD"DDDDDDDDDDDDDD""DDDDDDDDD"D"""f""""D̪D"DDDDDDf"DDDDDD"DD"D"DD"DDopDfD̪̪fNx2+$30 lda #8 sta icaux1+$30 jsr ciov jsr ropen lda #0 sta block sta ptblock sta retry lda #21 ; nak sta putbtxdnmnlp; ? "getting block #";block+1 lda #103 sta buffer+5120+$200 lda putbt jsr putn2 jsr getn2 sta chksum cmp #24 ; can b"eq gxdncan cmp #4 ; eot bne nogxdnend jmp xdnendgxdncan jmp xdncannogxdnend jsr getn2 clc adc chksum sta chksum jsr getn2 clc adc chksum sta chksum ldy #0 sty cntrh lda ptblock asl a asl a rol cntrh asl a rol cntrh asl a rol cnt"rh asl a rol cntrh asl a rol cntrh asl a rol cntrh clc adc #LO[buffer] sta cntrl lda cntrh adc #HI[buffer] sta cntrhxdnblklp tya pha jsr getn2 tax pla tay txa sta (cntrl),y sta buffer+5120+$204,y clc adc chksum sta chksum iny "cpy #128 bne xdnblklp jsr getn2 cmp chksum bne xdnchkbad lda #6 ; ack sta putbt lda #0 sta retry inc block inc ptblock lda ptblock cmp #40 bne xdnnodsk jsr close2 jsr xdsavdat jsr ropen lda #0 sta ptblockxdnnodsk jmp xdnmnlpxdnchkba"d inc retry lda retry cmp #10 beq xdnrtry; ? "Retry #;"retry lda #114 sta buffer+5120+$200 lda #21 ; nak sta putbt jmp xdnmnlpxdnrtry; ? "Aborted - too many retries" lda #97 sta buffer+5120+$200 lda #24 ; can jsr putn2 jmp endxdnxdncan"; ? "Host aborted the transmission" lda #98 sta buffer+5120+$200 jmp endxdnxdnend; ? "File transfer succesful" lda #115 sta buffer+5120+$200endxdn; ? "Closing file" lda #99 sta buffer+5120+$201 jsr close2 jsr xdsavdat ldx #$30 lda #12 ; "close #3 sta iccom+$30 jsr ciov jsr ropen lda #6 ;ack jsr putn2endxmdn jsr vdelay lda #LO[dlist] sta 560 lda #HI[dlist] sta 561 jmp bkxfr2putn2 ldx #11 stx iccom+$20 ldx #0 stx icbll+$20 stx icblh+$20 ldx #$20 jmp ciovgetn2 ldx #$2"0 lda #5 sta iccom+$20 lda #0 sta icbll+$20 sta icblh+$20 jmp ciovxdsavdat lda ptblock bne xdsavok rtsxdsavok ldx #$30 lda #11 ; block-put #3,buffer, sta iccom+$30 ; ptblock*128 lda #LO[buffer] sta icbal+$30 lda #HI[buffer] sta ic"bah+$30 lda #0 sta icblh+$30 lda ptblock asl a asl a rol icblh+$30 asl a rol icblh+$30 asl a rol icblh+$30 asl a rol icblh+$30 asl a rol icblh+$30 asl a rol icblh+$30 sta icbll+$30 jmp ciov; filupl ; 䠛 jsr getscrn jsr clrscrn"raw jsr ropen jsr screenget jmp file;screenget lda #1 sta y lda txlinadr sta fltmp lda txlinadr+1 sta fltmp+1 ldy #0 ldx #0sgloop lda (fltmp),y cmp #32 beq sglok sta prchar sty x txa pha tya pha jsr print pla tay pla taxsglo"k iny cpy #80 bne sgloop ldy #0 inx inx lda txlinadr,x sta fltmp lda txlinadr+1,x sta fltmp+1 inc y lda y cmp #25 bne sgloop rts;number lda #176 sta numb sta numb+1 sta numb+2 tya cmp #200 bcc chk100 sec sbc #200 tay lda #178" sta numb jmp chk10schk100 cmp #100 bcc chk10s sec sbc #100 tay lda #177 sta numbchk10s tya cmp #10 bcc chk1s sec sbc #10 tay inc numb+1 jmp chk10schk1s tya clc adc #176 sta numb+2 rts;chkclok ; part of clock setter sta te"mp ; (from vt1.asm) lda ersl cmp #0 bne chkck1 lda temp cmp #50 bcs clokbadchkck1 lda ersl cmp #1 bne chkck2 lda temp cmp #51 bcc chkck2 lda setclkpr+3 and #127 cmp #48 bne clokbadchkck2 lda ersl cmp #3 bne chkck3 lda temp cmp #54" bcs clokbadchkck3 lda temp rtsclokbad lda #14 sta dobell pla pla jmp scmnchkrsh lda mybcount+1 cmp #HI[buftop-buffer-2048] bcc cknodrsh lda mybcount cmp #LO[buftop-buffer-2048] bcc cknodrsh lda rush bne cknddrsh lda #1 sta rush st"f̪ffDDDDf"""D̪"̪̈"̪̪fD""DDDDDDDDDDDD"DfDDDDfDD""DDDDDpqUUUUDDDwDDDDNDDDDDDDDDDDDDDDDDDDDDD"DD"D"D"DDDDDDwDDDDDDDDDDDDDDDDDDDDDw0p p0` qr"fDDDNa didrush jsr shctrl1 lda finescrol pha lda #0 sta finescrol jsr lookbk pla sta finescrol rtscknodrsh lda rush beq cknddrsh lda #0 sta rush sta oldflash lda #1 sta newflash jsr shctrl1cknddrsh rts;; Data buffer, fills all free memo"ry ;minibuf ds 2048;buffer;crol pha lda #0 sta finescrol jsr lookbk pla sta finescrol rtscknodrsh lda rush beq cknddrsh lda #0 sta rush sta oldflash lda #1 sta newflash jsr shctrl1cknddrsh rts;; Data buffer, fills all free memo !x #8 bne bufchlp ldx #bufcntpr/256 ldy #bufcntpr&255 jmp prmesg;clokdo ldy #39 lda clockdat+1 jsr clokpr dey lda clockdat+2 jsr clokpr dey lda #10 jsr clokpr dey lda clockdat+3 jsr clokpr dey lda clockdat+4 jsr clokpr dey lda #10. jsr clokpr dey lda clockdat+5 jsr clokpr dey lda clockdat+6clokpr asl a asl a asl a tax lda linadr sta cntrl lda linadr+1 sta cntrh lda #0 sta tempclokprlp lda dignumb,x sta (cntrl),y inx clc lda cntrl adc #40 sta cntrl lda cnt.rh adc #0 sta cntrh inc temp lda temp cmp #8 bne clokprlp rts;; End of status line handlers ;filline ; Fill line with 255 lda y asl a tax lda linadr,x sta cntrl lda linadr+1,x sta cntrh lda #255 ldy #0fil1 sta (cntrl),y iny cpy .""f""""""D"""""D""DD̪fD""""""""""""""f"D""""""D""""f""""̪""DDDD"""""""""DDfffffDDDfDDDDDDDDD"DDTTTTTTfDDDLDw0p p0` PqOr"fDDD""f""""""D"""""D""DD̪fD""""""""""""""f"D""""""D""""f""""̪""DDDD"""""""""N#0 bne fil1 inc cntrhfil2 sta (cntrl),y iny cpy #64 bne fil2 rts;; Calculate memory position in ; ASCII mirror ;; Puts memory location of X=0, ; Y=y (passed data) in ersl ; (2 bytes) ;calctxln lda .DDfffffDDDfDDDDDDDDD"DDTTTTTTfDDD""f""""""D"""""D""DD̪fD""""""""""""""f"D""""""D""""f""""̪""DDDD"""""""""L5y pha dec y lda y cmp #25 bcc calcok lda #0 sta ycalcok asl a tax lda txlinadr,x sta ersl lda txlinadr+1,x sta ersl+1 pla sta y rts;; ԭ;passed data) in ersl ; (2 bytes) ;calctxln lda ,"fDDD""f""""""D"""""D""DD̪fD""""""""""""""f"D""""""D""""f""""̪""DDDD"""""""""DDffffDDDDDDDDjfDDDf"fDDDffDDff̪f""DDDDDfDDDf"""f"DfDf"DDDDDUUUUUUUUUUUwwDDDDDDDDDDDDDDDDDDDDDUUUUUUUDDDDUUUUUUUUUUUUUUUUUUDDDDDDDDDjDwDDDDDDDDDDwDDDDDDDDDDDDDwDwDDDUUUwUUUUUUUDwwDUUUUUUUUUDDUUUDDDUUUUUUUwDDwDwwDwDDDwUUUUUUUUUUUDDDDDDDDDwDDDD33333333jUU"fDDD""f""""""D"""""D""DD̪fD""""""""""""""f"D""""""D""""f""""̪""DDDD"""""""""DDfffffDDDfDDDDDDDDD"DDjTTTTTTfDDD""f""""""D"""""D""DD̪fD""""""""""""""f"D""""""D""""f""""̪""DDDD"""""""""DDfffffDDDfDDDDDDDDD"DDh LE`ɋ LRɌ ;I`Ɂ#Ʌ8iAĩ©[åOLR` ;-& : C oB b#d-eJK Vj fUJTIUԙP bdeQhi V0慥¢ b%d-ehi V ALB ]܇^-N݇_-އ`--H A-Z A A ;LB.ILA.BLA.ZLA.TLA.,LA.7LAJJ`. JJ  ..LA JUIV悑@`Hƅե &Յ֥Յץ & &eօԥeׅեiԥih`湥N IЭ0ԭ1L_, }ʆi@ƽ ҍ,Lb LWLbp V e ii e iJVIW8 Wi  O WLb4 VN W WLbhhLb-` V W WLb V W WLb V W WLb V W WLb V W WLbG VJWIX Wi @Lb8(N`i(i`eʥeʈ``x V e ii e i8ii JXIY W 꽰iiLb V W WLb V NW WLb V W WLb V W WLb V W WLb V W WLb= V Wi W@Lb BLJYIZWYɢ0' :0 8Ʌ 0H0H`L5O2A[i I0 0N :LoZ ;LBY+ ƄLoZ* LoZ 00 0LoZ~ ƄLYɛB0ɰɺ B0 : ; B0 :LY0Ia{8 O2 LBY.0N:aF{JZI[BH 00hI0 愦0I0H0 Ah0IN0LY1 :,ɢ14 8 ɍ,i1M2LBY1I :,ɢ1] 8ɍ,LBY1d!LZ1p#LZ1|$LZH1O2A[i 1 1 : ;hLBY1 A oB hbLd2ejkJ[I\ V)% ]܇1݇1އ11 A A ;LBY ALBY B ANM211 A oB bjkd1e V s\.eɛ A[i H /