,8(;NUENU cE q0 \C)CC8`DCeECiD` RP h1$E ȍ @y b Y)hܭ]L]` q  DMD   u j)`0  ,p0i2 &28jJ1f02 9 g iJf0i1)xԍӭ232002XԦ`﫯  *'  } *(L `(  L l pL[,L] C i0  p  gފދLh ( LD 0  C  C  \i +$+0'; $(%)  b L[C `D P^߰")(݃   $DDG@НL]S")M T H0 G$Ș݃ b 8$}$%8(() T `$E0(0)8`$GE` P Li 8GD }L[ PH >iJ ;  yyB ' |L[ "E( % H$ H#`L]B  0 G LO<  ( d lH۪!A3 A jA !B EIC Y$E0 F  < 7 JN8Ndâ!,P h0ʠJd,6 ' r/ $ ɛ ` '  L[  l }-        L[L  }  '  L[   p  ` g  l }) g ' L[) ̠,L]T-0 |LM N݃:ː6UV LM N L(TU N,)MLL[IL3 GDIɛ ɜ DI  , JȊGм  G I) GȦ=*GG ȄI1200820I H1E 1h0hIGI2ȢI`FE 0ɛ rɛ$ l '蚦TTUV D`M L$:;Pyȱ$` r  iȱ$/:ȱ$VWyA**⩀ / `$***? mL]-+ȱ$ɛ m* ? g. $0f.?'@ wAsTt/` 0: gL  `$0`j`& CpCi s L0JCܢj? I#𴽎F ގМގ& & 0 C4 08L`0   | 레L] EGȽGȽG |  E` 8,  }EG)݀G)ȱGȱG`"!L] l!i栠$8  (IƭIp  h,g+j? 8 ii(Lq)! S S0$} ) E9 `H)N,L]8GH Lq`gNgfj****8jHi h`  2J  &e2i`"%?&;^$IM ! ! <u hh`$Ev옝^! 1EHFHjm GHm H`u$Ev`L=? +`!,pFE ȄD8 q D&E`I0` i`+DOS SYSMOC.I   J ٍ = ) F)8`Ll T!U<; Ln <JM -18     HH =D 2 :  /1[F:M #.!  `>C #   #`>   eL'>/b;\I\o@ @LK~ L  % /e  LL HH0S0N:;=91D,1ɛK$ɛ`:;ʾ  ,ɛ`XYȄ #`DTDRLUFFFCICLRSJ==CIYEEONSMDLNOOUAOOOARPLNCL#####PANVBNFR*),-PQOR}a/%<) j ө  RES L%-, # 3 0 %   4(H 4(`( 3  #  ZOiۨ L4RE 3 =F S Z +8 0+  FF % 4 4& 4(X)Y    # 4 ʤ Ȅ LF F LH hL4`*J 0 B B 0a   8    Lkl  );<  : ` 0 } T T 7̀΀LIl <;`<L 3   #/ ! R( 7 7   7 89i L7 ,(&   L480  ` Ln    `   HJJJJ h) ii0 ``0  ,BLV[J  B Vso Fhh` GH ,H hɐɀɡ)HDCȱCɛeCD먥D hN MSп` ED` OIH`hhXhh  nL Free Fil-DBreakI/O-Error 138Disk fullWrite protectedFile MismatchBad FilenameDOS II+/D - Version 6.4 RUN:(c) '87 by S.D.Br`čLLockedDevice doneDIR fullNot foundLoad?Bad DOSHex?AbortFromToHD) S)Eh` ɛLn ;LD2:+DOS SYSMOC.I   J ٍ001 RETOUHERCOM 0060000 Free0100 .OPT NOEJECT0110 DOSINI=$0C0120 IN=$CC0130 OUT=$CE0140 OFFSET=$D00150 MEMTOP=$2E50160 CBEGIN=LENGTH+20170 *=$30000180 ENTER SEC0190 LDA MEMTOP0200 SBC LENGTH0210 LDA MEMTOP+10220 SBC LENGTH+10230 STA OUT+10240 STA OFFSET0250  TAY0260 DEY0270 STY MEMTOP+10280 LDY #$FF0290 STY MEMTOP0300 INY0310 STY OUT0320 LDX #000330 LDA #CBEGIN&$FF0340 STA IN0350 LDA #CBEGIN/2560360 STA IN+10370 JSR MOVI0380 HERE TAX0390 BMI MORE0400 JSR MOVI0410 CLC0420 ADC OFFSET0430 LDX #000440 JSR MOV0450 BMI HERE0460 MORE INX0470 BEQ OVER0480 DEX0490 JSR MOVI0500 BMI HERE0510 MOV STA (OUT),Y0520 INC OUT0530 BNE MOVI0540 INC OUT+10550 MOVI LDA (IN),Y0560 INC IN0570 BNE MOVO0580 INC IN+10590 MOVO DEX0600 BPL MOV0610 ARND RTS0620 OVER LDA #010630 STA OUT0640 LDA OFFSET0650 STA OUT+10660 LDA DOSINI0670 STA (OUT),Y0680 INC OUT0690 LDA DOSINI+10700 STA (OUT),Y0710 INC OUT0720 TYA0730 STA DOSINI0740 LDA OFFSET0750 STA DOSINI+10760 JMP (OUT)0770 LENGTH=*OVER LDA #010630 STA OUT0640 LDA OFFSET0650 STA OUT+10660 LDA DOSINI0670 STA (OUT),Y0680 INC OUT0690 LDA DOSINI+10700 STA (OUT),Y0710 INC OUT0720 TYA0730 STA DOSINI0740 LDA OFFSET0750-0100 ;.OPT NOLIST0110 .OPT NOEJECT0120 ;0130 BASE=$60000140 ;0150 ;CHAR EQUATES0160 ;0170 LF=100180 CR=130190 ESC=$1B0200 SPACE=$200210 CNTL=$5E0220 CLS=$7D0230 EOL=$9B0240 ;0250 ;80 COL COMMANDS0260 ;0270 XCH80=$500280 LMG80=$600290 LMH80=$700300 YCR80=$800310 SGR80=$990320 PAG80=$9A0330 RMG80=$A00340 RMH80=$B00350 GET80=$C00360 CUR80=$C10370 RST80=$C20380 PST80=$C30390 CLR80=$C40400 LIS80=$D00410 SCR80=$D20420 SCB80=$D30430 GRF80=$D40440 ICM80=$D50450 PAL80=$D70460 CRS80=$D90470 MCF80=$DB0480 PNT80=$DD0490 ;0500 ;MEMORY EQUATES0510 ;0520 DOSINI=$0C0530 ICDNOZ=$210540 ICCOMZ=$220550 ICAX1Z=$2A0560 ICAX2Z=$2B0570 ICIDNO=$2E0580 LMARGN=$520590 RMARGN=$530600 VCP=$540610 HCP=$550620 IN=$CC0630 CDTMV3=$21C0640 SDMCTL=$22F0650 KEYDEL=$2D90660 KEYREP=$2DA0670 DVSTAT=$2EA0680 CRSINH=$2F00690 CHBAS=$2F40700 LISTF=$2FE0710 SFLAG=$2FF0720 HATABS=$31A0730 ICDNO=$3410740 ICCOM=$3420750 PAL=$D0140760 IRQEN=$D20E0770 SKSTAT=$D20F0780 PORTA=$D 3000790 PACTL=$D3020800 DMACTL=$D4000810 WSYNC=$D40A0820 VCOUNT=$D40B0830 NMIEN=$D40E0840 ;0850 *=BASE-20860 ;0870 .WORD CEND-BEGIN ;RELOCATER INFO0880 ;0890 BEGIN JSR ERTS ;DOSINI VECTOR0900 JMP CINIT ;RELOCATER JUMP0910 ;0920 PAUX1 .B!YTE 00930 PAUX2 .BYTE 00940 ;0950 READ JSR DISAB;DISABLE IRQ INTS0960 LDA #GET800970 JSR CINP ;REQUEST, GET CHAR0980 PHA ;SAVE CHAR0990 JSR INPUT ;GET CURS1000 JSR CURCK ;CHECK FOR X>$4F1010 PLA ;RESTORE CHAR1020 JMP ENAB1030 ;1040 CI"NP JSR CMD1050 INPUT LDA #00 ;TIME CRITICAL CODE1060 TAX ;MUST NOT CROSS A1070 LDY #31 ;PAGE BOUNDARY1080 STA DATIN1090 IN0 LDA PORTA ;41100 AND INMSK ;41110 BEQ IN01 ;3 IF A 0, 2 IF NOT1120 DEX1130 BNE IN01140 DEY ;TIMEOUT LOOPS1150 # BNE IN01160 SEC ;NO RESPONSE1170 RTS1180 IN01 LDX #081190 LDY #12 ;21200 IN1 DEY1210 BNE IN1 ;5*Y-11220 NOP ;21230 IN10 LDY #15 ;2 MAIN DLY COUNT1240 IN2 DEY1250 BNE IN2 ;5*Y-11260 LDA PORTA ;4 GET BYTE1270 AND INMSK ;4 GET BIT1280$ CLC ;21290 BEQ IN25 ;0=3,1=21300 SEC ;1=21310 IN25 BCC IN26 ;0=3,1=21320 IN26 DEX ;2 DEC COUNT1330 BMI IN3 ;2 (3 DONE)1340 ROR DATIN ;6 SHIFT IN BIT1350 BCC IN10 ;3 ALWAYS1360 IN3 LDY #15 ;DELAY 1/2 BIT1370 IN33 DEY1380 BNE IN331390 %LDA DATIN ;GET CHAR (Y=0)1400 BCC I5 ;RETURN IF CHAR1410 BPL I0 ;HORIZ WITH NO VERT1420 AND #$7F ;CLEAR UPPER FLAG1430 CMP #$51 ;TEST HORIZ/VERT1440 BCC I00 ;HORIZONTAL1450 AND #$1F ;CLEAR MID FLAG1460 BCS I01 ;SAVE VERT1470 I00 JSR I0 ;S&AVE HORIZ1480 BCC INPUT ;GET VERT1490 I0 INY ;OFFSET FOR HORIZ1500 I01 STA VCP,Y ;CURS POSITION1510 STA VCS,Y ;CURS SHADOW1520 CLC ;INDICATE RESPONSE1530 I5 RTS1540 ;1550 CURCK LDA HCP ;CHECK HORIZ CURSOR1560 CMP #$50 ;FOR >$4F1570 BCC I5' ;IF NOT1580 LDA #CUR80 ;GO GET REAL VALUE1590 JSR CINP1600 JMP I0 ;AND STORE IT (Y=0)1610 ;1620 CMD SEC ;THIS CODE MUST NOT1630 BCS OUT ;CROSS A PAGE BOUNDARY1640 OUTPUT CLC ;CMD FLAG=0 FOR CHAR1650 OUT LDY #001660 JSR SEND ;SEND START BI(T1670 LDX #08 ;SETUP BIT COUNT OF 91680 NOP1690 NOP1700 NOP ;2+2+2+2=81710 OUT0 ROR A ;PUT BIT INTO CARRY1720 BCS HI1730 BCC LO ;2+3=5 CYCLES TO LO1740 LO LDY #00 ;5+2 CYCLES TO JSR1750 JSR SEND ;SEND A 01760 BCC OUT1 ;3 CYCLES1770 HI) LDY OUTMS ;3+4 CYCLES TO JSR1780 JSR SEND ;SEND A 11790 BCS OUT1 ;3 CYCLES1800 OUT1 DEX ;NEXT BIT 2 CYC1810 BPL OUT0 ;MORE 3 OR 2 CYC1820 BMI OUT2 ;SEND STOP BIT 3 CYC1830 OUT2 LDY OUTMS ;SEND A 11840 BNE OUT31850 OUT3 JSR SEND ;2+3+4+3=12*1860 RTS1870 SEND STY PORTA ;OUTPUT BIT1880 LDY #12 ;TIMER FOR 15.7KB1890 S1 DEY1900 BNE S1 ;5*Y-1 CYCLES1910 BEQ S2 ;31920 S2 NOP1930 NOP1940 NOP1950 NOP ;2+2+2+2=81960 S3 RTS ;6 CYCLES1970 ;1980 COM LDA ICCOMZ ;GET COM BYTE1990 C+MP #$14 ;CHECK DEBUG OUT2000 BNE COM1 ;TRY NEXT XIO2010 LDA ICAX2Z ;GET AUX 22020 COMSD JSR DISAB ;STOP INTERRUPTS2030 JSR CMD ;GO SEND2040 JMP ENAB ;ENABLE AND NORM EXIT2050 COM1 CMP #$15 ;TEST VALID2060 BNE COM2 ;NEXT2070 LDA ICAX2Z ;GET, AUX 22080 BNE COMBR ;GO DO BURST2090 STA MODE ;MAKE NORMAL2100 LDA #SCR80 ;GET CMD2110 BNE COMSD ;GO SEND2120 COMBR STA MODE ;MAKE BURST2130 LDA #SCB80 ;GET CMD2140 BNE COMSD ;GO SEND2150 COM2 CMP #$16 ;CHECK DEBUG IN2160 BNE COM3 ;NEXT-2170 LDA ICAX2Z ;GET BYTE TO SEND2180 JSR DISAB2190 JSR CINP ;REQUEST, GET CHAR2200 STA DVSTAT+1 ;FOR NOW2210 JMP ENAB2220 COM3 CMP #$19 ;CHECK 80/402230 BNE COM42240 JMP XIO19 ;DO IT2250 COM4 RTS2260 ;2270 PCOM LDA ICCOMZ ;GET CMD228.0 CMP #$17 ;TEST VALID2290 BNE S3 ;NO MORE FOR NOW2300 LDA ICAX2Z ;GET AUX 22310 CMP #08 ;CHECK RESERVED2320 BCS S3 ;NO GOOD2330 AND #03 ;CHECK 3 AND 72340 EOR #032350 BEQ S3 ;NOT ALLOWED2360 LDA ICAX1Z ;GET AUX12370 CMP #08 ;CHECK UP/PER LIMIT2380 BCS S3 ;NO GOOD2390 STA PAUX12400 LDA ICAX2Z ;GET AUX 22410 STA PAUX22420 JMP EXIT2430 ;2440 WRITE LDY SFLAG ;CHECK CNTL 12450 BNE WRITE ;IF ON2460 JSR DISAB2470 LDY DEV ;ARE WE SCREEN?2480 BEQ WR2 ;YES2490 PHA2500 0LDA #002510 STA DEV2520 LDA #SCR802530 JSR CMD2540 PLA2550 WR2 LDY LISTF ;CHECK LIST FLAG2560 CPY LISTS2570 BEQ WR32580 STY LISTS ;SAVE NEW VALUE2590 PHA2600 TYA2610 BEQ WR252620 LDA #01 ;FORCE LSB2630 WR25 ORA #LIS802640 JSR C1MD ;SEND NEW VALUE2650 PLA2660 WR3 JSR ALIGN ;SET PARMS2670 LDY CHBAS ;CHECK CHAR SET2680 CPY CHSH2690 BEQ WR52700 CPY #$E02710 BNE WR42720 STY CHSH2730 PHA2740 LDA #GRF802750 WR35 JSR CMD2760 PLA2770 JMP WR52780 WR4 CPY #$CC27290 BNE WR52800 STY CHSH2810 PHA2820 LDA #ICM802830 BNE WR352840 WR5 LDY CRSINH ;CHECK CURS FLAG2850 CPY CRSS2860 BEQ WR62870 STY CRSS2880 PHA2890 TYA2900 BEQ WR552910 LDA #012920 WR55 EOR #CRS80 ;CURSOR ON/OFF2930 JSR CMD29403 PLA2950 WR6 JSR OUTPUT ;SEND CHAR2960 LDA MODE ;TEST FOR BURST2970 BNE WWAT ;IF SO2980 JSR INPUT ;GET NEW CURSOR2990 JSR CURCK ;CHECK FOR X>$4F3000 JMP ENAB3010 WWAT JSR ENAB ;ENABLE INTS3020 LDY #25 ;OR SUCH3030 JSR S13040 WW1 LDA PO4RTA3050 AND INMSK3060 BEQ WW13070 WW2 LDY #013080 RTS3090 ;3100 POPEN STX TIOCB3110 LDX ICDNOZ3120 JSR MATRIX3130 BCS HANDGO3140 LDY SDMCTL3150 BNE WW23160 LDA #PST803170 JSR DISAB3180 JSR CINP ;REQUEST, GET CHAR3190 BNE POP153200 LDA #139 ;NOBODY HOME3210 POP1 JSR ENAB3220 TAY3230 RTS3240 ;3250 HANDGO LDA ICDNOZ3260 STX ICDNOZ3270 PHA3280 LDA ICCOMZ3290 AND #083300 TAX3310 JSR HAND3320 PLA3330 STA ICDNOZ3340 RTS3350 ;3360 PWRT TAY ;SAVE CHAR33706 STX TIOCB3380 LDA ICDNO,X3390 TAX3400 JSR MATRIX3410 TYA3420 BCC PWP3430 STA TCHAR ;SAVE CHAR FOR CALL3440 LDY TIOCB ;GET UNIT #3450 LDA ICDNO,Y3460 PHA ;SAVE UNIT #3470 TXA ;GET NEW VALUE3480 STA ICDNO,Y ;REPLACE WITH NEW3490 7STA ICDNOZ ;AND ZERO PAGE3500 LDX #063510 JSR HAND ;GO PRINT3520 PLA ;RESTORE UNIT #3530 LDX TIOCB ;GET POINTER3540 STA ICDNO,X ;RESTORE OLD3550 STA ICDNOZ3560 RTS3570 PWP LDY DEV ;CHECK OUTPUT DEV3580 BNE PW03590 PHA3600 LDY SDMCTL83610 BEQ PW23620 PW1 LDY VCOUNT3630 CPY #1293640 BNE PW13650 PW2 JSR DISAB3660 LDA #PNT803670 STA DEV3680 JSR CMD3690 JSR ENAB3700 PLA ;RESTORE CHAR3710 PW0 TAY ;SAVE CHAR3720 LDA PAUX2 ;GET CNTL3730 ROR A ;CHECK NO XLATE3740 TY9A ;RESTORE CHAR3750 BCS DOIT ;DONT XLATE3760 CMP #EOL ;CHECK EOL3770 BNE XLATE ;XLATE IF NOT3780 LDA #CR ;REPLACE WITH CR3790 JSR DOIT ;SEND3800 LDA PAUX2 ;GET CNTL3810 AND #04 ;CHECK NO APPEND3820 BNE WGDS ;DONT APPEND3830 LDA #LF ;GE:T LF3840 BNE DOIT ;SEND3850 XLATE LDA PAUX2 ;GET CNTL3860 CMP #02 ;CHECK LIGHT XLATE3870 TYA ;RESTORE CHAR3880 BCC DOIT ;DONE WITH XLATE3890 AND #$7F ;REMOVE MSB3900 CMP #$20 ;CHECK ASCII CHAR3910 BCS DOIT ;GO PRINT ASCII3920 PHA ;SAVE ;CHAR3930 LDA #CNTL ;GET "CNTL" CHAR3940 JSR DOIT ;SEND3950 PLA ;RESTORE CHAR3960 ORA #$40 ;MAKE ALPHA3970 DOIT LDY SDMCTL3980 BEQ DO13990 DO0 LDY VCOUNT4000 CPY #1294010 BNE DO04020 DO1 JSR DISAB4030 JSR OUTPUT4040 JSR ENAB4050 WAI14320 AND #024330 BEQ POVER4340 DEX4350 RTS4360 ;4370 HAND LDA $E431,X4380 PHA4390 LDA $E430,X4400 PHA4410 LDA TCHAR ;RESTORE CHAR4420 LDX TIOCB ;GET IOCB POINTER4430 RTS ;CALL PRINTER HANDLER4440 ;4450 FORCOM LDA ICCOMZ4460 CM?P #$184470 BEQ XIO184480 RTS4490 ;4500 CINIT LDA #004510 STA TOGGLE4520 JSR JINIT4530 LDA #$504540 LDY #024550 JSR FSET4560 LDA #$534570 JSR FIND4580 LDA HATABS+1,X4590 STA TEMPSV4600 LDA HATABS+2,X4610 STA TEMPSV+14620 LDA@ #$454630 JSR FIND4640 LDA HATABS+1,X4650 STA IN4660 LDA HATABS+2,X4670 STA IN+14680 LDY #154690 C003 LDA (IN),Y4700 STA TMTAB,Y4710 DEY4720 BPL C0034730 LDA #FORCOM-1&$FF4740 STA TMTAB+104750 LDA #FORCOM-1/2564760 STA TMTAB+1A14770 LDA SKSTAT4780 AND #084790 BEQ C0044800 XIO18 LDA #$454810 LDY #004820 JSR FSET4830 LDA #$534840 LDY #014850 JSR FSET4860 LDA #WRITE-1&$FF4870 STA $3464880 LDA #WRITE-1/2564890 STA $3474900 EOPEN LDX #004910 JSR FESUB4B920 LDA ICAX1Z ;GET AUX 14930 AND #32 ;CHECK CLEAR BIT4940 BNE C005 ;DONT DO RESET4950 LDA #004960 LDX #064970 C0035 STA VCS,X4980 DEX4990 BPL C00355000 LDA #$E05010 STA CHSH5020 LDA #$4F5030 STA RMARGS5040 STA COMPOS5050 JSR DCISAB5060 IO00 LDA #RST80 ;RESET 80 COL5070 JSR CINP ;REQUEST, GET CHAR5080 BCC IO01 ;GOT IT5090 JSR JTOGL ;SWITCH PORTS5100 BNE IO00 ;DO IT AGAIN5110 IO01 LDA PAL ;CHECK COMPUTER TYPE5120 AND #$0E5130 BNE IOP15140 LDA #PAL805150 JSR CMDD ;SET 80 COL TO 50HZ5160 IOP1 JMP ENAB5170 ;5180 XIO19 LDX #065190 JSR FESUB5200 LDA #$535210 JSR FIND5220 LDA TEMPSV5230 STA HATABS+1,X5240 LDA TEMPSV+15250 STA HATABS+2,X5260 LDA TMTAB+65270 STA $3465280 LDA TMTAB+75290 STA $E3475300 C004 LDA #$455310 LDY #035320 JSR FSET5330 JMP EXIT5340 C005 LDA #SCR80 ;IN CASE A PRINT5350 JMP COMSD ;HAS OCCURED5360 ;5370 EDTAB .WORD EOPEN-1 ;OPEN5380 .WORD EXIT-1 ;CLOSE5390 .WORD EGET-1 ;GET LINE OF TEXT5400 .WORD WRITE-F1 ;PUT (NO CURS)5410 .WORD EXIT-1 ;STATUS5420 .WORD COM-1 ;SPECIAL (CMD OUT)5430 JMP EXIT ;INIT5440 .BYTE 05450 ;5460 PRTAB .WORD POPEN-1 ;OPEN5470 .WORD EXIT-1 ;CLOSE5480 .WORD ERTS-1 ;GET5490 .WORD PWRT-1 ;PUT5500 .WORD POPEN-1 ;STATGUS5510 .WORD PCOM-1 ;SPECIAL5520 JMP EXIT ;INIT5530 .BYTE 05540 ;5550 SCTAB .WORD SOPEN-1 ;OPEN5560 .WORD EXIT-1 ;CLOSE5570 .WORD SREAD-1 ;GET-LOCATE5580 .WORD SWRIT-1 ;PUT-PLOT5590 .WORD EXIT-1 ;STATUS5600 .WORD ERTS-1 ;SPECIAL5610 SHCT1 JMP EXIT ;INIT5620 .BYTE 05630 ;5640 TMTAB .WORD EXIT-1,EXIT-15650 .WORD EXIT-1,EXIT-15660 .WORD EXIT-1,EXIT-15670 JMP EXIT5680 .BYTE 05690 ;5700 SOPEN LDA ICAX2Z5710 AND #085720 BEQ SCT15730 LDA ICAX1Z5740 AND #165750 BNE SCIT15760 LDA #00 ;SEND 05770 JSR DISAB5780 JSR OUTPUT5790 JSR INPUT5800 LDA #SGR80 ;SET GRAPHICS5810 JSR CMD5820 LDA PAL5830 AND #$0E5840 BNE SOP15850 LDA #PAG805860 JSR CMD5870 SOP1 LDA #CLR80 ;FILL WITH 0 SENT5880 JSR CINP ;REQUJEST, GET CHAR5890 LDA #015900 JMP COMBR5910 ;5920 SREAD JSR DISAB5930 JSR ALIGN ;SET PARMS5940 JSR READ ;GET CHAR5950 CMP #EOL ;CHECK EOL5960 BNE SCT1 ;RETURN NORMAL5970 LDA #SPACE ;REPLACE WITH SPACE5980 BNE SCT1 ;RETURN NORMAL5990 ;K6000 SWRIT PHA ;SAVE CHAR6010 LDA #ESC ;FORCE PRINT6020 JSR WRITE6030 PLA ;RESTORE CHAR6040 JMP WRITE ;SEND IT6050 ;6060 EGET LDA COMPOS6070 BEQ EBACK6080 LDA HCP6090 STA HCPS6094 STA HCPE6100 EG1 JSR KCALL ;GET KB BYTE6110 CMP #EOLL6120 BEQ EGBAK6130 JSR WRITE ;SEND TO 80 COL6132 LDY HCP ;THIS CODE IS FOR6134 CPY HCPE ;SPECIAL CASE LINES6140 BCC EG1 ;DONT UPDATE IF LESS6142 STY HCPE6144 BCS EG16150 EGBAK STY KSTAT ;SAVE STATUS6160 CPY #$80 ;CHECK STAT6170 BCS EMBA0 ;DO EOL IF EOF/BREAK6180 JSR DISAB ;DISAB FOR CMD6190 LDA #006200 STA COMPOS6210 LDA MODE6220 BEQ EG26230 LDA #006240 BEQ EG36250 EG2 LDA HCPS6260 EG3 JSR CMD ;X CURS TO OLD VAL6270 LDA #MCF80 ;Y CURS TO FIRST6280 JSR CMD6290 EBNACK JSR READ ;GO GET A CHAR6300 CMP #EOL6310 BNE EGXT ;NOT DONE YET6312 LDY HCP6314 CPY HCPE ;CHECK RIGHTMOST6315 BCS EBA0 ;CURSOR POSITION6316 LDA #SPACE ;IF NOT THERE6318 BNE EGXT ;THEN FAKE SPACE6320 EBA0 STA COMPOS ;SET NON 06330 JSOR WRITE6340 LDA #EOL ;RETURN WITH EOL6350 EGXT LDY KSTAT ;GET STATUS6360 RTS6370 ;6380 KCALL LDA $E4256390 PHA6400 LDA $E4246410 PHA6420 RTS6430 ;6440 DISAB LDY #006450 STY NMIEN6460 SEI6470 RTS6480 ;6490 ENAB LDY #$C06500 STYP NMIEN6510 CLI6520 EXIT LDY #016530 ERTS RTS6540 ;6550 VCS .BYTE 06560 HCS .BYTE 06570 DEV .BYTE 06580 LMARGS .BYTE 06590 LISTS .BYTE 06600 MODE .BYTE 06610 CRSS .BYTE 06620 ;6630 CHSH .BYTE 06640 RMARGS .BYTE 06650 COMPOS .BYTE 06660 ;Q6670 DATIN .BYTE 06680 HCPS .BYTE 06685 HCPE .BYTE 06690 KSTAT .BYTE 06700 INMSK .BYTE 06710 OUTMS .BYTE 06720 TOGGLE .BYTE 06730 TIOCB .BYTE 06740 TCHAR .BYTE 06750 ;6760 TEMPSV .WORD 06770 ;6780 INMST .BYTE 02,$206790 OUTMT .BYTE 01,$10R6800 ;6810 FETAB .BYTE 0,0,0,$4F,24,36820 .BYTE 62,0,2,39,30,66830 ;6840 LOOKUP .BYTE "ESP"6850 LOWAD .BYTE EDTAB&$FF,SCTAB&$FF,PRTAB&$FF,TMTAB&$FF6860 ;6870 ALIGN LDY HCP ;GET HCURS6880 CPY HCS ;COMPARE TO SHADOW6890 BEQ A1 ;NO CHANGE6900 S STY HCS ;SAVE NEW VALUE6910 PHA ;SAVE CHAR6920 TYA6930 CMP #$506940 BCC A006950 LSR A6960 LSR A6970 LSR A6980 LSR A6990 ORA #XCH807000 PHA7010 TYA7020 AND #$0F7030 JSR CMD7040 PLA7050 A00 JSR CMD ;SEND NEW CURSOR7060 PLAT7070 A1 LDY VCP ;GET VCURS7080 CPY #25 ;CHECK UPPER LIMIT7090 BCC A157100 LDY #24 ;STATUS LINE7110 A15 CPY VCS ;COMPARE TO SHADOW7120 BEQ A2 ;NO CHANGE7130 STY VCS ;SAVE NEW VALUE7140 PHA ;SAVE CHAR7150 TYA7160 ORA #YCR80 ;SET CMD BIT7U170 JSR CMD ;SEND NEW CURSOR7180 PLA7190 A2 LDY LMARGN7200 CPY RMARGN7210 BCC A247220 LDY #007230 STY LMARGN7240 A24 CPY LMARGS7250 BEQ A37260 STY LMARGS7270 PHA7280 TYA7290 AND #$0F7300 ORA #LMG807310 JSR CMD7320 LDA LMARGNV7330 LSR A7340 LSR A7350 LSR A7360 LSR A7370 BEQ A257380 ORA #LMH807390 JSR CMD7400 A25 PLA7410 A3 LDY RMARGN7420 CPY RMARGS7430 BEQ A47440 STY RMARGS7450 PHA7460 TYA7470 AND #$0F7480 ORA #RMG807490 JSR CMD7500 LDA RMARWGN7510 LSR A7520 LSR A7530 LSR A7540 LSR A7550 CMP #047560 BEQ A357570 ORA #RMH807580 JSR CMD7590 A35 PLA7600 A4 RTS7610 ;7620 FESUB LDA FETAB,X7630 STA SDMCTL7640 STA DMACTL7650 LDA FETAB+1,X7660 STA VCP7670 LDA FETAB+2,XX7680 STA HCP7690 STA LMARGN7700 LDA FETAB+3,X7710 STA RMARGN7720 LDA FETAB+4,X7730 STA KEYDEL7740 LDA FETAB+5,X7750 STA KEYREP7760 RTS7770 ;7780 FIND LDX #007790 F1 CMP HATABS,X7800 BEQ F27810 INX7820 INX7830 INX7840 BNE F1Y7850 ;7860 FSET JSR FIND7870 SET LDA LOWAD,Y7880 STA HATABS+1,X7890 LDA #EDTAB/2567900 STA HATABS+2,X7910 F2 RTS7920 ;7930 JTOGL LDA #017940 EOR TOGGLE7950 STA TOGGLE7960 JINIT LDX TOGGLE7970 LDY INMST,X7980 STY INMSK7990 LDY OUTMZT,X8000 STY OUTMS8010 LDA #$FF8020 STA PORTA8030 LDX #$388040 STX PACTL8050 STY PORTA8060 LDX #$3C8070 STX PACTL8080 RTS8090 ;8100 CEND=*8110 ;8120 .ENDTOGGLE7960 JINIT LDX TOGGLE7970 LDY INMST,X7980 STY INMSK7990 LDY OUTMACMFULOCHVAN@ @ @y @!d80 COLUMN DEMO TEXTx;AV, (}UR(J HELLO, I'M THE NEWEST PRODUCT IN ATARI'S \ EVER-GROWING XE PRODUCT LINE U(85(- << THE XEP80 >>8(QQ(I I provide 80 COLUMN display and CENTRONICS PARALLEL printer output to@=(5 ALL ATARI 8 bit computers !!!!!!@(SS(K My DI ]SK-BASED handler immediately gives YOU an 80 COLUMN DISPLAY on aSS(K host of software products. With my INDUSTRY STANDARD printer port you canTT(L now use a wide variety of printers with your XE and XL computers; no longer**(" needing the 8 ^50 interface module.UU(M Now you can view text as it will appear on your printer. Spreadsheets SS(K and telecommunications products now become more powerful and professional.SS(K Many ATARI and 3rd party software products are being enh _anced to take full""( advantage of the XEP80.==(5 As Always ATARI CORP. Brings You 77(/ POWER WITHOUT THE PRICE A XI(A} The XEP80 Supports the Atari Graphics Character Se `tX( TT(K..(%nn(e  aII(@ MM(D MM(D 44(+ b4{69`A<<(3    33(*          ''(  A  (}5( ( 5@ @@A cE:DD(< The Atari International Character Set,-@&((>:, , ,-@'A$((>:, , ,-A%A'((>:, ,  ( ( A ++@ @@ dAE:MM(E} The XEP80 Also Supports All Atari Screen Editing Functions( A ;1(( INSERT CHARACTERS; A .$6.SEVERAL. A A A(7(+ e DELETE A LOT OF TEXTA A +!6.+ A A 5( (( INSERT+( LINES5 A  116.' MANY MANY MANY  Ai_(V DE fLETEASMANYLINESASYOULIKEi A I6. A$ A ,6.6 A@ A I6.G A A 6.) A3 A = AG A 0[([6.N OR JUSTPUT TEXT gANYWHEREYOU LIKE2 A6 A XZ=( >:AU,=@ @@ADE:[=( >:AU,=@ @@AEE:\E( >:A`%@,E@ @@ hA7E:^HH(@} THE SCREEN CAN BE CHANGED TO BLACK ON WHITE_ A `E( >:A`%@,E@ @@A7E:b(((~ THE CURSOR MAY BLINKc A jH( ( >:A`%@, iH@ @@A7E:l##(~ OR REMAIN STEADYm A vH( ( >:A`%@,H@ @@A7E:xHH(@~ THE SCREEN CAN BE CHANGED TO WHITE ON BLACKz A ~E( j >:A`%@,E@ @@A7E:##(~ BLINKING CURSOR A H( ( >:A`%@,H@ @@A7E:""(~ CONSTANT CURSOR A @@(8} k Many New Text Options Are Supported A P((( >:AU&@&@,P@ @@AEE:DD(<~ HOW ABOUT ĠϠՠ ̠ŠנɠĠŠ FOR EXAMPLE? A X(0( >:AU&@&@& l@,X@ @@AEE:>(~ >:AU,>@ @@ADE:))(!~ BLINKING EVEN? A H( ( >:AU&@,H@ @@AEE:&&(~ m OR INVERSE? A P((( >:AU&@&@,P@ @@AEE:$$(~ BLINKING? A  A EE(= The XEP80 also supports several more features:H%( n UNDERLINED TEXTH( DOUBLE HIGH TEXT ..(& TRUE BIT MAPPED GRAPHICS  A  @(( >:AU,@@ @@AEE: @(( >:AU,@@ @@ADE: o AMAIN LOOP-@B:,(7<, A 0 $(-@@ ! A % ($$ A  A ! A $$(-@@! A 0% ($-@@ $D:DEMO80ADE: ghx  ARELOB1OB2OUTGRARENWRITLOOTRENPULIDATENFILFAICOUNADSPOTTTHLSTARFENTME q ! ""RELOCATING PROGRAM FOR XEP80==TO USE THIS PROGRAM THE FOLLOWING CRITERIA MUST BE MET:CC. THE HANDLER SrOURCE CODE MUST BE ASSEMBLED TWICE, THE FIRST(??. ASSEMBLY AT ANY CHOSEN START ADDRESS AND THE SECOND AT2@@. THAT ADDRESS+$100. THE FIRST OBJECT CODE WILL BE CALLED<??. H6000.OBJ AND THE SECOND OBJECT CALLED H6100.OBJ. THE F@@. RELOCATERs CODE MUST BE ASSEMBLED AS FILE MOVE.OBJ. THISPAA. PROGRAM WILL READ IN MOVE.OBJ THEN COMPARE BYTES BETWEENZ@@. H6000.OBJ AND H6100.OBJ AND CREATE A LINKED RELOCATABLEd>>. STRING. THIS STRING IS APPENDED TO THE MOVE.OBJ STRINGi++. THEN WRItTTEN TO DISK AS AUTORUN.SYSn;A H,x11;@,;@,;@,;@,6. D:MOVE.OBJ6. D:H6000.OBJ6. D:H6100.OBJ6. D:AUTORUN.SYS'6-A06-A5'6-A@6-AP6-B'h6u-@,, @@,6-@6 6-@ B"@ A@D67<,.>:,E J A T@^  @@ @@ 6-;-v@#6-@' 36-@7 ; 7-@#6-@' 36-@7 67<,.>:,  6- 6- !A' A)6-@ "@) AP 6-6-@w 6-  A67<,.>:,6-%@ A@67<,.>:A(, A 67<,.>:,)6-&@)SHOULD READ FROM FILE67<,.>:,  A &67<,.>:,'67<,.>:,( )x67<,.>:AU,*@@0;;6-@:7@<@,,%@:7@<@,,$AV:6-%&@D$6-P:'AV,$6-&$AVN767@<@,.>:,767@<@,.>:,O! !67<%@,.0X SyTOP @@(@@ &EETHIS SECTION CAN BE ENABLED TO OUTPUT A HEX VERSION OF THE FILE';@,'6.0123456789ABCDEF-B:,&@o6-P:'AV,$6-&$AV56-P:'z@,E6-&$@S6-%@a6-%@o6-%@ (7<,7<,7<, !!6-@:7%@<%@,,@6-P:'@,$6-&$@26-%@@6-%@(7<,7<, & ) $ 6-@{$6-%@$ D:MAKER.BASo6-%@ (7<,7<,7<, !!6-@:7%@<%@,,@6-P:'@,$6-&$@26-%@@6-%@(7<,7<, & ) $ 6-@0 A W dATTRIBUTES EXAMPLEnAATO SET ATTRIBUTES USE FOLLOWING DEFINITIONS TO FORM COMMANDx55. THE XEP80 CONTAINS TWO ATTRIBUTE REGISTERS EE. REGISTER A IS USED WHEN A CHARACTER ASCII VALUE IS BELOW 128EE. REGISTER B} IS USED WHEN A CHARACTER ASCII VALUE IS ABOVE 12799. EACH REGISTER REMAINS CONSTANT ACROSS THE SCREENEE. THAT IS, NO MATTER WHERE A CHARACTER IS PLACED ON THE SCREENAA. ITS ATTRIBUTES WILL REMAIN THE SAME ##. RE~GISTER BIT DEFINITIONS:!!. BIT EFFECT IF A 0!!. 0 REVERSE VIDEO. 1 NO EFFECT. 2 BLINKING. 3 NO EFFECT . 4 DOUBLE WIDE. 5 UNDERLINE. 6  BLANK)). 7 SPECIAL TEXT GRAPHICS... TO ISSUE A COMMAND DO THE FOLLOWING:". 1) PRINT CHR$(27);,CC. 2) PRINT CHR$(VALUE DERIVED FROM ABOVE BIT DEFINITIONS);6!!. 3) XIO 20,#1,12,A,"E:"@AA. WHERE A=244 FOR REGISTER A AND A=245 FOR REGISTER BJDD. THEN PRINT CHARACTERS ON THE SCREEN, EITHER WITH BIT 7 OFFT??. TO USE REGISTER A, OR WITH BIT 7 ON TO USE REGISTER BK (}-@(@9(E ؠA ͠P ̠E T ŠX ԠKAR@ A !!SOME ATTRIBUTE COMBINATIONSL$(>:@',>:AU&@,L@ @@AEE:L$(>:@',>:AU&@,L@ @@AEE: A  REVERSE VIDEO &L$(>:@',>:AU&@,L@ @@ADE:0L$(>:@',>:AU&@,L@ @@AEE:D A BLINKINGXL$(>:@',>:AU&@,L@ @@ADE:bL$(>:@',>:AU&@,L@ @@AEE:v A  SOME DOUDLE WIDED(>:@',>:AU,D@ @@ADE:T,(>:@',>:AU&@&@,T@ @@AEE:" A "OTHERS DOUBLE WIDEL$(>:@',>:AU&@,L@ @@ADE:T,(>:@',>:AU&@&@,T@ @@AEE:  A ALL DOUBLE WIDE L$(>:@',>:AU&A(,L@ @@ADE:*T,(>:@',>:AU&A(&@,T@ @@AEE:> A ALL GRAPHICSRD(>:@',>:AU,D@ @@ADE:\D(>:@',>:AU,D@ @@AEE:p A BACK TO NORMALAR& (~~-A # &$D:ATRIBUTE.BASCSRD(>:@',>:AU,D@ @@ADE:\D(>:@',>:AU,D@ @@  22FDECO@@@AvdSCROLLING WINDOW EXAMPLEiFFSCROLL LEFT AND RIGHT WITH JOYSTICK, WHEN FINISHED PRESS TRIGGERk)B7t@d)DISABLE BREAK KEYnF@AU'AR@FSET RIGHT MARGIN, CURSOR OFFpE'-@$@W@W1 APECLEAR ALL WINDOWSr>(>:A%, !6-+ AP>SET FIRST WINDOWxA(>:A%,#-@ A(USE JOYSTICK TO SCROLL}$$(PRESS TO EXIT:-@+-$@@:(COLUMN 3 A!-@@3ALLOW SCROLLINGD-$@%@2(P:H:,$A,DMAKE UP A VALUE. A.ALLOW SCROLLING WHILE PRINTING   K A* A&T:@,$@KALLOW SCROLLING, CHECK TRIGGERo-@ #(>:AS,K@ @@A E:]@@yoAR(B7tA(ENABLE BREAK KEYAAWINDOW TO LEFT EDGE, RESET RIGHT MARGIN, CURSOR ON, EXITJOYSTICK ROUTINEL6-R:@,36-%N:+"@,&+"@,,LGET DIRECTION AND MOVEJ46-$+!6@* Aw,%+"Aw,$AvJLIMITS OF SCROLLINGE-@ (>:AS,E@ @@A E:$AALINE 1050 SETS THE NEW CURSOR AND ISSUES THE SCROLL COMMANDB$ D:WINDOW.BASDIRECTION AND MOVEJ46-$+!6@* Aw,%+"Aw,$AvJLIMITS OF SCROLLINGE-@ (>:AS,E@ @@A c.@@@@@d80 COLUMN DISPLAY EXAMPLEf5@'@@y5SET MARGINSiCAR@(}' A`CCLEAR SCREEN, DO TOP LINEn; (-@'(|+ ;DO RIGHT EDGExA-@)-@2(|6 ANOW LEFT?-@!(& A`-(?NOW BOTTOM LINEE-@ A) AP=-@E(,-@(( , !(~~! AP/  A0 A% A/ A0G6-@#-@- A1 =6-@G AB (AR BCORSOR ON AND OUT OF GRID, EXIT, (-@6/(  ,(~~/$J (-@T/(  ,(~~/$^(-@! A% ($h%-@w(" %$| (|-@+( | || (( | |+$5-@+-@5 A@$  6-@! A@$$O%-$@%$@%%@L(P:H:,$@%@,00O$77LINE 440 PRINTS RANDOM DATA IN APPROPRIATE PLACES D:EIGHTY.BAS | |+$5-@+-@5 A@$  6-@! A@$$O%-$@%$@%%@L(P:H:,$@%@,00O$77LINE 440 PRINTS RANDOM DATA IN APPROPRIATE PLACES  pGDX((@@@3@T@S?P ((( 7 A7KEEP TIME DEPENDENT CODE NEAR BEGINNING e-@#6-/6-A(C-@K6- %eLOOPS FOR CIRCLE LIMITSZ%6-%$+$%$$@0 A%,36-'@7 E6-%@ZCIRCLE CALCULATIONB%67%@<%@,.>:,BSET BITS FOR OUTPUT STRING(,  ( Ap,PRINT OUTPUT STRINGd--GRAPHICS DISPLAY EX AMPLE TO DRAW CIRCLEnOAR@#(>:A%,;;@@,;@@,OCURSOR OFF oH(H(= PRESS ANY KEY TO BEGIN GRAPHICS PLOTTING (TOTAL TIME 5 MIN)pI(I(> WHEN PLOT IS FINISHED PRESS ANY KEY TO RETURN TO TEXT SCREENq F: Ad,"AUAr2AdAU2RESET CHARACTER INPUT BYTEs[6.>:,*67@@,.>:,967@,.K+@%@[INIT STRING u)B7t@d)DISABLE BREAK KEYx--6@2@2-VERTICAL AXIS LOOP ; 6.6-6@P @;GO TO TIME CRITICAL CODE . F:Ad,"AUA.HOLD SCREEN(B7tA(ENABLE BREAK KEY`AdAU5@@E:GARJ`RESTORE TEXT SCREEN D:GRAPHICS.BAS @;GO TO TIME CRITICAL CODE . F:Ad,"AUA.HOLD SCREEN(B7tA(ENABLE BREAK KEY`AdAU5@@E:GARJ`RESTORE TEXT SCREEN WAINOUTSTARSTENd##PRINTER CONFIGURATION PROGRAMn9&;A H,;@,;@,9ALLOCATE STRINGSx(6. D:AUTORUN.SYS(READ THIS FILE(6. D:PRINT.SYS$(CREATE THIS FILE! B !IF NO AUTORUN.SYS @@ ATO CATCH EOFK6-%@)@,67<,.>:,6 ApKBUILD INPUT STRING@76-A6( AUX1 VALUE#7PRINTER AUX1 B$YTE67<,.>:,76-A7( AUX2 VALUE#7PRINTER AUX2 BYTE67<,.>:, @@<(@@<WRITE MODIFIED STRING TO FILE}(FILE NOT FOUND D:PRINTER.BAS7PRINTER AUX1 B$ꛛ Product Specification For XEP80 80 Column and Parallel Printer Board 01/26/87 XEP80 Firmware - Rev 41.1 ( 6502 XE Handler - Rev 70.0 Table of Contents 1.0 General Description .................... 2.0 Physical Interface ..................... 3.0 Software Interface ................(..... 4.0 Communications Interface ............... Appendix A Application Notes ............... Appendix B Relocater Format ................ Appendix C Contents of System Disk .........( Page 1 1.0 General Description 1.1 Packaging Information The XEP80 package consists of the following parts: 1. Owners Manual 2. RCA type video cable assembly ( 3. XEP80 System Diskette 4. Warranty Card 5. XEP80 Unit 6. Two End Caps 7. Power Adapter - 2600 Game Type 8. Box for Power Adapter 9. Gift Box 1.2 Statistics XEP80 Current Draw 400mA( Power Supply 500mA 9V DC Physical Dimensions - 40mmH 240mmL 142mmW Video Output - NTSC Composite Monochrome Video Display: Text - 80 columns by 25 lines Graphics - 320 dots by 200 lines Parallel Port(: Pin information - 8 data bits, strobe, busy, ground Connector - DB25 female Page 2 1.3 General Information The XEP80 is a video output device that also sup(ports an 8 bit type parallel port. The video hardware generates an 80 column by 25 line text display through a video connector/cable plugged into a separately purchased monitor. The monitor can be any Composite Video input type, although for the( best display a monochrome is strongly advised. Internally, the XEP80 is a 256 character wide by 25 line high storage device with an 80 column wide display window. Characters may be placed anywhere within the device independent of the window l(ocation. The window may be scrolled across the 256 column wide field. Optionally, the XEP80 may be placed into Pixel Graphics mode. This mode supports a bit mapped (pixel) screen of 320 dots (40 bytes) horizontal by 200 dots (lines) vertical(. The output window displayed is approximately half the size of the text window. Communication to and from the XEP80 is established through a joystick type cable that extends from the back of the unit. This cable will plug into either joysti(ck port (1 or 2) on all Atari 8 bit computers. Through this cable the XEP80 receives commands and data from the computer and sends them to either the screen or the printer. The 8 bit parallel port allows Epson, Centronics, etc. type printers ( to be connected to the XEP80, which means the Atari Computer may now output to these printers. The parallel connector is a female 25 pin D type. Audio may be supplied via a video cable from the Atari computer DIN plug to any suitable audio (speaker input. This is required for any SOUND commands or keypresses. Software is provided on diskette in the form of a DOS binary file named AUTORUN.SYS. This file is automatically loaded into memory and initialized by the DOS at boot (powe(r on) time. NOTE: The "*" character used throughout this document means that a 0 or 1 may be substituted. In the case of an 8 bit value, the description "0 0 * * * * * *" will allow 00 through $3F as valid input. ( Page 3 2.0 Physical Interface The Joystick port will use two lines for interfacing. One PIA line for input from the XEP80 and one PIA line for output to XEP80. Both the XEP80 and compu(ter will share a common ground line. Either joystick port (1 or 2) may be used with the supplied software. MALE (XE/XL/800/400) COMMUNICATION PORT PIN CONFIGURATIONS: JOYSTICK 1 JOYSTICK 2 ___________________(___ ______________________ \ 1 2 3 4 5 / \ 10 11 12 13 14 / \ / \ / \ 6 7 8 9 / \ 15 16 17 18 / \______________/ \______________/( PIN FUNCTION 1 Data to XEP80 2 Data from XEP80 3-7 Not Used 8 Common Ground 9 Not Used 10 Data to XEP80 11 Data from XEP80 12-1(6 Not Used 17 Common Ground 18 Not Used FEMALE (XEP80) PARALLEL PRINTER PORT PIN CONFIGURATION: __________________________________________ \ 13 12 11 10 9 8 7 6 5 4 3 2 1 / \ 25 24 23 (22 21 20 19 18 17 16 15 14 / \____________________________________/ PIN FUNCTION 1 Strobe 2-9 Parallel Data 10 Not Used 11 Busy 12-17 Not Used 18-25 Gr(ound Page 4 3.0 Software Interface 3.1 General Description The software interface to the XEP80 on the 8 bit computer side is a disk booted handler. This handler replac(es the E:, S:, and P: vectors in the Handler Address Table ($31A). Loading of the handler is as follows: A DOS disk containing the handler must be in drive 1. The computer is powered on, causing a disk boot. The DOS is loaded in and initiali(zed. The DOS init code looks for the file AUTORUN.SYS on the boot disk and loads it. The XEP80 handler must be named AUTORUN.SYS to be loaded at boot time. The handler file is loaded into RAM at address $3000 and continuing upward approximately (1.5K bytes. The file consists of a relocater portion followed by the actual XEP80 handler. After the file is in memory, DOS causes the init code of the handler to execute. This init code is the relocater which uses a variable called MEMTOP (($2E5,2E6) to find the last address of user (non-system) RAM. MEMTOP is then decremented by the relocater to point to an address about 1.5K below its old value. This will make room for the handler portion to be moved to those addresses. This addr(ess space into which the handler will be loaded is just below the normal screen RAM and display list address space. While the relocater moves the handler to its proper location, it resolves all absolute address references within the handler co(de. Thus the handler code comes from disk in a relocating format (see Appendix B). After the handler has been moved, the relocater sets the DOSINI vector ($0C) to point to the handler init code, sets an address within the handler to point to the( old DOSINI code, then jumps to the handler init code. The handler init sequence sets up the PIA registers to communicate to the XEP80, modifies the Handler Address Table (HATABS $31A), sets new screen margins, and determines whether the sys(tem is NTSC (60 Hz) or PAL (50 Hz). At this point the init code checks the position of the SHIFT key. If the key is pressed the code leaves the 40 column screen on and exits. If the key is not pressed the code then disables the ANTIC chip from d(isplay so that XEP80 I/O can begin. The handler now exits back to DOS, which then exits back to the OS, which then decides which application to run (for example the BASIC cartridge) and jumps to that code. As long as the application makes I/(O calls for the screen and printer through the normal OS CIO calling conventions, the XEP80 handler will intercept them and pass data on to the XEP80 device. Page 5 3.2 Functional Description( 3.2.1 Screen Operations The handler will monitor and communicate the following locations to the XEP80 and will update them if the XEP80 causes a change: $055 Cursor X Position COLCRS (low byte) $056 Cursor X Position (h(igh) for range checking $054 Cursor Y Position ROWCRS The following locations will be monitored and communicated to the XEP80: Default: Optional: $2FE List Flag DSPFLG ....(........ $00 (OFF) $01 (ON) $2F0 Cursor On/Off Flag CRSINH ... $00 (ON) $01 (OFF) $052 Cursor Left Margin LMARGN ... $00 (XEP80) $XX (ANY) $053 Cursor Right Margin RMARGN .. $4F (XEP80) $XX (ANY) $2F4( Character Base CHBAS ........ $E0 (ATASCII) $CC (ICM) The following locations will be monitored and acted upon by the handler to emulate screen editor operations: $2FF Start/Stop Screen Output Flag Y Reg EOF Status (C(NTL 3 Keystroke) and BREAK Key Logical lines of text on the screen may encompass more than one physical line. The length of each physical line within a logical line is determined by the left and right margins. Up to 24 physical lines may be( included within one logical line. Tabs are set at 2,7,15,23,31,39,47,55,63,71,79,87,95,103,111,119, 127,135,143,151,159,167,175,183,191,199,207,215,223,231,239,247,255. These are the default settings and may be changed with the set and cle(ar tab control characters. Tab values only apply to physical lines, thus a logical line of two or more physical lines will have its tab stops repeated on each physical line. The 40 column ANTIC screen may be enabled with a command in the ev(ent the user wishes color graphics, 40 column text, or has no 80 column monitor. The parallel printer is still operational in this mode. Graphics is enabled by a special OPEN command to "S:". In this mode the screen is 320 dots (40 bytes) by (200 lines. The cursor will be in the upper left hand corner of the screen awaiting data transfer. Each character sent to the XEP80 will be displayed in sequence; all 8 bits will correspond to consecutive dots across a scan line. The MSB will be (displayed first and the LSB is last. The status line is Y cursor value 24. This line may be used for input or output, however control characters do not edit, but only print in this line. One control is allowed, SHIFT DELETE. The line does not( scroll. Be careful not to accidently POSITION or POKE the cursor into this line while the BASIC command line processor is active as it may require use of the Reset key to recover from a lockup that can occur on this line. ( Page 6 3.2.1.1 Editor Screen "E:" Handler The following functions will be supported by the supplied handler and will emulate the 8 bit screen handler (editor): Open Assign edit handler to IOCB #N and cle(ar screen. If AUX1 is $2C screen will not be cleared. Close Unassign handler from IOCB #N. Get Char Get line of text until EOL (INPUT in Basic). The special read mode (read a line of the screen wi(thout keyboard input) is also supported by setting AUX1 of calling IOCB to $0D. Put Char Put a character to the screen or do editing functions (PRINT or PUT in Basic). See chart below. ( Get Status Return default "on line" status Special Send commands to and receive status from XEP80. (XIO in Basic). AUX1 byte must be $0C, AUX2 is code to send, CMD below. Put Character Values (ATASCII FUNCTION $1B Escape - Print next char even if a control char $1C Cursor Up $1D Cursor Down $1E Cursor Left $1F Cursor Right $7D Clear Screen $7E Backs(pace $7F Tab $9B Atari EOL (CR/LF) $9C Delete Line $9D Insert Line $9E Clear Tab $9F Set Tab $FD Sound Bell - Not Available (See item 6 below) $FE De(lete Character $FF Insert Character Items: 1) Put Char will advance cursor. 2) Get Char will advance cursor. 3) At logical end of line a new line will be inserted. 4) At non EOL put will overwrite character(s. 5) The XEP80 E: handler may be disabled by pressing the SHIFT key at power on or during RESET. 6) The bell sound has been disabled by the handler to improve the speed of character output to the XEP80. ( An application may, however, use any of the SOUND statements (or the assembly language equivalents) to generate noise, notes, etc. Page 7 Special Commands to "E:(" CMD AUX1 AUX2 Function $14 $0C CMD - send command ($00-BF,D0-DF) to XEP80 (see 4.3.2) $15 $0C 00 - set normal character transmit mode $15 $0C 01 - set burst character transmit mode $16 $0C CMD - send in(put command ($C1-C6) to XEP80 (see 4.3.4) response is stored in location $2EB $18 $0C 00 - exit 40 col screen, enter and clear XEP80 screen $18 $2C 00 - exit 40 col screen, enter 80 with no clear screen $(19 $0C 00 - exit XEP80 screen, enter 40 col screen 3.2.1.2 Static Screen "S:" Handler Open Assign screen handler to IOCB #N (Graphics see below) Close Unassign handler from IOCB #N Get Char Get a character a(nd advance cursor (Basic LOCATE) Put Char Put a character to the screen - no editing functions Get Status Return default "on line" status Special No action Items: 1) Put char will advance cursor and possibly insert lines. ( 2) Get char will advance cursor but not insert lines. 3) Get char over blank will return $20 (SPACE). 4) Put EOL ($9B) will move cursor to left margin of next line. 5) A GRAPHICS 8+16 will set graphics mode on the XEP8(0. Or if IOCB #N is opened with AUX1=$1C and AUX2=08. 6) When in graphics mode on the XEP80 the cursor is initially in the upper left hand corner of the graphics window. Each byte sent to the XEP80 will be pl(aced on the screen as a series of 8 dots (MSB to LSB) corresponding to the binary value of the byte or ATASCII value of the character. The cursor then moves over 8 dots to the right to show where the next (byte will be placed. When the cursor reaches the right edge of the window it moves to the left edge and down one line. 7) Currently Put char sends ESC followed by the character. This will give two bytes per p(ut in graphics mode. Therefore use Put char through E: when transmitting graphics data. 8) The graphics mode command automatically sets burst mode. 9) The handler will support standard ANTIC graphics calls while ( in 40 col mode, provided enough room has been allocated in RAM. For normal boot environments this means GRAPHICS 1,2, 3,4 only. Page 8 3.2.2 Printer Operations The XE(P80 will also output single characters to the printer port through a 2K internal buffer. Data presented to the printer by the handler may be interpreted in one of three ways: No Translation - All 8 data bits of character information will be ( passed to the printer port. Light Translation - ATASCII EOL ($9B) is translated by the printer handler to the CR and LF characters before transmission to the printer. This is the default printer mode. Optionally, only the CR may be sent for( EOL. Heavy Translation - Light translation plus ASCII characters below $20 will be translated to a "^" character (for CONTROL) followed by the corresponding letter before being sent to the printer. The MSB will be set to 0. The pri(nter output may be directed to either the XEP80 (parallel) or serial ports or both. The unit number (such as P2:) may be kept or altered depending upon the need. See chart below. Calls to "P:" Open Assign printer handler to IOCB (#N and issue status request to printer. AUX1 must be 08 (Write only). Close unassign handler from IOCB #N Get Char Not supported Put Char Send a character to the printer port Get Status Returns stat(us of printer BUSY line, 1=available, 139=busy or off line. Special Configure printers and select translate mode (see chart below). Do before OPEN to printer. ( Page 9 Special Configuration Command to P: Command byte =$17 Configuration Byte Assignments for AUX1 +-+-+-+-+-+-+-+-+ |7|6|5|4|3|2|1|0| Bit positions +-+-+-+-+-+-+-+-+ 0 0 0 0 0 * * 0 P1: -( Parallel Port 0 0 0 0 0 * * 1 P1: - Serial Port as P1: 0 0 0 0 0 0 0 * P2: - Serial Port as P2: 0 0 0 0 0 0 1 * P2: - Serial Port as P1: 0 0 0 0 0 1 0 * Reserved 0 0 0 0 0 1 1 * P2: - Parallel Port( 0 0 0 0 1 * * * Reserved 0 0 0 1 * * * * " 0 0 1 * * * * * " 0 1 * * * * * * " 1 * * * * * * * " Configuration Byte Assignments for AUX2 0 0 0 0 0 0 0 0 Light translation - EOL to (CR/LF 0 0 0 0 0 0 0 1 No translation 0 0 0 0 0 0 1 0 Heavy translation - EOL to CR/LF 0 0 0 0 0 0 1 1 Reserved 0 0 0 0 0 1 0 0 Light translation - EOL to CR 0 0 0 0 0 1 0 1 No translation 0 0( 0 0 0 1 1 0 Heavy translation - EOL to CR 0 0 0 0 0 1 1 1 Reserved 0 0 0 0 1 * * * " 0 0 0 1 * * * * " 0 0 1 * * * * * " 0 1 * * * * * * " 1 * * * * * * * " Note - P3 through (P15 are not alterable; they remain unaffected by the handler and are directed only over the serial bus. Page 10 4.0 Communications Interface 4.1 Communication Fundam(entals Communication with the XEP80 will be handled by sending serialized data over bit 0 or 4 (JOY0,JOY1) and receiving serialized data over bit 1 or 5 (JOY0,JOY1) of the PIA A I/O register. Data will be shifted at 15.7KB. Transmitted and (received data will each contain 9 bits of infor- mation . Data will be shifted out as follows: a start bit of value zero, followed by bits D0 through D7, followed next by a control bit to indicate whether data (0) or command (1) information has be(en sent, then terminated with a stop bit of value 1. Currently the supplied handler will provide data shifting on the computer end. Any applications that do not use the handler or drive the XEP80 at a different baud rate must provide code for th(is. It must be understood that this code is time critical in operation, so all 6502/ANTIC cycles must be accounted for during data shifting. An alternate transmit/receive mode, "burst mode", allows faster transmit times. The XEP80 to computer( data line (receive line) is high (1) when characters may be sent and it is a low (0) when the XEP80 is busy. Thus no cursor information is returned. This mode applies only to characters to be sent to the screen (including control characters) and (characters sent to the printer (the only mode for the printer). Burst mode does not apply to commands of any sort. Any custom handler that sets burst mode must be aware of how to handle communication from that point. When waiting for (a cursor or character (non burst mode) monitor the data-in line immediately after transmitting a byte. When in burst mode wait at least 90 usec before testing the data-in line for 0 (busy) or 1 (ready). Do not allow any 6502 interrupts w(hen transmitting or receiving the serialized data, as this will modify the baud rate timings. Interrupts may be allowed while waiting for the XEP80 to go ready in burst mode. Thus other interrupt driven processes such as a modem handler will( not lose characters. Page 11 4.2 Communication Protocol Characters sent to the XEP80 will cause a 1 or 2 byte cursor to be returned - see 4.3.1 and 4.3.6 Commands a(re subdivided into three groups: 1) Stand alone commands - no response expected - see 4.3.2 2) Get Character - character and cursor returned - see 4.3.3 3) Get Data commands - data byte only returned - see 4.3.4 Cursor values (returned from XEP80 are determined by following logic: 1) If only Y cursor has changed, only Y is returned 2) If only X cursor has changed, only X is returned 3) If both have changed both are returned (X is returned first) 4)( If neither changes only X is returned COMPUTER XEP80 1 CMD--> Stand alone command 2 CMD--> Get data command <--CHAR Return value 3 CMD--> Get character comma(nd <--CHAR Return character <--CURSOR X and X cursor 4 CMD--> Get character command <--CHAR Return character <--CURSOR Y and Y cursor 5 CMD--> ( Get character command <--CHAR Return character <--CURSOR X and X and Y cursor <--CURSOR Y 6 CHAR-> Output character <--CURSOR X Return X cursor 7( CHAR-> Output character <--CURSOR Y Return Y cursor 8 CHAR-> Output character <--CURSOR X Return X and Y cursor <--CURSOR Y 9 CHAR-> Burst Mode - (send character ___. .___ High (1) Ready |_____| Low (0) Busy Page 12 4.3 Command/Data Values 4.3.1 Data Output - Return Cursor +-+-+-+-+-+-+-+-+-+ (|8|7|6|5|4|3|2|1|0| +-+-+-+-+-+-+-+-+-+ 0 * * * * * * * * Character to be output ($00-FF) (3.2.1.1, 3.2.2) 4.3.2 Stand Alone Command - No Information Returned +-+-+-+-+-+-+-+-+-+ |8|7|6|5|4|3|2|1|0| +-+-+-+-+-+-+-(+-+-+ 1 0 0 * * * * * * Horizontal Cursor Position ($00-3F) 1 0 1 0 0 * * * * Horizontal Cursor Position ($40-4F) 1 0 1 0 1 * * * * Horiz Curs Pos High Nibble - for wide screen 1 0 1 1 0 * * * * Left Margin Low N(ibble - sets high nibble to 00 1 0 1 1 1 * * * * Left Margin High Nibble 1 1 0 0 0 * * * * Vertical Cursor Position ($00-0F) 1 1 0 0 1 0 * * * Vertical Cursor Position ($10-17) 1 1 0 0 1 1 0 0 0 Set Cursor to Stat(us Row ($18) See caution, Pg. 6 1 1 0 0 1 1 0 0 1 Set Graphics to 60 Hz 1 1 0 0 1 1 0 1 0 Modify Graphics to 50 Hz 1 1 0 0 1 1 0 1 1 Reserved 1 1 0 0 1 1 1 * * Reserved 1 1 0 1 0 * * * * Right Margin Low( Nibble - sets high nibble to 04 1 1 0 1 1 * * * * Right Margin High Nibble 1 1 1 0 1 0 0 0 0 Clear List Flag 1 1 1 0 1 0 0 0 1 Set List Flag 1 1 1 0 1 0 0 1 0 Set Screen Normal Mode - cursor returned each char ( 1 1 1 0 1 0 0 1 1 Set Screen Burst Mode - no cursor returned 1 1 1 0 1 0 1 0 0 Select Character Set A - Atari graphics (ATASCII) 1 1 1 0 1 0 1 0 1 Select Character Set B - Atari international 1 1 1 0 1 0 1 1 0 Selec(t XEP80 Internal Character Set 1 1 1 0 1 0 1 1 1 Modify Text to 50 Hz Operation 1 1 1 0 1 1 0 0 0 Cursor Off 1 1 1 0 1 1 0 0 1 Cursor On Continuous 1 1 1 0 1 1 0 1 0 Cursor On Blink 1 1 1 0 1 1 0 1 1 Mov(e Cursor to Start of Logical Line 1 1 1 0 1 1 1 0 0 Set Scroll Window to Cursor X Value 1 1 1 0 1 1 1 0 1 Set Printer Output 1 1 1 0 1 1 1 1 0 Select White Characters on Black Background 1 1 1 0 1 1 1 1 1 Select B(lack Characters on White Background 1 1 1 1 * * * * * Reserved Page 13 4.3.3 Get Character Command - Data byte and cursor returned (4.3.5, 4.3.6) +-+-+-+-+-+-+-+-+-+ |8|7|6|5(|4|3|2|1|0| +-+-+-+-+-+-+-+-+-+ 1 1 1 0 0 0 0 0 0 Get Character from XEP80 at cursor (and advance) 4.3.4 Get Data Command - Data byte returned (4.3.5) +-+-+-+-+-+-+-+-+-+ |8|7|6|5|4|3|2|1|0| +-+-+-+-+-+-+-+-+-+ )Command Function for XEP80 Byte Returned 1 1 1 0 0 0 0 0 1 Request Horizontal Cursor X Cursor Value 1 1 1 0 0 0 0 1 0 Master Reset 01 1 1 1 0 0 0 0 1 1 Printer Port Status 00=busy 01=on l)ine 1 1 1 0 0 0 1 0 0 Fill RAM with previous char 01 1 1 1 0 0 0 1 0 1 Fill RAM with space ($20) 01 1 1 1 0 0 0 1 1 0 Fill RAM with EOL ($9B) 01 1 1 1 0 0 0 1 1 1 Reserved 1 1 1 0 0 1 * * * ") Page 14 4.3.5 Received Data - Normal Communication Mode +-+-+-+-+-+-+-+-+-+ |8|7|6|5|4|3|2|1|0| +-+-+-+-+-+-+-+-+-+ 0 * * * * * * * * Charact)er from Screen or H. Cursor if requested 4.3.6 Received Cursor - Normal Communication Mode +-+-+-+-+-+-+-+-+-+ |8|7|6|5|4|3|2|1|0| +-+-+-+-+-+-+-+-+-+ 1 0 0 * * * * * * H. Cursor Position ($00-3F) Vert does not follow ) 1 0 1 0 0 * * * * H. Cursor Position ($40-4F) Vert does not follow 1 0 1 0 1 0 0 0 0 H. Curs Pos >4F No Vert Follows - see note 1 0 1 0 1 0 0 0 1 Reserved 1 0 1 0 1 0 0 1 * Reserved 1 0 1 0 1 0 1 * * Reser)ved 1 0 1 0 1 1 * * * Reserved 1 0 1 1 * * * * * Reserved 1 1 0 * * * * * * H. Cursor Position ($00-3F) Vert follows 1 1 1 0 0 * * * * H. Cursor Position ($40-4F) Vert follows 1 1 1 0 1 0 0 0 0 H. Curs P)os >4F Vert Follows - see note 1 1 1 0 1 0 0 0 1 Reserved 1 1 1 0 1 0 0 1 * Reserved 1 1 1 0 1 0 1 * * Reserved 1 1 1 0 1 1 * * * Reserved 1 1 1 1 0 * * * * V. Cursor Position ($00-0F) 1 1 1 1 1 0) * * * V. Cursor Position ($10-17) 1 1 1 1 1 1 0 0 0 V. Cursor Position for Status Line ($18) 1 1 1 1 1 1 0 0 1 Reserved 1 1 1 1 1 1 0 1 * Reserved 1 1 1 1 1 1 1 * * Reserved Note - when "Horizontal Curs)or Position Greater Than $4F" byte is received, the computer may obtain the actual value with the "Request Horizontal Cursor from XEP80" command. Page 15 Appendix A Application ) Notes 1) Characters may be printed over EOLs in the right margin column without causing insert lines to occur by setting the right margin at least one more column to the right. 2) The firmware of the XEP80 uses just under 2K of the availab) le address space - thus allowing rom replacements to incorporate additional features. 3) Debug mode allows reading of the parallel port so with the addition of a latch on the XEP80 board the port becomes bidirectional. 4) If large text scr) een (greater than 80 columns wide) needs to be erased use the Fill XEP80 RAM with EOL command rather than the Clear Screen char. Clear Screen only clears the current 80 column 24 line high window. 5) X Cursor > $4F is handled by the handler. Th) e handler automatically sends the Request Horizontal Cursor command to the XEP80 whenever a $50 cursor X value is returned. 6) When using the XEP80 Internal Character Set issue the Fill XEP80 RAM with Space command to blank the screen. Howeve) r, when sending characters to the XEP80 screen, either precede each one with an ESC character or set the LIST flag so that screen edits do not occur. 7) Graphics 8 screen dumps will require a short discussion. Since the OS requires 8K RAM to )set up a mode 8 screen the handler cannot reside in its standard address space. An appended AUTORUN.SYS file must first set the MEMTOP pointer to 8K below the top of RAM (check actual mode 8 value). Then the relocater will move the handler below t)his point. After entering 40 col mode the GRAPHICS 8 call may be made. Plotting etc. to the screen is through the normal S: interface of the OS. When done the application will set XEP80 mode then set XEP80 graphics, then read from the ANTIC screen) RAM and output to the XEP80. 8) Changing default printer configuration at boot time is shown by disk program PRINTER.BAS on the system diskette. Page 16 Appendix B Reloc)ater Format for XEP80 Handler Values in Boxes are in HEX Format AUTORUN.SYS File Format Relocating Format of Handler +-------+ +----+ | FF,FF | DOS Load File +--| XX | Link byte to f)irst +-------+ | +----+ Relocate byte | 00,30 | Start Address=$3000 | : : +-------+ | : : Valid 6502 Code | LO,HI | End Address | +----+ +-------+ ) +->| XX | High Byte to relocate : : Relocater +----+ add offset : : Code +--| XX | Link byte to second +-------+ | +----+ Relocate byte | LO,HI )| Handler Length | : : +-------+ | : : Valid 6502 Code | 20 | JSR Instruction | +----+ +-------+ for DOSINI set +->| XX | High Byte to relocate | LO,HI | by Relocater ) +----+ add offset +-------+ +--| 00 | Example Link of 0 | 4C | JMP Instruction | +----+ following byte is +-------+ to INIT code +->| XX | High byte to relocate | LO,HI | set by Re)locater +----+ +-------+ +--| 80 | Special Case 80 means | 00,00 | Printer Aux bytes | +----+ skip 127 data bytes +-------+ | : : then treat byte 128 : : XEP )80 Handler | : : as the next link : : Code in +->+----+ : : Relocating Format +--| XX | Link +-------+ | +----+ | E2,02 | INIT Vector | | | Valid 650)2 Code +-------+ | +----+ | E3,02 | for DOS +->| 00 | Dummy byte to Relocate +-------+ +----+ to maintain links | 00,30 | RUN Address | FF | Special Cas)e FF means +-------+ +----+ end of File Page 17 Appendix C Contents of System Diskette DOS.SYS DOS 2.5 DUP.SYS A)UTORUN.SYS XEP80 Relocater and Handler XEP80.DOC This Document XEP80HAN.SRC Handler in assembly source RELOC.SRC Relocater in assembly source MAKER.BAS Program to generate AUTORU)N.SYS WINDOW.BAS Examples for Owners Manual EIGHTY.BAS PRINTER.BAS GRAPHICS.BAS DEMO80.BAS Demonstration program for XEP80 )Page 18 WINDOW.BAS Examples for Owners Manual EIGHTY.BAS PRINTER.BAS GRAPHICS.BAS DEMO80.BAS Demonstration program for XEP80 ( {hiNDAJo )'72g&a(rlُYtAz#{E;.DI霺 ; {hB !_+T RU%Hbu7ͭ k#!HVgB'I ƙұTu?~+TxzJdobͽY1xRB|XYHn(j|}+_ӾЮe06ͪys$K7ihJKMru(T;eQ*9wlY5G<~[\ABK]I.,1{H]-qbq{A8H!`T&[9d yH/O/PPy{W׃&KASk49yGQw-*AyxS7LT"+ZP?§E$^5>ok1-)TQAq^ő ;"rL!;.5Ѝk+ \j:pH-YdR#ڱ99KY]QU떣YR ZkbR YI a!Co^ǒIzA{H[E7{ "lnBMr^8%NQhK  ]Խa:?"F8NO0C0#St.%WS{B <4 wREeuGF=; *JC<ׯ"NfbI =޼F=RsjCwtCҒ&B*G67B $?@EC=2O ;5uOZ83^xUj>CsCn{ ]-2E|ץu VeJ}d"([۾TŕG/89aa.J{0A+&<0$>k 9-^)pΡ8fpCzHj8#$;A1a %tS8K騜[,)В(=9YKh(ᐊ, vVSGV³T@8B;Q=1 9c( eOi@x v('jS#w~V[l͈RĜz ~#joS zz}B9 E7 H0-ECT0S؄QEjKMd yPW=+!{HjֳQ"yBn P%xxF#WqXwӝ #浐26BrXJFJ%uj7rÝm+ DjBTڿx*WQRZ31MefyLT娸t A? |; 6؆/lH=66f-:417Ȣ#فi 1@9w:) y o(HꂟeIXJUڽ^)]ڋ/u,=3G 1Zrm0h `8j.) TԠB=%L*&rb7)V+,U&#zT\H$592gH}w`( fckyh0ERx) ) 8BJWIea5I!@MbVC `TU0NV#ttƿ*'U\:"ys̏] eR2j[&\y5[dXc/i v!_c#cX4sM闩7f`;J?̃YY2ݣ?dYv , mݥw[(y0wCZ r @Dl( ԇƁPS OӐ fwfB)),˫q; A;oLHl DB;T!a0  LF,&#%[F!NYn23&eZ#d!⠳}ݓ] "XSxV`FAAsXtWhy5tM縁n"4e~Fv'z@F N!':#h4I*I`@*n UAg~dAOc݀EV-p`pHGg00 R *N\#@d{r1pۄ**dZ00b ;lBL;V@р~lN`0,,d(a> gY,X,tb( > 2]wfaf*d'b xߙTb@g Cu]p#K!Ҝ ~ބ`,VB{L}(̶JbX #"`sf0 5A jg$txLB'Sɳ1ےZ 7"'b@`/XɜXAŒLYvd՘F^ jCÃ`wz*AN[HD.rܮ,,1==ڍ-'v5I œOQ` Tg匕,R)Kj`/!2h,EKes@,ABB^*?9sȲ!eFI @pp&KK@pL^LHc@ocPgPhL_@Q`HmH*`P /Ecp bhL_ppLL._L@>pPP`Q_`_APppPPP p0ooHmc@c`PPhL_@p H@ ԍh@ h@H ka$pp0ooo@pΰ@@@PP((A / APAC Gr.9 GR.11 Red9 Green9 Blue9 Red15 Green15 Blue15 Pryzm Intlace@@@@@@@ :z<|Z0Ѐ0Ѐ P (ppϰ pɶ!:88b9888999UPPPPPPPP5Յ :ڊ?ߏ&A `````````aaaaaapqqqqqqqqqrrrqqrrrrrrrrrrrssssssssttt!1 @PP```aaaaaaaaaaaaaaaaaabbbbbqrrrrrrrrrss²rrsssssss²ssstttóttttóuĴŵŵ!2 0@@QQQaaaaaabbb!AQQaaabbbbbbbbbbbbbbbbbcccc²rssssssssstóssttttttótttuuĴuuuĴŵƶƶǷǷȸȸ!3 11AAQQQQQbbbbbb!!1AARRRbbbbbbcc"BRRbbbccccccccccccccccdddóstttttttttĴttuuuuuĴuuuvŵvvŵƶǷǷȸȸɹ!4ɹ!111AAAQRRRRRbbb!!22BBRRRRRccccc""2BBSSSccccccd#CSScccdddddddddddddddeeĴtuuuuuuuuŵuuvvvvŵvvvƶwƶǷȸȸɹɹ!5ʺ!111ABBBRRRRRRSS""222BBBRSSSSScc"""33CCSSSSSdddd##3CCTTTdddddd$DTTdddeeeeeeeeeeeeeefŵuvvvvvvvƶvvwwwƶwwǷǷȸɹɹʺ!6ʺ!1222BBBBBRSSSSS""222BCCCSSSSSST"##333CCCSTTTTTd###44DDTTTTTeee$$4DDUUUeeeee%EUUeeefffffffffffffƶvwwwwwwǷwwxxǷxȸȸɹʺ!7ʺ˻""2222BBBCCSSSSS""2333CCCCCSTTTT###333CDDDTTTTTT##$$444DDDTUUUUU$$$55EEUUUUUff%%5EEVVVffff&FVVfffgggggggggggǷwxxxxxȸxxyȸɹɹʺ!8˻˻""22223CCCCCCSST"##3333CCCDDTTTT###3444DDDDDTUUU$$$$444DEEEUUUUU$$%%555EEEUVVVV%%%66FFVVVVVg&&6FFWWWggg'GWWggghhhhhhhhhȸxyyyyɹyyɹʺʺ!9˻̼""233333CCCCDDTT###33334DDDDDDTT##$$4444DDDEEUUU$$$$4555EEEEEUVV%%%%555EFFFVVVV%%&&666FFFVWWW&&&77GGWWWWW''7GGXXXhh(HXXhhhi iiiiiiɹyzzzʺzʺ˻!:˻̼##333333CCDDDDDD###344444DDDDEEU$$$$44445EEEEEEU$$$%%5555EEEFFVV%%%%%5666FFFFFVW&&&&666FGGGWWW&&''777GGGWXX'''88HHXXXX((8HHYYYi)IYYiii jjjjjʺz{{˻!;˻̼̼##3333344DDDDDDD#$$444444DDEEEEE$$$$455555EEEEFF%%%%%55556FFFFFF%%%%&&6666FFFGGW&&&&&6777GGGGGW''''777GHHHXX''((888HHHXY(((99IIYYY))9IIZZZ*JZZjj kkkk˻{|!<̼̼ͽ##33444444DDDEEE$$$4444455EEEEEE$$%%555555EEFFFF%%%%%566666FFFFG%&&&&&66667GGGGG&&&&&''7777GGGHH'''''7888HHHHH((((888HIIIY(())999IIIY)))::JJZZ**:JJ[[+K[[k lll!=̼|ͽͽ#$$44444445EEEEE$$$44555555EEEFF%%%%5555566FFFFF%%%&&666666FFGGG&&&&&&677777GGGG&&'''''77778HHHH'''''((8888HHHI(((((8999IIII))))999IJJJ))**:::JJJ***;;KK[++;KK\,L\\!> mmͽξ$$$444445555EEEE$$%%55555556FFFF%%%%55666666FFFG%&&&&6666677GGGG&&&&''777777GGHH'''''''788888HHH'''(((((88889III((((())9999III)))))9:::JJJ****:::JKK**++;;;KK+++<&E CCDD艹C `F! 0 ! FE`E0`CCD  ` E `E` "G`  0 ͜ 8fG֠CHCD8  h`)F DC`̅iDiE˝Hȱ˝I BLVԄ ة ͤ͹I LH ͩ`> B EDHI VH`S   + *  H h)_q 0̘ v Hu H`CDCȑCȱ$ɛ)GC ` C `.TURBO 2000L-load S-load&run R-run B-Basic Zly format Blad @ʍ `Nacisnij dowolny klawiszLSRB  L  llDl…    )_ @H hT ԅ ` L)H `j+ * 祈  ll/ԩ x"/ԩ@X    D ө54455l Wlaczyc BASIC ? (T/N) Wylacz cartridge 2345422345)I23LA 580 JMP  ll/ԩ x"/ԩ@X    D ө54455l Wlaczyc BASIC ? (T/N) Wylacz cartridge 2345422345(& L! !5I6` ҩЭ #ҩ`Lb!0 H  h0 L? ` R% X%0, f &0`$0ϠLb! !0H  h022 H2He11h ; hL 34 53L L 1 ; Lb!L6 !-K ! R% X%0, ڤ22H X h0 &2e113435 X 01Lb!2ؠ!@ԩ"ԩ8өө<X`45G2'3 L L ԍԅ1Щ8ө`ө4x!`!b##"_#a# *) 5`$V%-L 0F!"' #S' ! #0``8ff 0S' !0𢬠" #"/ *@ G' #`HG' h H" h )_ @H hTL " (T/N)"#! #0!`0`G'H'H' `I3 !-M #``G'0H'+`I3 ! # G'H'` H'8fˠH8G'G'H'H'h` 慩3ŅIńI3 !`G'H''I`̅iDiE˝Hȵ#$˝I BLVԄ ة ͤ͹I L# ͩ`-Nȑȱ$ɛ ` `012345678901234567890012345678901234567890g% #B$ELs$% #B$E1DHI V,I&DE*L&`T! à$]%% # F$ ^$ 5%BJKD$E V0= BJ-OK1D$E V0 &0 &0 5%% #L$H 5%J% #h #L$ B V B V`Blad ,`Щ`g%b&-*n podaje zawartosc dysku nPlik wejsciowy :Plik wyjsciowy :Kopiowanie zakonczone } Kopiarka DYSK<>TURBOTAPE -P TURBO 2000 J.P.M.'85 WARSZAWA 1988UWAGA !!! Aby uniknac kolizjc&G'i ze sta-cja dyskow identyfikatorem magnetofo-nu TURBO jest T: a nie D: jak w sys-temie K.S.O. TURBOH BHIh V`BH-QI V`B' 5%BAD'EJK V0BHI V0 L'L$L %DM:*.*$uniknac kolizjc&G'i ze sta-cja dyskow identyfikatorem magnetofo-nu TURBO jest T: a nie D: jak w sys-temie K.S.O. TURBOH BHIh V`BH,b~L <( < <*& Sƅꆅ < < <*`i <* <*K <*&0 i慰eLIIāeL`H S8*h`ʼnň`护`懤`h1SLL%()Z$L+aa#ȱ  $ L1)? N@A{ە&Y$ R+$AǕ=2(} ?8}ԭȕ)6v/ҹ`z&{T `1T`'0 (` #p8 ,9)_ '))LIߕ iDP)*˕i%)D%}n T(A{n|BVLވ0ɹr$Q誽y=_t(<@NP'-8F2  ,Q,c`^V.1/mv]B^ɀ4(Hwh1U)0 IH+LX αS/%"L K%23 2C.IL``! ]< !cV } σ pJJJcx cATFg&-`TS ,y}VHE`8T L{B t3}s * 4LJLəA8$ L{0Fu0w:I!`JN!<`$fgP (ÛZ1V w1kf`=iN- Q`/01᯵R\p+p="!!pyi@b "RqzBq!$)X6iFt_A"G* Y]3nhb:Ne&NbU \q`YcK6l*1 dEXb**` Tٶs|e=)~ U-QxQxhyspfaRKHp29730M$1Y%:Yyrlf`[UQLHD@ۀY 衡@?R q  00 D `[z^A""[Ŕ; Lbe{HA""`" @ DI9-̌2 rDƸhJPD1A1Z0<pFBCZF@pCB` dLE  O!E  !djFJ% z[[ UU.&DZn# 7U@ԩ ҭ/)ߍ‹ `LGJ' ` 019 BI`HHHԩٰ ԍЍ&( 1[ a̭͠-L U˥J hhh@  ` pp2@ pPRA4H4henewag`ofcompressingisKdfast(eyouhavgoodack"#Sr`on  1meantthqQyA"lagto)lLbu %work@Fmuchett; Qdew hrunin$S1\.oE@%loca)` baQn fT)+ӂad%aTʚiEll#}m0rogrammYbo ] o֘S 8JnudRaYc!=,dby.<30!22/7 (!7+ dkcF$(/2 $)3Ģ*/+%23!V+ @tiX,kOf9EQc1U l>5 JCigaD]хQqukeU71]6X&i)_)oiR~wxQthfMbmI.%4!8 5.$ ,!9ɖ80#)bކ栚-mK(tT-%sIv0'0+0+5#:`J4 W\@@? @%@P.-@@? Save asm >n 4-@@ C(#Input and output file names musAwt beU-@@d( different.n Ae# @@(Q @@-@@ 3 Lenght line >Q @)!@@@@-P @E-@@2 Lenght tab >P @)!@@E2T77-Ax&@3B@C: ,@7 <& A`6-&)@AE"AU/B@C:dta d',@;6-@E @FE"@9/B@C:dta d'G,@;6-@E @K;"B@C:dta c',@Ay/*@;6-Pp6-%@!&@9B@C:',@KAAUfB@A@p @UU*)@"AU P* AZ"@9P A_"Ad, B@C:Az',c',@,6-i*A*B@A@n @sTxJO-@@"5( F:A, GAJQ}/O"@%*@@:,/ A5-!B@C:',d',@-6-@A{Q/O"@%*@@:G,/ AP-!B@C:',d'G,@-6-@QTB@C:',@z@@+AR@=-@@M( etry bortm@@K:z)@A|"@:R,)"@:r,@ + D8:CONV2.BAS'G,@-6-@QTB@C:',@z@@+AR@=-@@M( etry bortm@@K:z)@@Jl8jj)j jjeeeeʀe Ӏj BDEIHI V l(`px(`px      Pogram scalE~ajcy APPEND wersja 4.0dla TAJEMNIC ATARI napisa M.Misik.Podaj nazw pliku do do czenia lubszablon (np. *.*) w celu odczytukatalogu wg. tego szablonu lubwprowad pust lini w celu zmianytrybu pracy z odczytu na zapisi z zapisu na odczyt lubEwprowad tylko kropk (.) w celu opuszczenia programu APPEND.iij  ނ    +0_ɛ.U  LO ܃LOj  `    +0ۭ_ɛL..  L 9Lj l 8ӥE d 8ӥ d ᩀ P R [ P R P R [ P RLRHh`JJJJ`8ӥ d L_ɛ ?*8`` L RTU(XY VL LL LETU8XYR Vl  L3mXmY 0I` L 0)TU8XY R V0 0`j ^ R I  `Z[R`:_C[a:ETULV RLV BHILVDE BHILVBDEI(HLVHJJJJ Rh) 0$0`өԩЅхҢ&ԥeЅХeх&`ԅ ->_\Bufor jest pusty !Plik nie mieci si w ca oci !Wystpi b d Enr ... !W buforze: 12345 wolnych: 12345Podaj nazw pliku do do czenia:W buforze: Podaj nazw pliku docelowego:D1: `ϩ.ҩӭԭ8ԅХՅѠ8fEɰ醐`$ph0'҅Α ` @`) ѐF) ?.҈邐ɰ҈醰Цѐ$0ֆ8֑ `ב `L߆ґ `L߆` `ϩ.ҩӭԭ8ԅХՅѠ8fDoYLV `2BC@p2w5A`!H:BK00>4499IIHHKKJ)]eAHǫ;Kb`II9;82hjHHꢘ@@0I’AKJObxz{_OI/@0I.? /;¢,< AO$@0aP}PS ̱)oɣԦݣ#"kHc6&99"#7^{%m8O/m02#Vrq"NƗ_-Kr7De7_-Kw%Ee7"STOC K. s>xBaV_ʠx;Cr= Tp%F L B9u;CahAAF E\B 9v? WANlhF BTSC  S\B 9c+  EA EP SI\B9d! EAAF E\B9f) TAAD K\B9r7HO Tk,7'] \B9e=TTOd s\Bjd9d-Kd- S\6 T>?"˩ɥ*f&dQYŎO;-&N/mǙ&A@\+-ÓOɐ&Kx(@Xh8!Nx<]An8\;h $+6Eʢ򠡾YC QG? $Au7 -DF)" $-. $<5bRKs+6jޥIIH zWAڛp}| $-' Bߞ- $-Aߞ- $---Aߞi**Fϖ IR 煮ϟ\ NXǏÍO@7"Vƥ{r]q*r`p /-'"[.""#%#'9.TmVrq HǯKĤmQ?jof `ɥHH(Nb>oGK#K1X&ZK*!9 Id]$$'@x / BbJ(Ng#dg(VݕLjїΩ }a b2a ;I"IšѕN(  Lʔtv0$LqAgK$T150nARk1Ș>ɽ5 8ȕJ멅 #idv׾g@Cl1HS!e\"N>c(\Q}Psk~|(TkpZQy]PsFkJH(TFx@B(E~qIOĔh ıQ$ǰP'J&Nʔ(Z9պVQy]YPx\XҲ No1 pW qqhQLiP#aOЎ("7RKҫgۢy"NЎFbdQYv(2""mO@/mn""Ǔk( K2 6"#@x8#/@x8%>(Hx:I26RK%x;;W߆Gg02#"""#Tmy¿6"B]Nԍ@uH"6NҎ-Kd- YRDE雛@TOQX F RM_:}]d-Kd- YO Fd6E'e+Rp1 EORF RM T IARk&OA X%\2 RK1ARKZ7ࢠr Rk&$V7" 2x@"k?򫃧6fN5aI47@x8("+8ȷ7xXX7Hs&  Y !TF  Jc1EO Z?1Ed- YC   DF Jf3"@xPP 07Kʳm$ơI ɍۦ 򫍱K1;^-,KKcɨԭ23b:""*(:" 2O,@x1P}P ( :N{4#RKҫg6'8Xܥy"xn"xrힻbyAyGyFyKyJyIyH}e~SjI ͎Ï OAL ҫ8Tҫxm֯>Xxx@̨abWj?&"#/ B̵VT("b@̨ab:cB̵)"b #&! }"|.)#4H)@@gK" #.) }򫩅?>|򠦵14m)Igg@l"W&!?>98? HDETOF  K?@jls: EORiod+ Ed!  F?) X a3EYUSZ?7Hb#Df) Uc+ Kd-Dk6f) Tc, Jp"SUD+RC  EF  ETOD _! ETSF I AEYIUSZ?/ EH SB ND E!+RD NP^fd9"+Vab;^c+& 9 2 آ8J:}9"+Va>h"jA(߂}|ܥ) }|:آ"8:Vrq" 2:"#@x8z:"b:I"bVzd` _]y1IRk 7";ԭ>s EKR ꤖ;mA ' &.W{Vs4C5v3FQQP33G9A&PUq5/>p5l% U$v1w!w'v@&I99#38=33wmWB55zL{u$7?V~' &) #33f@a(hۆ5P?WVvw/Cv: wkWB5˽w@9vY=-Wy-VOXw;;v:Jvª(7)Q8T,,WVm?R*'7f((.." k) i('+ &* aoi NH*+/*. +) *( ^Hmmk%9;=f!7i^;=dMMKg"4i`I?<I_Iʌ$MeYdAQmyQmQmOyQm2ϣ pΚ܁+U ziEJ"@xJo& ""#%#@x(3Oj&Ոԋ }]K:ˡ؞j$/m7Hn!TE HFEM XfΚ)oÅᑣÅqjbi嵁=RkI ?BhMȪj,nLj qV2bi)&^Rk#..y&^y&^\*& MRk ?Z2MÞPMRMS!&^RKay&^(0y&^ܘНІԑ܍yɩ>sWa(+$Zl *< (8q 47 $0  V&  )#I  u   (   % !& 7    I )        (     I                     ^      !"&   ;   W 0    -"I /!/  '% 0 # 2,. C ?oooooͭoomooomooϱEϑ% iːe˅ː̱moloIIIHu Ru* Ru* RuJ Ru Rṷ^uSuTu`llb$ff(|||(l0fF8l8pvⵥ  r0ې<<{~_~0`@צG0nY`|pM0󚪞Q$Rޜs~ ?>؊Ƒֱ!!%a|ґ`!0l88l~ %0`!@`0 Rxx|! Nt|y~AF~~񦢑AA!a2|Mq0l80l 8`!|fc7cfxԌԭH-@ `=5ѹ̐hNlXE BLꕽ_Šۗ藈脌Ȅ r EJ)iIU PrCs{  m1M4 i1[b Ñ 0 #)3ݗ(, $04 C8f S@𹽘lp Ȫdd 0 @ "L,  L ֒,FJ.ъu撯{Ӣ@Lw L 2 놘 )?'M OD , 9] `f0 ÑDLEPLL@D=!` > J`~ ̌ӥe0e 8,<倪偨 Lm\`mR V` ** J{`#`68ۣ ۤ M`S L䕰H>y~~~}}}  L = , L4 k! R  ދLr݅gi(`Т@ %0@逩Qɛ{H h,.++=*~I:@{Ha4 p  L,M  ؐL0ܻ8٦Ȱʹ rL  o,c l F戀 WĘ  2L̽|  (OqN  "` G >l@XHH h eseoejLM 8壅D b ̌`0&Ŝ PH J"ԯ'U5B0ލ䕰L쎤9 LNb曦`FN<朤ܨ 4 LZ HVL݈L1  S2I89 :M ̌01iBF=AB, 訐t L89 :,jӡ10 1F1`hhNXl3Q2345 x "3 P4ǩ@L  ÑqI WX覚 o S 0{ M ` k@0jAP8L< ӱр. @ ,L/Z  /ӌjr %0 ދL8Z 0I E ^DdP**攩 d @D0ð,!_ RI, , ꕥ0`j LM0`Ͳ ΥɪɩcɢWɀ2/id i:` 077 9+Lً R+I) ,(> ??Е`L&b,a@,栫 pLVuՔ` F``N nf< YM`gI e 䔐) ?n ܥ ȥ NpX`ӽmаıH ߖwe䕐5&\ 'g0- &[ r s mt u v w x y z { Q|} V} h~>(e2悥LbMg`M~'  > `ֽfr eY: Ȣ`d.HJ h) 0` ~}&&&]}~~}}`)` ># ]he ePƂD~Gjf֥`& 4+0 Q`=HݿMh # ,,mҽ %hvHIЍh@ ԩ`h"rJ/,~Щ6hbE꜍RB(< 6 0 Х&- pV1V贐O.\Ȑuߩߩ@ۭ)ƎI ƍ ҅LbHҩ@ŏЗ Mh@ r ez )Јԥ H` S0юP15+:x+ۗ◑ʈ`X` $Ϳο `Ӏ` l揮<R'ω<\_nh 67A,i(BȩKMA` 4 `@|@-!d ф'x  UPROFESSIONAL COPY 1.42 MADE" BFOXXECUTFILEXISTSIRETLD} ʽRMEMULL٦{KSRR028DzOAABp¥ WRIiDOS.SYS NO(LUND`PDION PAUSOO,AoN1S (CHAre yMo u su?@Y esvoRepl ac SkipAbort >ea I need e`xtra memy!D1:**.*:`t`uCOPY 1.42 MADE" BFOXXECUTFILEXISTSIRETLD} ʽRMEMULL٦{KSRR028DzOAABp¥ WRIiDOS.SYS NO(LUND`PDION PAUSOO,AoN1S (CHAre yL\2PIoLN `2BC@p2w5A`!'hǏkď@HѩH,7 dV{yiMڌ8@8"PB>0o_Q@c@͌X@ @͌[D@Ύ@xͬI(]@IX¢q0c@Ύ@fq0b@Ύ@Dq0#@̌@xfq0B@Dq0X9;DFGYqIGDEyAB4y6H:WKV00>4499IIHHKKJ)]eAHǫ;Kb`9;82hiHHꢘ@@0I’AKJObxz{_O/@0I.? /;Q,< AO$@0aP}PS 0 )oԦ͢"!jHc6&uK>!0 =$m8O ""ӨVrq"MT_-Kr7De7_-Kw%Ee7"STOC K. s>xBaV_ɠxxOr[.z} o!nF #A 1# gON U@@CUԡ#v.[ح)\KKJJM[֣)}x,:ɇ uK>۪A+G*F%K$J#vO&πc6a@=#Q aOsfתNrG˖ɇuK>۪A+GO*FN;]`K\cJ#vO! (,8O3 2#-E%٬,D$:X̤$ӨM_A7H/ EFSccC J\fj?h=j`@A@@@A@A@A@@@A@@@A@@@A@A@A@@@A@A@A@@Q@A@A@A@@@A@@@A@@@A@A@A@@@A@@@A@@@A@A@A@@@A@@@A@@@A@A@A@@@A@A@A@@@A@A@A@@@A@@@A@@@A@A@A@@@A@@Q@=+RC  ESEF  _!Nd6EORp1H{}K Q6gR'  Dp1 D:=  I dvl dv~ l ORpjS|kds6I: b; Ss2^:@jdd-_  Ke= K?;C~' ;C}1 ;C~" ;Cn1  ;Cl-  ;C~" U;O! s'D p1D S"dC1 d a- ABD SQ" df/  _s'_s6-; Ls6Rl) H{m  BDSc6A@$%A@%$<=!N:'TD G PSU'Td-G PSU-Ke7QRr7  Ym( O c+  Ed!Zp1Gk6Ejdd- e=TTOM NM =RPSTOT YAT:/ EA YES r7 Z?&E;  T I  E ]l/0 No)Q\c<Se= TWX~$ Ct!N]b8-Ks$It!Nt=Jk%Es' Jt!N]b39_z%_t!Np1De+ Nt!N]1\s&';/3Bv3\\>;Cr= Tp%FE Q B9u;Cl3Lz;Cl- FAAF E\B 9v? WANa3Ln- FF EDA\B 9c+  EA EP S\B9d! EAAF E\B9f) TAAD K\B9r7HO Tk,7'] Q\B9e=TTOd s\Bjd9d-Kd- S\6 T>?!ȩɥ*f&/V#cŎO;-&Mę&6A#c@ғ+-ÓiܤɐQ&Kx(@Xh8!Nx<]An8\;h+6oڤʢ򠡾_aЕ8 QG?ϗ@ʤ -ԩ)!,.<5aRKs+6lIH @h)p}|,Am,-,Am,-,--Am,i**Fϖ IR 煮ϟ\ MďÍǑ@m<=!33lTQ{r]q*r`p 8:&!]aPx:.!!!Sm>?.Vrq:Hǯ5KĤmQ?jof `ɥHH(No~>oGK#K1]X&ZK*$] d]UU$$' ^] BbJAC'Mߝm*Mtk>#׵UUʒ0 3 6s00\ΗL~CA.MkQ%0E6R0E , IC[/ ENTacORa- %1 HF  Uf< EUEd-(,MF RTSF Kf<SISAAb+ YF Df ʏJ躉(Ӥ$Qq'P"Mk%گ/Mk%;d+ DϽ ʟeWU' ʟeX򲺮jûQ LN/!C"|2C0:'7Hu;Nc1 HT Df8 GTSE  W & 009 $6-+Rk,#Qq0)ii<VĈїΩ , |2, ֯2YۃхO"|2q4niӨQ$LqAgK$T150n Rk1Ș>ɽ5 8ȅJ!! #v׾@Cl6O! qniӨ!MK'Ӭ)Q}Pskʨ(Tkp'Qy&PsFk֨(TFxШ(E~qOĔh ıQ$ǰP'QJ&M"|'Ӭ'9Qy&Px)Ҳ MG pW qqhQLiP"aOȖ'!0 =RKҫgۢy!MȖFb/Vn02!mOT@n!!kߝp!!MtU P0!uKh=j?!, ﹰVn6 K!k Y QKRq9Y#-"K,,,%%"KA(GFIH &P؅_spɇi v()8OA)!0 =B&MTO'yIA#vVfn^X܃({O36}EKTt.ZZYP="kHhߝc6#Oߝ.^~ kH#R+Y@"Ҕiԭ9@5O`o+kHse:V"(ʇ ʇɮYm) ]˲ᑾ4Mk%7Hs<QEF EISc,Ef_srqpw6d「 ʟrʟpʟqʟw wC3ɩpw44.&ʇj223%r)p3ϓx!q)w4w0ܶx>.*Xc6#Oߝ.4 [n kH# Q(Y@" hԭ9@5O`o+kH(.+^ag2fdQ򲹬*JUz::p!QVi$?i'rMHOߝ<&*  % oBk x cZ 2yi5*% k j#,.9_,o(\8%?3##` @,Oщ< ##  %?' !dD8gG;vP ,u*2L '/ ,,.fF@`aAC欙uێ!! %#)*5ua4G3Q:T## cc! ۂOщ/#/#oY"DG!1T## cc! ۂOщ,:%åE!1 by1#vopD. T## c`et塖`;Nc5@& !#鐜":E! 8Hm;$dD%çG$:fEsB *, 5/ˑwY@ӆ"-kH}ׂ"9/" kHQaw%$ߝ.kHF+^/1 81 81 h' "1 0#)2,l(\8"k(1 8",o*#1 *}. ̈́102182xg<%iL4xL++&T## cc! ۂOщtfF@`aAC 3**55 hloUOߝ. 38#/ ,,((+kHBbTB#-.)iu K? Q, /# $VŐ"}2:E!1$1 my1#v Oߝ ++($`etkHSF`9Lc3F 2:E! 8Hm;Hm<fIV., )/ug2 jd19Uz$p\u 9&Ө3"/+() 0JKͰ+󊆻qKQ1~+Z+ȍŌ͇K 1+!X%WFD&M!tUT˕<+Rk&~xI+!%=LqC)hi8+RKء+*!852+9I&9f Kge;Sm;!zd3( Ked2;!=#gų/=%yg3(Hx:źQg;RK%x;;W߆Gg ""!!!~¬;!B]Mœ@uHPR:M-Kd- YRDE雛@TOQX F RM_:}]d-Kd- YO Fd6E'e+Rp1 EORF RM T Q Rk&O X%\2 RK1 RKZ<ӡr Rk&$VXxx@)abWj?&!B0 "(!a@)ab:cB0 (!a #&! }"|fF%aQA#4H)@@gK" #fF%aA }򫩅?>|򠦵14m)gg@l"W&!?>98? HDETOF  K?@jls: EORiod+ Ed!  F?) X a3EYUSZ?7Hb#Df) Uc+ Kd-Dk6f) Tc, Jp"SQUD+RC  EF  ETOD _! ETSF I AEYUSZ?/ EH SB ND E!+RD NP^[Y>!(Vab;^ca(& 9^`2c8J:鰲?!(Va>h!iA(߂[YXܥ) [ QYX9!=?ӨVrq"B:!=ޡ^?!aԿ?!aVzd` _]y1IRk7";ԭ>sEKRC.OMk%6UN D  skM YTOUI!Hhm BY̎%y1*"91̎Ǡ%#I,8; Qܔ,ڴH ޔ,iMڌ0aq<  %?' !:8eE; ,u*Zr^&&!//) ,,.dD@`gGC欙uێ!! %#)*5"F;}A4vt , /#Vǒ}:%åE!1vt # xT## cc' 곕m$щt}:%åE!1./(vt`Qet啢`;Nc5@& !#o鐐  }:%åE!:fEsB *, 5/O!ʌ$MeYdAQm)yQm*Qm?yQm"ϣ pΚ܁+U ziEJ!$ !!!-3$Ոԋ }] +K:ˡ؞߃i$7HQn!TE HFEM XfΚ)oÅᑣÅqj~Іbiy嵁]Rk ?BhKȪj,nLj qV2bi)&^Rk#..y&^y&^\*& +Rk ?Z2+Þ,+*ɧ+-!&^RKay&^(0y&^Ԙ蝤虠葨QшKɩ>sWa(+$Zl *< (8 mk>*x&Vɽj uU SnW%q -  $0  V&$  )#     (   % !&    h Q ^ $       (             )  0 #  (0 08000 22"0:08 *08 28 *088888.*.>*..**.*.08080808 2U0 **0 2 0.200< "(*(* *"088888<*"*""* ,".*:8888*:":"88.2*<:888< U08 <> 0"**088*222Z22222222B222**********XXXX.*.>*X**UUUU.*UUXXXXXXXX*U*0:88088:000 .2*<*** **<:8:88.> "00888  *"08888< ""*  .*0:88< *:"2".*.*U.*. >> t8L}L~LwpppD)tA tﳀ〣 QWWWWWWWWWWWWEOQWWWWWWWWWWWWWWWWWWWWWEOAptrn DYAinst user?defDYAUDYADYADYADYADYADYADYADYADYADYADYZXXXXXXXXXXXXXXXXXXXXXCYADYKUUUUUUUUUUUUUUUUUUUUUUULADYQWWWWWWWWWWWWWWWEOQWWWEOADYAsong3/.'.!-%DYADYADYAaddr DYADYADYAtmpoDYADYADYADYADYADYADYAUDYADYADYADYADYADYADYADYADYZXXXCYADYADYKUUUULZXXXXXXXXXXXXCYZXXXXXXXXXXXXXXXCYKUUUUUUUUUUUUULKUUUUUUUUUUUUUUUULU { L { dHJ(JJJJ)h |( d d)S&d d d)T { d8d | ?d: d)% { dȱJJJ)8H)瑂UH)󑂢HHi# {h ddd8h =}Πhhȑ# { d dd d8 =} {8dH)?H d d~: | |hghH ' d  0 )(ehUЀ  {?:0 y iᨹ)d |   {8zzrzcz dzdzrzczdPOH d |Ud |d | d(d |( dhЧ {ȭ dU8 |( d d AdmXdmXƅƄ =} =}d8d =}8d =}L[{8H鄪hmHmh =} =} dd8 =}(8 =}( dd d0)4d d)@ d0 'd g}# { X8 |( dUd\b}# { dJJ)芠 W}ʊLW} y<y=`)HHx d d '#( $JCL|252#52%HJJh).*N'HhHhhh`)? ee~d~c~`IIL|H d) U||hJJJ)T~ ̑S~ ԑ`I d) )`I} d) }}Հ q `I d) )`IH d) b}hH W}hJJJJ) iF a`A[i >i(j`X9Y:)XtY0;1< 0t1=U>?@ABCDHl`9X:Y;0<1=>?@ABCD`TT*\]42\\ #B#B$B$B%B&B&B'B'B!B!B(B#M#M$M$M%M&M&M'M'M!M!M(M#N#N$N$NU%N&N&N'N'N!N!N(N#R#R$R$R%R&R&R'R'R!R!R(R#V#V$V$V%V&V&V'V'V!V!V(V#[#[$[ (PxFGHIFGHIIIIIFGHIIIIIIIIIFGHIIIIIIIIIIIIIUP(NRRMNUU\])tQtyttttuAuiuuuu v1vYvvvvv!wIwqwww ULLL*LLBLLLLML+M*LgMvMdL HM`L HML \M dLLLL dLL HMiViِL/i慠٧LL)L)ɻLL急LdL`dL HMii di d` dhM dnM` dhM dnM`H~Mh \M`e`vMSuser?defVatarihE3"echobassWF#pflute2dwgf blh4"šIvib?hE3"vib?hE3" vib?hE3"vib?hE3"vib?hE3"synthhE3"dtunehE3"dtunVhE3"chrd?hE3" chrd?hE3"chrd?hE3"chrd?hE3"latarigUUUUU lvib?gUUUUU ldblgUUUUU lvib?gUUUUU lsynthgUUUUU ldtunegUUUUU ciuciuωgVUDDVš perc?F7B@snareϊV4# plumg4"supbassϊV4333p fx?tiuW4#"" fx?uiiW4#""fx?bziuW4#"" fx?cuuW4#"" fx?ifhW4#""L fx?ccg4"l?basG#pl?synVthF3#"""0l?doublegUDe$ l?ple l?basy3pl?dsynthG#l?dingX# l?gpianoV4"l?bdruml?sdrumW#l?hihat)l?tomH#l?vibF3#"""V0l?synthF3#"""0l?bassG#pl?down3333@l?down3333@l?flipW4 l?back3333333Pl?tsynthF3#"""0m?drumϊV4m?bas UUm?bas ϊV4m?sbass xgffUUm?douVbleϚwgffm?synthϚwgffm?bass ϊV4m?synthdϚwgffm?bassϚwgffpf?bassW#f?vibgE33330f?sdrumϊF#f?miao!C# f?accgE33330f?pimFf?synthgE3333V 0f?bdrumXX$`LZ_LcXLZL_QXRXSX)pJJJXXXXҩbXSXRXQXLXXXY.YhYYY5YZX[Xɏ T T` XAXDXVJX XMXOXVXWXZX[X X iU0L'YɏTXUX`TXUX`VXWXiXXiYXiZXi[XTXUXҩbX X(X쩀JX`QX)JXSXRXQXSX1X(X+X VXi0HWXihe\Xi_XVXiV WXiSX mSX SXȱ:X7X4X.X)ZZSXȱJJJJmQXQXZ.X) XȌQXLiZXSXȱ)mQXQXQX.X)(X8XSXH)D_%XhJJJJ>7 0 iD^"X`D^^^إHHHHbXL#^MXLV x\TXUXLe\ XL[JX0JXAXZX[X X[OXPX XNX XPX X>XiU X̎[7 XL [ X3/JJJ)[t[[u[?X s[ XU̎[Ћ[ XL#^L[[[[[[[[ Y`0`08`0e`0ߍTXUX`0ӭ@X0V NXeOX@XPXT`0 ɏ`DXDXWJXR>X@KXXYXi@AX) )?GXAX@ )?GX YLU\ɀ )?DXAX X)? XUXTXUX X XX.X)X(X.X)X\X_X(X7!+X.+X+X& XV  X4X+XL\(XJJJJJ) XX.X)X( =1X X XX=X(X8)P_(X)(i7X%"XX=XXX%XX(X)(X(X)4X+XJX X@JX1X.XJJJJJ}XXX}XX0L\XX.X)V =X H0^)) Xҽ X XX(h)ЭXhhhh`xrke_ZUPKGC?<852/,*'%#! οzqke_VPg`ZUQLHC?=9439-*(%$! 8 V j jFAn0R"zU4w`N8'xpjd^WR2 @5?@ _hBhh`$_%_X_$Y_%hh8_hhp cXLcX_$_%@LcX Z _L_X_V__'`ȱ8_ȱ_m_ȱm_i;b____`'`:bXXX%`dXgXjXsXvXyX|XXXXXXXXXXXXXXXXXXXXXXXXXYYY(Y+Y/Y2Y6Y;YDYJYQYWY^YaYkYyY~YYYYYYYYYYYYYYYYYYYYYYZ ZZ"VZ'Z3Z6Z9Z=ZKZOZRZWZZZdZgZjZmZzZZZZZZZZZZZZZZZZZZZZ[[ [[[[[[![&[4[C[G[L[O[R[c[f[i[l[o[w[~[[[[[[[[[[[[[[[[[[[[[[\\\\%\2\5\B\E\H\S\V\\\c\f\k\n\q\v\y\|\\\\\\%`%`%`%`%`%`%`\\\\\\\\\\\\\\]V]]] ]%](]2]7]E]L]O]R]X]]]a]d]g]p]s]|]]]]]]]]]]%`]]]]]]]]]^^ ^%`^ZZZr_x_{__%`_______%`_X_6dd%rLUpL_pL$pL perrorD:SONGNAME.EXT? p dFM0 t Q sn d dtddud sdV0©йdeg2iigMjolijgSidS-= ndd+* ndɝ+RdUVȩU npɜ"dVUTS np o o o8H鄪hmdmd o o  o5d oV |pd Xq 3o H 7ph@< 7p npdq0 d np 7pd@ H pmhd m`d-= nd d npNqd?+* nd H pmhd m  o o dq oddɝ::dd npNqV:d: npdNq<*?0zdd npNq>zdd npNq odd:dNqd)?dd)?d`d+* nd<( np dr dq L> np dr dq L oV o  o LdLLLodL8L-= ndL L o L L odH ohd`d+* nddLhd-= nd dd oL!i dȱ)| np_ np) o$H dhd )V)  )煄)L!i o' np ddJfQȥQL!i ddJJJJJ)=- n d< np> npd JJJJJ)dJ )L!i) o oLLd*+ nd oKdLid*+ nd Vodd odŇ` Uj d` 3o oLo 7pdidid@ d mLi o Xd Xd q dP X np m p`q0qd) npd: d Xd)?dũ dP XLnp l`Z[V@ X |pr4d d qq'd4d0'd:0%'dE SPKLl'TdULj%TdUR VLl d }Z RTU8XY膅 zl Vl膃 zlLVl rrdrmXrdrmXrrrr R TrUXY Vl0bq$q%dd X RTXUXXXY VlX X$q%q$q%B>e) $dJJJJ) #dRp npdV R V dLp l`LUj l?T lT`8H僨heHeh`4d~ N5d np%{a 0,5dN5d'd np4d o4d+* n4ddŇ8`qdT`ȱ))?@)?:Vɀ)?e`,q0dTnȱȘ d?ŀTŁ02TȱȱĄe惘 dLmdT`dT愽?襄 :ŀȽ @@VȘe惥`d nd dJJ) n)d\^ nd @ Xɜ` npLq nppLpF $0Ɔ npć0ņ np(f`8 d np pm m`0123456789 )o 'o(o8`H np(Vo(oJh 'o m'o'o8`m'o'o`0123456789abcdefwo uovo8`H npvovoJh uo8` uouo`  np`q8`)ŇH dJJ)hyq?Hd d Xh`d p iii`d i0i`dd0iU0iUiiV`e`fp8eƁ`zpy`S9U9`S9U9`sp d d@ X d  dT qL LdHd Ldhd p m t d |pV` XL`qp X`aq$q%q$q% t` pm m@ Xaq tq$q%l XqLqCMC.PER.zsxdcvgbhnjm,l.;/q2w3er5t6y7ui9o0pSJUDTRB $堎 d Ldhd p m t d |pT006BHDĝE J V B V =10 67 26cLE0 2搢 2 2Lc0l 2 =1 ;20H s20 27 27L0 =1L%0 3LS1͙7!͘777 377L07 28儅充Z!恩 343 3343 3 ;20H#6D2NOKL1L%0L0 3 3` 3LS1L0 V 2L%0 3 ;2HϢ  s20 43 3L0 3 ;2H 166eeƆƇ ;2H  s20 H33D3ELt166 16666 1 Z" 6 1 66`A087`80`0 3ɛHm3DIm3E BLV䎾3 23B3D3ELm2B3D3EILV䍾3JB3":̤6̥6m3Dm3EL2: 7!7m3Dm3E) K VLo3J B3D3Z#E`JHILf3JHIMHLf3JHILf3 JHILf3 JHIDELf3 V 3 2 V V`` B VҘ0` 3H 3hJJJJ) 0:i33`673767έĠ㩱plikZ$ do odczytu :Wyciac segment od $XXXX ,dlugosc $XXXX(-koniec;-dane;-dane i naglowek) ?plik docelowy: ɯϠkoniec pliku !!!!! adres poczatkowy: έĠ֮ Oto program sluzacy do rozlaczaniasegmentow pliZ%ku zlaczonych programemAPPEND (lub mu podobnym) .Najpierw na-lezy podac nazwe pliku do odczytu. Na-stepnie (przy kazdym segmencie)programumozliwi :ominiecie tego segmentu( -),zapisanie samych danych( bez na-glowka ) oraz zapisanie danych z nag-lZ&owkiem . Pamietaj: jesli chcesz wyjscz jakiejs opcji to nacisnij "pusty" RETURN. Program ukonczylem 22.05.1994r. Michal CierkonskiD1:77D1:anych( bez na-glowka ) oraz zapisanie danych z nag-lX//D1:NONAME.PICp A@\'&ile%dit/ption`s 3 etup %x?º8?9 |&| ,!cve#olor G98!2 P `  h /  U0 ?(ޢ &^(ޥ襁隐` 0 G09j><3` D 1<`\ `/Q@ T扆V$ &ک  DڌB _ q ,i q e,i@J .iLPCɗ+ ЛL ? ^)(jp`2i?Lڜ80!b*Ce9L HJ)pFϘͨd $t@̅Υͅh ya {hI ``Zk 0@Q)ɐH% !o$0h0 k0$@<HJiB h(bH h^*xFP&8Mi k^oࠐ`HP -h) 0:2Ii*`ɛ`#vO w ; w ΡBº7úW( 0XBm0""8Q8یIلLT m K Lb,,Ȅ ± >=^+- 1:M,؄䄰 bL :<$A $5+Q'ĘWh0X"ȘOL]mP:  . 婛;( gRMS8ÜK  c'w`8~ 5'-@.h`hM$ H h }_ н< fV(]< ^,@(6D`Q|ZRRE|C #Xal2@@CdhFII !ZքC88;c/Cޥ L EH)haް#KM LDF=eL`EwhXTiQzU&+ʵ"OLȈ S_ w~F!PFUP`H^-\h@J# h<@`F  BLV)  DEĄH IB *0,.+`.J3.a-CMK/YUJ4up $[ aT:(ٛ Iʘ`(xx%(=LNĀ٥ h iNJ  ^.,"6%4ڄ)R 0 ɿ+++++N)YDfnI0C3<-`Lق% % T8 ˍX $g$ݾBȽ', ;ЦD%8 pȘ) h` @@@ ^/0A q0pǥؒ 2ΡcA Da Y #n,0O PLBwqs` 1RD~  ]mjr`m: 0@ .`i J !dd d"3RPY$ƹL+u+Iq0D ~LWSDޭ`^0́  I W! LTD ^d&3/L)(f*C%Ƞ(P0`x 0  ƉRaбiLGriDМ Л @L#[¥!YY'5 q ``"Jj<04ˏ G ) @$a` bƅ0d{^1$0!H㱱^(cWh`!P#H"iF(k! qD,f4ˠ,V:58?!i ߦL,e& n}RY0Q| dT7[G6WdAUG~3 1h)D`&vGLt e y3Qr`- JJ # L^2\~1!e91XZi !8xgxq蛠xzugZi0ng/Z< P>@ (`WH 4ɁAH7@;<Z膄 AIHDL ɛ+Bbr  GL6=@-䅐  j dXq bbt! ^3#$Ab  0𼌹%.3 <6[$7* &0µc0gmf޵:*р yʤ#BQ'"ܐ+)aj0,*#A$KR  Jѽ8#0</)+)~l&1= x8}4 6!M=(30"`!%?#^4P-P](`! ݁ЈAūƫ@f0 ԍ D@ HBЍ4 );W!BL7B D{\Тt@!^!  _0|0Aéڣx,LīHHH0ԭ/0!1FŁh{0JDyH h Μ(*} $ֱMn0 ]^@ H\ͱ->$|ًg<``PFQWBVLT̀) H kLh Dq2!^:$~F ='0Ƭ:Lih3i 0q7 Y* + y1sL 0يL "c kɠ wbŸ[`l0 + L膅 cv j=#-'ht tp&݆hL@| 䄐 ALvA@H8PH q  L:e#hDh^;0FLl)03qne٧N(0,JȨD&LF yj;< ƌ߳d0"hǷ dAL^#!K?CCمבԤ`U4څw՘6 ;01`! )L)ޥS @Ő ^Œ,( ^<#L'&Łޠ g$ /`ۢB89IiƅB>8Cސ̑@ĔȄJgeŘ嘗eFƙ۔FgR>>d``舘 i%K#30Kڢ[\@J @҆|^=E@08>eS!idO(LH  F% 0'#(:-LW ,Q 5Q"ZQ(&U**&ވ􇐀RƁ >ә628-h,())LkGk*kFkj 9fk4` <06P'w]}{xw\X5:L@:<k|`SJNgFJJh2I|vԂ i 2擻@iƄԌuYh0trӇ`:@eԈ eՏd@ LC0߀R87@5 ل1[T4[FY V ML풀퓥ѥ#2M)Ɔ^?1, D \0C*]8ca@~Mz ] ^#CLH7{hX L*iA± '= -` a $60xWxXxLa ^H8e jcfp c$4h& X^@lui4ΒiPl Lpx aL@i T40h Jj&B "Z \  4 6`6^`[¾O'4O f7I2Ȁ(ʣ&H̜й mw DL5;X8CE:1-2-A3TP0:EN!ma/1a=23M)0 zM =M PA^CY& v7 $ 1ifKpDyOF *ThJxo"T<"0"Z? ` #f!.l%x"ted$I y@\\ \ \ \e\ \e\ \:\ _\ \ u\ _\J ^\i ^\i ^\i  \Y\ \ `\8傅僅 u\H \*h*^D `恥`L\\`[Z? ` #f!.l%x"ted$I y@\\ \ \ \e\ \e\ \:\ _\ \ u\ _\J ^\i ^\i ^\i  \Y\ \ `\8傅僅 u\H \*h*\,"hh  L # } 1    S S) R i    m m    B bi  bFi  ͥm m  з  i,i-I238 I,i,-2i(23Ϡ  "! !LiLL LΓL im 8 bG ȱ w       -  LL      8       ; <  ; <  8   ܭ ) L H_Hl    )       ) `   w  `hhbHHHl .``   `N@   Y`8       ; <  ; <  8   ܭ ) L H_Hl    )       ) `   w  `hh`K|| | |`0 9|ɛHi9DIi|E BLVATARI Serial Interface 1.0 by JBW "R:" installed (default=600,n,8,1)Unable to install "R:"|pq  p p `qqRqqLqq!q+q)qqfJ pqrxqqXҌҭqҥ ҍ ҥ*) qȌq*)`,rxqqX)Ҡ0ӌө4Ӡ`H,hlqҥ,qCJ; PqqNqL.qq"Jqq0nqL.qqqqq,r04P qNrq"qrh@fKq80Nr* өqh@,qɛ~ $V,r0,q`rNr`,q! q0  ``~``$,q0,qP`qq``prq+ppqhqpp4 rr p iحi8ԅЩpՅѠ8fϥr |l$pc0'fL҅Α r @`) ʐA) :҈p҈rЦѐ$0ֆ8֑ rLrґ rL@r`rrqq``prq+ppqhqpp4 rr p iحi8ԅЩpՅѠ8fϥr |l$pc0'db B`}Now loading...New fantastic Turbo 2000F system. Cracked by MADTEAM. H     w  *E' h `+",#-.-`++,`$"%#Ɗ$e**)M$%`jN&-"+#,*$ %!ߥ$%$$-ʝ-ަ+,++L. U? UI0 UI1 dp dp2 S*H Sh*"?? {010?< S" JJ!߰J װ2 U3ʆ23`m U ?`. U? U? ? {L U)?3***)jO1 U0$800%1102 {23򰹺. U? U? {L U2 U33 {2{Q` 10320213L% &ө j v{P؅1011L b 2 3 0E   ojP0' { 2{2 L L` 2 3 4 545  `e24e3{`  { {llL\Hԩ4Ӎh 莒 1` `H"{'<{'L I,0,6ӈ X 02e11 jQ X 01ЙЕ{G'{G{ G fI&0`L $I0͠L233{Dc ؅3e552435` LF Lll   (` lGOSIA !`,,,  H {O@Xh`{DXx){fh` \  υ DLjRR&R {),/2&( LLF{l ;  L(`{L{%}(C)Copyright by MUELWarszawa tel.334091{)RAWA SOFTSzczecin{!72849Autor:Romuald Gonzewski ({TURBO GONZO){2000 FL-LOADC-COPYR-RUNP-PILOT (1)B-BASIC OFFI-INFOMEM = BUF{PressjS T to ON {0BAD FORMATERR ~Enter filespec;or '#'{9CLEAR buffer{S{SYSTEM{SAVEFILEDATA OR BOOT AL FfH hii   BDEHI Ɉ 4 m j{LpL*jT+]`8[Ls B{TL&Սx234524355 ` , , , ,,,,,,,,LHHJ xwJhLs{ {{VmpJ HHJ`. !5I` jUҩЭ{#{`L!0 H h0 L:`{: 0,{A6 fI&0`$I0ҠL! j0H{U0 {DRHe11h 6 1  6XL1 jI{{ {H{Ԉ S02{U{Q S01 ,`i"jVԩ<Ӎ`H23 Hs23%H`%he24e35LLԅ1Щ4{Kxi`{GL7 23 O0&LFм &L23 & &{ z{Zɩ23L2 jW{L -LD^ LR2{l O{2  {{{{ 0<{ i0&{3{9LFLLn{< 2 5`H{{Ha {8b{ { h O{Dr{EW S`-jX͍)`H{5 {:`8`/m/ x ^S #{FNPLL{Cq 0& X J #Ɉ ɀ ,L#{F#{Iws{LC0LFXeYeɼ ``{0jY 0 FLz 4LF` YRX Z[{TUL{F<4LC{D?D{LL{DR_N 𩔍{D/L L1{ 8fDE8HIHI ɎU jZL,fBEDH{{G%{D`8` #0`$0Ɉ{H){h {DEF*) *` 0 4 0,{3`fF{({!0{8 *  E`H |h{&{Hj[{ @TL. T/N E&CCDDuC L?E0`{&stt `{čU23 OLb{R ?{D LE`s tNF)`ɀޭst L {Vp{V 0ũ t8fFЪCH{8ss{j\th`stDuC`CDCȑCȱ$ɛC ` C `{ T2IӭjHh 'Lb *+Lv%Щ+ؐ  8Lp8H{L|H {DL~h`Ԅ  |j]I |L {{> | wHq`,JK{I{S{g{g^DL:p`: x{, ^1$: )ibU,ULF y '{T{j{ł{m 4 4`ɍ ٯ0 HH`LRj^BPICH 2 yH{DI)_`\LQ`g{g^DL:p`: x{, ^1$: )ibU,ULF y '{T{j{ł{m 4 4`ɍ ٯ0 HH`LRhN X ꐩ y  ϐ' y  ϐ L L X l 0  `  $穛 L LH h L !8``)a{)_A[`8` BJn`DELVHH BHIhLVDevices installed in system:Press a key to select device, thennext key to change its name.ꛛThanks for using DevNamer !~~~~~~Wojciech PalaczK:8``)a{)_A[`8` BJll LhL~LLLLLL)LLLLhLLLLLLL&LAppBAJ|W!0X0X`ԌQRRREQRRRRRRRRRRREQRRRRRRRREQRRRRRRRRRE|aux||sector||next||length|ZRRRCZRRRRRRRRRRRCZRRRRRRRrbRCZRRRRRRRRRCQRRRE$)3+$$QRRRE!|QRRRRRRRRRRRWRRRRRRRRRRRE|RRRRRRRRE||0rzemyslaw#zerpak|||||2adoslaw.arel|&|||||||||presentnewfantastic|&||rc|||||||2 |&||||WWQREQWEQREQREWQEWW|||||||||||||AC||||&||||||ARD|ZRE|||||||||||||||||||||||||&||||ZXCXXXrdZRCZRCXXXX||||||&||||basedon*"73oftwork|||||#(!/33oftware|&|||||||||#opyright|&|||ZRRRRRRRRRRRXRRRRRRRRRRreRC|RRRRRRRRCZRRRCZRRRCQRRRRRRRRREQRRRRRRRREQRRRRRRREQRRRRRRRE|status||file||mem||old|ZRRRRRRRRRCZRRRRRRRRCZRRRRRRRCZRRRRRRRC̩XYކφ҆ֆ؆ӆ׆يʝ|} {  rfBӝDEJHIK VBˍ {@  h ńнƄ „LlքQ}ԇ0K: uɛ ~ Í$ ) h Lք  `~`AH΍S SA rg kh`1~` A L)~~ڹ}~)`څҥۅL)ʎ@ B V0X̚ ɟ `l ˩ u&()ҥ)ԅҥՅө A kLH u ) چ .L k uɛrh? I &H88F5ҕh$0 ҕ k ӉLQ A0 u ) چ .LQɅЩѥH hiH hiH h .`L800 H Ӊ ӉhL hJeϩ{Щѩک~ H uɛ Ӊ Ӊ Ӊ ӉL Iꐹ &HJrie~%~h$0 ~~ ӉL80 0 H ӉhL he u~ L I,JP Heh~ ӉL u*}~օҥ)ӥ) hLԇ~}ЩѠ҅ Hh Lԇ u|~؅ҥ)ӥ)rj hL0Γ Iܩ, Q`ŭa/ɡ@)?' <LV䭶ILLjI@  L_ ~  ~ )ehh L eiʈ`00:0A0G0 a0 g 80`8` 0rk 08``)jj0 L| >L|0 L| Ӊ``eܩiݦ0i(ܐL܅` ~JL ӉL ~JL L> ~8$L 8 L > ~rli$iL0 i L ة̅ЩѢЈ ``~`) 3,%$  ꢀ  YЩј  0`!Ҏҥʈ`΍ҍ Ӎ υ©R@ rm9~ k` .ЩѠ}~JJ (ЩѠ&=~ ~~ }~)  L| )`҅إЩѠ& ) ~W 8а`i(А`JI`Ja,JPiM `?Щixک~۩͠rnڪ{Ј8аѠi~ ʈ8 а8`))`i`( `H) hJJJJ iЈ`& &HKK Јޅ (K0L'I`/2!!.$%/2!$#34!,$!#-03"#48!4!8$%8./0483438!3,2/,,322/2348,$8$%#).#"2+349,$9#09ro#08")4*3224)243*-00(00,00(!0,!$%94!9).9).8"0,"-)"6#"63"##"#3".%"%1#,#3%##,)3%)49!#,6#,$3%$  8   9 8  9  8!   9'JHJLkJJJ)JJJ))JӐ+ ZJHJLkJJIȹIZJHrpJLkJ͠fJJ*з) p Ep]pǥHH ɀɊhhLohh Ep]pȑȥ   >p tLSo t sL@o thhL'pr~~`~``Lau $`8` s PLt΅ s s jsdriveis@@@@[ s i i t)?0 & iLpۥש iLpΩ t` s s r t s jsatasciiinternal[ s    sJJJJJ i)8 u)? 51L>qL>q 8 L>qL>qi L>qLt s s js[H   s   h u)?r,LsLs Ls! rLq rLqQ Lq07 0HJh H)h rLq)h rLq 0Lq  r rLq`` ``H r)eh`h`HH&&hehe&`hh`LtrLqLq Ș  Ș" Ș  Ș$  Ș  $   Ș   Ș ^ ^ Ș hh s@ [ sLws t sLws sl`&ee&`XХYј tLseЅА` tsȱs srȱȱsȱsʬsБЈ tse߮ss ssRЈQЬsE tsʩ|Ьs tRsЈZЩCs` tȱ sȱȱsȱʬsЈ tse`i(А` e iis`rLЅIТ 0ILuЊL`^pjnknqpnkp>in`~~`T`  `s` tȱ sȱȱsȱʬsЈ tse`i(А` e iis`pweeee f o8` f oL%򪈱HhH fh oL%``$'<<<333f333f~~|fl0fF68of;0p88pf<<~8~~f< <|~ ~p|n<806<66<0~~`0 0`<~ <~f<ppvv>vv~vvv>>n<v|xx|vppppp~cwwwfv~~~vvf<~v~v8pp8 yq>cooc>vvvvv>vfvvvv<fn><~~~<fvvvv~x`x`~<~~<8~~8~~<~~<<>n>``|vv|nn>nn>|pp|vvv8888|<pp|x|v<>fkcv|vvvvnn>|vppp>p<|>vvvv>vvv<ck>6v< x~8~<~~<~x|nf8x8!#L#d# e#  ө@ԥXLt ӥҩ@X V$ ԩxҭ)(`JKvBDEL,! BL,!  BD EHIL,!DBEPHIL,!"H"IBDEm"L,!BD EIH" ,!00 "ʝI"H ,!0 " ""(` BDvE"H"IeL,! BD EIH " ,!0!"˩I"H ,!`L!K: |!" `!0"ʎ" ! z!(` z! d# e# "Dʆc # L ! tv z!L#ȹ#mƝi`f o>fAoD%Uf^od% z!R " ͭ Č Č Č Č0"@v8(i:0(ˠ ! " ! "ݳ0 " t z!LDLIPRSQNK:DžȔ̼Free Memory: 0000 / 0000 / 00* ! !02ɛ B z! ^!! 0C !0  !LLz!Directory - File spec.:D1:*.* z!] !"@vL !0íɛ",Ȍ"ɛL© ^!L!IJԅ""" !0ڭ"-"$Π !Lz!Bad load file. !Lz! 1Į"" Ͱąą !0"ęę""""@"I J "I"J֠""v" !)L"-"""ؠ"LL"Lz!"LŹɛ ƭƍIƍJtL!"@/ـ*%INL!L Ͱ"@ęęI">L!Init installed.Init revplaced.Load - Filename(,Init)Parameter error.Disk- or File-error!Out of Memory.Power-Packer/Linker 64 kByte-Version ! ir oad nfo ack est. ave uit ew ! z! "L!System error - press a key to Quit !"8"""""""" včĭ" Ččĭ" Ččĭ" Ččĭ" Ččĭ" ČčĩL!From: to: len: HJJJJh)Ģ`0123456789ABCDEF !"~"L!""y"@"y""""iyy 1Ĭ"vCH@ Čōh ČōŬ"iiyy@ !LťiyyL/ "]"V"-"L">VƢFƝ)ƈ"Hȱ Č2ƍ3h Č4ƍ5Ʃ( !L[ Autoruvn:Init at:L""" " Čƍƥ Čƍƥ Čƍƥ ČƍƩӠL!Info - Memory location and typ:- no file(s) loaded -Size of all files is: / ƹ8`Ɲ ƍƭ ƍ`y !""vLŬ"D8"" ̰L0Ȭ"@"LjȠ?@A@A"о"Hj""Hj"yyh8"h"m"@m"A"LNǬ"@vii ̩""""LN`Packing ...۠ !""LŬ".@ ̩""""`Restore packed data ...2 !"" !`IJƩƹɛS,򩛙Ȍ", ƌ"LvƍIƍJ"Ʃƹɛ, ưӹɛ l#iwƭiƩ""N"y"@"y""Ɛ #"ư"Ɛ "Ɛ XL!"tL!" !' ! ^!0A""""Ԡ"ƍ"ƍ"vƍ"ƍ"" [" 1(L ["0"""Ԡ""0"i""@""" "@""m"""m""""" [" 1(0"" ["L"a@@"""v˅" [""" 1(0 ["0 0"""LpʭI J L z!L!File saved!"""""" ƅƅ IJ [" !(`New Vector Jump (Init/Autorun)- Not packed -Saving ...Save - Fvilename(,Autorun(,Relocator))Decruncher address in use!Decruncher at illegal address! ! "Y.L!Press 'Y' to Exit ..."`נ ! "Y`"`Press 'Y' to Clear ...Ʃ l#L   8Хv۹ 8`J) _A:5  ͊ ͥ LY͠ LY`````"ČĢ(ČĢ(ČĢ؎ČĬ""F}vĹ}ĝĐ Lý8ĽĐ"дĐ Eİ=HĝhĽHĝhĽHĝhĽHĝhŢ8`Đ Đ8`čĽčĽčĽčĭ"@`v!tKLB(pppB`ppBA*"7&ont$esignerversionD0:L<}>~\^̘_|+"*)-=2CTh~/?.] R V_ ǙIUOYKL.FNTI/O error ...!File nameDiscard changes?nί0 Iz`k˔딙 +Kk ʢ/@C9/01ʍԢ˩ ֘ ٙL LLҹMө 0lH, p ԍ h@ u`˩΅z˥e΅&`H hJJJJ) 0–` @/@ԭCl ֛HJJJJJh ̊ `$9)HEheЩi`lЩъH ܗ ޗh`Щ` ̈LŘ̈LŘ̙` ) e)` 0Ωϩ̅ˠzFːTΈ̢ ܗ ֛````` J(*̈`J (j̈`Hh`Hh`ÏLŘ̅˩j̈LŘ̢ ~DD̈LŘ8jQ̑̆` H ֘zIi)нQ'gL@ VԘHS 藠  ƛ Vh` Z K0 ֛󩛙K ݙ@ɛ=~)$0 HȑЈha{I K ֛𶈩L`˹K0:z.iHTiU$0K[R 0J BDHEIC 0 ƛɐii` V ݙYyhhi̩i͠ȱ ֛%˙ ` B ``i``ziHTiU$0K[R 0J BDHEIC 0 ƛɐii` V ݙYyhhi̩i͠ȱ ֛%˙ ` B ``i``xmVm8 Qm* Qm* QmJ Qm Qmm]mRmSm`L5p@B0BpB7ApOgO?B`B`BA"B$2)-6%V~abcd"efghijklmnopq rswxyz{tuvW %%2350?:*8=9 %# /(>- .+!!"#$%&'()*+,-./0123456789:^~  ?QMEV!2%9/5(Bُ9%3B ZNC\() #/-5.)#!4)/.%22/28iC(!SE V00).'&>-$4/^B C l E:F/2-!4 $)3+B2!p-#(!/3,/!$%|2ǡ./.%,).)Z C  tQ3',Ɂ-%$5-~$/5"1]]iCy|D0!3%7!8)4C  (?@HIJKLOHPRSTW!W4)'(~ '20xhX#/$ %094%+-)&)%A$*!'%2 ^-%-,/6"5&&B ZNC QMEV) .3 4$%3R4!/.)83+aC UU aaa3/52#%kjmx B VBI ~2%0/,!*9%3./BNV( /BMV=αBNɇƠLBƩP/  ALz i"01|њԩЩ@  A" 08"@`~"xBdPZ ) ;L7H h HIh')o  >/ , | amVL>>L.(LA2ɧڀHζL! 0`)B<.}?  3ʓŽ9Pl8`ͧ`w"L~ 2  + HV ٣R"S Ө' הL딩6 <`7)&/4( # ڔq<8 }?c<2Ω)2ׅaI`^`@`  Ӵ A2:IЀE8r~H#>8}F H ix9оbHB .2 h ``(L < ЅI` Ph  L I LO Rmة Эkn8 mL$ @0i~79BЩ`BNpt@1j^op‡ 󋊙Lh` ̥`e㖎?>\0 iL˖ ᖠNjӐέp(ytMslRZ<B  ʢ26U쐢~LB y RLb{ JQ`H)h)`8 T` `^`bČ Hϕ }In[(t^d4dL  L ` `!L0 #B$)*Ax7?@< s Y ! ϕ`#$ ͖~d h  RPz hhLNӑ,IA #v`gɊi{  t :痖LΧL͘ irL MY,S 3L Y^Q #I  Lx41ɰQQPL͘ ~ʽpL I` i S.^ hě`T URZXYL Vdebjhi Ϯ7<}?D0@ L9`3 ܧU -,+ ͗Li LA ȟ`d/ש њ ~ 0o1A  h"yl ioТ`9: a;tL׼ ᠒``X75:& nI`歖?򙎛iڐ󭏛8ZH Hth`` fTjB\)/ n @u~`m@d \SVHEThOOi( 9`,p+*-K +-9aο D(L!  `0BL`m/`颌 @L ܧ  7HI *ϕhLԍDKE"L+<%Ǣ/P( ``` @ ~;M~~"L TpUWP଍^mH/ 󬎛I`  uL;!"x 8ʎ `"`h a h U H#&@ Y!3mLQCCICCh  D;~"~ h TPKU0I G0{2L|Q~~J03 ;LQi0eeʊ A䕕 L `hh hw aT;;  UU9qk  GX@DLϕ`cilJ)Ϣ1T^6S-@cLS #`  ~`7?8}<9ˣA@޸Lsm /___ ;_8_jpTvΊLj㖎䖬. NLJϊ LÕaB8hH ` @B4? f 'TI( L6!~"@ %&f (#$.-JN" q VQ~P< @PNR-ttǭzAz 5n E ZS6XY@mw bbn8YʍDDvJ4:R ۟!"! U k*距ӠӷE`P`٩ϩ J` @J/017I{p덩~ 3m>m[["[[[;~@ ,`]୛ `hh hJ7 HH\8I R LNL+D,ƫс( 윭E`LҀe YN@~   ZY90U;O?No Room !H ݨhJ) iʥ```i誠 ~ +"PQs`L )#) ))@@/I`i 4L"6⎭ +"` I AAL򪎁LA  ҨR V͘Ώ_Ο` ai   h7L=D~1R@@Lm날n nY 3;LQб$ɀ iX歂pL(-xTP'V'aahhLM` `B-@HIJKLOHPRSTUWWXRYJL}~[fl~| 0l68of;0x|ې8|8ޑa~]~y| |C`|P8~<|l<~/~ơSTo`0߿|6nn`>p*DPQ!~+<<Ǒa "a||0Ql80l ff< *0~ 0 xx6c ~8x0 z ~%|qa<84lPɑ7/||p~Ql8ϻ8Qᱜ!$0~O}8|p|8>~> 00 `~Dl}mmAl]( pqm@ 6<.ǔmQ00<6å m!g0 8lx~`2ul gaa4RNcfg f ތ Pp0x~~\00`&m!$0~O}8|p|8>~> 00 `~Dl}mmAl]( pqm@ 6<.ǔmQ00<6å m!g0 8lx|ZCOP D.BAT,M:D.COP QA.COM,M:=COP SUP*.*,M:=COP DJP*.*,M:=~\00`&m!$0~O}8|p|8>~> 00 `~Dl}mmAl]( pqm@ 6<.ǔmQ00<6å m!g0 8lx~> 00 `~Dl}mmAl]( pqm@ 6<.ǔmQ00<6å m!g0 8lxF@`@@``^@ Gi(oЩԩЩ>/01&  9 ߁ ˂  u ـ  сЩ@ҍl )` !`I q @``^`^` ` с Т 3  փ  @@ փ L >` с Т 3  փ 8   ƠLI` `G ]J)=5`i#I i0`xG QW ^4>DK L  L  L3 L 愥P"Ƅ` Ƅ`Ɔ `憥Ɔ`) ) )?`` `  䂦 Lс`2350?:*8"3DUfwA ԍХ@E: ,oad 3ave #olors %xita{I `H shJJJJ) 0:i`DEB JKLV B V(`iDȘE FBHȱILV䅐iDȘE FBHȱI VHȽIC`F`GHFH`C BHI VH h`K:pp7O@OPO A@`Pp @`h`K:pp7O@OPQXԦ`  *'  } *(L `(  L l pL[,L] C i0  p  gފދLh ( LD 0  C  C  \i +$+0'; $(%)  b L[C `D P^߰")(݃   $DDG@НL]S")M T H0 G$Ș݃ b 8$}$%8(() T `$E0(0)8`$GE` P Li 8GD }L[ PH >iJ ;  yyB ' |L[ "E( % H$ H#`L]B  0 G LO<  ( d lH۪!A3 A  jA !B EIC Y$E0 F  < 7 JN8Ndâ!,P h0ʠJd,6 ' r/ $ ɛ ` '  L[  l }-        L[L  }  '  L[   p  ` g  l }) g ' L[) ̠,L]T-0 |LM N݃:ː6UV LM N L(TU N,)MLL[IL3GDIɛ ɜ DI  , JȊGм  G I) GȦ=*GG ȄI1200820I H1E 1h0hIGI2ȢI`FE 0ɛ rɛ$ l '蚦TTUVD`M L$:;Pyȱ$` r  iȱ$/:ȱ$VWyA**⩀ / `$***? mL]-+ȱ$ɛ m* ? g. $0f.?'@ wAsTt/` 0: gL  `$0`j`& CpCi s L0JCܢj? I#𴽎F ގМގ& & 0 C4 08L`0   | 레L] EGȽGȽG | E` 8,  }EG)݀G)ȱGȱG`"!L] l!i栠$8  (IƭIp  h,g+j? 8 ii(Lq)! S S0$