The Head BASIC52 Code

rem ---------MIND AND BODY ENVIRONMENT -*- Main Program
rem ---------Jason Ditmars, 1995 @ San Diego, California
rem ---------Version 5.0 : June 20, 1995 for Siggraph '95 Art Gallery

rem ----   PORT A   PORTB   PORT C
rem 1. A0 CPU lights B0: deck2: REW C0: sound trigger
rem 2. A1 left eye (spot) B1: deck2: PLAY C1: motor switches
rem 4. A2 neon B2: deck2: REC C2: left eye bit 0
rem 8. A3 right eye (grow) B3: deck1:<PLAY C3: left eye bit 1
rem 16. A4 AC 7,8 (cam,mon) B4: deck1: >PLAY C4: left eye bit 2
rem 32. A5 video on/off B5: mics/deck C5: right eye bit 0
rem 64. A6 motor direction B6: audio on/off C6: right eye bit 1
rem 128. A7 motor on/off B7: flash C7: right eye bit 2

rem (for n=1 to 6000:next) = 10 second delay

1 REM MB v5.0 * Jason Ditmars (c) 1995

rem ----- set variables
5 XBY(0e000h)=0FFH : XBY(0e001h)=0FFH
10 DIM SP(21)
20 SP(0)=28 : SP(1)=23 : SP(2)=20 : SP(3)=17 : SP(4)=15 : SP(5)=13
30 SP(6)=12 : SP(7)=11 : FOR I=8 TO 13 : SP(I)=10 : NEXT
40 SP(14)=11 : SP(15)=12 : SP(16)=13 : SP(17)=15 : SP(18)=17
50 SP(19)=20 : SP(20)=23 : SP(21)=28
60 PA=0E000H : PB=0E001H : PC=0E002H : XBY(0E003H)=89H
70 Q=255 : AQ=255-16
rem ^ Q=all off : AQ=all off except power to cam/mon (port a)
80 M=0 : YA=26 : DD=16 : TT=35 : NN=200
rem ^ TT=center cam. Motor:NN=deck button press duration

rem ----- main
100 XBY(PA)=Q : XBY(PB)=Q
rem ^reset ports
105 GOSUB 400
rem ^clearscreen
110 GOSUB 600
rem ^record>, mics on
120 Y=XBY(PC).AND.1
rem ^check (port c) for mic input
130 IF Y=1 THEN XBY(PA)=Q-1 : YA=YA-1 : ? "** Audio Input ** T - ",YA
rem ^print countdown on positive input
132 FOR N=1 TO 50 : NEXT
135 IF YA<1 THEN YA=26 : GOTO 1000>
rem ^begin sequence
140 IF Y=1.AND.YA>10 THEN XBY(PA)=Q
150 GOTO 120

rem ----- cursor positioning sub-routine
rem ----- receives x,y: uses xx,yy as current position
200 IF (X-XX)=0 GOTO 300
220 IF (X-XX)<0 GOTO 250>
230 DO : PRINT CHR(27),"[C", : XX=XX+1 : UNTIL XX=X
240 GOTO 300
250 DO : PRINT CHR(27),"[D", : XX=XX-1 : UNTIL XX=X
300 IF (Y-YY)=0 RETURN
310 IF (Y-YY)<0 GOTO 350>
320 DO : PRINT CHR(27),"[A", : YY=YY+1 : UNTIL YY=Y
330 RETURN
350 DO : PRINT CHR(27),"[B", : YY=YY-1 : UNTIL YY=Y
360 RETURN

rem ----- clear screen sub-routine
400 FOR I=1 TO 24 : PRINT : NEXT
410 XX=0 : YY=0
420 RETURN

rem ----- determine deck 1 play dir sub-routine
rem ----- DD = 8 for reverse, 16 for forward / 3494 secs=tape length
500 CLOCK 1 : PRINT ">> Time = ",TIME
510 X=TIME : IF X>3494 THEN TIME=X-3494 : GOTO 530
520 RETURN
530 IF DD=8 THEN DD=16 ELSE DD=8
540 XBY(PB)=Q-1 : FOR N=1 TO NN : NEXT
550 XBY(PB)=Q : FOR N=1 TO 6000 : NEXT
rem ^rewind deck2
560 RETURN

rem ----- record start sub-routine
600 XBY(PB)=Q-4 : FOR N=1 TO 10 : NEXT N
610 XBY(PB)=Q-2-4 : CLOCK 0 : FOR N=1 TO NN : NEXT N
620 XBY(PB)=Q-64 : FOR N=1 TO 600 : NEXT N
rem ^record>, mics on
630 RETURN

rem ----- output map page to monitor sub-routine
900 X=0 : Y=23 : GOSUB 200
902 M=M+1 : IF M=10 THEN M=0 : RESTORE
905 B=0
910 READ X
914 IF X=0.AND.B=22 PRINT : XX=0 : YY=0 : RETURN
915 IF X=0 READ A : PRINT : PRINT SPC (SP(B)), : B=B+1 : GOTO 910
925 FOR I=1 TO X
930 IF A=0 PRINT ".", ELSE PRINT "X",
940 NEXT I
945 IF A=0A=1 ELSE A=0
950 GOTO 910

rem ----- begin sequence
1000 XBY(PA)=Q-1-2-32 : P=0
rem ^turn on cam/mon, cpu lights, spot, video
1003 GOSUB 500 : XBY(PB)=Q-DD : FOR N=1 TO NN : NEXT
1004 XBY(PB)=Q-32
rem ^find play dir, play>
1005 GOSUB 900
rem ^print map
1010 Y=24 : X=2 : GOSUB 200 : PRINT "*** BEGIN ***", : XX=XX+13
1015 FOR N=1 TO 5000 : NEXT N
rem ^warm up camera and video monitor

rem ----- scan for subjects
1020 PP=P : R=0: DO : GOSUB 5100 : R=R+1
1030 UNTIL (PP<>P).OR.(R=2)
1040 IF R=2 GOTO 100
1045 PRINT
rem ^check two times then continue or quit

rem ----- introduction
1050 XBY(PA)=AQ : XBY(PB)=Q-32-64
rem ^all (port a) off, sound on
1060 FOR J=1 TO 10 : GOSUB 900 : NEXT J
rem ^rotate map once around
1070 FOR I=1 TO 5
1072 FOR N=1 TO 200 : NEXT N
1074 XBY(PA)=AQ-4 : XBY(PB)=Q-32
rem ^neon on, sound off
1076 FOR N=1 TO 200 : NEXT N
1078 XBY(PA)=AQ : XBY(PB)=Q-32-64
rem ^sound on
1080 NEXT I
rem ^blink neon sight 5 times
1090 FOR J=1 TO 10 : GOSUB 900 : NEXT J
rem ^rotate map again
1095 XBY(PB)=Q-32
rem ^sound off
1100 XBY(PA)=AQ-4 : FOR N=1 TO 2500 : NEXT N
rem ^neon on
1110 XBY(PA)=AQ-8 : XBY(PB)=Q-32-64 : FOR N=1 TO 20000 : NEXT N
rem ^left eye & sound on
1120 XBY(PA)=AQ-1-2-8 : FOR N=1 TO 5000 : NEXT N
rem ^both eyes on

rem ----- random light combination sequence (language)
1130 X=0
1135 FOR I=1 TO 50
1140 XBY(PA)=AQ-INT(RND*15)+X
1150 FOR N=1 TO INT(RND*200+50) : NEXT N
rem ^blink lights in random code
1155 NEXT I
1160 IF X=0 THEN X=-32 : GOTO 1135
rem ^for second part, turn on monitor

rem ----- listening sequence
rem ----- on audio input: turns on CPU lights, prints programming code to
rem ----- screen, records input, plays back recordings
1170 GOSUB 400
rem ^clearscreen
1180 Y=24 : X=1 : GOSUB 200 : PRINT "] Recording..."
1185 P=0 : XBY(PA)=AQ
1187 PRINT "] d2: Rec >"
1189 GOSUB 600
rem ^rec, mics on
1190 I=0 : DO : I=I+1
rem ^sequence start
1200 Y=XBY(PC).AND.1
rem ^check mics
1210 IF Y=0 THEN XBY(PA)=AQ : GOTO 1290
rem ^if no input, skip activity
1220 XBY(PA)=AQ-1 : P=P+1
1230 Y=INT(RND*22) : X=1 : GOSUB 200
1235 FOR J=1 TO INT(RND*300)
1240 PRINT CHR(XBY(8010H+J+I)), : NEXT J
rem ^cpu lights on, print code to monitor
1245 IF (P/5)<>INT(P/5) THEN GOTO 1290
1246 PRINT : PRINT "*** Sounds detected (P) = ",P
rem ^every five inputs: blink neon, rewind and play recordings
1250 PRINT "] d2: Rew <<"
1251 XBY(PA)=AQ-1-4 : XBY(PB)=Q-1-32-64 : FOR N=1 TO NN : NEXT N
1255 FOR N=1 TO INT(NN+RND*2000) : NEXT N
rem ^neon on, rew
1260 XBY(PA)=AQ-1 : XBY(PB)=Q-2-32-64 : FOR N=1 TO NN : NEXT N
1261 PRINT "] d2: Play >"
1265 FOR N=1 TO INT(3600_RND*20000) : NEXT N
rem ^play deck2
1270 XBY(PB)=Q-DD-32-64 : CLOCK 1
1271 PRINT "] d1: Play" : FOR N=1 TO 1800 : NEXT N
rem ^play deck1 for 3 secs (to stop deck2)
1275 XBY(PA)=AQ
1280 GOSUB 400
1281 Y=24 : X=1 : GOSUB 200 : PRINT "*** RECORDING ***"
1285 GOSUB 600
1290 UNTIL I=3000.OR.P=16
1295 PRINT "*** Sounds detected (P) = ",P

rem ----- print map and draw crosshairs, blink neon sight
1300 GOSUB 500 : XBY(PB)=Q-DD-32 : FOR N=1 TO NN : NEXT
1305 XBY(PB)=Q-32-64-128 : XBY(PA)=AQ
rem ^play>, charge flash, speaker on
1310 GOSUB 400 : GOSUB 900
1320 I=24
1330 X=38 : Y=I : GOSUB 200
1340 PRINT "][", : XX=XX+2
1350 I=I-1 : IF I>0 GOTO 1330
1360 X=1 : Y=12 : GOSUB 200
1365 PRINT " ",
1370 FOR I=1 TO 12 : PRINT "][===", : NEXT I : PRINT : XX=0 : YY=YY-1
1380 FOR N=1 TO 3000 : NEXT
rem ^draw crosshairs and pause
1390 GOSUB 400 : GOSUB 400
rem ^clearscreen

rem ----- video burn sequence (memory)
rem ----- on audio input or timeout: sets off flash, eyes, and sound 4 times
1400 FOR I=1 TO 4
1405 ?">> FIRE" : ? : XBY(PA)=AQ-2-8-32 : XBY(PB)=Q-32-64-128
1410 FOR N=1 TO 400 : NEXT N
1415 XBY(PB)=Q-64 : XBY(PA)=AQ-32
rem ^fire
1420 FOR N=1 TO 100 : NEXT N : XBY(PB)=Q-128
1425 ?"] Charging...", : FOR N=1 TO 14000 : NEXT N : ?"Done"
1430 XBY(PB)=Q-64-128 : FOR N=1 TO 650 : NEXT N
1435 XBY(PA)=AQ-3-32
rem ^mics, CPU lights, video on
1440 ? : ?"*** Listening for INPUT ***" : X=0 : DO
1445 Y=XBY(PC).AND.1 : X=X+1
1450 UNTIL Y=1.OR.X=3000
1455 NEXT I
1460 XBY(PA)=AQ-2-8-32 : XBY(PB)=Q-32-64-128
1462 FOR N=1 TO 400 : NEXT N
1465 XBY(PB)=Q-32 : XBY(PA)=AQ-32
rem ^fire
1467 FOR N=1 TO 100 : NEXT N

rem ----- searchlight sequence
rem ----- looks for movement in environment via photosensors on monitor
rem ----- attempts to follow subjects (pan left, right)
1470 P=0 : FOR J=1 TO 10 : GOSUB 5000 : NEXT J
rem ^look and move to movement
1480 GOSUB 5070
rem ^move camera back to center
1490 PRINT "*** Movements (P) = ",P : IF P<10 GOTO 1545>
rem ^if not active enough skip to end sequence

rem ----- climax sequence (hysteria/blow-out)
rem ----- countdown from 1000 with random output to all ports
rem ----- speeds up exponentially until T=-10000
1500 XBY(B)=Q-32-64-128
rem ^sound on
1510 T=1000 : J=0
1520 X=INT(RND*128).OR.16
1525 XBY(PA)=255-X : XBY(PB)=Q-32-(X.AND.64)-128
1530 FOR I=1 TO T : NEXT I : J=J+1 : T=T-J
1540 PRINT T, : IF T>-10000 GOTO 1520

rem ----- end sequence
rem ----- print map, blink neon in binary rhythm, accompanied
rem ----- by binary output to screen (0 1 1 0 1 1 1, etc.)
rem ----- pause, play from previous recordings, restart
1545 XBY(PB)=Q-32 : FOR N=1 TO 100 : NEXT : XBY(PA)=Q
1550 GOSUB 400 : GOSUB 900
1560 FOR J=1 TO 5
1570 RESTORE
1580 FOR I=1 TO 15
1585 FOR N=1 TO 50 : NEXT N
1590 READ X : IF X<3 THEN XBY(PA)=Q-4>
1595 IF X<3 THEN PRINT "1 ", ELSE PRINT "0 ",>
1600 FOR N=1 TO 100 : NEXT N
1610 XBY(PA)=Q
1620 NEXT I
1630 NEXT J
1640 RESTORE
1650 FOR N=1 TO 2000 : NEXT
1660 XBY(PB)=Q-2 : CLOCK 0 : FOR N=1 TO NN : NEXT
1670 XBY(PB)=Q-32-64
1680 FOR N=1 TO 30000 : NEXT
rem ^play from recordings
1690 GOSUB 500 : XBY(PB)=Q-DD : FOR N=1 TO NN : NEXT
rem ^play (silent, to stop deck2)
4999 GOTO 100
rem ^return to beginning

rem ----- look for and follow movement routine
rem ----- use photosensor input, pan spot/video toward subject
5000 XBY(PA)=AQ-1-2-32
5010 GOSUB 5200
rem ^check photoresistors
5020 IF I=50 GOTO 5070
5030 P=P+1 : PRINT "] Target... ",
5035 IF (LE<>NL).AND.(RE<>BR) THEN GOTO 5060
rem ^compare initial values to new values
5040 IF LE<>NL GOTO 5050
5042 PRINT "RIGHT"
5045 D=-64 : T=10 : GOSUB 5400
rem ^move motor right
5048 RETURN
5050 PRINT "LEFT"
5055 D=0 : T=10 : GOSUB 5400
rem ^move motor left
5058 RETURN
5060 PRINT "BOTH"
5070 IF T=TT GOTO 5080
5073 D=-64 : T=250 : GOSUB 5400
5075 D=0 : T=TT : GOSUB 5400
rem ^move motor to center

rem ----- scan environment routine
rem ----- look for subjects (center, left, then right)
5100 PRINT "] CENTER" : GOSUB 5200
rem ^scan
5105 D=0 : T=250 : GOSUB 5400
rem ^move motor to far left
5110 PRINT "] LEFT" : GOSUB 5200
rem ^scan
5140 D=-64 : T=250 : GOSUB 5400
rem ^move motor to far right
5145 PRINT "] RIGHT" : GOSUB 5200
rem ^scan
5180 D=0 : T=TT : GOSUB 5400
rem ^move motor to center
5190 RETURN

rem ----- scan routine: sets LE/RE (left eye, right eye) to
rem ----- NL/NR (new left, new right) light values
5200 FOR N=1 TO 300 : NEXT N
5202 Y=XBY(PC)
5205 LE=(Y.AND.28)/4 : RE=(Y.AND.224)/32
rem ^get LE and RE value (0-7) from (port c)
5210 PRINT "] Scanning..."
5215 PRINT LE,RE
5220 FOR N=1 TO 300 : NEXT N
5230 I=0 : DO
5240 Y=XBY(PC)
5245 NL=(Y.AND.28)/4 : NR=(Y.AND.224)/32
5250 PRINT NL,NR
5260 FOR N=1 TO 50 : NEXT N
5270 I=I+1
5280 UNTIL I=50.OR.(NL+NR)<>(LE+RE)
rem ^compare values 50 times or until different (positive)
5300 IF I=50 PRINT "] -- Negative --" : RETURN
5310 PRINT "] ++ Positive ++" : P=P+1
5320 XBY(PA)=AQ-2-4-32 : FOR N=1 TO 300 : NEXT N
rem ^blink neon
5325 XBY(PA)=AQ-1-2-32 : FOR N=1 TO 300 : NEXT N
5330 RETURN

rem ----- move motor routine
rem ----- recieves D (direction) as 0 or -64 and T (time)
5400 IF D=-64 THEN XBY(PA)=AQ-1-2-32+D : FOR N=1 TO 600 : NEXT N
rem ^if right, throw direction control relay (64), pause
5410 PRINT "> Motor ON" : XBY(PA)=AQ-1-2-32-128+D
rem ^turn on motor
5420 X=0 : DO : X=X+1
5430 Y=XBY(PC).AND.02H
5440 UNTIL X>T.OR.Y=2
5450 XBY(PA)=AQ-1-2-32 : PRINT "> Motor OFF : ",X
5454 FOR N=1 TO 300 : NEXT N
5456 Y=XBY(PC).AND.02H
rem ^make sure motor didn't coast into limit switch
5460 IF Y=2 THEN GOSUB 5500
rem ^if limit switch is reached, run sub-routine
5480 RETURN

rem ----- move off switch routine, reverses D
5500 PRINT "> LIMIT reached" : IF D=0 THEN D=-64 ELSE D=0
5510 IF D=-64 THEN XBY(PA)=AQ-1-2-32+D : FOR N=1 TO 600 : NEXT N
rem ^delay for direction control relay (64)
5520 XBY(PA)=AQ-1-2-32-128+D
5530 X=0 : DO : X=X+1 : UNTIL X>40
5540 XBY(PA)=AQ-1-2-32
5550 FOR N=1 TO 300 : NEXT N
5560 Y=XBY(PC).AND.02H : IF Y=2 GOTO 5520
rem ^move in small increments until switch returns negative
5570 RETURN

REM ***** Compiled Map data (10 pages = 1 rotation)
REM ------------file map0.txt--------------
10000 DATA 0,1, 2, 1, 4, 1, 13
10002 DATA 0,1, 1, 1, 29
10004 DATA 0,0, 1, 17, 1, 18
10006 DATA 0,0, 1, 2, 3, 1, 1, 1, 1, 8, 1, 23, 1
10008 DATA 0,0, 1, 5, 2, 1, 5, 31, 1, 1
10010 DATA 0,0, 1, 13, 1, 6, 1, 26, 3
10012 DATA 0,0, 1, 15, 1, 10, 4, 8, 1, 8, 5
10014 DATA 0,0, 1, 17, 1, 5, 10, 4, 5, 5, 4, 1, 2
10016 DATA 0,0, 1, 19, 16, 2, 5, 1, 4, 2, 3, 2, 2
10018 DATA 0,0, 1, 22, 15, 1, 8, 1, 6, 1, 2
10020 DATA 0,0, 5, 16, 26, 2, 1, 3, 4
10022 DATA 0,0, 6, 13, 29, 1, 4, 2, 1, 1
10024 DATA 0,0, 7, 12, 32, 1, 1, 1, 1, 1, 1
10026 DATA 0,0, 7, 12, 3, 2, 31, 2
10028 DATA 0,0, 7, 8, 5, 2, 29, 4
10030 DATA 0,0, 7, 8, 4, 2, 26, 6
10032 DATA 0,0, 7, 6, 33, 5
10034 DATA 0,0, 6, 3, 34, 2, 1, 1
10036 DATA 0,0, 43
10038 DATA 0,0, 37
10040 DATA 0,0, 31
10042 DATA 0,0, 7, 4, 3, 7
10044 DATA 0
REM ------------file map1.txt--------------
10046 DATA 0,1, 4, 4, 5, 1, 7
10048 DATA 0,0, 7, 2, 3, 19
10050 DATA 0,1, 1, 9, 27
10052 DATA 0,0, 10, 4, 2, 1, 1, 1, 1, 11, 1, 11
10054 DATA 0,0, 12, 6, 10, 19
10056 DATA 0,0, 12, 24, 1, 14
10058 DATA 0,0, 10, 22, 1, 9, 3, 8
10060 DATA 0,0, 10, 24, 2, 5, 7, 3, 2, 2
10062 DATA 0,0, 10, 27, 13, 2, 3, 2
10064 DATA 0,0, 12, 28, 12, 1, 3, 1
10066 DATA 0,1, 1, 20, 17, 18, 1
10068 DATA 0,1, 2, 20, 14, 21
10070 DATA 0,1, 4, 19, 13, 21
10072 DATA 0,1, 3, 20, 13, 3, 2, 16
10074 DATA 0,1, 3, 18, 12, 3, 3, 16
10076 DATA 0,1, 2, 20, 10, 2, 3, 16
10078 DATA 0,1, 1, 21, 6, 23
10080 DATA 0,0, 21, 2, 24
10082 DATA 0,0, 43
10084 DATA 0,0, 37
10086 DATA 0,0, 31
10088 DATA 0,0, 6, 4, 2, 5, 1, 3
10090 DATA 0
REM ------------file map2.txt--------------
10092 DATA 0,1, 2, 1, 3, 2, 2, 5, 6
10094 DATA 0,1, 4, 12, 2, 3, 10
10096 DATA 0,1, 4, 1, 1, 16, 15
10098 DATA 0,1, 3, 19, 4, 3, 1, 1, 1, 1, 1, 1, 5, 1, 2
10100 DATA 0,1, 3, 22, 8, 8, 6
10102 DATA 0,1, 2, 24, 17, 1, 4, 1, 2
10104 DATA 0,1, 2, 23, 21, 1, 6
10106 DATA 0,0, 25, 24, 1, 3, 2
10108 DATA 0,0, 1, 1, 25, 25, 1, 1, 3
10110 DATA 0,0, 1, 7, 21, 25, 3
10112 DATA 0,0, 2, 9, 28, 14, 4
10114 DATA 0,0, 2, 13, 24, 12, 6
10116 DATA 0,0, 2, 15, 23, 11, 6
10118 DATA 0,0, 3, 13, 24, 11, 2, 1, 3
10120 DATA 0,0, 4, 11, 23, 10, 2, 2, 3
10122 DATA 0,0, 4, 8, 26, 8, 2, 2, 3
10124 DATA 0,0, 4, 6, 28, 5, 8
10126 DATA 0,0, 2, 3, 32, 2, 8
10128 DATA 0,0, 1, 2, 40
10130 DATA 0,0, 1, 2, 34
10132 DATA 0,0, 1, 2, 28
10134 DATA 0,0, 1, 2, 9, 9
10136 DATA 0
REM ------------file map3.txt--------------
10138 DATA 0,1, 8, 2, 3, 7, 1
10140 DATA 0,1, 6, 2, 5, 13, 2, 1, 2
10142 DATA 0,1, 6, 1, 10, 15, 5
10144 DATA 0,1, 13, 22, 3, 3, 2
10146 DATA 0,0, 1, 11, 27, 5, 3
10148 DATA 0,0, 2, 5, 4, 1, 28, 11
10150 DATA 0,0, 4, 2, 3, 1, 1, 2, 27, 13
10152 DATA 0,0, 5, 5, 32, 13
10154 DATA 0,0, 11, 1, 4, 6, 21, 14
10156 DATA 0,0, 14, 10, 21, 12
10158 DATA 0,0, 13, 14, 25, 5
10160 DATA 0,0, 12, 20, 21, 4
10162 DATA 0,0, 13, 21, 19, 4
10164 DATA 0,0, 15, 18, 20, 4
10166 DATA 0,0, 16, 15, 20, 4
10168 DATA 0,0, 16, 11, 23, 3
10170 DATA 0,0, 15, 9, 24, 3
10172 DATA 0,0, 13, 8, 24, 2
10174 DATA 0,0, 12, 3, 28
10176 DATA 0,0, 9, 3, 25
10178 DATA 0,0, 8, 2, 21
10180 DATA 0,0, 6, 2, 13
10182 DATA 0
REM ------------file map4.txt--------------
10184 DATA 0,1, 3, 1, 7, 1, 2, 3, 2, 1, 1
10186 DATA 0,0, 3, 12, 1, 7, 7, 1
10188 DATA 0,0, 6, 11, 2, 8, 9, 1
10190 DATA 0,0, 7, 18, 17, 1
10192 DATA 0,0, 10, 15, 21, 1
10194 DATA 0,0, 12, 1, 1, 6, 6, 1, 22, 2
10196 DATA 0,1, 1, 13, 1, 1, 4, 4, 1, 2, 3, 21, 2
10198 DATA 0,0, 19, 8, 26, 2
10200 DATA 0,0, 27, 1, 4, 7, 15, 3
10202 DATA 0,0, 31, 10, 14, 2
10204 DATA 0,0, 30, 14, 13
10206 DATA 0,0, 29, 19, 9
10208 DATA 0,0, 30, 20, 7
10210 DATA 0,0, 31, 17, 9
10212 DATA 0,0, 33, 13, 9
10214 DATA 0,0, 32, 10, 11
10216 DATA 0,0, 30, 9, 12
10218 DATA 0,0, 27, 7, 13
10220 DATA 0,0, 25, 4, 14
10222 DATA 0,0, 21, 2, 14
10224 DATA 0,0, 31
10226 DATA 0,0, 13, 3, 5
10228 DATA 0
REM ------------file map5.txt--------------
10230 DATA 0,1, 17, 1, 3
10232 DATA 0,0, 12, 13, 2, 3, 1
10234 DATA 0,0, 17, 12, 2, 5, 1
10236 DATA 0,0, 20, 17, 6
10238 DATA 0,0, 24, 15, 8
10240 DATA 0,0, 29, 6, 6, 1, 9
10242 DATA 0,0, 9, 1, 23, 3, 6, 2, 9
10244 DATA 0,0, 37, 5, 7, 1, 5
10246 DATA 0,0, 44, 1, 3, 3, 6
10248 DATA 0,0, 47, 7, 3
10250 DATA 0,0, 47, 9, 1
10252 DATA 0,0, 46, 11
10254 DATA 0,1, 1, 46, 10
10256 DATA 0,0, 48, 9
10258 DATA 0,0, 48, 7
10260 DATA 0,0, 46, 6, 1
10262 DATA 0,0, 44, 5, 2
10264 DATA 0,0, 41, 3, 3
10266 DATA 0,1, 1, 36, 3, 3
10268 DATA 0,0, 32, 2, 3
10270 DATA 0,0, 31
10272 DATA 0,0, 19, 2
10274 DATA 0
REM ------------file map6.txt--------------
10276 DATA 0,1, 21
10278 DATA 0,1, 1, 3, 1, 8, 2, 7, 9
10280 DATA 0,1, 2, 27, 8
10282 DATA 0,1, 3, 30, 10
10284 DATA 0,1, 3, 34, 10
10286 DATA 0,0, 42, 5, 2, 2
10288 DATA 0,0, 25, 1, 21, 2, 4
10290 DATA 0,0, 50, 3, 2
10292 DATA 0,1, 1, 54, 1, 1
10294 DATA 0,1, 1, 55, 1
10296 DATA 0,0, 56, 1
10298 DATA 0,1, 3, 53, 1
10300 DATA 0,0, 2, 2, 4, 1, 47, 1
10302 DATA 0,0, 1, 1, 1, 1, 18, 1, 33, 1
10304 DATA 0,1, 4, 51
10306 DATA 0,1, 5, 48
10308 DATA 0,1, 6, 45
10310 DATA 0,0, 1, 3, 8, 1, 34
10312 DATA 0,0, 3, 1, 6, 1, 32
10314 DATA 0,0, 37
10316 DATA 0,0, 31
10318 DATA 0,1, 3, 18
10320 DATA 0
REM ------------file map7.txt--------------
10322 DATA 0,1, 21
10324 DATA 0,1, 8, 4, 2, 8, 1, 6, 2
10326 DATA 0,1, 10, 26, 1
10328 DATA 0,1, 8, 3, 1, 29, 2
10330 DATA 0,1, 6, 2, 4, 34, 1
10332 DATA 0,1, 8, 42, 1
10334 DATA 0,1, 6, 35, 1, 11
10336 DATA 0,0, 1, 3, 3, 1, 47
10338 DATA 0,0, 2, 3, 3, 1, 48
10340 DATA 0,0, 1, 1, 6, 1, 48
10342 DATA 0,0, 1, 1, 2, 3, 50
10344 DATA 0,0, 2, 1, 1, 2, 6, 4, 41
10346 DATA 0,0, 14, 5, 5, 1, 32
10348 DATA 0,0, 11, 3, 2, 1, 20, 1, 19
10350 DATA 0,0, 8, 10, 37
10352 DATA 0,0, 5, 14, 34
10354 DATA 0,0, 5, 14, 32
10356 DATA 0,0, 4, 2, 4, 7, 8, 2, 20
10358 DATA 0,0, 13, 2, 8, 1, 19
10360 DATA 0,0, 37
10362 DATA 0,0, 31
10364 DATA 0,1, 8, 13
10366 DATA 0
REM ------------file map8.txt--------------
10368 DATA 0,1, 21
10370 DATA 0,1, 18, 4, 1, 7, 1
10372 DATA 0,1, 21, 1, 1, 14
10374 DATA 0,1, 17, 1, 2, 4, 1, 18
10376 DATA 0,1, 18, 4, 3, 22
10378 DATA 0,1, 21, 30
10380 DATA 0,1, 1, 2, 15, 33, 1, 1
10382 DATA 0,1, 1, 3, 3, 3, 6, 6, 1, 32
10384 DATA 0,1, 1, 4, 2, 5, 1, 1, 3, 7, 1, 32
10386 DATA 0,1, 1, 4, 1, 7, 1, 7, 1, 2, 1, 32
10388 DATA 0,0, 12, 3, 2, 4, 36
10390 DATA 0,0, 14, 1, 7, 1, 6, 5, 3, 1, 19
10392 DATA 0,0, 16, 2, 1, 1, 1, 1, 1, 2, 7, 5, 3, 2, 15
10394 DATA 0,1, 1, 24, 1, 1, 3, 3, 1, 17, 1, 5
10396 DATA 0,1, 1, 21, 12, 21
10398 DATA 0,0, 18, 17, 18
10400 DATA 0,0, 17, 17, 17
10402 DATA 0,0, 16, 2, 6, 7, 8, 1, 7
10404 DATA 0,0, 26, 1, 8, 1, 7
10406 DATA 0,0, 37
10408 DATA 0,0, 31
10410 DATA 0,0, 1, 7, 1, 6, 6
10412 DATA 0
REM ------------file map9.txt--------------
10414 DATA 0,1, 21
10416 DATA 0,1, 27, 3, 1
10418 DATA 0,1, 31, 1, 1, 4
10420 DATA 0,0, 1, 4, 2, 23, 1, 2, 3, 1, 6
10422 DATA 0,0, 3, 30, 4, 1, 9
10424 DATA 0,1, 2, 1, 4, 1, 28, 15
10426 DATA 0,1, 3, 1, 6, 4, 9, 2, 9, 19
10428 DATA 0,1, 4, 1, 4, 8, 4, 7, 5, 5, 1, 16
10430 DATA 0,1, 6, 1, 1, 10, 3, 8, 1, 1, 3, 7, 1, 15
10432 DATA 0,1, 7, 13, 1, 9, 1, 7, 1, 3, 1, 14
10434 DATA 0,1, 6, 24, 2, 3, 4, 1, 1, 16
10436 DATA 0,1, 4, 27, 3, 2, 1, 2, 2, 6, 3, 2, 1, 4
10438 DATA 0,1, 4, 32, 3, 9, 4, 2, 1, 2
10440 DATA 0,1, 5, 2, 1, 34, 1, 1, 3, 1, 2, 5, 1, 1
10442 DATA 0,1, 4, 1, 2, 30, 12, 6
10444 DATA 0,1, 3, 1, 2, 28, 15, 4
10446 DATA 0,1, 2, 31, 14, 4
10448 DATA 0,1, 1, 30, 4, 3, 5, 4
10450 DATA 0,0, 38, 1, 3, 1
10452 DATA 0,0, 37
10454 DATA 0,0, 31
10456 DATA 0,0, 2, 4, 1, 7, 1, 3, 3
10458 DATA 0