ML }  X c0C)HCCH Mhhݩh `eCDiCD`  RyHP   * 1H0芢@) Y0.Ș` ip#(PMRR\ \b Pgi 0  % @ / ՠ`d   0DDԝL};; ;; Original "AUTORUN.SYS" ; file, disassembled. ;; For MegaTerm terminal emulator}. ; Comments by Itay Chamiel ; org $3800;; System equates used ;siov =$e459 ; Main routine for SIO dcb =$3}00 ; Device control block ddevic=$300 ; Serial bus I.D. dunit =$301 ; Device number dcomnd=$302 ; Comma}nd byte dstats=$303 ; Read / Write (status) dbuflo=$304 ; Data buffer pointer-lodbufhi=$305 ; Data buffer poin}ter-hidtimlo=$306 ; Timeout value dbytlo=$308 ; # of bytes to xfer-lo dbythi=$309 ; # of bytes to xfer-hi daux }1 =$30a ; Auxiliary byte #1 daux2 =$30b ; Auxiliary byte #2 ;boot850 lda #80 ; Call interface sta ddevic  }lda #1 ; Unit #1 sta dunit lda #63 ; Command #63 sta dcomnd lda #64 ; Read data sta dstats lda #5 sta dti }mlo ; 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 si }ov ; Execute! bpl btnoerr1 rts ; Error - abort btnoerr1 ; No error ldx #11btloop lda $500,x ; Copy downlo}aded init sta dcb,x ; info as parameters dex ; to use to get main bpl btloop ; R: handler from 850 jsr s}iov bmi bterr3 jsr $506 ; Init the downloaded R: jmp (12) ; Imitate Reset and exit bterr3 rts ; Error - abor}t; org $2e2 dw boot850 ; Load in init-address; include VT1.ASM ; Load in the rest include VT2.ASM ; of MegaTerm };; org $2e2 dw boot850 ; Load in init-address; include VT1.ASM ; Load in the rest include VT2.ASM ; of MegaTerm ;; 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 VT1.ASM include VT2.ASM;}50 interface ; booter installed automatically.) ;; Assembling will create VTNR.OBJ.; include VT1.ASM include VT2.ASM;;; ; A VT-100 terminal emulator ; by Itay Chamiel ;; Version 1.0 - (c)1993 };; Part of main program - VT1.ASM;;; Checklist of thingys to do - ; But I'll never do 'em!!! ;; * Make BREAK} key send a Break ; instead of using Ctrl-ESC. ; * Make send-Break not close ; IOCB #2. (R:) ; * Sel}ect-key keypad - not ; there yet due to 0 demand ; * Fix R: (dismantle at end of ; program or what!!??!!) }; * Erase Buffer-display when ; not paused (ctrl-1) ;; Additions I WILL add are: ;; * Intelligent buffer} ; org $2e0 dw init;; Zero-page equates; org $80;cntrl ds 1cntrh ds 1pos ds 1x ds 1y } ds 1prchar ds 2temp ds 1prlen ds 1prcntr ds 2prfrom ds 2;mnmnucnt ds 1mnmenux ds 1mnlnofbl ds 1}svmnucnt ds 1;ctrl1mod ds 1oldbufc ds 1mybcount ds 2savbcnt ds 1baktow ds 1nocurs ds 1invon ds 1xtraget d}s 1tmpflash ds 1g0set ds 1g1set ds 1chset 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 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 1newfla!}sh ds 1oldflash ds 1oldctrl1 ds 1dobell ds 1doclick ds 1capslock ds 1s764 ds 1outnum ds 1outdat ds 3;nop"}lcs ds 1noplcx ds 1noplcy ds 1lnofbl ds 1mnucnt ds 1menux ds 1menret ds 1invlo ds 1invhi ds 1no#}doinv ds 1;numofwin ds 1topx ds 1topy ds 1botx ds 1boty ds 1;ersl ds 2ersltmp ds 2scvar1 ds$} 1scvar2 ds 2scvar3 ds 2;; Program equates;wind1 =$8800wind2 =$8c00txscrn =$9000tabs =$97b0charset=$9800dl%}ist =$9c00screen =$9fb0;minibuf=$600;; System equates;bcount =747iccom =$342icbal =$344icbah =$345icptl =$346&}icpth =$347icbll =$348icblh =$349icaux1 =$34aicaux2 =$34bciov =$e456setvbv =$e45csysvbv =$e45fxitvbv =$e462kbc'}ode =$d209irqen =$d20eirqst =$d20enmien =$d40e;; Main program; org $294a ; Overwrite Mydos's DUP;init cld lda #(}0 sta 559 lda #2 sta 712 jsr vdelay lda $79 bne nofefe lda #$fe sta $79 sta $7anofefe lda 12 sta jrst+1 lda 13 )}sta jrst+2 lda #reset&255 sta 12 lda #reset/256 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 #cfgname&255 sta icbal+$20 lda #cfgname/256 sta icbah+$20 ,}jsr ciov cpy #128 bcc initopok jsr close2 ldx #0interrlp lda cfgdat,x sta savddat,x inx cpx #9 bne interrlp jmp in-}terrinitopok ldx #$20 lda #5 sta iccom+$20 lda #savddat&255 sta icbal+$20 lda #savddat/256 sta icbah+$20 lda #9 sta.} icbll+$20 lda #0 sta icblh+$20 jsr ciov; jsr close2 jmp norstreset lda #0 sta 559 jsr vdelay lda #regmode&255 st/}a trmode+1 lda #regmode/256 sta trmode+2 lda $79 bne jrst lda #$fe sta $79 sta $7ajrst jsr rtsplcnorst ldx #0getc0}fglp lda savddat,x sta cfgdat,x inx cpx #9 bne getcfglp;interr lda bckgrnd and #1 sta bckgrnd asl a asl a tax l1}dy #0insetcol lda sccolors,x sta 709,y inx iny cpy #4 bne insetcol lda autowrap sta wrpmode jsr vdelay; lda #0 s2}ta irqen sta nmien sta dobell sta doclick sta flashcnt sta newflash sta oldflash ldx #vbi1/256 ldy #vbi1&255 lda #63} jsr setvbv ldx #vbi2/256 ldy #vbi2&255 lda #7 jsr setvbv lda $216 sta irqext+1 lda $217 sta irqext+2 lda #irq&255 4}sta $216 lda #irq/256 sta $217 lda #192 sta nmien sta irqen sta 16 lda #dlist/256 sta 561 sta prchar+1 lda #dlist&25}55 sta 560 clc adc #3 sta prchar lda #$70 sta dlist sta dlist+1 lda #$30 sta dlist+2 lda #screen&255 sta cntrl ld6}a #screen/256 sta cntrh ldx #0dodl ldy #0 lda #$4f sta (prchar),y iny lda cntrl sta (prchar),y clc adc #LO[40*8] 7}sta cntrl iny lda cntrh sta (prchar),y adc #HI[40*8] sta cntrh lda #$f iny sta (prchar),y iny sta (prchar),y iny 8}sta (prchar),y iny sta (prchar),y iny sta (prchar),y iny sta (prchar),y iny sta (prchar),y lda prchar clc adc #109} sta prchar lda prchar+1 adc #0 sta prchar+1 inx cpx #25 bne dodl ldy #0 lda #65 sta (prchar),y iny lda #dlist&255:} sta (prchar),y iny lda #dlist/256 sta (prchar),y lda #LO[screen-320] sta dlist+4 lda #HI[screen-320] sta dlist+5 ld;}a #LO[screen-640] sta dlist+134 lda #HI[screen-640] sta dlist+135 jsr clrscrn; ldy #menudta&255 ldx #menudta/256 jsr <}prmesg;; Open K: for I/O; ldx #$10 lda #12 sta iccom+$10 jsr ciov; ldx #$10 lda #3 sta iccom+$10 lda #4 sta icau=}x1+$10 lda #0 sta icaux2+$10 lda #kname&255 sta icbal+$10 lda #kname/256 sta icbah+$10 jsr ciov; lda #0 taxsettabs>} sta tabs,x inx cpx #80 bne settabs ldx #9settabs2 lda #1 sta tabs,x txa clc adc #10 tax cpx #80 bcc settabs2 ?}lda #1 sta g1set sta savg1 sta scrltop sta ty sta savcursy lda #24 sta scrlbot jsr rslnsize lda #0 sta numofwin st@}a savbcnt sta ctrl1mod sta newlmod sta invon sta capslock sta useset sta iggrn sta undrln sta blink sta revvid sta A}invsbl sta seol sta g0set sta savg0 sta chset sta savchs sta ckeysmod sta numlock sta tx sta savcursx sta mnmnucntB} lda #255 sta 764 lda #15 sta x lda #5 sta y lda #2 sta lnsizdat+4 lda #3 sta lnsizdat+5 ldx #0prtillp lda tilmesC}g1,x sta prchar txa pha jsr printerm pla tax inc y lda tilmesg1,x sta prchar txa pha jsr printerm pla tax dec D}y inc x inx cpx #8 bne prtillp ldx #tilmesg2/256 ldy #tilmesg2&255 jsr prmesg ldx #tilmesg3/256 ldy #tilmesg3&255 jE}sr prmesg jsr rslnsize jsr ropen cpy #128 bcc ropok ldx #norhw/256 ldy #norhw&255 jsr drawwin lda #34 sta 559 jsr gF}etkey jmp doquitropok lda #34 sta 559 jsr getkey jsr clrscrn jmp mnmnloopmnmenu lda mnlnofbl sta lnofbl jsr getscrG}nmnmnloop ldx #mnmnuxdt/256 ldy #mnmnuxdt&255 lda mnmnucnt sta mnucnt lda mnmenux sta menux; jsr menudo2; lda menuH}x sta mnmenux lda mnucnt sta mnmnucnt lda lnofbl sta mnlnofbl lda menret cmp #255 beq mnquit asl a tax lda mntbjmpI}+1,x pha lda mntbjmp,x phartsplc rtsmenudta db 0,0,80 db ' Terminal' db ' ' db 'J}㩠' db '젠'mnmnuxdt db 2,1,12 db 10,0,22,0mnquit ldx #mnquitw/256 ldy #mnquitw&255 jsrK} drawwin ldx #mnquitd/256 ldy #mnquitd&255 lda #0 sta mnucnt jsr menudo2 lda menret cmp #255 beq mnodoquit cmp #0 bL}eq mnodoquit jmp doquitmnodoquit jmp mnmenumnquitw db 28,4,49,8 db 'Really wanna quit?' db '' db ' M} Quit 'mnquitd db 1,2,18 db 30,60,30,70mntbjmp dw connect-1,parameters-1norhw db 25,12,51,15 db 'No R: hanN}dler present!!' db ' Hit any key to quit ';doquit lda #2 sta 82 jsr close2 jsr vdelay lda jrst+1 sta 12 lda jrst+O}2 sta 13 ldx #sysvbv/256 ldy #sysvbv&255 lda #6 jsr setvbv ldx #xitvbv/256 ldy #xitvbv&255 lda #7 jsr setvbv lda irP}qext+1 sta $216 lda irqext+2 sta $217 ldx #$60 lda #12 sta iccom+$60 jsr ciov ldx #$60 lda #3 sta iccom+$60 lda #sQ}name&255 sta icbal+$60 lda #sname/256 sta icbah+$60 lda #12 sta icaux1+$60 lda #0 sta icaux2+$60 jsr ciov lda #0 stR}a 767 jmp ($a);bkpar jsr getscrn lda svmnucnt sta mnucnt jmp bkpar2parameters lda #0 sta mnucnt ldx #parmnu/256 lS}dy #parmnu&255 jsr drawwinbkpar2 ldx #parmnudta/256 ldy #parmnudta&255 jsr menudo2 lda mnucnt sta svmnucnt lda menretT} cmp #255 bne parprcss jmp mnmenuparprcss asl a tax lda partbl+1,x pha lda partbl,x pha rtsparmnu; db 22,1,39,1U}0 db '堠' db ' Stop bits ' db ' Auto wrap ' db ' Keyclick ' db ' Background ' db ' Cursor size V} ' db ' Delete key ' db ' Save config 'parmnudta db 1,8,14 db 24,20,24,30,24,40,24,50 db 24,60,24,70,24,80,24,90;pW}artbl dw setbps-1,setbts-1,setwrp-1 dw setclk-1,setcol-1 dw setcrs-1,setdel-1,savcfg-1;; Configure terminal parameters:X};setbps ; 堛 ldx #setbpsw/256 ldy #setbpsw&255 jsr drawwin ldx #setbpsd/256 ldy #setbpsd&255 lda baudrateY} sec sbc #8 sta mnucnt jsr menudo1 lda menret cmp #255 beq nodobps lda mnucnt clc adc #8 cmp baudrate beq nodobpsZ} sta baudrate jsr vdelay jsr ropennodobps jmp bkparsetbpsw db 36,2,63,5 db ' 300 600 1200 1800 ' db ' 2400 480[}0 9600 19K 'setbpsd db 4,2,6 db 38,30,44,30,50,30,56,30 db 38,40,44,40,50,40,56,40;setbts ; ﮠ \}ldx #setbtsw/256 ldy #setbtsw&255 jsr drawwin ldx #setbtsd/256 ldy #setbtsd&255 lda stopbits clc rol a rol a sta mnu};; ; A VT-100 terminal emulator ; by Itay Chamiel ;; Version 1.0 - (c)1993 ^};; Part of main program - VT2.ASM;;; ԭ򠠛;connect lda #1 sta oldbufc lda #0 sta bcount+_}1 sta y jsr filline jsr chklnsiz lda bckgrnd eor invon asl a asl a tax ldy #0concollp lda sccolors,x sta 709,y i`}nx iny cpy #4 bne concollp jsr vdelay jsr shctrl1 jsr shcaps ldx #HI[sts2] ldy #LO[sts2] jsr prmesg jsr shnuml ldxa} #HI[sts3] ldy #LO[sts3] jsr prmesg jsr bufcntdo ldx #HI[sts4] ldy #LO[sts4] jsr prmesg lda #1 sta flashcnt sta newfb}lash sta oldflash; ldx savbcnt beq nosavdat lda baktow cmp #2 beq bfrmn2 jmp bkfrmmnubfrmn2 dex stx savbcnt jmp bc}kmnuct1nosavdat; jsr putcrstermloop lda newflash cmp oldflash beq noflsh sta oldflash jsr putcrsnoflsh lda #0 stad} savbcnt ldx #$20 lda #13 sta iccom+$20 jsr ciov lda #0 sta nocurs jsr bufcntdonobcnt1 lda #0 sta xtraget lda bcoue}nt sta mybcount lda bcount+1 sta mybcount+1 cmp #1 bcc nomrthn1pg lda #0 sta mybcount lda #1 sta mybcount+1 sta xtrf}agetnomrthn1pg lda mybcount bne bufget1 lda mybcount+1 bne bufget1 jmp tkcheckbufget1 lda ctrl1mod beq bufget2 jmp g}tkcheckbufget2 ldx #$20 lda #7 sta iccom+$20 lda mybcount sta icbll+$20 lda mybcount+1 sta icblh+$20 lda #LO[minibufh}] sta icbal+$20 lda #HI[minibuf] sta icbah+$20 jsr ciov lda nocurs bne noflsh2 lda oldflash beq noflsh2 jsr putcrsni}oflsh2 ldx #0keepget stx savbcnt lda minibuf,x jsr dovt100 lda 764 cmp #255 beq gtbufnoky lda #0 sta tmpflash inc j}savbcnt lda #1 sta baktow jsr readk dec savbcnt lda ctrl1mod beq gtbufnokybkmnuct1 jsr shctrl1 lda oldflash beq midk}lc1lp jsr putcrs;midlc1lp lda newflash cmp oldflash beq midl1 sta oldflash jsr putcrsmidl1 ldx #$20 lda #13 sta il}ccom+$20 jsr ciov jsr bufcntdo lda oldflash sta tmpflash inc savbcnt lda #2 sta baktow jsr readk dec savbcnt lda ctm}rl1mod bne midlc1lp; lda oldflash beq midl2 jsr putcrsmidl2 jsr shctrl1gtbufnoky ldx savbcnt inxbkfrmmnu cpx mybcn}ount bne keepget lda #0 sta savbcnt lda xtraget beq noxtrget lda #1 sta nocurs dec bcount+1 jsr bufcntdo jmp nobcnto}1noxtrget lda #0 sta nocurs lda oldflash beq noflsh3 jsr putcrsnoflsh3tkcheck lda oldflash sta tmpflash lda #0 stp}a savbcnt jsr readk jmp termloop;dovt100 ; Gets byte from A and and #127 ; VT100's it!!! cmp #127 beq badq}byt cmp #0 beq badbyt cmp #32 bcs trmode jmp ctrlcodetrmode jmp regmode ; Changes during prog ;badbyt rtsputcrs r}; Cursor flasher lda ty tay dey asl a asl a adc ty asl a tax lda dlist+4,x sta cntrl lda dlist+5,x sta cntrh lds}a lnsizdat,y cmp #4 bcs smcurs cmp #0 bne bigcurssmcurs lda #0 sta pos lda tx lsr a rol pos adc cntrl sta cntrl t}lda cntrh adc #0 sta cntrh ldx pos ldy curssiz beq cursloop lda cntrl clc adc #39*6 sta cntrl lda cntrh adc #0 stu}a cntrhcursloop lda (cntrl),y eor postbl2,x sta (cntrl),y lda cntrl clc adc #39 sta cntrl lda cntrh adc #0 sta cntv}rh iny cpy #8 bne cursloop rtsbigcurs lda tx cmp #40 bcc bgc1 lda #39bgc1 clc adc cntrl sta cntrl lda cntrh adw}c #0 sta cntrh ldy curssiz beq bgcursloop lda cntrl clc adc #39*6 sta cntrl lda cntrh adc #0 sta cntrhbgcursloop x}lda (cntrl),y eor #255 sta (cntrl),y lda cntrl clc adc #39 sta cntrl lda cntrh adc #0 sta cntrh iny cpy #8 bne bgy}cursloop rts;graftabl db 32,6,0,0,0,0,0,7,8 db 0,0,3,5,17,26,19,15,16 db 20,21,25,1,4,24,23,124 db 9,10,11,12,13,14,25z}5;regmode ; Display normal byte sta prchar lda #LO[regmode] sta trmode+1 lda #HI[regmode] sta trmode+2 ldy ty dey {}lda lnsizdat,y cmp #4 bcs notgrph cmp #0 bne notgrph ldx chset lda g0set,x beq notgrph lda prchar cmp #95 bcc notgr|}ph cmp #98 ; b=^I bne grnoht jmp eqcigrnoht cmp #99 ; c beq grlf cmp #101 ; e beq grlf cmp #105 ; i =^J bne grnolf}}grlf jmp ysffgrnolf cmp #100 ; d =^M bne grnocr jmp eqcmgrnocr cmp #104 ; h =ESC-E bne grnonl jsr rseol jmp retrn~}grnonl sec sbc #95 tax lda graftabl,x sta prcharnotgrph 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 #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 usesetnospch jsr printerm lda #0 sta us}eset 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 wrpm}ode beq xno80 sta seol rtsnot40 lda tx cmp #80 bne xno80 dec tx lda wrpmode 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 rse}olnolf cmp #12 ; ^L - FF, same as lf beq ysff cmp #11 ; ^K - VT, same as lf beq ysff cmp #8 ; ^H - Backspace bne n}obs 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 ta}bs,x bne donetab1 jmp findtblpdonetab1 stx tx jmp rseoldonetab2 ldx #79 stx tx jmp rseolnoht 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[brakpro1] 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 b}ne noind jsr cmovedwn jmp fincmndnoind cmp #69 ; E - return bne nonel jsr retrn jmp fincmnd1nonel cmp #77 ; M - up l}ine bne nori jsr cmoveup jmp fincmnd1nori cmp #61 ; = - Numlock off bne nodeckpam lda #0 sta numlock jsr shnuml jmp} fincmndnodeckpam cmp #62 bne nodeckpnm ; > - Num on lda #1 sta numlock jsr 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 sta 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 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 n}odecid jsr decid jmp fincmndnodecid cmp #72 ; H - set tab at this pos. bne nohts ldx tx lda #1 sta tabs,x jmp fincmn}dnohts cmp #40 ; ( - start seq for g0 bne noparop lda #LO[parpro] sta trmode+1 lda #HI[parpro] sta trmode+2 lda #0 s}ta gntodo rtsnoparop cmp #41 ; ) - start seq for g1 bne noparcl lda #LO[parpro] sta trmode+1 lda #HI[parpro] sta trmo}de+2 lda #1 sta gntodo rtsnoparcl cmp #35 ; # - start for line size bne nonmbr lda #nmbrpro&255 sta trmode+1 lda #nm}brpro/256 sta trmode+2 rtsnonmbr jmp fincmnd;nmbrpro;; Chars after ' ESC # ' ;; 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 jmp fillenofle pha jsr ch}klnsiz pla ldx ty stx y dex sec sbc #51 cmp #5 bcc stszokay ; 3/4/5/6/7 - see above jmp fincmndstszokay tay lda s}izes,y cmp lnsizdat,x bne nosmsz jmp fincmndnosmsz pha lda lnsizdat,x sta scvar1 pla sta lnsizdat,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 ld}a (ersl),y sta lnbufr,x iny inx lda scvar1 beq szlp2v inyszlp2v cpy #80 bne szloop2 lda invsbl 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} sta prchar jsr printerm inc x lda x taxszprchng cmp #80 bne szprloop pla sta undrln pla sta revvid pla sta blin}k pla sta invsbl jmp fincmndsizes db 2,3,0,1,0szlen db 80,40,40,40;fille ; Fill screen with E's lda #1 sta y}fletxlp1 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 asl a adc y asl a tax lda dlist+4,}x sta cntrl lda dlist+5,x sta cntrh ldx #0flelpx lda charset+37*8,x ldy #0flelp1 sta (cntrl),y iny cpy #40 bne fl}elp1 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 lda #0 sta g0set,x jmp fincmnddog2} cmp #48 beq dog3 cmp #49 beq dog3 cmp #50 bne dog4dog3 lda #1 sta g0set,xdog4 jmp fincmndqmarkdo lda #brakpro&2}55 sta trmode+1 lda #brakpro/256 sta trmode+2 rtsbrakpro1 cmp #63 ; '?' bne noqmark lda #1 sta qmark jmp qmarkdono}qmark pha jsr qmarkdo plabrakpro ; Get numbers after 'Esc [' cmp #59 bne notsmic lda finnum ldx numgot sta numstk,x} inc numgot lda #255 sta finnum lda #0 sta digitgot sta gogetdg rtsnotsmic cmp #58 bcs gotcomnd cmp #48 bcc gotco}mnd 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 ld}a gogetdg beq nogetdg lda finnum ldx numgot sta numstk,x inc numgotnogetdg lda temp ldx qmark beq doall jmp notbcd}oall 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 tyhvp3 cmp #24 bcc h}vpok1 lda #23 sta tyhvpok1 inc ty dec numstk+1 lda numstk+1 sta tx cmp #255 bne hvp4 lda #0 sta txhvp4 cmp #80 9}cnt jsr menudo1 lda menret cmp #255 beq nodobts clc ror a ror a cmp stopbits beq nodobts sta stopbits jsr vdelay }jsr ropennodobts jmp bkparsetbtsw db 36,2,47,5 db ' 1 ' db ' 2 'setbtsd db 1,2,8 db 38,30,38,40;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 bkparsetwrpw} db 36,3,45,6 db ' Yes ' db ' No 'setwrpd db 1,2,6 db 38,40,38,50setclk ; 堛 ldx #setclkw/256 ld}y #setclkw&255 jsr drawwin ldx #setclkd/256 ldy #setclkd&255 lda click sta mnucnt jsr menudo1 lda menret cmp #255 bn}e doclk jmp bkpardoclk sta click jmp bkparsetclkw db 34,4,49,8 db ' None ' db ' Simple ' db ' Standard '}setclkd db 1,3,12 db 36,50,36,60,36,70setcol ; ldx #setcolw/256 ldy #setcolw&255 jsr drawwin l}da bckgrnd sta mnucnt ldx #setcold/256 ldy #setcold&255 jsr menudo1 lda menret cmp #255 beq nodocolr sta bckgrnd asl} a asl a tax ldy #0collp lda sccolors,x sta 709,y inx iny cpy #4 bne collpnodocolr jmp bkparsetcolw db 36,5,47,}8 db ' Black ' db ' White 'setcold db 1,2,8 db 38,60,38,70setcrs ; (_/) 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 bkparsetcrsw db 38,5,49,8 db ' Bloc}k ' db ' Line 'setcrsd db 1,2,8 db 40,60,40,70setdel ; ldx #setdelw/256 ldy #setdelw&255 jsr draw}win ldx #setdeld/256 ldy #setdeld&255 lda delchr sta mnucnt jsr menudo1 lda menret cmp #255 beq nododel sta delchrn}ododel jmp bkparsetdelw db 36,8,51,11 db ' $7F DEL ' db ' $08 BS ^H 'setdeld db 1,2,12 db 38,90,38,100savcfg ; }; ldx #savcfgw/256 ldy #savcfgw&255 jsr drawwin jsr close2; ldx #$20 lda #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 #12}8 bcc savnr1 jmp savcfgerrsavnr1; ldx #$20 lda #9 sta iccom+$20 lda #cfgdat&255 sta icbal+$20 lda #cfgdat/256 sta }icbah+$20 lda #9 sta icbll+$20 lda #0 sta icblh+$20 jsr ciov cpy #128 bcc savnr2 jmp savcfgerrsavnr2; ldx #0savcf}glp lda cfgdat,x sta savddat,x inx cpx #9 bne savcfglp; jsr ropen jmp bkparsavcfgerr tya pha and #$f0 lsr a lsr} a lsr a lsr a clc adc #48 ora #128 sta savcfgn pla and #$f clc adc #48 ora #128 sta savcfgn+1 lda savcfgn cmp }#128+58 bcc snumfx1 clc adc #7 sta savcfgnsnumfx1 lda savcfgn+1 cmp #128+58 bcc snumfx2 clc adc #7 sta savcfgn+1s}numfx2 ldx #savcfgwe1/256 ldy #savcfgwe1&255 jsr prmesg ldx #savcfgwe2/256 ldy #savcfgwe2&255 jsr prmesg jsr ropen js}r getkey jmp bkpar;savcfgw db 37,8,54,11 db 'Saving current' db ' parameters 'savcfgwe1 db 39,9,14 db 'ɯϠ}'savcfgwe2 db 39,10,14 db ''savcfgn db '';; --- Menu Doer --- ; Needs: } ; X,Y - addr of data table holding: ; # of plcs X, # of plcs Y, ; length of blocks. (min. 1 for all)}; X,Y*10 of each place.. ; ; noplcs - Number of places ; noplcx - Dit}to, for X ; noplcy - Ditto, for Y ; lnofbl - length of blocks ; mnucnt - Menu counter } ; menux - Menu X counter ; menret - Returned value ; invlo - /Hi,lo of addr of area ; inv}hi - \to highlight (in menu) ;menudo1 lda #0 sta nodoinv beq menudo3menudo2 lda #1 sta nodoinvmenudo3 stx prfrom+}1 sty prfrom ldy #0 lda (prfrom),y sta noplcx iny lda (prfrom),y sta noplcy iny lda (prfrom),y lsr a sta lnofbl l}da 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 tax lda dl}ist+4,x clc adc x sta invlo lda dlist+5,x adc #0 sta invhi lda nodoinv bne nodoinvl jsr doinvnodoinvl lda #0 sta }nodoinvmxmloop jsr getkey cmp #43 bne mxnolt lda mnucnt cmp #0 bne mxlt lda noplcs sta mnucnt lda noplcx sta menux}mxlt dec mnucnt dec menux lda menux cmp noplcx bcc mxlt1 lda noplcx sta menux dec menuxmxlt1 jsr doinv jmp mxstrt}mxnolt cmp #42 bne mxnort inc mnucnt inc menux lda menux cmp noplcx bcc mxrt1 lda #0 sta menuxmxrt1 lda mnucnt c}mp noplcs bne mxrt lda #0 sta mnucnt 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 m}enux jmp mxupmxup1 lda noplcs sec sbc noplcx clc adc menux sta mnucntmxup jsr doinv jmp mxstrtmxnoup cmp #27 bn}e 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 in}vlp2 lda cntrl clc adc #40 sta cntrl lda cntrh adc #0 sta cntrh inx cpx #8 bne invlp rts;; -- Window drawe}r -- ;; Reads from X,Y registers addr ; that holds a table holding... ; top-x,top-y,bot-x,bot-y,string ;winbufs} dw wind1,wind2;drawwin stx prfrom+1 sty prfrom tya pha txa pha ldy #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 prfrom+1; inc boty inc boty inc botx lsr to}px lsr botx; ldy #0svwndat lda topx,y sta (prfrom),y iny cpy #4 bne svwndat lda prfrom clc adc #4 sta prfrom ld}a prfrom+1 adc #0 sta prfrom+1;wincpinit lda topy asl a asl a adc topy asl a tax lda dlist+4,x clc adc topx sta} cntrl lda dlist+5,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 s}ta 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 (prfrom),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 prchar jsr }print inc xtplnlp lda #146 sta prchar jsr print inc x lda x cmp botx bne tplnlp lda #133 sta prchar jsr print de}c botx inc ywinlp lda topx sta x lda #252 sta prchar jsr print inc x lda #160 sta prchar jsr print inc xwlnlp l}dy #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 lda #32 sta prchar jsr} print inc x lda #32 sta prchar jsr print inc y lda y cmp boty bne winlp lda topx sta x inc botx lda #154 sta pr}char jsr print inc xbotlnlp lda #146 sta prchar jsr print inc x lda x cmp botx bne botlnlp lda #131 sta prchar j}sr print inc x lda #32 sta prchar jsr print inc x lda #32 sta prchar jsr print inc topx inc topx inc botx inc bot}x inc botx inc y lda topx sta xshline lda #32 sta prchar jsr print inc x lda x cmp botx bne shline rts;getkey} lda 764 cmp #255 beq getkey lda click cmp #2 beq getkey2 cmp #0 beq nodoclk lda #1 sta doclicknodoclk ldy 764 ld}a #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 st}a temp pla rts; Click = 0 - None, 1 - small click,; 2 - Regular Atari clickprint lda y asl a asl a adc y as}l a tax lda dlist+4,x sta cntrl lda dlist+5,x sta cntrh lda #0 sta pos lda x lsr a rol pos adc cntrl sta cntrl l}da cntrh adc #0 sta cntrh ldy #0 sty prchar+1 sty temp 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 #32prcha}rok asl a asl a rol prchar+1 asl a rol prchar+1 sta prchar lda prchar+1 clc adc #HI[charset] sta prchar+1 ldx pos}wrtchar 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 rtspostbl1 db $0fpostbl2 db $f0,$0fscrldown dec scrltop dec scrlbot ldx scrltopscdnszlp lda lnsizdat}+1,x sta lnsizdat,x inx cpx scrlbot bne scdnszlp lda #0 sta lnsizdat,x inc scrltop inc scrlbot;; lda scrltop sta }y jsr calctxln lda ersl sta scvar3 clc adc #80 sta scvar2 lda ersl+1 sta scvar3+1 adc #0 sta scvar2+1; lda scrlbo}t sec sbc scrltop beq noscdntx sta scvar1; ldx #0 ldy #0scrldntxlp lda (scvar2),y sta (scvar3),y iny cpy #80 bne} scrldntxlp ldy #0 lda scvar2 clc adc #80 sta scvar2 lda scvar2+1 adc #0 sta scvar2+1 lda scvar3 adc #80 sta scvar}3 lda scvar3+1 adc #0 sta scvar3+1 inx cpx scvar1 bne scrldntxlpnoscdntx lda scrlbot sta y jsr calctxln ldy #0 ld }a #32dnerstxlp sta (ersl),y iny cpy #80 bne dnerstxlp; jsr vdelay lda scrltop asl a asl a adc scrltop asl a adc  }#4 tax lda scrlbot asl a asl a adc scrlbot asl a adc #5 sta temp lda dlist,x sta cntrl pha inx lda dlist,x sta  }cntrh pha dex ldy scrltop deyscrldlp lda dlist+10,x sta dlist,x lda dlist+11,x sta dlist+1,x txa clc adc #10 tax } iny cpy scrlbot bne scrldlp jsr erslineraw lda temp tay pla sta dlist,y dey pla sta dlist,y rts;scrlup dec sc }rlbot dec scrltop ldx scrlbotscupszlp lda lnsizdat-1,x sta lnsizdat,x dex cpx scrltop bne scupszlp lda #0 sta lnsiz}dat,x inc scrlbot inc scrltop;; lda scrlbot sta y jsr calctxln lda ersl sta scvar2 sec sbc #80 sta scvar3 lda er}sl+1 sta scvar2+1 sbc #0 sta scvar3+1; lda scrlbot sec sbc scrltop beq scupnotx sta scvar1; ldx #0 ldy #0scuptxl}p lda (scvar3),y sta (scvar2),y iny cpy #80 bne scuptxlp ldy #0 lda scvar2 sec sbc #80 sta scvar2 lda scvar2+1 sb}c #0 sta scvar2+1 lda scvar3 sbc #80 sta scvar3 lda scvar3+1 sbc #0 sta scvar3+1 inx cpx scvar1 bne scuptxlp;scup}notx lda scrltop sta y jsr calctxln ldy #0 lda #32uperstxlp sta (ersl),y iny cpy #80 bne uperstxlp; jsr vdelay l}da scrltop asl a asl a adc scrltop asl a sec sbc #6 sta temp lda scrlbot asl a asl a adc scrlbot asl a adc #4 t}ay lda dlist,y sta cntrl pha iny lda dlist,y sta cntrh pha dey tya sec sbc #10 taxscrluplp lda dlist,x sta dli}st+10,x lda dlist+1,x sta dlist+11,x txa sec sbc #10 tax cpx temp bne scrluplp jsr erslineraw lda temp clc adc #1}1 tax pla sta dlist,x dex pla sta dlist,x rts;ersline lda ersl sta y cmp #0 beq noerstx jsr calctxln ldy #0 l}da #32erstxlnlp sta (ersl),y iny cpy #80 bne erstxlnlpnoerstx lda y asl a asl a adc y asl a tay lda dlist+4,y s}ta cntrl lda dlist+5,y sta cntrherslineraw lda #0 tayers1 sta (cntrl),y iny cpy #0 bne ers1 inc cntrhers2 sta (c}ntrl),y iny cpy #320-256 bne ers2 rts;filline lda y asl a asl a adc y asl a tax lda dlist+4,x sta cntrl lda dl}ist+5,x sta cntrh ldy #0 lda #255fil1 sta (cntrl),y iny cpy #0 bne fil1 inc cntrhfil2 sta (cntrl),y iny cpy #320}-256 bne fil2 rts;clrscrn ldx #1clrscrnl stx ersl jsr ersline inx cpx #25 bne clrscrnl jmp rslnsizexchars db 0,}85,170,0,0,0,0,0 db 170,170,170,68,68,170,170,170;vdelay lda $14 ; Waits for VBI, and then vdelwt ; returns to main }program cmp $14 ; when that VBI is done. beq vdelwt rts;prmesg;; Message printer!; Reads string and outputs it, b}yte ; by byte, to the 'print' routine. ;; Reads from whatever's in X-hi, Y-lo; (registers): x,y,length,string.; jsr vd}elay sty prfrom stx prfrom+1 ldy #0 lda (prfrom),y sta x iny lda (prfrom),y sta y iny lda (prfrom),y sta prlen ld }y #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 prmesglpprmesgen rts;; Sub to open R: (uses con"}fig) ;ropen 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 #128 bcc rhok1 rtsrhok1;; set no transl$}ation; lda #38 sta iccom+$20 lda #32 sta icaux1+$20 jsr ciov cpy #128 bcc rhok2 rtsrhok2;; Set baud,wordsize,stop%}bits; lda #36 sta iccom+$20 lda #0 sta icaux2+$20 lda baudrate clc adc stopbits sta icaux1,x jsr ciov cpy #128 bc&}c rhok3 rtsrhok3;; open "r:" for read/write; lda #3 sta iccom+$20 lda #13 sta icaux1+$20 jsr ciov cpy #128 bcc rh'}ok4 rtsrhok4;; Enable concurrent mode I/O, use ; BIG buffer (after my prog) ; lda #40 sta iccom+$20 lda #LO[buf(}fer] sta icbal+$20 lda #HI[buffer] sta icbah+$20 lda #LO[wind1-buffer] sta icbll+$20 lda #HI[wind1-buffer] sta icblh+$)}20 lda #13 sta icaux1+$20 lda #0 sta icaux2+$20 jmp ciov;; Close #2;close2 ldx #$20 lda #12 sta iccom+$20 jmp ci*}ovsname db 'S:'rname db 'R:'kname db 'K:';; The following sends a Break!;dobreak lda #19 sta outdat lda #1 sta out+}num jsr outqit jsr wait10 jsr close2; ldx #$20 lda #34 sta iccom+$20 lda #2 sta icaux1+$20 lda #0 sta icaux2+$20 ,}lda #rname&255 sta icbal+$20 lda #rname/256 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 #rname&255.} sta icbal+$20 lda #rname/256 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 windo0}w ; lda numofwin bne gtwin rtsgtwin dec numofwin lda numofwin asl a tax lda winbufs,x sta prfrom lda winbufs+1,x1} sta prfrom+1 ldy #0gtwninlp lda (prfrom),y sta topx,y iny cpy #4 bne gtwninlp lda prfrom clc adc #4 sta prfrom l2}da prfrom+1 adc #0 sta prfrom+1;gtwninit lda topy asl a asl a adc topy asl a tax lda dlist+4,x clc adc topx sta3} cntrl lda dlist+5,x adc #0 sta cntrh lda botx sec sbc topx clc adc #1 sta winchng2+1 ldx #0 ldy #0gtwnlp lda (p4}rfrom),y sta (cntrl),y inywinchng2 cpy #0 bne gtwnlp ldy #0 lda prfrom clc adc winchng2+1 sta prfrom lda prfrom+15} 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 l6}da topy cmp boty bne gtwninit rts;; Configuration data ;cfgname db 'D:VT.CFG',155cfgdat;; 8 bytes of configuration7} data ;baudrate db 8stopbits db 0parity db 0curssiz db 1click db 1autowrap db 1delchr db 0bckgrnd d8}b 0;;; EOF - (c)1993 Itay Chamiel;arity db 0curssiz db 1click db 1autowrap db 1delchr db 0bckgrnd d(bcc hvpok3 lda #79 sta txhvpok3 jmp fincmnd1nocup cmp #102 ; f - Position beq hvp; cmp #65 ; A - Move 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 down bne nocu<}d 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 right bne nocu>}f 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 lda nums@}tk cmp #255 beq cubdodef cmp #0 bne cubokcubdodef lda #1 sta numstkcubok lda tx sec sbc numstk sta tx bcc cubbadA} jmp fincmnd1cubbad lda #0 sta tx jmp fincmnd1nocub cmp #114 ; r - set scroll margins bne nodecstbm ldx numgot cpxB} #2 bcs stbm1 lda #24 sta numstk+1 cpx #1 bcs stbm1 lda #1 sta numstkstbm1 lda numstk cmp #255 bne stbm2 lda #1sC}tbm2 cmp #1 bcs stbm3 lda #1stbm3 cmp #24 bcc stbm4 lda #23stbm4 sta numstk; lda numstk+1 cmp #255 bne stbm5 ldD}a #24stbm5 cmp #2 bcs stbm6 lda #2stbm6 cmp #25 bcc stbm7 lda #24stbm7 sta numstk+1; cmp numstk bcs stbm8 bne sE}tbm8 lda #1 sta numstk lda #24 sta numstk+1stbm8 lda numstk sta scrltop lda numstk+1 sta scrlbot lda #1 sta ty stF}a tx dec tx jmp fincmnd1nodecstbm cmp #75 ; K - erase in line bne noel lda numgot cmp #0 bne el1 sta numstkel1 ldaG} numstk cmp #3 bcc el2 lda #0 sta numstkel2 cmp #0 bne elno0 jsr ersfmcurs jmp fincmndelno0 cmp #1 bne elno1 jsrH} erstocurs jmp fincmndelno1 lda ty sta y sta ersl jsr ersline jmp fincmndnoel cmp #74 bne noed ; J - erase in screeI}n lda numgot cmp #0 bne ed1 sta numstked1 lda numstk cmp #3 bcc ed2 lda #0 sta numstked2 cmp #0 bne edno0 jsr eJ}rsfmcurs lda ty sta yed0lp inc y lda y cmp #25 beq ed0ok sta ersl jsr ersline jmp ed0lped0ok jmp fincmndedno0 cK}mp #1 bne edno1 lda #1 sta yed1lp lda y cmp ty beq ed1ok sta ersl jsr ersline inc y jmp ed1lped1ok jsr erstocursL} jmp fincmndedno1 jsr clrscrn jmp fincmndnoed cmp #99 ; c - id device bne noda jsr decid jmp fincmndnoda cmp #110M} ; n - device stat beq yesdsr jmp nodsryesdsr lda numgot cmp #0 bne dsr1 lda #5 sta numstkdsr1 lda numstk cmp #5 N}bne dsrno5 ldx #$20 lda #11 sta iccom+$20 lda #4 sta icbll+$20 lda #0 sta icblh+$20 lda #dsrdata&255 sta icbal+$20 O}lda #dsrdata/256 sta icbah+$20 jsr ciov jmp fincmnddsrdata db 27 db '[0n'dsrno5 cmp #6 beq dsrys6 jmp dsrno6dsrys6P} lda #27 sta cprd lda #91 sta cprd+1 lda #0 sta cprv1 lda tycprlp1 cmp #10 bcc cprok1 sec sbc #10 inc cprv1 jmpQ} cprlp1cprok1 clc adc #48 sta cprd+3 lda cprv1 beq cpr1 clc adc #48cpr1 sta cprd+2 lda #59 sta cprd+4 lda #0 stR}a cprv1 lda tx clc adc #1cprlp2 cmp #10 bcc cprok2 sec sbc #10 inc cprv1 jmp cprlp2cprok2 clc adc #48 sta cprd+S}6 lda cprv1 beq cpr2 clc adc #48cpr2 sta cprd+5 lda #82 sta cprd+7; lda #0 sta cprv1cprdolp ldx cprv1 lda cprd,T}x beq cprnodo pha ldx #$20 lda #11 sta iccom+$20 lda #0 sta icbll+$20 sta icblh+$20 pla jsr ciovcprnodo inc cprv1U} lda cprv1 cmp #8 bne cprdolpdsrno6 jmp fincmndnodsr cmp #103 ; g - clear tabs bne notbc lda numgot bne tbc1 lda #V}255 sta numstktbc1 lda numstk cmp #255 bne tbc2 lda #0 sta numstktbc2 lda numstk cmp #3 bne tbcno3 lda #0 taxtbW}c3lp sta tabs,x inx cpx #80 bne tbc3lp jmp fincmndtbcno3 cmp #0 bne tbcno0 ldx tx sta tabs,xtbcno0 jmp fincmndnoX}tbc cmp #104 ; h - set mode bne nosm lda #1 sta modedo jmp domodenosm cmp #108 ; l - reset mode bne norm1 lda #0 stY}a modedo jmp domodenorm1 ldx qmark beq norm2 jmp fincmndnorm2 jmp normdomode ; This part for h and l lda qmark bneZ} sm1 lda numgot beq moddone lda numstk cmp #20 bne moddone lda modedo sta newlmod ; Newline modemoddone jmp fincmnd[}sm1 lda numgot cmp #0 beq moddone lda numstk cmp #1 ; Set arrowkeys mode bne nodecckm lda modedo sta ckeysmod jmp fi\}ncmndsccolors db 14,0,0,2 db 0,14,0,12nodecckm cmp #5 ; set inverse screen bne nodecscnm lda modedo sta invon eor bc]}kgrnd asl a asl a tax ldy #0colchng lda sccolors,x sta 709,y inx iny cpy #4 bne colchng jmp fincmndnodecscnm cm^}p #7 ; Set auto-wrap mode bne nodecawm lda modedo sta wrpmodenodecawm jmp fincmndnorm cmp #109 ; m - set graphic rendi_}tion bne nosgr lda numgot cmp #0 bne sgr1 sta undrln sta blink sta revvid sta invsbl jmp fincmndsgr1 ldy #255sgrl`}p iny cpy numgot beq sgrdone lda numstk,y cmp #0 beq sgrmd0 cmp #255 bne sgrmdno0sgrmd0 lda #0 sta undrln sta blia}nk sta revvid sta invsbl jmp sgrlpsgrmdno0 cmp #4 bne sgrmdno4 lda #1 sta undrln jmp sgrlpsgrmdno4 cmp #5 bne sgrb}mdno5 lda #1 sta blink jmp sgrlpsgrmdno5 cmp #7 bne sgrmdno7 lda #1 sta revvid jmp sgrlpsgrmdno7 cmp #8 bne sgrlpc} lda #1 sta invsbl jmp sgrlpsgrdone jmp fincmndnosgrfincmnd1 jsr rseolfincmnd lda #regmode&255 sta trmode+1 lda #d}regmode/256 sta trmode+2 rts;erstocurs lda tx sta x lda ty sta y jsr calctxln ldy y dey lda x ldx lnsizdat,x bee}q smlersto lda x asl a cmp #80 bcc smlersto lda #79smlersto sta x inc x ldy #0 lda #32erstotxlp sta (ersl),y inyf} cpy x bne erstotxlp; lda ty sta y tay asl a asl a adc y asl a tax lda dlist+4,x pha lda dlist+5,x pha lda txg} sta x dey ldx lnsizdat,y bne bigersto and #1 bne ertobt lda #32 sta prchar jsr print lda x dec x cmp #0 bne ertq}255 sta numstktbc1 lda numstk cmp #255 bne tbc2 lda #0 sta numstktbc2 lda numstk cmp #3 bne tbcno3 lda #0 taxtbW}c3lp sta tabs,x inx cpx #80 bne tbc3lp jmp fincmndtbcno3 cmp #0 bne tbcno0 ldx tx sta tabs,xtbcno0 jmp fincmndnoX}B VT FNTBVT CFGBTVT OBJobt pla pla rtsertobt pla sta cntrh pla sta cntrl lda x lsr a sta temp inc temp lda #0 tax tayertobtlp sta (r}cntrl),y iny cpy temp bne ertobtlp lda cntrl clc adc #40 sta cntrl lda cntrh adc #0 sta cntrh lda #0 tay inx cps}x #8 bne ertobtlp rtsbigersto lda x cmp #40 bcc bigersok lda #39bigersok sta temp inc temp lda #0 tax tay jmp et}rtobtlp;ersfmcurs lda tx sta x lda ty sta y jsr calctxln ldy y dey lda lnsizdat,y bne bigtxerfm ldy x lda #32txu}erfm sta (ersl),y iny cpy #80 bne txerfm jmp nobigefmbigtxerfm lda x cmp #40 bcc bigtxefmc lda #39bigtxefmc asl av} tay lda #32bigefmlp sta (ersl),y iny cpy #80 bne bigefmlpnobigefm; lda y tay asl a asl a adc y asl a tax ldw}a dlist+4,x pha lda dlist+5,x pha lda tx sta x dey ldx lnsizdat,y bne bigersfm and #1 beq erfmbt lda #32 sta prchx}ar jsr print lda x inc x cmp #79 bne erfmbt pla pla rtserfmbt pla sta cntrh pla sta cntrl lda x lsr a sta temy}p tay lda #0 taxerfmbtlp sta (cntrl),y iny cpy #40 bne erfmbtlp lda cntrl clc adc #40 sta cntrl lda cntrh adc #z}0 sta cntrh lda #0 ldy temp inx cpx #8 bne erfmbtlp rts;bigersfm ldy x cpy #40 bcc gofmbt ldy #39gofmbt sty te{}mp lda #0 tax jmp erfmbtlp;decid ldx #$20 lda #11 sta iccom+$20 lda #7 sta icbll+$20 lda #0 sta icblh+$20 lda #d|}eciddata&255 sta icbal+$20 lda #deciddata/256 sta icbah+$20 jmp ciovdeciddata db 27 db '[?1;0c';cmovedwn ; subroutin}}e to move cursor lda ty ; down 1 line, scroll up if cmp scrlbot ; margin is reached. bne mdnoscrl jsr scrldown rtsm~}dnoscrl 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 p}rint. ; Checks all special character ; modes: graphic renditions, ; sizes, etc.. ; jsr chklnsiz js}r calctxln lda y cmp #0 beq notxprn tay dey lda lnsizdat,y beq ptxreg lda x cmp #40 bcc ptxxok lda #39ptxxok asl} a tay lda prchar sta (ersl),y iny lda #32 sta (ersl),y jmp notxprn;ptxreg ldy x lda prchar sta (ersl),y;notxpr}n lda iggrn bne pri1 lda invsbl bne invprtpri1 lda y asl a asl a adc y asl a tax lda dlist+4,x sta cntrl lda dl}ist+5,x sta cntrh lda prchar and #127 cmp #96 bcs prt1 cmp #32 bcc prt2 sec sbc #96prt2 clc adc #64prt1 sta prc}har lda #0 sta prchar+1 asl prchar asl prchar rol prchar+1 asl prchar rol prchar+1 ldx y dex lda lnsizdat,x sta te}mp ldx 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} blnklpprsnobln 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 snrevdop}rsnorvd lda temp cmp #4 bcs prsmch cmp #0 beq prsmch jmp prbgchprsmch lda x lsr a ldy #0 sty temp rol temp ldx t}emp clc adc cntrl sta cntrl lda cntrh adc #0 sta cntrh ldy #0prsnlp lda chartemp,y and postbl2,x sta chartemp,y l}da (cntrl),y and postbl1,x clc adc chartemp,y sta (cntrl),y lda cntrl clc adc #39 sta cntrl lda cntrh adc #0 sta c}ntrh iny cpy #8 bne prsnlp rts;psiz0 lda prchar+1 clc adc #charset/256 sta prchar+1 ldy #0ps0lp lda (prchar),y }sta chartemp,y sta chartemp2,y iny cpy #8 bne ps0lp rtspsiz1 jsr pbchsdopsz1lp lda (prchar),y sta chartemp,y sta c}hartemp2,y iny cpy #8 bne psz1lp jmp psizokpsiz2 jsr pbchsdo jmp psz23lppsiz3 jsr pbchsdo ldy #4psz23lp lda (prch}ar),y sta chartemp,x sta chartemp2,x inx sta chartemp,x sta chartemp2,x iny inx cpx #8 bne psz23lp jmp psizokpbchs}do lda #0 tax tay lda useset beq usatst lda prchar+1 clc adc #charset/256 sta prchar+1 txa rtsusatst lda prchar+}1 clc adc #224 sta prchar+1 txa rtsprbgch lda x cmp #40 bcc pxok lda #39pxok clc adc cntrl sta cntrl lda cntrh} adc #0 sta cntrh ldy #0prbiglp lda chartemp,y sta (cntrl),y lda cntrl clc adc #39 sta cntrl lda cntrh adc #0 st}a cntrh iny cpy #8 bne prbiglp rtschklnsiz ldx #0chklnslp lda lnsizdat,x cmp #4 bcc chkln1 lda #0 sta lnsizdat,x}chkln1 inx cpx #24 bne chklnslp rtsvbi1 inc flashcnt lda flashcnt cmp #30 bcc nochnflsh lda #0 sta flashcnt lda n}ewflash eor #1 sta newflashnochnflsh lda #8 sta 53279 jmp sysvbvvbi2 lda doclick beq nodoclick ldx #1 stx 53279 d}ex 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 lda 767 sta oldctrl1 jmp xitvbv;;; I need help here! --------------- ; }This IRQ should put a #59 in ; 764 if it senses a press of ; Break.. But it just puts a #1 in ; there all the }time, nonstop! (??) ;irq pha lda irqst and #128 cmp #0 beq inobrk; lda #59; sta 764inobrk plairqext jmp $ffff;}; - End of incoming-code processing ;; and now...; Outgoing stuff - keyboard handler ;readk lda 764 cmp #255 bne gtky} rtskretrn=128kup =129kdown =130kright=131kleft =132kexit =133kcaps =134kscaps=135kdel =136ksdel =137kbrk =13}8kzero =139kctrl1=140gtky 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 keyapp 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 numk}1 clc adc #64 jmp numkoknumk1 cmp #45 ; - bne numk2 lda #109 jmp numkoknumk2 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 numkoknumk7 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;; N}umeric-keypad mode;keynum lda #1 sta outnum lda keytab,x cmp #48 bcc numk10 cmp #58 bcs numk10 jmp numnoknumk10 c}mp #kretrn bne numk11 lda #13 jmp numnoknumk11 cmp #113 ; q beq numk12 cmp #119 ; w beq numk12 cmp #101 ; e beq num}k12 cmp #114 ; r beq numk12 jmp numk13numk12 jmp keyappnumk13 cmp #44 ; , beq numnok cmp #45 ; - beq numnok cmp #4}6 ; . beq numnok rtsnumnok sta outdat jmp outputdat;noctshft lda s764 tax lda keytab,x cmp #128 bcc norkey jmp s}pshkey;; Basic key pressed.;; Check for caps-lock and change; char if necessary;norkey cmp #65 bcc ctk2 cmp #91 bc}s ctk1 ldx capslock beq ctk1 clc adc #32 jmp ctk2ctk1 cmp #97 bcc ctk2 cmp #123 bcs ctk2 ldx capslock beq ctk2 s}ec sbc #32ctk2;; Any alphabetical char has; inverted its caps-mode if caps-; lock is on.; cmp #0 bne oknoz rtsokno}z sta outdat lda #1 sta outnumoutputdat lda #1 sta 764 jsr getkeyoutqit ldx #$20 lda #11 sta iccom+$20 lda outnum} sta icbll+$20 lda #0 sta icblh+$20 lda #outdat&255 sta icbal+$20 lda #outdat/256 sta icbah+$20 jmp ciovspshkey cmp} #kexit bne knoexit jsr getkey lda tmpflash 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 #menudt}a&255 jsr prmesg pla pla jmp mnmnloopknoexit cmp #kcaps bne knocaps lda capslock eor #1 sta capslock jsr getkey j}mp shcapsknocaps cmp #kscaps bne knoscaps lda #1 sta capslock jsr getkey jmp shcapsknoscaps cmp #kdel bne knodel l}dx delchr lda deltab,x sta outdat lda #1 sta outnum jmp outputdatdeltab db 127,8knodel cmp #ksdel bne knosdel lda d}elchr eor #1 tax lda deltab,x sta outdat lda #1 sta outnum jmp outputdatknosdel cmp #kretrn bne knoret lda #13 st}a outdat lda #1 sta outnum jmp outputdatknoret cmp #kbrk bne knobrk lda #1 sta 764 jsr getkey lda tmpflash beq brk}nof1 jsr putcrsbrknof1 jsr dobreak lda tmpflash beq brknof2 jmp putcrsbrknof2 rtsknobrk cmp #kzero bne knozero ld}x #0 stx outdat inx stx outnum jmp outputdatknozero cmp #kctrl1 bne knoctrl1 lda #1 sta 764 jsr getkey lda ctrl1mo}d eor #1 sta ctrl1mod jmp shctrl1knoctrl1 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 outputdatknoarrow rtsprntscrn lda #1 sta 764 jsr getkey ldx #prntwin/256 ldy #prntwin&255 jsr drawwin} 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&25}5 sta icbal+$20 lda #lnbufr/256 sta icbah+$20 lda #81 sta icbll+$20 lda #0 sta icblh+$20 jsr ciov cpy #128 bcs prnt}err; 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 #1 sta icbll+$20 lda #0 sta icblh+$20 jsr ciov cpy #128 bcs prnterr;prntend jsr ropen jmp g}etscrnprnterr ldx #prnterr1/256 ldy #prnterr1&255 jsr prmesg ldx #prnterr2/256 ldy #prnterr2&255 jsr prmesg jsr getke}y jmp prntendscrnname db 'P:'endofpg db $0cprntwin db 31,9,49,12 db 'Printing screen' db '- Please wait -'prnterr1 }db 33,10,15 db ''prnterr2 db 33,11,15 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,53,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,11}5,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,66,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,3},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},0,0,7,19,1;; End of keyboard handler ;; And now...; Status line doers ;shcaps lda capslock bne capson ldx #capsoff}p/256 ldy #capsoffp&255 jmp prmesgcapson ldx #capsonp/256 ldy #capsonp&255 jmp prmesgshnuml lda numlock bne numlon }ldx #numloffp/256 ldy #numloffp&255 jmp prmesgnumlon ldx #numlonp/256 ldy #numlonp&255 jmp prmesgshctrl1 lda ctrl1mod} bne ctrl1on ldx #ctr1offp/256 ldy #ctr1offp&255 jmp prmesgctrl1on ldx #ctr1onp/256 ldy #ctr1onp&255 jmp prmesgbufcn}tdo lda bcount+1 lsr a lsr a cmp oldbufc bne bufcntok rtsbufcntok lda #142 ldx #0bufdtfl sta bufcntdt,x inx cpx }#11 bne bufdtfl lda bcount+1 lsr a lsr a sta oldbufc cmp #0 beq bufdtok tax cpx #12 bcc notbig12 ldx #11notbig124}DDDDDDfD"D"D"DDD"DDD"DDDD"DDDDDDDDDDDDDD""DD!}DDDDDDD"D"""f""""D̪D"DDDDDDf"DDDDDD"DD"D"DD!}"DDDfD̪̪ff̪ffDDDDf"""D̪"!}̪̈"̪̪fD""DDDDDDDDDDDD"DfDDDDfDD""DDDDD!}UUUUDDDwDDDDDDDDDDDDDDDDDDDDDDDDDD"DD"D"D"DDDD!}DDwDDDDDDDDDDDDDDDDDDDDDw0p !}p0` "D"̪ff""ffDffff"̪DDDf"""""̪DDDDf!}̪DD̪̈ff""ffD"DDDDfDDDf""DfDDDfDDDDDDDD!}D"DDTTTTTT̈ff""ffD"DDDDfDDDf""DfDDDfDDDDDDDD TTTTTT̈ff""ffD"DDDDfDDDf""DfDDDfDDDDDDDD$ 8K8P?@     Y`  Y0 l `8J)J)I*ة/ ~7yyz )} * * ) n7D I8 bjkSd9e V I8\9&M L* b&dMe h)}i V I8L */ ~7:;:yyz @,&M\9 c9)c9 HCa9 ~7ҍԅÅąJ*I+G> \GX)} \GGGԍ҅10ip0Oȥi@ȥiȑȑȑȑȑȑȑ)}i iоAȩȩp0 _7A, 7 R VRZ[WT8U VPJ+I, )}i P uEՅŅMMXLH Eh愽XLH Eh)}ݢL` 7L 7 uE 7- 2"/ 4L4-"/ 4 _7L, 8,ϥ 1Ѕυ΅e ,H,H`PJ)},I- Terminal 㩠젠 , 2, 1L4-L,1Rea)}lly wanna quit? Quit <Fc9- 3No R: handler present!! Hit any key to quit R I8 ~7 *)} * J-I._ \b \䭓GG`  V`S8  Vl 8L-Ϣ- 2.> 1υ)}L, R.HQ.H`' 堠 Stop bits Auto wrap Keyclick Background Cursor size Delete key Save c)}onfig (2J.I/<FPZ`..$/`///A00. 2.ǭ\98 y1i\9 \9 ~7 7L-$? 300 600 1200 1800 )}2400 4800 9600 19K &,28&(,(2(8(/ 2/]9** y1jj]9 ]9 ~7 7L-$/ 1 2 &&(/J 2)}/Za9I y1Ia9L-J/I0$- Yes No &(&2/ 2/`9 y1L-`9L-"1 None Simple Stand)}ard  $2$<$F/ 2c9Ϣ/ y1c9 HCL-$/ Black White &<&F0' 20;_9J) y1 _)}9L-&1 Block Line (<(F0a 2J0I10}b9 y1b9L-$3 $7F DEL $08 BS ^H  &Z&d17 2 I8 bj)}kSd9e VL0 b\d9e hi VL0\9&M 7L-H)JJJJi0 u1h)i0 v1u1ɺiu1v1ɺ)}iv11W 71h 7 7 4L-%6 Saving current J1I2 parameters ' ɯϠ' 򠤠Ԇȱ)}ȱJΥiiͥe˥̐8L1Х Jȱeҽiӥ 2 4+$˅ϥ̅Х̐̅)} 2L1* Х̐Хυ 2L1=!e̅ːJ2I3Щ̰Ѕυ 2L1-28̅ː!Х˅ϥ̅L2)}8eЅ 2L1`ɛυ` L1Ӆ҅Ii(i`HH 22)}FFؠii e eօi8iO3J3I4i(imO3iץЧ)}hhiiM`օׅ 4惩 4惥񩅅 4愥օ 4惩 4惠I 4拥)}惥婠 4惩 4惩 4惩 4愥Хօة 4惩 4惥J4I5񩃅 4惩 4惩 4愥)}օ 4惥``9Ĭy`yHHTUXYR Vhh` e J&)}eiɀ 8Hh` i@L"58 & &i=b5=c5q]cJ5I65i'i`ƻƼ)}LLL漥 LڅiPߥۅiॼ8/ޢߑPiPߥiiPiץ L P ~7 e)} i e iHHʤ i ļ $7hh`ƼƻLLL滥J6I7 Lڅ8Pۅ)}8/ޢP8PߥPץ L P ~7 e 8 e iHȹH8 )} 8 $7i hh`څ L P e 恑@` e J7I8)}@` 6LuEUDD` ~7ȱȱĈiiH 4hĈ` I8 Ud8e")}bj V`&b j V`$bk\9m]9J V`b j V`(bdNeh9i jkLVJ8I9 )} bLVS:R:K:ȩ H 8 I8 "bjkUd8e V 8 8 8 "bjkUd8e V 7 8ȩLH ~7 )}``ե 22ii e eօi8i%9m%9ii(i)}J9I:ץЧ`D:VT.CFG 87 *Gc9E HC ~7 K KL 7 KL$ 7 KLG 7)}L:ʆLh: : : b V K L:L: bhide V䥗)} :J:I; :R敩 Gƕ? K : : b V K敩 Gƕե : KИ*}  KL9 : GL9) L`D SELCE ,=LCM dELC= KLC>  KLC7+*}LC8+LCZ .ELCH LC(<:?:*}`)<:?:`# ;:>:`LC8L>H *GhJ>I?83LC>LLCHLhL>> L .NPڝ.N*}PHHHH.N E惥PhhhhLCP((( LEP愥 uE愥 e * }((i(i⥄ƞLCABJ?I@LC012LC{:?:`?L`?H `?h;* }.M温`:*0&80 湩` e e` .M渥LBHb/M.M.M.M/M* }/M.Mƾ/M/MPOLCfA).MJ@IA.M8.MLCLCB(.M* }.M.MeLCLCC&.M.M.MePLCOLCD$.M.M8.MLCLCrj* }/M.M.M.M/M/M.M .M/M.MJAIB/MƽLCK5.M.M*}.M DLC CLC 6LCJW.M.M.M D愥 6LALCž 6LA CLC _*}7LCc .ELCnLB.M.M% bhi4dBe VLCLBL[LJBIC 8 LOBi0L*}i0L;Li 8 LyBi0Li0LRLLH bhih V津LCg6.M.M.M.M*}PLCLChLClLCLCLzC .MLC.MLCJCID Mc9*} HCLCLCm_ LCĸD.M LCLCLCLCоL*}CLC <:;:` LL PO惠 ă e HHLD) 4ƃhhJDIE`hh*}J懩ći(i`('懩L\D LL PLD(' P e H*}HLC) 4Ohh`hhJ(i(i`('LE bhiLdEeLJ*}EIFV[?1;0cż e5``Ż .6`ƾ`L` *G L#L(' ȩ LEڥȥ e *})` 8`i@&&ʽLLFLFLF F6 MM%MMIMMI*}MJFIGLFJ&eiM=c5M=b5yMi'i`iMM` FMM*}LF FLF FMMMMLF i`i`('eiMi'i`L*}L`濥 JGIHIL_ʆĥi@å ҍLbH)hL`)LnH)? *}LI)?L+HȩOɩǽJ0 :i@L%H-mL%H,lL%H.nL%HɀML%HqPL%HwQL%HeRL%HrSL%H`LH`*}ǽJ0:LiHɀ LiHqJHIIw erL\HLG, -.`LHƪJɀLHA[ i LHa {8 `ȩ*}ǩ 4 bǍhiȍdeLVɅ4 4 : 87c9 HC ~7,A 7hhL,Ɇ I 4LKɇ  4LK*}Ɉb96IȩLHɉb9I6IȩJIIJLHɀ ȩLHɊ 4 : Y8L:`ɋ LHɌ 4IL*}KɁ#Ʌ8iAʩȩǩ[ɥOLH` 4J{ 2 I8 bxdJeJK Vj Lڙ.NP.N b* }.dNeQhi V0愥¢ bzdJJJIKehi V 7L8J 7J 7 4L^JP:  1 Printing screen- Pl*!}ease wait -! ! lj;k+*opui-=vcbxz436521, .nm/~rey twq9078<>fhdgsaLJ:K\^OPUI*"}_|VCBXZ$#&%"![ ]NM?REYTWQ()'@FHDGSA  JKIL  {}`L*#} L7LL7LL7LL7KL7KL7JJŒ`L JJ  LLL7*:}Welcome! %} You are now on /dev/tt&}yp1 '} The mailbox holds: cyberden!phbil(}l@moon.nbn.com Re: (read the mesg, ignore extra headers) potter@sunny0.dab.ge.com Re: Duplex )} 23:05: bruck (t*}typ1) logged on 7)bruck:~> f bruck +} Login name: bruck In real life: Itay Chamie1 Directory: /usr/u/23stud/bru,}ck Shell: /usr/local/bin/tcsh On since Jan 30 23:05:53 on ttyp1 from Bridge-ls1.jct.a -} Mail last read Sat Jan 30 23:05:55 1993 .} /} N i r v a n a N i r v a n a 0} N e v e r m i n d 1} 2} 8)bruck:~> 8)bruck:~> 3} 8)bruck:~> F lda #155bufdtmk sta bufcntdt-1,x dex cpx #0 bne bufdtmkbufdtok ldx #bufcntpr/256 ldy #bufcntpr&255 jmp prmesgctr1o5}ffp db 1,0,8 db ''ctr1onp db 1,0,8 db ''capsonp db 10,0,4 db ''capsoffp db 10,0,4 db ''st6}s2 db 15,0,1 db ''numlonp db 17,0,3 db ''numloffp db 17,0,3 db ''sts3 db 21,0,32 db 'à'7} db ''sts4 db 64,0,14 db 'ݠ'tilmesg1 db 'MegaTerm'tilmesg2 db 14,8,51 db 'A VT100 terminal e8}mulator' db ' by Itay Chamiel.. (c)1993'tilmesg3 db 33,10,11 db 'Version 1.0';; End of status line handlers.. ;; Calc9}ulate memory position in ; ASCII mirror ;calctxln lda y pha dec y lda y cmp #25 bcc calcok lda #0 C}   à@JLLݠMegaTerm3A VT100 terminal emulator b*;}y Itay Chamiel.. (c)1993! Version 1.0HƄۥ &ۅܥۅݥ & &e܅ڥe݅ۥiڥih`5 DDDDD*<}DfD"D"D"DDD"DDD"DDDD"DDDDDDDDDDDDDD""DDDDDDD*=}DD"D"""f""""D̪D"DDDDDDf"DDDDDD"DD"D"DD"DDDfD*>}̪̪ff̪ffDDDDf"""D̪"̪̈*?}"̪̪fD""DDDDDDDDDDDD"DfDDDDfDD""DDDDDUU*@}UUDDDwDDDDDDDDDDDDDDDDDDDDDDDDDD"DD"D"D"DDDDDD*A}wDDDDDDDDDDDDDDDDDDDDDw0p p0` *B}"D"̪ff""ffDffff"̪DDDf"""""̪DDDDf̪D*H}sta ycalcok lda #0 sta ersl+1 lda y asl a asl a asl a asl a rol ersl+1; sta ersltmp lda ersl+1 sta ersltmp+1 ldD}a ersltmp; asl a rol ersl+1 asl a rol ersl+1; adc ersltmp sta ersl lda ersl+1 adc ersltmp+1 sta ersl+1; lda erslE} clc adc #txscrn&255 sta ersl lda ersl+1 adc #txscrn/256 sta ersl+1 pla sta y rts;; Mem location of place at x=0, F}; y=y (passed data), is now at ; ersl (2 bytes). ;;; Allocate room for data tables ;bufcntpr db 53,0,1G}1;bufcntdt ds 11cprd ds 8lnsizdat ds 24chartemp ds 8chartemp2 ds 8savddat ds 8numstk ds 256lnbufr dsI}D̪̈ff""ffD"DDDDfDDDf""DfDDDfDDDDDDDDD"DD*J} 81buffer;; ԭ;t ds 24chartemp ds 8chartemp2 ds 8savddat ds 8numstk ds 256lnbufr ds*TTTTTT̈ff""ffD"DDDDfDDDf""DfDDDfDDDDDDDDD"DD(tmpchset db 255,255,6,152,255,155,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,L}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,M}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,0N}DfD"D"D"DDD"DDD"DDDD"DDDDDDDDDDDDDD""DDDDDDD*=},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,17P}0,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 0Q}"̪̪fD""DDDDDDDDDDDD"DfDDDDfDD""DDDDDUU*@}b 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 S}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,T}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 dbU}sta ycalcok lda #0 sta ersl+1 lda y asl a asl a asl a asl a rol ersl+1; sta ersltmp lda ersl+1 sta ersltmp+1 ldD}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 dW}b 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,X}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,Y}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 68Z},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,170,68,0,0,0 db 0,68,238,68,0,238,0,0 db 0,34,68,136,68,34,238,0 db 0,136,6\}8,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,0,255,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 d^}b 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 0,0,238,238,238,238,0,0 db 0,14,24,48,24,24,14,0 db 0,112,24,12,24,2`}4,112,0 db 0,24,48,0,0,0,0,0 db 0,96,146,12,0,0,0,0 db 0,34,68,0,0,0,0,0 db 0,0,204,34,238,170,238,0 db 0,136,136,204,17a}0,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,13b}6,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,204c} 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 0d},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,10e}2,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,2f}38,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,0g} 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 db ,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 dW}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, j}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 k},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 l},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,17 m}0,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 n},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 d o}b 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 p}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, q}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 r}4,112,0 db 0,24,48,0,0,0,0,0 db 0,96,146,12,0,0,0,0 db 0,34,68,0,0,0,0,0 db 0,0,204,34,238,170,238,0 db 0,136,136,204,17a}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 d t}b 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, u}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, v}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 w},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, x}68,68 db 0,68,68,238,238,68,68,0 db 0,68,170,170,68,0,0,0 db 0,68,238,68,0,238,0,0 db 0,34,68,136,68,34,238,0 db 0,136,6 y}8,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, z}0 db 255,0,0,0,0,0,0,0 db 0,0,255,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 d {}b 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 0,0,238,238,238,238,0,0 db 0,14,24,48,24,24,14,0 db 0,112,24,12,24,2 }}4,112,0 db 0,24,48,0,0,0,0,0 db 0,96,146,12,0,0,0,0 db 0,34,68,0,0,0,0,0 db 0,0,204,34,238,170,238,0 db 0,136,136,204,17 ~}0,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,13 }6,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 },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 d o},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,10 }2,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,2 }38,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 db ,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 d t}244,229,242,160,32,32, db 32,32,155,59,155,59,32,79, db 114,105,103,105,110,97,108,32, db 34,65,85,84,79,82,85,78, db 46,}83,89,83,34,32,32,155, db 59,32,102,105,108,101,44,32, db 100,105,115,97,115,115,101,109, db 98,108,101,100,46,32,32,32, }db 32,32,155,59,155,59,32,70, db 111,114,32,77,101,103,97,84, db 101,114,109,32,116,101,114,109, db 105,110,97,108,32,101,}109,117, db 108,97,116,111,114,46,32,155, db 59,32,32,32,32,67,111,109, db 109,101,110,116,115,32,98,121, db 32,73,116,97},121,32,67,104, db 97,109,105,101,108,32,32,32, db 32,32,155,59,155,32,111,114, db 103,32,36,51,56,48,48,155, db 59,155,5}9,32,83,121,115,116, db 101,109,32,101,113,117,97,116, db 101,115,32,117,115,101,100,32, db 155,59,155,115,105,111,118,32,} db 32,61,36,101,52,53,57,32, db 59,32,77,97,105,110,32,114, db 111,117,116,105,110,101,32,102, db 111,114,32,83,73,79,32},32, db 155,100,99,98,32,32,32,61, db 36,51,48,48,32,32,59,32, db 68,101,118,105,99,101,32,99, db 111,110,116,114,111,108},32,98, db 108,111,99,107,32,32,155,100, db 100,101,118,105,99,61,36,51, db 48,48,32,32,59,32,83,101, db 114,105,97,108,3}2,98,117,115, db 32,73,46,68,46,32,32,32, db 32,32,32,32,155,100,117,110, db 105,116,32,61,36,51,48,49, db 32,32,59,32,68},101,118,105, db 99,101,32,110,117,109,98,101, db 114,32,32,32,32,32,32,32, db 32,32,155,100,99,111,109,110, db 100,61,36}6,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 }15,116,97,116,115,61, db 36,51,48,51,32,32,59,32, db 82,101,97,100,32,47,32,87, db 114,105,116,101,32,40,115,116, db 97,1}16,117,115,41,32,155,100, db 98,117,102,108,111,61,36,51, db 48,52,32,32,59,32,68,97, db 116,97,32,98,117,102,102,101, db} 114,32,112,111,105,110,116,101, db 114,45,108,111,155,100,98,117, db 102,104,105,61,36,51,48,53, db 32,32,59,32,68,97,116}38,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 db ,0{,98,121,116,108,111,61, db 36,51,48,56,32,32,59,32, db 35,32,111,102,32,98,121,32, db 32,32,32,32,32,32,32,32, db 155,100 Q,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 0,0,238,238,238,238,0,0 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,34,68,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,2}04,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,3}4 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,25}5,255,255 db 0,84,84,84,84,84,84,0 db ,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,25(_0bL;ceiL;dL;h k;L<8_s: < k;ʽJ1-`L0;{L0;}L0;~*} (D潦ʽJJ;I<(ƽ`Pƽ``Lk; 9<9`` Lk;  CLk; *} ƽPLk;9ɔ9:`L: O L;Lk;OLk;``LC[9>9*}J`D CLBE   4ILB7+LB*}8+LBZ CLBH LB(9=9`)9=9`# 9=9`L*}B E3J J 5LB4JJ=I> J 5LB57J J 5LB6J J 5LB8*}G D愥 e ((i(i⥄ƞLBABLB012LB"9>9`?*}L>H >h;J温`:*0&80J>I? 湩` e e` J渥LAHb*}JJJJJJJƾJJPOLBfA)JJ8J*}LBLBB(JJJeLBLBC&JJ?I@JJePLBOLBD$JJ*}8JLBLBrjJJJJJJͿJ JJJJƽ*}LBK5JJJ 3CLB BLB 5LBJWJJ@IAJJ 3C愥 5L`@LB*}ž 5L{@ BLB C6LBc CLBnLkAJJ% bhiۍd@e VLBLhAJ[J*} 8 L@i0Ji0J;Ji 8 L Ai0Ji0JRJJJAIBH bhih V津LBg6*}JJJJPLBLBhLAlLALBL!B JLBJ*}LB MG8 ALBLBm_ LBĸDJ JBICL8BL8B*}L8BL8BоL8BLB k;9:9` EJJ PO惠 ă e HHJD) *} K4ƃhh`hhJ懩ći(i`('懩LC EJJ JCIDPLgC(*}' P e HHJC) K4Ohh`hhJ(i(i`('LC *} bhidCeLV[?1;0cż 4``Ż B5`ƾ`J` E EJ#J(' JDIE LWD*}ȥ e )` 8`i@&&ʽJLTELgELmE =E6 J*}JJJIJJIJ륇LEJ&eiJ=4J=4yJi'i`iJ*}EIFJJ` EJJLD ELrE EJJ蝧JJLD i`i`('eiJi'*}i`JJ`濥 IL_ʆĥi@å ҍLbH)hL*}`)JFIGL G)?LFȩOɩǽbH0 :i@LF-mLF,lLF.nLFɀMLFqPLFwQLFeRLFr*}SLF`LCG`ǽbH0:LGɀ LGqw erLFL[F, -.`LCGƪbHɀLiGA[ i L8Ga {8*} `ȩǩ JGIH3 bǍhiȍdeLVɅ4 3 9 6G8 A b6,A i6hhL,Ɇ I 3L"*}Iɇ  3L"IɈF8GȩLCGɉF8IGȩLCGɀ ȩLCGɊ 3 9 =7L9`ɋ LCGɌ*} 3ILFIɁ#Ʌ8iAJHIIȩǩ[ɥOLCG`lj;k+*opui-=vcbxz436521, .nm/~rey twq9078<>fhdgsaLJ:*}K\^OPUI_|VCBXZ$#&%"![ ]NM?REYTWQ()'@FHDGSA    {}`*}ILi6ILi6ILi6ILi6JIIJILi6ILi6JJŒ`|J JJ  {JJyLi6*}   à@ݠMegaTerm3A VT100 terminal emul*}ator by Itay Chamiel.. (c)1993! Version 1.0ƄJJ{Jۥ &ۅܥۅݥ & &e܅ڥe݅ۥiڥi`5 DDDDD*}DfD"D"D"DDD"DDD"DDDD"DDDDDDDDDDDDDD""DDDDDDDDD*}"D"""f""""D̪D"DDDDDDf"DDDDDD"DD"D"DD"DDDfD*}̪̪ff̪ffDDDDf"""D̪"̪̈*}"̪̪fD""DDDDDDDDDDDD"DfDDDDfDD""DDDDDUUUUDD*}DwDDDDDDDDDDDDDDDDDDDDDDDDDD"DD"D"D"DDDDDD*}wDDDDDDDDDDDDDDDDDDDDDw0p p0` "D*}"̪ff""ffDffff"̪DDDf"""""̪DDDDf̪DD*}̪̈ff""ffD"DDDDfDDDf""DfDDDfDDDDDDDDD"DDTTTTT*}T̈ff""ffD"DDDDfDDDf""DfDDDfDDDDDDDDD"DDTTTTT(