home *** CD-ROM | disk | FTP | other *** search
Wrap
#" /e15,"u1";6;E(d$);dt;sec; : * set up to read the data Ij15,"b-p";6;0; : * position the buffer to the start {CBM-@}o{CBM-K}#6,pl$ : pl${CBM-R}"" {CBM-M} pl${CBM-R}G(0) : * next dir block low t{CBM-K}#6,ph$ : ph${CBM-R}"" {CBM-M} ph${CBM-R}G(0) : * next dir block high y ind {CBM-R} 2 {CBM-M}ount ( y ) or ( n ) ";cb$ : cb{CBM-R}cb${CBM-R}"y" 1{$fa} cb {CBM-R} 0 {CBM-M} 280 q~ "change to what value ";nb H nb {CBM-E} 65535 {CBM-M} 255 ch {CBM-R} {CBM-J}(nb{CBM-Z}256) : cl {CBM-R} nb {CBM-Q} ch{CBM-D}256 : K *** check if file exists - continue on if so *** Y 15,8,15 5,8,5,""{CBM-N}d${CBM-N}":"{CBM-N}f${CBM-N}"k:208,j:4550 JB(136){CBM-W}{CBM-E}0{CBM-M}"?"; Tj:{CBM-K}z$ / {$de}{CBM-K}z$:z${CBM-R}""990 8 {CBM-*}880 p {$e8}4,4:l1{CBM-R}16:4:1130 ] {$f2}4:4: 4 F {$fc}640 b{CBM-P}p2{CBM-M}b{CBM-R}b{CBM-Q}p2:p4{CBM-R}p4{CBM-Q}1:1070 640 b{CBM-P}p2640 {CBM-P} $b{CBM-R}b{CBM-A}p2:p4{CBM-R}p4{CBM-N}1 G .d${CBM-R}G(4):c${CBM-R}G(144{CBM-N}d) {$eb} 815,"m-w"{CBM-N}G(p1){CBM-N}G(18){CBM-N}G(1){CBM-N}G(b) 180 >{CBM-V} dt{CBM-R}1 {CBM-M} dt{CBM-R}18:dl{CBM-R} 0:dh{CBM-R} 0:di{CBM-R}0:rv{CBM-R}1:pt{CBM-R}18:ps{CBM-R}0: 1541/2031 ZC dt{CBM-R}2 {CBM-M} dt{CBM-R}18:dl{CBM-R}150:dh{CBM-R}67:di{CBM-R}4:rv{CBM-R}1:pt{CBM-R}18:ps{CBM-R}0: 4040 {CBM-L}H dt{CBM-R}3 {CBM-M} dt{CBM-R}39:dl{CBM-R} 96:dh{CBM-R}67:di{CBM-R}8:rv{CBM-R}2:pt{CBM-R}38:ps{CBM-R}0: 8050 {$f2}M dt{CBM-R}4 {CBM-M} dt{CBM-R}39:dl{CBM-R} 96:dh{CBM-R}67:di{CBM-R}8:rv{CBM-R}4:pt{CBM-R}38:ps{CBM-R}0: 8250 {$f8}R : {CBM-W}${CBM-R}"*" : b${CBM-R}b${CBM-N}a$ : x {CBM-R} 128 {CBM-M} c${CBM-R}b$ : b${CBM-R}"" x =6,c$;b$;:15,"u2";6;d,pt,ps pps{CBM-R}ps{CBM-N}3 : lp E! 5 : 6 : 15 & G(147)"disk protection complete !!" : e backup blues" N "drive number";d : d{CBM-E}1 {CBM-M} 480 {$f8}{$e5} 5,8,5,"#" : 6,8t *** fX ark : *** - scratch protect your files. *** {$7c}{$7d} ark : *** - change the block count of files. *** {CBM-R} ark : *** - back up protect your diskette. *** {$e8} ark : ****************************************** {$ee} " cs${CBM-R}G(147sec;: * let it know where to write aL 5 : 6 : 7 : 15 : * and close it all up OQ G(147)"file protection complete !!" : UV: {SHIFT-POUND}{SHIFT-+} G(147)"disk protect - stops the backup blues" N "drive number";d : d{CBM-E}1 {CBM-M} 480 {$f8}{$e5} 5,8,5,"#" : 6,8 #6,bh$ : bh${CBM-R}"" {CBM-M} bh${CBM-R}G(0) : * block count high %: E sp {CBM-M} ty${CBM-R}G(F(ty$){CBM-A}64) : * set bit 6 for scratch protect cb {CBM-M} bl${CBM-R}G(cl) : bh${CBM-R}G(ch) : * change block count {CBM-G}: {SHIFT--}{CBM-@} *** and finally, bring in the balance of the data {SHIFT-POUND} ind {CBM-R} 365 : * it's the first file in n^ x {CBM-R} 2 {CBM-@} ind {CBM-Q} 1 : {CBM-K}#6,a$ : ss${CBM-R}ss${CBM-N}G(F(a${CBM-N}G(0))) : x tC: H *** time to bring in the actual data about the file chosen *** KM{CBM-K}#6,ty$ : ty${CBM-R}"" {CBM-M} ty${CBM-R}G(0) : * file type R{CBM-K}#6,tr$ : tr${CBM-R}"" {CBM-M} tr${CBM-R}G(0) " : {CBM-K}#5,a$ : st {CBM-M} 460 : * not there ! ": B '15,"m-r"G(dl)G(dh); : * find sector of file in directory ,{CBM-K}#15,s$ : sec {CBM-R} F(s${CBM-N}G(0)) {CBM-B} 115,"m-r"G(dl{CBM-N}di)G(dh); : * find index within directory {$de} 6{CBM-K}#15,i$ : ind {CBM-R} F(i${CBM-N}G(0)) {$e4} ;: {$f4} @ 6,8,6,"b15,"m-w"{CBM-N}G(p3){CBM-N}G(18){CBM-N}G(1){CBM-N}G(p4) "l1240:e{CBM-W}{CBM-E}1{CBM-M} 3vd${CBM-R}G(3):880 b{$60}4368:s7{CBM-R}0 NJa${CBM-R}"[allocated]":b{CBM-P}p2{CBM-M}a${CBM-R}"[free] " T" track";t;"sector";s;a$;" id=";id$ {CBM-E}{$7e}194,l1:190,s7:4447 Rt1{CBM-R}0{CBM-M}"no next block":1180 {$fc} "next sector: tra 'W dc$"protection : (1) file or (2) disk "; v{CBM--} fd$ : fd${CBM-R}"2" {CBM-M} 475 : * disk protect \{$e1} : {$7d}{$e6} "drive#, filename : ";d$,f$ {CBM-@}{$eb} C(f$){CBM-E}16 {CBM-A} d${CBM-W}"0" {CBM-A} d${CBM-E}"1" {CBM-M} 230 {$e1}{$f0} "scratch protect file ( y ) or ( n ) ";sp$ : sp{CBM-R}sp${CBM-R}"y" {$f5} "change block cP"";:l1{CBM-R}l2:1130:640 /Z"bam map":j{CBM-R}0{CBM-@}20:J(D(j),2):j nj{CBM-R}1{CBM-@}35:j%{CBM-R}j{CBM-Z}10:j1{CBM-R}j{CBM-Q}j%{CBM-D}10 Jz${CBM-R}"":j1{CBM-R}0{CBM-M}z${CBM-R}G(j%{CBM-N}48) "";{CBM-T}j{CBM-N}2);z$:{CBM-T}j{CBM-N}2);G(j1{CBM-N}48);""; {CBM-+}{CBM-I}k{CBM-R}0{CBM-@}3:j1{CBM-R}j{CBM-D}4{CBM-N}k {SHIFT-*}{CBM-D}15,"m-r"{CBM-N}G(j1){CBM-N}G(18) {CBM-*}{CBM-L}{CBM-K}#15,z$:z{CBM-R}C(z$):z{CBM-M}z{CBM-R}F(z$) {$fc}{SHIFT-*}136{CBM-N}k,z:) : dc${CBM-R}G(17) : ry${CBM-R}G(18) : rn${CBM-R}G(146) q cs$"drive protect - transactor magazine" R dc$"specify drive type"dc$ "( 1 ) 1541/2031" {CBM-G} "( 2 ) 4040" {CBM-A}{CBM-N} "( 3 ) 8050" C{CBM-P} "( 4 ) 8250" {$de}{CBM-H} dc$"your choice : "; {$fd}{CBM-O} dt : dt{CBM-R}0 {CBM-A} dt{CBM-E}4 {CBM-M} ,6,"#" : 15,8,15 {$ea} lp {CBM-R} 1 {CBM-@} rv 8{$ef} : "pass"lp"of"rv": track"pt"sector"ps T{$f4}15,"u1";5;d;pt;ps : 15,"b-p";5,0 : * read from ch#5 {$f9}15,"b-p";6,0 : * write to ch#6 {CBM-@}{$fe}b${CBM-R}"" {CBM-L} x {CBM-R} 0 {CBM-@} 255 {$e9}: {CBM-K}#5,a$ : a${CBM-R}H(a${CBM-N}G(0),1) : x {CBM-R} 2 {CBM-M} a 226 {CBM-M} 440 : * data already read in l{CBM-S} x {CBM-R} ind{CBM-N}30 {CBM-@} 255 : {CBM-K}#6,a$ : es${CBM-R}es${CBM-N}G(F(a${CBM-N}G(0))) : x r{CBM-W}: B{CBM-U} 7,8,7,"#" {CBM-X}15,"b-p";7;0;: * position the buffer to the start OB7,pl$;ph$;ss$;ty$;tr$;se$;na$;bs$;bl$;bh$;es$; G15,"u2";7;E(d$);dt; : * first data track > W{CBM-K}#6,se$ : se${CBM-R}"" {CBM-M} se${CBM-R}G(0) : * first data sector V {$7c} x {CBM-R} 1 {CBM-@} 16 : {CBM-K}#6,a$ : na${CBM-R}na${CBM-N}G(F(a${CBM-N}G(0))) : x {CBM-S} x {CBM-R} 1 {CBM-@} 9 : {CBM-K}#6,a$ : bs${CBM-R}bs${CBM-N}G(F(a${CBM-N}G(0))) : x {$e6} {CBM-K}#6,bl$ : bl${CBM-R}"" {CBM-M} bl${CBM-R}G(0) : * block count low {CBM-K} 0 the transactor volume 5 issue 03 page 65 e disk defender z by david cobb L * 1984 * R( {CBM-L}2 r$(255), r(256) : cl${CBM-R}G(147) : dw${CBM-R}G(17) : z${CBM-R}G(0) :cr${CBM-R}G(13) {SHIFT-+}< cl$dw$"enter combination":c${CBM-R}"" {$ef}f "5 digit code" p dw$"code:0 the transactor volume 5 issue 03 page 67 CD "run-only (c) 1981 jim butterfield":3,0 N 1: 15:"basic program to protect? ";:3,n$ {CBM-I}X :15,8,15 {CBM-Y} 1,8,3,n${CBM-N}",p,r" M 15,dz:dz{CBM-W}{CBM-E}0110 {$f2} {CBM-K}#1,a$,b$:a${CBM-W}{CBM-E}G(1){CBM-P}b${CBM-W}{CBM-E}G(4)110 "H 2:"na 2 : r$(l){CBM-R}"" {CBM-M} r$(l){CBM-R}z$ rnr(l){CBM-R}F(r$(l)) &\n 7Fn 15 : 2 : v0U * write track & sector * Q:U2,8,2,"#" : 15,8,15 dU15,"b-p:"2;0 : l{CBM-R}0 {CBM-@} 255 {CBM-T}xUr$(l){CBM-R}G(r(l)) {CBM-J}BU2,r$(l); : LLU15,"u2:"2;8;tr;sc {CBM--}VU 50000 : {$f1}@ * check code {SHIFT-@},74,195,169,0,32,74,195,96 o >72,173,98,195,32,74,195,104,32,100,195,32,74,195,76,137,195 W @72,173,98,195,32,74,195,173,99,195 {CBM-N} b32,74,195,104,32,100,195,32,74,195,76,137,195 ,0,0,0,0,0 224,109,90,195,72,169,88,160,195,32,162,187,169,93,160$(l) : r$(l){CBM-R}"" {CBM-M} r$(l){CBM-R}z$ rnr(l){CBM-R}F(r$(l)) &\n 7Fn 15 : 2 : v0U * write track & sector * Q:U2,8,2,"#" : 15,8,15 dU15,"b-p:"2;0 : l{CBM-R}0 {CBM-@} 255 {CBM-T}xUr$(l){CBM-R}G(r(l)) {CBM-J}BU2,r$(l); : LLU15,"u2:"2;8;tr;sc {CBM--}VU 50000 : {$f1}@ * check code 2,G(j);:330 )j{CBM-R}515{CBM-N}n{CBM-@}1024:2,G(B(j));:j i{CBM-K}#1,x$:sw{CBM-R}st:x${CBM-R}""{CBM-M}x${CBM-R}G(0) t{CBM-@}2,x$; B{CBM-S}sw{CBM-R}0410 P{CBM-U} 2: 1: 15 B"want to do more? ";:3,z$ LF(z$){CBM-R}89{CBM-M} {CBM-F}VB(65532){CBM-N}B(65533){CBM-D}256 {$fe}{CBM-C} 165,144,164,145,16,12,24,105,3,144,1,200,141,130,2,140,1 : * adjust for drive type * 0.'2,8,2,"#" : 15,8,15 o8'15,"u1:"2;8;t;s : 50000 zb'ln${CBM-R}"" Jl' l{CBM-R}0 {CBM-@} 254 v'{CBM-K}#2,r$(l) : r$(l){CBM-R}"" {CBM-M} r$(l){CBM-R}z$ {CBM-D}{$60}'ln${CBM-R}ln${CBM-N}r$(l) : : z{CBM-R}1 IJ' J(ln$,z,m){CBM-R}an$ {CBM-M} 10120 {$f6}T'z{CBM-R}z{CBM-N}1 : z{CBM-R}256{CBM-Q}m {CBM-M} s{CBM-R}F(r$(1)) : 100 {CBM-W}169,4,133,41 : * rte line * %{$f8} 108,148,0 E 147,82,85,78,13,0,0,0,0,0,0,32,234,255,169,255,133,155,76 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,108,252,255 {CBM-M} 256 {CBM-N}B(65533){CBM-D}256 {$fe}{CBM-C} 165,144,164,145,16,12,24,105,3,144,1,200,141,130,2,140,1 40500 # r(l){CBM-E}255 {CBM-M} r(l){CBM-R}r(l){CBM-Q}256 3" : 30000 u,cl$"file: "an$" is locked." 6 2 : 15 : : ** end of lock ** @ *** unlock file *** {SHIFT-@}j 10000 : cn{CBM-R}n1 : 20000 Jt l{CBM-R}0 {CBM-@} 255 {SHIFT-+}^r(l){CBM-R}r(l){CBM-Q}n5 Hcn{CBM-R}cn{CBM-Q}1 : cn{CBM-R}0 {CBM-M} 4000 the transactor volume 5 issue 03 page 67 x "auto start 64 - jim butterfield" F 15,8,15 "name of program";n$ {CBM-+} 1,8,3,n${CBM-N}",p,r":15,e,e$,e1,e2 U( {CBM-POUND} e {CBM-M} {CBM-K}#1,a$,b$:a${CBM-W}{CBM-E}G(1){CBM-M}e{CBM-R}1:e${CBM-R}"oops!" {$e8}2 e {CBM-M} e$: 1: < "name of conver"{CBM-T}6); $z {CBM-K} a$ : a${CBM-R}"" {CBM-A} a${CBM-R}cr$ {CBM-M} 90 qD "*";:c${CBM-R}c${CBM-N}a$ : a${CBM-R}"" : C(c$){CBM-W}{CBM-E}5 {CBM-M} 90 JN "are you sure ?"dw$ O an$ : H(an$,1){CBM-W}{CBM-E}"y" {CBM-M} 60 X n1{CBM-R}F(J(c$,1,1)) {CBM-F} n2{CBM-R}F(J(c$,2,1)) : o2{CBM-R}n2 W n3{CBM-R}F(J(c$,3,1)) : o3{CBM-R}n3 {$f3} n4{CBM-R}F(J(c$,4,1)) : o4{CBM-R}n4 n5{CBM-R}Fme for protected version? ";:3,p$: oR "write to drive? 0 ";:3,d$:d{CBM-R}E(d$): {$60}{CBM--} d{CBM-W}0{CBM-A}d{CBM-E}1210 {$e6} 2,8,4,G(d{CBM-N}48){CBM-N}":"{CBM-N}p${CBM-N}",p,w" {$f0} 15,dz:dz{CBM-W}{CBM-E}0200 {CBM-S},j{CBM-R}0{CBM-@}2:2,G(j);:j G6j{CBM-R}1{CBM-@}255:2,G(2);:j {$de}@j{CBM-R}1{CBM-@}3:2,G(0);:j {$f0}jj:j{CBM-E}255400 tn{CBM-R}n{CBM-N}1: ,52,3,124,165,26,167 . 228,167,134,174,0,0,0,0 m{CBM-N} 76,72,178,0,49,234,102,2 P{CBM-H} 71,254,74,243,145,242,14,242 {CBM-V} 80,242,51,243,87,241,202,241 {CBM-Y}H 237,246,62,241,47,243,102,254 {$e2}R 165,244,237,245,32,89,166,76,174,167 {$fd}{CBM--} j{CBM-R}0{CBM-@}57:x:2,G(x); M:j !{$e6} j{CBM-R}0{CBM-@}1221:2,G(32);:j:2,G(0); c{$f0} {CBM-K}#1,a$:sw{CBM-R}st:C(a$){CBM-R}0{CBM-M}a${CBM-R}G(0) y{$fa} 2,a$;:sw{CBM-R}0 240 G 1: 2: 15 "want to do more programs";a$ {CBM-M} a${CBM-R}"y" {CBM-A} a${CBM-R}"yes" 10 C" B(65532){CBM-N}B(65533){CBM-D}256 );:j {$ef} j{CBM-R}0 {CBM-@} 52{CBM-Q}C(c$):2,G(0);:j 139,227* jcn{CBM-R}n1 : n2{CBM-R}o2 : n3{CBM-R}o3 : n4{CBM-R}o4 : n5{CBM-R}o5 !t <4 * rotate user code * F>oo{CBM-R}n5 : n5{CBM-R}n4 : n4{CBM-R}n3 : n3{CBM-R}n2 : n2{CBM-R}oo Lh pC * error check * zC15, a, a$, q1, q2 {CBM-M}DC a{CBM-R}0 {CBM-M} {SHIFT-@}NCcl$"error ";a BXCa$ {$e2}C"track ";q1;" sector ";q2 {$f3}C 15 : 31,2 bF 162,18,189,84,2,157,111,2,202,16,247,154,169,1,72,72,72,72,72 {$7b}P 169,122,160,2,120,133,144,132,145,88,169,5,133,158 {CBM-A}Z 165,40,133,42,165,41,133,43,160,0,162,3,177,42 {$e4}{$e4} 230,42,208,2,230,43,201,0,208,242,202,208,241 {$ee} 169,1,133,40,40 {$7e}' 10090 ' m{CBM-N}z {CBM-E} 256 {CBM-M} 10140 ? ' F(J(ln$,m{CBM-N}z,1)) {CBM-W}{CBM-E} 160 {CBM-M} 10100 v 'tr{CBM-R}F(J(ln$,z{CBM-Q}2,1)) M {CBM-+}'sc{CBM-R}F(J(ln$,z{CBM-Q}1,1)) {$7e} {CBM-A}' 15 : 2 : n * read track & sector * {CBM-Y} *n2,8,2,"#" : 15,8,15 X 4n15,"u1:"2;8;tr;sc : 50000 {$e8} >n l{CBM-R}0 {CBM-@} 255 hn{CBM-K}#2,r0 the transactor volume 5 issue 03 page 68 ND ark : save"@0:drive protect",8:verify"0:drive protect",8 {CBM-@}I ark : ****************************************** ZN ark : *** richard evers - june 1984 *** S ark : *** drive protec00 : 380 R 40500 +{$7c} r(l){CBM-W}0 {CBM-M} r(l){CBM-R}r(l){CBM-N}256 ; : 30000 _cl$"file: "an$" is unlocked." 2 : 15 : : ** end of unlock ** {CBM-H}' * find track & sector of file * Y'cl$"enter name of file" : an$ $'m{CBM-R}C(an$) : t{CBM-R}39 : s{CBM-R}1 ted program";c$ 7f 2,8,4,"0:"{CBM-N}c${CBM-N}",p,w":15,e,e$,e1,e2 jp e {CBM-M} e$: 2: Ez 192,2,0,8,1,0,147,34 D j{CBM-R}0{CBM-@}7:x:2,G(x);:j N j{CBM-R}1{CBM-@}C(c$):2,J(c$,j,1);:j {CBM-J}X 34,44,56,44,49 O j{CBM-R}0{CBM-@}4:x:2,G(x);:j {$ef} j{CBM-R}0 {CBM-@} 52{CBM-Q}C(c$):2,G(0);:j 139,227(J(c$,5,1)) : o5{CBM-R}n5 :{CBM-N} cl$dw$"lock or unlock file? (l,u)"dw$ B{CBM-H} an$ : an${CBM-W}{CBM-E}"l" {CBM-P} an${CBM-W}{CBM-E}"u" {CBM-M} 170 V{CBM-V} an${CBM-R}"u" {CBM-M} 320 H *** lock file *** R 10000 {CBM-@}{CBM--} cn{CBM-R}n1 {CBM-A}{$e6} 20000 {SHIFT-*}{$f0} l{CBM-R}0 {CBM-@} 255 Q{$fa} r(l){CBM-R}r(l){CBM-N}n5 {$f8}cn{CBM-R}cn{CBM-Q}1 : cn{CBM-R}0 {CBM-M} 40000 : 280 crnptr{CBM-N}1 lda #27 ;er rol{CBM-Q}esc .jsr chrout ;s {CBM-@} er olda #51 ;set linefeed {CBM-@} O jsr chrout ;16{CBM-Z}144 inches {$7b}{CBM-N}lda #16 {CBM-H}jsr chrout {CBM-@}{CBM-V}lda #25 ;25 rows {CBM-W}Hsta rowcnt {CBM-V}Rrow {CBM-R}{CBM-D} I{CBM--}ldx #0 X{$e6}prtmode {CBM-R}{CBM-D} {$ea}{$f0}lda dualres,x0 the transactor volume 5 issue 03 page 59 w ******************************** {$7e} * * {CBM-G} * scramble64.ml -- machine * L * language version for c-64. * {$f3} * identical to code in scram- * # * bleen {CBM-@} er lda #0 '{CBM-+}sta e{CBM-A}flag ;reverses when 255 h{CBM-A}lda ctrlflg ;ctrl{CBM-Z}sht flag I{SHIFT-@}{CBM-P} #4 ;check ctrl key XDbeq n{CBM-A}evrs Nlda #255 ;reverse ctrl {CBM-POUND}Xsta e{CBM-A}flag {CBM-L}{$e2}n{CBM-A}evrs {CBM-R}{CBM-D} D{$ec}lda fiCum Y{$f6}jsr ; file {$e7} lda fiCum {$f2} ld ******** f : 1D "input seed between 0 and 1";s: DN "program to be scrambled or unscrambled";p$: X 5,8,5,"0:"{CBM-N}p${CBM-N}",p,r":6,8,6,"0:"{CBM-N}p${CBM-N}".s,p,w" {CBM-X} "scramble or unscramble (s/u)";g$ Y g${CBM-W}{CBM-E}"s"{CBM-P}g${CBM-W}{CBM-E}"u"{CBM-M}:130 {CBM-K}#5,z$:280:6,G(z);:{CBM-K}#5,z$:ybd Pcmp #3 ;f7, switch video mode ) Zbeq flip n cmp #6 ;f5, dump wide picture \ bne f3chk G lda #1 W {CBM-I}sta bigflag {CBM-D}jmp dump {CBM-L}f3chk {CBM-R}{CBM-D} {CBM-Y} {SHIFT-*}cmp #5 ;f3, dump n{CBM-A}mal picture C Jbne out N Tlda #0 {$de} {$de}sta bigflag {$eb} {$e8}jmp dump {$f6} {$f2}ou{$e6} i{CBM-R}0{CBM-@}4:m{CBM-N}i,p(i):i: !z${CBM-R}""{CBM-M}z{CBM-R}0: /"z{CBM-R}F(z$): E,162,5,32,198,255,32,228,255,72,32,204,255,104,96 .72,162,6,32,201,255,104,32,210,255,32,204,255,96 {CBM-F}00,0,0,0,0,136,69,0,0,0,0,0 224,109,90,195,72,169,88,160,195,32,162,187,169,93,160chkout {CBM-R}$ffc9 chrout {CBM-R}$ffd2 '& {CBM-R}$ffc3 70chn {CBM-R}$ffcc f: {CBM-R}$ffc0 xdsetlfs {CBM-R}$ffba Jnsetnam {CBM-R}$ffbd Px; VB; {$7c}L; Vinit {CBM-R}{CBM-D} {CBM-@};redirect {CBM-J}errupt vec{CBM-@}r {CBM-D}sei {CBM-X}lda #{CBM-W}keychk Ksta $0314 {CBM--}{CBM-POUND}lda #{CBM-E}keychk {$ea}{CBM-R}sta $0315 {$f2}{CBM-C}cli {$fa}F{$e7}h; {$f6}rdec colcnt \bne column ; column F; #Plda #13 <Zjsr chrout ; line ]lda keybd ;check keyboard Wcmp #63 ; key beq ab{CBM-A}t ;ab{CBM-A}t pressed {CBM-R}{CBM-I}dec rowcnt ;do row {CBM-V}{CBM-D}bne row D{CBM-L}; {$e2}{SHIFT-*}ab{CBM-A}t {CBM-R}{CBM-D} ;dump comp32,16,8,4,2,1 @; .jdualres .byte 27,121,192,3 it;rol characters er I^;dual density graphics mode OH; Rn{CBM-A}mres .byte 27,75,64,1 {CBM-D}{$7c};n{CBM-A}mal density graphics mode K;(Eues may vary amg ers) Q; {$e2}bits {CBM-D}{CBM-R}{CBM-D}{CBM-N}8 {$f3}{CBM-@}rowcnt {CBM-D}{CBM-R}{CBM-D}{CBM-N}1 {CBM-S}co{CBM-P} {CBM-X},y :beq {CBM-POUND}set ;check bit &dlda bits,y ; set, add {CBM-@} bn{CBM-A}a {CBM-X},x ;'bits' array qxsta bits,y ]B{CBM-POUND}set {CBM-R}{CBM-D} FLiny {$7f}Vcpy #8 ;8 bits bne dobits ; byte ; {CBM-+}inx {CBM-E}cpx #8 J{CBM-POUND}bne cellsum ; cell U{CBM-R}ldx #0 {SHIFT-+}{CBM-C}; {$e9}Fsbi {$fa}{$fa}ldy bigflag bne big lda n{CBM-A}mres,x "big {CBM-R}{CBM-D} 1"jsr chrout :,inx e6cpx #4 u@bne prtmode Rjlda #40 ;40 columns tsta colcnt ^; Hcolumn {CBM-R}{CBM-D} Rlda #0 {CBM-Q}{$7c}ldx #7 Jbits {CBM-R}{CBM-D} ;clear out cell {$e8}sta bits,x ;s{CBM-@}rage areae.ml, except for locations * a( * of some rom routines. m/l * H- * resides at $c33c to $c3e4 * 2 * (49980 to 50148 dec). * {CBM-L}7 * ++ by michael bertrand ++ * {SHIFT--}< * * a ************************ x #4 ldy #4 ;sa{CBM-R}4 cardco i{CBM-Z}f 4 jsr setlfs ; fiCum,4,4 p (lda #0 ;no fiCame _ 2jsr setnam I <jsr W fldx fiCum pjsr chkout ;(like ) {CBM-T} zlda #{CBM-W}screen I Dsta scrnptr ;set up screen mem{CBM-A}y {$e2} Nlda #{CBM-E}screen ;po{CBM-J}ers {$f4} Xsta s280:6,G(z); 2{CBM-N} i{CBM-R}49980{CBM-@}50148:x:i,x:i:m{CBM-R}50008:200 U{CBM-H} g${CBM-R}"u"{CBM-M}50020,56:50021,237: * replace adc with sbc in m/l * {CBM-V} 50057: 5: 6: {CBM-+}H e{CBM-R}{CBM-J}({CBM-C}(s){CBM-Z}{CBM-C}(2)):p(0){CBM-R}129{CBM-N}e MR p{CBM-R}(s{CBM-Z}2{CBM-S}e{CBM-Q}1){CBM-D}128:p(1){CBM-R}{CBM-J}(p):r{CBM-R}p{CBM-Q}p(1) {$f6}{CBM--} i{CBM-R}2{CBM-@}4:p{CBM-R}r{CBM-D}256:p(i){CBM-R}{CBM-J}(p):r{CBM-R}p{CBM-Q}p(i):i t {CBM-R}{CBM-D} {$fc}jmp n{CBM-A}mirq ; ; flip {CBM-R}{CBM-D} >$;{CBM-@}ggle bit map graphics mode l.lda $d011 y8eor #$20 Xbsta $d011 ;bit map mode llda $d018 veor #$08 {CBM-H}{$60}sta $d018 ;character base CJjmp n{CBM-A}mirq IT; O{$7e}; {SHIFT-+}dump {CBM-R}{CBM-D} {$f9};dump hi{CBM-Q}res scr,195,32,40,186 i432,12,188,32,204,188,32,83,184,162,88,160,195,32,212,187,104,96 {$7e}832,60,195,240,9,32,100,195,32,74,195,76,137,195 {CBM-N}:32,100,195,141,98,195,32,60,195,208,27 V;32,100,195,173,99,195,32,60,195,208,33 <169,0,32,74,195,169,0,32rts P; Z; {$e4}keychk {CBM-R}{CBM-D} /{$ee};{CBM-K} functi key presses q{$f8}lda keybd ;look key pressed Mcmp #64 ;64 is no key {$7b}bne keydn lda #0 sta keyflag {CBM-G}*jmp n{CBM-A}mirq {CBM-R}4keydn {CBM-R}{CBM-D} B>lda keyflag Nhbne out Yrlda #1 {$e9}\sta keyflag {$f7}Flda ke Qed Jlda #27 ;initialize er Tjsr chrout ; 5{$de}lda #64 ;with "ESC @" q{$e8}jsr chrout ;(optial) _{$f2}lda fiCum T{$fc}jsr ; file jsr chn ;clear i{CBM-Z}o channels {CBM-+}jmp n{CBM-A}mirq {CBM-Z}. nx B4cpx #8 {$e1}>bne sbits ; byte in cell lcnt {CBM-D}{CBM-R}{CBM-D}{CBM-N}1 {CBM-U}cbyte {CBM-D}{CBM-R}{CBM-D}{CBM-N}1 B; bLscreen {CBM-R}$2000 ;hires screen mem{CBM-A}y FVscrnptr {CBM-R}$fb ;zero page po{CBM-J}er keybd {CBM-R}197 ;current key pressed {CBM-E}{$ea}ctrlflg {CBM-R}653 ;ctrl{CBM-Z}sht flag T{$f4}n{CBM-A}mirq {CBM-R}$ea31 ;n{CBM-A}mal irq entry Z{$fe}; {$f5};kernal routines used: ts {CBM-R}{CBM-D} P;s all 8 bytes in cell Zlda bits,x #{$e4}eor e{CBM-A}flag a{$ee}jsr chrout ; bit image q{$f8}ldy bigflag {$60}beq jus{CBM-@}ne jsr chrout ;two m{CBM-A}e times jsr chrout ;big picture {CBM-S} jus{CBM-@}ne {CBM-R}{CBM-D} {CBM-Y}*inx B4cpx #8 {$e1}>bne sbits ; byte in cell {$f1}dex ~{CBM-@}bpl bits {CBM-S}ldx #0 {CBM-U}; Bcellsum {CBM-R}{CBM-D} *Lldy #0 >Vlda (scrnptr),y D sta cbyte ;s{CBM-@}re byte from cell {$ea}inc scrnptr ;po{CBM-J} {CBM-@} byte {$f4}bne dobits {CBM-@}{$fe}inc scrnptr{CBM-N}1 {CBM-N}; {CBM-U}dobits {CBM-R}{CBM-D} S;add all bits in cbyte {$e1}&lda cbyte {$eb}0 e 76, 248, 193, 181, 43, 157, 5, 193, 76 %L 248, 193, 0 , 251, 168, 145, 251, 76, 135, 192 R 162, 0, 189, 5, 193, 149, 43, 232, 224 {CBM-W}{$7c} 15, 208, 246, 165, 44, 133, 252, 169, 0 {$e5} 133, 251, 168, 145, 251, 76, 135, 192, 162 Z0 the transactor volume 5 issue 03 page 35 V note parts 1, 2 and 3 are contained in 'basic monitor 64' above sm2 I{$de}cmp #02 U{$e8}beq sm3 {$f2}bne sm4 {$fc}savlp1 inx cpx #$0f {CBM-D}bne savlp2 {CBM-H}rts Z$sm1 lda basic,x ; po{CBM-J}er from {$fb}.232 ^ 224, 15, 208, 246, 165, 44, 133, 252, 169 oH 0, 133, 251, 168, 145, 251, 76, 135, 192 R 162, 0, 189, 5, 193, 149, 43, 232, 224 {CBM-W}{$7c} 15, 208, 246, 165, 44, 133, 252, 169, 0 {$e5} 133, 251, 168, 145, 251, 76, 135, 192, 162 0 the transactor volume 5 issue 03 page 37 f{$e8} picprint loader B{$f2} j{CBM-R}49152 {CBM-@} 49497 : x Z{$fc} j,x : ch{CBM-R}ch{CBM-N}x : {CBM-T} ch{CBM-W}{CBM-E}41532 {CBM-M} "checksum error" : F 49152 : "PICPRINT Enabled." {$e9} 76, 34, 192, 0, 1, 1 $ 100, 128, 64,3, 141, 2 ){$fa} 201, 6, 208, 10, 32, 159, 255, 173, 141 [ 2, 201, 5, 208, 246, 76, 49, 234, 162 0, 189, 207, 192, 149, 43, 232, 224, 15 {CBM-B} 208, 246, 165, 44, 133, 252, 169, 0, 133 {$f1}" 251, 168, 145, 251, 173, 30, 194, 2, 169 $T 0, 141, 4, 192, 76, 49 g{$7e} 234, 173, 4, 192, 208, 35 J 169, 1, 141, 4, 192, 165 197, 201, 3, 240, 27, 201 {CBM-A} 6, 208, 8, 169, 1, 141 S{CBM-+} 5, 192, 76, 123, 192, 201 {$f6}{CBM-A} 5, 208, 8, 169, 0, 141 {SHIFT-@} 0, 104, 0, 0 5 1, 104, 1, 104, 1, 104, 0, 160, 0 G 160, 0, 160, 0, 160, 0, 160, 0, 0 {CBM-N} 201, 75, 208, 29, 169, 167, 141, 9, 3 K{CBM-H} 169, 228, 141, 8, 3, 169, 1, 133, 43 {$fd}{CBM-V} 169, 8, 133, 44, 169, 092, 173, 6, 192, 32 1 195, 255, 173, 6, 192, 162 t 4, 160, 4, 32, 186, 255 W 169, 0, 32, 189, 255, 32 ( 192, 255, 174, 6, 192, 32 {CBM-X}2 201, 255, 169, 0, 133, 251 < 169, 32, 133, 252, 169, 27 f 32, 210, 255, 93, 201, 52, 176, 242, 72 a 2 41, 207, 141, 159, 192, 104, 201, 48, 240 S < 14, 201, 49, 240, 13, 201, 50, 240, 12 {CBM-G} f 201, 51, 240, 11, 208, 217, 76, 112, 193 W p 76, 151, 193, 76, 177, 193, 76, 203, 193 z 1, 8, 1, 8, 7 157, 23, 192, 202, 16, 250 > 162, 0, 160, 0, 177, 251 A {CBM-N} 141, 33, 192, 230, 251, 208 {CBM-H} 2, 230, 252, 173, 33, 192 {CBM-M} {CBM-V} 57, 7, 192, 240, 9, 185 J H 23, 192, 29, 7, 192, 153 {$ed} R 23, 192, 200, 192, 8, 208 {CBM--} {CBM-V}5, 197, 201, 63, 240 (, 5, 206, 31, 192, 208, 130 k6 169, 27, 32, 210, 255, 169 N@ 64, 32, 210, 255, 173, 6 j 192, 32, 195, 255, 32, 204 {CBM-N}t 255, 76, 49, 234 , 192, 29, 7, 192, 153 {$ed} R 23, 192, 200, 192, 8, 208 {CBM--}0 the transactor volume 5 issue 03 page 37 9D 700 oN ; "PICPRINT" HX ;hi{CBM-Q}res dump utility ;use functi keys f3,f5 {CBM-P} f7 {CBM-@} ;f7 {CBM-Q}{CBM-@}ggle hi{CBM-Q}res mode {SHIFT-@} ;f3 {CBM-Q}dump picture U ;f5 {CBM-Q}dump wide picture {$f7}{CBM-N} ;ctrl {CBM-Q}reverse dumped picture {$fd}{CBM-H} ; 0, 173, 159, 192, 201, 0, 240, 16, 201 i 1, 240, 20, 201, 2, 240, 24, 208, 30 {$7b}{CBM-@} 232, 224, 15, 208, 234, 96, 181, 43, 157 {CBM-Z}{CBM-S} 207, 192, 76, 248, 193, 181, 43, 157, 225 {CBM-*}{CBM-U} 192, 76, 248, 193, 181, 43, 157, 243, 192 B 32, 16, 8 /. 4, 2, 1, 27, 121, 192 r8 3, 27, 75, 64, 1, 0 Ub 0, 0, 0, 0, 0, 0 l 0, 24, 0, 0, 120, 169 {CBM-F}v 47, 141, 20, 3, 169, 192 {$de}{$60} 141, 21, 3, 88, 96, 165 J 197, 201, 64, 208, 801, 0 #, 208, 6, 169, 1, 141, 30, 194, 96, 76 u6 135, 192, 162, 0, 189, 225, 192, 149, 43 @ 232, 224, 15, 208, 246, 165, 44, 133, 252 {CBM-O}j 169, 0, 133, 251, 168, 145, 251, 76, 135 {$eb}t 192, 162, 0, 189, 243, 192, 149, 43, 5, 192, 76, 123, 192, 76 <D 49, 234, 173, 17, 208, 73 _N 32, 141, 17, 208, 173, 24 X 208, 73, 8, 141, 24, 208 {CBM-G}{$e2} 76, 49, 234, 169, 0, 141 H{$ec} 3, 192, 173, 141, 2, 41 {$eb}{$f6} 4, 240, 5, 169, 255, 141 3, 1, 133, 53, 169 / H 160, 133, 54, 76, 135, 192, 76, 8, 175 A R 169, 193, 160, 82, 120, 141, 21, 3, 140 {CBM--} 20, 3, 88, 174, 159, 192, 169, 0, 32 E {$e6} 205, 189, 76, 135, 192, 165, 197, 201, 63 {$f7} {$f0} 208, 4, 169, 0, 133, 212, 17169, 51, 32 &p 210, 255, 169, 16, 32, 210 iz 255, 169, 25, 141, 31, 192 LD 162, 0, 189, 15, 192, 172 N 5, 192, 208, 3, 189, 19 {CBM-R}X 192, 32, 210, 255, 232, 224 U 4, 208, 237, 169, 40, 141 {$f8} 32, 192, 169, 0, 162, 1, 8, 0, 40, 0 ;D 40, 0, 40, 0, 40, 0, 40, 0, 0 MN 1, 40, 1, 40, 1, 40, 0, 72, 0 X 72, 0, 72, 0, 72, 0, 72, 0, 0 Q 1, 72, 1, 72, 1, 72, 0, 104, 0 104, 0, 104, 0, 104, 234, 232, 224, 8, 208, 216 3{$e6} 162, 0, 189, 23, 192, 77 v{$f0} 3, 192, 32, 210, 255, 172 Y{$fa} 5, 192, 240, 6, 32, 210 255, 32, 210, 255, 232, 224 {CBM-B} 8, 208, 231, 206, 32, 192 {$e2} 208, 172, 169, 13, 32, 210 " 255, 16{CBM-V} ;assembled pal 64 H ; :R ;chris zamara {CBM-Q} july 10{CBM-Z}84 @{CBM--} ; l{$e6} .opt oo x{$f0} {CBM-D}{CBM-R}$c000 {$7d}{$fa} jmp init ;bypass variables below ; e{CBM-A}flag .byte 0 {CBM-N}keyflag .byte 0 {CBM-V}"bigflag .byte 0 {$e4},fiCum .byte 100 ;file number used 6{CBM-X} .byte 128,64, 0 the transactor volume 5 issue 03 page 21 ^ set default colours on run-stop/restore R by r.d. young "start location 900";ad {CBM-F}( i{CBM-R}ad {CBM-@} ad{CBM-N}15 : x : i, x : Z2 hi{CBM-R}{CBM-J}(ad{CBM-Z}256) : lo{CBM-R}ad {CBM-P} 255 ~< "screen colour (0-15) 6";0 the transactor volume 5 issue 03 page 21 _ restr{CBM-R}828: k{CBM-R}restr {CBM-@} restr{CBM-N}31: j: k,j: 32,253,174,32,158,173,32,247,183,32,19,166,176,5,162,17 X 76,55,164,165,95,233,1,133,65,165,96,233,0,133,66,96 {$e7}D i{CBM-R}1 {CBM-@} 20 ~N x{CBM-R}100{CBM-D}({CBM-J}({CBM-F}(1){CBM-D}5){CBM-N}2 , "Article related programs start here m "note: this file is only a L "directory placemarker - ( "scratch it if you wish. ours restore x 64 0 the transactor volume 5 issue 03 page 29 K listing 1 from hardware corner. requires led circuit D " Dom's idea and Chris's code ** {CBM-Y}N " for hardware corner LED cct ** {CBM-X}S : {$e3}X ddr{CBM-R}56579: * data direction reg. dr {CBM-R}56577: * data reg0 the transactor volume 5 issue 03 page 29 K listing 2 from hardware corner. requires led circuit D "Knight Rider" ** {CBM-E}N " for H.C.#2 LED board ** {CBM-Y}X : {SHIFT--} ddr{CBM-R}56579: * data direction reg. {$fd} dr {CBM-R}56577: * data register 44,48,96,192,128 ,, 192,96,48,24,12, 6, 3, 1 listing 2 from hardware corner. requires led circuit D "Knight Rider" ** {CBM-E}N " for H.C.#2 LED board ** {CBM-Y}X : {SHIFT--} ddr{CBM-R}56579: * data direction reg. {$fd} dr {CBM-R}56577: * data register 0 the transactor volume 5 issue 03 page 29 K listing 3 from hardware corner. requires led circuit D * roullete wheel program for ** {CBM-J}N * led circuit ** ZX *"(written without using GOTOs) : ddr{CBM-R}56579: * data direct i( 6 ad(250) 0@x{CBM-R}a(5) : 150 : clr last array zjx{CBM-R}a(3) : 150 : clr j( & i( arrays tx{CBM-R}0 : 150 : clr all arrays etc${CBM-R}"and so on" LR arrays move up as simple variables are defined {$f1}{CBM--} however, a(3) remains the same {$e6} j(20SPACE bar to 'spin'." ~ : 4 k{CBM-R}0 {CBM-@} 1 {SHIFT-POUND} 0: * loop * si{CBM-R}0{CBM-@}1:{CBM-K}a$:i{CBM-R}{CBM-Q}(a${CBM-R}" "): i Jn{CBM-R}{CBM-J}({CBM-F}(1){CBM-D}70): n; P": ,* start off at next unlit led * {CBM-G}6led{CBM-R}led {CBM-P} 7 {CBM-Q}@: Ee* main 'spin' loop * Sj i{CBM-R}0 {CBM-@} 1 {$e9}t: dr,e(led {CBM-P} 7) ^: inc{CBM-R}({CBM-V}(led0 the transactor volume 5 issue 03 page 33 q{$e8}G(147):"quadra 64 w/wedge" E{$f2}:" commands:" {$fc}:" \ display partition number." {CBM-Y}" \0-3 select partition number" {$e4}:" run the intialize program to clean" ~" memory partitions. Mc f ad{CBM-N}1, c 4p "cursor colour (0-15) 13";c bz ad{CBM-N}9, c \D 770, lo : 771, hi HN 65126 {$f4} 169, 6, 141, 32, 208, 141 {CBM-S}{$fe} 33, 208, 169, 13, 141, 134 G 2, 76, 131, 164 ) X restr,x a$: a$ ! ' =H i'm at line 200 s, i'm at line 300 I i'm at line 400 {$7f}{$f4} i'm at line 500 x i'm at line 600 08, 169, 13, 141, 134 G 2, 76, 131, 164 e" v"correcting errors." s{$60} 49152,96: poke in rts to prevent accidental running yJ T 169, 192, 160, 121, 141, 9, 3, 140, 8 {CBM-X}{$7e} 3, 169, 193, 160, 82, 120, 141, 21, 3 {$ef} 140, 20, 3, 88, 160, 0, 140, 0, 8 ! 140, {$fe}ister ' * (above values are for c64) * - : p ddr,255: set to all outputs v{CBM-N} : K{CBM-H} loop{CBM-R}0 {CBM-@} 1 {SHIFT-POUND} 0 Z{CBM-V} : i{CBM-R}1 {CBM-@} 4 H : j{CBM-R}0 {CBM-@} 7 {CBM-Z}R : i{CBM-R}1 {CBM-A} i{CBM-R}3 {CBM-M} p{CBM-R}2{CBM-S}j{CBM-N}2{CBM-S}(7{CBM-Q}j) F{CBM--} : i{CBM-R}2 {CBM-M} p{CBM-R}2{CBM-S}(7{CBM-Q}j) {SHIFT-+}{$e6} : i{CBM-R}4 {CBM-M} p{CBM-R}2{CBM-S}j {$e9}{$f0} : dr,p {$f8}{$fa} j,i,loop * above values for c64 * ! : -{CBM-N} d(14) i{CBM-H} i{CBM-R}0 {CBM-@} 14: d(i): i o{CBM-V} : UH speed{CBM-R}60: * lower value=faster * {$7b}R : {CBM--} loop{CBM-R}0 {CBM-@} 1 {SHIFT-POUND} 0 {$e6} : i{CBM-R}0 {CBM-@} 14 {CBM-A}{$f0} : dr,d(i) Q{$fa} : delay{CBM-R}1 {CBM-@} speed: delay {$de} i,loop {$e4}: {$ea}: " 1, 3,12,2 0, 40, 140, 0, 72, 140, 0, 104 s 169, 0, 133, 53, 169, 28, 133, 54, 169 {CBM-+} 0, 141, 159, 192, 169, 67, 160, 192, 32 {CBM-Y}{CBM-A} 30, 171, 169, 0, 141, 30, 194, 32, 112 {$e9}{SHIFT-@} 193, 234, 234, 96, 147, 81, 85, 65, 68 D 82, 65ion reg. & dr {CBM-R}56577: * data register h " (above values are for C64: M{CBM-N} " see text for PET/VIC values) S{CBM-H} : {CBM-V} ddr,255: * 255=all outputs H : {CBM-+}R e(7) J{CBM--} * array e() holds bit values * {$e8}{$e6} i{CBM-R}0{CBM-@}7:e(i){CBM-R}2{CBM-S}(7{CBM-Q}i): i {$ee}{$f0} : {$fa} "press , 32, 54, 52, 13, 13, 66, 89 mN 58, 32, 68, 65, 78, 73, 69, 76, 32 {$7f}X 66, 73, 78, 71, 65, 77, 79, 78, 13 {CBM-E}{$e2} 70, 79, 82, 32, 84, 72, 69, 32, 84 {$e3}{$ec} 82, 65, 78, 83, 65, 67, 84, 79, 82 {$f6} 13, 0, H{CBM-Z}n{CBM-D}~){CBM-N}1){CBM-Z}2 H: led{CBM-R}led{CBM-N}inc 3R: i{CBM-R}{CBM-Q}(led{CBM-E}{CBM-R}n {CBM-A} inc{CBM-W}0.04) ;{$7c} i a: v" spin ended " ^ k values) S{CBM-H} : {CBM-V} ddr,255: * 255=all outputs H : {CBM-+}R e(7) J{CBM--} * array e() holds bit values * {$e8}{$e6} i{CBM-R}0{CBM-@}7:e(i){CBM-R}2{CBM-S}(7{CBM-Q}i): i {$ee}{$f0} : {$fa} "press " :"now loading wedge...." frt${CBM-R}G(145): j{CBM-R}1{CBM-@}20:rt${CBM-R}rt${CBM-N}G(29): yi{CBM-R}49152{CBM-@}49694 T$a:i,a:ck{CBM-R}ck{CBM-N}a:rt$;i {$7c}.: {CBM-P}8 ck{CBM-R}58348{CBM-M}"no errors. sys49152 to start.": Xb"there is a error in your data, do" {$fe}l"not attempt to run this befor0, 0, 32, 115, 0, 201, 92 g 240, 16, 201, 58, 240, 245, 76, 231, 167 Y 76, 116, 164, 0, 0, 0, 0, 0, 0 {CBM-Q} 72, 32, 229, 193, 104, 32, 115, 0, 201 {SHIFT--} 0, 208, 10, 76, 59, 193, 3, 0, 0 ( 0, 76, 23, 1 ate dec {CBM-@}ggle ;decent the toggle byte jPbne noupa ;is it time {CBM-@} display the clock yet YZlda #15 ;ly need {CBM-@} update 4 times a secd sta {CBM-@}ggle ;reset the {CBM-@}ggle byte {CBM-D}lda colour {SHIFT--}ldy #7 ; a kernal 2 c64 {CBM-M} fix up the colour {CBM-I}loop sta tab{CBM-N} {CBM-W}0 the transactor volume 5 issue 02 page 91 u sx-64 emulator install program Mz 53280,3: 53281,1 D a{CBM-R}a{CBM-N}1: a{CBM-R}5 120 N "sx"{CBM-N}D(a),8,1 {CBM-@}X G(31); {CBM-P} 1,53 1 %! --- volume 5 issue 03 --- e 02 page 91 u sx-64 emulator install program Mz 53280,3: 53281,1 D a{CBM-R}a{CBM-N}1: a{CBM-R}5 120 N "sx"{CBM-N}D(a),8,1 {CBM-@}X G(31); {CBM-P} 1,53 1 # "'BITS' programs start here d "note: this file is only a C "directory placemarker - ( "scratch it if you wish. N "sx"{CBM-N}D(a),8,1 {CBM-@}X G(31); {CBM-P} 1,53 1 0 the transactor volume 5 issue 03 page 17 J * submitted by giovani polese of downsview, ontario U ""; "{CBM-@}RF{SHIFT-*}CDE{CBM-T}EDC{SHIFT-*}FR{CBM-@}";:20 8,1 {CBM-@}X G(31); {CBM-P} 1,53 1 0 the transactor volume 5 issue 03 page 17 9D "" lN 13{CBM-D}4096{CBM-N}33,0 [S i{CBM-R}1 {CBM-@} 15 PX a : c${CBM-R}c${CBM-N}G(a) V{$7d} s${CBM-R}" ": 5 spaces b${CBM-R}G(157) {CBM-U} b${CBM-R}""{CBM-N}b${CBM-N}b${CBM-N}b${CBM-N}b${CBM-N}b$ G i{CBM-R}1 {CBM-@} 15 X J(c$,i,1); {$e3} ""; {$f5} j{CBM-R}1 {CBM-@} i:: {CBM-N} {CBM-+}i{CBM-D}{CBM-V}ldx #3 ;take the 12 in e byte {CBM-P} put 7Hdisui asl a ;it {CBM-J}o two bytes 31 {CBM-P} 32 dRrol temp l{CBM--}dex z{$e6}bpl disui I{$f0}lda temp{CBM-N}1 Z{$fa}{CBM-P} #%00001111 {CBM-A}a #$30 sta temp{CBM-N}1 pla {CBM-G}"tax {CBM-R},lda temp {CBM-V}6{CBM-A}a #$30 F@rts Lj; {$ec}ttemp {CBM-D}{CBM-R}{CBM-D}{CBM-N}2 ;temp{CBM-A}ary {CBM-@}0 the transactor volume 5 issue 03 page 17 =D u(255) uN j{CBM-R}15{CBM-D}4096 {CBM-@} 65535 LX x{CBM-R}B(j):u(x){CBM-R}u(x){CBM-N}1 T j H j{CBM-R}0 {CBM-@} 255 R u(j){CBM-R}0 {CBM-M} j; {CBM--} j {CBM-A}sta temp{CBM-N}1 ;{CBM-P} {CBM-M} the secds {SHIFT-@}jsr distim "Diny *Niny 9Xsta scrn,y h{$e2}lda temp{CBM-N}1 p{$ec}iny _{$f6}sta scrn,y G dex S bpl Ker Y; lda cia1{CBM-N}8 ;{CBM-@}d tenths of secds B(cmp #5 ;see we sshould a ':' {$e7}2bcs abov5 ;{CBM-A} a ' ' inbetween the O0 the transactor volume 5 issue 03 page 17 =D u(255) tN 8,8,8,"some file" GX {CBM-K}#8,a$ : sx{CBM-R}st {$7d} x{CBM-R}F(a${CBM-N}G(0)) : u(x){CBM-R}u(x){CBM-N}1 sx{CBM-R}0 {CBM-M} 120 8 {CBM-P}H j{CBM-R}0 {CBM-@} 255 CR u(j){CBM-R}0 {CBM-M} j; K{CBM--} j 32,y ;table Eues {CBM-D}dey {CBM-L}bpl loop ,{SHIFT-*}lda cia1{CBM-N}11 ;hours iJbmi {CBM-@}here ;see am {CBM-A} pm vTcmp #$12 E{$de}bne okhere {$e8}lda #0 ;turned from 235959 {CBM-@} 000000 {$f2}beq okhere {CBM-W}{$fc}{CBM-@}here {CBM-P} #%00011111 Zcmp #$12 ; pm {CBM-M} fix the hours Eue {$e9}bcs okhere {$f1}0 the transactor volume 5 issue 03 page 18 _D {CBM-G} a(q) {CBM-R} (B(47){CBM-Q}B(45)){CBM-D}256 {CBM-N} B(46){CBM-Q}B(44) N {CBM-G} hi(q) {CBM-R} B(45) {CBM-N} {CBM-J}(q{CBM-Z}256) {CBM-I}X {CBM-G} lo(q) {CBM-R} B(44) {CBM-N} (q {CBM-P} 255) {CBM-D} 160 R 47, {CBM-G} hi(x) : 46, {CBM-G} lo(x) : {$f1} *** start of program *** c(1000 ),b(1000): a(3){CBM-R}{CBM-G}a(0) 5{CBM-N} j(20),i(20) : a(5){CBM-R}{CBM-G}a(0) x{CBM-H} x{CBM-R}a(3) : 140 : clr j( & i( {CBM-V} j(100),i(100) : a(5){CBM-R}{CBM-G}a(0) : re-dim H ad(250) {CBM-U}R x{CBM-R}a(5) : 140 : clr array ad( {$e2}{CBM--} x{CBM-R}a(3) : 140 : clr j( & i( arrays {$e6} x{CBM-R}0 : 140 : cl r all arrays nsactor volume 5 issue 03 page 18 _D {CBM-G} a(q) {CBM-R} (B(47){CBM-Q}B(45)){CBM-D}256 {CBM-N} B(46){CBM-Q}B(44) N {CBM-G} hi(q) {CBM-R} B(45) {CBM-N} {CBM-J}(q{CBM-Z}256) {CBM-I}X {CBM-G} lo(q) {CBM-R} B(44) {CBM-N} (q {CBM-P} 255) {CBM-D} 160 R 47, {CBM-G} hi(x) : 46, {CBM-G} lo(x) : {$f1} *** start of program *** c(10000 the transactor volume 5 issue 03 page 18 _D {CBM-G} a(q) {CBM-R} (B(50){CBM-Q}B(48)){CBM-D}256 {CBM-N} B(46){CBM-Q}B(44) N {CBM-G} hi(q) {CBM-R} B(48) {CBM-N} {CBM-J}(q{CBM-Z}256) {CBM-I}X {CBM-G} lo(q) {CBM-R} B(47) {CBM-N} (q {CBM-P} 255) {CBM-D} 180 O --- clr array subroutine --- {$f1} 50, {CBM-G} hi(x) : 49, {CBM-G} lo(x) {$f7} {CBM-N} 2)""s$b$s$b$s$b$s$ #{CBM-P} j{CBM-R}1 {CBM-@} 300: +{CBM-H} i nH 5, 28, 159, 156, 30, 31 QR 158, 129, 149, 150, 151, 152 {CBM--} 153, 154, 155 ts{CBM-@}rage ^{CBM-@}ggle {CBM-D}{CBM-R}{CBM-D}{CBM-N}1 ;{CBM-@}ggle byte )Htime {CBM-D}{CBM-R}{CBM-D}{CBM-N}3 ;times s{CBM-@}red here /R; 6{$7c}. Dsta scrn{CBM-N}34 pN; XXnoupa jmp irq ;K do n{CBM-A}mal irq stuff {$7e}; distim txa pha E lda #0 ;make the Eue in temp a screen able V{CBM-N}sta temp ;m {$e5}{CBM-H}lda temp{CBM-N}1 *** start of program *** 9{CBM-H} c(1000),b(1000) : a(3){CBM-R}{CBM-G}a(0) N{CBM-V} a(3)=bytes used by first 3 arrays, c(, b( & a( H p{CBM-R}3.14159 : i%{CBM-R}10 : etc${CBM-R}"and so on" LR arrays move up as simple variables are defined {$f1}{CBM--} however, a(3) remains the same {$e6} j(20<lda #58 ;hours{CBM-Z}minutes{CBM-Z}{CBM-P} secds f.byt $2c *pabov5 lda #32 :zsta scrn{CBM-N}37 jDsta scrn{CBM-N}34 pN; XXnoupa jmp irq ;K do n{CBM-A}mal irq stuff {$7e}; distim txa pha E lda #0 ;make the Eue in temp a screen able V{CBM-N}sta temp ;m {$e5}{CBM-H}lda temp{CBM-N}1 ),i(20) : a(5){CBM-R}{CBM-G}a(0) ?{$f0} new arrays, a(5)=bytes used by all 5 w{$fa} r${CBM-R}G(13) : q${CBM-R}G(34) {$7c} and perhaps some new variables x{CBM-R}a(3) : 150 D clr arrays j( & i(, leaving c(, b( & a( intact {$e7}" j(100),i(100) : a(5){CBM-R}{CBM-G}a(0) {$fc}, re dim j( & sei {$f9}$sed .clc 3 8adc #$12 ;it must be pm so add 12 hours {CBM-@} Eue i bokhere sta time{CBM-N}2 q lcld y vcli R {$60}lda cia1{CBM-N}10 ;minutes Jsta time{CBM-N}1 Tlda cia1{CBM-N}9 ;secds {CBM-G} {$7e}sta time {CBM-Q} ; {CBM-L} ldx #2 B ldy #30 {$ec} {CBM-+}Ker lda time,x ; the hours {CBM-M} minutes 0 the transactor volume 5 issue 02 page 89 t{$e8} c64 time of day clock display P{$f2} j{CBM-R}52992 {CBM-@} 53239 : x {$fc} j,x : ch{CBM-R}ch{CBM-N}x : {CBM-E} ch{CBM-W}{CBM-E}31658 {CBM-M} "checksum error" : {CBM-Y} C 52995 {$f3}$ "enter time (hh,mm,ss) ";b(2), b(1), b(0) . a{CBM-R}0 ( tod clock 64 pal source ?2 open8,8,8,"0:clock 64,s,w e< of 700 [p .opt o8 Az ; XD ;program variables {$7e}N ; {CBM-I}X irq {CBM-R} $ea31 ;n{CBM-A}mal irq routines {CBM-V} cinv {CBM-R} $0314 ;irq vec{CBM-@}r {$e7} scrn {CBM-R} $0400 ;the screen starts here colour {CBM-R} $0286 ;cu o 160, 100, 136, 234, 234, 234 4 208, 250, 76, 113, 192, 96 ={CBM-N} -1 6, 173 N 9, 192, 237, 3, 192, 141 ( 9, 192, 173, 10, 192, 237 {CBM-H}2 4, 192, 141, 10, 192, 173 W< 11, 192, 237, 5, 192, 141 {$fa}f 11, 192, 76, 230, 19 t time ; 'jmp setup ;start the clock a"jmp kill ; the clock g,; J6setup sei ;no {CBM-J}errupts allowed U@ldy #2 jsed ;cvert s {CBM-@} bcd tsetl1 lda #0 {CBM-M}^clc {CBM-L}Hldx secs,y DRsetl2 dex R{$7c}bmi setl3 {$f3}adc #1 ;adding e in decimal bc, 73, 1, 141 ( 15, 192, 141, 249, 7, 169 k 129, 141, 18, 212, 56, 173 N 9, 192, 237, 3, 192, 141 ( 9, 192, 173, 10, 192, 237 {CBM-H}2 4, 192, 141, 10, 192, 173 W< 11, 192, 237, 5, 192, 141 {$fa}f 11, 192, 76, 230, 19registers ldx mins &lda secs !0; r:sta cia1{CBM-N}9 ;set the 6526's time of day clock Ydstx cia1{CBM-N}10 ;.a{CBM-R}secds, .x{CBM-R}minutes nsty cia1{CBM-N}11 ;.y{CBM-R}hours xlda #0 SBsta cia1{CBM-N}8 ;tenths of secds {CBM-Q} clock starts here {$e3}Llda cia1{CBM-N}15 V{CBM-P} #%01111111 ;4 T 141, 15, 212, 169, 154, 141 @{$7e} 19, 212, 169, 184, 141, 20 C 212, 169, 128, 141, 18, 212 169, 0, 141, 9, 192, 141 {SHIFT-POUND} 10, 192, 141, 11, 192, 173 K{CBM-+} 14, 192, 141, 1, 208, 24 {$ed}{CBM-A} 105, 20, 141, 3, 208, 24 {SHIFT-@} 173,, 251 D 207, 141, 249, 207, 32, 211 aN 207, 200, 200, 153, 0, 4 DX 173, 249, 207, 200, 153, 0 4, 202, 16, 232, 173, 8 {CBM-N} 220, 201, 5, 176, 3, 169 M 58, 44, 169, 32, 141, 37 {$f0} 4, 141, 34, 4, 76, 49 {CBM-N}ksum error *****" H : {$f0} <{$e8} 76, 16, 192, 14, 0, 0 ]{$f2} 5, 0, 0, 0, 0, 0 {$7e}{$fc} 0, 0, 100, 202, 169, 1 {CBM-K} 141, 21, 208, 141, 39, 208 D 169, 7, 141, 40, 208, 169 {$e7} 200, 141, 248, 7, 169, 150 $ 141, 0, 208, 3, 169, 15, 141, 250 4X 207, 88, 96, 120, 169, 49 w{$e2} 141, 20, 3, 169, 234, 141 Z{$ec} 21, 3, 88, 96, 206, 250 {$f6} 207, 208, 103, 169, 15, 141 {SHIFT-*} 250, 207, 173, 134, 2, 160 {$e3} 7, 153, 32, 216, 136, 16 250, 173, 11,{CBM-@} 2 : 251{CBM-N}a, b(a) : !8 52992 'b jl 76, 6, 207, 76, 87, 207 Mv 120, 160, 2, 248, 169, 0 {$60} 24, 182, 251, 202, 48, 4 {CBM-W}J 105, 1, 144, 249, 153, 251 VT 0, 136, 16, 238, 165, 253 {$f9}{$7e} 201, 19, 144, 7, 56, 233 rrent character colour Eue ; a{CBM-N} tab {CBM-R} $d800 ;colour table ram F{CBM-H} cia1 {CBM-R} $dc00 ;cia number 1 irq's L{CBM-V} ; H secs {CBM-R} $fb ;secds R mins {CBM-R} $fc ;minutes {CBM-A}{CBM--} hrs {CBM-R} $fd ;hours {CBM-L}{$e6} ; {$e5}{$f0} {CBM-D}{CBM-R}$cf00 ;the program resides at cf00h {CBM-P} up {$eb}{$fa} ; ;set up se {CBM-J}errupts again {$ee}rts ; {CBM-@} basic {$f8}; ( kill sei n lda #{CBM-W}irq ; displaying the clock [ sta cinv lda #{CBM-E}irq ;put irq's back {CBM-@} n{CBM-A}mal vec{CBM-@}r *sta cinv{CBM-N}1 ;Eue {CBM-T} 4cli {CBM-F} >rts ;K back {CBM-@} basic A h; {$e4} r;update the clock {CBM-P} display it {$ea} \; Fupdc setl2 9setl3 sta secs,y ;this way a #23 will become a #$23 a{CBM-@}dey o{CBM-S}bpl setl1 [{CBM-U}lda hrs HBcmp #$13 Lbcc setl4 ;check {CBM-P} see pm. flag is {CBM-@} be set {CBM-I}Vsec {CBM-P} sbc #$12 H{$ea}{CBM-A}a #128 ;set pm. bit T{$f4}sta hrs Z{$fe}; {$e8}setl4 cld ldy hrs ;{CBM-K} 2, 169 p 1, 141, 21, 208, 169, 128 @ z 141, 18, 212, 160, 10, 136 C D 208, 253, 24, 173, 12, 192 N 109, 9, 192, 141, 12, 192 {SHIFT-POUND} X 173, 13, 192, 109, 10, 192 L 141, 13, 192, 173, 14, 192 {$ef} 109, 11, 192, 141, 14, 192 clock {CBM-POUND} alarm sta cia1{CBM-N}15 ; *lda #{CBM-W}update tsta cinv ;wedge {CBM-J}o the irq's so i can W{CBM-POUND}lda #{CBM-E}update ;update the clock {CBM-R}sta cinv{CBM-N}1 {CBM-C}; {CBM-W}Flda #15 ;i d't want {CBM-@} do it every YPsta {CBM-@}ggle ;{CBM-J}errupt so use a {CBM-@}ggle {CBM-*}Z; {$e4}cli ;enable the 9, 192, 109, 6, 192 3D 141, 9, 192, 173, 10, 192 vN 109, 7, 192, 141, 10, 192 YX 173, 11, 192, 109, 8, 192 {$e2} 141, 11, 192, 165, 197, 201 {CBM-B}{$ec} 4, 240, 110, 201, 60, 208 {$e2}{$f6} 52, 169, 3, 141, 21, 208 173, 15, 192 {$e1} 234, 138, 72, 169, 0, 141 6 {CBM-H} 248, 207, 173, 249, 207, 162 y {CBM-V} 3, 10, 46, 248, 207, 202 {$7c} H 16, 249, 173, 249, 207, 41 R 15, 9, 48, 141, 249, 207 B {CBM--} 104, 170, 173, 248, 207, 9 Q {$e6} 48, 96 {$fb}z 162, 2, 160, 30, 189 141, 2, 208 -. 169, 100, 141, 1, 208, 169 n8 120, 141, 3, 208, 169, 0 Qb 141, 16, 208, 141, 23, 208 l 141, 29, 208, 141, 28, 208 {CBM-Y}v 141, 33, 208, 141, 32, 208 Z{$60} 169, 15, 141, 24, 212, 169 {$fb}J 0, 141, 14, 212, 169, 220, 48, 8 ) 201, 18, 208, 15, 169, 0 l( 240, 11, 41, 31, 201, 18 O2 176, 5, 120, 248, 24, 105 < 18, 141, 253, 207, 216, 88 {CBM-J}f 173, 10, 220, 141, 252, 207 Xp 173, 9, 220, 141, 251, 207 {$fb}z 162, 2, 160, 30, 189 18, 9, 128, 133, 253, 216 ? 164, 253, 166, 252, 165, 251 B 141, 9, 220, 142, 10, 220 {CBM-+} 140, 11, 220, 169, 0, 141 {CBM-POUND}{CBM-A} 8, 220, 173, 15, 220, 41 K{SHIFT-@} 127, 141, 15, 220, 169, 100 {$ee}D 141, 20, 3, 169, 207, 141 N 21, onvert,print,poke {$f1}(z- m${CBM-R}"**" {CBM-M} "*error* illegal mode": {$fd}(D- 11570 )N- o,m )X- i)-m${CBM-R}J(mn$,a,2): a locates lo byte :rem poke lo,hi bytes u)- 11570 A)- o{CBM-N}1,m ) -m${CBM-R}J(mn$,b,2): b locates hi byte ){CBM-N}- 11570 ){CBM-H}- o{CBM-N}2,m {CBM-G}){CBM-V}- {CBM-P})H-o{CBM-R}o{CBM-N}3 {CBM-J})R-y U&$, I(mn$,1){CBM-R}"y" {CBM-M} mo{CBM-R}4 {$e2}&.," "; {$ee}&8, 11600 'b,m${CBM-R}J(mn$,6,2) 'l, 11570 'v, o{CBM-N}1,m "'{$60},o{CBM-R}o{CBM-N}2 ('J, 4'T, 11530 m'{$7e}, C(mn$){CBM-W}{CBM-E}11 {CBM-M} 11470 x'," "; Q',mo{CBM-R}6 : absolute x,y ', I(mn$,1){CBM-R}"y" {CBM-M} mo{CBM-R}7 '{CBM-+}, 11600 {CBM-T}'{CBM-A},a{CBM-R}8:b{CBM-R}6 {CBM-P}'{SHIFT-@}, 11650 {CBM-F}'D, 110 the transactor volume 5 issue 02 page 70 9D 700 ?N ; qX ; "ROCKET" S ;simulates a rocket under the ;influence of thrust {CBM-P} gravity. {CBM-Y} ;press space {CBM-@} thrust, f1 {CBM-@} U ;change thrust {CBM-P} gravity. {SHIFT-+}{CBM-N} ; {$e9}{CBM-H} .opt n,oo {$f5}{CBM-V} {CBM-D}{CBM-R}$c000 H jmp 11080 {CBM-*}$+mo{CBM-R}10 : accumulator {$f2}$+" "; {$fe}$+ 11600 % + m${CBM-R}"**" {CBM-M} 11530 %*+ &%4+o{CBM-R}o{CBM-N}1 2%>+ 11530 o%h+ C(J(mn$,5)){CBM-W}{CBM-E}3 {CBM-M} 11190 E%r+mo{CBM-R}2: zero page T%\+" "; %F+ 11600 %P+ m${CBM-R}"**"{CBM-M} 11530 {CBM-M}%Z+m${CBM-R}J(mn$,6) {CBM-W}%+ 11570 {CBM-B}%+ o{CBM-N}p stuff jlda #1 )tsta vic{CBM-N}21: sta vic{CBM-N}39 @^lda #7: sta vic{CBM-N}40 wHlda #200: sta 2040 DRlda #150 {$7b}{$7c}sta vic: sta vic{CBM-N}2 lda #100: sta vic{CBM-N}1 {CBM-Q}lda #120: sta vic{CBM-N}3 {CBM-L}lda #0 Q{CBM-@}sta vic{CBM-N}16: sta vic{CBM-N}23 {$ec}{CBM-S}sta vic{CBM-N}29: sta vic{CBM-N}28 {CBM-U}sta 53281530 O"L) jmp X"V)fl{CBM-R}0 {$fd}" ) I(mn$,1){CBM-R}")" {CBM-M} fl{CBM-R}1: indirect #{$ea}) o,76{CBM-N}32{CBM-D}fl $#{$f4})by${CBM-R}J(mn$,6{CBM-N}fl,4) 4#{$fe})m${CBM-R}J(by$,3) e#*o${CBM-R}" 4c " ]#* fl{CBM-R}1 {CBM-M} o${CBM-R}" 6c " G#* o$; S#&* 11570 {$7f}#0* o{CBM-N}1,m #:*m${CBM-R}H(by$,2) #d* 11570 {CBM-M}#n* o{CBM-N}2,m {CBM-E}#x*o{CBM-R}o{CBM-N}3 {SHIFT-@}#B*fl{CBM-R}0 {SHIFT-*}#L*sta velocity{CBM-N}1: sta velocity{CBM-N}2 :; (dloop {CBM-R}{CBM-D} mnlda rocky{CBM-N}2 ;use msd of ship's y Rxsta sprty ;{CBM-O}'n as sprite y co{CBM-A}d Bclc: adc #20 {CBM-G}Lsta sprty{CBM-N}2 ;flame's y co{CBM-Q}{CBM-A}d. {CBM-Q}V; G;add gravity {CBM-@} velocity Oclc lda velocity {$f0}adc gravity {CBM-POUND}s Z {CBM-N}( s{CBM-R}4 {CBM-M} 10630 !{CBM-H}( s{CBM-R}2 {CBM-M} m${CBM-R}J(op$(22),po{CBM-D}2{CBM-Q}1,2): implied !{CBM-V}( " " m$ (!H( 7120 2!R( o,m <!{CBM--}(o{CBM-R}o{CBM-N}1 h!{$e6}( 11530 B!{$f0}( relative addressing {$7d}!{$fa}(m${CBM-R}J(op$(23),po{CBM-D}2{CBM-Q}1,2) !)" "; !) 11570 !) o,m C!")m${CBM-R}J(mn$,5): calculate offset ;turn "flame" >lda flame he{CBM-A} #1 = rsta flame ;make flame flicker j \sta 2041 w Flda #129 S Psta sound ;turn sound Y Z; ;subtract thrust from velocity {CBM-@} sec {CBM-J} lda velocity D {CBM-I}sbc thrust U {CBM-D}sta velocity {$e8} {CBM-L}lda velocity{CBM-N}1 {$f9} {SHIFT-*}sbc tpace pressed {CBM-A} {CBM-POUND} cldy #10 %lwaste dey: bne waste +v; 9{$60}spcde {CBM-R}{CBM-D} ?J; [T;add velocity {CBM-@} y {CBM-O}iti C{$7e}clc Qlda rocky adc velocity sta rocky {CBM-+}lda rocky{CBM-N}1 {CBM-W}{CBM-A}adc velocity{CBM-N}1 C{SHIFT-@}sta rocky{CBM-N}1 SDlda rocky{CBM-N}2 {$e6}Nadc velocity{CBM-N}2 {$f6}Xsta {$e4}'N, indirect xy are the only ones left {$ed}'X,mo{CBM-R}8 ({$e2}, I(mn$,1){CBM-R}"y" {CBM-M} mo{CBM-R}9 ({$ec}, 11600 ({$f6},a{CBM-R}9:b{CBM-R}7 +( - 11650 3( -n{CBM-R}o >(- 7030 i(-m${CBM-R}by$ u((- 10060 W(2- m$" ";: print byte,convert (<- 7120 (f- G(p-m${CBM-R}J(op$(po),mo{CBM-D}2{CBM-Q}1,2): locate op code,c 530 {$e4}'N, indirect xy are the only ones left {$ed}'X,mo{CBM-R}8 ({$e2}, I(mn$,1){CBM-R}"y" {CBM-M} mo{CBM-R}9 ({$ec}, 11600 ({$f6},a{CBM-R}9:b{CBM-R}7 +( - 11650 3( -n{CBM-R}o >(- 7030 i(-m${CBM-R}by$ u((- 10060 W(2- m$" ";: print byte,convert (<- 7120 (f- G(p-m${CBM-R}J(op$(po),mo{CBM-D}2{CBM-Q}1,2): locate op code,cstart R thrust .byte 14,0,0 3{CBM--} gravity .byte 5,0,0 l{$e6} velocity .byte 0,0,0 D{$f0} rocky .byte 0,0,100 {$fa} flame .byte 202 ;flame shape po{CBM-J}r sprty {CBM-R}$d001 {CBM-D}vic {CBM-R}$d000 {CBM-X}sid {CBM-R}$d400 N"sound {CBM-R}$d412 {SHIFT--},keybd {CBM-R}197 {$ea}6start {CBM-R}{CBM-D} @;sprite set{CBM-Q}u1,m E%+ O%{CBM-I}+o{CBM-R}o{CBM-N}2 {SHIFT-+}%{CBM-D}+ 11530 &{CBM-L}+ C(J(mn$,5)){CBM-E}5 {CBM-A} I(mn$,1){CBM-R}"x" {CBM-A} I(mn$,1){CBM-R}"y" {CBM-M} 11270 )&{SHIFT-*}+mo{CBM-R}5: absolute 7&J+ " "; c&T+ 11600 [&{$de}+ m${CBM-R}"**" {CBM-M} 11530 G&{$e8}+a{CBM-R}8:b{CBM-R}6 S&{$f2}+ 11650 {$7f}&{$fc}+ 11530 &, xy modes {CBM-+}&, C(mn$){CBM-W}{CBM-E}9 {CBM-M} 11390 {CBM-F}&,mo{CBM-R}3 : zero x,: sta 53280 B; #L;sound set{CBM-Q}up stuff ;Vlda #15: sta sid{CBM-N}24 r lda #0: sta sid{CBM-N}14 I{$ea}lda #4: sta sid{CBM-N}15 {$f4}lda #9{CBM-D}16{CBM-N}10: sta sid{CBM-N}19 ;a{CBM-Z}d {CBM-Z}{$fe}lda #11{CBM-D}16{CBM-N}8: sta sid{CBM-N}20 ;s{CBM-Z}r Nlda #128: sta sid{CBM-N}18 ;ungate T; Z; {$f3}&lda #0: sta velocity 0 L#V* 11530 ~#* all the rest - parse to find addressing mode +$* J(mn$,5,1){CBM-W}{CBM-E}"#" {CBM-M} 11000: immediate 4$*mo{CBM-R}1 b$*" "; n${CBM-POUND}* 11600 F${CBM-R}* m${CBM-R}"**" {CBM-M} 11530 X${CBM-C}*m${CBM-R}J(mn$,7,2) $F* 11570 $P* $Z* o{CBM-N}1,m ${$e4}*o{CBM-R}o{CBM-N}2 {CBM-D}${$ee}* 11530 F${$f8}* C(mn$){CBM-W}{CBM-E}3 {CBM-M}ta velocity {CBM-R}lda velocity{CBM-N}1 &{CBM-C}adc gravity{CBM-N}1 9Fsta velocity{CBM-N}1 lPlda velocity{CBM-N}2 ^Zadc gravity{CBM-N}2 Q{$e4}sta velocity{CBM-N}2 W{$ee}; {$f8}lda keybd {CBM-K}cmp #4 ;check f1 key {CBM-S}beq exit Icmp #60 ;check space Y bne nospace {$e4}*lda #3 4sta vic{CBM-N}21 N!,) 7120 {SHIFT--}!6)by {CBM-R} m{CBM-Q}o{CBM-Q}2 "@) by{CBM-E}127 {CBM-A} by{CBM-W}{CBM-Q}128 {CBM-M} "*error* too far": 11530 ("j) by{CBM-W}0 {CBM-M} by{CBM-R}256{CBM-N}by 3"t) 7000 ="^) by$ j"H) o{CBM-N}1,by t"R)o{CBM-R}o{CBM-N}2 {$60}"{$7c}) 11530 L") jumps ") o${CBM-W}{CBM-E}"jsr" {CBM-M} 10700 ") o,32 {CBM-K}"{CBM-@})" 20 "; {CBM-Z}"{CBM-S})a{CBM-R}8:b{CBM-R}6 {CBM-O}"{CBM-U}) 11650 E"B) 11hrust{CBM-N}1 Jsta velocity{CBM-N}1 Tlda velocity{CBM-N}2 0{$de}sbc thrust{CBM-N}2 c{$e8}sta velocity{CBM-N}2 i{$f2}; x{$fc}jmp spcde Gnospace {CBM-R}{CBM-D} Rlda #1 sta vic{CBM-N}21 ;turn off flame $lda #128 {CBM-C}.sta sound ;turn off sound {$e1}8;waste time {CBM-@} equalize loop time b;whether s rocky{CBM-N}2 {$fc}{$e2}; {$ec};delay (loop 100 times) % {$f6}ldy #100 g td dey: nop: nop: nop: bne td t jmp loop z ; G exit rts N (. sta vic{CBM-N}21 ;turn off flame $lda #128 {CBM-C}.sta sound ;turn off sound {$e1}8;waste time {CBM-@} equalize loop time b;whether s0 the transactor volume 5 issue 02 page 71 rD * data loader for "ROCKET" * xN : XX cs{CBM-R}0 : * checksum * os{CBM-R}49152: * object start * : {CBM-W} b: b{CBM-W}0 {CBM-M} 180 {CBM-B} cs{CBM-R}cs{CBM-N}b Y{CBM-N} os,b: os{CBM-R}os{CBM-N}1: 150 {CBM-*}{CBM-H} : {CBM-V} cs{CBM-W}{CBM-E}31815 {CBM-M} "***** chec H(fi$,16) x dv{CBM-R}8 {CBM-M} fi${CBM-R}"0:"{CBM-N}fi${CBM-N}",s,"{CBM-N}s$ B 0L disk status fV fl{CBM-R}0 {CBM-M} 4,8,15 s4,b$,b$ K"disk status: " b$ Z fl{CBM-R}0 {CBM-M} 3 {CBM-POUND} 4 {CBM-R} {CBM-C} go {CBM-H}"run ml program" F"address";m$ Q{CBM-+} 7120 {$e8}{CBM-A}"are you sure";a$ {$fb}$ 9630 t$ found value and position of op code ^$f1{CBM-R}0 5H$mn{CBM-R}c{CBM-Q}20:pp{CBM-R}po: c{CBM-W}22 {CBM-M} mn{CBM-R}1:pp{CBM-R}c uR$mn${CBM-R}J(mn$(mn),(pp{CBM-Q}1){CBM-D}3{CBM-N}1,3) G{$7c}$ c{CBM-E}21 {CBM-M} 9490 $ po{CBM-R}1 {CBM-M} mn${CBM-R}mn${CBM-N}" #$"{CBM-N}lo$ {CBM-@}$ po{CBM-R}2 {CBM-M} mn${CBM-R}mn${CBM-N}" $"{CBM-N}lo$ G$ po{CBM-R}3 {CBM-M} mn${CBM-R}mn${CBM-N}" $"{CBM-N}lo${CBM-N}",x" {$ea}{CBM-@}$ po{CBM-R}4 {CBM-M}{$fa} 4460 " , load 6"load" #@s${CBM-R}"r" .j 4380 >t3,dv,2,fi$ i^ 4460 tH3,f,t BR i{CBM-R}f {CBM-@} t K{$7c}3,a U i,a {$7d} i fl{CBM-R}1 {CBM-@} 4460 {CBM-S} {CBM-G}{CBM-U} from-to {CBM-H}B"from";m$ {CBM-B}L 7120 GVf{CBM-R}m R "",, {CBM-*}{$ea}"to";m$ {$ea}{$f4} 7120 {$f2}{$fe} {$ea}p# t{CBM-W}{CBM-R}f {CBM-M} t{CBM-R}f z# f{CBM-W}0 {CBM-A} t{CBM-W}0 {CBM-A} f{CBM-E}65535 {CBM-A} t{CBM-E}65535 {CBM-M} 1260 #D# m{CBM-R}f {CBM-@} t +N#n{CBM-R}m gX# 7030: convert to hex v# pr{CBM-R}1 {CBM-@} p G#pr, by$":"; P# pr Z #t${CBM-R}"" {CBM-N}#by{CBM-R}B(m{CBM-N}2):7000:hi${CBM-R}by$ {CBM-R}{CBM-H}#by{CBM-R}B(m{CBM-N}1):7000:lo${CBM-R}by$ I{CBM-V}#addr${CBM-R}" $"{CBM-N}hi${CBM-N}lo$ {SHIFT-+}H#by{CBM-R}B(m):7& op$(20){CBM-R}"**86**968e**********" "0 op$(21){CBM-R}"**8494**8c**********" 0: implied d mn$(2){CBM-R}"brkclccldcliclvdexdeyinxinynopphaplaphpplprtirtssecsedseitaxtxatay" n mn$(2){CBM-R}mn$(2){CBM-N}"tyatsxtxs" {CBM-*}x op$(22){CBM-R}"0018d858b8ca88e8c8ea48680828406038f878aa8aa898ba {$f5}{$f4}$ po{CBM-W}5 {CBM-M} t${CBM-R}by${CBM-N}" "{CBM-N}lo${CBM-N}" " {$fe}$ po{CBM-R}10 {CBM-M} t${CBM-R}by${CBM-N}" " % 9630 ;% c{CBM-W}{CBM-E}24 {CBM-M} 9550 : jumps e%m{CBM-R}m{CBM-N}2 D&%t${CBM-R}by${CBM-N}" "{CBM-N}lo${CBM-N}" "{CBM-N}hi${CBM-N}" " 0% po{CBM-R}2{CBM-M} mn${CBM-R}mn${CBM-N}" ("{CBM-N}addr${CBM-N}")" {SHIFT-POUND}:% po{CBM-R}1 {CBM-A} po{CBM-R}3 {CBM-M} mn${CBM-R}mn${CBM-N}addr$ {CBM-H}d% 9630 {$e4}n% c{CBM-R}22 {CBM-M} t${CBM-R}by${CBM-N}" 9c5d5**cdddd9c1d1**" op$(6){CBM-R}"e0e4****ec**********" :{CBM-@}op$(7){CBM-R}"c0c4****cc**********" \{CBM-S}op$(8){CBM-R}"**c6d6**cede********" {$7e}{CBM-U}op$(9){CBM-R}"494555**4d5d594151**" {CBM-K}Bop$(10){CBM-R}"**e6f6**eefe********" DLop$(11){CBM-R}"a9a5b5**adbdb9a1b1**" {$e7}Vop$(12){CBM-R}"a2a6**b6ae**be{CBM-K} a$: a${CBM-R}cr$ {CBM-M} 9690: look for return key P% m Z% ' assembler ('"assemble" f$'"quit by entering 'end'" u.'"from";m$ {$60}8' 7120 Rb'o{CBM-R}m : origin l' m$" R";: shift r v'mn${CBM-R}"" {CBM-H}{$60}'a${CBM-R}"":{CBM-K} a$: get the code JJ' a${CBM-R}"" {CBM-M} 10080 {CBM-*} {$f8}{$60}"number";n$ J H(n$,1){CBM-R}"$" {CBM-A} H(n$,1){CBM-R}"h" {CBM-M} 7580 +Tn{CBM-R}E(n$) 6{$7e} 7030 i "",,"$" by$ t 7610 Cm${CBM-R}J(n$,2) N{CBM-+} 7120 {$7b}{CBM-A} "",,m {SHIFT-@} {CBM-M}@ data for assembler/disassembler {$eb}j imm/zer/zer-x/zer-y/abs/abs-x/ abs-y/ind x/innow parse it {$f9}{$e2}' strip spaces from either end #{$ec}' H(mn$,1){CBM-R}" " {CBM-M} mn${CBM-R}J(mn$,2): 10220 t{$f6}' I(mn$,1){CBM-R}" " {CBM-M} mn${CBM-R}H(mn$,C(mn$){CBM-Q}1): 10220 J ( mn${CBM-R}"end" {CBM-M} : (o${CBM-R}H(mn$,3): mnemonic op code (fl{CBM-R}0 {CBM-@}( i{CBM-R}1 {CBM-@} 4 {CBM-H}((l{CBM-R}C(mn$(i)) F2( j{CBM-R}1 {CBM-@} l {SHIFT-POUND} 3 {$e8}{SHIFT-@} a${CBM-R}"y" {CBM-M} m D"done" N P printer -Z p{CBM-R}1 {CBM-M} 6050 5p{CBM-R}1 j "printer off" u 6070 ]{CBM-I}p{CBM-R}2 Q{CBM-D} "printer on" W{CBM-L} x 2 digit dec to hex ABby${CBM-R}J(h$,by{CBM-Z}16{CBM-N}1,1){CBM-N}J(h$,by{CBM-Q}{CBM-J}(by{CBM-Z}16){CBM-D}16{CBM-N}1,1) GL V 4 digit dec to hex {$eb}by$ mn${CBM-R}mn${CBM-N}" $"{CBM-N}lo${CBM-N}",y" {CBM-S}$ po{CBM-R}5 {CBM-M} mn${CBM-R}mn${CBM-N}addr$ %{CBM-U}$ po{CBM-R}6 {CBM-M} mn${CBM-R}mn${CBM-N}addr${CBM-N}",x" fB$ po{CBM-R}7 {CBM-M} mn${CBM-R}mn${CBM-N}addr${CBM-N} ",y" LL$ po{CBM-R}8 {CBM-M} mn${CBM-R}mn${CBM-N}" ("{CBM-N}addr${CBM-N}",x)" V$ po{CBM-R}9 {CBM-M} mn${CBM-R}mn${CBM-N}" ("{CBM-N}addr${CBM-N}",y)" {CBM-W} $m{CBM-R}m{CBM-N}1{CBM-Q}1{CBM-D}(m{CBM-W}5){CBM-Q}2{CBM-D}(m{CBM-E}4 {CBM-P} m{CBM-W}10) R{$ea}$t${CBM-R}by${CBM-N}" "{CBM-N}lo${CBM-N}" "{CBM-N}hi${CBM-N}" " t{CBM-R}m 6 f{CBM-W}0 {CBM-A} t{CBM-W}0 {CBM-A} f{CBM-E}65535 {CBM-A} t{CBM-E}65535 {CBM-M} "values out of range":f{CBM-R}{CBM-Q}1 < u file name & device X &dv${CBM-R}"":"tape or disk";dv$ {CBM-@} 0fi${CBM-R}"":dv{CBM-R}1{CBM-Q}7{CBM-D}(dv${CBM-R}"d"): dv${CBM-R}"" {CBM-M} 4420 {CBM-O} :"file name";fi$ U d fi${CBM-R}"" {CBM-M} "aborted": {$f5} n C(fi$){CBM-E}16 {CBM-M} fi${CBM-R}000 {$ea}R# i{CBM-R}1 {CBM-@} 24 {CBM--}# j{CBM-R}1 {CBM-@} C(op$(i)) {SHIFT-POUND} 2 ${$e6}# by${CBM-W}{CBM-E}J(op$(i),j,2) {CBM-M} 9250 :{$f0}#c{CBM-R}i : which code c{$fa}#f1{CBM-R}1 ]$po{CBM-R}(j{CBM-N}1){CBM-Z}2: position $i{CBM-R}24 : exit the for-next nicely $j{CBM-R}C(op$(i)) "$ j,i {CBM-P},$ f1{CBM-W}{CBM-E}0 {CBM-M} 9300 {CBM-X}6$mn${CBM-R}"???" R@$t${CBM-R}by${CBM-N}" " {SHIFT--}j9a" {$ee}B relative L mn$(3){CBM-R}"bccbcsbeqbnebmibplbvsbvc" 3V op$(23){CBM-R}"90b0f0d030107050" ? jumps v mn$(4){CBM-R}"jmpjmpjsr" K op$(24){CBM-R}"4c6c20" Q (# disassembler 2#"disassemble memory" N<#"hold shift to pause: return to stop" Yf# 4280 " : 9630: implied {$fb}x% jumps - relative B%t${CBM-R}by${CBM-N}" "{CBM-N}lo${CBM-N}" " #G%by{CBM-R}B(m{CBM-N}1) <L% by{CBM-E}128 {CBM-M} by{CBM-R}by{CBM-Q}256 iV%n{CBM-R}m{CBM-N}by{CBM-N}2 t% 7030 I%mn${CBM-R}mn${CBM-N}" $"{CBM-N}by$ S%m{CBM-R}m{CBM-N}1 % pr{CBM-R}1 {CBM-@} p {CBM-POUND}%pr,t$ " " mn$ {CBM-R}% pr I{CBM-C}% B(653) {CBM-M} 9660: look for shift key {$f9}F%******" op$(13){CBM-R}"a0a4b4**acbc********" -{$ea}op$(14){CBM-R}"**4656**4e5e******4a" p{$f4}op$(15){CBM-R}"090515**0d1d190111**" S{$fe}op$(16){CBM-R}"**2636**2e3e******2a" op$(17){CBM-R}"**6676**6e7e******6a" {CBM-O} op$(18){CBM-R}"e9e5f5**edfdf9e1f1**" {CBM--} op$(19){CBM-R}"**8595**8d9d998191**" ~T' a${CBM-R}cr$ {CBM-M} 10190 {$eb}{$7e}'a{CBM-R}F(a$) &' mn${CBM-W}{CBM-E}"" {CBM-P} a{CBM-R}20 {CBM-M} mn${CBM-R}H(mn$,C(mn$){CBM-Q}1):a$;:b{CBM-R}a:10080 b' a{CBM-W}32 {CBM-A} a{CBM-E}91 {CBM-M} 10080 W' a{CBM-R}32 {CBM-P} b{CBM-R}32 {CBM-M} 10080: disallow double spaces {CBM-+}'mn${CBM-R}mn${CBM-N}a$ {CBM-A}' a$"R"; {SHIFT-@}'b{CBM-R}a {CBM-POUND}D' 10080 {CBM-R}N'" "; VX' - got the code - d y/acc t mn$(4),op$(24) l^mn$(1){CBM-R}"adcandaslbitcmpcpxcpydeceorincldaldxldylsrorarolrorsbcstastxsty NHop$(1){CBM-R}"696575**6d7d796171**" Rop$(2){CBM-R}"292535**2d3d392131**" {CBM-R}{$7c}op$(3){CBM-R}"**0616**0e1e******0a" Top$(4){CBM-R}"**242c**************" {$f6}op$(5){CBM-R}"c<( o${CBM-W}{CBM-E}J(mn$(i),j,3) {CBM-M} 10350 {$fb}f(fl{CBM-R}1 : found p(po{CBM-R}(j{CBM-N}2){CBM-Z}3: position 8 z(s{CBM-R}i : which mnemonic string w D(j{CBM-R}l{CBM-N}1 : exit loops nicely {$60} N(j,i T X( fl{CBM-W}{CBM-E}0 {CBM-M} 10390 ("*error*unknown mnemonic" (10060 {CBM-R} ( s{CBM-R}1 {CBM-M} 10880 F ( s{CBM-R}3 {CBM-M} 10480{CBM-R}"" {$f8}n{CBM-R}n{CBM-Z}4096 i{CBM-R}1 {CBM-@} 4 n%{CBM-R}n .{CBM-POUND}by${CBM-R}by${CBM-N}G(n%{CBM-N}55{CBM-N}7{CBM-D}(n%{CBM-W}10)) >{CBM-R}n{CBM-R}(n{CBM-Q}n%){CBM-D}16 f{CBM-C} i lF ]P hex to dec SZm${CBM-R}I("0000"{CBM-N}m$,4) {$7b}{$e4}m{CBM-R}0 {$ee} i{CBM-R}1 {CBM-@} 4 {$f8}m1{CBM-R}F(J(m$,i,1)) Bm{CBM-R}m{CBM-N}(m1{CBM-Q}48{CBM-N}7{CBM-D}((m1{CBM-E}64))){CBM-D}16{CBM-S}(4{CBM-Q}i) J i P {$e1}l calculator {$e7}v 0 the transactor volume 5 issue 02 page 54 @D merge c64 \N 56, 125 : 55, 0 : XX j{CBM-R}32000 {CBM-@} 32467 : x j, x : ch{CBM-R}ch{CBM-N}x : {CBM-C} ch {CBM-W}{CBM-E} 49379 {CBM-M} "checksum error" : {$e7} "merge basic programs - commodore 64 "load the first E 32, 78, 65, 77, 69, 63, 32 8Z 0, 13, 13, 77, 69, 82, 71, 69 E{$e4} 32, 79, 75, 0, 13, 13, 77, 69 {$ee} 82, 71, 69, 32, 65, 66, 79, 82 {CBM-Q}{$f8} 84, 69, 68, 0 , 69, 32, 45, 32, 56, 51 {$fd} 48, 53, 50, 50, 1 0 the transactor volume 5 issue 02 page 61 \ this program includes all three parts D basmon.64 * copyright 1984 * r.drake*free to copy-not to sell {SHIFT-@}N h${CBM-R}"0123456789abcdef" QX q${CBM-R}G(34):cr${CBM-R}G(13) {CBM--}{$7d} 8000 {$e6} 1,3 {$f0} 2,4 p{CBM-R}1 : pr 2 B 208, 245, 96, 13, 13, 18, 71, 65 i L 80, 32, 80, 82, 79, 71, 82, 65 V V 77, 32, 77, 69, 82, 71, 69, 32 {CBM-T} 45, 32, 71, 65, 32, 80, 69, 65 P 82, 67, 69, 32, 45, 32, 56, 51 {$fd} 48, 53, 50, 50, 1 , 234 the transactor volume 5 issue 02 page 23 c{$e8} un-cursor 64 [{$f2} j{CBM-R}828 {CBM-@} 888 : x T{$fc} j, x : ch{CBM-R}ch{CBM-N}x : ch {CBM-W}{CBM-E} 6949 {CBM-M} "checksum error" : {CBM-POUND} 828 U 169, 71, 141, 20, 3, 169, 3, 141 $ 21, 3, 96, 165, 207, 201, 1, 165, 24, 165 -{$f4} 45, 133, 90, 101, 11, 133, 88, 164 z{$fe} 46, 132, 91, 144, 1, 200, 132, 89 32, 184, 163, 165, 20, 164, 21, 141 {CBM-H} 254, 1, 140, 255, 1, 165, 49, 164 {$e1} 50, 133, 45, 132, 46, 164, 11, 136 & 185, 252 2, 240, 3, 200, 208, 245 > 200, 152, 24, 105, 4, 133, 11, 32 K 19, 166, 144, 68, 160, 1, 177, 95 133, 35, 165, 45, 133, 34, 165, 96 E{CBM-@} 133, 37, 165, 95, 136, 241, 95, 24 {$f2}{CBM-S} 101, 45, 133, 45, 133, 36, 165, 46 {CBM-M} 160 a${CBM-R}J(r$,r,1) {CBM-M} 300 )r{CBM-R}r{CBM-Q}1 ; r{CBM-R}0 {CBM-M} 230 e" 260 v, r{CBM-W}{CBM-E}1 {CBM-M} 350 ^6 1 F@ 2 Rj"end" Xt {CBM-U}^ r 10,1000,2000,3000,4000,4140,5000,6000,7500,9000,10000 AHfl{CBM-R}0 KR 230 X{$e8} memory {$ef}{$f2}"display memory" {$fc}"hold 3, 232, 134, 183, 169, 13, 32, 210 o 255, 169, 13, 133, 184, 133, 185, 169 {$7c}" 8, 133, 186, 169, 3, 133, 188, 169 {SHIFT-POUND}, 60, 133, 187, 32, 192, 255, 162, 13 V6 32, 198, 255, 32, 57, 126, 32, 57 @ 126, 32, 228, 255, 208, 2 y{CBM-R}13 {CBM-A} by{CBM-R}141 {CBM-A} by{CBM-R}20 {CBM-A} by{CBM-R}34 {CBM-M} by{CBM-R}32 -t${CBM-R}t${CBM-N}G(by) 5 s g{CBM-+}pr, q$ t$ q$ p{CBM-A} pr {$7b}{SHIFT-@} B(653) {CBM-M} 1210 : look for shift key {CBM-D}D{CBM-K} a$: a${CBM-W}{CBM-E}cr$ {CBM-M} 1250: look for return key {CBM-H}Nm{CBM-R}t {CBM-B}X 1250 G{$e2} m {$e9}{$e7} m{CBM-E}t {CBM-M} {CBM-K} a$: a${CBM-W}{CBM-E}"" {CBM-M} 1255 {$ef}{$ec} ~P program into ram <{CBM-N} "type sys 32000 and follow instructions {$60}{CBM-P} caution - save before running {CBM-H} 169, 0, 133, 183, 169, 147, 32, 210 {SHIFT-@}{CBM-V} 255, 162, 0, 32, 79, 126, 32, 228 {$e7}H 255, 201, 89, 240, 7, 201, 78, 208 R 245, 76, 134, i z c" (" "s$ * pr 4 + {CBM-U} poke memory ? B"poke memory" g Lj{CBM-R}0 m V \ "from";m$ G {$ea} 7120 O {$f4}f{CBM-R}m Y {$fe}t{CBM-R}f{CBM-N}7 {$7f} 1060 k{CBM-R}0 {CBM-@} 7 {CBM-N} & "byte";m$ H 0 {CBM-T}5{CBM-N}k{CBM-D}2{CBM-N}k );"" m$;" "; N : Y d 7120 {$e5} n f{CBM-N}k,m {$ed} x k B inter off ""; t{CBM-N} G(142) "bas-mon:memory disassemble go *printer" {CBM-H} "calculator poke registers exit s:l data" {CBM-V} i{CBM-R}1 {CBM-@} 40 {CBM-H}H "{SHIFT-*}"; : shift-* {CBM-C}R i Q{CBM--} r${CBM-R}"xmrpslg*cda" {SHIFT--}{$e6} r{CBM-R}C(r$) {$e6}{$f0} {CBM-K} a$ {$fa} a${CBM-R}"" {CBM-A} a${CBM-R}cr$ 46, 13, 13, 73 * 83, 32, 49, 83, 84, 32, 80, 82 w{CBM-POUND} 79, 71, 82, 65, 77, 32, 76, 79 {CBM-R} 65, 68, 69, 68, 63, 32, 40, 89 {CBM-E}{CBM-C} 47, 78, 41, 0, 13, 13, 50, 78 {$de}F 68, 32, 80, 82, 79, 71, 82, 65 P 77, "more y";a$ L a${CBM-W}{CBM-E}"y" {CBM-M} Vf{CBM-R}f{CBM-N}8 ("" 3 3070 > save k{CBM-N}"save" v{CBM-H}s${CBM-R}"w" S{CBM-V} 4280 : f{CBM-R}{CBM-Q}1 {CBM-M} 4130 H 4380: fi${CBM-R}"" {CBM-M} 4130 R3,dv,2,fi$ {CBM-Q}{CBM--} 4460 {CBM-B}{$e6}3,f;cr$;t;cr$; M{$f0} i{CBM-R}f {CBM-@} t {$de}{$fa}3,B(i) cr$; {$e6} i {$ef}fl{CBM-R}1 , 1, 145, 95, 136, 16, 248 ;0 32, 99, 166, 32, 51, 165, 76, 113 H: 125, 32, 228, 255, 166, 144, 240, 13 d 32, 204, 255, 162, 105, 32, 79, 126 Bn 104, 104, 76, 128, 125, 170, 96, 189 {$ef}x 91, 126, 240, 6, 32, 210, 255, 23 {CBM-U} 105, 255, 133, 46, 229, 96, 170, 56 l B 165, 95, 229, 45, 168, 176, 3, 232 Y L 198, 37, 24, 101, 34, 144, 3, 198 {CBM-+} V 35, 24, 177, 34, 145, 36, 200, 208 S 249, 230, 35, 230, 37, 202, 208, 242 {$ea} 32, 99, 166, 32, 51, shift to pause: return to stop" ) 4280 < t{CBM-W}{CBM-R}f {CBM-M} t{CBM-R}f{CBM-N}7 G f{CBM-W}0 {CBM-A} t{CBM-W}0 {CBM-A} f{CBM-E}65535 {CBM-A} t{CBM-E}65535 {CBM-M} 1260 Y$ m{CBM-R}f {CBM-@} t {SHIFT-POUND} 8 . pr{CBM-R}1 {CBM-@} p 8n{CBM-R}m b 7030 {CBM-G}vt${CBM-R}"" {CBM-J}{$60} s {CBM-R} 0 {CBM-@} 7 EJby{CBM-R}B(m {CBM-N} s) {$de}T 7000: 2 digit hex {$f0}{$7e}pr, by$ " "; b 4, 32, 228 0j 255, 208, 22, 162, 94, 32, 79, 126 ]t 169, 13, 32, 195, 255, 32, 204, 255 ^ 32, 89, 166, 76, 134, 227, 32, 57 {CBM-Y}H 126, 32, 57, 126, 133, 20, 32, 57 {$e4}R 126, 133, 21, 160, 0, 32, 57, 126 {$7c} 153, 0, registers Z"display registers" ({$e4} pr{CBM-R}1 {CBM-@} p 6{$ee} m{CBM-R}0 {CBM-@} 3 i{$f8}by {CBM-R} B(m {CBM-N}780) t 7000 Zpr,J("ac:xr:yr:sr:",m{CBM-D}3{CBM-N}1,3)by$, m !s${CBM-R}"" " z{CBM-R}1 {CBM-@} 8 {CBM-R}#b%{CBM-R}by{CBM-Z}2{CBM-S}(8{CBM-Q}z) G$by{CBM-R}by{CBM-Q}b%{CBM-D}2{CBM-S}(8{CBM-Q}z) W%s${CBM-R}s${CBM-N}D(b%) {SHIFT--}& {$fb}'"flags s v b d 227, 162, 73, 32, 79 a{CBM--} 126, 32, 207, 255, 201, 20, 240, 18 N{$e6} 201, 13, 240, 14, 166, 183, 224, 16 {$f0} 240, 231, 157, 60, 3, 232, 134, 183 H{$fa} 208, 231, 166, 183, 240, 219, 169, 44 {$f5} 157, 60, 3, 232, 169, 80, 157, 60 " 0 the transactor volume 5 issue 02 page 21 b{$e8} ram scan 80 z{$f2} j{CBM-R}634 {CBM-@} 724 : x R{$fc} j,x : ch{CBM-R}ch{CBM-N}x : ch{CBM-W}{CBM-E}11974 {CBM-M} "checksum error" : {CBM-G} 634 R 165, 151, 201, 255, 240, 43, 166, 152 ~$ 224, 0, 208, 10, 201, 17, 208, 10 the transactor volume 5 issue 02 page 22 b{$e8} ram scan 40 z{$f2} j{CBM-R}634 {CBM-@} 744 : x R{$fc} j,x : ch{CBM-R}ch{CBM-N}x : ch{CBM-W}{CBM-E} 14739 {CBM-M} "checksum error" : {CBM-I} O 169, 147, 32, 210, 255, 165, 151, 201 {$fc}$ 255, 240, 41, 166, 152, 208, 10, 201 ) 252, 169, 19 7J 32, 210, 255, 32, 23, 215, 160, 0 DT 174, 199, 2, 185, 0, 255, 153, 5 {$7e} 128, 200, 208, 247, 238, 199, 2, 238 {CBM-V} 202, 2, 173, 202, 2, 201, 132, 208 {$eb} 234, 142, 199, 2, 169, 128, 141, 202 2, 32 0 the transactor volume 5 issue 02 page 22 b{$e8} ram scan 64 z{$f2} j{CBM-R}828 {CBM-@} 916 : x S{$fc} j, x : ch{CBM-R}ch{CBM-N}x : ch {CBM-W}{CBM-E} 10348 {CBM-M} "checksum error" : {SHIFT-*} 53281, 493{CBM-Q}B(53281) : 828 {$ed} 165, 203, 201, 64, 240, 42, 174, 141 $ 2, 208, A({$60} 153, 0, 4, 200, 208, 247, 238, 115 uJ 3, 238, 118, 3, 173, 118, 3, 201 T 8, 208, 234, 142, 115, 3, 169, 4 {CBM-P}{$7e} 141, 118, 3, 32, 225, 255, 184, 80 {CBM-O} 167 {$ed} 165, 203, 201, 64, 240, 42, 174, 141 $ 2, 208, D crystal /N 8000/9000 series : sw=80 oX 4000 + c64 : sw=40 O vic 20 : sw=22 4.0 basic : ss=32768 {CBM-V} c64 : ss=1024 (default) {$ec} vic 20 : ss=7680 (default) {CBM-N} sw = screen >{$e6} s{CBM-R}B(ss{CBM-N}x{CBM-N}sw{CBM-D}y):s{CBM-R}91{CBM-M}dx{CBM-R}{CBM-Q}dx:ss{CBM-N}x{CBM-N}sw{CBM-D}y,86:210 6{$f0} 200 c64 : sw=40 O vic 20 : sw=22 4.0 basic : ss=32768 {CBM-V} c64 : ss=1024 (default) {$ec} vic 20 : ss=7680 (default) {CBM-N} sw = screen3, 32, 169, 192 7 24, 165, 253, 109, 6, 192, 133, 253 D{CBM-+} 165, 254, 105, 0, 133, 254, 201, 7 {CBM-A} 144, 230, 165, 253, 201, 192, 144, 224 {CBM-V}{SHIFT-@} 96, 169, 0, 133, 251, 169, 216, 133 {$eb}D 252, 173, 7, 192, 145, 251, 230, 251 N 208, 0 the transactor volume 5 issue 02 page 23 c{$e8} un-cursor 80 [{$f2} j{CBM-R}634 {CBM-@} 692 : x T{$fc} j, x : ch{CBM-R}ch{CBM-N}x : ch {CBM-W}{CBM-E} 7656 {CBM-M} "checksum error" : {CBM-POUND} 634 U 169, 131, 133, 144, 169, 2, 133, 145 $ 96, 165, 170, 201, 1, 240, 41,0 the transactor volume 5 issue 02 page 23 c{$e8} un-cursor 40 [{$f2} j{CBM-R}634 {CBM-@} 692 : x T{$fc} j, x : ch{CBM-R}ch{CBM-N}x : ch {CBM-W}{CBM-E} 7652 {CBM-M} "checksum error" : {CBM-POUND} 634 U 169, 131, 133, 144, 169, 2, 133, 145 $ 96, 165, 170, 201, 1, 240, 41,6 ,. 238, 178, 2, 76, 171, 2, 201, 17 y8 208, 16, 206, 178, 2, 76, 171, 2 b 201, 29, 208, 6, 238, 177, 2, 76 {CBM-W}l 171, 2, 201, 29, 208, 3, 206, 177 v 2, 160, 0, 174, 178, 2, 185, 0 {$60} 255, 153, 0, 128, 2. 17, 208, 16, 238, 199, 2, 76, 174 v8 2, 201, 17, 208, 16, 206, 199, 2 b 76, 174, 2, 201, 29, 208, 6, 238 {CBM-A}l 198, 2, 76, 174, 2, 201, 29, 208 {SHIFT--}v 3, 206, 198, 2, 173, 198, 2, 133 {$60} 251, 173, 199, 2, 133, , 225, 255, 76, 127, 2 , 2, 76, 174 v8 2, 201, 17, 208, 16, 206, 199, 2 b 76, 174, 2, 201, 29, 208, 6, 238 {CBM-A}l 198, 2, 76, 174, 2, 201, 29, 208 {SHIFT--}v 3, 206, 198, 2, 173, 198, 2, 133 {$60} 251, 173, 199, 2, 133, 10, 201, 7, 208, 16, 238 g. 115, 3, 184, 80, 27, 201, 7, 208 T8 16, 206, 115, 3, 184, 80, 17, 201 {CBM-K}b 2, 208, 6, 238, 114, 3, 184, 80 Nl 7, 201, 2, 208, 3, 206, 114, 3 {$fb}v 160, 0, 174, 115, 3, 185, 0, 255 0 the transactor volume 5 issue 02 page 23 c{$e8} un-cursor 64 [{$f2} j{CBM-R}828 {CBM-@} 888 : x T{$fc} j, x : ch{CBM-R}ch{CBM-N}x : ch {CBM-W}{CBM-E} 6949 {CBM-M} "checksum error" : {CBM-POUND} 828 U 169, 71, 141, 20, 3, 169, 3, 141 $ 21, 3, 96, 165, 207, 201, 1, width : ss = screen start y{CBM-H} "";: ss {CBM-R} 32768 : sw {CBM-R} 80 : * place your variables here O{CBM-V} x{CBM-R}1:y{CBM-R}1:dx{CBM-R}1:dy{CBM-R}1 H ss {CBM-N} x {CBM-N} sw{CBM-D}y,81 : ss {CBM-N} x {CBM-N} sw{CBM-D}y,91 JR x {CBM-R} x {CBM-N} dx : x {CBM-R} 0 {CBM-A} x {CBM-R} sw{CBM-Q}1 {CBM-M} dx {CBM-R} {CBM-Q}dx {$f9}{CBM--} y {CBM-R} y {CBM-N} dy : y {CBM-R} 0 {CBM-A} y {CBM-R} 24 {CBM-M} dy {CBM-R} {CBM-Q}dy , 240 /. 41, 169, 4, 133, 88, 169, 0, 133 \8 87, 168, 177, 87, 73, 128, 145, 87 b 200, 208, 247, 230, 88, 165, 88, 201 {CBM-L}l 8, 208, 239, 238, 74, 3, 173, 74 {$e3}v 3, 201, 2, 208, 5, 169, 0, 141 {$60} 74, 3, 76, 49 {CBM-B} 2, 230, 252, 165, 252, 201, 219 eX 144, 239, 165, 251, 201, 232, 144, 233 R{$e2} 173, 33, 208, 205, 7, 192, 208, 0 {$ec} 96, 174, 8, 192, 234, 234, 234, 202 {CBM-W}{$f6} 208, 250, 96 , 253, 169, 0, 105, 4, 133, 254 173, 5, 192, 145, 25 {$fd} 169 /. 128, 133, 88, 169, 0, 133, 87, 168 \8 177, 87, 73, 128, 145, 87, 200, 208 b 247, 230, 88, 165, 88, 201, 136, 208 {CBM-L}l 239, 238, 134, 2, 173, 134, 2, 201 {$e3}v 2, 208, 5, 169, 0, 141, 134, 2 {$f7}{$60} 76, 85, 228 {$fd} 169 /. 128, 133, 88, 169, 0, 133, 87, 168 \8 177, 87, 73, 128, 145, 87, 200, 208 b 247, 230, 88, 165, 88, 201, 132, 208 {CBM-L}l 239, 238, 134, 2, 173, 134, 2, 201 {$e3}v 2, 208, 5, 169, 0, 141, 134, 2 {$f7}{$60} 76, 85, 228 {CBM-A}00, 208, 247, 238 :J 178, 2, 238, 181, 2, 173, 181, 2 GT 201, 136, 208, 234, 142, 178, 2, 169 {$7e} 128, 141, 181, 2, 165, 155, 201, 239 {CBM-POUND} 208, 166, 96 , 151, 201, 255, 240, 43, 166, 152 ~$ 224, 0, 208, 10, 201, 17, 208, 1 0 the transactor volume 5 issue 01 page 74 v G(147) : "cartridge simulator" T : "by:daniel bingamon i{CBM-R}32768 {CBM-@} 32837 {CBM-I} a : b{CBM-R}a{CBM-N}b : i,a {CBM-POUND}( K2 b{CBM-W}{CBM-E}7693 {CBM-M} "data error" : {$f3}D 9, 128, 47, 128, 195, 194, 205 N 56,0 the transactor volume 5 issue 01 page 77 x 27,8,100,0,83,36,178,34,144,5,-25 28,159,156,30,31,158,129,149,150,151,-42 {CBM-R} 152,153,154,155,34,0,141,8,110,0,-29 {SHIFT--} 153,32,200,40,83,36,44,187,40,49,-53 41,172,49,54,170,49,41,59,# 89,79,85,32,32,67,79,85,76,68,-15 l 78,39,84,32,141,32,32,32,32,32,-44 R 32,32,84,89,80,69,32,73,78,0,-2 151,8,120,0,137,32,49,49,48,0,-18 {CBM-POUND} 0,0,-49 {CBM-E}H 17 {SHIFT-@},m{CBM-R}63 {SHIFT-+}6 x:l{CBM-R}B(m):h{CBM-R}l{CBM-R}200: h {CBM-M} l{CBM-R}x {$fa}@v{CBM-R}r{CBM-W}{CBM-E}l:s{CBM-R}(t{CBM-W}{CBM-E}63 {CBM-P} r{CBM-E}0 {CBM-P} v) ]45,B(253) : 46,B(254) : q{CBM-S} changes were made to 410 to accurately set top of basic ,84,89,80,69,32,73,78,0,-2 151,8,120,0,137,32,49,49,48,0,-18 {CBM-POUND} 0,0,-49 {CBM-E}H 17 {SHIFT-@},m{CBM-R}63 {SHIFT-+}6 x:l{CBM-R}B(m):h{CBM-R}l{CBM-R}200: h {CBM-M} l{CBM-R}x {$fa}@v{CBM-R}r{CBM-W}{CBM-E}l:s{CBM-R}(t{CBM-W}{CBM-E}63 {CBM-P} r{CBM-E}0 {CBM-P} v)0 the transactor volume 5 issue 01 page 77 t{$ee}z${CBM-R}G(0):d${CBM-R}G(131){CBM-N}" ":d{CBM-R}10:ll{CBM-R}1 O 1,8,3,"0:inprog,p,r" {SHIFT-POUND} add this line for collapse type prog: get#1,a$,a$ E 2,8,4,"0:outprog,p,w" W2,G(1);G(4); {$ee} l{CBM-R}1 {CBM-@} 1e4: 2170 {$fc}* k{CBM-R}1 {CBM-@} d %! --- volume 5 issue 02 --- en generate 64 # "'BITS' programs start here d "note: this file is only a C "directory placemarker - ( "scratch it if you wish. three, 9+<) 0 four, ]55+ $ : five, ]h)o 5 d six, _iyc_ h n seven, _@o@m y x eight, e)* J B nine, mh)m Y L ten, *am V eleven, jxeo@m {CBM-T} twelve, *-axoc {CBM-C} thirteen, "9:+*,m" U fourteen, "]5+*,m" {$ed} fifteen, "]i]*,m" {CBM-POUND}0 the transactor volume 5 issue 02 page 18 ? c64 only {$7c}{CBM-V} d{CBM-R}0 : x{CBM-R}211 : v{CBM-R}15 : a{CBM-R}53280 : a, 1 : a{CBM-N}1, 3 : ""; {CBM-M}H a$ : v{CBM-R}v{CBM-Q}1 : a, v : a${CBM-R}"end" {CBM-M} IR ""; : t{CBM-R}1 {CBM-@} 10 : a$ : {$ed}{CBM--} t{CBM-R}0 {CBM-@} 14 : x{CBM-N}3, d : 59749 {$e6} : : dl 3, " have fun ...... paul blair" +6 "end" c64 only {$7c}{CBM-V} d{CBM-R}0 : x{CBM-R}211 : v{CBM-R}15 : a{CBM-R}53280 : a, 1 : a{CBM-N}1, 3 : ""; {CBM-M}H a$ : v{CBM-R}v{CBM-Q}1 : a, v : a${CBM-R}"end" {CBM-M} IR ""; : t{CBM-R}1 {CBM-@} 10 : a$ : {$ed}{CBM--} t{CBM-R}0 {CBM-@} 14 : x{CBM-N}3, d : 59749 {$e6} : : dl 48, 32, 129, 255, 32, 132 cX 255, 32, 138, 255, 32, 204, 255 K 169, 18, 32, 56, 128, 169, 46 141, 24, 3, 169, 128, 141, 25 {CBM-F} 3, 108, 0, 160, 72, 152, 72 {$e3} 138, 72, 32, 204, 255, 32, 56 {CBM-N} 128, 104, 170, 10434,147,-26 0 17,17,32,32,32,32,84,72,73,83,-37 y 32,73,83,32,32,141,32,32,65,32,-44 68,69,77,79,78,83,84,82,65,84,-36 {CBM-N} 73,79,78,32,141,32,32,32,32,32,-37 R 79,70,32,65,32,76,73,78,69,32,-23 {$fb} 141,32,32,32,32,84,72,65,84,32,-18 j v {CBM-M} t{CBM-R}l: {CBM-POUND} s {CBM-M} r{CBM-R}r{CBM-N}1:s{CBM-R}r{CBM-W}{CBM-E}l .tt{CBM-R}(t{CBM-D}3{CBM-N}x){CBM-P}63 n^ s {CBM-M} "error line";r:e{CBM-R}{CBM-Q}1 BHr{CBM-R}l: {CBM-POUND} h 310 NR e {CBM-M} {$7c}"here we go":x{CBM-R}{CBM-Q}1::b{CBM-R}2049: a{CBM-R}0 {CBM-@} 9999 {CBM-H} x{CBM-E}{CBM-R}0 {CBM-M} b,x:b{CBM-R}b{CBM-N}1 Q x:l{CBM-R}B(m): l{CBM-W}200 {CBM-M} a {$f1} 253, b {CBM-P} 255: 254, b{CBM-Z}256 {CBM-@} X0 the transactor volume 5 issue 02 page 18 P c{CBM-R}32:n{CBM-R}1{CBM-@}41:4:c{CBM-R}192{CBM-Q}c:a{CBM-R}0{CBM-@}n:b{CBM-R}1024{CBM-N}a{CBM-@}2024{SHIFT-POUND}n:b,c:b,a,n (ti{CBM-Q}t0){CBM-Z}60;"seconds to run" T x{CBM-R}{CBM-J}(15{CBM-D}{CBM-F}(1)):y{CBM-R}{CBM-J}(15{CBM-D}{CBM-F}(1)):53280,x:53281,y:i{CBM-R}1{CBM-@}500:: 4 : x{CBM-N}3, d : 59749 {$e6} : : dl {SHIFT--}4{CBM-K}#1,i$:v{CBM-R}F(i${CBM-N}z$):ef{CBM-R}st{CBM-W}{CBM-E}0 1>2,J(D(v),2);","; sht{CBM-R}(3{CBM-D}t{CBM-N}v) {CBM-P} 63 : {CBM-POUND} ef {CBM-M} k Mr2,{CBM-POUND}((3{CBM-D}t) {CBM-P} 63 );z$; Y\ll{CBM-R}ll{CBM-N}1 F {CBM-POUND} ef {CBM-M} l {CBM-H}P 2170 : 2, t;z$;z$;z$;: 2: 1 : WZt{CBM-R}ll : 2, "00";G(ll);z$;d$;: 0 the transactor volume 5 issue 02 page 18 o{$e8} machine language ftoutsm K{$f2} j{CBM-R}49152 {CBM-@} 49330 : x {$fc} j,x : ch{CBM-R}ch{CBM-N}x : {CBM-D} ch{CBM-W}{CBM-E}24671 {CBM-M} "checksum error" : A 49152 : 1040 {$ee} 76, 9, 192, 0, 0, 32, 0, 9 $ 50, 160, 0, 32, 129, 192, 169, 32 h. 141, 5, 192, 169, 1, 141, 6, 192 U8 32, 52, 192, 32, 129, 192, 165, 197 {CBM-I}b 201, 63, 240, 10, 238, 6, 192, 173 Ol 6, 192, 201, 42, 144, 234, 169, 0 {$fc}v 141, 33, 208, 96, 173, 5, 192, 73 {SHIFT-@} sixteen, "_iyc_*,m" #{CBM-R} seventeen, "_@o@m*,m" ;{CBM-C} eighteen, "e)d,m" uF nineteen, "mh)m*,m" LP twenty, "*-am*," Z thirty, "9:+*)" {$e4} forty, ]5+*) {CBM-POUND}{$ee} fifty, ]i]*) time is, 83>*h@)l>kr>> R o, 444 {$e2} one, -21m {$f0} two, *( &{CBM-R}1 {CBM-@} 2000 : : d{CBM-R}d{CBM-N}1 : 200 j{$fa} " scroll the screen down with this pgm" Q " it's really very easy to use" {CBM-K} " you can include it in games and so on" J " list the pgm to see the set up" {$f9}" " see how you can select scroll start?" ){$60} 128, 141, 5, 192, 169, 0, 141, 3 vJ 192, 32, 82, 192, 238, 3, 192, 173 T 3, 192, 205, 6, 192, 240, 242, 144 {CBM-A}{$7e} 240, 96, 24, 173, 3, 192, 105, 0 {SHIFT--} 133, 253, 169, 0, 105, 4, 133, 254 173, 5, 192, 145, 25 , 168, 104, 64 3 {CBM-H} 169, 11, 141, 32, 208, 141, 33 [ {CBM-V} 208, 169, 0, 141, 134, 2, 96 H : "sys64738 will begin simulation" {CBM-I} a : b{CBM-R}a{CBM-N}b : i,a {CBM-POUND}( K2 b{CBM-W}{CBM-E}7693 {CBM-M} "data error" : {$f3}D 9, 128, 47, 128, 195, 194, 205 N 56, 0 the transactor volume 5 issue 01 page 67 v quarter square graphics plotter T vic 20 expanded version {$7f}2 9000 {SHIFT-POUND}D ********** functions ********** NN **** exponential curve **** {$de}X x1{CBM-R}0 : y1{CBM-R}1 {$ef} x2{CBM-R}0 {CBM-@} 159 y2{CBM-R}{CBM-X} (x2{CBM-Z}4 0 the transactor volume 5 issue 01 page 69 f pet/cbm version q2 9000 V{$f4} **** bouncing ball **** {$fe}fv{CBM-R}2 : uv{CBM-R}55 : y1{CBM-R}1 : g{CBM-R}{CBM-Q}32.2 : dc{CBM-R}.9 F try fv=15 : uv=45 : also fv=0.2 {$de} j{CBM-R}0 {CBM-@} (ln{CBM-D}2{CBM-Q}1){CBM-Z}fv {$e9}x{CBM-R}fv{CBM-D}j y {CBM-R} y1 {CBM-N} uv {CBM-D} t ********** setup ********** 32# ""G(142); p<# c(15), i(255), am(1,1) Xf# i{CBM-R}0 {CBM-@} 15 : c(i) : i(c(i)){CBM-R}i : {SHIFT-POUND}p# i{CBM-R}0{CBM-@}1 : j{CBM-R}0{CBM-@}1 : am(j,i){CBM-R}(j{CBM-N}1){CBM-D}4{CBM-S}i : j,i Zz#ln{CBM-R}80 : bs{CBM-R}32768{CBM-N}24{CBM-D}ln : dv{CBM-R}2 : am{CBM-R}1 : ir{CBM-R}.5 %D# 32, 123, 108, 98, 126, 0 the transactor volume 5 issue 01 page 69 b c64 version m2 9000 R{$f4} **** bouncing ball **** {$fe}fv{CBM-R}2 : uv{CBM-R}55 : y1{CBM-R}1 : g{CBM-R}{CBM-Q}32.2 : dc{CBM-R}.9 {CBM-H} try fv=15 : uv=45 L j{CBM-R}0 {CBM-@} (ln{CBM-D}2{CBM-Q}1){CBM-Z}fv Wx{CBM-R}fv{CBM-D}j {$fa}y {CBM-R} y1 {CBM-N} uv {CBM-D} t {CBM-N} .5{CBM-D}g {CBM-D} (t{CBM-S}2) & ****** setup ********** %2# "" b<# c(15), i(255), am(1,1) Jf# i{CBM-R}0 {CBM-@} 15 : c(i) : i(c(i)){CBM-R}i : p# i{CBM-R}0{CBM-@}1 : j{CBM-R}0{CBM-@}1 : am(j,i){CBM-R}(j{CBM-N}1){CBM-D}4{CBM-S}i : j,i Kz#ln{CBM-R}40 : bs{CBM-R}1024{CBM-N}24{CBM-D}ln : dv{CBM-R}2 : am{CBM-R}1 : ir{CBM-R}.5 {$de}_#cs{CBM-R}55296{CBM-N}24{CBM-D}ln )D# 32, 123, 108, 98, 1 0 the transactor volume 5 issue 01 page 71 oz c1${CBM-R}G(17):c2${CBM-R}G(147):sp{CBM-R}16 ZD c2$c1$" t a l k i n g c l o c k" {CBM-I}N c1$" (c) vikash verma,calgary" JS c1$c1$"this clock will sound off"; {$e2}X " the time of day" {$7d} c1$"once every minute" f# i{CBM-R}0 {CBM-@} 15 : c(i) : i(c(i)){CBM-R}i : op# i{CBM-R}0{CBM-@}1 : j{CBM-R}0{CBM-@}1 : am(j,i){CBM-R}(j{CBM-N}1){CBM-D}4{CBM-S}i : j,i {$7f}z#ln{CBM-R}22 : bs{CBM-R}7680{CBM-N}22{CBM-D}ln : dv{CBM-R}2 : am{CBM-R}1 : ir{CBM-R}.5 _#cs{CBM-R}37888{CBM-N}22{CBM-D}ln {SHIFT-*}D# 32, 123, 108, 98, 126, 97, 127, 252 {$ee}N# 124, 255, 225, 254, 226, 236, 251, 160 {$f4}X# (20),c$(5):d${CBM-R}">>":am${CBM-R}"f!)>ball":pm${CBM-R}"%<)>ball" 7{CBM-N} a$,e$ p{CBM-H} i{CBM-R}0{CBM-@}20:a$,b$(i):i H{CBM-V} i{CBM-R}2{CBM-@}5:a$,c$(i):i {CBM-R}H c1$c1$c1$c1$c1$c1$" to set clock enter time in the format :hhmmss" AR ti$:c2$; {$fa}{CBM--} t${CBM-R}ti$:cr$;H(t$,2)":"J(t$,3,2)":"J(t$,5):t${CBM-R}H(t$,4) i){CBM-D}50) {CBM-U} 3000 : y1{CBM-R}y2 : x1{CBM-R}x2 : %{$f4} o{CBM-U} ********** plot a line ********** UBdx{CBM-R}x2{CBM-Q}x1 : dy{CBM-R}y2{CBM-Q}y1 : x{CBM-R}x1 : y{CBM-R}y1 Ll{CBM-R}{SHIFT-@}(dx{CBM-D}dx{CBM-N}dy{CBM-D}dy) : l{CBM-R}0 {CBM-M} 3040 {CBM-P}Vxi{CBM-R}dx{CBM-Z}l : yi{CBM-R}dy{CBM-Z}l {$e6} 8000 : ({CBM-L}(x2{CBM-Q}x){CBM-W}{CBM-R}{CBM-L}(xi)) {CBM-P} ({CBM-L}(y2{CBM-Q}y){CBM-W}{CBM-R}{CBM-L}(yi)) {CBM-M} {$ea}x{CBM-R}x{CBM-N}xi : y{CBM-R}y{CBM-N} :mn{CBM-R}mn{CBM-Q}m1{CBM-D}10:a${CBM-R}c$(m1):410 ,ta${CBM-R}b$(mn):mn{CBM-E}0{CBM-M}410 <^a${CBM-R}mr$:410 eH220 tRhr{CBM-W}12{CBM-M}350 P{$7c}mr${CBM-R}am${CBM-M}mr${CBM-R}"li^mh@)*" mr${CBM-R}pm${CBM-M}mr${CBM-R}"m(m" 350 {CBM-Q}a${CBM-R}a${CBM-N}d$: a{CBM-R}1 {CBM-@} C(a$) F{CBM-@}x{CBM-R}F(J(a$,a,1)) : 440 R{CBM-S} a : {CBM-U} ro, x : send ascii of phone 2{CBM-D}80{CBM-Z}ln) % 3000 : y1{CBM-R}y2 : x1{CBM-R}x2 : jH **** sine wave **** YR n{CBM-R}6{CBM-D}80{CBM-Z}ln : c{CBM-R}3.1415926{CBM-Z}180 : x1{CBM-R}0 : y1{CBM-R}25 {CBM--} x2{CBM-R}0 {CBM-@} 159 {CBM-N}{$e6} y2{CBM-R}25 {CBM-N} 24 {CBM-D} {CBM-B}(x2 {CBM-D} n {CBM-D} c ) I{$f0} 3000 : y1{CBM-R}y2 : x1{CBM-R}x2 : {$ee}, **** decaying cosine wave **** &6n{CBM-R}8{CBM-D}80{CBM-Z}ln {CBM-N} .5{CBM-D}g {CBM-D} (t{CBM-S}2) /& y{CBM-W}y1 {CBM-M} y{CBM-R}y1 : t{CBM-R}0 : uv{CBM-R}uv{CBM-D}dc k0 8000 : plot a point v:t{CBM-R}t{CBM-N}.2 \d Bn @ ********** plot x, y ********** {CBM-B}jtx{CBM-R}{CBM-J}(x{CBM-N}ir):ty{CBM-R}{CBM-J}(y{CBM-N}ir) :sq{CBM-R}am(tx {CBM-P} am, ty {CBM-P} am) {$f0}tp{CBM-R}tx{CBM-Z}dv{CBM-Q}{CBM-J}(ty{CBM-Z}dv){CBM-D}ln : bs{CBM-N}p,c(i(B(p{CBM-N}bs)){CBM-A}sq) {$f6}^ (# f 97, 127, 252, 124, 255, 225, 254, 226, 236 6N# 251, 160 <X# a point v:t{CBM-R}t{CBM-N}.2 \d Bn @ ********** plot x, y ********** {CBM-B}jtx{CBM-R}{CBM-J}(x{CBM-N}ir):ty{CBM-R}{CBM-J}(y{CBM-N}ir) :sq{CBM-R}am(tx {CBM-P} am, ty {CBM-P} am) {$f0}tp{CBM-R}tx{CBM-Z}dv{CBM-Q}{CBM-J}(ty{CBM-Z}dv){CBM-D}ln : bs{CBM-N}p,c(i(B(p{CBM-N}bs)){CBM-A}sq) {$f6}^ (# y{CBM-W}y1 {CBM-M} y{CBM-R}y1 : t{CBM-R}0 : uv{CBM-R}uv{CBM-D}dc 90 8000 : plot a point d:t{CBM-R}t{CBM-N}.2 jd pn Z@ ********** plot x, y ********** {CBM-Z}jtx{CBM-R}{CBM-J}(x{CBM-N}ir):ty{CBM-R}{CBM-J}(y{CBM-N}ir) :sq{CBM-R}am(tx {CBM-P} am, ty {CBM-P} am) {$de}tp{CBM-R}tx{CBM-Z}dv{CBM-Q}{CBM-J}(ty{CBM-Z}dv){CBM-D}ln : bs{CBM-N}p,c(i(B(p{CBM-N}bs)){CBM-A}sq) {$eb}y cs{CBM-N}p,1 {$f1}^ (# **** j26, 97, 127, 252, 124, 255, 225, 254, 226, 236 :N# 251, 160 @X# d pn Z@ ********** plot x, y ********** {CBM-Z}jtx{CBM-R}{CBM-J}(x{CBM-N}ir):ty{CBM-R}{CBM-J}(y{CBM-N}ir) :sq{CBM-R}am(tx {CBM-P} am, ty {CBM-P} am) {$de}tp{CBM-R}tx{CBM-Z}dv{CBM-Q}{CBM-J}(ty{CBM-Z}dv){CBM-D}ln : bs{CBM-N}p,c(i(B(p{CBM-N}bs)){CBM-A}sq) {$eb}y cs{CBM-N}p,1 {$f1}^ (# **** :c1$c1$" or" 4 c1$"whenever any key is pressed" z cr${CBM-R}G(19):i{CBM-R}1{CBM-@}10:cr${CBM-R}cr${CBM-N}G(17): U i{CBM-R}1{CBM-@}sp:cr${CBM-R}cr${CBM-N}" ":i {CBM-U} ro{CBM-R}59457:pc{CBM-R}59468:dd{CBM-R}ro{CBM-N}2:fr{CBM-R}pc{CBM-N}1:dd,255: set ora for output {$f4} pc,B(pc){CBM-P}254: set pcr to detect -ve transition on ca1 , b$ : 3040 -@ ********** plot x, y ********** {$60}jtx{CBM-R}{CBM-J}(x{CBM-N}ir):ty{CBM-R}{CBM-J}(y{CBM-N}ir) :sq{CBM-R}am(tx {CBM-P} am, ty {CBM-P} am) tp{CBM-R}tx{CBM-Z}dv{CBM-Q}{CBM-J}(ty{CBM-Z}dv){CBM-D}ln : bs{CBM-N}p,c(i(B(p{CBM-N}bs)){CBM-A}sq) y cs{CBM-N}p, 2 {CBM-G}^ O(# ********** setup ********** Y2# "" {$f6}<# c(15), i(255), am(1,1) {$e6} mr${CBM-R}am$ &{$f0} hr{CBM-R}E(H(t$,2)):mn{CBM-R}E(I(t$,2)) j{$fa} {CBM-K}a$:a${CBM-W}{CBM-E}""{CBM-A}t${CBM-W}{CBM-E}ts${CBM-M}ts${CBM-R}t$:270 s220 Sa${CBM-R}e$:410:hr{CBM-R}0{CBM-M}hr{CBM-R}12:300 hr{CBM-E}12{CBM-M}hr{CBM-R}hr{CBM-Q}12:mr${CBM-R}pm$ {CBM-I}"hr{CBM-R}12{CBM-M}mr${CBM-R}pm$ {CBM-B},a${CBM-R}b$(hr):410:mn{CBM-R}0370 X6mn{CBM-W}10{CBM-M}a${CBM-R}b$(0):410 {$e8}@mn{CBM-W}{CBM-R}20{CBM-M}340 jm1{CBM-R}{CBM-J}(mn{CBM-Z}10) yi : 3040 -@ ********** plot x, y ********** {$60}jtx{CBM-R}{CBM-J}(x{CBM-N}ir):ty{CBM-R}{CBM-J}(y{CBM-N}ir) :sq{CBM-R}am(tx {CBM-P} am, ty {CBM-P} am) tp{CBM-R}tx{CBM-Z}dv{CBM-Q}{CBM-J}(ty{CBM-Z}dv){CBM-D}ln : bs{CBM-N}p,c(i(B(p{CBM-N}bs)){CBM-A}sq) y cs{CBM-N}p, 2 {CBM-G}^ O(# ********** setup ********** Y2# "" {$f6}<# c(15), i(255), am(1,1)me to sweet talker B pc, B(pc) {CBM-A} 224 ?L send one shot pulse on cb2 \V pc, (B(pc) {CBM-P} 31) {CBM-A} 192 wait for -ve transition on ca1 {$ea} (B(fr) {CBM-P} 2) {CBM-W}{CBM-E} 2 {CBM-M} 490 {CBM-@}{$f4} E{$fe} the time is, 83>*h@)l>kr>> R o, 444 {$e2} one, -21m {$f0} two, *( & : c{CBM-R}3.1415926{CBM-Z}180 : x1{CBM-R}0 : y1{CBM-R}50 : dc{CBM-R}100 7@ x2{CBM-R}0 {CBM-@} 159 Bjy2{CBM-R}25 {CBM-N} 24 {CBM-D} {CBM-V}(x2 {CBM-D} n {CBM-D} c) {CBM-D} {CBM-X}({CBM-Q}x2{CBM-Z}dc) t 3000 : y1{CBM-R}y2 : x1{CBM-R}x2 : {CBM-+} **** draw 5 random lines **** Lx1{CBM-R}{CBM-J}({CBM-F}(ti){CBM-D}ln{CBM-D}2) : y1{CBM-R}{CBM-J}({CBM-F}(ti){CBM-D}50) Z{CBM-@} j{CBM-R}1 {CBM-@} 5 {CBM-S}x2{CBM-R}{CBM-J}({CBM-F}(ti){CBM-D}ln{CBM-D}2) : y2{CBM-R}{CBM-J}({CBM-F}(t 0 the transactor volume 5 issue 01 page 64 \D adjust c64 screen colour-r.drake 1983 UF v(1){CBM-R}0:v(2){CBM-R}0:v(3){CBM-R}1 H 53280,v(1): 53281,v(2):646,v(3) DJ G(142) "adjust screen colours" {$f1}L "f1:border f3:screen f5:type f7:exit {$fc}N {CBM-K} key$ 0 the transactor volume 5 issue 01 page 67 ND ******************************************************* {CBM-D}I * low resolution graphics / rte - transactor magazine * {$ea}N * --------------------------------------------------- * (S * cbm 8000 + ************************************ M e%(0){CBM-R}100:e%(1){CBM-R}82:e%(2){CBM-R}70:e%(3){CBM-R}64:e%(4){CBM-R}67:e%(5){CBM-R}68:e%(6){CBM-R}69:e%(7){CBM-R}99 {CBM-J} sw{CBM-R}80:se{CBM-R}32768:ss{CBM-R}32768:nc{CBM-R}158 : defaults to 80 column, basic 4.0 {$e2} G(147)G(142); : * (clear) (graphics) "please choose the mt M "vertical additive (max 200)";ad 1R "start ";be @W "end ";en {$7f}{CBM--} G(147); : nc,0 : a{CBM-R}0 : d{CBM-R}{CBM-J}(ad{CBM-Z}8) : e{CBM-R}ad{CBM-Q}(d{CBM-D}8) : b{CBM-R}25{CBM-Q}d {CBM-Q}{$e1} xt{CBM-R}0 {CBM-@} sw{CBM-Q}1 : ss{CBM-N}b{CBM-D}sw{CBM-N}xt, e%(e) : O{$e6} xt{CBM-R}ss {CBM-@} se {SHIFT-POUND} sw : xt,79 : {$eb} z{CBM-R}be {CBM-@} en {SHIFT-POUND} sp : b{CBM-R}{CBM-G} w(z) : b 31, 0, 0, 0, 0, 0 8{CBM-V} 0, 0, 0, 0, 0, 0, 0, 0 EH 0, 0, 0, 0, 0, 0, 0, 0 R 0, 0, 0, 0, 0, 0, 0, 0 {CBM-B}{CBM--} 0, 0, 0, 190, 150, 10, 200, 180 {$ec}{$e6} 170, 70, 160, 0, 0, 0, 0, 0 w(z) {CBM-R} {CBM-L}({CBM-J}(ad{CBM-N}mt{CBM-D}{CBM-V}(z))) : : * cosine * u {CBM-G} w(z) {CBM-R} {CBM-L}({CBM-J}(ad{CBM-N}mt{CBM-D}{CBM-C}(z))) : : * logarithm * {CBM-G} w(z) {CBM-R} {CBM-L}({CBM-J}(ad{CBM-N}mt{CBM-D}{SHIFT-*}(z))) : : * tangent * 1 : ss{CBM-N}b{CBM-D}sw{CBM-N}xt, e%(e) : O{$e6} xt{CBM-R}ss {CBM-@} se {SHIFT-POUND} sw : xt,79 : {$eb} z{CBM-R}be {CBM-@} en {SHIFT-POUND} sp : b{CBM-R}{CBM-G} w(z) : b 192, 141, 19, 192, 189, 60, 193, 57 i p 30, 192, 13, 19, 192, 141, 29, 208 V z 162, 0, 172, 18, 192, 185, 63, 193 {CBM-T} D 157, 39, 208, 185, 71, 193, 157, 248 P N 7, 200, 232, 236, 3, 192, 208, 237 {$fd} X 174, 18, 192, 172, 3, 190 the transactor volume 5 issue 01 page 67 v quarter square graphics plotter N 80 column version Y2 9000 {CBM-T}D ********** functions ********** HN **** exponential curve **** XX x1{CBM-R}0 : y1{CBM-R}1 {$e9} x2{CBM-R}0 {CBM-@} 159 y2{CBM-R}{CBM-X} (x2{CBM-Z}42{CBM-D}80{CBM-Z}l 21, 208 -X 173, 3, 192, 10, 141, 20, 192, 162 z{$e2} 0, 173, 17, 192, 10, 10, 10, 10 {$ec} 10, 10, 141, 18, 192, 168, 185, 43 {CBM-H}{$f6} 193, 157, 0, 208, 200, 232, 236, 20 {$e1} 192, 208, 243, 174, 18, 192, 172, 3 192, 173, 16,.1415926{CBM-Z}180 : x1{CBM-R}0 : y1{CBM-R}50 : dc{CBM-R}100 1@ x2{CBM-R}0 {CBM-@} 159 \jy2{CBM-R}25 {CBM-N} 24 {CBM-D} {CBM-V}(x2 {CBM-D} n {CBM-D} c) {CBM-D} {CBM-X}({CBM-Q}x2{CBM-Z}dc) {$7b}t 3000 : y1{CBM-R}y2 : x1{CBM-R}x2 : **** draw 5 random lines **** Fx1{CBM-R}{CBM-J}({CBM-F}(ti){CBM-D}ln{CBM-D}2) : y1{CBM-R}{CBM-J}({CBM-F}(ti){CBM-D}50) T{CBM-@} j{CBM-R}1 {CBM-@} 5 {$fa}{CBM-S}x2{CBM-R}{CBM-J}({CBM-F}(ti){CBM-D}ln{CBM-D}2) : y2{CBM-R}{CBM-J}({CBM-F}(ti){CBM-D}50) TP k{CBM-R}F(key$ {CBM-N} G(0)){CBM-Q}132 +R k{CBM-W}1 {CBM-A} k{CBM-E}4 {CBM-M} 110 ;T k{CBM-R}4 {CBM-M} 122 ^V v(k){CBM-R}v(k){CBM-N}1: v(k){CBM-R}16 {CBM-M} v(k){CBM-R}0 HX 104 NZ sp9000 : sw=80:se=34768 * FX * pet 4000 + c64 : sw=40:se=33767 * {CBM-@}{$7d} * 4.0 basic : ss=32768:nc=158 * {$e2} * c64 : ss=1024:se=2047:nc=198 * ******************* waveform desired": "(a) sine" 0{CBM-G} "(b) cosine" e{CBM-N} "(c) logarithm" x{CBM-P} "(d) tangent" ^{CBM-H} {CBM-O} "your choice";c$ : c{CBM-R}F(c$){CBM-Q}64 : c${CBM-W}"a" {CBM-A} c${CBM-E}"d" {CBM-M} 185 {CBM-U}{CBM-V} c 260, 265, 270, 275 {$e4}C "step (fraction of 100) ";sp:sp{CBM-R}sp{CBM-Z}100 {$fa}H "multiplier ";{CBM-E} 200 {CBM-M} b{CBM-R}201 9{$f0} d {CBM-R} {CBM-J}(b{CBM-Z}8) : e{CBM-R}b{CBM-Q}(d{CBM-D}8) : b{CBM-R}25{CBM-Q}d : {CBM-H}(b){CBM-R}{CBM-Q}1 {CBM-M} b{CBM-R}0 G{$f5} ss{CBM-N}b{CBM-D}sw{CBM-N}a, e%(e) : a{CBM-R}a{CBM-N}1 : a{CBM-R}sw {CBM-M} a{CBM-R}0 {CBM-+}{$fa} B(nc) {CBM-M} nc,0 : 150 : * press any key to re-start * {CBM-F}~ : G(19); : {$ec} {CBM-G} w(z) {CBM-R} {CBM-L}({CBM-J}(ad{CBM-N}mt{CBM-D}{CBM-B}(z))) : : * sine * {CBM-G} {$f0} 0, 0, 0, 2, 8, 8, 15, 5 f {$fa} 6, 7, 8, 0, 0, 0, 0, 0 N 33, 55, 55, 0, 0, 0, 0 , 0, 0, 0 {CBM-E} 0, 0, 0, 1, 2, 2, 15, 1 {$de}{CBM-N} 2, 3, 4, 0, 0, 0, 0, 128 {CBM-H} 129, 130, 1 3040 '@ ********** plot x, y ********** zjtx{CBM-R}{CBM-J}(x{CBM-N}ir):ty{CBM-R}{CBM-J}(y{CBM-N}ir) :sq{CBM-R}am(tx {CBM-P} am, ty {CBM-P} am) tp{CBM-R}tx{CBM-Z}dv{CBM-Q}{CBM-J}(ty{CBM-Z}dv){CBM-D}ln : bs{CBM-N}p,c(i(B(p{CBM-N}bs)){CBM-A}sq) ^ {CBM-F}(# ********** setup ********** N2# ""G(142); {$eb}<# c(15), i(255), am(1,1) f# i{CBM-R}0 2, 189, 62 * 193, 57, 30, 192, 13, 21, 208, 141 w 21, 208, 96, 10, 80, 150, 60, 80 90, 30, 110, 0, 0, 0, 0, 0 {CBM-E} 0, 0, 0, 1, 2, 2, 15, 1 {$de}{CBM-N} 2, 3, 4, 0, 0, 0, 0, 128 {CBM-H} 129, 130, 1n) 3000 : y1{CBM-R}y2 : x1{CBM-R}x2 : dH **** sine wave **** SR n{CBM-R}6{CBM-D}80{CBM-Z}ln : c{CBM-R}3.1415926{CBM-Z}180 : x1{CBM-R}0 : y1{CBM-R}25 {CBM--} x2{CBM-R}0 {CBM-@} 159 {CBM-@}{$e6} y2{CBM-R}25 {CBM-N} 24 {CBM-D} {CBM-B}(x2 {CBM-D} n {CBM-D} c ) C{$f0} 3000 : y1{CBM-R}y2 : x1{CBM-R}x2 : {$e8}, **** decaying cosine wave **** 6n{CBM-R}8{CBM-D}80{CBM-Z}ln : c{CBM-R}3 208, 57, 21, 192, 141 ; 19, 192, 189, 59, 193, 57, 30, 192 H 13, 19, 192, 141, 16, 208, 173, 23 ( 208, 57, 21, 192, 141, 19, 192, 189 B2 61, 193, 57, 30, 192, 13, 19, 192 {$ef}< 141, 23, 208, 173, 29, 208, 57, 21 f {CBM-U} 3000 : y1{CBM-R}y2 : x1{CBM-R}x2 : {$f4} i{CBM-U} ********** plot a line ********** OBdx{CBM-R}x2{CBM-Q}x1 : dy{CBM-R}y2{CBM-Q}y1 : x{CBM-R}x1 : y{CBM-R}y1 Ll{CBM-R}{SHIFT-@}(dx{CBM-D}dx{CBM-N}dy{CBM-D}dy) : l{CBM-R}0 {CBM-M} 3040 {SHIFT-POUND}Vxi{CBM-R}dx{CBM-Z}l : yi{CBM-R}dy{CBM-Z}l 8000 : ({CBM-L}(x2{CBM-Q}x){CBM-W}{CBM-R}{CBM-L}(xi)) {CBM-P} ({CBM-L}(y2{CBM-Q}y){CBM-W}{CBM-R}{CBM-L}(yi)) {CBM-M} {$fd}{$ea}x{CBM-R}x{CBM-N}xi : y{CBM-R}y{CBM-N}yi : {$e5}{CBM-@} 15 : c(i) : i(c(i)){CBM-R}i : dp# i{CBM-R}0{CBM-@}1 : j{CBM-R}0{CBM-@}1 : am(j,i){CBM-R}(j{CBM-N}1){CBM-D}4{CBM-S}i : j,i Uz#ln{CBM-R}80 : bs{CBM-R}32768{CBM-N}24{CBM-D}ln : dv{CBM-R}2 : am{CBM-R}1 : ir{CBM-R}.5 {CBM-T}D# 32, 123, 108, 98, 126, 97, 127, 252 QN# 124, 255, 225, 254, 226, 236, 251, 160 WX# {$fd}{$ea}x{CBM-R}x{CBM-N}xi : y{CBM-R}y{CBM-N}yi : 84, 80, 75 71, 67, 63, 60, 60, 63, 67 4 71, 75, 80, 84, 89, 95, 100 \& 106, 113, 119, 127, 134, 142, 150 0 159, 169, 179, 190, 201, 213, 225, 239 :"*** siren ***" {CBM-H}d sc,16 : sr,15 {$e4}n n{CBM-R}1 {CBM-@} 4 : nn{CBM-R}250 {CBM-@} 80 {SHIFT-POUND}{CBM-Q}20 the transactor volume 5 issue 01 page 59 7 " w " rotate sprite program V " Chris Zamara, 1983 {$7d}( " 2 " {CBM-Q}< "Creates 'N' sprite shape tables, Nf "rotating a sprite clockwise. Up " {CBM--}z " {CBM-V} "enter centre of rotation (5 {CBM-@} 20 {SHIFT-POUND}{CBM-Q}5 : sc,16 : sr,15 : tt,n : sc,0 .^ nn{CBM-R}1 {CBM-@} 100 : : : sc,0 ;H return yR"*** musical scales ***" X{$7c} 1670 : 1850 : return 1730 {CBM-@} tt,239 : sc,16 : sr,tc {CBM-W} n{CBM-R}1 {CBM-@} 50 F{CBM-@} nn : tt,nn Y{CBM-S} z{CBM-R}1 {CBM-@} 50 : 9,1: g{CBM-N}40,1 !@ g{CBM-N}0,90: g{CBM-N}2,180 .j g{CBM-N}16,0 et g{CBM-N}1,60: g{CBM-N}3,60 r^ g{CBM-N}29,0 _H g{CBM-N}23,0 LR g{CBM-N}28,0 V{$7c}""; i{CBM-R}0 {CBM-@} 7:e(i){CBM-R}2{CBM-S}(7{CBM-Q}i): i : {CBM-K}: {CBM-H}{CBM-@}baddr{CBM-R}begin{CBM-D}64 Y{CBM-S}"hold on. clearing sprite area" {$fd}{CBM-U} i{CBM-R}(begin{CBM-N}1){CBM-D}64 {CBM-@} (begin{CBM-N}n) tt,k{CBM-N}15 : k{CBM-R}200 : sc,16 : sr,51 ?{CBM-N} x{CBM-R}1 {CBM-@} 50 : tt,k : tt,k{CBM-N}7 : tt,k{CBM-N}14 : \{CBM-H} sc,0 : sr,0 : tt,0 I{CBM-V} return {$7f}H"*** birdie ***" R sc,16 : tt,0 : sr,85 {CBM-Z}{CBM--} k{CBM-R}1 {CBM-@} 10 Q{$e6} k1{CBM-R}152 {CBM-@} 56 {SHIFT-POUND}{CBM-Q}8 : tt,k1 : {$fb}{$f0} tt,0 :){CBM-Q}y{CBM-D}{CBM-B}(angle) !Ly2{CBM-R}x{CBM-D}{CBM-B}(angle){CBM-N}y{CBM-D}{CBM-V}(angle) +V 970 1: =x0{CBM-R}x0{CBM-N}1 g bit waddr{CBM-R}addr{CBM-N}1 A{CBM-POUND} col J{CBM-R} y0 P{CBM-C}: Fangle{CBM-R}angle{CBM-N}rtate Ppage{CBM-R}page{CBM-N}1 {CBM-J}Z 2040,page: 2041,page{CBM-N}1 {CBM-X}{$e4} i E{$ee} i K{$f8}: {SHIFT-+} s{CBM-R}0 {CBM-M} 900 {$f7}1,8,12,"@0:"{CBM-N}f${CBM-N}",p,w{CBM-@} 0 {SHIFT-POUND}{CBM-Q}.3 : tt,k : tt,k{CBM-N}5 : tt,k{CBM-N}15 : -( sc,0 : sr,0 : tt,0 ;2 return v<"*** eat my dust ***" Tf sc,16 : tt,0 : sr,3 {CBM-N}p k{CBM-R}200 {CBM-@} 235 {SHIFT-POUND}.7 : tt,k : tt,k{CBM-N}5 : tt,k{CBM-N}20 Az z{CBM-R}1 {CBM-@} 20 : : {$fb}D k{CBM-R}1 {CBM-@} 300 : sc,0 : sr,sprite came from. Z: 1140 " : f {CBM-I}****** end of mainline ******* l {CBM-D}: r {CBM-L}: x {SHIFT-*}: U J* point plot subroutine Tx2{CBM-R}{CBM-J}(x2{CBM-N}cx{CBM-N}0.5) {$de}y2{CBM-R}{CBM-J}(cy{CBM-Q}y2{CBM-N}0.5) K {$e8} x2{CBM-E}23 {CBM-A} y2{CBM-E}20 {CBM-A} x2{CBM-W}0 {CBM-A} y2{CBM-W}0 {CBM-M} Q {$f2}: {$fc}cl{CBM-R}{CBM-J}(x2{CBM-Z}8) {$f1} bt{CBM-R}e(x2 {CBM-P} 7) {CBM-N}begin{CBM-N}n{CBM-Q}1 2040,a k{CBM-R}B(197) %{CBM-+} k{CBM-R}4 {CBM-M} a{CBM-R}a{CBM-Q}1 7{CBM-A} k{CBM-R}3 {CBM-M} a{CBM-R}a{CBM-N}1 f{SHIFT-@} k{CBM-R}60 {CBM-M} [D a{CBM-W}begin {CBM-M} a{CBM-R}en PN a{CBM-E}en {CBM-M} a{CBM-R}begin X d{CBM-R}1 {CBM-@} 50{CBM-Z}n: d {$e2}1170 {$ec}: K {$e8} x2{CBM-E}23 {CBM-A} y2{CBM-E}20 {CBM-A} x2{CBM-W}0 {CBM-A} y2{CBM-W}0 {CBM-M} Q {$f2}: {$fc}cl{CBM-R}{CBM-J}(x2{CBM-Z}8) {$f1} bt{CBM-R}e(x2 {CBM-P} 7) 0 the transactor volume 5 issue 01 page 62 f{$e8} quasimob loader B{$f2} j{CBM-R}49152 {CBM-@} 49550 : x Z{$fc} j,x : ch{CBM-R}ch{CBM-N}x : {CBM-T} ch{CBM-W}{CBM-E} 35713 {CBM-M} "checksum error" : {SHIFT-POUND} V 76, 39, 192, 4, 2, 0, 135, 0 $ 0, 0, 0, 0, 0, 0, 0 {$f3} : tt,nn : x nn{CBM-R}80 {CBM-@} 250 {SHIFT-POUND} 2 : tt,nn : : B sc,0 $L return aV"*** ticking clock ***" {$60}m{CBM-R}150 : mm{CBM-R}50 : n{CBM-R}1 {CBM-@} 21 tt,m{CBM-N}mm : sc,16 : sr,15 : sc,0 {CBM-Z} nn{CBM-R}1 {CBM-@} 250 : : mm{CBM-R}{CBM-Q}mm : {CBM-U} sc,0 E{CBM-POUND} return 95, 89, x,y)"; H cx,cy 2R "sprite page of shape";begin \{CBM--} "number of positions for rotation";n {$e6} s{CBM-R}0: "save sprite data (y/n)";y$ {$f0} H(y$,1){CBM-W}{CBM-E}"y"{CBM-M} 280 {CBM-Z}{$fa} "filename";f$ {CBM-L}s{CBM-R}{CBM-Q}1 {CBM-C}: Jg{CBM-R}13{CBM-D}4096 W" g{CBM-N}21,3 {$f2}, 2040,200: 2041,201 6 g{CBM-N}3 {$f1}{CBM-U}n : : sc,0 : {$fc}B sc,0 Ltc{CBM-R}15 : 1680 : 1770 4Vtc{CBM-R}51 : 1680 : 1770 t tc{CBM-R}85 : 1680 : 1770 : L{$ea} n{CBM-R}1 {CBM-@} 100 : : {$f4} 239, 225, 213, 201, 190, 179, 169 {CBM-C}{$fe} 159, 150, 142, 134, 127, 119, 113 {$e4} 106, 100, 95, 89, {CBM-D}64 B i,0: i L""; 3Vrtate{CBM-R}{CBM-Q}2{CBM-D}~{CBM-Z}n: angle{CBM-R}rtate b page{CBM-R}begin h{$ea}: x{$f4} i{CBM-R}1 {CBM-@} n{CBM-Q}1 G{$fe}addr{CBM-R}baddr M: {$7d} y0{CBM-R}0 {CBM-@} 20 x0{CBM-R}0 & col{CBM-R}0 {CBM-@} 2 {CBM-+}0 bit{CBM-R}0 {CBM-@} 7 {CBM-D}:: Ld(B(addr) {CBM-P} e(bit)){CBM-R}0 {CBM-M} 650 Rn: {$e7}xx{CBM-R}cx{CBM-Q}x0: y{CBM-R}cy{CBM-Q}y0 Bx2{CBM-R}x{CBM-D}{CBM-V}(angle k1{CBM-R}1 {CBM-@} {CBM-J}({CBM-F}(1){CBM-D}200) : : {$fa} sc,0 : sr,0 : tt,0 % return ="*** scramble ***" \ sc,16 : tt,0 : sr,85 K" k{CBM-R}1 {CBM-@} 20 , k1{CBM-R}1 {CBM-@} 14 : tt,k1{CBM-D}16 : : {CBM-Z}6 sc,0 : sr,0 : tt,0 {SHIFT-@}@ return Qj"*** bounces ***" t n{CBM-R}25" sh{CBM-R}{CBM-J}(baddr{CBM-Z}256) sl{CBM-R}baddr{CBM-Q}sh{CBM-D}256 2*1,G(sl)G(sh); r4* start address for load * N>i{CBM-R}baddr {CBM-@} (begin{CBM-N}n){CBM-D}64 {$7e}h1,G(B(i)); r i \ 1 RF:"ok, file is saved. use ,8,1 after load to load it starting"; P"at the same page the first 16 : sc,16 : sr,3 : 6N k{CBM-R}235 {CBM-@} 170 {SHIFT-POUND}{CBM-Q}.6 : tt,k : tt,k{CBM-N}5 : tt,k{CBM-N}15 : xX k{CBM-R}170 {CBM-@} 220 {SHIFT-POUND}3 : tt,k : k{CBM-R}220 {CBM-@} 129 {SHIFT-POUND}{CBM-Q}.5 : tt,k : tt,k{CBM-N}5 : tt,k{CBM-N}15 : {CBM-J} k{CBM-R}120 {CBM-@} 180 {SHIFT-POUND}3 : tt,k : {$ee} k{CBM-R}140 {CBM-@} 200 {SHIFT-POUND}2 : tt,k : tt,k{CBM-N}5 :a2{CBM-R}(page{CBM-N}1){CBM-D}64{CBM-N}cl{CBM-N}y2{CBM-D}3 b a2{CBM-E}64{CBM-D}256 {CBM-M} "warning: out of bound address": v$ a2,B(a2) {CBM-A} bt \. B8: Hb: Nl: Tv: Z{$60}: J* view rotating sprites CT"press f1 or f7 to rotate shape" {CBM-*}{$7e}"press space to end." {$f9}a{CBM-R}begin: en{CBM-R}0, 141, 18, 208, 141 >J 17, 192, 169, 78, 141, 20, 3, 169 KT 192, 141, 21, 3, 88, 96, 173, 25 {$7e} 208, 41, 1, 208, 3, 76, 134, 192 E 169, 1, 141, 25, 208, 32, 140, 192 {$f2} 238, 17, 192, 174, 17, 192, 236, 4 1, 0 0. 0, 0, 0, 0, 0, 255, 254, 252 ]8 248, 240, 224, 192, 128, 0, 0, 1 b 3, 7, 15, 31, 63, 127, 255, 169 {CBM-Y}l 127, 141, 13, 220, 169, 1, 141, 26 {$e4}v 208, 120, 173, 17, 208, 41, 127, 141 {$60} 17, 208, 169, 92, 208, 5, 162, 0, 142, 17, 192 l{CBM-+} 173, 17, 208, 41, 127, 141, 17, 208 Y{CBM-A} 189, 5, 192, 141, 18, 208, 173, 17 {CBM-+}{SHIFT-@} 192, 208, 3, 76, 49, 234, 104, 168 SD 104, 170, 104, 64, 172, 3, 192, 173 N 21, 208, 57, 21, 192, 141, 0 the transactor volume 5 issue 01 page 51 {$60} vol{CBM-R}36878 : s1{CBM-R}36874 : s2{CBM-R}36875 : s3{CBM-R}36876 L vol,5 {$7c} x, y, dur ( x{CBM-R}{CBM-Q}1 {CBM-M} 80 2 s2,x : s3,y {CBM-Y}< t{CBM-R}1 {CBM-@} dur{CBM-D}18 : {SHIFT-*}f 30 {$e7}p vol,0 : s1,0 : s2,0 : s3,0 {$ed}z {$e8} 0, 201, 0 the transactor volume 5 issue 01 page 53 rf tt{CBM-R}59464 : timer 2 low byte Rp sr{CBM-R}59466 : shift register z sc{CBM-R}59467 : shift register control {CBM-J}D "*** piano gliss ***" TN sc,16 : tt,0 : sr,15 {$e7}X k{CBM-R}0 {CBM-@} 100 {SHIFT-POUND}5 ~ tt,k : x{CBM-R}{SHIFT-*}(k) : tt,0 {$fa} return ,"*** french police ***" j sc,16 : tt,0 : sr,2 x k{CBM-R}1 {CBM-@} 4 N" r{CBM-R}100 {CBM-@} 255 {SHIFT-POUND}40 , tt,r : x{CBM-R}1 {CBM-@} 500 : {CBM-I}6 r{CBM-R}255 {CBM-@} 100 {SHIFT-POUND}{CBM-Q}40 C@ tt,r : : x{CBM-R}1 {CBM-@} 500 : Ij {$e6}t sc,0 : sr,0 : tt,0 {$f3}^ return H" 0 {SHIFT-POUND}{CBM-Q}3 : tt,r : 'B tt,0 : k{CBM-R}1 {CBM-@} 200 : jL r{CBM-R}205 {CBM-@} 105 {SHIFT-POUND}{CBM-Q}3 : tt,r : LV r{CBM-R}105 {CBM-@} 255 {SHIFT-POUND}3 : tt,r : sc,0 : sr,0 : tt,0 {$ea} return {CBM-E}{$f4}"*** dive! dive! ***" F{$fe} sc,16 : sr,9 U k{CBM-R}1 {CBM-@} 10 {$eb} r{CBM-R}250 {CBM-@} 180 {SHIFT-POUND}{CBM-Q}1 {$fe} tt,r tt,225 : k{CBM-R}1 {CBM-@} 200 : . tt,251 : k{CBM-R}1 {CBM-@} 300 : k tt,0 : k{CBM-R}1 {CBM-@} 150 : Q tt,199 : k{CBM-R}1 {CBM-@} 200 : : t{CBM-R}50 tt,0 : k{CBM-R}1 {CBM-@} t : {CBM-Q} {CBM-POUND} tt,188 : k{CBM-R}1 {CBM-@} 150 : H {CBM-R} sc,0 : sr,0 : tt,0 U {CBM-C} return {$ea} F"*** dirge ***" P s 880 * tt,199 : k{CBM-R}1 {CBM-@} 300{CBM-D}t : : 880 f4 tt,211 : k{CBM-R}1 {CBM-@} 200{CBM-D}t : : 880 O> tt,237 : k{CBM-R}1 {CBM-@} 100{CBM-D}t : : 880 h tt,237 : k{CBM-R}1 {CBM-@} 200{CBM-D}t : : 880 Ar tt,251 : k{CBM-R}1 {CBM-@} 100{CBM-D}t : : 880 {$e2}\ tt,237 : k{CBM-R}1 {CBM-@} 300{CBM-D}t : F tt,0 J sc,0 : sr,0 : tt,0 T 1080 : return .{$de} sr,15 : t{CBM-R}3 v{$e8} tt,255 : k{CBM-R}1 {CBM-@} 100 : : 1070 {$7e}{$f2} tt,191 : k{CBM-R}1 {CBM-@} 100 : : 1070 {CBM-+}{$fc} tt,152 : k{CBM-R}1 {CBM-@} 100 : : 1070 N tt,128 : k{CBM-R}1 {CBM-@} 200 : : 1070 {$fc} tt,152 : k{CBM-R}1 {CBM-@} 100 {SHIFT-@}87 %N 215, 6, 187, 0, 4, 195, 215, 4 rX 195, 219, 4, 0, 215, 4, 135, 215 {$7f}{$e2} 8, 135, 209, 6, 135, 0, 8, 163 {$ec} 209, 8, 175, 209, 32 {CBM-D} -1,-1,-1 , 215, 221 {$ea} 8, 215, 237, 8, 219, 235, 8, 219 232, 4208, 236, 165, 145 .. 201, 127, 208, 228, 96 , 0, 238, 8 6{$60} 215, 237, 8, 0, 235, 8, 227, 232 CJ 8, 0, 231, 8, 201, 232, 8, 201 T 228, 8, 228, 231, 8, 228, 232, 8 {CBM-X}{$7e} 209, 235, 8, 209, 237, 8, 215, 221 {$ea} 8, 215, 237, 8, 219, 235, 8, 219 232, 8, 0, 207, 8, 0, 209 g{$f2} 8, 0, 215, 8, 0, 219, 8, 0 T{$fc} 221, 8, 0, 199, 8, 0, 221, 8 {CBM-K} 0, 219, 8, 0, 215, 8, 0, 209 N 8, 0, 207, 8, 201, 209, 8, 207 {$fb} 0, 8, 209, 219, 8, 215, 0, 8 k{CBM-R}99 {CBM-@} 0 {SHIFT-POUND}{CBM-Q}5 * tt,k : x{CBM-R}{SHIFT-*}(k) : g sc,0 : sr,0 : tt,0 t{CBM-N} return N{CBM-H} "*** laser fire ***" {CBM-V} sc,16 : tt,0 H sr,15 : k{CBM-R}1 {CBM-@} 5 {CBM-S}R r{CBM-R}0 {CBM-@} 100 {SHIFT-POUND}5 M{CBM--} tt,r : x{CBM-R}1 {CBM-@} 2 : : {$e5}{$e6} tt,r : x{CBM-R}{SHIFT-*}(x) : {$f0} sc,0 : sr,0 : *** bombs away ***" ,R sc,16 : tt,0 : sr,85 [{$7c} r{CBM-R}50 {CBM-@} 150 : tt,r : k{CBM-R}1 {CBM-@} 30 : : sr,1 : tt,255 : k{CBM-R}1 {CBM-@} 800 : sc,0 : sr,0 : tt,0 {CBM-Z} return I{CBM-@}"*** wolf whistle ***" {$e8}{CBM-S} sc,16 : tt,0 : sr,13 {CBM-U} r{CBM-R}185 {CBM-@} 8 : : & sc,0 : sr,0 : tt,0 (0 return s:"*** shave 'n' a haircut, 2 bits ***" Xd sc,16 : tt,0 : sr,15 : t{CBM-R}3 n tt,188 : k{CBM-R}1 {CBM-@} 200 : {CBM-L}x tt,251 : k{CBM-R}1 {CBM-@} 100 : QB tt,0 : k{CBM-R}1 {CBM-@} t : {$f0}L tt,251 : k{CBM-R}1 {CBM-@} 100 : Vc,16 : tt,0 : 750 $Z sc,0 : sr,0 : tt,0 2{$e4} 890 : >{$ee} dirge p{$f8} sr,15 : t{CBM-R}3 Y tt,237 : k{CBM-R}1 {CBM-@} 300{CBM-D}t : : 880 {CBM-I} tt,237 : k{CBM-R}1 {CBM-@} 200{CBM-D}t : : 880 K tt,237 : k{CBM-R}1 {CBM-@} 100{CBM-D}t : : 880 {$f4} tt,237 : k{CBM-R}1 {CBM-@} 300{CBM-D}t : : : k{CBM-R}1 {CBM-@} 5 : : P tt,0 : k{CBM-R}1 {CBM-@} t : : 4 Z"*** r2d2 ***" s sc,16 : tt,0 : sr,15 U k{CBM-R}1 {CBM-@} 30 : tt,10{CBM-N}100{CBM-D}{CBM-F}(1) i{CBM-R}1 {CBM-@} 6 : : {CBM-POUND} {CBM-I} sc,0 : sr,0 : tt,0 {CBM-J} {CBM-D} return L {CBM-L}"*** charge! ***" {$e9} {SHIFT-*} sc,16 : tt,0 : 990 : : t{CBM-R}0 : 1070 tt,128 : k{CBM-R}1 {CBM-@} 400 : !$ @. tt,0 : k{CBM-R}1 {CBM-@} t : : y8"*** ping pong ***" Xb sc,16 : tt,0 : sr,15 l j{CBM-R}1 {CBM-@} 5 {CBM-@}v tt,255 : k{CBM-R}1 {CBM-@} 60 : I{$60} tt,0 : k{CBM-R}1 {CBM-@} 100{CBM-S}{CBM-F}(1){CBM-D}20 : {$e7}J tt,128 : k{CBM-R}1 {CBM-@} 60 : T tt,0 : k{CBM-R}1 {CBM-@} 100{CBM-S}{CBM-F}(1){CBM-D}20 : ${$7e} x{CBM-R}1 {CBM-@} 100 : : m sr,63 : tt,255 : k{CBM-R}1 {CBM-@} 500 : J sc,0 : sr,0 : tt,0 W return {CBM-+}"*** raspberry ***" {CBM-S}{CBM-A} sc,16 : tt,0 : sr,9 W{SHIFT-@} k{CBM-R}1 {CBM-@} 50 : tt,238 : tt,251 : {$f4}D sc,0 : sr,0 : tt,0 N return X"*** death ray ***" 9{$e2} sc,16 : tt,0 : sr,15 N{$ec} k{CBM-R}1 {CBM-@} 200 : tt,150 : tt,200 : tt,255 : {$f6} sc,0 : sr,0 : tt,0 return {CBM-U} "*** vanishing saucer ***" W sc,16 : tt,0 : sr,29 k{CBM-R}160 8, 221, 231, 8, 221, 228, 8 d 195, 231, 8, 195, 225, 8, 225, 228 Q{CBM-+} 8, 225, 231, 8, 207, 232, 8, 207 {CBM-A} 235, 8, 209, 219, 8, 209, 235, 8 K{SHIFT-@} 215, 232, 8, 215, 231, 8, 219, 228 {$f8}D 8, 219, 225, 8, 201, 209, 8, 1($ 219, 228, 8, 221, 0, 8, 199, 215 u. 8, 221, 0, 8, 219, 227, 8, 215 8 0, 8, 209, 231, 8, 207, 0, 8 {CBM-P}b 209, 228, 8, 0, 231, 8, 219, 232 {CBM--}l 8, 0, 235, 8, 228, 237, 8, 0 v 238, 8, 207, 227, 8 %! --- volume 5 issue 01 --- # "'BITS' programs start here d "note: this file is only a C "directory placemarker - ( "scratch it if you wish. 0 the transactor volume 5 issue 01 page 18 e 80 column only uP the brain XZ j{CBM-R}634 {CBM-@} 693 : x : j,x : {$e4} 634 {CBM-P}{$ee} 169, 128, 133, 88, 169, 0, 133, 87 {CBM--}{$f8} 168, 177, 87, 133, 89, 230, 89, 165 89, 145, 87, 200, 208, 24 0 the transactor volume 5 issue 01 page 18 h screen marquis 80 K j{CBM-R}634 {CBM-@} 688 : x : j,x : U 634 {CBM-I}{CBM-+} 169, 128, 133, 88, 169, 0, 133, 87 O{CBM-A} 160, 2, 173, 207, 135, 72, 173, 1 {$fc}{SHIFT-@} 128, 72, 173, 0, 128, 141, 1, 128 )0 the transactor volume 5 issue 01 page 19 a marquis 64 E j{CBM-R}828 {CBM-@} 924 : x : j,x : O 828 {CBM-+} 169, 4, 133, 88, 169, 0, 133, 87 I{CBM-A} 169, 216, 133, 91, 169, 0, 133, 90 {$f6}{SHIFT-@} 160, 39, 177, 87, 133, 89, 177, 90 #D 1 230, 91 1 230, 88, 165, 88, 201, 8, 208, 192 ^ 160, 240, 162, 0, 232, 208, 253, 200 208, 248, 165, 145, 201, 127, 208, 160 96 I{CBM-A} 169, 216, 133, 91, 169, 0, 133, 90 {$f6}{SHIFT-@} 160, 39, 177, 87, 133, 89, 177, 90 #D 10 the transactor volume 5 issue 01 page 19 h screen marquis 40 L j{CBM-R}634 {CBM-@} 698 : x : j,x : V 634 {CBM-T}{CBM-+} 169, 128, 133, 88, 169, 0, 133, 87 P{CBM-A} 160, 2, 173, 231, 131, 72, 173, 1 {$fd}{SHIFT-@} 128, 72, 173, 0, 128, 141, 1, 128 0 the transactor volume 5 issue 01 page 19 h screen marquis 20 L j{CBM-R}828 {CBM-@} 882 : x : j,x : V 828 {CBM-T}{CBM-+} 169, 30, 133, 88, 169, 0, 133, 87 P{CBM-A} 160, 2, 173, 249, 31, 72, 173, 1 {$fd}{SHIFT-@} 30, 72, 173, 0, 30, 141, 1, 30 0 the transactor volume 5 issue 01 page 18 {$60} note- 'the brain' must be installed first U 80 column only b{CBM-R}160:c{CBM-R}79:e{CBM-R}23 {CBM-+} d {CBM-R} 0 {CBM-@} 11:a${CBM-R}G(d{CBM-N}219) V 224,0{CBM-N}d:225,24{CBM-Q}d:226,0{CBM-N}d:213,79{CBM-Q}d:""; {$e8} a{CBM-R}1{CBM-@}b:a$;: {$f8}( a {CBM-R} 1 {CBM-@} e 2 0 the transactor volume 5 issue 01 page 19 e 80 column only v the plunge Y{CBM-N} j{CBM-R}634 {CBM-@} 702 : x : j,x : {CBM-H} 634 {CBM-A}{CBM-V} 169, 19, 32, 210, 255, 32, 210, 255 {SHIFT--}H 169, 128, 133, 88, 169, 0, 133, 87 R 168, 177, 87, 170, 232, 1 210, 255, 96 sactor volume 5 issue 01 page 19 e 80 column only v the plunge Y{CBM-N} j{CBM-R}634 {CBM-@} 702 : x : j,x : {CBM-H} 634 {CBM-A}{CBM-V} 169, 19, 32, 210, 255, 32, 210, 255 {SHIFT--}H 169, 128, 133, 88, 169, 0, 133, 87 R 168, 177, 87, 170, 232, 10 the transactor volume 5 issue 01 page 20 d{$e8} sequins 40/80 G{$f2} j{CBM-R}634 {CBM-@} 662 : x : j,x : Q{$fc} 634 162, 0, 160, 0, 254, 0, 128, 238 K 127, 2, 222, 0, 130, 206, 133, 2 {$f8} 200, 208, 241, 232, 208, 236, 165, 155 $ {CBM--}3, 230, 88 6 165, 88, 201, 136, 208, 235, 206, 149 C 2, 238, 123, 2, 173, 123, 2, 201 132, 208, 213, 169, 128, 141, 123, 2 {CBM-X}* 169, 136, 141, 149, 2, 165, 155, 201 V4 239, 208, 197, 96 {CBM-E}D 177, 87, 170, 104, 145, 87, 138, 72 vN 200, 208, 245, 230, 88, 165, 88, 201 X 136, 208, 237, 104, 104, 141, 0, 128 {CBM-Q}{$e2} 165, 155, 201, 239, 208, 202, 96 , 165, 155, 201 V4 239, 208, 197, 96 33, 92, 160, 0, 177, 87, 170, 177 pN 90, 133, 93, 165, 89, 145, 87, 165 {$7d}X 92, 145, 90, 134, 89, 165, 93, 133 {CBM-N}{$e2} 92, 200, 192, 40, 208, 230, 24, 165 W{$ec} 90, 105, 40, 133, 90, 24, 165, 87 {$f6} 105, 40, 133, 87, 144, 202, 201, 239, 208, 228, 96 {$ee}*D 177, 87, 170, 104, 145, 87, 138, 72 wN 200, 208, 245, 230, 88, 165, 88, 201 X 132, 208, 237, 104, 104, 141, 0, 128 {CBM-E}{$e2} 160, 240, 162, 0, 232, 208, 253, 200 {$de}{$ec} 208, 248, 165, 155, 201, 239, 208, 192 {$e8}{$f6} 96 {CBM-R}*D 177, 87, 170, 104, 145, 87, 138, 72 wN 200, 208, 245, 230, 88, 165, 88, 201 X 32, 208, 237, 104, 104, 141, 0, 30 {CBM-D}{$e2} 165, 145, 201, 127, 208, 202, 96 00 {$de}{$ec} 208, 248, 165, 155, 201, 239, 208, 192 {$e8}{$f6} 96 7""a${CBM-T}c)a$;: '< b{CBM-R}b{CBM-Q}4:c{CBM-R}c{CBM-Q}1:e{CBM-R}e{CBM-Q}2: d 1f 634 , 208, 245, 230, 88, 165, 88, 201 X 32, 208, 237, 104, 104, 141, 0, 30 {CBM-D}{$e2} 165, 145, 201, 127, 208, 202, 96 00 {$de}{$ec} 208, 248, 165, 155, 201, 239, 208, 192 {$e8}{$f6} 96 38, 145, 87 7{CBM--} 200, 208, 246, 230, 88, 165, 88, 201 D{$e6} 136, 208, 238, 230, 224, 198, 225, 198 {$f0} 213, 230, 226, 169, 147, 32, 210, 255 {CBM-V}{$fa} 165, 224, 201, 13, 208, 210, 165, 155 {$eb} 201, 239, 208, 196, 169, 19, 32, 210 255, 32, 0 the transactor volume 5 issue 01 page 20 a{$e8} sequins 64 [{$f2} 53281, 493{CBM-Q}B(53281) {$7f}{$fc} j{CBM-R}828 {CBM-@} 856 : x : j, x : 828 {CBM-L} 162, 0, 160, 0, 254, 0, 4, 238 {$e3} 65, 3, 222, 0, 6, 206, 71, 3 $ 200, 208, 241, 232, a r transactor disk2 d2 2a blocks free. -vol 5 issue 01- bits............ the brain marquis 80 marquis 64 marquis 40 marquis 20 the boxer stop disable 64 autoliner 4.0 v2 autoliner 64 v2 screen copy vic eep eep 4.0 mirror 80 mirror 40 mirror 64 line hider ghost liner list decorator etchasketch default colours restore x 64 ..articles...... led demo the plunge sequins 40/80 sequins 64 curtains graphic print reverse rvs 1 line pet emulr on error goto ram scan 80 ram scan 40 ram scan 64 crystal un cursor 80 un cursor 40 un cursor 64 un cursor 20 led knight rider led roulet wheel quadra 64 loader quadra 64 init quadra 64.src basmon part2 picprint 64 picprint 64.src but seriously zoundz a-maze-ing articles........ waves 64 vic 20 sound pet sound fx sound maestro 64 .articles....... pop c64 un token memory un token disk merge 4.0 merge c64 basic monitor 64 ' pi program basic compare scramble.bas scramble.ml scramble64.ml !password prot 1 !password prot 2 !disk defender disk defend 8050 quarter master sprite rotate quasimob loader quasimob.src change screen 64 harmonic motion qtr sqr plot 80 qtr sqr plot c64 rocket64 ml.run rocket64 bas.run rocket.sprt rocket.obj rocket listing 2 rocket listing 3 rocket listing 4 rocket listing 5 ~lockdisk 4.0 lockdisk 64 drive protect "disk view/change "diskmod 4.0 qtr sqr vic norm qtr sqr vic expd projectile 4.0 projectile 64 talk clock 4.0 talk clock 64 talk clock vic cartridge sim string insert 64 cia timer demo tod clock 64 tod clock 64.src joycursor 64 sx64 emulate pt1 sx64 emulate pt2 -vol 5 issue 03- generate demo 64 gen generate 64 -vol 5 issue 02- .bits........... down scroll 64 color ftoutsm 64 ftoutsm.ml ama-zamara-ing ..bits.......... line doo daa colour test 64 bytefinder ram bytefinder disk un-dim 4.0/2.0 un-dim vic/64 errorouter 64 0 the transactor volume 5 issue 01 page 20 o 80 column or fat 40 only yD ""; HN j{CBM-R}1 {CBM-@} 24 WX i{CBM-R}1 {CBM-@} 79 "+"; i : j "" {CBM-D}{CBM-N} 59520,6 {CBM-B}{CBM-H} j{CBM-R}25 {CBM-@} 1 {SHIFT-POUND}{CBM-Q}1 N{CBM-V} 59521, j TH {$f6}R "print on screen while blank {CBM--} j0 the transactor volume 5 issue 01 page 20 o sc{CBM-R}4448 : ln{CBM-R}22 : vic 20 T sc{CBM-R}8032 : ln{CBM-R}22 : vic 20 w/exp sc{CBM-R}1824 : ln{CBM-R}40 : c64 {CBM-W}( sc{CBM-R}33408 : ln{CBM-R}40 : 40 column V2 sc{CBM-R}34048 : ln{CBM-R}80 : 80 column {$e8}< "word ";a$ f poke 53281, 12 L0 the transactor volume 5 issue 01 page 21 i r{CBM-R}199 : vic or c64 E r{CBM-R}159 : basic 2.0/4.0 Z a${CBM-R}"some string" j{CBM-R}1 {CBM-@} C(a$) c{CBM-R}1{CBM-Q}c : r, c {CBM-A}( J(a$,j,1); {CBM-L}2 {CBM-B}< "" Hf 20 P0 the transactor volume 5 issue 01 page 21 L 56576,5:53272,4:648,128:1024,0:44,4:56,128:"":{CBM-I} ome string" j{CBM-R}1 {CBM-@} C(a$) c{CBM-R}1{CBM-Q}c : r, c {CBM-A}( J(a$,j,1); {CBM-L}2 {CBM-B}< "" Hf 20 0 the transactor volume 5 issue 01 page 21 ] 16, 3, 76, 139, 227, 142, 13, 3 169, 232, 133, 20, 169, 3, 133, 21 K 162, 250, 154, 169, 167, 72, 169, 233, 72, 76, 163, 168 {$f0} j{CBM-R}52992 {CBM-@} 53019 : x : j, x {$f8}( j 2 bably your fault tor volume 5 issue 01 page 21 ] 16, 3, 76, 139, 227, 142, 13, 3 169, 232, 133, 20, 169, 3, 133, 21 K 162, 250, 154, 169, 167, 72, 169, 233, 72, 76, 163, 168 {$f0} j{CBM-R}52992 {CBM-@} 53019 : x : j, x {$f8}( j 2 0 the transactor volume 5 issue 01 page 22 e 80 column only ID j{CBM-R}634 {CBM-@} 686 : x : j,x : N 233, 122 : 234, 2 {CBM-A}X 8, 72, 138, 72, 152, 72, 169, 16 {SHIFT--} 141, 75, 232, 169, 55, 141, 74, 232 169, 0, 133, 0, 141, 0 the transactor volume 5 issue 01 page 22 < s{CBM-R}54272 z l{CBM-R}0 {CBM-@} 24 : s{CBM-N}l, 0 : G s{CBM-N}3, 8 ( s{CBM-N}5, 128 : s{CBM-N}6, 8 : pls feel free to alter {CBM-D}2 s{CBM-N}14, 117 {CBM-F}< s{CBM-N}18, 16 Kf s{CBM-N}24, 143 {$e4}p fr{CBM-R}1 {CBM-@} 24000 {SHIFT-POUND} 100 {$ee}z 150 {$f7}D fr N Z0 the transactor volume 5 issue 01 page 22 m "press the number keys N {CBM-K} a$ : v{CBM-R}E(a$) : v {CBM-M} m{CBM-R}v{CBM-D}2 {CBM-POUND} {CBM-F}(1){CBM-W}.5 {CBM-M} H("NNNNNNNNNNNNNNNNNNNNNNN",{CBM-F}(1){CBM-D}m);:10 V H("MMMMMMMMMMMMMMMMMMMMMMM",{CBM-F}(1){CBM-D}m);:10 , "Article related programs start here m "note: this file is only a L "directory placemarker - ( "scratch it if you wish. NNNNNNNNNNNN",{CBM-F}(1){CBM-D}m);:10 V H("MMMMMMMMMMMMMMMMMMMMMMM",{CBM-F}(1){CBM-D}m);:10 h{CBM-R}1 {CBM-@} 25 {$e6} 59521, j {$f0} 8{$fa} B(152) {CBM-M} 59521,25 : b 180 {CBM-R}: rem for c64 p i{CBM-R}1 {CBM-@} C(a$) hz ht{CBM-R}F(J(a$,i,1)) : lt{CBM-R}sc{CBM-N}i{CBM-Q}ln{CBM-Z}2{CBM-D}(ht{CBM-Q}64) CD y{CBM-R}sc{CBM-N}i : y{CBM-N}ln, ht{CBM-N}64 XN j{CBM-R}y {CBM-@} lt {SHIFT-POUND} {CBM-Q}ln X j{CBM-R}lt {CBM-M} j,123 : 140 {CBM-K} j, 97 {CBM-D} j, i 0 the transactor volume 5 issue 01 page 49 qD * data loader for "WAVES" * wN : VX cs{CBM-R}0 :* checksum * os{CBM-R}49152:* object start * : {CBM-A} b: b{CBM-W}0 {CBM-M} 180 {CBM-C} cs{CBM-R}cs{CBM-N}b V{CBM-N} os,b: os{CBM-R}os{CBM-N}1: 150 {CBM--}{CBM-H} : {CBM-V} cs{CBM-W}{CBM-E}16560 {CBM-M} "***** checksum error *****": 240 H : 8R 49152 :* enable "WAVES" [{CBM--} "** Ok, WAVES is enabled. **" A{$e6} : G{$f0} {$fa} 169, 168, 141, 0, 212, 169 {CBM-Z} 97, 141, 1, 212, 169, 221 P 141, 5, 212, 169, 125, 141 {$f2} 6, 212, 169, 15, 141, 24 " 212 768, 0 : 769, 207 %D test program +N 8{$e8}x{CBM-R}B(781) O{$f2} x{CBM-R}2 the "you already opened that file, numskull {CBM-POUND}{$fc} x{CBM-R}14 {CBM-M} "you can't divide by zero, calculus breath V x{CBM-R}21 {CBM-M} "type it right this time, ninny "something else went wrong, pro, 120, 169, 45, 141, 20 5, 3, 169, 192, 141, 21, 3 x6 88, 96, 88, 0, 255, 200 {$7b}@ 0, 144, 1, 238, 38, 192 j 208, 3, 238, 39, 192, 173 {SHIFT-*}t 40, 192, 208, 37, 173, 38 {$e2}^ 192, 205, 43, 192, 208, 63 H 173, 39, 192, 20 {CBM-J}72, 232, 160 7 0, 200, 192, 21, 208, 251, 230, 0 D 165, 0, 201, 0, 208, 238, 141, 75 {CBM-N} 232, 141, 74, 232, 104, 168, 104, 170 {CBM-P}{CBM-H} 104, 40, 76, 29, 225 1 line pet emulr on error goto {CBM-W}fr{CBM-R}24000 {CBM-@} 1 {SHIFT-POUND} {CBM-Q}100 X 150 $ fr * 8 s{CBM-N}4, 65 f t{CBM-R}1 {CBM-@} 4 z{CBM-N} fq{CBM-R}fr{CBM-N}B(s{CBM-N}27){CBM-Z}2 Y{CBM-H} hf{CBM-R}{CBM-J}(fq{CBM-Z}256) : lf{CBM-R}fq {CBM-P} 255 {CBM-V} s, lf : s{CBM-N}1, hf H t {CBM-M}R s{CBM-N}4, 64 {CBM-Z}{CBM--} 1 line pet emulr on error goto 5, 44, 192 &R 208, 55, 169, 129, 141, 4 i{$7c} 212, 169, 0, 141, 38, 192 L 141, 39, 192, 169, 255, 141 40, 192, 76, 129, 192, 173 {CBM-R} 38, 192, 205, 41, 192, 208 T{CBM-@} 26, 173, 39, 192, 205, 42 {$f7}{CBM-S} 192, 208, 18, 169, 128, 141 0 the transactor volume 5 issue 01 page 56 v sound maestro-64 v1.00 84/02/06 J darren spruyt box 1226 gravenhurst ( ontario, p0c 1g0 {CBM-U}D :"sound maestro-64" ON :"darren spruyt" {$e6}X :"setting up.... {$fc} k{CBM-R}0 {CBM-@} 427 : a te {$fa} "hi =high value of note 9"att=attack value (0-15) v"dec=decay value (0-15) U"sus=sustain level (0-15) ""rel=release value (0-15) E,"p =pause (# of jiffies at sustain volume) 6"wav=waveform type (16=tri, 32=saw, 64=pulse, 1 254, 192, 168, 208, 3, 76, 8 g{$f2} 175, 201, 4, 176, 249, 202, 142, 94 T{$fc} 193, 142, 95, 193, 138, 10, 10, 10 {CBM-K} 56, 237, 94, 193, 141, 94, 193, 24 N 105, 6, 168, 169, 0, 153, 0, 212 {$fb} 136, 136, 169, 0, 153, 0, 212 0, 10, 10, 141, 96 6 {$60} 193, 32, 215, 192, 32, 254, 192, 13 C J 96, 193, 172, 94, 193, 153, 0, 212 T 32, 231, 192, 238, 94, 193, 32, 254 {CBM-X} {$7e} 192, 10, 10, 10, 10, 141, 96, 193 {$ea} 32, 254, 192, 13, 96, 193, 172, 94 1 41, 254 %N 172, 95, 193, 153, 97, 193, 172, 95 rX 193, 190, 97, 193, 232, 138, 172, 94 {$7f}{$e2} 193, 153, 0, 212, 172, 95, 193, 169 {CBM-D}{$ec} 1, 153, 91, 193, 76, 103, 193, 172 Y{$f6} 95, 193, 189, 21, 193, 153, 85, 193 189, 37, 193, 32, 158, 183, 138, 96, 1, 1, 1 af 2, 3, 4, 5, 5, 6, 15, 30 Np 48, 60, 180, 44, 224, 0, 0, 0 z 0, 0, 0, 0, 0, 0, 0, 0 HD 0, 0, 0, 1, 1, 1, 2, 3 {$f5}N 5, 7, 11, 13, 15, 141, 20, 3, 169, 193, 141 0{CBM-H} 21, 3, 88, 96, 96, 160, 0, 185 ]{CBM-V} 91, 193, 240, 39, 190, 85, 193, 202 H 138, 153, 85, 193, 201, 255, 208, 27 {CBM-Y}R 190, 88, 193, 202, 138, 153, 88, 193 {$e4}{CBM--} 201, 255, 208, 15, 185, 100, 193, 170 0 the transactor volume 5 issue 01 page 57 m quarter master's store I using darren spruyt's sound maestro v1.00 {CBM-I}D 54272{CBM-N}24,10 : sound on {CBM-Z}N zz{CBM-R}900 LX xx{CBM-R}{CBM-Q}1 : set xx=0 for fun Z a, b, c {$e8} a{CBM-W}0 {CBM-M} 49152, 1, a, b, R{CBM-U} 4, 212, 169, 0, 141, 38 :B 192, 141, 39, 192, 169, 0 ]L 141, 40, 192, 76, 49, 234 FV -1 238, 38, 192 j 208, 3, 238, 39, 192, 173 {SHIFT-*}t 40, 192, 208, 37, 173, 38 {$e2}^ 192, 205, 43, 192, 208, 63 H 173, 39, 192, 20$ 48, 11, .25 #. 143, 10, .25 ,8 #3 >b 104, 9, .25 pl 104, 9, .25 Bv 104, 9, .25 T{$60} 104, 9, .25 {$7d}J #4 T 143, 12, .25 {CBM-G}{$7e} 24, 14, .25 {CBM-O} 143, 12, .25 M 48, 11, .25 V #5 {$e9}{CBM-+} 143, 10, .25 {$fc}{CBM-A} 143, 12, . 49152{CBM-N}k,a : ch{CBM-R}ch{CBM-N}a / 1024,a : 55296,a 5{CBM-N} ^{CBM-H} ch{CBM-W}{CBM-E} 48444 {CBM-M} "checksum error" : {$7d}H "instructions for use:" {CBM-Z}R "sys 49152,v,lo,hi,att,dec,sus,rel,p,wav" {SHIFT-@}{CBM--} "where: {$e1}{$e6} "v =voice number (1-3 inclusive) {$fe}{$f0} "lo =low value of no28=noise) @"note:" mj"pulse, if used, the width must be set up before-hand." Zt"master volume must also be turned on." {CBM-T}^"if i/o troubled, run-stop/restore. {$ed}H"note and att/dec/sus/rel values are on p33, in transactor vol4, #5 {$e8} 32,, 160 ($ 2, 162, 255, 202, 208, 253, 136, 208 u. 248, 32, 13, 193, 172, 94, 193, 153 8 0, 212, 238, 94, 193, 32, 13, 193 {CBM-P}b 172, 94, 193, 153, 0, 212, 173, 94 {CBM--}l 193, 24, 105, 4, 141, 94, 193, 32 v 254, 192, 10, 193, 153, 0, 212, 24, 32, 115, 0 d 32, 158, 173, 32, 247, 183, 24, 172 Q{CBM-+} 95, 193, 165, 20, 121, 85, 193, 153 {CBM-A} 85, 193, 165, 21, 121, 88, 193, 153 K{SHIFT-@} 88, 193, 173, 94, 193, 56, 233, 2 {$f8}D 141, 94, 193, 32, 13, 193, 153, 88, 193, 96, 172 3 95, 193, 24, 189, 53, 193, 121, 85 {$60} 193, 153, 85, 193, 189, 69, 193, 121 88, 193, 153, 88, 193, 96, 32, 253 {SHIFT-@} ( 174, 32, 158, 183, 138, 201, 16, 176 {$e7} 2 1, 96, 76, 8, 175, 32, 253, 174 <8, 45, 90 "X 144, 180, 28, 132, 160, 0, 0, 0 o 0, 0, 0, 0, 0, 0, 0, 0 {$7c} 0, 0, 2, 3, 5, 255, 255, 255 {SHIFT-POUND} 255, 255, 255, 0, 0, 0, 18, 2 V 112, 32, 32, 32, 4, 11, 18, 120 {CBM-N} 169, 117, 1 U{$e6} 185, 97, 193, 157, 0, 212, 169, 0 >{$f0} 153, 91, 193, 200, 192, 3, 208, 207 w{$fa} 76, 49, 234, 234 , 2, 3, 5, 255, 255, 255 {SHIFT-POUND} 255, 255, 255, 0, 0, 0, 18, 2 V 112, 32, 32, 32, 4, 11, 18, 120 {CBM-N} 169, 117, 1 0, 0, 9, 0, 900{CBM-D}c, 32 # xx {CBM-M} 190 m{CBM-N} 49152, 2, a{CBM-N}5, b, 0,0,9,0,900{CBM-D}c, 32 V{CBM-H} 49152, 3, a{CBM-N}10,b,0, 0,9,0,900{CBM-D}c,32 {CBM-V} j{CBM-R}0 {CBM-@} zz{CBM-D}c : H 130 {CBM-S}{$e8} data for the notes {CBM-Y}{$f2} #1 F{$fc} 97,8,.25 O #2 {$e4} 48, 11, .25 {$f9} 48, 11, .25 25 {SHIFT-@} 195, 16, .50 "D 97, 8, .25 /N bar #6 bX 48, 11, .25 u{$e2} 24, 14, .25 H{$ec} 48, 11, .25 U{$f6} bar #7 104, 9, .25 210, 15, .25 {CBM-E} 143, 12, .25 B measure #8 V( 210, 15, .25 {$ea}2 143, 10, .25 {$fb}< measure {SHIFT-POUND} measure #16 B 143, 12, .3 &L 210, 15, .3 9V 24, 14, .3 l 143, 12, .3 ^{$ea} measure #17 Q{$f4} 24, 14, 1 {$fe} 0, 0, 1 -1, -1, -1 sure #13 {SHIFT-@} 24, 14, .75 O" 97, 8, .375 {$e5}, 48, 11, .0625 {$f7}6 measure 0 the transactor volume 5 issue 01 page 63 l 8,8,12,"@0:qs.obj,p,w" ]D "{SHIFT-*}=0000 {$7f}N "{SHIFT-POUND}= X "\_2680 "R=renum10,100 {CBM-M} * {CBM-S} * N * interrupt handling code {$ef}{CBM-N} * to swap between two sets {CBM-H} * of sprt address '@{CBM-J}count .byte 0 ;{CBM-J}errupt count <jpntr .byte 0 qttemp .byte 0 F^sprtno2 .byte 0 Hmask1 .byte 255,254,252,248,240,224,192,128,0 AImask2 .byte 0,1,3,7,15,31,63,127,255 GR; {$ee}{$7c};{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D} initializati code {CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D} ;{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D} sta vic{CBM-N}17 ){$f4}lda #0 ;set raster reg. {CBM-@} j{$fe}sta vic{CBM-N}18 ;{CBM-@}p of screen Osta {CBM-J}count ;initialize counter ;set {CBM-I} {CBM-J}errupt vec{CBM-@}r {CBM-I}lda #{CBM-W}{CBM-J}rtn: sta $0314 {CBM-C}&lda #{CBM-E}{CBM-J}rtn: sta $0315 D0cli L:rts Rd; Xn; {$de}x; {$e4}B; L;{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}myirq ;raster {CBM-J}errupt * {$e4}jmp {CBM-K}out ;ign{CBM-A}e this {CBM-J}errupt o {$e5}; ; {CBM-POUND} caused by raster \ {$ee}myirq {CBM-R}{CBM-D} T {$f8};clear {CBM-J}errupt flag lda #1: sta vic{CBM-N}25 ; ; ; {CBM-B} *;{CBM-D} raster beam is at boundary M 4field{CBM-J} {CBM-R}{CBM-D} {$f3} 5;select appropriate quasi spriteer {CBM-@} {CBM-I}sta vic{CBM-N}18 ;{CBM-J}errupt at /{CBM-D}; ;field j{CBM-L}lda {CBM-J}count: bne noirq L{CBM-Y};perm tem irq routine after {CBM-U};last field (tem irq routine {CBM-R}{CBM-O}; should be comped by the time U{SHIFT-@}; the beam is at the {CBM-@}p of the {$e3}{CBM-F}; screen) {$f1}{SHIFT-*}jmp $esi sprite setup {CBM-D}{CBM-D} &{$60};{CBM-D}{CBM-D} routine follows. {CBM-D}{CBM-D} kJ;{CBM-D}{CBM-D}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q} LT;{CBM-D}{CBM-D} 'sprtset' uses the quasi {$7e};{CBM-D}{CBM-D} sprite table indicated by {CBM-Q};{CBM-D}{CBM-D} '{CBM-J}count', {CBM-P} uses the I;{CBM-D}{CBM-D} Eues in that table as {$ec};{CBM-D}{CBM-D} parameters real spriteo{CBM-J}er {CBM-@} table asl a: asl a: asl a $asl a: asl a: asl a esta pntr: tay ;y is count{CBM-D}64 E;'pntr' po{CBM-J}s {CBM-@} quasi sprite (stp1 lda xy,y: sta vic,x 2iny: inx {SHIFT-POUND}<cpx sprtno2: bne stp1 Bfldx pntr: ldy sprtno Hp; {$ed}z; all the following bit #9 f 48, 11, .75 $p 97, 8, .375 :z 48, 11, .0625 lD measure #10 {$60}N 24, 14, .25 TX 0, 0, .25 24, 14, .25 0, 0, .25 {CBM-S} measure #11 C 24, 14, .375 Y{CBM-N} 143, 12, .0625 {$ee}{CBM-H} 48, 11, .375 {CBM-V} 1 #14 @ 24, 14, .25 j 0, 0, .25 3 t 24, 14, .25 g ^ 0, 0, .25 y H measure #15 N R 24, 14, .375 {$7c} 143, 12, .0625 48, 11, .375 {CBM-P} 104, 9, .0625 C 97, 8, .25 X {CBM-@} 143, 10, .375 {$ee} {CBM-S} 48, 11, .0625 {CBM-U} es. {$ed}{CBM-N}; {CBM-H};x most signicant bits -{CBM-V}lda vic{CBM-N}16: {CBM-P} mask1,y: sta temp pHlda xhi,x : {CBM-P} mask2,y: {CBM-A}a temp _Rsta vic{CBM-N}16 I{CBM--};y {CBM-X}{CBM-P} {$e6}lda vic{CBM-N}23: {CBM-P} mask1,y: sta temp {CBM-S}{$f0}lda {CBM-X}y,x: {CBM-P} mask2,y: {CBM-A}a temp {CBM-X}{$fa}sta vic{CBM-N}23 G;x {CBM-X}{CBM-P} {$eb}lda vic{CBM-N}29: {CBM-P} mask1,y:ites {CBM-V} * H * R 700 %{CBM--} .opt o8 1{$e6} {CBM-D}{CBM-R}$c000 ?{$f0} jmp start G{$fa} sprtno .byte 4 ;# of quasi sprites fieldno .byte 2 ;# of fields {CBM-H}fields .byte 0,135,0,0,0,0,0,0,0,0,0,0 R;start line of each field X"; {$de},; 6vic {CBM-R}$d000 ;vic chip star starts here {CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D} ; )start {CBM-R}{CBM-D} n{CBM-@};disable timer as {CBM-J}errupt source F{CBM-S}lda #$7f: sta $dc0d {CBM-U};enable raster as {CBM-J}errupt source {CBM-@}Blda #1 : sta vic{CBM-N}26 {CBM-D}Lsei OVlda vic{CBM-N}17 ;raster compare {$f4} {CBM-P} #%01111111 ;register, high bit {$ea}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D} V; {CBM-J}rtn {CBM-R}{CBM-D} 6;{CBM-D}{CBM-D} {CBM-J}errupt routine: y;{CBM-D}{CBM-D} permed when beam is at e V;{CBM-D}{CBM-D} of the pre{CBM-Q}set field {CBM-POUND};{CBM-D}{CBM-D} boundaries. {CBM-R}; {CBM-C}lda vic{CBM-N}25 CF;ly process {CBM-J}errupts caused by {$e5}P;raster beam compare register Z{CBM-P} #1: bne s >jsr sprtset hinc {CBM-J}count !rldx {CBM-J}count :\cpx fieldno: bne no ]];reset counter at last field TFldx #0: stx {CBM-J}count {$7f}Pno {CBM-R}{CBM-D} {CBM-G}Zlda vic{CBM-N}17 ;set msb of raster D{CBM-P} #%01111111 ;register {CBM-@} 0 Ssta vic{CBM-N}17 {$f4}lda fields,x ;set rasta31 ~Jnoirq {CBM-R}{CBM-D} T; {$de};exit from {CBM-J}errupt ( {$e8}{CBM-K}out {CBM-R}{CBM-D} d {$f2}pla: tay ; y register, ^ {$fc}pla: tax ;x register, {$7c} pla ;{CBM-P} accumula{CBM-@}r, {CBM-M} rti ; from {CBM-J}errupt ; {CBM-G} $; {CBM-Q} .; {CBM-E} 8; {CBM-Y} b; {CBM--} l;{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D} v;{CBM-D}{CBM-D} the quas. {$f4}{CBM-+};{CBM-D}{CBM-D} {CBM-A}sprtset {CBM-R}{CBM-D} {SHIFT-@}ldy sprtno 7Dlda vic{CBM-N}21: {CBM-P} mask1,y:sta vic{CBM-N}21 vN;disable sprites {CBM-@} be used OX;x y table (8 bytes) {$e2}lda sprtno: asl a: sta sprtno2 {CBM-W}{$ec};number of sprites per field V{$f6}ldx #0 ;po{CBM-J}er {CBM-@} vic{CBM-Q}ii address {$f4} lda {CBM-J}count ;p {CBM-Q}switch D; parameters, the low bits 3N; from the quasi sprite parameter, vX; {CBM-P} the high bits from the Eue Y; in the vic chip are s{CBM-@}red {CBM-J}o ; the vic chip. {CBM-E}; the number of low {CBM-P} high bits R; used deps the number of {$e7} ; quasi sprit04, 9, .0625 H 97, 8, .25 -R 143, 10, .375 c{CBM--} 48, 11, .0625 u{$e6} measure #12 I{$f0} 143, 12, .75 {$7e}{$fa} 48, 11, .375 143, 12, .0625 {CBM-+} measure #13 {SHIFT-@} 24, 14, .75 O" 97, 8, .375 {$e5}, 48, 11, .0625 {$f7}6 measure sta temp lda {CBM-X}x,x: {CBM-P} mask2,y: {CBM-A}a temp "sta vic{CBM-N}29 !,; 56;set up colours j@ldx #0: ldy pntr Ojcolr1 lda colour,y: sta vic{CBM-N}39,x tlda shape,y: sta 2040,x ^iny: inx {CBM-R}Hcpx sprtno: bne colr1 {CBM-U}R; {CBM--}{$7c};finally, enable proper sprites {$f5}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D} "{$f4};{CBM-D}{CBM-D} parameters first set {CBM-D}{CBM-D}{CBM-D} i{$fe};{CBM-D}{CBM-D} of 4 "quasi sprites" {CBM-D}{CBM-D}{CBM-D} o; D;{CBM-Q}{CBM-Q} x,y table {CBM-Q}{CBM-Q} xy .byte 10,80, 150,60, 80,90, 30,110 {CBM-Z}&.byte 0,0, 0,0, 0,0, 0,0 {CBM-W}0; J:;{CBM-Q}{CBM-Q} x high bits {CBM-Q}{CBM-Q} {$e5}dxhi .byte 0,0 {$e3}F; P;{CBM-Q}{CBM-Q} shape table po{CBM-J}ers {CBM-Q}{CBM-Q} "Zshape .byte 128,129,130,131 4{$e4}.byte 0,0,0,0 :{$ee}; @{$f8}; G;{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D} ;{CBM-D}{CBM-D} parameters quasi sprite {CBM-D}{CBM-D} {CBM-W};{CBM-D}{CBM-D} set 2 {CBM-D}{CBM-D} {CBM-O} ; E*{CBM-D}{CBM-R}xy{CBM-N}64 P4qs2 {CBM-R}{CBM-D} {$fb}>.by {$e7}.byte 0,0,0,0 {$ed}; {$f3}{CBM-I}; {$f9}J; T{CBM-D}{CBM-R}qs2{CBM-N}64 {$de}qs3 {CBM-R}{CBM-D} 5;{CBM-D}{CBM-D} parameters quasi sprite 3 d;{CBM-D}{CBM-D} K here jb; wl{CBM-D}{CBM-R}qs3{CBM-N}64 Bvqs4 {CBM-R}{CBM-D} {$60};{CBM-D}{CBM-D} parameters quasi sprite 4 J; T{CBM-D}{CBM-R}qs4{CBM-N}64 {CBM-@}{$7e}qs5 {CBM-R}{CBM-D} {CBM-F};{CBM-D}{CBM-D} quasi sprite 5 A; N{CBM-D}{CBM-R}qs5{CBM-N}64 Y{CBM-+}qt settings of quasi {$ea}; sprites 1&2 are merely {$eb}; demstrati pur{CBM-O}es. ${$ec}; *{$f6}; o ;{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D} of source {CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D} v . \ : T : "cont:": Z( : 2 b{CBM-R}12{CBM-D}4096 {CBM-Z}< execute initialization routine {CBM-L}f (b) {CBM-C}p Bz : HD : NN : {$ee}0 the transactor volume 5 issue 01 page 67 v quarter square graphics plotter H c64 version S2 9000 D ********** functions ********** BN **** exponential curve **** RX x1{CBM-R}0 : y1{CBM-R}1 {$e3} x2{CBM-R}0 {CBM-@} 159 {$fa} y2{CBM-R}{CBM-X} (x2{CBM-Z}42{CBM-D}80{CBM-Z}ln) 26{CBM-Z}180 : x1{CBM-R}0 : y1{CBM-R}50 : dc{CBM-R}100 +@ x2{CBM-R}0 {CBM-@} 159 vjy2{CBM-R}25 {CBM-N} 24 {CBM-D} {CBM-V}(x2 {CBM-D} n {CBM-D} c) {CBM-D} {CBM-X}({CBM-Q}x2{CBM-Z}dc) Ut 3000 : y1{CBM-R}y2 : x1{CBM-R}x2 : **** draw 5 random lines **** {SHIFT-*}x1{CBM-R}{CBM-J}({CBM-F}(ti){CBM-D}ln{CBM-D}2) : y1{CBM-R}{CBM-J}({CBM-F}(ti){CBM-D}50) N{CBM-@} j{CBM-R}1 {CBM-@} 5 {$f4}{CBM-S}x2{CBM-R}{CBM-J}({CBM-F}(ti){CBM-D}ln{CBM-D}2) : y2{CBM-R}{CBM-J}({CBM-F}(ti){CBM-D}50) {CBM-U}!@ ********** plot x, y ********** tjtx{CBM-R}{CBM-J}(x{CBM-N}ir):ty{CBM-R}{CBM-J}(y{CBM-N}ir) :sq{CBM-R}am(tx {CBM-P} am, ty {CBM-P} am) tp{CBM-R}tx{CBM-Z}dv{CBM-Q}{CBM-J}(ty{CBM-Z}dv){CBM-D}ln : bs{CBM-N}p,c(i(B(p{CBM-N}bs)){CBM-A}sq) y cs{CBM-N}p, 1 ^ C(# ********** setup ********** M2# "" {$ea}<# c(15), i(255), am(1,1) f# i{CBM-R}0 {CBM-@}0 the transactor volume 5 issue 01 page 67 v quarter square graphics plotter V vic 20 unexpanded version 2 9000 {CBM-Q}D ********** functions ********** PN **** exponential curve **** X x1{CBM-R}0 : y1{CBM-R}1 {$f1} x2{CBM-R}0 {CBM-@} 159 y2{CBM-R}{CBM-X} (x2 ln : c{CBM-R}3.1415926{CBM-Z}180 : x1{CBM-R}0 : y1{CBM-R}50 : dc{CBM-R}100 9@ x2{CBM-R}0 {CBM-@} 159 Djy2{CBM-R}25 {CBM-N} 24 {CBM-D} {CBM-V}(x2 {CBM-D} n {CBM-D} c) {CBM-D} {CBM-X}({CBM-Q}x2{CBM-Z}dc) t 3000 : y1{CBM-R}y2 : x1{CBM-R}x2 : {CBM-POUND} **** draw 5 random lines **** Nx1{CBM-R}{CBM-J}({CBM-F}(ti){CBM-D}ln{CBM-D}2) : y1{CBM-R}{CBM-J}({CBM-F}(ti){CBM-D}50) {CBM--}{CBM-@} j{CBM-R}1 {CBM-@} 5 {CBM-S}x2{CBM-R}{CBM-J}({CBM-F}(ti){CBM-D}ln{CBM-D}2) : y2{CBM-R}{CBM-J}({CBM-F}ldx pntr: ldy sprtno lda enbl,x: {CBM-P} mask2,y: {CBM-A}a vic{CBM-N}21 )sta vic{CBM-N}21 1{CBM-@}rts 7{CBM-S}; ^{CBM-U};{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D} B;{CBM-D} the mem{CBM-A}y area the quasi {CBM-D} {SHIFT-POUND}L;{CBM-D} sprite parameters follows. {CBM-D} PV;{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D} V ; {$fd}{$ea};{CBM-D}{CBM-D}%00000001 {$eb}n; x;{CBM-Q}{CBM-Q} x {CBM-X}ansi bits (1{CBM-R}{CBM-X}{CBM-P}) {CBM-Q}{CBM-Q} $B{CBM-X}x .byte %00000010 *L; cV;{CBM-Q}{CBM-Q} y {CBM-X}ansi bits {CBM-Q}{CBM-Q} \{CBM-X}y .byte %00000010 B; ;{CBM-Q}{CBM-Q} sprite enable bits (1{CBM-R}enable) {CBM-T}enbl .byte %00001111 {SHIFT-POUND}{CBM-POUND}; {CBM-C}{CBM-R};{CBM-Q}{CBM-Q} colours {CBM-Q}{CBM-Q} {SHIFT--}{CBM-C}colour .byte 1,2,3,4,0,0,te 190,150, 10,200, 180,170, 70,160 h.byte 0,0, 0,0, 0,0, 0,0 9r.byte %00000010 ;x high bits s\.byte %00001000 ;x {CBM-X}{CBM-P} MF.byte %00001000 ;y {CBM-X}{CBM-P} P.byte %00001111 ;sprite enable {CBM-W}Z.byte 5,6,7,8,0,0,0,0 ;colours U.byte 000,033,055,055 ;shapes s6 {CBM-R}{CBM-D} {$f0}{CBM-A};{CBM-D}{CBM-D} quasi sprite 6 {$f6}{SHIFT-@}; D{CBM-D}{CBM-R}qs6{CBM-N}64 Nqs7 {CBM-R}{CBM-D} X; 7{$e2};etc. (ine as many as needed) ={$e3}; B{$e4};the above sprite parameters may {$e5};set up {CBM-A} changed from basic {CBM-@}{$e6};(via a ), {CBM-A} from a machine {CBM-F}{$e7};language program. A{$e8}; {$e5}{$e9}; the curren "X 53281,0:53280,11:"";: ; D{CBM-D}{CBM-R}qs6{CBM-N}64 Nqs7 {CBM-R}{CBM-D} X; 7{$e2};etc. (ine as many as needed) ={$e3}; B{$e4};the above sprite parameters may {$e5};set up {CBM-A} changed from basic {CBM-@}{$e6};(via a ), {CBM-A} from a machine {CBM-F}{$e7};language program. A{$e8}; {$e5}{$e9}; the curren 3000 : y1{CBM-R}y2 : x1{CBM-R}x2 : >H **** sine wave **** MR n{CBM-R}6{CBM-D}80{CBM-Z}ln : c{CBM-R}3.1415926{CBM-Z}180 : x1{CBM-R}0 : y1{CBM-R}25 {$7e}{CBM--} x2{CBM-R}0 {CBM-@} 159 {$e6} y2{CBM-R}25 {CBM-N} 24 {CBM-D} {CBM-B}(x2 {CBM-D} n {CBM-D} c ) {CBM-X}{$f0} 3000 : y1{CBM-R}y2 : x1{CBM-R}x2 : {$e2}, **** decaying cosine wave **** 6n{CBM-R}8{CBM-D}80{CBM-Z}ln : c{CBM-R}3.14159 3000 : y1{CBM-R}y2 : x1{CBM-R}x2 : {$f4} c{CBM-U} ********** plot a line ********** IBdx{CBM-R}x2{CBM-Q}x1 : dy{CBM-R}y2{CBM-Q}y1 : x{CBM-R}x1 : y{CBM-R}y1 Ll{CBM-R}{SHIFT-@}(dx{CBM-D}dx{CBM-N}dy{CBM-D}dy) : l{CBM-R}0 {CBM-M} 3040 {CBM-T}Vxi{CBM-R}dx{CBM-Z}l : yi{CBM-R}dy{CBM-Z}l Z 8000 : ({CBM-L}(x2{CBM-Q}x){CBM-W}{CBM-R}{CBM-L}(xi)) {CBM-P} ({CBM-L}(y2{CBM-Q}y){CBM-W}{CBM-R}{CBM-L}(yi)) {CBM-M} {$f7}{$ea}x{CBM-R}x{CBM-N}xi : y{CBM-R}y{CBM-N}yi : 3040 {$f6} 15 : c(i) : i(c(i)){CBM-R}i : cp# i{CBM-R}0{CBM-@}1 : j{CBM-R}0{CBM-@}1 : am(j,i){CBM-R}(j{CBM-N}1){CBM-D}4{CBM-S}i : j,i Sz#ln{CBM-R}40 : bs{CBM-R}1024{CBM-N}24{CBM-D}ln : dv{CBM-R}2 : am{CBM-R}1 : ir{CBM-R}.5 _#cs{CBM-R}55296{CBM-N}24{CBM-D}ln {CBM-H}D# 32, 123, 108, 98, 126, 97, 127, 252 {$e2}N# 124, 255, 225, 254, 226, 236, 251, 160 {$e8}X# : 3040 {CBM-Z}42{CBM-D}80{CBM-Z}ln) ' 3000 : y1{CBM-R}y2 : x1{CBM-R}x2 : lH **** sine wave **** {$7b}R n{CBM-R}6{CBM-D}80{CBM-Z}ln : c{CBM-R}3.1415926{CBM-Z}180 : x1{CBM-R}0 : y1{CBM-R}25 {CBM--} x2{CBM-R}0 {CBM-@} 159 {CBM-D}{$e6} y2{CBM-R}25 {CBM-N} 24 {CBM-D} {CBM-B}(x2 {CBM-D} n {CBM-D} c ) K{$f0} 3000 : y1{CBM-R}y2 : x1{CBM-R}x2 : {$f0}, **** decaying cosine wave **** (6n{CBM-R}8{CBM-D}80{CBM-Z} (ti){CBM-D}50) !{CBM-U} 3000 : y1{CBM-R}y2 : x1{CBM-R}x2 : '{$f4} q{CBM-U} ********** plot a line ********** WBdx{CBM-R}x2{CBM-Q}x1 : dy{CBM-R}y2{CBM-Q}y1 : x{CBM-R}x1 : y{CBM-R}y1 Ll{CBM-R}{SHIFT-@}(dx{CBM-D}dx{CBM-N}dy{CBM-D}dy) : l{CBM-R}0 {CBM-M} 3040 {CBM-E}Vxi{CBM-R}dx{CBM-Z}l : yi{CBM-R}dy{CBM-Z}l {$e8} 8000 : ({CBM-L}(x2{CBM-Q}x){CBM-W}{CBM-R}{CBM-L}(xi)) {CBM-P} ({CBM-L}(y2{CBM-Q}y){CBM-W}{CBM-R}{CBM-L}(yi)) {CBM-M} {$ea}x{CBM-R}x{CBM-N}xi : y{CBM-R}1) f# i{CBM-R}0 {CBM-@} 15 : c(i) : i(c(i)){CBM-R}i : qp# i{CBM-R}0{CBM-@}1 : j{CBM-R}0{CBM-@}1 : am(j,i){CBM-R}(j{CBM-N}1){CBM-D}4{CBM-S}i : j,i z#ln{CBM-R}22 : bs{CBM-R}7680{CBM-N}22{CBM-D}ln : dv{CBM-R}2 : am{CBM-R}1 : ir{CBM-R}.5 _#cs{CBM-R}38400{CBM-N}22{CBM-D}ln BD# 32, 123, 108, 98, 126, 97, 127, 252 {$f0}N# 124, 255, 225, 254, 226, 236, 251, 160 {$f6}X0 the transactor volume 5 issue 01 page 71 oz c1${CBM-R}G(17):c2${CBM-R}G(147):sp{CBM-R}16 ZD c2$c1$" t a l k i n g c l o c k" {CBM-I}N c1$" (c) vikash verma,calgary" JS c1$c1$"this clock will sound off"; {$e2}X " the time of day" {$7d} c1$"once every minute" cr ) da, B(da) {CBM-A} 4 : set pa2 for output n ra, B(ra) {CBM-P} 251 : set pa2 low b$(20),c$(5):d${CBM-R}">>":am${CBM-R}"f!)>ball":pm${CBM-R}"%<)>ball" {CBM-N} a$,e$ {CBM-N}{CBM-H} i{CBM-R}0{CBM-@}20:a$,b$(i):i B{CBM-V} i{CBM-R}2{CBM-@}5:a$,c$(i):i H c1$c1$c1$c1$c1$c1$" to set clock enter time in t{CBM-R}pm$ ,a${CBM-R}b$(hr):410:mn{CBM-R}0370 26mn{CBM-W}10{CBM-M}a${CBM-R}b$(0):410 b@mn{CBM-W}{CBM-R}20{CBM-M}340 Mjm1{CBM-R}{CBM-J}(mn{CBM-Z}10):mn{CBM-R}mn{CBM-Q}m1{CBM-D}10:a${CBM-R}c$(m1):410 ta${CBM-R}b$(mn):mn{CBM-E}0{CBM-M}410 ^a${CBM-R}mr$:410 H220 {CBM-S}Rhr{CBM-W}12{CBM-M}350 J{$7c}mr${CBM-R}am${CBM-M}mr${CBM-R}"li^mh@)*" {$e1}mr${CBM-R}pm${CBM-M}mr${CBM-R}"m(m" {$ea}350 a${CBM-R}a${CBM-N}d the time is, 83>*h@)l>kr>> o, 444 , one, -21m : two, *( l & three, 9+<) ] 0 four, ]55+ N : five, ]h)o {$7f} d six, _iyc_ n seven, _@o@m {CBM-T} x eight, e)* {CBM-H} B nine, mh)m C L ten, *am X V eleven, jxeo@m {$ed} twelve, *-axoc *) time is, 83>*h@)l>kr>> o, 444 , one, -21m : two, *( l & three, 9+<) ] 0 four, ]55+ N : five, ]h)o {$7f} d six, _iyc_ n seven, _@o@m {CBM-T} x eight, e)* {CBM-H} B nine, mh)m C L ten, *am X V eleven, jxeo@m {$ed} twelve, *-axoc 0 the transactor volume 5 issue 01 page 71 nz c1${CBM-R}G(17):c2${CBM-R}G(147):sp{CBM-R}7 YD c2$c1$" t a l k i n g c l o c k" {CBM-K}N c1$" (c) vikash verma,calgary" IS c1$c1$"this clock will sound off"; {$e1}X " the time of day" {$7d} c1$"once every minute":20),c$(5):d${CBM-R}">>":am${CBM-R}"f!)>ball":pm${CBM-R}"%<)>ball" 6{CBM-N} a$,e$ o{CBM-H} i{CBM-R}0{CBM-@}20:a$,b$(i):i G{CBM-V} i{CBM-R}2{CBM-@}5:a$,c$(i):i {CBM-E}H c1$c1$c1$c1$c1$c1$" to set clock enter time in the format :hhmmss" {SHIFT-*}R ti$:c2$; {$f9}{CBM--} t${CBM-R}ti$:cr$;H(t$,2)":"J(t$,3,2)":"J(t$,5):t${CBM-R}H(t$,4) mn{CBM-R}mn{CBM-Q}m1{CBM-D}10:a${CBM-R}c$(m1):410 +ta${CBM-R}b$(mn):mn{CBM-E}0{CBM-M}410 ;^a${CBM-R}mr$:410 dH220 sRhr{CBM-W}12{CBM-M}350 O{$7c}mr${CBM-R}am${CBM-M}mr${CBM-R}"li^mh@)*" mr${CBM-R}pm${CBM-M}mr${CBM-R}"m(m" 350 {CBM-N}a${CBM-R}a${CBM-N}d$: a{CBM-R}1 {CBM-@} C(a$) E{CBM-@}x{CBM-R}F(J(a$,a,1)) : 440 Q{CBM-S} a : {CBM-U} ro, x : send ascii of phonemy{CBM-N}yi : 3040 /@ ********** plot x, y ********** Bjtx{CBM-R}{CBM-J}(x{CBM-N}ir):ty{CBM-R}{CBM-J}(y{CBM-N}ir) :sq{CBM-R}am(tx {CBM-P} am, ty {CBM-P} am) tp{CBM-R}tx{CBM-Z}dv{CBM-Q}{CBM-J}(ty{CBM-Z}dv){CBM-D}ln : bs{CBM-N}p,c(i(B(p{CBM-N}bs)){CBM-A}sq) {CBM-K}y cs{CBM-N}p, 2 {CBM-M}^ Q(# ********** setup ********** {SHIFT-+}2# "" {$f8}<# c(15), i(255), am(1, # : 3040 /@ ********** plot x, y ********** Bjtx{CBM-R}{CBM-J}(x{CBM-N}ir):ty{CBM-R}{CBM-J}(y{CBM-N}ir) :sq{CBM-R}am(tx {CBM-P} am, ty {CBM-P} am) tp{CBM-R}tx{CBM-Z}dv{CBM-Q}{CBM-J}(ty{CBM-Z}dv){CBM-D}ln : bs{CBM-N}p,c(i(B(p{CBM-N}bs)){CBM-A}sq) {CBM-K}y cs{CBM-N}p, 2 {CBM-M}^ Q(# ********** setup ********** {SHIFT-+}2# "" {$f8}<# c(15), i(255), am(1,:c1$c1$" or" 4 c1$"whenever any key is pressed" z cr${CBM-R}G(19):i{CBM-R}1{CBM-@}10:cr${CBM-R}cr${CBM-N}G(17): U i{CBM-R}1{CBM-@}sp:cr${CBM-R}cr${CBM-N}" ":i {CBM-Q} ra{CBM-R}56576 : rb{CBM-R}ra{CBM-N}1 : da{CBM-R}ra{CBM-N}2 : db{CBM-R}rb{CBM-N}2 : ic{CBM-R}ra{CBM-N}13 X db, 255 : set port b for all outputs {$fe} x{CBM-R}B(ic) : dummy read to set ihe format :hhmmss" R ti$:c2$; t{CBM--} t${CBM-R}ti$:cr$;H(t$,2)":"J(t$,3,2)":"J(t$,5):t${CBM-R}H(t$,4) {$60}{$e6} mr${CBM-R}am$ {$f0} hr{CBM-R}E(H(t$,2)):mn{CBM-R}E(I(t$,2)) {CBM-@}{$fa} {CBM-K}a$:a${CBM-W}{CBM-E}""{CBM-A}t${CBM-W}{CBM-E}ts${CBM-M}ts${CBM-R}t$:270 {CBM-Z}220 Ma${CBM-R}e$:410:hr{CBM-R}0{CBM-M}hr{CBM-R}12:300 {$e9}hr{CBM-E}12{CBM-M}hr{CBM-R}hr{CBM-Q}12:mr${CBM-R}pm$ {$fc}"hr{CBM-R}12{CBM-M}mr$$: a{CBM-R}1 {CBM-@} C(a$) {CBM-@}x{CBM-R}F(J(a$,a,1)) : 440 ,{CBM-S} a : B{CBM-U} rb, x : send ascii of phoneme to sweet talker B send one shot pulse on pa2 Lda{CBM-R}B(ra) : ra, da {CBM-A} 4 {CBM-D}V ra, da {SHIFT-+} wait for neg transition on flag2 (pin 8) {$e8}{$ea} ic, 16 {$ee}{$f4} {$fe} thirteen, "9:+*,m" fourteen, "]5+*,m" 7 fifteen, "]i]*,m" q{CBM-POUND} sixteen, "_iyc_*,m" M{CBM-R} seventeen, "_@o@m*,m" {CBM-C} eighteen, "e)d,m" F nineteen, "mh)m*,m" {CBM-L}P twenty, "*-am*," LZ thirty, "9:+*)" {CBM-*}{$e4} forty, ]5+*) {$f2}{$ee} fifty, ]i]e to sweet talker B pc, B(pc) {CBM-A} 224 >L send one shot pulse on cb2 [V pc, (B(pc) {CBM-P} 31) {CBM-A} 192 wait for -ve transition on ca1 {$ea} (B(fr) {CBM-P} 16) {CBM-W}{CBM-E} 16 {CBM-M} 490 {CBM-G}{$f4} F{$fe} the time is, 83>*h@)l>kr>> S o, 444 {$e3} one, -21m {$f1} two, *( c1$c1$" or" 3 c1$"whenever any key is pressed" y cr${CBM-R}G(19):i{CBM-R}1{CBM-@}10:cr${CBM-R}cr${CBM-N}G(17): T i{CBM-R}1{CBM-@}sp:cr${CBM-R}cr${CBM-N}" ":i {CBM-Y} ro{CBM-R}37136:pc{CBM-R}37148:dd{CBM-R}ro{CBM-N}2:fr{CBM-R}pc{CBM-N}1:dd,255: set ora for output {$f3} pc,B(pc){CBM-P}239: set pcr to detect -ve transition on ca1 + b$({$e6} mr${CBM-R}am$ %{$f0} hr{CBM-R}E(H(t$,2)):mn{CBM-R}E(I(t$,2)) i{$fa} {CBM-K}a$:a${CBM-W}{CBM-E}""{CBM-A}t${CBM-W}{CBM-E}ts${CBM-M}ts${CBM-R}t$:270 r220 Ra${CBM-R}e$:410:hr{CBM-R}0{CBM-M}hr{CBM-R}12:300 hr{CBM-E}12{CBM-M}hr{CBM-R}hr{CBM-Q}12:mr${CBM-R}pm$ {CBM-K}"hr{CBM-R}12{CBM-M}mr${CBM-R}pm$ {CBM-V},a${CBM-R}b$(hr):410:mn{CBM-R}0370 W6mn{CBM-W}10{CBM-M}a${CBM-R}b$(0):410 {$e7}@mn{CBM-W}{CBM-R}20{CBM-M}340 jm1{CBM-R}{CBM-J}(mn{CBM-Z}10): {$ed}0 the transactor volume 5 issue 02 page 18 C a{CBM-R}0:b{CBM-R}1:r{CBM-R}53281:i{CBM-R}0{CBM-@}1{SHIFT-POUND}0: r,a: r,b: * change the number of spaces in {CBM-P} * line 10 for different effects. S * change r=53281 to r=53280 to {$e9} * scroll border. 5, 192, 145, 25 {CBM-Y}0 the transactor volume 5 issue 02 page 18 ? lo{CBM-R}12{CBM-D}4096 \ c{CBM-R}{CBM-J}(lo{CBM-Z}256) : b{CBM-R}lo{CBM-Q}c{CBM-D}256 i{CBM-R}lo {CBM-@} lo{CBM-N}4 : a : i,a : ( 808,b : 809,c : {CBM-W}2 169,255,133,145,96 change r=53281 to r=53280 to {$e9} * scroll border. 5, 192, 145, 250 the transactor volume 5 issue 02 page 19 {$60} this is the updated version of auto liner see volume 4 issue 06 for the original version {SHIFT-*}{$60}{$ea} "4.0/2.0 auto: start, increment";s,i XJ{$ea} ""; s;:167,0 {$f2}T{$ea}{CBM-K}a$ : a${CBM-R}"" {CBM-M} 60020 {$7e}{$ea} 170,0 0 the transactor volume 5 issue 02 page 19 {$60} this is the updated version of auto liner see volume 4 issue 06 for the original version {CBM-F}{$60}{$ea} "64 auto: start, increment";s,i SJ{$ea} ""; s;:204,0 {$ed}T{$ea}{CBM-K}a$ : a${CBM-R}"" {CBM-M} 60020 {$7e}{$ea} 207, 0 : 0 the transactor volume 5 issue 02 page 20 yD si${CBM-R}G(15) : bs${CBM-R}G(8) : d{CBM-R}1024 : 4,4 JN a{CBM-R}d {CBM-@} d{CBM-N}39 WX 4, si$; b{CBM-R}B(a) {CBM-K} b{CBM-E}{CBM-Q}1 {CBM-P} b{CBM-W}32 {CBM-M} e${CBM-R}G(b{CBM-N}64) {CBM-X} b{CBM-E}31 {CBM-P} b{CBM-W}64 {CBM-M} e${CBM-R}G(b) {CBM--} b{CBM-E}63 {CBM-P} b{CBM-W}96 {CBM-M} e${CBM-R}G(b{CBM-N}32) {$fc}{CBM-N} b{CBM-E}95 {CBM-P} b{CBM-W}128 {CBM-M} e${CBM-R}G(b{CBM-N}64) 0 the transactor volume 5 issue 02 page 21 e basic 4.0 only D{$e8} eep eep 4.0 use sys 634 {$7c}{$f2} j{CBM-R}634 {CBM-@} 676 : x {$fc} j,x : ch{CBM-R}ch{CBM-N}x : {CBM-V} ch {CBM-W}{CBM-E} 6145 {CBM-M} "checksum error" : {$e5} 671, 238 : 672, 147 : 673, 2 169, 131, 133, 144& three, 9+<) 0 four, ]55+ % : five, ]h)o 6 d six, _iyc_ i n seven, _@o@m z x eight, e)* K B nine, mh)m Z L ten, *am V eleven, jxeo@m {CBM-@} twelve, *-axoc {CBM-X} thirteen, "9:+*,m" V fourteen, "]5+*,m" {$ee} fifteen, "]i]*,m" {CBM-POUND}0 the transactor volume 5 issue 02 page 21 o{$e8} mirror 80 use sys 634 G{$f2} j{CBM-R}634 {CBM-@} 682 : x {$7f}{$fc} j,x : ch{CBM-R}ch{CBM-N}x : {SHIFT-POUND} ch {CBM-W}{CBM-E} 6696 {CBM-M} "checksum error" : {CBM-P} {CBM--} 169, 131, 133, 144, 169, 2, 133, 145 $ 96, 162, 0, 160, 255, 180 the transactor volume 5 issue 02 page 21 o{$e8} mirror 40 use sys 634 G{$f2} j{CBM-R}634 {CBM-@} 682 : x {$7f}{$fc} j,x : ch{CBM-R}ch{CBM-N}x : {CBM-POUND} ch{CBM-W}{CBM-E} 6710 {CBM-M} "checksum error" : {CBM-R} 634 {CBM-*} 169, 131, 133, 144, 169, 2, 133, 145 $ 96, 162, 0, 160, 255, 0 the transactor volume 5 issue 02 page 21 Z updated version - background color bug compensation eliminated {$e8} mirror 64 {CBM-I}{$f2} j{CBM-R}828 {CBM-@} 900 : x {SHIFT-@}{$fc} j,x : ch{CBM-R}ch{CBM-N}x : {$e3} ch{CBM-W}{CBM-E} 8386 {CBM-M} "checksum error" : {$f3} "";: 828 {$f9}: ~ , 169, 71, 141, 20, 3, 169, 3, 141 y$ 21, 3, 96, 162, 0, 160, 255, 189 . 0, 4, 153, 232, 6, 173, 134, 2 {CBM-W}8 153, 232, 218, 136, 232, 208, 240, 238 b 77, 3, 206, 80, 3, 234, 234, 234 l 206, 86, 3, 173, {CBM-+}77, 3, 201, 6 : v 208, 221, 169, 4, 141, 77, 3, 169 G {$60} 6, 141, 80, 3, 169, 2, 141, 83 J 3, 169, 218, 141, 86, 3, 76, 49 T 234 {$fc} j,x : ch{CBM-R}ch{CBM-N}x : {$e3} ch{CBM-W}{CBM-E} 8386 {CBM-M} "checksum error" : {$f3} "";: 828 {$f9}: ~ {CBM-E} : a$; : F(a$){CBM-W}{CBM-E}13 {CBM-M} 60020 l{$ea}p{CBM-R}B(33009{CBM-N}C(D(s))) : p{CBM-R}32 {CBM-A} p{CBM-R}160 {CBM-M} 60010 O{$ea} "s="s{CBM-N}i ":i="i ":goto60010" {$ea} 623,13 : 624,13 : 158,2 {CBM-Q}{CBM-+}{$ea} 167,1 : 170,0 : {CBM-N} a$; : F(a$){CBM-W}{CBM-E}13 {CBM-M} 60020 g{$ea}p{CBM-R}B(1145{CBM-N}C(D(s))) : p{CBM-R}32 {CBM-A} p{CBM-R}160 {CBM-M} 60010 J{$ea} "s="s{CBM-N}i ":i="i ":goto60010" {$ea} 631,13 : 632,13 : 198,2 {CBM-@}{CBM-+}{$ea} 204,1 : 207,0 : : l{CBM-H} 4, e$; {CBM-V} H 4, bs$ 6R d{CBM-R}d{CBM-N}40 : d{CBM-E}1984 {CBM-M} 230 @{CBM--} 110 f{$e6} {$ea} "s="s{CBM-N}i ":i="i ":goto60010" {$ea} 631,13 : 632,13 : 198,2 {CBM-@}{CBM-+}{$ea} 204,1 : 207,0 : : , 169, 2, 133, 145 ?$ 96, 169, 16, 141, 75, 232, 169, 20 L. 141, 74, 232, 165, 168, 141, 72, 232 8 160, 0, 200, 208, 253, 169, 0, 141 Fb 75, 232, 141, 74, 232, 234, 234, 234 Zl 76, 85, 228 {CBM-F} sixteen, "_iyc_*,m" ${CBM-R} seventeen, "_@o@m*,m" <{CBM-C} eighteen, "e)d,m" vF nineteen, "mh)m*,m" MP twenty, "*-am*," Z thirty, "9:+*)" {$e4} forty, ]5+*) {SHIFT-POUND}{$ee} fifty, ]i]*) time is, 83>*h@)l>kr>> S o, 444 {$e3} one, -21m {$f1} two, *( M9, 0, 128 6. 153, 208, 134, 136, 232, 208, 246, 238 C8 137, 2, 206, 140, 2, 173, 137, 2 b 201, 132, 208, 233, 169, 128, 141, 137 {CBM-X}l 2, 169, 134, 141, 140, 2, 76, 85 Gv 228 76, 85, 228 P 189, 0, 128 9. 153, 232, 130, 136, 232, 208, 246, 238 F8 137, 2, 206, 140, 2, 173, 137, 2 b 201, 130, 208, 233, 169, 128, 141, 137 {SHIFT-*}l 2, 169, 130, 141, 140, 2, 76, 85 Jv 228 76, 85, 228 0 the transactor volume 5 issue 02 page 23 c{$e8} un-cursor 20 \{$f2} j{CBM-R} 828 {CBM-@} 888 : x U{$fc} j, x : ch{CBM-R}ch{CBM-N}x : ch {CBM-W}{CBM-E} 7141 {CBM-M} "checksum error" : {SHIFT-POUND} 828 V 169, 71, 141, 20, 3, 169, 3, 141 $ 21, 3, 96, 165, 207, 201, 1 1, 234 he transactor volume 5 issue 02 page 23 c{$e8} un-cursor 20 \{$f2} j{CBM-R} 828 {CBM-@} 888 : x U{$fc} j, x : ch{CBM-R}ch{CBM-N}x : ch {CBM-W}{CBM-E} 7141 {CBM-M} "checksum error" : {SHIFT-POUND} 828 V 169, 71, 141, 20, 3, 169, 3, 141 $ 21, 3, 96, 165, 207, 201, 1 , "Article related programs start here m "note: this file is only a L "directory placemarker - ( "scratch it if you wish. ecksum error" : {SHIFT-POUND} 828 V 169, 71, 141, 20, 3, 169, 3, 141 $ 21, 3, 96, 165, 207, 201, 1 {SHIFT--}0 the transactor volume 5 issue 02 page 50 h commodore 64 only Q pop{CBM-R}828: k{CBM-R}pop {CBM-@} pop{CBM-N}24: j: k,j: {CBM-Q} 104,104,169,255,133,74,32,138,163,154,201,141,240,5 Y 162,12,76,55,164,104,104,104,104,104,96 21, 3, 96, 165, 207, 201, 10 the transactor volume 5 issue 02 page 51 h * un-token memory T * will list a basic program in memory ******************************* F * 4.0 basic ts=45234:te=45579:sb=1025 {$f2} * c64 ts=41118:te=41373:sb=2049 %# * ts+::G(147):63904 j{$f9}k{CBM-R}k{CBM-Q}128:kw$(kw){CBM-R}kw$(kw){CBM-N}G(k):kw$(kw),:kw{CBM-R}kw{CBM-N}1::G(147) {$f9}c{CBM-R}B(sb){CBM-N}256{CBM-D}B(sb{CBM-N}1):d{CBM-R}B(sb{CBM-N}2){CBM-N}256{CBM-D}B(sb{CBM-N}3):c{CBM-R}0{CBM-M}63910 {CBM-W}{CBM-K}{$f9}c;d;:e{CBM-R}sb{CBM-N}4{CBM-@}c{CBM-Q}2:f{CBM-R}B(e):f${CBM-R}G(f):ind{CBM-M}63907 L{CBM-I}{$f9}f{CBM-E}127{CBM-M}f${CBM-R}kw$(f{CBM-Q}128) {$e4}{CBM-T}{$f9}ind{CBM-M}f${CBM-R}G(F(f$){CBM-A}64) {$fc}{CBM-@}{$f9}f$;:f{CBM-R}34{CBM-M}ind{CBM-R}{CBM-POUND}i0 the transactor volume 5 issue 02 page 52 f * un-token disk V * will list most basic programs from disk ******************************* H * 4.0 basic ts=45234:te=45579:sb=1025 {$f4} * c64 ts=41118:te=41373:sb=2049 '# * t:70 5a k{CBM-R}k{CBM-Q}128:kw$(kw){CBM-R}kw$(kw){CBM-N}G(k):kw$(kw),:kw{CBM-R}kw{CBM-N}1: Jf G(147){CBM-N}"program file name ";:pn$:C(pn$){CBM-E}16{CBM-M}70 k "drive number";d$:d${CBM-W}"0"{CBM-A}d${CBM-E}"1"{CBM-M}75 {CBM-U}p G(147);:5,8,5,""{CBM-N}d${CBM-N}":"{CBM-N}pn${CBM-N}"" {CBM-*}u 145:ps{CBM-R}F(a$):145:ps{CBM-R}ps{CBM-N}256{CBM-D}F(a$) z sb{CBM-W}{CBM-E}ps{CBM-M}"not a basic {$7e}ind sb{CBM-R}sb{CBM-N}1:sb{CBM-N}4{CBM-W}c{CBM-M}110 ( :ind{CBM-R}0:sb{CBM-R}c:95 k {CBM-K}#5,a$:a${CBM-R}H(a${CBM-N}G(0),1):st{CBM-R}0{CBM-M} R 5::"program size"sb{CBM-Q}ps"bytes": mber";d$:d${CBM-W}"0"{CBM-A}d${CBM-E}"1"{CBM-M}75 {CBM-U}p G(147);:5,8,5,""{CBM-N}d${CBM-N}":"{CBM-N}pn${CBM-N}"" {CBM-*}u 145:ps{CBM-R}F(a$):145:ps{CBM-R}ps{CBM-N}256{CBM-D}F(a$) z sb{CBM-W}{CBM-E}ps{CBM-M}"not a basic 0 the transactor volume 5 issue 02 page 54 @D merge 4.0 \N 53, 125 : 52, 0 : XX j{CBM-R}32000 {CBM-@} 32476 : x j, x : ch{CBM-R}ch{CBM-N}x : {CBM-C} ch {CBM-W}{CBM-E} 51230 {CBM-M} "checksum error" : {$e4} "merge basic programs - basic 4.0 "load the first pro, 240 0. 41, 169, 30, 133, 88, 169, 0, 133 ]8 87, 168, 177, 87, 73, 128, 145, 87 b 200, 208, 247, 230, 88, 165, 88, 201 {CBM-Y}l 32, 208, 239, 238, 74, 3, 173, 74 {$e4}v 3, 201, 2, 208, 5, 169, 0, 141 {$60} 74, 3, 76, 19gram into ram 9{CBM-N} "type sys 32000 and follow instructions ]{CBM-P} caution - save before running {CBM-H} 169, 0, 133, 209, 169, 147, 32, 210 {CBM-Y}{CBM-V} 255, 162, 0, 32, 79, 126, 32, 228 {$e4}H 255, 201, 89, 240, 7, 201, 78, 208 R 245, 76, 255, 17 9, 162, 73, 32, 79 >{CBM--} 126, 32, 207, 255, 201, 20, 240, 18 K{$e6} 201, 13, 240, 14, 166, 209, 224, 16 {$f0} 240, 231, 157, 131, 2, 232, 134, 209 E{$fa} 208, 231, 166, 209, 240, 219, 169, 44 {$f2} 157, 131, 2, 232, 169, 80, 157, 131 2, 232, 134, 209, 169, 13, 32, 210 l 255, 169, 13, 133, 210, 133, 211, 169 Y" 8, 133, 212, 169, 2, 133, 219, 169 {CBM-+}, 131, 133, 218, 32, 99, 245, 162, 13 S6 32, 175, 247, 32, 57, 126, 32, 57 @ 126, 32, 228, 255, 208, 24, te = start and end of rom keyword table a( * sb = start of basic G- ******************************* {CBM-+}{$f9}G(147);::ts{CBM-R}45234:te{CBM-R}45579:sb{CBM-R}1025:ps{CBM-R}sb: * 4.0 basic * {CBM--}{$f9}kw$(90):kw{CBM-R}0:a{CBM-R}ts{CBM-@}te:k{CBM-R}B(a): * the basic rom * {$f9}k{CBM-W}128{CBM-M}kw$(kw){CBM-R}kw$(kw){CBM-N}G(k) dnd {CBM-G}{$f9}::ind{CBM-R}0:sb{CBM-R}c:63904 :{CBM-+}{$f9}:"program size"sb{CBM-Q}ps"bytes": G- ******************************* {CBM-+}{$f9}G(147);::ts{CBM-R}45234:te{CBM-R}45579:sb{CBM-R}1025:ps{CBM-R}sb: * 4.0 basic * {CBM--}{$f9}kw$(90):kw{CBM-R}0:a{CBM-R}ts{CBM-@}te:k{CBM-R}B(a): * the basic rom * {$f9}k{CBM-W}128{CBM-M}kw$(kw){CBM-R}kw$(kw){CBM-N}G(k)s+te = start and end of rom keyword table c( * sb = start of basic I- ******************************* {CBM-POUND}2 G(147);::ts{CBM-R}45234:te{CBM-R}45579:sb{CBM-R}1025:ind{CBM-R}0: * 4.0 basic * Z7 kw$(90):kw{CBM-R}0:a{CBM-R}ts{CBM-@}te:k{CBM-R}B(a): * the b-rom * < k{CBM-W}128{CBM-M}kw$(kw){CBM-R}kw$(kw){CBM-N}G(k):program": 5: 4_ 145:c{CBM-R}F(a$):145:c{CBM-R}c{CBM-N}256{CBM-D}F(a$):c{CBM-R}0{CBM-M}150 xD 145:d{CBM-R}F(a$):145:d{CBM-R}d{CBM-N}256{CBM-D}F(a$) BI c;d; N 145:z{CBM-R}F(a$):ind{CBM-M}120: * in quotes * {CBM-Z}S F(a$){CBM-E}127{CBM-M}a${CBM-R}kw$(F(a$){CBM-Q}128) EX ind{CBM-M}a${CBM-R}G(F(a$){CBM-A}64) {$e3}{$7d} z{CBM-R}58{CBM-M}G(13)" "; {$fb} a$;:z{CBM-R}34{CBM-M}ind{CBM-R}{CBM-POUND} 0 the transactor volume 5 issue 02 page 65 K **************************************************** {CBM-+} * * {$e1} * * pi program -- calculates pi experimentally. * * machine languaggoto180'. * c2 * * {$7e}7 * * data/prg at $033c-$03d6 (828-982 dec) * {CBM-O}< * * {$f4}a * ++++ by michael bertrand ++++ * /f : 7P s{CBM-W}{CBM-R}0 {CBM-A} s{CBM-E}{CBM-R}1 {CBM-M} "seed must be between 0 and 1"::110 {$7d}X m{CBM-R}828:200 : * puts seed, in fp format, into (828,829,...) C s{CBM-R}197:m{CBM-R}838:200 : * puts 197, in fp format, into (838, 839,...) s{CBM-R}1:m{CBM-R}843:200 : * puts 1, in fp format, in 53) ! {CBM-C} "approximation of pi="4{CBM-D}c{CBM-Z}n : : ' {SHIFT-*} : z B ** subroutine 200-230 puts real number s, ** D ** in floating point format, into memory ** {SHIFT-*} F ** locations [m,m+1,m+2,m+3,m+4] ** H e{CBM-R}{CBM-J}({CBM-C}(s){CBM-Z}{CBM-C}(2)) : p(0){CBM-R}129{CBM-N}e R p{CBM-R}(s{CBM-Z}2{CBM-S}e{CBM-Q}1){CBM-D}1 32, 228 -j 255, 208, 22, 162, 103, 32, 79, 126 zt 169, 13, 32, 226, 242, 32, 204, 255 ^ 32, 233, 181, 76, 255, 179, 32, 57 {CBM-H}H 126, 32, 57, 126, 133, 17, 32, 57 {$e1}R 126, 133, 18, 160, 0, 32, 57, 126 {$7c} 153, 0, 2, 105, 255, 133, 43, 229, 93, 170, 56 i B 165, 92, 229, 42, 168, 176, 3, 232 V L 198, 34, 24, 101, 31, 144, 3, 198 {CBM-T} V 32, 24, 177, 31, 145, 33, 200, 208 P 249, 230, 32, 230, 34, 202, 208, 242 {$fd} {$ea} 32, 255, 181, 32, 182, 18 1, 145, 92, 136, 16, 248 80 32, 255, 181, 32, 182, 180, 76, 113 E: 125, 32, 228, 255, 166, 150, 240, 13 d 32, 204, 255, 162, 114, 32, 79, 126 {CBM-B}n 104, 104, 76, 128, 125, 170, 96, 189 {$ec}x 91, 126, 240, 6, 32, 210, 255, 232 13, 13, 73 ' 83, 32, 49, 83, 84, 32, 80, 82 t{CBM-POUND} 79, 71, 82, 65, 77, 32, 76, 79 {CBM-R} 65, 68, 69, 68, 63, 32, 40, 89 {CBM-S}{CBM-C} 47, 78, 41, 0, 13, 13, 68, 82 {SHIFT-+}F 73, 86, 69, 35, 32, 38, 32, 50 P 78, 68 137, 201, 162, 60, 160, 3, 32, 10, 205 xj 169, 60, 160, 3, 32, 94, 203, 96, 32, 86, 3 t 162, 65, 160, 3, 32, 10, 205, 32, 86, 3, 169 P^ 65, 160, 3, 32, 157, 201, 169, 75, 160, 3, 32 H 145, 205, 201, 255, 208 , 19, 238, 85, 3, 173, 85 h R 3, 208, 11, 238, 84, 3, 173, 84, 3, 208, 3 {$7c} 238, 83, 3, 173, 82, 3, 72, 206, 82, 3, 104 {SHIFT-*} 208, 21, 173, 81, 3, 72, 206, 81, 3, 104, 208 {$fc} 11, 173, 80, 3, 72, 206, 80, e depends heavily on the * w * floating point accumulator rom routines. * # * * M( * * the up arrow interrupts ml execution -- * - * execution can be continued with ' * * Jk **************************************************** Pp : {$7b}z ""; D "number of trials";n : VF n{CBM-E}16777215 {CBM-M} "# of trials must be < 16777216"::100 {$fb}N "seed (between 0 and 1)";s to (843, 844,...) j n1{CBM-R}n{CBM-Q}1:d3{CBM-R}{CBM-J}(n1{CBM-Z}65536):n1{CBM-R}n1{CBM-Q}d3{CBM-D}65536:d2{CBM-R}{CBM-J}(n1{CBM-Z}256):d1{CBM-R}n1{CBM-Q}d2{CBM-D}256 P 848, d3 : 849, d2 : 850, d1 {CBM-N} i{CBM-R}851 {CBM-@} 982 : x : ch{CBM-R}ch{CBM-N}x D{CBM-P} i, x : : ch{CBM-W}{CBM-E}13424 {CBM-M} "data error" : N{CBM-H} 892 {$f7}{CBM-U} c{CBM-R}65536{CBM-D}B(851) {CBM-N} 256{CBM-D}B(852) {CBM-N} B(828:p(1){CBM-R}{CBM-J}(p):r{CBM-R}p{CBM-Q}p(1) <{CBM--} i{CBM-R}2 {CBM-@} 4 : p{CBM-R}r{CBM-D}256 : p(i){CBM-R}{CBM-J}(p) : r{CBM-R}p{CBM-Q}p(i) : i B{$e6} i{CBM-R}0 {CBM-@} 4 : m{CBM-N}i, p(i) : i : H{$e8} : {CBM-@}, 0, 0, 0, 169, 60, 160, 3, 32, 216, 204, 169 6 70, 160, 3, 32, 94, 203, 32, 66, 205, 32, 2 @ 206, 32, 240, 3, 200, 208, 245 ; 200, 152, 24, 105, 4, 133, 5, 32 H 163, 181, 144, 68, 160, 1, 177, 92 133, 32, 165, 42, 133, 31, 165, 93 B{CBM-@} 133, 34, 165, 92, 136, 241, 92, 24 {$ef}{CBM-S} 101, 42, 133, 42, 133, 33, 165, 43 {CBM-U}0, 24, 165 *{$f4} 42, 133, 87, 101, 5, 133, 85, 164 w{$fe} 43, 132, 88, 144, 1, 200, 132, 86 32, 80, 179, 165, 17, 164, 18, 141 {CBM-E} 254, 1, 140, 255, 1, 165, 46, 164 {$de} 47, 133, 42, 132, 43, 164, 5, 136 & 185, 252, B 208, 245, 96, 13, 13, 18, 71, 65 f L 80, 32, 80, 82, 79, 71, 82, 65 S V 77, 32, 77, 69, 82, 71, 69, 32 45, 32, 71, 65, 32, 80, 69, 65 M 82, 67, 69, 32, 45, 32, 56, 51 {$fa} 48, 53, 50, 50, 146, {$f4}, 32, 80, 82, 79, 71, 82 5Z 65, 77, 32, 78, 65, 77, 69, 63 B{$e4} 32, 0, 13, 13, 77, 69, 82, 71 {$ee} 69, 32, 79, 75, 0, 13, 13, 77 {CBM-C}{$f8} 69, 82, 71, 69, 32, 65, 66, 79 Z 82, 84, 69, 68, 0 , 50, 146, p3, 104, 208, 1 8 96, 32, 228, 255, 201, 94, 240, 248, 76, 124, 3 , 203, 96, 32, 86, 3 t 162, 65, 160, 3, 32, 10, 205, 32, 86, 3, 169 P^ 65, 160, 3, 32, 157, 201, 169, 75, 160, 3, 32 H 145, 205, 201, 255, 2080 the transactor volume 5 issue 02 page 71 L same as 'rocket listing 5' but loads the machine code object file (rocket.obj) {CBM-A}D * basic code for rocket program WN * machine language rocket routine {$f6}X * starts at $c000 (49152) {$fc} : {CBM-P}and gravity" {CBM-N} (p) 4{CBM-H} 198,0: * clear kbd buffer * m{CBM-V} "thrust";th _H "gravity";gr {$7e}R p{CBM-N}3,th {CBM-P}255: p{CBM-N}4,th{CBM-Z}256 {CBM--} p{CBM-N}6,gr {CBM-P}255: p{CBM-N}7,gr{CBM-Z}256 {CBM-M}{$e6} 150 am WN * machine language rocket routine {$f6}X * starts at $c000 (49152) {$fc} : 0 the transactor volume 5 issue 02 page 69 h same as listing 1 rD 190 ZN {CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D} {CBM-I}X {CBM-D} "ROCKET" {CBM-D} J {CBM-D} simulates a rocket under {CBM-D} {$f0} {CBM-D} influence of thrust {CBM-P} gravity {CBM-D} {CBM-D} use spaitions * H : 0R * sprite/variable initialization @{CBM--} vic{CBM-R}13{CBM-D}4096 C{$e6} vic{CBM-N}21,1: * enable sprite 0 {$f0} 2040,200: * rocket shape {CBM-T}{$fa} vic,150 : * x coordinate {CBM-B} vic{CBM-N}39,1 : vic{CBM-N}40,1 {CBM--} vic{CBM-N}2,150: vic{CBM-N}3,255 {$f6} vic{CBM-N}41,7: vic{CBM-N}42,8 ""{CBM-M} 370 {$7c} 2040,200 : : /:** main loop ** m{CBM-@}velocity{CBM-R}velocity{CBM-N}gravity O{CBM-S} vic{CBM-N}21,1: * turn off flame {CBM-U} B(keybd){CBM-W}{CBM-E}space {CBM-M} 480 {CBM-N}B: velocity{CBM-R}velocity{CBM-Q}thrust FL: fl{CBM-R}{CBM-POUND} fl: 2041,202{CBM-Q}fl {$e9}V: vic{CBM-N}21,3 :* turn on flame {$fa} y{CBM-R}y{CBM-N}velo Kdraw explosion * % n"***good landing !***" b x delay{CBM-R}1 {CBM-@} 800: delay [ B"": 198,0: 340 urn off flame {CBM-U} B(keybd){CBM-W}{CBM-E}space {CBM-M} 480 {CBM-N}B: velocity{CBM-R}velocity{CBM-Q}thrust FL: fl{CBM-R}{CBM-POUND} fl: 2041,202{CBM-Q}fl {$e9}V: vic{CBM-N}21,3 :* turn on flame {$fa} y{CBM-R}y{CBM-N}velo 2 8 8 {$7c} {$7c} {$7c} d T L L L {$7c} {$7c} {$fe} ~ ~ ~ W {CBM-F} 0{$60}h{SHIFT-*} {$f1}X{$f8} {$f7} {$f6} P; ? {$7f}{SHIFT-*}{$fb}F1{$f1}G{$e1}{$ee} {$7c} ~ W{CBM-F}{SHIFT-*}S@G G G g@ N M M ) 8 8 8 {$fe} W GS G N {$ee} X P {CBM-D} $ {$60} {SHIFT-*}l{SHIFT-*} DJ{SHIFT-POUND}P'P{SHIFT-POUND}(P{SHIFT-POUND}H{$f8}{SHIFT-POUND} PP{SHIFT-POUND}DP{SHIFT-POUND}XP{SHIFT-POUND} PPPP!P P{SHIFT-POUND}T{SHIFT-POUND} T{SHIFT-POUND}T{SHIFT-POUND}T{SHIFT-POUND}{CBM-U}T{SHIFT-POUND}T{SHIFT-POUND} {SHIFT-*} {SHIFT-*}{SHIFT-*}{CBM-Z}{SHIFT-*}PIP{CBM-Z}{SHIFT-*}M{SHIFT-*}{SHIFT-*}{CBM-Z} {SHIFT-*}M{SHIFT-*} {SHIFT-*}{CBM-Z}{SHIFT-*}M{SHIFT-*}{SHIFT-*}{CBM-G}EI{$f0}NI<P4{SHIFT-POUND}P{CBM-Z}{SHIFT-*}i{SHIFT-*}{$f9}{SHIFT-POUND}T8{CBM-Z}{SHIFT-*}{$ed}{SHIFT-*}{SHIFT-*}{CBM-Z} {SHIFT-*}{$ed}{SHIFT-*} {SHIFT-*}{CBM-Z}{SHIFT-*}{$ed}{SHIFT-*}{SHIFT-*}l{$e6}{SHIFT-*}{SHIFT-POUND}P{SHIFT-POUND}T P{$fd}{CBM-Z}{SHIFT-*}M{SHIFT-*}{SHIFT-*}{CBM-Z} {SHIFT-*}M {SHIFT-*} {SHIFT-*}{CBM-Z}{SHIFT-*} M{SHIFT-*}{SHIFT-*} D{$ea}{$ea}{$ea}P{$fa}lQ{SHIFT-*}{$60} rocket64 bas.run 0 the transactor volume 5 issue 02 page 69 tD ** create sprites for "rocket" \I ** N ** if using a cassette instead X ** of disk drive: {CBM-M} goto 200 L * also, if using cassette, this {$ee} * program must be run before * executin p{CBM-R}49152: "" . * for cassette use, delete p * line 145 and first run the M * sprite create program B(12801){CBM-W}{CBM-E}16 {CBM-M} "rocket.sprt",8,1 {CBM-C} B(49152){CBM-W}{CBM-E}76 {CBM-M} "rocket.obj",8,1 {SHIFT-+} "press space to thrust," "press f1 to change thrust g the main rocket {CBM-N} * program. %{CBM-H} : e{CBM-V} 1,8,12,"0:rocket.sprt,p,w" wH 1,G(0)G(50); IR i{CBM-R}0 {CBM-@} 1 {SHIFT-POUND} 0 {CBM--} a: a{CBM-E}{CBM-R}0 {CBM-M} 1,G(a);: i {$e6} 1: {$f0} : {$fa} : C* cassette version starts here * Y i{CBM-R}12800 {CBM-@} 13056 {$e8} a: i,a {$f0}" i {$f6}, {$fc}6:ce bar {CBM-@} thrust; break {CBM-D} > {CBM-D} program {CBM-@} change parameters {CBM-D} F{CBM-N} {CBM-D} {CBM-D} {CBM-H} {CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D} {CBM-S}{CBM-O} * delete line 190 if using {CBM-B}{SHIFT-@} * cassette. {CBM-V} fl{CBM-R}{CBM-POUND} fl: fl {CBM-M} "rocket.sprt",8,1:* sprite shape definkeybd{CBM-R}197: space{CBM-R}60 1,bottm{CBM-R}229: * bottom of screen u6gravity{CBM-R}.5: thrust{CBM-R}1.4: crash{CBM-R}5 [@: {$7c}j* take-off initialization * ty{CBM-R}bottm: velocity{CBM-R}0 {CBM-I}^ vic{CBM-N}1,y {$e6}H"gravity="gravity": thrust="thrust": crash="crash": cont" {$fe}R{CBM-K} g$: g${CBM-W}{CBM-E}" city '{$ea} y{CBM-E}bottm {CBM-M} y{CBM-R}bottm: velocity{CBM-E}0 {CBM-M} 560 e{$f4} y{CBM-W}50 {CBM-M} y{CBM-R}50: velocity{CBM-R}0 A{$fe} vic{CBM-N}1,y: vic{CBM-N}3,y{CBM-N}20 J420 P: V: &* crash or good landing * {CBM-U}0 198,0: * clear kbd buffer * J: vic{CBM-N}1,bottm d velocity{CBM-E}crash {CBM-M} 2040,201:340:* {$e8} 0, 16, 0, 0, 56, 0 >{$f2} 0, 56, 0, 0, 124, 0 _{$fc} 0, 124, 0, 0, 124, 0 0, 68, 0, 0, 116, 0 {CBM-K} 0, 108, 0, 0, 108, 0 B 0, 108, 0, 0, 124, 0 {$e3}$ 0, 124, 0, 0, 254, 0 . 1, 255, 0, 1 @ ket64 ml.run rocket64 bas.run , 16, 0, 0 $ 16, 0, 0, 0, 0, 0 e ( 0, 56, 0, 0, 254, 0 H 2 1, 215, 0, 1, 199, 128 < 1, 211, 0, 0, 199, 0 {CBM-N} f 0, 206, 0, 0, 238, 0 K p 0, 120, 0, 0, 112, 0 {$ec} z 0, 172, 0, 1, 132, 0 D0 the transactor volume 5 issue 02 page 71 uD * basic code for rocket program {$7c}N * machine language rocket routine X * starts at $c000 (49152) {CBM-K} : {CBM-W} p{CBM-R}49152: "" S * for cassette use, delete {$f5} * line 145 and first run the % * s @h {CBM-P}255: p{CBM-N}4,th{CBM-Z}256 .{CBM--} p{CBM-N}6,gr {CBM-P}255: p{CBM-N}7,gr{CBM-Z}256 8{$e6} 150 ode for rocket program {$7c}N * machine language rocket routine X * starts at $c000 (49152) {CBM-K} : {CBM-W} p{CBM-R}49152: "" S * for cassette use, delete {$f5} * line 145 and first run the % * s 0 the transactor volume 5 issue 02 page 82 g{$e8} string insert 64 C{$f2} j{CBM-R}49152 {CBM-@} 49364 : x {$7b}{$fc} j,x : ch{CBM-R}ch{CBM-N}x : {CBM-@} ch{CBM-W}{CBM-E}25843 {CBM-M} "checksum error" : E use sys49152:po,targ$,ins$ {$f2} 169, 58, 32, 255, 174, 32, 158, 183 $ 138, 100 -{$60} 141, 1, 194, 200, 177, 100, 141, 2 zJ 194, 32, 253, 174, 32, 158, 173, 36 T 13, 16, 192, 160, 0, 177, 100, 240 {CBM-H}{$7e} 186, 141, 3, 194, 200, 177, 100, 141 {$e1} 4, 194, 200, 177, 100, 141, 5, 194 165, 100, 164, 1011, 133, 65, 165, 52, 105, 0, 133 iX 66, 160, 0, 177, 38, 145, 65, 200 V{$e2} 196, 37, 208, 247, 152, 24, 101, 65 {CBM-T}{$ec} 133, 65, 144, 2, 230, 66, 165, 65 P{$f6} 56, 229, 21, 176, 2, 198, 66, 133 {$fd} 65, 164, 21, 177, 35, 145, !{$e8}"S=save"0:6timer b show",8 .{$f2}"A_1150 p{$fc}---------------------------- Q 6526/cia timer-b liz deal ---------------------------- {CBM-Q}tm{CBM-R}08:mc{CBM-R}832:b0{CBM-R}176 {CBM--}B(mc){CBM-D}B(mc{CBM-N}1){CBM-W}{CBM-E}76{CBM-D}75{CBM-M}j{CBM-R}832{CBM-@}1022:v:j,v:j {$fe}$i${CBM-R}"":"";, 255, 0 %8 1, 255, 0, 1, 215, 0 fb 1, 187, 0, 1, 1, 0 Gl 1, 1, 0, 0, 0, 0 v 0, 0, 0, 0, 0, 10 {CBM-N}{$60} 4, 0, 0, 8, 0, 8 KJ 0, 16, 8, 48, 8, 8 {$ec}T 96, 4, 72, 192, 2, 0 {$7e} 2, 28, 3 N 187, 192, 3, 147, 128, 1 =X 147, 128, 1, 211, 64, 1 ^{$e2} 199, 0, 2, 199, 0, 0 {$7f}{$ec} 199, 0, 2, 71, 64, 0 {$f6} 110, 0, 0, 109, 0, 0 A 109, 0, 0, 41, 0, 0 {$e2} 56, 0, 0, 56, 0, 0 16, 0, 0------------------- ! {$7e}700 ;pal - .opt oo f {CBM-D}{CBM-R}$0340 ; {CBM-@} $3ff l ; z {CBM-+}jmp test1 H {CBM-A}jmp test2 V {SHIFT-@}jmp nmisw Dhere .w{CBM-A}d mynmi N; {CBM-P} Xp {CBM-R}17{CBM-D}40{CBM-N}28 ; screen O {$e2}cia2 {CBM-R}$dd00 ;n{CBM-Q}kb cia {$ed} {$ec}ta2 {CBM-R}cia2{CBM-N}4 ;timer a {$f6}tb2 {CBM-D} 1, 36, 0, 1, 96, 0 .N 0, 144, 0, 0, 16, 0 oX 0, 0, 0, 0, 0, 0 P 0, 0, 0, 0, 0, 0 0, 0, 0, 0, 64, 0 -1 A 109, 0, 0, 41, 0, 0 {$e2} 56, 0, 0, 56, 0, 0 16, 0, 0prite create program (rocket listing 2) m B(12801){CBM-W}{CBM-E}16 {CBM-M} "rocket.sprt",8,1 L "press space to thrust," "press f1 to change thrust and gravity" {CBM-I}{CBM-N} (p) E{CBM-H} 198,0: * clear kbd buffer * {$de}{CBM-V} "thrust";th {$f0}H "gravity";gr R p{CBM-N}3,t{CBM-R}cia2{CBM-N}6 ;timer b , cra2 {CBM-R}cia2{CBM-N}$e ;ctrl reg a m crb2 {CBM-R}cia2{CBM-N}$f ;ctrl reg b Picr2 {CBM-R}cia2{CBM-N}$d ;{CBM-J} ctrl{CBM-N}flags cia1 {CBM-R}$dc00 ;the other cia {CBM-J}(prb1 {CBM-R}cia1{CBM-N}1 ; key here G2col {CBM-R}$d800 {SHIFT--}<mask1 {CBM-R}%00000010 {$f3}fmask2 {CBM-R}%10000010 p208, 3, 76, 8, 175, 134, 21 l. 32, 253, 174, 32, 158, 173, 36, 13 Y8 16, 241, 165, 101, 240, 237, 165, 71 {CBM-+}b 133, 63, 165, 72, 133, 64, 160, 0 Sl 177, 100, 240, 223, 197, 21, 144, 219 v 240, 217, 141, 0, 194, 200, 177,, 32, 219, 182, 24 ; 173, 0, 194, 109, 3, 194, 133, 20 H{CBM-+} 144, 3, 76, 88, 182, 32, 244, 180 {CBM-A} 162, 5, 189, 0, 194, 149, 34, 202 B{SHIFT-@} 16, 248, 160, 0, 177, 35, 145, 51 {$ef}D 200, 196, 21, 208, 247, 152, 24, 101 N 5 65, 200 * 196, 34, 208, 247, 160, 0, 165, 20 w 145, 63, 200, 165, 51, 145, 63, 200 U 165, 52, 145, 63, 96 , 0, 194, 149, 34, 202 B{SHIFT-@} 16, 248, 160, 0, 177, 35, 145, 51 {$ef}D 200, 196, 21, 208, 247, 152, 24, 101 N 5 -." <cr;ctrl;wipe+cr> timeout: :intbit " m8" do test 1 2 1";i$ xbb0,tm TlF(i${CBM-N}"0"){CBM-Q}481120,1130 Zv {$60}mc:1060 Jmc{CBM-N}6:mc{CBM-N}3:1060 EO source code below can be omitted {$ed}Q data from 5000 on must be entered T---------1, 0, 4, 0, 1 . 241, 24, 3, 216, 12, 6 q 248, 0, 247, 0, 0, 246 S 0, 112, 59, 0, 0, 63 {CBM-+} 128, 0, 127, 192, 16, 251 {CBM-O}{CBM-A} 198, 49, 241, 199, 17, 225 Z{SHIFT-@} 238, 0, 0, 124, 0, 1 {$fb}D 255, 0, 3, 215, 1 r1,134,177,166 176,142,6,221,169,17,141,14 0 221,169,81,141,15,221,96 10,138,72,152,72,32,198,3 S 76,188,254,104,76,71,254,32 181,3,32,175,3,208,248,169 {CBM-L} 0,141,13,221,169,71,162,254 U 141,24,3,142,25,3,96,174 {$f6} 1,220,220 the transactor volume 5 issue 02 page 90 uD * data loader for "JOYCURSOR" * [N : VX cs{CBM-R}0 :* checksum * os{CBM-R}49152:* object start : {CBM-S} b: b{CBM-W}0 {CBM-M} 180 {SHIFT-@} cs{CBM-R}cs{CBM-N}b T{CBM-N} os,b: os{CBM-R}os{CBM-N}1: 150 Z{CBM-H} : {CBM-V} cs{CBM-W}{CBM-E} 12839 {CBM-M} "***** checksum201, 5, 208, 85, 169, 0 9, 141, 17, 192, 173, 0, 220 z6 201, 127, 240, 73, 169, 1 {$7d}@ 44, 0, 220, 208, 6, 173 j 13, 192, 32, 95, 192, 169 At 2, 44, 0, 220, 208, 6 {$e4}^ 173, 14, 192, 32, 95, 192 H 169, 4, 44, ctrlky {CBM-R}$fb zanynmi {CBM-R}$318 %Dn{CBM-A}nmi {CBM-R}$fe47 7Ninex {CBM-R}$febc vXE {CBM-R}$b0 ;Kes {CBM-J}o tb2 Ece {CBM-R}E{CBM-N}1 {CBM-@} {CBM-R}col{CBM-N}p ;{CBM-@} always moves {CBM-Z}in {CBM-R}col{CBM-N}p{CBM-N}1 ;in,noise when S noise {CBM-R}$d418 ;timerb sets flg {$fa}{CBM-N};{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}tch "; check timeout flag,loop 0 ,,bit icr2:beq g6; flag w{CBM-A}ked this time G@jsr click:beq ;always m{CBM-A}e Zj; back {CBM-@} basic tquit cli:rts {CBM-R}^;{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q} TH;show#2 {CBM-Q} asking an {CBM-J}errupt {$f6}R;seems {CBM-@} w{CBM-A}k most of the x here{CBM-N}1:jsr setvec #V; now tell the icr & clocks @ lda #mask2:jsr setup:rts f{$ea}; s{$f4}mynmi {CBM-R}{CBM-D} R{$fe}pha:lda icr2:{CBM-P} #2:beq myi2 txa:pha:tya:pha:jsr click:jmp inex {CBM-A}myi2 pla:jmp n{CBM-A}nmi {CBM-L}; C&test2 {CBM-R}{CBM-D} 0; {CBM-POUND}hing better {CBM-@} do loop :jsr watchquick ing results Fldx tb2:cpx E:bcc watch9 2Pcpx ce:beq watch9 vZinc {CBM-@} ;displ timeout M{$e4}watch9 stx ce:rts S{$ee}; {$f8}click {CBM-R}{CBM-D} ; & displ flag set {CBM-H}inc in:ldx #8:stx noise Jsig1 dex:bne sig1 {$e3}stx noise:rts ;z{CBM-R}1 {$e9} ; %01010001:sta crb2 rts . {CBM-I} - 76,75,3,76,151,3,76,106 n 3,129,3,173,13,221,120,169 N 127,32,213,3,169,2,32,175 3,240,13,32,181,3,44,13 {CBM-P} 221,240,243,32,198,3,240,238 R 88,96,173,13,221,169,127,141 {$f1} 13,221,173,73 4,251,96,174,6,221 228,176,144,7,228,177,240,3 = 238,196,218,134,177,96,238,197 {$60} 218,162,8,142,24,212,202,208 253,142,24,212,96,141,13,221 {SHIFT-POUND} 141,196,218,141,197,218,238,197 K 218,162,255,142,4,221,142,5 {$ef} 221,232,142,7,22 {CBM-U} 49, 234, -1 69, 0 9, 141, 17, 192, 173, 0, 220 z6 201, 127, 240, 73, 169, 1 {$7d}@ 44, 0, 220, 208, 6, 173 j 13, 192, 32, 95, 192, 169 At 2, 44, 0, 220, 208, 6 {$e4}^ 173, 14, 192, 32, 95, 192 H 169, 4, 44, 0 the transactor volume 5 issue 02 page 91 s sx-64 emulator setup program CD 1024,2023 UN 55296,56295 X 40960,49151 57344,65535 {CBM-M} j{CBM-R}1 {CBM-@} 8 {CBM-J} x:t{CBM-R}t{CBM-N}x {CBM-X} j Q{CBM-N} t{CBM-W}{CBM-E}327628 {CBM-M} W{CBM-H} {$e5}{CBM-V} j{CBM-R}1 {CBM-@} 4 {$ef}H x,y R 1,8,3,"0 error *****": 240 H : ;R 49152 :* enable "JOYCURSOR" B{CBM--} "** Ok, JOYCURSOR is enabled. **" H{$e6} : N{$f0} {$fa} 120, 169, 18, 141, 20, 3 {CBM-E} 169, 192, 141, 21, 3, 88 R 96, 145, 17, 29, 157, 0 {$f5} 238, 17, 192, 173, 17, 192 " 0, 220, 208 )R 6, 173, 16, 192, 32, 95 l{$7c} 192, 169, 8, 44, 0, 220 N 208, 6, 173, 15, 192, 32 95, 192, 76, 113, 192, 166 {CBM-H} 198, 157, 119, 2, 230, 198 U{CBM-@} 165, 198, 201, 10, 48, 4 {$f7}{CBM-S} 169, 0, 133, 198, 96, 76 {CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q} {CBM-H};tb sometimes fails {CBM-@} set a flag @ {CBM-V};show#1 {CBM-Q} {CBM-POUND} asking {CBM-J}errupt G H;{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q} T Rtest1 {CBM-R}{CBM-D} {CBM--}lda icr2 {CBM-I} {$e6}sei:lda #%01111111:jsr setup {CBM-E} {$f0}lda #mask1 {SHIFT-@} {$fa} {CBM-R}{CBM-D} Q jsr test:beq quit {$e9} ; watch timer b re {$f7} jsr watime {$7c};{CBM-R}{CBM-R}{CBM-R}{CBM-R}{CBM-R}(can't prove n{CBM-Q}failure!) a;{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q}{CBM-Q} nnmisw {CBM-R}{CBM-D} Q; flags in hope of surviving {CBM-@}; what follows {SHIFT-POUND}{CBM-S}lda icr2:lda #%01111111:sta icr2 H{CBM-U}; revec{CBM-@}r nmi stuff {CBM-@} here B; this can kill you Llda here:ld:jsr test:bne test2 d; set things back {CBM-@} n{CBM-A}mal 4nlda #0:sta icr2 pxlda #{CBM-W}n{CBM-A}nmi:ldx #{CBM-E}n{CBM-A}nmi ^Bsetvec {CBM-R}{CBM-D} ZLsta anynmi:stx anynmi{CBM-N}1 Vrts ; test {CBM-R}{CBM-D} {CBM-R}ldx prb1:cpx #ctrlky:rts {CBM-U}; E{CBM-POUND}watch {CBM-R}{CBM-D} {CBM-*}{CBM-R}; watches timer b re {$fe}{CBM-C}; ign{CBM-A}e {$f6}*setup {CBM-R}{CBM-D} 4sta icr2:sta {CBM-@}:sta in:inc in 9>; init clocks (E{CBM-D}ta)whatevers xhldx #$ff:stx ta2:stx ta2{CBM-N}1 Rrinx:stx tb2{CBM-N}1:stx ce \ldx E:stx tb2 {CBM-I}F; ce time,tb counts ta BP; timeouts, mode,clocks {$de}Zlda #%00010001:sta cra2 {$fa}lda #,3,174,74,3 32,168,3,169,130,32,213,3 1 96,72,173,13,221,41,2,240 q 10,138,72,152,72,32,198,3 S 76,188,254,104,76,71,254,32 181,3,32,175,3,208,248,169 {CBM-L} 0,141,13,221,169,71,162,254 U 141,24,3,142,25,3,96,174 {$f6} 1,220,22 0 the transactor volume 5 issue 03 page 19 f l{CBM-R}B(768):h{CBM-R}B(769) \ 169,82,141,119,2 R 169,85,141,120,2 169,78,141,121,2 169,13,141,122,2 {CBM-U} 169,4,133,198,76,256 E# G(147); ( "install where";x:y{CBM-R}x {$e7}2 a {$f5}7 a{CBM-R}256{CBM-M}75 < ck{CBM-R}c U:sx"{CBM-N}D(j){CBM-N}",p,w" &{CBM--} x%{CBM-R}x{CBM-Z}256:z{CBM-R}x{CBM-Q}x%{CBM-D}256 9{$e6} 1,G(z);G(x%); g{$f0} k{CBM-R}x {CBM-@} y w{$fa} 1,G(B(k)); _ k G 1 O j joycursor 64 0 the transactor volume 5 issue 03 page 19 DD save"@0:line hider",8:verify"0:line hider",8 I * hide a line within your basic program {CBM-A}N * basic 4.0 : sb=1025 WS * c64 only : sb=2049 (default) {$fe}X * vic only : sb=4097 (default) {CBM-E} pl {CBM-M} "line not found" : t{$fc}{$f9}sh {CBM-R} B(sb){CBM-N}B(sb{CBM-N}1){CBM-D}256 : * position of line to hide {$fd}{$f9}nl {CBM-R} B(sh) : nh{CBM-R}B(sh{CBM-N}1) : * low/high ptrs to following line P{$fe}{$f9} sb,nl : sb{CBM-N}1,nh : * bypass the line to hide ~{$f9} sh{CBM-N}2,0 : sh{CBM-N}3,0 : * and chaD ark * ghost liner <N ark * cloaks all line starting ]X ark * with ::::: (5 colons) ark * basic 4.0 : vl=42 : vh=43 : sb=1025 {CBM-E} ark * c64 & vic : vl=45 : vh=46 Z ark * c64 only : sb=2049 (default) ark * vic only : sb=4097 (def 8{$fa} sb {CBM-R} sb{CBM-N}1 : G(19)G(17)sb : sb{CBM-W}loc {CBM-M} 220 0 rting ]X ark * with ::::: (5 colons) ark * basic 4.0 : vl=42 : vh=43 : sb=1025 {CBM-E} ark * c64 & vic : vl=45 : vh=46 Z ark * c64 only : sb=2049 (default) ark * vic only : sb=4097 (def0 the transactor volume 5 issue 03 page 19 : 100 ] list of possible decorators: rb {CBM-R} 5 white line (c64 & vic {CBM-D}{CBM-D}{CBM-D} {CBM-K} rb {CBM-R} 7 ring the bell {SHIFT-@} rb {CBM-R} 13 carriage Y rb {CBM-R} 14 upper{CBM-Z}lower case rb {CBM-R} 15 {CBM-@} set the {CBM-@}p left c{CBM-A}ner t " rb {CBM-R} 30 green line (c64 & vic) f rb {CBM-R} 31 blue line (c64 & vic) l : ID * list decorator - rte N * lb = 42 : hb = 43 : sb = 1025 * for basic 4.0 UX * lb = 45 : hb = 46 * for c64 & vic * sb = 2049 *** {$fc}{$f9}"replacement byte for @ ";rb q{$fd}{$f9}mx{CBM-R}B(lb){CBM-N}B(hb){CBM-D}256:a{CBM-R}sb{CBM-@}mx:b{CBM-R}B(a):b{CBM-W}{CBM-E}143{CBM-M}285 T{$fe}{$f9}B(a{CBM-N}1){CBM-R}32{CBM-P}B(a{CBM-N}2){CBM-R}64{CBM-M}(a{CBM-N}2),rb {$7c}~{$f9}: : sb = 1025 * for basic 4.0 UX * lb = 45 : hb = 46 * for c64 & vic * sb = 2049 0 the transactor volume 5 issue 03 page 20 \ etchasketch by dave gzik (cbm canada) {$7e} base{CBM-R}2{CBM-D}4096:53272,B(53272){CBM-A}8 53265,B(53265){CBM-A}32 {CBM-R} i{CBM-R}base{CBM-@}base{CBM-N}7999:i,0: J( i{CBM-R}1024{CBM-@}2023:i,3: Z2 x{CBM-R}160:y{CBM-R}100 {$e9}k y{CBM-W}0{CBM-M}y{CBM-R}199 {$f8}l y{CBM-E}199{CBM-M}y{CBM-R}0 m k{CBM-N}a f x,a:x{CBM-R}x{CBM-N}1:50 $k x,l:x{CBM-N}1,h pp ck{CBM-W}{CBM-E}2568{CBM-M}"error in data statements": Nz hi{CBM-R}{CBM-J}(y{CBM-Z}256):lo{CBM-R}y{CBM-Q}(hi{CBM-D}256) D "installed at"y N 768,lo:769,hi:{CBM-I} arrays move up as simple variables are defined {$f1}{CBM--} however, a(3) remains the same {$e6} j(20x{CBM-W}0{CBM-M}x{CBM-R}319 n x{CBM-E}319{CBM-M}x{CBM-R}0 :p row{CBM-R}{CBM-J}(y{CBM-Z}8):char{CBM-R}{CBM-J}(x{CBM-Z}8):line{CBM-R}y{CBM-P}7 Hz bit{CBM-R}7{CBM-Q}(x{CBM-P}7):byte{CBM-R}base{CBM-N}row{CBM-D}320{CBM-N}char{CBM-D}8{CBM-N}line {$7b}_ fr{CBM-N}jv{CBM-R}111{CBM-M}110 D byte,B(byte){CBM-A}2{CBM-S}bit {SHIFT-POUND}N jv{CBM-R}15{CBM-Q}B(56320){CBM-P}15 {CBM-O}O fr{CBM-R}B(56320) MX jv{CBM-R}1{CBM-M}y{CBM-R}y{CBM-Q}1:75 {$e1} jv{CBM-R}2{CBM-M}y{CBM-R}y{CBM-N}1:75 {$f5} jv{CBM-R}4{CBM-M}x{CBM-R}x{CBM-Q}1:75 j {$7d} : ,{$f5}{$f9}sb{CBM-R}1025 : ** set-up for basic 4.0 p{$f6}{$f9}"line # of preceding line ";pl H{$f7}{$f9} lp {CBM-R} 1 {CBM-@} (2{CBM-S}16){CBM-Q}1 {$f8}{$f9}num {CBM-R} B(sb{CBM-N}2){CBM-N}B(sb{CBM-N}3){CBM-D}256 : * line number {CBM-H}{$f9}{$f9}nxt {CBM-R} B(sb){CBM-N}B(sb{CBM-N}1){CBM-D}256 {$f2}{$fa}{$f9} num {CBM-W} pl {CBM-M} sb{CBM-R}nxt : lp : : * still below the line {$fb}{$f9} num nge line # to zero ** set-up for basic 4.0 p{$f6}{$f9}"line # of preceding line ";pl H{$f7}{$f9} lp {CBM-R} 1 {CBM-@} (2{CBM-S}16){CBM-Q}1 {$f8}{$f9}num {CBM-R} B(sb{CBM-N}2){CBM-N}B(sb{CBM-N}3){CBM-D}256 : * line number {CBM-H}{$f9}{$f9}nxt {CBM-R} B(sb){CBM-N}B(sb{CBM-N}1){CBM-D}256 {$f2}{$fa}{$f9} num {CBM-W} pl {CBM-M} sb{CBM-R}nxt : lp : : * still below the line {$fb}{$f9} numault) {CBM-N} : ;{CBM-H} : vl{CBM-R}42:vh{CBM-R}43:sb{CBM-R}1025 : << basic 4.0 set-up u{CBM-V} loc {CBM-R} B(vl){CBM-N}256{CBM-D}B(vh) PH G(147)loc,": maximum" R ,": current" {CBM--} B(sb){CBM-W}{CBM-E}58 {CBM-M} 250 U{$e6} ct {CBM-R} sb : lp {CBM-R} 0 {CBM-@} 0 : ct{CBM-R}ct{CBM-N}1 : lp{CBM-R}(B(ct){CBM-R}58) : lp {$fa}{$f0} ct {CBM-E} sb {CBM-N} 4 {CBM-M} sb,0 : sb{CBM-R}sb{CBM-N}4 * v{CBM-R}5{CBM-M}x{CBM-R}x{CBM-Q}1:y{CBM-R}y{CBM-Q}1:75 ){CBM-N} jv{CBM-R}6{CBM-M}x{CBM-R}x{CBM-Q}1:y{CBM-R}y{CBM-N}1:75 ={CBM-H} jv{CBM-R}8{CBM-M}x{CBM-R}x{CBM-N}1:75 w{CBM-V} jv{CBM-R}9{CBM-M}x{CBM-R}x{CBM-N}1:y{CBM-R}y{CBM-Q}1:75 RH jv{CBM-R}10{CBM-M}x{CBM-R}x{CBM-N}1:y{CBM-R}y{CBM-N}1:75 ZR 75 53265,B(53265){CBM-A}32 {CBM-R} i{CBM-R}base{CBM-@}base{CBM-N}7999:i,0: J( i{CBM-R}1024{CBM-@}2023:i,3: Z2 x{CBM-R}160:y{CBM-R}100 {$e9}k y{CBM-W}0{CBM-M}y{CBM-R}199 {$f8}l y{CBM-E}199{CBM-M}y{CBM-R}0 m (cbm ly) rb {CBM-R} 17 curs{CBM-A} down g rb {CBM-R} 18 reversed program lines {$60} rb {CBM-R} 19 curs{CBM-A} home X rb {CBM-R} 20 dee char rb {CBM-R} 21 dee a line (cbm ly) {SHIFT-*} rb {CBM-R} 25 scroll down (cbm ly) {$e3} rb {CBM-R} 28 red line (c64 & vic) {$fd} rb {CBM-R} 29 curs{CBM-A} righ * for c64 (default) i * sb = 4096 * for vic (default) o : @ this is how your remark should look when entered {CBM-P}{CBM-N} @ every occurence is substituted {CBM-J}{CBM-H} : {$fc}{$fb}{$f9}lb {CBM-R} 42 : hb {CBM-R} 43 : sb {CBM-R} 1025 : ark : *** 4.0 basic variables {$f7}0 the transactor volume 5 issue 03 page 33 r initializes quadra 64 areas {$60} cd${CBM-R}G(17) G(147)cd$cd$cd$"\1"cd$cd$:"new" {CBM-T} cd$cd$"\2"cd$cd$:"new" {SHIFT-*} cd$cd$"\3"cd$cd$:"new" U# cd$cd$"\0"G(19) {$f3}( 198,7:i{CBM-R}631{CBM-@}637:i,13: 92, 162 0 the transactor volume 5 issue 03 page 33 :p 700 fz .opt oo lD ; RN ;{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D} X ;{CBM-D} quadra 64 {CBM-D} {CBM-V} ;{CBM-D} may 14, 1984 {CBM-D} {$e3} ;{CBM-D} by daniel bingam {CBM-D} ;{CBM-D} the transac{CBM-@}r {SHIFT-*}erroc jmp errchk Jin cmp #"4" &Tbcs irq{CBM-J} .{$de}pha 9{$e8}{CBM-P} #$cf h{$f2}sta partit K{$fc}pla ;jump {CBM-@} individual cmp #"0" ;partiti routines beq e {CBM-+}cmp #"1" {CBM-R}$beq two {CBM-B}.cmp #"2" M8beq three Zbcmp #"3" {$e7}lbeq four {$f4}vbne {CBM-R} $0308 ,{CBM-J}rpt {CBM-R} $0314 - 6basic {CBM-R} $002b e @memsiz {CBM-R} basic{CBM-N}10 x jtmpadd {CBM-R} $14 M tfst {CBM-R} $0800 ^snd {CBM-R} $2800 Htrd {CBM-R} $4800 {CBM-D} Rfth {CBM-R} $6800 A {$7c}lmt {CBM-R} $a000 G ; {SHIFT-+} ; initializati {$e1} ; {CBM-@}init lda #{CBM-E}wedge 4800,$4800,$4800,$4800,$0000 2{SHIFT-@}bnk3 .w{CBM-A}d $4801,$4801,$4801,$6800 y{CBM-B}.w{CBM-A}d $6800,$6800,$6800,$6800,$0000 Dbnk4 .w{CBM-A}d $6801,$6801,$6801,$a000 {CBM-POUND}I.w{CBM-A}d $a000,$a000,$a000,$a000,$0000 {CBM-C}Nerrchk cmp #"k" IXbne err{CBM-A} V{$e2}lda #$a7 {$e7}{$ec}sta dispch{CBM-N}1 {$f4}{$f6} :lda #00 dsta memsiz nlda #28 0xsta memsiz{CBM-N}1 nBlda #0 ;startup in MLsta partit ;partiti 0. Vlda #{CBM-W}msg ; title. ldy #{CBM-E}msg {CBM-K}jsr {CBM-Z}lda #00 {CBM-F}sta etim G{CBM-POUND}jsr pr1 O{CBM-R}nop W{CBM-C}nop {CBM-*}Frts Pmsg .byte $93: .F {$f2} cli {CBM-N}ldx partit ; part. no. {CBM-H}lda #00 ;{CBM-V}jsr $bdcd ; {CBM-J}eger routine hHjmp exit yR{CBM-J}prg lda $c5 E{CBM--}cmp #63 {$e6}bne skp ;escape quote mode {CBM-I}{$f0}lda #0 ;when key {CBM-X}{$fa}sta $d4 ;depressed. {$e2}skp lda $028d ;enable {CBM-U}ezing c7e7 4exit jmp $a474 5>tapspc .byte $00,$00,$00,$00,$00,$00 ;h; ur; process wedge comm{CBM-P} [\; JFparse pha Pjsr savmem ;s{CBM-@}re old part. Zpla {CBM-K}jsr chr{CBM-K} {CBM-Z}cmp #00 {CBM-O}bne in K{CBM-I}irq{CBM-J} jmp {CBM-J}chk {CBM--}{CBM-D}partit {CBM-D}{CBM-R}{CBM-D}{CBM-N}1 {$f2}{CBM-L}.byte $00,$00,$00 {$f3}cpx #$0f ~bne lp1 lda basic{CBM-N}1 {CBM-@}sta $fc '{CBM-S}lda #00 3{CBM-U}sta $fb ;Btay lLsta (temp),y zVlda etim F cmp #00 Q{$ea}bne no {$7d}{$f4}lda #01 {$fe}sta etim rts {CBM-M}no jmp exit Jpr2 ldx #00 ;partiti 2. &lp2 lda bnk2,x {$f0}0 sta basic,x {$f8}:inx dcpx #$0f nbne lp2 !xlda basic{CBM-N}1 -Bsta $fc 9Llda #00 eVsta $fb mtay ^sta (temp),y Kjmp exit pr3 ldx #00 ;partiti 3. {CBM-@}{CBM-POUND}lp3 lda bnk3,x {CBM-H}{CBM-R}sta basic,x {CBM-C}{CBM-C}inx IFcpx #$0f UPbne lp3 {$e5}Zlda basi c{CBM-N}1 {$f1}{$e4}sta $fc {$fd}{$ee}lda #00 {$f8}sta $fb tay "sta (temp),y /jmp exit r pr4 ldx #00 ;partiti 4. H*lp4 lda bnk4,x X4sta basic,x >inx hcpx #$0f rbne lp4 {SHIFT-POUND}\lda basic{CBM-N}1 {CBM-J}Fsta $fc APlda #00 MZsta $fb Utay {$e6}sta (t {CBM-D} , ;{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D}{CBM-D} 2{CBM-N} ; l{CBM-H} ; label initis r{CBM-V} ; ^H {CBM-D}{CBM-R}$c000 OR chr{CBM-K} {CBM-R} $73 {CBM--} chrKt {CBM-R} $79 {$e6} ptr {CBM-R} $7a {CBM-G}{$f0} {CBM-J}ger {CBM-R} $14 {CBM-U}{$fa} temp {CBM-R} $fb KeE {CBM-R} $ad9e {CBM-*}cvrt {CBM-R} $b7f7 {$f0} {CBM-R} $ab1e "dispch irq{CBM-J} {$60}e jmp pr1 Jtwo jmp pr2 ,Tthree jmp pr3 ?{$7e}four jmp pr4 e; F; partiti select table L; {CBM-+}bnk1 .w{CBM-A}d $0801,$0801,$0801,$2800 {CBM-F}{CBM-Q}.w{CBM-A}d $2800,$2800,$2800,$2800,$0000 {$e3}{CBM-A}bnk2 .w{CBM-A}d $2801,$2801,$2801,$4800 {CBM-J}.w{CBM-A}d $ ;init wedge {CBM-S}ldy #{CBM-W}wedge '{CBM-U}sta dispch{CBM-N}1 6Bsty dispch uLlda #{CBM-E}{CBM-J}prg ;enable {CBM-J}erupt DVldy #{CBM-W}{CBM-J}prg L sei {$7b}{$ea}sta {CBM-J}rpt{CBM-N}1 {$f4}sty {CBM-J}rpt {$fe}cli {CBM-W}ldy #00 ;zero first byte Tsty fst ;of partitis. sty snd {$ec}&sty trd {$f8}0sty fthlda #$e4 sta dispch lda #$01 sta basic +lda #$08 ;(sta basic{CBM-N}1 h2lda #$00 w<sta memsiz Dflda #$a0 Upsta memsiz{CBM-N}1 zjmp exit {CBM-T}Derr{CBM-A} jmp $af08 ;syntax err{CBM-A} {CBM-Y}N{CBM-J}chk lda #{CBM-E}{CBM-J}prg FXldy #{CBM-W}{CBM-J}prg Nsei {SHIFT--}sta {CBM-J}rpt{CBM-N}1 {$ea}sty {CBM-J}rpt"quadra 64": .byte $0d 4 Z.byte $0d: .F "by: daniel bingamon" [ {$e4}.byte $0d: .F "for the transactor" U {$ee}.byte $0d,$00,$00,$00 {$f8}wedge jsr chr{CBM-K} {CBM-M} cmp #"\" ; pound sign G beq parse ;process wedge. T cmp #":" {$e2} beq wedge {$f7} *exit1a jmp $amp #06 ;with ctrl & comm. bne skp2 ;keys. ?"cloop jsr $ff9f ;ctrl & sht {CBM-@} {$60},lda $028d ;resume operati. L6cmp #05 Z@bne cloop jskp2 jmp $ea31 t; {CBM-U}^pr1 ldx #00 ;partiti 1. NHlp1 lda bnk1,x {$de}Rsta basic,x {$e6}{$7c}inx 0 the transactor volume 5 issue 03 page 39 >D 15,8,15 jN z${CBM-R}G(0) xX j{CBM-R}1 {CBM-@} 2 S "program name";n$(j) j,8,j{CBM-N}1,n$(j){CBM-N}",p,r":{CBM-K}#j,a$,a$ {CBM-U} 15,e,e$,e1,e2: e {CBM-M} e$: {SHIFT-*} j {SHIFT-+}{CBM-N} n$(3){CBM-R}"* difference *" {$e9}{CBM-H} j1{CBM-R}1:j2{CBM-R}2 {$f9}H j{CBM-R}j1 {CBM-@} j2 R 0 the transactor volume 5 issue 03 page 58 I ************************************************** {CBM-I} * * {SHIFT-+} * scramble.bas prg -- codifies input program * * p$ on the basis of seed s emp),y {$f3}jmp exit {CBM-I}savmem ldx #00 ; old po{CBM-J}ers -{CBM-D}savlp2 lda partit 9{CBM-L}cmp #00 e{SHIFT-*}beq sm1 qJcmp #01 ]Tbeq sm2 I{$de}cmp #02 U{$e8}beq sm3 {$f2}bne sm4 {$fc}savlp1 inx cpx #$0f {CBM-D}bne savlp2 {CBM-H}rts Z$sm1 lda basic,x ; po{CBM-J}er from {$fb}. j2 {CBM-M} j0{CBM-R}j1 @ j{CBM-R}j1 {CBM-@} j2 /j l(j){CBM-R}0 {CBM-M} {CBM-K}#j,a$(j) gt a$(j){CBM-R}"" {CBM-M} l(j){CBM-R}1 o^ j KH a$(j1){CBM-W}{CBM-E}a$(j2) {CBM-M} j0{CBM-R}3 R l(j1){CBM-W}1 {CBM-A} l(j2){CBM-W}1 320 {CBM-Z} j0{CBM-E}0 {CBM-M} n$(j0);" line";n(j0) {CBM-X} j{CBM-R}j1 {CBM-@} j2 M{CBM-@}l(j){CBM-R}l(j){CBM-Q}1 U{CBM-S} j {CBM-*}{CBM-U} 200 {$ed}B j{CBM-R}1 {CBM-@} 2 {$f5}L j {$fd}V ,y {$f3}jmp exit {CBM-I}savmem ldx #00 ; old po{CBM-J}ers -{CBM-D}savlp2 lda partit 9{CBM-L}cmp #00 e{SHIFT-*}beq sm1 qJcmp #01 ]Tbeq sm2 I{$de}cmp #02 U{$e8}beq sm3 {$f2}bne sm4 {$fc}savlp1 inx cpx #$0f {CBM-D}bne savlp2 {CBM-H}rts Z$sm1 lda basic,x ; po{CBM-J}er from {$fb}. * original program if the same seed is used. * J7 * 'scramble.bas' runs on pet/cbm or c-64. * {CBM-T}< * ++++ by michael bertrand ++++ * {CBM--}a * * f *********************** {CBM-H} 300:6,G(z);:170 {CBM-U} : iD ** subroutine 200 recovers a byte's ascii value ** zH z${CBM-R}""{CBM-M}z{CBM-R}0: HR z{CBM-R}F(z$): NV : {CBM-+}( ** subroutine 300 offsets the current byte ** {$de}* ** and generates the next offset value ** ,z{CBM-R}z{CBM-N}256{CBM-N}{CBM-H}(sg){CBM-D}{CBM-J}(2 {$fe} : 6 ** line 160 copies the first 2 bytes, con- ** N ** taining the load address, to the new file ** {CBM-K}#5,z$:200:6,G(z);:{CBM-K}#5,z$:200:6,G(z); {CBM-I}{CBM-@} : Z{CBM-+} ** the next 2 lines contain the main loop ** {$f3}{CBM-N} {CBM-K}#5,z$:200:z{CBM-R}0{CBM-M}400 K the main loop is returned to. ** !300:z1{CBM-R}z >{CBM-K}#5,z$:200:z{CBM-M}300:460 l{CBM-@}300:z2{CBM-R}z I{CBM-S}{CBM-K}#5,z$:200:z{CBM-M}300:470 {CBM-U}6,G(0)G(0)G(0);: 5: 6: L6,G(z1)G(z);:170 {CBM-O}V6,G(z1)G(z2)G(z);:170 he next offset value ** ,z{CBM-R}z{CBM-N}256{CBM-N}{CBM-H}(sg){CBM-D}{CBM-J}(2 0 the transactor volume 5 issue 03 page 59 K **************************************************** {CBM-+} * * {$e1} * scramble.ml program -- machine language ver- * * sion for pet/cbm t l(j){CBM-E}0 270 {CBM--} {CBM-K}#j,a$,b$ a{$e6} a${CBM-N}b${CBM-R}"" {CBM-M} l(j){CBM-R}9:n(j){CBM-R}1e9: 270 o{$f0} {CBM-K}#j,a$,b$ X{$fa} n(j){CBM-R}F(a${CBM-N}z$){CBM-N}256{CBM-D}F(b${CBM-N}z$):n(3){CBM-R}n(j) st{CBM-W}{CBM-E}0 {CBM-M} l(j){CBM-R}9 j {CBM-E} l(1){CBM-E}1 {CBM-P} l(2){CBM-E}1 450 D"j0{CBM-R}0:j1{CBM-R}1:j2{CBM-R}2 {SHIFT-+}, n(1){CBM-W}n(2) {CBM-M} j2{CBM-R}1 {$f2}6 n(2){CBM-W}n(1) {CBM-M} j1{CBM-R}2 ; j1{CBM-R} . the codified pro- * m * gram is written to disk, and has the same * # * name as the original, with ".s" appended. * {CBM-B}( * the scrambled program is unintelligible. * {$f8}- * the 'unscramble' option will re-create the * 12 sta bnk1,x ;each partiti. 8jmp savlp1 !bsm2 lda basic,x 0lsta bnk2,x ?vjmp savlp1 v{$60}sm3 lda basic,x EJsta bnk3,x TTjmp savlp1 {$7e}sm4 lda basic,x sta bnk4,x {SHIFT-POUND}jmp savlp1 Vetim .byte $00 ;first time indica{CBM-@}r. {SHIFT--}{CBM-+}. j {CBM-E}0 270 {CBM--} {CBM-K}#j,a$,b$ a{$e6} a${CBM-N}b${CBM-R}"" {CBM-M} l(j){CBM-R}9:n(j){CBM-R}1e9: 270 o{$f0} {CBM-K}#j,a$,b$ X{$fa} n(j){CBM-R}F(a${CBM-N}z$){CBM-N}256{CBM-D}F(b${CBM-N}z$):n(3){CBM-R}n(j) st{CBM-W}{CBM-E}0 {CBM-M} l(j){CBM-R}9 j {CBM-E} l(1){CBM-E}1 {CBM-P} l(2){CBM-E}1 450 D"j0{CBM-R}0:j1{CBM-R}1:j2{CBM-R}2 {SHIFT-+}, n(1){CBM-W}n(2) {CBM-M} j2{CBM-R}1 {$f2}6 n(2){CBM-W}n(1) {CBM-M} j1{CBM-R}2 ; j1{CBM-R}!hat runs about 12 times * w * faster than the basic program. the algorithm * # * generating the pseudo-random sequence is * M( * similar to the basic version, relying heavily * - * on the floating point accumulators. *************************** k : <D "seed between 0 and 1";s: LN "program to be scrambled/unscrambled";p$: X 5,8,5,"0:"{CBM-N}p${CBM-N}",p,r":6,8,6,"0:"{CBM-N}p${CBM-N}".s,p,w" E "scramble or unscramble (s/u)";g$ {$e1} g${CBM-W}{CBM-E}"s"{CBM-P}g${CBM-W}{CBM-E}"u"{CBM-M}:130 {$f8} sg{CBM-R}1:g${CBM-R}"u"{CBM-M}sg{CBM-R}{CBM-Q}1 56{CBM-D}s):z{CBM-R}z{CBM-Q}{CBM-J}(z{CBM-Z}256){CBM-D}256 ! 6s{CBM-R}197{CBM-D}s:s{CBM-R}s{CBM-Q}{CBM-J}(s): ' :: B ** line 400 is gone to when a 0 byte is encoun- ** ** tered. three contiguous 0's end the codifying ** X ** process -- one or two 0's are offset like ** ** other bytes, and! oint format, into memory ** eF ** locations [m,m+1,m+2,m+3,m+4] ** CH e{CBM-R}{CBM-J}({CBM-C}(s){CBM-Z}{CBM-C}(2)):p(0){CBM-R}129{CBM-N}e R p{CBM-R}(s{CBM-Z}2{CBM-S}e{CBM-Q}1){CBM-D}128:p(1){CBM-R}{CBM-J}(p):r{CBM-R}p{CBM-Q}p(1) {CBM-W}{CBM--} i{CBM-R}2{CBM-@}4:p{CBM-R}r{CBM-D}256:p(i){CBM-R}{CBM-J}(p):r{CBM-R}p{CBM-Q}p(i):i M{$e6} i{CBM-R}0{CBM-@}4:m{CBM-N}i,p(i):i: S{$e8} : {$e4}z${CBM-R}""{CBM-M}z{CBM-R}0: {$f2}"z{CBM-R}F(z$): (!0 the transactor volume 5 issue 03 page 63 r s{CBM-R}{CBM-Q}1: ***password encryption H a{CBM-R}B(44){CBM-D}256{CBM-N}B(43) {$7e} a{CBM-R}B(a){CBM-N}B(a{CBM-N}1){CBM-D}256 {CBM-V}( B(a{CBM-Q}2){CBM-W}{CBM-E}36{CBM-A}B(a{CBM-Q}3){CBM-W}{CBM-E}36{CBM-M}30:***locate end of password rout. 2 s{CBM-R}0{CBM-P}(B(a){CBM-W}{CBM-E}0{CBM-A}B(a{CBM-N}1){CBM-W}{CBM-E}0){CBM-M}160 < s{CBM-R}{CBM-Q}1{CBM-P}B(a){CBM-R}0{CBM-P}B(a{CBM-N}1){CBM-R}0{CBM-M}"a!32,10,205,104,96 /832,60,3,240,9,32,100,3,32,74,3,76,137,3 V:32,100,3,141,98,3,32,60,3,208,27,32,100,3,173,99,3,32,60,3,208,33 {CBM-POUND}<169,0,32,74,3,169,0,32,74,3,169,0,32,74,3,96 {CBM-*}>72,173,98,3,32,74,3,104,32,100,3,32,74,3,76,137,3 '@72,173,98,3! **hide program . a,1:a{CBM-N}1,1:***un-hide program t (42291):***re-chain basic links ^ :$$ {$e8}**************************************** Fl"important!! line 160 must end with two dollar signs {$f9}{CBM-A}"your program begins anywhere beyond line 160 !0 the transactor volume 5 issue 03 page 63 v ***file encryption/decryption*** C 15,8,15 "source file name,type";f$,t$ 5,8,5,f${CBM-N}","{CBM-N}t${CBM-N}",r" {CBM-N}( 1000 J2 "destination file name";f$ {$e4}< 6,8,6,f${CBM-N}","{CBM-N}t${CBM-N}",w" {$ee}f 1000 p "password: #0{CBM-M}e,e$,f$,g$: 5: 6: 15: {$fc} no password entered forces a zero value key. i.e. no encryption*** {$7e}D p${CBM-R}""{CBM-M}pl{CBM-R}1:p(1){CBM-R}0:150 N p(C(p$)) X pl{CBM-R}1{CBM-@}C(p$) {CBM-H} p(pl){CBM-R}F(J(p$,pl,1)) {SHIFT-@} {CBM--} ***beginning of copy loop*** {$f6} {CBM-K}#5,c$:c${CBM-R}""{CBM-M}c${CBM-R}G(0) s!m/l pro- * c2 * gram resides at $033c-$03e4 (828-996 dec). * {$7e}7 * the '^' in line 210 represents exponentiation. * {CBM-O}< * ++++ by michael bertrand ++++ * {$f4}a * * /f !x{CBM-R}st {CBM-N} i{CBM-R}i{CBM-N}1 {CBM-H} i{CBM-E}pl{CBM-Q}1{CBM-M}i{CBM-R}1 &{CBM-V} c{CBM-R}F(c$) 1H d{CBM-R}p(i) KM ***c xor d same as (c and not d) or (not c and d)*** R 6,G((c{CBM-P}{CBM-POUND}d){CBM-A}({CBM-POUND}c{CBM-P}d)); {CBM--} sx{CBM-R}0{CBM-M}150 {CBM-S}{$e1} ***end of copy loop*** {CBM-J}{$e6} 5 {CBM-B}{$f0} 1000 F{$fa} 6 P1000 X 15 {$de} {$f1}{$e8}15,e,e$,f$,g$ {$f2}e{CBM-W}{CBM-E}! u"{CBM-M}:130 / {CBM-K}#5,z$:280:6,G(z);:{CBM-K}#5,z$:280:6,G(z); t{CBM-N} i{CBM-R}828{CBM-@}996:x:i,x:i:m{CBM-R}856:200 {CBM-H} g${CBM-R}"u"{CBM-M}868,56:869,237: ** replace adc with sbc in m/l ** {CBM-+}{CBM-V} 905: 5: 6: {CBM-D}{SHIFT-*} : {CBM-*}B ** subroutine 200-230 puts real number s, ** D ** in floating p!0 the transactor volume 5 issue 03 page 65 e disk defender z by david cobb L * 1984 * R( {CBM-L}2 r$(255), r(256) : cl${CBM-R}G(147) : dw${CBM-R}G(17) : z${CBM-R}G(0) :cr${CBM-R}G(13) {SHIFT-+}< cl$dw$"enter combination":c${CBM-R}"" {$ef}f "5 digit code" p dw$"code:! ,162,5,32,198,255,32,228,255,72,32,204,255,104,96 ^ .72,162,6,32,201,255,104,32,210,255,32,204,255,96 {$7e} 00,0,0,0,0,136,69,0,0,0,0,0 A 224,109,90,3,72,169,88,160,3,32,216,204,169,93,160,3,32,94,203 432,66,205,32,2,206,32,137,201,162,88,160,3,!llready protected": 7f "password:";p$:"":p${CBM-R}""{CBM-M}130 ep p(C(p$)) Kz pl{CBM-R}1{CBM-@}C(p$):p(pl){CBM-R}F(J(p$,pl,1)): D b{CBM-R}B(46){CBM-D}256{CBM-N}B(45){CBM-Q}4 {CBM-I}N j{CBM-R}a{CBM-N}2{CBM-@}b:i{CBM-R}i{CBM-N}1:i{CBM-E}pl{CBM-Q}1{CBM-M}i{CBM-R}1 YX c{CBM-R}B(j):d{CBM-R}p(i):j,(c{CBM-P}{CBM-POUND}d){CBM-A}({CBM-POUND}c{CBM-P}d)::***pokej,c xor d s{CBM-R}{CBM-Q}1{CBM-M}a,0:a{CBM-N}1,0:"done"::* ;,32,74,3,173,99,3,32,74,3,104,32,100,3,32,74,3,76,137,3 72,162,6,32,201,255,104,32,210,255,32,204,255,96 {$7e} 00,0,0,0,0,136,69,0,0,0,0,0 A 224,109,90,3,72,169,88,160,3,32,216,204,169,93,160,3,32,94,203 432,66,205,32,2,206,32,137,201,162,88,160,3, 1'**************************************** p${CBM-R}""{CBM-M}130 ep p(C(p$)) Kz pl{CBM-R}1{CBM-@}C(p$):p(pl){CBM-R}F(J(p$,pl,1)): D b{CBM-R}B(46){CBM-D}256{CBM-N}B(45){CBM-Q}4 {CBM-I}N j{CBM-R}a{CBM-N}2{CBM-@}b:i{CBM-R}i{CBM-N}1:i{CBM-E}pl{CBM-Q}1{CBM-M}i{CBM-R}1 YX c{CBM-R}B(j):d{CBM-R}p(i):j,(c{CBM-P}{CBM-POUND}d){CBM-A}({CBM-POUND}c{CBM-P}d)::***pokej,c xor d s{CBM-R}{CBM-Q}1{CBM-M}a,0:a{CBM-N}1,0:"done"::*!";p$:"" z "wait..." B_ ***no password entered forces a zero value key. i.e. no encryption*** {$7e}D p${CBM-R}""{CBM-M}pl{CBM-R}1:p(1){CBM-R}0:150 N p(C(p$)) X pl{CBM-R}1{CBM-@}C(p$) {CBM-H} p(pl){CBM-R}F(J(p$,pl,1)) {SHIFT-@} {CBM--} ***beginning of copy loop*** {$f6} {CBM-K}#5,c$:c${CBM-R}""{CBM-M}c${CBM-R}G(0) s""{CBM-T}6); $z {CBM-K} a$ : a${CBM-R}"" {CBM-A} a${CBM-R}cr$ {CBM-M} 90 qD "*";:c${CBM-R}c${CBM-N}a$ : a${CBM-R}"" : C(c$){CBM-W}{CBM-E}5 {CBM-M} 90 JN "are you sure ?"dw$ O an$ : H(an$,1){CBM-W}{CBM-E}"y" {CBM-M} 60 X n1{CBM-R}F(J(c$,1,1)) {CBM-F} n2{CBM-R}F(J(c$,2,1)) : o2{CBM-R}n2 W n3{CBM-R}F(J(c$,3,1)) : o3{CBM-R}n3 {$f3} n4{CBM-R}F(J(c$,4,1)) : o4{CBM-R}n4 n5{CBM-R}F! **************************************************** 5k : \D "input seed between 0 and 1";s: N "program to be scrambled/unscrambled";p$: {CBM-V}X 5,8,5,"0:"{CBM-N}p${CBM-N}",p,r":6,8,6,"0:"{CBM-N}p${CBM-N}".s,p,w" {$e5} "scramble or unscramble (s/u)";g$ g${CBM-W}{CBM-E}"s"{CBM-P}g${CBM-W}{CBM-E}"" 40500 # r(l){CBM-E}255 {CBM-M} r(l){CBM-R}r(l){CBM-Q}256 3" : 30000 u,cl$"file: "an$" is locked." 6 2 : 15 : : ** end of lock ** @ *** unlock file *** {SHIFT-@}j 10000 : cn{CBM-R}n1 : 20000 Jt l{CBM-R}0 {CBM-@} 255 {SHIFT-+}^r(l){CBM-R}r(l){CBM-Q}n5 Hcn{CBM-R}cn{CBM-Q}1 : cn{CBM-R}0 {CBM-M} 400"0 the transactor volume 5 issue 03 page 73 AD "disk viewer/changer jim butterfield" N " caution - use care - this program" {CBM-U}X " can wreck your disk if used" {$e3} " without care & understanding!" j{CBM-R}20{CBM-@}85:B(32768{CBM-N}j){CBM-W}{CBM-E}" : * adjust for drive type * 0.'2,8,2,"#" : 15,8,15 o8'15,"u1:"2;8;t;s : 50000 zb'ln${CBM-R}"" Jl' l{CBM-R}0 {CBM-@} 254 v'{CBM-K}#2,r$(l) : r$(l){CBM-R}"" {CBM-M} r$(l){CBM-R}z$ {CBM-D}{$60}'ln${CBM-R}ln${CBM-N}r$(l) : : z{CBM-R}1 IJ' J(ln$,z,m){CBM-R}an$ {CBM-M} 10120 {$f6}T'z{CBM-R}z{CBM-N}1 : z{CBM-R}256{CBM-Q}m {CBM-M} s{CBM-R}F(r$(1)) : 100" s {$fa} t{CBM-W}1{CBM-A}t{CBM-E}77{CBM-M} 2: 15: ?" working ":15,"b-r:2,";d$;t;s:500 \15,"b-r:2,";d$;t;s:500 Ij{CBM-R}0{CBM-@}255 {$7f}"15,"m-r";G(j);b$ ,{CBM-K}#15,a$:a${CBM-R}""{CBM-M}a${CBM-R}G(0) {CBM-D}6a(j){CBM-R}F(a$):j {CBM-H}@p{CBM-R}0 Oj"track";t;"sector";s {$e8}tj{CBM-R}p{CBM-@}p{CBM-N}s2{SHIFT-POUND}s1::"]"; ^v{CBM-R}j:800:k${CBM-R}""$(l) : r$(l){CBM-R}"" {CBM-M} r$(l){CBM-R}z$ rnr(l){CBM-R}F(r$(l)) &\n 7Fn 15 : 2 : v0U * write track & sector * Q:U2,8,2,"#" : 15,8,15 dU15,"b-p:"2;0 : l{CBM-R}0 {CBM-@} 255 {CBM-T}xUr$(l){CBM-R}G(r(l)) {CBM-J}BU2,r$(l); : LLU15,"u2:"2;8;tr;sc {CBM--}VU 50000 : {$f1}@ * check code "ere" {CBM-S}a$;"?"; {CBM-U}c$:z{CBM-R}F(c$) :B"":s1{CBM-W}9{CBM-P}z{CBM-R}83{CBM-M}p{CBM-R}128{CBM-Q}p:330 wLz{CBM-R}89{CBM-M}t{CBM-R}a(0):s{CBM-R}a(1):250 EVz{CBM-R}93530 N 230 T{$f4} {$fe}15,e,e$,e1,e2:e{CBM-R}0{CBM-M} {CBM-E}"disk error:"e;e$,e1;e2:: CC(c$){CBM-W}s3230 {$ed}J(c$,4,1){CBM-W}{CBM-E}"-"{CBM-A}J(c$,s3{CBM-N}1,1){CBM-W}{CBM-E}"-"230 {$fb}&c1{CBM-R}2 2 : r$(l){CBM-R}"" {CBM-M} r$(l){CBM-R}z$ rnr(l){CBM-R}F(r$(l)) &\n 7Fn 15 : 2 : v0U * write track & sector * Q:U2,8,2,"#" : 15,8,15 dU15,"b-p:"2;0 : l{CBM-R}0 {CBM-@} 255 {CBM-T}xUr$(l){CBM-R}G(r(l)) {CBM-J}BU2,r$(l); : LLU15,"u2:"2;8;tr;sc {CBM--}VU 50000 : {$f1}@ * check code " (J(c$,5,1)) : o5{CBM-R}n5 :{CBM-N} cl$dw$"lock or unlock file? (l,u)"dw$ B{CBM-H} an$ : an${CBM-W}{CBM-E}"l" {CBM-P} an${CBM-W}{CBM-E}"u" {CBM-M} 170 V{CBM-V} an${CBM-R}"u" {CBM-M} 320 H *** lock file *** R 10000 {CBM-@}{CBM--} cn{CBM-R}n1 {CBM-A}{$e6} 20000 {SHIFT-*}{$f0} l{CBM-R}0 {CBM-@} 255 Q{$fa} r(l){CBM-R}r(l){CBM-N}n5 {$f8}cn{CBM-R}cn{CBM-Q}1 : cn{CBM-R}0 {CBM-M} 40000 : 280 b:v{CBM-R}(v{CBM-Q}v%){CBM-D}16:v%{CBM-E}9{CBM-M}v%{CBM-R}v%{CBM-N}7 4k${CBM-R}k${CBM-N}G(v1) 2 >G(v%{CBM-N}48);:l: 0 wLz{CBM-R}89{CBM-M}t{CBM-R}a(0):s{CBM-R}a(1):250 EVz{CBM-R}93530 N 230 T{$f4} {$fe}15,e,e$,e1,e2:e{CBM-R}0{CBM-M} {CBM-E}"disk error:"e;e$,e1;e2:: CC(c$){CBM-W}s3230 {$ed}J(c$,4,1){CBM-W}{CBM-E}"-"{CBM-A}J(c$,s3{CBM-N}1,1){CBM-W}{CBM-E}"-"230 {$fb}&c1{CBM-R}2"-D "":"disk viewer (c) jim butterfield" hN l2{CBM-R}8:B(32848){CBM-R}4{CBM-M}l2{CBM-R}16 BX t9{CBM-R}35: s%(t9),e$(20) N 17,20 Z 24,19 30,17 35,16 A{CBM-N} c1${CBM-R}G(1):c2${CBM-R}G(16):c3${CBM-R}G(17):c4${CBM-R}G(33){CBM-N}c2$ {CBM-*}{CBM-H} j{CBM-R}0{CBM-@}20:e$(j){CBM-R}"e"{CBM-N}D(j):j {$fb}{CBM-V} e$(2){CBM-R}"block not found" "00 : 380 R 40500 +{$7c} r(l){CBM-W}0 {CBM-M} r(l){CBM-R}r(l){CBM-N}256 ; : 30000 _cl$"file: "an$" is unlocked." 2 : 15 : : ** end of unlock ** {CBM-H}' * find track & sector of file * Y'cl$"enter name of file" : an$ $'m{CBM-R}C(an$) : t{CBM-R}18 : s{CBM-R}1 "32160 j: l1{CBM-R}j:s1{CBM-R}l1{CBM-Z}5 7{CBM-N} s2{CBM-R}s1{CBM-D}16{CBM-Q}1:s3{CBM-R}5{CBM-N}s1{CBM-D}3 d{CBM-H} a(255) U{CBM-V} b${CBM-R}G(17):"drive#";d$:d${CBM-R}"s"{CBM-M}d${CBM-R}"0":b${CBM-R}G(3) H d${CBM-W}{CBM-E}"0"{CBM-P}d${CBM-W}{CBM-E}"1"190 {CBM-POUND}R 15,8,15,"i"{CBM-N}d$:500 {CBM-X}{CBM--} 2,8,2,"#0":500 {$f4}{$e6} " track,sector 0,0"; {$fd}{$f0} t,"40 {$7e}' 10090 ' m{CBM-N}z {CBM-E} 256 {CBM-M} 10140 ? ' F(J(ln$,m{CBM-N}z,1)) {CBM-W}{CBM-E} 160 {CBM-M} 10100 v 'tr{CBM-R}F(J(ln$,z{CBM-Q}2,1)) M {CBM-+}'sc{CBM-R}F(J(ln$,z{CBM-Q}1,1)) {$7e} {CBM-A}' 15 : 2 : n * read track & sector * {CBM-Y} *n2,8,2,"#" : 15,8,15 X 4n15,"u1:"2;8;tr;sc : 50000 {$e8} >n l{CBM-R}0 {CBM-@} 255 hn{CBM-K}#2,r"":"- ";:k{CBM-R}0{CBM-@}s1{CBM-Q}1:v{CBM-R}a(j{CBM-N}k):800:" "; rH k:"-";:k{CBM-R}0{CBM-@}s1{CBM-Q}1:v{CBM-R}a(j{CBM-N}k):(v{CBM-P}127){CBM-W}32{CBM-M}v{CBM-R}32 VRv2{CBM-R}v{CBM-P}63:v2{CBM-R}44{CBM-A}v2{CBM-R}58{CBM-A}v2{CBM-R}34{CBM-M}v{CBM-R}32 {$7c}G(v);:k,j :s1{CBM-W}9{CBM-M} "swap"; {CBM-C}:"next track,sector: "; {CBM-*}a(0){CBM-R}0{CBM-M}"none":a${CBM-R}"quit":430 {$fc}{CBM-@}a(0);a(1):a${CBM-R}"go th"* jcn{CBM-R}n1 : n2{CBM-R}o2 : n3{CBM-R}o3 : n4{CBM-R}o4 : n5{CBM-R}o5 !t <4 * rotate user code * F>oo{CBM-R}n5 : n5{CBM-R}n4 : n4{CBM-R}n3 : n3{CBM-R}n2 : n2{CBM-R}oo Lh pC * error check * zC15, a, a$, q1, q2 {CBM-M}DC a{CBM-R}0 {CBM-M} {SHIFT-@}NCcl$"error ";a BXCa$ {$e2}C"track ";q1;" sector ";q2 {$f3}C 15 : ":700 0c3{CBM-R}c2{CBM-Q}1:k{CBM-R}1{CBM-@}s1:c1{CBM-R}k{CBM-D}3{CBM-N}3:700 a:15,"m-w";G(c3{CBM-N}k);b$;G(1);G(c2) hdk Dn15,"u2:2,";d$;t;s:500 Mx270 {CBM-C}c2{CBM-R}0:j{CBM-R}0{CBM-@}1:c%{CBM-R}F(J(c$,c1{CBM-N}j)):c%{CBM-W}58{CBM-M}c%{CBM-R}c%{CBM-Q}48 {CBM-R}Fc%{CBM-E}64{CBM-M}c%{CBM-R}c%{CBM-Q}55 DPc%{CBM-W}0{CBM-A}c%{CBM-E}15{CBM-M} YZc2{CBM-R}c2{CBM-D}16{CBM-N}c%:j: {$eb} v{CBM-R}v{CBM-Z}16:l{CBM-R}1{CBM-@}2 *v%{CBM-R}v#H e$(3){CBM-R}"no synch" .R e$(4){CBM-R}"block not present" q{CBM--} e$(5){CBM-R}"checksum error in data" J{$e6} e$(7){CBM-R}"verify error" {$f0} e$(8){CBM-R}"write protect!" {CBM-K}{$fa} e$(9){CBM-R}"header checksum" {CBM-L}e$(10){CBM-R}"overrun" Oe$(11){CBM-R}"id mismatch" {$e3}e$(14){CBM-R}"format" {$fb}"e$(16){CBM-R}"decode err" # {CBM-R}G(t):s{CBM-R}0:s${CBM-R}G(s) 1220:e{CBM-W}{CBM-E}1{CBM-M} i15,"m-r"{CBM-N}c4$:{CBM-K}#15,i1$:i1${CBM-R}""{CBM-M}i1${CBM-R}G(0) {$7b}15,"m-r"{CBM-N}G(34){CBM-N}c2$:{CBM-K}#15,i2$:i2${CBM-R}""{CBM-M}i2${CBM-R}G(0) {CBM-@}id${CBM-R}i1${CBM-N}i2$ {CBM-H}{CBM-S}d${CBM-R}G(4):t${CBM-R}G(18):s${CBM-R}G(0):c${CBM-R}G(128{CBM-N}d) {SHIFT-+}{CBM-U}15,"m-w"{CBM-N}G(41){CBM-N}c2${CBM-N}G(4){CBM-N}id${CBM-N}t${CBM-N}s$ {$fa}B15,"m-w"{CBM-N}G(19){CBM-N}c2${CBM-N}c1${CBM-N}#1260 e{CBM-W}{CBM-E}1{CBM-M}n{CBM-R}n{CBM-N}1:n{CBM-W}t51250 e{CBM-E}20{CBM-M}e{CBM-R}20 6e{CBM-W}{CBM-E}1{CBM-M}"disk error: ";e$(e) <( z2v{CBM-R}0:k{CBM-R}r{CBM-@}r{CBM-N}1:x{CBM-R}F(J(q$,k)) K<x{CBM-W}58{CBM-M}x{CBM-R}x{CBM-Q}48 {$7c}fx{CBM-E}64{CBM-M}x{CBM-R}x{CBM-Q}55 px{CBM-W}0{CBM-A}x{CBM-E}15{CBM-M}e{CBM-R}1:1380 {CBM-@}zv{CBM-R}v{CBM-D}16{CBM-N}x:k {CBM-N}D {CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}#$ &p4{CBM-R}C(b$):p4{CBM-M}p4{CBM-R}F(b$) 0""; %:l1{CBM-R}l2 fd15,"m-r"{CBM-N}G(0){CBM-N}G(17):{CBM-K}#15,r$ znt1{CBM-R}0:r${CBM-R}""630 Gxt1{CBM-R}F(r$) B15,"m-r"{CBM-N}G(1){CBM-N}G(17):{CBM-K}#15,r$ {CBM-I}Ls1{CBM-R}C(r$):s1{CBM-M}s1{CBM-R}F(r$) {CBM-D}V1120 Bl2{CBM-R}8{CBM-M}"swap / "; {CBM--}b{CBM-P}p2{CBM-M}"use / ";:670 {$ed} "free / "; t# .F{SHIFT-POUND}* R~{SHIFT-POUND} R~{SHIFT-POUND} R~Fh{$e1}{$60} r-m ( ********************************* o ** xref ** V ** (c) 1985 by david archibald ** ( ** (313) 736-0239 ** D2 ********************************* J< Pf Vp {$ed}z ""#{$fc} {$ee}15,x$ {$f8}c${CBM-R}G(144{CBM-N}d):1240 490 ej{CBM-R}1{CBM-@}C(q$):q{CBM-R}F(J(q$,j)):q{CBM-R}63{CBM-A}q{CBM-R}32{CBM-M}j ]j{CBM-R}1{CBM-@}1::q{CBM-R}851030 L q{CBM-R}701050 *q{CBM-R}78{CBM-P}t1{CBM-E}0{CBM-M}t{CBM-R}t1:s{CBM-R}s1:490 4q{CBM-R}82470 {CBM-@}>q{CBM-R}81{CBM-M} {CBM-W}hq{CBM-R}801000 Arq{CBM-R}77890 P\q{CBM-W}{CBM-E}83640 {$ed}Fs7{CBM-R}s7{CBM-N}l2{CBM-D}16:s7{CBM-E}255{CBM-M}s7{CBM-R}0 #":"- ";:k{CBM-R}0{CBM-@}s1{CBM-Q}1:v{CBM-R}a(j{CBM-N}k):800:" "; rH k:"-";:k{CBM-R}0{CBM-@}s1{CBM-Q}1:v{CBM-R}a(j{CBM-N}k):(v{CBM-P}127){CBM-W}32{CBM-M}v{CBM-R}32 VRv2{CBM-R}v{CBM-P}63:v2{CBM-R}44{CBM-A}v2{CBM-R}58{CBM-A}v2{CBM-R}34{CBM-M}v{CBM-R}32 {$7c}G(v);:k,j :s1{CBM-W}9{CBM-M} "swap"; {CBM-C}:"next track,sector: "; {CBM-*}a(0){CBM-R}0{CBM-M}"none":a${CBM-R}"quit":430 {$fc}{CBM-@}a(0);a(1):a${CBM-R}"go th#k:208,j:4550 JB(136){CBM-W}{CBM-E}0{CBM-M}"?"; Tj:{CBM-K}z$ / {$de}{CBM-K}z$:z${CBM-R}""990 8 {CBM-*}880 p {$e8}4,4:l1{CBM-R}16:4:1130 ] {$f2}4:4: 4 F {$fc}640 b{CBM-P}p2{CBM-M}b{CBM-R}b{CBM-Q}p2:p4{CBM-R}p4{CBM-Q}1:1070 640 b{CBM-P}p2640 {CBM-P} $b{CBM-R}b{CBM-A}p2:p4{CBM-R}p4{CBM-N}1 G .d${CBM-R}G(4):c${CBM-R}G(144{CBM-N}d) {$eb} 815,"m-w"{CBM-N}G(p1){CBM-N}G(18){CBM-N}G(1){CBM-N}G(b) # :700 0c3{CBM-R}c2{CBM-Q}1:k{CBM-R}1{CBM-@}s1:c1{CBM-R}k{CBM-D}3{CBM-N}3:700 a:15,"m-w";G(c3{CBM-N}k);b$;G(1);G(c2) hdk Dn15,"u2:2,";d$;t;s:500 Mx270 {CBM-C}c2{CBM-R}0:j{CBM-R}0{CBM-@}1:c%{CBM-R}F(J(c$,c1{CBM-N}j)):c%{CBM-W}58{CBM-M}c%{CBM-R}c%{CBM-Q}48 {CBM-R}Fc%{CBM-E}64{CBM-M}c%{CBM-R}c%{CBM-Q}55 DPc%{CBM-W}0{CBM-A}c%{CBM-E}15{CBM-M} YZc2{CBM-R}c2{CBM-D}16{CBM-N}c%:j: {$eb} v{CBM-R}v{CBM-Z}16:l{CBM-R}1{CBM-@}2 *v%{CBM-R}v# ,t1{CBM-R}1 6 t,s:s{CBM-E}s9{CBM-M}s9{CBM-R}s a@j{CBM-R}t1{CBM-@}t:s%(j){CBM-R}s:j:t1{CBM-R}t{CBM-N}1:t{CBM-W}t9310 \j 1,2,4,8,16,32,64,128 Qtj{CBM-R}0{CBM-@}7:p%(j):j {$7b}^t5{CBM-R}10 H"drive#";d:d{CBM-W}0{CBM-A}d{CBM-E}1360 WR 15,8,15:t${CBM-R}G(1):s${CBM-R}t$:id${CBM-R}"..":c${CBM-R}G(192{CBM-N}d):d${CBM-R}G(3):1220 {$7c}i{CBM-R}0:s${CBM-R}c1$:c${CBM-R}G(176{CBM-N}d):t{CBM-R}18:t$#ck";t1;"sector";s1 ,{CBM-+}l{CBM-R}1{CBM-@}2:w%{CBM-R}w:w{CBM-R}(w{CBM-Q}w%){CBM-D}16:w%{CBM-E}9{CBM-M}w%{CBM-R}w%{CBM-N}7 >{CBM-A}G(w%{CBM-N}48);:l d{SHIFT-@} ED15,"m-w"{CBM-N}c4${CBM-N}G(4){CBM-N}id${CBM-N}t${CBM-N}s$ N15,"m-w"{CBM-N}G(18){CBM-N}c2${CBM-N}c1${CBM-N}t$ Xn{CBM-R}0 {CBM-POUND}{$e2}15,"m-w"{CBM-N}d${CBM-N}c2${CBM-N}c1${CBM-N}c$ E{$ec}15,"m-r"{CBM-N}d${CBM-N}c2$:{CBM-K}#15,e$ {CBM--}{$f6}e{CBM-R}C(e$):e{CBM-M}e{CBM-R}F(e$) {$ec} e{CBM-E}127#t$ L1240:e{CBM-W}{CBM-E}1{CBM-M} .Vd${CBM-R}G(3)::"track,sector";t,s 9 t{CBM-R}0{CBM-M} G{$ea}t${CBM-R}G(t):s${CBM-R}G(s):c${CBM-R}G(128{CBM-N}d):1220:e{CBM-W}{CBM-E}1{CBM-M} {$7c}{$f4}s%{CBM-R}s{CBM-Z}8:s1{CBM-R}s{CBM-Q}s%{CBM-D}8 {$fe}p3{CBM-R}4{CBM-D}t:p1{CBM-R}p3{CBM-N}s%{CBM-N}1:p2{CBM-R}p%(s1) {CBM-V}15,"m-r"{CBM-N}G(p1){CBM-N}G(18):{CBM-K}#15,b$ Ub{CBM-R}C(b$):b{CBM-M}b{CBM-R}F(b$) {$f7}15,"m-r"{CBM-N}G(p3){CBM-N}G(18):{CBM-K}#15,b#{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N}{CBM-N} D &8)" poking{CBM-I}{CBM-B} {CBM-V}{CBM-I} I~{CBM-I}{CBM-X}{$fd} R~J{$f7}{CBM-G}{CBM-V} R~{SHIFT-POUND} R~ L~{CBM-I} F~ {$e4}~ {CBM-V} L~{$e6}{CBM-V}PP{$60}hjjjj tH)I II0lR~{CBM-I}{CBM-B}JA{CBM-I}{CBM-G}{CBM-V} i{SHIFT-POUND}< R~{SHIFT-POUND} R~{SHIFT-POUND} {SHIFT-*} {CBM-E}{CBM-V}{CBM-N}){$7f}I I,{$f0}I:P{SHIFT-POUND} {SHIFT-*} i{SHIFT-POUND} R~{$e6}{CBM-V}{$e6}{SHIFT-*}{CBM-+}{SHIFT-*}{$e4}BPT{SHIFT-POUND}> R~ {SHIFT-*}{CBM-E}{SHIFT-*} R~HDBP{$f6}{SHIFT-POUND} R~FP{CBM-G}{$60}{CBM-I}{CBM-G}PIJIJJIJhfFF{SHIFT-POUND}#1{CBM-E}0{CBM-M}"next / "; 5 {CBM-POUND}"map / read / quit / print " \ {CBM-R}" ";q$:"" R {CBM-C}C(q$){CBM-W}l2{CBM-D}3{CBM-N}4780 Fx${CBM-R}J(q$,3,1):x${CBM-W}{CBM-E}"<"780 {CBM-I} Pe{CBM-R}0:r{CBM-R}1:1330 G Zx${CBM-R}"m-w"{CBM-N}G(v){CBM-N}G(17){CBM-N}G(l2):e{CBM-E}0{CBM-M} {$f1} {$e4}j{CBM-R}0{CBM-@}l2{CBM-Q}1:r{CBM-R}5{CBM-N}3{CBM-D}j:1330:x${CBM-R}x${CBM-N}G(v):j ::::::: D {CBM-+}8)"poking &8)" poking{CBM-I}{CBM-B} {CBM-V}{CBM-I} I~{CBM-I}{CBM-X}{$fd} R~J{$f7}{CBM-G}{CBM-V} R~{SHIFT-POUND} R~ L~{CBM-I} F~ {$e4}~ {CBM-V} L~{$e6}{CBM-V}PP{$60}hjjjj tH)I II0lR~{CBM-I}{CBM-B}JA{CBM-I}{CBM-G}{CBM-V} i{SHIFT-POUND}< R~{SHIFT-POUND} R~{SHIFT-POUND} {SHIFT-*} {CBM-E}{CBM-V}{CBM-N}){$7f}I I,{$f0}I:P{SHIFT-POUND} {SHIFT-*} i{SHIFT-POUND} R~{$e6}{CBM-V}{$e6}{SHIFT-*}{CBM-+}{SHIFT-*}{$e4}BPT{SHIFT-POUND}> R~ {SHIFT-*}{CBM-E}{SHIFT-*} R~HDBP{$f6}{SHIFT-POUND} R~FP{CBM-G}{$60}{CBM-I}{CBM-G}PIJIJJIJhfFF{SHIFT-POUND}#P"";:l1{CBM-R}l2:1130:640 /Z"bam map":j{CBM-R}0{CBM-@}20:J(D(j),2):j nj{CBM-R}1{CBM-@}35:j%{CBM-R}j{CBM-Z}10:j1{CBM-R}j{CBM-Q}j%{CBM-D}10 Jz${CBM-R}"":j1{CBM-R}0{CBM-M}z${CBM-R}G(j%{CBM-N}48) "";{CBM-T}j{CBM-N}2);z$:{CBM-T}j{CBM-N}2);G(j1{CBM-N}48);""; {CBM-+}{CBM-I}k{CBM-R}0{CBM-@}3:j1{CBM-R}j{CBM-D}4{CBM-N}k {SHIFT-*}{CBM-D}15,"m-r"{CBM-N}G(j1){CBM-N}G(18) {CBM-*}{CBM-L}{CBM-K}#15,z$:z{CBM-R}C(z$):z{CBM-M}z{CBM-R}F(z$) {$fc}{SHIFT-*}136{CBM-N}k,z:#ere" {CBM-S}a$;"?"; {CBM-U}c$:z{CBM-R}F(c$) :B"":s1{CBM-W}9{CBM-P}z{CBM-R}83{CBM-M}p{CBM-R}128{CBM-Q}p:330 wLz{CBM-R}89{CBM-M}t{CBM-R}a(0):s{CBM-R}a(1):250 EVz{CBM-R}93530 N 230 T{$f4} {$fe}15,e,e$,e1,e2:e{CBM-R}0{CBM-M} {CBM-E}"disk error:"e;e$,e1;e2:: CC(c$){CBM-W}s3230 {$ed}J(c$,4,1){CBM-W}{CBM-E}"-"{CBM-A}J(c$,s3{CBM-N}1,1){CBM-W}{CBM-E}"-"230 {$fb}&c1{CBM-R}2#b15,"m-w"{CBM-N}G(p3){CBM-N}G(18){CBM-N}G(1){CBM-N}G(p4) "l1240:e{CBM-W}{CBM-E}1{CBM-M} 3vd${CBM-R}G(3):880 b{$60}4368:s7{CBM-R}0 NJa${CBM-R}"[allocated]":b{CBM-P}p2{CBM-M}a${CBM-R}"[free] " T" track";t;"sector";s;a$;" id=";id$ {CBM-E}{$7e}194,l1:190,s7:4447 Rt1{CBM-R}0{CBM-M}"no next block":1180 {$fc} "next sector: tra