8-Bit Software Online Conversion
:0.$.MIDEDIT - Listing
10 REM "MIDIMEM-EDIT" Ch.W.Brederode,
LISSE 1988, The Netherlands
15REM This is Public Domain
20 MODE6:HIMEM=&2800:DIM C%(15)
30 ONERROR GOTO 700
40 PRINT'" MIDIMEM-EDIT"'" ==========
=="''
50 PRINT" You can draw 15 pictures fo
r MIDIMEM."'
70 PRINT" Choose colours with 0123456
789ABCDEF"
80 PRINT" Use the cursor-keys for edi
ting and"
90 PRINT" press the spacebar."'
100 PRINT" Move the = below the pictur
es with"
110 PRINT" the < or > (use SHIFT) to w
here you"
120 PRINT" want it to be saved and AFT
ER that"
130 PRINT" press CTRL/S. CTRL/L = read
back for"
140 PRINT" changes. STOP WITH ESCAPE."
'
150 PRINT" When ready with editing sav
e it by"
160 PRINT" *SAVE MIDIKRT 2800 +800"'
170 PRINT" Press any key...";
180 Q=GET
190 MODE2:HIMEM=&2800:Z%=HIMEM:*FX4,1
191 *LO. MIDIKRT
192 PRINTTAB(11,3);
193 FOR N%=1 TO 7:COLOUR N%:PRINTCHR$(
48+N%);:NEXT
194 PRINTTAB(11,5)"BLACK=0"
200 C%=7:PRINTTAB(11,1)"colour";C%;
205 VDU23;8202;0;0;0;
210 PL=0:I%=11:J%=17:PRINTTAB(I%,J%)"=
"
220 REM --- kleurentabel ---
230 FOR N%=0 TO 15:READ A%:C%(N%)=A%:N
EXT
240 DATA 0,1,4,5,16,17,20,21,64,65,68,
69,80,81,84,85
250 REM --- tekenblokje en cursor ---
260 VDU23,240,15,15,15,15,15,15,15,15
265 VDU23,241,0,0,0,6,6,0,0,0
270 REM --- tekenveld ---
280 MOVE50,1000:DRAW586,1000:DRAW586,4
68:DRAW50,468:DRAW50,1000
290 P%=&3000+13*640+48:M%=&2800
300 REM --- display 15 figuren ---
310 PROCdisplay
320 X%=32:Y%=988:PROCc
330 REM --- cursor ---
340 REPEAT PRINTTAB(17,1);C%;" ";
345 Q%=GET
350 IF Q%=136 PROCc:X%=X%-32-32*(X%=32
) :PROCc:UNTILFALSE
355 IF Q%=137 PROCc:X%=X%+32+32*(X%=51
2):PROCc:UNTILFALSE
360 IF Q%=138 PROCc:Y%=Y%-32-32*(Y%=50
8):PROCc:UNTILFALSE
370 IF Q%=139 PROCc:Y%=Y%+32+32*(Y%=98
8):PROCc:UNTILFALSE
380 IF Q%=12 PROCdecodeer:X%=32:Y%=988
:PROCc:C%=7:UNTILFALSE
390 IF Q%=19 PROCc:PROCcodeer:PROCwis:
X%=32:Y%=988:PROCc:C%=7:UNTILFALSE
400 IF Q%>47 AND Q%<58 C%=Q%-48:UNTILF
ALSE
410 IF Q%>64 AND Q%<71 C%=Q%-55:UNTILF
ALSE
420 IF Q%=60 OR Q%=62 PROCkies:UNTILFA
LSE
430 GCOL0,C%:VDU5,240,4:GCOL0,7:PROCc
440 UNTILFALSE
450DEFPROCcodeer
460 U%=64:V%=984:LOCAL F%,G%,S%,T%
470 FOR F%=0 TO 14 STEP2:FOR G%=0 TO 1
5
490 S%=U%+32*F%:T%=V%-32*G%
500 Q%=POINT(S%,T%):W%=C%(Q%)*2
505 Q%=POINT(S%+32,T%):W%=W%+C%(Q%)
510 ?Z%=W%:Z%=Z%+1:NEXT:NEXT
520 T%=PL:PROCshow
530 Z%=&2800+PL*128:Q%=62:PROCkies
531 ENDPROC
532DEFPROCdecodeer
533 Z%=&2800+128*PL:VDU5
534 FOR B%=0 TO 14 STEP2:X%= 32+32*B%
535 FOR H%=0 TO 15:Y%=988-32*H%
536 E%=?Z%
537 C%=(E%AND128)/16+(E%AND32)/8+(E%AN
D8)/4+(E%AND2)/2
538 GCOL0,C%:MOVEX%,Y%:VDU240
539 E%=?Z%:C%=(E%AND64)/8+(E%AND16)/4+
(E%AND4)/2+(E%AND1)
540 GCOL0,C%:MOVEX%+32,Y%:VDU240
542 Z%=Z%+1:NEXT:NEXT
544 Z%=&2800+128*PL:VDU4
549 ENDPROC
550DEFPROCdisplay
551 FOR T%=0 TO 14:PROCshow:NEXT:PL=0
552 ENDPROC
559DEFPROCshow
560 U%=(T%+3)MOD6:V%=(T%+3)DIV6:L%=M%+
T%*128
570 SOUND1,-1,100,1
571 Q%=P%+96*U%+3840*V%
572 FOR B%=0 TO 7:W%=Q%+B%*8
573 FOR H%=0 TO 3:E%=W%+H%*640
574 E%?0=L%?0:E%?1=L%?0:E%?2=L%?1:E%?3
=L%?1
575 E%?4=L%?2:E%?5=L%?2:E%?6=L%?3:E%?7
=L%?3
576 L%=L%+4:NEXT:NEXT
590 ENDPROC
600DEFPROCwis
610 FOR M=1 TO 16:PRINTTAB(1,M)"
":NEXT
620 ENDPROC
630DEFPROCkies
640 PRINTTAB(I%,J%)" "
650 IF Q%=62 AND PL<14 PL=PL+1:Z%=Z%+1
28
660 IF Q%=60 AND PL>0 PL=PL-1:Z%=Z%-1
28
670 I%=2+((PL+3)MOD6)*3:J%=17+6*((PL+3
)DIV6)
680 PRINTTAB(I%,J%)"="
690 ENDPROC
691DEFPROCc:GCOL3,7:MOVEX%,Y%:VDU5,241
,8,4:GCOL0,7
692 ENDPROC
700 *FX4