@L}5 _$% l0$)$$Hȱ$ UhL" `e$$%`$%`  R@P!( L(1   Y I`  d  Ld M * @  $ % CC$$)%1 Udߥ$9%: !0 S$% DD˙`  }J)Lr d M * @  $ % CC$$)%1 Udߥ$9%: !0 S$%} DD˙`  }J)Lr J  ((  p L ()   J}L= ( L 0q A    IB JC;? D W } LL  ` W )LA!  ߰")-݆ p" } $G@LL 08`Q")<2Q0 -G$Ș݆ UL# ; p8(()(0ʥ)NQ` }$GȘ݆LU )L ݆ L GȘ ݆LL )W>Z   HH)H }p h  hyhy D L> L JJ    ! LA*` BF }7'8  M HN H` 8 Z  \LdJJ!"! GFE@F (!L }EE !E^ ^ E E7EȩEdE/EȩE  D } .L }  ;F d  ;?F7F? ( .   Z D LL d } . D  L    p  E` , d)  D L) 0BM݊L݉} ML  N݆ L NLML [ TEqEHȱEqEh 0Gȹ G} HLL GɛL  LFREE SECTORS G) *Gȩ GȽG GȌ*jj >G} C8jJ3j2CD( C202C ԠBX` N 1? l LlD:RAMDISK}.COMLu L1 L ;LHL  T`  `1  ɐ     `TU  } L ? .  t`GBJ ~DEHI B V0dV!}QDEHI VF9 ,0 ,0 s0hhL  L` H hDHEh"}DEL8HI4 0 HI,0 0  9 .G VLO#},0 L4*IJ`llD1:AUTORUN.SYSNEED MEM.SAV TO LOAD THIS FILE.D1:MEM.SAV J y08 B|DEHI$} V0 0`B;DEL`?<0LV`@ʆ v s? F0Ξ05: [ BDEHI%} VY8 B V  @  /DE `E:D1:DUP.SYSERROR-SAVING USER MEMORY ON DISKTYPE Y TO &}STILL RUN DOS B;DE J  (` 9 V⪍ ઍ  -'}LLu ÝDEHILV 9 .l 9 .l  `` s$B BH(}I|DE V BLV nB,DE JLV B V BLVDEIʩ BꭝLu  } 3E:}DISK OPERATING SYSTEM II VERSION COPYRIGHT 1984 ATARI CORP.A. DISK DIRECTORY I. FORMAT DISKB. RUN CARTRIDG*}E J. DUPLICATE DISKC. COPY FILE K. BINARY SAVED. DELETE FILE(S) L. BINARY LOADE. RENAME FILE M. RUN AT ADDRES+}SF. LOCK FILE N. CREATE MEM.SAVG. UNLOCK FILE O. DUPLICATE FILEH. WRITE DOS FILES P. FORMAT SINGLEL !N',}#"&))9(&*)/h)''-&؆莟R'S  vL/ˢ L }Insert DOS 2.0s, type Y Λx -}DEfHI 1莏#q! @ y0ɛ8A0,' ȅ 1 1ild! 1L!NO SUCH ITEMSELECT.} ITEM OR FOR MENU! 0 .z:*{}.|{ 1 0 0JB 18L%|DL/}%DIRECTORY--SEARCH SPEC,LIST FILE?[# 0 0 &|D3" 1L!NOT A DISK FILEN !B 1L!E# 1 !BD0}ED:}:1BJ|DE 1DEBHI 1 h0ߢ 0.1}  0?詛 1 y0YЛ 1 ;#L" ;#L! BL1TYPE "Y" TO DELETE...DELETE FILE SPEC2}COPY--FROM, TO?OPTION NOT ALLOWED736 FREE SECTORS COPYING---D1:DIRECK.COMl# 0|D .L/%#3}##JB|DE 1BHID#E 1#0: B 1L!#͑### B 1#c$0SY4}S1}:## # # .#Ƚ# # 𩛙## 1,#PD#ELJ- <.BJD#E 5}1 1HH 0hh|DL%1}:̳# L% #D#EL% 1 0 . .0O% 1L!WILD CARDS NOT A6}LLOWED IN DESTINATION 0 <.|K}N 2 FORMAT. t* 5) 1L!`) 0NΞ 0 L1) 1 L!BAD LOAD FILELOAD FROM WHAT FILE?) 0 ?}0#B 1L!WHAT FILE TO LOCK?) 0 0$B 1L!WHAT FILE TO UNLOCK?DUP DISK-SOURCE,DEST DRIVES?TYPE "Y" IF OK TO US@}E PROGRAM AREACAUTION: A "Y" INVALIDATES MEM.SAV.FE! +L1   `*  70 2 2A} 0.* 1 y0 0)INSERT BOTH DISKS, TYPE RETURN^, 1 y038逍 N, 1L! ,B}C, t*  Lx+, 0 ^, 1 y0 , ,0,0 ,L+ ,I0 ,Vǭ0C}Ξ, 0 }, 1 y0C,ШC, 0K'!" H H 'h h Lx+!EF 5L1L!D,I,HhD}` NOT ENOUGH ROOMINSERT SOURCE DISK,TYPE RETURNINSERT DESTINATION DISK,TYPE RETURNE}`  `8 rL1`-* 1P* 1 y0Y`hhL!NAME OF FILE TO MOVE?- 0 0|DL% <.F},^ 1 70 0 .@L# .BJ 1  DEHIB V L1 ,} 1 70,L.  G}JB|,#P#DE 1 HI BDEHHII 1 B 1 ,^ 1 70,0La- B V,#PH},^ 1 70 0L#L!-* 1P* 1 y0Yj383}mm ݭI}}`8}``|* ? ɛ,`|:-)| / 1L!`DESTINATION CANT BE DOJ}S.SYS0 0H{ 24Δ 28/L!/) 2 Π 2 0 ξK}hAΞB,0 J 1 BDEHI,HÝDE 1HIHIDELSAVE-GIVE L}FILE,START,END(,INIT,RUN)O S0 1`BDEPHI V` S0H 1 L!M}0 0 1L~0`PLEASE TYPE 1 LETTER,0`hhL! 70 1L0L<1 ,;ɛ7,"ɛ:ݦ1ݥN}A"D|ݤD|ȩ:|ȩ|ɛ,,(/+.ީ1 1,ɛ`轤{NAMEO} TOO LONG B VL!` L1I H1EΝDL1|mDiE` V0`8d/8 i:222 1 LP}!ERROR- 138ɛ+,' 20*.. өr2 1``2TOO MANY DIGITSINVALID HEXAQ}DECIMAL PARAMETER800 0 8 00`,0'D800 H,ɛh`2L1NEED D1 THRU D8uR} $( RS> Can anyone tell me where to find some source dealing with archive RS> detection? I need to be able to determineT} what archival method was used RS> on a file regardless of the extension..Yep.BTW: I cut it out of a source I made it foU}r. I should compile as is. you mighthave to "USES" dos and/or CRT.----------------------------= CUT HERE =----------------V}---------------------$)Type ArchiveType = (ARJ,ZIP,UC2,LZH,UNKNOWN);Function GetArchiveType (Name : String) : ArchiW}vetype;Var F : File; Buf: Word; StrBuf : String [3];Begin GetArchiveType := UNKNOWN; Assign (F,Name); FileModX}e := 0; Reset (F,1); If IoResult <> 0 Then Begin Write ('Unable to access file - '); WriteLn (Name); Exit;Y} End; BlockRead (F,Buf,2); If Buf = $EA60 Then Begin GetArchiveType := ARJ; Close (f); Exit; End; If BZ}uf = $4b50 Then Begin GetArchiveType := ZIP; Close (f); Exit; End; If Buf = $4355 Then Begin GetArchi[}veType := UC2; Close (f); Exit; End; BlockRead (F,StrBuf[1],3); StrBuf[0] := #3; If StrBuf = '-lh' Then Beg\}in GetArchiveType := LZH; Close (f); Exit; End;End;const BSize = 4096; ]} $( I/O Buffer Size $) HMax = 512; $( Header Maximum Size $) DLM^} = #32#179; HexDigits: array[0..15] of char = '0123456789ABCDEF';type MEDBUF = array[1..4096] of char_};var DISKNUM : Word; $( Disk # - offset to Disk Info $) WVN : Word; `} $( Working Volume # $) DIDX : Word; $( Files Display Index $a}) VIDX : Word; $( Volumes Display Index $) AIDX : Word; b} $( Archives Display Index $) CIDX : Word; $( Compressed Files Display Index $) c} ADX : Word; $( comPressed file Index $) RES : Word; d} $( Buffer Residue $) N,P,Q : Longint; ASZ,USZ,FSZ : LongInt; $( Disk Availabe}le, Used, Free sizes $) SEQNUM : LongInt; $( File Sequence # $) C f}: LongInt; $( Buffer Offset $) FSize : LongInt; g} $( File Size $) CH, CH1 : char; DEVICE : char; $( Disk Deviceh} $) BIN,BOUT, BWORK : ^MEDBUF; F : File; SNAME : String; DATE i}: string[8]; $( formatted date as YY/MM/DD $) TIME : string[5]; $( " j}time as HH:MM $) X1,X2,X3,X4, X5,X6,X7,X8, X9,X10,X11, X12 : string; DISKNAME :k} string[15]; CMD : string; $( DOS Command string $) INDENT : string; l} $( Report Indention string $) GARB : string[6]; $( extraneous devim}ce id $) PRIORAN : STR12; $( Prior Archive Name $) DirInfo : SearchRec; n} $( File name search type $) SR : SearchRec; DT : DateTime; PATH o} : PathStr; DIR : DirStr; FNAME : NameStr; EXT : ExtStr; Regs : p}Registers; Temp : String[1]; BUFF : array[1..BSize] of Byte; IB : InfoBuffer; q} S : string[11]; SNAME : string[12];Var I,J,K : LongInt;(**************************** ARJ Files r}Processing ***************************)Type AHMain = record $( ARJ Headers $) s} HeadId : Word; $( 60000 $) BHdrSz : Word; t} $( Basic Header Size $) FHdrSz : Byte; $( File Header Size $) u} AVNo : Byte; MAVX : Byte; HostOS : Byte; Flags : Byte;v} SVer : Byte; FType : Byte; $( must be 2 for basic header $) w} Res1 : Byte; DOS_DT : LongInt; CSize : LongInt; $( Comx}pressed Size $) OSize : LongInt; $( Original Size $) SEFP : y}LongInt; FSFPos : Word; SEDLgn : Word; Res2 : Word; z}NameDat : array[1..120] of char; $( start of Name, etc. $) Res3 : array[1..10] of char; {} end;Var ARJ1 : AHMain;procedure GET_ARJ_ENTRY;begin FillChar(ARJ1,SizeOf(AHMain),#0); FillChar(BUFF,BSize,#0); |} Seek (F,C-1); BlockRead(F,BUFF,BSIZE,RES); $( read header into buffer $) Move (BUFF[1],ARJ1,SizeOf(AHMain)); FSize }}:= 0; with ARJ1 do begin if BHdrSz > 0 then begin I := 1; SNAME := B40; while NameDat~}[I] > #0 do Inc (I); $( scan for end of file name $) Move (NameDat[1],SNAME[1],I-1); SNAME[0] := Chr(I-1); } FSize := BHdrSz+CSize; if FType = 2 then FSize := BHdrSz; if BHdrSz = 0 then FSize := 0; }end; $( if $) end; $( with $)end; $( GET_ARJ_ENTRY $)procedure DO_ARJ (FN : string);begin Assign (F,FN); Reset (}F,1); C := 1; GET_ARJ_ENTRY; $( Process file Header $) while FSize > 0 do begi}n Inc(C,FSize+10); GET_ARJ_ENTRY; $( get file info $) if FSize > 0 then begin } with ARJ1 do begin FSplit (SNAME,DIR,FNAME,EXT); if Length(EXT) <= 0 then EXT }:= ' '; while Pos(#00,FNAME) > 0 do FNAME[Pos(#00,FNAME)] := ' '; F := Copy(FNAME+B40,1,8); E }:= Copy(EXT+' ',1,4); SIZE := OSize; RTYPE := 4; D_T := DOS_DT; ANUM := ADX; VNUM := VDX; } end; end; $( if $) end; $( while $) Close (F);end; $( DO_ARJ $)$(------8<-------------Snip------}---------8<------------Snip------------8<-------$)$($I-$)UNIT zipviewu;(*/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\}/\/\/\/\/\/\\/\/\/\/\/\/\/\*)(* Unit : Zip View Date : March 23, 1994 *)(* By : John }Shipley Ver : 1.0 *)(* } *)(* Credits : Steve Wierenga - ZIPV.PAS found in SWAG - Got me started on the *)(* zipviewu cod}e since ZIPV.PAS was fairly easy to read unlike *)(* some other code I had seen. } *)(* *)(* Tom Guinther - ZIPPER.}PAS found in ZIPPER.ZIP (1989) available *)(* on my BBS "The Brook Forest Inn 714-951-5282" This code helped *)}(* clarify many things. The zipper code is probably better than *)(* this code and well documented. } *)(* *)(* } PkWare's APPNOTE.TXT found in PKZ110.EXE *)(* } *)(* This unit is offered to the Public Domain so long as credit is given *)(* where credit is d}ue. I accept NO liablity for what this code does to your *)(* system or your friends or anyone elses. You have the code, so }you can fix *)(* it. If this code formats your hard drive and you loose your lifes work, *)(* then all I can say is "Why }didn't you back it up?" *)(* } *)(* Purpose: To mimic "PKUNZIP -v " output. (v2.04g) *)(* The code is pretty close to }the purpose, but not perfect. *)(* *)(* De}mo : *)(* } *)(* PROGRAM zip_viewit; *)(* USES DOS,CRT},zipviewu; *)(* BEGIN } *)(* IF PARAMCOUNT<>0 THEN *)(* BEGIN } *)(* zipview(PARAMSTR(1)); } *)(* END; *)(* END. } *)(*/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\\/\/\/\/\/\/\/\*)}INTERFACEUSES DOS,CRT;PROCEDURE zipview(zipfile: STRING);IMPLEMENTATIONCONST hexdigit : ARRAY[0..15] OF CHAR = '0123}456789abcdef';FUNCTION hexbyte(b: byte): STRING; (* Byte to Hexbyte *) BEGIN hexbyte := hexdig}it[b SHR 4]+hexdigit[b AND $f]; END;FUNCTION hexlong(l: LONGINT): STRING; (* Longint to Hexlong *) VAR} n : ARRAY[1..4] OF BYTE ABSOLUTE l; BEGIN hexlong := hexbyte(n[4])+hexbyte(n[3])+hexbyte(n[2])+hexbyte(n[1]); END;}FUNCTION lenn(s: STRING): INTEGER; (* Like LENGTH, but skips color codes *) VAR i,len : INTEGER; BEGIN len := LEN}GTH(s); i := 1; WHILE (i<=LENGTH(s)) DO BEGIN IF (s[i] IN [#3,'^']) THEN IF (il) THEN REPEAT s := COPY(s,1,LENGTH(s)-1) UNTIL (lenn(s)=l) OR (LENGTH(s)=0);} mln := s; END;FUNCTION mrn(s: STRING; l: INTEGER): STRING; (* Right Justify *) BEGIN WHILE lenn}(s)l THEN s := COPY(s,1,l); mrn := s; END;FUNCTION cstr(i: LONGINT): STRING; } (* convert integer type to string *) VAR c : STRING[16]; BEGIN STR(i,c); cstr := c; END;FUNCTION tch(s: STRI}NG): STRING; (* Ensure 2 Digits *) BEGIN IF (LENGTH(s)>2) THEN s := COPY(s,LENGTH(s)-1,2) }ELSE IF (LENGTH(s)=1) THEN s := '0'+s; tch := s; END;FUNCTION b2attr(a,g: BYTE): STRING; (* Byte }to Attribute *) VAR attr : STRING[5]; BEGIN attr := '--w- '; IF (g AND 1)=1 THEN attr[5]:='*'; } (* Encrypted? *) IF (a AND 1)=1 THEN attr[3]:='r'; (* Read Only? *) IF (a AND 2)=2 TH}EN attr[2]:='h'; (* Hidden? *) IF (a AND 4)=4 THEN attr[1]:='s'; }(* System? *) IF (a AND 8)=8 THEN attr[4]:='?'; (* Unknown at this time *) b2attr := attr; END;FUN}CTION w2date(d: WORD): STRING; (* Word to Date *) VAR s : STRING; BEGIN s := tch(cstr((d S}HR 5) AND 15 ))+'-'+ (* Month *) tch(cstr((d ) AND 31 ))+'-'+ } (* Day *) tch(cstr(((d SHR 9) AND 127)+80)); (* Year *) w2date := s; END;FUNCTIO}N w2time(t: WORD): STRING; (* Word to Time *) VAR s : STRING; BEGIN s := tch(cstr((t SHR 1}1) AND 31))+':'+ (* Hour *) tch(cstr((t SHR 5) AND 63)); (* M}inute *) w2time := s; END;PROCEDURE zipview(zipfile: STRING); (* View the ZIP File *) CONST lsi}g = $04034B50; (* Local Signature *) csig = $02014b50; }(* Central Signature *) TYPE lheader = RECORD (* Local Header *) si}gnature : LONGINT; (* local file header signature *) version, (* vers}ion mad by *) gpflag, (* general purpose flags *) compress, } (* compression method *) time,date : WORD; (* last mod file time and date} *) crc32, (* crc-32 *) csize, } (* compressed size *) usize : LONGINT; (* uncompressed size *) } fnamelen, (* filename length *) extrafield : WORD; } (* extra field length *) END; cheader = RECORD (* Central Head}er *) signature : LONGINT; (* central file header signature *) version : WORD; } (* version made by *) vneeded : WORD; (* version needed to extract *) } gpflag : ARRAY[1..2] OF BYTE;(* general purpose flags *) compress : WORD; } (* compression method *) time : WORD; (* last mod file time *) } date : WORD; (* last mod file date *) crc32 : LONGINT; } (* crc-32 *) csize : LONGINT; (* compressed size *) usize} : LONGINT; (* uncompressed size *) fnamelen : WORD; (* filename} length *) extrafield : WORD; (* extra field length *) fcl : WO}RD; (* file comment length *) dns : WORD; (* disk number start *)} ifa : WORD; (* internal file attributes *) efa : ARRAY[1..4] }OF BYTE; (* external file attr *) roolh : LONGINT; (* relative offset of local header *) } END;VAR z : INTEGER; (* Number of files processed counter *) totalu, } (* Total bytes that were compressed *) totalc : LONGINT; (* result of total bytes being compressed} *) hdr : ^cheader; (* temporary cental header file record *) f : FILE; } (* file var *) s : STRING; (* archive filename string *) pe}rcent : BYTE; (* Temporary var holding percent compressed *) numfiles : WORD; (* N}umber of files in archive *)CONST comptypes : ARRAY[0..8] OF STRING[7] = (* Compression Types *) } ('Stored ', (* Not Compressed *) 'Shrunk ', } (* Shrunk *) 'Reduce1', (* Reduced 1 *) 'Reduc}e2', (* Reduced 2 *) 'Reduce3', (* Red}uced 3 *) 'Reduce4', (* Reduced 4 *) 'Implode', } (* Imploded *) 'NotSure', (* Unknown at this time *)} 'DeflatN'); (* Deflated *)FUNCTION seekc(VAR f: FILE): BOOLEAN; VAR }curpos : LONGINT; (* current file position *) buf : lheader; (* Tempor}ary local header record *) ioerror : INTEGER; (* Temporary IOResult holder *) result : WOR}D; (* Blockread Result *) BEGIN seekc := FALSE; } (* init seekc *) curpos := 0; (* init current file position *) SEEK(f,0); } (* goto start of file *) BLOCKREAD(f,buf,SIZEOF(lheader),result); (* Grab first local h}eader *) ioerror := IORESULT; (* Test for error *) WHILE (ioerror = 0) AND (buf.sign}ature=lsig) DO (* Test if OK..continue *) BEGIN INC(numfiles); (* Increment number of f}iles *) WITH buf DO (* Find end of local header *) curpos := FILEPOS(f)+fnamele}n+extrafield+csize; SEEK(f,curpos); (* Goto end of local header *) BLOCKREAD(f,buf,SI}ZEOF(lheader),result); (* Grab next local header *) ioerror := IORESULT; (* Test for er}ror *) END; IF ioerror<>0 THEN EXIT; (* If error then exit function *) IF (buf.signature=csig}) THEN (* Did we find the first central header? *) BEGIN seekc := TRUE; (* Found first} central header *) SEEK(f,curpos); (* Ensure we are at central headers file position *) END; END; VAR }curpos : LONGINT; BEGIN numfiles := 0; (* Counter of Number of Files to Determine When Done *) z := 0;} (* Counter of Number of Files Processed *) totalu := 0; (* Total Bytes of Uncom}pressed Files *) totalc := 0; (* Total Size after being Compressed *) NEW(hdr); (* Dyna}mically Allocate Memory for a Temp Header Record *) ASSIGN(f,zipfile); (* Assign Filename to File }Var *) $($I-$) RESET(f,1); (* Open Untyped File *) $($I+$) IF IORESUL}T<>0 THEN (* If we get an error, exit program *) BEGIN WRITELN('Error - File not found.'); } HALT(253); END; IF NOT seekc(f) THEN (* Skip Local Headers and goto first Central Header *) BEGIN } (* If we could not locate a Central Header *) CLOSE(f); (* Close} Untyped File *) WRITELN('Error - Corrupted or Not a ZIP File.'); HALT(254); } (* Exit Program *) END; WRITELN(' Length Method Size Ratio Date Time CRC-32 '+ ' Attr } Name'); WRITELN(' ------ ------ ----- ----- ---- ---- --------'+ ' ---- ----'); REPEAT FILLCH}AR(s,SIZEOF(s),#0); (* Clear Name String *) BLOCKREAD(f,hdr^,SIZEOF(cheader)); }(* Read File Header *) BLOCKREAD(f,MEM[SEG(s):OFS(s)+1],hdr^.fnamelen); (* Read Archive Name *) s[0] := CHR(hdr^}.fnamelen); (* Get Archive Name Length *) IF (hdr^.signature=csig) THEN (* Is} a header *) BEGIN INC(z); (* Increment File Counter *) WRITE(mr}n(cstr(hdr^.usize),7)); (* Display Uncompressed Size *) WRITE(' '+mrn(comptypes[hdr^.compress],7)); (* Compr}ession Method *) WRITE(mrn(cstr(hdr^.csize),8)); (* Display Compressed Size *) percent := ROUND(1}00.0-(hdr^.csize/hdr^.usize*100.0)); WRITE(mrn(cstr(percent),4)+'% '); (* Display Compression Percent *) } WRITE(' '+w2date(hdr^.date)+' '); (* Display Date Last Modified *) WRITE(' '+w2time(hdr^.time)+' '); (* Dis}play Time Last Modified *) WRITE(' '+hexlong(hdr^.crc32)+' '); (* Display CRC-32 in Hex *) WRITE(b2}attr(hdr^.efa[1],hdr^.gpflag[1])); (* Display Attributes *) WRITELN(' '+mln(s,13)); (* Display Arc}hive Filename *) INC(totalu,hdr^.usize); (* Increment size uncompressed *) INC(totalc,hdr^.cs}ize); (* Increment size compressed *) END; SEEK(f,FILEPOS(f)+hdr^.extrafield+hdr^.fcl); UNTIL} (hdr^.signature<>csig) OR EOF(f) OR (z=numfiles); (* No more Files *) WRITELN(' ------ ------ --- } '+ ' -------'); WRITE(mrn(cstr(totalu),7)+' '); (* Display Total Uncompressed *) } WRITE(mrn(cstr(totalc),7)+' '); (* Display Total Compressed *) WRITE((100-TotalC/TotalU*100):3:0,'%'+mrn(' }',34)); (* Display Percent *) WRITELN(mrn(cstr(z),7)); (* Display Number of Files *) CLOSE(f);} (* Close Untyped File *) DISPOSE(hdr); (* Deallocate} Header Var Memory *) END;END.unit ZipView;interfaceuses dos;type barray= array[1..8192] of byte; ZipPtr=^ZipRec }; ZipRec= Record version_made: word; version_extr: word; flags: word; comp_method: w }ord; last_mod_time: word; last_mod_date: word; crc_32: longint; compressed_size: long }int; uncompressed_size: longint; fname_length: word; extra_length: word; comment_leng }th: word; disk_num_start: word; internal_attr: word; external_attr: longint; rel_ofs: } longint; name: string[12]; Next: ZipPtr; end; bptr = ^barray;const ZipMethod: array[0..9] of } string[15] = ('stored ', 'shrunk ', 'reduced-1', 'reduced-2', 'reduced-3' }, 'reduced-4', 'imploded ', 'unknown ', 'unknown ', 'unknown ');var totall }ength,totalsize,numfiles: longint; firstzip: zipptr; lineout: string; outPtr: pointer;procedure LoadZip(filename: string });procedure DisplayZip;procedure DisposeZip;implementationvar f: file of barray; buffer: barray; addr: longint; buf }ptr: word;$($F+$)Procedure CallProc;inline($FF/$1E/OutPtr);$($F-$)Function NextByte: byte;var i: integer;begin; inc }(addr); inc(bufptr); if bufptr=8193 then begin; $($I-$) read(f,buffer); $($I+$) i:=ioresult; bufptr:=1; end; ne }xtbyte:=buffer[bufptr];end;procedure LoadZip(filename: string);var b: byte; f2: file of byte; fs: longint; LastZip,Zi }p: ZipPtr; Bytes: Bptr absolute zip; a: integer; sr: searchrec;begin; firstzip:=nil;$( assign(f2,filename); reset(F2); } fs:=filesize(f2); close(f2);$) findfirst(filename,anyfile,sr); fs:=sr.size; assign(f,filename); reset(f); addr:=0; i }f fs>65535 then begin; seek(f,(fs div 8192)-4); addr:=addr+((fs div 8192)-4)*8192; end; $($I-$) read(f,buffer); $($I+ }$) a:=ioresult; bufptr:=0; b:=nextbyte; repeat; if b=$50 then begin; b:=nextbyte; if b=$4b then begin; b:=nex }tbyte; if b=$01 then begin; b:=nextbyte; if b=$02 then begin; new(zip); zip^.next:=nil; if fi }rstzip=nil then firstzip:=zip else lastzip^.next:=zip; lastzip:=zip; for a:=1 to 42 do bytes^[a]:=nextbyte; } zip^.name:=''; for a:=1 to zip^.fname_length do zip^.name:=zip^.name+chr(nextbyte); b:=nextbyte; end; e }nd; end; end else b:=nextbyte; until addr>=fs;end;procedure OutLine(s: string);begin; lineout:=s; if OutPtr=NIL t }hen writeln(s) else CallProc;end;function format_date(date: word): string;var s,s2: string; y,m,d: word;begin m:=(dat }e shr 5) and 15; d:=( (date ) and 31); y:=(((date shr 9) and 127)+80); str(m,s); while length(s)<2 do s:='0'+s; s:= }s+'-'; str(d,s2); while length(s2)<2 do s2:='0'+s2; s:=s+s2+'-'; str(y,s2); while length(s2)<2 do s2:='0'+s2; s:=s+s2; } format_date:=s;end;function format_time(time: word): string;var s,s2: string; h,m,se: word;begin h:=(time shr 11) an }d 31; m:=(time shr 5) and 63; se:=(time shl 1) and 63; str(h,s); while length(S)<2 do s:='0'+s; s:=s+':'; str(m,s2); } while length(s2)<2 do s2:='0'+s2; s:=s+s2; format_time:=s;end;procedure DisplayHeader;begin; OutLine('Filename L }ength Size Method Date Time Ratio'); OutLine('------------ ------- ------- --------- -------- ----- - }----');end;procedure DisplayFooter;var s,s2: string; average: real;begin; OutLine('------------ ------- ------- } -----'); average:=100-totalsize/totallength*100; str(numfiles:12,s); str(totallength:7,s2); s:= }s+' '+s2+' '; str(totalsize:7,s2); s:=s+s2+' '; str(average:4:0,s2); s:=s+s2+'%'; outline }(s);end;procedure DisplayZip;var curzip: zipptr; s,s2: string;begin; numfiles:=0; totallength:=0; totalsize:=0; Di }splayHeader; curzip:=firstzip; while curzip<>nil do begin; s:=curzip^.name; while length(s)<14 do s:=s+' '; str(curzi }p^.uncompressed_size,s2); while length(s2)<7 do s2:=' '+s2; s:=s+s2+' '; str(curzip^.compressed_size,s2); while leng !}th(s2)<7 do s2:=' '+s2; s:=s+s2+' '; s:=s+ZipMethod[curzip^.comp_method]+' '; s:=s+format_date(curzip^.last_mod_date) "}+' '+format_time(curzip^.last_mod_time)+' '; str(100-curzip^.compressed_size/curzip^.uncompressed_size*100:1:1,s2); s2: #}=s2+'%'; while length(s2)<5 do s2:=' '+s2; s:=s+s2; Outline(s); totallength:=totallength+curzip^.uncompressed_size; $} totalsize:=totalsize+curzip^.compressed_size; inc(numfiles); curzip:=curzip^.next; end; if (numfiles=0) or (totallengt %}h=0) or (totalsize=0) then begin; outline('No valid file entries detected.'); end else begin; displayfooter; end;end; &}procedure DisposeZip;var curzip,savezip: zipptr;begin; curzip:=firstzip; while curzip<>nil do begin; savezip:=curzip^ '}.next; dispose(curzip); curzip:=savezip; end;end;begin; OutPtr:=Nil;end.$( -------------------------- CUT HERE (}-----------------------------$)$( TEST PROGRAM $)uses zipview;var s: string;begin; write('File to Zip-View ? '); rea )}dln(s); LoadZip(s); DisplayZip; DisposeZip;end.4BB@ԭЍ`,lHHHl"lH) ߍҥl H-Il8%,LIҥm# +}hlMh@h,l,lhhH)HlHh@@ 6 LMMM ,}NOEO%NТ U O¥B)L­д ԍ5 ԍ41ԭ0ԭ/ԭoЭll8l)ԢXEO%N -} ԭԢ U R¢ U&)+>)2+2m-+ ɟ ɃɄɔ)? ҍL+ .}JJJJy{)xzЍЍҝpt ҢxJJJ}*|ʈl$l&l(` /}` - -`hhh@x/j 'D" x=\>ɓ?%ȩxآ qĩRF 0}F# ) s F өD")\=>%? 1}R'S)(0b%Kĝ.ĝ 5X)өLPర  )ĩBHD 2}ĝE J VL nƥj 9D )ll l`P0C@ESK BOOT ERRORE:,0 3}­j l ĭ ӥLe))ө(I I`}`ӝ 4}Нԝ<өө8Ӎөөө<Ӎӭӭө"ҩҍҩ(ҩ `67  5}, < L n e k Pn8ɍ9 )I` )3L;ƩS S0!   Y >ƭ`@BC 6}  iiA  Y >ƭЬ Y )ư ; `BiCill =ĊDE BHLV 7}LzRLS )'Lƭ> } ũ  `lF`1F!@PW 8}S  Y`S :ǠF! :Ǡȱȱ򈈌 ``3 9} Ǡ9 Ǡ/E &*ȍȍE3 Ǡ 3` Ǡ, Ǡ"Emm`l :}l3 sJjK J}K}mEHmh8Hh Hh h ;}h`8H3m6m7h6LPm6m76m6676m6`m6m76}6`H3jhm6m7 <}6`mmm6ǒȒȒȒmmȵȵǕǩD)LHHѭɀ ɑ H`BHG =}H hH qhB`jHH ʍH hHhh@LɠLɠLɠLɠ Lɠ L H`G=! >}H` H HLM`LMBHB HH ɐ LhhLʠHhBLMM`hh̀@ .M  .L ?}.@ L\L%-%-/294%342/-2!-+%9"/!2$4%34[17% @}2495)/0 ܀!3$&'(*+, :8#6".- H30!#% A}"!23(3("\6/)#%qJiI`j)MLĭ)LJ J L6` B}fffffff>`<|fl0fF68o C}f;p88pf< 80 0 ~~`0 0```nf>ff~fff~~f<flxxlf`````~cwkccfv~~nff>0fff>6lvv~n ~`|`~<``<0< G}f6<>f>f f>f>0<>f>f>``|ff|<```< I}>ff>>ff>|``|fff8<<``lxlf8<fkc|ffffff>|f```>`<| J}~ffff>fff<ck>6f< x~ 0~ffT 0Whh01!/`HHz) 梥) , ԎfMhh@)*& ) M}) 恥РXLrPpppppG[QpppN0pkQpppppN0pppBQA4Q3%,&4%34-%-/29!5$)/ 6)35!,+%9"/!2 N}$!,,4%343BV BV/2BVpppF0ppppppppppppQ@BQBV/2BV4/%8)4pp O}ppF0ppppppppppppQppppFkRpppK1 pF0pQ!5$)/ 6)35!,4%34ˠ P}Q P yW _W _W 0ɪU S ,T sLR S$0ɪU T ,T LR T ө80%ɀ D T Q} S ,T TL S T 接оӍ@)Ӎ@ ӭ@I)㦩Sө@80ɪU T S R} T橥åLR 0TLUSő,,SpI 2TpIѐPP 0TiƒƏе`PT0 0W) S}#0` 0W)'0`HI=8080h%8080`< Ԉ`H ЭЩM XL PG)3%0)s(0 T})/+0) dҩh@ yWR P _W _WrU攦 0TLRH) _WhH)@  U}_W _Wh)?!H,K QWH!0hѕI U 2T U 2TLT U) ULT _WҩR0S0ȩ2m04n0мR +( =9- V}05-?( dҩ`ҍҍҍ` yW+R P _WJi 0P112p22 WW Vi W} ,T[VHhVHVuVh VhҩҦV 2T U榦 0T日LULU 0TLTQ[D<-5HTNHNHNHNT X}H<<1100202101101ViƝƣ`  ?>ABLp@CDHHHD"0H Y}>~|@0!1110b0"1101HWWWWhHŠšh`Wʨ䅞䪹aʝ Z}0ƞ`WWWW`, *2 Ҡ0,*+ /05) 6#"8:[ .-H2%9471&($'3!0> 0$0$0( [}00 0 ۰9 Hڢ D ۰!H hم٦0hL`.Eh+-X \}7H ۰H ehe ۥ Iihe+- ې08H*hj ۥiD ܰ  ` ]}Qک0()?(E$8? p .L L٩` p 8逮0iE ܄ 8 ^}-+ ܢ8 i H h ܭ0 ii ܠ-`ԅՅ D&uԕةBLܩ0fCb8 _}@?i ZڰS ZڰF ZڰAee2 ei$  iiԥ`8`Ԡ``&& `}`I))8Դ0 >E0uذLܩ :ܩLܢ8LܥI8ՕL a}E> 8@8e08 ܥ)0 LڥJJJJ0 L bץL D`8` 8i@0 LNۢՕ 8 b}ؐ ٠8ؐ е bL ۤȄ` `80 `H ې.+-h8` c} . ېh`ՠ66666&`ڢ.`)q` D`ʈ d}e` ԕ` 8JJJJ ܵ) . ` 0` .0ʽ` ۥ)`8` e}E)F)`ԅ ( ۥ) 4 D`ߠߠyʈ``` f} ݦ - ڰ(ii fڰ  0````ԕ` q}F?B%DOS SYSB*)DUP SYSBSARCHIEVETXTB*OS_XEGS ROMB\MPT_24_1ASMBBBASIC_GSROMB4VMPT_24_2ASMڰԅ)8@0&j ٥ԅX ݢ `ک M @ ڥ#ji@0 ڥ ݢ r} (`8`==W3>Tvb>2b'?h`06?2'A?%C4Vu?f'70P@U??CBH@ ݦ fڢ ݢ ݦ `ڢ s} (`0L8`@ ) (ۢf ޢ ک r @ݢ ڢl f ݩեI t}i $ԅ fڥ (`@"wf?P?IWQpIG?9 Wa9cU? 0d? 9`?BXGB?7?()q?D>DIh8E?h u}yx? )D?@ (1V?wD3331??xS4ԅ8Lfffffff>`<|fl0fF68of; v}p88pf< 80 0 ~~`0 0```nf>ff~fff~~f<flxxlf`````~cwkccfv~~nf z}8pp8?ww<~~~< {}x`x`~<~~<0~0 ~ <~~<<>f>``|ff|<```<>ff> |}>ff>|``|fff8<<``lxlf8<fkc|ffffff>|f```>`<|~ }}ffff>fff<ck>6f< x~ 0~<~~<~x|nf8x8-I,Ln-Ln ~},,LnLyLLLLL3LrLLL\LL LL#LLLLL#LPLLLɕɚɟɤɩL  }(L"r`@۝FGiɀ``/.)Lp@ " qLp )0 }"%*H_vL Lp' "  ,&-'Lr Lp#  'ۅ&Lr } 氥 .@ Lr"%*Lp () /Lr /0A$ ") /ɛ L ۥ") /0 /ɛ󩉅# $ } Lr"%*Lp ()/($/  (0")/ɛ()ۥ") Lr#.D$E% @ /. }#` ",-*稱,ȱ,-,`()(()`$%$`$%`.8H((I))` #`-H,H.`8$10 ! }!$ ! 8` ` %JKJqJ&JKJ V O- `mm8 } N Ln 08 ݐH  h LYO@@ʎj }LEǮ}` 38` Q LY&@JKJȱJ` }8`JK V8( ]'JȭJJKJJ  (8`( JȑJqJȭqJJ VˠJ`Ji } KilLr ];JHKHJKDJqJ VJȱJhKhJJJ`hh8`L3ɩ<ө<ө2A`B`L } (ҩmi:; < =:2i4354 ?ΜL"  / ? },p? ?00ν0L B0`?>2i435< 0>A!CE000Ɋ }?0`0 1;:21 ҥL: `H232435; 1 ҩ;  hh@2 e1i1L; :) }h@1890 @<ӥL9`0`Hҍ 00) 08 109hh@ Ҡ2e1i1232435 }ޥ<<Щ82m43m 5`2̍ҩ b 0 4ӭ Lb 0 4ӭ } = 0<L*`-2 ` Ҡҍ2ҩ% LV-2 2ҍ ҩ% ҩ(ҢA }Ҭ`ҍ`%Ң`jj)?j)`,  7` .  . 8 8 } b8}mJJJ 8)i 8}}`|08|`b}`Lx%) Ԥ   }[XL')0 Ԥ ҭҭҩҭ2ҩU2ȑ212i23i3X` <ө<ө0XL*& }'x \X`CT euxd   4dd //__aaaa a ''OOAAAA A   }((PP@PPP(( 00`` 0 @ HH"0"0h }h8`hh8`hh`$! ` %&'.M$L`HH)  hh`0.@ 0 )0hh' }H&H`Lj@Qyz`a`+)*)*WLT̍k/Lҩ@,n č }ԩd{j`WMQje( zo)?g jjj)g z odXeY } z x]de edheiA pfW  9*)3n  ij p` pB ief-f-W n } "QQ pW& ]j8 p pQ @ pQ pY pX pQ @ pp pp pd0e1p pde0hȭ1h }L `*) R" //L j L d-FoJ`} L ɛ aL L  }TZ****))I Fo L-PI1dPd` ]W I LL&LȩL`,n@ԩn΍L }b k4TlUm Lɛ bcq VL\  lTmUkk L0 Lb a LLbld b   <  } Lb i- de Lb*Joe| бy0LɀɁ I }ɂ  Ƀ@ИɄLɅ LLɉI LɎɊ| `L*ɒ Ɏr&|@a }{ |L# < ML򩀍`TʆTL TTͿUU0RSULUUSRL dddeej } cmTVl`cR!UR # UST  L UR e Xc ]LcL>cLJ L } cH hc } }H }hL Wλ0TL L dheicH hcTͿ hڠh  WL8 RU L QTT8 [ix( < } U * XL ` @Ln L0+dL0d8dee dL` p p`fʆeT }&e &eeTdeWmd&eVJUjfedeeXd^eeYe_%Uefo`}cUVUW} SސV }ԥW,cQ }" aL eTix ]} L} VTW${T)#}ɛ llΝ8뭝TL8 }ptpquq`W 'SSWT*( VV}U L` @Lhh{LbL_]^`H)nh }JJJ`...` #n` #nI=`Tix #%n8`W ****))M`jʆigh؅fT'h }f8hf(higiL Ziy( <0TTix(LfhdgsaL }J:K\^OPUI_|VCBXZ$#&%"![ ]NM?REYTWQ()'@}FHDGSA {   ` } }HHӭ ImɃIm )&= Ҫɟ I)?.M+//h }hh@!ϭkk п)Lm/͍/HMO-N ԍh@L̍`+>*) >`? 0)4 }Ӧb* \*=Lw` 0̍ҩҩ` h4Ӧb \**=`?03= }=`R ?0= Lz?`==` |=``0<`=  |0 |L@b }}ЩР@b} ˘`%H$H` `#@R>  Y` }UW ?`@ `S   Y0 D` `HA! Khɛ`  } LY Kܠ`@!S@ ``W+N(DS  `Nܢ } ŋ`8` Le查Š饟š`PXBB }p, *-----------------** Player MPT 2.4 ** Jaskier/Taquart **-----------------** jsr init, with:* A=0, Y=musix }- initiation* A=1 - stop playing* A=2 - play song, X=nr. position in song* A=3, Y=volstb adc #0 sta }volsmp+2r4 dex bpl r2 inc pozptrr5 ldx #1 lda typsmp cmp #2 beq r6 ldx #3r6 lda typsmp cmp #2 bne r7 cpx kansmp }beq r8r7 jmp dzwiekr8 lda audzer,x and filtry,x beq r9 ldy #$28 lda (addr),y clc adc numdzw,x jsr czest sec adc p1}pom,x sta freq+2,xr9 dex bpl r6 lda #3 sta $d20f lda audzer+1 and #$10 beq w1 ldy numdzw+1 lda bsfrql,y sta freq }lda bsfrqh,y sta freq+1w1 lda freq sta $d200 lda freq+1 sta $d202 lda freq+2 sta $d204 lda freq+3 sta $d206 lda vol}ume ldx #$ff ldy typsmp cpy #1 bne w2 ldx kansmp beq w3w2 sta $d201w3 lda volume+1 cpx #1 beq w4 sta $d203w4 cpy }#2 beq w6 lda volume+2 cpx #2 beq w5 sta $d205w5 lda volume+3 cpx #3 beq w6 sta $d207w6 lda audzer ora audzer+1 o}ra audzer+2 ora audzer+3 ora oraaud sta $d208 rtsfiltry dta b(4),b(2),b(0),b(0)dzwiek lda adrinl,x sta addr lda adri}nh,x sta addr+1 ora addr bne d0 sta volume,x sta audzer,x jmp r9d0 ldy licslp,x cpy #$20 beq d3 lda (addr),y sec }sbc adcvol,x bit sprvol beq d1 and #$f0d1 sta volume,x iny lda (addr),y sta przech iny sty licslp,x and #7 beq d4} tay lda akcadl-1,y sta akjmpz+1 lda akcadh-1,y sta akjmpz+2 lda przech lsr @ lsr @ lsr @ lsr @ lsr @ ora #$28 ta}y lda (addr),y clcakjmpz jsr $ffffd2 lda #0 sta audzer,x jmp r9d3 lda p3max,x beq d4 dec p3lic,x bne d4 sta p3lic,}x lda volume,x and #15 beq d4 dec volume,xd4 ldy #$23 lda (addr),y sta audzer,x lda trnlic,x clc adc #$25 tay and} #3 sta trnlic,x dey lda (addr),y adc adcdzw,x sta numdzw,x jsr czest+2 sta freq,x lda p2lic,x beq d5 dec p2lic,x }jmp r8d5 lda branch,x sta p1jmpz+1p1jmpz bpl * jmp typ0dz brk jmp typ1dz brk jmp typ2dz brk jmp typ3dzczygrc dta b}(0) jmp typ4dzzapisx dta b(0) jmp typ5dzzapisy dta b(0) jmp typ6dzsprvol dta b($10) jmp typ7dznewdzw lda #0 sta adc}vol,x ldy licptr deynew iny lda (addr),y cmp #$fe bne q0 sty licptr rtsq0 cmp #$e0 bcc q1 lda maxptr sta pozptr }bne newq1 cmp #$d0 bcc q2 and #15 sta tempo sta zegar bpl newq2 cmp #$c0 bcc q3 and #15 eor #15 sta adcvol,x bpl }newq3 cmp #$80 bcc q4 and #$3f sta ilespc,x bpl newq4 cmp #$40 bcc q5 iny sty licptr and #$1f sta numsmp,x asl @} tayainslz lda $ffff,y sta adrinl,x inyainshz lda $ffff,y sta adrinh,x jmp newdzwq5 sty licptr sta przech clc adc }poddzw,x sta adcdzw,x lda typsmp beq n9 cmp #2 beq n8 lda numsmp,x cmp #$1f bne n9 lda przech sec sbc #1n6 and #1}5 tay lda (adrsmp),y sta adrs2+1 tya ora #$10 tay lda (adrsmp),y sta lensmp ldy #1 ora adrs2+1 bne n7 ldy #0n7 s}ty czysmp lda #0 sta adrs2 sta adrinl,x sta adrinh,x txa asl @ sta wsksmp stx kansmp rtsn8 cpx #2 bcs nbn9 lda ad}rinl,x sta word lda adrinh,x sta word+1 ora word beq na-1 ldy #$20 lda (word),y and #15 sta p1lsb,x lda (word),y a}nd #$70 lsr @ lsr @ sta branch,x iny lda (word),y asl @ asl @ pha and #$3f sta p2lic,x pla and #$c0 sta frqwsk,x} iny lda (word),y sta p3max,x sta p3lic,x lda #0 sta licslp,x sta trnlic,x sta p1lic,x sta p1pom,x lda adcdzw,x st}a numdzw,x jsr czest sta freq,x cpx kansmp beq na rtsna ldy #$ff sty kansmp iny sty czysmp rtsnb cpx #2 bne nd l}dy adcdzw+2 lda frsmpl,y sta smpl1z+1 lda frsmph,y sta smpl2z+1 lda #0 sta lsbmsb sta adrs1 lda numsmp+2 and #15 ta}y lda (adrsmp),y sta adrs1+1 tya ora #$10 tay lda (adrsmp),y sta smpl3z+1 ora adrs1+1 bne nc sta smpl1z+1 sta smpl}2z+1nc rtsnd lda numsmp+3 and #15 tay lda (adrsmp),y sta adrs2+1 tya ora #$10 tay lda (adrsmp),y ora adrs2+1 beq }ne lda (adrsmp),y sec sbc adrs2+1 sta lensmp lda #0 sta adrs2 lda #$8d bne nfne lda #$adnf sta drum2z sta drum1z }lda #$18 sta $d207 rtstyp0dz lda licz and #7 lsr @ lsr @ bcc t2 bne typ1dz lda p1lsb,xt1 clc sta p1pom,x adc fre}q,x sta freq,x jmp r8t2 lda #0 sta p1pom,x jmp r8typ1dz lda freq,x sec sbc p1lsb,x sta freq,x sec lda #0 sbc p1ls}b,x sta p1pom,x jmp r8typ2dz lda p1lic,x clc sta p1pom,x adc freq,xt3 sta freq,x clc lda p1lic,x adc p1lsb,x sta p}1lic,x jmp r8typ3dz lda numdzw,x sec sbc p1lic,xt4 sta numdzw,x jsr czest jmp t3typ4dz lda #0 sec sbc p1lic,x sta }p1pom,x lda freq,x sec sbc p1lic,x jmp t3typ5dz lda numdzw,x clc adc p1lic,x jmp t4typ6dz jsr t5 jmp t1typ7dz jsr }t5 clc adc numdzw,x jsr a3 jmp r8t5 ldy p1lic,x lda p1lsb,x bmi t6 iny inyt6 dey tya sta p1lic,x cmp p1lsb,x bn}e t7 lda p1lsb,x eor #$ff sta p1lsb,xt7 lda p1lic,x rtsczest and #$3f ora frqwsk,x tayt1frqz lda $ffff,y rtsakcad}l dta l(a1),l(a0),l(a2) dta l(a4),l(a5),l(a6),l(a8)akcadh dta h(a1),h(a0),h(a2) dta h(a4),h(a5),h(a6),h(a8)audora dta b($}40),b(0),b($20),b(0)a0 adc freq,xa1 sta freq,x rtsa2 adc adcdzw,xa3 sta numdzw,x jsr czest sta freq,x rtsa4 sta fre}q,x lda audora,x bpl a7a5 sta freq,x lda #$80 bne a7a6 sta freq,x lda #1a7 ora oraaud sta oraaud rtsa8 and $d20a }sta freq,xa9 rtsbsfrql equ *-1 dta b($f2),b($33),b($96) dta b($e2),b($38),b($8c),b(0) dta b($6a),b($e8),b($6a),b($ef) }dta b($80),b(8),b($ae),b($46) dta b($e6),b($95),b($41),b($f6) dta b($b0),b($6e),b($30),b($f6) dta b($bb),b($84),b($52),b($}22) dta b($f4),b($c8),b($a0),b($7a) dta b($55),b($34),b($14),b($f5) dta b($d8),b($bd),b($a4),b($8d) dta b($77),b($60),b($}4e),b($38) dta b($27),b($15),b(6),b($f7) dta b($e8),b($db),b($cf),b($c3) dta b($b8),b($ac),b($a2),b($9a) dta b($90),b($88}),b($7f),b($78) dta b($70),b($6a),b($64),b($5e)bsfrqh equ *-1 dta c' ' dta c'' dta c'}' dta c''volstb dta d'8888888888888888' dta d'667777888889999:' dta d'556667788899:::;' dta} d'455667788899::;;' dta d'44556677899::;;<' dta d'34456677899::;<<' dta d'33455677899:;;<=' dta d'23445677899:;<<=' dta} d'2334566789::;<==' dta d'2234566789::;<=>' dta d'1234566789::;<=>' dta d'1234556789:;;<=>' dta d'1234456789:;<<=>' dta} d'1233456789:;<==>' dta d'1223456789:;<=>>' dta d'0123456789:;<=>?'frsmpl dta b($20),b($22),b($24),b($26),b($29) dta b(}$2b),b($2e),b($30),b($33),b($37) dta b($3a),b($3d),b($41),b($45),b($49) dta b($4d),b($52),b($57),b($5c),b($61) dta b($67),}b($6e),b($74),b($7b),b($82) dta b($8a),b($92),b($9b),b($a4),b($ae) dta b($b8),b($c3),b($cf),b($dc),b($e9) dta b($f6),b(5),}b($15),b($25),b($37) dta b($49),b($5d),b($71),b($87),b($9f) dta b($b8),b($d2),b($ed),b($b),b($2a) dta b($4b),b($6e),b($93)},b($ba),b($e3) dta b($f),b($3e),b($70),b($a4),b($db)frsmph dta d' ' dta d' ' dta d' !!!}!!!!!!' dta d'!!!"""""""#####'*--- inicjacjainiadl dta l(inic0),l(inic2) dta l(inic4),l(inic5) dta l(inic6),l(inic7) }dta l(inic8),l(inic9)iniadh dta h(inic0),h(inic2) dta h(inic4),h(inic5) dta h(inic6),h(inic7) dta h(inic8),h(inic9)init} stx zapisx sty zapisy and #7 tay lda iniadl,y sta inic1+1 lda iniadh,y sta inic1+2inic1 jmp $ffffinic0 lda zapisy} ldx zapisx sta ainslz+1 sta ainshz+1 stx ainslz+2 stx ainshz+2 clc adc #$40 sta aptrlz+1 sta aptrhz+1 bcc i2 inxi}2 stx aptrlz+2 stx aptrhz+2 clc adc #$80 sta t1frqz+1 bcc i4 inxi4 stx t1frqz+2 inx sta j4+1 stx j4+2 ldx #9j4 ld}a $ffff,x sta adrtrl,x dex bpl j4 dec tempoinic2 lda #0 sta czygrc ldx ressmp+1 sta adrs1+1 lda #$ad sta drum2z sta drum1z ldy  }#0 sty smpl1z+1 sty smpl2z+1k2 ldx $d40b lda (adrs2),y lsr @ lsr @ lsr @ lsr @ ora #$10drum1z sta $d207 jsr k6k3  }cpx $d40b beq k3 sta $d205 ldx $d40b lda (adrs2),y inc adrs2 bne k4 inc adrs2+1 dec lensmp bne k4 lda #$ad sta dru }m2z sta drum1z lda #8k4 ora #$10drum2z sta $d207 jsr k6k5 cpx $d40b beq k5 sta $d205 lda typsmp bne k2 rtsk6 clc } lda lsbmsbsmpl1z adc #0 sta lsbmsb lda adrs1smpl2z adc #0 sta adrs1 bcc k7 inc adrs1+1 lda adrs1+1smpl3z cmp #0 b }ne k7 sty smpl1z+1 sty smpl2z+1 rtsk7 lda (adrs1),y bit lsbmsb bmi k8 lsr @ lsr @ lsr @ lsr @k8 and #15 tayvolsm}p lda volstb,y ldy #0 rtsinic9 ldy #0 sty typsmp sty czysmp dey sty kansmp rts*--- zmienneadrtrl org *+4adrtrh }org *+4maxptr org *+1tempo org *+1branch org *+4volume org *+4adcvol org *+4freq org *+4frqwsk org *+4adcdzw org }*+4poddzw org *+4adrinl org *+4adrinh org *+4numdzw org *+4numsmp org *+4numptr org *+4ptrwsk org *+4ilespc org *+4l}icspc org *+4p1lsb org *+4p1lic org *+4p1pom org *+4p2lic org *+4p3max org *+4p3lic org *+4trnlic org *+4zegar } org *+1pozsng org *+1pozptr org *+1wsksmp org *+1kansmp org *+1czysmp org *+1typsmp org *+1oraaud org *+1licz org }*+1przech org *+1licptr org *+1 end(EخȊ z zȩȩ E [ bМ Qک] 򅟅} Ģ ۤ򄨱ɛ$0L Ģ ۩ T Ģ 5ɛȑ @膔7 }ɛ ĢɛК  ܩ8IȢ z Щ $P) 8孨客 $ }L` L`L^ ܩ Щ L` ؐ0 A0Ԅ ĢLĢ 0$ LYU L}Y8eHeHL H H hhHH`hhLۡLѽʆLۡ 0 }ҰşLۡ` `@  LhhHHL `LLL ۥų}ޢ T#iŰ DD Ģ`8` ۥ 裰% ᢥ0 裐 ې$$ 8`$ (ȩ@}҅ҥ򄬥 T M L~8򨢄 zӤ򈦬ʽʈ򈱗  z池$PƬ0 LĢL,}A[`8` ۥ ؐ` ĢȢԑ` ۤ"̩ Ģ Ģɛ " ĢL3嫤`毦򤪱}%).Q h(ei8`Ū߱08§REŧDATINPUԷCOLO,LISENTEҺLEԎI̦FONEXԷGOTϷG}O TϷGOSU·TRAиBYŸCONYCOCLOSŸCLҸDEYDI͸ENĸNEOPELOASAV:STATUCNOTCPOINXI\OVPOKPRIN}ԸRAREARESTORŸRETUR RUθSTOиPOGEԴPUԷGRAPHICVPLOVPOSITIOθDOVDRAWTTSETCOLOܦLOCATRSOUNL }PRINԸCSAVŸCLOAĺ*ERROR- STOPPED+,%5&6(xĜ#%&$' !"*) +8,<!}Dȧ?+:ԧ,+:,+:,Ч#+7,</01 2!3"4E"-".|"-"}ɻ#ޅEE|#} +9S,#+;,Û΢|ijڢڢ@ACB$}=><GOTGOSUTSTETHEΣ<<>ުNOOANĨ<<>STRCHRUSASVALEADATCOPEESIRNFR%}EXLOCLOSQSGABINPADDLSTICPTRISTRI8ee L08ueeeee&}褢 ƚƜ`8IȄ墅8夕奕墅'}`朱`  6ğȱȄ ~La HH`0 Щ LLL]š Š(}` ܩ ЩLei``` ELq El `=Īٷw|ԶԶѷש巴!e l.}L⳩ `)L󩴅 ػ ڳLP: ħ-H h ϺLʹ ͫԅħ ͫԅ?} 0$Ů ŭ ܩ ЩL L bƯ00 WLCei`毤Hɛ) @}h` g Lȱ إ󅕥 ȱȄ µğ` c6 o c7 a L׵ a) > gɨA} aL6 Eƨ إ󅕥 gL a" a Ư" L8 > c=Š) 죰 L樤ħ`hh`B} >L ڪ H # q Ԡ Dکթ@  Ԡ hH qhıȑıȑĦʊȑ` ͫՅԅ hhL^ C}` 𵤨 >>< H & h  ` 0` q ˽L½    0 D}`LP  Lն` LP y gLh 0L[  0 ܩ Щ 0L ׫ԅՅ` ૥E}# ԅ ͫƳ ( >`(Lض Ȅ` z > ąŅ`őŐ  H F} h` zLzĦ``Ƶ`Ƣ౐``䉐䈐`)iG}iТLE`湩 0éL y7 oԩH} 0 gՈ y [L` إ󅕥Lg AT LINE ૥H ׫ H ׫heԨh` . ૥ HI}ҩ ׫hHԝ ׫ H ׫hheԝ` ׫ԅUՅV ૥ԅT` ׫ԅ` ȍ JK )L ׫i)J}I ػLS: ȢL8)@e`H J*K+h LGHFH`L ׺L` ׺`HK} +h `@H ׺hH    ?}i}(i L fhL}`LP   ׺ 8倝偝   󥃅  LHΆ󢻆h ػ `C: M}КH hKJ LQ L H hHH ڪ } hKhJ  QL )L + L1& $LM 3 NLN}1 ͫ ԝL՝M ͫ ԝN%б ׫ԦL Q   L1   N Fɀ 7O}LɈ [L4] LS + C` ͫ`IHEDBLVHH hh L P} ``r `YDAER ԅՅ֦󅗄`` > ˽ $ "  Q} 򤲈ȱ`   L &L8`$)ԩe (ې`)8@0+̪Յ)e)R}e ݦ `F ݢϠ `ڢ ڰ @ݢ F I`U9>`D'RFuCU?b9dYdg@W2S}@?tS)%@)@0)%ԅԢ ޢ ڰ9 @ݰ. ڰ" fڥԅԥ ɠ (T}`8`0?i (۩ ݢ `ڢ ڢ ݢ (ۢ `ڢl ڥ fU}Ƣ ݥ#8@ji@)j `C*-------------------** Player: MPT 2.4 ** the faster and ** smaller ** Jaskier/Taquart **--------------W}-----** jsr init:* A=msx* jsr play - playing music (jump 1/50s)* jsr stop - stop playing opt 6 org $4000*-X}-- strona 0adrtrl equ $8fadrtrh equ $93maxptr equ $97tempo equ $98branch equ $99volume equ $9dadcvol equ $a1freq Y} equ $a5frqwsk equ $a9adcdzw equ $adpoddzw equ $b1adrinl equ $b5adrinh equ $b9numdzw equ $bdnumptr equ $c1ptrwsk equ Z}$c5ilespc equ $c9licspc equ $cdp1lsb equ $d1p1lic equ $d5p1pom equ $d9p2lic equ $ddp3max equ $e1p3lic equ $e5t[}rnlic equ $e9audzer equ $edlicslp equ $f1addr equ $f5word equ $f7zegar equ $f9pozsng equ $fapozptr equ $fboraaud\} equ $fclicz equ $fdprzech equ $felicptr equ $ff*--- programplay lda czygrc bne *+3 rts ldx #0 stx oraaud inc l]}icz lda pozptr cmp maxptr bcc r1 dec zegar beq p1 jmp r5p1 stx pozptrp2 lda #0 sta ptrwsk,x sta licspc,x lda adrtr^}l,x sta addr lda adrtrh,x sta addr+1 ldy pozsngp3 lda (addr),y iny cmp #$ff beq p5 cmp #$fe bne p6p4 jmp stopp5 l_}da (addr),y bmi p4 asl @ tay sty pozsng jmp p3p6 sta numptr,x lda (addr),y sta poddzw,xp7 inx cpx #4 bne p2 iny `}sty pozsng jmp r5r1 dec zegar bpl r5 lda tempo sta zegar ldx #3r2 dec licspc,x bpl r4 lda numptr,x asl @ tayaptrla}z lda $ffff,y sta addr inyaptrhz lda $ffff,y sta addr+1 ora addr beq r4 lda ptrwsk,x sta licptr jsr newdzw ldy licpb}tr iny tya sta ptrwsk,x lda ilespc,x sta licspc,xr4 dex bpl r2 inc pozptrr5 ldx #3r6 jmp dzwiekr8 lda audzer,x anc}d filtry,x beq r9 ldy #$28 lda (addr),y clc adc numdzw,x jsr czest sec adc p1pom,x sta freq+2,xr9 dex bpl r6 lda d}audzer+1 and #$10 beq w1 ldy numdzw+1 lda bsfrql,y sta freq lda bsfrqh,y sta freq+1w1 ldy #6 ldx #3 stx $d20fw2 lde}a freq,x sta $d200,y lda volume,x sta $d201,y dey dey dex bpl w2 lda audzer ora audzer+1 ora audzer+2 ora audzer+3f} ora oraaud sta $d208 rtsdzwiek lda adrinl,x sta addr lda adrinh,x sta addr+1 ora addr bne d0 sta volume,x sta aug}dzer,x jmp r9d0 ldy licslp,x cpy #$20 beq d3 lda (addr),y sec sbc adcvol,x bit sprvol beq d1 and #$f0d1 sta volumeh},x iny lda (addr),y sta przech iny sty licslp,x and #7 beq d4 tay lda akcadl-1,y sta akjmpz+1 lda akcadh-1,y sta i}akjmpz+2 lda przech lsr @ lsr @ lsr @ lsr @ lsr @ ora #$28 tay lda #0 sta audzer,x lda (addr),y clcakjmpz jsr $fj}fff jmp r9d3 lda p3max,x beq d4 dec p3lic,x bne d4 sta p3lic,x lda volume,x and #15 beq d4 dec volume,xd4 ldy #$23k} lda (addr),y sta audzer,x lda trnlic,x clc adc #$25 tay and #3 sta trnlic,x dey lda (addr),y adc adcdzw,x sta nul}mdzw,x jsr czest+2 sta freq,x lda p2lic,x beq d5 dec p2lic,x jmp r8d5 lda branch,x sta p1jmpz+1p1jmpz bpl * jmp typm}0dz brk jmp typ1dz brk jmp typ2dz brk jmp typ3dz brk jmp typ4dz brk jmp typ5dzczygrc dta b(0) jmp typ6dzsprvol dn}ta b($10) jmp typ7dznewdzw lda #0 sta adcvol,x ldy licptr deynew iny lda (addr),y cmp #$fe bne q0 sty licptr rtso}q0 cmp #$e0 bcc q1 lda maxptr sta pozptr bne newq1 cmp #$d0 bcc q2 and #15 sta tempo sta zegar bpl newq2 cmp #$c0p} bcc q3 and #15 eor #15 sta adcvol,x bpl newq3 cmp #$80 bcc q4 and #$3f sta ilespc,x bpl newq4 cmp #$40 bcc q5 inq}y sty licptr and #$1f asl @ tayainslz lda $ffff,y sta adrinl,x inyainshz lda $ffff,y sta adrinh,x jmp newdzwq5 str}y licptr sta przech clc adc poddzw,x sta adcdzw,x lda adrinl,x sta word lda adrinh,x sta word+1 ora word beq typ0dzs}-1 ldy #$20 lda (word),y and #15 sta p1lsb,x lda (word),y and #$70 lsr @ lsr @ sta branch,x iny lda (word),y asl t}@ asl @ pha and #$3f sta p2lic,x pla and #$c0 sta frqwsk,x iny lda (word),y sta p3max,x sta p3lic,x lda #0 sta lu}icslp,x sta trnlic,x sta p1lic,x sta p1pom,x lda adcdzw,x sta numdzw,x jsr czest sta freq,x rtstyp0dz lda licz andv} #7 lsr @ lsr @ bcc t2 bne typ1dz lda p1lsb,xt1 clc sta p1pom,x adc freq,x sta freq,x jmp r8t2 lda #0 sta p1pom,xw} jmp r8typ1dz lda freq,x sec sbc p1lsb,x sta freq,x sec lda #0 sbc p1lsb,x sta p1pom,x jmp r8typ2dz lda p1lic,x cx}lc sta p1pom,x adc freq,xt3 sta freq,x clc lda p1lic,x adc p1lsb,x sta p1lic,x jmp r8typ3dz lda numdzw,x sec sbc py}1lic,xt4 sta numdzw,x jsr czest jmp t3typ4dz lda #0 sec sbc p1lic,x sta p1pom,x lda freq,x sec sbc p1lic,x jmp t3z}typ5dz lda numdzw,x clc adc p1lic,x jmp t4typ6dz jsr t5 jmp t1typ7dz jsr t5 clc adc numdzw,x jsr a3 jmp r8t5 ldy p{}1lic,x lda p1lsb,x bmi t6 iny inyt6 dey tya sta p1lic,x cmp p1lsb,x bne t7 lda p1lsb,x eor #$ff sta p1lsb,xt7 ld|}a p1lic,x rtsczest and #$3f ora frqwsk,x tayt1frqz lda $ffff,y rtsa0 adc freq,xa1 sta freq,x rtsa2 adc adcdzw,xa3}} sta numdzw,x jsr czest sta freq,x rtsa4 sta freq,x lda audora,x bpl a7a5 sta freq,x lda #$80 bne a7a6 sta freq,x ~}lda #1a7 ora oraaud sta oraaud rtsa8 and $d20a sta freq,xa9 rtsfiltry dta b(4),b(2),b(0),b(0)akcadl dta l(a1),l(a0),}l(a2) dta l(a4),l(a5),l(a6),l(a8)akcadh dta h(a1),h(a0),h(a2) dta h(a4),h(a5),h(a6),h(a8)audora dta b($40),b(0),b($20),b(}0)bsfrql equ *-1 dta b($f2),b($33),b($96) dta b($e2),b($38),b($8c),b(0) dta b($6a),b($e8),b($6a),b($ef) dta b($80),b(8)},b($ae),b($46) dta b($e6),b($95),b($41),b($f6) dta b($b0),b($6e),b($30),b($f6) dta b($bb),b($84),b($52),b($22) dta b($f4)},b($c8),b($a0),b($7a) dta b($55),b($34),b($14),b($f5) dta b($d8),b($bd),b($a4),b($8d) dta b($77),b($60),b($4e),b($38) dta} b($27),b($15),b(6),b($f7) dta b($e8),b($db),b($cf),b($c3) dta b($b8),b($ac),b($a2),b($9a) dta b($90),b($88),b($7f),b($78)} dta b($70),b($6a),b($64),b($5e)bsfrqh equ *-1 dta c' ' dta c'' dta c'' }dta c''*--- inicjacjainit sta ainslz+1 sta ainshz+1 stx ainslz+2 stx ainshz+2 clc adc #$40 sta aptr}lz+1 sta aptrhz+1 bcc i2 inxi2 stx aptrlz+2 stx aptrhz+2 clc adc #$80 sta t1frqz+1 bcc i4 inxi4 stx t1frqz+2 inx} sta j4+1 stx j4+2 ldx #9j4 lda $ffff,x sta adrtrl,x dex bpl j4 jsr stop lda maxptr sta pozptr lda #1 sta czygrc }sta zegar dec tempo rtsstop lda #0 sta czygrc ldx