MV - CPCEMU Disk-File Disk-Info CPCD2DSK 1.2 (Track-Info  NBALL BASCHECK464BAS CHECK612BAS CHECK664BAS CPCDATABBAS: CPCDATABDATDECL COM_DECL PASe !"#$%&'()*+DECODE BAS,-.DECODE BIN/EMU BIN 01EMULATORBAS2MEGACOL BAS3MEGACOL BIN4MEGACOL DEM'56789MEGACOL MIX:;<b o b o b v v @ v v( b' b) v( b( b)@ v v( b b) v( b b)+ b b v( b) b)+ b b v( b b)", Ball loeschen6 o, o @ " ";J o b o bT^ Ball ausgebenh b, b r "o"; |   zei;"Sekunden"  zei zei 4,811PLGRAF BASO=>?@ABCDEFROM BAS GHROM INFIROMINF TXT JKSTR-EDITBASLSTR-EDITBINMSTR-EDITDEMANOPQRSTUVTESTB ASM&WXYZ[TESTB BIN\TESTBILDPLG]TESTICDABIN ^_TESTP BAS`abcTESTS ASMdTESTS BAS0efghijTESTS BINkTHINK BAK`lmnopqrstuvwCHECK464BASpxx; 23,a5,a7,79,c4,8a,ff,4f ad,07,6f,09,18,d8,3e,20 *** CHECKSUM 464 ***    ( byt2 ,("&"byt)<FP"CHECKSUM v2"Z|Odn 21,09,a5,01,0d,a5,c3,d1x bc,00,00,00,00,18,a5,c3 2a,a5,c3,2f,a5,c3,43,a5 4f,ce,4f,46,c6,43,48,45 43,cb,00,00,cf,98,aa,c3 a8,a5,21,27,a5,18,03,21 24,a5,28,06,cd,00,b9,c3 06,dd,11,3a,bd,0THINK SCOxTITEL BINyz{|}~TITEL BINTRICK1 BASTRICK2 BAS TRICK3 BASTRICK3 BIN TRICK3 DEMTRICK4 BAS TRICK5 BAS TRICK6 PASTRICK7 PAS TRICK8 BAS THINK BAKTHINK BAS`1,03,00 ed,b0,c9,4f,cd,00,b9,0d 28,08,0d,20,ea,dd,7e,02 18,04,7b,11,01,00,cd,a2 c1,cd,a3,e7,e5,4e,23,46 23,5e,23,56,e1,78,b1,c8 cd,3c,c4,e5,09,e3,cd,63 e1,21,a4,ac,cd,7a,a5,e1 18,e2,e5,cd,ba,a5,e3,cd 98,a5,cd,96,f2,e3,cd,f6 a5,cd,4e,c3,e1,7e,a7,c8" cd,98,a5,cd,4e,c3,18,f5, 3a,24,ac,d6,08,47,7e,a76 c8,cd,45,e1,23,10,f7,c9@ cd,24,a5,f5,c5,d5,e5,cdJ ba,a5,cd,f6,a5,e1,d1,c1T f1,c9,eb,1b,af,47,67,6f^ 2f,32,23,a5,13,1a,d6,30h 38,04,fe,0a,38,f6,1a,13r a7,c8,4f,3a,23,a5,a1,fe| 20,28,f3,79,fe,22,20,07 3a,23,a5,2f,32,23,a5,3a 23,a5,a7,79,c4,8a,ff,4f ad,07,6f,09,18,d8,3e,20 cd,5c,c3,3e,5b,cd,5c,c3 cd,79,ee,3e,5d,c3,5c,c33e,20er CPC 6128....................... CHECK612.BAS BASIC BALL BASp,,@enh b, b r "o"; |  &d *******************************&n ** **)x ** BALL.BAS ** & ** (c) 1992 Markus Kraeutner **& ** & CPC International **& ** **& ******************************* Bildschirm initialisieren  ,  , Variablen initialisieren. b Track-Info  N01,03,00 ed,b0,c9,4f,cd,00,b9,0d 28,08,0d,20,ea,dd,7e,02 18,04,7b,11,01,00,cd,a9 c1,cd,69,e8,e5,4e,23,46 23,5e,23,56,e1,78,b1,c8 cd,75,c4,e5,09,e3,cd,59 e2,21,8a,ac,cd,7a,a5,e1 18,e2,e5,cd,ba,a5,e3,cd 98,a5,cd,58,f3,e3,cd,f6 a5,cd,9b,c3,e1,7e,a7,c8" cd,98,a5,cd,9b,c3,18,f5, 3a,09,ac,d6,08,47,7e,a76 c8,cd,22,e2,23,10,f7,c9@ cd,24,a5,f5,c5,d5,e5,cdJ ba,a5,cd,f6,a5,e1,d1,c1T f1,c9,eb,1b,af,47,67,6f^ 2f,32,23,a5,13,1aCHECK664BASpyy? 23,a5,a7,79,c4,ab,ff,4f ad,07,6f,09,18,d8,3e,20 *** CHECKSUM 664 ***    ( byt2 ,("&"byt)<FP"CHECKSUM v2"Z |Odn 21,09,a5,01,0d,a5,c3,d1x bc,00,00,00,00,18,a5,c3 2a,a5,c3,2f,a5,c3,43,a5 4f,ce,4f,46,c6,43,48,45 43,cb,00,00,cf,02,ac,c3 a8,a5,21,27,a5,18,03,21 24,a5,28,06,cd,00,b9,c3 4c,cb,11,5b,bd,CHECK612BASpzz: 23,a5,a7,79,c4,ab,ff,4f ad,07,6f,09,18,d8,3e,20 *** CHECKSUM 6128 ***    ( byt2 ,("&"byt)<FP"CHECKSUM v2"Z |Odn 21,09,a5,01,0d,a5,c3,d1x bc,00,00,00,00,18,a5,c3 2a,a5,c3,2f,a5,c3,43,a5 4f,ce,4f,46,c6,43,48,45 43,cb,00,00,cf,02,ac,c3 a8,a5,21,27,a5,18,03,21 24,a5,28,06,cd,00,b9,c3 49,cb,11,5e,bd01,03,00 ed,b0,c9,4f,cd,00,b9,0d 28,08,0d,20,ea,dd,7e,02 18,04,7b,11,01,00,cd,a9 c1,cd,69,e8,e5,4e,23,46 23,5e,23,56,e1,78,b1,c8 cd,75,c4,e5,09,e3,cd,59 e2,21,8a,ac,cd,7a,a5,e1 18,e2,e5,cd,ba,a5,e3,cd 98,a5,cd,58,f3,e3,cd,f6 a5,cd,9b,c3,e1,7e,a7,c8" cd,98,a5,cd,9b,c3,18,f5, 3a,09,ac,d6,08,47,7e,a76 c8,cd,22,e2,23,10,f7,c9@ cd,24,a5,f5,c5,d5,e5,cdJ ba,a5,cd,f6,a5,e1,d1,c1T f1,c9,eb,1b,af,47,67,6f^ 2f,32,23,a5,13,1a,01,03,00 ed,b0,c9,4f,cd,00,b9,0d 28,08,0d,20,ea,dd,7e,02 18,04,7b,11,01,00,cd,a6 c1,cd,64,e8,e5,4e,23,46 23,5e,23,56,e1,78,b1,c8 cd,72,c4,e5,09,e3,cd,54 e2,21,8a,ac,cd,7a,a5,e1 18,e2,e5,cd,ba,a5,e3,cd 98,a5,cd,53,f3,e3,cd,f6 a5,cd,98,c3,e1,7e,a7,c8" cd,98,a5,cd,98,c3,18,f5, 3a,09,ac,d6,08,47,7e,a76 c8,cd,1d,e2,23,10,f7,c9@ cd,24,a5,f5,c5,d5,e5,cdJ ba,a5,cd,f6,a5,e1,d1,c1T f1,c9,eb,1b,af,47,67,6f^ 2f,32,23,a5,13,1,d6,30h 38,04,fe,0a,38,f6,1a,13r a7,c8,4f,3a,23,a5,a1,fe| 20,28,f3,79,fe,22,20,07 3a,23,a5,2f,32,23,a5,3a 23,a5,a7,79,c4,ab,ff,4f ad,07,6f,09,18,d8,3e,20 cd,a3,c3,3e,5b,cd,a3,c3 cd,49,ef,3e,5d,c3,a3,c33e,20a,d6,30h 38,04,fe,0a,38,f6,1a,13r a7,c8,4f,3a,23,a5,a1,fe| 20,28,f3,79,fe,22,20,07 3a,23,a5,2f,32,23,a5,3a 23,a5,a7,79,c4,ab,ff,4f ad,07,6f,09,18,d8,3e,20 cd,a0,c3,3e,5b,cd,a0,c3 cd,44,ef,3e,5d,c3,a0,c33e,20)5 statu "Drucker ist betriebsbereit!"4 statuZ "Drucker ist ausgeschaltet!"UUUUUUU&&&&&,01,03,00 ed,b0,c9,4f,cd,00,b9,0d 28,08,0d,20,ea,dd,7e,02 18,04,7b,11,01,00,cd,a6 c1,cd,64,e8,e5,4e,23,46 23,5e,23,56,e1,78,b1,c8 cd,72,c4,e5,09,e3,cd,54 e2,21,8a,ac,cd,7a,a5,e1 18,e2,e5,cd,ba,a5,e3,cd 98,a5,cd,53,f3,e3,cd,f6 a5,cd,98,c3,e1,7e,a7,c8" cd,98,a5,cd,98,c3,18,f5, 3a,09,ac,d6,08,47,7e,a76 c8,cd,1d,e2,23,10,f7,c9@ cd,24,a5,f5,c5,d5,e5,cdJ ba,a5,cd,f6,a5,e1,d1,c1T f1,c9,eb,1b,af,47,67,6f^ 2f,32,23,a5,13,1--------------------------------------------------------------------------= s h o w i n g t h e s c r e e n Q--------------------------------------------------------------------------" , s();   s(); s() 3, s();   s(); s() , s();" C P C - A M S T R A D ";s(); 3,, s();" I N T E R N A T I O N A L ";s() , s();   s(); Track-Info  NCPCDATABBASp   ~ ............................... BALL.BAS  ,  , , , ( <"Heft 10-11 / 92"F"TITEL.BIN",&P 0(),4, ;<d DATABOX Menueprogramm (Copyright DMV 1988 / Autor jb)<n ----------------------------------------------------- x Q--------------------------------------------------------------------------P c h a r a k t e r s , v a l uei-System" , s();   s(); mJ s();  8 s(); s();    s(); s() sch 5T  , sch s() D, sch s() +^ sch sch sch r h Tr , s();   s(); s( );  8 s(); s( );    s(); s()| ,"<<< Auswahl mit den CURSOR- Tasten ";();" ";s( );" ";();" und ";();" e s , w i n d o w s a n d s t r i n g sQ--------------------------------------------------------------------------"cpcdatab.dat"#, p#pz=26:REM Prog. Anzahl  p anzfla z cup pr(),lan(),hes()     ,  , s() () p() n() s()#,, ,,#, ,C,,#,E,P,,#,#,#, pro ,,,,,0,#,&,$ ,$,&,#,0,,";s();" ";();" / Bestaetigen mit ";();" RETURN ";();" ! >>>"  c p p#,pr( p)#,lan( p)#,hes( p)#,dumm pQ--------------------------------------------------------------------------G t h e f i r s t o r t h e l a s t s i x t e e nQ--------------------------------------------------------------------------### pgfla D  anzfla  ,, ,,,,, ,,d,$ ,$,d,, ,,,, ,,,,,,,, ,$,$,$,$,$,$,$,$ ,$,$,,,,,$,$ ,,,,,,,, ,,,,,,,, ,,<,$,$,$,$,$,$ ,$,$,$,$,$,$,<, ,,,,,,,$,$ ,$,$,,,,,, ,,<,~,,,,, ,,,,,,~,<, ,,,,,,,,  s( )( )s()">>>"s()"<<<" Q--------------------------------------------- _#,, #, #,, #,pr( );lan( )#,, #,hes( )     p`&#,, #, #,, #,pr( );lan( )#,, #,hes( ) 0 :  D  pqN#,, z#, #,, z#,pr( );lan( )#,, z#,hes( ) X Qb--------------------------------------------------------------------------?l -----------------------------Q--------------------------------------------------------------------------= s h o w i n g t h e s c r e e n Q--------------------------------------------------------------------------" , s();   s(); s() 3, s();   s(); s() , s();" C P C - A M S T R A D ";s(); 3,, s();" I N T E R N A T I O N A L ";s() , s(); w h e r e a r e t h e a r r o w s ?Qv-------------------------------------------------------------------------- *," " *, lan( pro)=#,, cup#,s()#,, cup#,s() S kfla cup #,, cup#," "#,, cup#," "K cup z #,, cup#," "#,, cup#," " Q--------------------------------------------------------------------------? h i   s(); s() 3, s();   s(); s() , s();   s();6 s() , s();();;" ";();S() , s();   s(); s() , s();   s(); s( );  8 @ s(); s( );    s(); s() ," Prg.-Nr. ";s();" P R O G R A M M N A M E : ";S();"DatTrack-Info  N t o n e o f t h e s e k e y sQ--------------------------------------------------------------------------C ""  % () kfla *' () kfla * % ( ) kfla *  P -------------------------------------------------------------------------= a s k i n g f o r k f l a g P -------------------------------------------------------------------------* kfla pro0j pgfla cup cup Et pgfla cup cup cup pgfla  ~ ............................... BALL.BAS BASIC Pascal-Kolleg.............................. DECL.COM CP/M -----------------------------------------------------------;B t a k e o n e f r o m a l lPL-------------------------------------------------------------------------V cup cup.` pro pro pro  4 kfla 8 > kfla HPH ------------------------------------------------------------------------JR  l o a d t h i s p r o g r a m P\ ------------------------------------------------------------------------f###p hes( pro)"ASCII"  lan( pro);" ist eine ASCII-Datei und kein Programm. Es kann daher nicht" "direkt gestartet werden!"  u hes( pro)"CP/M"  lan( pro);" ist ein CP/M-Programm und muss daher unter CP/M gestartet werden!" 2z y(lan( pro),)"BAS" basflaS basfla  lan( pro);" wird geladen !!""!"lan( pro)H#,,#,"Das Programm ";lan( pro);" kann auf zwei Arten"H#,,#,"in den Rechner geladen werden, bitte waehlen Sie :" j#,,#,(");lan( pro);(");" Programm nur laden = Taste ";();" L ";() j#,, #,(");lan( pro);(");" la28 BASIC-Kurs................................. BALL.BAS BASIC Pascal-Kolleg.............................. DECL.COM CP/M Pascal-Kolleg(Quelltext)................... DECL.PAS ASCII Der Schluessel zum Code.................... DECODE.BAS BASIC Mit RSX ganz fix........................... MEGACOL.BAS BASIC Mit RSX ganz fix(Demo)..................... MEGACOL.DEM BASIC Mit RSX ganz fix(Farbeinsteller)........... MEGACOL.MIX BASIC CP/M im EPROM.............................. ROM.Bden und starten = Taste ";();" S ";()G#,, #,"Jede andere Taste fuehrt ins Hauptmenue zurueck !!" C "" = (L) (l)  "!"lan( pro) ; (S) (s)  "!"lan( pro)  P-------------------------------------------------------------------------= o n e a n d o n e i s ? ? ?P-------------------------------------------------------------------------< AS BASIC CP/M im EPROM(Info-Text)................... ROM.INF BASIC INPUT einmal anders........................ STR-EDIT.BAS BASIC INPUT einmal anders(Demo).................. STR-EDIT.DEM BASIC Der CPC als Messlabor...................... TESTP.BAS BASIC Der CPC als Messlabor(Schaltkreiseingabe).. TESTS.BAS BASIC Think-Bombenjagd mit Grips................. THINK.BAS BASIC Trickkiste(Druckerstatus).................. TRICK1.BAS BASIC Trickkiste(Der Gruene Punkt)...........cup cup cup p cup p 6 pro pro pro p pro pD pgfla cup p z cup p z 2$ cup pgfla cup  . P8-------------------------------------------------------------------------;B t a k e o n e f r o m a l lPL-------------------------------------------------------------------------V cup cup.` pro pro pro Track-Info  N.... TRICK2.BAS BASIC Trickkiste(Bildeinblendung)................ TRICK3.BAS BASIC Trickkiste(Bildeinblendung-Demo)........... TRICK3.DEM BASIC Trickkiste(Microschrift)................... TRICK4.BAS BASIC Trickkiste(Sektor Editor).................. TRICK5.BAS BASIC Trickkiste(Leerstrings).................... TRICK6.PAS ASCII Trickkiste(ShowDir)........................ TRICK7.PAS ASCII Trickkiste(AMSDOS Update).................. TRICK8.BAS BASIC Grafik fuer den PlotterS>))0 = | |̀̀DMgo>jB0 7?= H͒<z5a)a<z {0Gɯgo||~}||/g}/o#}o&K[xAJSJDM!b"!6J"DM'd } ) W _}8(8J`9{T]=o`9y ) >' ́ ͬ͗ }>' xˆ }} ˸T}ٕ(0D=z ,= ( ͒ 0%{ , 7 ?(8ͬ x ͆ - r 8˸x ͏  ,-xG}r }مM 9r .>#n0͒ { = - nx ͇ ,-(-˸G,-r }ٕ?M ͫCopyright (C) 1985 BORLAND IncBʏ.ʏ.È.Schneider Joyce12864ZyY yͽY EHLMKqp~7#~= oͦkԄ!!"~#(}:$= +*!5!*!!:(2!5:(>2!!!:O::O:!*! !45(! +/ 0y0(9.> 8ͬ ?= u+-(>͆ 0ͬ ͆ 8 ?x ͇ , 78ƀ8ƀ8ox٨!دoGOW_gɷɷ|لg{ً_zيWyىOxوG|ٔg{ٛ_zٚWyٙOx٘Gxٸyٹzٺ{ٻ|ټx٨ xx( ?}ٽ }ցr <(r 7{ = |٤g{٣_z٢Wy١Ox٠G{ ͬ ́ }x>' ͬ}ƀ/ƀo -́ }0͎-́ ͎,}l˸ 8 4 ͗ x( - 8́ - 8,́ }l8;*!͗ ! >4ͬ͗ ͗ ͬ--- ́ d!k5!{5__o&  :(͠|(  *"x2y( >28!"9!! og2"">~22 9/4*9 Co&ͦͣ} [ (!e{ͦA8Q0G: x@!\w# (͂ ?(*( .( w^. ^!h6# (?( *( ͂( w#>?> w#ͦ 8 !ɿ .,;:=?*[]<>{}a{ |ʹ}ͽƐ'@'7||}>2ͯ*Bڨ  "og"2>2! ,,,-xGg?+2n*8t z~,->' x' ͘}. ͆́ , ! >4,͢- o&0%,͗ }gr }؉}颋.:}8c~I$I~L*͢ٷx˸ }0G,<},-(-́ !>I0 ͗͘ o8 ͆ >' m.`1pF,t6|!wS<.z}[|%FXc~ur1}͆ٯx(<˸ 8 !~J 0.O!>s 8 =  n s͗ ͆ .n 0 ͎-́ OT0 j oD,:j""*B"[Ru*"^#V#^#V#N#FO/o&9O/o&9!9(> (G!9 w#Eͺw}8' RB0 >' RqRR!+ Ͱ R!+ Ͱ r!+ Ͱ r!+ Ͱ r!# Ͱ r!+ Ͱ T]KB!z> Track-Info  N !I}袋.}8c~I$I~L! >ͬ͗ I× nn ͗ = ͆ nf^VNF!DLT\I!!53!r1!͒!> x #-= o˸x͆(- }(x>8(z ,z `iÃ!>' |r |̀>)=|(DMbo˸88x(0 8> ̀x(>-{(ay( z(>. ( {>E>+|(|Dg>-|/ 0:p# ~# +>0w#,-  60#}>22*f(/˦:G(##~++ :O x yC!ͺ Q*:G(##~._.͚f<\=<͚*##w ͮ +4 #4x >>2:G("ͮ"*nˮ*0 SZѷR8@* N#F#s#r, 0})jS\*##w+ N#FB ͮr+s>2!T]>)j)0 0= ]R!#]*^#V#N#F#^#V>2Ͱ:0:*6 #-Nw#Fwq#p#6#w#w#w"~Á>">!DM!":*B:!>(>2>">!"2˸}րogM| .(z = ~> x0w#xG%͇ %͇ ZJDM%͇ = _~65+~hìx-Sx9?+{Η@}|z z gZJDM0{ ,7}o˸? #yO!@9i&"~ʰ*w#wx(9* :O *-4 #4!*4 #4 *-N#Fq#pV+^Bq#pSZѷR&* s#r$ s#rL <?*L!\  <( !\$>2>2L:>!(* \$\<(!3: [1ð\!(7"~> 2"S"Ns#FrB(Z#\: \<(?*"}K\! !*}#"}! x \* *>) 2""{_!"*?  #?w#?/w#?w#!9! E9!!9~(+Fͺ!"9!(#>2*"| >"2:( Ͷ *w*6 !\$![ (ͦ( #:~CONTRMKBDLSTCAUXUSR>2i:*ˮ~0:*:(@q##pZ* :(  ~* < >26"!"""~>2""v>2>"!"ˮ(!~8>~O6~*"nf}(HR0nf" ^VMDnfutqp*s#r*s#r"* uKB!0>' ~#fo{_"*R0RnfR0KqputsrNF( ^VNF^V*SutKqp R*R(~w~wnf ut"6#K*K*!""*NFy(* "*B0Cnf* [R*"*RS[s#r^#V""6#>O"w2x2*"!F"" &y*"*>2"*"w(6(2(-()(6 (8 0 :(* y(~#+ (( 66 #6 #"*: y~o p .##~ͺ(.6w4._~ =*##55= *[R8*~#"= ͣ}== ͯ}͵}*#w+#~+>*~('k!0(ˮ]k!8ˮ!]~-#8~>27kˮw>O$6̃s #r$ͣ6̏ k ( (ˮ qk(ˮ ( k ˮ*O:~ ##~._q4((=ʦ==ʩ=ʬò*!F"""!\*: Nr!~6go(\R*s#r_2x( s x(T]DMx(R0 U(͝O/o&9q# (!>F0#( ~ ( #]( ~ ( (#}(  i&T-a%â}ͦo*!~6o&|:2 2}:__zѯ2*|KB " z ^C User break+=  I/O Run-time error {ʹ, PC=*ͯNot enough memory Program aborted :ʎ'1!d!0B>+:4^q*##~6ͺ>2}*|(̓|( ̓6-#[RM8( G> A~#*'C! !TRUEFALSE!9N#Y~#( G~#> >    "~(kѻ(( !0 (ˮ!!>2Sz:0:*6##ww#w$w#w:  ##N#F*B>2w#w#[s#r> "~ͮ*-w#ww##> ͮÁ""~>2:ZR0 *4#4>2:ZR> *4 #4(> Track-Info  N"t"v*v:*t!*t:ͣfzX!"j*t*j*t*jn&s*j#*!"d"f*f*dn&! *d*f:ͣ}oEʞ!*d#"de!*f*dn&! Eʾ!*d#"d*d"h*h"X"ZM*X*Z! E!0}2O*O&e.*X:=*X*Z! "Z*Z!E! !)"I"K*I*K:ͣ͸*K*In&!) ]O}o}oEʅ"*I#"IC"*I"M*M !""*#"**:ͣ**n&! ]O}oEʤ"*"*! ͩ!͎ͫ * +!}2*&͛ ͛ͺDECL v1.0 ͺ)(C) 1992 Markus Satte & CPC International ͛ ͛ͺ*Auflisten der Prozedur- und Funktionsdeklaͺrationen in Pascal-Programmen *E0͛ͺDatei: !:!ͪ ͛ ́! !t͛ !́!0!9͛ !́!A!Z͛!a!z͛ !! ]! ]&! ]&́!_͑& !M!M!M!!!dfz,"!:! e.=!*#ç,!"!"!"~!"|!"!"!"!}2#"! !:M͠}oE"$}2*#"*!:ͣ͸E#!*n&*&E#*&!*Eʹ#*!:ͣ!*#n&!)}oEʶ#! }2*#"#! }2#! E#! }2#"!"*&! E.#!*#Y!""#!*Y!"*!:ͣ! }o}oEM$"!!Y!"$*!:ͣ͸E$!*n&'R‚$!'%#$pR–$!t%#$(R$*!:ͣE$!*#n&!*E$*#"!*%# ! !"M*x! !:o !  ! }o*x&}o}oE/!! ]! ]$!! !:MBEGIN͍Eʩ-*!Eʟ-!}2x*i&MMAINͺ%æ-*~#"~/!:MCASE͍E-*|!E-*~#"~/!:MRECORD͍E-*|#"|/!:MEXTERNAL͍!:MFORWARD͍}oEH.!i&!:ͺ%*+"/!:MEND͍Eʨ.*|!Ew.*|+"|å.*~+"~*!*~!}oEʥ.*+"/!:M PROCEDURE͍!:MFUNCTION͍}oE/*#"!:M PROCEDURE͍E /**:M͍! }o}oEʹ%"#*!:ͣ͸Eʶ%!*n&! ]OEʯ%!*! ].""!*! ]͏""!:***Rk*ö%*#"%!!:M͍E&!:͛!ͪ M!!"zQ&!:ͣ!:ͣ!FEQ&!:͛!ͪ !:!*zk!!:!:=!"Mͺ%*!E&*!z!!z:ͣ!E&!0e.!z:=!zÓ&!z:M: =ͺ%&M ͺ%*!E('!*̀#"/*#")'-Mͺ%! i ͛ ͛ͺGefunden wurden insgesamt: **!&ͺ Unterprogramme, ͛ͺ davon: *!&ͺ Funktionen ͛ͺ und: *!&ͺ Prozeduren. ͛ ͛ davon: *!&ͺ Funktionen ͛ͺ und: *!&ͺ Prozeduren. ͛&&&&&fz'"z!.e.ͺ%*z#'! e.ͺ%Ý(!r:ͺ%!:ͣ!"zM (!r!! ]! ]$!!j !j:MVAR͍Eʲ'!r:!j:=! e.=!rh(!r:!:=!r!́!,͑!;͑!:͑!(͑!)͑! ]$!r:!:=!r!:!)e.͠E>(!r:! e.=!r!:!;e.͍Eh(!r:ͺ%M!r!:!)e.͍EU'!́!:͑!;͑! ]$*i&!"z!:! e.=!r!! ]! ]$!r:!:=!r!́!(͑!(* ------------------------------------------------- *) (* Der Funktionsspuerhund *) (* Amstrad CPC 6128/PCW 8256/8512/9512 *) (* (c) 1992 Markus Satte & CPC International *) (* Funktion: Auflistung aller Prozedur- und Funk- *) (* tionsdeklarationen innerhalb von Pascal-*) (* porgrammen. *) (* ------------------------------------------------- *) {$P1024} (* fuer Turbo Pascal, ermoeglicht *) :͑!;͑! ]$!:!(e.͍E/),'!:!:e.͍Eʖ)!! ]! ]$!r:M: =!:=!r!́!;͑! ]$!:!;e.͍E)!r:!;e.=!r!r:ͺ%!i!!i:o !!}2i!i *i&!}2͛!E`*͛ͺ,*** Fehler: ungueltige Parameter angegeben ! +!}!!.e.!:Ͳ!Eʤ*!:M.PAS=!!! !:)}oE+͛ͺ*** Fehler: Datei "!:!ͪͺ" nicht gefunden !Track-Info  N (* die Ausgabe-Umleitung *) PROGRAM Decl (Source, Output); CONST LineWidth = 70; TYPE MyString = STRING[255]; CharSet = SET OF CHAR; VAR Source : TEXT; allChars, Delimiters, Numbers, Letters : CharSet; FileName, word, Line, OutLine, Blanks : MyString; LinePos, LineCount, inProc, FuncCount, ProcCount, BeginEnd, RecordEnd, TabPos : INTEGER; DeclEnd, ready inChar: CharSet): INTEGER; BEGIN WHILE (Pos <= Length(Line)) AND (NOT(Line[Pos] IN BeginChar)) DO Pos:=Succ(Pos); BeginOfWord:=Pos; END; (* ------------------------------------------------- *) (* sucht in der Zeile das Ende eines Wortes ab der *) (* angegebenen Position. "EndChar" ist die Menge der *) (* Zeichen, die ein Wort abschliessen duerfen. Bei *) (* Compilern, die beide UNTIL-Bedingungen testen, *) (* muss hier die Bereichspruefung kurz ausgeschaltet *) (* werden. : BOOLEAN; (* ------------------------------------------------- *) (* Umwandeln eines Strings in Grossbuchstaben unter *) (* Verwendung der Turbo-Standard-Funktion upcase(), *) (* die nur fuer einzelne Zeichen definiert ist. Fuer *) (* Nicht-Turboisten und dem ASCII-Zeichensatz: *) (* FUNCTION UpCase (ch: CHAR): CHAR; *) (* BEGIN *) (* UpCase:=ch; *) (* IF ch IN ['a'..'z'] THEN *) FUNCTION EndOfWord (VAR Line: MyString; Pos: INTEGER; EndChar: CharSet): INTEGER; BEGIN REPEAT Pos:=Succ(Pos); UNTIL (Pos > Length(Line)) OR (Line[Pos] IN EndChar); EndOfWord:=Pos; END; (* ------------------------------------------------- *) (* eine nicht leere Zeile aus der Quelldatei lesen *) (* und Zeilenzaehler erhoehen: *) PROCEDURE NextLine; BEGIN REPEAT ReadLn(Sou *) (* UpCase:=Chr(Ord(ch)-32); *) (* END; *) PROCEDURE UpString (VAR source, dest : MyString); VAR i : INTEGER; BEGIN dest:=source; FOR i:=1 TO Length(dest) DO dest[i]:=UpCase(dest[i]); END; (* ------------------------------------------------- *) (* ermittelt Position des ersten Nicht-Leerzeichens *) (* in einer Zeichenkette ab der Start-Position. Wird *) (* keines mehr gerce,Line); LineCount:=Succ(LineCount); UNTIL Eof(Source) OR (Line <> ''); END; (* ------------------------------------------------- *) (* Ueberliesst Zeichenketten-Konstanten und Kommen- *) (* tare. Ist "Line[LinePos]" ein Leerzeichen, wird *) (* der Anfang des naechsten Textes gesucht. Beginnt *) (* ein Kommentar oder String, wird dieser Ueberlesen *) (* und "Line[LinePos]" auf das den Kommentar folgende*) (* Nicht-Leerzeichen gestellt: *) PROCEDURE StringComment; funden, wird eine groessere Pos. als*) (* Laenge der Zeichenkette zurueckgegeben. *) FUNCTION PosNonBlank (VAR Line: MyString; Pos: INTEGER): INTEGER; BEGIN WHILE (Line[Pos] = ' ') AND (Pos < Length(Line)) DO Pos:=Succ(Pos); IF Line[Pos] = ' ' THEN Pos:=Succ(Pos); PosNonBlank:=Pos; END; (* ------------------------------------------------- *) (* Wandelt eine Integer-Zahl in eine Zeichenkette um:*) PROCEDURE NumToStr (number:INTEGER; VAR txt: MyString PROCEDURE FindEnd (EndChar: CHAR); (* klar ?! *) BEGIN REPEAT LinePos:=Succ(LinePos); IF LinePos <= Length(Line) THEN BEGIN IF Line[LinePos] = EndChar THEN BEGIN IF EndChar = '*' THEN BEGIN IF (LinePos < Length(Line)) AND (Line[Succ(LinePos)] = ')') THEN BEGIN EndChar:=' '; LinePos:=Succ(LinePos); END; END ELSE EndChar:=' '; END; END ELSE IF Eof(Sour); VAR ch : CHAR; BEGIN txt:=''; REPEAT ch:=Chr(number MOD 10 + Ord('0')); txt:=Concat(ch,txt); number:=number DIV 10; UNTIL number = 0; END; (* ------------------------------------------------- *) (* sucht in der Zeile den Anfang eines Wortes ab der *) (* angegebenen Position. "BeginChar" ist die Menge *) (* der Zeichen, mit denen ein Wort anfangen darf: *) FUNCTION BeginOfWord (VAR Line: MyString; Pos: INTEGER; BegTrack-Info  Nce) THEN EndChar:=' ' ELSE BEGIN NextLine; LinePos:=0; END; UNTIL EndChar = ' '; LinePos:=PosNonBlank(Line,Succ(LinePos)); StringComment; (*falls gleich wieder einer folgt!*) END; BEGIN LinePos:=PosNonBlank(Line,LinePos); WHILE (LinePos > Length(Line)) AND NOT Eof(Source) DO BEGIN NextLine; LinePos:=PosNonBlank(Line,1); END; IF LinePos <= Length(Line) THEN CASE Line[LinePos] OF '''' : FindEnd(''''); 'p' : FindEnd('t'); VAR i : INTEGER; temp: MyString; BEGIN Out(''); IF num > 0 THEN BEGIN NumToStr(num,temp); WHILE Length(temp) < 5 DO temp:=Concat('0',temp); Out(Concat(temp,': ')); END ELSE Out(' '); IF inProc > 1 THEN BEGIN FOR i:=2 TO inProc DO Out('.'); Out(' '); END; END; (* ------------------------------------------------- *) (* Prozedur/Funktions-Deklaration ausgeben: *) PROCEDURE FuncProcOut; VAR temp : MyString; (* ------------------------- '(' : IF LinePos < Length(Line) THEN IF Line[Succ(LinePos)] = '*' THEN BEGIN LinePos:=Succ(LinePos); FindEnd('*'); END; END; END; (* ------------------------------------------------- *) (* Das naechste Wort liefern. *) (* "BegChars" ist die Menge der Zeichen, mit denen *) (* das Wort anfangen darf, "EndChars" enthaelt die *) (* Menge, die nicht zu einem Wort gehoeren: *) PROCEDURE GetNextWord (VAR word: ---------------------- *) (* Parameterliste der Deklaration ausgeben. Dabei *) (* werden zu lange Zeilen umgebrochen und neu for- *) (* matiert: *) PROCEDURE ParamsOut; VAR tempword : MyString; BEGIN Out(temp); TabPos:=Length(OutLine)+2; temp:=' ('; REPEAT GetNextWord(word,Letters,Delimiters); UpString(word,tempword); IF tempword = 'VAR' THEN temp:=Concat(temp,tempword,' ') ELSE BEGIN temp:MyString; BegChars, EndChars:CharSet); VAR Pos : INTEGER; BEGIN word:=''; WHILE (word = '') AND NOT Eof(Source) DO BEGIN StringComment; IF LinePos <= Length(Line) THEN IF Line[LinePos] IN BegChars THEN BEGIN Pos:=BeginOfWord(Line,LinePos,BegChars); LinePos:=EndOfWord(Line,Pos,EndChars); word:=Copy(Line,Pos,LinePos-Pos); END ELSE LinePos:=Succ(LinePos); END; END; (* ----------------------------------------=Concat(temp,word); GetNextWord(word,[',',';',':','(',')'],allChars); temp:=Concat(temp,word); IF word <> ')' THEN temp:=Concat(temp,' '); IF word = ';' THEN BEGIN Out(temp); temp:='' END; END; UNTIL word = ')'; GetNextWord(word,[':',';'],allChars); END; BEGIN LineNum(LineCount); TabPos:=0; (*Deklarations-Anfang "PROC/FUNC Name ..." aufbauen*) temp:=Concat(word,' '); GetNextWord(word,Letters,Delimiters); (* Name *) temp--------- *) (* Text-Ausgabe. *) (* Die Ausgabe wird solange zwischengespeichert, bis *) (* durch eine neue Ausgabe "LineWidth" ueberschritten*) (* wird oder eine leere Zeichenkette uebergeben wird.*) (* Nach der Ausgabe wird die naechste Ausgabe ab der *) (* Position "TabPos" getaetigt. Bei Ueberschreitung *) (* von "LineWidth" wird der auszugebende Text in die *) (* naechste Zeile uebernommen: *) PROCEDURE Out (txt: MyString); BEGIN :=Concat(temp,word); GetNextWord(word,['(',':',';'],allChars); IF word = '(' THEN ParamsOut; (* Parameterliste ? *) IF word = ':' THEN BEGIN (* Funktionstyp ? *) GetNextWord(word,Letters,Delimiters); temp:=Concat(temp,': ',word); GetNextWord(word,[';'],allChars); END; IF word = ';' THEN temp:=Concat(temp,';'); Out(temp); END; (* ------------------------------------------------- *) (* Test, ob angegebene Datei vorhanden ist: *) FUNCTION FileExist (name : IF txt = '' THEN BEGIN WriteLn(OutLine); OutLine:=''; TabPos:=0; END ELSE IF Length(txt)+Length(OutLine) > LineWidth THEN BEGIN WriteLn(OutLine); OutLine:=Copy(Blanks,1,TabPos); END; OutLine:=Concat(OutLine,txt); END; (* ------------------------------------------------- *) (* Zeilennummer der Prozedur/Funktion ausgeben und *) (* entsprechend der Schachtelung eine Einrueckung er-*) (* zeugen: *) PROCEDURE LineNum (num: INTEGER); Track-Info  N          MyString) : BOOLEAN; VAR f : TEXT; BEGIN Assign(f,name); {$I-} (*I/O-Ueberwachung durch Laufzeitsystem aus. *) ReSet(f); {$I+} (* ... und wieder an ! *) FileExist:=IOResult = 0; Close(f); END; (* ------------------------------------------------- *) (* pruefen, ob Parameterzeile ok ist: *) FUNCTION ParamOk: BOOLEAN; BEGIN ParamOk:=FALSE; IF ParamCount = 0 THEN WriteLn('*** Fehler: ungueltige Parameter angegeben !') ELSE BEGIN N') THEN BEGIN inProc:=Succ(inProc); IF word = 'PROCEDURE' THEN ProcCount:=Succ(ProcCount) ELSE FuncCount:=Succ(FuncCount); FuncProcOut; END; END; (* WHILE *) Out(''); Close(Source); WriteLn; WriteLn('Gefunden wurden insgesamt: ', FuncCount+ProcCount:3,' Unterprogramme,'); WriteLn(' davon: ', FuncCount:3,' Funktionen'); WriteLn(' und: FileName:=ParamStr(1); IF Pos('.',FileName) = 0 THEN FileName:=Concat(FileName,'.PAS'); UpString(FileName,FileName); IF NOT FileExist(FileName) THEN WriteLn('*** Fehler: Datei "',FileName, '" nicht gefunden !') ELSE ParamOk:=TRUE; END; END; (* ------------------------------------------------- *) BEGIN (* Decl *) WriteLn; WriteLn('DECL v1.0 ', '(C) 1992 Markus Satte & CPC International'); WriteLn; WriteLn('Auflisten der', ProcCount:3,' Prozeduren.'); WriteLn; END; WriteLn; END.  0<~~<$ff$ Prozedur- und Funktionsdekla', 'rationen in Pascal-Programmen'); IF ParamOk THEN BEGIN WriteLn('Datei: ',FileName); WriteLn; allchars:=[' '..'t']; Numbers :=['0'..'9']; Letters :=['A'..'Z','a'..'z']; Delimiters:=allchars - Numbers - Letters - ['_']; Line:=''; OutLine:=''; Blanks:=''; FOR LinePos:=1 TO 100 DO Blanks:=Concat(Blanks,' '); LineCount:=0; inProc :=0; BeginEnd :=0; RecordEnd:=0; FuncCount:=0; ProcCount:=0; LinDECODE BASp  Q)  $$$w +#:-<¨ր2- x‹0,C2,d DECODE.BAS$n CPC 464(plus)/664/6128(plus)"x (c) 1992 William Wieprecht" & CPC International NS  , ,  ,  ,  "DECODE.BIN", zy l ,"Alkatraz Deprotection System"  , "written by "; "RED DRAGON"  , "Schleife Nr. :" , "Codier-Rout. :"% ,"ProgrammePos :=1; ready:=FALSE; Assign(Source,FileName); ReSet(Source); WHILE NOT Eof(Source) AND NOT ready DO BEGIN GetNextWord(word,Letters,Delimiters); UpString(word,word); IF word = 'BEGIN' THEN BEGIN IF inProc = 0 THEN BEGIN ready:=TRUE; LineNum(LineCount); Out('MAIN'); END ELSE BeginEnd:=Succ(BeginEnd); END ELSE IF word = 'CASE' THEN BEGIN IF RecordEnd = 0 THEN BeginEnd:=Succ(BeginEnd); END ELSname : ",na@"Startadresse : ", ad ad ad ad9 ad ()," Unzulaessig !" , 4 ad na""   na, adY ( ad) ( ad)O spac ad  ,"ERROR!"TESTIdentifizierungsschleife, l l ty spac @ ( )W ( )w ( )# ty@ ( ) ( )z ( ) ty@ ( ) ( )E IF word = 'RECORD' THEN RecordEnd:=Succ(RecordEnd) ELSE IF (word = 'EXTERNAL') OR (word = 'FORWARD') THEN BEGIN LineNum(0); Out(word); inProc:=Pred(inProc); END ELSE IF word = 'END' THEN IF RecordEnd > 0 THEN RecordEnd:=Pred(RecordEnd) ELSE BEGIN BeginEnd:=Pred(BeginEnd); IF (inProc > 0) AND (BeginEnd = 0) THEN inProc:=Pred(inProc) END ELSE IF (word='PROCEDURE') OR (word='FUNCTIOTrack-Info  N          ( )_ ty@ ( ) ( )_ ( ) ty8 ty ,(,, ,(,, ,  @@" ,  l ,  ty ty r,,, , 6Speichern + Endey@"Startadresse : &";s( spac),,,,,"Programmname :",na na"" T  na, , spac, l:J na"" T  na, , spac, lTT , "I wish you a nice byte ! "; "RED DRAGON"  N ^Decodierung hTYP 1Sr wer( spac) 7, wer l( spac) h( spac)F| 1, l 2, h l( spac) h( spac)8 l l h 4, l 5, h 0I spac spac zy zy( l) zy zy D TYP 2' zy zy D , zyF l( spac) h( spac) , l , hb l( spac) h( spac) l l h  , lEMU BIN99~CLEAR INPUCOPYCHR~DERIgϥ>2!"2!"2!"2!"2 !*"2!"2!آ"2޻!"߻2!"2û!"Ļ!S"!b":26*"7>2!"'a!~#ֺO! û!uh:62*7"̀!6!"7?7եYU0 >͟ۥޥYUKإYU>Y+~ (,+*4?!(ͪ8͓O://23<23:3 :9̱:0̱:F:/   , h 9 spac spac zy zy( l) D TYP 3' zy zy D F, zyF l( spac) h( spac) , l , hF l( spac) h( spac) K, l L, hb l( spac) h( spac) l l h N, l O, h E: spac spac zy zy( l)  D TYP 4' zy zy D }, zyF l( spac) h( 2/:8G̱:9G!ϱ_:DG00#O{2/:0 *8}G̱ʣ͆ 2:hͩ ::W(~:8_(v#- :48Rz(M{ Fw  z({( H +ߊ#ˠ z({( h #ߊ+:60+ {(z *4}+"4xӣ{*+V+^+"n&ɍ*8"+r+s+q*4#"4(A(WJ,((> d>y(~+r ~< #?7(7,> *4?|(*°!7>>7)`>I>и> >ȸ>ֹ>aU8>̄āU>spac) , l , h\& l( spac) h( spac) l l h , l , hL0 l( spac) h( spac) , l , h |:: spac spac zy zy( l) D=D z zy z ( z) zy zy zFN , ();"FEHLER "A" in Zeile "  , (')  $$$w +#:-<¨ր2- x‹0,C2,A8,AF,D6,80,10,F6,32,2D,AF,C1,0B,78 B1,C2,8B,AF,C9~{#U8 KإU>20KǣU8 g2/U>21 8ϩFILGRAPHICMASFRAMCURSOCLEAR INPUCOPYCHR~DERIgϥ9~CLEAR INPUCOPYCHR~DERIgϥ 2,!?~W:,_ <ր2,{w# x !~Ww# x > 2!0@:W <_ր2~W:W:w# xP> 2-!E!?:-w +#:-<¨ր2- x‹0,C2,A8,AF,D6,80,10,F6,32,2D,AF,C1,0B,78 B1,C2,8B,AF,C9Track-Info  N         1,03,00 ed,b0,c9,4f,cd,00,b9,0d 28,08,0d,20,ea,dd,7e,02 18,04,7b,11,01,00,cd,a2 c1,cd,a3,e7,e5,4e,23,46 23,5e,23,56,e1,78,b1,c8 cd,3c,c4,e5,09,e3,cd,63 e1,21,a4,ac,cd,7a,a5,e1 18,e2,e5,cd,ba,a5,e3,cd 98,a5,cd,96,f2,e3,cd,f6 a5,cd,4e,c3,e1,7e,a7,c8" cd,98,a5,cd,4e,c3,18,f5, 3a,24,ac,d6,08,47,7e,a76 c8,cd,45,e1,23,10,f7,c9@ cd,24,a5,f5,c5,d5,e5,cdJ ba,a5,cd,f6,a5,e1,d1,c1T f1,c9,eb,1b,af,47,67,6f^ 2f,32,23,a5,13,1a,MEGACOL BIN  f$$$6,0F,0F,06,06,00,00,00,00,00,00,00,00,01A4>2!Ѽs&CÃJ͊ۊ:‹e!NI# >2‹ {2ċ:‹&:Ëe>2Ë!>2!͊"!j:‹e:Ëe!2Ë!jI>2h!ŋd"2h:ċI!ŋ"!ŋ"(Ee^VNFxeyeze{e!ŋxGH !!!!yOq#rFJS::::˻˳˫ˣ(e^VN>ZASIC.INIMC.OEMULATORBASpEMULATOR$$$p# Lader fuer 664/6128-Emulator     ( 2"!emu.bin", < F"BASIC 1.1 installiert"EMULATOR$$$pEMULATOR$$$pMC.OFMC.INMC.BORDEMC.NORMAMC.COPYTAwQb9F+ U"3Dfw  `of$$$6,0F,0F,06,06,00,00,00,00,00,00,00,00,01A40F,06,06,00,00,00,00,00,00,00,00,01A43,E9,8A,C3,4A,8B,092C 32/:8G̱:9G!ϱ_:DG00#O{2/:0 *8}G̱ʣ͆ 2:hͩ ::W(~:8_(v#- :48Rz(M{ Fw  z({( H +ߊ#ˠ z({( h #ߊ+:60+ {(z *4}+"4xӣ{*+V+^+"n&ɍ*8"+r+s+q*4#"4(A(WJ,((> d>y(~+r ~< #?7(7,> *4?|(*°!7>>7)`>I>и> >ȸ>ֹ>aU8>̄āU>MEGACOL DEMp.OF$$$|MC.OFacolour V1.0-Befehle greifed MEGACOL.DEM n CPC 464(plus)/6128(plus)!x (c) 1992 Marc Stiegemeyer" & CPC International Initialisierung B,,,, , F c(,),c(,) . |MC.O1|MC.BORDE,  |MC.IN,,( Aufbau des Demo-Screens Nummer 1Q   , "M E G A C O L O U R"MEGACOL BASpaMEGACOL $$$= A  "Megacolour-Befd MEGACOL.BAS n CPC 464(plus)/6128(plus)!x (c) 1992 Marc Stiegemeyer" & CPC International O () ();"Megacolour V1.0 wurde schon initialisiert!" 1 "megacol.bin", |ASIC.INI- "Megacolour V1.0 initialisiert"= A  "Megacolour-Befehle greifen nicht!!!" , "D E M O N S T R A T I O N"C , "MEGACOLOUR"; " ist eine Maschinenroutine zur"C ,"Darstellung von 16 aus "; "4096"; " Farben.": ,  "Achtung!!! Das Programm ist nur auf der":" ,  "Amstrad plus-Serie (464 plus/6128 plus)"!, , "lauffaehig!!!";6 , "Die Demo besteht aus insgesamt 3 Teilen:"+@ , "1) "; "Info-Screen"'J , "2) "; "Fraktal")T , "3) "; "MC-Script"p^ Track-Info  N         , "Um zum jeweils naechsten Teil zu" ,"gelangen, ist "; "[TAB]"; " zu druecken."hr Farbrandom| graphiknS n  n c(n,n)z(E) f  ( Aufbau des Demo-Screens Nummer 2F |MC.BORDE,  |MC.IN,, graphiknS"fr.pic",  , ()()"Weiter mit Druck auf [TAB]"()()) Farbfelder belegen und darstellenAc()((c(,)c(,))),c(,)((c(,)c(,)))z|MC.IN,,c(,)((c(,)c(,))),c(,)((c(,)c(,))),c(,)((c(,)c(,)))|MC.IN,,c(,)((c(,)c(,))),c(,)((c(,)c(,))),c(,)((c(,)c(,)))% brfl C()  # sub: Farbfeld aktualisieren]   ,) c(,)c(,) f  Gruen@c(,) c(,)c(,) f  Blau?c(,) c(,)c(,) f  Rotc(,) c(,) c(,) c(,)c(,)c(,)c(,)c(,)c(,) f  Grau[c(,) c(,)c(,)c(,)c(,) f  normalic(,) c(,) c(,)c(,)c(,)c(,) f n c(,n)c(,n)c(,n)K sub: bei Druck auf TAB Farbfeld aktualisieren, und naechster Screen n  n c(n,n)c(n,n)((c(n,n)c(n,n)))  brfl f brflm graphikn   graphikn X  |MC.OF    , B,,,, sub: Error-Handling$]. A   "Das Fra Gelbi&c(,) c(,) c(,)c(,)c(,)c(,) f  Lila 0 :(D Aufbau des Demo-Screens Nummer 3NX graphikn1b|MC.BORDE,  |MC.IN,,Nl     Iv(    I   ,,, "Demonstration - ";();" 3'1992 by MST";ktalbild ist auf Diskette nicht zu finden!!!" L8 A  ()  "Megacolour V1.0 wurde noch nicht initialisiert!!!" L  "Megacolour V1.0-Befehle greifen nicht!!!" LB +L , B,,,,|MC.OF$$$|MC.OFacolour V1.0-Befehle greifen nicht!!!" .$ .|MC.OF Farb-Randomo   n c(,n)c(,n)c(,n)z(E) f " sub: Schriftzuege zeichnen7 , ,x I,< I,< ,x  ,; ,x , ,< j, j,< ,  ,_ ,d , j, , ,P , j, , ,( ,  ,<& I,x I,x %,< I,\ , _,d , C, ,MEGACOL MIXp" "  |MC.OF   farb),),);d MEGACOL.MIX n CPC 464(plus)/6128(plus) x (c) 1992 Marc Stiegmeyer" & CPC International Initialisierung  inte() numme* Bildschirm einrichten und aufbauen9|MC.OF  ,,,   , ( " MegaColour - "()" MST"  J  , ,P , C, ,  ,W  _,d , C, , ,P , C, , ,P  ,d# _, _, ,x k,xW  _,d , C, , ,P , C, , ,P  ,d;* ,x ,d , C, , ,d  ,x>4 ,x Q, , , , Q, Q,<>H R sub: Farbfeld einblenden\f  p|MC.IN,,c(,)((c(,)c(,))),c(,Track-Info  N           , ,  , ,   Auswahlbalken` ,, ,d , ,d , ,  ,  R/G/B-SichtfensterN ,, ~, ,d ~, ,d ,   Misch-SichtfensterB"   >,,"00";  R/G/B-Anteile5,#, #,,#,"Gesamt: 0000"  MischfarbeK6|MC.BORDE,|MC.IN,,|MC.IN,,U|MC.IN,,|MC.IN,,U@|MC.IN,,|MC.IN,,|MC.IN,,|MC.IN,,|MC.IN,,|MC.IN,,PLGRAF BASp&&  y  y yhil i  * dPLGRAF.BASnCPC 6128(+), 664%x(c)1992 CPC International (jg)` "Plottertreiber einbinden?" "(Von Zubehoerdiskette zum Plotter)" "j/n" C "" p "j"  "Plotterdiskette einlegen!" C"" "plotter.bin",  fp fp hB  ^ m #  TJ|MC.IN, ,f|MC.IN, ,U|MC.IN, ,U|MC.IN, ,U|MC.IN,,D T|MC.O^h Erste Abfrager#| , "Farbwahl: R G B"(C)' t("RGB",) ""  Zweite Abfrage:  ,"Auswahl: "()( )()" R G B" ,"RETURN SPACE I"Q|MC.IN, numme ,U nummet("RGB",)|MC.IN, numme ,  N (C) "" y () inte( numme)  Datei"  F  Zoom"   edit#   Plott  m #   Markieren  #,,#, ;" "; ;%" x  y  f , 6 f @  J# T ^hInitialisierungr|  x,y,v,h,o,f,i,b,l,m,n fp |INI( bma h bpo f C xma yma| ymi xmi m inte( numme) inte( numme)  <-- (Farbkomponente Minus 1)y () inte( numme) inte( numme) inte( numme)  --> (Farbkomponente Plus 1)O ( ) inte( numme)  RETURN/ENTER (Farbkomponente:=0)J ( ) inte( numme)  SPACE (Farbkomponente:=15)U (I) inte( numme) inte( numme)  I (Komp. invert.): t("RGB",)   R/G/B-Komponenten-Anwahl & 0 mlanO   y  x      f  , , #,,(,, z , ,,Koordinateneingabe ( (/) (L)) (/) (L) , () yma  , (H) yma /& () yma 00 (H) yma +: () ymi ,D (I) ymi (: sub: Balken- und FarbdarstellungDN  X n Cb ( numme),n, inte( numme) ,Kl inte( numme)  inte( numme) ,,( numme)v>|MC.IN, numme, inte( numme)( numme)3|MC.IN,, inte(), inte(), inte() >( numme),, inte( numme) "0";(( inte( numme)),);  (( inte( numme)),);8 farb inte() /N () ymi 0X (I) ymi +b () xmi ,l (J) xmi /v () xmi 0 (J) xmi + () xma , (K) xma / () xma 0 (K) xma #,,#, ;" "; ;  inte() inte();#,,#,"Gesamt: ";y("0000"(( farb),),); sub: ESCape! |MC.OF   farb),),); sub: ESCape! |MC.OF    3Track-Info  Nx z, y z, f f|( z, z) f z, z,  z, z,  x  y  '1 Teil Zeichnen: PE-xa,ya,x,y,i$  *,H,\K x z, y z,  z, z,  f  @* x z, y z,  z, z, 4>H x z, y z,  z, y z,  z, z, bcoun)( bcoun) bcoun bcoun  2 xor z  yor z "Abfrage des Dateinamens,6"D(i)rekteingabe";@ (#)J ,  %T"*.plg"|DI,@""^ y(#)h  r , 7|   ~(#) ,  0  ,  ;  , + ()   , ()   - x z, z,  x z, y z, R\ fKreis0p xa x z x( x) z0z ya y z y( y) z& x( x x y y)& r x x x x x x. x( r x x) x xF xa x, ya x,  xa x, ya x, F xa x, ya x,  xa x, ya x, G xa x, ya x,  xa () <  - ()    ()  (#)   ;"" r%  , y"Dateiname:",0 t(,y(,),".") ".plg"Datei Ein- Ausgabe&0"(L)aden (S)peichern": DC "" DN "l" lX "s" b l v ""  , bpo()() bpox, ya x, G xa x, ya x,  xa x, ya x,  x, y, Menueabfrage m  m $"" mx'. x mx ( x)(8 x mx n( x)(B x mx ( x) L#2V#,, x mx#,( x);` fla x y j \t ~ fla C xc mx7  bpo  x   ""  , ,, bpo  xMenuepunktewahl<  () x mlan x x mlan R? (J) x mlan x x mlan R N  () x( mx mlan mlan) x x mlan RO* (K) x( mx mlan mlan) x x mlan R4 () > (L)  HR#,;\#, x, yKn( xc) ( xc) fla  #Bildspeicherung+ bpo,  bpo bpo FN bpo,( x ) bpo,( ( x)) bpo bpo FN  bpo,( y ) bpo,( ( y)) bpo bpo FL bpo,( ) bpo,( ( )) bpo bpo FL bpo,( ) bpo,( ( )) bpo bpo F( ,(( bpo) )!2 ,(f"" o mlan~(#)#, x o, y Fp#, x, y#,#,#,;#,#,#, x, yz xc mx6 ( xc) ( xc) fla Menue-DatasJ 4,"(D)atei ","(Z)oom ","(E)dit ","(P)lott ",d,z,e,p,1,2,3,4 I 4,"(L)inie ","(R)chtck ","(K)reis ","(M)ark ",l,r,k,m,1,2,3,4 H 4,"(S)kal ","(L)oesch ","(V)ersch ","(K)opie ",s,l,v,k,1,2,3,4Plotten (( bpo)))<FPSpeicherkontrolleZOd bpo bma fla , ();"Speicher voll!" flanxNeuer Bildaufbau xor, yor bcoun bcoun bpo- ( bcoun) bcoun bcounA x( bcoun)( bcoun) bcoun bcounA y( bcoun)( bcoun) bcoun bcounA ( bcoun)( bcoun) bcoun bcoun A ( Track-Info  N1 ##,"Ausgabe auf den Plotter?(j/n)";  C ""   "j" $  . |INI8 bcounB bcoun bpo/L ( bcoun) bcoun bcoun JV x(( bcoun)( bcoun))8 bcoun bcounU` y( yma(( bcoun)( bcoun)))8 bcoun bcoun Jj (( bcoun)( bcoun))8 bcoun bcoun Ut ( yma(( bcoun)( bcoun)))8 bcoun,( ( )) bcoun bcounN bcoun,( ) bcoun,( ( )) bcoun bcoun& 0 : markiertes Teil loeschenD N bpo bpoX obcoun bpo/b hil( bcoun) obcoun, hil2l bcoun bcoun obcoun obcounv  ,(( bpo) )! ,( (( bpo)))  $ markiertes Objekt verschieben  ##,"Neue Position:";2 xhil x yhil oun bcoun ~    |MOV,,   Ausgabe auf Plotter   , ,  ( |PLO, x, y|DRA, ,   ` |PLO, x, y|DRA, , y|DRA, , |DRA, x, |DRA, x, y     KreisH x x y y x( x x y y)( |MOV, x, y2 |CIRCL, x< F  P ZoomZ 0d # #,"Faktor(Bildschirm):"; zfhil.n zfhily B x  x xhil y  y yhil    1 Objekt kopieren  ##,"Position:";J xhil x yhil y   B x  x xhil y  y yhil i  * yhil i  * i  p ss|ff"; T ogrammname : STR-EDIT.???#""Laenge : 671 Byte &,"Ladebereich : &A000 - &A29E6"Startadresse : &A014<@"STR-EDIT.LDR : Basic-Lader erstellt STR-EDIT.BIN(J"STR-EDIT.DEM : Demo-Programm 'T"STR-EDIT.BIN : Maschinen-Code ^ R!h ** Befehlsbeschreibung **r?| ,"S T R I N G E D I T - D E M O P R O G R A M MV"Nach dem Einbinden der Befehlserweiterung steht folgender neuer Befehl zur Ver-^"fuegung : "()" |STRINGEDIT,STR-EDITBINX!j~Z#!  !010MEMORY &9FFF 1020FO##STRINGEDIS!Ѽ>2n}„>ڄf|„>PڄL"nf~2#^#VSGڄQ(҄~ (>2nf "~2*u~Z#>2*ú 8O 1*wʀʒʡġҡ1>0>1~ (%(>`0>z8>ߡ >Z8 >@0> O*w:1nf~#^#VG(ʡ:(:_*+q:5{25:G:_O*+( +x2q5mode,capslock,@char%,@ascii$,@text$,spalte,zeile "()"Parameterbeschreibung:"----------------------&"mode : 0 = Ueberschreibmodus"" : 1 = Einfuegemodus%"capslock: 0 = keine PrioritaetC" 1 = Buchstaben werden in Kleinbuchstaben gewandeltC" 2 = Buchstaben werden in Grossbuchstaben gewandeltI"char% : Uebergabe an die Routine bei welchem Zeichen die Routine@" unbedingt verlassen werden soll (CHaRacter-Nr.)N" :G:(@<2> ::(1=2>+:G:Oʥ̈́G> Zy2́å̈́Ò>Zå:(O* +: :=25:O* :O(> 5:ʥ: 2ʡ>̈́̈́*u*:G~Z#*:=gÚParameter-Fehler !Wertbereichs-Fehler !!X!j~Z#!  !010MEMORY &9FFF 1020FOR adr=&A000TO &A29E STEP 11 1030 FOR i=adr TO adr+ 10 1040 Beim Verlassen der Routine wird die CHaRacter-Nr. des zuletzt1" eingegebenen Zeichen eingetragen<" !! Carriage Return wird nicht uebergeben !!$"ascii$ : zugelassene ZeichenK&"text$ : zu bearbeitender String (bestimmt gleichzeitig die Laenge)#0"spalte : Spalte der Eingabe":"zeile : Zeile der Eingabe D R"N ** Weitere Erklaerungen **AX ,"S T R I N G E D I T - D E M O P R O G R A M Mb"Funktion der Tasten :l"---------------STR-EDITDEMp dumm " TASTE "010MEMORY &9FFF 1020FO%d String Editor - Demonstration$n CPC 464(plus)/664/6128(plus)#x (c) 1992 Hubert Cronenbrock" & CPC International $ "STR-EDIT.BIN"  O  ~asciasci( ) zugelassene Tasten ASCIIQzahle"1234567890" zugelassene Tasten Zahlentex{(, )v"12------.v"[RETURN] = Eingabe abschliessen -"[ENTER] = Eingabe abschliessen3"["()"] = Cursor nach rechts 1"["()"] = Cursor nach links/"[SHIFT] + ["()"] = Cursor ans Ende1"[SHIFT] + ["()"] = Cursor zum Anfang4"[DEL] = Zeichen vor Cursor loeschen6"[CLR] = Zeichen unter Cursor loeschen?"[CONTROL] + [E] = Umschaltung Einfuege/Ueberschreibmodus3"[CONTROL] + ["()"] = Eingabe verlasse "n"13"=nam{(, )vornam{( , )gb"51.12.12" ** Titelseite **A ,"S T R I N G E D I T - D E M O P R O G R A M M-"Geschrieben von : Hubert Cronenbrock!"Erstellt auf : CPC 61285"Lauffaehig auf : CPC 464(plus)/664/6128(plus)F"Assembler : CPC - Assembler V 2.0 (c) 1987 DMV / M.UphoffE"Literatur : Programmierung des Z80 Zaks (Sybex-Verlag)F" : ROM-Listing CPC 464/664/6128 (Markt&Technik)%"PrTrack-Info  Nn1"[CONTROL] + ["()"] = Eingabe verlassen1"[CONTROL] + ["()"] = Eingabe verlassen1"["()"] = Eingabe verlassen1"["()"] = Eingabe verlassen1"[SHIFT] + ["()"] = Eingabe verlassen1 "[SHIFT] + ["()"] = Eingabe verlassen1"[CONTROL] + ["()"] = Eingabe verlassen1 "[CONTROL] + ["()"] = Eingabe verlassen *"[ESC] = AbbruchG4 R ,"S T R I N G E D I T - D E M O P R O G R A M M7>"Die Rou,0,0,@char%,"(")"1234567890"(")";nk$,14,20&"70 betrag=VAL(vk$)+VAL(nk$)/100?"80 LOCATE 10,20:PRINT USING"(")"###.##"(")";betrag! ,"Betrag : DM"cha..|S,,,@cha,@zahle,@v, ,   , "###.";(v)cha.|S,,,@cha,@zahle,@n,,% betra(v)(n)d"  , "###.##"; betra  R ** Beispiel 3 **" B e i s p i e l : 3""Auswertung char%,"---tine wurde fuer den MODE 2 geschrieben.QH"Werden nicht zugelassene Tasten betaetigt, wird ein Piepston ausgegeben.R\"!!! ACHTUNG !!!fSp"Die Parameter mode, capslock, spalte und zeile koennen als Variable oder als'z"direkter Wert uebergeben werden.U"Der Parameter char% muss als Integervariable uebergeben werden. Dem Variablen-N"namen muss der Klammeraffe @ vorgestellt werden (Adresse der Variable).M"Die Parameter ascii$ und text$ muessen nicht unbedingt Variablen s-------------A6"Es soll Vorname / Name und Geburtsdatum eingegeben werden.;@"Der Name soll in Grossbuchstaben dargestellt werden.aJ"Mit den Tasten ["()"] + ["()"] kann von der einen in die andere Eingabe gesprungenT"werden."^"[COPY] beendet die Eingabe.hSr"10 name$=STRING$(15,32):vorname$=STRING$(10,32):gbd$="(")"TT.MM.JJ"(")8|"20 char%=224:|SE,1,0,@char%,ascii$,vorname$,20,22"30 IF char%=224 THEN 1005"40 char%=224:|SE,1,2,@char%,ascii$,name$,20,23ein.C"Es sollten keine Steuerzeichen in der Variable text$ stehen.H"Sind nicht alle Parameter angegeben, kommt es zur Fehlermeldung :"Parameter-Fehler!N"Haben die Parameter keine gueltigen Werte, kommt es zur Fehlermeldung :"Wertbereichs-Fehler!7"z.B.: spalte=81 oder spalte=40 + len(text$) > 40  R ** Beispiel 1 **" B e i s p i e l : 1"Texteingabe""-----------"?$"Die Laenge des Textes soll auf 20 Zeichen begrenzt sein..O8"50 IF char%=224 THEN 100"60 IF char%=240 THEN 20I"70 char%=224:|SE,0,0,@char%,"(")"1234567890."(")",gbd$,20,24"80 IF char%=224 THEN 100"90 IF char%=240 THEN 70"100 end ,"Vorname : ,"Nachname : ,"Geburtsdatum :cha2|S,,,@cha,@asci,@vornam,, cha lcha/|S,,,@cha,@asci,@nam,,& cha l0 cha :chaDz"Es sind die ASCII-Zeichen CHR$(32)-CHR$(126) zur Texteingabe zugelassen.B>L"Die Eingabe findet auf der Zeile 20 ab Spalte 10 statt.V1`"Der Einfuegemodus soll eingeschaltet sein.jt~ "10 text$=STRING$(20,32)K "20 ascii$="(")(")":FOR i=32 TO 126:ascii$=ascii$+CHR$(i):NEXT"30 char%=05"40 |STRINGEDIT,1,0,@char%,@ascii$,@text$,10,20 ,"Eingabe :"cha/|S,,,@cha,@asci,@tex, ,9 , (cha)" = zahl"1234567890.".N|S,,,@cha,@zahl,@gb,,X cha lb cha    l Rv ** Beispiel 4 **" B e i s p i e l : 4"Sicherheitsabfrage"------------------R"Es soll die Sicherheitsabfrage -Daten loeschen ? (J/N)- beantwortet werden.M"Wird die Taste [N] betaetigt soll die Routine sofort verlassen werden.B"Taste [J] muss mit [ENTER] bzw. [RETURN] bestaetigt werden.A"10 LOCATE 10,20:PRINT"(")"Datuletzt eingegebenes Zeichen  R ** Beispiel 2 **" B e i s p i e l : 2 "Betragseingabe""--------------P("Es soll nur 3 Stellen vor dem Komma (Punkt) und 2 Stellen nach dem Komma !2"eingegeben werden koennen.<F$P"10 char%=46 'CHR$(46) = Punkt Z"20 vk$="(")" "(")=d"30 |SE,0,0,@char%,"(")"1234567890"(")";vk$,10,20?n"40 LOCATE 10,20:PRINT USING"(")"###."(")";VAL(vk$)'x"50 char%=0:nk$="(")"00"(")="30 |SETrack-Info  Nen loeschen ? (J/N)"(")("20 char%=78 'CHR-Nr. fuer gross NC"30 |SE,0,2,@char%,"(")"JN"(")","(")" "(")",33,200"40 IF char%=74 THEN XXXX ' Daten loeschen%  ,"Daten loeschen ? (J/N) chaNj"JN"lee"J". |S,,,@cha,@j,@lee,!, (* chaJ "Daten loeschen 4 R>H ** SUB. TASTE **R , z\ C"" \f dumm ()pVz ", dumm dumm ()" TASTE "()  ld a,(tm1) ^sub 1hld (tm1),arjp nz,tmr1|in a,(c)+bit 6,a ;Relais angesprochen?jp z,fehler ;H-Pegel?ld a,&85"out (c),a ;Ruhezustandld a,&0ld (fehl),aret ;Baisic&fehler ld a,&1;Fehler ausgebenld (fehl),aret ;Baisic/tm1 ds 1 ;Bytes fuer Warteschleifetm2 ds 1.fehl DS &1 ;Byte fuer Fehlermeldung ;Capazit&ld a,&a50dumm " TASTE "010MEMORY &9FFF 1020FOR adr=&A000TO &A29E STEP 11 1030 FOR i=adr TO adr+ 10 1040 2 COPYR '82 DRI ggggggggggggggggggggggggggggggggBD$H$$I! D $DA HH$@ H!@D! A ((ld hl,0(:ld (spei1),hl ;Speicher loeschenDld (spei2),hl"Nld bc,&f9f5 ;OUT-AdresseXld de,0(bout (c),a ;Relais betaetigen-lld a,200 ;Warteschleife 0.5 sec.vcall wart%ld a,&85 ;Relais oeffnenout (c),aeld a,245 ;1. Warteschleife zur unterdrueckung der Prellzeit (je nach Relais zu veraendernld (tm1),awc ld a,(tm1)sub a,1ld (tm1),ajp nz,wceld a,2 ;2. Warteschleife zur unterdrueckunPio 1/A als Eingabeportld c,&f3,out (c),a ;Pio 1/B als Eingabeport(ld c,&f6,2out (c),a ;Pio 2/A als Eingabeport<ld c,&f5 Fld a,5(Pout (c),a ;Zaehler vorbereitenZret ;Basicd nfq2xld bc,&f9f5)f1 in a,(c) ;1-Herz-Takt einlesenbit 3,a-jp nz,f1 ;0-Pegel am 1-Hz-Eingang?)f2 in a,(c) ;1-Herz-Takt einlesenbit 3,a jp z,f2 ;0-1-Flanke?ld a,&02$out (c),a ;Zaehler Starten)g der Prellzeit (je nach Relais zu veraendernld (tm1),awd ld a,(tm1)sub a,1ld (tm1),ajp nz,wd$ sf1 in a,(c) ;Messwert holen&bit 6,a ;Capazitaet voll?* jp z,fertig ;wenn ja, dann fertig1*bit 4,a ;Zaehler 15.625 Khz L-Pegel?4jp nz,sf1$>sf2 in a,(c) ;Messwert holen&Hbit 6,a ;Capazitaet voll?*Rjp z,fertig ;wenn ja, dann fertig1\bit 4,a ;Zaehler 15.625 Khz H-Pegel?fjp z,sf2pld de,(spei2)TESTB ASEp33mtz ds 1grz ds 1end ;Enderet org &A000,ld bc,&f9f7 ;Pio's initialisieren(ld a,&0352out (c),a ;Interrupt bei Pio 2/B sperren<ld a,&cf2Fout (c),a ;Code fuer Bit Ein- AusgabePld a,&58 )Zout (c),a ;Ein- Ausgabe-Codedld c,&f5nld a,&855xout (c),a ;Datenwort Pio 2/B: Ruhezustandld c,&f2ld a,&4f+ozld hl,13add hl,de ;kleiner Zaehler um 1 erhoehenld (spei2),hlld de,&ffff/sbc hl,de ;ist kleiner Zaehler voll?.jp nz,sf1 ;wenn nicht Sprung zu sf1ld de,(spei1)ld hl,13add hl,de ;grosser Zaehler um 1 erhoehenld (spei1),hl#jp sf1 ;Sprung zu sf1fertig (ld a,&a5 ;Capazitaet entladen&out (c),a ;Relais betaetigen*ld a,200 ;Wartescheife 0.5 sec.call wartld a,&855$out (c),a ;Pio 1/A Eingabemodusld c,&f3+out (c),a ;Pio 1/B Eingabemodusld c,&f6+out (c),a ;Pio 2/A Eingabemodusld c,&f52in a,(c) ;Schaltung Capazitaet testenbit 6,ajp nz,fehler ;L-Pegel?ld a,&a5(out (c),a ;Relais aktivieren$ld a,&3 ;Warteschleife/ld (tm1),a ;bis Relais angezogen hattmr1 ld a,&ff"ld (tm2),a,tmr2 ld a,(tm2) 6sub 1@ld (tm2),aJjp nz,tmr2TTrack-Info  Nut (c),a ;Platine in Grundzustand schalten.ret ;Basic8wart "Bld (tm1),a ;WarteschleifeLwa ld a,255Vld (tm2),a`wb ld a,(tm2)jsub a,1tld (tm2),a~jp nz,wbld a,(tm1)sub a,1ld (tm1),ajp nz,wa'ret ;Ende Warteschleife$spei2 ds 2 ;grosser Zaehler$spei1 ds 2 ;kleiner Zaehler' ;Frequenzmessgeraet fqld bc,&f9f2ld a,&4f, out (c),a ;,-20,20,0,0,207 20,0,0,-20,20,0,0,20,20,0,0,-20,20,0,0,20,20,0,05  -20,20,0,0,20,20,0,0,88,-20,0,0,20,-20,0,0,-204 -20,0,0,20,-20,0,0,-20,-20,0,0,20,-20,0,0,-204 -20,0,0,20,-20,0,0,-20,-20,0,0,20,-20,0,0,-204( -20,0,0,20,-20,0,0,-20,-20,0,0,20,-20,0,0,-2042 -20,0,0,20,-20,0,0,-20,-20,0,0,20,-20,0,0,-20< -20,0,0,20,-20,0,0,-20'F -20,0,0,-32,8,0,0,-24,-8,0,0,-3232,8,0,0,-24,-8,0,0,-32ld a,&85out (c),a retretdPio 1/A als Eingabeportld c,&f3,out (c),a ;Pio 1/B als Eingabeport(ld c,&f6,2out (c),a ;Pio 2/A als Eingabeport<ld c,&f5 Fld a,5(Pout (c),a ;Zaehler vorbereitenZret ;Basicd nfq2xld bc,&f9f5)f1 in a,(c) ;1-Herz-Takt einlesenbit 3,a-jp nz,f1 ;0-Pegel am 1-Hz-Eingang?)f2 in a,(c) ;1-Herz-Takt einlesenbit 3,a jp z,f2 ;0-1-Flanke?ld a,&02$out (c),a ;Zaehler Starten)TEST PLGQQ0$$/$I$f$u$Tq$%k% $ : 1erK>pgeIp[{;bb,n,n!^!^1aW:R_zzt : Y : 0SSz__p&mbbD!<SXr((((@!LM8*MLMMr`f3 in a,(c) ;1-Herz-Takt einlesenbit 3,a jp nz,f3 ;1-0-Flanke?)f4 in a,(c) ;1-Herz-Takt einlesenbit 3,a jp z,f4 ;0-1-Flanke?ld a,&0$out (c),a ;Zaehler stoppen"ld bc,&f9f0%,in a,(c) ;1. Wert einlesen"6ld (mtz),a ;und Speichern@ld bc,&f9f1%Jin a,(c) ;2. Wert einlesen"Tld (grz),a ;und Speichern^ld bc,&f9f4%hin a,(c) ;3. Wert einlesen"rld (klz),a ;und Speichern|ld bc,&f9f5i)<"Cz%%00>600712.==B55@:IIJ;9HD:6@< %  "";/Q/HH-]]]X=^EQQ0$$/$I$f$u$Tq$!>)'#/"0$$/$I$f$u$Tq------------------------------------------------V cup cup.` pro pro pro pro0j pgld a,&853out (c),a ;Platine in Grundzustand setzenret ;Basic$klz ds 1 ;gemessene Wertemtz ds 1grz ds 1end ;Enderetklz ds 1mtz ds 1grz ds 1 endendTESTICDABIN-UUUUT$H@@dH@I$@I$@R@R@[6@[6@@ɒ@dH@@R$@۶@vl@@$H@@dH@R$@R$@I@I@[6@[6@@@ժ@jT@@@@@jT@@@@@dH@@R$@Ҥ@vl@@ b@s@DH@UJ@H$@Y&@n|@n|@RH@SJ@d$@e&@vl@vl@b@b@DH@DH@H$@H$@@@Q@HT@IT@P*@Q*@X~@X~@  @@@@dH@mZ@R$@[6@*B ~ Ǿ /H ( 8 * : ĸ TESTB BINrrC:g2g>Oyyy>yx_*x_1>>y>y>Xy>y>Oyyyxwa>y>2g>2h:h2h::g2g5xwa>y>2i>2i>!"" y>>y>2g:g2g‹>2g:g2g›xwߠg¦xwߠgʲ[ !" R¦[!"æ>y>>y2g>2h:h2h:g2g>Oyyy>yx_*x_1>yx_yx2px2qx2o>y4F,ED,79,0E,FTrack-Info  N h x j z , < . >   0H ( 8 * : h x j z , < . >   J$D@E @`@@bD@dH@fL@lX@mZ@\8@]:@V @@@@dH@mZ@R$@[6@vl@vl@ZM 44@D@D@DRD@DAD@DSD@DHD]k44@D@D@DRD@DAD@DSD@DHD@DZD @DID@D[D;    ߆ D F $ & d f # l l $ $ H Z -UTT  j<^ d( ) d( ) d() d()Lh d d d d R}*r  z( d)d *|  z(  )  %  z( )  z(  ) 8 ,  ;"Messung"; ; ,  "uF";! , "Neue Messung (J/N)" (C) ""  "j" @  5 " Frequenzmesser"" 0-16 MHz" UUUUT$H@@dH@I$@I$@R@R@[6@[6out (c),a retretdAS  ,"" 4 & f(o) f(p) f(q)/ freq( f f f) , freq;"Herz"! , "Neue Messung (J/N)" (C) ""  "j"   " IC - Tester"!&" ";(@);"bekannte IC's"!0" Welchen Typ? 74", ty<: tyZ ty] " Jumper 2 stecken" X1D ty " Jumper 1+3 stecken" XN" Jumper 1 stecken"X ,""b  ," i_$ ad, () ad, () ad, ()adad by byD. ,(2) ,(2) ,(2) ,(2)8 ,(()4B ,"Einprogrammierter IC absichern (J/N)"LC "" LV "n" "N" \` lgad, by a,(a)"testicda.bin", ,a,end byaj.t ,  ( ) ,  ;~ () <  x x ; () " l ad@ s( ad)Fv  s ad ad a( ad) a a6 ad ad a( ad) a aP ad ad ty ( ad) ad ad   ) ad ad maske( ad) m maske9 ad ad , , ,( ad)9 ad ad , , ,( ad)9 ad ad , , ,( ad)' ad ad fun( TESTP BASp  "Noch ein Test (J/N)" f(C) "" fdTESTP.BASnCPC 6128, 664x(c)1992 Markus Mueller & CPC International5 ?"testicda.bin",@"testb.bin",   , , ,  #,,,, #, #  ,, , 1 #, ,,,#,"CPC Zusatzmessgeraet" #,,',, #g #,();" Capazitaet ";();" - ";();" Frequenz ";();" - ad) f fun% ad ad ,( ad)% ad ad ,( ad)% ad ad ,( ad)/ ad ad ()( ad) 4/ ad ad ()( ad) 4/  ad ad ()( ad) 4C  s ();"IC nicht gespeichert ";() >!* , "IC in Ordnug" >)4 , ();" IC deffekt ";()> , ,H , ,R , ,"\ ,";();" IC-Test ";()N (i) #,, #,"Fehler"  #,, #,"System in Ordnung"p() p) () p p p) () p p p () 62 p #,, #,();p;();3 p #,, #,();p;();," p #,, #,( );p; , 6  p @,,8@ ,"Messbereich von" ,"0.07 uF bis xx."J ,""; T Track-Info  N "Noch ein Test (J/N)" f(C) "" fp "j"   x2qx2o>y4F,ED,79,0E,Ftor:Block : :DirectoryCPM-Spur oder  ? < >bbrechenierho>gnorieren&Di&eFile<schreibge&tztvoll&fehlerC-Masken:";sY , "Welchen IC wollen Sie Einprogrammieren(0-65535)"; i i + $,"IC-Typ:"; i , (F)C end sadadadad(ad)Sendadadad , i ad,() ad,()&lgadadadad2 ,"Wieviele Masken benoetigen Sie";m+ ad,m , (F) by  m" 4,"Maske:"+, ()(); A,,A,?,, , p2X  , (<):b ,"Wo ist die Versorgungsspannung";" +"; [l     #,"Fehler";() 6," " bv #,()<  , i im im im=  , i  im im im=  , i@ im@ im im<  2, i im im im "+" d( ) 6," ": ,"Wo is,96 ,   X , ,@ , ,X , J #,h   T ; ,^ ',  h ; ,r ,  ;m| ,"Deffinieren Sie die";;". Maske." ,"(A=Ausgang,E=Eingang, + und - sind Eingaenge)" R   ,  x y  yi yi yi " ~   / "E" d( x, y) t/ "A" d( x, TESTS ASEp{5out (c),a ret bc,&f9f5ld a,&85 org &a000hin ds 2A(ld (hin),de ;16 Byte-Wert in 2*8 Byte-Werte aufteilen 2ret-<ld bc,&f9f2 ;Pio's initialisierenFld a,&03Pout (c),aZld bc,&f9f3dout (c),anld bc,&f9f6xout (c),ald bc,&F9F7out (c),ald a,&cfout (c),ald a,&58out (c),ald bc,&f9f5ld a,&8y) t  }      d( , )"" ,"Jeden Pin bezeichnen"   ,  , ()s   p1    d( ,)"A" p1 p1  d( )  d( )  r   p1    d( ,)"A" p1 p1  d( )  d( )  V       d( , )"A" p25out (c),a ret bc,&f9f5ld a,&85out (c),a retretd p2 $ adad2 d(,)"A" d()  d()2 d(,)"A" d()  d()0 d(,)"A" d()  d()0 d(,)"A" d()  d()H&adad ad, p1 ad, p1 ad, p250adad , (() by byH:  ,"Den Programierenden IC in den Testsockel stecken "%D   , , p12N , , p1 TESTS BASp-24,-8,0,0,-3232,8,0,0,-24,-8,0,0,-32ld a,&85dTESTS.BASnCPC 6128, 664x(c)1992 Markus Mueller & CPC InternationalW  , ,  ad-aad ad ( ,), d()?     d( , )"" , & ,"IC-Maskenprogrammierung"2"testicda.bin",ad"tests.bin", s(ad)) ,"Vorhandene ITrack-Info  N, , p2X  , (<):b ,"Wo ist die Versorgungsspannung";" +"; [l     #,"Fehler";() 6," " bv #,()<  , i im im im=  , i  im im im=  , i@ im@ im im<  2, i im im im "+" d( ) 6," ": ,"Wo is   x x D () yi yi y y E () yi yi y y   ()   <%(C) "" ~  5 C, y p x  p x"Position:"; pIC-Daten7 20,0,0,-20,20,0,0,20,20,0,0,-20,20,0,0,20,20,0,07 -20,20,0,0,20,20,0,0,-20,20,0,0,20,20,0,0,-20,207 0,0,20,20,0,0,-20,20,0,0,20,20,0,0t die Versorgungsspannung";" -"; H   #,"Fehler";() 6," "  #, ()  2,  <, "-" d( ) , (<)* , "Wieviele Funktionten"; 7    #,"Fehler";() 2 ad,  by byadad  , ()0* f  pa pa pb74 ,"Signale eingeben der"; f;". Funktion" > paH ,-20,20,0,0,207 20,0,0,-20,20,0,0,20,20,0,0,-20,20,0,0,20,20,0,05  -20,20,0,0,20,20,0,0,88,-20,0,0,20,-20,0,0,-204 -20,0,0,20,-20,0,0,-20,-20,0,0,20,-20,0,0,-204 -20,0,0,20,-20,0,0,-20,-20,0,0,20,-20,0,0,-204( -20,0,0,20,-20,0,0,-20,-20,0,0,20,-20,0,0,-2042 -20,0,0,20,-20,0,0,-20,-20,0,0,20,-20,0,0,-20< -20,0,0,20,-20,0,0,-20'F -20,0,0,-32,8,0,0,-24,-8,0,0,-3232,8,0,0,-24,-8,0,0,-32ld a,&85out (c),a retretd d( p) p p p ,"Der IC hat keine Eingaenge"  HHR p  p    ( p) 2\ () p p p 2f () p p p p () hz d( p) p p  p p z  p p z  z C,   < C  "" R& "1" d( p) ) "0" TESTS BIN--hS>yyyy>y>Xy>yld a,&85S>yyyy>y>Xy>yld a,&85out (c),a retretder CPC 6128....................... CHECK612.BAS BASIC  d( p)  R ,   RA  p   d( p) pb pb  G  p   d( p) pa pa   d() pa$ d() pa pa# d() pa pa# d() pa paF , pa im , pb im , pa im iS ad, pa im ad, pb im ad, pa im ,#,(>)#, ,#,(<);Kf(C)""f ()   f p6z 9u, :u,( ) f>(9u)()()()()()( )>(9u)()()()()( )( )>(9u)()()()( )( )( )>(9u)()()()()()()> b(9u) x(:u) y x#,,#,) x yi_$ ad, () ad, () ad, ()adad by byD. ,(2) ,(2) ,(2) ,(2)8 ,(()4B ,"Einprogrammierter IC absichern (J/N)"LC "" LV "n" "N" \` lgad, by a,(a)"testicda.bin", ,a,end byaj.t ,  ( ) ,  ;~ () <  x x ; ()Track-Info  NTHINK BASpe/e/M#,( );u(,())#,,#,;!d THINK.BAS ' Hauptprogrammn CPC 664/6128(plus)x (c) 1992 Ivo Mieskes" & CPC International. --- Zeichensatz und Symbole definieren π6,,,,,R,^,P,L,,,,s,J,J,J,J8,,,,$,,,,9,,,,,,,,8,,,,,,,,,,,,,,,,8,,,", ,&,",",,,,,,,,,8N,,,,,,,,,,,,,,,,6X,,,c,,,,f,,,,3,J,z,B,2,;b,,8,,T,R,Q,V,,,,,,,,,6l,,,,9,I,I,I,=,,,,q,J,I,H,K8v,,,,,$,$,,,,P,,,,,,9,,,,,,,,,,,,,,,,<,,,,,,,,,,,,,,,,<,,,,,,,,,,,,,,,,<,,,,,,,,,,,,,,s,,,,z8,,,,F,,,,,,`,P,V,d,D,D,D6,,,,b,,,,b,,,,c,,,,f6,,,,4,E,%,,d,,,,,),),),8,,,,9,I,I,I,=,,p,@,E,e,B,E,u6,,,,c,T,g,D,C,,,,7,,,","8,,0,H,K,z,J,J,J,,,,G,,,,8,, , ,f,),/,(,,,,,K,J,J,J,28",,H,J,H,z,J,J,J,,,,,,,,6,,,,,3,D,D,D,3,,,,3,,,,,,,;,,,,,,,,,,,@,@,@,@,@,@4,,,,,,,,,@,@,@,@,@,@,,4,,,,,,,,,,,@,@,@,C,G,O9,,,,,",,,,O,O,O,F,C,@,,; ,,,,b,,,, ,,`,,,8,,,8 ,,,,,,(,h, ,,,,,|,s,0,B ,,,,,>,, , ,,,,,,,, 6,,,,,,,,,,,,,,,, --- Menue aufbauen ,,,#76,,,,,,,,0,,:,B,C,B,B,B,:6@,,,,,R,R,R,O,,,,r,J,I,H,K9J,,,,,,,,,,,,,,,,6T,,,,e,,,,b,,,,2,J,z,B,38^,,D,d,T,U,U,M,D,,,,,Q,, ,8h,,,,,,,,,,,,9,I,I,I,=3r,,,,,T,W,T,S,,,,,,,,8|,,u,E,e,E,E,E,,,,,,,,,8,,,),$,",),,,,q,J,r,J,J,q,8/~ 9u,:u, ,,, ,,,I    , , , ,#,,&,,#,,%,, #*#,,&,,#,,%,,34#,#,#,#,#,#,##[>#,,#,();();();();()#,,#,();();();()H#,,#,();();();();();();();();()#,,#,();();();();();();();();()wR#,,#,();();();();();(),,,[,U,Q,Q,,,,q,J,q,H,J,q,9 ,,,@,,,@,, ,,K,J,J,{,J,K,: ,,,%,%,=,%,, ,,,P,H,D,B,,8,,,,,,,,,,,,,,,,8,,},,,,,,,,E,m,U,E,E,E,5,,,,,,,,,,,,,,,, 6,, , ,*,*,*,$,,,,,B,,,B,5,, ,i,,+,*,),,,,,,, ,/,,,,,9,,,,,,,,,4,,,,,,,,;();();()#,,#,();();();()[\#,,#,();();();();();()#,,#,();();()bf#,, #,();();();( );();()#,,#,();();() Ap#,,#,();();();()#,,#,(:),z#,,#,(:)#,, #,(:)޻',,,B,,B&,,,P,,P&,f,,P,,P޻# --- Spi,,,,,,,,:,,,,,,,<,<,<,<,<,<,<,<,<,<:,<,<,<,<,<,,,,<,<,?,?,?,?,<,<:,<,<,,,,,<,<,,,,<,<,<,<,<:,,,,<,<,>,>,>,?,?,?,=,=,=,<,<:,<,<,,,,,,,|,|,|,<,<,,,:&,,, ,,,<,<,x,x,,,,,,,x60,x,<,<,,, ,,,,,,,,,,2:,,,,,,,,,,,,,,,,4D,,,,,,,,Track-Info  Nelfeld aufbauen  [#,,,,# x(:u) y x b ((( (9u)))( x))R k( b), k( b), ( x, y), b( b), b( b) ,&  y  xF , ();() , ();(); , * --- Bombenkoordinaten festlegen $F  b^.  (E( x))  (E( y)) b( )  b( ) ?8  ,,,,޻* --- Game over + alle bomben zeigen "=,  b b( ), b( )();()56 b( ), b( )();()@)J --- Bomben mit Kreuz kennzeichnenT^ ( , )޻*h b    |8r k( ) k( )  ޻O|   # k( ) k( )  ]#,#,();();(); b( ) b( ).DB  b  b b( ) b( )V|L h b( ) b( ) b( ) b( ) h h b( ) b( ) b( ) b( ) hV , (`9j --- Anzahl der Bomben neben einem Feld ausrechnent~ ( , )޻>   k( ) k( ) M  b b( ) b( )? b(); k( )  k( ) &޻X#,#,();();();(); k( ) #,޻    ] k( )  k( ) k( ) k( ) k( ) H ,      k( )   & --- Sound9,,,,,,,,,,,,,2,x,,,d,,,P,,,<,,,,,( ) b( );  b b( )  lo 9  b b( ) lo 5  b b( )  lo ? b b( )  hig = b b( ) hig : b b( )  hig ] lo hig b( )  b( ) b( )   lo h,,,,,,,& --- Anzahl der Kreuze anzeigenL& b  #, , #, b ;#, , #, b ;08: --- Kontolle ob Kreuze auch wirklich Bomben sindDN b'X޻    Ab b( ) k( ) b( ) k( ) Ml ,  (9u) h((.u( )))(.u( ))Hv c h, ~  " igF #,();();();(); ( , )V#,#,( );();();(); ( , ) #,  --- Zeit anzeigen@(  #, , , , ޻ tFH2 c ((F t),) m ( c<) se c( m<)< m #,,#,,F#, mGP se #, ,#,(0)( se0)#, ,#, seZd --- Tastaturabfrage njx(C)--- auswahlmenue #:#,,#,();();();();();()A#,,#,();();();();();();()3#,,#,();();();();()3#,,#,();();();();()3 #,,#,(>)#, ,#,(<);K(C)"" ()    Q    #,,#,( );#, ,#,( );   ""2 ()   " "   2.  ޻ 4  y޻ .  ޻ 4  x޻  ޻~  ޻"" "޻^  N%#, , , , 2! --- Rahmencursor zeichnenC( ),( )Track-Info  N4     ~  #,, #,( )#, , #,( ); #,, #,(>)#, , #,(<);~   #,, #,( )#, , #,( ); #,, #,(>)#, , #,(<);*74##,,#,();();();();(),>#,,#,();();();()%H#,,#,();();():R#,,#,();();();();();()3\ #,,,#'P ,rt,,t,,&Z >,,,,*,,*$d ,"Please enter your Name";!n #,,,,#,#,#ax (C)""x  (),,,  A Z   x !  ()x ) () #""x  () x v #,(),#,( );u(,())#,,#,;#,,#,; x  x  150 BRAINSOFT,#,(>)#, ,#,(<);Kf(C)""f ()   f p6z 9u, :u,( ) f>(9u)()()()()()( )>(9u)()()()()( )( )>(9u)()()()( )( )( )>(9u)()()()()()()> b(9u) x(:u) y x#,,#,) x yCPCi 30 SCHLUMPF 51 WINNER 56 CPCi 60 CPCi 90 CPCi 120 CPCi 150 SCHLUMPFY 171 CPCi 210 CPCi 240 CPCi 270 CPCi 300 CPCi 450 CPCi 480 CPCi 510 CPCi 540  150 SCHLUMPFY 171 CPCi 210 CPCc#,,#,,@#, x y; b ((( (9u)))( x))! b #,,#,,#, b;1 --- High-Score-Tabelle darstellen  ޻#,,,,# ,r,,fb, ,,fN,&$ V,,,,,*. ,"HI - SCORES","TIME";48 ,();();();();();() B , ();();()'L ,();();();().V ,();();();();()` 1j  --- High-Score-Tabelle von Diskette lesent +~ "think.sco"  < #,nam( , )#, ( , ) , 0 .u( ), ( ( ,))> .u( ), ( ,)( ( ( ,)))=  ,  nam( , )n m ( ( , )<) se ( , )( m<),   m,  ` se (0)( se0)(0 ( TITEL NEU@@ TITEL $$$ dec h jr ic0 IstChr ld a,l U