Random software
Random demo
Random game
  • Entry name:
     Mad! Masons 
  • Category:
    Games
  • Publisher/Developer:
    BELLCOM - Public Domain Library
  • Year:
    1984
  • Code:
    Thomas Magdziarz
  • Controllers:
    Joystick
  • Maximum players:
    2
  • Programming language:
    Atari BASIC
Mad! Masons Mad! Masons Mad! Masons Mad! Masons Mad! Masons
Listing 1
100 REM =============================
120 REM |MAD! MASONS |
140 REM |WRITTEN BY THOMAS MAGDZIARZ|
160 REM |FOR ANTIC PUB. 1984 |
180 REM =============================
200 DIM S$(90):​POKE 752,​1
220 GOSUB 2780:​GOSUB 2020:​GOSUB 1820
240 R=0
260 FOR LOP1=1 TO 18:​POSITION 0,​LOP1:​? "&":​POSITION 38,​LOP1:​? "&":​NEXT LOP1
280 FOR LOP1=1 TO 2:​FOR LOP2=0 TO 38:​POSITION LOP2,​R:​? "&":​NEXT LOP2:​R=19:​NEXT LOP1
300 POSITION 3,​20:​? "Mason1":​POSITION 30,​20:​? "Mason2"
320 SC1=0:​SC2=0:​RD=1
340 POSITION 13,​20:​? "Press STARTtoPlay":​POKE 559,​34
360 IF PEEK(53279)<>6 THEN 360
380 POSITION 3,​21:​? " 00 ":​POSITION 29,​21:​? " 00 "
400 GOSUB 2640
420 X1=15:​X2=23:​Y1=10:​Y2=10:​DIR=2:​DIR2=1:​CL=32:​CW=32:​PS1=0:​PS2=0
440 POSITION 15,​20:​? "READYMASONS!"
460 FOR I=1 TO 20:​SOUND 1,​0,​0,​0:​FOR J=1 TO 2:​SOUND 1,​30-I,​14,​9:​NEXT J:​NEXT I
480 SOUND 1,​0,​0,​0:​GOSUB 2640
500 POSITION 15,​20:​? "Round ";RD
520 POSITION X1,​Y1:​? "(":​POSITION X2,​Y2:​? "%"
540 S1=STICK(0):​S2=STICK(1)
560 IF S1=7 THEN LOCATE X1+1,​Y1,​CL:​IF CL=32 THEN 900
580 IF S1=7 THEN POSITION X1+1,​Y1:​? CHR$(CL):​GOTO 1540
600 IF S1=11 THEN LOCATE X1-1,​Y1,​CL:​IF CL=32 THEN 940
620 IF S1=11 THEN POSITION X1-1,​Y1:​? CHR$(CL):​GOTO 1540
640 IF S1=14 THEN LOCATE X1,​Y1-1,​CL:​IF CL=32 THEN 980
660 IF S1=14 THEN POSITION X1,​Y1-1:​? CHR$(CL):​GOTO 1540
680 IF S1=13 THEN LOCATE X1,​Y1+1,​CL:​IF CL=32 THEN 1020
700 IF S1=13 THEN POSITION X1,​Y1+1:​? CHR$(CL):​GOTO 1540
720 IF DIR=1 THEN LOCATE X1+1,​Y1,​CL:​IF CL=32 THEN 900
740 IF DIR=1 THEN POSITION X1+1,​Y1:​? CHR$(CL):​GOTO 1540
760 IF DIR=2 THEN LOCATE X1-1,​Y1,​CL:​IF CL=32 THEN 940
780 IF DIR=2 THEN POSITION X1-1,​Y1:​? CHR$(CL):​GOTO 1540
800 IF DIR=3 THEN LOCATE X1,​Y1-1,​CL:​IF CL=32 THEN 980
820 IF DIR=3 THEN POSITION X1,​Y1-1:​? CHR$(CL):​GOTO 1540
840 IF DIR=4 THEN LOCATE X1,​Y1+1,​CL:​IF CL=32 THEN 1020
860 IF DIR=4 THEN POSITION X1,​Y1+1:​? CHR$(CL):​GOTO 1540
880 GOTO 1540
900 SOUND 1,​20,​8,​10:​X1=X1+1:​POSITION X1,​Y1:​? "$":​POSITION X1-1,​Y1:​? "#"
920 DIR=1:​GOTO 1060
940 SOUND 1,​19,​8,​10:​X1=X1-1:​POSITION X1,​Y1:​? "(":​POSITION X1+1,​Y1:​? "#"
960 DIR=2:​GOTO 1060
980 SOUND 1,​18,​8,​10:​Y1=Y1-1:​POSITION X1,​Y1:​? "*":​POSITION X1,​Y1+1:​? "#"
1000 DIR=3:​GOTO 1060
1020 SOUND 1,​17,​8,​10:​Y1=Y1+1:​POSITION X1,​Y1:​? ",​":​POSITION X1,​Y1-1:​? "#"
1040 DIR=4
1060 SOUND 1,​0,​0,​0:​PS1=PS1+5
1080 IF S2=7 THEN LOCATE X2+1,​Y2,​CW:​IF CW=32 THEN 1440
1100 IF S2=7 THEN POSITION X2+1,​Y2:​? CHR$(CW):​GOTO 1540
1120 IF S2=11 THEN LOCATE X2-1,​Y2,​CW:​IF CW=32 THEN 1460
1140 IF S2=11 THEN POSITION X2-1,​Y2:​? CHR$(CW):​GOTO 1540
1160 IF S2=14 THEN LOCATE X2,​Y2-1,​CW:​IF CW=32 THEN 1480
1180 IF S2=14 THEN POSITION X2,​Y2-1:​? CHR$(CW):​GOTO 1540
1200 IF S2=13 THEN LOCATE X2,​Y2+1,​CW:​IF CW=32 THEN 1500
1220 IF S2=13 THEN POSITION X2,​Y2+1:​? CHR$(CW):​GOTO 1540
1240 IF DIR2=1 THEN LOCATE X2+1,​Y2,​CW:​IF CW=32 THEN 1440
1260 IF DIR2=1 THEN POSITION X2+1,​Y2:​? CHR$(CW):​GOTO 1540
1280 IF DIR2=2 THEN LOCATE X2-1,​Y2,​CW:​IF CW=32 THEN 1460
1300 IF DIR2=2 THEN POSITION X2-1,​Y2:​? CHR$(CW):​GOTO 1540
1320 IF DIR2=3 THEN LOCATE X2,​Y2-1,​CW:​IF CW=32 THEN 1480
1340 IF DIR2=3 THEN POSITION X2,​Y2-1:​? CHR$(CW):​GOTO 1540
1360 IF DIR2=4 THEN LOCATE X2,​Y2+1,​CW:​IF CW=32 THEN 1500
1380 IF DIR2=4 THEN POSITION X2,​Y2+1:​? CHR$(CW):​GOTO 1540
1400 LOCATE X2+1,​Y2,​CW:​IF CW=32 THEN X2=X2+1:​POSITION X2,​Y2:​? "$":​POSITION X2-1,​Y2:​? "#":​GOTO 540
1420 GOTO 1540
1440 SOUND 2,​4,​0,​10:​X2=X2+1:​POSITION X2,​Y2:​? "%":​POSITION X2-1,​Y2:​? "#":​DIR2=1:​GOTO 1520
1460 SOUND 2,​5,​0,​10:​X2=X2-1:​POSITION X2,​Y2:​? ")":​POSITION X2+1,​Y2:​? "#":​DIR2=2:​GOTO 1520
1480 SOUND 2,​6,​0,​10:​Y2=Y2-1:​POSITION X2,​Y2:​? "+":​POSITION X2,​Y2+1:​? "#":​DIR2=3:​GOTO 1520
1500 SOUND 2,​7,​0,​10:​Y2=Y2+1:​POSITION X2,​Y2:​? ".":​POSITION X2,​Y2-1:​? "#":​DIR2=4
1520 PS2=PS2+5:​SOUND 2,​0,​0,​0:​GOTO 540
1540 IF CL<>32 AND CW<>32 THEN POSITION 12,​20:​GOSUB 2640:​? "ROUND ";RD;"A STANDOFF":​GOTO 420
1560 IF CL<>32 THEN POSITION X1,​Y1:​? "'":​GOTO 1680
1580 IF CW<>32 THEN POSITION X2,​Y2:​? "'":​GOTO 1600
1600 GOSUB 2640:​POSITION 16,​20:​? "Mason1Wins Round ";RD
1620 SC1=SC1+PS1+20:​POSITION 6,​21:​? SC1:​GOSUB 2660:​GOSUB 2640:​RD=RD+1
1640 IF SC1<1000 THEN 420
1660 GOTO 1740
1680 GOSUB 2640:​POSITION 16,​20:​? "Mason2Wins Round ";RD
1700 SC2=SC2+PS2+20:​POSITION 33,​21:​? SC2:​GOSUB 2660:​GOSUB 2640:​RD=RD+1
1720 IF SC2<1000 THEN 420
1740 IF SC1>SC2 THEN POSITION 15,​20:​? "Mason1WinsThe Game":​FOR D=1 TO 399:​NEXT D:​GOSUB 2640
1760 IF SC1>SC2 THEN 320
1780 POSITION 16,​20:​? "Mason2Wins TheGame":​FOR D=1 TO 399:​NEXT D:​GOSUB 2640:​GOTO 320
1800 REM --   
1820 POKE 712,​180:​POKE 708,​48:​POKE 709,​10:​POKE 710,​2:​POKE 711,​0
1840 DL=PEEK(560)+256*PEEK(561):​POKE 752,​1
1860 POKE DL+3,​68:​RESTORE 1900
1880 FOR I=6 TO 28:​READ A:​POKE DL+I,​A:​NEXT I
1900 DATA 4,​4,​4,​4,​4,​4,​4,​4,​4,​4,​4,​4,​4,​4,​4,​4,​4,​4,​132,​2,​2,​2,​2
1920 FOR I=0 TO 15:​READ A:​POKE 1536+I,​A:​NEXT I
1940 POKE 512,​0:​POKE 513,​6:​POKE 54286,​192
1960 POKE 559,​0:​RETURN
1980 DATA 72,​169,​15,​141,​10,​212,​141,​25,​208,​169,​50,​141,​24,​208,​104,​64
2000 REM -  -
2020 RESTORE 2100
2040 FOR I=1 TO 32:​READ A:​S$(I)=CHR$(A):​NEXT I
2060 POKE 106,​PEEK(106)-5:​GRAPHICS 0:​POKE 559,​0:​C=(PEEK(106)+1)*256:​POKE 756,​C/256
2080 A=USR(ADR(S$),​57344,​C):​GOTO 2140
2100 DATA 104,​104,​133,​204,​104,​133,​203,​104,​133,​206,​104,​133,​205,​162,​4,​160,​0
2120 DATA 177,​203,​145,​205,​136,​208,​249,​230,​204,​230,​206,​202,​208,​240,​96
2140 RESTORE 2240
2160 FOR AL=0 TO 11:​READ G
2180 P=(G)*8
2200 FOR I=0 TO 7:​READ NO:​POKE P+C+I,​NO:​NEXT I:​NEXT AL:​RETURN
2220 REM --  
2240 DATA 0,​0,​0,​0,​0,​0,​0,​0,​0
2260 DATA 3,​89,​170,​101,​170,​86,​170,​149,​170
2280 REM  
2300 DATA 4,​60,​63,​40,​32,​60,​60,​60,​51
2320 REM  
2340 DATA 5,​40,​63,​40,​32,​60,​40,​60,​34
2360 DATA 6,​119,​221,​119,​221,​119,​221,​119,​221
2380 DATA 7,​32,​32,​168,​32,​32,​32,​32,​84
2400 REM  
2420 DATA 8,​60,​252,​40,​8,​60,​60,​60,​198
2440 REM  
2460 DATA 9,​40,​252,​40,​8,​60,​40,​60,​198
2480 REM  
2500 DATA 10,​60,​40,​60,​255,​60,​255,​195,​0
2520 REM  
2540 DATA 11,​60,​40,​60,​255,​40,​255,​130,​0
2560 REM  
2580 DATA 12,​0,​60,​40,​60,​255,​60,​255,​195
2600 REM  
2620 DATA 14,​0,​60,​40,​60,​255,​40,​255,​130
2640 FOR I=1 TO 3:​FOR J=1 TO 14:​POSITION 12+J,​19+I:​? " ":​NEXT J:​NEXT I:​RETURN
2660 RESTORE 2720:​FOR TUN=1 TO 18:​READ NTE,​HLD:​SOUND 2,​NTE,​10,​10:​SOUND 3,​INT(NTE/2),​10,​4
2680 FOR I=1 TO HLD:​NEXT I:​SOUND 2,​0,​0,​0:​SOUND 3,​0,​0,​0:​POSITION 1,​TUN
2700 ? " ":​NEXT TUN:​RETURN
2720 DATA 162,​25,​162,​5,​121,​45,​0,​5,​162,​25,​121,​5,​96,​45,​0,​5,​162,​15,​121,​15,​96,​25
2740 DATA 162,​15,​121,​15,​96,​25,​162,​15,​121,​15,​96,​45,​0,​2
2760 REM 
2780 GRAPHICS 17:​DL=PEEK(560)+256*PEEK(561)
2800 RESTORE 2840:​FOR I=6 TO 27
2820 READ V:​POKE DL+I,​V:​NEXT I
2840 DATA 6,​6,​7,​6,​7,​6,​6,​6,​6,​6,​6,​6,​6,​6,​6,​6,​6,​6,​6,​6,​6,​6
2860 POSITION 8,​3:​? #6;"MAD!"
2880 POSITION 7,​5:​? #6;"MASONS"
2900 POSITION 5,​10:​? #6;"written by"
2920 POSITION 3,​12:​? #6;"TOM MAGDZIARZ"
2940 FOR I=1 TO 150:​NEXT I
2960 POSITION 1,​16:​? #6;"WORKING...STAND BY"
2980 FOR I=1 TO 300:​NEXT I
3000 RETURN	

This is non-commercial site, its content is based on Atari 8-bit home computer contents and references.
If you feel your rights are violated by showing/using any part of contents of your product represented on this page, please contact me immediatelly so I can remove it!