8-Bit Software Online Conversion
Push the Bale - Master - Listing
10 REM Push-the-Bale
20 REM by Carl Wheat 1992
30 REM for Public Domain
40 :
50 PROCchrs:MODE7:PROCstart:MODE5
60 VDU5:IF K%=78 PROCnew
70 REPEAT:CLS:PROCmap
80 REPEAT:K%=0:K%=INKEY(10)
90 IF K%=47 OR K%=58 OR K%=88 OR K%=9
0 PROCtest:*FX21,0
130 IF K%=127 PROCback
140 IF K%=27 PROCclean:PROCmap
150 UNTIL K%=78 OR K%=81 OR P%=A%
160 IF P%=A% PROCcomp
170 IF K%=78 PROCnew
180 UNTIL K%=81:MODE7:END
190 :
200 DEFPROCtest:D%=1:Z%=0
210 N%=Y%:E%=X%:W%=Y%:V%=X%
220 IF K%=47 Y%=Y%-1:W%=Y%-1:M$=D$
230 IF K%=58 Y%=Y%+1:W%=Y%+1:M$=U$
240 IF K%=88 X%=X%+1:V%=X%+1:M$=R$
250 IF K%=90 X%=X%-1:V%=X%-1:M$=L$
260 C%=POINT(X%*64+32,Y%*32-16)
270 IF C%=3 PROCmove:F%=1
280 IF C%=1 Y%=N%:X%=E%
290 IF C%=0 PROCmove:F%=0
300 IF C%=2 PROCpush
310 FOR T%=1 TO 300:NEXT T%:ENDPROC
320 :
330 DEFPROCmove
340 MOVEE%*64,N%*32:PRINT X$;
350 IF F%=1 PRINT A$
360 MOVEX%*64,Y%*32:PRINT M$:ENDPROC
370 :
380 DEFPROCpush
390 C%=POINT(V%*64+32,W%*32-16)
400 IF C%=1 OR C%=2 Y%=N%:X%=E%:Z%=0:E
NDPROC
410 D%=POINT(X%*64+16,Y%*32-16)
420 MOVEX%*64,Y%*32:PRINT X$
430 MOVEV%*64,W%*32
440 IF C%=3 PRINT P$ ELSE PRINT B$
450 PROCmove:F%=0:IF C%=3 P%=P%+1
460 IF D%=1 F%=1:P%=P%-1
470 Z%=1:ENDPROC
480 :
490 DEFPROCback:IF D%=0 ENDPROC
500 MOVEX%*64,Y%*32:PRINT X$;
510 IF F%=1 PRINT A$:F%=0
520 IFPOINT(E%*64+32,N%*32-16)=3 F%=1
530 MOVEE%*64,N%*32:PRINT M$
540 IF Z%=1 PROCBale
550 Y%=N%:X%=E%:D%=0:ENDPROC
560 :
570 DEFPROCBale
580 C%=POINT(V%*64+16,W%*32-16)
590 MOVEV%*64,W%*32:PRINT X$;
600 IF C%=1 PRINT A$:P%=P%-1
610 C%=POINT(X%*64+32,Y%*32-16)
620 MOVEX%*64,Y%*32
630 IF C%=3 PRINT P$:P%=P%+1
640 IF C%=0 PRINT B$
650 ENDPROC
660 :
670 DEFPROCcomp:VDU19,2,11,0,0,0
680 S%=S%+1:IF S%=51 S%=1
690 TIME=0:REPEAT:UNTIL TIME>800
700 VDU19,2,3,0,0,0:ENDPROC
710 :
720 DEFPROCmap:P%=0:A%=0:F%=0
730 RESTORE (1690+10*S%)
740 READ R%:U%=(32-R%)/2
750 FOR Y%=1 TO R%:READ Z$
760 IF K%=27 NEXT ELSE PROCconv:PROCpl
ot(W$):NEXT
770 FOR Y%=2 TO R%-1:READ Z$
780 IF Z$="X" Z$="0":Y%=R%-1
790 IF Z$<>"0" PROCconv:PROCplot(A$)
800 NEXT:FOR Y%=3 TO R%-2:READ Z$
810 IF Z$<>"0" PROCconv:PROCplot(B$)
820 NEXT:READ X%,Y%:Y%=Y%+U%
830 MOVE300,900:PRINT"SCREEN - ";S%
840 MOVEX%*64,32*Y%:PRINT S$:ENDPROC
850 :
860 DEFPROCconv:Y$=""
870 REPEAT:Z$="0"+Z$:UNTIL LEN(Z$)=6
880 FOR I%=2 TO 6:N$=MID$(Z$,I%,1)
890 IF N$="0" N$="0000"
900 IF N$="1" N$="0001"
910 IF N$="2" N$="0010"
920 IF N$="3" N$="0011"
930 IF N$="4" N$="0100"
940 IF N$="5" N$="0101"
950 IF N$="6" N$="0110"
960 IF N$="7" N$="0111"
970 IF N$="8" N$="1000"
980 IF N$="9" N$="1001"
990 IF N$="A" N$="1010"
1000 IF N$="B" N$="1011"
1010 IF N$="C" N$="1100"
1020 IF N$="D" N$="1101"
1030 IF N$="E" N$="1110"
1040 IF N$="F" N$="1111"
1050 Y$=Y$+N$:NEXT:ENDPROC
1060 :
1070 DEFPROCplot(I$):MOVE64,(Y%+U%)*32
1080 FOR X%=2 TO 20:N$=MID$(Y$,X%,1)
1090 IF N$="1" N$=I$ ELSE N$=O$
1100 IF N$=B$ A%=A%+1:IF POINT(X%*64-32
,(Y%+U%)*32-16)=3 N$=P$:P%=P%+1
1110 PRINT N$;:NEXT:ENDPROC
1120 :
1130 DEFPROCclean:FOR Y%=2 TO R%-1
1140 MOVE128,(Y%+U%)*32:FOR X%=3 TO 19
1150 IF POINT(X%*64-32,(Y%+U%)*32-16)<>
1 PRINTH$; ELSE PRINTO$;
1160 NEXT:NEXT:ENDPROC
1170 :
1180 DEFPROCstart:S%=1
1190 VDU23;8202;0;0;0;:*FX229,1
1200 T$="Public Domain - 8BS "
1210 PRINTTAB(3,16)"From:"SPC4"8-Bit So
ftware,"'SPC12"1 Oakwood Drive,"'SPC12"H
eaton,"'SPC12"Bolton BL1 5EE."
1220 FOR I%=3 TO 4:PRINTTAB(5,I%)CHR$14
1CHR$129CHR$157CHR$135T$CHR$156:NEXT
1230 T$="PUSH-the-Bale by Carl Wheat"
1240 PRINTTAB(4,9)CHR$141T$
1250 PRINTTAB(4,10)CHR$141T$
1260 T$=STRING$(29,"£")
1270 PRINTTAB(3,8)CHR$147T$
1280 PRINTTAB(3,12)CHR$147T$
1290 PRINTTAB(2,23)CHR$134"Do you want
instructions? - Y/N"
1300 K$=GET$:IF K$="N" ENDPROC
1310 CLS:PRINTTAB(0,2)CHR$131"Your view
is from above looking at a"'CHR$131"man
working in a wharehouse."
1320 PRINTTAB(0,5)CHR$131"All the yello
w Bales have to be pushed"'CHR$131"onto
the white targets. The following"'CHR$13
1"keys can be used to move the man:"
1330 PRINTTAB(6,9)"Z - LEFT"SPC(7)"X -
RIGHT"TAB(6,11)": - UP"SPC(9)"/ - DOWN"
1340 PRINTTAB(0,13)CHR$131"Or a Joystic
k can be used. Also use;"
1350 PRINTTAB(6,15)"DELETE - backspace
last move"TAB(6,17)"ESCAPE - Resets the
screen"TAB(6,19)"N - enter New screen nu
mber"TAB(6,21)"Q - to Quit the game"
1360 PRINTTAB(9,23)CHR$129CHR$157CHR$13
5"Press Any Key "CHR$156
1370 K%=GET:ENDPROC
1380 :
1390 DEFPROCnew:REPEAT:GCOL0,2
1400 MOVE160,200:PRINT"INPUT NEW SCREEN
":MOVE224,150:PRINT"NUMBER, 1 - 50"
1410 MOVE300,50:INPUT"SCREEN ";S%
1420 MOVE812,50:PRINTSTRING$(8,H$)
1430 UNTIL S%>0 AND S%<51:ENDPROC
1440 :
1450 DEFPROCchrs
1460 VDU23,224,0,24,60,60,24,0,0,102
1470 VDU23,225,0,0,66,66,102,102,102,0
1480 VDU23,226,102,0,0,24,60,60,24,0
1490 VDU23,227,0,102,102,102,66,66,0,0
1500 VDU23,228,0,128,140,30,30,140,128,
0,23,229,0,124,112,0,0,112,124,0
1510 VDU23,230,0,1,49,120,120,49,1,0
1520 VDU23,231,0,62,14,0,0,14,62,0
1530 VDU23,232,0,0,24,60,60,24,0,0
1540 VDU23,233,0,0,0,66,66,102,0,0
1550 VDU23,234,0,66,0,24,24,0,66,0,23,2
35,126,231,255,189,189,255,231,126
1560 VDU23,236,255,68,68,255,255,17,17,
255,23,237,0,36,90,36,36,90,36,0
1570 VDU23,238,0,0,0,0,0,0,0,0,23,255,2
55,255,255,255,255,255,255,255
1580 H$=CHR$18+CHR$0+CHR$0+CHR$255
1590 B$=CHR$18+CHR$0+CHR$2+CHR$235
1600 P$=CHR$18+CHR$0+CHR$2+CHR$235+CHR$
8+CHR$18+CHR$0+CHR$1+CHR$237
1610 W$=CHR$18+CHR$0+CHR$3+CHR$255+CHR$
8+CHR$18+CHR$0+CHR$1+CHR$236
1620 A$=CHR$18+CHR$0+CHR$3+CHR$234
1630 D$=CHR$18+CHR$0+CHR$3+CHR$224+CHR$
8+CHR$18+CHR$0+CHR$1+CHR$225
1640 U$=CHR$18+CHR$0+CHR$3+CHR$226+CHR$
8+CHR$18+CHR$0+CHR$1+CHR$227
1650 L$=CHR$18+CHR$0+CHR$3+CHR$228+CHR$
8+CHR$18+CHR$0+CHR$1+CHR$229
1660 R$=CHR$18+CHR$0+CHR$3+CHR$230+CHR$
8+CHR$18+CHR$0+CHR$1+CHR$231
1670 S$=CHR$18+CHR$0+CHR$3+CHR$232+CHR$
8+CHR$18+CHR$0+CHR$1+CHR$233
1680 O$=CHR$238:X$=H$+CHR$8:ENDPROC
1690 :
1700 DATA11,7F00,41FF,7DD61,40001,45BE1
,75A3F,10200,1C600,4400,4400,7C00,0,6,6,
6,X,0,12000,0,0,2800,800,2000,12,3
1710 DATA10,3FFC,E084,8084,9E84,9804,C2
84,86FC,8010,8210,FFF0,18,18,18,18,18,X,
1200,100,0,1000,2800,2A40,10,5
1720 DATA10,3FC00,207FE,30002,20602,3FE
2E,308,208,24C,204,3FC,1E000,E000,1E000,
X,120,90,80,A0,90,A0,16,9
1730 DATA14,7FF00,42180,42080,40180,421
80,6FF80,42080,420FF,40081,42081,42001,7
FF81,81,FF,0,0,0,0,0,0,0,1E,1E,1E,1E,1E,
D800,1000,0,0,8000,19500,8200,1D200,500,
0,11,3
1740 DATA13,FC,84,3B4,204,3FE0C,20604,2
000C,2060E,3FEE2,202,2B2,23E,3E0,0,0,0,0
,1E000,1E000,1E000,X,0,A0,40,120,160,90,
0,8,40,16,6
1750 DATA11,39F8,6D08,4708,4008,4508,45
C8,4478,4440,4040,4640,7FC0,30,30,30,30,
30,X,0,1800,1000,1000,900,1200,900,6,3
1760 DATA12,7800,4EF8,4288,4388,4008,43
88,77DC,41C4,4004,6984,3F8C,F8,0,70,70,7
0,30,X,1800,0,1500,1000,20,800,200,30,10
,10
1770 DATA16,7F80,4080,4080,4080,4080,40
80,1F3FE,10002,1028A,14062,1CA7A,4042,48
82,4002,4FFE,7800,3F00,3F00,3F00,X,0,0,0
,0,0,10A8,900,2A00,1000,A00,1210,228,4,1
0
1780 DATA14,1FE0,1020,3F03E,20002,31022
,1F03E,1060,1DFE,D82,982,802,F82,82,FE,0
,0,0,0,0,0,0,1C,1C,14,1C,1C,680,4848,A00
,280,700,0,0,0,0,0,3,4
1790 DATA16,7FFF,4005,5FF5,7D015,45005,
45005,4D019,69011,43F71,41011,71011,4101
1,41011,40001,6F011,39FFF,2,2,2,18002,18
002,6,E,E,E,E,E,E,E,0,0,0,770,200,6A0,28
0,0,540,200,106C0,E080,18CA0,3,15
1800 DATA15,3C00,25E0,2738,200C,3606,20
D2,740A,7C482,4410F,4006F,7F9C1,F41,51,4
1,7F,0,0,0,0,0,0,0,0,0,2,36,2E,3E,800,40
0,1A0,20,1A0,1020,1800,100,0,0,0,12,4
1810 DATA13,3F8,208,3E0E,3E362,20B62,2E
062,28062,2A0E2,28036,28024,2BF04,20004,
3FFFC,0,0,1C,1C,1C,1C,1C,X,0,0,0,1D00,A0
0,1500,A00,1540,0,9,9
1820 DATA13,3C000,243FF,27E19,60001,444
A9,46601,402A9,4A201,526A9,42481,70487,1
8CF8,FF80,0,0,1C,14,14,14,14,14,1C,X,100
00,9120,10040,140,10800,1000,4800,9000,0
,7,9
1830 DATA16,1E,FF2,822,3B8A,3E00A,2038A
,2009A,2420A,31EEB,17001,10035,17031,111
FF,10410,1FC10,7F0,0,0,0,0,0,0,0,0,FC0,F
C0,FC0,X,0,0,80,2860,5C20,2040,4,0,1000,
0,C000,140,12,14
1840 DATA16,1F00,3F100,24100,20900,23BF
8,32088,1002E,120A2,1BD82,1201E,12090,10
610,1D0F0,4080,4480,7F80,0,0,0,0,1F00,1F
00,1F00,X,0,C000,0,0,2640,4000,200,40,22
0,2100,800,800,8,11
1850 DATA15,7800,4800,4FF8,4208,4208,E0
68,9628,86C8,9818,1C830,10020,10F20,109E
0,11800,1F000,0,0,1F0,1F0,190,10,10,X,0,
1800,80,200,900,2000,140,400,3440,4000,0
,6,10
1860 DATA14,3F00,2100,1EDFC,10046,14042
,107D2,1ECF6,4992,4002,7F26,213C,2010,21
10,3FF0,0,0,0,0,0,0,0,0,0,1800,1800,1800
,0,2400,1210,2000,0,0,0,0,0,0,5,4
1870 DATA13,1E00F,13FF9,10001,10A4D,1A1
05,7B445,4066D,44021,64707,3ECBC,2808,20
88,3FF8,0,0,0,0,0,3000,3800,1800,300,400
,400,0,2010,B0,4900,0,10084,0,0,0,14,11
1880 DATA16,7FFFF,404C1,78401,40005,41E
A1,6E2BF,6A8A0,682A0,60EA0,600A0,44FA0,4
4C20,461E0,7C100,10F00,1F800,1E,1E,1A,1E
,X,4900,1100,8000,0,1000,1000,A000,9000,
10000,10000,0,1000,7,15
1890 DATA16,FF00,81BF,80E1,79C21,40825,
50021,509E5,5C921,53B05,50821,50125,50D2
1,5FDE7,41024,7C03C,7FE0,0,1E,16,2,16,2,
6,2,6,2,6,X,600,2010,2280,8910,200,10,0,
4010,4800,10,200,100,15,14
1900 DATA15,7C0,C7C,F844,8AC4,A284,8C04
,1E024,12C3C,12C20,10020,1AC20,1BD20,101
E0,10100,1FF00,0,38,38,68,78,X,200,0,0,0
,740,80,100,74C0,0,0,0,7,11
1910 DATA16,7FFFF,40101,6FC7D,40001,41C
03,41EF2,51012,50002,59012,51012,43FFB,6
0481,40081,42411,43F9F,7E0F0,0,0,0,0,0,F
60,FF0,7E0,FE0,X,100,10520,10110,A104,40
00,1008,0,4,8000,14020,9228,4080,11,13
1920 DATA14,7F0,3C90,649F,4491,3C491,24
411,20481,24491,24091,64491,44491,44491,
47CF3,7C79E,00,00,6,6,2,6,6,6,6,6,6,4,14
0,00,2140,800,1040,900,2040,B00,A040,00,
16,8
1930 DATA16,3FFF0,26490,2401F,20411,210
01,7034B,7093B,45C3B,44B3B,408CB,6F109,4
0001,7FF23,40012,4001E,7FFF0,0,0,0,0,0,0
,0,0,0,0,0,0,3FF20,3FF20,800,4B80,8250,8
00,2000,12000,8000,0,20,904,80,C0,4,2
1940 DATA16,7FE1F,40211,5FBF1,51B07,500
22,5E802,40857,42301,641F9,441F9,46FCF,6
8004,4AF84,48204,4FFFC,78000,0,0,0,0,0,0
,0,0,0,0,7F8,38,DF8,X,404,0,800,7C0,28,9
C00,11000,10000,1000,10000,0,0,17,10
1950 DATA12,3FC,206,7E62,C822,C002,89FE
,8904,8804,8904,C91C,49F0,7F00,0,0,0,0,0
,E8,E0,E0,E0,X,18,180,2028,200,1000,2600
,1000,0,17,3
1960 DATA13,FC0,3F860,2033F,20001,26E99
,30081,1059B,7FC01,40929,40821,601A9,204
23,3FFFE,0,0,0,0,0,0,0,3F000,3F000,1F000
,1C000,8480,B048,4,1020,244,128,0,100,20
4,11,2
1970 DATA15,1F0,3F10,201E,2022,6002,3C0
32,24DE2,20842,34842,27EE2,20032,3E01A,3
01E,1F10,1F0,0,0,4,1C,C,1C,38,38,18,C,4,
X,280,C80,520,B00,2000,8000,0,0,300,940,
480,3,7
1980 DATA13,7FFFF,48889,40001,4FFD9,6C0
0B,4C00B,4EFFB,48041,68511,6A03F,43FE0,4
6000,7C000,0,0,0,1FE0,1FE0,X,8908,10004,
14A0,400,0,104,A00,0,10000,12,9
1990 DATA14,7C3E,7C7E3,4C4C1,40441,4EC4
3,68042,68EFA,6E2C2,402C2,462C2,47CD6,7C
802,882,FFE,1C,3C,34,3C,3C,X,1000,11008,
100,200,4,0,11838,10010,100,28,6,9
2000 DATA16,7C00,4400,4600,43C0,1E078,1
2008,339C8,20A48,2006F,24A01,31A01,10213
,1101E,19910,9FF0,F000,3800,3800,3C00,1F
80,1E00,X,0,0,0,0,20,A400,8480,38,2140,9
0A0,2500,0,10,13
2010 DATA15,3C0,240,270,238,7E08,4208,4
018,4210,4210,F610,8210,C370,6040,3E40,3
C0,0,0,0,0,3800,3C00,3C00,3C00,X,100,0,1
40,80,C0,20,140,20,2880,1000,80,5,11
2020 DATA15,FFF0,E610,C210,8250,F050,82
F0,9210,9210,8A30,82F0,8210,F610,C010,C1
90,FFF0,1800,3C00,7C00,C00,C00,X,40,80,1
00,0,2400,40,80,3800,800,C0,440,14,5
2030 DATA15,1E00,13E0,7038,4208,436C,4E
64,5034,4024,DC04,8264,824C,C298,5430,40
60,7FC0,0,0,0,0,0,0,0,0,0,3C00,3C00,2800
,3C00,A00,840,0,0,280,2540,80,110,0,0,80
,14,12
2040 DATA16,3F7E0,21420,6DC20,40020,436
BE,500A2,405A3,4A1A1,7A7AD,20C81,200AF,6
DC81,45C41,41001,442E1,7FFBF,0,0,0,0,0,0
,0,0,0,0,1E,1E,3E,1E,100,18300,8000,5000
,12000,1000,0,5000,A000,0,0,6000,11,14
2050 DATA16,7FF0,4010,4010,3F870,208C8,
20408,211CE,21DC3,37CC1,17DF1,70D83,4000
2,41B66,47804,7CFC4,7C,3FE0,3FE0,680,X,0
,0,0,D060,8000,8210,8000,C,4000,5048,100
00,150,11,9
2060 DATA15,700,7DF0,C510,8010,81BF,1DA
19,10299,10019,70889,45F09,40271,4E001,4
0131,401FF,7FF00,0,0,0,0,0,0,0,0,38000,3
8000,30000,3F000,3F000,0,480,1400,0,2144
,3520,44,2000,2800,840,0,10,2
2070 DATA11,3C00,27F0,2010,2290,28B0,20
20,68A0,4320,4020,7F20,1E0,0,0,0,500,700
,700,X,1200,40,0,800,1000,440,100,13,10
2080 DATA16,3E00,7E380,42080,420BC,420E
4,40404,4E5F7,60181,6FBB7,43081,430A1,40
081,43061,63061,3FFE1,3F,0,0,0,0,0,0,8,8
,1E,E,1E,1E,1E,1E,600,1C800,9500,4000,10
000,2400,0,8400,8600,D00,C200,0,12,13
2090 DATA16,3FE00,20200,20200,28600,213
FC,3F044,4314,4984,6034,4414,4114,6D16,2
532,2502,2006,3FFC,1E000,1E000,17000,1E0
00,X,0,0,0,C00,60,10,A00,100,480,40,1200
,D0,17,13
2100 DATA15,1E,33,7FFE1,40021,57F23,57F
63,40001,4FF61,7881F,804,C04,604,304,18C
,F8,0,0,3FF80,20080,20000,20000,X,4,0,14
,0,1C,0,C0,210,190,60,0,18,7
2110 DATA13,7C0,FC7E,8002,38002,23B83,2
8011,28081,20091,38083,B683,8601,F03F,1F
E0,0,0,0,0,3F00,3F00,3F00,3F00,X,A48,A48
,4048,64,48,0,18,154,A0,18,11
2120 DATA11,1FF,7FB11,44E01,440BB,40591
,4E401,60537,3D1B2,4402,7C9E,7F0,0,38000
,38000,38000,X,48,0,0,A48,0,C00,40,10,4
2130 DATA15,1FF,101,175,3D45,7E701,4014
5,4416D,67B01,2FA4F,2F008,23388,201F8,2B
F80,22000,3E000,0,0,38,38,38,X,0,0,0,0,8
800,80,20,420,8800,400,0,10,12
2140 DATA14,1C000,161E0,13F38,1100E,100
02,11402,135DE,16104,1C304,18604,10C1C,1
1C10,114F0,1F780,0,0,0,0,0,0,0,3800,7800
,F000,E000,E000,0,5A0,2210,4240,0,20,50,
20,120,80,8,5
2150 DATA16,3FE0,2020,2038,2008,33E8,16
28,1408,1038,3408,2698,E09C,8084,A004,BF
4C,8078,FFC0,1FC0,1FC0,X,0,0,0,0,40,280,
840,20,1300,40,A90,0,15,9
2160 DATA11,F000,9FC0,3807F,20061,22E01
,28081,280B1,23631,3001F,1FF30,1E0,0,0,1
E,E,E,E,E,X,4000,9900,4180,0,6B40,0,2040
,9,6
2170 DATA17,0,1FF0,1110,1010,1010,1010,
1010,1C70,440,7EFC,4004,4004,600C,2008,2
008,27C8,3C78,0,EE0,FE0,FE0,FE0,FE0,X,AA
0,540,AA0,540,AA0,0,0,0,0,1550,AA0,1550,
280,11,15
2180 DATA15,3FE,262,E02,7836,1CF74,10A1
4,14014,10A04,1CBE4,7804,E0C,218,230,260
,3C0,0,0,0,0,1E0,1E0,1E0,X,80,108,0,2080
,400,10,0,40,120,C0,0,10,4
2190 DATA16,1E07E,12043,138C1,10889,12F
81,1015F,70554,40144,40E56,4D002,7890A,8
542,C2A6,6002,3022,1FFE,0,0,0,0,0,0,0,0,
0,7000,7800,3C00,1C00,C00,0,8000,4000,10
00,C000,11000,A000,0,0,1010,810,508,3,9