@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`  `1  ɐ     `TU  } L ? .  t`lvGBJ ~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:CP.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 B}ōP   i ̀i΀i]πiЀ*}i3рiҀʢ ӠG & #̀΀π Ѐ l } DOS 2.5 Command Proces+}sor 3.08 (c) CHAOS software. Winter 1989. J `lXhh8hh  ,} &Xآ   90ɛ @ miݦʈ0Θ0 ҁLlɛ."-}ք  Sǩ LTU`L&lɛ ɛ+0: AG80. .}l *M?Iɛ,ɛ*ɛ 𮅄  L  RL/}ʆlLt   L!RLV䮁L !ɛ  RZ V0= XH0}YR V0 B V0L V8S 샠(   }~ L& ɛ` {1}|L&DE`m.`H) hJJJJ 0:i` 働H BILVB 僩&H V0%H2}:ɛɛ`ۄ˄rŃ-ւDIRRENERACARMEMRUNBOFLo=.... Hi=....BRK at ....3}MOC.Error ...D1:FILENAME.EXT *.*D1:#߅`#ϩҩӭԭ8ԅХՅѠ8fϥ#酐`$ph0'҅Α Ӆ @4}`) ѐF) ?҈遐#҈酰Цѐ$0ֆ8֑ Ӆב ӅLRґ ӅLR`҅Α Ӆ @kLh 'H h(`xԍԅ؍(؅@Ӡ)̅6}ӱӑ ө"ԩ@XL@QLLLLLvLLLLfLL0LWLLLL pPB`B@7}BA9,ine;=(%,0>/d;=>$o;=H0ԭ1ԭ ԥҭuڅXvڅYL)8} ڠ6؄  N کzٍyٍx Kxy٭y ڭzIz٩LHz hM< )ɛw)wLؠ 9} xL M< O T۠w'8 ) { L@&indhhڍy٭ڍz٩{ { vɛx&:} /ڥڐyٮz WLxِե N  L `` ЩЍЩ9ԩ؍ԩ";}̍ ԩ@XY`څڅ`Hڐʆ  :ޤ Dڈh`@l ک #ܰ ڠȑ L7 Dڭe` )<}ڱ^I^`ڎڌ`ڮڬ`P`)߮7A[8`کL\ۅ7H8=}Hڍ7؍8 _h8h7ة` Xܰ`ڍ DڥH )hڬ ڠ'^ڥ ڎڥ8څڱɛ ^(>}LȘ8ڍڅڅ ڍڭڭ<mڐڥ^i(^_ Xܐ Lwۥ '^ څڌ`H?}H ܭڍgܭڍhhhڭh 8`gڐ`ڍgܭڍhLBڅڈɛɛLve ڎܩ(8ܦ@}eڐڐ׎ڌ` D ڎܩ'8܍ܠɛܐȘeڥi`h@gܱgA}g`gܢLݩQ)gܱgg`g ڥ 8 Dڥeɛ``ڐB}L o (Lݩ TL o TL #ܐ ݩLݎnݭ88ڨ8څnei8nݍڰC}``ڎnݭ8ڰ88neinnmڍڐ`D}` oݢ : L Dڢ : DڠL ڐL ڰ8Lڢ  iHih` Oߐ` E} 5ݩ i L ߐ`  LڭHH iܭڍgܭڍhhhکh gܐ8` &ڰF}ڢf8 f`f` #ܰ8`ڢfi f`f` ڥi ڐʆLڛ~{ .ݘG}ߤ޲BQYYSM NLR NL8_Z\\ Y[8`Y[[H}Y`[8Y][\Z\^` ``Z" Y_\`[ څm[څڅm\څ8څڅI} _Ym[YZm\ZYZڅڅ[8[\[ \ NLJ}ڵ8`Yv؝`ڍYڍZf؝v`ڍ[ڍ\f؝` `` ڭYZ[\8[HK}\H h\h[8]ڭ^ /LZککL / NLڍ]^L`]^ / ߐ` ܭ^ ] OLiL} ߐL L_ ߰ _ NLک_ O߰ i_L)` .L)` L oݢ : ݩLݩ(8M} Dڬڈɛ .L #ܐ ڢ L ڥ e^i_LعR8` LN N  B}C~LN}' Lڍکڍکڍکf`6؍ҩ TLک6ةV  BLةJBO}KDELة BDEHILة. . vҍҍҩ ` 0ڍڍ 8ڍڍ 0EP}HmڍڍImڍڍ 0L 0 0 (`(` < <i4=d8d ޠQ}6ؠҌ  L ` 0Y LV 08 fL 0L 0 0 R} ` i) ڬt利u Yu~ɛ` tt ڈt…ȱȱȱS}tȱui` tQȩRtE t|ȑt|ɛ ȑtȘeu tZRȑT}tC`(e` ) v殀 t H  hu tL08(L 8U}`Ц`It`ż !sembler%xit,oad3ave3aveblock#lear&ilename)/%rror9 8`` V}ڭz ک:zٽ9 ک9 8` -. xL)` i@`8` `@HHH Ҍ9;)) >LW}& ɀ9 =I=L L>;0V+!> ;9L ҍ::ҩ:ҍhhh@@hY}0Xн Hp8`ؿ(lj;k+*opui-=vcbxz436521, .nm/reytwq907~8<>fhdgsaLJ:K\^OPUZ}I_|VCBXZ$#&%"![ ]NM?REYTWQ()'@}FHDGSA {   ` }J[}Henryk Cygert.h=h)>HOHӭ>H=@ 0;BJK˝DE V0}  T\} Li 򢿠 B `BHILV` BLVDisc ErrorD1:*.*̅ӱӑ`]}Qg!"#$%&}0} `:}`{|}} &~ʭ~0{}{|}|~}Ԭ}^}80m{{|{|}` d' {||ـ#{{8{||Ոέ{i_}`{|}0} `2`1.{.|}{|}`{|}0}`GA:`}`80   .{.|}߭{|}`{| 덊ꎉ| 덈ꎇ`)HJJJJh H h`i0:i`a}멀 H hɛ,) `;<LI>LI+LI- Lb}* L$c'S@ ` ` mmL8L c} &`Le` ةҍno 6؍Uҍ𩠍T퍽Lح   ة67j  Hh d}y ةy 0z xȱyLC-argin-argin$ir3creencom"uildlib2esetlib(Px e}آ7آ ꮾݽ޽ޠ ؙ-U j 0X7i7Li:1L If}L Q Lyz *`۽ ,oad3ave$ir$os ة 0Lf?g}ڽ 2un,ist-onitor,abels#lear¢ ة¢ 0Lf#ompile$estination!utorun25./ff/n-emory$isc6erh}ify ح) j( ' m'猪1^ L((LC )I)LC(!Lf Xhi hi}ieɿߩe L ة?L L Xhi0؅1؅hȭi $ L@j}!ddress!89&LM 6 ح=K>N=K =ꙙ=h8hʘ qLHVL+k}VL+L -L Xhi jk L L آh` Xhi8hjik Lv آHl}HIh Ꝇ LH@&romN ةN ةl L`T,engthv ةv Lf!4!7m}%7c 2350?:*8 Xhiذi ة حhi ihi 8 on}t L_wU7m6K!IݼL L hio}Lh8hi׍iLmhhiiؐiLh)ih)jkjk 묩p}8 kȭ8 kȌ ȩk񩌅 جȌ `i(`2q}3؅ȱ`Q #ompilation,ength,ine!utorun,i`` ة حl9)r}ՠ j`l 4؅5؅ƍ 8i no p0 wxs}L h)hhૐ䠂L۠ 8ɛ;LaAHɛ; Lhi#(Șe t}Ljki#kLL(6ȱɛL;)i B7L-X2kLLi BXki Lu})BIȱ)R@I} %ditor#ompiler"ug&ile/ptions ؠQ>'  *LHȱȱHH  hh }he> *ج> * ؠLL` Xhi>i" > *حjmhhi>} *LLLhi 'hi  hi kHjkH ɛ hHɛ} h k mkkjhHkjLhH0Chiiik8k}k8k LmLHjhȱh jk hȹkȹ k}`0Pp)` i `8` `ADCANDASLBCCBCSBEQBITBMIBNEBPLBRKBVCBVSCLCCLDCLICLVCMPCPXCPYDECDEXDEYEORINCINXINYJMPJSRL}DALDXLDYLSRNOPORAPHAPHPPLAPLPROLRORRTIRTSSBCSECSEDSEISTASTYSTXTAXTAYTSXTXATXSTYA...A   #   ,X  ,Y  ,X  },Y (,X)(),Y() fflffff'ffTuruuuu{EE`iE`QE`!EE`-EE`~xox}Qx$xxB ]WZ]WZW]WZ W]WZ0W]WZ9393/d;=>$o;=H0ԭ1ԭ ԥҭޅX ޅYL hܢ }ܝ)˅Hܥȥȥi( ݠ q D /M ɛ ) L@ݠ  }L@ M D ޠ (   D DL@ݩ ЩƍЩȍЩIԩ܍ԩ"ԩ؍ ԩX˅Y`lޅmޅ`Hpސpʆ }  O ݈h`@l Dީ Z߰ 4ޠȑno LL ݭpe` ^I^`eގfތg`eޮfެg` }ʅ`ީpLޅ ީ` ߰`ލp ݥH hlެm Qޠɛ |^( }{Lߩ{{^(p{pޭ;m{lސmޥ^i(^_ ߐ '^ [ޅlތm`lHmH lލ }mލhmhlޭo 8`nސ`lލ߭mލLylޅmވɛl8(lްm`ɛɛLe }i(mސlސlތm` ݠɛ'Șelޥim`̅˅̞߱ﭞ`荞ߢLD }΅ׅ΅̞߱ﭞ` D ݥeɛ``  (L LD  }LD D Zߐp Lo88nި8nޅein8nްo``noގn8 }oް88譞eiΞmnލnސo``  O L D ݢ O ݠL } DpސLD Dpްp8LDޢ  iHih` d` D e LD ` D  } + LDޭlHmH ߭lލ߭mލhmhlީ͟ ͞ߐ8`h i$hhްiޢ8` Z߰8`hi }i` Dޥi pސpʆLDޛ~"C8p5 }UPRR OQ8`OQQ㘝O`Q8OSQRPRT` V`mP" lOUmR`l }Q nޅmQnޅoޅmRoޅ8lޅmޅ UOmQOPmRPOPlޅm }ޅQ8QRQ R LD޵8`Oܝ`lލOmލPܝ`lލQmލR }ܝ` V` qޭOPQRn8QHoRH hRhQn8SnޭoTo %LPlީmީL % q LDލS }T % ` mT lS dL L LpU  U q LDީU d UL)` CL })` "L  O ਜ਼Lp( ݠ'ɛ CL D Zߐ p 4ޢ L Qޥ e^i_L[ܜ2b "L5 } ʢ Z )`*aL' hLlލnީmލoީhލiީ`H܍ҩ q LDީHܩV  } BLܩJBKDELܩ BDEHILܩ  ]ҍҍҩ` nލ }oލ 8nލoލ 0EHmnލnލwImoލoލx 0L 0 0 (`(` i4! }d8d HܠҌL V O L= n8 }o ML 0L 0 0 ` [i)[\詀 =\ɛ`~ |\[ }ҰӅȱȱ[ȱ\i` [QȩR[E M|ȑ[|ɛ ȑ[Șe }\ MZRȑ[C`(e` ) OY H hY\Y MLgY0Y8(Lg } Y`Я`I[`s !sembler7yjscie7czytajplik:apiszplik:apisz/d$o3kasujplik93pecyfikacja)/% }rror 8`` Qީ.  [8` 9: L^)` i@`8` `@HHH Ҍ) }) Lɀ IL ILꊮ a{8 M덣ҥ hhh@`HH }HH) L .0VΤ+Υ!Φ L ҍҩ }ҍhhh@lj;k+*opui-=vcbxz436521, .nm/reytwq907~8<>fh }dgsaLJ:K\^OPUI_|VCBXZ$#&%"![ ]NM?REYTWQ()'@}FHDGSA {   ` } } @Cfffffff>`<|fl0fF68of;p88pf< 80 } 0 ~~`0 0```nf>ff~fff~~f<flxxl }f`````~cwkccfv~~nf8pp8? }ww<~~~< }x`x`~<~~<0~0 ~ <~~<<>f>``|ff|<```<>ff>>ff>|``|fff8< }<``lxlf8<fkc|ffffff>|f```>`<|~ffff>fff<ck>6f< }x~ 0~<~~<~x|nf8x8h9h):HHӭ:H9@ 0;BJKDE }V0}  T L` 򢶠 B `BHILV` BLVDisc ErrorD1:*.*Big Asembler by }Henryk Cygert Gdansk 1990.Tg505 `:5`3455 &6ʭ603}734}84 }65Ԭ580m334345` d' 340?48#37?3873484Ո }έ3i0?`34505 `2`1.3.45345`34505`GA }:` 4 .3.45345`80 8 `34 _BA4 _@?`)HJJJJh uH uh`i0:i` } H hɛ,) `;<L>L+L }- L* L?$g'S@ Z ` ` פּmmL8L } `L? `L?e`&%rroro7olna2!-  %dytor5ruchom!semblacjasprawdzajaca! }semblujdo2!-u!semblujnaurzadzenie-onitor$isasembluj7czytaj:apisz7yczysc+atalog$ysku$os 'ܩҍ#$st }H܍ҩة67 !ܩ  Hh E?8 ̢ ܩ̢  LT < }BL  eɿߩe L];SL\ L\S B܅C܅ }ȭ 6܌9 CSL]ע ܢ +̎,̢ &̎'̭9 C 0̎1 'L?8 H@8 h`!89 }LLL ?L]   - *L 'L] 0ܢ` 8 - -L򩸢  }ܢHHIh E?8 4 'L/dadresu ܩ ܩ! Lu`$lugosc ܩ Ln }!4!7%7 2350?:*8 ذբ ܩ ܭ E?8  C?8  }" /L]_wU7m6K!IL6 L6 }L8׍L6miؐL6)̅)  } CA8 ȭB8 Ȍ ȩ :υ $ܬȌ ` }i(`D܅E܅ȱ`!F܅G܅ 8i #$ %0 },d-eL _ݶૐ栂Luݠ ɛ;LAHɛ; Lh#(Șe } Lu # LuL(6ȱɛLu;) 7L-X2 LuL X i L }BGȱR@I<8 8 0 Lu L   Lu  }a  L: `ɛ;,X`YLu`;,(*%.:: ?0L3Lu! } s L]Lv!LsȌs s`utƍ 0 9LutssHID BE }6Luu``ȱ" 'Lu _!ɛ $ lڠLu) } ZL3L LuY"! "Y`8`H8XXYhȱX`he }Lz0 {@:`` Z LuH!h=L: ZL3 Z"Luȑ } Zhɛ= Lu ?ȭȭȘeL3ȱ=Lu Z 0`ȩ* }C8Lu  8LL: L: Z Lu  }L3ɛ l` l`e`` E ܢ?8 8'#$ɛ } $ܑ&#$ 3ܩHܩL] " 3 <ܭmԩL]L } ' E? C? Ha H ɛ hHɛ h C m }AB hH LjhHݖ0Cii 8 8  ELY }mL&Hhȱh E ?hȹa ȹa `0Pp)` i ` }8` `ADCANDASLBCCBCSBEQBITBMIBNEBPLBRKBVCBVSCLCCLDCLICLVCMPCPXCPYDECDEXDEYEORINCINXINYJMPJSRLDALDXLDYLSRNOPORAPHAPHPPL }APLPROLRORRTIRTSSBCSECSEDSEISTASTYSTXTAXTAYTSXTXATXSTYA...A   #   ,X  ,Y  ,X  ,Y (,X)(),Y() ff }lffff'ffTuruuuu{EE`iE`QE`!EE`-EE`~xoxQx$xx }B ]WZ]WZW]WZ W]WZ0W]WZ9393`<|fl0fF68of;p88pf< 80 0 ~~`0 0` }``nf>ff~fff~~f<flxxlf`````~cwkccfv~~n }f<>f?<```<`<|<~~~<~ 0~x`x`~<~~ }<0~0 ~ <~~<<>f>``|ff|<```<>ff>>ff>|``|fff8<<``lxlf8< }fkc|ffffff>|f```>`<|~ffff>fff<ck>6f< x~ 0~<~~< }~x|nf8x8Y 01"/Щ@ԩ΍  \78HHL }~x|nf8x8Y 01"/Щ@ԩ΍  \78HHL  ;K-BUFOR DO DEKOMPRESJI(3 STRONY).K=49152-768.KODLSB=K.KODMSB=K+256.TABKOD=K+512.RUNLDA #<16384LDX #>16384};*** Wywolanie:;A i X Adres bloku danych;*** Powrot:;A i X zawieraja adres nastepnego;bajtu po bloku danych,moze to b}yc;nast. blok danych do dekompresji.;-------Dekompresor---------PHPSEISTA 254STX 255LDA #33STA 54272LDA #DLSTA 54274STX 54275LDA #$FASTA 53271LDX #0STX 53272JSR PRTTXTLDY #3.LXLDA (254),YSTA Z,YDEYBPL LXLDY #4}LDA (254),YPHAINYLDA (254),YPHA.LYINYLDA (254),YSTA KODY-6,YCPY #8BCC LY;-LDA #<-512STA LENLDA #>-512STA LEN+1}LDA 254CLCADC #9STA GET+1LDA 255ADC #0STA GET+2LDA #KODLSBSTA PUT+2;-JSR DECOMPBLKJSR SOR}TUJLDA GET+1STA Z1LDA GET+2STA Z1+1PLASTA KODY+1PLASTA KODYLDA #0STA PT1LDA #0SECSBC Z+2STA LENLDA #0STA }BITSBC Z+3STA LEN+1LDA ZSTA PUT+1LDA Z+1STA PUT+2LDX #11JSR PRTTXTJSR LOP1LDA Z1LDX Z1+1PLPRTS.LOP1TSXSTX S }TOS.LOPJSR GETBYTEJSR PUT1JMP LOP.GETBYTELDA #0STA KODLDA #128STA KOD+1LDX MINSTX LKODJSR GETBIT.L4LDX LKOD!}LDY TMIN,XSTY MAXLDY TMIN-1,XLDA KOD+1.L3CMP KODMSB,YBEQ L2.L6INYCPY MAXBNE L3LDX #1INC LKODJSR GETBITLDA LKOD"}CMP #16BCC L4BRKJMP L4.L2LDA KODCMP KODLSB,YBNE L5LDA TABKOD,YSTA 53272RTS.L5LDA KOD+1JMP L6.GETBIT;X-O I#}LE BITOW POBR. Z PLIKU ROL.KODLDA BITBNE G1.Z1=*+1LDA 1000STA BYTEINC Z1BNE *+5INC Z1+1LDA #8STA BIT.G1LSR BYTE$}ROR KOD+1ROR KODDEC BITDEXBNE GETBITRTS;---------------.DECOMPBLK;PUT,GET,LEN OKRESLICTSXSTX STOSLDA #0STA PT%}1.L1JSR GETJSR PUT1JMP L1.PUT1;TYLKO A i X !!!LDX PT1BNE CONTCMP KODY+1BNE PT2LDA #1STA PT1RTS.PT2CMP KO&}DYBNE PUTLDA #2STA PT1RTS.PUTSTA 10000PHAINC PUT+1BNE *+5INC PUT+2INC LENBNE *+5INC LEN+1LDA LENORA LEN+1'}BEQ *+4PLARTSLDX STOSTXSRTS.CONTLDX PT1CPX #1BNE NEXTSTA PT1LDA #0.S1LDX #0JSR PUTINXCPX PT1BNE *-7LDA #(}0STA PT1RTS.NEXTCPX #3BEQ *+9STA PT1+1INC PT1RTSSTA PT1LDA PT1+1JMP S1.GETLDA 1000INC GET+1BNE *+5INC GET+2)}RTS;---.PRTTXTLDY #0LDA STXT,XSTA KOM,YINXINYCPY #11BCC *-10RTS.SORTUJLDX #0TXASTA TABKOD,XINXBNE *-5L*}DX #15LDA #0STA TMIN,XDEXBPL *-4LDA #255STA LEN+1LDX #0.N2LDA KODLSB,XORA KODMSB,XBNE N1TXATAY.N3LDA KODMSB++}1,YSTA KODMSB,YLDA KODLSB+1,YSTA KODLSB,YLDA TABKOD+1,YSTA TABKOD,YINYCPY LEN+1BCC N3LDA #0STA KODLSB,YSTA KODMSB,,}YDEC LEN+1DEX.N1CPX LEN+1BEQ N4INXJMP N2.N4INC LEN+1;-----LDX #0STX LENLDY MIN.B3STY KODLDA LENSTA TMIN-1,Y-}LDX LEN.B2LDA KODMSB,XAND TSORT+8,YSTA BYTELDA KODLSB,XAND TSORT,YORA BYTEBNE B1STX KOD+1LDA TABKOD,XPHALDA KODL.}SB,XPHALDA KODMSB,XPHAINX.B4DEXLDA TABKOD-1,XSTA TABKOD,XLDA KODLSB-1,XSTA KODLSB,XLDA KODMSB-1,XSTA KODMSB,XCPX/} LENBNE B4PLASTA KODMSB,XPLASTA KODLSB,XPLASTA TABKOD,XLDX KOD+1INC LEN.B1INXCPX LEN+1BNE B2LDY KODINYCPY #0}16BCC B3RTS.DL ,66,TXT,65,DL.TMIN ('................').TSORT,'11111111,'11111111,'11111111,'11111111,'111111111},'11111111,'11111111,'11111111,'01111111,'00111111,'00011111,'00001111,'00000111,'00000011,'00000001.TXT,'00000002}0,'00000000,'00000000,'00000000,'00000000,'00000000,'00000000,'00000000,'00000000.KOM=TXT+10*=*+23.Z ,0,0,0,03}.KOD ,0,0.LKOD ,0.BYTE ,0.KODY ,0,0.MIN ,0.MAX ,0.BIT ,0.PT1 ,0,0.LEN ,0,0.STOS ,0.STXT (' INICJAC4}JA ') ('DEKOMPRESJA');--------------- ,0.MAX ,0.BIT ,0.PT1 ,0,0.LEN ,0,0.STOS ,0.STXT (' INICJAC/;*******************************;Opis do asemblera i edytora;*******************************;***************************6}****;Polecenia edytora;*******************************;*************************************;CONTROL +  - kurso7}r do gory; - : - +  - kursor na dol; - : - + SHIFT +  - 20 linii w gore; - : - + - : - +  - 20 linii w dol;8} - : - + - : - + W - zapisz plik; - : - + - : - + R - wczytaj (dopisz); - : - + - : - + E - wyjdz do asembl.; SHIFT + 9}TAB - poczatek pliku;CONTROL + TAB - koniec pliku; TAB - kursor do gory; SHIFT + DELETE - u:}sun linie; SHIFT + INSERT - wstaw linie; SHIFT + CLEAR - skasuj program;*************************************;;}*******************************;Skladnia asemblera;*******************************;*************************************<};Po sredniku pisze sie komentarz;-------------------------------------;format deklaracji etykiety;------------------------=}-------------;.ETYKIETA=* * - licznk programu;.ETYKIETA=1000 - nadanie wartosci;.ETYKIETA=WYRAZENIE - np *-3,ET>}YKIET+5;;.ETYKIETA LDA #100;;.ETYKIETA;LDA #100;; ETYKIETA - starsz?}y bajt;;-------------------------------------;prezentacja liczb;-------------------------------------; 1000 @} - dziesietnie;$FFFF - heksadecymalnie;'010110 - binarnie;-------------------------------------A};umieszczanie danych podczas asemblacji;-------------------------------------;,100,'111111,$FFFF,255 to;po asemglacji zajmuje dwa bajty;chyba , ze wystapi < lub > przed nia;;("kody atascii");('kodyC} ekranowe');;("kody atascii"),155,20,189 itp.;-------------------------------------;zasady umieszczenia danych w pamieciD}; podczas asemblacji;-------------------------------------;*=wyrazenie,wartosc - licznik programu;%=wyrazenie,wartoE}sc - gdzie umiescic; kod wynikowy tylko przy opcji 2 asem.;; Dane te byc umiesczone na pocza-;tku programu.Jesli nF}ie sa ustawiane to;maja nadane wartosci:;;*=46080;%=* (%=46080);-------------------------------------;**************G}*****************;program przykladowy;*******************************;-------------------------------------;Nacisnij CONTH}ROL+SHIFT+E i wybierz 2;nastepnie 4 (zobacz etykieta tecza);i uruchom przez opcje 7 adres 25600;--------------------------I}-----------*=25600%=*.TECZA=*LDA #0STA 559.SKOK1 LDA 54283ADC 20STA 53274ADC 20STA 53274JMP SKOK1;-----------J}--------------------------;wyjscie z programu przez BREAK (RESET);-------------------------------------;A teraz do dzielaK} i powodzenia !!!!!!!---;wyjscie z programu przez BREAK (RESET);-------------------------------------;A teraz do dziela.EKRAN=32768.GRPM=32768*=38000%=38000.DL=*,128,112,66,EKRAN('"""""""""""""""""""""""'),65,DL.STARTLDA #DLSTA 561LDA #61STA 559LDA #>GRPMSTA 54279LDA #144STA 756LDA #0STA 52360LDA #0STA 623LDA #0STA 710LDAN} #10STA 709LDA #12STA 704LDA #10STA 705LDA #8STA 706LDA #6STA 707LDX #0TXASTA GRPM+1024,XSTA GRPM+1280,XSTA GRO}PM+1536,XSTA GRPM+1972,XDEXBNE *-13LDX #>PRVBLDY #GRPM+1024STA POS1+4LDV}A PY,XTAYLDX #8.POS1=*+1LDA MASKA,XSTA 1536,YDEYDEXBPL *-8LDX PXZNLDA PX,XSTA 53248,XLDA KX,XBNE *+7DEC PX,XW}BNE *+5INC PX,XLDA KY,XBNE *+7DEC PY,XBNE *+5INC PY,XLDA PX,XCMP #63BCS *+10LDA KX,XEOR #1STA KX,XCMP #187BCSX} *-10LDA PY,XCMP #25BCS *+10LDA KY,XEOR #1STA KY,XCMP #210BCS *-10RTS.MASKA=*,'00000000,'00111100,'01011010,Y}'01111110,'01011010,'01100110,'00111100,'00000000,'00000000.MASKAa=*,'00000000,'00111100,'01011010,'01111110,'01Z}111110,'01100110,'00100100,'00011000,'00000000.MASKAb=*,'00000000,'00111100,'01011010,'01111110,'01111110,'01000[}010,'00100100,'00011000,'00000000.MASKA1=*,'00000000,'00011000,'01111110,'01111110,'00000000,'01111110,'01111110\},'00011000,'00000000.MASKA1a=*,'00000000,'00011000,'00111100,'00111100,'00000000,'00111100,'00111100,'00011000,]}'00000000.MASKA1b=*,'00000000,'00011000,'00011000,'00011000,'00000000,'00011000,'00011000,'00011000,'00000000.M^}ASKA2=*,'00000000,'00111100,'01111110,'11011011,'00000000,'11011011,'01111110,'00111100,'00000000.MASKA2a=*,'00_}000000,'00111100,'01111110,'01111110,'00011000,'01111110,'01111110,'00111100,'00000000.MASKA2b=*,'00000000,'0011`}1100,'00111100,'00111100,'00011000,'00111100,'00111100,'00111100,'00000000.MASKA3=*,'00000000,'01111110,'1101101a}1,'00000000,'00000000,'00000000,'11011011,'01111110,'00000000.MASKA3a=*,'00000000,'00000000,'01111110,'11011011b},'00000000,'11011011,'01111110,'00000000,'00000000.MASKA3b=*,'00000000,'00000000,'01111110,'11011011,'11011011,'c}01111110,'00000000,'00000000,'00000000,'00000000.MASKA3b=*,'00000000,'00000000,'01111110,'11011011,'11011011,',.GRPM=32768.EKRAN=32768+2048*=25600%=25600.DL=*,128,112,66,EKRAN('"""""""""""""""""""""""'),65,DL.STARTLDA #DLSTA 561LDA #61STA 559LDA #>GRPMSTA 54279LDA #144STA 756LDA #0STA 52360LDA #0STA 623LDA #4STA 71f}0LDA #10STA 709LDA #PRDLSTA 513LDA #12STA 704LDA #10STA 705LDA #8STA 706LDA #6STA 707LDX #0g}TXASTA GRPM+1024,XSTA GRPM+1280,XSTA GRPM+1536,XSTA GRPM+1972,XDEXBNE *-13LDX #>PRVBLDY #GRPM+1024STA POS1+4LDA PY,XTAYLDX #8.POS1=*+1LDA MASKA,XSTA 1536y},YDEYDEXBPL *-8LDX PXZNLDA PX,XSTA 53248,XLDA KX,XBNE *+7DEC PX,XBNE *+5INC PX,XLDA KY,XBNE *+7DEC PY,XBNE z}*+5INC PY,XLDA PX,XCMP #63BCS *+10LDA KX,XEOR #1STA KX,XCMP #187BCS *-10LDA PY,XCMP #25BCS *+10LDA KY,XEOR #1{}STA KY,XCMP #210BCS *-10RTS.MASKA=*,'00000000,'00111100,'01011010,'01111110,'01011010,'01100110,'00111100,'000|}00000,'00000000.MASKAa=*,'00000000,'00111100,'01011010,'01111110,'01111110,'01100110,'00100100,'00011000,'000000}}00.MASKAb=*,'00000000,'00111100,'01011010,'01111110,'01111110,'01000010,'00100100,'00011000,'00000000.MASKA1=*~},'00000000,'00011000,'01111110,'01111110,'00000000,'01111110,'01111110,'00011000,'00000000.MASKA1a=*,'00000000,}'00011000,'00111100,'00111100,'00000000,'00111100,'00111100,'00011000,'00000000.MASKA1b=*,'00000000,'00011000,'0}0011000,'00011000,'00000000,'00011000,'00011000,'00011000,'00000000.MASKA2=*,'00000000,'00111100,'01111110,'1101}1011,'00000000,'11011011,'01111110,'00111100,'00000000.MASKA2a=*,'00000000,'00111100,'01111110,'01111110,'000110}00,'01111110,'01111110,'00111100,'00000000.MASKA2b=*,'00000000,'00111100,'00111100,'00111100,'00011000,'00111100},'00111100,'00111100,'00000000.MASKA3=*,'00000000,'01111110,'11011011,'00000000,'00000000,'00000000,'11011011,'}01111110,'00000000.MASKA3a=*,'00000000,'00000000,'01111110,'11011011,'00000000,'11011011,'01111110,'00000000,'00}000000.MASKA3b=*,'00000000,'00000000,'01111110,'11011011,'11011011,'01111110,'00000000,'00000000,'00000000.POC2} ,2,4.PRDL=*PHATXAPHADEC POC2DEC POC2+1LDX #80.PRSKLDA POC2BNE *+5INC MATPOC2,XLDA POC2+1BNE *+5INC MATPOC3,X}INC MATPOC1,XLDA MATPOC1,XSTA 54282STA 53252LDA MATPOC2,XSTA 53253LDA MATPOC3,XSTA 53254DEXBNE PRSKLDA POC2BNE *+}7LDA #2STA POC2LDA POC2+1BNE *+7LDA #3STA POC2+1LDX #3STA 53252,XDEXBPL *-4PLATAXPLARTI.MATPOC1=**=*+81%=%+}81.MATPOC2=**=*+81%=%+81.MATPOC3=**=*+81%=%+81X #3STA 53252,XDEXBPL *-4PLATAXPLARTI.MATPOC1=**=*+81%=%+9 *=25600%=25600.EKRAN=32768.ILE=80.START=*LDA #0STA 710LDA #DLSTA 561LDX #>PRVBLDY #PRDLSTA 513LDA #192STA 54286JMP START1.PX ,0.PRZN ,1.PRVB=*PHATXAPHALD!}A PRZNBEQ GORALDX PXINXCPX #ILEBCC *+7LDA #0STA PRZNSTX PXLDA #15STA TU-1,XLDA #15+128STA TU,XJMP CONT.GORA!}LDX PXDEXBNE *+7LDA #1STA PRZNSTX PXLDA #15+128STA TU,XLDA #15STA TU+1,X.CONTPLATAXPLA,76,138,194.PRDL=*P!}HATXAPHATYAPHALDX #13.PRS1LDA KOLORY,XSTA 54282LDY PRZNBNE *+5STA 53271STA 53272DEXBPL PRS1LDA 709STA 53271!}LDA 710STA 53272PLATAYPLATAXPLARTI.KOLORY ,2,4,6,8,10,12,14,14,12,10 ,8,6,4,2.SPEEDER=1.START1=*LDA !}#PROCSTA 547JMP PRZESOW.SPEED ,0.ZN ,0.PROC=*PHATXAPHATYAPHALDA SPEEDBNE EXITLDA ZNAND!} #3CMP #3BNE *+10INC ADRBNE *+5INC ADR+1STA 54276DEC ZNLDA #`<~`~fff>`>``f``~ffk`f>~f`%}f``f```>>c<| f>`<<>``<`<<%}x%}%}%}%}$H*=15000%=15000.ADRES=33408JMP START.DL,112,64+15.ADR ,ADRES,64+15.ADR1 ,ADRES+40,64+15.ADR2 ,ADRES+80,64+15.ADR)}3 ,ADRES+120,64+15.ADR4 ,ADRES+160,64+15.ADR5 ,ADRES+200,64+15.ADR6 ,ADRES+240,64+15.ADR7 ,ADRES+280,64+15.ADR8 ,AD)}RES+320,64+15.ADR9 ,ADRES+360,64+15.ADR10 ,ADRES+400,64+15.ADR11 ,ADRES+440,64+15 .ADR12 ,ADRES+480,64+15.ADR13 ,AD)}RES+520,64+15.ADR14 ,ADRES+560,65+15.ADR15 ,ADRES+600,64+15.ADR16 ,ADRES+640,64+15.ADR17 ,ADRES+680,64+15.ADR18 ,AD)}RES+720,64+15 .ADR19 ,ADRES+760,64+15.ADR20 ,ADRES+800,64+15.ADR21 ,ADRES+840,64+15.ADR22 ,ADRES+880,64+15.ADR23 ,A)}DRES+920,65,DL.START=*LDA #DLSTA 561JMP RUCH.LOOPLDA 20CMP 20BEQ *-2RTS.P LDA ADRCLCAD)}C #1STA ADRRTS.P1LDA ADR1CLCADC #1STA ADR1RTS.P2LDA ADR2CLCADC #1STA ADR2RTS.P3LDA ADR3CLCADC #1STA )}ADR3RTS.P4LDA ADR4CLCADC #1STA ADR4RTS.P5LDA ADR5CLCADC #1STA ADR5RTS.P6LDA ADR6CLC ADC #1STA ADR6RT)}S.P7LDA ADR7CLCADC #1STA ADR7RTS.P8LDA ADR8CLCADC #1STA ADR8RTS.P9LDA ADR9CLCADC #1STA ADR9RTS.P10)}LDA ADR10CLCADC #1STA ADR10RTS.P11LDA ADR11CLCADC #1STA ADR11RTS.P12LDA ADR12CLCADC #1STA ADR12RTS.P13)}LDA ADR13CLCADC #1STA ADR13RTS.P14LDA ADR14CLCADC #1STA ADR14RTS.P15LDA ADR15CLCADC #1STA ADR15RTS.P1)}6LDA ADR16CLCADC #1STA ADR16RTS.P17LDA ADR17CLCADC #1STA ADR17RTS.P18LDA ADR18CLCADC #1STA ADR18RTS.P)}19LDA ADR19CLCADC #1STA ADR19RTS.P20LDA ADR20CLCADC #1STA ADR20RTS.P21LDA ADR21CLCADC #1STA ADR21RTS.)}P22LDA ADR22CLCADC #1STA ADR22RTS.P23=*LDA ADR23CLCADC #1STA ADR23RTS.RUCH=*LDX #0.SKJSR LOOPJSR ADRIN)}XCPX #5BEQ ENDJMP SK.ENDJMP *TS.P23=*LDA ADR23CLCADC #1STA ADR23RTS.RUCH=*LDX #0.SKJSR LOOPJSR ADRIN(%*=25600%=25600.ZWROT=181.ZWR1=120.TR=2.EKRAN=48192.SKOK=$C28A.C1=16.C2=32.C3=64.C4=128.START=*LDA #DLSTA 561LDA #PRDLSTA 513LDA #192STA 54286LDA #7LDX #>PRVBLDY #PROCSTA 547LDA #DLSTA 561LDX #>PRVBLDY #PRDL1}STA 513LDA #192STA 54286JMP PRZESOW .PRVB=*PHATXAPHALDA PRZNBEQ GORALDX PXINXCPX #ILEBCC *+7LDA #0STA PR1}ZNSTX PXLDA #15STA TU-1,XLDA #15+128STA TU,XJMP CONT.GORALDX PXDEXBNE *+7LDA #1STA PRZNSTX PXLDA #15+128STA 1}TU,XLDA #15STA TU+1,X.CONTPLATAXPLA,76,138,194.PRDL=*PHATXAPHATYAPHALDX #13.PRS1LDA KOLORY,XSTA 54282L1}DY PRZNBNE *+2STA 53271DEXBPL PRS1LDA #0 STA 53271LDA 710STA 53272PLATAYPLATAXPLARTI.KOLORY ,2,4,6,8,10,12,1}14,14,12,10 ,8,6,4,2.PROC=*PHATXAPHATYAPHALDA SPEEDBNE EXITLDA ZNAND #3CMP #3BNE *+10INC ADRBNE 1}*+5INC ADR+1STA 54276DEC ZNLDA #SCROLGORASTA 547LDA #DLS5}TA 561JMP * .SCROLGORA=*PHATXAPHATYAPHALDA SP BNE EXITLDA ZNAND #3CMP #3BNE *+10INC ADRBNE 5}*+5INC ADR+1STA 54276DEC ZNLDA #BUFOROKIEN STA BUFADR+1 RT=}S ;MENU; A - ostatnio podswietlona opcja; X,Y -adres tablicy nazw funkcji; X - mlodszy bajt; Y - starszy bajt;Wyjscie >}:; A - numer wybranej funkcji;Sterowanie :; ZMNIEJSZ - kod klawisza Lewo/Gora; ZWIEKSZ - kod klawisza Prawo/dol; EXITME>}NU - sposob reakcji na inne klawisze; =$00 - wyjscie tylko po RETURN; <$80 - i na Esc; =$80 - na wszystko oprocz ZMNIEJ>}SZ, ZWIEKSZ; wybor opcji ; Wy :; A -numer opcji; C -rodzaj klawisza; C=0 -normalny; C=1 -inny ST>}A OSTOPCJA STA OPCJA STX ADRESM STY ADRESM+1 LDY #0 LDA (ADRESM),Y STA >}ILOSCOPCJI INC ADRESM BNE OMINM INC ADRESM+1OMINM TAX PISZMENU SEC J>}SR PISZFUNKCJE DEX BPL PISZMENU LDX OSTOPCJA CLC JSR PISZFUNKCJEPETLAMENU >} JSR F2FD CMP ZMNIEJSZ BNE NIEWLEWO DEC OPCJA BPL NIENAOKOLO LDA ILOSCOPCJI>} STA OPCJANIENAOKOLO SEC LDX OSTOPCJA JSR PISZFUNKCJE LDX OPCJA STX O>}STOPCJA CLC JSR PISZFUNKCJE JMP PETLAMENUNIEWLEWO CMP ZWIEKSZ BNE NIEWPRAWO > } INC OPCJA LDA ILOSCOPCJI CMP OPCJA BCS NIENAOKOLO LDX #0 STX OPCJA > } BEQ NIENAOKOLONIEWPRAWO CMP #155 BNE NIERETURN CLC LDA OPCJA RTS NIERETURN> } LDX EXITMENU BEQ PETLAMENU BMI MENUQUIT CMP #27 BNE PETLAMENUMENUQUIT > } SEC LDA OPCJA RTS ;OPCJA .BYTE 0OSTOPCJA .BYTE 0ILOSCOPCJI .BYTE 0ZMNIEJSZ .BYTE "+"ZWIEKSZ .BY> }TE "*"EXITMENU .BYTE 0ADRESP = $FE;WINDMENU;tworzy menu okienkowe;we :; A - ostatnio podswietlona opcja; X - mlod>}szy; Y - starszy bajt adresu tablicy nazw funkcji PHA STX OPCJA STY OSTOPCJA LDA #'- >} STA ZMNIEJSZ LDA #'= STA ZWIEKSZ LDA #$7F STA EXITMENU STX ADRESP >} STY ADRESP+1 LDY #$00 LDA (ADRESP),Y STA WOKNA INY INY INY >} LDA (ADRESP),Y TAX DEX STX XOKNA INY LDA (ADRESP),Y TAX >}DEX STX YOKNA LDY #$01 LDA (ADRESP),Y PHA INY LDA (ADRESP),Y >} STA ADRESP+1 PLA STA ADRESP LDY #$00 LDA (ADRESP),Y STA SOKNA PLA >} STA TEMPOPCJA JSR SETBUFADR JSR SAVESCREEN LDY #$00 LDA (ADRESP),Y JSR R>}AMKA LDX OPCJA LDY OSTOPCJA LDA TEMPOPCJA JSR MENU STA TEMPOPCJA JSR SE>}TBUFADR PHP JSR RESTSCREEN LDA TEMPOPCJA PLP RTS ;TEMPOPCJA .BYTE 0;RAMKA>};we :; WOKNA - liczba opcji; XOKNA - wsp. X; YOKNA - wsp. Y lewego gornego; rogu okna; A - szerokosc wnetrza okna; >} STA SOKNA LDX XOKNA LDY YOKNA JSR POSITION LDY #$00 LDA #' JSR PR>}INTCHAR LDA #' JSR PUTHORIZON LDA #' LDY SOKNA INY JSR PRINTCHAR >} LDA #'| JSR PUTVERTICAL LDX XOKNA LDA YOKNA SEC ADC WOKNA TAY >} INY JSR POSITION LDY #$00 LDA #' JSR PRINTCHAR LDA #' JSR PU>}THORIZON LDA #' LDY SOKNA INY JSR PRINTCHAR LDA XOKNA PHA S>}EC ADC SOKNA STA XOKNA LDA #'| JSR PUTVERTICAL PLA STA XOKNA >} RTS ;PUTHORIZON PHA LDY SOKNA INY PUTHORLOOP PLA PHA JSR PRINTCH>}AR DEY BNE PUTHORLOOP PLA RTS ;PUTVERTICAL PHA LDY YOKNA > }INY STY TYOKNA LDY WOKNA STY TWOKNAPUTVERTLOOP LDX XOKNA LDY TYOKNA J>!}SR POSITION PLA PHA LDY #$00 JSR PRINTCHAR INC TYOKNA DEC TWOKNA >"} BPL PUTVERTLOOP PLA RTS ;XOKNA .BYTE 0YOKNA .BYTE 0WOKNA .BYTE 0SOKNA .BYTE 0TYOKNA>#} .BYTE 0TWOKNA .BYTE 0;LINEMENU;tworzy menu typu linijkowego;we :; A - ostatnio podswietlona opcja; X - mlodszy; >$}Y - starszy bajt adresu tablicy nazw funkcji PHA LDA #$00 BEQ LINEMSKIPSLINEMENU PHA >%} LDA #$80LINEMSKIP STA EXITMENU LDA #'+ STA ZMNIEJSZ LDA #'* STA ZWIEKSZ>&} PLA JMP MENU;MOVESCREEN;przemieszcza fragment pamieci;ekranu z/do bufora;we :; XOKNA - wsp. X okna>'}; YOKNA - wsp. Y okna; WOKNA - wysokosc okna; SOKNA- szerokosc okna; BUFADR - adres bufora okna; C - kierunek przemieszc>(}zenia; C=1 do bufora; C=0 z bufora PHP LDY YOKNA STY TYOKNA LDX XOKNA >)} JSR POSITION LDY WOKNA INY INY STY TWOKNA INC SOKNAMOVELOOP LDY SOK>*}NAMOVELOOP1 PLP BCC FROMBUFOR LDA (100),Y STA (BUFADR),Y BCS MOVESKIPFROMBUFO>+}R LDA (BUFADR),Y STA (100),YMOVESKIP PHP DEY BPL MOVELOOP1 CLC >,} LDX SOKNA INX TXA ADC BUFADR STA BUFADR BCC MOVESKIP1 INC BUFADR>-}+1MOVESKIP1 DEC TWOKNA PHP INC TYOKNA LDX XOKNA LDY TYOKNA JSR POSITI>.}ON PLP BPL MOVELOOP PLP DEC SOKNA RTS ;SAVESCREEN;zapamietuje fragment ekra>/}nu w buforze;we :; X - wsp. X okna; Y - wsp. Y okna; WOKNA - wysokosc okna; SOKNA- szerokosc okna; BUFADR - adres bufo>0}ra okna SEC JMP MOVESCREEN;RESTSCREEN;odtwarza fragment ekranu z bufora; we : j.w. CLC >1} JMP MOVESCREEN;F2FD LDA #$04 STA $2AKLOOP LDA 764 CMP #$FF BNE KGET >2} LDA $0278 CMP #$0F BNE JGET BEQ KLOOPKGET STA 764 JMP $F2FDJGET L>3}DY #$FFJGLOOP INY ROR A BCS JGLOOP LDA $0284 BNE KEYSK TYA >4}CLC ADC #4 TAY KEYSK LDA KEYTAB,YDELAY LDY #5 STY $021C LDY #$FF >5} STY $022ADELOOP CPY $022A BEQ DELOOP BNE KGET;KEYTAB .BYTE $0E,$0F,$06,$07,$0B,$2D,$0C,>6}$1CTEMPY .BYTE 0DLUGOSC .BYTE 022A BEQ DELOOP BNE KGET;KEYTAB .BYTE $0E,$0F,$06,$07,$0B,$2D,$0C,<& %=$8402*=$8402.CKSUM=$8B.TMPREG=$9E.TEST ,$03,$50 .STARTLDA #$40STA 88LDA #$BCSB8}TA 89LDX #00STX CKSUMSTX CKSUM+1.GETCHECKSUMLDY#0.LOOPLDA CKSTAB,XSTA TMPREG,XINXINYCPX #4BNE LOOPLDY #0.NEXTCB9}LCLDA (TMPREG),YADC CKSUMSTA CKSUMBCC NXT1INC CKSUM+1.NXT1INC TMPREGBNE NXT2INC TMPREG+1.NXT2LDA TMPREGCMP TMPREGB:}+2BNE NEXTLDA TMPREG+1CMP TMPREG+3BNE NEXTLDA #$F8LDX #$0BCMP CKSUMBNE BADCPX CKSUM+1BNE BAD.PRZEPISYWANIELDY #0B;}.LOOP1LDA $4001.LOOP2STA $0000LDA LOOP1+1ADC #1STA LOOP1+1LDA LOOP1+2ADC #0STA LOOP1+2CLCLDA LOOP2+1ADC #1STA LOB<}OP2+1LDA LOOP2+2ADC #0STA LOOP2+2CLCLDA LOOP2+1.SPR1CMP #$02BNE LOOP1LDA LOOP2+2.SPR2CMP #$40BNE LOOP1INYCPY #2B=}BEQ KONIECLDA #$02STA LOOP1+1LDA #$80STA LOOP1+2LDA #$00STA LOOP2+1LDA #$BCSTA LOOP2+2LDA #$FFSTA SPR1+1LDA #$BFB>}STA SPR2+1JMP LOOP1.KONIECLDA #$22PHAPLPPLALDX #$0LDY #$1LDA #$7BJMP $F989.CKSTAB,POCZATEK,KONB?}.BADJMP ($0A).POCZATEK=$BC40.KON=$BC40+52+400+417LDY #$1LDA #$7BJMP $F989.CKSTAB,POCZATEK,KON@: %=$8402*=$8402.CKSUM=$8B.TMPREG=$9E.TEST ,$03,$50 .STARTLDA #$40STA 88LDA #$BCSFA}TA 89LDX #00STX CKSUMSTX CKSUM+1.GETCHECKSUMLDY#0.LOOPLDA CKSTAB,XSTA TMPREG,XINXINYCPX #4BNE LOOPLDY #0.NEXTCFB}LCLDA (TMPREG),YADC CKSUMSTA CKSUMBCC NXT1INC CKSUM+1.NXT1INC TMPREGBNE NXT2INC TMPREG+1.NXT2LDA TMPREGCMP TMPREGFC}+2BNE NEXTLDA TMPREG+1CMP TMPREG+3BNE NEXTBRKLDA #$F8LDX #$0BCMP CKSUMBNE BADCPX CKSUM+1BNE BAD.PRZEPISYWANIELDYFD} #0.LOOP1LDA $4001.LOOP2STA $0000LDA LOOP1+1ADC #1STA LOOP1+1LDA LOOP1+2ADC #0STA LOOP1+2CLCLDA LOOP2+1ADC #1STFE}A LOOP2+1LDA LOOP2+2ADC #0STA LOOP2+2CLCLDA LOOP2+1.SPR1CMP #$02BNE LOOP1LDA LOOP2+2.SPR2CMP #$40BNE LOOP1INYCPFF}Y #2BEQ KONIECLDA #$02STA LOOP1+1LDA #$80STA LOOP1+2LDA #$00STA LOOP2+1LDA #$BCSTA LOOP2+2LDA #$FFSTA SPR1+1LDA #FG}$BFSTA SPR2+1JMP LOOP1.KONIECLDA #$22PHAPLPPLALDX #$0LDY #$1LDA #$7BJMP $F989.CKSTAB,POCZATEK,KFH}ON.BADJMP ($0A)%=$BC40*=$BC40.POCZATEK('BARGARIAN PREZENTS.....')*=*+417(' ******* KOPIER TURBO<->DYSK ******* FI}')*=*+400(' Gdynia-Obluze 11.10.1990 ')*=*+52.KON('!')EZENTS.....')*=*+417(' ******* KOPIER TURBO<->DYSK ******* D?%=25000*=25000.BUFADR=$F8.ADRES=$FC.ADRESM=$FA.POSITION; X - kolumna; Y - wiersz STX $55 SJK}TY $54 LDA $5E PHA LDA $5F PHA JSR $F5AC PLA STA $5F JL} PLA STA $5E RTS ;.PRINTCHAR TAX TYA PHA TXA TAY JM} ROL A ROL A ROL A ROL A AND #$03 TAX TYA AND #$9F JN} ORA $FB49,X TAX PLA TAY TXA STA (100),Y RTS ;.PRINTSTRINGONJO}; X,Y - adres wyswietlanego ciagu; znakow; X - mlodszy bajt; Y - starszy bajt;ciag wypisywany jest w inversie JP} LDA #$80 BNE PRINTSTRING.PRINTSTRINGOFF;ciag wypisywany jest normalnie LDA #$00.PRINTSTRING JQ} PHA STX ADRES STY ADRES+1 LDY #0 LDA (ADRES),Y STA DLUGOSC INYJR} .PRINTLOOP PLA .PRINT PHA ORA (ADRES),Y DEY JSR PRINTCHAR INY JS} INY DEC DLUGOSC BNE PRINTLOOP PLA RTS ;;;.PISZFUNKCJE; X - numer nazwyJT} funkcji w; tablicy nazw funkcji; C - 1 inverseoff; 0 inverseon;Tablica nazw funkcji :; byte ilosc_opcji; word JU}nazwa_funckji,x+256*y; PHA TYA PHA TXA PHA PHP ASL A JV} ASL A PHA TAY INY INY LDA (ADRESM),Y TAX INY JW} LDA (ADRESM),Y TAY JSR POSITION PLA TAY LDA (ADRESM),Y TAX JX} INY LDA (ADRESM),Y TAY PLP BCS INVERSEOFF JSR PRINTSTRINGON JMJY}P WYJSCIE.INVERSEOFF JSR PRINTSTRINGOFF.WYJSCIE PLA TAX PLA TAY JZ} PLA RTS .SETBUFADR LDA # BUFOROKIEN STA BUJ[}FADR+1 RTS .MENU; A - ostatnio podswietlona opcja; X,Y -adres tablicy nazw funkcji; X - mlodszy bajt; Y - stJ\}arszy bajt;Wyjscie :; A - numer wybranej funkcji;Sterowanie :; ZMNIEJSZ - kod klawisza Lewo/Gora; ZWIEKSZ - kod klawiszJ]}a Prawo/dol; EXITMENU - sposob reakcji na inne klawisze; =$00 - wyjscie tylko po RETURN; <$80 - i na Esc; =$80 - na wsJ^}zystko oprocz ZMNIEJSZ, ZWIEKSZ; wybor opcji ; Wy :; A -numer opcji; C -rodzaj klawisza; C=0 -normalny; CJ_}=1 -inny STA OSTOPCJA STA OPCJA STX ADRESM STY ADRESM+1 LDY #0 LDA (ADJ`}RESM),Y STA ILOSCOPCJI INC ADRESM BNE OMINM INC ADRESM+1.OMINM TAX .PISZMENJa}U SEC JSR PISZFUNKCJE DEX BPL PISZMENU LDX OSTOPCJA CLC JSJb}R PISZFUNKCJE.PETLAMENU JSR F2FD CMP ZMNIEJSZ BNE NIEWLEWO DEC OPCJA BPL NIENJc}AOKOLO LDA ILOSCOPCJI STA OPCJA.NIENAOKOLO SEC LDX OSTOPCJA JSR PISZFUNKCJEJd} LDX OPCJA STX OSTOPCJA CLC JSR PISZFUNKCJE JMP PETLAMENU.NIEWLEWO CJe}MP ZWIEKSZ BNE NIEWPRAWO INC OPCJA LDA ILOSCOPCJI CMP OPCJA BCS NIENAOKOLO Jf} LDX #0 STX OPCJA BEQ NIENAOKOLO.NIEWPRAWO CMP #155 BNE NIERETURN CLC Jg} LDA OPCJA RTS .NIERETURN LDX EXITMENU BEQ PETLAMENU BMI MENUQUIT CMP #2Jh}7 BNE PETLAMENU.MENUQUIT SEC LDA OPCJA RTS .OPCJA ,0.OSTOPCJA ,0.ILOSCOPCJI ,0.Ji}ZMNIEJSZ ("+").ZWIEKSZ ("*").EXITMENU ,0.ADRESP=$FE.MINUSIK ("-").ROWNASIE ("=");.WINDMENU;tworzy menu okienkowe;wJj}e :; A - ostatnio podswietlona opcja; X - mlodszy; Y - starszy bajt adresu tablicy nazw funkcji PHA STJk}X OPCJA STY OSTOPCJA LDA MINUSIK ;"-" STA ZMNIEJSZ LDA ROWNASIE ;"=" STA ZWJl}IEKSZ LDA #$7F STA EXITMENU STX ADRESP STY ADRESP+1 LDY #$00 LDA (ADRESJm}P),Y STA WOKNA INY INY INY LDA (ADRESP),Y TAX DEX Jn} STX XOKNA INY LDA (ADRESP),Y TAX DEX STX YOKNA LDY #$01 LJo}DA (ADRESP),Y PHA INY LDA (ADRESP),Y STA ADRESP+1 PLA STA ADRESP Jp} LDY #$00 LDA (ADRESP),Y STA SOKNA PLA STA TEMPOPCJA JSR SETBUFADR Jq} JSR SAVESCREEN LDY #$00 LDA (ADRESP),Y JSR RAMKA LDX OPCJA LDY OSTOPCJA Jr} LDA TEMPOPCJA JSR MENU STA TEMPOPCJA JSR SETBUFADR PHP JSR RESTSCREEN Js} LDA TEMPOPCJA PLP RTS ;.TEMPOPCJA ,0;.RAMKA;we :; WOKNA - liczba opcji; XOKNA - wsp. X; YOKNAJt} - wsp. Y lewego gornego; rogu okna; A - szerokosc wnetrza okna; STA SOKNA LDX XOKNA LDY YOKNAJu} JSR POSITION LDY #$00 LDA #$FF ;"" JSR PRINTCHAR LDA #$FF ;"" Jv} JSR PUTHORIZON LDA #$FF ;"" LDY SOKNA INY JSR PRINTCHAR LDA #$FJw}F ;"|" JSR PUTVERTICAL LDX XOKNA LDA YOKNA SEC ADC WOKNA TAY Jx} INY JSR POSITION LDY #$00 LDA #$FF ;"" JSR PRINTCHAR LDA #$FF Jy} ;"" JSR PUTHORIZON LDA #$FF ;"" LDY SOKNA INY JSR PRINTCHAR Jz} LDA XOKNA PHA SEC ADC SOKNA STA XOKNA LDA #$FF ;"|" JSR PJ{}UTVERTICAL PLA STA XOKNA RTS ;.PUTHORIZON PHA LDY SOKNA INY .PUJ|}THORLOOP PLA PHA JSR PRINTCHAR DEY BNE PUTHORLOOP PLA RTSJ}} .PUTVERTICAL PHA LDY YOKNA INY STY TYOKNA LDY WOKNA STY TWOKNAJ~}.PUTVERTLOOP LDX XOKNA LDY TYOKNA JSR POSITION PLA PHA LDY #$00 J} JSR PRINTCHAR INC TYOKNA DEC TWOKNA BPL PUTVERTLOOP PLA RTS ;.XOKNA ,0.J}YOKNA ,0.WOKNA ,0.SOKNA ,0.TYOKNA ,0.TWOKNA ,0;.LINEMENU;tworzy menu typu linijkowego;we :; A - ostatnio podswietlJ}ona opcja; X - mlodszy; Y - starszy bajt adresu tablicy nazw funkcji PHA LDA #$00 BEQ LINEMSKIJ}P.SLINEMENU PHA LDA #$80.LINEMSKIP STA EXITMENU LDA #$FF ;"+" STA ZJ}MNIEJSZ LDA #$FF ;"*" STA ZWIEKSZ PLA JMP MENU;.MOVESCREEN;przemieszcza fragmJ}ent pamieci;ekranu z/do bufora;we :; XOKNA - wsp. X okna; YOKNA - wsp. Y okna; WOKNA - wysokosc okna; SOKNA- szerokosc J}okna; BUFADR - adres bufora okna; C - kierunek przemieszczenia; C=1 do bufora; C=0 z bufora PHP J} LDY YOKNA STY TYOKNA LDX XOKNA JSR POSITION LDY WOKNA INY INY J} STY TWOKNA INC SOKNA.MOVELOOP LDY SOKNA.MOVELOOP1 PLP BCC FROMBUFOR J} LDA (100),Y STA (BUFADR),Y BCS MOVESKIP.FROMBUFOR LDA (BUFADR),Y STA (100),Y.MOVESKJ}IP PHP DEY BPL MOVELOOP1 CLC LDX SOKNA INX TXA J}ADC BUFADR STA BUFADR BCC MOVESKIP1 INC BUFADR+1.MOVESKIP1 DEC TWOKNA PHP J} INC TYOKNA LDX XOKNA LDY TYOKNA JSR POSITION PLP BPL MOVELOOP PJ}LP DEC SOKNA RTS ;.SAVESCREEN;zapamietuje fragment ekranu w buforze;we :; X - wsp. X okna; Y - wspJ}. Y okna; WOKNA - wysokosc okna; SOKNA- szerokosc okna; BUFADR - adres bufora okna SEC JMP MOVESCREENJ};.RESTSCREEN;odtwarza fragment ekranu z bufora; we : j.w. CLC JMP MOVESCREEN;.F2FD LDJ}A #$04 STA $2A.KLOOP LDA 764 CMP #$FF BNE KGET LDA $0278 CMP #$0F J} BNE JGET BEQ KLOOP.KGET STA 764 JMP $F2FD.JGET LDY #$FF.JGLOOP IJ}NY ROR A BCS JGLOOP LDA $0284 BNE KEYSK TYA CLC ADC #4 J} TAY .KEYSK LDA KEYTAB,Y.DELAY LDY #5 STY $021C LDY #$FF STY $022A.DJ}ELOOP CPY $022A BEQ DELOOP BNE KGET;.KEYTAB ,$0E,$0F,$06,$07,$0B,$2D,$0C,$1C.TEMPY ,0.DLUGOSJ}C ,0.BUFOROKIEN=*22A BEQ DELOOP BNE KGET;.KEYTAB ,$0E,$0F,$06,$07,$0B,$2D,$0C,$1C.TEMPY ,0.DLUGOSH%=20000*=20000.BUFADR=$F8.ADRES=$FC.ADRESM=$FA.START JMP PROGRAM.POSITION; X - kolumna; Y - wieN}rsz STX $55 STY $54 LDA $5E PHA LDA $5F PHA JSR $F5AC N} PLA STA $5F PLA STA $5E RTS ;.PRINTCHAR TAX TYA PHAN} TXA TAY ROL A ROL A ROL A ROL A AND #$03 TAX N} TYA AND #$9F ORA $FB49,X TAX PLA TAY TXA STA (100),N}Y RTS ;.PRINTSTRINGON; X,Y - adres wyswietlanego ciagu; znakow; X - mlodszy bajt; Y - starszy bajt;ciagN} wypisywany jest w inversie LDA #$80 BNE PRINTSTRING.PRINTSTRINGOFF;ciag wypisywany jest normalnie N} LDA #$00.PRINTSTRING PHA STX ADRES STY ADRES+1 LDY #0 LDA (ADRES),Y N} STA DLUGOSC INY .PRINTLOOP PLA .PRINT PHA ORA (ADRES),Y DEY N} JSR PRINTCHAR INY INY DEC DLUGOSC BNE PRINTLOOP PLA RTS ;;;N}.PISZFUNKCJE; X - numer nazwy funkcji w; tablicy nazw funkcji; C - 1 inverseoff; 0 inverseon;Tablica nazw funkN}cji :; byte ilosc_opcji; word nazwa_funckji,x+256*y; PHA TYA PHA TXA PHA N} PHP ASL A ASL A PHA TAY INY INY LDA (ADRESM),YN} TAX INY LDA (ADRESM),Y TAY JSR POSITION PLA TAY N}LDA (ADRESM),Y TAX INY LDA (ADRESM),Y TAY PLP BCS INVERSEOFF N} JSR PRINTSTRINGON JMP WYJSCIE.INVERSEOFF JSR PRINTSTRINGOFF.WYJSCIE PLA TAX N} PLA TAY PLA RTS .SETBUFADR LDA # BUFOROKIEN STA BUFADR+1 RTS .MENU; A - ostatnio podswietlona opcja; X,Y -adres tablicy nazw funN}kcji; X - mlodszy bajt; Y - starszy bajt;Wyjscie :; A - numer wybranej funkcji;Sterowanie :; ZMNIEJSZ - kod klawisza LeN}wo/Gora; ZWIEKSZ - kod klawisza Prawo/dol; EXITMENU - sposob reakcji na inne klawisze; =$00 - wyjscie tylko po RETURN; N} <$80 - i na Esc; =$80 - na wszystko oprocz ZMNIEJSZ, ZWIEKSZ; wybor opcji ; Wy :; A -numer opcji; C -rodzaj N}klawisza; C=0 -normalny; C=1 -inny STA OSTOPCJA STA OPCJA STX ADRESM STY ADRESM+1N} LDY #0 LDA (ADRESM),Y STA ILOSCOPCJI INC ADRESM BNE OMINM INC ADRESM+1N}.OMINM TAX .PISZMENU SEC JSR PISZFUNKCJE DEX BPL PISZMENU LDX OSN}TOPCJA CLC JSR PISZFUNKCJE.PETLAMENU JSR F2FD CMP ZMNIEJSZ BNE NIEWLEWO N} DEC OPCJA BPL NIENAOKOLO LDA ILOSCOPCJI STA OPCJA.NIENAOKOLO SEC LDX OSN}TOPCJA JSR PISZFUNKCJE LDX OPCJA STX OSTOPCJA CLC JSR PISZFUNKCJE JMP N}PETLAMENU.NIEWLEWO CMP ZWIEKSZ BNE NIEWPRAWO INC OPCJA LDA ILOSCOPCJI CMP OPCN}JA BCS NIENAOKOLO LDX #0 STX OPCJA BEQ NIENAOKOLO.NIEWPRAWO CMP #155 N} BNE NIERETURN CLC LDA OPCJA RTS .NIERETURN LDX EXITMENU BEQ PETLAMENU N} BMI MENUQUIT CMP #27 BNE PETLAMENU.MENUQUIT SEC LDA OPCJA RTS .OPCJA N},0.OSTOPCJA ,0.ILOSCOPCJI ,0.EXITMENU ,0.ADRESP=$FE.ZMNIEJSZ ("+").ZWIEKSZ ("*");.WINDMENU;tworzy menu okienkowe;N}we :; A - ostatnio podswietlona opcja; X - mlodszy; Y - starszy bajt adresu tablicy nazw funkcji PHA SN}TX OPCJA STY OSTOPCJA LDA #$2D ;"-" STA ZMNIEJSZ LDA #$3D ;"=" STA ZN}WIEKSZ LDA #$7F STA EXITMENU STX ADRESP STY ADRESP+1 LDY #$00 LDA (ADREN}SP),Y STA WOKNA INY INY INY LDA (ADRESP),Y TAX DEX N} STX XOKNA INY LDA (ADRESP),Y TAX DEX STX YOKNA LDY #$01 N}LDA (ADRESP),Y PHA INY LDA (ADRESP),Y STA ADRESP+1 PLA STA ADRESP N} LDY #$00 LDA (ADRESP),Y STA SOKNA PLA STA TEMPOPCJA JSR SETBUFADR N} JSR SAVESCREEN LDY #$00 LDA (ADRESP),Y JSR RAMKA LDX OPCJA LDY OSTOPCJA N} LDA TEMPOPCJA JSR MENU STA TEMPOPCJA JSR SETBUFADR PHP JSR RESTSCREEN N} LDA TEMPOPCJA PLP RTS ;.TEMPOPCJA ,0;.RAMKA;we :; WOKNA - liczba opcji; XOKNA - wsp. X; YOKNN}A - wsp. Y lewego gornego; rogu okna; A - szerokosc wnetrza okna; STA SOKNA LDX XOKNA LDY YOKNN}A JSR POSITION LDY #$00 LDA #$11 ;"" JSR PRINTCHAR LDA #$12 ;""N} JSR PUTHORIZON LDA #$05 ;"" LDY SOKNA INY JSR PRINTCHAR LDA #$N}7C ;"|" JSR PUTVERTICAL LDX XOKNA LDA YOKNA SEC ADC WOKNA TAY N} INY JSR POSITION LDY #$00 LDA #$1A ;"" JSR PRINTCHAR LDA #$12 N} ;"" JSR PUTHORIZON LDA #$03 ;"" LDY SOKNA INY JSR PRINTCHAR N} LDA XOKNA PHA SEC ADC SOKNA STA XOKNA LDA #$7C ;"|" JSR N}PUTVERTICAL PLA STA XOKNA RTS ;.PUTHORIZON PHA LDY SOKNA INY .PN}UTHORLOOP PLA PHA JSR PRINTCHAR DEY BNE PUTHORLOOP PLA RTN}S .PUTVERTICAL PHA LDY YOKNA INY STY TYOKNA LDY WOKNA STY TWOKNAN}.PUTVERTLOOP LDX XOKNA LDY TYOKNA JSR POSITION PLA PHA LDY #$00 N} JSR PRINTCHAR INC TYOKNA DEC TWOKNA BPL PUTVERTLOOP PLA RTS ;.XOKNA ,0N}.YOKNA ,0.WOKNA ,0.SOKNA ,0.TYOKNA ,0.TWOKNA ,0;.LINEMENU;tworzy menu typu linijkowego;we :; A - ostatnio podswietN}lona opcja; X - mlodszy; Y - starszy bajt adresu tablicy nazw funkcji PHA LDA #$00 BEQ LINEMSKN}IP.SLINEMENU PHA LDA #$80.LINEMSKIP STA EXITMENU LDA #$2B ;"+" STA N}ZMNIEJSZ LDA #$2A ;"*" STA ZWIEKSZ PLA JMP MENU;.MOVESCREEN;przemieszcza fragN}ment pamieci;ekranu z/do bufora;we :; XOKNA - wsp. X okna; YOKNA - wsp. Y okna; WOKNA - wysokosc okna; SOKNA- szerokoscN} okna; BUFADR - adres bufora okna; C - kierunek przemieszczenia; C=1 do bufora; C=0 z bufora PHP N} LDY YOKNA STY TYOKNA LDX XOKNA JSR POSITION LDY WOKNA INY INY N} STY TWOKNA INC SOKNA.MOVELOOP LDY SOKNA.MOVELOOP1 PLP BCC FROMBUFOR N} LDA (100),Y STA (BUFADR),Y BCS MOVESKIP.FROMBUFOR LDA (BUFADR),Y STA (100),Y.MOVESN}KIP PHP DEY BPL MOVELOOP1 CLC LDX SOKNA INX TXA N} ADC BUFADR STA BUFADR BCC MOVESKIP1 INC BUFADR+1.MOVESKIP1 DEC TWOKNA PHP N} INC TYOKNA LDX XOKNA LDY TYOKNA JSR POSITION PLP BPL MOVELOOP N}PLP DEC SOKNA RTS ;.SAVESCREEN;zapamietuje fragment ekranu w buforze;we :; X - wsp. X okna; Y - wsN}p. Y okna; WOKNA - wysokosc okna; SOKNA- szerokosc okna; BUFADR - adres bufora okna SEC JMP MOVESCREEN}N;.RESTSCREEN;odtwarza fragment ekranu z bufora; we : j.w. CLC JMP MOVESCREEN;.F2FD LN}DA #$04 STA $2A.KLOOP LDA 764 CMP #$FF BNE KGET LDA $0278 CMP #$0F N} BNE JGET BEQ KLOOP.KGET STA 764 JMP $F2FD.JGET LDY #$FF.JGLOOP N}INY ROR A BCS JGLOOP LDA $0284 BNE KEYSK TYA CLC ADC #4 N} TAY .KEYSK LDA KEYTAB,Y.DELAY LDY #5 STY $021C LDY #$FF STY $022A.N}DELOOP CPY $022A BEQ DELOOP BNE KGET;.PROGRAM LDA #6 STA WOKNA N} LDA #5 STA XOKNA LDA #3 STA YOKNA LDA #7 JSR RAMKA LDA #1 N} LDX #TABFUNK JSR WINDMENU LDA #1 LDX #TABFUNKN} JSR MENU BRK.KEYTAB ,$0E,$0F,$06,$07,$0B,$2D,$0C,$1C.TEMPY ,0.DLUGOSC ,0.KUPA=*('KUPA').MAJTY=*('MAJTN}Y').HENIO=*('HENIO').ZOCHA=*('ZOCHA').MARYCHA=*('MARYCHA').STEFEK=*('STAEFEK').TABFUNK=*,6,KUPA,MAJN}TY,HENIO,ZOCHA,MARYCHA,STEFEK.BUFOROKIEN=*K').TABFUNK=*,6,KUPA,MAJLS*=25600%=25600.ADRES=$C000.START=*LDA #DLSTA 561.LOPLDA 20CMP 20BEQ *-2LDA ADRCLCADC #40R}STA ADRBCC *+5INC ADR+1JMP LOP.DL=*,112,112,112,15+64.ADR ,ADRES('//////////////////////////////////'),65,DL#40Py *=25600%=25600.EKRAN=0.ILE=75.START=*LDA #DLSTA 561LDX #>PRVBLDY #PRDLSTA 513LDA #192STA 54286JMP *.PX ,0.PRZN ,1.PRVB=*PHATXAPHALDA PRZNBEQ GORALDX PXV}INXCPX #ILEBCC *+7LDA #0STA PRZNSTX PXLDA #15STA TU-1,XLDA #15+128STA TU,XJMP CONT.GORALDX PXDEXBNE *+7LDA V}#1STA PRZNSTX PXLDA #15+128STA TU,XLDA #15STA TU+1,X.CONTPLATAXPLA,76,226,192.PRDL=*PHATXAPHALDX #13LDAV} KOLORY,XSTA 54282STA 53272DEXBPL *-10LDA 710STA 53272PLATAXPLARTI.KOLORY ,2,4,6,8,10,12,14,14,12,10 ,8V},6,4,2.DL=*,112,112,112,64+15,EKRAN,15.TU=*("V}"),65,DL,64+15,EKRAN,15.TU=*("T*=15000%=15000.ADRES=33422.DL=*,112,64+15.ADR ,ADRES,64+15.ADR1 ,ADRES+40,64+15.ADR2 ,ADRES+80,64+15.ADR3 ,ADRES+Z}120,64+15.ADR4 ,ADRES+160,64+15.ADR5 ,ADRES+200,64+15.ADR6 ,ADRES+240,64+15.ADR7 ,ADRES+280,64+15.ADR8 ,ADRES+320,Z}64+15.ADR9 ,ADRES+360,64+15.ADR10 ,ADRES+400,64+15.ADR11 ,ADRES+440,64+15 .ADR12 ,ADRES+480,64+15.ADR13 ,ADRES+520,Z}64+15.ADR14 ,ADRES+560,64+15.ADR16 ,ADRES+600,64+15.ADR17 ,ADRES+640,64+15.ADR18 ,ADRES+680,64+15 .ADR19 ,ADRES+720Z},64+15.ADR20 ,ADRES+760,64+15.ADR21 ,ADRES+800,64+15.ADR22 ,ADRES+840,64+15.ADR23 ,ADRES+880,64+15.ADR24 ,ADRES+920Z},64+15.ADR25 ,ADRES+960,64+15.ADR26 ,ADRES+1000,64+15.ADR27 ,ADRES+1040,64+15.ADR28 ,ADRES+1080,65+15.ADR29 ,ADRES+1Z}120,64+2 .ADR30 ,ADRES+1160,64+15.ADR31 ,ADRES+1200,64+15.ADR32 ,ADRES+1240,64+15 .ADR33 ,ADRES+1280,64+15.ADR34 ,AZ}DRES+1320,64+15.ADR35 ,ADRES+1360,64+15.ADR36 ,ADRES+1400,64+15.ADR37 ,ADRES+1440,64+15.ADR38 ,ADRES+1480,64+15.ADRZ}39 ,ADRES+1520,64+15.ADR40 ,ADRES+1560,65,DL.START=*LDA #DLSTA 561JMP *8 ,ADRES+1480,64+15.ADRXd*=$9000%=*; WCISNIJ SHIFT+CTRL+E; WYBIERZ FILE; I WCZYTAJ POD ADRES; $8400 PLIK; D:FONTY.FD=$8400.ED=$8800.TIME= ^} $14.ZP= $90.RUNSEI ; WYLACZLDY #0 ; PRZERWANIASTY $D40E ; SYSTEMOWESTY $D400 STY $22F LD^}A #$FE ; PORTB=$FBSTA $D301 ; OS WYLACZONYLDA #NMI ; NMISTA $FFFASTX $FFFBLDA #$FF ^} ; PRZERWANIESTA $FFFC ; IRQ WYLACZONESTA $FFFDLDA #$40 ; $40 TO "RTI"STA $FFFFLDA #$FFSTA POMOCLDA #6 ;^} USTAW PRZER.LDY #VBLJSR US_VBLLDA #
DLSTA $D402STX $D403LDA #DLI ; PRZERWANIASTA $200 ; DISPLAY LIST'USTX $201LDA #0STA SKOK ; DO SKROLASTA SPOMSTA STARTS^}TA BYK+1LDA #$60STA ODLSTA ODL2LDY #46 ; WYCZYSC LINIELDA #$0 ; NA SCROLL.FF1STA SCR,YDEYBPL FF1LDA $D40^}B ; WYCZEKAJ DOBNE *-3 ; KONCA RYSOWANIA ; EKRANULDA #$22 ; WLACZENIE EKRANUSTA $D400 ; I ^}ZEZWOLENIE NALDA #$C0 ; DLI.STA $D40ELDA #TEKST ; W ZPSTA ZPSTX ZP+1LDA #1 ^}; SCROLL STARTSTA START.LOOPLDA 53279 ; CZY WCISNIETYCMP #6 ; >STARTSELECTSTART<_}STA $D301 ; TOCLI ; RESET - WYJSCIEJMP $E474 ;;;;;;;;;;;;;;;;;;;;;;;;;;.WAIT_X ; TAKIE BZDURYJ_}SR WAITDEXBNE WAIT_X.WAITLDA TIMECMP TIMEBEQ *-2RTS.NMI BIT $D40F ;*** NMI ***BPL VBJMP ($20_}0) ;IDZ DO DLI.VB CLDPHATXAPHATYAPHASTA $D40FJMP ($222) ;IDZ DO VBL.VBL INC TIME ;ZWIEKSZ LICZNI_}KLDA STARTBNE V9 JMP EXVBL.V9LDA SKOK ;CZY SKAKAC?BEQ V6 ;SKOK=0 NIE ;SKOK<>0 TA_}KLDY SPOMLDA SKAC,YSTA ODLLSR AAND #$70STA ODL2INC SPOMLDA SPOMCMP #47 ;ILOSC POZYCJIBNE V7 ;SKOKULDA_} #0STA SKOK.V6 LDA #0 ;NIE SKACZSTA SPOM.V7LDA BYK+1BEQ VVVDEC BYK+1 ; Z OPTIONEM.SZYBK DEC BYK+1 _} ; SZYBCIEJBPL EXVBL .VVVLDA #7STA BYK+1LDY #0LDA (ZP),YBPL OKSTA SKOK.OKAND #$7FCMP #$20BCS M1CLCADC #$60_}JMP M2.M1CLCADC #$20.M2AND #$7F ;DRUKUJSTA SCR+46 ;LITERKE ED2SECSBC #$40AND #$7FSTA SCR+45INC ZPBNE_ } LO1INC ZP+1.LO1LDA ZP ;CZY KONIECCMP #KONIECBNE LO10LDA #TEKSTSTA ZPSTX ZP+1.LO10LDY #2 ;PRZESUN!!.LO2LDA SCR,YSTA SCR-2,YINYCPY #47BNE LO2.EXVBL PLA _ } ; WYJSCIE Z VBLTAY PLATAXPLARTI ;TABELA ;SKOKU.SKAC _ } ,$70,$60,$60,$60,$50,$50,$40,$30,$30,$20,$20,$10,$10,0,0,0,0,$10,$10,$20,$20,$30,$30,$40,$50,$50,$60,$60,$70,$60,$60,$_ }60,$50,$50,$40,$40,$30,$30,$30,$30,$30,$40,$40,$50,$50,$50,$60.US_VBL ; USTAW VBLASL ASTA US1+1TXALDX _}#5STA $D40ADEXBNE *-1.US1 LDX #0STA $216+1,XTYASTA $216,XRTS;;;;;;;;;;;;;;;;;;;;;;.EXT_DLI ; WYJS_}CIE Z DLIPLATAY PLATAXPLARTI.DLIPHA ;DISPLAY LIST'UTXAPHA ;ZACHOWAJ REJESTRYTYAPHAINC POMO_}C LDA POMOCBEQ DLI0CMP #1BEQ DLI1; CMP #2; BEQ DLI2.DLI0LDA #$21 ;WASKI EKRANSTA $D400LDA #0 ;KOLORYS_}TA $D01ASTA $D018LDA #$8STA $D017LDA #>FDSTA $D409BNE EXT_DLI.DLI1LDA #$22 ;SZEROKI EKRANSTA $D400LDA #$C _} STA $D017.BYKLDA #0 STA $D404LDA #>ED ;ZESTAW STA $D409 ;FONTOW ED2LDX #7JSR CHWILALDA #>ED+$400S_}TA $D409LDA #$FF ;OSTATNIESTA POMOC ;PRZERWANIEJMP EXT_DLI.CHWILADEX ;SYNCHRONIZACJASTX $D40AB_}PL CHWILARTS.POMOC ,0.DL ;***** DL **********('ppp'),$42,TXTT,2,$70,2,2,2,$20,2,$70,2,2,2,2,$70,2,2,$30._}ODL ,$60 ; TUTAJ SKOK.ODL2 ,$60,$70+$80,$52,SCR,$52,SCR,$41,DL; . ,.SKOK ,0 ; ROZNE _}KOMORKI.SPOM ,0.START ,0.SCR(" ")(" ") .TEKST('````WITAMY`W`WERSJI`DEM_}ONSTRAC') ('YJNEJ`NAJNOWSZEJ`GRY`GRUPY`') ('`*`TIGHT`*``PT.')('`"PUZMANIA"`!!````ZASADY`S[`PROSTE`')('JAK`DRUT_}`.```NALE$Y`POSK^ADA\`')('WYMIESZANE`ELEMENTY`W`LOGICZN[`')('CALO#\.`````````````')('DEMKO`NAPISA^:``MICHA^`FRANCZAK`') _} ('-`GUMI``,`')('GRAFIK]`ZROBI^:``MARIUSZ`KRAWIEC`-`') ('KRAWCO````') ('A``PRZYOZDOBI^`W`EXTRA`MUZYKE:``') ('IRENEUSZ_}`RADZIKOWSKI`-`JAGGER`.````')('DEMKO`TO`JEST`BARDZO`OKROJONE`W`')('POR WNANIU`DO`GRY`JAKA`ZOSTANIE`')('SKO_CZONA`ZA`KILKA`_}MIESI]CY`I`')('PRAWDOPODOBNIE`WYDANA`W`')('`+`STANBICIE`+.`')('``````DEMKO`TO`NIE`ZAWIERA`WIELU`')('BARDZO`ISTOTNYCH`RZE_}CZY`I`EFEKT W.')('````ORYGINALNA`GRA`AWIERA\`B]DZIE`')('`EXTRA`GRAFIKE,```')('`OK.`50`ALBO`I`WIECEJ`RYSUNK W,`')('`KILKA_}NA#CIE`REWELACYJNYCH`')('MUZYCZEK`JAGGER'A`OAZ`DOSKONA^E`')('EFEKTY.```')('`````````````````')('GRUPA``*`TIGHT`*``PRZESY_}^A`')('POZDROWIENIA`LA`NAST]PUJ[CYCH`')('OS B,`FIRM,`GRUP`:`````````````````')('SHANGO`,````')('PAUL`,`````BAC`,`````GU_}TEK`,`````')('$BIK`,`````KASIA`F.`,`````T.`LIEBICH`,`````')('LASER`SOFT`,`````LUK`SOFT`,`````SIWY')('`,`````MIKER`,`````FR_ }ANKI`,`````')('KRET`,`````QUMEN`,`````SKAJA`,`````') ('WUDKA`,`````KOBY^KA`,`````SILVER`')('SOFT`,`````OUR`5OFT`,`````SHADO_!}WS`,')('`````LORIENS`,`````ABBUC`,`````')('STANBIT`,````MAGNUS`,`````SEBAN`,')('`````H.`CYGERT`,`````')('MEGA`ASSEMBLER_"}`,````')('`SKARA`,`````ELECTRON`,`````JASKIER')('`,`````CEDY_`,`````ROBOCOP`,`````')('MIKER`,`````RZ G`,`````PECU#`,`````'_#})('SOUSED`TEAT`,`````K.`STEC`,`````')('ORKO`,`````ATAR`CORPORATON`,')('`````ORAZ`WSZYSTKICH`KT RZY`NIE`')('ZOSTALI`WYMI_$}ENIENI.```````````````')('`````````````')('MAMY`JESZCZE`SPECIAL`FUCKINGS`')('``TYM`RAZEM`DLA``>`SAMURAI'A`<`')('``-``ON_%}`WIE`ZA`CO`!')('```````````````````````')('DEMKO`POWSTA^O`DZI]KI`TAKIM`PROGRAM')('OM`JAK`:````')('`````````1.`BIG`ASSEMB_&}LER`,`````')('2.`XL-ART`,`````3.`CHAOS`MUSIC`')('COMPOSER`,`````4.`ART`STUDIO`,`````')('5.`FONT`DESIGNER`,`````6.`ED`2`,')_'}('`````7.`MULTI`FILE`COPY`II`,`````')('8.`LOGOS`MAKER`,`````9.`TCPC`,`````')('10.`DOS`2.5`CP`,`````11.`BIBO`DOS`')('5.1N`_(},`````12.`IRON`DEBUGGER`,`````')('13.`WACIO`,`````14.`WATSON`II`,`````')('15.`KO^O`FORTUNY`,`````16.`5-10-15`,')('`````17._)}`WIADOMO#CI`DD`,`````18.`')('ZULU`GULA`,`````19.`TELEEXPRESS`,')('`````20.`#MIECHU`WARTE`,`````21.`')('RTL`,`````22.`PRO`7_*}`,`````23.`')('POLSAT`````ORAZ`````24.`OBRADY`') ('SEJMU``(`NA`$YWO`).``````````````')('```````````')('TO`BY`BY^O`CHYB_+}A`WSZYSTKO`...````')('```````AHA`!`JE#LI`CHCESZ`ZAGRA\`')('W`WERSJ]`DEMO`KEPNIJ`START`LUB`')('FIRE`W`JOY'U`.````GR]`OBS^U_,}GUJE`')('SI]`KLAWISZAMI`:````>SPACE<`,`')('>RETURN<`,`>1<`-`>9<`,`>0<`,`>ESC<')('```ORAZ`JOY'EM.``````````````````')('```_-}````````````````````').KONIEC*=$B000%=*.TXTT(' TO JEST PROCEDURKA W BIG'U ')(' SCROLL'A Z "PUZMANII SCHAME" ')_.}(' WSZYSTKO ZAOPATRZYLEM W ')(' KOMENTARZ, MAM NADZIEJE ZE ')(' BEDZIE TO ZROZUMIALE. ')(' _/} GUMI ')(' P.S. ')(' NIE CHCIALO MI SIE PISAC ')(' SCROLA, WIEC LECI SC_0}ROLL ')(' Z DEMKA PUZMANII. ')(' START-WYJSCIE SELECT-STOP ')(' OPTION-SZYBCIEJ ')_1}(' Z DEMKA PUZMANII. ')(' START-WYJSCIE SELECT-STOP ')(' OPTION-SZYBCIEJ ')\ SEILDA #$FESTA $D301LDA #NMISTA $FFFASTX $FFFBLDA #$FFSTA $FFFCSTA $FFFDLDA #$40STA $FFFFLDA #6LDc3}Y #VBLJSR US_VBL.NMIBIT $D40FBPL VBJMP ($200).VB CLDPHATXAPHATYAPHASTA $D40FJMP ($222).VBL c4}INC TIMELDA $D300AND #$FSTA JOJOLDA $D010BNE KEYBLDA UIP BEQ KEYB2LDA #0STA UIP LDA #$FEBNE GG.KEYBLDA #1c5}STA UIP .KEYB2 LDA $D20FAND #4BNE V2DEC $22BBNE V3LDA $D209AND #$3F.GG STA KBCLDA #30BNE V4.V2 LDA #1.Vc6}4 STA $22B.V3.EXVBL PLATAYPLATAXPLARTI.US_VBLASL ASTA UST+1TXALDX #5STA $D40ADEXBNE *-1.UST LDX #0c7}STA $216+1,XTYASTA $216,XRTS.UIP ,0.JOJO ,0 _VBLASL ASTA UST+1TXALDX #5STA $D40ADEXBNE *-1.UST LDX #0`88888881JJ1>`<|8p<|x?88ppp888f<}|~|~~||~88|8888~~8x88||x88888|g?}|||~~|||8|888~|8l|~8p~~~~~~~~~~~~~g@}<~00 ?pp`c@p8 ??gC}?>?x````|<|  0gE}p >  x | |< xx<8pp 8x8x8xgF}`` ܜ  x| <80`8x<8p>xgG}8p 8p< <~Ά<gH}|8<x98ppppp00pp888888pp08?a````x?30ppp```gI}p?308888``pp`wssa`@px>x0888`p<700p`````x?8gv~~<<88pp`gJ}8p98ppppp8pp08?p`wssa`@px>`?8p8p`?wa?gK} 8`8xpp<8p`p|? p|?p|?8p`gL}p?p8?| x< <8xgM} x8>|<<|8  x |||88gN}8p8>x<80>|<< x><<8xgO}p8pp  < ~8<    < xx < ~8<    <