2IMGWOOF@@@ 8L xC)pJJJJ IH(ȱH:=IH[H`@H^H 2 9 @   I/H`JLNGȄBȄF aK ' faaFF  RJm# KKJ qJ )J ۈJJm  JFȱJGJKaȄM ' 5aaNNJFLGJ`a  XL LG &PRODOS`DaElH$?EGvѶK+`L XX LU ŠϠĠӥS)*+,+`F)) (*=GJFjJJA QE'+ '== `@ STSP8QSS8 m P o R(8RZCOUT.a#' @ZCOUT.V1& .0ZCOUT.V2R&/ . &PRODOS }< /ZINSTALL.SYSTEM0," *&ZCOUT.CODE?.8,ZCOUT.READMEyT .. FINDER.DATAx.8p. ZCOUT.README2T .. ZCOUT.V1v.0' '+NEW.ZCOUT.S:$&&+OLD.ZCOUT.Sy&&,ZCOUT.INIT.S, &&'ZCOUT.S2z&&/ZINSTALL.SYSTEMB,( ޲FINDER.DATAQ.,p.,  LST OFF *------------------------------- * * ZCOUT v1.00 * * ACOS screen output routines for GBBS.PRO * * Requires 65C02 (big deal) * Written by Zapatrax and Postmaster * 24th June 1989 - Australia * * Free for use by registered GBBS sysops, as long as the code * is not modified in any way. * * This code resides at $900 and $01/2000, clobbering up to $2000 bytes * of auxilliary memory as needed. * Also included to ACOS.OBJ, is a patch to take out the LDA #$96 JSR $0906 * at $36C5 and $36F5. Greg is demented. * This is automatically patched in by VIDINIT, so stupid sysops don't * really have to worry about it. * *------------------------------- ORG $900 * * System equates * WNDTOP EQU $22 WNDBTM EQU $23 CH EQU $24 CV EQU $25 CHAR EQU $26 PCH EQU $57B PCV EQU $5FB MODE EQU $4FB PBASL EQU $77B PBASH EQU $7FB * * Hook table (per Greg baby's instructions) * HOOKS JMP VIDINIT JMP VIDCLS JMP VIDCOUT JMP VIDSCRL JMP VIDBAN JMP VIDLST JMP VIDRDST JMP VIDRDKY JMP VIDRDFN JMP VIDWND JMP VIDRD JMP VIDKEY JMP VIDPOS JMP VIDEXEC AUXON STA $C057 STA $C055 RTS AUXOFF STA $C054 STA $C056 RTS * * VIDKEY - "Read local keyboard. BMI if * data in A and the high-bit will be set." * * Sound simple? Good one Greggy... * VIDKEY LDA $C000 RTS * * VIDINIT - "Initialize the local video." * VIDINIT STA $C00D STA $C001 JSR AUXON JSR GOVIDINIT1 JSR AUXOFF JSR CALLPINIT LDA $36C5 CMP #$20 BNE :NEXT LDA #$2C STA $36C5 :NEXT LDA $36F5 CMP #$20 BNE :RTS LDA #$2C STA $36F5 :RTS RTS * * My COUT * COUT LDX WNDTOP PHX LDX WNDBTM PHX LDX #$C3 LDY #$30 JSR PWRITE PLX STX WNDBTM PLX STX WNDTOP LDA PCV STA CV LDA PCH STA CH RTS * * VIDCLS - "Clear the screen." * VIDCLS JSR SAVE JSR AUXON JSR SAVEWND JSR AUXOFF LDA #$8C JSR COUT JSR AUXON JSR ZPRESTWND JSR AUXOFF JSR REST RTS * * VIDCOUT - "Display character in A on the * screen at the current cursor location * ($24,$25)." * VIDCOUT STA COUTEMP JSR SAVE JSR AUXON JSR GOVIDCOUT JSR AUXOFF BCS :OUT CMP #$D BNE :DOTEST LDA COUTEMP PHA LDA #$A JSR VIDCOUT PLA STA COUTEMP :DOTEST JSR AUXON JSR CHECKLF JSR TESTOUT PHP JSR TESTBOT PHP JSR AUXOFF LDA COUTEMP JSR COUT BIT FORCE BPL :SKIP LDA #$17 JSR COUT LDA #$1F JSR COUT :SKIP JSR AUXON PLP BCS :BOTOK JSR RESTBOT :BOTOK PLP BCS :OUT JSR RESTWND :OUT JSR AUXOFF JSR REST RTS COUTEMP DS 1 FORCE DS 1 * * VIDSCRL - "Scroll the screen one line." * Which way cunt? * VIDSCRL JSR SAVE JSR AUXON JSR SAVEBOTH JSR AUXOFF LDA #'W'-$40 JSR COUT JSR AUXON JSR RESTBOTH JSR AUXOFF JSR REST RTS * * VIDBAN - "Scroll the character in A * accross the 24th line." ..... SP? * * And don't do the first 4 characters. * VIDBAN STA :TEMP JSR SAVE LDY #2 ]LOOP STA $C054 LDA $7D0,Y STA $C055 STA $7D0,Y LDA $7D1,Y STA $C054 STA $7D0,Y INY CPY #39 BCC ]LOOP LDA $7D0+39 STA $C055 STA $7D0+39 STA $C054 LDA :TEMP STA $7D0+39 JSR REST RTS :TEMP DS 1 * * VIDLST - "Clear the last line of the * video display." * VIDLST JSR SAVE LDY #39 LDA #$A0 ]LOOP STA $C055 STA $7D0,Y STA $C054 STA $7D0,Y DEY BPL ]LOOP JSR REST RTS * * VIDRDST - "Initialize the read-key * routine." ..... Spacing? * VIDRDST JSR SAVE CLC JSR GETPICK STA CHAR JSR REST RTS * * Pick or stick a character * GETPICK PHA PHP LDX PCV JSR AUXON JSR GOGETPICK JSR AUXOFF LDA PCH LSR BCS :OK STA $C055 :OK TAY PLP BCC READ PLA MOD1 STA $FFFF,Y RTS READ PLA MOD LDA $FFFF,Y RTS * * VIDRDKY - "This routine blinks cursor." * VIDRDKY JSR SAVE CLC JSR GETPICK EOR #$DF SEC JSR GETPICK JSR REST RTS * * VIDWND - "Display top of screen window." * VIDWND JSR SAVE JSR AUXON JSR GOVIDWND JSR AUXOFF JSR REST RTS VIDWND1 JSR AUXOFF STA $400,Y STA $580,Y LDA #$20 STA $480,Y STA $500,Y JMP AUXON * * VIDPOS - "Position on the screen to X,Y." * VIDPOS STX :X STY :Y JSR SAVE LDA #'^'-$40 JSR COUT LDA :X CLC ADC #$20 JSR COUT LDA :Y CLC ADC #$20 JSR COUT JSR REST RTS :X DS 1 :Y DS 1 * * VIDEXEC - "" * * If A = 0 then clear top line of window * If A = 1 then "[ Page: On ]" * If A = 2 then "[ Exec: On ]" * VIDEXEC RTS ;? * * VIDRD - "Read the contents of video line * X into $280. Length of line in Y." * * Bullshit. * * 'Move to line X position Y and read the character into A. * Then restore the old CH and exit' * * $280? - God knows.... * VIDRD STX :X STY :Y JSR SAVE LDA PCH PHA LDX :X LDY :Y JSR VIDPOS CLC JSR GETPICK STA :TEMP PLX LDY :Y JSR VIDPOS JSR REST LDA :TEMP RTS :X DS 1 :Y DS 1 :TEMP DS 1 * * VIDRDFN - "Finish read-key routine." * VIDRDFN JSR SAVE LDA CHAR SEC JSR GETPICK JSR REST RTS * * Pascal stuff. * CALLPINIT LDX #$C3 LDY #$30 PINIT JMP $C300 PWRITE JMP $C300 * * Save A,X,Y * SAVE PHA PHX PHY TSX LDA $105,X PHA LDA $104,X PHA RTS * * Restore A,X,Y * REST TSX LDA $102,X STA $107,X LDA $101,X STA $106,X PLA PLA PLY PLX PLA RTS AUXGETBOT JSR AUXOFF BCC :DO750 LDA $7D0,Y PHA LDA #$A0 STA $7D0,Y PLA BRA :OK :DO750 LDA $750,Y PHA LDA #$A0 STA $750,Y PLA :OK JMP AUXON AUXPUTBOT JSR AUXOFF BCC :DO750 STA $7D0,Y BRA :OK :DO750 STA $750,Y :OK JMP AUXON AUXWND JSR AUXOFF ;V=1 store, V=0 pick, C=1 $480, C=0 $500 BVS :STORE BCC :DO500 LDA $480,Y BRA :OUT :DO500 LDA $500,Y BRA :OUT :STORE BCC :ST500 STA $480,Y BRA :OUT :ST500 STA $500,Y :OUT JMP AUXOFF AUXVIDEXEC JSR AUXOFF JSR VIDEXEC JMP AUXON AUXSETUP JSR AUXOFF LDA CH STA PCH LDX CV STX PCV JSR AUXON LDA LO,X LDY HI,X JSR AUXOFF STA PBASL STY PBASH JMP AUXON AUXHOLES JSR AUXOFF BCS :PCV2X LDY PCH BRA :OK LST ON :PCV2X LDX PCV :OK JMP AUXON ERR *-1/$C00 DS $C00-* SAV ZCOUT.IN.ACOS ORG $2000 BOOTINIT RTS * * Save system window if output will fuck it * TESTOUT LDX WNDTOP BEQ :RTS BIT OVERIDE BMI :SAVE SEC JSR AUXHOLES AND #$7F CMP #$C ;HOME BEQ :SAVE CMP #$16 ;DOWN BEQ :SAVE CMP #$17 ;UP BEQ :SAVE LDA WNDBTM CMP #$18 ;Is it on? BEQ :TEST21 CPX #23 BNE :RTS :TESTCH CLC JSR AUXHOLES CPY #79 BNE :RTS :SAVE JSR SAVEWND CLC RTS :RTS SEC RTS :TEST21 CPX #21 BCC :RTS BNE :SAVE BRA :TESTCH TESTBOT LDX WNDBTM CPX #$18 BEQ :RTS BIT OVERIDE BMI :SAVE SEC JSR AUXHOLES AND #$7F CMP #$C ;HOME BEQ :SAVE CMP #$16 ;DOWN BEQ :SAVE CMP #$17 ;UP BEQ :SAVE LDA WNDBTM ;Is it on? CMP #$18 BEQ :TEST21 CPX #23 BNE :RTS :TESTCH CLC JSR AUXHOLES CPY #79 BNE :RTS :SAVE JSR SAVEBOT CLC RTS :RTS SEC RTS :TEST21 CPX #21 BCC :RTS BNE :SAVE BRA :TESTCH * * Base tables * LO HEX 0080008000800080 HEX 28A828A828A828A8 HEX 50D050D050D050D0 HI HEX 0404050506060707 HEX 0404050506060707 HEX 0404050506060707 GOVIDCOUT JSR AUXSETUP LDA COUTEMP AND #$7F CMP #7 BEQ :BEEP CLC RTS :BEEP LDA $C036 PHA AND #$7F STA $C036 LDX #20 ]LOOP LDY #20 DEY BNE *-1 BIT $C030 DEX BNE ]LOOP PLA STA $C036 SEC RTS GOGETPICK LDA LO,X STA MOD+1 STA MOD1+1 LDA HI,X STA MOD+2 STA MOD1+2 RTS GOVIDWND LDY #39 ]LOOP LDA #"-"-$60 STA $400,Y STA $580,Y JSR VIDWND1 STA $480,Y STA $500,Y DEY BPL ]LOOP LDA #4 STA WNDTOP RTS SAVEBOT LDY #39 LDX #0 ]LOOP LDA $7D0,Y STA BOTSTUFF,X INX LDA #$A0 STA $7D0,Y LDA $750,Y STA BOTSTUFF,X INX LDA #$A0 STA $750,Y SEC JSR AUXGETBOT STA BOTSTUFF,X INX CLC JSR AUXGETBOT STA BOTSTUFF,X INX DEY BPL ]LOOP RTS BOTSTUFF DS 80*2 RESTBOT LDY #39 LDX #0 ]LOOP LDA BOTSTUFF,X INX STA $7D0,Y LDA BOTSTUFF,X INX STA $750,Y LDA BOTSTUFF,X INX SEC JSR AUXPUTBOT LDA BOTSTUFF,X INX CLC JSR AUXPUTBOT DEY BPL ]LOOP RTS * * Save flags * MODEFLAG DS 1 ;INV "P", INV "E" or INV "-" WNDSAVE DS 1 * * Save system window * SAVEWND LDA WNDTOP STA WNDSAVE BEQ :RTS LDA $400+20 ;Imaginery "P" or "E" for page/exec STA MODEFLAG LDX #0 LDY #39 ]LOOP LDA $480,Y JSR :STICK LDA $500,Y JSR :STICK SEC BIT SEV JSR AUXWND JSR :STICK CLC BIT SEV JSR AUXWND JSR :STICK DEY BPL ]LOOP :RTS RTS :STICK STA SAVESTUFF,X INX RTS SEV DFB %01000000 * * Us * ASC "ZCOUT by Zapatrax and Postmaster!" * * Line #1 and #2 * SAVESTUFF DS 80*2 * * Restore system window * RESTWND LDA WNDSAVE STA WNDTOP BEQ :RTS JSR GOVIDWND LDX #0 LDY #39 ]LOOP JSR :GET STA $480,Y JSR :GET STA $500,Y JSR :GET SEC CLV JSR AUXWND JSR :GET CLC CLV JSR AUXWND DEY BPL ]LOOP LDA MODEFLAG LDX #2 ]LOOP CMP :TBL,X BEQ :GOT DEX BPL ]LOOP :GOT JSR AUXVIDEXEC :RTS RTS :GET LDA SAVESTUFF,X INX RTS :TBL INV "-PE" OVERIDE DS 1 CHECKLF STZ OVERIDE STZ FORCE AND #$7F CMP #$A BNE :CHECKCH LDX WNDBTM CPX #23 BEQ :RTS SEC JSR AUXHOLES CPX #22 ;Let it line feed below line 4! BCC :RTS DEC OVERIDE DEC FORCE :RTS RTS :CHECKCH SEC JSR AUXHOLES CPX #21 BNE :RTS CLC JSR AUXHOLES CPY #79 BNE :RTS LDA COUTEMP ORA #$80 CMP #$A0 BCC :RTS DEC FORCE RTS GOVIDINIT1 LDA $C30D STA PINIT+1 LDA $C30F STA PWRITE+1 INITZP STZ CH STZ CV RTS SAVEBOTH JSR SAVEWND JMP SAVEBOT RESTBOTH JSR RESTWND JMP RESTBOT ZPRESTWND JSR INITZP JMP RESTWND SAV X/ZCOUT.OBJ ;Auxilliary code LST ON LASTLINE DFB 0 LST OFF END  !"#$%&'()*+* LST OFF *------------------------------- * * ZCOUT v1.00 * * ACOS screen output routines for GBBS.PRO * * Requires 65C02 (big deal) * Written by Zapatrax and Postmaster * 24th June 1989 - Australia * * Free for use by registered GBBS sysops, as long as the code * is not modified in any way. * * This code resides at $900.$CFF clobering any attempt of sysops * to use the printer routines. Tough. * Also included to ACOS.OBJ, is a patch to take out the LDA #$96 JSR $0906 * at $XXXX and $XXXX. Greg is demented. * *------------------------------- ORG $900 * * System equates * WNDTOP EQU $22 WNDBTM EQU $23 CH EQU $24 CV EQU $25 CHAR EQU $26 PCH EQU $57B PCV EQU $5FB MODE EQU $4FB PBASL EQU $77B PBASH EQU $7FB * * Hook table (per Greg baby's instructions) * HOOKS JMP VIDINIT JMP VIDCLS JMP VIDCOUT JMP VIDSCRL JMP VIDBAN JMP VIDLST JMP VIDRDST JMP VIDRDKY JMP VIDRDFN JMP VIDWND JMP VIDRD JMP VIDKEY JMP VIDPOS JMP VIDEXEC * * VIDINIT - "Initialize the local video." * VIDINIT LDA $C30D STA PINIT+1 LDA $C30F STA PWRITE+1 JSR CALLPINIT STZ CH STZ CV RTS * * My COUT * COUT LDX #$C3 LDY #$30 JSR PWRITE LDA PCV STA CV LDA PCH STA CH RTS * * VIDCLS - "Clear the screen." * VIDCLS JSR SAVE JSR SAVEWND LDA #$8C JSR COUT STZ CH STZ CV JSR RESTWND JSR REST RTS * * Save A,X,Y * SAVE PHA PHX PHY TSX LDA $105,X PHA LDA $104,X PHA RTS * * Restore A,X,Y * REST TSX LDA $102,X STA $107,X LDA $101,X STA $106,X PLA PLA PLY PLX PLA RTS * * VIDCOUT - "Display character in A on the * screen at the current cursor location * ($24,$25)." * VIDCOUT STA :TEMP JSR SAVE JSR BASCALC LDA :TEMP AND #$7F CMP #7 BEQ :BEEP CMP #$D BNE :DOTEST LDA :TEMP PHA LDA #$A JSR VIDCOUT PLA STA :TEMP :DOTEST JSR TESTOUT PHP JSR TESTBOT PHP LDA :TEMP JSR COUT PLP BCS :BOTOK JSR RESTBOT :BOTOK PLP BCS :OUT JSR RESTWND :OUT JSR REST RTS :BEEP LDA $C036 PHA AND #$7F STA $C036 LDX #20 ]LOOP LDY #20 DEY BNE *-1 BIT $C030 DEX BNE ]LOOP PLA STA $C036 JSR REST RTS :TEMP DS 1 * * VIDSCRL - "Scroll the screen one line." * Which way cunt? * VIDSCRL JSR SAVE JSR SAVEWND JSR SAVEBOT LDA #'W'-$40 JSR COUT JSR RESTBOT JSR RESTWND JSR REST RTS * * VIDBAN - "Scroll the character in A * accross the 24th line." ..... SP? * * And don't do the first 4 characters. * VIDBAN STA :TEMP JSR SAVE LDY #2 ]LOOP STA $C054 LDA $7D0,Y STA $C055 STA $7D0,Y LDA $7D1,Y STA $C054 STA $7D0,Y INY CPY #39 BCC ]LOOP LDA $7D0+39 STA $C055 STA $7D0+39 STA $C054 LDA :TEMP STA $7D0+39 JSR REST RTS :TEMP DS 1 * * VIDLST - "Clear the last line of the * video display." * VIDLST JSR SAVE LDY #39 LDA #$A0 ]LOOP STA $C055 STA $7D0,Y STA $C054 STA $7D0,Y DEY BPL ]LOOP JSR REST RTS * * VIDRDST - "Initialize the read-key * routine." ..... Spacing? * VIDRDST JSR SAVE CLC JSR GETPICK STA CHAR JSR REST RTS * * Pick or stick a character * GETPICK PHA PHP LDX PCV LDA LO,X STA :MOD+1 STA :MOD1+1 LDA HI,X STA :MOD+2 STA :MOD1+2 LDA PCH STA $C054 LSR BCS :OK STA $C055 :OK TAY PLP BCC :READ PLA :MOD1 STA $FFFF,Y RTS :READ PLA :MOD LDA $FFFF,Y RTS * * Base tables * LO HEX 0080008000800080 HEX 28A828A828A828A8 HEX 50D050D050D050D0 HI HEX 0404050506060707 HEX 0404050506060707 HEX 0404050506060707 * * VIDRDKY - "This routine blinks cursor." * VIDRDKY JSR SAVE CLC JSR GETPICK EOR #$DF SEC JSR GETPICK JSR REST RTS * * VIDWND - "Display top of screen window." * VIDWND JSR SAVE LDY #39 STA $C054 ]LOOP LDA #"-"-$60 STA $400,Y STA $580,Y STA $C055 STA $400,Y STA $580 LDA #$20 STA $480,Y STA $500,Y STA $C054 STA $480,Y STA $500,Y DEY BPL ]LOOP LDA #4 STA WNDTOP JSR REST RTS * * VIDPOS - "Position on the screen to X,Y." * VIDPOS STX :X STY :Y JSR SAVE LDA #'^'-$40 JSR COUT LDA :X CLC ADC #$20 JSR COUT LDA :Y CLC ADC #$20 JSR COUT JSR REST RTS :X DS 1 :Y DS 1 * * VIDEXEC - "" * * If A = 0 then clear top line of window * If A = 1 then "[ Page: On ]" * If A = 2 then "[ Exec: On ]" * VIDEXEC RTS ;? * * VIDRD - "Read the contents of video line * X into $280. Length of line in Y." * * Bullshit. * * 'Move to line X position Y and read the character into A. * Then restore the old CH and exit' * * $280? - God knows.... * VIDRD STX :X STY :Y JSR SAVE LDA PCH PHA LDX :X LDY :Y JSR VIDPOS CLC JSR GETPICK STA :TEMP PLX LDY :Y JSR VIDPOS JSR REST LDA :TEMP RTS :X DS 1 :Y DS 1 :TEMP DS 1 * * Save flags * MODEFLAG DS 1 ;INV "P", INV "E" or INV "-" WNDSAVE DS 1 * * Save system window * SAVEWND LDA WNDTOP STA WNDSAVE BEQ :RTS LDA $400+20 ;Imaginery "P" or "E" for page/exec STA MODEFLAG LDX #0 LDY #39 ]LOOP STA $C055 LDA $480,Y JSR :STICK LDA $500,Y JSR :STICK STA $C054 LDA $480,Y JSR :STICK LDA $500,Y JSR :STICK DEY BPL ]LOOP :RTS RTS :STICK STA SAVESTUFF,X INX RTS * * Restore system window * RESTWND LDA WNDSAVE STA WNDTOP BEQ :RTS JSR VIDWND LDX #0 LDY #39 ]LOOP STA $C055 JSR :GET STA $480,Y JSR :GET STA $500,Y STA $C054 JSR :GET STA $480,Y JSR :GET STA $500,Y DEY BPL ]LOOP LDA MODEFLAG LDX #2 ]LOOP CMP :TBL,X BEQ :GOT DEX BPL ]LOOP :GOT JSR VIDEXEC :RTS RTS :GET LDA SAVESTUFF,X INX RTS :TBL INV "-PE" * * Save system window if output will fuck it * TESTOUT LDX WNDTOP BEQ :RTS LDX PCV AND #$7F CMP #$A ;LF BEQ :TESTLINE CMP #$C ;HOME BEQ :SAVE CMP #$16 ;DOWN BEQ :SAVE CMP #$17 ;UP BEQ :SAVE CPX #4 BCC :SAVE CPX #24 BNE :RTS LDY PCH CPY #79 BNE :RTS :SAVE JSR SAVEWND CLC RTS :TESTLINE CPX #24 BEQ :SAVE :RTS SEC RTS * * Stop before printer shit * * ERR *-1/$C00 DS $C00-* * * Printer shit * JMP PRTS JMP PRTS JMP PRTS PRTS RTS * * Line #1 and #2 * SAVESTUFF DS 80*2 * * VIDRDFN - "Finish read-key routine." * VIDRDFN JSR SAVE LDA CHAR SEC JSR GETPICK JSR REST RTS * * Pascal stuff. * PINIT JMP $C300 PWRITE JMP $C300 CALLPINIT LDX #$C3 LDY #$30 JMP PINIT * * Read in new CH/CV and tell the ROM * BASCALC LDA CH STA PCH LDX CV STX PCV LDA LO,X STA PBASL LDA HI,X STA PBASH RTS * * VIDKEY - "Read local keyboard. BMI if * data in A and the high-bit will be set." * * Sound simple? Good one Greggy... * VIDKEY LDA $C000 RTS ERR *-1/$D00 DS $D00-* DFB $80 JMP GETDATE JMP GETTIME GETDATE JSR $BF00 ;Really SETDATE HEX 82 DA * LDA $BF91 LDX $BF90 RTS GETTIME JSR GETDATE TIMESTR ASC 'HH:MM:SS',000000 SAVEBOT LDY #39 LDX #0 ]LOOP STA $C055 LDA $7D0,Y STA BOTSTUFF,X LDA #$A0 STA $7D0,Y INX STA $C054 LDA $7D0,Y STA BOTSTUFF,X LDA #$A0 STA $7D0,Y INX DEY BPL ]LOOP RTS BOTSTUFF DS 80 RESTBOT LDY #39 LDX #0 ]LOOP STA $C055 LDA BOTSTUFF,X STA $7D0,Y INX STA $C054 LDA BOTSTUFF,X STA $7D0,Y INX DEY BPL ]LOOP RTS TESTBOT LDX WNDBTM CPX #$18 BEQ :RTS LDX PCV AND #$7F CMP #$A ;LF BEQ :TESTLINE CMP #$C ;HOME BEQ :SAVE CMP #$16 ;DOWN BEQ :SAVE CMP #$17 ;UP BEQ :SAVE CPX #24 BNE :RTS LDY PCH CPY #79 BNE :RTS :SAVE JSR SAVEBOT CLC RTS :TESTLINE CPX #24 BEQ :SAVE :RTS SEC RTS LST ON LASTLINE DFB 0 LST OFF END -./01 LST OFF ORG $2A9F PREBOOT STA $C00C JSR $FB2F JSR $FE89 JSR $FE93 JSR $FC58 JSR PRINT LUP 11 HEX 8D --^ ASC "Loading ZCOUT code into RAM....",00 JSR TEST JSR LOAD JSR COPY JSR $280 JSR FIXACOS LDA $C062 BPL :OUT LDA $C061 BPL :OUT JSR CREDITS :OUT JSR $FC58 JMP $2000 FIXACOS LDA #$A5 STA $2000 STZ $2001 LDA #$48 STA $2002 RTS COPY LDX #127 ]LOOP LDA CODE,X STA $280,X DEX BPL ]LOOP RTS CREDITS JSR $FC58 JSR PRINT LUP 40 INV " " --^ INV " ZCOUT - PASCAL 1.1 FIRMWARE ACOS PATCH " LUP 40 INV " " --^ HEX 8D8D ASC " Written by",8D8D ASC " Zapatrax and Postmaster",8D8D8D ASC "Requires an empty /RAM/ on startup and a" ASC " 65C02 processor.",8D8D8D8D8D8D8D8D8D8D8D8D ASC " [RETURN]",00 STA $C010 LDA $C000 BPL *-3 STA $C010 CMP #"Z" BEQ :ZBLURT CMP #"P" BEQ :PBLURT RTS :PBLURT :ZBLURT LDA $C036 PHA AND #$7F STA $C036 LDX #60 ]LOOP LDY #20 DEY BNE *-1 BIT $C030 DEX BNE ]LOOP PLA STA $C036 RTS CODE ORG $280 STA $C001 STA $C057 STA $C055 JSR $2000 STA $C054 STA $C056 STA $C000 RTS ORG TEST LDX $BF31 ]LOOP LDA $BF32,X CMP #$BF BEQ :GOTIT DEX BPL ]LOOP :KILL STZ $24 JSR $FC9C JSR PRINT ASC "ZCOUT requires an empty RAM disk!",00 STZ $3F2 STZ $3F3 BRA * :GOTIT JSR $BF00 HEX 80 DA :PARMS BCS :KILL LDX #MAPLEN-1 ]LOOP LDA $800,X CMP BITMAP,X BNE :KILL DEX BPL ]LOOP RTS :PARMS DFB 3,$B0 DA $800,3 BITMAP HEX 00 LUP 14 HEX FF --^ HEX FE MAPLEN EQU *-BITMAP PRINT PLA STA 0 PLA STA 1 :LOOP INC 0 BNE :OK INC 1 :OK LDA (0) BEQ :FIN JSR $FDED BRA :LOOP :FIN LDA 1 PHA LDA 0 PHA RTS LOAD JSR $BF00 HEX C8 DA :OPEN BCS :ERR LDA :REFNUM STA :REF1 JSR $BF00 HEX CA DA :READ BCS :ERR JSR CLOSE LDA :XFER STA :COUNT LDA :XFER+1 STA :COUNT+1 JSR $BF00 HEX C0 DA :CREATE BCS :ERR JSR $BF00 HEX C8 DA :OPEN1 BCS :ERR LDA :REFNUM1 STA :REF1 JSR $BF00 HEX CB DA :READ BCS :ERR JMP CLOSE :ERR PHA STZ $24 JSR $FC9C JSR PRINT ASC "Unable to install code. MLI err $",00 PLA JSR $FDDA STZ $3F2 STZ $3F3 BRA * :OPEN DFB 3 DA :PATH DA $800 :REFNUM DS 1 :OPEN1 DFB 3 DA :PATH1 DA $800 :REFNUM1 DS 1 :READ DFB 4 :REF1 DS 1 DA BUFFER :COUNT DA $2000 :XFER DA 0 :CREATE DFB 7 DA :PATH1 HEX C3010000000100000000 :PATH STR "ZCOUT.OBJ" :PATH1 STR "/RAM/ZCOUT.IMAGE" CLOSE JSR $BF00 HEX CC DA :PARMS RTS :PARMS DFB 1,0 BUFFER EQU * END 3456789:;<=>?@A LST OFF *------------------------------- * * ZCOUT v1.00 * * ACOS screen output routines for GBBS.PRO * * Requires 65C02 (big deal) * Written by Zapatrax and Postmaster * 24th June 1989 - Australia * * Free for use by registered GBBS sysops, as long as the code * is not modified in any way. * * This code resides at $900 and $01/2000, clobbering up to $2000 bytes * of auxilliary memory as needed. * Also included to ACOS.OBJ, is a patch to take out the LDA #$96 JSR $0906 * at $36C5 and $36F5. Greg is demented. * *------------------------------- ORG $900 * * System equates * WNDTOP EQU $22 WNDBTM EQU $23 CH EQU $24 CV EQU $25 CHAR EQU $26 PCH EQU $57B PCV EQU $5FB MODE EQU $4FB PBASL EQU $77B PBASH EQU $7FB * * Hook table (per Greg baby's instructions) * HOOKS JMP VIDINIT JMP VIDCLS JMP VIDCOUT JMP VIDSCRL JMP VIDBAN JMP VIDLST JMP VIDRDST JMP VIDRDKY JMP VIDRDFN JMP VIDWND JMP VIDRD JMP VIDKEY JMP VIDPOS JMP VIDEXEC * * VIDINIT - "Initialize the local video." * VIDINIT LDA $C30D STA PINIT+1 LDA $C30F STA PWRITE+1 JSR CALLPINIT STZ CH STZ CV RTS * * My COUT * COUT LDX #$C3 LDY #$30 JSR PWRITE LDA PCV STA CV LDA PCH STA CH RTS * * VIDCLS - "Clear the screen." * VIDCLS JSR SAVE JSR SAVEWND LDA #$8C JSR COUT STZ CH STZ CV JSR RESTWND JSR REST RTS * * Save A,X,Y * SAVE PHA PHX PHY TSX LDA $105,X PHA LDA $104,X PHA RTS * * Restore A,X,Y * REST TSX LDA $102,X STA $107,X LDA $101,X STA $106,X PLA PLA PLY PLX PLA RTS * * VIDCOUT - "Display character in A on the * screen at the current cursor location * ($24,$25)." * VIDCOUT STA :TEMP JSR SAVE JSR BASCALC LDA :TEMP AND #$7F CMP #7 BEQ :BEEP CMP #$D BNE :DOTEST LDA :TEMP PHA LDA #$A JSR VIDCOUT PLA STA :TEMP :DOTEST JSR TESTOUT PHP JSR TESTBOT PHP LDA :TEMP JSR COUT PLP BCS :BOTOK JSR RESTBOT :BOTOK PLP BCS :OUT JSR RESTWND :OUT JSR REST RTS :BEEP LDA $C036 PHA AND #$7F STA $C036 LDX #20 ]LOOP LDY #20 DEY BNE *-1 BIT $C030 DEX BNE ]LOOP PLA STA $C036 JSR REST RTS :TEMP DS 1 * * VIDSCRL - "Scroll the screen one line." * Which way cunt? * VIDSCRL JSR SAVE JSR SAVEWND JSR SAVEBOT LDA #'W'-$40 JSR COUT JSR RESTBOT JSR RESTWND JSR REST RTS * * VIDBAN - "Scroll the character in A * accross the 24th line." ..... SP? * * And don't do the first 4 characters. * VIDBAN STA :TEMP JSR SAVE LDY #2 ]LOOP STA $C054 LDA $7D0,Y STA $C055 STA $7D0,Y LDA $7D1,Y STA $C054 STA $7D0,Y INY CPY #39 BCC ]LOOP LDA $7D0+39 STA $C055 STA $7D0+39 STA $C054 LDA :TEMP STA $7D0+39 JSR REST RTS :TEMP DS 1 * * VIDLST - "Clear the last line of the * video display." * VIDLST JSR SAVE LDY #39 LDA #$A0 ]LOOP STA $C055 STA $7D0,Y STA $C054 STA $7D0,Y DEY BPL ]LOOP JSR REST RTS * * VIDRDST - "Initialize the read-key * routine." ..... Spacing? * VIDRDST JSR SAVE CLC JSR GETPICK STA CHAR JSR REST RTS * * Pick or stick a character * GETPICK PHA PHP LDX PCV LDA LO,X STA :MOD+1 STA :MOD1+1 LDA HI,X STA :MOD+2 STA :MOD1+2 LDA PCH STA $C054 LSR BCS :OK STA $C055 :OK TAY PLP BCC :READ PLA :MOD1 STA $FFFF,Y RTS :READ PLA :MOD LDA $FFFF,Y RTS * * Base tables * LO HEX 0080008000800080 HEX 28A828A828A828A8 HEX 50D050D050D050D0 HI HEX 0404050506060707 HEX 0404050506060707 HEX 0404050506060707 * * VIDRDKY - "This routine blinks cursor." * VIDRDKY JSR SAVE CLC JSR GETPICK EOR #$DF SEC JSR GETPICK JSR REST RTS * * VIDWND - "Display top of screen window." * VIDWND JSR SAVE LDY #39 STA $C054 ]LOOP LDA #"-"-$60 STA $400,Y STA $580,Y STA $C055 STA $400,Y STA $580 LDA #$20 STA $480,Y STA $500,Y STA $C054 STA $480,Y STA $500,Y DEY BPL ]LOOP LDA #4 STA WNDTOP JSR REST RTS * * VIDPOS - "Position on the screen to X,Y." * VIDPOS STX :X STY :Y JSR SAVE LDA #'^'-$40 JSR COUT LDA :X CLC ADC #$20 JSR COUT LDA :Y CLC ADC #$20 JSR COUT JSR REST RTS :X DS 1 :Y DS 1 * * VIDEXEC - "" * * If A = 0 then clear top line of window * If A = 1 then "[ Page: On ]" * If A = 2 then "[ Exec: On ]" * VIDEXEC RTS ;? * * VIDRD - "Read the contents of video line * X into $280. Length of line in Y." * * Bullshit. * * 'Move to line X position Y and read the character into A. * Then restore the old CH and exit' * * $280? - God knows.... * VIDRD STX :X STY :Y JSR SAVE LDA PCH PHA LDX :X LDY :Y JSR VIDPOS CLC JSR GETPICK STA :TEMP PLX LDY :Y JSR VIDPOS JSR REST LDA :TEMP RTS :X DS 1 :Y DS 1 :TEMP DS 1 * * Save flags * MODEFLAG DS 1 ;INV "P", INV "E" or INV "-" WNDSAVE DS 1 * * Save system window * SAVEWND LDA WNDTOP STA WNDSAVE BEQ :RTS LDA $400+20 ;Imaginery "P" or "E" for page/exec STA MODEFLAG LDX #0 LDY #39 ]LOOP STA $C055 LDA $480,Y JSR :STICK LDA $500,Y JSR :STICK STA $C054 LDA $480,Y JSR :STICK LDA $500,Y JSR :STICK DEY BPL ]LOOP :RTS RTS :STICK STA SAVESTUFF,X INX RTS * * Restore system window * RESTWND LDA WNDSAVE STA WNDTOP BEQ :RTS JSR VIDWND LDX #0 LDY #39 ]LOOP STA $C055 JSR :GET STA $480,Y JSR :GET STA $500,Y STA $C054 JSR :GET STA $480,Y JSR :GET STA $500,Y DEY BPL ]LOOP LDA MODEFLAG LDX #2 ]LOOP CMP :TBL,X BEQ :GOT DEX BPL ]LOOP :GOT JSR VIDEXEC :RTS RTS :GET LDA SAVESTUFF,X INX RTS :TBL INV "-PE" * * Save system window if output will fuck it * TESTOUT LDX WNDTOP BEQ :RTS LDX PCV AND #$7F CMP #$A ;LF BEQ :TESTLINE CMP #$C ;HOME BEQ :SAVE CMP #$16 ;DOWN BEQ :SAVE CMP #$17 ;UP BEQ :SAVE CPX #4 BCC :SAVE CPX #24 BNE :RTS LDY PCH CPY #79 BNE :RTS :SAVE JSR SAVEWND CLC RTS :TESTLINE CPX #24 BEQ :SAVE :RTS SEC RTS * * Stop before printer shit * * ERR *-1/$C00 DS $C00-* * * Printer shit * JMP PRTS JMP PRTS JMP PRTS PRTS RTS * * Line #1 and #2 * SAVESTUFF DS 80*2 * * VIDRDFN - "Finish read-key routine." * VIDRDFN JSR SAVE LDA CHAR SEC JSR GETPICK JSR REST RTS * * Pascal stuff. * PINIT JMP $C300 PWRITE JMP $C300 CALLPINIT LDX #$C3 LDY #$30 JMP PINIT * * Read in new CH/CV and tell the ROM * BASCALC LDA CH STA PCH LDX CV STX PCV LDA LO,X STA PBASL LDA HI,X STA PBASH RTS * * VIDKEY - "Read local keyboard. BMI if * data in A and the high-bit will be set." * * Sound simple? Good one Greggy... * VIDKEY LDA $C000 RTS ERR *-1/$D00 DS $D00-* DFB $80 JMP GETDATE JMP GETTIME GETDATE JSR $BF00 ;Really SETDATE HEX 82 DA * LDA $BF91 LDX $BF90 RTS GETTIME JSR GETDATE TIMESTR ASC 'HH:MM:SS',000000 SAVEBOT LDY #39 LDX #0 ]LOOP STA $C055 LDA $7D0,Y STA BOTSTUFF,X LDA #$A0 STA $7D0,Y INX STA $C054 LDA $7D0,Y STA BOTSTUFF,X LDA #$A0 STA $7D0,Y INX DEY BPL ]LOOP RTS BOTSTUFF DS 80 RESTBOT LDY #39 LDX #0 ]LOOP STA $C055 LDA BOTSTUFF,X STA $7D0,Y INX STA $C054 LDA BOTSTUFF,X STA $7D0,Y INX DEY BPL ]LOOP RTS TESTBOT LDX WNDBTM CPX #$18 BEQ :RTS LDX PCV AND #$7F CMP #$A ;LF BEQ :TESTLINE CMP #$C ;HOME BEQ :SAVE CMP #$16 ;DOWN BEQ :SAVE CMP #$17 ;UP BEQ :SAVE CPX #24 BNE :RTS LDY PCH CPY #79 BNE :RTS :SAVE JSR SAVEBOT CLC RTS :TESTLINE CPX #24 BEQ :SAVE :RTS SEC RTS LST ON LASTLINE DFB 0 LST OFF END CDEFGHIJKLMNOP L! # T / X 8 nT  I Ԡ젭 [ ԠӬЮϮᬠ׬ᬠ"#8# X * 躍۱ݠԍ۲ݠ󍍠۳ݠ􍍠۴ݠ􍍍 ݠ * E (/ L * h 6 L ћQD X X X `LU E $(` X [$ 젿 P ` e LhhHH` xi08X0`'  L Ԡᠶð̭Ԡݠ,T 0 6H68,0 ,T 0h6`I 8 (0)` [$ ' ( E ̐ ` X Ԡ󻍍嬠젱쮍占ӮϠ嬠占箍ӮϠ嬠 k X ԠӠ宠Ӡ嬠ԠӠ堯ͮԠӮʠ嬠ӠǮ͠ӠԠӮʠ k X 젱ҧĩ䬠䠨ƧӮϠ堰 堲Ʃ k X Ԡ䬠젱󮍠쬠쮍ӮϠ䬠笠ԧ k X 婮ԠӮϠƠà栲ƩԠŮԠ k X ɠ٠Ԡ謠Ġ堲ԠŮ k X 󺍍Ӡ𬠯͠Ӡ뮠Ӡ笠堯͠ԮŮԠᠶð k X ӮϠŠԮŬ䮍򺠠庠報򺠠 k X`j$ ( E H$(hɍNɛOɈ ɘɠ' * ҭ  jѝ `8`ԮůԮήԮůԮӮԮůԮ Ӯ Ԯ ӮЮɯ'A'''''̲'A'B'̼A'''''''` X [$ ӮϠ7 ` X [$ A'# Ȧ  ̬+ X [$ Ұ䠧ӧLk A'# H(  h$ #n)1p)3683 X [$ ұӠLk k# y ~ : X [$ ҰԮůԮήӍLk #   : X [$ ҰԮůԮӮčLk # 9 >@ ?6 X [$ ҰԮůԮʍLk '# ȕ  ̛L X [$ ɠ P ` X [$ Ԯ ' 1 1Í41 1* X [$ Ұ䡍Lk '  X [$ Ԡ ' ľ( '  Í   A' ( A' 2 2Í52 2 '# f km lLA'# ȊH( ʜ8"9"h ̼ [" S"6 X [$ ҰӮЍLk '# 5" 4"5 X [$ ҰӮЍLk 5"m l ' y y(|y y k# ȮH( h '# 5" 8"9" 4"2 X [$ ҰӮʍLk 5"Q P # bgH(u tz{8"9"h ̔A'# ȡ="5" <". X [$ ҰӍLk 5"  / X [$ ұӠLk 4". X [$ ұӍLk 5"0" /" /"5"~ } # ȏ H( ʡ 8"9"h O" G"4 X [$ ұԮʍLk '# ! !5" 4"3 X [$ ұԮʍLk 5"n! m!  A' ! !(!! ! ' ! į!(!! ï! ' ! !(!! !d$ Lk (D"L*' ' 1qp0j*B NEW.ZCOUT.S OLD.ZCOUT.S ZCOUT.INIT.S5BZCOUT.S5ZINSTALL.SYSTEMZCOUT.V2v.0' '*ZCOUT.V2.SS8&/۲R,ZCOUT.V202.Sq#B,!޲*R,ZCOUT.V203.S$D,R,ZCOUT.V204.S)VO,4R*ZINSTALL.S:,*%R/ZINSTALL.SYSTEM,  RFINDER.DATA.-p. RTUVWXYZ[\]^_`abcdefghijklmnopԠƍ Ӯύ ð 쩍 ፪ Ӯ 卪 õƵ 󮍪 卪 󮍪 宍 ԮӮĢ 宍 Ԯʢ 宍 Ӯ   Ǯͮ ԮήӢ õ Ƶ  Ӯʬ 庍 ó õ Ƴ Ƶ 䮍 獪 卪 宍Ǡ 󍪍Рՠ͠ՠȠՠ֠ՠҠՠ̠ՠȠՠӲ̠ՠӲȠՠǠՠ 󍪍àÍϬ؍̍ɬ؍ȍ占Ҡ΍Ϭ؍̍ɬ؍ȍҠƍ̠ÍݰРݲݱލ占ݱ̠ÍàˍРݱˠ 󩍪ӠРԍРӍРԍР̍Р΍РԍРԍРٍР΍РčРčРٍРӍРÍ Ҡàߢ 󍪍ΠԠðԠðӍƠԠðԠðӍҠҠƍҠҍР΍ҠҠƍҠҍР΍ԠҠƍҠԍР΍٠Ҡƍ٠РðӲٍٍ̩̩ðӲٍٍٍ̩̩̠ЍР΍ҠٍҍðӠЍðРٍٍ̩ðٍӍҠٍҍðӠЍðРٍٍ̩ðٍӍԠ٠Рðٍ̩ðٍٍ̩̠ЍӍҠӠԠðҠƍРҩ 捪 ٠ðӍ ﮢԠðčððҠ΍ҠԍҠƍõРŠԍÍõԠƵРŠӍÍƵӠӍŠҠ΍ҠǍРƍԠҠ΍ҠǍРƍ ӠҠ΍ҠӍРƍ 客 ̠Ҡ΍Ҡ̍Рƍ 客 п 󮍪ΠҠ΍Ҡ΍Рƍ 卪 ԠҠ΍ҠԍРƍ 客 翍ԠҠ΍ҠԍРƍ 򮢍٠Ҡ΍ҠٍРƍ ĠҠ΍ҠčРƍ جٮӠҠ΍ҠӍРƍ 卪 ٮ 󮮮ĠҠ΍ҠčРƍ ݢ ݢàҠ΍ҠÍРƍ 客ΠҠ΍Ҡ΍Рƍà 卪  ԠҠ΍ҠԍРƍҠðӠð֠ԮήӍǠԠčÍàɠčÍōàčōÍĠčɠ϶Ӎ϶ؠƍРŬ؍؍؍̠ЍРŠǠððððÍҠŹҠŸҠ²ƍҠõؠРԬ؍؍Ա؍؍؍̠ЍƲƳРԠàӮ ðԱà ǍǠ؍ؠҍ̬؍̫؍̫؍̬؍؍؍؍ؠҍ؍ӍǠؠҍ؍؍؍ؠҍ̫؍̬؍٠̫؍؍Ӎ̠Ӡ ҠӠΠҠǍؠÍ٠РҠҍٍҠҍٍٍ٠àЍ٠ҠҍРǍԠҠǍؠ͍؍ÍҠԍРǍԠҠǍؠ֍Í٠ȍҠҍҍҍҠҍРǍ٠ҠǍؠ֍ÍҍҠЍ٠ȍҠҍҠЍҠҍРǍРӠĠҠǍЍŠԍҠԠ 퍠ҠԍҠԍҠԍؠÍҠԍ؍ÍҠԍ؍ÍҠԍ؍ÍҠԍЍ֍ÍàРР͍àˍÍЍˠ֍ԠРǍӠٍ؍Š 󮮮ҠԍÍàҠԍÍàҠԍӍ ĠҠǍÍؠȍҠҍؠȍҠǍӍàӍΠҠǍؠ֍Í٠ȍҍҠҍРǍ 󍪍ϠؠؠؠİİİİɠؠؠؠӠÍҠԍӍ̠קҠԍӍ٠ؠǍؠƍѠ؍Ġƍȍ͍ÍàЍ΍ĠƍÍàР΍àˍ֍ˠÍàЍ֍ڠǍÍӍؠĠƍÍàРàˍȍˠǍÍӍΠӠԠҠǍٍؠ֍ÍԠǍ̠ԍҠٍ̠Ԡ àˠ ج ԠҠҍĠƍРōѠٍРĠҿŠԍÍҠҍҠԍÍҠҍčԠРà̍ˠ٠ȍҠōؠ֍ÍҠҍȍ̠̍؍ū؍Šˍҍˍˠ٠˭ٍ٠˭ٍŬ؍ӍȠ٠ȍؠ֍ٍ٠àˍ٠؍ؠ͍àˍҠЍ٠ؠ͍؍ˠؠ֍٠ȍˠؠ֍ÍҠҍРǍ٠ҠٍԠРǍŠ̠̠έ̠ƭ̠ԭ̠ӭ̠̠ƭ̠ӭ̠ŭÍ̠ҭč̠ͭō̠֭ƍ̠̠έ̠Э̠ƭ̠ҭ̠Э̠ݍ̠ӭÍ̠̭č̠٭ ̠ƭƍƠؠ֍؍ؠЍàӍؠ֍ӠӍΠƍؠÍƠǍӍӠ٠ȍٍ٠àˍ٠ˠ٠ȍӍ͠ ǍӍ֠ ǍӍŠĠƍԠǍ̠ЍӍРԠǍ̠ƍӠӍƠРàӍРߧàԍӍԠĠƍӍР٠ؠÍ̠٠ȍؠ֍ÍŠРҠҍٍ٠àЍӍҠؠЍؠ֍ҠڠȍӍԠðĠƍðؠР٠ٍŠԠð؍ŠЍðӍǠ Ǡ ҠԠǍ̠ҍӍҠؠ֍Í٠ȍҠҍҠРҍƠÍҠǍӍΠڠǍӍӠ٠ȍؠ֍ٍ̠ˍ٠؍ؠЍӠˍ؍٠ˠؠ֍٠ȍӍƠؠ֍؍ؠ͍àˍРЍˠؠ֍ӍӠ٠ȍؠ֍ҍŠؠЍؠ֍ڠȍб٠ҠÍРҠҍٍ٠àЍ؍ؠ͍àбӍǠ ٠ƍǍӍΠؠ͍؍РϬ؍̍ɬ؍ȍ؍Ϭ؍Ӳ̍ɬ؍ӲȍҠٍؠЍŠЍÍРōРؠЍРϬ؍̍ɬ؍ȍ؍Ϭ؍Ӳ̍ɬ؍ӲȍҠٍ؍ؠ͍Ѡԍ؍ЍԠ؍ÍРЍԠҠԍڠ֠ 占ڠȠ ڠР ؠ ؠ͍Ơ ǍڠǠ 捠ҠŠ ڠǠ ðƍРҠ ԠؠРƲ؍Ҭ؍̬؍Ʋ؍؍̠ЍԍӍ̠ԍ ԡ֠ӲӮϯԮʠ 卍ǠƍԠؠƍӍčɍðÍҠЍҠ²ƍҠŸҠŹҠõҠԍРؠčލà ͮҠԍҠčҠōҠҠӍð̠ԍð̠ԍҠӍԠҠõҠЍРӠڠӍРؠР؍؍؍ŠЍӍРؠР؍؍؍ŠЍӍŠؠРŬ؍؍؍̠ЍӍӠҠõҠԍР֠ ލ֠ Р֠ ލؠĸčà ĸčà ĸĸĸčà ͯ ᢬čà ð 򮢬ĸĸĸĸĸĸĸĸĸčà ݢðð̠ðРڢѠԍРТѠԍӍԍԠðĠƍðؠР٠ٍŠԠð؍ŠЍðӍŠǠðððҠððððӍǍԠؠƳРƳ؍РƍѠԍ؍̠Ѝ̠ڠҠùÍҠԍà 롢ڠƲڠƳԠҠưؠӍӠ̍ؠέР؍РЬ؍Š̍؍̠ЍӍӠ °РؠРؠƍލؠōΠՠЍԠРàŠˍàˠѠ΍ҠčЍΠӍĠҠưؠø΍Ӡҍ͍ƱҠưؠčӠҍҠōҍԍҫԫҠưؠðōӠҍҠưؠøαӠҍͱƱҠưؠčӠҍРōҠڠҠùÍҠԍà ҠڠƲڠƳΠ ȍ͠Ӡα ȱͱӠĠ ƱӠҍԠҠŠ ȱؠóȠҠԮʢȱҠͯԮŢŠҠưؠÍӍӍӠ ՠҠՠ֠ԮӮččrstuvwxyz{|}~Ԡƍ Ӯύ ð 쩍 퍪 ፪ Ӯ 卪 õƵ 󮍪 卪 󮍪 宍 ԮӮĢ 宍 Ԯʢ 宍 Ӯ   Ǯͮ ԮήӢ 庍 宍 ó õ Ƴ Ƶ 䮍 Ƶ ù Ʒ ư 쮍 ź ƍ ԍ ú ź ΍ 獪 卪 宍ǠǠŠ 󍪍Рՠ͠ՠȠՠ֠ՠҠՠ̠ՠȠՠӲ̠ՠӲȠՠǠՠ 󍪍ӰÍϬݱ̍ɬݱȍàÍҠ΍ݰӰݱ占Ӱ؍Ҡƍ̠ÍݰРݲݱލ占ݱ̠ÍàˍРݱˠĠÍ ݱݱݲݳ 󩍪ӠРԍРӍРԍР̍Р΍РԍРԍРٍР΍РčРčРٍРӍРÍ Ҡàߢ Ơ Ơ ҍҠ  Ġ Ơ ٍ 󍪍ΠðԠðԠðӍƠԠðԠðӍҠҠƍҠҍР΍ҠҠƍҠҍР΍ԠҠƍҠԍР΍٠Ҡƍ٠РðӲٍٍ̩̩ðӲٍٍٍ̩̩̠ЍР΍ҠٍҍðӠЍðРٍٍ̩ðٍӍҠٍҍðӠЍðРٍٍ̩ðٍӍԠ٠Рðٍ̩ðٍٍ̩̠ЍӍ 捪 ٠ðӍ ﮢԠððؠРŬ؍ѠӍȍū؍̩̍Рū؍Šԍū؍̩Ԡ؍؍؍؍ЍӠư 忍РƷ 䍠ѠˍРƷŠҍˠ占Ԡčɠٍư٠ƷҍҠ΍čРōѠˍРԍˠҠԍРƍŠĠõà ĠƵà Ʒư 婍ĠԍĠԍĠÍĠƻ΍Ġ΍ĠÍ ŠҠ΍ҠǍРƍԠҠ΍ҠǍРƍ ӠҠ΍ҠӍРƍ 客 ̠Ҡ΍Ҡ̍Рƍ 客 п 󮍪ΠҠ΍Ҡ΍Рƍ 卪 ԠҠ΍ҠԍРƍ 客 翍ԠҠ΍ҠԍРƍ 򮢍٠Ҡ΍ҠٍРƍ ĠҠ΍ҠčРƍ جٮӠҠ΍ҠӍРƍ 卪 ٮ 󮮮ĠҠ΍ҠčРƍ ݢ ݢàҠ΍ҠÍРƍ 客ΠҠ΍Ҡ΍Рƍà 鮢 卪  ԠҠ΍ҠԍРƍҠðӠð֠ԮůԮήӍǠԠРԠ ԠРԍԠРōѠˍРԍˠčÍàɠčÍōàčōÍĠčɠ϶ӠӍ϶ҠōԍԍРԠàӮ ðŠǠððððÍðҠŹҠŸҠ²ƍҠõð٠РððٍððٍԱٍٍٍ̠ЍðƲƳРԱà ̭ ǍĠ ōԠҠōԍԍРԠà ŠؠƍРŬ؍؍؍̠ЍӍǠ؍ؠҍ̬؍̫؍̫؍̬؍؍؍؍ؠҍ؍ӍǠؠҍ؍؍؍ؠҍ̫؍̬؍٠̫؍؍Ӎ̠Ӡ ҠӠΠҠǍðĠ 忍ðƍؠÍ٠РҠҍٍҠҍٍٍ٠àЍ٠ҠҍРǍԠҠǍؠ͍؍ÍҠԍРǍԠҠǍҠ֍ؠ֍Í٠ȍҠҍҍҠҍҍҍҠҍРǍҠӠ٠ҠǍؠ֍Í٠ȍҠҍҠҍҠҍРǍΠҠǍؠ֍Í٠ȍҍҠҍҠ֍РǍĠҠǍЍŠԍҠ֍ҠΠ 퍠ҠΠ 퍠ҠΠ 퍠ҠΠ 퍠ؠÍҠԍ؍ÍҠԍ؍ÍҠԍ؍ÍҠԍЍ֍ÍàРР͍àˍ͍Íˠ֍Ҡ֍ԠРǍӠҠǍҠ֍ؠȍ٠֍àٍҠ֍РǍ ĠҠǍҠ֍ÍؠȍҠҍؠȍҠǍĠƍР ӠӍàӠР֍àӍ 󍪍ϠؠؠؠİİİİɠؠؠؠӠÍҠԍӍ̠קҠԍӍ٠ؠǍؠƍѠ؍Ġƍȍ͍ÍàЍ΍ĠƍÍàР΍àˍ֍ˠÍàЍ֍ڠǍÍӍؠĠƍÍàРàˍȍˠǍÍӍΠӠԠҠǍǍԠð̠ҍҠ΍Ҡ؍Ҡ΍؍؍Ҡ؍؍؍Ҡ؍̍ؠҍҍҍҍ؍̬؍Ҡ΍Ġƍ؍̬؍Р΍̠àƢ̍ЍɍԠðɠЍҍðčؠ֍ÍԠǍ̠ԍҠٍ̠Ԡ àˠ ج ԠĠƍРōѠٍРĠҿŠԍԠƠ 忍̠ԍҠԍčԠРà̍ˠҠō٠ȍҠҍȍ̠Ҡ֍̍؍ū؍Šˍҍˍˠ٠˭ٍ٠˭ٍŬ؍ӍȠ٠ȍؠ֍ٍ٠àˍ٠؍ؠ͍àˍҠЍ٠ؠ͍؍ˠؠ֍٠ȍˠؠ֍ÍҠ֍РǍ٠Ҡ֍ҠٍԠРǍŠ̠̠έ̠ƭ̠ԭ̠ӭ̠̠ƭ̠ӭ̠ŭÍ̠ҭč̠ͭō̠֭ƍ̠̠έ̠Э̠ƭ̠ҭ̠Э̠ݍ̠ӭÍ̠̭č̠٭ ̠ƭƍƠؠ֍؍ؠЍàӍؠ֍ӠӍΠÍҠǍӍƠڠǍӍӠ٠ȍٍ٠àˍ٠ˠ٠ȍӍ͠ ǍӍ֠ ǍӍŠĠƍԠǍ̠ЍӍРԠǍ̠ƍӠӍƠРàӍРàԍӍԠĠƍӍР٠ؠÍ̠٠ȍؠ֍ÍŠҠōРҠҍٍ٠àЍӍҠؠЍؠ֍ҠڠȍӍԠðĠƍðؠР٠ٍŠԠð؍ŠЍðӍǠ Ǡ Ġ ֠ԠčɠӍԠǍ̠ԍӠӍԠٍ٠֍àٍ٠ȍҠҍҠҠҍٍӍƠÍҠǍӍΠڠǍӍӠ٠ȍؠ֍ٍ̠ˍ٠؍ؠЍӠˍ؍٠ˠؠ֍٠ȍӍƠؠ֍؍ؠ͍àˍРЍˠؠ֍ӍӠ٠ȍؠ֍ҍŠؠЍؠ֍ڠȍб٠ҠÍҠōРҠҍٍ٠àЍ؍ؠ͍àбӍǠ ٠ƍǍӍΠؠ͍؍РϬ؍̍ɬ؍ȍ؍Ϭ؍Ӳ̍ɬ؍ӲȍҠٍؠЍŠЍÍРōРؠЍРϬ؍̍ɬ؍ȍ؍Ϭ؍Ӳ̍ɬ؍ӲȍҠٍ؍ؠ͍Ѡԍ؍ЍԠ؍ÍРЍԠðčðƍҠ 獠Ġ ڠ֠ 占ڠȠ ڠР ؠ ؠ͍ڠǠ Ҡ͍ҠƍҠŠ ڠǠ Р֠ 򍍠֠ԮůԮʠ 卍ǠƍԠؠƍӍčɍðððððÍڠƹҠ²ƍҠŸҠŹҠõҠԍРؠčލà ͮҠ؍ҠԍҠčҠӍҠōōҠð̠ԍð̠ԍҠӍҠ΍ҠٍԠҠ؍ҠõРؠؠР؍Ų؍؍ŠЍӍؠؠРŲ؍؍؍ŠЍӍӠڠӍŠؠƍРŬ؍؍؍̠ЍӍӠҠõҠԍР֠ ލ֠ Р֠ ލؠĸčà ĸčà 颬ĸĸĸčà ͯ ᢬čà ð 򮢬ĸĸĸĸĸĸĸĸĸčà ݢӍ٠ðð̠ðРڢѠԍРТѠԍӍԍԠðĠƍðؠР٠ٍŠԠð؍ŠЍðӍŠǠðððҠððððӍǍԠؠƳРƳ؍РƍѠԍ؍̠Ѝ̠ڠҠùÍҠԍà 롢ڠƲڠƳԠҠưؠӍӠ̍ؠέР؍РЬ؍Š̍؍̠ЍӍӠ °РؠРؠƍލؠōΠՠЍԠРàŠˍàˠѠ΍ҠčЍΠӍĠҠưؠø΍Ӡҍ͍ƱҠưؠčӠҍҠōҍԍҫԫҠưؠðōӠҍҠưؠøαӠҍͱƱҠưؠčӠҍРōҠڠҠùÍҠԍà ҠڠƲڠƳΠ ȍ͠Ӡα ȱͱӠĠ ƱӠҍԠҠŠ ȱؠóȠҠԮʢȱҠͯԮŢŠҠưؠÍӍӍӠ ΠؠέРԬ؍İά؍؍̠ЍӍԠàݢΠԍŲǠҠՠ֠ԮůԮӮččԠƍ Ӯύ ð 쩍 퍪 ፪ Ӯ 卪 õƵ 󮍪 卪 󮍪 宍 ԮӮĢ 宍 Ԯʢ 宍 Ӯ   Ǯͮ ԮήӢ 庍 宍 ó õ Ƴ Ƶ 䮍 Ƶ ù Ʒ ư 쮍 ź ƍ ԍ ú ź ΍ 獪 卪 宍ǠŠ 󍪍Рՠ͠ՠȠՠ֠ՠҠՠ̠ՠȠՠӲ̠ՠӲȠՠǠՠ 󍪍ӰÍϬݱ̍ɬݱȍàÍҠ΍ݰӰݱ占Ӱ؍Ҡƍ̠ÍݰРݲݱލ占ݱ̠ÍàˍРݱˠĠÍ ݱݱݲݳ 󩍪ӠРԍРӍРԍР̍Р΍РԍРԍРٍР΍РčРčРٍРӍРÍ Ҡàߢ Ơ Ơ ҍҠ  Ġ Ơ ٍǠ  捍 󍪍ΠðԠðԠðӍƠԠðԠðӍҠҠƍҠҍР΍ҠҠƍҠҍР΍ԠҠƍҠԍР΍٠Ҡƍ٠РðӲٍٍ̩̩ðӲٍٍٍ̩̩̠ЍР΍ҠٍҍðӠЍðРٍٍ̩ðٍӍҠٍҍðӠЍðРٍٍ̩ðٍӍԠ٠Рðٍ̩ðٍٍ̩̠ЍӍ 捪 ٠ðӍ ﮢԠððؠРŬ؍ѠӍȍū؍̩̍Рū؍Šԍū؍̩Ԡ؍؍؍؍ЍӠư 忍РƷ 䍠ѠˍРƷŠҍˠ占Ԡčɠٍư٠ƷҍҠ΍čРōѠˍРԍˠҠԍРƍŠĠõà ĠƵà Ʒư 婍ĠԍĠԍĠÍĠƻ΍Ġ΍ĠÍ ŠҠ΍ҠǍРƍԠҠ΍ҠǍРƍ ӠҠ΍ҠӍРƍ 客 ̠Ҡ΍Ҡ̍Рƍ 客 п 󮍪ΠҠ΍Ҡ΍Рƍ 卪 ԠҠ΍ҠԍРƍ 客 翍ԠҠ΍ҠԍРƍ 򮢍٠Ҡ΍ҠٍРƍ ĠҠ΍ҠčРƍ جٮӠҠ΍ҠӍРƍ 卪 ٮ 󮮮ĠҠ΍ҠčРƍ ݢ ݢàҠ΍ҠÍРƍ 客ΠҠ΍Ҡ΍Рƍà 鮢 卪  ԠҠ΍ҠԍРƍҠðӠð֠ԮůԮήӍǠԠРԠ ԠРԍԠРōѠˍРԍˠčÍàɠčÍōàčōÍĠčɠ϶ӠӍ϶ҠōԍԍРԠàӮ ðŠǠððððÍðҠŹҠŸҠ²ƍҠõð٠РððٍððٍԱٍٍٍ̠ЍðƲƳРԱà ̭ ǍĠ ōԠҠōԍԍРԠà ŠؠƍРŬ؍؍؍̠ЍӍǠ؍ؠҍ̬؍̫؍̫؍̬؍؍؍؍ؠҍ؍ӍǠؠҍ؍؍؍ؠҍ̫؍̬؍٠̫؍؍Ӎ̠Ӡ ҠӠΠҠǍðĠ 忍ðƍؠÍ٠РҠҍٍҠҍٍٍ٠àЍ٠ҠҍРǍԠҠǍؠ͍؍ÍҠԍРǍԠҠǍҠ֍ؠ֍Í٠ȍҠҍҍҠҍҍҍҠҍРǍҠӠ٠ҠǍؠ֍Í٠ȍҠҍҠҍҠҍРǍΠҠǍؠ֍Í٠ȍҍҠҍҠ֍РǍĠҠǍЍŠԍҠ֍ҠΠ 퍠ҠΠ 퍠ҠΠ 퍠ҠΠ 퍠ؠÍҠԍ؍ÍҠԍ؍ÍҠԍ؍ÍҠԍЍ֍ÍàРР͍àˍ͍Íˠ֍Ҡ֍ԠРǍӠҠǍҠ֍ؠȍ٠֍àٍҠ֍РǍ ĠҠǍҠ֍ÍؠȍҠҍؠȍҠǍĠƍР ӠӍàӠР֍àӍ 󍪍ϠؠؠؠİİİİɠؠؠؠӠÍҠԍӍ̠קҠԍӍ٠ؠǍؠƍѠ؍Ġƍȍ͍ÍàЍ΍ĠƍÍàР΍àˍ֍ˠÍàЍ֍ڠǍÍӍؠĠƍÍàРàˍȍˠǍÍӍΠӠԠҠǍԠǍ̠ǍԠð̠ǍҠ΍Ҡ؍Ҡ΍؍؍ٍ؍ŠÍٍàÍҠ؍Ҡ؍̍ؠҍҍҍҍ؍̬؍Ҡ΍Ġƍ؍̬؍Р΍̠àƢ̍ЍɍԠðɠЍǍðčؠ֍ÍԠǍ̠ԍҠٍ̠Ԡ àˠ ج ԠĠƍРōѠٍРĠҿŠԍԠƠ 忍̠ԍҠԍčԠРà̍ˠҠō٠ȍҠҍȍ̠Ҡ֍̍؍ū؍Šˍҍˍˠ٠˭ٍ٠˭ٍŬ؍ӍȠ٠ȍؠ֍ٍ٠àˍ٠؍ؠ͍àˍҠЍ٠ؠ͍؍ˠؠ֍٠ȍˠؠ֍ÍҠ֍РǍ٠Ҡ֍ҠٍԠРǍŠ̠̠έ̠ƭ̠ԭ̠ӭ̠̠ƭ̠ӭ̠ŭÍ̠ҭč̠ͭō̠֭ƍ̠̠έ̠Э̠ƭ̠ҭ̠Э̠ݍ̠ӭÍ̠̭č̠٭ ̠ƭƍƠؠ֍؍ؠЍàӍؠ֍ӠӍΠÍҠǍӍƠڠǍӍӠ٠ȍٍ٠àˍ٠ˠ٠ȍӍ͠ ǍӍ֠ ǍӍŠĠƍԠǍ̠ЍӍРԠǍ̠ƍӠӍƠРàӍРàԍӍԠĠƍӍР٠ؠÍ̠٠ȍؠ֍ÍŠҠōРҠҍٍ٠àЍӍҠؠЍؠ֍ҠڠȍӍԠðĠƍðؠР٠ٍŠԠð؍ŠЍðӍǠ Ǡ Ġ ֠ԠčɠӍԠǍ̠ԍӠӍԠٍ٠֍àٍ٠ȍҠҍҠҠҍٍӍƠÍҠǍӍΠڠǍӍӠ٠ȍؠ֍ٍ̠ˍ٠؍ؠЍӠˍ؍٠ˠؠ֍٠ȍӍƠؠ֍؍ؠ͍àˍРЍˠؠ֍ӍӠ٠ȍؠ֍ҍŠؠЍؠ֍ڠȍб٠ҠÍҠōРҠҍٍ٠àЍ؍ؠ͍àбӍǠ ٠ƍǍӍΠؠ͍؍РϬ؍̍ɬ؍ȍ؍Ϭ؍Ӳ̍ɬ؍ӲȍҠٍؠЍŠЍÍРōРؠЍРϬ؍̍ɬ؍ȍ؍Ϭ؍Ӳ̍ɬ؍ӲȍҠٍ؍ؠ͍Ѡԍ؍ЍԠ؍ÍРЍԠðčðƍҠ 獠Ġ ڠ֠ 占ڠȠ ڠР ؠ ؠ͍ڠǠ Ҡ͍ҠƍҠŠ ڠǠ Р֠ 򍍠֠ԮůԮʠ 卍ǠƍԠؠƍӍčɍðððððÍڠƹҠŸҠ²ƍҠŸҠŹҠõÍҠűƍҠǍҠԍРؠčލà ͮҠ؍ҠԍҠčҠӍҠōōҠð̠ԍð̠ԍҠӍҠ΍ҠٍԠҠ؍РؠؠР؍Ų؍؍ŠЍӍؠؠРŲ؍؍؍ŠЍӍӠڠӍŠؠƍРŬ؍؍؍̠ЍӍӠҠõҠԍР֠ ލ֠ Р֠ ލؠĸčà ĸčà 颬ĸĸĸčà ͯ ᢬čà ð 򡢬ĸĸĸĸĸĸĸĸĸčà ݢӍ٠ðԠǍ̠Ӎð̠ðРõӠðĠƍҍڠððԍРԍððōРŠ׍ðčððōРŠðڠððōРŠčððōРàԍðð̠ЍðҍðРõĠؠנؠıؠŰԠӠҠӠǠӠŠǠðððҠððððӍǍԠؠƳРƳ؍РƍѠԍ؍̠Ѝ̠ڠҠùÍԠǍɠаðĠƍðڠðаҠԍà 롢ڠƲڠƳԠҠưؠӍӠ̍ؠέР؍РЬ؍Š̍؍̠ЍӍӠ °РؠРؠƍލؠōΠՠЍԠРàŠˍàˠѠ΍ҠčЍΠӍĠҠưؠø΍Ӡҍ͍ƱҠưؠčӠҍҠōҍԍҫԫҠưؠðōӠҍҠưؠøαӠҍͱƱҠưؠčӠҍРōҠڠҠùÍԠǍɠаðĠƍðڠðаҠԍà ҠڠƲڠƳΠ ȍ͠Ӡα ȱͱӠĠ ƱӠҍԠҠŠ ȱؠóȠҠԮʢȱҠͯԮŢŠҠưؠÍӍӍӠ ΠؠέРԬ؍İά؍؍̠ЍӍԠàݢΠԍŲǠҠՠ֠ԮůԮӮččԠƍ Ӯύ ð 쩍 퍪 ፪ 󺍪 Ӯ 卪 õƵ 󮍪 卪 󮍪 宍 ԮӮĢ 宍 Ԯʢ 宍 Ӯ   Ǯͮ ԮήӢ 庍 宍 ó õ Ƴ Ƶ 䮍 Ƶ ù Ʒ ư 쮍 ź ƍ ԍ ú ź ΍ 獪 卪 宍 󺍪 譸 ǠŠ 󍪍Рՠ͠ՠȠՠ֠ՠҠՠ̠ՠȠՠӲ̠ՠӲȠՠǠՠ 󍪍ӰÍϬݱ̍ɬݱȍàÍҠ΍ݰӰݱ占Ӱ؍Ҡƍ̠ÍݰРݲݱލ占ݱ̠ÍàˍРݱˠĠÍ ݱݱݲݳ 󩍪ӠРԍРӍРԍР̍Р΍РԍРԍРٍР΍РčРčРٍРӍРÍ Ҡàߢ Ơ Ơ ҍҠ  Ġ Ơ ٍǠ  ͠  捍 󍪍ΠðԠðԠðӍƠԠðԠðӍҠҠƍҠҍР΍ҠҠƍҠҍР΍ԠҠƍҠԍР΍٠Ҡƍ٠РðӲٍٍ̩̩ðӲٍٍٍ̩̩̠ЍР΍ҠٍҍðӠЍðРٍٍ̩ðٍӍҠٍҍðӠЍðРٍٍ̩ðٍӍԠ٠Рðٍ̩ðٍٍ̩̠ЍӍ 捪 ٠ðӍ ﮢԠððؠРŬ؍ѠӍȍū؍̩̍Рū؍Šԍū؍̩Ԡ؍؍؍؍ЍӠư 忍РƷ 䍠ѠˍРƷŠҍˠ占Ԡčɠٍư٠ƷҍҠ΍čРōѠˍРԍˠҠԍРƍŠĠõà ĠƵà Ʒư 婍ĠԍĠԍĠÍĠƻ΍Ġ΍ĠÍ ŠҠ΍ҠǍРƍԠҠ΍ҠǍРƍ ӠҠ΍ҠӍРƍ 客 ̠Ҡ΍Ҡ̍Рƍ 客 п 󮍪ΠҠ΍Ҡ΍Рƍ 卪 ԠҠ΍ҠԍРƍ 客 翍ԠҠ΍ҠԍРƍ 򮢍٠Ҡ΍ҠٍРƍ ĠҠ΍ҠčРƍ جٮӠҠ΍ҠӍРƍ 卪 ٮ 󮮮ĠҠ΍ҠčРƍ ݢ ݢàҠ΍ҠÍРƍ 客ΠҠ΍Ҡ΍Рƍà 鮢 卪  ԠҠ΍ҠԍРƍҠðӠð֠ԮůԮήӍǠԠРԠ ԠРԍ Š 퍍ԠРōѠˍРԍˠčÍàɠčÍōàčōÍĠčɠ϶ӠӍ϶ҠōԍԍРԠàӮ ðŠǠððððÍðҠŹҠŸҠ²ƍҠõð٠РððٍððٍԱٍٍٍ̠ЍðƲƳРԱà ̭ ǍĠ ōԠҠōԍԍРԠà ŠؠƍРŬ؍؍؍̠ЍӍǠ؍ؠҍ̬؍̫؍̫؍̬؍؍؍؍ؠҍ؍ӍǠؠҍ؍؍؍ؠҍ̫؍̬؍٠̫؍؍Ӎ̠Ӡ ҠӠΠҠǍðĠ 忍ðƍؠÍ٠РҠҍٍҠҍٍٍ٠àЍ٠ҠҍРǍԠҠǍؠ͍؍ÍҠԍРǍԠҠǍҠ֍ؠ֍Í٠ȍҠҍҍҠҍҍҍҠҍРǍҠӠ٠ҠǍؠ֍Í٠ȍҠҍҠҍҠҍРǍΠҠǍؠ֍Í٠ȍҍҠҍҠ֍РǍĠҠǍҠ֍ЍŠҍҠΠ 퍠ҠΠ 퍠ҠΠ 퍠ҠΠ 퍺ҠڠЍؠÍҠԍ؍ÍҠԍ؍ÍҠԍ؍ÍҠԍЍ֍ÍàРР͍àˍ͍Íˠ֍Ҡ֍ԠРǍӠҠǍҠ֍ؠȍ٠֍àٍҠ֍РǍ ĠҠǍҠ֍ÍؠȍҠҍؠȍҠǍĠƍР ӠӍàӠР֍ ݢ ݢàҠǍРŠԍЍŠԍԠ̍؍Ҭ؍īҫ؍īؠÍ٠ĠƬ؍Ҡҍٍ؍ؠàčРǍҠӍōÍōӠ֠Š֠ ТӠ墍֠ ϢӠ֠ ݢà֠ ŢӠ㢍֠ ϢӠ֠ ݢŠ֠ 󍪍ϠؠؠؠİİİİɠؠؠؠӠҠǍҠ֍ҠōҠ֍РǍ̠ҠǍҠ֍ҠЍҠ֍РǍ٠ؠǍؠƍѠ؍Ġƍȍ͍ÍàЍ΍ĠƍÍàР΍àˍ֍ˠÍàЍ֍ڠǍÍӍؠĠƍÍàРàˍȍˠǍÍӍΠӠРؠǍؠѠҍĠƍ؍ǍĠƍڠǍؠѠ΍РҠԍ؍ŠЍΠÍӍҠǍÍӍǠԠð̠ӍҠ΍Ҡ؍Ҡ΍؍؍ٍ؍ŠÍٍàÍҠ؍Ҡ؍ōؠҍҍҍҍ؍̬؍Ҡ΍Ġƍ؍̬؍Р΍̠àƢŠЍɍԠðɠЍӠӍԠҠǍԠǍ̠čҠǍčðčؠ֍ÍԠǍٍ̠Ҡٍ̠Ԡ Рˠ ج ٍԠ͍̠ԍԠǍ̠ЍҠЍ̠ԍРˍЍԍԠĠƍԠ͍ɠٍРōѠٍٍРĠҿŠԍԠƠ 忍̠ԍҠԍčԍРà̍ˠҠō٠ȍҠҍȍ̠Ҡ֍ٍ̍Ԡ͍̠ЍÍàР؍ū؍Šˍˍˠ٠˭ٍ٠˭ٍŬ؍ӍȠ٠ȍؠ֍ٍ٠àˍ٠؍ؠ͍àˍҠЍ٠ؠ͍؍ˠؠ֍٠ȍˠؠ֍ÍҠ֍РǍ٠Ҡ֍ҠٍԠРǍŠ̠ ̠έ̠ƭ̠ԭ̠ӭ̠̠ƭ̠ӭ̠ŭÍ̠ҭč̠ͭō̠֭ƍ̠̠έ̠Э̠ƭ̠ҭ̠Э̠ݍ̠ӭÍ̠̭č̠٭ ̠ƭƍű̠ ̠ҭ 占̠̭̠̠ŭ̠ŭ̠ԭ̠ԭ̠Э̠­̠ƭ̠ƭ̠ŭÍ̠ҭč̠ō̠֭ƍ̠̠̠ͭԭ̠̠ŭ̠Э̠ŭ̠̠ҭ̠̭̠Э̠̠Í̠č̠٭ō̠ƍōŠӠ 䍍Šؠ֍Р΍Š٠ȍРٍ٠Ӡ΍ҠҍٍҠҍٍЍΠٍРҍԠ٠Р٠ȍѠӍٍҠҍٍҠҍٍٍЍӠРҍԠǍӍ̠ȍӍƠؠ֍؍ؠЍàӍؠ֍ӠӍΠÍҠǍӍƠڠǍӍР٠ȍ٠ӠӍàȍӠӍ àȍȍĠŠӍӠ٠ȍٍ٠àˍ٠ˠ٠ȍӍ͠ ǍӍ֠ ǍӍŠĠƍԠǍ̠ЍӍРԠǍ̠ƍӠӍƠРàӍРàԍӍԠĠƍӍР٠ؠÍ̠٠ȍؠ֍ÍŠҠōРҠҍٍ٠àЍӍҠؠЍؠ֍ҠڠȍӍԠðĠƍðؠР٠ٍŠԠð؍ŠЍðӍǠ Ǡ Ġ ֠Ԡ͠ 퍠ɠӍԠĠ 捠ɠӍԠǠ 捠̠ԍӠӍԠٍ٠֍àٍ٠ȍҠҍҠҠҍٍӍƠÍҠǍӍΠڠǍӍР٠ȍѠӍàȍӠӍӠ٠ȍؠ֍ٍ̠ˍ٠؍ؠЍӠˍ؍٠ˠؠ֍٠ȍӍƠؠ֍؍ؠ͍àˍРЍˠؠ֍ӍӠ٠ȍؠ֍ҍŠؠЍؠ֍ڠȍб٠ҠÍҠōРҠҍٍ٠àЍ؍ؠ͍àбӍǠ Ǡ ٠ƍǍӍΠ٠ЍΠ٠Ѝؠ͍؍РϬ؍̍ɬ؍ȍ؍Ϭ؍Ӳ̍ɬ؍ӲȍҠٍؠЍŠЍÍ٠РōРӠРؠЍРϬ؍̍ɬ؍ȍ؍Ϭ؍Ӳ̍ɬ؍ӲȍҠٍ؍ؠ͍Ѡԍ؍ЍԠ؍ÍРЍԠðčðƍҠ 獠Ġ ڠ֠ 占ڠȠ ڠР ؠ ؠ͍ڠǠ ڠǍڠǍҠ͍ҠƍҠŠ ڠǠ Р֠ 򍍠à à ̪ Ӯ ֠ԮůԮʠ 卍ǠƍԠؠƍӍčɍðððððÍڠƹҠŸҠ²ƍҠŸҠŹҠõÍҠűƍҠǍҠԍРؠčލà ͮҠ؍ҠԍҠčҠӍҠōōҠð̠ԍð̠ԍҠӍҠ΍ҠٍԠҠ؍РؠؠР؍Ų؍؍ŠЍӍؠؠРŲ؍؍؍ŠЍӍӠڠӍŠؠƍРŬ؍؍؍̠ЍӍӠҠõҠԍР֠ ލ֠ ̯ Р֠ ލؠĸčà ĸčà 颬ĸĸĸčà ͯ ᢬čà ð 򡢬ĸĸĸĸĸĸĸĸĸčà ݢӍ٠ðԠǍ̠Ӎð̠ðРõӠðĠƍҍڠððԍРԍððōРŠ׍ðčððōРŠðڠððōРŠčððōРàԍðð̠ЍðҍðРõĠؠנؠıؠŰԠӠҠӠǠӠŠǠðððҠððððӍǍԠؠƳРƳ؍РƍѠԍ؍̠Ѝ̠ڠҠùÍԠǍɠаðĠƍðڠðаҠԍà 롢ڠƲڠƳԠҠưؠӍӠ̍ؠέР؍РЬ؍Š̍؍̠ЍӍӠ °РؠРؠƍލؠōΠՠЍԠРàŠˍàˠѠ΍ҠčЍΠӍĠҠưؠø΍Ӡҍ͍ƱҠưؠčӠҍҠōҍԍҫԫҠưؠðōӠҍҠưؠøαӠҍͱƱҠưؠčӠҍРōҠڠҠùÍԠǍɠаðĠƍðڠðаҠԍà ҠڠƲڠƳΠ ȍ͠Ӡα ȱͱӠĠ ƱӠҍԠҠŠ ȱؠóȠҠԮʢȱҠͯԮŢŠҠưؠÍӍӍӠ ΠؠέРԬ؍İά؍؍̠ЍӍԠàΠԍŲǠҠՠ֠ԮůԮӮččԠƍРƍǠРՠ͠ՠȠՠ֠ՠԠÍҠčҠÍàˍǍҠõϠҠԍàݱؠİǍҠԍà ҠҠԍà ؍؍ҠҠҠԍà 򮢬РݲˠˠÍҰӰ ҰӰҠưؠƍӰӰؠӰ٠ӰŠÍҰӰ ҰӰҠưؠÍӰԠÍҠưؠؠԠƹ؍ݱ؍؍̠ԍˠÍҰӰ ҠݱҰӰҠưؠōӰԠÍԍ԰ ƠݱȰōݱ΍ƍӠ԰ ƠݱȰҠݱ΍ԠҠưؠø԰Ӡϰ԰԰ҠưؠÍ԰ÍϰˠÍҰƠݱȰҠݱ΍Ӱ ƠݱȰōݱ΍ӠҰӰҠưؠôӰݲӰӰҠưؠóӰΠÍҰƠݱȰҠݱ΍Ӱ ƠݱȰōݱ΍ƍӠҰҠưؠøӰӰĠÍҰӰ ӠݱݲҰӰҠưؠӰؠӰӰ鍠ˠÍҰƠݱȰҠݱ΍Ӱ ƠݱȰōݱ΍ӠҰҠưؠôӰӰˠÍˠݱóŠÍҰƠݱȰҠݱ΍Ӱ ƠݱȰōݱ΍ҰҠưؠñӰϠÍݲҠµݱȍ̠ÍӠˍРݱˠ̠ÍàˍРݱˠǠǠԱؠР؍؍؍ŠЍРԲԲؠР؍؍؍ŠЍàЫàЫЫРǍàЍԠðÍðððҠŸҠ²ƍҠŸҠŹҠõҠԶÍҠűƍҠDzōԍƲԍƳҠƴðƍҠԍРàލà čРàލ ҠµҠԍРàލà Ӭčà ЮϮ čà ׬čà Ѝ͍Íà͍ՠؠƍӍҠõҠԍҠԍà 躢ĸĸčà ۱ Ԣĸčà ۲ 󢬸ĸčà ۳ ĸčà ۴ ĸĸĸčà ۢà ҠԍҠٍ٠ٍؠέРР̬؍Ѡԍ؍̠ЍРՍԠ؍Ҡԍ̍؍խխӫ؍Ӭ؍Ӎ̠ààѢàǍàΠ̍Ӡ̭ӭԭԭԭԭԭǍƵӍӍ٠ð̠ðРҍΠҠٍ٠ȍٍӍԠҠõϠҠԍà Ҡ΍Р٢ѠԍӍԠҠưؠӍРӠ ӠԠРàŠˍàˠŠԍӍԠҠčЍԶɍčÍàɠčÍōàčōÍĠčɍɠ϶Ӎ϶ؠРԬ؍؍Ա؍؍؍̠ЍƳƴРԠà ð Աà ̭ ԠԠDzōɠбð ðбؠ°Р٠ٍŠԠð؍ŠЍҠԠDzōɠӍðӠӍDzŠӠҠҠЍРᢍàЍРӠЍÍàРЍɠӍĠƍӠӍΠϠҠԍàݢ٠ٍҠٍǍРŠЍРƵЍҠưؠÍӍӍӠ ԠҠõҠԍà 󻢬ĸčà à 쮢ĸčà 墬čà Ӯ 墬čà 箢ĸčà 䢬čà čà Ӯ 󢬸čà 塢Ҡ΍ҠõҠԍà 嬢à 墍à 󬢬čà à čà ͮčà čàӮ 𢬸čà à Ǯ͢à čà Ӯ 䢬čà Ҡ΍ҠõҠԍà čà ҧ ĩ čà ᢬čà Ƨ 墬čà Ӯ ĸčà 碍à čà 墬čà ƩҠ΍ҠõҠԍà 󢬸čà 袬čà 󮢬čà čà 򢬸čà 쮢čà Ӯ čà čà 墍à 墬čà čà čà ԧ 碬Ҡ΍ҠõҠԍà à à婮 àӮ čà čà 򢬸čà 򬢍à ᢬čà Ʃ Ůà à 䮢Ҡ΍ҠõҠԍà à čà čà ĸčà à à ĸčà čà ᢬čà ŮҠ΍ҠõҠԍà󺢬ĸčà 䢬čà čà 碍à 𢍠à 󢍠à ԮŮĸčà à ð 좬čà Ҡ΍ҠõҠԍà Ӯ 墬čà Ԭ ֯Ȣčà čà ֯ 䢬čà Ǻ 䢬čà čà 䢬čà 𮢬č Ҡ΍ҠõҠԍà Ӯ čà 墬čà 䢬čà 墬čà Ԯĸčà Ŭ à 䮢ĸčà 颬čà ĸčà Ҡ΍ҠõӍ ج 卪 Šؠ؍ڠР٠ȍٍҠٍ٠ȍٍРčѠ΍РѠÍРѠӍРƍѠӠ РآѠ؍РӠҍҠҠԍЍӠѠҍàҠԍؠЍؠѠҍàҠԍؠ؍Ҡؠؠ؍Ӡҍ؍àҠčЍΠؠÍӍàؠÍӍؠӠԱҠԮůԮήӢԲҠԮůԮӮĢԳҠԮůԮʢҠҠӮʢҠҠӢҠҠԮʢҠҠӮТƠؠ؍РŠ˰à˰ؠР؍ʬ؍Ӭ؍Ϭ؍ˬ؍؍̠Ѝ٠ؠʍРҫٍʫ؍؍ٍ٠ҍàЍؠʍ٠ؠӍРҫٍӫ؍؍ٍ٠ҍàЍؠӍ٠ؠύРҫٍϫ؍؍ٍ٠ҍàЍؠύ٠ؠˍРҫٍ˫؍؍ٍ٠ҍàЍؠˍӍ̠ҠõϠ 卍ҠԍàӮ čàؠ ҠōؠŠ˰Ӎ˰ҠõϠҠԍà箢Ҡƍ ԠӍҠҰ ӧ΍ԍ ΠӍĠһōҫРŠҍҫРѠˍҠÍҠұ ΍ˍԍ 卍ԠԱҠҰ ԮůԮήӢ΍ԍԠԲҠҰ ԮůԮӮĢ΍ԍԠԳҠҰ ԮůԮʢ΍ԍ 䍍Ԡύ̠׍ҠõϠҠԍà à Ҡ΍Р٢Ѡ̍Ӎ̠ҠõϠҠԍà ԮˠύҠҰ 䡢΍Šύ׍ 썍ΠԳĠһōҠõϠҠԍà ҫҍҍҍҍ°ҠčҠԍàҫĠƍ°ҠčҠԍà Ӯ 퍍ˠʍˍˠʍԍˠӍˍˠӍԍ 卍Ԡˍ̠ōΠӍĠһưҍؠԍԫōԠԍҠưؠðōҠҰ ӮТ΍Πˍ׍ҠưؠōҠҰ ӮТ΍׍ōˠ˻ˍŠԍ ӮʍΠԱĠһōΠʍ׍ˠڠԍԫҠưؠōҠҰ Ӯʢ΍׍ōԍ ӍΠԲĠһưҍؠԍԫōΠӍ׍ҠưؠҠҰ Ӣ΍׍ˠƍҠұ 袻΍ҠưؠōҠұ Ӣ΍׍ƫҠưؠƍƍҠưؠİƍ׍ōԍ ԮʍΠԳĠһưҍؠԍԫōԠԱҠưؠðűҠұ Ԯʢ΍Πύ׍ҠưؠōҠұ Ԯʢ΍׍ōԍ 􍍠ˠӻˍˠʻˍˠϻˠ 󍍠ڠȍҠùÍҠԍà 客Р΍Ơ ҠŠ נӠҍԠҠ   ӠӍӠРƍű ύ óԱӠŠ ˍ óƬԠӠӠ܍Ǡՠ͠ƠӠʠӠӠӠϠӠˠӠˠӠˠӠҠՠčč  L! # T / X 8 n\  I Ԡ젭 [ ԠӬЮϮᬠ׬ᬠ"#8# X 2 躍۱ݠԍ۲ݠ󍍠۳ݠ􍍠۴ݠ􍍍 ݠ 2 M (7 L 2 h HH? H> H`ћRK _ _ _ `L] M $(` X [$ 젿 X ` e LhhHH` xi08X0`'  L Ԡᠶð̭Ԡݠ,\ 0 6H68,0 ,\ 0h6`I 8 (0)` [$ ' ( M ̘ ` X Ԡ󻍍嬠젱쮍占ӮϠ嬠占箍ӮϠ嬠 s X ԠӠ宠Ӡ嬠ԠӠ堯ͮԠӮʠ嬠ӠǮ͠ӠԠӮʠ s X 젱ҧĩ䬠䠨ƧӮϠ堰 堲Ʃ s X Ԡ䬠젱󮍠쬠쮍ӮϠ䬠笠ԧ s X 婮ԠӮϠƠà栲ƩԠŮԠ s X ɠ٠Ԡ謠Ġ堲ԠŮ s X 󺍍Ӡ𬠯͠Ӡ뮠Ӡ笠堯͠ԮŮԠᠶð s X ӮϠŠԮŬ䮍򺠠庠報򺠠 s X`l$ ( M H$(hɍNɛOɈ ɘɠ' 2 ҭ  lѝ `8`ԮůԮήԮůԮӮԮůԮ Ӯ Ԯ ӮЮɯ'A'''''̴'A'B'̾A'''''''` X [$ ӮϠ7 ` X [$ A'# Ȩ  ̮+ X [$ Ұ䠧ӧLs A'# H(  h& %n)1p)3683 X [$ ұӠLs m# {  ́: X [$ ҰԮůԮήӍLs #   : X [$ ҰԮůԮӮčLs # ; @B A6 X [$ ҰԮůԮʍLs '# ȗ  ̝L X [$ ɠ X ` X [$ Ԯ ' 3 3Í63 3* X [$ Ұ䡍Ls ' # șH( ʫh  X [$ Ԡ (JJJJ ()  ' ( ' 5 5Í85 5  A' il( A'  ĉÍ É '# Ƚ  LA'# H( ""h  "" "6 X [$ ҰӮЍLs '# ot" ˋ"5 X [$ ҰӮЍLs "  '  (  m#  H( h2 1'# >C"S R"" ˋ"2 X [$ ҰӮʍLs " ̧ # ȹH( ""h A'# "" ˓". X [$ ҰӍLs " I H / X [$ ұӠLs ˋ". X [$ ұӍLs "" φ" І"" # H( ""h! ! '!" "4 X [$ ұԮʍLs '# r!w!" ˋ"3 X [$ ұԮʍLs "! !  A' ! !(!! ! ' " "( "" " ' 6" 6"(9"6" 6"d$ Ls ("L*' ' ;"{z0*5 ZINSTALL.SB ZCOUT.V2.S ZCOUT.V202.S ZCOUT.V203.S5B ZCOUT.V204.S5ZINSTALL.SYSTEM !"#$%&'()*+,-./L !C_" %k"l" (#M8( % ) L*"m"n" (_7, )7(P0 ( @X p 8  u"!_"f"0 ~&f"0 %o"p" (,) &q"r" ( %L*")0I0hx H( + %Щ ߩu"L! )L! 8'  )ɀ)4,- U JNT) u"Ls"t" ( !` ^"M)Fi/ b"3 h"i"j" e" iL X>"L;"ίΠ`v""""""*$ Fk%YeQP!/RB}QBiBB}\ }FEL,#> ȏ6 . ) ɘ"    L:#:#ŠϠĠԠ  m# m# J Qڨ)̰}] нȱ ̀𩠙 i V N c ɘ\   VG+ #X ɛL ' 0% '8 Jm ʈ0  0ŠϠĠ͢Š͠͠ϠŠŠϠĠخ͠ ͍B B(8`=YYZLYLYLY뿭` 8!@8` %MNЩUMߩ  L 5   8 0 8  `0 / X& & +&&7&P^&0`ŠӠֱǭԠŠҬî̠ӠĮʎ1|&… (n}&Dž (\%Tz&Lc()8= (J 8'z&'{& 3((ʎ1|&|&|&3223 ')L&18|&"m11 2H22h2舌|&|&12H)M0 h10200I20h2 (`LE%12 `_'"L  <8# ȱ)ɀ  )( ` (Xp< @( )m((.(( M(i  ``) |'(j21 z& {&!` ({&z&(i({&(( CBDFGE (r&$ 3(,}&r& … 3(ŅL&JJJJ`Ϡ'8`r&h)hrȱȱȱȱ0]cȱeem*ȱ*ȱ**ȱ**ȱ* )* * )L(`L?* *Ll) ) L( )Ll)8e` ,$`ee` `* G** c*` v* G* c*`hh8`8`***`}*`e`H)hJJ*0JJ)` (< ( < *? ( < (? ( < (? ( <*? * **? *? *? ( < *? ( <.<ʆ>,=?BC8 é&'112`HB-9F 3"aɿ LLB Nϰ H  @h( L Lj  @`eLJCAB@=?<>=?<>CAB@?A` 1 L  <>`ڢF]PL8i m L   6< L  BLRAM' hLDLآ <B*IBGF08Lé'+8H <,``h(`@ڍL3hh@ihAiH(ؠȱ@JJJJq@)@qvȱ@Hȱ@Ah@@cqe J) LL LJiB LJ) BxNhHHHHL(  ްƠx@BEOD  ް(`( C)CJJJl`B g-`J,~@~@}J@` ߩ%S @ ~`E hhhߺ0 h ߐ( ߐ ߐ  0 HϭߍLпllllhh8` Q)T'P#) ɺiL? )?      `l@Hȱ@IױHXATȱH ɯȩ׍̎5H)/@a)_ .0 :A[8@`,뎎׮Б` L ` @>O)I38 I`aם`K8`@Nȱ@O@ IiNȽבN)/ȩ/N`@[ WHJjjjhA D'KI؍0JHi 뎁`C8` @ 3N@) K莭 ⭪i`0 ]; 뮁ٝ٘ 0 W,0 .H hȑNWȮّNW8`ٍّNΨ0NN` G8`F@ 0 H LK8`6 7I8`FHGH hGhF܌ բFܽܕF芝ܝ 밶67 8܅I m9IHHyHȘI Lܝ` @_@ g@Ю׍O)mיOʈ@mȱ@_ȱ@iklbJtKuO)5OI0ܢܽ eL'A* 7`aFG (CD Lz܅IN mAIH` pm mI0LM AOHJFKG 밳JK 밨C%܈@" T)Ii)܍N*܍A'ܮ( 4 䭐 $H %HFFHGHG 됬`R8`)` AHO` 'Q'܅IHHOOЍO@`8 ` ͉% ΉQ8`܅I `L܍MN h8D`F` alH)HFȍJHGK $%܍&܍!ܢ8* J8` L ܝ:)I 'ܝ6`B8iNFLGM`B܅IH3H ( )ȱHΨ`Ί8AeHI SB60I ٙGٙEFJCʈ h猪`8m0`,0H hi PȽΨhٍ0GF8yאFG  $0 K01 E8`1ݺ00 ] 0ʩ 谼 谷`12)1`0`Ȏi 0U`)8`Ψ` W |G 4A)H ܝʈh٭0٭)ܝ٭*ܝ٥F٥G٭'ܝ٭(ܝ`)َ 8ʈ` 0ٝ)i `8`R ꍌvw zNمFمG < Ό0 FGL鮁0 ٭w٭vٽ8`H8`  ,v w 8` vw `ٽJJJJ`H͌hn)NjNjNjN. GH͌ z;٭ *Nۙ۰ڙک `Z8` G# ,`w .w .w .w8۰*Jv۩ ٰvw`JJJJ;i z묁͖ zٍ0  `H8` `ٍyٍiB0H0FG h0`FG `ϩBxED0C ް(`(8`ؑ@`M8`8@ؐʈI묂)v8vv L} LةC8`؍)@ i)v8vyJ ^ ؅F Ls) +%J(a .FإGؐ.` .JHIH IL3FHGI ҭJjHIHB>IؙJJ [: IL}HIHI`JKJK`FHIG ( Ȣ؝}؈JL)eKM`)` J vJ͛ $0 ΊJFJL8`JGBJ T FإG`BH TFإG`,H hHB؅F  ؅GxDE؍00C ް(`(8` zL+J  :"L zH  : 9ؙ` @ P8`K8`B8` H؈OJJJJحm) ) )Ю ЪG `F $ ᭔ع+ؠ 6H  Rh8` 䮁ٽ ٬ؠ@` ( H )8`)i п` H h)N$% LL L L 6 &pJ덟 )@።NJOK 6iKKΞΞ IJΟ JФ̭JjHFIH HIGxKE ް((H hH h8`8@ȭ@L6쬂8NNO 8 ؍JL`RΞʱLN1MOMEKP/MEKΞL;L-M O,p莝eNNO(`JNKOL 6/ &P L8 } [ؑJ`L@ȱ@ `@Nȱ@O`؝}}vIvؐ` jzؽ}؝v j ) j؝zv؈` ` H Th)N@ ;; L  6$ )bJ ] ) H 8hL )  )حJjIwHIvH؊ PLKΞʱNLMO MЈMEKݸP%MEKΞL( O, PeNNO J(` C  7 2JvHIwHI؊ LI  .` A Hv ع Hw ؙ؊ؠIhHIhH  iع `  عiعi` )؍0CGHFHBFGx ް(8hFhG`@4͔ L @Ai ׭2` . R#ع؍0 ]讁)`.@+ i 8` L )߹0 )p )@ ) ȩ ؝H0JK 방 LMJKFG 嬂؍b؍c؝d ؝_ vO) vO )حI͖ z`H@h`h``N8`  ) ;⬂Ȣ؝z@zݚ@ʈLJ KIJHȢݚ h魚)Jn 8 δ ؍ ؍ \H8 ع)ꭱJJJJ Ȣ؝I؈ 6h(8H = h(8Hh(`ؑ@`@ȱ@ ` B@8ZO h鮁ٍٍٍoHٍn8bhcOJJJJO)O@` %I -m) 0@O)N8` @LL =@ /ȹP8` i` =ם0 /B =)( ȹ`8m8m@8` G8`F Pm)@N8`O)@J /טyרםOO)׍O`a 밑 LȹL@ȅH@IL,0` G קּ= ]H.m)N 0 H`aO)@LP8` \᮰ ֩OCDC z L䬁yٙ٭yٙ٩`K GE`FaG 6%&N    ܮ `J HH hh` 0 @ LGL r`̴Yܝ ݝ0̴ȩFG   0` ܅F݅G ` { rͬ 밽܅F݅G ` {* r% L`L뮰HH hFhG܍ݍ 8 `FHGH  hGhF`ݹܙ݊`@Bɼ>K@J5 {9X(K {XXK تKo`V8`no` D on {I9XX`)HJJJh`OeNeO࿰ {9XАO`@ȭ@` ON aNJKO`HхhꭋILhH),fx8 (8` ԍ`@Ae J m00[roIIJK,-NOPQRSu' @   !"#$Ԡ͠(C)1983-87APPLELKL`BLL ެެެެެެެެެެެެެެެ(C)APPLE'83xLLM Mh@8nЍLޭ 0J @,,LRP׽8H  ): e: y8鰕:Jjjj<)yאi8i;i(*=>hPם8`;Zx3QZYXXWV[HEVhEhH)IWHPHHHAHHHLaVEWLӿ`` ֽ ְ& .Vӈ  JJJJH 8h Ei 8EX`'8`jӍWӥC)p> pӥCYӍY 轊( ( ӈBV ( ӭp0 \BkJ ՠ@iӦ> Ӑi'j:ZH i@ioZZH h ѐȭnWǥBJ Ӱ8XӦ>` Ր+>*L o % ԽYӍZӭoӝY 3Ѡ шNZ`rZLkӭZӍq8r7IZӐiZkӐk 8 ѹs ӭq ѹ| kн Z)*>>` @ $(,048<@DHLPTX\`dh 0ުlptx| 0($ p,&"op8`kkV꽌ɪɖxlӽ*kӽ-kәmMlӈ 꽌ɪ`8` ZԍsԍԍԍԥDEԌ8TԌ8WpԌqԠ 7I꽌ɪ꽌ɭ蠪:љVE:8`]ѾV]H)]ѾV]ҙ)]ѾT]ҙ)] >8hUD` ԝY`> Hh݌(`HCJJJJ)*h`8LխӅ:HhHh Ո թ թ ՘VYҪҦ>:Y)Ң`;R?AJ;<ȰY)Ң`Y?)Ң`ȐҰ ;HhHh=Ң`Hh `Hh`DEiȍ0֌18V%֌&8V֌֠)HV)hH)hHIhդD?DRIDQD)҅; ?JDQD]ՎՎՎ`MY pӭY)p  ӭp`C)`BFGV 8``  / XʩXύX X %   % ɍRH hɛɘɉɈ $ Ld :Ldې)ɮ۰ɺ' Ld  : X ( % ɛ$ɘɉ ɈL :Lɍ)ې)ɮ۰ɺH h 'L  ġLL ̹L)'L ȳL O'F ʻ ̹(((L $ʩ $$ $L `ީ % K@D EFby LҠؠӠ΢ϠԩҠŠƠԠԠŠӢɯϠҠůȠԠĠ  0h)ύh0HHHH " ׍hhhhhhh .hh8`JIMJAYKERRY&MIKE123456789:;<=> L! $ T / X 8 n\  I Ԡ젭 [ ԠӬЮϮᬠ׬ᬠ"#8# X 2 躍۱ݠԍ۲ݠ󍍠۳ݠ􍍠۴ݠ􍍍 ݠ 2 M (7 L 2 h HH? H> H`ћ|K _ _ _ `L] M $(` X [$ 젿 X ` e LhhHH` xi08X0`'  L Ԡᠶð̭Ԡݠ,\ 0 6H68,0 ,\ 0h6`I 8 (0)` [$ ' ( M ̘ ` X Ԡ󻍍嬠젱쮍占ӮϠ嬠占箍ӮϠ嬠 s X ԠӠ宠Ӡ嬠ԠӠ堯ͮԠӮʠ嬠ӠǮ͠ӠԠӮʠ s X 젱ҧĩ䬠䠨ƧӮϠ堰 堲Ʃ s X Ԡ䬠젱󮍠쬠쮍ӮϠ䬠笠ԧ s X 婮ԠӮϠƠà栲ƩԠŮԠ s X ɠ٠Ԡ謠Ġ堲ԠŮ s X 󺍍Ӡ𬠯͠Ӡ뮠Ӡ笠堯͠ԮŮԠᠶð s X ӮϠԬϠ֯ȍ֯ȠϠǺ殠 s X ӮϠŠԮŬ䮍򺠠庠報򺠠 s X`$ ( M H$(hɍNɛOɈ ɘɠ' 2 ҭ  ѝ `8`ԮůԮήԮůԮӮԮůԮ Ӯ Ԯ ӮЮɯ(A((((((A(B(A(((((((` X [$ ӮϠ7 $` X [$ A($   + X [$ Ұ䠧ӧLs A($ #(H)6 5;<hP On*1p*3683 X [$ ұӠLs $ ȥ  ̫: X [$ ҰԮůԮήӍLs $    : X [$ ҰԮůԮӮčLs $ e jl k6 X [$ ҰԮůԮʍLs ($   L X [$ ɠ X ` X [$ Ԯ ( ] ]Í`] ]* X [$ Ұ䡍Ls ( $ H) h  X [$ Ԡ )JJJJ ))  ( ?B) ( _ _Íb_ _  A( ē) A(  ijÍ ó ($   L( A($ H) #$##h> = L# #6 X [$ ҰӮЍLs ($ ș# ˵#5 X [$ ҰӮЍLs #  (  )  $ / 4 H)B A G H h\ [ ($ h m #} | ## ˵#2 X [$ ҰӮʍLs # $ H) ##h! !A($ "!'!## ˽#. X [$ ҰӍLs # s! r!/ X [$ ұӠLs ˵#. X [$ ұӍLs ## ϰ# а##! ! $ ""H)#" ""(")"##hC" B" Q"# #4 X [$ ұԮʍLs ($ Ȝ""# ˵#3 X [$ ұԮʍLs #" "  A( # #)## # ( 0# 0#)3#0# 0# ( `# `#)c#`# `#d$ Ls )#L*( ( ZCOUT.CODEv.0' ',ZCOUT.V205.S@,T,*%?ZCOUT.IN.ACOSl; *%?)ZCOUT.OBJm; *%?-ZCOUT.SYS.MODr;**%?FINDER.DATAv.-p.8?ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijkԠƍ Ӯύ ð 쩍 퍪 ፪ 󺍪 Ӯ 卪 õƵ 󮍪 卪 󮍪 宍 ԮӮĢ 宍 Ԯʢ 宍 Ӯ   Ǯͮ ԮήӢ 庍 宍 ó õ Ƴ Ƶ 䮍 Ƶ ù Ʒ ư 쮍 ź ƍ ԍ ú ź ΍ 獪 卪 宍 󺍪 譸 󺍪 𮍪 𮍪 Ϭ ȯ֍ ® ֬ Ʃ 讍 ƺ ō  Ů î 䩮 宍 ǠŠ 󍪍ȠՠРՠ͠ՠȠՠ֠ՠҠՠ̠ՠȠՠӲ̠ՠӲȠՠǠՠȠՠ֠ՠ 󍪍ӰÍϬݱ̍ɬݱȍàÍҠ΍ݰӰݱ占Ӱ؍Ҡƍ̠ÍݰРݲݱލ占ݱ̠ÍàˍРݱˠĠÍ ݱݱݲݳ 󩍪ӠРԍРӍРԍР̍Р΍РԍРԍРٍР΍РčРčРٍРӍРÍ Ҡàߢ Ơ Ơ ҍҠ  Ġ Ơ ٍǠ Ơ ͠  捍 󍪍ΠðԠðԠðӍƠԠðԠðӍҠҠƍҠҍР΍ҠҠƍҠҍР΍ԠҠƍҠԍР΍٠Ҡƍ٠РðӲٍٍ̩̩ðӲٍٍٍ̩̩̠ЍР΍ҠٍҍðӠЍðРٍٍ̩ðٍӍҠٍҍðӠЍðРٍٍ̩ðٍӍԠ٠Рðٍ̩ðٍٍ̩̠ЍӍ 捪 ٠ðӍ ﮢԠððؠРŬ؍ѠӍȍū؍̩̍Рū؍Šԍū؍̩Ԡ؍؍؍؍ЍӠư 忍РƷ 䍠ѠˍРƷŠҍˠ占Ԡčɠٍư٠ƷҍҠ΍čРōѠˍРԍˍҠԍРƍŠĠõà ĠƵà Ʒư 婍ĠԍĠԍĠÍĠƻ΍Ġ΍ĠÍĠĻōĠō ŠҠ΍ҠǍРƍԠҠ΍ҠǍРƍŠȍȍ֍֍Ӎ ӠҠ΍ҠӍРƍ 客 ̠Ҡ΍Ҡ̍Рƍ 客 п 󮍪ΠҠōðĠ 忍ðƍؠРİ؍ðİ؍ı؍ðİ؍؍ؠàЍİРԍΠҠ΍Р΍ 卪 ԠҠ΍ҠԍРƍ 客 翍ԠҠ΍ҠԍРƍ 򮢍٠Ҡ΍ҠٍРƍ ĠҠ΍ҠčРƍ جٮӠҠ΍ҠӍРƍ 卪 ٮ 󮮮ĠҠ΍ҠčРƍ ݢ ݢàҠ΍ҠÍРƍ 客ΠҠ΍Ҡ΍Рƍà 鮢 卪  ԠҠ΍ҠԍРƍҠðԠ΍Š ԠƍӠð֠ԮůԮήӍǠԠРԠ ԠРԍ Š 퍍ԠРōѠˍРԍˠčÍàɠčÍōàčōÍĠčɠ϶ӠӍ϶ҠōԍԍРԠàӮ ðŠǠððððÍðҠŹҠŸҠ²ƍҠõð٠РððٍððٍԱٍٍٍ̠ЍðƲƳРԱà ̭ ǍĠ ōԠҠōԍԍРԠà ŠؠƍРŬ؍؍؍̠ЍӍǠ؍ؠҍ̬؍̫؍̫؍̬؍؍؍؍ؠҍ؍ӍǠؠҍ؍؍؍ؠҍ̫؍̬؍٠̫؍؍Ӎ̠Ӡ ҠӠԠҠǍؠ͍؍ÍҠԍРǍԠҠǍҠ֍ؠ֍Í٠ȍҠҍҍҠҍҍҍҠҍРǍҠӠ٠ҠǍؠ֍Í٠ȍҠҍҠҍҠҍРǍΠҠǍؠ֍Í٠ȍҍҠҍҠ֍РǍĠҠǍҠ֍ЍŠҍҠΠ 퍠ҠΠ 퍠ҠΠ 퍠ҠΠ 퍺ҠڠЍؠÍҠԍ؍ÍҠԍ؍ÍҠԍ؍ÍҠԍЍ֍ÍàРР͍àˍ͍Íˠ֍Ҡ֍ԠРǍӠҠǍҠ֍ؠȍ٠֍àٍҠ֍РǍ ĠҠǍҠ֍ÍҠҍҠǍĠƍР ӠӍàӠР֍ ݢ ݢĠàҠǍčРŠԍؠЍŠԍ占ؠЍѠԍԠ̍؍Ҭ؍īҫ؍īؠÍ٠ĠƬ؍Ҡҍٍ؍ؠàčԠРǍҠӍōÍčōӠ֠Š֠ ТӠ墍֠ ϢӠ֠ ݢà֠ ŢӠ㢍֠ ϢӠ֠ ݢčŠà  󍪍ϠؠؠؠİİİİɠؠؠؠӠҠǍҠ֍ҠōҠ֍РǍ̠ҠǍҠ֍ҠЍҠ֍РǍ٠ؠǍؠƍѠ؍Ġƍȍ͍ÍàЍ΍ĠƍÍàР΍àˍ֍ˠÍàЍ֍ڠǍÍӍؠĠƍÍàРàˍȍˠǍÍӍΠӠРؠǍؠѠҍĠƍ؍ǍĠƍڠǍؠѠ΍РҠԍ؍ŠЍΠÍӍҠǍÍӍǠԠð̠ӍҠ΍Ҡ؍Ҡ΍؍؍ٍ؍ŠÍٍàÍҠ؍Ҡ؍ōؠҍҍҍҍ؍̬؍Ҡ΍Ġƍ؍̬؍Р΍̠àƢŠЍɍԠðɠЍӠӍԠҠǍԠǍ̠čҠǍčðčؠ֍ÍԠǍٍ̠Ҡٍ̠Ԡ Рˠ ج ٍԠ͍̠ԍԠǍ̠ЍҠЍ̠ԍРˍЍԍԠĠƍԠ͍ɠٍРōѠٍٍРĠҿŠԍԠƠ 忍̠ԍҠԍčԍРà̍ˠҠō٠ȍҠҍȍ̠Ҡ֍ٍ̍Ԡ͍̠ЍÍàР؍ū؍Šˍˍˠ٠˭ٍ٠˭ٍŬ؍ӍȠ٠ȍؠ֍ٍ٠àˍ٠؍ؠ͍àˍҠЍ٠ؠ͍؍ˠؠ֍٠ȍˠؠ֍ÍҠ֍РǍ٠Ҡ֍ҠٍԠРǍŠ̠ ̠έ̠ƭ̠ԭ̠ӭ̠̠ƭ̠ӭ̠ŭÍ̠ҭč̠ͭō̠֭ƍ̠̠έ̠Э̠ƭ̠ҭ̠Э̠ݍ̠ӭÍ̠̭č̠٭ ̠ƭƍű̠ ̠ҭ 占̠̭̠̠ŭ̠ŭ̠ԭ̠ԭ̠Э̠­̠ƭ̠ƭ̠ŭÍ̠ҭč̠ō̠֭ƍ̠̠̠ͭԭ̠̠ŭ̠Э̠ŭ̠̠ҭ̠̭̠Э̠̠Í̠č̠٭ō̠ƍōŠӠ 䍍Šؠ֍Р΍Š٠ȍРٍ٠Ӡ΍ҠҍٍҠҍٍЍΠٍРҍԠ٠Р٠ȍѠӍٍҠҍٍҠҍٍٍЍӠРҍԠǍӍ̠ȍӍƠؠ֍؍ؠЍàӍؠ֍ӠӍΠÍҠǍӍƠڠǍӍР٠ȍ٠ӠӍàȍӠӍ àȍȍĠŠӍӠ٠ȍٍ٠àˍ٠ˠ٠ȍӍ͠ ǍӍ֠ ǍӍŠĠƍԠǍ̠ЍӍРԠǍ̠ƍӠӍƠРàӍРàԍӍԠĠƍӍР٠ؠÍ̠٠ȍؠ֍ÍŠҠōРҠҍٍ٠àЍӍҠؠЍؠ֍ҠڠȍӍԠðĠƍðؠР٠ٍŠԠð؍ŠЍðӍǠ Ǡ Ġ ֠Ԡ͠ 퍠ɠӍԠĠ 捠ɠӍԠǠ 捠̠ԍӠӍԠٍ٠֍àٍ٠ȍҠҍҠҠҍٍӍƠÍҠǍӍΠڠǍӍР٠ȍѠӍàȍӠӍӠ٠ȍؠ֍ٍ̠ˍ٠؍ؠЍӠˍ؍٠ˠؠ֍٠ȍӍƠؠ֍؍ؠ͍àˍРЍˠؠ֍ӍӠ٠ȍؠ֍ҍŠؠЍؠ֍ڠȍб٠ҠÍҠōРҠҍٍ٠àЍ؍ؠ͍àбӍǠ Ǡ ٠ƍǍӍΠ٠ЍΠ٠Ѝؠ͍؍РϬ؍̍ɬ؍ȍ؍Ϭ؍Ӳ̍ɬ؍ӲȍҠٍؠЍŠЍÍ٠РōРӠРؠЍРϬ؍̍ɬ؍ȍ؍Ϭ؍Ӳ̍ɬ؍ӲȍҠٍ؍ؠ͍Ѡԍ؍ЍԠ؍Í٠РōԠðčðƍҠ 獠Ġ ڠ֠ 占ڠȠ ڠР ؠ ؠ͍٠٠ȍڠǠ ڠǍڠǍҠ͍ҠƍҠŠ ڠǠ Р֠ 򍍠à à ̪ Ӯ ֠ԮůԮʠ 卍ǠƍԠؠƍӍčɍðððððÍڠƹҠŸҠ²ƍҠŸҠŹҠõÍҠűƍҠǍҠԍРؠčލà ͮҠ؍ҠԍҠčҠӍҠōҠčōҠð̠ԍð̠ԍҠӍҠ΍ҠٍԠҠ؍РؠؠР؍Ų؍؍ŠЍӍؠؠРŲ؍؍؍ŠЍӍӠڠӍŠؠƍРŬ؍؍؍̠ЍӍӠҠõҠԍР֠ ލ֠ ̯ Р֠ ލؠĸčà ĸčà 颬ĸĸĸčà ͯ ᢬čà ð 򡢬ĸĸĸĸĸĸĸĸĸčà ݢӍ٠ðԠǍ̠Ӎð̠ðРõӠðĠƍҍڠððԍРԍððōРŠ׍ðčððōРŠðڠððōРŠčððōРàԍðð̠ЍðҍðРõĠؠנؠıؠŰԠӠҠӠǠӠŠǠðððҠððððӍǍԠؠƳРƳ؍РƍѠԍ؍̠Ѝ̠ڠҠùÍԠǍɠаðĠƍðڠðаҠԍà 롢ڠƲڠƳԠҠưؠӍӠ̍ؠέР؍РЬ؍Š̍؍̠ЍӍӠ °РؠРؠƍލؠōΠՠЍĠԠǍɠӍð ĠҠ̍Ѝð̍ЍҍðӠӍԠРàŠˍàˠѠ΍ҠčЍΠӍĠҠưؠø΍Ӡҍ͍ƱҠưؠčӠҍҠōҍԍҫԫҠưؠðōӠҍҠưؠøαӠҍͱƱҠưؠčӠҍРōҠڠҠùÍԠǍɠаðĠƍðڠðаҠԍà ҠڠƲڠƳΠ ȍ͠Ӡα ȱͱӠĠ ƱӠҍԠҠŠ ȱؠóȠҠԮʢȱҠͯԮŢŠҠưؠÍӍӍӠ ΠؠέРԬ؍İά؍؍̠ЍӍԠàΠԍŲǠҠՠ֠ԮůԮӮččL LH L LQ LZ L L L L L L L L L ,W,U`,T,V` : u L0 : L0 : L0 : 'U*(T*(L0 ZJTU(Tz`ZHJTUh(Tz`'U(T(``T ) ((  (%$% $,- 0% 0 %L 'L: 6 ,6 ,  ,  ,`}?a 0 !L: 0 "!L: $Z%[` 0 #L: 0 -#L: - HUT(hL6 Z L0 0 j!L: 0 !L: 0 !L: 0 !L: 0 U"L: 0 o"L: 0 "L: 0 !L: Ԡ 0 #L: nopqL L %%L i080` . LӮϠԠ󠶵ðTV / X'WUTVVLS̭Ԡݠ% ӅLԠV `ڮi!7!8!hH9!7!i!`i!ʎi!9!H7!8!` !#ʽ"(#) S L"! ! &%"(#)$ A &M* !* J L"! !%"(#)$ A M! J L"! !%"(#)$& J &L"! ! &" & & & &d""(#)- S "(#) H S "(#)h S "(#)- S "%i##:% &L"! ! &$%"(#) &L"! ! &"(#) A H "!h) i@L& !"( """""(#)" J L"!"""------------ age: n  xec: n ((((PPPP ! & |& &L"! ! & & &L"!&%H)$#8"z#h)8 z#%e"%&`)8 P$ &8`&)&)& #` &8`,aVH hH # :H #h #h&HJJJJ# h)#L X,b0(` !,.  # H%"(#)h,& <#L$L$,/ ,& {#L$L$),/ 0n ,+  # %$ J " & ,/ i@$$ZZH$H`$%P# &#ʆ%$%"(#) &L"! & &L"!G&B&%R&h&u&{&%%%&&%%%%%%&}%%x%D%>%[%%K&%h&}%{&%%%r%>%%?%%%%&`%L&$P A J Ȁ񈩠LJ O$ A J LJ &`O$`%"%`8n&`&`$O$`$$)`$P$`2`2`)$2 `,&`@``)`,$%"(#) % J P`"%d$`6H)6,0h6`,/ 0 ,&0,&`ZH%"(#)$ A I J hz`8n&`&`$$`$% O"%$`%#L&%`$%"%d$"(#) % J P#`&`"&#ʽ"(#)ʽ"*#+ \ &"(#)L%""(#)"*#+ \ #ʀʽ"(#)L% , &d%d$d"#P!d2&& % % |&&L&̪ӮϠstuHHXT / X8 n- -Ԡͮ 6+ - - N+ \+ -% ba h+ . , B+hhL .`.`  H `-` X -  -  /     鍍ͯ፠ð򡍍`,- LX4)-4"--".ɀ-" 4.Ɍ-"4.-".-"-4LXWU TVT`12ɿKd$ ,-0 ") "4 -Ԡ͠ -eݑ-Ц`e,-0b)I 6 (j6`hh HH` d.>i.q. p.0 .v.t.w.u. x. j.o.q. p.L.Hd$ ,-0 ") "4 -宠ɠh .e.e/ . ԮͯԮ ̧.`.`O60W*B ZCOUT.V205.S ZCOUT.IN.ACOS ZCOUT.OBJ5B ZCOUT.SYS.MODZCOUT has two main functions; 1. To emulate, on screen, the Pascal 1.1 screen firmware protocol. 2. To apply various patches that make GBBS.PRO easier to use, and more asthetically pleasing. These functions are both implemented without any permanent modifications to the main GBBS.PRO program code, thus allowing your own patches to be made! When you run the ZCOUT install routine, extra code is added on to the end of the ACOS system boot file. When ACOS boots, it calls this code, which loads th-8m$a*5ZCOUT.V25BZCOUT.V1BPRODOSZINSTALL.SYSTEM ZCOUT.CODEwz{|}~e main ZCOUT program code into auxilliary memory via the ProDOS volume /RAM. The ZCOUT hook routines are saved in ACOS.OBJ by the install routine, on top of the current console driver code that you have selected via GBBS CONFIG.SYSTEM All patches to ACOS are then made by ZCOUT whilst ACOS.OBJ is in memory, and hence are not made permanent! During Pascal 1.1 firmware emulation, carriage return ('CR' $0D) is the only non standard, as it also generates a line feed ('LF' $0A) to be compatible with the way GBBS.PRO was written. This feature can be disabled by POKEing the value 0 into location $92B (2347), and re-enabled by POKEing it with the value 255 ($FF). When ZCOUT is initialised, it defaults to having the cursor turned on, which conforms to the Pascal 1.1 standards. This allows the sysop to see exactly what is on the user's terminal, cursor and all. When GBBS.PRO goes to read input from the modem and keyboard, it doesn't conform to it's own standards of console handling, and instead displays the underscore character and backspaces on top of it before testing for input. Considering ZCOUT's default of having the cursor on, this results in the input cursor being a pipe character (inverted underscore). ZCOUT makes a soft patch to GBBS.PRO to make it use standard entry points, and thus supply the correct cursor. Another way to turn the cursor off without sending a CURSOFF character, is to change location $92C (2348) to a value of 255 ($FF) before a TEXT : HOME. This initialises ZCOUT with the cursor routines disabled. The input cursor can be changed from an underscore by changing location $92A (2346) to the ASCII value of the new character before an input. The COPY command strips out line feeds from files, so ZCOUT makes a soft patch to correct this on initialisation. To remove this patch, change location $92D (2349) to the value 255 and do a TEXT : HOME. Restrictions: On ACOS bootup, /RAM must be formatted and empty. This is done by ProDOS when it boots, so as long as you save nothing to it, everything is ok. Once ACOS is up and running, you may use /RAM as long as you do not touch the file ZCOUT.IMAGE. The ZCOUT program code requires at least a 65C02 cpu to run, and a message will be displayed on bootup if it is not. Various other GBBS.PRO bug fixes are included in ZCOUT, such as the ^O CV/CH save problem. Greg was calling a common routine to save CV/CH when ^O was used to turn PRG: off. This routine also had other functions, which Greg never knew about because of other bugs which fixed this one up. Any questions on GBBS.PRO patches can mailed to the address below. Include either a SAE or your phone number, and any moneys you can spare to keep me interested in updating ZCOUT. This program is FREEWARE, but donations are gladly accepted. Author: Kashum Zibai Date: 29th June 1989 Assembler: Merlin 16 v3.50ZCOUT has two main functions; 1. To emulate, on screen, the Pascal 1.1 screen firmware protocol. 2. To apply various patches that make GBBS.PRO easier to use, and more asthetically pleasing. These functions are both implemented without any permanent modifications to the main GBBS.PRO program code, thus allowing your own patches to be made! When you run the ZCOUT install routine, extra code is added on to the end of the ACOS system boot file. When ACOS boots, it calls this code, which loads the main ZCOUT program code into auxilliary memory via the ProDOS volume /RAM. The ZCOUT hook routines are saved in ACOS.OBJ by the install routine, on top of the current console driver code that you have selected via GBBS CONFIG.SYSTEM All patches to ACOS are then made by ZCOUT whilst ACOS.OBJ is in memory, and hence are not made permanent! During Pascal 1.1 firmware emulation, carriage return ('CR' $0D) is the only non standard, as it also generates a line feed ('LF' $0A) to be compatible with the way GBBS.PRO was written. This feature can be disabled by POKEing the value 0 into location $92B (2347), and re-enabled by POKEing it with the value 255 ($FF). When ZCOUT is initialised, it defaults to having the cursor turned on, which conforms to the Pascal 1.1 standards. This allows the sysop to see exactly what is on the user's terminal, cursor and all. When GBBS.PRO goes to read input from the modem and keyboard, it doesn't conform to it's own standards of console handling, and instead displays the underscore character and backspaces on top of it before testing for input. Considering ZCOUT's default of having the cursor on, this results in the input cursor being a pipe character (inverted underscore). ZCOUT makes a soft patch to GBBS.PRO to make it use standard entry points, and thus supply the correct cursor. Another way to turn the cursor off without sending a CURSOFF character, is to change location $92C (2348) to a value of 255 ($FF) before a TEXT : HOME. This initialises ZCOUT with the cursor routines disabled. The input cursor can be changed from an underscore by changing location $92A (2346) to the ASCII value of the new character before an input. The COPY command strips out line feeds from files, so ZCOUT makes a soft patch to correct this on initialisation. To remove this patch, change location $92D (2349) to the value 255 and do a TEXT : HOME. Restrictions: On ACOS bootup, /RAM must be formatted and empty. This is done by ProDOS when it boots, so as long as you save nothing to it, everything is ok. Once ACOS is up and running, you may use /RAM as long as you do not touch the file ZCOUT.IMAGE. The ZCOUT program code requires at least a 65C02 cpu to run, and a message will be displayed on bootup if it is not. Various other GBBS.PRO bug fixes are included in ZCOUT, such as the ^O CV/CH save problem. Greg was calling a common routine to save CV/CH when ^O was used to turn PRG: off. This routine also had other functions, which Greg never knew about because of other bugs which fixed this one up. Any questions on GBBS.PRO patches can mailed to the address below. Include either a SAE or your phone number, and any moneys you can spare to keep me interested in updating ZCOUT. This program is FREEWARE, but donations are gladly accepted. Author: Kashum Zibai Date: 29th June 1989 Assembler: Merlin 16 v3.50