DWB 26 ANSI P 13419 TERM P 916 BANK1 P 1206 BANK0 P 4860 PANEL P 10664 ASCII P 3907 MODEM P 9077 BURST P 2128 SIM40C P 804 STARS P 10974 MODEM2 P 8094 WEDGES P 7753 SPEEDY P 4630 CALC TI P 953 KILLER P 10005 XMODEM P 14801 EDITOR P 13385 COMMON P 3693 CHROUT P 7021 MAIN IO P 12574 PUNTER P 16938 SWITCH P 8155 BOOTUP P 5145 C-ARRAY P 1356 COMLINK P 6689 FINDVAR P 1931   40005; ANSI TRANSLATI ROUTINS ;;I2.G $3800[7.DVI 9:.DVO 9r<.OBJ "@0:MLC.ANSI"xF;d.LST "VARIABLES.ST"x.LST "MODEM.ST".LST "C-ARRAY.ST".P;TRANS'INIT JMP TRANS'INIT2 ;INITIALIZE ANSI MODECTRANS'UN JMP TRANS'UN2 ;UN ANSI BOARD CHANGESxTRANS'BOARD JMP TRANS'BOARD2 ; FROM BOARDTRANS' JMP TRANS'2 ;TRANSLATE FROM MODEM BBSTRANS'OUTPUT JMP TRANS'OUTPUT2 ;TRANSLATE FROM BBS MODEM9TRANS'EOL JMP TRANS'EOL2 ;SPECIAL OFLINE CODETRANS'RECEIVED JMP TRANS'RECEIVED2 ;USED XFER PROCOL TRANSLATI$TRANS'S JMP TRANS'S2 ; "B;LTRANS'NAME V: JSR PRIMM'BBS'`:. "" : BRKt: RTS;44TRANS'BOARD2 ; ACTER ENTERED FROM OP'S BOARDL>: LDA ANSI'KB'TIN,YH: LDY C22 ; C22 0  OUT FANCY STUFF\: BEQ p: TAYz: LDA ANSI'UT,Y: TAY: LDA ANSI'TIN,Y RTS; TRANS'2 ;TRANSLATE FROM MODEM BBSJ : LDA C22 ; C22 0 NO CURS ALOWEDX : BNE TI9 : LDA ESC'SEQUENCE ; ESC'SEQUENCE1 (RECEIVED AN ESC) : BEQ TI9 : CMP #1 : BNE : CPY #"[" ; IS "["! : BNE TI4?! : INC ESC'SEQUENCE ; ESC'SEQUENCE2 L! : LDA #0V! : RTS\! ;!: TYA ; (ESC'SEQUENCE2 RECEIVED ESC[)!N : SEC ; TABLE $ OF FOLLOWING COMM UE-"l : SBC #$41 ; SUBTRACT "A" COMM NUMBERm" : CMP #4 ; COMM 4 BAD, IGNE{" : BCS TI9" : TAY" : LDA #0" : STA ESC'SEQUENCE" : LDA ANSI'ESC'TIN,Y" : RTS" ;#H TI4 ;RECEIVED ESC BUT [#\ : LDA #1"#p : STA P'/# : LDA #0F# : STA ESC'SEQUENCEP# : RTSV# ;a#<TI9 v#P: LDA ANSI'TIN,Y#d: CPY #27#x: BNE #: INC ESC'SEQUENCE# RTS#;#TRANS'INIT2 #: LDX #0 : STX C22 ;CG MODE $$: INX : STX ANSIMODE ;ANSI 2$: JSR PRIMM'BBS'N$:. "" : .BYT 13,10,0T$;^$: RTSd$|;v$TRANS'UN2 $: LDX #0 : STX ANSIMODE ;ANSI $$: JSR PRIMM'BBS'$:. "" : BRK$;$\: RTS$p; %TRANS'RECEIVED2 ;E4E TRANSLATI %: LDA ANSI'TIN,Y*%: RTS0%;b%TRANS'S2 ;E4E TRANSLATI OUTPUTw%: LDA ANSI'UT,Y%: RTS%;%pTRANS'EOL2 %z: LDX C31 ; IN LOCAL MODE%: BNE EOL ; N'T ANYTHING%;&: LDX RVS'FLAG ; RVS WAS , NEED TURN IT $D&: BEQ ; SKIP LINEFEEDJ&;Y&: LDA #""k&: STA IG'CHR}&: JSR A'RVS$&;&8 LDA #10&B: JMP MODEM'PUTBYTE&LEOL &V: RTS&;&XTRANS'OUTPUT2 ;TRANSLATE FROM BBS MODEM%'b: BIT ;CHECK UPPERLOWER FLAGN'l: BPL ;SKIP UPPERCASE'v: LDA ANSI'UT,Y ; ACTER FROM LOWERGFX TABLE': BEQ ; EQUAL ZERO, CHECK ANSI COMM JUMP': RTS ; WE HAVE THE , #( LDA ANSI'UT2,Y ; ACTER FROM UPPERGFX TABLE/(: BEQ 9( RTS?(;Q( STY IG'CHRj( : LDA ANSI'JUMP'HI,Y(4: BEQ ; NO JUMP ADDRESS, WITH .A0(H: STA ANSI'JUMP2(\;(: LDA C31 ; LOCAL MODE SKIP REST OF THIS ): BNE LOCALANSI);+): LDA ANSI'JUMP'LO,YA): STA ANSI'JUMP1G);X)ANSI'JUMP h): JMP $FFFFn);)LLOCALANSI ; IN LOCAL MODE WANTS S AN ANSI COMM)`: LDA IG'CHR)t: JSR CHROUT'BBS' ; IGINAL COMMORE SCREEN0*: LDA #0 ; SIGNAL OUTPUT ANYTHING :*: RTS@*;O*@A'BLACK s*T: LDA #"0": LDX #0: JMP SET'A'y*^;*rA'RED *|: LDA #"1": LDX #0: JMP SET'A'*;*A'GREEN *: LDA #"2": LDX #0: JMP SET'A'*;*A'BROWN +: LDA #"3": LDX #0: JMP SET'A'"+;1+ A'BLUE U+ : LDA #"4": LDX #0: JMP SET'A'[+& ;n+: A'DKPURPLE +D : LDA #"5": LDX #0: JMP SET'A'+N ;+l A'DKCYAN + : LDA #"6": LDX #0: JMP SET'A'+ ;+ A'LTGREY , : LDA #"7": LDX #0: JMP SET'A', ;, A'DKGREY <, : LDA #"0": JMP SET'A'1B, ;Q,!A'LTRED n, !: LDA #"1": JMP SET'A'1t,!;,4!A'LTGREEN ,H!: LDA #"2": JMP SET'A'1,\!;,f!A'YELLOW ,p!: LDA #"3": JMP SET'A'1,z!;,!A'LTBLUE -!: LDA #"4": JMP SET'A'1-!; -!A'LTPURPLE =-!: LDA #"5": JMP SET'A'1C-!;S-!A'LTCYAN p-": LDA #"6": JMP SET'A'1v-";-."A'WHITE -8": LDA #"7": JMP SET'A'1-B";-"A'INSERT -": LDA #27 : JSR MODEM'PUTBYTE-": LDA #"[" : JSR MODEM'PUTBYTE%.#: LDA #"@" : JSR MODEM'PUTBYTE ;@9.#: JMP LOCALANSI?.#;K.(#A'UP n.<#: LDA #27 : JSR MODEM'PUTBYTE.P#: LDA #"[" : JSR MODEM'PUTBYTE.d#: LDA #$41 : JSR MODEM'PUTBYTE ;A.x#: JMP LOCALANSI.#;.#A'LEFT /#: LDA #27 : JSR MODEM'PUTBYTE%/#: LDA #"[" : JSR MODEM'PUTBYTEK/#: LDA #$44 : JSR MODEM'PUTBYTE ;D_/#: JMP LOCALANSIe/#;t/#A'RIGHT /$: LDA #27 : JSR MODEM'PUTBYTE/$: LDA #"[" : JSR MODEM'PUTBYTE/,$: LDA #$43 : JSR MODEM'PUTBYTE ;C/@$: JMP LOCALANSI/J$;0T$A'HOME +0h$: LDA #27 : JSR MODEM'PUTBYTEN0|$: LDA #"[" : JSR MODEM'PUTBYTEt0$: LDA #$48 : JSR MODEM'PUTBYTE ;H0$: JMP LOCALANSI0$;0$A'CLEAR 0$: LDA #27 : JSR MODEM'PUTBYTE0$: LDA #"[" : JSR MODEM'PUTBYTE1$: LDA #"2" : JSR MODEM'PUTBYTE,1$: LDA #$4A : JSR MODEM'PUTBYTE ;J@1%: JMP LOCALANSIF1%;T1%A'RVS 1&%: LDY RVS'FLAG ; ALY SET, SKIP10%: BNE 1:%: RVS'FLAG ; SET FLAG S CODES1D%: LDA #27 : JSR MODEM'PUTBYTE 2N%: LDA #"[" : JSR MODEM'PUTBYTE02X%: LDA #";" : JSR MODEM'PUTBYTES2b%: LDA #"3" : JSR MODEM'PUTBYTEv2l%: LDA #"0" : JSR MODEM'PUTBYTE2v%: LDA #";" : JSR MODEM'PUTBYTE2%: LDA #"4" : JSR MODEM'PUTBYTE2%: LDA LAST' : JSR MODEM'PUTBYTE3%: LDA #$6D : JSR MODEM'PUTBYTE3% JMP LOCALANSI3%;-3%A'RVS$ _3%: LDY RVS'FLAG ; ALY $, SKIPk3%: BEQ q3&;3 &: INC RVS'FLAG ; CLAR FLAG S CODES3&: LDA #27 : JSR MODEM'PUTBYTE3 &: LDA #"[" : JSR MODEM'PUTBYTE44&: LDA #"4" : JSR MODEM'PUTBYTE44>&: LDA #"0" : JSR MODEM'PUTBYTEW4H&: LDA #";" : JSR MODEM'PUTBYTE4\&: LDX #2 ;SET LAST BRITE ILLEGAL UE SO4p&: STX LAST'BRITE ;THAT IT WILL BE RESET4&: JMP SET'A'3 ; OLD 4&;5&A'UPPER LOCALANSI'5&A'LOWER LOCALANSI-5';P5'SET'A'1 ;SET ATTRIB 1]5$': LDX #1c58';s5t'SET'A' 5': STA LAST'5': STX TEMP'BRITE5(;5<(: LDA #27 : JSR MODEM'PUTBYTE5P(: LDA #"[" : JSR MODEM'PUTBYTE5d(;6(: LDA RVS'FLAG ; RVS IS L6(: BNE SET'BACKG ; SKIP SET BACKGROUND R6(;b6(SET'A'3 6): LDX TEMP'BRITE ; BRIGHTNESS HASN'T CHANGED6): CPX LAST'BRITE ; SKIP6,): BEQ SET'G6@);7h): STX LAST'BRITE ;OLD BRIGHTNESS BRIGHTNESSR7|): CPX #1 ; BRITE1 S A "1" FIRST^7): BNE 7): LDA #"1" : JSR MODEM'PUTBYTE7) LDA #";" : JSR MODEM'PUTBYTE7);7)SET'G 7): LDA #"3"7):.BYTE SKIP'WD7*;70*SET'BACKG 8D*: LDA #"4" 8X*;18*: JSR MODEM'PUTBYTE ;S 3 4U8*: LDA LAST' :JSR MODEM'PUTBYTE}8*: LDA #$6D :JSR MODEM'PUTBYTE8*: JMP LOCALANSI8*;86; ANSI OUT 86ANSI'UT 96.BYT $00,$00,$00,$00,$00,000,$00,$07,$00,$00,$00,$00,$0C,$0D,$00,$00Q96.BYT $00," ",000,000,$08,$00,$00,$00,$00,$00,$00,$00,000,000,000,00096.BYT $20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$2A,$2B,$2C,$2D,$2E,$2F96.BYT $30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$3A,$3B,$3C,$3D,$3E,$3F,:6.BYT $40,$61,$62,$63,$64,$65,$66,$67,$68,$69,$6A,$6B,$6C,$6D,$6E,$6Fu:6.BYT $70,$71,$72,$73,$74,$75,$76,$77,$78,$79,$7A,$5B,$5C,$5D,$5E,$5F:6.BYT $C4,$41,$42,$43,$44,$45,$46,$47,$48,$49,$4A,$4B,$4C,$4D,$4E,$4F;7.BYT $50,$51,$52,$53,$54,$55,$56,$57,$58,$59,$5A,$C5,$DD,$B3,$B1,$DEP; 7.BYT $00,000,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$0D,000,$00;7.BYT 000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000;7.BYT $20,$DD,$DC,$DF,$5F,$DD,$B1,$DE,$DC,$DD,$DE,$C3,$DC,$C0,$BF,$5F+<(7.BYT $DA,$C1,$C2,$B4,$DD,$DD,$DE,$DF,$DF,$DC,$D9,$DC,$DF,$D9,$DF,$DEt<27.BYT $C4,$41,$42,$43,$44,$45,$46,$47,$48,$49,$4A,$4B,$4C,$4D,$4E,$4F<<7.BYT $50,$51,$52,$53,$54,$55,$56,$57,$58,$59,$5A,$C5,$DD,$B3,$E3,$DE=F7.BYT $20,$DD,$DC,$DF,$DC,$DD,$B1,$DE,$DC,$DD,$DE,$C3,$DC,$C0,$BF,$DCO=P7.BYT $DA,$C1,$C2,$B4,$DD,$DD,$DE,$DF,$DF,$DC,$D9,$DC,$DF,$D9,$DF,$B1U=x7;=:; ANSI UPPERCASEGFX OUTPUT TABLE =:ANSI'UT2 =:.BYT $00,$00,$00,$00,$00,000,$00,$07,$00,$00,$00,$00,$0C,$0D,$00,$00'>:.BYT $00," ",000,000,$08,$00,$00,$00,$00,$00,$00,$00,000,000,000,000p>:.BYT $20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$2A,$2B,$2C,$2D,$2E,$2F>:.BYT $30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$3A,$3B,$3C,$3D,$3E,$3F?:.BYT $40,$41,$42,$43,$44,$45,$46,$47,$48,$49,$4A,$4B,$4C,$4D,$4E,$4FK?:.BYT $50,$51,$52,$53,$54,$55,$56,$57,$58,$59,$5A,$5B,$5C,$5D,$5E,$5F?:.BYT $C4,$06,$B3,$C4,$C4,$C4,$C4,$B3,$B3,$BF,$C0,$D9,$C0,$5C,$2F,$DA?:.BYT $BF,$F9,$5F,$03,$DD,$DA,$58,$F8,$05,$B3,$04,$C5,$DD,$B3,$E3,$DE&@:.BYT $00,000,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$0D,000,$00o@:.BYT 000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000@;.BYT $20,$DD,$DC,$DF,$DC,$DD,$B1,$DE,$DC,$DD,$DE,$C3,$DC,$C0,$BF,$DCA;.BYT $DA,$C1,$C2,$B4,$DD,$DD,$DE,$DF,$DF,$DC,$FB,$DC,$DF,$D9,$DF,$DEJA;.BYT $C4,$06,$B3,$C4,$C4,$C4,$C4,$B3,$B3,$BF,$C0,$D9,$C0,$5C,$2F,$DAA$;.BYT $BF,$F9,$5F,$03,$DD,$DA,$58,$F8,$05,$B3,$04,$C5,$DD,$B3,$E3,$DEA.;.BYT $20,$DD,$DC,$DF,$DC,$DD,$B1,$DE,$DC,$DD,$DE,$C3,$DC,$C0,$BF,$DC%B8;.BYT $DA,$C1,$C2,$B4,$DD,$DD,$DE,$DF,$DF,$DC,$D9,$DC,$DF,$D9,$DF,$B1+B`;;QB>; ANSI JUMPTABLE LOWBYTE eB>ANSI'JUMP'LO B>.BYT 0,0,0,0,0,A'WHITE,0,0,0,0,0,0,0,0,A'LOWER,0B>.BYT 0,0,A'RVS,A'HOME,0,0,0,0,0,0,0,0,A'RED,A'RIGHT,A'GREEN,A'BLUEB>.BUF 16B>.BUF 16C>.BUF 16C>.BUF 16 C>.BUF 16,C>.BUF 16eC>.BYT 0,A'DKPURPLE,0,0,0,0,0,0,0,0,0,0,0,0,A'UPPER,0C>.BYT A'BLACK,A'UP,A'RVS$,A'CLEAR,A'INSERT,A'BROWN,A'LTRED,A'DKCYAN,A'DKGREY,A'LTGREEN,A'LTBLUE,A'LTGREY,A'LTPURPLE,A'LEFT,A'YELLOW,A'LTCYANCH?;$DhB; ANSI JUMPTABLE HIGHBYTE 8DmBANSI'JUMP'HI nDrB.BYT 0,0,0,0,0,A'WHITE,0,0,0,0,0,0,0,0,A'LOWER,0D|B.BYT 0,0,A'RVS,A'HOME,0,0,0,0,0,0,0,0,A'RED,A'RIGHT,A'GREEN,A'BLUEDB.BUF 16DB.BUF 16DB.BUF 16DB.BUF 16DB.BUF 16DB.BUF 168EB.BYT 0,A'DKPURPLE,0,0,0,0,0,0,0,0,0,0,0,0,A'UPPER,0EB.BYT A'BLACK,A'UP,A'RVS$,A'CLEAR,A'INSERT,A'BROWN,A'LTRED,A'DKCYAN,A'DKGREY,A'LTGREEN,A'LTBLUE,A'LTGREY,A'LTPURPLE,A'LEFT,A'YELLOW,A'LTCYANE0C;EPF; BOARD IN EUFANSI'KB'TIN EFZF.BYT $00,$01,$00,$03,$04,$05,$00,$07,$14,$00,$00,$00,$00,$0D,$00,$00FdF.BYT $00,$11,$12,$00,$14,$00,$00,$17,$00,$00,$1A,$00,$1C,$1D,$1E,$1FFnF.BYT $20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$2A,$2B,$2C,$2D,$2E,$2F GxF.BYT $30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$3A,$3B,$3C,$3D,$3E,$3FiGF.BYT $40,$41,$42,$43,$44,$45,$46,$47,$48,$49,$4A,$4B,$4C,$4D,$4E,$4FGF.BYT $50,$51,$52,$53,$54,$55,$56,$57,$58,$59,$5A,$5B,$5C,$5D,$5E,$5FGF.BYT $60,$C1,$C2,$C3,$C4,$C5,$C6,$C7,$C8,$C9,$CA,$CB,$CC,$CD,$CE,$CFDHF.BYT $D0,$D1,$D2,$D3,$D4,$D5,$D6,$D7,$D8,$D9,$DA,$7B,$7C,$7D,$7E,$7FHF.BYT $00,$81,$00,$00,"?",$00,$00,$00,$00,$00,$00,$00,$00,$8D,$00,$00HF.BYT $90,$91,$92,$93,$94,$95,$96,$97,$98,$99,$9A,$9B,$9C,$9D,$9E,$9FIF.BYT $20,$A1,$A2,$A3,$A4,$A5,$A6,$A7,$A8,$A9,$AA,$AB,$AC,$AD,$AE,$AFhIF.BYT $B0,$B1,$B2,$B3,$B4,$B5,$B6,$B7,$B8,$B9,$BA,$BB,$BC,$BD,$BE,$BFIF.BYT $60,$C1,$C2,$C3,$C4,$C5,$C6,$C7,$C8,$C9,$CA,$CB,$CC,$CD,$CE,$CFIF.BYT $D0,$D1,$D2,$D3,$D4,$D5,$D6,$D7,$D8,$D9,$DA,$DB,$DC,$DD,$DE,$DFCJF.BYT $A0,$A1,$A2,$A3,$A4,$A5,$A6,$A7,$A8,$A9,$AA,$AB,$AC,$AD,$AE,$AFJF.BYT $B0,$B1,$B2,$B3,$B4,$B5,$B6,$B7,$B8,$B9,$BA,$BB,$BC,$BD,$BE,$7EJG;J8J; ANSI IN J=JANSI'TIN KBJ.BYT $00,$01,$00,$03,$04,$00,$00,$07,$14,$00,$00,$00,$00,$0D,$00,$00KKLJ.BYT $10,$11,$12,$13,$14,$00,$00,$17,$00,$00,$1A,$00,$00,$1D,$00,$00KVJ.BYT $20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$2A,$2B,$2C,$2D,$2E,$2FK`J.BYT $30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$3A,$3B,$3C,$3D,$3E,$3F&LjJ.BYT $40,$C1,$C2,$C3,$C4,$C5,$C6,$C7,$C8,$C9,$CA,$CB,$CC,$CD,$CE,$CFoLtJ.BYT $D0,$D1,$D2,$D3,$D4,$D5,$D6,$D7,$D8,$D9,$DA,$5B,$5C,$5D,$5E,""L~J.BYT "'",$41,$42,$43,$44,$45,$46,$47,$48,$49,$4A,$4B,$4C,$4D,$4E,$4FMJ.BYT $50,$51,$52,$53,$54,$55,$56,$57,$58,$59,$5A,$3F,$3F,$3F,$3F,$14JMJ.BYT "","U","E","A","A","A","A","C","E","E","E","I","I","I","",""MJ.BYT $90,$91,$92,$93,$94,$95,$96,$97,$98,$99,$9A,$9B,$9C,$9D,$9E,$9FMJ.BYT "A","I","O","U","N","","A","O","?","","","/","/","I","<",">"%NJ.BYT "","","","","","","","","","","","","","","",""nNJ.BYT "","","","","","","","","","","","","","","",""NJ.BYT "","","","","","","","","","","","","","","",""OJ.BYT "A","","",$7E,"","O","U","R","0","0","","&","8","O","",""IOJ.BYT "=","+",">","<","F","J","/","=","O","O","O","","N","2","",$00OOK;rO,L; ANSI ESC COMM IN O6LANSI'ESC'TIN O@L. "" ;UP WN RIGHT LEFTOTL;O0uIG'CHR BRKODuRVS'FLAG BRKOXuLAST' BRKOluLAST'BRITE BRKPuTEMP'BRITE BRK'PuESC'SEQUENCE BRKhP; "-ANSI" : "ANSI" "-ANSI" : "@ANSI" ; OP TERM;?PC24 JSR $E6C2 ;TERM ; BITSSP: JSR CSR80gPP: LDA ENABLzZP: CMP #$80dP: BEQ C24nP: CMP #$92xP: BEQ C24P: JSR CHR JSR C4P ; ACTER&R: LDA A'+R: BEQ 40R: LDX FROM ;0MODEM, 0BOARDqDR: BEQ ; MODEM, SKIP SCREEN OUTPUTIR: TAYKR: JSR TRANS'BOARD ; FROM BOARD, S MODEMNR: JSR MODEM'PUTBYTEXR: LDX ECHOMODE ; BOARD ECHO $2lR: BEQ ; SKIP OUTPUT8R;nR LDA #1 : STA C31 ;SET LOCAL OUTPUT LYtR;R: JSR ERPRET' ;OUTPUT SCREENR: C31 ;RESET BACK MODEM OUTPUT S;4S LDA $91 ; FLAG3HS: CMP #$7F ;WAS PRESSEDC\S: BNE QS: RTS; "-TERM" : "TERM" "-TERM" : "@TERM"1 ** BRANCHING BLOCK FOR BANK 1 ROUTINES **; 4000I.G $0400T(.DVO 9l2.OBJ "@0:BANK1.OBJ"w<.DVI 9(#.LST "COMMON.ST"2#.LST "VARIABLES.ST"x#.P#;'Z0400 JMP C40 ;PREVAR KILLER$'Z0403 JMP C41 ;EXECUTE VAR KILLJ3'Z0406 JMP C42'E ;RESSI EUAR (IN "MCI CMDS")v8'Z0409 JMP C47 ;COUNT MESSAGESB'Z040C JMP PANEL'SWITCH ;SWITCH VIEW PANEL SCREENL'Z040F JMP MCI'EXECUTE ;EXECUTE MCI COMM IN .A, # IN .Y!V'Z0412 JMP 'TX2VAR ; ENTS OF TX$ CURRENT VARW`'Z0415 JMP FINDVAR ;FIND ADDRESS OF VARIABLEj'Z0418 JMP FINDARRAY ;FIND ADDRESS OF ARRAYt'Z041B JMP C29 ;CVERT CASE OF A$~'Z041E JMP C46 ;SIM40C'Z0421 JMP COMP'STRINGS ;COMPARE FIAMES IN A$ TX$F'Z0424 JMP C50 ;CLEAR STRING ARRAYp'Z0427 JMP C52 ;CLEAR STACKSv*;*.DVI 8+.FILE "KILLER"+.FILE "FINDVAR"*+.FILE "CALC TI"4+.FILE "MCI CMDS">+.FILE "COPY TX2VAR" H+.FILE "CONVERT CASE" R+.FILE "COUNT MSGS", f+.FILE "SIM40C"C z+.FILE "COMPAREDIR"U +.FILE "PANEL"l +.FILE "CLR STACKS"s `. ; "-BANK1" : "BANK1" "-BANK1" : "@BANK1" 4000+ ; 0 9.G $2500K(.DVO 9:.DVI 9c2.OBJ "@0:BANK0.OBJ"i<;~d.LST "COMMON.ST"x.LST "MODEM.ST".LST "VARIABLES.ST".LST "TRANSLATION.ST".LST "C-ARRAY.ST".P;'Z2500 JMP ERPRET'ACC ;OUTPUT IN ACCJ'Z2503 JMP PANEL'SWITCH ;SWITCH VIEW PANEL $|`'Z2506 JMP C4 ; ACTER IN UPPER CASE LYe'Z2509 JMP C4P ; ACTER UPPERLOWER CASEj'Z250C JMP C5 ; FROM DISK TX$ o'Z250F JMP C5P ; FROM DISK TX$, ADD EOL ;t'Z2512 JMP CC8 ; FROM BOARDMODEM TX$~'Z2515 JMP C8P ; FROM BMODEM TX$ WITH RESTRICTIS IN .A'Z2518 JMP ' ; PRESS O A''Z251B JMP PRIMM'BBS ;PRIMM THAT USES ERPRET'ACC'Z251E JMP STRINUT ;OUTPUT STRING POED BY SPZ'Z2521 JMP SET'CURS ;SET CURS LINE .Y, COLUMN .X(Z2524 JMP ERPRET' ;OUTPUT IN A' (Z2527 JMP N'MCI'CHROUT ;OUTPUT TEXT IN A'(Z252A JMP CHROUT'BBS ;OUTPUT ACC SCREEN*;.; ..DVI 8 ..FILE "MAIN IO"( ..FILE "WEDGES"@ /.FILE "INTERPRETER"S 0/.FILE "CHROUT"h D/.FILE "ALT CMDS" X/.FILE "SET CURSOR" 2; KMODEMY KZCA67 LDA ENABL K: #1 K: BNE MODEMY K: RTS ,L; ;*MOD48 ;VDC A$*: LDX #24*: BNE MOD'*;*MOD49 ;LTK FILE SIZE*: LDX #39*: BNE MOD'*;'+MOD51 ;LTK DIRECT ACCESS FILE5+$: LDX #42E+.;;BNE MOD'K+8;X+LMOD' k+V: JMP 'MODUALq+`;w+j;+PCALL40 ;PREPARE KILLER+Z: LDY #0+d: BEQ 'CALL+n;+CALL41 ;EXECUTE KILLER+: LDY #3,: BNE 'CALL ,;*,CALL47 ;COUNT MSGS7,: LDY #9H,: BNE 'CALLN,;v,CALL29 ;CVERT CASE OF A$,": LDY #$1B,,: BNE 'CALL,6;,JCALL46 ;SIM40C,T: LDY #$1E,^: BNE 'CALL,h;-|CALL13 ;COMPARE STRINGS A$ & TX$-: LDY #$210-: BNE 'CALL6-;`-CALL50 ;CLEAR STRING ARRAYo-: LDY #$24-: BNE 'CALL-;-CALL52 ;CLEAR STACKS-: LDY #$27-;;BNE 'CALL-;-'CALL -: LDX #$04 ;HIGH BYTE .: JMP JMP1.7;8.8PANEL'SWITCH ;CALL IN  1R.L: LDX #$04 : LDY #$0Cc.`: JMP JSR1i._;.`;::::::::::::::::.j.SST "@0:BANK0.ST".;::::::::::::::::.;...; "-BANK0" : "BANK0" "-BANK0" : "@BANK0"& ; STATS VIEW PANEL ,;OdPANEL'ENGAGED BRK ;0$, 1i;;PANEL'REBLANK .BYT 100 ; SCREEN BLANK (DURING EMAIL) NEEDEDk;nPANEL'TEXT $07D0 ;000007CF 25 LINES BBS TEXT x;ANEL'ATTRIB $17D0 ;07D00FEF 26 LINES PANEL TEXTC; ;100017CF 25 LINES BBS ATTRIB}; ;17D01FEF 26 LINES PANEL ATTRIB;PVARS' PVARS2PVARS'PNT PVARS3PVARS'NDX PVARS5;RESERVED PVARS6;-,PANEL'VARPNTRS $21F0 ; S LV,LG$,PU,PD,D%(0),ST$(0) IN  136;GPANEL'SWITCH t: JSR 1ROM ;RAM #1 WITH ROM: TYA:PHA: TXA:PHA ;EMBER .X AND .Y: LDA PANEL'ENGAGED: BEQ SHOW'PANEL ;PANEL WASN'T ALY SHOWING, SKIP SHOW IT ;/.;;LDX #35 : LDA PANEL'REBLANKn8;;JSR VDC ; OLD SCREEN  SIBLE BLANKINGtB;L: LDA #$80:STA PVARS ;, SCROLL SCREEN BACK BBS TEXT`: LDA #$07:STA PVARS1j;t: LDY #25y SEI) ~: LDX #13:LDA PVARS :JSR VDC ;LOWBYTE DIS ADRSe : DEX :LDA PVARS1:JSR VDC ;HIGHBYTE DIS ADRS : LDX #20:A #$10 :JSR VDC ;HIGHBYTE ATTRIB ADRS : INX :LDA PVARS :JSR VDC ;LOWBYTE ATTRIB ADRS : CLI : SEC!: LDA PVARS :SBC #80 :STA PVARS?!: LDA PVARS1 :SBC #0 :STA PVARS1U!: JSR PANEL'DELAYe!: DEY:BNE k!;!: PANEL'ENGAGED!: LDA 'NOW!: CMP #8:BEQ !: JSR C46'40!  JMP FINISHED'PANEL!;!SHOW'PANEL ": INC PANEL'ENGAGED": LDA 'NOW$": CMP #8:BEQ 6": JSR C46'80<",;r"@ LDA #$50:STA PVARS ;SCROLL SCREEN PANEL"T: LDA #$00:STA PVARS1"^;"h: LDY #23"m SEI"r: LDX #13:LDA PVARS :JSR VDC ;LOWBYTE DIS ADRS"#w: DEX :LDA PVARS1:JSR VDC ;HIGHBYTE DIS ADRS^#|: LDX #20:A #$10 :JSR VDC ;HIGHBYTE ATTRIB ADRS#: INX :LDA PVARS :JSR VDC ;LOWBYTE ATTRIB ADRS#: CLI#: CLC#: LDA PVARS :ADC #80 :STA PVARS#: LDA PVARS1 :ADC #0 :STA PVARS1$: JSR PANEL'DELAY"$: DEY:BNE ($;V$;;LDX #35 : JSR VDC ; OLD n$;;STA PANEL'REBLANK|$0;;CMP #90$D;;BCS UPDATE'PANEL$l;;LDX #35 : LDA #100 ;SET  FULL SCREEN$;;JSR VDC$;;$UPDATE'PANEL %: SEI%. 'LITEE%: LDA PANEL'VARPNTRS ;ADDRESS OF 'LV'`%: LDY PANEL'VARPNTRS1%: JSR VAR2FAC ; UE FROM VAR MEMY FAC%: JSR FAC2II%: JSR 1ROM% : LDA #80613PANEL'TEXT ;SCREEN LOCATI PUT 'LV'&: LDY #80613PANEL'TEXT7& : JSR SET'ADDRESS'YAK&4: LDA FBUFFER1&>: JSR VDC2 ;WRITE .A TO ADDRESS IN VDC&H;&; PUPD &: LDA PANEL'VARPNTRS4 ;ADDRESS OF 'PU'&: LDY PANEL'VARPNTRS5+': JSR VAR2FAC ; UE OF PU FROM VAR FAC]': JSR $AF6C ;MOVE FAC ARG': LDA PANEL'VARPNTRS6 ;ADDRESS OF 'PD'': LDY PANEL'VARPNTRS7': JSR VAR2FAC ; UE OF PD FROM VAR FAC';*(: JSR $AF15 ;FACARGFAC (FACPUPD)I( : LDA #80713PANEL'TEXTY( : STA PVARSx( : LDA #80713PANEL'TEXT($ : STA PVARS1(. : JSR OUTPUTFAC(8 ;( ; LG$ ( : LDA PANEL'VARPNTRS2 : STA PVARS ; STRING IN  1) : LDA PANEL'VARPNTRS3 : STA PVARS1*) : STA 17) : LDY #2K) LDA (PVARS),Y) : STA PVARS',Y ;MOVE O PVARS' & PVARS'PNT) : DEY:BPL ) ;) : JSR 1ROM)( : LDA #802277PANEL'TEXT;SCRN LOCATI 'LG$' (22,77))2 : STA PVARS*< : LDA #802277PANEL'TEXT.*F : STA PVARS14*P ;F*Z : LDY PVARS'V*n : BEQ REST\*x ;* JSR SET'ADDRESS ;SET SCREEN ADDRESS* : DEY* : JSR LDA'PVARS'PNT ; FROM LG$* : JSR II2SCRN ;CVERT SCRN CODE%+ : JSR VDC2 ;WRITE SCREEN++" ;o+, : PVARS:LDA PVARS ; SCRN LOCATI (WT WRAP HIGH BYTE)+6 : CMP #$B1 ;SKIP ALL NE, HIT 2ND COLUMN+@ : BEQ +T : CPY #0:BNE ; HIT NING OF LG$.,h REST ; FINISHED LG$, SPACE OUT THE REST D,r : JSR SET'ADDRESSS,| : LDA #" "d, : JSR VDC2|, : PVARS:LDA PVARS, : CMP #$B1, : BNE REST, NOP, ;, ; D%() ,& : CLC-0 : LDA ARRAYS'START : ADC PANEL'VARPNTRS8 : STA PVARS'PNTE-: : LDA ARRAYS'START1: ADC PANEL'VARPNTRS9 : STA PVARS'PNT1K-D ;o- ; D%(0) ERIENCE LEVEL- : JSR 1ROM- : LDY #80638PANEL'TEXT : LDA #80638PANEL'TEXT- : JSR SET'ADDRESS'YA- ;. : LDY #1 ;LOCATI OF EGER LOWBYTE D%(0)$. : JSR OUTPUT*. ;O.H ; D%(12) WNS THIS CALL.R : LDY #80738PANEL'TEXT : LDA #80738PANEL'TEXT.\ : JSR SET'ADDRESS'YA.z : LDY #25. : JSR OUTPUT. ;.; D%(43) FILES FLAGGED%/: LDY #80763PANEL'TEXT : LDA #80763PANEL'TEXT>/$: JSR SET'ADDRESS'YAL/.: LDY #87y/8: JSR LDA'PVARS'PNT ;LDA (PVARS'PNT),Y/B: CLC:ADC #1 ;1 VARIABLE/L: JSR OUTPUT2/`;/t; ST%() /~: CLC0: LDA ARRAYS'START : ADC PANEL'VARPNTRS10 : STA PVARS'PNTX0: LDA ARRAYS'START1: ADC PANEL'VARPNTRS11 : STA PVARS'PNT1^0;v0; ST%(3) UL0: LDY #801313PANEL'TEXT : LDA #801313PANEL'TEXT0: JSR SET'ADDRESS'YA0: LDY #70: JSR OUTPUT0(;1<; ST%(4) DLD1F: LDY #801332PANEL'TEXT : LDA #801332PANEL'TEXT]1P: JSR SET'ADDRESS'YAj1Z: LDY #9|1x: JSR OUTPUT1;1; ST%(5) T1: LDY #801213PANEL'TEXT : LDA #801213PANEL'TEXT1: JSR SET'ADDRESS'YA1: LDY #112: JSR OUTPUT2;)2; PRG NAMES T2: LDA #80183PANEL'TEXT : STA PVARS2: LDA #80183PANEL'TEXT : STA PVARS12: JSR SET'ADDRESS2;2: LDY #02: JSR LDA'FIAME ;OVERLAY2: INY : JSR OUTPUTFIAME2;3: LDY #$13,3: JSR LDA'FIAME ;MODULE #1A3 : CMP #0 : BEQ a3: INY : JSR OUTPUTFIAMEg3 ;v3*: LDY #$2634: JSR LDA'FIAME ;MODULE #23>: CMP #0 : BEQ 3H: INY : JSR OUTPUTFIAME3R;3\: LDY #$394f: JSR LDA'FIAME ;MODULE #3%4p: CMP #0 : BEQ E4z: INY : JSR OUTPUTFIAMEK4;e4 LDA #" ":JSR VDC2{4: JSR INC'ADDRESS4: LDA PVARS:CMP #$BC4: BNE 4;4; D #1 CLOCK CURRENT TIME4: JSR 1ROM5: LDY #801045PANEL'TEXT#5: LDA #801045PANEL'TEXT<5: JSR SET'ADDRESS'YAg5: LDA $DC0B : PHA ;D #1 HOUR5: #127 : TAY ;STRIP AMPM FLAG $5: CMP #10 : BCC ; HOUR 95: JSR OUTPUT'BCD'BYTE ; OUTPUT BOTH DIGITS6: JMP =6 JSR OUTPUT'BCD'BYTE2 ; OUTPUT LY LOW DIGITW6 LDA @":":JSR VDC26: LDA $DC0A : TAY ;D #1 MINUTE6: JSR OUTPUT'BCD'BYTE6: LDA #" ":JSR VDC26: PLA6: #%100000006 : BNE 6: LDA @"A"7:.BYT SKIP'WD7( LDA @"P"#72: JSR VDC2=7<: LDA @"M":JSR VDC2W7F: LDA @" ":JSR VDC2]7P;{7; TIME USED TI36007: JSR CALC'TI7: LDY #80863PANEL'TEXT : LDA #80863PANEL'TEXT7: JSR SET'ADDRESS'YA 8: LDA PVARS3 ;;LDA PVARS2 ;LOW BYTE LY. CHOPS $ AT 25538: JSR OUTPUT298;K8.E ;'LITEQ8;g8FINISHED'PANEL q8: CLI8: PLA : TAX8: PLA : TAY8:RTS8N;8XOUTPUT ;OUTPUT BINARY EGER POED BY (PVARS'PNT),Y8l: JSR LDA'PVARS'PNT9;#9OUTPUT2 ; ALY IN .A09: LDY #0:9: SECg9 SBC #100 ;CALCULATE # OF 100'S9 : BCC ;FOUND NUMBER OF 100'S!9: INY ;OTHERWISE, KEEP COUTING9 : BNE 9*;:4 ADC #100 ;ADD 100 BACK .A BACK ITIVE #;:H: STY FBUFFER ;SRE # OF 100SH:\: LDY #0R:f: SEC~:p SBC #10 ;CALCULATE # OF 10'S:z: BCC ;FOUND NUMBER OF 10'S!:: INY ;, KEEP COUTING:: BNE :;!; ADC #10 ;ADD 10 BACK .A BACK ITIVE #5;: STY FBUFFER1b;: STA FBUFFER2 ;WE HAVE THE 1'S HEREh;;;;;JSR SET'ADDRESS ;ALY SET BEE ENTRY;: LDA FBUFFER ; 100'S IS ZERO, SKIP IT;: BEQ <: A #48 ;CVERT AN II DIGIT<$: JSR VDC2 ; IT@<.: LDA FBUFFER1 ; 10S DIGITj<8: BPL ; BRA OUTPUT ITpJ;;STA 1B ;ALY THERE IN LY CALL HERE >T: JSR FAC2II&>Y;k>^OUTPUTBUFF ;OUTPUT ENTS IN FBUFFER, SCRN ADDRS IN PVARS}>h: JSR 1ROM>r: JSR SET'ADDRESS>|: LDY #1> LDA FBUFFER,Y>: BEQ >: CMP #".">: BEQ >: JSR VDC2> : INY? : CPY #8? : BNE ?& : RTS(?l LDA #" "9? : JMP VDC2?? ;z? OUTPUTFIAME ; OUTPUT .A BYTES FROM FIAME'TABLE,Y? : STA PVARS'? : CLC:TYA:ADC PVARS':STA PVARS' ;CALC INDEX? ;@ ! JSR LDA'FIAME ;LDA FIAME'TABLE,Y IN RAM  0@!: JSR II2SCRNF@!: JSR VDC2 ;SRE SCREENv@ !: JSR INC'ADDRESS ;INCENT COUNTER@4!: INY@>!: CPY PVARS':BNE @H!;@!: LDA @",":JSR VDC2@!: JSR INC'ADDRESS@!: LDA @" ":JSR VDC2@!: JMP INC'ADDRESSA!;*A!OUTPUT'BCD'BYTE ;IN .Y4A": TYAJA": LSR:LSR:LSR:LSRXA$": A @"0"iA.": JSR VDC2A8"OUTPUT'BCD'BYTE2 ;OUTPUTS LY LOWER DIGIT HOURAL": TYAAV": #15 : A @"0"A`": JMP VDC2At";A(#SET'ADDRESS &B2#: LDX #18:LDA PVARS1:JSR VDC ;ADDRESS HIGHWB<#: INX :LDA PVARS :JMP VDC ;ADDRESS LOW]BF#;sB#SET'ADDRESS'YA B#: LDX #18: JSR VDC ;ADDRESS HIGH IN .AB#: INX :TYA:JMP VDC ;ADDRESS LOW IN .YB#;B#INC'ADDRESS C#: INC PVARS :BEQ :RTSC$ INC PVARS1:RTS#C$;3CT$II2SCRN NC^$: CMP #32 : BCC CVRTZeCr$: CMP #64 : BCS pC$: RTSC$ CMP #96 : BCS C$: #63 : RTSC$ CMP #128: BCS C$: #223: RTSC$ CMP #160: BCC CVRTZC$: #%01111111D$: A #%01000000D%: RTS&D%CVRTZ LDA #" "4D&%: RTS:D0%;dD'PANEL'DELAY ; PAUSE DRIVENrD$': LDX #20D8' LDA #1DL' ASL :NOP: BNE D`': INX : BNE Dt': RTSD';D N1ROM D*N: LDA #RAM1ROMD4N: STA DHN: RTSD\N; ELOLDA'PVARS'PNT E`O: STX 14EtO: LDA (PVARS'PNT),YGEO: LDX #RAM1ROMUEO: STX _EO: RTSeEO;E; "-PANEL" : "PANEL" "-PANEL" : "@PANEL"  40005; II TRANSLATI ROUTINES ;;I2.G $3800[7.DVI 9:.DVO 9s<.OBJ "@0:MLC.ASCII"yF;d.LST "VARIABLES.ST"x.LST "MODEM.ST".LST "C-ARRAY.ST".P;TRANS'INIT JMP TRANS'INIT2 ;INITIALIZE II MODE;TRANS'UN JMP TRANS'INIT2 ;RESET II MODEpTRANS'BOARD JMP TRANS'BOARD2 ; FROM BOARDTRANS' JMP TRANS'2 ;TRANSLATE FROM MODEM BBSTRANS'OUTPUT JMP TRANS'OUTPUT2 ;TRANSLATE FROM BBS MODEM2TRANS'EOL JMP TRANS'EOL2 ;S A LINEFEED WITH EOLyTRANS'RECEIVED JMP TRANS'RECEIVED2 ;USED XFER PROCOL TRANSLATI$TRANS'S JMP TRANS'S2 ; "B;LTRANS'NAME V: JSR PRIMM'BBS'`:. "" : BRKt: RTS;TRANS'INIT2 : JSR PRIMM'BBS'1:.BYT 26,13,10,0>: LDA #0\: STA C22 ; CG{: STA ANSIMODE ; ANSI : RTS*;4TRANS'BOARD2 ; ACTER ENTERED FROM OP'S BOARD>: LDX II'UT,YH: LDA II'TIN,Xp: RTSz;. TRANS'2 ;TRANSLATE FROM MODEM BBSB : LDA II'TIN,YL  : RTSR & ; TRANS'OUTPUT2 ;TRANSLATE FROM BBS MODEM TRANS'S2 : LDA II'UT,Y : RTS h; TRANS'RECEIVED2 ;E4E TRANSLATI : LDA II'TIN,Y !: RTS!;?!pTRANS'EOL2 ;S LINEFEED AFTER EOLL!: LDX #5\!: JSR CKOUTo!: LDA #10 ;LF!: JSR BSOUT'!: JMP CH'!;!'; II IN !'II'TIN "'.BYT $00,$00,$00,$00,$00,$00,$00,$07,$14,$00,$00,$00,147,$0D,$00,$00L"$'.BYT $10,$00,$12,$13,$14,$00,$00,$17,$00,$00,$00,"",$00,$00,$00,$00".'.BYT $20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$2A,$2B,$2C,$2D,$2E,$2F"8'.BYT $30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$3A,$3B,$3C,$3D,$3E,$3F'#B'.BYT $40,$C1,$C2,$C3,$C4,$C5,$C6,$C7,$C8,$C9,$CA,$CB,$CC,$CD,$CE,$CFp#L'.BYT $D0,$D1,$D2,$D3,$D4,$D5,$D6,$D7,$D8,$D9,$DA,$5B,$5C,$5D,$5E,""#V'.BYT "'",$41,$42,$43,$44,$45,$46,$47,$48,$49,$4A,$4B,$4C,$4D,$4E,$4F$`'.BYT $50,$51,$52,$53,$54,$55,$56,$57,$58,$59,$5A,$3F,$3F,$3F,$3F,$14K$j'.BYT $00,$00,$00,$00,$00,$00,$00,$00,$14,$00,$00,$00,$00,$0D,$00,$00$t'.BYT $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00$~'.BYT $20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$2A,$2B,$2C,$2D,$2E,$2F&%'.BYT $30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$3A,$3B,$3C,$3D,$3E,$3Fo%'.BYT $40,$C1,$C2,$C3,$C4,$C5,$C6,$C7,$C8,$C9,$CA,$CB,$CC,$CD,$CE,$CF%'.BYT $D0,$D1,$D2,$D3,$D4,$D5,$D6,$D7,$D8,$D9,$DA,$5B,$5C,$5D,$5E,$5F&'.BYT $3F,$41,$42,$43,$44,$45,$46,$47,$48,$49,$4A,$4B,$4C,$4D,$4E,$4FJ&'.BYT $50,$51,$52,$53,$54,$55,$56,$57,$58,$59,$5A,$3F,$3F,$3F,$3F,$14a&*; II OUT p&*II'UT &+.BYT $00,$00,$00,$00,$00,$00,$00,$07,$00,$00,$0A,$00,$0C,$0D,$00,$00' +.BYT $00,$00,$00,$00,$08,$00,$00,$00,$00,$00,$00,$00,$00,$20,$00,$00K'+.BYT $20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$2A,$2B,$2C,$2D,$2E,$2F' +.BYT $30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$3A,$3B,$3C,$3D,$3E,$3F'*+.BYT $40,$61,$62,$63,$64,$65,$66,$67,$68,$69,$6A,$6B,$6C,$6D,$6E,$6F&(4+.BYT $70,$71,$72,$73,$74,$75,$76,$77,$78,$79,$7A,$5B,$5C,$5D,$5E,$5Fo(>+.BYT "-",$41,$42,$43,$44,$45,$46,$47,$48,$49,$4A,$4B,$4C,$4D,$4E,$4F(H+.BYT $50,$51,$52,$53,$54,$55,$56,$57,$58,$59,$5A,$00,$00,$00,$00,$00)R+.BYT $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$0D,$00,$00J)\+.BYT $00,$00,$00,$0D,$00,$00,$00,$00,$00,$00,$00,$00,$00,$08,$00,$00)f+.BYT $20,$00,$00,$00,$5F,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00)p+.BYT $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,"?",$00,$00,$00,$00,$00%*z+.BYT "-",$41,$42,$43,$44,$45,$46,$47,$48,$49,$4A,$4B,$4C,$4D,$4E,$4Fn*+.BYT $50,$51,$52,$53,$54,$55,$56,$57,$58,$59,$5A,$00,$00,$00,$00,$00*+.BYT $20,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00++.BYT $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00@+; "-ASCII" : "ASCII""-ASCII" : "@ASCII"  4000.G $1A00$d.DVI 9<n.LST "VARIABLES.ST"Rx.LST "C-ARRAY.ST"Z.Pe.DVO 9}.OBJ "@0:MODEM.OBJ"';'MODEM'PUTBYTE PHA': JMP OUTA*MODEM'INIT JMP INITIALIZE+MODEM'PED BRK ;0, 0 YES USED USER PTG+FLOW'PED BRK ;0, 0 YES " "g +SET'BAUD JMP DSET'BAUD+CHECK'CARRIER JMP CHK'CARRIER+PRO'CARRIER JMP INV'CARRIER +'ING JMP CHECK'BUFF'IN%+CLEAR'RBUFFER JMP CLEAR'RBUFF *+MODEM'BYTE JMP 'RS232'CHR&4+'MODEM JMP MODEMYE9+RESTART'MODEM JMP MODEMYKQ+;VR+.DVO 9mS+.SST "@0:MODEM.ST"sT+;\+CHECK'BUFF'IN ;BNE 'ING BEQ NO'f+: LDA RIDBEp+: CMP RIDBS+: RTS+;+CHK'CARRIER ;BNE CARRIER'DETECTED BEQ NO'CARRIER!+: LDA $DD01-+: #16;+: CMP C12E+: RTSK+;$,INV'CARRIER ;CHECK CARRIER USED IN XFER PROCALS.,: LDA $DD01 ;BEQ CARRIER'DETECTED BNE NO'CARRIER8,: #16B,: CMP 989 ;INVERSE CARRIERL,: RTS V,; ,CLEAR'RBUFF > ,: LDA #0:STA RIDBS:STA RIDBE:STA RIDBSH ,: RTSN ,; NMODEMY ;SAME CODE FROM 0 FILE 4N: LDA ENABL ;USE 'MODEM HN: #1 \N: BNE MODEMY pN: STA MODEM'PED ; PED!zN: STA FLOW'PED ;FLOWING!N: RTS!!N;.!]'IN \!]: LDA $D4 ;CHECK 'LF' PRESSEDn!]: CMP #75!]: BNE K'IN!];; LDA $2403 ;LY RAMS IS ACTIVE!];; CMP #$52!];; BEQ K'IN!]: JSR PANEL'SWITCH'"^K'IN "^: JMP $EEEB"$^;9"P_'RS232'CHR ; PUNTERI"Z_: LDY RIDBS["d_: LDA $0C00,Yk"n_: INC RIDBSu"x_: RTS{"_;"耵RP ; LIKE C(0) ": PLA": STA $87 : STX $88 : STY $89": JSR ERPRET'ACC'!#: LDA #1 ;OUTPUT DEVICE IS #1 AGAIN3#: STA $9AY#~: LDA $87 : LDX $88 : LDY $89g#: CLCt#: RTSz#;#ЄPRNTA PHA ;WEDGED IN CHROUT ROUTINE#ڄ: LDA $9A ;OUTPUT DEVICE#܄: CMP #1$߄: BEQ RP ; 1, LIKE C(0) C(1)/$: CMP #2 ; MODEMW$: BEQ OUTA ; OUTPUT MODEM|$ PLA ; NMAL STUFF$K'PRNTA $ : JMP $FFFF$ OUTA LDA C31 ;CHROUT$*: BEQ $4: PLA : CLC$>: RTS$H PLA%RK28F2 STA $9E!%\: STY $975%fK28FE LDY RODBEK%p: STA $0D00,YY%z: INYm%: CPY RODBS%: BEQ K2953%: STY RODBE%K290C LDA ENABL%: #1%: BNE K294D%: STA $B5 ; BIT S%ʅ: LDA #9)&ԅ: STA $B4 ;COUNT OF BITS S=&ޅ: LDY RODBSS&: LDA $0D00,Yz&: STA $B6 ;BYTE BEING SENT&: INC RODBS&: LDA $0A16 ;BAUD RATE TIMING&: STA $DD04&: LDA $0A17 ;BAUD RATE TIMING'$: STA $DD05'.: LDA #$11-'8: STA $DD0E@'B: LDA #$81T'L: STA $DD0Db'V: PHPp'`: SEI'j: LDY #$7F't: STY $DD0D'~: STY $DD0D': A ENABL': STA ENABL': STA $DD0D': PLP(K294D CLC(: LDY $97&(Ć: LDA $9E4(Ά: RTSH(؆K2953 JSR K290C\(: JMP K28FEb(;o('NMI }(ˆ: CLD(̈: LDX $DD07(ֈ: LDA #$7F(: STA $DD0D(: LDA $DD0D(: BPL Z2852(: CPX $DD07): LDY $DD01): BCS Z280E,): A #2?)&: A $DD0DQ)0Z280E ENABL_):: TAXm)D: LSR)N: BCC Z281F)X: LDA $DD00)b: #$FB)l: A $B5)v: STA $DD00)Z281F TXA): #$10): BEQ Z288A*: LDA $0A12&*: STA $DD06:*: LDA $0A13N*: STA $DD07a*Ɖ: LDA #$11u*Љ: STA $DD0F*ډ: LDA #$12*: E ENABL*: STA ENABL*: STA $DD0D*: LDA $0A16* : STA $DD06*: LDA $0A17+ : STA $DD07$+*: LDA #86+4: STA $A8J+>: BNE Z28C1f+HZ2852 LDA $D3 ;HUH!w+R: LDY #0+\: JMP $FA5F+fZ288A LDA ENABL+p: STA $DD0D+z: TXA+: #2+: BEQ Z28C1+: TYA,: LSR,: R $AA#,: DEC $A87,: BNE Z28BFK,ʊ: LDY RIDBE],Ԋ: LDA $AAs,ފ: STA $0C00,Y,: INC RIDBE,: LDA #0,: STA $DD0F,: LDA #$12,Z28AE LDY #$7F,: STY $DD0D,$: STY $DD0D -.: E ENABL!-8: STA ENABL5-B: STA $DD0DC-LZ28BF TXAQ-V: LSRe-`Z28C1 BCC Z28D1w-j: DEC $B4-t: BMI Z28D4-~: LDA #4-: R $B6-: BCS Z28CF-Z28CD LDA #0-Z28CF STA $B5 -Z28D1 JMP $FF33 .Z28D4 LDY RODBS (.ċ: CPY RODBE<.΋: BEQ Z28E9Q.؋: LDA $D00,Ye.: INC RODBSw.: STA $B6.: LDA #$09.: STA $B4. : BNE Z28CD.Z28E9 LDX #0.: STX $DD0E.(: LDA #1.2: BNE Z28AE/0: LDA #9P0: STA $B4d0: LDY RODBSy0: LDA $D00,Y0: STA $B60: INC RODBS0": LDA $A160,: STA $DD0406: LDA $A170@: STA $DD051J: LDA #$111T: STA $DD0E'1^: LDA #$81;1h: STA $DD0DI1r: PHPW1|: SEIj1: LDY #$7F~1: STY $DD0D1: STY $DD0D1: A ENABL1: STA ENABL1: STA $DD0D1: PLP1̍Z294D CLC1֍: LDY $97 2: LDA $9E2: RTS/2Z2953 JSR Z290CC2: JMP Z28FEQ2Z2959 PLA^2K'NMI r2: JMP $FFFFx20;2DSET'BAUD 2: TAX2: LDA BAUD''A,X : STA $A102Đ: LDA BAUD''B,X : STA $A122ؐ: LDA BAUD''C,X : STA $A133: LDA BAUD''D,X : STA $A1633: LDA BAUD''E,X : STA $A17=3F: RTSv3P; BAUD100: 3 12 24 48 72 96 144 192 3843ZBAUD''A .BYT 006,008,010,012,013,014,014,015,0153dBAUD''B .BYT 051,066,203,225,165,000,000,000,0004nBAUD''C .BYT 019,004,001,000,000,000,000,000,000N4xBAUD''D .BYT 082,077,170,213,157,000,000,000,0004BAUD''E .BYT 013,003,001,000,000,000,000,000,0004;4@INITIALIZE ;MODEM ROUTINES WEDGE IN4J: LDX #'IRQ4T LDA MOVE'F10,X4^: STA $0F10,X4h: DEX5r: BNE 5;5: SEID5: LDA $0326 : STA K'PRNTA1 ;BSOUTf5: LDA $0327 : STA K'PRNTA25̜: LDA #PRNTA : STA $03265: LDA #PRNTA : STA $03275;5: LDA $0318 : STA K'NMI1 ;NMI5: LDA $0319 : STA K'NMI26&: LDA #'NMI : STA $031816:: LDA #'NMI : STA $031976N;b6: LDA #IRQ : STA $0314 ;IRQ6: LDA #IRQ : STA $03156;6: LDA $032A : STA K'IN1 ;IN6Ɲ: LDA $032B : STA K'IN26ڝ: LDA #'IN : STA $032A 7: LDA #'IN : STA $032B7;74: CLI"7ğRTS(7Ο;.7P;?7dMOVE'F10 M7x.$ $0F10S7;]7: BRKi7IRQ s7: CLD7;;LDA $2403 ; RAMS IS ACTIVE SKIP CUSM IRQ7;;CMP #$52 ;FIND LOCATI NEEDED&8;;BNE ;MAY NOW BE SIBLE EXECUTE IRQ WITH RAMS ACTIVE!68;;JMP 'IRQ<8,;N8@; NETWK 8TĪ LDA NWIRQFLAG ;NETWK IRQ ACTIVATI FLAG8h: BEQ ;SKIP ACTIVATED8|: INC NWCOUNTER18: BNE 8: INC NWCOUNTER8: LDA NWCOUNTER9: CMP NWHOWLG9: BNE A9: LDA 989 ;INVERSE PROCOL CARRIERO9: E #$FF]9: STA 989c90;9DŪ LDA C28 ; CARRIER LOSS FLAG IS 0, N'T CHECK9X: BEQ 'IRQ9l;9: LDA C12 ;CHECK CARRI LOSS9: #$EF :: BNE 'IRQ:;;:: LDA $DD01 ;CHECK CARRIER BITK:: #16y:: CMP C12 ;COMPARE WITH LOST FLAG: : BNE ZCCB5 ;SKIP CARRIER LOST: : INC C28 ;INCENT CARRIER LOST FLAG:4: BNE ZCCA6 ; HIT ZERO2;H: C28 ; KEEP IT AT 255, CARRIER WAS LOST!E;\ZCCA6 CMP #$FF[;p: BNE ZCCBA l;: LDA #1;: STA C31 ;NO CHROUT MODEM;: STA $DD01 ;: JMP 'IRQ;;;ZCCB5 LDA #1 <: STA C28 ;CLEAR CARRIER LOST FLAG OKAY"<ZCCBA LDA RODBS ;<$: CMP LAST'RODBSK<8: BNE ax: LDA $D019 : STA $D019#>;; LDA $0A2C : STA $D018M>: JSR $C55D ;SCAN BOARD MATRIX>: JSR $F5F8 ;INCENT JIFFY CLOCK, DEC DJIFFY, CHECK RUN/STOP/SHIFT>: JMP $FA7A ; FROM IRQ>;> INACTIVE'COUNT .WD 0>4LAST'RIDBS BRK?HLAST'RODBS BRK ?p;?'IRQ IRQ$?.OFE*?;1?j.r?; "-MODEM" : "MODEM" "-MODEM" : "@MODEM"  4000.G $1300".MEM((;?dBURSTBUFCOUNT $FDTiBURSTSTATUS $FEgnBURSTBUF $B00|xSERIALFLAG $A1C;BSOUT $FFD2CKOUT $FFC9CH $FFCC;@;^JMP SHOWFILEh;BUREN : LDX #15: JSR CKOUT3v: LDA #"U" ;S "U0"(159) COMM C: JSR BSOUTR: LDA #"0"b: JSR BSOUTq: LDA #$1F: JSR BSOUT;: LDY #0 ;S FIAME LDA $C01,Y: JSR BSOUT: INY: CPY $C00: BNE  ; : JSR CHR: SEI: LDA $DC0D.: LDA $DD00<: E #$10L: STA $DD00]: JSR BURSTs: LDA BURSTSTATUS: CMP #2: BCC : BNE SHTFILE: SEC: LDA #4 RTS;LSHTFILE V: CMP #$1F`: BNE ERR j: LDY BURSTBUFCOUNTt: LDX #2 ~;4SHTFILEBYTE C: LDA #$08S BIT $DC0D_: BEQ o: LDA $DD00: LDA $DD00: E #$10: STA $DD00: LDA $DC0C: STA BURSTBUF,Y : INY: DEX: BNE SHTFILEBYTE (: STY BURSTBUFCOUNT 2: CLC <: RTS F;, xERR 6 : CLI@ : SECN : A #$10X : RTS^ ;l BURST y : LDA #8  BIT $DC0D : BEQ : LDA $DD00 : E #$10 : STA $DD00 : LDA $DC0C : STA BURSTSTATUS *: LDX #254!4: CMP #2!>: BCC ACTUAL$!@: CMP #30!B: BNE :!D: BRKI!H CMP #$1FY!R: BNE ERRg!T: LDA #$8w!W BIT $DC0D!Y: BEQ !f: LDA $DD00!p: E #$10!z: STA $DD00!: LDX $DC0C!;!ACTUAL !: STX BURSTBUFCOUNT!: LDY #0";"BYTE " : LDA #8+" BIT $DC0D7" : BEQ G"$ : LDA $DD00U". : E #$10e"B : STA $DD00u"L : LDA $DC0C"V : STA BURSTBUF,Y"` : INY"j : CPY BURSTBUFCOUNT"t : BNE BYTE"~ : CLC" : RTS" ;" BURST " : CLI" : CLC# : RTS# ;#SHOWFILE )#: JSR BUREN9#: BCS REPT?#;I# NOP_#: LDA BURSTSTATUSn#: CMP #$1Fz#: BEQ #: JSR BURST#: BCC #REPT # STA $FF# : JMP BURST#;#pDIS'BUFFER #z: LDY #0# LDA BURSTBUF,Y$: JSR $C00C$: INY1$: CPY BURSTBUFCOUNT=$: BCC G$: RTSM$;5C46 ;4080C RGB, PASS 4 8 IN .AC. 'LITEI;: JSR 1ROM ;IN "PANEL" RAM #1, ROM, IO: LDA A'REG: STA 'NOW: CMP #4: BEQ C46'40$C46'80 .: LDA #126: LDX #0 : JSR VDC8: LDA #80 : INX : JSR VDC8B: LDA #102: INX : JSR VDCZL: LDA #120: LDX #22: JSR VDC|V: LDA #71 : LDX #25: JSR VDC`: LDA #0 : LDX #27: JMP VDCj;tC46'40 ;SWITCH 40C RGB~: LDA #62 : LDX #0 : JSR VDC: LDA #40 : INX : JSR VDC1: LDA #53 : INX : JSR VDCS: LDA #137: LDX #22: JSR VDCu: LDA #87 : LDX #25: JSR VDC: LDA #40 : LDX #27: JMP VDC;.;C46'40 #C46'80 (RTS2;<.E ;LITE!;"-SIM40C" :"SIM40C""-SIM40C": "@SIM40C" :"SIM40C  40000; WARP SPEED SCREEN R e; A 4864,LASTZOOM,LAST%,LAST&: ACTIVATES(; S WHEN SOMETHING IS DETECTED BE IN THE BOARD MODEM BUFFER2; P OF THE HOUR<.G $12FF;4863A.DVO 9F.OBJ "@0:MLC.SCREENSAVER"2P.BYT 12 ;SCREEN R FLAG AT $12FF8Z;J_CHKIN $FFC6ZaCH $FFCCkdKBBUFF 208}iSHTFLAG 211nWRITE'REG $CDCC ;REGISTER # IN .X, UE IN .As'REG $CDDA ;REGISTER # IN .X, UE ED IN .AxMODEM''ING $1A12&}NS 128 ;MAX NUMBER OF STARSYVIDEO'BASE $3000 ;MODY LINES 787&788 ALSOjCOUNTER $63BITMAP $65 ;TEMP BITMAP'ADDRESSBBIT $67 ;TEMP BIT'COD $68STAR $69 SCREEN $6A ;TEMP SCREEN'ADDRESS0X $6C ;TEMP X'CODTY $6D ;TEMP Y'CODUE $6E ;UE OF STAR FROM STAR1 OR STAR2LAST'ZOOM'STAR $6F ;NUMBER OF THE LAST OF EACH TYPE OFLAST'%'STAR $70 ;STAR, PLUS 1 LAST'&'STAR $71 ;+ ; NING OF PROGRAM f STA LAST'ZOOM'STAR :STX LAST'%'STAR :STY LAST'&'STARx JSR INIT'ROM SEI JSR BLANK'SCREEN LDA #25 : LDX #6 : JSR WRITE'REG ;SET 25 LINES SCREEN!!LDA #VIDEO'BASE:LDX #12:JSR WRITE'REG ;REINE VIDEO BASEe!LDA #VIDEO'BASE$800:LDX #20:JSR WRITE'REG ;REINE ATTRIB BASEy!JSR CLEAR'SPACE!JSR CLEAR'STARS!JSR INITIALIZE'STARS!CLI"LDX #5:JSR CHKIN ;SET BE FROM MODEM. NEEDED NLTK TEMS RESPD INCOMING PHECALL%"JSR SHOW'SCREEN+";>",STAR'DRIVER Y"6: JSR ZOOM'STARS ;Zs"@: JSR %'STARS ; F"E: JSR ZOOM'STARS ;Z"J: JSR &'STARS ; S"T: JSR ZOOM'STARS ;Z"^: JSR %'STARS ; F"r: JSR NEAR'STAR"|;+#: LDA KBBUFF ;DID OP PRESS A :#: BNE 'Ry#: LDA SHTFLAG ;DID OP PRESS ROL C SHT#: BNE 'R#: JSR MODEM''ING ;SOMETHING COME IN THE MODEM#: BNE 'R$: JSR CHECK'TIME ;IS IDLE TIME UP P OF THE HOUR9$: BCC STAR'DRIVER ;  ?$;K$'R U$: SEIl$;;JSR BLANK'SCREEN$: LDA #0 :LDX #12:JSR WRITE'REG ;REINE VIDEO AT $0000$: LDA #16:LDX #20:JSR WRITE'REG ;REINE ATTRIB AT $10000%: LDA #26:LDX #6 :JSR WRITE'REG ;SET 26 LINES SCREENr%: JSR 52748 ; SET FROM ROM TO VDC|%: CLI%!: JSR CH ;SET FROM MODEM BACK BOARD%&: JMP SHOW'SCREEN%0;%XBLANK'SCREEN &b: SEI:LDA #5:LDX #35:JSR WRITE'REG:CLI:RTS&l;*&SHOW'SCREEN [&: SEI:LDA #100:LDX #35:JSR WRITE'REG:CLI:RTSa&;z&X'COD'NEAR .BYT 255&SCREEN'NEAR .WD VIDEO'BASE&;&STAR1 .BYTE 1,2,4,8,16,32,64,128 ;STAR FOR BIT POS OF SINGLE PNT STAR;' STAR2 .BYTE 3,6,12,24,48,96,192 ;STAR FOR BIT POS OF DOUBLE PNT STAR'LINE'ADRS'LO .BYTE $00,$50,$A0,$F0,$40,$90,$E0,$30,$80,$D0,$20,$70,$C0': .BYTE $10,$60,$B0,$00,$50,$A0,$F0,$40,$90,$E0,$30,$80(LINE'ADRS'HI .BYTE $30,$30,$30,$30,$31,$31,$31,$32,$32,$32,$33,$33,$33_(: .BYTE $34,$34,$34,$35,$35,$35,$35,$36,$36,$36,$37,$37e(;(RROM ;S ROM # IN .A IN RANGE 0 .A1(\: STA ROM'HIGH(a: STX ROM'MASK(f LDA 54299(i: ROM'MASK(k: CMP ROM'HIGH )p: BCS :RTS#)uROM'HIGH .BYTE 0;)wROM'MASK .BYTE $FFA)z;q)'MEMY ;ADDRESS IN .X.Y. UE IN .A): PHA ;PUSH UE): TXA ;TRANSFER LOWBYTE .X .A): LDX #$13): SEI*: JSR WRITE'REG ;S LOW ADDRESS*: DEXC*: TYA ;TRANSFER HIGHBYTE .Y .Al*: JSR WRITE'REG ;S HIGH ADDRESSv*: PLA*: JSR WRITE'REG2 ;S UE*: CLI*: RTS*;*CHECK'TIME *: LDA 56330 ;CURRENT MINUTE OF THE DAY5+: LDX 56328 ; 110 OF A SECD CLOCK MOVING AGAINB+: CMP #0~+: BNE ; MINUTE 0, P OF HOUR, INUE + SEC:RTS ; SCREEN R+$;+V LDA 56587 ; IDLE CLOCK HOUR 0+`: BNE ,e: LDA 56586 ; MINUTE IDLE TIME ,j: LDX 565840,o: CMP $19FFY,t: BEQ ; SCREEN Ri, LDX 56584,: CLC:RTS ; INUE SCRN R,;,INIT'ROM ,: LDA #$FF:STA 54287 ;INITIALIZE ROM SID-: LDA #%10000000:STA 54290:STA 54296-RTS-;/-CLEAR'SPACE R-: LDA #VIDEO'BASE :STA SCREENw-: LDA #VIDEO'BASE :STA SCREEN1-: LDA #VIDEO'BASE :STA COUNTER-: LDA #VIDEO'BASE$800:STA COUNTER1-;-  LDX SCREEN :LDY SCREEN1: LDA #0".: JSR 'MEMY ;CLEAR BYTE OF VIDEO RAML. : LDX COUNTER :LDY COUNTER1 :LDA #14y.*: JSR 'MEMY ;CLEAR BYTE OF ATTRIB RAM.4;.>: INC SCREEN :BNE .H: INC SCREEN1.R INC COUNTER :BNE .\: INC COUNTER1.f;.p LDA SCREEN /z: CMP #VIDEO'BASE2000/: BNE )/: LDA SCREEN1E/: CMP #VIDEO'BASE2000Q/: BNE [/: RTSa/;t/ CLEAR'STARS / : LDA #$00:STA COUNTER ;SET COUNTER $2000/ : LDA #$20:STA COUNTER1/ ;/ LDX COUNTER :LDY COUNTER1: LDA #00 : JSR 'MEMY0 : INC COUNTER :BNE 30 : INC COUNTER1G0 : LDA COUNTER10 : CMP #$28 ;CHANGE ME THAN 127 STARS0 : BNE 00 ;0 ; INE NEAR STAR 0 ;0 : LDX #$F0:LDY #$27:LDA #%00111100:JSR 'MEMY1 : LDX #$F1:LDY #$27:LDA #%11111111:JSR 'MEMYP1 : LDX #$F2:LDY #$27:LDA #%11111111:JSR 'MEMY1 : LDX #$F3:LDY #$27:LDA #%11111111:JSR 'MEMY1 : LDX #$F4:LDY #$27:LDA #%00111100:JSR 'MEMY1 ;;LDX #$F5:LDY #$27:LDA #%11000011:JSR 'MEMY2 ;;LDX #$F6:LDY #$27:LDA #%11111111:JSR 'MEMYO2 ;;LDX #$F7:LDY #$27:LDA #%00111100:JSR 'MEMYW2 RTS]2<;u2INITIALIZE'STARS 2: LDA #$00 : STA BITMAP2: LDA #$20 : STA BITMAP12: LDY #1 :STY STAR2INIT''STAR 3: LDX #127:LDA #80 :JSR ROM ;FIND ROM X ITI 079#3: STA X63: STA X'COD,Ys3: LDX #63 :LDA #25 :JSR ROM ;FIND ROM Y ITI 0243: STA Y3: LDX #7 :LDA #7 :JSR ROM ;FIND ROM BIT ITI 063: STA BBIT3: STA BIT'COD,Y3;36: CLC34@: LDA BITMAP :ADC #16:STA BITMAP ;BITMAPBITMAP16[4J: LDA BITMAP1:ADC #0 :STA BITMAP1|4T: LDX #15 :LDA #8 :JSR ROM4^: CLC ;BITMAP(STAR)BITMAP(8)4r: ADC BITMAP4: STA BITMAP'ADDRESS,Y ;SRE LOW ADDRESS 5: LDA BITMAP15: ADC #0I5: STA BITMAP'ADDRESSNS,Y ;SRE HIGH ADDRESSO5;50: LDX Y ;SCREENVIDEO'BASEY80X5:: CLC5D: LDA LINE'ADRS'LO,X5N: ADC X5b: STA SCREEN'ADDRESS,Y ;SRE LOW BYTE SCREEN'ADDRESS,STAR6l: LDA LINE'ADRS'HI,X"6v: ADC #0g6: STA SCREEN'ADDRESSNS,Y ;SRE HIGH BYTE SCREEN'ADDRESS,STARm6;|6: INC STAR6: LDY STAR6 : CPY LAST'&'STAR6: BCS 6 : JMP INIT''STAR6* RTS64;6ZOOM'STARS 6: LDY #1 :STY STAR7;-7 LDA BITMAP'ADDRESS,Y :STA BITMAPY7: LDA BITMAP'ADDRESSNS,Y :STA BITMAP1_7;n7: LDX STAR7: BIT'COD,X7: LDX BIT'COD,Y7: BPL ; B0 7: LDA STAR26 :STA UE ; BIT6:15:UES2(6): SHT8: LDA #15: STA '8: LDA #6: STA BBIT;8: JSR SHT'CARDH8 : JMP N8;8 LDA STAR2,X:PHA ; BITMAP,(STAR2X)8: SEI8: LDX #$13:LDA BITMAP:JSR WRITE'REG8#: DEX:LDA BITMAP1: JSR WRITE'REG8(: PLA:JSR WRITE'REG28-: CLI92;9P INC STAR!9Z: LDY STAR:9d: CPY LAST'ZOOM'STARF9n: BCC N9xRTST9;d9p%'STARS 9z: LDY LAST'ZOOM'STAR :STY STAR9;9 LDA BITMAP'ADDRESS,Y :STA BITMAP9: LDA BITMAP'ADDRESSNS,Y :STA BITMAP19;9: LDX STAR :: BIT'COD,X :: LDX BIT'COD,YH:: BPL ; B0 :: LDA STAR17 :STA UE ; BIT7:15:UES1(7): SHT:: LDA #15: STA :: LDA #7: STA BBIT:: JSR SHT'CARD:: JMP :;: LDA STAR1,X:PHA:: SEI ;: LDX #$13:LDA BITMAP:JSR WRITE'REGE; : DEX:LDA BITMAP1:JSR WRITE'REG_;: PLA:JSR WRITE'REG2i;: CLIo;;~;8 INC STAR;B: LDY STAR;L: CPY LAST'%'STAR;V: BCC ;`RTS;j;;X&'STARS ;b: LDY LAST'%'STAR :STY STAR;g;4: CPY LAST'&'STAR>>: BCC ">H RTS(>R;9>@NEAR'STAR O>J: LDA X'COD'NEAR>T: BPL ;E IN ACTI, MOVE IT>Y: LDX #255>^: LDA #254:JSR ROM ;OTHERWISE, SEE WE SHOULD START A E>c: CMP #0?h: BNE ; NO, RTS)?j: LDA #30:JSR ROM: RTS$H PLA$RK28F2 STA $9E$\: STY $97%: TXA%: PHA*%: JSR $E75F8%`: PLAF%t: TAXT%K294D CLCf%: LDY $97x%Ć: LDA $9E%Ά: RTS%;%'NMI %ˆ: CLD%̈: LDX $DD07%ֈ: LDA #$7F%: STA $DD0D%: LDA $DD0D &: BPL Z2852&: CPX $DD072&: LDY $DD01F&: BCS Z280EV&: A #2i&&: A $DD0D{&0Z280E ENABL&:: TAX&D: LSR&N: BCC Z281F&X: LDA $DD00&b: #$FB&l: A $B5&v: STA $DD00'Z281F TXA': #$10(': BEQ Z288A<': LDA $0A12P': STA $DD06d': LDA $0A13x': STA $DD07'Ɖ: LDA #$11'Љ: STA $DD0F'ډ: LDA #$12': E ENABL': STA ENABL': STA $DD0D(: LDA $0A16( : STA $DD06)(: LDA $0A17=( : STA $DD07N(*: LDA #8`(4: STA $A8t(>: BNE Z28C1(HZ2852 LDA $D3 ;HUH!(R: LDY #0(\: JMP $FA5F(fZ288A LDA ENABL(p: STA $DD0D(z: TXA(: #2): BEQ Z28C1): TYA*): LSR;): R $AAM): DEC $A8a): BNE Z28BFu)ʊ: LDY RIDBE)Ԋ: LDA $AA)ފ: STA $0C00,Y): INC RIDBE): LDA #0): STA $DD0F): LDA #$12)Z28AE LDY #$7F*: STY $DD0D$*$: STY $DD0D7*.: E ENABLK*8: STA ENABL_*B: STA $DD0Dm*LZ28BF TXA{*V: LSR*`Z28C1 BCC Z28D1*j: DEC $B4*t: BMI Z28D4*~: LDA #4*: R $B6*: BCS Z28CF*Z28CD LDA #0+Z28CF STA $B5 (+Z28D1 JMP $FF33 >+Z28D4 LDY RODBS R+ċ: CPY RODBEf+΋: BEQ Z28E9{+؋: LDA $D00,Y+: INC RODBS+: STA $B6+: LDA #$09+: STA $B4+ : BNE Z28CD+Z28E9 LDX #0+: STX $DD0E,(: LDA #1$,2: BNE Z28AE2,.T: STA $DD0EQ.^: LDA #$81e.h: STA $DD0Ds.r: PHP.|: SEI.: LDY #$7F.: STY $DD0D.: STY $DD0D.: A ENABL.: STA ENABL.: STA $DD0D/: PLP/̍Z294D CLC%/֍: LDY $977/: LDA $9EE/: RTSY/Z2953 JSR Z290Cm/: JMP Z28FE{/Z2959 PLA/K'NMI /: JMP $FFFF/0;/DSET'BAUD /: TAX/: LDA BAUD''A,X : STA $A10/Đ: LDA #0 : STA $A110F: JMP $F055>0P; BAUD100: 3 12 24 48 72 96 144 192 384t0ZBAUD''A .BYT 006,008,010,012,013,014,014,015,015z0;0@INITIALIZE ;MODEM ROUTINES WEDGE IN0J: LDX #'IRQ0T LDA MOVE'F10,X0^: STA $0F10,X0h: DEX0r: BNE 1|: LDA MOVE'F101: STA $0F10!1;N1: LDA $0326 : STA K'PRNTA1 ;BSOUTp1: LDA $0327 : STA K'PRNTA21̜: LDA #PRNTA : STA $03261: LDA #PRNTA : STA $03271;1: LDA $0318 : STA K'NMI1 ;NMI1: LDA $0319 : STA K'NMI22&;;LDA #'NMI : STA $0318;2:;;LDA #'NMI : STA $0319A2N;l2: LDA #IRQ : STA $0314 ;IRQ2: LDA #IRQ : STA $03152;2: LDA $032A : STA K'IN1 ;IN2Ɲ: LDA $032B : STA K'IN22ڝ: LDA #'IN : STA $032A3: LDA #'IN : STA $032B3;"3ğRTS(3Ο;O3(ERPRET'ACC $2500 ;FROM MAINh32PANEL'SWITCH $2503n3P;3dMOVE'F10 3x.$ $0F103;3IRQ 3: CLD3;;LDA $2403 ; RAMS IS ACTIVE SKIP CUSM IRQ4;;CMP #$52 ;FIND LOCATI NEEDED\4;;BNE ;MAY NOW BE SIBLE EXECUTE IRQ WITH RAMS ACTIVE!l4;;JMP 'IRQr4,;4@; NETWK 4TĪ LDA NWIRQFLAG ;NETWK IRQ ACTIVATI FLAG4h: BEQ ;SKIP ACTIVATED4|: INC NWCOUNTER15: BNE 5: INC NWCOUNTER)5: LDA NWCOUNTER<5: CMP NWHOWLGH5: BNE [5: LDA NWHOWLGi5: E #$FF|5: STA NWHOWLG50;5DŪ LDA C28 ; CARRIER LOSS FLAG IS 0, N'T CHECK5X: BEQ 'IRQ5l;6: LDA C12 ;CHECK CARRI LOSS6: #$EF +6: BNE 'IRQ16;Z6: LDA $DD01 ;CHECK CARRIER BITj6: #166: CMP C12 ;COMPARE WITH LOST FLAG6 : BNE ZCCB5 ;SKIP CARRIER LOST6 : INC C28 ;INCENT CARRIER LOST FLAG74: BNE ZCCA6 ; HIT ZEROQ7H: C28 ; KEEP IT AT 255, CARRIER WAS LOST!d7\ZCCA6 CMP #$FFz7p: BNE ZCCBA 7: LDA #17: STA C31 ;NO CHROUT MODEM7: STA $DD01 7: JMP 'IRQ7;7ZCCB5 LDA #1+8: STA C28 ;CLEAR CARRIER LOST FLAG OKAYA8ZCCBA LDA RODBS Z8$: CMP LAST'RODBSj88: BNE 8L: LDA RIDBS 8`: CMP LAST'RIDBS8t: BEQ Z18;8Ǫ LDA RODBS : STA LAST'RODBS8: LDA RIDBS : STA LAST'RIDBS 9: LDA #0B9: STA INACTIVE'COUNT : STA INACTIVE'COUNT1V9: JMP 'IRQ\9;9Z1 INC INACTIVE'COUNT : BNE 'IRQ : INC INACTIVE'COUNT19(: LDA #$2D : CMP INACTIVE'COUNT1 : BNE 'IRQ9<: STA C34 ;TIMEOUT SET FLG9P; :d'IRQ ,:x: LDA $D019 : STA $D019L:: LDA $0A2C : STA $D018v:: JSR $C55D ;SCAN BOARD MATRIX:: JSR $F5F8 ;INCENT JIFFY CLOCK, DEC DJIFFY, CHECK RUN/STOP/SHIFT:: JMP $FA7A ; FROM IRQ:;; INACTIVE'COUNT .WD 0;4LAST'RIDBS BRK-;HLAST'RODBS BRK3;p;D;'IRQ IRQM;.OFES;;Z;j.;; "-MODEM2" : "MODEM2" "-MODEM2" : "@MODEM2(UC32 SEI ;WEDGE BBS ML INVU: CMP #0 ; .A0, SKIP WEDGEfV: BEQ {"V: LDA #'I'V: STA $0328,V: LDA #'I1V: STA $0329JV;V JSR MODEM'INIT ;INITIALIZE MODEM ROUTINES BSOUTINIRQNMIV: CLIWW: LDA #ED'BASIC'ERR : STA $300 ;IN "COMMON" FILE BECAUSE0W: LDA #ED'BASIC'ERR : STA $301 ;ERRS CAN OCCURE IN RAM 1 O:W; ;CALLS BASIC'ERR IN THIS FILEDW;.HX: LDA #' : STA 4633 ;SETUP () FUNCTI #MMX: LDA #' : STA 4634SRX;yX: LDA #BASIC'ERP : STA $308X: LDA #BASIC'ERP : STA $309Y: RTSY;YC33 SEI ;WEDGE OUT Y: LDX #$0FE0 ; VECRS BACK FROM ($0FE0)($0314)#$Y: LDY #$0FE01.Y: CLCL8Y: JSR $FF8D ;VECRZBY: CLILY: $76 ;FLAG SET THAT GFX AREA HAS BEEN ALDtY: JMP $4251 ; BASIC ERP (INE) VECRY;YERP'RESTART'MODEM Y LDA #0 Y: STA 15 Y: JSR RESTART'MODEM. Y: STA 147 Y; .I YBASIC'ERP | Y: LDA MODEM'PED ; MODEM PED .DISK ACCESS, Y: BMI ; RESTART MODEM Y; Y JSR $0380 ;CHR Y: BEQ ;SKIP IS A COL!Z: CMP #$E5 ; COMM IS ''8!Z: BEQ ' ; SET FLAG FIRST_! Z: CMP #"." ; IS A PERIODk!Z: BNE !ZPERIOD'ERR' !Z: LDA #0!Z: STA 15!Z: JSR 'MODEM!Z: STA 14!Z: JMP !Z JMP $4AF3 ; ERPRET COMM!"#Z JMP $4AF6 ;SKIP ERPRETER DUE A :'"(Z;L"#Z'3 o#Z: LDX #1 ; SET OUTPUT DEVICE # 1#Z: STX $9A ;DFL#Z: JSR $5557 ; CALL THE '' ROUTINE#[: LDX #3 ;NOW SET OUTPUT DEVICE BACK THE SCREEN$,[: STX $9A ;DFL=$T[ JMP $4AF9 ;BASIC ERPRETER C$h[;S$['STRING $[: INC TXTPTR ;INCENT POINTER INTO BASIC TEXT$[: BNE $[: INC TXTPTR1$\ STA 0$\: LDY #0$&\: LDA (TXTPTR),Y ; THE OUTPUT$0\: STY 152%D\: BEQ ' ; HIT EOL, OUTPUT A CR$ FINISHT%X\: CMP #34 ; QUOTE|%b\: BEQ 'QT ; CHECK OF STRING%l\;%\: JSR ERPRET'ACC ;OUTPUT THE ACTER!%\: JMP 'STRING ; BACK AROUND ACTER%\;&\'QT ;FOUND QUOTE MARK(&\: JSR $0380 ;CHR BYTEV&\: BEQ ' ; NULL COL, OUTPUT y&\: CMP #";" ; A ';'&]: BNE '3 ; CALL '' ROUTINE HLE REST& ]: JSR $0380 ; HAD A ';'. NOW CHECK BYTE ']: BEQ 'NE ; EOL COL,  (NO CR$);'4]: BNE '3 ; CALL '' ROUTINE HLE RESTA'\];q']' ; A CR$ JUMP BASIC COMM~']: LDA #0']: STA 15']: LDA #13']: JSR ERPRET'ACC'^;'$^'NE '8^: JMP $4AF9 ;BASIC ERPETER 'L^;(^BASIC'ERR -(^: TXA ;MOVE ERR # .AS(^: LDX $82 ; OLD STACK ](^: TXS(_: TAX ;MOVE ERR # BACK .X(_;( _: CPX #35 ;WAS IT A NO GFX AREA ERR(_: BNE ;NO, SKIP+)(_;; WILL OCCURE ANY GFX COMM, BUT WE WILL ASSUME IT WAS A CMMNDa)2_: JSR $0386 ;YES, RE AFTER THE COMM)<_: JMP '4 ; & ERPRET )P_;)d_ CPX #34 ;WAS ERR A DIRECT MODE LY ERR)n_: BNE CHECKE40 ;NO SKIP *x_; ;YES, ASSUME THE '' COMM (SCREEN PA)J*_: JSR $0386 ; KEN AFTER ''*_: BEQ ; COL NULL, JUST RESET COUNT*_: CMP #$91 ;WAS IT THE '' COMM*_: BNE ;NO, SKIP+_: JSR $0380 ; THE COL NULL THAT SHOULD FOLLOW THE ''J+_: LDA PAUSE'NMAL;YES, RESET COUNT LINE GTH_+_: STA PAUSE'GTHl+_ LDA #1+_: STA PAUSE'COUNT+_: JMP $4AFD ; BASIC CHR POS A COL NULL+_;+` CMP #$FE ;WAS IT A KEN EXTENTI1,"`: BNE SYNTAX'ERR;NO, SYNTAX ERR. FOLLOWED BY $Q,,`: JSR $0380 ; KEN},6`: CMP #$24 ;WAS IT THE '$' KEN,@`: BNE SYNTAX'ERR;NO, ERR,T`: LDA #0 ;YES, TURN $ ܫPA,^`: STA PAUSE'GTH-c`: JSR $0380 ;ADVANCE CHR COL NULL AFTER '$'?-h`: JMP $4AFD ; BASIC E-r`;U-|`CHECKE40 -`;;CPX #40 ;WAS ERR AN UNIMPLEMENTED COMM-`;;BNE CHECKE11 ;NO, SKIP-`;;-`;;LDA #0 ;YES, WAS AN '$' BY ITSELF ( '').`;;STA 15*.`;;JSR 'MODEM ;TURN THE MODEM '$'7.`;;LDA #1{.`;;STA MODEM'PED ;SET FLAG USER PED RATHER THAN .DISK ACCESS.`;;STA 14.`;;JMP $4AF9 ; BASIC .`;.`CHECKE11 .`: CPX #11 ;WAS ERR SYNTAX ERR!/`: BNE 'BASIC'ERR;NO, NMAL ERR ROUTINEX/`: JSR $0386 ;WAS THE ERR CAUSED BY A PERIODg/a: CMP #"."/a: BNE ;NO, SKIP/a: JMP PERIOD'ERR' ;YES, MODEM ERP COMM/&a;/Da CMP #$90 ;WAS ERR A ''/Na: BNE )0la: LDA #0 ;YES, WAS AN 'M'90qa: STA 15_0va: JSR 'MODEM ;TURN THE MODEM $l0a: LDA #10a: STA MODEM'PED ;SET FLAG USER PED RATHER THAN .DISK ACCESS0a: STA 140a: JSR $0380 ;ADVANCE : NULL 1a: JMP $4AF9 ; BASIC 1a;<1a CMP #$9A ;WAS ERR A 'M'R1a: BNE SYNTAX'ERR1a: LDA #128 ;YES, TURN MODEM ERRUPTS 1a: STA MODEM'PED1a: JMP ERP'RESTART'MODEM1a;1eSYNTAX'ERR 1e: LDX #111e'BASIC'ERR 2e: JMP $4D3F ; NMAL ERR HLER"2e;52xi'PREV'BYTE A2i: $3EP2i: LDY #$FF_2i: JSR $3C9m2i: INC $3E|2i;;STA $4002i: RTS2i;2Hq'I 2Rq: LDA SHFLAG2\q: CMP #7 ;ROLSHTC2fq: BNE 2pq: LDA #$FF ;DISABLE 3zq: STA $120B3q: STA $120C)3q: LDA #$7FM3q: STA $91 ;SET FLAG]3q: JMP $F66Eg3q RTSm3q;30u; N(X), S A ROM NUMBER BETWEEN 0 & X13:u; X MAY BE IN RANGE 0327673Du;4u' ;X(N) PUTS A ROM # BETWEEN 0 & N1 O XH4u: LDA $17 : PHA ;NEED SO THAT THE ADDRESS OF A '' INz4u: LDA $16 : PHA ;OPPERATI ISN'T MESSED UP4u: LDA #04u: STA 154u: LDA #$FF4u: STA $D40F ;SID3 HREQ4u: LDA #$804u: STA $D412 ;SID3 ROL5u: STA $D418 ;SID3 UME&S5u: JSR $8815 ;CVERT (N) RANGE 0655355v: LDA $66 ; HIGHBYTE IS 0 GLE BYTE 5 v: BNE 2'CALC5v: LDY $675 v: BEQ 'NE ; WAS (0), 05*v LDY $D41B ;SID3 ROM!64v: CPY $67 ; ROMLIMIT TRY AGAIN-6>v: BCS [6Hv: LDA #0 ;HIGH BYTE 0, LOW IS IN .Yh6v'NE u6v: LDX #06v: STX $D412 ;TURN ROM NOISE $6v: LDX #16v: STX 6v: STA $646v: STY $656w: LDX #$90 :SEC7w: JSR $8C75 ;CVERT 6465 FP87w: PLA : STA $16 ; ADDRESSL7$w: PLA : STA $17V7.w: RTS\78w;7y2'CALC ;CALCULATE 2 BYTE ROM NUMBER7"y LDA $D41B ; HIGH BYTE7,y: CMP $6676y: BEQ ;OKAY EQUAL8@y: BCS ; OKAY BIGGERV8Jy: JSR 'DELAY ;T A HIGHBYTE LESS THAN THE HIGHBYTE OF THE MAX8Ty: LDY $D41B ; LOW BYTE UE8^y: JMP 'NE8hy;8ry JSR 'DELAY ;HIGHBYTE EQUAL HIGHBYTE OF MAX9|y: LDY $D41B ;LOW BYTE MUST BE LESS THAN LOWBYTE OF MAX!9y: CPY $67A9y: BCC 'NE ; SO, NE!{9y: JSR 'DELAY ;OTHERWISE, TRY AGAIN FROM THE START9y: BEQ 2'CALC ;BRA9y;9 {'DELAY ; TWO JFY COUNTS9{: LDX $A2 : INX:INX9 { CPX $A29*{: BNE 94{: RTS:>{;F:; "-WEDGES" : "WEDGES" "-WEDGES" : "@WEDGES( ; SPEEDY: FILE DIS TEM .;idSPEED'BUFFER $2280 ;LAST PAGE OF MODULE BLOCKnSPEED'STATUS $8CxSPEED'GTH $8DSPEED'COUNTER $8ESPEED'T'MCI $8BSPEED'RAW'OUT $8ASPEED'OLD'MCI $8F;C39 : TSXD: STX IN'SPEEDY ;FLAG CHATMODE ADDRESSQ$: LDA #0v.: STA SPEED'STATUS ; EOF8: STA SPEED'RAW'OUT ; IN RAW OUTPUT MODEB: STA SPEED'T'MCIG: LDA MCI'ENABLEH: STA SPEED'OLD'MCIL;(`; O BUFFER, CHECKING MCI SKIP CODES 7jSPEED' Io: JSR 'MODEMxt: LDX C35 ;STRTHNG FILE #~: JSR CHKIN: LDY #0SPEED''MCI : LDA SPEED'T'MCI ;CHECK SEE START OF MCI COMM: BEQ +: JSR SPEED'CHECK'MCI ; SO, CHECK SKIPPERST: LDA IOSTATUS ; EOF, : BEQ ;, INUE ING FILE: JMP SPEED' JSR BA: CMP #"\" ;IS MCI COMM : BNE ; SET FLAG OUTPUT WHAT WE HAVE SO FAR3 : STA SPEED'T'MCIi : CPY #0 ; SOMETHING IN BUFFER : BNE SPEED'NE ; OUTPUT IT FIRST : BEQ SPEED''MCI ; DIRECTLY CHECKING MCI  STA SPEED'BUFFER,Y : INY!(: LDX IOSTATUS!<: STX SPEED'STATUS2!P: BNE SPEED'NE@!d: CPY #40L!x: BNE R!;d!SPEED'NE y!: STY SPEED'GTH!: JSR CH!: JSR RESTART'MODEM!: LDY #0!: STY SPEED'COUNTER!;!SPEED'DIS !: LDY SPEED'COUNTER ": LDA SPEED'RAW'OUT": BNE ";V", LDA SPEED'BUFFER,Y ;OUTPUT WITH TRANSLATIl"T: JSR ERPRET'ACC"h: INC SPEED'COUNTER"|: LDY SPEED'COUNTER": CPY SPEED'GTH": BNE ": BEQ SPEED''CHECK";# LDX #5 ;OUTPUT RAW#: JSR CKOUT/# LDA SPEED'BUFFER,Y@#&: JSR BSOUT'X#0: INC SPEED'COUNTERp#:: LDY SPEED'COUNTER#D: CPY SPEED'GTH#N: BNE #b;# SPEED''CHECK # ;: LDX #5# ;: JSR CHKIN'# ; LDA RODBS ; OUTPUT BUFFER EMPTYF$ ;: CMP RODBE ; ALL IS WKING, TRY OVING THIS BUFFER CHECKS$ ;: BNE $0 ;: JSR $E7EC ; LAST BIT OF LAST BYTE S$D ;$N : JSR CH'$X JSR '$l : LDA A'$ : CMP #" " ; USER PRESSED SPACE, SET P1$ : BNE % : LDA #1% : STA P'<% LDA P' ; P0 SKIPH% : BNE v% : LDA SPEED'STATUS ; ST0 BACK % : BNE SPEED'% : JMP SPEED'%4 CMP #3 ; P3 UNPAUSE%H : BEQ %\ ;%SPEED' &$: LDA #0 ;TURN $ RAINBOW&8: STA RAINX&B: STA IN'SPEEDY ;SET UE 0 IN SPEEDY ANYMEp&L: LDA SPEED'OLD'MCI&V: STA MCI'ENABLE&j: JMP CH&t;&SPEED'CHECK'MCI &: LDA #0&: STA SPEED'T'MCI ;CLEAR FLAG&: LDA MCI'ENABLE': BEQ ': JSR BA#': #$7F2': CMP #"T"G': BEQ 'MCI'TRUEV': CMP #"F"l': BEQ 'MCI'FALSE{' : CMP #"J"': BEQ 'MCI'JUMP': CMP #"X"'(: BEQ 'MCI''2: CMP #"Z"'<: BEQ 'MCI'RAW'F: CMP #"E"'P: BEQ 'MCI'EMUJUMP(Z;(d STA SPEED'BUFFER1)(x: LDA #"\"@(: STA SPEED'BUFFERM(: LDY #2W(: RTS](;o(|'MCI'TRUE }(: JSR BA(: STA SPEED'MCI'WHERE ;NUMBER OF MARKER SKIP TRUE(: LDA LAST'MCI'TEST ; LAST TEST WAS TRUE ): BNE SCAN''MARKJ): LDY #0 ; SKIP MCI CODE JUST INUE T): RTSZ);m)D'MCI'FALSE {)X: JSR BA)l: STA SPEED'MCI'WHERE ;NUMBER OF MARKER SKIP FALSE): LDA LAST'MCI'TEST ; LAST TEST WAS FALSE *: BEQ SCAN''MARK*: LDY #0"*: RTS(*;:* 'MCI'JUMP H* : JSR BA*4: STA SPEED'MCI'WHERE ;NUMBER OF MARKER SKIP*H;*pSCAN''MARK * JSR BA*: CMP #"\"*: BEQ *: LDA IOSTATUS*: BEQ *: LDY #0*: RTS*; +8 JSR BA5+L: #$7F ;IS ACTER A 'MARK'D+`: CMP #"M"P+t: BNE ^+: JSR BAx+: CMP SPEED'MCI'WHERE+: BNE +: LDY #0+: RTS+;+SPEED'MCI'WHERE BRK ;MARK NUMBER SCANNING + ;+d'MCI' -,x: STA IOSTATUS ;NZERO IOSTATUSEOF, NE WITH SPEEDY7,: RTS=,;,'MCI'RAW ;TRANSMIT REST OF FILE DIRECT OVER MODEM,: STA SPEED'RAW'OUT ;SET RAW FLAG,;;LDA #0,;;STA MCI'ENABLE ;DISABLE MCI-: JMP BA ;SKIP DUMMY PARM CR$$-";h-X'MCI'EMUJUMP ; (C(30)2) BYTES JUMP THAT MARKx-l: LDY C302- JSR BA-: DEY-: BNE -: STA SPEED'MCI'WHERE-: JMP SCAN''MARK-;.; "-SPEEDY" :"SPEEDY""-SPEEDY" :"@SPEEDY"<'< ; CALCULTE TIME LINE @<; CALCULATES TI3600F<;[# LDA ACTIVE'KILLS ; THERE ARE NO ACTIVE KILLSW# : BEQ C41 ; ]# ;r# : ACTIVE'KILLS#0 : JSR C41'KILL ;KILL ANY S AT THIS LEVEL#D : JSR C41VAR'KILL ;KILL ANY VARIABLES AT THIS LEVEL#N ;$X : A'REG ;яENT # OF LEVELS TO KILL>$b : BNE ; ANY LEFT, BACKD$ ;P$ C41 Z$ : RTS`$ ;$ C41'KILL ;KILL S$ : LDY ACTIVE'KILLS$ : LDA PRE'KILL''HI,Y ; ò0 N'T ANYTHING!% : BNE ; (WAS AN EMPTY KILL) %4 : RTS&%> ;^%\ CLC ;ARRAYS'START PRE'KILL'u%p : LDA ARRAYS'START% : ADC PRE'KILL''LO,Y% : STA KILL'% : LDA ARRAYS'START1% : ADC PRE'KILL''HI,Y% : STA KILL'1% ; & KILLSTRINGS ;DO&&: LDA KILL' ;7&$: STA KILL'J&8: LDA KILL'1]&L: STA KILL'1c&`;&t: LDY #2 ;(,2)&: CLC&: LDA (KILL'),Y&: ADC KILL'&: STA KILL'&: INY&: LDA (KILL'),Y&: ADC KILL'1': STA KILL'1'(;:'<: LDA KILL' ; ARRAYS'M'P: CMP ARRAYS'Y'd: BNE l'x: LDA KILL'1': CMP ARRAYS'1': BNE ': JMP C41KILL';' LDY #0 ; (,0)127': LDA (KILL'),Y (: BMI ; A STRING(: INYE(,: LDA (KILL'),Y ; (,1)128 A STRINGQ(@: BPL m(h: LDA #0 ;START INDEX(|: JSR KILLSTRINGARRAY(;( JMP KILLSTRINGS ;(;(C41KILL (: LDY ACTIVE'KILLS(: CLC(: LDA PRE'KILL''LO,Y): ADC ARRAYS'START$)$: STA ARRAYS'>)8: LDA PRE'KILL''HI,YW)L: ADC ARRAYS'START1l)`: STA ARRAYS'1v) RTS|);)C41VAR'KILL ; OUT NARRAY STRINGS SHT*: LDY ACTIVE'KILLS ;ARRAY MEMY WN OLD OF NARRAYS/*: LDA PRE'KILL''LO,Y ;START AT OLD q*: STA KILL' ; UPDATE STRING POBACKS ARRAYS*: LDA PRE'KILL''HI,Y* : BEQ ; 0 HING! (WAS EMPTY KILL)*: STA KILL'1$+(: SEC ;SHT'SIZE VARS' PRE'KILL'5+2: LDA VARS'O+<: SBC PRE'KILL''LO,Yc+F: STA SHT'SIZEv+P: LDA VARS'1+Z: SBC PRE'KILL''HI,Y+d: STA SHT'SIZE1+n;+x: CMP #0 ; SHT'SIZE 0, HING KILL!+: BNE C41VAR',: LDA SHT'SIZE#,: BNE C41VAR'-,: RTS3,;C,C41VAR' },: LDA KILL' ; KILL'VARS' WE ARE NE,: CMP VARS',: BNE ,: LDA KILL'1,,: CMP VARS'1,@: BNE -T: JMP C41SHT'WN ;NE CLEARING STRINGS, SHT ARRAY MEMY WN-h;(-| LDY #0=-: LDA (KILL'),Y{-: BMI ; A STRING, SKIP THIS VARIABLE-: INY;#1-: LDA (KILL'),Y-: BPL ; A STRING, SKIP THIS VARIABLE-;-: INY;#2.: JSR 'OUT'STRING .0;.D CLC&.X: LDA KILL'3.l: ADC #7D.: STA KILL'W.: LDA KILL'1d.: ADC #0w.: STA KILL'1.: JMP C41VAR'.;.C41SHT'WN . : LDY ACTIVE'KILLS. : LDA PRE'KILL''LO,Y/4: STA KILL' ;KILL' IS ITI/H: LDA PRE'KILL''HI,Y0/\: STA KILL'16/p;M/: LDA ARRAYS'START/: STA KILL' ;KILL' IS OLD SOURCE ITI/: LDA ARRAYS'START1/: STA KILL'1/;/: LDY #0/;/ LDA (KILL'),Y/$: STA (KILL'),Y/8; 0L: INC KILL'0`: BNE )0t: INC KILL'1/0;@0 INC KILL'L0: BNE _0: INC KILL'1e0;v0 LDA KILL'0: CMP ARRAYS'0: BNE 0(: LDA KILL'10<: CMP ARRAYS'10P: BNE 0d;0x: LDY ACTIVE'KILLS+1: LDA PRE'KILL''LO,Y ;VARS'ARRAYS'STARTKILL'PRE'KILL'<1: STA VARS'M1: STA KILL'g1: LDA PRE'KILL''HI,Yz1: STA VARS'11: STA KILL'11;1: LDA KILL' ;ARRAYS' KILL'1,: STA ARRAYS'1@: LDA KILL'11T: STA ARRAYS'12h;D2|; ;UPDATE STRING POBACKS ARRAYSe2UPDATE'STRINGS ;2: LDA KILL' ;2: STA KILL'2: LDA KILL'12: STA KILL'12;2: LDY #2 ;(,2)2: CLC 30: LDA (KILL'),Y3D: ADC KILL',3X: STA KILL'63l: INYK3: LDA (KILL'),Y^3: ADC KILL'1q3: STA KILL'1w3;3: LDA KILL' ; ARRAYS'3: CMP ARRAYS'3: BNE 3 : LDA KILL'13 : CMP ARRAYS'134: BNE 4H: RTS ; ALL NE!$4\;14p LDY #0Z4: LDA (KILL'),Y ; (,0)1274: BMI ; A STRING4: INY4: LDA (KILL'),Y ; (,1)1284: BMI ; A STRING! SKIP AHEAD25 JMP UPDATE'STRINGS ; A STRING, SO INUE WITH ARRAY85;y5 LDY #4 ;UPDATE THE STRINGS IN THIS ARRAY!5$: CLC ;5ENSISENSIS58: LDA #55L: ADC (KILL'),Y5`: ADC (KILL'),Y5t: ADC KILL'6: STA KILL'6: BCC UPDATE'ARRAY16: INC KILL'176;X6UPDATE'ARRAY ;e6: LDY #2z6: LDA (KILL'),Y6: STA KILL'TEMP1 ;SUBTRACT SHT'SIZE FROM OLD POBACK6(: DEY6<: LDA (KILL'),Y6P: STA KILL'TEMP6d: DEY7x: LDA (KILL'),Y ; ?7: BEQ ; ò0, SKIPI7: TAY7: SEC ;POBACK POBACK SHT'SIZE7: LDA (KILL'TEMP),Y7: SBC SHT'SIZE7: STA (KILL'TEMP),Y7: INY7: BNE 7,: INC KILL'TEMP1 8@ LDA (KILL'TEMP),Y"8T: SBC SHT'SIZE1X8h: STA (KILL'TEMP),Y ;POBACK HAS BEEN UPDATED!^8|;8 CLC ;3 ( ELEMENT IN ARRAY)8: LDA KILL'8: ADC #38: STA KILL'8: BCC 8: INC KILL'18 ;9 LDX KILL' ; ( OF ARRAY)(90 : CPX KILL'?9D : BNE UPDATE'ARRAYR9X : LDX KILL'1e9l : CPX KILL'1|9 : BNE UPDATE'ARRAY9 ;9 : JMP UPDATE'STRINGS ; (FIND ARRAY)9 ;9 ;9 'OUT'STRING ;PASS WITH KILL'Y POING AT STRING!: ; BRING .Y IN ; GTHL: !: LDA (KILL'),Y ;_ STRING GTHb:!: BEQ ; RTS:*!: TAX ;EMBER LENGTH IN .X:4!: LDA #0:9!: STA (KILL'),Y ;ZERO THE GTH BYTE:>!: INY;H!: LDA (KILL'),Y ;_ PNTR LOWBYTE;\!: STA KILL'TEMP&;p!: INYS;!: LDA (KILL'),Y ;_ PNTR HIGHBYTEi;!: STA KILL'TEMP1;!: TXA ; GTH .A;!: TAY;!: STA (KILL'TEMP),Y ;SRE GTH AT GTH#: BCC >#: INC KILL'1>#;G># TXA ; STARTING INDEXk>$: BEQ C41OUT ;SKIP ZERO>$: LDY #3 ;ADD INDEX UE 3 TIMES>,$ CLC>6$: TXA>@$: ADC KILL'>J$: STA KILL'>T$: LDA KILL'1>^$: ADC #0?h$: STA KILL'1?r$: DEY?|$: BNE !?$;??$C41OUT ;L?$: LDY #0c?$: JSR 'OUT'STRINGt?$KILL'NADA ?%: CLC ;3?0%: LDA KILL'?D%: ADC #3?X%: STA KILL'?l%: BCC ?%: INC KILL'1?%;@% LDX KILL' ; @%: CPX KILL'1@%: BNE C41OUTD@%: LDX KILL'1W@%: CPX KILL'1i@ &: BNE C41OUTo@ &;y@4&: RTS@H&;@'C50 ;CLEAR ARRAY@$': LDA A'REG ; STRING ARRAY NAME@.': #$7F ;(FIRST IS LOWER CASE)A8': STA VARNAMEAL': LDA X'REGLAV': A #$80 ;(SECD IS UPPER CASE)`A`': STA VARNAME1fAj';A': JSR FINDARRAY ;FIND THE ARRAYA': BCC ; FOUNDA(: RTS ; A(;B<( LDY #2 ;KILL' VARPNT (VARPNT),2 BP(: CLC!Bd(: LDA (VARPNT),Y2Bx(: ADC VARPNTCB(: STA KILL'MB(: INYbB(: LDA (VARPNT),YuB(: ADC VARPNT1B(: STA KILL'1B(;B): LDA Y'REG ;START INDEXB): JMP KILLSTRINGARRAYB,);C; "-KILLER" : "KILLER" "-KILLER" : "@KILLER"  4000.G $12FE+.DVI 9:.DVO 9D#.OBJ "@0:MLC.XMODEM"Y(.LST "COMMON.ST"m2.LST "MODEM.ST"<.LST "VARIABLES.ST"P.LST "BANK0.ST"Z.LST "TRANSLATION.ST";.BYT 0 ;FIYPE LY PUNTER.BYT 0 ;PROCOL # 4863,D%(10)5JMP ALL'OKAY ;S TJMP ALL'OKAY ;RECV dJMP S'FILEvJMP RECV'FILEJMP ALL'OKAY ; MULTISRTS!NUMB'BLKS .WD 00 ;NUMBER OF BLOCKS (OF BELOW BYTES) TRANSMITTED LAST$.WD 128 ;NUMBER OF BYTES PER BLOCKP8MAX'BLKS .WD 00 ;MAX # OF BLOCKS MAY RECEIVEL.BYTE 0 ;XFER TYPE FLAG: 0GLE, 2MULTI`BRKJSR PRIMM'BBS ;PROCOL NAME. "MODEM/" : BRKRTS<;ALL'OKAY  : LDA #$00 : STA $0200": RTS8Z990F BRK NZ9910 BRK dZ9911 BRK zZ9912 BRK Z9913 BRK Z9914 BRK Z9915 BRK Z9916 BRK Z9917 BRK Z9918 BRK  Z9919 BRK * Z991A BRK @ Z991B BRK V Z991C BRK l Z991D STY $00 : BRK : BRK !: BRK ": BRK #: BRK $: BRK !%: BRK !&: BRK 2!': BRK H!(: BRK ^!): BRK t!*: BRK !+: BRK !,: BRK !-: BRK !/Z992F JSR $E6C2!2: LDA ENABL!5: CMP #$80 "7: BEQ Z992F "9: CMP #$92 6";: BEQ Z992F L"=: RTS b">Z993E LDA #$00 x"@: STA $0401 "C: STA $04A1 "F: STA $0483 "I: STA $04AB "L: STA Z9914 "O: STA Z9E42 "R: STA Z9E43 #U: STA Z9E44 (#X: STA Z9E45 >#[: STA Z9913 T#^: STA Z9911 j#a: LDA #$FF #c: STA $0402 #f: STA $04A2 #i: LDA #$01 #k: STA $0400 #n: STA $04A0 #q: LDA #$84 $s: STA Z991D $v: LDA #$1A 0$x: STA Z991A F${: RTS Z$|Z997C JSR CH m$: LDX #$02$: JSR CHKIN$: LDY #$00 $Z9986 TYA $: ASL $: BCS Z99E3 $: LDA Z9913 %: BEQ Z999A %: LDA #$00 1%: STA Z9913 G%: LDA #$0A ]%: TAX s%: JMP Z99AB %Z999A JSR BA%: TAX%: LDA 159 ;TRANSLATE FLAG%: BEQ Z99A7%: STY Y'REG : TAY%: JSR TRANS'S&: LDY Y'REG : TAX/&Z99A7 LDA IOSTATUSC&: BNE Z99C1Q&Z99AB TXAg&: STA $0403,Y}&: INY &: LDA 159 ;TRANSLATI FLAG&: BEQ Z9986 &: CPX #$0D &: BNE Z9986 &: LDA #$01 ': STA Z9913 (': JMP Z9986 <'Z99C1 #$40 R'Ù: STA Z9914 h'ƙ: BEQ Z9986 ~'ș: TXA 'ə: STA $0403,Y'̙: CMP #$1A 'Ι: BNE Z99D5 'Й: LDA #$00 'ҙ: STA Z991A (ՙZ99D5 INY (֙: TYA .(י: ASL D(ؙ: BCS Z99E3 Z(ڙ: LDA Z991A p(ݙ: STA $0403,Y(: CLC (: BCC Z99D5 (Z99E3 STY Z9915 (: INC $0401 (: DEC $0402 (: JSR CH ): LDX #$05 ): JSR CKOUT 4): LDA Z9911 J): BEQ Z9A0B `): JSR Z9EC4 v): LDA $04AB ): STA $0483 ): LDA $04AC ): STA $0484 ): JMP Z9A1F ) Z9A0B LDX #$00 ) : STX $0483 *Z9A10 LDA $0483 &*: CLC <*: ADC $0400,XR*: STA $0483 h*: INX ~*: CPX #$83 *: BNE Z9A10 *Z9A1F LDX #$00 *!Z9A21 LDA $0400,X*$: JSR BSOUT'*': INX +(: CPX Z991D ++: BNE Z9A21 ++-: JSR CH A+0: RTS U+1Z9A31 JSR CH k+4: LDA Z9915 +7: CMP #$80 +9: BEQ Z9A41 +;: LDA #$01 +=: STA $0200 +@: RTS +AZ9A41 LDA #$00 ,C: STA $0200 ,F: RTS -,GZ9A47 STA $06?,J: STX $07Q,M: STY $08e,P: JSR RDTIM{,S: STY Z9917 ,V: STX Z9918 ,Y: STA Z9919 ,\: RTS ,]Z9A5D JSR Z9A47 ,`: LDA #$70,b: STA Z991B -e: LDA #$17 (-g: STA Z991C >-jZ9A6A LDA Z991B T-m: CLC j-n: ADC Z9919 -q: STA Z9919 -t: LDA Z991C -w: ADC Z9918 -z: STA Z9918 -}: LDA #$00 -: ADC Z9917 .: STA Z9917 .: LDA $06(.: LDX $07:.: LDY $08P.: RTS f.Z9A8F JSR Z9A47 y.: LDA #$58.: STA Z991B .: LDA #$02 .: STA Z991C .: JMP Z9A6A .Z9A9F JSR Z9A47 .: LDA #$C8/: STA Z991B &/: LDA #$00 : LDA $04B3 J4A: CMP #$18 `4C: BEQ Z9B55 v4E: LDA $04B1 4HZ9B48 CMP #$43 4J: BEQ Z9B5D 4L: CMP #$15 4N: BEQ Z9B63 4P: JSR Z9ABF 4S: BCC Z9B37 5UZ9B55 LDA #$00 &5W: STA Z9915 <5Z: JMP Z9A31 R5]Z9B5D INC Z9911 h5`: INC Z991D ~5cZ9B63 JSR Z997C 5fZ9B66 JSR Z9A5D 5i: LDX #$05 5k: JSR CHKIN 5nZ9B6E JSR Z9EEB 5q: CMP #$06 6s: BEQ Z9BCD 6u: LDA $04B3 .6x: CMP #$18 D6z: BNE Z9B9B Z6|: LDA $04B1 p6: BNE Z9B9B 6: PHA 6: JSR 'ING6: PLA 6: BNE Z9B9B 6: JSR CH 6: LDA #$2A 7: JSR Z9E46 7: LDA #$00 37: STA Z9915 I7: JMP Z9A31 _7Z9B9B LDA $04B1 u7: CMP #$15 7: BNE Z9BB5 7: JSR CH 7: LDA #$3A 7: JSR Z9E46 7: LDX #$05 7: JSR CKOUT 8: JSR Z9A1F #8: JMP Z9B66 98Z9BB5 CMP #$43 O8: BNE Z9BC0 e8: LDA $0401 {8: CMP #$01 8: BNE Z9BC0 8Z9BC0 JSR Z9ABF 8Û: BCC Z9B6E 8ś: LDA #$00 8Ǜ: STA Z9915 8ʛ: JMP Z9A31 9͛Z9BCD LDA Z9914 +9Л: BNE Z9BDD ?9қ: JSR CH U9՛: LDA #$2D k9כ: JSR Z9E46 9ڛ: JMP Z9B63 9ݛZ9BDD JSR CH 9: LDA #$2A 9: JSR Z9E46 9: LDX #$05 9: JSR CKOUT :: LDA #$04 :: JSR BSOUT'.:: LDA $A2 D:: ADC #$3C Z:Z9BF3 CMP $A2 p:: BNE Z9BF3 :: LDA #$04 :: JSR BSOUT':: JSR CH :: LDA #$80 :: STA Z9915 :: JMP Z9A31 ;RECV'FILE TSX;: STX Z9916 /; : JSR Z993E C;: JSR CH _;: JSR CLEAR'RBUFFERu;: LDX #$05 ;: JSR CKOUT ;: LDA #$08 ;: STA Z9912 ;!: LDA #$43 ;#: JSR BSOUT';&: LDA #$00 <(: STA $04AD $<+: STA $04AF :<.: JSR Z9A9F P<1: JMP Z9C37 f<4Z9C34 JSR Z9A8F |<7Z9C37 INC $04A1 <:: DEC $04A2 <=: JSR CH <@: LDX #$05 j: BNE Z9CC7 >l: LDA $04B1 />o: CMP #$18 E>q: BNE Z9C85 [>s: LDA $04B3 q>v: CMP #$18 >x: BNE Z9C85 >z: JSR 'ING>: BNE Z9CC7 >: JMP Z9DFB >Z9C85 LDA $04B1 >: CMP #$04 ?: BNE Z9CC7 ?: JSR 'ING5?: BNE Z9CC7 I?: JSR CH _?: JSR Z9AAF u?Z9C9A JSR Z9ABF ?: BCC Z9C9A ?: LDX #$05 ?: JSR CKOUT ?: LDA #$15 ?: JSR CH ?: LDX #$05 @: JSR CHKIN'"@: JSR Z9A8F 8@Z9CB1 JSR Z9EEB N@: CMP #$04 d@: BEQ Z9CC1 z@: CMP #$01 @: BEQ Z9CC7 @: JSR Z9ABF @: BCC Z9CB1 @Z9CC1 JMP Z9E25 @ĜZ9CC4 JMP Z9C45 @ǜZ9CC7 JSR Z9AAF Aʜ: LDY $04AD *A͜: LDA $04B1 @AМ: STA $0400,YVAӜ: INY lAԜ: STY $04AD Aל: CPY Z991D Aڜ: BNE Z9CC4 Aܜ: LDA $0400 Aߜ: CMP $04A0 A: BNE Z9D1F A: LDA $0401 B: CMP $04A1 B: BNE Z9D63 2B: LDA $0402 HB: CMP $04A2 ^B: BNE Z9D63 tB: LDA Z9911 B: BEQ Z9D06 B: JSR Z9EC4 B: JSR Z9ED5 B: CMP #$00 B: BNE Z9D1F B: JMP Z9D21 CZ9D06 LDA #$00 $C: STA $04AB :C : LDY #$00 PC Z9D0D LDA $0400,YfC: CLC |C: ADC $04AB C: STA $04AB C: INY C: CPY #$83 C: BNE Z9D0D C: CMP $0483 DZ9D1F BNE Z9D89 D!Z9D21 JSR CH *D$: LDX #$02 @D&: JSR CKOUT VD): LDY #$FF lD+Z9D2B INY D,: LDA $0403,YD/: LDX 159 ;TRANSLATE FLAGD0: BEQ D3: STY Y'REG : TAYD5: JSR TRANS'RECEIVEDE6: LDY Y'REGE7: CMP #0(E8: BEQ Z9D3F ;-H LDY NOWLINE%-M : CPY #21;-R : BNE FINISH'WRAPI-W : LDA #13]-\ : JMP 'EDITINGc-f ;v-z FINISH'WRAP - : LDA #13- : JSR ERPRET'ACC- ;- : JMP - ;- LDA WDWRAP'BUFFER,Y-$: STA A'-8: JSR N'MCI'CHROUT .L INC WDWRAP'SIZE!.`: LDY WDWRAP'SIZE/.j: CPY #17;.t: BNE A.~;P.: LDA #255g.: STA WDWRAP'SIZE}.: JMP MAIN'EDIT'.;.CHECK'RIGHT .: LDX NOWCOLUMN:DEX.: CPX MAX' ; COLUMN MAX1 TREAT LIKE A CR$/: BEQ ; NO PROBLEM, AS NMAL+/: JMP 'OUTPUT9/ LDA #13G/: STA A'Y/,: JMP ERP'A_/@;q/hCHECK'LEFT /|: LDX NOWCOLUMN ; COLUMN 0, TTA HLE THAT SPECIAL/: BEQ /: JMP 'OUTPUT ;, JUST LEFT!/;0 LDY NOWLINE ; AT P OF TEXT0: CPY #1*0: BNE b0: JMP 'EDITING ; BACK BASIC SCROLL THE SCREENh0;00 LDX MAX' ;, SET CURS AT RIGHT OF PREVIOUS LINE0D: LDY NOWLINE0X: DEY0l: JSR SET'CURS1: JMP 'OUTPUT ;... THE CURSLEFT 1;1INSERT' O14: LDY MAX' ; ACTER AT MAX'1.TH COLUMNY1H: DEYi1\: JSR $CB6D1p: CMP #" " ; A SPACE1: BEQ ; ALLOW INSERT1: LDA #7 ;, NO ROOM INSERT. BEEP1: STA A'2 JMP 'OUTPUT 2;2'EDITING &2: PHA:2: LDX NOWCOLUMNP2: STX LAST'COLUMNb2: LDY NOWLINEv2: STY LAST'LINE|2;2: LDA : #15 : TAX2: LDA S'S,X2 : STA LAST'2;2P: LDY #0 ;CLEAR P'2d: STY P'2x: PLA3 INY3: CMP 'CODES1,Y$3: BEQ 23: CPY #15>3: BNE D3;N3 TYAb3: STA LAST'CODEl3: RTSr3r;3 ; CR UP DN LFT DEL RT S G P V CARRIER3'CODES .BYT 13,145,17,157,020,29,03,0,147,07,01,02,0,255,03f;;4p'DEL ; PULLBACK CHECK LEFTMOST COLUMN`4: LDX NOWCOLUMN ; COLUMN 0l4: BNE 4: JMP CHECK'LEFT ; SPECIAL HLING4;4 LDA C22 ; C GFX MODE4: BEQ 48: LDA #20 ; C GFX 5L: JSR MODEM'PUTBYTE$5`: JMP 'DEL'LOCAL*5;c5 LDA #8 ; ANSI BACKSPACE PULLBACK{5: JSR MODEM'PUTBYTE5: LDA #275: JSR MODEM'PUTBYTE5: LDA #"["5: JSR MODEM'PUTBYTE5: LDA #"1"5: JSR MODEM'PUTBYTE6: LDA #$50 ;"P" (PULLBACK E )76: JSR MODEM'PUTBYTE=6;P6'DEL'LOCAL V6;}6: JSR $C91B ;LOCAL ACTER6: JSR $CD5B ;UPDATE CURS 6: JMP MAIN'EDIT'6;6'DELWD 6: JSR SET'SCRN'ADDRESS6: LDA #207: STA A'7 LDY NOWCOLUMN:DEY,7: BMI 87: BEQ g7: JSR $CB6D ; AT CURS 7: CMP @" " ; SPACE7: BEQ ; NE7: JSR ERPRET' ; 7: JMP 7;80 JSR ERPRET' ;DEL THE SPACE+8: JMP MAIN'EDIT'18N;j8 'A ;OUTPUT IMAL UE OF ACC BETWEEN 0 99w8\: LDY #08f: SEC8p SBC #10 ;CALCULATE # OF 10'S8z: BCC ;FOUND NUMBER OF 10'S!9: INY ;, KEEP COUTING9: BNE 9;P9 ADC #10 ;ADD 10 BACK .A BACK ITIVE #^9: PHA:TYAl9: A #"0"9: JSR ERPRET'ACC9: PLA9: A #"0"9: JMP ERPRET'ACC9;9@CLEAR'LINES ; CLEAR LINES .A THROUGH .X 9J: INX-:T: STX SL ;SRE (E PAST) LAST LINE #\:h: LDX #0 ;MOVE CURS X:0 Y:ACCf:|: TAYz:: JSR SET'CURS:;: JSR CLEAR'LINE:: LDA NOWLINE:: CMP SL ; CURRENT LINE LINE:: BEQ ; ALL NE!;: INC NOWLINE ;, LINE*; : BNE 0; ;:;D RTS@;X ;s;(#CLEAR'LINE ;CLEAR CURRENT LINE;<#: LDA C22 ; ANSI, SKIP;P#: BEQ 'ANSI;Z#: LDA NOWCOLUMN;d#: BEQ ; AT LEFT OF SCREEN, SKIP1O$: LDA #13 :JSR MODEM'PUTBYTE ; NING OF LINE->T$;<>h$'CLEAR x>|$: LDA #0 : STA NOWCOLUMN ;SET LOCAL AT NING OF LINE>$: JSR SET'SCRN'ADDRESS>$: JSR $CA76 ;CLEAR LOCAL LINE>$: JMP $CD5B ;UPDATE CURS >$;!?'PNT'SCRN FAC1 ; TEXT MEMYL?$'PNT'ATRB FAC12 ; ATTRIBUTE MEMl?8'S' FAC14 ; OF LINE?L'S'RVS FAC15 ;REVERSE MODE FLAG?`'S' FAC16 ;FLASH MODE FLAG?t'S'UE FAC17?'S'COLUMN FAC18 ;COLUMN COUNT@'S'TEMP FAC193@'S'UNDER FAC110 ;UNDERLINE MODE FLAGy@'S'MIDSPACE FAC111;A$ INDEX ITI OF LAST SPACE BEE 40TH COLUMN@'S'MID FAC112;COLUMN OF THE LAST SPACE BEE 40TH COLUMN@((;@*SNAPLINE ;SRED O TX$@*: LDY #2 A+: JSR 'VAR'SPECS ;TX$A+;9A +: LDX A'REG ;LINE #TA +: LDA LINE'START'LOW,XgA4+: STA PNT'SCRNzAH+: STA PNT'ATRBA\+: LDA LINE'START'HIGH,XAp+: STA PNT'SCRN1A+: A #$10A+: STA PNT'ATRB1A+;A+: LDA #0B+: STA S'RVS ;CLEAR REVERSE, UNDERLINE@B+: STA S'COLUMN ;SET COLUMN INDEX ZERORB+: STA S'UNDERaB,: LDA #128~B$,: STA S' ; FLAG128B.,: STA S'MIDSPACE ;MIDSPACE ITI NEGATIVEB8,;BL,: LDY SCRT ;FIND FIRST NSPACE & NRVS FROM RIGHT(C, JSR 'SCRN'Y ; IS A NREVERSED SPACESC,: CMP #" " ; FOUND THE !_C,: BNE iC,: DEYuC,: BPL C, STY S' ; NEVER FOUND ANYTHINGC,: CPY #$FFC,: BNE ; BLANK LINE BASICC,: JMP S'FINISHEDC,;D- D-: JSR 'SCRN$D(-: STA S'UE5D<-: JSR 'ATRB?DP-: PHAYDd-: #15 ; gDx-: CMP S'D-: BEQ ; HASN'T CHANGED SKIPD-;D-: LDY S'RVS ; (RVS $) (SPACE)D-: BNE D-: LDY S'UEE-: CPY #" " ; IGNE THE CHANGE$E-: BEQ *E-;WE- STA S' ; EMBER THE NEW COLORaE-: TAYE-: LDA S'S,Y ; CVERT PETSCIIE-: JSR S'SRE ; SRE TX$E-;E. PLAE.: #%00100000 ;UNDERLINE FLAGE,.: CMP S'UNDER F@.: BEQ FT.: STA S'UNDER(Fh.: CMP #07F|.: BEQ TUOFFF.: LDA #""YF.:.BYT SKIP'WDeF.TUOF tF.: LDA #""F.: JSR S'SREF. LDA S'UEF.: CMP #128 ;A128F.: BCC F/: LDA S'RVSF/: BNE L1670 ; R.G0/: LDA #"" ; A$A$""GD/: JSR S'SRE#GX/: INC S'RVS3Gl/: JMP L16709G/;TG/ LDA S'RVS ; R0dG/: BEQ L1670G/: LDA #"" ; A$A$""G 0: JSR S'SREG 0: S'RVSG40: LDA #128GH0: STA S'G\0;Gp0L1670 Gz0: LDA S'UEG0: JSR SCRN''IIH0: CMP #0H0: BEQ H0: JSR S'SRE&H0;WH0: CMP #" " ; SPACE (0)40cH0: BNE vH0: LDA S'COLUMNH0: CMP #40H0: BCS H0;H0: STA S'MID ; MIDITI H0: LDY SI : DEY ; MIDSPACE ITISI I0: STY S'MIDSPACEI0;,I0 INC PNT'SCRN : BNE AI1: INC PNT'SCRN1\I$1 INC PNT'ATRB : BNE qI81: INC PNT'ATRB1wIL1;I`1 INC S'COLUMNIt1: LDA S'I1: CMP S'COLUMNI1: BCC S'FINISHEDI1: JMP I1;I2S'FINISHED J2;; ;CHECK INSERTI OF SHTEJ2: LDA S' ; S' 40 SKIP SJ3: CMP #40gJ3: BCC S'FINISH2J,3: LDA S'MIDSPACE ; S'MIDSPACE IS UNSET SKIP J@3: BMI S'FINISH2Jh3: SEC ; (S' S'MID) 40 SKIP !K|3: LDA S' ; SECD HALF WOULD BE O LG2K3: SBC S'MID@K3: CMP #40TK3: BCS S'FINISH2ZK3;K4: LDY S'MIDSPACE ;A$[S'MIDSPACE] SHTK4: LDA #141K4: JSR BSTAK 5;Kl9S'FINISH2 K9: LDA #13K9: JSR S'SREK9: JMP CHECK'EQUAL'VARK@Q; LTQS'SRE LhQ: LDY SI'L|Q: JSR BSTA4LQ: INC SI>LQ: RTSDLQ;RLQ'SCRN gLQ: LDA PNT'SCRN1uLQ: LDX #18LQ: SEILR: JSR VDCLR: INXL0R: LDA PNT'SCRNLDR: JSR VDCLNR: JSR VDC«2LXR: CLILbR: RTSLlR;LR'ATRB MR: LDA PNT'ATRB1MR: LDX #18 MR: SEI/MR: JSR VDC9MR: INXLMR: LDA PNT'ATRB[MR: JSR VDClMS: JSR VDC«2vM S: CLIMS: RTSM S;M4S'SCRN'Y MHS: CLCM\S: TYAMpS: ADC PNT'SCRNMS: STA S'TEMPMS: LDA PNT'SCRN1MS: JMP MS;NS'ATRB'Y NS: CLCNS: TYA,NT: ADC PNT'ATRB=N$T: STA S'TEMPRN8T: LDA PNT'ATRB1_NLT ADC #0mN`T: LDX #18wNjT: SEINtT: JSR VDCNT: INXNT: LDA S'TEMPNT: JSR VDCNT: JSR VDC«2NT: CLINT: RTSNT;NTS'S OU. ""O(U;O]CURS' #O]: LDA #01O]: LDX #10;O]: SEIJO]: JSR VDCZO^: CLI : RTS`O$^;fO_;O`MAX' ;MAX COLUMNS SCREEN USE. 38 74OjWDWRAP'SIZE 1 ;# OF S IN WDWRAP'BUFFER, 0NEPtWDWRAP'BUFFER 2 ;16 BYTE BUFFERFP; "-EDITOR" : "EDITOR" "-EDITOR" : "@EDITOR"  *** COMMON BANK CODE ****40008.G $2300J.DVO 9:.DVI 9c.OBJ "@0:COMMON.OBJ"ic;d.LST "VARIABLES.ST"n.LST "BANK0.ST"x.LST "C-ARRAY.ST".P';'BSTA ': STA 1$': STA (SP),Y.': LDX #08': STX 15 B': RTSL';t'BLDA -~': STA 1>': LDA (SP),YK': LDX #0[': STX 15e': RTSk';|'BLDA'PNTR ': STA 1': LDA VARSTART,Y': LDX #0 : STX 15': RTS'; <('VAR'SPECS ;LDY #INDEX VAR MEMY BEE CALLINGF(: STA 1&P(: LDX #0;Z( LDA VARSTART,YJd(: STA SL,XZn(: INY : INXgx(: CPX #4s(: BNE (: LDX #0 : STX 15(: RTS(;,BLDA'ACC ,: STX 1-: STA BACCFLDA -BACCFLDA 1-: LDA ($83),Y ;$83 IS CHANGED UE OF ACC ENTRY4-: LDX #0 : STX 15>(-: RTSD2-;v.JMP ;JMP .X.Y IN  CFIGURATIN .A.: STA .: STY JMP'ADRS1.: STX JMP'ADRS2/JMP'ADRS /: JMP $FFFF/;D/JMP1 ;JMP .X.Y IN  1 N/: STA 1& X/: STY JMP1'ADRS1> b/: STX JMP1'ADRS2Q l/JMP1'ADRS a v/: JMP $FFFFg /; /JSR1 ;JSR .X.Y IN  1,  15 /: JSR JMP1 /: LDX #0 /: STX 15 /: RTS /;! 0JSR15 ;JSR .X.Y IN  15,  1!0: LDA #0"! 0: JSR JMP1!*0: STA 1;!40: RTSA!>0;s!p0JSR14 ;JSR .X.Y IN  14,  15!z0: LDA 14!0: JSR JMP!0: LDA #0!0: STA 15!0: RTS!0;!2CALLVARFAC ;MOVE VAR AT ADDRESS FAC, S RAM1 " 2: JSR $AF60"2: LDA #0&"2: STA 150"(2: RTS6"22;M"2ED'BASIC'ERR "2: STA 14 ;ENABLE RAM 0, BASICKERNAL ROM, NO IO"2: JMP BASIC'ERR ;D IN "WEDGE" FILE"3; BASIC ERRS CAN OCCURE WITH EITHER RAM  0 1 ACTIVE, SO WE:#3; MUST HAVE THIS CODE IN BOTH S SWITCH RAM 0 WHERE THEd#3; CENTIPEDE ERR HLING CODE IS D.j#"3;z#:CALLCHR #:: LDX #0#:: STX 15#:: JSR ERPRET'ACC#:: STA 1#:: RTS#:;$:CALLMCICHR ; ACTER IN .A FROM  1, SKIP MCI$;: LDX #0#$;: STX 151$;: STA A'I$$;: JSR N'MCI'CHROUTX$.;: STA 1b$8;: RTSh$B;;x$`;CALLCHR $j;: LDX #0$t;: STX 15$~;: JSR C4P$;: LDA A'$;: LDY P'$;: STX 1$;: RTS$;; %PF'MODUAL ;MODUAL #.X COPIED $1E00%iF: STX 17%nF;;STX $BE ;TESTq%xF: LDA $2500,X : STA SP ;MODUAL STARTING ADDRESS LOW%F: LDA $2501,X : STA SP1 ; " " " HIGH%F: LDA $2502,X : STA SL ;MODUAL GTHIN PAGES&F: LDA #0 : STA SI ;PAGES COPIED SO FAR&F;L&F: TAX ; 15 EACH BYTE~&F: TAY ;STARTING INDEX 0&F: : STX PNT&F: LDA #$1E : STA PNT1;DESTINATI$1E00&F;&F;&G STX 1&"G: LDA (SP),Y',G: STX 15'6G: STA (PNT),Y!'@G: INY-'JG: BNE O'TG: INC SP1 :INC PNT1 :INC SIj'^G: LDA SI :CMP SL:BNE p'hG;'|G JMP $1E00 ; START OF THE ROUTINE'G;' NMCI'ERR ;REPLACES BASIC ERR ROUTINE MCI VARIABLE (*N: STA 14 ;IS BEING EUATED#(>N: LDX OLDSTACK : TXS<(HN: LDA #"*" :STA $100U(RN: LDA #0 :STA $101d(\N: STX 1n(fN: RTSt(zN;(NOLDSTACK .BYT $FF(N;(NCALLESTRING ;CALL BASIC RESSI EUAR FROM  1(N: STX 14(N: TSX : STX OLDSTACK)O: JSR $AF96 ;E FACJ)O;;JSR $AF06 ;CVERT FAC BUFFER $100Y)O: STX 1c)$O: RTSi).O;)RLDA'FIAME ;LDA FIAME'TABLE,Y IN  0, RAM1ROM)R: LDX #0)0R: STX )DR: LDA FIAME'TABLE,Y)XR: LDX #RAM1ROM*lR: STX  *R: RTS*R;)*`.SST "@0:COMMON.ST"j*; "-COMMON" : "COMMON" "-COMMON" : "@COMMON".; CUSM 80C SCREEN CHROUT ROUTINE J; JSR CHROUT'BBS CALLP;LINE'START'LOW .BYTE $00,$50,$A0,$F0,$40,$90,$E0,$30,$80,$D0,$20,$70,$C0: .BYTE $10,$60,$B0,$00,$50,$A0,$F0,$40,$90,$E0,$30,$80,$D0:: .BYTE $20,$70,$C0,$10,$60,$B0,$00,$50,$A0,$F0,$40,$90,$E0: .BYTE $30,$80,$D0,$20,$70,$C0,$10,$60,$B0,$00,$50,$A0LINE'START'HIGH .BYTE $00,$00,$00,$00,$01,$01,$01,$02,$02,$02,$03,$03,$03 : .BYTE $04,$04,$04,$05,$05,$05,$05,$06,$06,$06,$07,$07,$07n$: .BYTE $08,$08,$08,$09,$09,$09,$0A,$0A,$0A,$0A,$0B,$0B,$0B.: .BYTE $0C,$0C,$0C,$0D,$0D,$0D,$0E,$0E,$0E,$0F,$0F,$0FB;LSET'SCRN'ADDRESS Q: LDX NOWLINE ; SET TEXT ATTRIBUTE S0VZC15E LDA LINE'START'LOW,XH`: STA TEXT'PNTR]j: STA 'PNTR}t: LDA LINE'START'HIGH,X: STA TEXT'PNTR1: A #$10 ;ADD ATTRIBUTE BASE: STA 'PNTR1: RTS ZC320 A #64 ;CVERT FROM II CODE1 ZC322 LDX RVSA : BEQ o : A #128 ; REVERSE , SET HI BIT  PHA :LDY NOWCOLUMN : JSR $CDF9 :LDA :JSR VDC2 ; : JSR $CDE6 :PLA :JSR VDC2 ; !: LDY NOWCOLUMN ;CURS RIGHT E!!: CPY SCRT:BCC ;! : PHA: JSR ZC363 :PLAJ!: LDY #255b! INY:STY NOWCOLUMNl!(: RTS!ZC363 LDX NOWLINE ; PERM LINEFEED!: CPX SCBOT ; BOTM OF SCREEN, SKIP!: BCC ZC377 "ZC373 JSR ZC3A6 ;SCROLL SCREEN"ZC377 INC NOWLINE R"ZC379 JMP SET'SCRN'ADDRESS ;SET TEXTATTRIB S{""ZC3A6 ;SCROLL UP",: NOWLINE"T: LDX #0 ;SCP"^: CPX $DF "h: BCS "r: DEC $DF #| JMP ZSCROLL ;MOVE AINING SCRN ;;JSRT#;; LDA #0 ;CLEAR ALL LINE OVERFLOW BITS#;; STA $035E:STA $035F:STA $0360:STA $0361#;; RTS#l. 0#ZC3DC ; CLEAR LINE .X (WITH MOVE)$: JSR ZC15E ;SET DESTINATI ADDRESS OF BLOCK MOVE$$: LDY SCLF8$: CPX SCBOTg$: BCS ZC4A5 ;SKIP AT BOTM OF SCRNu$: INX$: JSR ZC40D ;CALL MOVLIN:  LINE$ : BPL ZC3DC ; LINE (BRA)$ZC40D ; MOVLIN: A  LINE)%: STX $0A31 ;TEMP SRE X Y REGS?%: STY $0A32 d%: LDX #$18 ;SET VDC BITz%: LDA #12832%: JSR VDC%: JSR $CDE6 ;SET DESTINATI ADDRESS CURRENT LINE,COLUMN &$ : LDX #$20 ;TELL VDC SOURCE BLOCK START ADDRESS&. : CLC(&8 : TYA:&= : ADC #80R&B : ADC TEXT'PNTRd&L : STA $DAu&V : LDA #0&` : ADC TEXT'PNTR1&j : STA $DB&t : JSR VDC&~ : INX & : LDA $DA& : JSR VDC& : SEC' : LDX SCRT' : INX,' : TXA@' : SBC $0A32V' : STA $0A32 l' : LDX #$1E ' : JSR VDC ;S GTH VDC ' : LDX #$20' : LDA $DB ;CALC ATTRIBUTE RAM START ' : #7+( : A #$10 ;$SET ATTRIB RAMp( : JSR VDC ;SET LOW BYTE SOURCE BLOCK ATTRIB RAM ( : INX (( : LDA $DA(2 : JSR VDC ;SET HIGH BYTE SOURCE BLOCK )< : JSR $CDF9 ;SET DESTINATI ADDRS )F : LDA $0A322)P : LDX #$1E])Z : JSR VDC ;SET GTH q)d : LDX $0A31)n : RTS)x ZC4A5 LDY SCLF) : JMP $C4C0) .E) ;) CHROUT'BBS ;PASS IN .A* : STA X : STX CHROUT'XREG : STY CHROUT'YREG ;EMBER X&Y REGSF* : LDX C27 ; OUTPUT ER FLAGR* : BEQ b* : JSR CKOUTo* : LDA X* : JSR $EF79;BSOUT ; S ER FIRST, INUE WITH SCRN* : JSR CH* LDA #CHROUT'OUT : PHA ; CHROUT'OUT+ : LDA #CHROUT'OUT : PHA + ;+ ZC72D ?+ LDA $0A21 ;NOSCROLL FLAGT+ : BNE + : STA $D6 ;CLEAR FLAG VIA BOARD+ : LDY NOWCOLUMN+ : LDA X+ : CMP #13 ; OUTPUT A , : BEQ ZC76F ; THE ROUTINE', : TAXe, : BPL ; BETWEEN 128255, MAYBE ROMy, : JMP ZC805, CMP #32 ; 031, E ROL S, : BCC ZC7B6, : CMP #96 ; 96127, OUTPUT TER- : BCC 4- : #$DF ;MASK OUT BIT 5K- : .BYT SKIP'WD- #$3F ;OUTPUT TER MASK OUT BITS 67-* : JMP ZC322-H ZC76F ;CARRIAGE LINE-f : LDY #0-p : STY NOWCOLUMN.z : JSR ZC363 ;LINEFEED>. : LDA ;RESET RVSINSERTO. : #$CF_. : STA p. : LDA #0. : STA RVS. : RTS.tZC7B6 JMP $C7D0 ; EUATE ROL CODE.ZC805 #$7F /: CMP #32 ; BETWEEN 128 160, USE ROM CODE/: BCS 1/: JSR $C81DB/: LDA #0n/: STA INSRT ;TURN $ INSERT MODE|/: RTS/ JMP ZC320 ;OUTPUT/;/CHROUT'OUT 1/: JSR $CD5B ;SET CURS CURRENT COLUMN0: LDA X : STA LSTCHRH0: LDX CHROUT'XREG : LDY CHROUT'YREG ; X&Y REGS CALL UESX0: CLC : RTS^0;m0pZSCROLL 0: LDX #24 ;SET BIT0: LDA #128320: JSR VDC0: LDY #0 ;START LINE0;1 LDA LINE'START'HIGH,Y ;SET DESTINATI SCREEN LOCATI%1: LDX #1841: JSR VDCO1: LDA LINE'START'LOW,Y^1$: INX ;#19m1.: JSR VDCs18;1L: LDA LINE'START'HIGH1,Y ;SET SOURCE SCREEN LOCATI1`: LDX #321j: JSR VDC1t: LDA LINE'START'LOW1,Y1~: INX ;#332: JSR VDC 2;62: LDA #240 ;240 BYTES3 LINESD2: LDX #30v2: JSR VDC ;PERMS OF A LINE OF SCREEN|2;2(: LDA LINE'START'HIGH,Y ;SET DESTINATI ATTRIB LOCATI2-: A #$1022: LDX #182<: JSR VDC3F: LDA LINE'START'LOW,Y3P: INX ;#193Z: JSR VDC$3d;^3x: LDA LINE'START'HIGH1,Y ;SET SOURCE ATTRIB LOCATIl3: A #$10z3: LDX #323: JSR VDC3: LDA LINE'START'LOW1,Y3: INX ;#333: JSR VDC3;3: LDA #240 ;240 BYTES3 LINES4: LDX #30*4: JSR VDC ;PERMS OF A LINE04;B4,: INY:INY:INYp4@: CPY #24 ;INUE HIT LAST LINE|4T: BNE 4h;4: LDA #32 ;SET FILL BIT4: LDX #244: JSR VDC4;5: LDA #$780 ;SET LOCATI OF LAST LINE TEXT5: LDX #185: JSR VDC.5: LDA #$780=5: INX ;#19L5: JSR VDCR5;{5: LDA #32 ;FILL WITH SPACES5: JSR VDC25: LDA #79 ;FILL WITH 79 ME SPACES5: LDX #305&: JSR VDC50;6X: LDA #$1780 ;SET LOCATI OF LAST LINE ATTRIB%6b: LDX #1846l: JSR VDCF6v: LDA #$1780U6: INX ;#19d6: JSR VDCj6;6: LDA ;FILL WITH CURRENT ATTRIB6: #%10001111 ;STRIP OUT RVSUNDERLINEBLINK6 : JSR VDC27*: LDA #79 ;FILL WITH 79 ME74: LDX #30"7>: JMP VDC(7;j7; "-CHROUT" : "CHROUT" "-CHROUT" : "@CHROUT"*C4 LDA #1=+: STA CE'CASE ;SET UPPERCASE LY FLGJ +C4P X+: JSR 'e +: LDA #0*+: STA CE'CASE ;UPCASE LY FLAG/+: LDA P' ; IN BASIC WITH P4+: RTS9+;>+ZC465 C+' H+: LDA C34 ;TIMEOUT SET FLGR+: BEQ \+C4CL .a+: LDX #255<f+: STX P'Np+: INX ;LDX #0\z+: STX A'f+: RTS+ LDA C28 ;CARRIER IRQ FLG+: CMP #255+: BNE + JSR C4CL ;BACK A FEW LINES+: STX $DD01+: RTS+ LDA C12 ;CARRIER LOST FLAG"+: #$EF.+: BNE >,: LDA $DD01I,: #4m,: BEQ ;CARRIER LOST$, LDA P' ;WAS OUTPUT PAUSED.,: CMP #3@,: BEQ B,: LDA #0L,: STA P'Q, JSR IN'S,: CMP #0 : BEQ INMODEM ; NO PRESS<V,: CMP #10 : BEQ INMODEM ; LF SKIP FROM MODEMX`, CMP #$85 ; F1dj,: BNE t,: JSR MOD13 ;CHAT MODEy, STA A'{,: LDX SHFLAG ;CHECK ALT S~,: CPX #8,: BNE GCFKB,: JSR ALTS,GCFKB & ,: STA FROM ;ANYTHING BUT 0 SREDFROM LOCALA ,: JSR CHECK'SPECIAL'SO ,: LDY A' ,: JSR TRANS'BOARD ;CALL TRANSLATI CODE ,ZC4CF ,: LDY CE'CASE ,: BEQ ,: CMP #"A" ;CES ALL TERS UPPER CASE. EVEN FLAG IS/!,: BCC ; CING MIXED. THAT'LL BE HLED FROM C8>!,: CMP #"["J!,: BCS Y!-: ADC #$80f! -: LDY #0l!-;!- STY PAUSE'COUNT!2-: STA A'!<-: RTS!P-;!_-INMODEM !d-: LDX #5!i-: JSR CHKIN!n-: JSR 'ING"s-: BNE ; ING, SKIP IT!"x-: LDA #06"}-: BEQ ZOAV ;BRA<"-;R"- JSR MODEM'BYTE^"-ZOAV l"-: STA A'z"-: JSR CH"-: LDA A'"-: CMP #0"-: BNE ; NO "-: LDA BUFF'STAT ; DUMPING BUFF#-: BMI ; #-: RTSJ#- JSR 'BUFF ; FROM BUFFX#-: STA A'h#-: JMP GCFKBu#- LDA #0#-: STA FROM#-: LDA C31 ;IS CHROUT MODEM SET#-: BNE ;SKIP LOCALMODE$-: JSR CHECK'SPECIAL'S$-: LDY A'&$-: JSR TRANS'6$.: JMP ZC4CFC$. LDA #0Q$".: STA A'[$,.: RTSa$r.;y$|.CHECK'SPECIAL'S $.: LDA A'$.: CMP #"" ; HOME$.: BNE $.: LDA #3$.: STA P'$.: LDA #0$.: STA PAUSE'COUNT%.: JMP CLEAR'N'%%. LDA P' ; WAS PAUSED1%.: BEQ <%D/NRC a%l/: LDA #0 ; UNPAUSE NOWo%v/: STA P'%/: JMP CLEAR'N'%/ LDA A'%/: CMP #"" ; P%/: BNE %/: LDA #1%/: STA P'%/: JMP CLEAR'N'&/ CMP #" " ; K&/: BNE +&/: LDY LASTFROM : BNE C&/: LDY SI : JSR BLDAQ&/: STA A'n&/; CMP #"" ; W{&/;: BNE &/;: JMP ROL'W&/ CMP #"" ; V&/: BNE &0: LDA #2& 0: STA P'&0: JMP CLEAR'N'' 0 CMP #"" ; X '*0: BNE '40: LDA #4''>0: STA P';'H0: JMP CLEAR'N'X'\0 CMP #" " ; TABd'f0: BNE }'p0: LDA #" " : STA A''u0: LDX #4 : STX INBUFF'z0 STA KBBUFF,X'0: DEX'0: BPL '0 RTS'71;'81CLEAR'N' 'B1: LDA #0'L1: STA A'(V1: RTS(`1;(2CC8 ;(2: LDA #0: STA LAST'C8'STYLEG(2C8PE b( 2: LDA MCI'ENABLE:PHAq( 2: LDA #0(2: STA MCI'ENABLE(2: JSR C8(2 PLA(2: STA MCI'ENABLE(#2: JMP CHECK'EQUAL'VAR(22CC9 (72: LDA MCI'ENABLE:PHA )<2: LDA #0")A2: STA MCI'ENABLE<)C2: STA LAST'C8'STYLEK)F2: JSR C9Y)K2: JMP _)Y2;)d2C8 ;START TX$ FROM BOARD MODEM)n2: LDY #2)x2: JSR 'VAR'SPECS)2: JSR CSR80 ;TURN CURS )2;*2C9 LDA MAXCOL*2: STA MAXCOL2#*2: LDA #08*2: STA SPACECOLJ*3: STA LASTb*3: STA PAUSE'COUNTh*3;*,3C8' ;MAIN *@3: LDA #0 ;REENTRY C8 *T3: STA P'*h3: JSR '*|3: LDA P' ; V+3: CMP #2(+3: BNE ZC62E ;NO, SKIP:+3: LDA #13T+3: JSR ERPRET'ACCi+3: LDA SI |+3: BEQ C8'+4: LDY #0+4 JSR BLDA+04: STY $A6+D4: JSR ERPRET'ACC+X4: LDY $A6+l4: INY+4: CPY SI ,4: BNE %,4: BEQ C8' ;BRA+,4;N,4ZC62E CMP #3 ; SET PAUSEg,4: BEQ C8' ; ,4: CMP #0 ; P 0, 5: BEQ , 5: JMP C8' ; ,45;,H5 LDA A' ; NULL,\5: BEQ C8' ; -p5: CMP #"" ; CURS LEFT&-5: BNE X-5: LDX NOWCOLUMN ; LY ALOW COLUMN 0!k-5: BEQ C8'q-5;-5 CMP #$14 ; DEL -5: BNE ; SKIP-5: LDY SI ; IS EMPTY-6: BEQ C8' ; JUST BACK.$6: SI).86: JSR ERPRET' ;THE <.L6: JMP C8'B.`6;a.j6 CMP #13 ; .t6: BNE ; SKIP.~6: JSR ERPRET'.6: JMP C8'.6;.6 CMP #"" ; W.6: BNE ; SKIP/6: JSR ROL'W/6: JMP C8'/6;D/6 LDY SI ; HIT MAX TX$ SIZER/6: INYs/7: CPY SL ; INRE /7: BEQ C8'/(7;/<7: LDY NOWCOLUMN ; HIT MAX COLUMN SCREEN/P7: CPY MAXCOL2 ; IGNE /d7: BEQ C8'/x7;707: CPY #40 ; 40TH COLUMN & WDWRAP ...G07: BNE Y07: LDY C16i07: BPL 07: JSR SPLIT80 ; SET SPLITTING PO07;0T8 LDA CE'CASE ; CING MIXED UPPERLOWER CASE0^8: BPL 1r8: LDY SI ; (TX$)0 LEAVE IN UPPER CASE11|8: BEQ ]18: DEY ; LOOK AT PREVIOUS p18: JSR BLDA18: CMP #"A" ; PREV WAS "A"18: BCC ; LEAVE THIS E UPPER CASE28: CMP #"[" ; PREV WAS "Z" ( "A").28: BCC ; CVERT LOWER CASEa28: CMP #"" ; PREV WAS "" ( "Z")28: BCC ; LEAVE IN UPPER CASE28 LDA A' ;OTHERWISE ITS "A" BETWEEN "Z" ""28: #127 ;CVERT CURRENT LOWER CASE!38: STA A'38;-39 LDA CE'NUMB>3 9: BEQ P39: LDA A'39: CMP CE'NUMB ; THE E ALLOWED NDIGIT39: BEQ ; SKIP3!9: CMP #"0" ; IS BETWEEN 0 94&9: BCC ; PASS THROUGHF4+9: CMP #":" ; S2C8L (SKIP C8')W409: BCC 459 LDY SI ; FIRST 4:9: BNE S2C8L4?9: CMP #"+" ; ALLOW ALSO4D9: BEQ 4I9: CMP #"-"4N9: BNE S2C8L5b9;65l9 LDY SI ;SRE THE FINAL IN TX$H5v9: LDA A'[59: JSR BSTAl59: INC SIr59;59: LDA C21 ;PASSWD FLAG59: BEQ 59: STA A'59;59 JSR ERPRET' ;OUTPUT THE FINAL 59;'69: LDA MAXCOL2 ; NOW HIT OF COLUMNS?6 :: CMP NOWCOLUMNk6 :: BEQ ZC69B ; TRY WD WRAPq64:;6H:: LDY SL ; SOMEE SCREWED UP WE HIT THE6\:: DEY ; MAX GTH OF TX$ BEE THE MAX COLUMNS7p:: CPY SI"7:: BEQ C8' ; C8 I7:S2C8L JMP C8' ; ACTERO7:;z7:ZC69B LDA C16 ; WD WRAP IS 7:: BNE C8' ; C8 BASIC HLE WD WRAP7:: JSR BEEP'BELL8:: LDA #1 ;PUT A O THE BOARD BUFFER8;: STA INBUFF.8$;: LDA #$14 C88;: STA KBBUFFV8L;: JMP C8'\8`;;h8T=C8' 8h=: LDY SPACECOL8|=: BEQ 8=: LDA #1418=: JSR BSTA8=: STA SPACECOL8=: LDY #08= STY LASTFROM9=: RTS9>;9>BEEP'BELL ,9>: LDA #""H9>: JSR MODEM'PUTBYTEq9>: JMP $C98E ;BEEP (7) ROUTINEw9>;9hBC8P ;C8 LINE ENTRY WITH FLAG PARAMETERS9rB; C(8)3,X WHERE X9|B; 0 FULLY E . JUST LIKE A NMAL C(8)/:B; 1 E CASE NO CURS (LIKE SUB300)h:B; 2 UPPER CASE LY NO CURS (LIKE SUB302):B; 3 MATTED UPPERLOWER CAG NO CURS :B; 4 NUMBERS (X) LY:B; 255 REPEAT LAST STYLE. WKS LAST WAS JUST A C8 O;B;-;B: CMP #255 ;REPEAT LAST STYLE9;B: BNE ];B: LDA LAST'C8'STYLE ;REPEAT IT!j;B: JMP p;B;;B STA LAST'C8'STYLE ; STYLE LATER REPEAT;C CMP #0 ;NMAL E ;C: BNE ;0C: JMP C8PE;DC; E: RTS>$E;9>8E STA CE'NUMB ;CE DIGITS (A'REG) LY^>LE: JSR C8P2 ;O ROUTINE #2k>`E: LDA #0~>tE: STA CE'NUMB>E: RTS>E;>dF;> NC26 JSR ZC897 ;S IN LOWCASE>4NC1 >HN: LDY #9>\N: JSR 'VAR'SPECS?pN: LDA SL?N: BNE (?N: RTS ??N JSR MODEMYP?N: LDY SIc?N JSR BLDAq?N: INY?N: STY SI ?O: LDX CVERT2UPPER'FLAG?$O: BEQ ?8O: CMP #$C0 ?LO: BCC ?`O: CMP #$DB @tO: BCS @O: #$7F 0@O JSR ERPRET'ACCE@O: LDY SI Z@O: CPY SL j@O: BNE {@O: LDA #0@P: STA CVERT2UPPER'FLAG@P: RTS@(P;@RC25 JSR ZC897 ;S W RET IN LOWCASE@RC0 JSR C1@0R: LDA #13ADR: JMP ERPRET'ACCAXR;eAlRZC897 LDA ;SET UPPERCASE LY FLAG ACCDING CURRENT CASE MODEuAR: BMI AR: LDA #1AR: .BYT SKIP'WDAR LDA #0AR: STA CVERT2UPPER'FLAGAR: RTSARCVERT2UPPER'FLAG $A34A S;BYC5 JSR CC5/BY: JMP CHECK'EQUAL'VAR5BZ;GBZC5P JSR CC5xB(Z: CPY #0 ;TERMINATING STILL IN .YBF b JSR BLDAMF b: CMP #" "YF4b: BEQ cFHb: DEYqF\b: CPY #30~Fpb: BEQ Fb: #127Fb: CMP #32Fb: BCC Fb: $A6Fb: BNE Fb LDA $A6Fb: STA MAXCOL2Fc: STY SPACECOLF$c PLAG8c: RTS Gc;GeROL'W >Ge: LDA #20 ;DEL IN A'LGe: STA A'YGe LDY SIGf: BEQ ; ò0, NEGf: DEYGf: STY SIG0f: JSR BLDAGDf: CMP #" " ; SPACE, NEGXf: BEQ Glf: #%01100000 ; ABLE Hf: BEQ &Hf: JSR ERPRET' ; DEL2Hf: JMP 8Hf;ZH g JMP ERPRET' ; THE SPACEdH4g RTSjHg;xH0uBUFF'A HDu: STY 0HXu: LDY #0Hlu: STA (OL'BUFF),YHu: STY 15Hu: LDY OL'BUFFHu: BNE Iu: OL'BUFF1Iu: LDY OL'BUFF1VIu: CPY $1211 ;HIGH BYTE OF OF OVERLAY ADDRESSfIu: BCS wI v: LDY #1I v: STY BUFF'STAT ; FULL, BUFFERI4v OL'BUFFIHv: RTS ;S WITH CARRY CLEAR FULLI\v;Ipv'BUFF Jv: STY 0#Jv: LDY #0?Jv: LDA (BUFF'DUMP),YSJv: STY 15kJv: LDY BUFF'DUMP{Jv: BNE Jv: BUFF'DUMP1Jw BUFF'DUMPJ$w: CMP #0 ; ACTER0 DUMPJ8w: BNE JLw: LDY #1K`w: STY BUFF'STAT ; BUFFER(Ktw RTS.Kw;>KySTRINUT KK,y: LDY SI\K@y LDA (SP),YfKTy: INYsKhy: STY SIK|y: JSR ERPRET'ACCKy: LDY SIKy: CPY SLKy: BNE Ky: RTSKy;K}TABLE . ""K}VDCS $CE5CK(};LPRIMM'BBS L̈: PLA : STA $CE0L: PLA : STA $CF>L INC $CEJL: BNE XL: INC $CFeL0 LDY #0wLD: LDA ($CE),YLX: BEQ Ll: JSR ERPRET'ACCL: JMP L LDA $CF : PHAL: LDA $CE : PHAL: RTSLЉ;M;"-MAIN IO":"MAIN IO""-MAIN IO":"@MAIN IO":"MAIN IO  4000.G $12B78.OBJ "@0:MLC.MULTI-PUNTER">;z!MULTI 2 ;MULTIPUNTER FLAG; 0GLE, 2MULTI(;).DVI 9*.DVO 92.LST "MODEM.ST"<.LST "BANK0.ST"F.LST "COMMON.ST"P.LST "VARIABLES.ST"Z;LST "MAIN.ST"c;CARRIER 989*TRANSLATE $9F9PNTA $FAHPNTB $FCXST $FFB7r@SETUP $E6C2 ;C128^STAT $FEh;r; OTHER LOCATIS|;CODEBUF $0400BITPNT $0403BITCNT $0404BITPAT $0405TIMER1 $0406G $0408)BUFCOUNT $0409=ERRTYPE $040AODELAY $040BdSKPDELAY $040CvFLAG $040DCHECK $040ECHECK1 $0412BUFPNT $0416RECSIZE $0417MAXSIZE 255 ;$0418!BLOCKNUM $0419&;;FIYPE $041B+STACK $041C,0NTDASH $041DA5SPECMODE $041EX:;;NUMB'OD $0420n?NUMB'BAD $0422DBAD'COUNT $0424ICARRIER'TIMEOUT $0425N:XBUFFER $0500bBUFFER1 $0600lLASTCH $0200vRS232ENB $02A1; ; BUFFER ITIS ;% SIZE 42 NUM 5? POS = 7E ;^ ; START OF PROGRAMd ; .DVI 8:.FILE "PUNTER/LO" ;  $12FD .BYT 1 ;BASIC IRQ IS DISABLED FIYPE .BYT 2 ;FIYPE S RECEIVE, 1P, 2S-!.BYT 0 ;PROCOL IN MEMY FLAG. 4863,D%(10):!. MULTIl!:JMP TRAN ;S MULTIXFER TRANTYPE O!:JMP REC ;RECV MULTIXFER RECTYPE O!. ;GLE!:JMP TRANTYPE!:JMP RECTYPE! .E! JMP TRANSMIT!JMP RECEIVE". MULTI" :JMP 'MULTI#"#. ;GLE4"(:RTS:RTS:RTS<"*.ED"/RTS"1NUMB'OD .WD 000 ;BLOCKS (OF BELOW SIZE) SENT DURING LAST TRANSFER"4.WD 248 ;BYTES OF PER BLOCK#>MAX'BLKS .WD 000 ;MAX # BLOCKS MAY RECEIVE PREVENT FULL DISK LOCKUPN#H.BYT MULTI ;TRANS TYPE: 0GLE LY, 2MULTI LYV#\BRK#JSR PRIMM'BBS ;S PROCOL NAME#. MULTI#:. "ULTI-"#.E#. "UNTER"#BRK#RTS#;#CODES #$. "GOO"#.. "BAD"#8. "ACK" $B. "S/B"$L. "SYN"$V;E$`; ACCEPT ACTERS CHECK CODESK$j;Y$tACCEPT j$~: STA BITPATw$: LDA #0$: STA CODEBUF$: STA CODEBUF1$: STA CODEBUF2$CD1 $: LDA #0$: STA TIMER1$: STA TIMER11$CD2 %: JSR %: JSR NUM"%: LDA STAT0%: BNE CD3D% : LDA CODEBUF1V%: STA CODEBUFj%: LDA CODEBUF2~%(: STA CODEBUF1%2: LDA LASTCH%<: STA CODEBUF2%F: LDA #0%P: STA BITCNT%Z: LDA #1%d: STA BITPNT%nCD4 %x: LDA BITPAT &: BIT BITPNT&: BEQ CD5+&: LDY BITCNT8&: LDX #0C&CD6 W&: LDA CODEBUF,Xi&: CMP CODES,Yw&: BNE CD5&: INY&: INX&: CPX #3&: BNE CD6&: JMP CD7&;&CD5 &: ASL BITPNT&": LDA BITCNT&,: CLC&6: ADC #3'@: STA BITCNT'J: CMP #15+'T: BNE CD49'^: JMP CD1?'h;J'rCD7 Y'|: LDA #255j': STA TIMER1}': STA TIMER11': JMP CD2';'CD3 ': INC TIMER1': BNE CD9': INC TIMER11'CD9 ': LDA TIMER11': A TIMER1(: BEQ CD8 ;OD'(: LDA TIMER14(: CMP #7G(: LDA TIMER11n(: CMP #40 ;WAS 20 AT 1MHZ|(&: BCC CD2(+: JSR COUNT'BAD'BLOCKS(0: LDA #1 ;BAD(:: STA STAT(D: JMP DELAY(N;(XCD8 (b: LDA #0)g: STA BAD'COUNT)l: STA STAT)v: RTS );T); NUM SCODE ARE NOW IN THE PUNTERLO FILEZ)j ;k)t ; HSHAKEq)~ ;~) RECH ) : STA G) : LDA #0) : STA DELAY) RC1 ) : LDA #2) : STA PNTA) : LDY G) : JSR SCODE) RC9 * : LDA #%00100* : JSR ACCEPT,* : LDA STAT:* : BEQ RC2G* : PNTAU* : BNE RC9c*( : JMP RC1i*2 ;t*< RC2 *F : LDY #9*P : JSR SCODE*Z : LDA FLAG*d : BEQ RC5*n : LDA G*x : BEQ RC6* RC5 * : LDA BUFFERSIZE+ : STA BUFCOUNT+ : STA RECSIZE&+ : JSR RECMODEM5+ : LDA STATF+ : CMP #%0001T+ : BEQ RC4e+ : CMP #%0010s+ : BEQ RC2+ : CMP #%0100+ : BEQ RC4+ : CMP #%1000+ : BEQ RC2+ RC4 + : RTS+" ;+, RC6 +6 : LDA #%10000+@ : JSR ACCEPT ,J : LDA STAT,T : BNE RC2%,^ : LDA #108,h : STA BUFCOUNTC,r RC8 Q,| : LDY #12b, : JSR SCODEt, : LDA #%01000, : JSR ACCEPT, : LDA STAT, : BEQ RC7, : BUFCOUNT, : BNE RC8, RC7 , : RTS, ;, ; HSHAKE XMIT , ; - TRANH - : LDA #1&- : STA DELAY1- TX2 D-& : LDA SPECMODES-0 : BEQ TX20`-: : LDY #0q-D : JSR SCODE}-N TX20 -X : LDA #%01011-b : JSR ACCEPT-l : LDA STAT-v : BNE TX2- : LDA #0- : STA SPECMODE- : LDA BITCNT- : CMP #0 . : BNE TX10. : LDA FLAG(. : BNE TX4;. : INC BLOCKNUMI. : BNE TX7^. : INC BLOCKNUM1i. TX7 {. : JSR THISBUF. : LDY #NUM. : INY. : LDA (PNTB),Y. : CMP #255. : BNE TX3.* : LDA #1.4 : STA FLAG.> : LDA BUFPNT.H : E #1/R : STA BUFPNT"/\ : JSR THISBUF5/f : JSR DUMMYBL1C/p : JMP TX1I/z ;T/ TX3 g/ : JSR DUMMYBLKr/ TX1 / : LDA #"-"/ .BYT $2C/ TX10 / : LDA #":"/ : JSR PRTDASH/ : LDY #6/ : JSR SCODE/ : LDA #%01000/ : JSR ACCEPT 0 : LDA STAT0: BNE TX1+0: JSR THISBUF<0: LDY #SIZEO0$: LDA (PNTB),Yb0.: STA BUFCOUNTs08: JSR ALTBUF0B: LDX #50L: JSR CKOUT0V: LDY #00`TX6 0j: LDA (PNTB),Y0t: JSR BSOUT'0~: INY0: CPY BUFCOUNT0: BNE TX61: JSR CH1: LDA #01: RTS"1;-1TX4 <1: LDA #"*"N1: JSR PRTDASH[1: LDY #6l1: JSR SCODE~1: LDA #%010001: JSR ACCEPT1 : LDA STAT1: BNE TX41: LDA #101(: STA BUFCOUNT12TX5 1<: LDY #121F: JSR SCODE 2P: LDA #%100002Z: JSR ACCEPT)2d: LDA STAT72n: BEQ TX8H2x: BUFCOUNTV2: BNE TX5a2TX8 n2: LDA #32: STA BUFCOUNT2TX9 2: LDY #92: JSR SCODE2: LDA #%000002: JSR ACCEPT2: BUFCOUNT2: BNE TX92: LDA #13: RTS 3;,3; RECEIVE A BLOCK FROM MODEM23;B3"RECMODEM O3,: LDY #0[36RCM5 h3@: LDA #0y3J: STA TIMER13T: STA TIMER113^RCM1 3h: JSR 3r: JSR NUM3|: LDA STAT3: BNE RCM23: LDA LASTCH3: STA BUFFER,Y4: CPY #34: BCS RCM3%4: STA CODEBUF,Y24: CPY #2A4: BNE RCM3S4: LDA CODEBUFb4: CMP #"A"q4: BNE RCM34: LDA CODEBUF14: CMP #"C"4: BNE RCM34: LDA CODEBUF24: CMP #"K"4&: BEQ RCM440RCM3 4:: INY4D: CPY BUFCOUNT 5N: BNE RCM55X: LDA #%0001-5b: STA STAT75l: RTS=5v;I5RCM4 X5: LDA #$FFi5: STA TIMER1|5: STA TIMER115: JMP RCM15;5RCM2 5: INC TIMER15: BNE RCM65: INC TIMER115RCM6 5: LDA TIMER15: A TIMER116: BEQ RCM76 : LDA TIMER1,6: CMP #6?6 : LDA TIMER11f6*: CMP #32 ;WAS 16 AT 1MHZu64: BNE RCM16>: LDA #%00106H: STA STAT6R: CPY #06\: BEQ RCM96f: LDA #%01006p: STA STAT6zRCM9 6: JMP DELAY6;7RCM7 7: LDA #%1000 7: STA STAT*7: RTS07;K7; CREATE DUMMY BLOCKQ7;a7DUMMYBLK r7: LDA BUFPNT~7: E #17: STA BUFPNT7: JSR THISBUF7: LDY #NUM7: LDA BLOCKNUM7$: CLC7.: ADC #178: STA (PNTB),Y7B: INY 8L: LDA BLOCKNUM18V: ADC #0-8`: STA (PNTB),Y:8j: LDX #2J8t: JSR CHKINZ8~: LDY #POSe8DB1 s8: JSR BA8: STA (PNTB),Y8: INY8: JSR ST8: BNE DB48: CPY #MAXSIZE8: BNE DB18: TYA8: PHA8: JMP DB58;9DB4 9 : TYA9: PHA$9: LDY #NUM.9(: INY=92: LDA #255P9<: STA (PNTB),Y^9F: JMP DB5d9P;t9ZDUMMYBL1 ~9d: PHA9nDB5 9x: JSR CH9: JSR RESET9: JSR D29: JSR RESET9: LDY #SIZE9: LDA (PNTB),Y9: STA BUFCOUNT :: JSR ALTBUF:: PLA(:: LDY #SIZE;:: STA (PNTB),YN:: JMP CHECKSUMX:;;RTS^:;l:; SET Sr:;:THISBUF :": LDA #BUFFER:,: STA PNTB:6: LDA BUFPNT:@: CLC:J: ADC #BUFFER:T: STA PNTB1:^: RTS:h;;r; SET ALT. BUFFER;|;#;ALTBUF 6;: LDA #BUFFERE;: STA PNTBV;: LDA BUFPNTb;: E #1l;: CLC;: ADC #BUFFER;: STA PNTB1;: RTS;;;; CALCULATE CHECKSUM;;;CHECKSUM ;: LDA #0;: STA CHECK1<: STA CHECK11<&: STA CHECK12'<0: STA CHECK138<:: LDY #SIZED: INY=H: LDA CHECK12=R: STA (PNTB),Y>\: INY>f: LDA CHECK13&>p: STA (PNTB),Y0>z: RTS6>;O>; TRANSMIT A PROGRAMU>;e>TRANSMIT y>: JSR 'IT'ALL>: LDA #0>: STA BAD'COUNT>: STA FLAG>: STA SKPDELAY>: STA NTDASH>: LDA #1>: STA BUFPNT>: LDA #255?: STA BLOCKNUM$?: STA BLOCKNUM15?: JSR ALTBUFF?: LDY #SIZEV?: LDA #POSi?$: STA (PNTB),Y{?.: JSR THISBUF?8: LDY #NUM?B: LDA #0?L: STA (PNTB),Y?V: INY?`: STA (PNTB),Y?jTRM1 ?t: JSR TRANH?~: BEQ TRM1@REC3 @: LDA #0@: STA LASTCH(@: RTS.@;D@; RECEIVE A FILEJ@;Y@RECEIVE m@: JSR 'IT'ALLz@: LDA #1@: STA BLOCKNUM@: LDA #0@: STA BAD'COUNT@: STA BLOCKNUM1@: STA FLAG@ : STA BUFPNT@: STA BUFFERNUMA: STA BUFFERNUM1%A(: STA SKPDELAY5A2: LDA #POSLA<: STA BUFFERSIZEYAF: LDA #0eAPREC1 uAZ: JSR RECHAd: LDA FLAGAn: BNE REC3Ax: JSR MATCHA: BNE REC2A: JSR CHA: LDA BUFCOUNTA: CMP #POSA: BEQ REC7B: LDX #2B: JSR CKOUT B: LDY #POS,BREC6 ?B: LDA BUFFER,YOB: JSR BSOUTYB: INYlB: CPY BUFCOUNT{B: BNE REC6B: JSR CHBREC7 B": LDA BUFFERNUM1B,: CMP #255B6: BNE REC4B@: LDA #1BJ: STA FLAGBT: LDA #"*"C^.BYT $2CChREC4 Cr: LDA #"-"7Cw: JSR UPDATE'SCREENcC|: LDA NUMB'OD : CMP MAX'BLKS : BNE C: LDA NUMB'OD1: CMP MAX'BLKS1: BNE C: LDA #255: JMP 3 ; & SIGNAL DRIVE FULLC JSR RESETC: LDA #0C: JMP REC1C;DREC2 D: JSR CHD: LDA #":"5D: JSR UPDATE'SCREENGD: LDA RECSIZE^D: STA BUFFERSIZEkD: LDA #3zD: JMP REC1D;D; SEE CHECKSUMS MATCHD;DMATCH D&: LDA BUFFERD0: STA CHECKD:: LDA BUFFER1DD: STA CHECK1 EN: LDA BUFFER2EX: STA CHECK2.Eb: LDA BUFFER3@El: STA CHECK3REv: JSR THISBUFdE: LDA RECSIZEwE: STA BUFCOUNTE: JSR CHECKSUME: LDA BUFFERE: CMP CHECKE: BNE MTC1E: LDA BUFFER1E: CMP CHECK1E: BNE MTC1F: LDA BUFFER2F: CMP CHECK2"F: BNE MTC15F: LDA BUFFER3GF: CMP CHECK3VF : BNE MTC1cF: LDA #0mF : RTSsF*;F4MTC1 F>: LDA #1FH: RTSFR;F\; RECEIVE FILE TYPE BLOCKFf;FpRECTYPE Fu: JSR 'IT'ALLFz: LDA #0G: STA BAD'COUNTG: STA BLOCKNUM.G: STA BLOCKNUM1>G: STA FLAGOG: STA BUFPNTbG: STA SKPDELAYG: STA NUMB'OD : STA NUMB'OD1G: STA NUMB'BAD : STA NUMB'BAD1G: LDA #POSG: CLCG: ADC #1G: STA BUFFERSIZEG: LDA #0HRCT3 H: JSR RECH"H: LDA FLAG1H: BNE RCT1AH : JSR MATCHPH: BNE RCT2fH: LDA BUFFERPOSH;: BNE ; IT'S A ZERO, SET 4. ILL BE RECOGNIZED AS BADH;: LDA #4H$;: LDA BUFFERPOSI&; CMP #3 ; FIYPE3, SET 1 (BOTH ,P)I);: BNE )I+;: LDA #1:I. STA FIYPEGI8: LDA #1WIB: STA FLAGdIL: LDA #0sIV: JMP RCT3yI`;IjRCT2 It: LDA RECSIZEI~: STA BUFFERSIZEI: LDA #3I: JMP RCT3I;IRCT1 I: LDA #0I: STA LASTCHJ: RTS J;$J; TRANSMIT FILE TYPE*J;:JTRANTYPE NJ: JSR 'IT'ALL[J: LDA #0kJ: STA FLAG~J : STA SKPDELAYJ : STA NUMB'OD : STA NUMB'OD1J: STA NUMB'BAD : STA NUMB'BAD1J: LDA #1J: STA BUFPNTJ(: STA NTDASHK2: LDA #255K<: STA BLOCKNUM.KF: STA BLOCKNUM1?KP: JSR ALTBUFPKZ: LDY #SIZE`Kd: LDA #POSjKn: CLCwKx: ADC #1K: STA (PNTB),YK: JSR THISBUFK: LDY #NUMK: LDA #255K: STA (PNTB),YK: INYK: STA (PNTB),YK: LDY #POS L: LDA FIYPEL: STA (PNTB),Y,L: LDA #1?L: STA SPECMODEKLTRF1 \L: JSR TRANHkL: BEQ TRF1xL: LDA #0L": STA LASTCHL,: RTSL6;L@; DELAY TIMINGLJ;LTDELAY L^: INC SKPDELAYLh: LDA SKPDELAYLr: CMP #3M|: BCC D1M: LDA #0'M: STA SKPDELAY7M: LDA DELAYEM: BEQ D2SM: BNE D3YM;dMD1 tM: LDA DELAYM: BEQ D3M;MD2 M: LDX #2 ;LDX #0 1MHZMLP1 M : LDY #0M LP2 M : INYM& : BNE LP2M0 : INX1N: : NOP ;CPX #120 1MHZ. COUNTS 2256 NOW INSTEAD?ND : BNE LP1JNN D3 TNX : RTSZNb ;xNl ; DASH, COCOL, STAR~Nv ;N PRTDASH N : PHAN : LDA BLOCKNUMN : A BLOCKNUM1N : BEQ PRTD1N : LDA NTDASHN : BNE PRTD1N : PLAO : JSR UPDATE'SCREENO : PHA)O PRTD1 3O : PLA=O : RTSCO!;lOz!; CHECK COMMORE CARRIER LOSSrO!;{O! O!: LDA $D3O!: CMP #2O!: BEQ 2O! JSR CHECK'CARRIER ; CARRIER LOST, KEEP TRYING 4.25 SECDS P!: BNE 1 ;ALL OKAY%P!: INC CARRIER'TIMEOUTmP!: BEQ 2 ;STILL LOST AFTER 255 JFIES, ABT THE TRANSFER{P!: LDA $A2P! CMP $A2 ; A JFYP!: BEQ P": BNE P(#COUNT'BAD'BLOCKS Q2#: INC BAD'COUNT ;ABT 25 INUOUS ERRSQ<#: LDA #25(QF#: CMP BAD'COUNT5QP#: BEQ 2?QZ#: RTSEQn#;OQ#2 \Q#: LDA #1fQ#3 wQ#: STA LASTCHQ#: LDX STACK ;CAUSES RTS BASICQ#: TXS:PLA:PLAQ#1 Q#: LDA #0Q#: STA CARRIER'TIMEOUTQ#: RTSQ$;RT$UPDATE'SCREEN R^$: CMP #":"4Rh$: BEQ 'BAD'BLKSCRr$: CMP #"*"VR|$: BEQ ''BLKSiR$: INC NUMB'ODuR$: BNE R$: INC NUMB'OD1R$ LDA NUMB'OD1R$: LDX NUMB'ODR$: LDY #6 ;COLUMNR$: BNE ' ;BRAR$;R%'BAD'BLKS S&%: INC NUMB'BADS0%: BNE 0S:%: INC NUMB'BAD1ESD% LDA NUMB'BAD1XSN%: LDX NUMB'BADsSX%: LDY #20 ;COLUMNySb%;S%' S%: STY NOWCOLUMNS%: JSR $8E32 ;BASIC'S EGER ROUTINES%: LDA $D4 ; LF PRESSEDS%: CMP #75T%: BEQ T%''BLKS T%: RTS#T%;DT% JSR $2603 ;PANEL SWITCHQT%: LDA #0uT%: STA INBUFF ;BOARD BUFFT&: RTSTH&'IT'ALL TR&: TSXT\&: STX STACKTp&: JSR CD8T&; FALL THROUGHT&;T&RESET ;RESET RS232 PT U&: JSR SETUPU&: LDA ENABL)U&: CMP #$809U&: BEQ RESETHU&: CMP #$92XU&: BEQ RESETbU&: RTShU&;uU'. MULTIU'TRAN'PRE' ;S FIVE " "'SU': LDX #5 : JSR CKOUTU': LDX #5 : JSR CHKINU$': LDX #5U8' LDA #" "UB': JSR BSOUT'VL': DEXVV': BNE V`': RTSVj';?Vt'TRAN ;S FILE A$`Vy': CLC : LDA JFY'CLOCK1V~': ADC #28 : STA TIMER1 ; 2 MINUTES, RESING EVERY 8.5 SECDSV'TRAN2 ;ENTRY RES LESS THAN 2 MINUTESV': JSR TRAN'PRE'V': LDY #9W': JSR 'VAR'SPECS ; A$(W': LDY #07W' JSR BLDAJW': CMP #0:BEQ TW': INYeW': JSR BSOUT'rW': CPY SL~W': BNE W' LDA #13W': JSR BSOUT'W';W<(: LDA #3 : STA DJFY1 ; 8.5 SECDS RESPCEWP(: LDA #0 : STA DJFYWd(;X( JSR NUM ; ACTER-X(: CMP #"G" : BEQ EX(: CMP #"B" : BEQ ]X(: CMP #"A" : BEQ uX(: CMP #"S" : BEQ X(: CMP #"" : BEQ ;ABTX(: CMP #"" : BEQ ;ABTX(: LDA DJFY1X(: BNE X(;X): JSR CHECK'CARRIER!Y): BEQ ;NO CARRIER'Y^);]Yh): LDA JFY'CLOCK1 ; LESS THAN TWO MINUTESY|): CMP TIMER1 ; TRY AGAIN!Y): BNE TRAN2Y);Y) JMP RH'ABTY) LDA #0Y): STA LASTCH ;(512)0 OKAYY): JSR CHZ*: JMP TRANTYPE Z*;4Z*'MULTI ;S OF MULTIXFER`Z+: JSR TRAN'PRE' ;SS " " MODEMmZ +: LDX #5|Z + LDA #""Z4+: JSR BSOUT'ZH+: DEXZ\+: BNE Zf+: LDA #13Zp+: JSR BSOUT'Z+: JMP CHZ+;Z.REC ;RECEIVE FILE [.: LDY #2[.: JSR 'VAR'SPECS [.;L[/: LDA #28 ;TIMEOUT IN 2 MINUTES^[&/: STA DJFY1d[:/;[D/ JSR NUM ; A " " ""[N/: CMP #" " : BEQ [X/: CMP #"" : BEQ RH'ABT[b/: CMP #"" : BEQ RH'ABT\l/: JSR CHECK'CARRIER : BEQ RH'ABT\v/: LDA DJFY1\/: BNE $\/;9\/ JSR NUM : PHA_\/: JSR CHECK'CARRIER : BEQ RH'ABTi\/: PLA\/: CMP #" " : BEQ \/: CMP #13 : BEQ \/: CMP #"" : BEQ \ 0: LDY SI\0: JSR BSTA\ 0: INC SI\*0: BNE \40;\>0 JMP RECTYPE:]p0 LDA #0 ;(TX$,(142))NAME (142)0 MULTIK]z0: STA LASTCHU]0: RTS[]0;j]0RH'ABT w]0: LDX #0]0: STX SI]0: INX:STX LASTCH]0: RTS ;(512)1 ABTED]1;]81.E ;ALL THAT WAS MULTI LY'^; "-PUNTER": "PUNTER""-PUNTER":"@PUNTER": "PUNTER  4000.G $FD000.OBJ "@0:SWITCHER"6(;t2; ESCTAB SEQUENCE WILL # BETWEEN TWO 80C SCREENS z<;d'VDC $CDCCn'VDC $CDDAxPRIMM $FF7DBSOUT $FFD2;INITIALIZE : LDA #'ESC: STA $338 $: LDA #'ESC8: STA $339L;-`: LDX #$1AMt LDA $E0,X : STA SRED',XW: DEXc: BPL i;: STA $FF01 ; 0: LDX #6 ;0 THOUGH 6: LDA #0 LDY PRG'TABLE,X: STY INIT'BAS: LDY #2(INIT'BAS 2%< STA $1C00,Y ;HIGHBYTE ADDRESS CHANGED5P: DEY:BPL ?d: DEXLx: BNE d: STX $FF00 ; 15: INX:STX CURRENT'SEGMENT ;#1;: JSR '#: JSR $C142 ;CLEAR SCREEN: JSR '#: JSR PRIMM:.BYT 13,13L:. "WITCHER! REEWARE BY DAM ANELLO OF UGOFT - ATURE ESERVE 714-828-7296":.BYT 13:. "RESS - TO SWAP SCREENS, -# TO SWITCH PROGRAM MEMORY.",:.BYT 13,0@: RTST; 'ESC  : CMP #" " ;TAB  : BEQ '# : CMP #"1"  : BCC   : CMP #"8" 0 : BCS 0 D : JMP 'SWITCHd X JMP $C9C1 ;NO, CALL NMAL ROM ROUTINEj l ;v '# : LDX #$1A ;EXCHANGE TWO SCREEN LOCATI S  LDY SRED',X : LDA $E0,X : STA SRED',X : STY $E0,X : DEX!,: BPL !@;6!T: LDX #3 ;EXCHANGE LINE LINKSN!h LDY SRED'LINKS,X_!|: LDA $35E,Xw!: STA SRED'LINKS,X!: TYA!: STA $35E,X!: DEX!: BPL !;!: LDA SCREEN'NUMBER!: E #1 ;GGLE!0: STA SCREEN'NUMBER"D: TAX"X: LDA SCREEN'MEM,X+"l: STA 2606V": LDX #12 ;VDC SCREEN MEM REGf": JSR 'VDCl";": LDX SCREEN'NUMBER": LDA ATTRIB'MEM,X": STA 2607": LDX #20 ;VDC ATTRIB MEM REG" : JSR 'VDC" ;"4: RTS"H: #p'SWITCH :#u: PHA: #7:PHA ;STRIP II WN ERGERT#z: LDX CURRENT'SEGMENT}#: LDA $1210 : STA PRG''TABLE'LO1,X#: LDA $1211 : STA PRG''TABLE'HI1,X#: PLA:STA CURRENT'SEGMENT#: TAX#: LDA PRG''TABLE'LO1,X : STA $1210 $: LDA PRG''TABLE'HI1,X : STA $1211I$: LDA PRG'TABLE1,X : STA $2EO$;_$: JSR PRIMM{$:. " PRG SPACE #":BRK$: PLA:JSR BSOUT$$: JSR PRIMM$8:. " SELECTED":.BYT 13,0$L;$: JMP $5254 ;RESET CHR $;%(#SCREEN'NUMBER BRK%<#SCREEN'MEM .BYT 0,163%P#ATTRIB'MEM .BYT 8,24b%d#PRG'TABLE .BYT $1C,$3C,$5C,$7C,$9C,$BC,$DC%n#PRG''TABLE'LO .BYT 3,3,3,3,3,3,3%s#PRG''TABLE'HI .BYT $1C,$3C,$5C,$7C,$9C,$BC,$DC%x#CURRENT'SEGMENT .BYT 1%#SRED'LINKS .BUF 4%#SRED' =*9&;"-SWITCH" :"SWITCH""-SWITCH" :"@SWITCH" :"SWITCH: JMP Z9F48 &Z99F5 RTS &Z99F6 LDA #$00 &: STA Z99E7 &: RTS &Z99FC TYA &: PHA ': JSR 'ING': BEQ Z9A1C8': JSR BYTE'MODEMF' : PHA\': LDA #$00 r': 96 ': PLA ': STA $0200 ': PLA ': TAY ': JMP Z9A27 'Z9A1C LDA #$02 (: STA $96 "( : LDA #$00 8(": STA $0200 N(%: PLA d(&: TAY z('Z9A27 PHA ((: LDA #$03 (*: STA $BA (,: PLA (-: RTS (.Z9A2E LDX #$05 (0: JSR CKOUT)3: LDX #$00 ()5Z9A35 LDA Z9932,Y=)8: JSR BSOUT'S);: INY i)<: INX )=: CPX #$03 )?: BNE Z9A35 )A: JMP CH)DZ9A44 STA $19E8 )G: LDA #$00 )I: STA $19EB )LZ9A4C LDA #$02 *N: STA $FA'*P: LDY $19E8 =*S: JSR Z9A2E S*VZ9A56 LDA #$04 i*X: JSR Z9941 *[: LDA $96 *]: BEQ Z9A66 *_: DEC $FA*a: BNE Z9A56 *c: JMP Z9A4C *fZ9A66 LDY #$09 *h: JSR Z9A2E +k: LDA $19ED ++n: BEQ Z9A75 A+p: LDA $19E8 W+s: BEQ Z9A94 m+uZ9A75 LDA $0404 +x: STA $19E9 +{: STA $19F7 +~: JSR Z9B89 +: LDA $96 +: CMP #$01 +: BEQ Z9A93 ,: CMP #$02 ,: BEQ Z9A66 3,: CMP #$04 I,: BEQ Z9A93 _,: CMP #$08 u,: BEQ Z9A66 ,Z9A93 RTS ,Z9A94 LDA #$10 ,: JSR Z9941 ,: LDA $96 ,: BNE Z9A66 ,: LDA #$0A -: STA $19E9 %-Z9AA2 LDY #$0C ;-: JSR Z9A2E Q-: LDA #$08 g-: JSR Z9941 }-: LDA $96 -: BEQ Z9AB5 -: DEC $19E9 -: BNE Z9AA2 -Z9AB5 RTS -Z9AB6 LDA #$01 .: STA $19EB .Z9ABB LDA $19FE -.: BEQ Z9AC5 C.: LDY #$00 Y.š: JSR Z9A2E o.ŚZ9AC5 LDA #$0B .ǚ: JSR Z9941 .ʚ: LDA $96 .̚: BNE Z9ABB .Κ: LDA #$00 .К: STA $19FE .Ӛ: LDA $19E4 /֚: CMP #$00 /ؚ: BNE Z9B0F3/ښ: LDA $19ED I/ݚ: BNE Z9B47 _/ߚ: INC $19F9 u/: BNE Z9AE7 /: INC $19FA /Z9AE7 JSR Z9C6E /: LDY #$05 /: INY /: LDA ($FC),Y/: CMP #$FF 0: BNE Z9B09 %0: LDA #$01 ;0: STA $19ED Q0: LDA $19F6 f0: E #$01 |0: STA $19F6 0: JSR Z9C6E 0: JSR Z9C4E 0: JMP Z9B0C 0 Z9B09 JSR Z9C09 0 Z9B0C LDA #$2D 0: .BYTE $2C1Z9B0F LDA #$3A'1: JSR Z9EB4 =1: LDY #$06 S1: JSR Z9A2E i1: LDA #$08 1: JSR Z9941 1: LDA $96 1 : BNE Z9B0C 1": JSR Z9C6E 1%: LDY #$04 1': LDA ($FC),Y2): STA $19E9 2,: JSR Z9C7B /2/: LDX #$05 C21: JSR CKOUTY24: LDY #$00 o26Z9B36 LDA ($FC),Y28: JSR BSOUT'2;: INY 2<: CPY $19E9 2?: BNE Z9B36 2A: JSR CH2D: LDA #$00 3F: RTS 3GZ9B47 LDA #$2A 03I: JSR Z9EB4 F3L: LDY #$06 \3N: JSR Z9A2E r3Q: LDA #$08 3S: JSR Z9941 3V: LDA $96 3X: BNE Z9B47 3Z: LDA #$0A 3\: STA $19E9 3_Z9B5F LDY #$0C 4a: JSR Z9A2E "4d: LDA #$10 84f: JSR Z9941 N4i: LDA $96 d4k: BEQ Z9B72 z4m: DEC $19E9 4p: BNE Z9B5F 4rZ9B72 LDA #$03 4t: STA $19E9 4wZ9B77 LDY #$09 4y: JSR Z9A2E 4|: LDA #$00 5~: JSR Z9941 *5: DEC $19E9 @5: BNE Z9B77 V5: LDA #$01 l5: RTS 5Z9B89 LDY #$00 5Z9B8B LDA #$00 5: STA $19E6 5: STA $19E7 5Z9B93 JSR Z9F22 5: JSR Z99FC 6: LDA $96 6: BNE Z9BD9 26: LDA $0200 H6: STA $0400,Y^6: CPY #$03 t6: BCS Z9BC3 6: STA $19E0,Y6: CPY #$02 6: BNE Z9BC3 6: LDA $19E0 6: CMP #$41 6: BNE Z9BC3 7: LDA $19E1 $7: CMP #$43 :7: BNE Z9BC3 P7: LDA $19E2 f7: CMP #$4B |7: BEQ Z9BCE 7ÛZ9BC3 INY 7ě: CPY $19E9 7Ǜ: BNE Z9B8B 7ɛ: LDA #$01 7˛: STA $96 8͛: RTS 8ΛZ9BCE LDA #$FF ,8Л: STA $19E6 B8ӛ: STA $19E7 X8֛: JMP Z9B93 n8ٛZ9BD9 INC $19E6 8ܛ: BNE Z9BE1 8ޛ: INC $19E7 8Z9BE1 LDA $19E6 8: A $19E7 8: BEQ Z9C04 8: LDA $19E6 9: CMP #$06 9: LDA $19E7 39: CMP #$10 I9: BNE Z9B93 _9: LDA #$02 u9: STA $96 9: CPY #$00 9: BEQ Z9C01 9: LDA #$04 9: STA $96 9Z9C01 JMP Z9E8C 9Z9C04 LDA #$08 :: STA $96 %:: RTS ;: Z9C09 LDA $19F6 P: : E #$01 f:: STA $19F6 |:: JSR Z9C6E :: LDY #$05 :: LDA $19F9 :: CLC :: ADC #$01 :: STA ($FC),Y;: INY ;: LDA $19FA ,;": ADC #$00 B;#: STA ($FC),YP;$; LTK'HD^;%; NOPe;&;x;': LDX #$02;(: JSR CHKIN;);E;+: LDY #$07;,. LTK'HD;-Z9C2D STY $2A : JSR $03E5 : LDY $2A ;MIKE'S DIRECT LTK ACCESS IN  4000.G $12FE$.DVO 9=(.OBJ "@0:BOOTUP.OBJ"C2;Nd.DVI 9fn.LST "VARIABLES.ST"|x.LST "C-ARRAY.ST";.BYT 1,0 ;DISABLE FLAG NO EXTERNAL ML FILE IN MEMYJSR $C000;&: LDA #VARSTART : STA VARS'START ;FOLLOW WITH A IN BASICN: LDA #VARSTART : STA VARS'START1[: LDX #0$: STX $74 : STX $75 ; LINE INCENT.: STX $76 ;NO S AREA8: LDY #$FF : STY OL'BUFF ;CLEAR LINE BUFFERB: DEY : STY OL'BUFF1<L: STX INBUFF ;CLEAR BOARD BUFFER`: LDA #64 : STA $F8 ;DISABLE SCREEN LINE LINKINGENABLE SCROLLINGt: STX $F9 ;ENABLE ROLG BELL: LDA #0 : STA $A2E ;VDC SCREEN STARTS AT $00002: LDA #16 : STA $A2F ;VDC SCREEN ATTRIB AT $1000?: LDY #1g: STY MCI'ENABLE : STY MCI'ENABLE1: STY OP'AVAILABLE: STX CHATTEXT'INDEX: STY BUFF'STAT ; LINE BUFFER: STX IN'SPEEDY ; IN SPEEDY06 (: STX 4440 ;CG TRANSLATI TABLE IS IN MEMYu <: STX NWIRQFLAG ;DISABLE NETWK TIMEOUT FUNCTI P: STX MCI'COUNT x: STX PAUSE'GTH ;DISABLE PAUSE : STX PAUSE'NMAL : STX PAUSE'COUNT!: LDA #71 : STA NWHOWLG:!: LDA #20 : STA 2592 ;BOARD BUFFER 20 S MAXj!: LDA #8 : STA 'NOW ;SIM40C SCREEN SIZE!: STX RAIN ;RAINBOW MODE $!6;!@: STX P'!J: STX A'!T: LDA #13 : STA C6 ;EOL !^: LDA #78 : STA MAXCOL-"r: STA FROM ;LAST FROM BOARDP"|: STX ECHOMODE ;$s": STX ANSIMODE ;$": STX C16 ;WD WRAP $": STX LASTMODLEV ;LAST MODULE LEVEL ED WAS 0 #: STX C21 ;PASSWD FLAG $;#: STX LASTFROM ;IGIN OF LAST d#: STX C22 ;II MODE#: STX CE'CASE ;UPPERCASE LY $#: STX CE'NUMB#: STX C27 ;ER $$: STX C28 ;N'T CHECK CARRIER$: LDA #1632O$: STA CHATMOLAGS ;ING & WDWRAP , SPLIT CHAT $$: LDA #1 : STA C31 ;N'T S MODEM (.A USED AGAIN BELOW)$: STX C34 ;NO TIMEOUT$: LDY #8 : STY C35 ;STRTHING ID 8$%: STA C36 ;STRTHING CHECK EOL*%;i%: LDX #$0FE0 ; VECRS $0FE0 BEE THEY ARE%: LDY #$0FE0 ;CHANGED BY THE WEDGES%: SEC% : JSR $FF8D ;VECR%4: LDY #11%H LDA RAMS'FIX,Y%\: STA 3835,Y&p: DEY : BPL &;Q&: LDX #8 ;PUT "OVL.MAIN" IN ZERO LEVEL MODULEi& LDA FIAME'INIT,X&$ : STA FIAME'TABLE,X&8 : DEX:BPL &L ;&` : LDA #0 ;CLEAR 1ST,2ND, 3RD LEVELS&j : STA FIAME'TABLE$13 't : STA FIAME'TABLE$26%'~ : STA FIAME'TABLE$39+' ;D' ; CLEAR SCREENS {' : LDX #24 : LDA #32 : JSR VDC ;SET FILL FLAG' : LDX #18 : LDA #0 : JSR VDC ;SET START ADDRESS $0000' : INX : JSR VDC( : LDA #32 : JSR VDC2 ;FILL SCREEN WITH SPACES(( : LDY #15b( LDX #30 : LDA #255 : JSR VDC ;FILL 255 BYTES(0 : DEY : BPL ;TAL OF 16 PAGES $0FF1 BYTES(D : LDX #30 : LDA #15 : JSR VDC ;FILLSKIP WARD 15 BYTES#)X : LDA #4 : JSR VDC2 ;FILL ATTRIB WITH GREEN1)l : LDY #15k) LDX #30 : LDA #255 : JSR VDC ;FILL 255 BYTES) : DEY : BPL ;TAL UP ADDRESS $1FF1) ;) : LDX #20 : LDA #$10 : JSR VDC ;SET ATTRIB RAM STARTING AT $1000@* : LDX #6 : LDA #26 : JSR VDC ;SET 26 LINES SCREENF* ;*: LDX #16 ; CUSM JUMPTABLE FINAL USAGE LOCATI* LDA JUMPTABLE,X*: STA $11EE,X*: DEX : BPL *;*; DETECT LTK PT NUMBER *;+: LDA #05+: STA LTK'PT ;AULT PT NUMBER 0q+: STA LTK'LU9 ;AULT FLAG NO LU9 PRESENT+: LDX $FC4E ; PART OF LTK MEMY+: CPX #$78 ; LTK CODE, SKIP+: BNE +;",: JSR $FC4E ;SWITCH LTK CODING INS,: JSR $9F03 ; THE PT NUMBERz,: STA LTK'PT ;SRE IT,(: LDA $80D5 ; LU 9 ACTIVE FLAG,<: BMI ; ACTIVE-P: LDA #9 ; SET FLAG-: STA LTK'LU9-;O- JSR $FC71 ;SWITCH LTK CODING OUTU-;_-p NOP{-@; RIGHT MESSAGE -J: LDA #22 : STA NOWLINE-T: JSR PRIMM-^.BYT 27,89; RESET TAB S-h. " ENTIPEDE ": .BYT 13&.|. " OPYRIGHT 1997 BY DAM ANELLO": .BYT 13[.. " LL RIGHTS RESERVED" : .BYT 13i. . 'LITEp.: ..D :. "  HIS IS A FEATURE LIMITED 'LITE' VERSION OF ENTIPEDE".X .E.b : BRK.l : RTS.'#;.(#FIAME'INIT .BYT 8:. "OVL.MAIN"9/#RAMS'FIX .BYT 173,15,10,41,1,208,249,169,0,240,229,42/#JUMPTABLE .BYT $6C,$1E,$03,$6C,$20,$03,$6C,$22,$03,$6C,$26,$03,$6C,$2A,$03/#; CHKIN' : CKOUT' : CH' : BSOUT' : IN'/$;0; "-BOOTUP" : "BOOTUP" "-BOOTUP" : "@BOOTUP" 4000.DVO 9. ; ENTRY POS s;C() VARIABLES FULL DESCRIPTIS IN MAIN ENTRY AREA OF CUMENTSy;dP' $AC6 ;THE 'P' VARIABLEnA' $AC7 ;THE 'A$' VARIABLExC6 $AC8 ;EOL STRING THINGMAXCOL $AC9 ;MAX COLUMNS6C7 MAXCOL`C12 $ACA ;CARRIER LOST UEwC15 $ACBFROM $ACB ;WHERE LAST PRESS WAS FROMECHOMODE $ACC ;TERM MODE LOCAL ECHOANSIMODE $ACD ;ANSI MODE FLAG)C16 $ACE ;WD WRAP MODE FLAGXLASTMODLEV $ACF ;MODULE LEVEL LAST ED~C21 $AD0 ;PASSWD FLAGLASTFROM $AD1 ;IGIN OF LAST C22 $AD2 ;COMMORE GFX FLAGCE'NUMB $AD3 ;DIGIT CING FLAG5C23 $AD4 ;UPPERLOWER CASE CING FLAGICE'CASE C23kC27 $AD5 ;ER FLAG; $AD6C28 $AD7 ;CHECK CARRIER LOST FLAG"C30 $AD8 ,CHATMOLAGS $AD8 ;CHATMODE , WDWRAP, SPLITSCRN FLAGS" 6; $AD99 @; $ADAf JC31 $ADB ;ACTER MODEM FLAG TC34 $ADC ;TIMEOUT FLAG ^C35 $ADD ;STRTHING FILE ID # hC36 $ADE ;STRTHING EOL CHECK FLAG ;!.SST "@0:C-ARRAY.ST"I!; "-C-ARRAY" : "C-ARRAY" "-C-ARRAY" : "@C-ARRAY 4000 .G $12FF$.DVO 9B.OBJ "@0:MLC.COMLINK-MSG"QdBA $FFCFbnBSOUT $FFD2sxCHKIN $FFC6CKOUT $FFC9CH $FFCC;STATUS $90;'OVERLAY $1210' =$18FEPNTR $FACODE $FCCODE'NUMB $63(CODE' $64<WD $65NPREV' $FET";d,0 $FF01t615 $FF00z@;RLE'CODE 131 ;UNUSED CHR;.BYT 0 ;UNINED ML FILE FLAG @ $12FFJMP START'JMP START'SCAN JMP START' JMP START'WRITE3JMP COMPRESS'LJMP UNCOMPRESS'WRITERB;aSTART' k: PHA{: JSR CKOUT: PLA: TAX: JSR CHKIN  JSR BA: CMP #"" : BEQ ALLNE*: LDX STATUS4: BNE ALLNE>: JSR BSOUT H: BCC R;$ ALLNE JMP CH* ;< START'SCAN o : STA PREV' ;CLEAR HARMLESS UE OF 8 9y : TAX : JSR CHKIN JSR BA ;SCAN  : CMP #"" ;ROLN, : BNE : LDX PREV' ;WHICH IS PRECEEDED BY THE RLE'CODE : CPX #RLE'CODE1  : BNE ALLNE7  ;H  STA PREV'Y X : LDX STATUSe b : BEQ v l : BNE ALLNE| v ; START' : STA PREV' ;CLEAR WITH HARMLESS UE OF 8 9 : TAX : JSR CHKIN : LDA 'OVERLAY :STA PNTR!: LDA 'OVERLAY1 :STA PNTR1#!;1! JSR BAv!: CMP #"" ;(14) IS EOF UNLESS PRECEEDED BY AN RLE CODE!: BNE !: LDY PREV' : CPY #RLE'CODE!: BNE FINISH'! STA PREV'!: LDY #0! : STY 0 ;C128": STA (PNTR),Y": STY 15 ;C128,": INC PNTR8"": BNE I",: INC PNTR1Z"6: LDA PNTR1"@: CMP #$FE ; HIT : C128#$FE C64$2E"E: BEQ FINISH'"J LDA STATUS"O: BEQ "T;"^FINISH' "h: LDA PNTR"r: STA '#|: LDA PNTR1#: STA '+1"#: LDA #00#: STA 0=#: LDY #4P# STA (PNTR),Yb#: DEY : BPL q#: STA 15#: JMP CH#;#START'WRITE #: TAX#: JSR CKOUT#: LDA 'OVERLAY1#: STA PNTR1#: LDY 'OVERLAY#: LDA #0 $: STA PNTRM$: BEQ ;BRA:CHECK SEE START AT (BUFFER EMPTY)S$;`$: LDX #0{$ STX 0 ;C128$: LDA (PNTR),Y$: STX 15 ;C128$: BEQ ; NULL , N'T WRITE$: JSR BSOUT$ INY$: BNE % : INC PNTR1% CPY ''%: BNE 8%(: LDA PNTR1H%2: CMP '+1T%<: BCC Z%F;h%P: JMP CHn%Z;%pCOMPRESS' %z: JSR START' ; IT ALL IN NMALLY FIRST%;%: STA 0 ;ENTIRE OPERATI WITHOUT ANY ROM CODE&: JSR RLE'COMPRESS&;8&: LDA #COMP'TABLE : STA CODE]&: LDA #COMP'TABLE : STA CODE1&: LDA #0 : STA CODE'NUMB&: LDA #97 : STA CODE'&;&'WD &: LDA 'OVERLAY : STA PNTR': LDA 'OVERLAY1 : STA PNTR1': LDY #3!' LDA (CODE),Y1': STA WD,YA': DEY:BPL G'$;T'8 LDY #0g'j: LDA (PNTR),Yu't: CMP WD'~: BNE '': INY': LDA (PNTR),Y': CMP WD1': BNE '': LDA WD2': BEQ T'CODE': INY': CMP (PNTR),Y (: BNE '(: LDA WD3-(: BEQ T'CODE7(: INYJ(: CMP (PNTR),Y\( : BEQ T'CODEb(;m(d' |(n: INC PNTR(x: BNE (: INC PNTR1( LDA PNTR(: CMP '(: BNE (: LDA PNTR1(: CMP '+1(: BNE (;(: CLC#): LDA CODE :ADC #4 : STA CODEI): LDA CODE1 :ADC #0 : STA CODE1]): INC CODE'NUMB{): INC CODE' : LDA CODE'): BEQ ; Ų0 WRAPPED AROUND, NE): CMP #128 : BNE ; Ų128, ADD 96*: LDA #224 : STA CODE'*, JMP 'WD*6;3*^ LDA #0 : STA 15=*h: RTSC*r;s*T'CODE ;.Y INDEX LAST IN WD*: LDA #0 ;NULL OUT WD* STA (PNTR),Y*: DEY:BNE *: LDA CODE'*: STA (PNTR),Y ;SRE CODE*: JMP '+&;+RLE'COMPRESS 7+: LDA 'OVERLAY : STA PNTRZ+: LDA 'OVERLAY1 : STA PNTR1g+ RLE' +*: LDY #0 ;MAIN RLE +4: LDA (PNTR),Y+> INY :CMP (PNTR),Y ;CHECK REDUNDENCIES+H: BEQ $,R: CPY #4 ; LESS THAN 4 IN A ROW, TRY 4,\: BCC RLE':,p;o,: TYA:TAX ;EMBER HOW MANY BYTES IN .X|,: LDA #0, DEY :STA (PNTR),Y,: CPY #3,: BNE ,: LDY #0 : LDA #RLE'CODE,: STA (PNTR),Y,: INY ;_ NOW A 1--: TXA ;# OF REPETATIVE BYTES@-: STA (PNTR),YF-;z-: TAY ;NUMBER OF BYTES SKIP IN .Y-;-LRLE' -V: CLC-`: TYA : ADC PNTR : STA PNTR-j: LDA PNTR1 : ADC #0 : STA PNTR1-t; .: LDA PNTR :CMP ' :BNE RLE'2.: LDA PNTR1 :CMP '+1 :BCC RLE':.RTS@.;X.@UNCOMPRESS'WRITE b.J: TAXr.T: JSR CKOUT.^: LDA 'OVERLAY1 : STA PNTR1.h: LDA 'OVERLAY : STA PNTR.r: LDA #COMP'TABLE : STA CODE.|: LDA #COMP'TABLE : STA CODE1