@L}5 _$% l0$)$$Hȱ$ UhL" `e$$%`$%`  R@W!( 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`  `8  ɐ     `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.D8:MEM.SAV J y08 B|DEHI$} V0 0`B;DEL`?<0LV`@ʆ v s? F0Ξ05: [ BDEHI%} VY8 B V  @  /DE `E:D8: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 ALLOWED697 FREE SECTORS COPYING---D8:COPY32.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- 144ɛ+,' 20*.. өr2 1``2TOO MANY DIGITSINVALID HEXAQ}DECIMAL PARAMETER800 0 8 00`,0'D800 H,ɛh`2L1NEED D1 THRU D8uR} ECIMAL PARAMETER800 0 8 00`,0'D800 H,ɛh`2L1NEED D1 THRU D8u8<<  B JKIHiDiELV`L8 8 BLV`LxT}8t8l Lu8hihiHHȱȱL8c !#3`Lu8JJJJ`H 8h`HU}ȩh Q8L8 Z8L8 8L8 8L8 8L8S:@9E:E9H '9 H9I9 8 '9h)0ICV}9D9L8 L :::: :Lr:::IEL[::i:iIIL[:`:i::iX}::L:`L{:w:w: C`L:L: D8:MEM.SAV: 8| 9 '9`L:L: D:DUP.SYS:̩ 8Y} x:ɀL: '9`88 |9Y:X: '9L); D8:DUP.SYS; 8::88 9 '98? :`;WL`; 9Z}Ln; ` :Y;Y;L;L;)} Setting Up ATARI 130XE Ram Disk; 9L; ; -9  [} L;D8:; :9 :Y;L 5==8= > >= q}LD>o=m==i 6=L>`TLI>Lj>} 堢>L ;6L> This program will work with and>t r};6L>" affect the diskette inserted in> ;6L> drive number %C.%E9> ?8L?"To specify another drive, simply s}> ;6LD?# enter just the drive's number at? ;6Lq?" the prompt (any key but a valid?N ;6L?& drive number requests t} 'no change').?{ ;6L?Which drive to use ? ? N6 _;E>E>1L:@4E>L:@E> 6E>9E>9E>9E>:L)@ %E%E u}Drive %C now selected.%E9@ ?8Lu@Lg@)%E%ENo change--drive %C still selected.%E9@= ?8`'Lz@L@ Current Syste v}m Configuration:@} ;6L@Active Drives: @ N6v@v@L@ v@=%:L@v@i0 6 6v@L@ 6 )L-AL w}&A (RamDisk)A ;6 )v@v@ILALdA!κ IF a RAMDISK is added toAB ;6LA# this configuration, th x}e DOS menuAn ;6LA will NOT work properly!A ;6v@ILOBLA!Һ do NOT return to DOS withA ;6LB" this confi y}guration active. theA ;6LHB# DOS menu will NOT work properly!B$ ;6L|B)%EUp to %B files open simultaneously.%E%E z}BR ?8LBDisk writes occur B N6yIPLBLB verify.B ;6LBLB with verify.B ;6` CloLBLC&} {}B ;6 w@LIC"Do you want to change any part ofC& ;6LrC that configuration (Y/N) ? CS N6 `= |}LC 6 69` B ByBLC#}Specify active drives by simplyC ;6LC" typing their drive numbers, oneC }} ;6L!D! after another. Any key exceptC ;6LOD# a valid drive number (1 to 4) isD+ ;6L}D# assumed to be end of your ~} entry.DY ;6LDActive drive numbers ? D N6 )   _;BB1LD4BLDB 6 6B) %: LDL }DLD 6L!E#How many files do you need to haveD ;6LKE open simultaneously (1-7) ? E+ N6 _;BB1L|E7BL|E }B 6B)  6LE!Do you want disk writes to occurE ;6LE verify (Y/N) ?E N6 `=ILEPyLEWyLF }!} E ;6 w@L@F#Are you this configurationF ;6LgF is what you want (Y/N) ? F }J N6 `=LFByB B LG  6LF!Current system configuration hasF ;6LF been changed. Do you want toF } ;6LG! make these changes to the diskF ;6L;G! currently in drive %C (Y/N) ? 9G ?8 `=ILG H69 }:  69LG 6 6LG!Unable to change DOS on that diskG ;6LG! because error # %U occurred.%E9 }G ?8 6LGLB`,LGL!H&}Please enter the name of the BASICG ;6LLH program that you wish to haveH+ ;6LzH# auto }matically RUN when this diskHV ;6LH is next Booted.H ;6LH!Do NOT enter the drive specifierH ;6LH# (i.e., do }not use D:, D1:, etc.)H ;6LI" but DO use the proper extensionH ;6LKI" (e.g., .BAS, .SAV, etc.) if youI( ;6LtI } SAVEd it with an extension.IU ;6LI"REMEMBER: The BASIC program thatI~ ;6LI wish to 'AUTORUN' in this wayI ;6L }I! MUST be SAVEd on the same diskI ;6L%J" which receives this AUTORUN.SYSJ ;6L@J program file!J/ ;6LpJ%Now e }nter your BASIC program's nameJJ ;6LJ here >> Jz N6 9 |;LJ`G9 <`ILJLJ&} }ήӠ堢J ;6LK"When the disk currently in driveJ ;6L=K# number %C is next booted, what%E9K ?8L }hK do you want to happen?KN ;6LK"1. The RS232 (R:) drivers for theKr ;6LK! ATARI 850 Interface Module areK ;6L }K loaded and made active.K ;6LL&2. A BASIC program will automaticallyK ;6L2L load and RUN.L! ;6L_L"3. Both }actions (1. and 2. above)L< ;6LxL will occur.Li ;6LL0. None--quit to main menu.L ;6LL! Your choice (0,1,2 },or 3) ? L N6 _;JJ0LL3ʹJLLJ)` = ;LJRINTELM JMMLM9`M)LwO GILMLUM} }Oops! That was not aM; ;6LsM valid file name!M_ ;6LM%Read the instructions again, please.M} ;6 ;9`99 }Т9 < H699 69LeO9ILN9LN}Be careful!M ;6L9NThe BASIC program name you used }N ;6L`N has not yet been SAVEd onNC ;6LxN this disk!Nj ;6LNDo you want to do this AUTORUNN ;6LN setup a }nyway (Y/N) ? N N6 `=ILN9`LeO 6L O#Oops! Error # %U while trying to%E9N ?8L=O check that BASIC prog }ram file.O ;6L]O%EUnable to continue.OG ?8`:9Т: L }U9SI2LU BLU9SI3LU MLU =9LU 6 6 ;LS`:S,or 3) ? U8 N6 _;9S99SI0L~U RLU9SI1LU F>L Au L <.`Lu 4N (c)1983 Action Computer Services  B JKIH}iDiELV`L94 94 BLV`L44l L4 &` Fj`8冨}凪` 4EӅӥ 4`ʆǪƩ Ɛee` 4ƦʆǢ &Ɛeǐ 5 }5L4 4'&&&8儨児祂*L4&&*ń8&&L4 W5`hihiHHȱȱ}L4c !#3`L4JJJJ`H 4h`Hȩh n4L5 w4L5 !4L}5 )4L5 /4H8`HhHh [6L5 BHI V䅠L5 L6 94L5Ԇ} ؠPIPP` 6P )4L5 6L6 6L6 7L6H- 68塪墨hL7 7L6 "}7L6 6ȹP`텠8堨塪 6芨Oȩ-`PP 6P棩 Ѥģ0}-ģ6000:,80H & &ehe&eģ0ʥ 8堅塅`$ 6&*i0:0i 6Ʀ`}¢ 护°ڱ%ȱ%E 6L\8担CS N6L\8I 7L\8H 8L\8 6L\8 } &B V 5NLMȑ` MLN%B VL5S:8E:9[\ZUVT`Ѣ =9`ȱѢĦ}`膡``ťƤe8夰LS9 Ƥ8`ŦeѠ}e桊LW9RUb IOCBN9leBuf;b IOCBlen = Len%b IOCBcmd = 11b CIO(0,$20)a a} IF IOCBsta>3 THENa. QUIT(IOC9,"while writing DOS 2.x Lz:`L~:)IL:L~:)IL:L:`L: }6::`L:Lu L:o:ҭv:4u:4 H6 :L: 6 6L; Hit Ԡ to Restart.: ;6L9; Hit Ԡ to qu}it to DOS.; ;6)ILS;L@;)Ld; : w:FilLm; 5g;} 6L;Error #%B %S%Ei;h;g;;{ ?8 :HL;;}L;was unexpected!;; j;L;L;+}%E%E%EThe disk in drive %U does not appear9; ?8L)< to be a valid DOS 3 disk!}< ;6 : 9 RETURNLB<4< :3<3=m===m==== "5=e==e===== g==Р=L'>`ert DOL>9}>9>>>͎>>L>>>>> g=>i>>i>>>L>9ۢ g=>͒>L+?>9>͓>L%}?>L%? ;>L>` L0?,?,?0LH?9,?LH?`,?AL]?Z,?L]?`,?I.Lh?` ;pasLq?t:s:m?Ȍl??l?m?L?}m?l? 49e9ek?k?L?k?IL?m?t:l?s:l?Хm?L?` FIL???D\:9i0]::^:??}?? 49e?9e??m??iI L{@? L{@?m??i?[:??L3@?i ?i}I /?i ?iI ?i ?iI LA.?[:? ? ?LA?m??iI LA?m??i?}[:??L@?[:8???[:??DADA?L`A'?[:?? -?? 6?L9A`Z) LlAbAaAhAgA} 6LA # Fi}le name # File nameA ;6LA!   A ;6gAhA0LBs:aAt:bALBbAaA 4}9e9efAfAILBfALBhAgA 4eeAgA)hA)LoBeA 9LyBeA 9aA bA}LB 6bAaA 7 6bAaA ?gAhAaAbALAbAaA`$ LBBBLB"%EOn which drive (1-4) is %S disk?BBB} ?8 :BBILC} 6 :B)BB1LGC4BLGCB 6B)` 6LCLRCLpC} ٠CU ;6LC!}Copy files from a DOS 3 disk toCz ;6LC a DOS 2.5 (or DOS 2.0) disk.C ;6LC%(Hit Π for drive # to quit.)C} ;6LDDOS 3D B9LDDOS 2.xD B9`imem - L4D+D*D+D*D 49e,D9e-D,Di.D-Di/D,Di }-Di0D,Di -Di99.D/D)9ȱ)90D`LD99999ɀ9LD`LD99}`DOSLDD9D9D9ɀ9LUED99LUEDD99 = DDeDDeDDL E8D9D9` LkEgE }b VcLEgELELEwhile closing DOS 2.x fileEc j;`tLEE hE:e\dbEjk VcLFL} Fwhile opening DOS 2.x fileEc j;`%BLFFF9e9dFiFh b VcLvFLlFwhile writing DOS 2.x fi}leFQc j;`Ԡ LFxFwF} 6xFwF 49eyF9ezF?wFxF%yFzFyFzFIL0GLFNo} file with that number!F ;6 6L%GHit Ԡ to try again.G ;6 {:`LFG%E%EReady to copy G3 ?8xFwF ?LtG%E%EHit }Ԡ if okay.%EGY ?8LGHit Ԡ to reject copy.G~ ;6)ILGLG)LG`xFwF 1D99}F D}|F{F9M9LH 6L H%Please remove DOS 3 ('from') disk andG ;6LMH" insert DOS 2.x ('to') disk.H* ;6 6LvH }Push Ԡ when ready.HZ ;6 {:LH#---copying Ϡ DOS 2.x disk---H ;6}F ELH}FILH}F E|F{F F }F9M9}LI hE 6LI%Please remove DOS 2.x ('to') disk andH ;6L>I" insert DOS 3 ('from') disk.I ;6 6LgI Push }Ԡ when ready.IK ;6 {:LI#---copying ͠ DOS 3 disk---It ;699LG9M9LI hE} 6LIFile Copied OK}AY!I ;6 6LIHit Ԡ to continue.I ;6 {:`axGoodRLJ899) J) J J J 499 OCL{J}(%E%EPlace the DOS 3 disk in drive %B%E%E9JR ?89M9LK 6LJ$CAUTION: You will be swapping disks.J ;6 6LJ } Put a write protect tabJ ;6LK on your DOS 3 disk!J ;6LVKLHK&Place the DOS 2.x disk in drive %B%E%E}9K! ?8 6LuKPush Ԡ when ready.K\ ;6 {: > n?s: t:LKLK)}Sorry! No files on that DOS 3 disk!K ;6 :}JȌJJJ iAJJ 6 6LL#Choose a file to copy by typing itsK ;6L3L number as given above.L ;6 6Js:J}t:0LLLmLOr see more files by typingLQ ;6LL just Π.Lw ;6LLLL Or just hit Π to Restart,L ;6LL$ } Quit to DOS, or View names again.L ;6 6LM堿L N6 ?<J J JJJs:Jt:LK J JL'N}} 6L]M%EReady to quit?%E%E%EMF ?8 6 6LM Hit Ԡ to Restart.Mm ;6LM Hit Ԡ to Quit to DOS.M ;6L}M% Hit Π to View files again.M ;6)ILMLM)LN :L$N)L$N w:L0NJ J ~FLK L7N} H6LENK:NB 6 J3N3NLVNv:4u:4} 6 :L}N4v:4u:;4;46Ny:5Nx:o:) 4N`}zN6LENK:NB 6 J3N3NLVNv:4u:4} 6 :L}N4v:4u:;4;46Ny:5Nx:o:) 4N`u L <.`Lu 4O (c)1983 Action Computer Services  B JKIH}iDiELV`L94 94 BLV` Fj`8冨凪` 4EӅӥ 4}`ʆǪƩ Ɛee` 4ƦʆǢ &Ɛeǐ 4 4L4hihiHHȱȱ}`Hh`Hȩh n4L]5 w4L]5 !4L]5 )4L]5 /4H8`HhH}h 5L]5 BHI V䅠L]5 L5 94L]5Ԇ ؠPIPP` 6P )4L]5} <6L6 6LA6 U6L6H- 68塪墨hLU6 n6L6 u6L6 6ȹP`텠8堨} 6芨Oȩ-`PP 5P棩 Ѥģ0-ģ6000:,80H & &ehe&}eģ0ʥ 8堅塅`$ 6&*i0:0i 6Ʀ`¢ 护°ڱ%ȱ%}E 6L7担CS 5L7I n6L7H i7L7 <6L7S: 8E:8[\ZUVT`Hhƣ}Ģ`ƥĤ`Oq8}q8}q8}q8 q8}LF:} 6`LO:0123456789ABCDEFLc:O:O:JJJJP: 6O:)P: 6`L:::: `:: `:`L:::}: :L: 6:d:L: 6:譨:L: 6:: <6`L:)IL;L:)L;L;`Lu L&;B:} ;LN;}Please insert DOS 2.5;6 5Ln;disk and press Ԣ;X 5 :L0;L; 05{;L;}Error %B while %S%E};|;}{;; 7L;To continue DISKFIX, hit Ԣ; 5 : L:L;;;0L<9;L<``L< < < ;I 058>9>;>:>8>@R =`Lj> 05c>d>f>e>c>W =`L>>}> 4q8e1:r8e2:1:2:6:1:i@:2:iA:@:A:ȱ;::: m@:*(mA:ȱ9:8:1:i}2:i : J8 :` L??IL!@L@writing dir}ectory@? ~;`DL*@#@"@"@#@L@#@"@ 4q8e%@r8e&@im"@m#@&@%@ <>$@$}@IL@L@reading directory@$@ ~;"@#@L2@`LL@@ C:@@@i@@@LAF@)@@)L A@ 8LA}@ 8@ L$A 6@ n6 6@ >6:LA6:)LUAD 6LA6:IBLgA 6LA6:IbLyA* 6LA6:ICLAW 6}LA6:ILA 6LA6:I#LA* 6LA? 6 6: 5LALA (unused)A 5@L@`LA 05AA @LB%E%EChoose a f}ile number> A 7;;AA S<`q8LTB '@B2 A2BLqBB2 A2BLBB2 6}PBPB`LB`m LBBB QB5:4:4:5:0?4:5:0LBLB%EYou didn't choose anything!%EB 7`4: >}6:L1CLCThat file is unused.C 55:4:`LXC#} Type Name Length StartC4 5LhC Cb 56: `: 6 } 6: 5 6 6;::: : 6 6 69:8: :LC%EâC 76: : 6 6: 5 6 6;::: : 6 6 } 69:8: : 6LD%E%S BBD 7L-D this fileD# =LED5:4:`LIDS3: S)LmDdLrD`}@ LDtDsDvDuDsDwDtDDDwDLDxDxDLDwD8xD=yDLDuDvDxDLDwDLDvDuD`LD }FD8FuE3:!u88DvDL3EDD򈑮LHEDDÈ mD*(mDHHY Dhh}8DDDDHHZ Dhh 5`ELEEEEE 4E)E)Ee}Ee818`L F8u '88 '8FFFFLXFFF EFFL5FFhFpF}FLFFF EFFLbF E`LFFFFi}FFiFFFJJ`LFFFFi}Fi)FF}i~FiFFF`LGGGGi}Gi)Gi~Gi`LDG8GG=GLGVerifying file %B%E8GGv 7=G >GL&H99 J89>G=G <>9 F7:7:M8GLGL&H}=G>GLG:G>G=G E;GG@G=G?G9 F>G=GLG=G >GLHLKHBad link in file %B - 5:4:H4 7;G }@:A:6:I6:I#6:IB 6:IbL1K4: AGLK6:ICLKLbK#Deleting file } %B - open for write%E5:4:K> 71:2: ?4:5:LJ DJJɀLKLK writing VTOCKJ ~;`LKLK&%E%EIn }sert desired disk and hit ԢK 7 :`LKKN:KM:@I ?1LkLL7L}%EDOS 2.5 not booted!%E%EL 7L^LAbor }ting - please hit ԢLA 5 : #;@ C: 5L~LK:L{ d5LL=}%E ؠ٠%E for ATARI  }DOS 2.5%E%E%EL 73: 3:LL3:LM Current Drive # is %B%E3:L 7LM 1) Change Drive # } 2) Unerase File 3) Verify Disk 4) Rename File by # 5) Quit to DOS Which? M 5 }5KK1LM5KLMK 6KI1LM 9? L:LbOKI2LvN KL NUneraseN B4:5:LsN4:@5:0LsN6:) }6:ICLLN 8I JLsNLlN%EThat's not an erased file!NO 7LbOKI3LN 6 6LNOK to verify entire diskN =LN K JL}bOKI4LN KLNRenameN B4:5:LN4:@5:0LN =JLbOKI5L8OLO}Return to DOS 2.5O =L2O 5 #; L}:LbOL[O%EYou didn't choose anything!%EO; 7LO%E%EPress Ԡ for menu > Oe 7 :LsL`LOB:) K``O L{R'S B$DEHILV䛛| Theta Music Composer v. 1.00 ||} done 20.10.96 by Jaskier/Taquart |! ڈ!/ 01oi} ^ ^bgbg a a <- MMLA= MMLAɛM땍 ^} LAڕ0M֩  `))))))<<}<e`P y`` ~H hJJJJ) i`ʈ}ήέɛ`` ?i(j`݉މ`"ɛ0.".0!".߈0".Ո0".0}000㕙"0ȩ"`E ԉ zeeƉƈ zʥ z <ɛ`+ )}*0g:a)JI )L)LÊ' ԉ"  "^ʈ0 " ʼn}ʈ <ɛɀ"`4!Fʩ "ɀ0F "0 a{ }A[I "L LEXY R V0 V0 V0ۥ V0ԥ V0ͥ V0` R V``ZR:# $}"ESKiTiU)I [LVe&ؠc ԉ ~ <8` ي 0))}8eiiTUYR VLEmXmYL 닥m}ńŅɛ ʼn ŀ偰#ɛei  <`ɛfŀ }偰"ɛ":\0* " 0 ."0 " 詛" "`-0Ƒ Lń!}兰 L=Lvŀ偰ɛe慥LɛeL ~` ي"*? "} 0w RXY V0`Z V0UO V0Jӕ V0Bԕ V0: V05T(U XY V0 TUXY V#} EL@ӕ 8ӕԕ8頍XYT)U V0PXY (T`(U V0@$}ߩTEU`XBY VL 닢8e(i )`1Õ!8ɠ)i%}8鐅)? (`(O iP٭))8e8項Eӕԕee&}eeee :&ӕԕ ي"* ?0 ~` ӕiԕieeiPi'}@ୠ( )8(倝 )偝ӕԕ T(U XY V0WTUXY V0>T)UXY (}V0%PXY (T`(U VLE@ܩTEUXY V0L ~<`Օ֕i :Օ֕ ي٢)}"*? 扭Օ֕ 88倅偅L V0o V0h V0a8倅偅L V0K V0D V0=8*}偅L V0' V0 V0 TUǍXY VLEXYЅL V0ߠ @`) ؐL) E+}ȱ鬈iȱ鶈8 V0L/ VLEL(  <` 4,}ʩ (ئܝ(LI  <* +΁ L)ΩIei򓩽-}i i  `MNIiPiQMi M.}NPi PQ ` ڈx ԍԩ ө@XL ԉ #ontrolVV^ _ zmianainstrumentu VV\ ] zmianaoktawy ;}VV  zmianakanaLu VV>3 zmianatempa VV>' zmianaczEstotliwoSci VV zmianapatternu<}itp VV4ab nastEpneokno VV>%sc powrOtdomenuVDUUUUUUUUUUUUUUUUUUUUUUUW_ %scYFBUUUUUUUUUUUUUUUUU=}UUUUUUUUUUUUUGV0atternVV\ ] ruchkursorem VV^ _ zmianapatternu VV+lawiszenutow>}e wpisnut VV)nv >)nv #aps >#aps wpisVVnutnaZywodziaLazmoktaw VV3pacja kasowaniepozycji VV paramet?}rkoniecpatternu VV !& parnowetempo VV3pacja kasowanieparametru VV>\ ] ^ _ zmianagLoSnoSci VV> !@}& wpisgLoSnoSciVVwartjestzakazana VV: ustawienieznacznika VV$elete kopiujepozycjEprzyVVznacA}znikupodkursor VV)nsert rozsuwanielinii VV$elete zsuwanielinii VDUUUUUUUUUUUUUUUUUUUUUW^ _ %scYFBUUB}UUUUUUUUUUUUUUUUUUUUUUUUUUUUGV>#lear kopiowaniepatternudoVVbuforaikasowaniepatternu VV>)nsert kopiowaniepatternuVC}Vzbufora VV>$elete kopiowaniedobufora VV2eturn grajpattern VV2eturn grapatternodpoczD} VV4ab zmieniainstrumentpodVVkursoremnatenwoknie)ns VV>8 8 zmianawszystkichinsVVnrwart nainswE}art VV>4 4 transpozycjainstru VVmentuwart owart VVpOLtonOwVV; = transpozycjaoF} VV0obwartoSci ^ _ ktOra VV\ ]  !& wstawianieVV%sc wyjScie 2eturn zatwVDUUUUUUUUUUUUUUUUUUUG}UUW^ _ %scYFBUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUGV)nstrumentVV\ ] ^ _ ruchkursorem VV !& wpisH}wartoSci VV>\ >] edycjagLoSnoScikana VVLugLOwnegopodstawowego VV>^ >_ edycjagLoSnoScikana VVLudodatkoweI}goprzeciwnego VV>\ >] zmianagLoSnoSciVVkanaLugLOwnego VV> > zmianagLoSnoSciVVkanaLudoJ}datkowego VV>#lear kopiowanieinstrumentuVVdobuforaikasowanieinstr VV>)nsert kopiowanieinstrVVzbufoK}ra VV>$elete kopiowaniedobufora VV+lawiszenutoweewentualnieVVzlub> prObainstrumentuVDUUUUL}UUUUUUUUUUUUUUUUUW^ _ %scYFBUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUGV3ongVV\ ] ^ _ ruchkursorem VVM} !& wpiswartoSci VV)nsert rozsuwanielinii VV$elete zsuwanielinii VV2eturn graj 3pacja stop N}VV>8 8 wymianazawartoSci odVVpozkursora kanaLOw VV># # kopiowaniejednegoVVkanaLudodrugiegoteZodO}VVpozycjikursora VV4ab wymianazawartoSci odVVpozkursora kanaLulewegoiVVprawegonatymsamymtrP}ackuVV/pcje>8 8 ># #oraz>4 VV4 >8 8wedycjipatternu VVrOZniAsiEtym ktOrAwartoSCVVzaczniesiEnajpierwQ}wybieraCVDUUUUUUUUUUUUUUUUUUUUUW^ _ %scYFBUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUGV0layerVV *-0).)4R}VV *-0'2!*raznaramkE VV *-03/5.$uzupeLniakonie VVcznAiloSCwywoLaNnaramkEVV -!86/,$4!S}" gLoSnoSCVV 6/,4!"doSciszania" VHUUUUUKUUUUUUUUUUUUUUUUUUUUUUUUIV!V8VVVnrmuzT}yczki grajVVVpozwsongu grajVV VwysokoSC9 ins grajVVkanaLV9 gLoSnoSC initVVVtemU}po initVVV stopVVV przerwijVVV kontynuujVVVV}-3"9 ,3"muzyczki initVDUUUUUJUUUUUUUUUUUUUUUUUW^ %scYFD0:hLδLЯLW}X}      Y} xrke_ZUPKGC?<852/,*'%#! οzqke_\VPMGD><852/-*(%#!Z} yspfaZURKHC?<9730-*(%$! yrlf`[UQLHD@<952/-*(%#![} 38jjFAn0R"ȠzU4ؽw`N8'øxpjd^ \}]}^}^@ZεLﰢĮ̮ L_ & & &iiڝ_}ܮiLε̮0L鰼ԮĮ mL@}ܮ m* L"Į m)@L`}Dɀ+)?}ܮĮ)@ m* L )?*ĮL^)?̮Į0LF! .2=G}"$<8}da}     2==ȯ")?Ȅ{L ; <b}쮝  ;N N N N ҎҮҌҮ ҌҮҌҮ ҌҮҌҮ ҌҮc}ҌҮ Ҍҍ:;ҍ`$,?{,,,)쮱)8 ȱ)8)t I,2)pcJJd}dȱL8L5LJ 1春J+ƘƘ晥 }tu L LlO٩`Oّ`Oو`w텁 `Ɨ`}ƙ`ƙ8` ``Ɩ` Ƙ`ƘƖ``` e  eȱ)}i` e  e8)᱆`<=)iFF`<=) 8FF` }0$ 0 * `ꥎJjHI h )捵JJJJ)U <ꦎ}F ƎТ i5L 5L5 0L浄)L) IͥI }`"ݩ`i i i @H hH h` (`(<)ޠ=)} `ƕ)? (`(w芢 >) iJJJJ iƎJJJJ i)jz}(PƎJJJJ ix)j8z`Ǝ0LGȍ豆 Gi ii$}GΦ '?@릕@ i v` Ɛ & & &ii) ȐƐƐ`) 豆 豆 }0 ii`HJJJJ h) i`暥 ƚ`ƚ8`i`ƛ),2)NڽR۽V}ۈ` `( ɚi <)?((((( ȭ)` `( <)?((((( }έ)` ` < 馊0饎) iȱ  ` < `0奎)`}) ŝ ``P `HЍЍЍЩ(XLtHb ԍЍЍЩ(5LtH}ЍЍЩٍ(JLtHX ԍЩh@H(LtH(LtHHHt  Z?2}M")?J ) ) 查ƞhhh@HH hhh@몽j z2jZz`Bpp}pA4heta-usic#omposerverby*askier0attern %,4rac4rac4rac4rac    }                }           } )ns ?????????????????????   } MMMMMMMMMMMMMMMMMMMMM  ????????????????????? } MMMMMMMMMMMMMMMMMMMMM  }3p&r }????????????????????????????????????????MMMMMMMMMMMMMMMMMMMMMMMMMMMM}MMMMMMMMMMMM>:=9#% "&/.*(-+3 02 FG67wtVRlf2350?:*867fL*;bGn}a]L1DW[dz w|MPQR????????MPQRRRRRMPQRRRRRRR}RRMPQRRRRRRRRRRRRR%-03#hange #opy 4ransp  ` r ?@ވȹܪ^@ V襓8 }  GPYb}mu8Dq WtIE4b]amqNRP##$$}%&&''!!(##$$%&&''!!(##$$%&&''!!(##$$%&&''!!(##$$%&&''!!(##$                           }xԢ ӹ^||@X`|}fffffff>`<|fl0fF68of;p88pf< 80 0 ~~`0 0`8ll|lf|ff<>f> ? '$$ f>`|ffff?<`|ff8<  l8`nxl8<f}ff~300x<`<|0|006lll>fff<lf< 8~L2~<~~<~x|nf}8x8--------------------------------------- Instrukcja obs ugi programu: Theta Music Composer v. 1.00 } cze 1--------------------------------------- Theta Music Composer (w skrcie:TMC) to program muzyczny majcy (}wzamierzeniu autora) wykorzystywa w jaknajwikszej czci rozszerzenie kompu-terw ATARI XL/XE, jakim jest wbudowa-nie w} niego drugiego uk adu muzycznego.Poniewa jednak autor nie jest muzykiem(chocia kiedy tak mu si wydawa o)to bdzie szc}zerze wdziczny za wszel-kie listy z uwagami, na adres: Marcin Lewandowski Jaskier/Taquart }ul.Wyszyskiego 15/22 87-100 TORU e-mail: jaskier@mat.uni.torun.pl Program tworzy ca o z nastpuj-cy}mi plikami:TMC.COM -program,TMC1.DOC -ta instrukcja,TMC2.DOC -cz 2 instrukcji,TMCPLAY.ASM -player, ktry odgrywa }muzyczki w TMC. Jeli chcesz, moesz go dowolnie przerabia, aby uy w swoim programie, ale nie radz wsadza tego przero}bionego playera do TMC za- miast standardowego, chyba e poszuku- jesz nowych moliwoci zawieszenia systemu. Program} obs uguje poprawnie takierozszerzenia, w ktrym dostp do dru-giego POKEY-a otrzymuje si przy poda-niu adresw z zakresu} $d210-$d21f.Jeli tak nie jest to dzia anie progra-mu bdzie identyczne jak na komputerzebez rozszerzenia. Przy pisa}niu tej instrukcji przyj- em za oenie, e uytkownik programubiegle pos uguje si systemem szesnast-kowym (ktry niepodz}ielnie panuje wca ym programie) oraz zna (przynajmniejpobienie) takie programy muzyczne jak:CMC i MPT, ktre by y dla mni}e wzorem.Ponadto uzna em, e wikszo rozsd-nych uytkownikw pod cza standardowe-go POKEY-a na kana lewy, a dodatkowe}gona prawy. W komputerach bez rozszerzeniawszystkie odwo ania do POKEY-w bdzawsze trafia do tego samego uk adu,p}oniewa za najpierw wstawiane swartoci prawego, a nastpnie lewegokana u, wydawa by si mog o, e poprostu bdzie s ys}zalny tylko lewykana . Niestety tak nie jest. Mimo ipomiedzy obydwoma wpisami mijaj tylko4 cykle,wyra nie s yszalny jest} terkot,ktrego g ono ronie wraz z g ono-ci prawego kana u. Na szczcie niejest to jednak taki wielki problem.Zna}cznie gorsz spraw jest to, ekomrka AUDCTL ($d208) ma chyba pewnzw ok w odbieraniu sygna u, gdy jelina prawym kanal}e nie uywamy d wikwfiltrowanych, a na lewym tak, to zapom-nijmy o tym, e je us yszymy. Genera-tory wydadz z siebie ta}ki charkot, etrzeba zatyka uszy. Dlatego pamitaj!Jeeli piszesz muzyczk, ktra ma dob-rze brzmie rwnie na mono, to }jeeliw AUDCTL standardowego POKEY-a usta-wiasz jakie bity, to musisz je teustawi w POKEY-u dodatkowym (alejeeli na p}rawym kanale uywasz filtrwto na lewym nie musisz tego robi). Wyjani teraz kilka za oe odno-nie programu. Po pi}erwsze, dlaczegoTheta? Niektrzy moe znaj programmuzyczny Delta Music Composer, ktregoautorem jest najlepszy koder na A}TARI.Delta jest czwart liter alfabetu gre-ckiego i program gra na czterech kana- ach, Theta jest sma i gra na omiukan}a ach. Rwnie reszta parametrwjest podwojeniem Delty: 128 patternw i64 instrumenty. Doda em tutaj rwnie(w celu zwiks}zenia jakoci d wikw)moliwo wywo ywania playera do czte-rech razy na ramk. Z tego te powodunie naley si spodziewa} od playera(chociaby z powodu jakoci d wikw,iloci trackw i wywo a na ramk)jakiej rewelacyjnej prdkoci.Procedu}ra odgrywajca d wiki zajmuje wmaksimum 4000 cykli, a procedura prze-szukujca pattern i song 2500. Tak wicca oc moe z}ajmowa nawet 18500 cykli.No c. Ten program nie powsta do tegoaby go umieszcza w demach, od tegojest Delta. Wyja}ni teraz jak w moim programierobione jest stereo. Jak si ju pewniedomyli e nie jest to robione w tensposb, e s sob}ie cztery tracki ig onoci d wikw na nich si znajdu-jcych s w czci wsadzane do lewegokana u, a w czci do prawego}. Ale niejest tak rwnie, e jest sobie osiemtrackw i d wiki znajdujce si napierwszych czterech wsadzane s do le-we}go kana u, a z czterech nastpnych doprawego. Obydwa te rozwizania majpewne wady. W pierwszym z nich nie mo-na korzysta} w pe ni z dobrodziejstwomiu osobnych generatorw POKEY-w, aw drugim d wiki s rozmieszczane albona prawym, albo na le}wym kanale, aumieszczenie ich pomidzy kana ami jestznacznie utrudnione (ale moliwe).Rwnie nie zrobi em tak jak radzili} mito niektrzy, to znaczy, nie cz tra-ckw tak aby np: 2 d wiki by y stereo,2 na lewym i 2 na prawym kanale.Po prost}u mj program moe by kadym ztych typw. To jak brzmi d wiki niezaley od jakiego dziwnego ustawieniaznacznikw,ktry} track czy z ktrym,ale od samych d wikw. Jeeli w trackuwstawimy 4 d wiki stereo, to bdzie toprogram pierwszego ty}pu, jeeli za 8mono, to drugiego. Oczywicie moliwejest rwnie kade rozwizanie pored-nie. Sprawa jest bowiem ba}rdzo prosta.Kady d wik ma 2 obwiednie. Podstawow(zwan niekiedy g wn) i dodatkow(zwan niekiedy przeciwn). Jeelid} wik jest umieszczony na lewym kanaleto obwiednia podstawowa gra na kanalelewym, a dodatkowa na prawym. Oczywi-cie jedn} z nich mona zostawi pusti wtedy d wik bdzie gra mono. Jeelibdzie to obwiednia dodatkowa tod wik umieszczony na l}ewym kanalebdzie gra mono na kanale lewym, ajeeli podstawowa, to na kanale prawym.Oczywicie umieszczajc d wik na pra}-wym kanale odwracamy sytuacj. Ktomdry na pewno ju zauway , e moetutaj dochodzi do konfliktw. Jeeliwstawimy w 8} trackw same d wikistereo to bdziemy musieli 16 obwiedniwsadza do 8 generatorw obu POKEY-w.Konflikt ten rozwizywany} jest w sposbnastpujcy: pierwszestwo ma obwiedniapodstawowa. Proste nie? Zajmijmy si teraz obs ug. Zale-nie od} uywanego systemu robimy wszyst-ko,aby wczyta program TMC.COM. Podczas adowania adnie nam on si przedstawii przy okazj}i sprawdzi z jakiego urz-dzenia (i o jakim numerze) jest onwczytywany. To urzdzenie bdzie odtdzawsze domylnie uywane} (o ile uyt-kownik nie poda w asnego) podczaswszelkich operacji wejcia-wyjcia.Uwaga! W przeciwiestwie do QuickAssembl}era i innych tego typu progra-mw, TMC prawid owo rozpoznaje, ezosta wczytany z ramdysku. Program aduje si od adre}su $8800do $bc00 oraz pod ROM. Na dane muzyczkioraz bufor directory uywa pamici od$2800 do $8800. Naley jednak uwaa,}gdy nie sprawdza przepe nienia, takwic mimo i s to 24kB, to mona, pi-szc piekielnie d ug muzyczk, zawie-si w ten }sposb program. Aczkolwiekprogram uywa pamici z zakresu $bd00-$bfff (pami ekranu), to zosta on taknapisany, e mona }swobodnie przej doDOS-a, a nastpnie (o ile nie zmienia-limy nic w pamici powyej $2800, pozatym co robi system, czyli} pamici ek-ranu) powrci do programu komend RUN. Program dzieli si na dwie czci:Menu -opisane w tej czci ins}trukcji,Composer -opisany w czci nastpnej. Po wczytaniu programu widzimy ekranMenu. U gry jest tytu programu. W}lewym oknie opcje po ktrych monaporusza si kursorem. W prawym ukazujesi spis directory, po ktrym rwniemoemy porus}za si kursorem. Poniejznajduje si wska linia informacji, wktrej program pokazuje swoje komunika-ty. Normalnie w lini}i tej znajduje si29 znakowa informacja, ktra dodawanajest do zapisywanej muzyczki, a przyjej odczytywaniu natychmiast je}st tuumieszczana. Nieco niej znajduje siokno z moim adresem, a na dolnej ramceumieszczone s klawisze uaktywniajceposz}czeglne opcje. Po oknie opcjimoemy porusza si kursorem za pomocklawiszy , , a uaktywniamy je klawi-szem Return lub }naciniciem klawiszaprzypisanego tej opcjii. Opcje Menu to: (w nawiasach kwadra-towych klawisz uaktywnijcy opcje)C}omposer [C]- przejcie do drugiej czci programu.Informacja [F]- wpisywanie w linii informacjii 29 bajtw dodawanych do} zapisywanej muzyczki. Klawisz Delete powoduje cofnicie kursora, Ctrl Esc, to znak (p) (published). Wyjcie kla- wiszem R}eturn bd Esc (bez rznicy).Load Music [L]- wczytywanie muzyczki. Nie radz wczytywa plikw nie stwo- rzonych przez TMC}, chyba e chcesz zawiesi system. Po podaniu nazwy, jeeli nie zawiera a ona rozszerzenia to domylnie przyjmowane jest .}TMC. Jeeli zawiera a znaki * lub ?, to zostaje wywo ana opcja directory. Po wybraniu nazwy pliku zostaje on odczy- tany.}Save Music [S]- zapisywanie muzyczki. Jest ona zapisywana w formacie akcep- towalnym przez DOS-a. Najpierw program pyta }o adres adowania pliku. Na ekra- nie widniej wtedy 3 liczby: pocztek adresu adowania, koniec oraz d ugo pliku. Adres} podajemy w systemie szes- nastkowym. Klawisze ,  wybieraj, ktr cyfr adresu bdziemy podawa, Return to zatwierdzeni}e, Esc to powrt do Menu. Nastpnie podajemy nazw pli- ku. Jeeli nie zawiera a rozszerzenia, to domylnym jest .TMC. Je}eli podana nazwa zawiera a znaki * lub ? to wywo- ywana jest opcja directory. Po wybra- niu nazwy pliku muzyczka zostanie} za- pisana zamiast dotychczasowego pliku o tej nazwie.Save Player [P]- zapisywanie programu odgrywajcego dane muzyczki}. Procedura przebiega podobnie jak przy opcji Save Music z tym, e domylnym rozszerze- nime jest .REP.Directory [D]- sp}is plikw na dysku.Instruction [I]- skrtowa instrukcja programu, g wnie klawiszologia czci drugiej, ktrej pe ny opis} znajduje si w pliku TMC2.DOC. Stron instruk- cji wybieramy klawiszami , . Return bd Esc to powrt do Menu.New [N] }- czyci dane muzyczki. Program zapyta si, czy jestemy tego pewni. Nacinicie klawisza Y powoduje wyko- nanie czynnoci }. Kady inny to powrt do Menu.Exit [E]- powrt do DOS-a. Take tutaj program zapyta czy jestemy tego pewni. Czter }y spord tych opcji: LoadMusic, Save Music, Save Player i Direc-tory wywo uj dwie wane procedury:pobranie nazwy oraz wy }pis directory.Oto opis tych procedur.Pobranie nazwy- bufor nazwy moe mie do 128 znakw. Poniewa ca oc nie moe by n }araz widoczna na ekranie, to okno informacji pokazuje tylko ostat- nie 24 znaki z tego bufora. Pierwszy znak za wyrazem "F}ile" wskazuje na stan tego okna. Jeeli jest to ":", to bufor nazwy ma nie wicej ni 24 znaki czyli okno jest nie przesun}ite, nato- miast jeeli jest to strza ka w lewo, to znaczy, e okno jest tak przesuni- te aby pokazywa ostatnie 24 znak}i. Podczas wyboru klawisz Delete powoduje cofnicie kursora, Return to zatwier- dzenie nazwy, za Esc to powrt do Menu. }Kady inny klawisz za wyjtkiem spacji powoduje pojawienie si danego znaku w buforze na pozycji kursora. Jednake zaraz n}a pocztku procedura oczekuje na nacinicie w anie ktre- go z klawiszy Delete, Return, Esc, za nacinicie kadego in}nego powodu- je wyczyszczenie bufora nazwy i wpisa- nie tego klawisza w pierwsze pole.Directory- wed ug podanego szablonu} odczytywana jest lista plikw, ktra ukazuje si w oknie directory. Moemy po niej porusza si kursorem za pomo- c kla}wiszy , . Esc powoduje powrt do Menu, za Return zatwierdzenie wyb- ranej nazwy. Program w aciwie obs u- guje podkatal}ogi w SpartaDOS-ie i MyDOS-ie 4.5, to znaczy, e wybrana nazwa wpisywana jest do bufora nazwy za ostatnim znakiem "\" bd } ":", to znaczy, e jeli podamy nazw: MUSICS:W*.TMC i wybierzemy nazw: WANTED.TMC, to przy prbie odczytu, odczytany z}ostanie plik, ze stacji z ktrej zosta wczytany TMC, o nazwie: MUSICS:WANTED.TMC. Jeeli podczas operacji wejcia--w}yjcia nastpi b d, to jego numerwypisywany jest na ekranie wyjtkowo wsystemie dziesitnym. Jest to wiadomamoja niekon}sekwencja. Po prostu numeryb dw funkcjonuj w ca ej literaturzew anie w takiej formie i podawanie ichpodobnie jak wszys}tkich innych liczb wsystemie szesnastkowym by oby niewygod-ne dla uytkownika. Teraz cz nieco mniej interesuj-ca }dla muzykw, ale znacznie bardziejdla koderw. Opis wywo ywania playera. Pe ny plik rd owy playera znajdu-je si w p}liku TMCPLAY.ASM, tak wickady szanujcy si koder bdzie mg go sam przeanalizowa i zrozumie jegoobs ug. Niniejszy te}kst jest wicprzeznaczony dla leniuchw. Doda em tenplik rwnie dlatego, e wielu muzykwnie korzysta z pe nych moliwoc}i prog-ramw muzycznych i dziki temu kadykoder bdzie mg napisa player spec-jalnie przeznaczony dla danej muzyczki. } Pocztek playera wyglda nastpuj-co: ORG PLAYERa) JMP INITb) JMP PLAYc) JMP SOUNDd)!} MAXVOL DTA B(15)e) VOLUME DTA D' 'f) FREQEN DTA D' 'g) KANAL DTA D' 'h) AKTWYS DTA D' 'i) "}NUMDZW DTA D' 'j) AUDCTL DTA D' 'k) AUD1 DTA B(0)l) AUD2 DTA B(0)m) VOLUME 256 bajtowa tablican) FRQTA#}B 256 bajtowa tablicao) BASSLO 64 bajtowa tablicap) BASSHI 64 bajtowa tablicaa) Skok do procedury inicjalizujcej.Skacze$} si tutaj tylko wtedy, gdy chcesi powiadomi player co ma robi.Parametry przekazuje si w A, X i Y: A=$00 X-numer muzyc%}zki -graj song. Player przeszukuje song w poszukiwa- niu komend stopu i skokw. Po znale- zieniu si za t o numerze po&}danym w X ustawia si w linii zaraz za ni. Nie odnawiana jest tutaj warto te- mpa. Trzeba to zrobi najpierw. A=$10'} X-pozycja w songu -graj song. Player ustawia si na danej pozycji, ale podobnie jak poprzednio nie usta- wia tempa. A(}=$20+numer kana u (0-7) X-wysoko d wiku Y-nr.instrumentu -graj inst- rument o danym numerze, kanale i wy- sokoci (C)}-1=$1, C#1=$2 itd.), nie jest zmieniana g ono, trzeba to zrobi najpierw nastpn opcj. A=$20+numer kana u X=$00 Y-g*} ono - -zmiana g onoci d wikw na kanale. starsze 4 bity to g ono obwiedni g wnej, 4 m odsze to dodatkowej. +}A=$30 X-tempo -zmiana tempa. Jest to warto o 1 mniejsza od tej w CMC i MPT, to znaczy, e tempo 5 oznacza odgrywanie ,}co 6 ramek. A=$40 -skocz gra (i to natychmiast). A=$50 -przerwij (z wyciszeniem). A=$60 -kontynuuj (od poprzedniego pr-}zerwania odgrywania). A=$70 X-starszy bajt adresu muzyczki Y-m odszy bajt -inicjacja playera. Jest tutaj robiona rwnie.} inicjacja tempa, wic jeeli chcemy rozpocz granie muzyczki od pocztku songu, wystarczy wywo a opcj kontynuuj.b/}) Skok do procedury przeszukujcejsong i patterny. Naley wywo ywa jraz na ramk. Opcja "przerwij" blo-kuje wykonywanie 0}w anie tej czciprocedury, dlatego te d wiki mogswobodnie wybrzmiewa. Zaraz po zako-czeniu si tej czci procedury1} wywo- ywana jest procedura odgrywania d wi-kw, dziki temu jeeli mamy muzyczknapisan do wywo ywania raz na ramk,to2} nie musimy ju wywo ywa procedurynastpnej.c) Skok do procedury odgrywajcejd wiki. Naley j wywo ywa o jedenraz na3} ramk mniej ni wywo a na ramkwymaga dana muzyczka. Z powodu d ugiegoczasu dzia ania tej procedury naleyuwaa aby nas4}tpna procedura nie za-czyna a si jeszcze wtedy, gdy nie sko-czy a si procedura poprzednia. Abymuzyczka gra a moliwie 5}najbardziejzgodnie z jej brzmieniem w Composerze,player naley wywo ywa w tych samychmomentach, jak jest to w programie. 6}Otonumery linii ekranu w ktrych wywo ywa-ny jest player oraz odpowiadajcawarto komrki VCOUNT ($d40b): razy na ramk7} -> 1 2 3 4liniaekranu $d40b8 8 - - - +32 20 - - + -88 48 - + - 8}+144 76 - - + -168 88 - - - + - = nic. + = wywo anie procedury SOUND. Na przerwaniu V9}BLANK naley zawszewywo ywa procedur PLAY (PLAYER+3,patrz punkt b.)d) Player pozwala na p ynne matematy-czne podg ani:}anie i ciszanie muzyczkiw 16 fazach. Robi si to przez wpisanieodpowiedniej wartoci do komrkiPLAYER+9. 15 to g ono m;}aksymalna, 0to pe ne ciszenie.e) Wartoci z tych komrek s bezpo-rednio wsadzane do rejestrw POKEY-w.Starsze 4 bity<} to zniekszta cenie, am odsze 4 to g ono d wiku.f) Czstotliwo d wiku. Warto wsa-dzana bezporednio do komrek P=}OKEY-w.g) Z powodw wyjanionych wczeniej wakapicie dotyczcym d wikw stereo,moe si zdarzy, e d wik np.z tracku>}drugiego moe gra na kanale prawym, coprawda na generatorze drugim, ale jegog ono w tablicy VOLUME bdzie tymsamym na ?}pozycji pitej (liczy si tuod zera). Aby prawid owo pobra daned wikw grajcych na danym generatorzenaley wykona rzec@}z nastpujc: LDX #0 LDY KANAL,XW ten sposb dowiadujemy si z jakiegotracku pochodzi d wik grajcy nazerowym geA}neratorze (pierwszym genera-torze standardowego POKEY-a). Zmienia-jc liczb w pierwszej linii dowiaduje-my si z ktrych B}trackw pochodzd wiki grajce na danych generatorach.h) Po wykonaniu dwch powyszych inst-rukcji oraz nastpnej: LDA AC}KTWYS,Y,moemy dowiedzie si jak nut grad wik na danym generatorze. Warto tnaley zANDowa wartoci $3f, gdynajwD}ysze bity oznaczaj tutaj numertablicy czstotliwoci. Wartoc 1 tonuta C-1, 2 to C#1 itp. Wartoc 0lepiej, eby si tutaE}j nie pokazywa a,gdy wwczas z tablicy czstotliwocipobierana jest warto 0 (baaardzo wy-soki d wik) i wsadzana do POKF}EY-a.i) W podobny sposb jak w poprzednimpodpunkcie moemy si tutaj dowiedziejaki numer d wiku gra na danym genera-toG}rze.j) I znowu w podobny sposb dowiadujemysi o tym, ktre bity komrki AUDCTLustawia dany d wik.k) Jest tutaj ju zOH}Rowana warto,wsadzana do komrki $d208.l) A ta warto do komrki $d218.m) 256-bajtowa tablica uywana do ci-szania,I} jednake sugerowa bym jej uy-wanie rwnie w innych przypadkach.Czstokro nie chcemy gwa townie poka-zywa jakiego obrJ}azka, tylko powoli gorozjaniamy. Dziki tej tablicy moemyzrobi to p ynnie w 16 fazach. Poniewatablica jest symetrycznaK} moemy to zro-bi na dwa sposoby: ASL FAZA LDA KOLOR ASL FAZA TAY ASL FAZA ASL @ ASL}L FAZA ASL @ LDA KOLOR ASL @ TAY ASL @ AND #15 ORA FAZA ORA FAZA M} TAX TAX TYA TYA AND #$F0 AND #$F0 ORA PLAYER+60,X ORA PLAYER+60,X STA $2CN}4 STA $2C4 LSR FAZA LSR FAZA LSR FAZA LSR FAZA Wydawa by si mog o, e ten drugisposb jest krtszO}y, ale jeeli bdzie-my zmienia komrk FAZA co 16, to od-padnie nam 8 linii dotyczcych rotacjibitw w komrce FAZA dla P}pierwszegosposobu.n) Z tej tablicy na podstawie wartociz komrek AKTWYS pobierana jest wartowpisywana nastpnie do POQ}KEY-w. S tow aciwie 4 tablice. Pierwsza s uy dlad wikw o zniekszta ceniach A i E,dwie nastpne dla zniekszta ce C, R}aostatnia dla 2, przy wy czonym dladanego generatora dzielniku czstotli-woci (warto $20 lub $40 w AUDCTL).o) Ta tabS}lica jest uywana podobnie jakpoprzednia, ale w przypadku d wikwdwukana owych ($10 lub 8 w AUDCTL)i jest wsadzana do genT}eratora o numerzeo 1 mniejszym ni generator na ktrymten d wik odgrywamy. 2 najstarsze bitykomrkek AKTWYS s tutaj ignoU}rowane.p) Podobnie jak poprzednio, ale tawarto jest wsadzana dok adnie do tegogeneratora na ktrym gra d wik. Wszys-tV}kie tablice czstotliwoci s identy-czne jak w programie MPT. Poniewa moe si to okaza przyda-tne, przedstawi jesW}zcze dok adny for-mat pliku muzyczki.0-28 -bajty informacyjne.29 -musi by tu zawsze spacja ($20).30 -tempo, jak ju X}mwi em, jest to warto o jeden mniejsza ni w CMC, MPT lub Delcie.31 -czstotliwo odtwarzenia na ramk Player nie zwY}aa na t komrk. To jest informacja dla Ciebie!$20-$5f -m odsze bajty adresw instr.$60-$9f -starsze bajty. Jeeli poZ} zORowaniu daj 0, to znaczy, e d wik jest pusty.$a0-$11f -m odsze bajty adresw patte- rnw.$120-$19f -starsze bajty[}.$1a0-.... -dane songu. Kada pozycja w songu zajmuje 16 bajtw. Jest to kole- jno: transpozycja tracku 8, nr.patter- nu\} grajcego na tracku 8, nastpnie jest podawany track 7 itd.....-.... -dane instrumentw. S one w formacie: -21 razy t]}rjka bajtw: $ab, $cd ,$ef ,gdzie: a- zniekszta cenie d wiku, b- g ono obwiedni podstawowej, c- ty^}p akcentu, d- g ono obwiedni dodatkowej, ef- parametr akcentu, -8 bajtw transpozycji, -9 bajtw parametr_}w d wiku. W sumie 80 bajtw.....-.... -dane patternw. Nastpujce bajty oznaczaj: -0 -zmiana g onoci d wiku, nast`}- pujca za nim warto jest negacj (EOR #$FF) g onoci uywanej w TMC. -1-$3f -graj nut o tym numerze i ustala}onym wczeniej instrumencie. Nastpuje po tym bajt g onoci. -$40 -nowy parametr, jeeli ten bajt ma ustawiony najwyb}szy bit, to nas- tpuje jeszcze za nim bajt zmiany g onoci. -$41-$7f -graj nut o numerze zANDo- wanym liczb $c}3f i ustalonym instru- mencie. Nastpuje za tym bajt para- metru z ustawionym najwyszym bitem oraz bajt g onoci.d} -$80-$bf -zmiana aktualnego instrume- ntu. Uywana przed rozkazem grania nuty tylko przy faktycznej zmianie instrue}mentu w patternie. -$c0-$ff -linie puste w patternie. $c0 to 1 linia pusta, $ff to puste 64 linie, czyli innymi s owyf} koniec danych patternu, gdy dowolnie na ktrej pozycji dotychczas si znaj- dowalimy dodanie do niej 64 powodu- g} je wyjcie poza d ugo patternu. Kady pattern koczy si tym bajtem, nawet jeeli na ostatniej pozycji co si zh}najduje. Najkrtszy pattern (pattern pusty) sk ada si tylko z tego bajtu. Pattern najd uszy acz- nie z tym bajtemi} ma 257 bajtw d u- goci. I to tyle na temat oglnej obs ugiprogramu. W pliku TMC2.DOC znajdzieszdok adny opis druj}giej czci programu.--------------------------------------- Instrukcja obs ugi programu: Theta Music Composer v. 1.00 "l} cze 2--------------------------------------- Ta cz instrukcji opisuje drugcz programu TMC: Composer, do"m}tyczcfaktycznego tworzenia muzyczki. Aby mc tworzy muzyczk, trzebawiedzie, jak to robi nasze ATARI.Kady z POKE"n}Y-w ma 9 komrek, ktrenas interesuj. W 4 z nich wsadza sig ono zORowan ze zniekszta ceniem.W 4 nastpne czstotliw"o}o jak chcesi uzyska. Najwaniejsza z naszegopunktu widzenia jest komrka AUDCTL.Program umoliwia bezporedni do niej"p}dostp. Kady d wik ustawia swoj war-to AUDCTL, a nastpnie wszystkie tewartoci z d wikw, ktre akuratbrzmi na da"q}nym kanale s ORowane iwsadzane do komrki AUDCTL. Ustawieniekolejnych bitw (liczc od najniszych)w tej komrce daje wyni"r}ki nastpujce:zmniejszenie czstotliwoci o 4 oktawy (nie dotyczy generatorw 1 lub 3, je- eli maj one wy czony dziel"s}nik czs- totliwoci: odpowiednio $40 i $20).w cza filtr na generatorze 2 sterowa- ny przez generator 4. Aby w programie"t} mona by o zauway tego efekt trzeba zrobi prb instrumentu na tracku 2. Jeeli d wik jest puszczony na 2 ge- nerato"u}rze, to TMC powoduje, e warto na podstawie barwy filtru jest wsadza- na do rejestru czstotliwoci genera- tora 4. W mu"v}zyczce moemy nadal korzy- sta z generatora 4, ale bdzie on reagowa tylko na zmiany g onoci.filtr dla generatora 1 s"w}terowany przez generator 3. Reszta tak jak poprzednio czy w par generatory 3 i 4 tak, e tworz one jeden wsplny d wi"x}k. Do tego d wiku TMC uywa specjalnych dwch tablic z tym, e przystosowane s one raczej na jednoczesne wy cze- nie d"y}zielnika czstotliwoci na gene- ratorze 3 (warto $28 do AUDCTL).podobnie jak poprzednio tyle, e doty- czy generatorw"z} 1 i 2 i wartoci $50.wy cza dla generatora 3 dzielnik cz- stotliwoci.to samo dla generatora 1.zmienia brzmienie d "{}wikw o znieksz- ta ceniu 0 i 8. Po wybraniu opcji Composer z Menu,ekran Menu ganie, a pokazuje si ekranComposera."|} Ta cz programu dzia a zwy czonym ROM-em, bez adnej ingeren-cji systemu. Zajmijmy si najpierw opisem ekra-nu. Z"}}osta on podzielony na okna. Nasamej grze znajduje si linia z nazwprogramu. Poniej znajduje si linia,ktra przy wie"~}o wczytanym programiewyglda nastpujco:Pattern: -00E L:Trac1 Trac2 Trac3 Trac4 Kolejne napisy oznaczaj:Pattern -"}informacja, e po oone niej okno nazywa si Pattern.znak minus -oznacza, e aktualny pat- tern jest pusty, znak "+" ozn"}acza, e co si w nim znajduje.00 -numer patternu. Moe zawiera si w zakresie od 00 do 7F.E -oznaczenie typu pattern"}u, zalene od znajdujcych si na nim d wikw. Jeeli wszystkie znajdujce si na nim d wiki maj obie obwiednie (podsta"}- wow i przeciwn) puste, to jest to litera E (ang. Empty), jeli uywaj tylko obwiedni podstawowej, to jest to litera "}M (ang. Mono), jeli tylko przeciwnej, to P (pol. Przeciwna), a jeli obu, to S (ang. Stereo).L -informacja na ktrym kan"}ale (lewym- -L, bd prawym- R) bd gra y d wiki podczas prb instrumentu lub odtwarza- nia patternu.numery trackw -p"}oniej nich znajduje si okno zwane Song, a te napisy wyz- naczaj kolumny, w ktrych wsadzane s dane dla kolejnych track"}w. Ponadto ciemnione t o pod jednym z numerw trackw informuje, na ktrym generato- rze ktrego POKEY-a (patrz poprzedn"}ia informacja), bd gra y d wiki pod- czas prb instrumentu lub odtwarzania patternu. Pod napisem "Pattern" znajduj"}e siokno o tej nazwie. Sk ada si ono z17-tu linii po 13 znakw w kadej. Wtym w anie oknie pokazywany jest aktu-alny w"}ygld aktualnego patternu (ktrypattern jest aktualny, informuje liniapowyej.) Poniewa kady pattern sk adasi z 64 lini"}i, widocznych jest tutajtylko cz z nich. W kadej liniipokazywane s nastpujce informacje:numer linii w patternie. W"}artoc po- midzy 00 a 3F.ewentualnie znajdujca si za numerem linii dua kropka to znacznik. Wskazu- je on, e ta lini"}a zosta a zaznaczona.nuta. Jeeli s to trzy kreski (---), to znaczy, e na tej pozycji w patter- nie nie bdzie odgrywan"}a adna nuta. Napis np: C-1 oznacza, e na tej po- zycji bdzie odgrywana nuta C na okta- wie pierwszej. C#1 to nuta Cis 1"}. Najwysza nuta to D-6.numer d wiku. Oznacza, jaki numer in- strumentu bdzie gra na tej pozycji. Warto od 00 do 3F"}.g ono d wiku. Jest to warto z zakresu od 01 do FF. Oznacza ona mak- symaln g ono jak d wik moe uzy- ska. "}Starsze 4 bity dotycz obwiedni podstawowej, a m odsze 4- dodatkowej. Warto ta interpretowana jest w spo- sb nastpujc"}y: Po zanegowaniu tej wartoci starsze 4 bity odejmowane s od obwiedni podstawowej, a m odsze 4 od dodatkowej. Np: warto"}c ED oznacza, e przy kadym odgrywaniu d wiku, od jego obwiedni podstawowej bdzie odej- mowana warto 1, a od dodatkow"}ej 2. W rzeczywistoci w pamici trzymana jest w anie ta warto zanegowana i w anie dlatego nie mona poda g o- noc"}i 00 (co i tak by oby bezcelowe, lepiej po prostu skasowa d wik), gdy w pamici by oby to FF, a ta war- to zarezerwow"}ana jest dla kodu ko- ca patternu.opcjonalnie na samym kocu moe znaj- dowa si parametr. Jeli jest to li- czba z za"}kresu 1-F, to oznacza zmian prdkoci odgrywania muzyczki. Warto 0 oznacza, e ta linia bdzie ostatni lini odgrywan"} w tym patternie. Poniej okna Pattern znajduje simalutkie okno informacyjne, w ktrympokazywana jest:Sp:5 -aktualn"}ie ustawiona prdko od- twarzania muzyczki (jest to warto o jeden mniejsza od podobnej wartoci w CMC lub MPT). Przy t"}akiej wartoci tempa bdzie zawsze na pocztku odtwa- rzana muzyczka. Co najwyej potem t warto mona zmieni w pattern"}ie. Wartoc ta znajduje si w danych muzy- czki w bajcie 31 (ADRMUS+30).Fr:4 -czstotliwo odtwarzania na ramk. Warto"} ta w danych muzyczki znajduje si za wartoci tempa.1-2 -pokazuje w jakich oktawach bd gra y instrumenty. Klawisze k"}tre powoduj granie instrumentu s identy- czne jak w CMC, MPT i Delcie.Zamiast tych informacji, niektre pro- cedury w"} tym w anie okienku wywiet- laj informacje dla uytkownika. Gasn one natychmiast po wyjciu z tych opcji. Poniej "}numerw trackw znajduje siokno Song. Po lewej stronie znajdujesi numer linii songu. Naraz widocznes tylko 3 linie song"}u. Ciemniejsze t ookrela, ktra linia jest lini edyto-wan. Kada taka linia zajmuje 2 liniena ekranie, gdy inaczej nie"} mog emzmieci 8 trackw. Wartoci w grnymrzdzie s przeznaczone dla kana u le-wego, a w niszym dla prawego. Na ka-d"}ym tracku znajduj si 2 wartoci.Pierwsza z zakresu 00-7F to numer pat-ternu grajcego na tym tracku, a drugato transpozy"}cja d wikw grajcym w tympatternie. Zamiast numeru patternuna pierwszym tracku moe znajdowa siwarto wiksza od 7F. "}Jeeli nastpnawarto jest mniejsza od 80 to oznaczato skok na pozycj w songu o podanymnumerze, a warto wiksza zatrzy"}manieodgrywania muzyczki. Z podawaniem nume-ru do ktrego naley skaka trzeba uwa-a, gdy program nie zapisuje ca ychd"}anych songu, a tylko linie do pierw-szej linii wygldajcej tak jak powczytaniu programu, za ktr rwnieznajduj si tak"} wygldajce linie. Toznaczy, e z tak wygldajcego songu:00 01-00 02-00 03-00 04-00 00-00 00-00 00-00 00-0001 FF-02 7"}F-FF 7F-FF 7F-FF 7F-FF 7F-FF 7F-FF 7F-FF02 FF-FF 7F-FF 7F-FF 7F-FF 7F-FF 7F-FF 7F-FF 7F-FF.. ..... ..... ..... ...dal"}ej podobnie.Zapisane zostan tylko dwie pierwszelinie. Tymczasem player odgrywajc tensong natrafi na skok do linii drugie"}j,ktra nie zosta a zapisana, co moespowodowa dziwne efekty d wikowe.Rwnie nie naley robi tak, aby skokisi zaptl"}a y, gdy spowoduje to nie-chybne zawieszenie programu. Zajmijmy si teraz wyjanieniempojcia transpozycji. Jest to p"}odnie-sienie d wiku o podan liczb p to-nw. Ca a transpozycja jest zamknitawe wstg o d ugoci 256 p tonw, toznac"}zy, e podniesienie d wiku o 256p tonw spowoduje powrcenie do pocz-tkowej wysokoci. C#1 podniesione ojeden p ton to"} D-1, a opuszczone ojeden p ton, czyli podniesione o FFp tonw, to C-1. Podniesienie o okta-w to 0C p tonw, a opuszcz"}enie ooktaw, to F4 p tonw. Poniewa ca atablica czstotliwoci sk ada si w a-ciwie z 4 tablic, wic podniesienie o40"} p tonw nie powoduje podniesieniad wiku, a jedynie pobieranie wartociczstotliwoci z nastpnej tablicy. Poniej o"}kna Song znajduje siokno Instrument. Poniej napisu "Ins"znajduje si numer aktualnego d wiku(warto od 00 do 3F). Minu"}s przed nu-merem oznacza, e dany d wik nie wys-tpuje w aktualnym patternie pokazywa-nym w oknie Pattern. Plus oznacza, "}ewystpuje. Cz okna instrumentu,t znajdujc si na ciemniejszym tle,mona podzieli na pionowe kolumny.Jest ich 21."} Zawieraj one wartoci,ktre s kolejno wsadzane przez playerdo komrek POKEY-w. W kadej kolumnieznajduj si nastpuj"}ce wartoci.Od gry:s up pokazujcy g ono obwiedni podstawowej.s up g onoci obwiedni dodatkowej.zniekszta cenie "}d wiku.rodzaj akcentu.starsze 4 bity parametru akcentu.m odsze 4 bity parametru akcentu.G ono zORowana ze zniekszt"}a ceniemto bezporednia warto wsadzana dokomrek POKEY-w. Czstotliwo zaleyod nuty, typu d wiku itp. Mona jednakd"}ok adniej manipulowa czstotliwocid wiku za pomoc akcentw. Zalenie odrodzaju akcenty o danym numerze wywo u-j nast"}pujce reakcje:0 -brak akcentu. Czstotliwo zaley tylko od typu d wiku i nuty.1 -parametr jest bezporednio wsadzan"}y do komrki czstotliwoci POKEY-a.2 -poprzednia warto wsadzona do POKEY-a, plus parametr, do POKEY-a.3 -oryginalna "}warto czstotliwoci przed wsadzeniem do POKEY-a jest po- wikszana o parametr.4 -parametr AND $D20A (RANDOM) jest wsa"}dzany do POKEY-a.5 -parametr oznacza numer nuty, ktrej czstotliwo pobierana jest z tablicy czstotliwoci i wsadzana "}do POKEY-a.6 -podobnie jak poprzednio, ale przed wsadzeniem do POKEY-a warto jest powikszona o dotychczasow warto "}wsadzan do POKEY-a.7 -parametr jest transpozycj nuty.8-F -akcenty te s identyczne z akcen- tami 0-7, z tym, e do kom"}rki AUDCTL jest wsadzana zapasowa warto AUDCTL d wiku. Normalnie przy akcencie 0 wsadzana jest tam warto standardowa"}, a przy pozosta ych warto 0. W oknie Instrument na jasnym tleznajduj si parametry d wiku. Pierw-szy rzd omiu "}parametrw to transpozy-cje d wiku. Na samej grze jest tran-spozycja o numerze 1, na dole o numerze8. Drugi rzd to dzie"}wi parametrwd wiku. Kolejno od gry:barwa filtru -jak atwo si domyli uywana przy d wikach filtrowanych. Czsto"}tliwo stransponowana przez t warto wsadzana jest do generatora filtrujcego (o numerze o 2 wikszym).standardowa war"}to AUDCTL d wiku.zapasowa warto AUDCTL (uywana przy akcentach od 8 do F).szybko opadania obwiedni podstawowej K"}iedy player zagra ju wszystkie 21 kolumn obwiedni d wiku, o g onoci decyduje ju tylko g ono na ostat- niej kolumni"}e i szybko opadania. Liczona jest ona w iloci wywo a pla- yera. Warto 10 oznacza zmniejszanie g onoci o jeden co $"}10 wywo a play- era. 0 to obwiednia sta a.szybko opadania obwiedni dodatkowej.starsze 4 bity oznaczaj typ d wiku. "}M odsze 4 to parametr. Poszczeglne typy d wiku to: -0 -d wik normalny. -1 -wibrato. -2 -delikatne wibrato. -3 -wibrat"}o liczone w nutach. -4 -opadanie d wiku. -5 -opadanie d wiku liczone w nutach. -6 -sta e podwyszenie wysokoci. -7 -do"}pki g ono d wiku na obwied- ni podstawowej jest niezerowa, g o- no obwiedni dodatkowej jest zwik- szana o 1. "}Typy d wiku od 8 do F rni si tym, e parametr jest brany z minusem.oczekiwanie na rozpoczcie danego typu d wiku. D"}o tej pory d wik brzmi jak- by by typu 0.najstarsze 2 bity oznaczaj tablic czstotliwoci, z ktrej pobierana b- dz"}ie czstotliwo. W rzeczywistoci warto ta jest dodawana do numeru nu- ty tak, e dla drugiej tablicy nuta C-1 ma numer"} $41. Pozosta e 6 bitw podaje zmniejszon o 1 ilo wywo a playera po ktrej nastpuje kolejne wywo anie procedury typu "}d wiku, zmieniajce odpowiednio d wik.m odsze 4 bity to zmniejszona o jeden ilo wywo a playera, po ktrej od- twarz"}ana jest nastpna transpozycja. Starsze 3 bity, to zmniejszona o jeden ilo uywanych transpozycji. Transpo- zycje s odt"}warzane od tej o numerze 1 a do tej ktrej numer wybralimy, a nastpnie znowu od tej o numerze 1. Jednake jeeli ilo "}transpozycji zwikszymy o 8, to bd one odtwarzane w kolejnoci od tej o numerze 1 w d a do tej ktrej numer wybralim"}y, a nastpnie z powrotem w gr do pierw- szej i tak w k ko. Na samym dole ekranu znajduje siokno, w ktrym widzim"}y, w postaci s up-kw, czstotliwoci i g onoci odgry-wanych d wikw. W janiejszej czcitego okna widzimy tylko g on"}ocid wikw odtwarzanych na poszczeglnychgeneratorach. Teraz pora na rzecz najwaniejsz:obs uga programu. Ca "}y Composer jest podzielony na 3osobne, nie zwizane ze sob czci:edycj patternw, songu i instrumentw.Jednake mimo to"} cz opcji dzia a wewszystkich tych czciach:(Znak "!" oznacza klawisz Shift, zaznak "^" oznacza klawisz Control.)!"}, ! -zmiana numeru instrumentu o 1.!, ! -zmiana oktawy, w ktrej bd gra d wiki.<, > -zmiana tracku, na ktrym bd"} gra d wiki.^S -zmiana tempa odgrywania muzyczki. Zmiany dokonujemy klawiszmi  i . Esc bd Return kocz edycj."}^G -zmiana czstotliwoci odgrywania muzyczki na ramk (edycja jak w opcji poprzedniej).!/ -zmiana aktualnego patternu, i"}ns- trumentu, pozycji w songu (zalenie, w ktrym oknie si znajdujemy). Podajemy najpierw bardziej znaczc cyfr licz- "}by. Jeeli ju po niej naciniemy Re- turn, to zmianie ulegnie tylko ta cyf- ra. Jeeli wprowadzimy rwnie drug cyfr, t"}o nie naley ju naciska kla- wisza Return. Esc to wyjcie.Tab -przejscie do nastpnego okna.!^Esc -powrt do Menu. "} Zaraz po wejciu do Composera znaj-dujemy si w oknie edycji patternu.Mamy tutaj nastpujce opcje:,  -zmiana numeru "}patternu o 1.,  -ruch kursorem po patternie.klawisze nutowe -(czyli te bdce od- powiednikami klawiszy fortepianowych"}) wpisywanie na danej pozycji w patter- nie aktualnego instrumentu (automaty- cznie ustawiana jest g ono FF).^, ^ -"}zmiana o jeden g onoci obwiedni podstawowej.^, ^ -to samo, ale dla dodatkowej.^0..^9, ^A..^F -bezporednie wpisywa-"} nie g onoci. Najpierw podaje si g ono obwiedni podstawowej, a nas- tpnie program czeka na podanie g o- noci doda"}tkowej, ale moemy rwnie dobrze wybra kad inn opcj (Pa- mitajmy, e wartoci 00 nie mona wpisa).!0 -rozkaz zako"}czenia w tym miejscu odgrywania patternu.!1..!9, !A..!F -rozkaz zmiany tempa.Space -czyszczenie pozycji w patter- nie "}na pozycji kursora.!Space -czyszczenie tylko dodatkowego parametru (zmiana tempa lub koniec odgrywania patternu).!Z -us"}tawia na danej pozycji znacznik (kropka za numerem pozycji).Delete -kopiuje pozycj przy znaczniku na pozycj, w ktrej z"}najduje si kur- sor oraz przesuwa o 1 pozycj w d znacznik i kursor.!Insert -rozsuwa linie w patternie, wstawiajc pu"}st lini na pozycji kur- sora.!Delete -zsuwa linie wstawiajc pust lini na pozycji 3F.^Clear, ^Insert, ^Delete -w pr"}ogramie znajduje si bufor, ktry uywany jest przy kopiowaniu patternw. ^Clear czy- ci pattern i zapisuje go do tego bu"}- fora. ^Insert odzyskuje go, a ^Delete zapisuje pattern do bufora bez kasowa- nia patternu.^T, !T -transpozycja instrum"}entu w patternie. Jeeli w wyniku transpozyc- ji mia by powsta d wik o numerze 0, to poniewa takiego d wiku nie ma, d"}ana pozycja w patternie jest czysz- czona. Numer instrumentu oraz wielko transpozycji podajemy w ma ym oknie pod pattern"}em. Domylnie przyjmowany jest instrument aktualny. Pomidzy jedn wartoci a drug poruszamy si klawiszami , . Warto"}ci moemy poda- wa normalnie, szesnastkowo, albo te za pomoc klawiszy ,  zmieniajcych warto o 1. Return powoduje w"}ykonanie opcji, Esc to wyjcie. !T rni si tylko tym, e kursor ju bdzie usta- wiony na drugiej wartoci.![, !] -tra"}nspozycja aktualnego inst- rumentu o 1.^X, !X -zmiana dowolnego instrumentu w patternie na dowolnie wybrany. Domy- lnie"} przyjmowany jest instrument ak- tualny. Proces pobierania wartoci po- dobnie jak przy transpozycji.!Tab -zmienia numer "}instrumentu na po- zycji kursora na aktualny oraz przesu- wa kursor o jedn pozycj w d .Return, !Return -odgrywa patter"}n na aktualnym tracku. Jeeli nacinity by Shift, to odgrywanie nastpi od pocztku patternu. W przeciwnym przy- padku "}bdzie to od pozycji kursora. Dowolny klawisz przerywa odgrywanie.!Inverse, ^Inverse, !Caps, ^Caps - program TMC zosta w"}yposaony w ekspe- rymentaln opcj jak jest wpisywanie nut do patternu na ywo (w czasie rze- czywistym) podczas grania "}patternu, przy jednoczesnym ods uchiwaniu jego dotychczasowej zawartoci. S u do tego owe cztery opcje. Rni si one "}w sposb nastpujcy. Klawisz Inverse oznacza, e pattern bdzie puszczony od pocztku, za Caps, e od aktualnej pozycji "}kursora. Shift oznacza, e pattern zacznie by odgrywany dopiero, kiedy ten klawisz zostanie puszczony, za Control oznacz"}a, e pattern nie zostanie puszczony dopki nie naci- niemy jakiego klawisza. Podczas gdy program oczekuje na nacinieci"}e dowol- nego klawisza nutowego pattern jest w sposb normalny ods uchiwany. Naci- niecie klawisza nutowego powoduje wpi-"} sanie go do patternu na aktualnie od- grywanej pozycji oraz oczywicie zag- ranie wpisywanej nuty. Klawiszami ,  zmien"}iamy aktualn oktaw. Esc powodu- je powrt do edycji patternu. Nastpnym oknem jakie odwiedzamyjest okno edycji instr"}umentu:, , ,  -tymi klawiszami poruszmy si po oknie.^, ^ -jeeli znajdujemy si na tej czci okna z ciemniejszy"}m t em, to te klawisze powoduj zmian g onoci obwiedni podstawowej w danej kolumnie.^, ^ -dotycz obwiedni dodatkowe"}j.!^, !^ -zmieniaj g ono ca ej obwiedni podstawowej.!^, !^ -dotycz obwiedni dodatkowej.0..9, A..F -wpisywanie#} wartoci.^Clear, ^Insert ,^Delete -kopiowanie instrumentw. Dzia a tak samo jak w oknie edycji patternw.klawisze nuto#}we -mimo i klawisze cyf- rowe zajmuj cz z nich, to jednak reszta dzia a i mona za ich pomoc pos ucha sobie d wiku#}. W razie, gdybymy potrzebowali akurat klawisza zajtego przez cyfr, to moemy nacis- n klawisz Shift lub Control (byl#}e nie Control+S lub Control+G). Ostatnim oknem jest okno songu:, , ,  -porusznie si po oknie.0..9, A..F -wpisy#}wanie wartoci (nie mona, za wyjtkiem tracku nr 1, poda numeru patternu wikszego od 7F. W os- tatniej linii na pierwsz#}ym tracku moe by tylko rozkaz skoku lub stopu).!Insert -rozsuwa linie w songu, wsta- wiajc zera na aktualnej pozycji.#}!Delete -zsuwa linie songu. Na pozycji 7F wstawiana jest linia "pusta".^X, !X -zmiana 2 trackw. Proces wybo- ru przebie#}ga jak przy wyborze transpo- zycji w edycji patternu. Zamiana doko- nywana jest od pozycji kursora w d , tak wic jeeli #}chcemy zamieni ze sob zawartoci trackw od pozycji 10 do 16 to naley przej na pozycj 10, poda, ktre tracki chcemy# } zamieni, a nastpnie na pozycji 17 poda te same wartoci. Domylnie na pocztku przyj- mowany jest track na ktrym stoi# } kur- sor.^C, !C -tym razem jeden track jest ko- piowany do drugiego. Rwnie jest to robione od pozycji kursora, ale ty# }m razem z powodu zamazywania starych wartoci nie mona zrobi poprzednio opisanej sztuczki.!Tab -zmiana 2 trackw, ale # }nie trzeba podawa ich numerw. Wymieniane s ze sob: track na ktrym stoi kursor oraz ten sam track tyle, e na przeciwn# }ym kanale. Innymi s owy ta opcja pozwala zmienia kana y lewy z prawym.Return -odgrywa song od aktualnej po- zycji. Podc#}zas odgrywania dzia aj nastpujce klawisze: ,  -zmiana instrumentu. ,  -zmiana oktawy. <, > -zmiana tracku. #} klawisze nutowe -granie wraz z muzyczk. Spacja, Esc -zakoczenie odgrywania. To tyle jeli chodzi o obs ug mo-#}jego programu. Polecam sprawdzeniewszystkiego w naturze. ;*---------------** TMC Player **Jaskier/Taquart**---------------* opt 6 org $ac00byte equ $fabajt equ $fbaddr eq'}u $fcadrsng equ $feplayer equ * jmp init jmp play jmp soundmaxvol dta b(15)volume dta d' 'freqen dta d' '} 'kanal dta d' 'aktwys dta d' 'numdzw dta d' 'audctl dta d' 'aud1 dta b(0)aud2 dta b'}(0)voltab dta d' ' dta d' !!!!!!!!' dta d' !!!!!!!!""""' dta d' !!!!!"""""###' dta d' !!!!"'}"""####$$' dta d' !!!"""###$$$%%' dta d' !!"""##$$$%%&&' dta d' !!""##$$%%&&''''' dta d' !!""##$$%%&&''''(' dta d' !!'}""#$$%%&''''(()' dta d' !!"##$%%&''''())*' dta d' !!"#$$%&''''()**+' dta d' !""#$%&&''()**+,' dta d' !"##$%&''()**+,-' d'}ta d' !"#$%&''''()*+,-.' dta d' !"#$%&''()*+,-./'frqtab dta b(0),b($f1),b($e4),b($d7) dta b($cb),b($c0),b($b5),b($aa) dt'}a b($a1),b($98),b($8f),b($87) dta b($7f),b($78),b($72),b($6b) dta b($65),b($5f),b($5a),b($55) dta b($50),b($4b),b($47),b($'}43) dta b($3f),b($3c),b($38),b($35) dta b($32),b($2f),b($2c),b($2a) dta b($27),b($25),b($23),b($21) dta b($1f),b($1d),b($'}1c),b($1a) dta b($18),b($17),b($16),b($14) dta b($13),b($12),b($11),b($10) dta b(15),b(14),b(13),b(12) dta b(11),b(10),b('}9),b(8) dta b(7),b(6),b(5),b(4) dta b(3),b(2),b(1),b(0) dta b(0),b($f2),b($e6),b($da) dta b($ce),b($bf),b($b6),b($aa) d'}ta b($a1),b($98),b($8f),b($89) dta b($80),b($7a),b($71),b($6b) dta b($65),b($5f),b($5c),b($56) dta b($50),b($4d),b($47),b('}$44) dta b($3e),b($3c),b($38),b($35) dta b($32),b($2f),b($2d),b($2a) dta b($28),b($25),b($23),b($21) dta b($1f),b($1d),b('}$1c),b($1a) dta b($18),b($17),b($16),b($14) dta b($13),b($12),b($11),b($10) dta b(15),b(14),b(13),b(12) dta b(11),b(10),b'}(9),b(8) dta b(7),b(6),b(5),b(4) dta b(3),b(2),b(1),b(0) dta b(0),b($ff),b($f1),b($e4) dta b($d8),b($ca),b($c0),b($b5) ' }dta b($ab),b($a2),b($99),b($8e) dta b($87),b($7f),b($79),b($73) dta b($70),b($66),b($61),b($5a) dta b($55),b($52),b($4b),b'!}($48) dta b($43),b($3f),b($3c),b($39) dta b($37),b($33),b($30),b($2d) dta b($2a),b($28),b($25),b($24) dta b($21),b($1f),b'"}($1e),b($1c) dta b($1b),b($19),b($17),b($16) dta b($15),b($13),b($12),b($11) dta b($10),b(15),b(14),b(13) dta b(12),b(11)'#},b(10),b(9) dta b(8),b(7),b(6),b(5) dta b(4),b(3),b(2),b(1) dta b(0),b($f3),b($e6),b($d9) dta b($cc),b($c1),b($b5),b($ad'$}) dta b($a2),b($99),b($90),b($88) dta b($80),b($79),b($72),b($6c) dta b($66),b($60),b($5b),b($55) dta b($51),b($4c),b($48'%}),b($44) dta b($40),b($3c),b($39),b($35) dta b($32),b($2f),b($2d),b($2a) dta b($28),b($25),b($23),b($21) dta b($1f),b($1d'&}),b($1c),b($1a) dta b($18),b($17),b($16),b($14) dta b($13),b($12),b($11),b($10) dta b(15),b(14),b(13),b(12) dta b(11),b(1''}0),b(9),b(8) dta b(7),b(6),b(5),b(4) dta b(3),b(2),b(1),b(0)basslo dta b(0),b($f2),b($33),b($96) dta b($e2),b($38),b($8c'(}),b($00) dta b($6a),b($e8),b($6a),b($ef) dta b($80),b($08),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($06),b($f7) dta b($e8),b($db),b($cf),b($c3) dt'+}a 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)basshi dta b(0),b(13),b(13),',}b(12) dta b(11),b(11),b(10),b(10) dta b(9),b(8),b(8),b(7) dta b(7),b(7),b(6),b(6) dta b(5),b(5),b(5),b(4) dta b(4),b(4),'-}b(4),b(3) dta b(3),b(3),b(3),b(3) dta b(2),b(2),b(2),b(2) dta b(2),b(2),b(2),b(1) dta b(1),b(1),b(1),b(1) dta b(1),b(1),'.}b(1),b(1) dta b(1),b(1),b(1),b(0) dta b(0),b(0),b(0),b(0) dta b(0),b(0),b(0),b(0) dta b(0),b(0),b(0),b(0) dta b(0),b(0),'/}b(0),b(0)czygrx dta d' 'pozwpt dta d' 'delay dta d' 'numptr dta d' 'poddzw dta d' ''0}wysdzw dta d' 'znksz dta d' 'frq dta d' 'vol1ch dta d' 'vol2ch dta d' 'adcvl1 dt'1}a d' 'adcvl2 dta d' 'adrsnl dta d' 'adrsnh dta d' 'slupy dta d' 'opad1 dta d' '2} 'opad2 dta d' 'lopad1 dta d' 'lopad2 dta d' 'typ dta d' 'param dta d' 'pomoc1'3} dta d' 'pomoc2 dta d' 'czekaj dta d' 'dtyp dta d' 'ltyp dta d' 'ilperm dta d' '4} 'aperm dta d' 'dperm dta d' 'lperm dta d' 'kolejn dta d' 'tempo dta b(0)ltempo dta'5} b(0)pozptr dta b(0)czygrc dta b(0)przeci dta b(4),b(5),b(6),b(7) dta b(0),b(1),b(2),b(3)audtb1 dta b(4),b(2),b(0),b(0)'6} dta b(4),b(2),b(0),b(0)audtb2 dta b(0),b(16),b(0),b(8) dta b(0),b(16),b(0),b(8)play lda czygrc beq r1-3 lda pozptr c'7}mp #64 bcc r1 dec ltempo beq *+5 jmp sound ldx #7 lda #0p1 sta pozwpt,x sta delay,x dex bpl p1 sta pozptr tax l'8}dy #15p2 lda (adrsng),y bpl p3 dey lda (adrsng),y bpl *+5 jmp stop stx addr asl @ asl @ rol addr asl @ rol addr '9}asl @ rol addrzm0 adc #0 sta adrsng lda addrzm1 adc #0 sta adrsng+1 bcc p2-2p3 sta numptr,x dey lda (adrsng),y sta':} poddzw,x inx dey bpl p2 clc lda adrsng adc #16 sta adrsng bcc *+4 inc adrsng+1 jmp soundr1 dec ltempo bpl r1-3';} inc pozptr lda tempo sta ltempo ldx #7r2 dec delay,x bmi *+5 jmp r14 ldy numptr,xzm2 lda $ffff,y sta addrzm3 lda $'<}ffff,y sta addr+1 ldy pozwpt,xr3 lda (addr),y bne r4 jsr nparam jmp r13r4 cmp #$40 bcs r5 adc poddzw,x sta wysdzw,x'=} jsr nparam ldy numdzw,x jsr dzwiek jmp r13r5 bne r8 iny inc pozwpt,x lda (addr),y bpl r6 sta bajt jsr nparam lda'>} bajtr6 and #$7f bne r7 lda #64 sta pozptr bne r13r7 sta tempo sta ltempo bne r13r8 cmp #$80 bcs r11 and #$3f adc'?} poddzw,x sta wysdzw,x iny inc pozwpt,x lda (addr),y and #127 bne r9 lda #64 sta pozptr bne r10r9 sta tempo sta lt'@}empor10 jsr nparam ldy numdzw,x jsr dzwiek jmp r13r11 cmp #$c0 bcs r12 and #$3f sta numdzw,x iny inc pozwpt,x jmp 'A}r3r12 and #$3f sta delay,xr13 inc pozwpt,xr14 dex bmi sound jmp r2sound ldx #7p5 lda czygrx,x beq p6 jsr graj lda'B} audctl,x and audtb1,x beq p6 ldy #71 lda (addr),y clc adc aktwys,x sta aktwys+2,x tay lda frqtab,y sec adc pomoc1'C},x sta frq+2,xp6 dex bpl p5 asl maxvol asl maxvol asl maxvol asl maxvol inx stx addr stx addr+1 ldx #7p9 txa ta'D}y lda vol1ch,y bne p10 ldy przeci,x lda vol2ch,y bne p10 txa tay lda #0p10 sta byte tya sta kanal,x lda frq,y st'E}a freqen,x lda audctl,y sta bajt ora addr+1 sta addr+1 lda bajt and audtb1,x beq p11 lda frq+2,y sta freqen+2,xp11 'F}lda bajt and audtb2,x beq p12 lda aktwys,y and #$3f tay iny sty addr lda basshi-1,y sta freqen,x jmp p13p12 ldy ad'G}dr beq p13 lda basslo-1,y sta freqen,x lda #0 sta addrp13 lda byte ora maxvol tay lda voltab,y ldy kanal,x ora znk'H}sz,y sta volume,x cpx #4 bne p14 lda addr+1 sta aud2 lda #0 sta addr+1p14 dex bpl p9 lsr maxvol lsr maxvol lsr ma'I}xvol lsr maxvol lda addr+1 ldx #3 stx $d21f stx $d20f ldx freqen+4 ldy freqen stx $d210 sty $d200 ldx volume+4 ldy'J} volume stx $d211 sty $d201 ldx freqen+5 ldy freqen+1 stx $d212 sty $d202 ldx volume+5 ldy volume+1 stx $d213 sty $'K}d203 ldx freqen+6 ldy freqen+2 stx $d214 sty $d204 ldx volume+6 ldy volume+2 stx $d215 sty $d205 ldx freqen+7 ldy f'L}reqen+3 stx $d216 sty $d206 ldx volume+7 ldy volume+3 stx $d217 sty $d207 sta aud1 ldx aud2 stx $d218 sta $d208 rt'M}sgraj lda adrsnl,x sta addr lda adrsnh,x sta addr+1 ldy slupy,x cpy #63 beq n6 inc slupy,x inc slupy,x inc slupy,x'N} lda (addr),y and #$f0 sta znksz,x lda (addr),y and #15 sec sbc adcvl1,x bpl n1 lda #0n1 sta vol1ch,x iny lda (ad'O}dr),y and #15 sec sbc adcvl2,x bpl n2 lda #0n2 sta vol2ch,x lda (addr),y and #$f0 beq n8 bpl n3 ldy #73 lda (addr'P}),y ldy slupy,x dey dey bpl n4n3 lda #0n4 sta audctl,x lda (addr),y and #$70 beq n9 lsr @ lsr @ sta n5+1 lda #0'Q} sta pomoc1,x iny lda (addr),yn5 bcc * nop nop nop nop jmp a1 nop jmp a2 nop jmp a3 nop jmp a4 nop jmp a5 no'R}p jmp a6 nop jmp a7n6 lda opad1,x beq n7 dec lopad1,x bne n7 sta lopad1,x lda vol1ch,x and #15 beq n7 dec vol1ch,'S}xn7 lda opad2,x beq n8 dec lopad2,x bne n8 sta lopad2,x lda vol2ch,x and #15 beq n8 dec vol2ch,xn8 ldy #72 lda (ad'T}dr),y sta audctl,xn9 lda aperm,x clc adc #63 tay lda (addr),y adc wysdzw,x sta aktwys,x tay lda frqtab,y sta frq,x'U} dec lperm,x bpl m1 lda dperm,x sta lperm,x lda kolejn,x beq m6 clc adc aperm,x sta aperm,x beq m7 cmp ilperm,x b'V}ne m1 lda #$fem7 clc adc #1 sta kolejn,x bne m1m6 inc aperm,x lda ilperm,x cmp aperm,x bcs m1 lda #0 sta aperm,xm'W}1 lda czekaj,x beq m2 dec czekaj,x rtsm2 lda pomoc2,x sta byte lda param,x sta bajt jsr m4 dec ltyp,x bpl m4-1 lda'X} byte sta pomoc2,x lda bajt sta param,x lda dtyp,x sta ltyp,x rtsm4 lda typ,x sta m5+1m5 bpl * jmp typ0 nop jmp t'Y}yp1 nop jmp typ2 nop jmp typ3 nop jmp typ4 nop jmp typ5 nop jmp typ6 nop jmp typ7typ1 lda byte inc byte and #'Z}3 lsr @ bcc t2 bne typ6 lda bajtt1 sta pomoc1,x clc adc frq,x sta frq,xtyp0 rtst2 lda #0 sta pomoc1,x rtstyp2 js'[}r t5 jmp t1typ3 jsr t5 clc adc aktwys,x jmp a5typ4 lda byte sta pomoc1,x clc adc frq,xt3 sta frq,x lda byte clc '\}adc bajt sta byte rtstyp5 lda aktwys,x sec sbc byte sta aktwys,x tay lda frqtab,y jmp t3typ6 lda frq,x sec sbc ba']}jt sta frq,x sec lda #0 sbc bajt sta pomoc1,x rtstyp7 lda ltyp,x bne typ0 lda bajt bpl t4 lda vol2ch,x beq typ0 '^}lda vol1ch,x cmp #15 beq typ0 inc vol1ch,x rtst4 lda vol1ch,x beq typ0 lda vol2ch,x cmp #15 beq typ0 inc vol2ch,x '_}rtst5 ldy byte lda bajt bmi t6 iny inyt6 dey tya sta byte cmp bajt bne t7 lda bajt eor #$ff sta bajtt7 tya rts'`}a2 adc frq,xa1 sta frq,x rtsa3 ldy wysdzw,x adc frqtab,y sta frq,x tya sta aktwys,x rtsa4 and $d20a sta frq,x rt'a}sa7 adc wysdzw,xa5 sta aktwys,x tay lda frqtab,y sta frq,x rtsa6 sta aktwys,x tay lda frq,x adc frqtab,y sta frq,x'b} rtsnparam iny inc pozwpt,x lda (addr),y lsr @ lsr @ lsr @ lsr @ sta adcvl1,x lda (addr),y and #15 sta adcvl2,x'c} rtssongx jsr stop ldy #15zm4 lda #0 sta adrsngzm5 lda #0 sta adrsng+1d5 txa beq inicd3 lda (adrsng),y bpl d4 dex'd}d4 clc lda adrsng adc #16 sta adrsng bcc d5 inc adrsng+1 bcs d5playx jsr stop lda #0 sta addr txa asl @ asl @ 'e}rol addr asl @ rol addr asl @ rol addrzm6 adc #0 sta adrsng lda addrzm7 adc #0 sta adrsng+1inic lda #64 sta pozptr'f} lda #1 sta ltempo sta czygrc rtsinit cmp #$10 bcc songx cmp #$20 bcc playx cmp #$30 bcs *+5 jmp d2 cmp #$40 bc'g}s i1 txa and #15 beq i1-1 sta tempo rtsi1 cmp #$50 bcc stop cmp #$60 bcs i2 lda #0i3 sta czygrc rtsi2 cmp #$70 'h}bcc i3 lda #1 sta ltempo lda #64 sta pozptr sty addr stx addr+1 ldy #30 lda (addr),y sta tempo lda addr clc adc 'i}#32 sta zm8+1 bcc *+3 inx stx zm8+2 clc adc #$40 sta zm9+1 bcc *+3 inx stx zm9+2 clc adc #$40 sta zm2+1 bcc *+3'j} inx stx zm2+2 clc adc #$80 sta zm3+1 bcc *+3 inx stx zm3+2 clc adc #$80 sta adrsng sta zm0+1 sta zm4+1 sta zm6'k}+1 bcc *+3 inx stx adrsng+1 stx zm1+1 stx zm5+1 stx zm7+1stop ldy #7 lda #0 sta czygrcd9 sta $d200,y sta $d210,y'l} sta volume,y sta vol1ch,y sta vol2ch,y sta audctl,y sta czygrx,y dey bpl d9 sta $d208 sta $d218 sta aud1 sta aud2'm} rtsd1 sta vol1ch,x sta vol2ch,x sta audctl,x lda wysdzw,x sta aktwys,x rtsd0 tya eor #$f0 lsr @ lsr @ lsr @ lsr'n} @ sta adcvl1,x tya and #15 eor #15 sta adcvl2,x rtsd2 and #7 sta addr txa ldx addr and #$3f beq d0 sta wysdzw,x'o}dzwiek lda #0 sta czygrx,xzm8 lda $ffff,y sta adrsnl,x sta addrzm9 lda $ffff,y sta adrsnh,x sta addr+1 ora addr beq'p} d1 ldy #74 lda (addr),y sta opad1,x sta lopad1,x iny lda (addr),y sta opad2,x sta lopad2,x iny lda (addr),y and #'q}$70 lsr @ lsr @ sta typ,x lda (addr),y and #15 sta param,x lda (addr),y bpl d7 lda param,x eor #$ff clc adc #1 s'r}ta param,xd7 iny lda (addr),y sta czekaj,x iny lda (addr),y and #$3f sta dtyp,x sta ltyp,x iny lda (addr),y and #$'s}80 beq d8 lda #1d8 sta kolejn,x lda (addr),y and #$70 lsr @ lsr @ lsr @ lsr @ sta ilperm,x bne d6 sta kolejn,xd6't} lda (addr),y and #15 sta dperm,x sta lperm,x dey lda (addr),y and #$c0 clc adc wysdzw,x sta wysdzw,x sta aktwys,x'u} tay lda frqtab,y sta frq,x lda #0 sta slupy,x sta pomoc1,x sta pomoc2,x sta aperm,x lda #1 sta czygrx,x rtsendpl'v}r end$