home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Transactor
/
Transactor_19_1987_Transactor_Publishing.d64
/
menus demo
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2023-02-26
|
6KB
|
234 lines
100 rem save "0:menus demo",8
110 rem 'hires menus demonstration
120 if peek(49153)<>194 then load "hires",8,1
130 if peek(32769)<> 97 then load "menus",8,1
140 :
150 poke52,128:poke56,128:clr:rem reserve memory
160 :
170 rem 'hires' variables
180 hires=49152:draw=hi+3:plot=dr+3
190 mve=pl+3:clscr=mv+3:dmode=cl+3
200 selpc=dm+3:colour=se+3:box=co+3
210 text=bo+3:prnt=te+3:chset=pr+3
220 trap=ch+3
230 :
240 rem 'menus' variables
250 menus=32768
251 mnum=me+3
252 mitm=mn+3
253 mflg=mn+2
254 mouse=mi+3
255 mb=mo+3
256 mx=mb+3:my=mx+3
260 :
270 :
280 rem user demo - experiment with it
285 :
290 rem c-1350 mouse in control port 2
295 :
300 sys hires,0,3,0:poke53280,14
310 tt$="[215]orkbench [214]ersion 1.0 30717 bytes free"
320 sys prnt,0,0,chr$(14)+tt$
325 sys prnt,12,10,"[215]orking ....."
330 gosub1000'build the strings
335 sys prnt,12,10," "
340 sys menus clr:rem clear menu lists
350 sys mouse,1 :rem set arrow cursor
355 :
360 rem build the menus
370 sys menus,1,0,1," [198]ile ",1
371 sys menus,1,1,1," [207]pen"
372 sys menus,1,2,1," [211]how [201]nfo..."
373 sys menus,1,3,0,"---------------"
374 sys menus,1,4,1," [206]ew [198]older..."
375 sys menus,1,5,1," [195]lose [198]older"
376 sys menus,1,6,1," [195]lose [215]indow"
377 sys menus,1,7,0,"---------------"
378 sys menus,1,8,1," [198]ormat..."
379 :
380 sys menus,2,0,1," [197]dit ",8
381 sys menus,2,1,1,edit$, 192or1
382 sys menus,2,2,1,type$, 192or5
383 sys menus,2,3,1,pen$, 192or1
384 sys menus,2,4,1,erase$,192or5
385 sys menus,2,5,1,fill$, 192or1
386 sys menus,2,6,1,cube$, 192or5
387 sys menus,2,7,1,spray$,192or1
388 sys menus,2,8,1,actn$, 192or5
389 :
390 sys menus,3,0,1,faunts$,128or15
391 sys menus,3,1,1," [208]lain",41
392 sys menus,3,2,1,italic$,128or33
393 sys menus,3,3,1,script$,128or13
394 sys menus,3,4,0,"[192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192]"
395 sys menus,3,5,2," [193]lign [204]eft",42
396 sys menus,3,6,1," [193]lign [205]iddle ",36
397 sys menus,3,7,1," [193]lign [210]ight",17
398 :
399 :
400 sys menus,4,0,1," [199]oodies ",23
401 sys menus,4,1,1,disk$, 192or1
402 sys menus,4,2,1,paper$,192or1
403 sys menus,4,3,2,mouse$,192or1
404 sys menus,4,4,1,cmlg$, 192or1
405 sys menus,4,5,0,""
406 sys menus,4,6,1," [203]ey "
407 :
408 :
409 :
500 rem display menu bar & white mouse
510 sys menus on,7,6:sys mouse on,1
520 :
530 rem main program loop start
540 :
550 rem poll variables as needed
560 nm=peek(mn):im=peek(mi):bt=peek(mb)
570 xm=peek(mx)+256*peek(mx+1)
580 ym=peek(my)
590 :
600 rem 'on nm gosub xxx,xxx,xxx,xxx'
610 if nm then print nm,im:poke(mn),0
620 :
630 rem if bt=1 then 'act on right btn
640 if bt=255 goto720 'act on left btn
650 :
660 rem try sys draw,rnd(1)*320,rnd(1)*180
670 rem try if bt=255 then sys draw,xm,ym
680 :
690 goto530 'main loop
700 :
710 remove mouse,menu bar, await keypress
720 sys mouse off:sys menus off
730 wait198,1:get a$:sys text:end
740 :
799 :
999 rem subroutines to build strings
1000 ns=48:gosub2000:edit$=a$
1002 ns=48:gosub2000:type$=a$
1004 ns=48:gosub2000:pen$=a$
1006 ns=48:gosub2000:erase$=a$
1008 ns=48:gosub2000:fill$=a$
1010 ns=48:gosub2000:cube$=a$
1012 ns=48:gosub2000:spray$=a$
1014 ns=48:gosub2000:actn$=a$
1016 ns=56:gosub2000:faunts$=a$
1018 ns=56:gosub2000:italic$=a$
1020 ns=56:gosub2000:script$=a$
1022 ns=48:gosub2000:disk$=a$
1024 ns=48:gosub2000:paper$=a$
1026 ns=32:gosub2000:mouse$=a$
1028 ns=48:gosub2000:cmlg$=a$
1030 return
2000 a$="":for i=1 to ns:read byte
2002 a$=a$+chr$(byte):next
2004 f=fre(""):return
2006 :
2999 rem string data
3000 rem edit$ - [image$-2]
3005 data 0,124,64,64,64,64,0,0
3010 data 0,0,0,0,0,0,0,0
3015 data 0,62,2,2,2,2,0,0
3020 data 0,0,64,64,64,64,124,0
3025 data 0,0,0,0,0,0,0,0
3030 data 0,0,2,2,2,2,62,0
3035 rem type$ - [image$-2]
3040 data 0,7,15,28,0,0,0,0
3045 data 0,255,255,24,24,24,24,24
3050 data 0,224,240,56,0,0,0,0
3055 data 0,0,0,0,0,0,0,0
3060 data 24,24,24,24,24,60,126,0
3065 data 0,0,0,0,0,0,0,0
3070 rem pen$ - [image$-2]
3075 data 0,0,0,0,0,0,0,0
3080 data 0,254,254,130,146,178,162,162
3085 data 0,0,0,0,0,0,0,0
3090 data 0,0,0,0,0,0,10,0
3095 data 130,146,238,68,40,16,176,0
3100 data 0,0,0,0,0,0,0,0
3105 rem erase$ - [image$-2]
3110 data 0,0,0,0,0,0,0,0
3115 data 0,0,0,15,31,33,66,132
3120 data 0,0,0,224,160,64,64,128
3125 data 1,3,4,4,3,0,0,0
3130 data 9,242,12,8,240,0,0,0
3135 data 0,0,0,0,0,0,0,0
3140 rem fill$ - [image$-2]
3145 data 0,0,0,0,0,1,3,7
3150 data 0,48,32,64,128,0,255,255
3155 data 0,0,0,0,0,56,216,152
3160 data 15,31,15,3,0,0,0,0
3165 data 255,254,252,248,240,32,0,0
3170 data 24,8,8,8,8,0,0,0
3175 rem cube$ - [image$-2]
3180 data 0,0,3,12,16,28,23,26
3185 data 48,204,3,0,0,1,7,223
3190 data 0,0,0,192,96,224,224,224
3195 data 21,26,21,14,3,0,0,0
3200 data 127,191,127,191,126,248,32,0
3205 data 224,224,224,128,0,0,0,0
3210 rem spray$ - [image$-2]
3215 data 0,0,1,6,8,24,16,16
3220 data 0,0,255,126,24,126,153,153
3225 data 0,16,64,8,32,8,0,0
3230 data 16,16,0,0,0,0,0,0
3235 data 153,153,255,255,255,255,0,0
3240 data 0,0,0,0,0,0,0,0
3245 rem actn$ - [image$-2]
3250 data 0,0,0,0,0,0,0,12
3255 data 0,0,1,3,7,14,29,59
3260 data 0,192,192,128,0,0,128,96
3265 data 14,15,7,3,3,1,0,0
3270 data 118,185,221,222,191,255,255,255
3275 data 216,180,108,216,48,160,192,128
3280 rem faunts$ - [image$-1]
3285 data 0,0,0,0,0,0,0,0
3290 data 126,144,80,30,80,144,144,96
3295 data 0,0,120,206,205,204,120,0
3300 data 0,0,56,100,164,37,66,0
3305 data 0,48,252,48,48,241,14,0
3310 data 0,24,36,68,130,3,60,0
3315 data 0,0,0,0,0,0,0,0
3320 rem italic$ - [image$-1]
3325 data 0,0,0,0,0,0,0,0
3330 data 30,12,12,12,24,24,60,0
3335 data 0,12,63,12,24,24,14,0
3340 data 0,0,30,3,62,102,62,0
3345 data 0,28,12,12,24,24,60,0
3350 data 0,12,0,28,24,24,60,0
3355 data 0,0,30,48,96,96,60,0
3360 rem script$ - [image$-1]
3365 data 0,0,0,0,0,0,0,0
3370 data 114,140,192,56,6,113,129,126
3375 data 0,0,112,200,192,193,126,0
3380 data 0,0,80,104,200,69,69,0
3385 data 24,0,24,24,24,249,30,0
3390 data 0,176,200,136,200,177,142,128
3395 data 0,48,252,48,48,241,14,0
3400 rem disk$ - [image$-2]
3405 data 0,127,64,64,64,64,64,64
3410 data 0,255,0,0,126,129,129,129
3415 data 0,254,2,2,2,6,2,2
3420 data 64,64,64,64,64,64,127,0
3425 data 126,0,24,24,24,0,255,0
3430 data 2,2,2,2,2,2,254,0
3435 rem paper$ - [image$-2]
3440 data 0,15,16,32,32,32,16,8
3445 data 0,255,0,0,0,0,0,0
3450 data 0,248,16,32,32,32,16,8
3455 data 4,30,33,65,65,34,31,0
3460 data 0,0,0,0,0,0,255,0
3465 data 8,4,2,2,2,4,248,0
3470 rem mouse$ - [image$-2]
3475 data 0,127,81,81,81,95,72,72
3480 data 0,255,69,69,69,125,9,9
3485 data 72,72,72,79,80,96,127,0
3490 data 9,9,9,249,5,3,255,0
3495 rem cmlg$ - [image$-2]
3500 data 0,127,64,65,71,79,79,95
3505 data 0,255,0,252,252,255,131,3
3510 data 0,254,2,2,2,226,194,2
3515 data 95,79,79,71,65,64,127,0
3520 data 3,131,255,252,252,0,255,0
3525 data 2,194,226,2,2,2,254,0
3530 end of data