Saturday 26 October 2019

RetroChallenge 2019/10: Akalabeth Converted to TRS-80 Coco



I've finished condensing the code of my MC-10 MCX conversion of the Akalabeth source code and have edited it so it will work on the Coco. It is running in the video above on VCC using the high speed poke, which is line 415 (the end of the program):
415 GOSUB11:NEXT:POKE65497,0:GOTO14
For the coco 2 use POKE 65495,0 instead.

The box fill routine is slower on the Coco than in MCX Basic. Looks a bit like a cinematic wipe. Curtis Boyle mentioned in a comment on Youtube that it might be possible to speed up the screen clear by poking a small assembly routine into the cassette buffer area to do "a stack blast clear or two." If anyone wants to try to hack the code, the upper screen clear routine is on line 7:
7 IFG1 THENLINE(0,0)-(255,159),PRESET,BF:RETURN
I used  my son Charlie's idea for converting the LINE statements for drawing the monsters to DATA  statements and then just using a single draw routine.  After doing this I was able to get Akalabeth to fit in the 25K left on a Coco after it is configured for a PMODE2 graphics screen. Thanks Charlie!

The problem was that LINE statements on the Coco require using the PSET command to designate the color attribute rather than a number literal like "1", which would have taken up even more space.  Since I was already maxed out, this would have been a disaster.  But using DATA statements allowed me to shrink everything down to a point that I even had almost 1000 bytes to spare.

I used a routine provided to me by Pippa (from the IF Solutions Archive) that allows me to PEEK and POKE back in the address pointer for the READ statement used with DATA. This allowed me to simply move the pointer to the beginning of the DATA that needed to be read for each monster. On the MC-10 the pointer address is stored at 173 and 174, but I was able to look up the equivalent locations in a Coco ROM Disassembly, which are 51 and 52.  Here is a little demo of Pippa's routines:
1 GOSUB8:PRINTJ:GOSUB9:GOTO1
8 OD=PEEK(173)+256*PEEK(174):READJ:RETURN
9 POKE174,INT(OD/256):POKE173,OD-256*PEEK(174):RETURN
10 DATA 1
The following table clearly shows how much memory is saved by switching to DATA statements:

Here’s a test routine that uses the DATA
Here’s the original routine
0 B=100:C=127:D=1:PMODE2,1:SCREEN1,1:
1 FORZZ=1TO10:PCLS:GOSUB9
2 IFINKEY$=""THEN2
3 NEXT:
4 GOTO4

9 READT,A,G,Q:IFT=99THENRETURN
10 LINE(C+T/D,B+A/D)-(C+G/D,B+Q/D),PSET:GOTO9

74 DATA-23,,-15,,-15,,-15,-15,-15,-15,-8,-30,-8,-30,8,-30,8,-30,15,-15,15,-15,15,,15,,23,,,-26,,-65,-2,-38,2,-38,-3,-45,3,-45,-5,-53,5,-53,-23,-56,-30,-53,-30,-53,-23,-45,-23,-45,-23,-53,-23,-53,-8,-38,-15,-45,-8,-60,-8,-60,8
75 DATA-60,8,-60,15,-45,15,-42,15,-57,12,-45,20,-45,,-75,-5,-80,-5,-80,-8,-75,-8,-75,-5,-65,-5,-65,5,-65,5,-65,5,-68,5,-68,-5,-68,-5,-68,-5,-65,-5,-65,5,-65,5,-65,8,-75,8,-75,5,-80,5,-80,-5,-80,-3,-72,-2,-72,3,-72,4,-72,99,,,

80 DATA,-56,,-8,,-8,10,,10,,30,,30,,30,-45,30,-45,10,-64,10,-64,,-56,,-56,-10,-64,-10,-64,-30,-45,-30,-45,-30,,-30,,-10,,-10,,,-8,-10,-64,-10,-75,-10,-75,,-83,,-83,10,-75
81 DATA10,-75,,-79,,-79,-10,-75,-10,-75,,-60,,-60,10,-75,10,-75,10,-64,99,,,

82 DATA5,-30,,-25,,-25,-5,-30,-5,-30,-15,-5,-15,-5,-10,,-10,,10,,10,,15,-5,15,-5,20,-5,20,-5,10,,10,,15,-5,15,-5,5,-30,5,-30,10,-40,10,-40,3,-35,3,-35,-3,-35,-3,-35,-10,-40,-10,-40,-5,-30
84 DATA-5,-33,-3,-30,5,-33,3,-30,-5,-20,-5,-15,5,-20,5,-15,-7,-20,-7,-15,7,-20,7,-15,99,,,

86 DATA,,-15,,-15,,-8,-8,-8,-8,-8,-15,-8,-15,-15,-23,-15,-23,-15,-15,-15,-15,-23,-23,-23,-23,-23,-45,-23,-45,-15,-53,-15,-53,-8,-53,-8,-53,-15,-68,-15,-68,-8,-75,-8,-75,,-75
88 DATA,,15,,15,,8,-8,8,-8,8,-15,8,-15,15,-23,15,-23,15,-15,15,-15,23,-23,23,-23,23,-45,23,-45,15,-53,15,-53,8,-53,8,-53,15,-68,15,-68,8,-75,8,-75,,-75
90 DATA-15,-68,15,-68,-8,-53,8,-53,-23,-15,8,-45,-8,-68,,-60,,-60,8,-68,8,-68,8,-60,8,-60,-8,-60,-8,-60,-8,-68,,-38,-8,-38,-8,-38,8,-53,8,-53,8,-45,8,-45,15,-45,15,-45,,-30,,-30,,-38,99,,,

93 DATA-10,-15,-10,-30,-10,-30,-15,-20,-15,-20,-15,-1,-15,-1,-15,,-15,,15,,15,,15,-15,15,-15,-15,-15,-15,-10,15,-10,-15,-5,15,-5,,-15,-5,-20,-5,-20,-5,-35,-5,-35,5,-35,5,-35,5,-20,5,-20,10,-15,-5,-20,5,-20,-5,-25,5,-25
97 DATA-5,-30,5,-30,-10,-35,-10,-40,-10,-40,-5,-45,-5,-45,5,-45,5,-45,10,-40,10,-40,10,-35,-10,-40,,-45,,-45,10,-40,-5,-40,5,-40,5,-40,15,-30,15,-30,,-40,,-40,-15,-30,-15,-30,-5,-40,99,,,

101 DATA-20,-88,-30,-83,-30,-83,-30,-78,20,-88,30,-83,30,-83,40,-83,-15,-86,-20,-83,-20,-83,-20,-78,-20,-78,-30,-73,-30,-73,-30,-68,-30,-68,-20,-63,-10,-83,-10,-58,-10,-58,,-50,10,-83,10,-78,10,-78,20,-73,20,-73,20,-40
104 DATA15,-85,20,-78,20,-78,30,-76,30,-76,30,-60,,-83,,-73,,-73,10,-68,10,-68,10,-63,10,-63,,-58,99,,,

106 DATA5,-10,-5,-10,-5,-10,,-15,,-15,10,-20,10,-20,5,-15,5,-15,5,-10,5,-10,7,-6,7,-6,5,-3,5,-3,-5,-3,-5,-3,-7,-6,-7,-6,-5,-10,2,-3,5,,5,,8,,-2,-3,-5,,-5,,-8,,3,-8,3,-8,-3,-8,-3,-8,3,-5,-3,-5,99,,,

111 DATA99,,,

112 DATA-14,-46,-12,-37,-12,-37,-20,-32,-20,-32,-30,-32,-30,-32,-22,-24,-22,-24,-40,-17,-40,-17,-40,-7,-40,-7,-38,-5,-38,-5,-40,-3,-40,-3,-40,,-40,,-36,,-36,,-34,-2,-34,-2,-32,,-32
113 DATA,-28,,-28,,-28,-3,-28,-3,-30,-5,-30,-5,-28,-7,-28,-7,-28,-15,-28,-15,,-27,14,-46,12,-37,12,-37,20,-32,20,-32,30,-32,30,-32,22,-24,22,-24,40,-17,40,-17,40,-7,40,-7,38,-5,38,-5,40,-3,40,-3,40,
115 DATA40,,36,,36,,34,-2,34,-2,32,,32,,28,,28,,28,-3,28,-3,30,-5,30,-5,28,-7,28,-7,28,-15,28,-15,,-27,6,-48,38,-41,38,-41,40,-42,40,-42,18,-56,18,-56,12,-56,12,-56,10,-57,10,-57,8,-56,8,-56,-8,-56,-8,-56,-10,-58
116 DATA-10,-58,14,-58,14,-58,16,-59,16,-59,8,-63,8,-63,6,-63,6,-63,2,-70,2,-70,2,-63,2,-63,-2,-63,-2,-63,-2,-70,-2,-70,-6,-63,-6,-63,-8,-63,-8,-63,-16,-59,-16,-59,-14,-58,-14,-58,10,-57,10,-57,-12,-56,-12,-56,-18,-56,-18
117 DATA-56,-36,-47,-36,-47,-36,-39,-36,-39,-28,-41,-28,-41,-28,-46,-28,-46,-20,-50,-20,-50,-18,-50,-18,-50,-14,-46,-28,-41,30,-55,28,-58,22,-56,22,-56,22,-53,22,-53,28,-52,28,-52,34,-54,34,-54,20,-50,20,-50,26,-47
118 DATA10,-58,10,-61,10,-61,4,-58,-10,-58,-10,-61,-10,-61,-4,-58,40,-9,50,-12,50,-12,40,-7,-8,-25,6,-7,6,-7,28,-7,28,-7,28,-9,28,-9,20,-9,20,-9,6,-25,99,,,

120 DATA6,-60,30,-90,30,-90,60,-30,60,-30,60,-10,60,-10,30,-40,30,-40,15,-40,-6,-60,-30,-90,-30,-90,-60,-30,-60,-30,-60,-10,-60,-10,-30,-40,-30,-40,-15,-40,,-25,6,-25,6,-25,10,-20,10,-20,12,-10,12,-10
122 DATA10,-6,10,-6,10,,10,,14,,14,,15,-5,15,-5,16,,16,,20,,20,,20,-6,20,-6,18,-10,18,-10,18,-20,18,-20,15,-30,15,-30,15,-45,15,-45,40,-60,40,-60,40,-70,40,-70,10,-55,10,-55,6,-60,6,-60,10,-74,10,-74,6,-80,6,-80
124 DATA4,-80,4,-80,3,-82,3,-82,2,-80,2,-80,,-80,,-25,-6,-25,-6,-25,-10,-20,-10,-20,-12,-10,-12,-10,-10,-6,-10,-6,-10,,-10,,-14,,-14,,-15,-5,-15,-5,-16,,-16,,-20,,-20,,-20,-6,-20,-6,-18,-10,-18,-10
126 DATA-18,-20,-18,-20,-15,-30,-15,-30,-15,-45,-15,-45,-40,-60,-40,-60,-40,-70,-40,-70,-10,-55,-10,-55,-6,-60,-6,-60,-10,-74,-10,-74,-6,-80,-6,-80,-4,-80,-4,-80,-3,-82,-3,-82,-2,-80,-2,-80,,-80
128 DATA-6,-25,,-6,,-6,10,,10,,4,-8,4,-8,6,-25,-40,-64,-40,-90,-40,-90,-52,-80,-52,-80,-52,-40,40,-86,38,-92,38,-92,42,-92,42,-92,40,-86,40,-86,40,-50,4,-70,6,-74,-4,-70,-6,-74,,-64,,-60,99,,,


73 LINE(C-23/D,B)-(C-15/D,B),1:LINE-(C-15/D,B-15/D),1:LINE-(C-8/D,B-30/D),1:LINE-(C+8/D,B-30/D),1:LINE-(C+15/D,B-15/D),1:LINE-(C+15/D,B),1:LINE-(C+23/D,B),1
74 LINE(C,B-26/D)-(C,B-65/D),1:LINE(C-2/D+.5,B-38/D)-(C+2/D+.5,B-38/D),1:LINE(C-3/D+.5,B-45/D)-(C+3/D+.5,B-45/D),1:LINE(C-5/D+.5,B-53/D)-(C+5/D+.5,B-53/D),1
75 LINE(C-23/D,B-56/D)-(C-30/D,B-53/D),1:LINE-(C-23/D,B-45/D),1:LINE-(C-23/D,B-53/D),1:LINE-(C-8/D,B-38/D),1
76 LINE(C-15/D,B-45/D)-(C-8/D,B-60/D),1:LINE-(C+8/D,B-60/D),1:LINE-(C+15/D,B-45/D),1:LINE(C+15/D,B-42/D)-(C+15/D,B-57/D),1:LINE(C+12/D,B-45/D)-(C+20/D,B-45/D),1
77 LINE(C,B-75/D)-(C-5/D+.5,B-80/D),1:LINE-(C-8/D,B-75/D),1:LINE-(C-5/D+.5,B-65/D),1:LINE-(C+5/D+.5,B-65/D),1:LINE-(C+5/D+.5,B-68/D),1:LINE-(C-5/D+.5,B-68/D),1:LINE-(C-5/D+.5,B-65/D),1
78 LINE-(C+5/D+.5,B-65/D),1:LINE-(C+8/D,B-75/D),1:LINE-(C+5/D+.5,B-80/D),1:LINE-(C-5/D+.5,B-80/D),1:PSET(C-5/D+.5,B-72/D):PSET(C+5/D+.5,B-72/D):GOTO131
79 LINE(C,B-56/D)-(C,B-8/D),1:LINE-(C+10/D,B),1:LINE-(C+30/D,B),1:LINE-(C+30/D,B-45/D),1:LINE-(C+10/D,B-64/D),1:LINE-(C,B-56/D),1
80 LINE-(C-10/D,B-64/D),1:LINE-(C-30/D,B-45/D),1:LINE-(C-30/D,B),1:LINE-(C-10/D,B),1:LINE-(C,B-8/D),1:LINE(C-10/D,B-64/D)-(C-10/D,B-75/D),1:LINE-(C,B-83/D),1:LINE-(C+10/D,B-75/D),1
81 LINE-(C,B-79/D),1:LINE-(C-10/D,B-75/D),1:LINE-(C,B-60/D),1:LINE-(C+10/D,B-75/D),1:LINE-(C+10/D,B-64/D),1:GOTO131
82 LINE(C+5/D,B-30/D)-(C,B-25/D),1:LINE-(C-5/D,B-30/D),1:LINE-(C-15/D,B-5/D),1:LINE-(C-10/D,B),1:LINE-(C+10/D,B),1:LINE-(C+15/D,B-5/D),1
83 LINE-(C+20/D,B-5/D),1:LINE-(C+10/D,B),1:LINE-(C+15/D,B-5/D),1:LINE-(C+5/D,B-30/D),1:LINE-(C+10/D,B-40/D),1:LINE-(C+3/D+.5,B-35/D),1:LINE-(C-3/D+.5,B-35/D),1:LINE-(C-10/D,B-40/D),1:LINE-(C-5/D,B-30/D),1
84 LINE(C-5/D,B-33/D)-(C-3/D+.5,B-30/D),1:LINE(C+5/D,B-33/D)-(C+3/D+.5,B-30/D),1:LINE(C-5/D,B-20/D)-(C-5/D,B-15/D),1
85 LINE(C+5/D,B-20/D)-(C+5/D,B-15/D),1:LINE(C-7+D,B-20/D)-(C-7/D,B-15/D),1:LINE(C+7/D,B-20/D)-(C+7/D,B-15/D),1:GOTO131
86 LINE(C,B)-(C-15/D,B),1:LINE-(C-8/D,B-8/D),1:LINE-(C-8/D,B-15/D),1:LINE-(C-15/D,B-23/D),1:LINE-(C-15/D,B-15/D),1:LINE-(C-23/D,B-23/D),1
87 LINE-(C-23/D,B-45/D),1:LINE-(C-15/D,B-53/D),1:LINE-(C-8/D,B-53/D),1:LINE-(C-15/D,B-68/D),1:LINE-(C-8/D,B-75/D),1:LINE-(C,B-75/D),1
88 LINE(C,B)-(C+15/D,B),1:LINE-(C+8/D,B-8/D),1:LINE-(C+8/D,B-15/D),1:LINE-(C+15/D,B-23/D),1:LINE-(C+15/D,B-15/D),1:LINE-(C+23/D,B-23/D),1
89 LINE-(C+23/D,B-45/D),1:LINE-(C+15/D,B-53/D),1:LINE-(C+8/D,B-53/D),1:LINE-(C+15/D,B-68/D),1:LINE-(C+8/D,B-75/D),1:LINE-(C,B-75/D),1
90 LINE(C-15/D,B-68/D)-(C+15/D,B-68/D),1:LINE(C-8/D,B-53/D)-(C+8/D,B-53/D),1:LINE(C-23/D,B-15/D)-(C+8/D,B-45/D),1
91 LINE(C-8/D,B-68/D)-(C,B-60/D),1:LINE-(C+8/D,B-68/D),1:LINE-(C+8/D,B-60/D),1:LINE-(C-8/D,B-60/D),1:LINE-(C-8/D,B-68/D),1
92 LINE(C,B-38/D)-(C-8/D,B-38/D),1:LINE-(C+8/D,B-53/D),1:LINE-(C+8/D,B-45/D),1:LINE-(C+15/D,B-45/D),1:LINE-(C,B-30/D),1:LINE-(C,B-38/D),1:GOTO131
93 LINE(C-10/D,B-15/D)-(C-10/D,B-30/D),1:LINE-(C-15/D,B-20/D),1:LINE-(C-15/D,B-15/D),1:LINE-(C-15/D,B),1:LINE-(C+15/D,B),1:LINE-(C+15/D,B-15/D),1:LINE  -(C-15/D,B-15/D),1
94 LINE(C-15/D,B-10/D)-(C+15/D,B-10/D),1:LINE(C-15/D,B-5/D)-(C+15/D,B-5/D),1
95 LINE(C,B-15/D)-(C-5/D,B-20/D),1:LINE-(C-5/D,B-35/D),1:LINE-(C+5/D,B-35/D),1:LINE-(C+5/D,B-20/D),1:LINE-(C+10/D,B-15/D),1
96 LINE(C-5/D,B-20/D)-(C+5/D,B-20/D),1:LINE(C-5/D,B-25/D)-(C+5/D,B-25/D),1:LINE(C-5/D,B-30/D)-(C+5/D,B-30/D),1
97 LINE(C-10/D,B-35/D)-(C-10/D,B-40/D),1:LINE-(C-5/D,B-45/D),1:LINE-(C+5/D,B-45/D),1:LINE-(C+10/D,B-40/D),1:LINE-(C+10/D,B-35/D),1
98 LINE(C-10/D,B-40/D)-(C,B-45/D),1:LINE-(C+10/D,B-40/D),1
99 LINE(C-5/D,B-40/D)-(C+5/D,B-40/D),1:LINE-(C+15/D,B-30/D),1:LINE-(C,B-40/D),1:LINE-(C-15/D,B-30/D),1:LINE-(C-5/D+.5,B-40/D),1:GOTO131
100 LINE(C-20/D,79-Y(D))-(C-20/D,B-88/D),1:LINE-(C-10/D,B-83/D),1:LINE-(C+10/D,B-83/D),1:LINE-(C+20/D,B-88/D),1:LINE-(C+20/D,79-Y(D)),1:LINE-(C-20/D,79-Y(D)),1
101 LINE(C-20/D,B-88/D)-(C-30/D,B-83/D),1:LINE-(C-30/D,B-78/D),1:LINE(C+20/D,B-88/D)-(C+30/D,B-83/D),1:LINE-(C+40/D,B-83/D),1
102 LINE(C-15/D,B-86/D)-(C-20/D,B-83/D),1:LINE-(C-20/D,B-78/D),1:LINE-(C-30/D,B-73/D),1:LINE-(C-30/D,B-68/D),1:LINE-(C-20/D,B-63/D),1
103 LINE(C-10/D,B-83/D)-(C-10/D,B-58/D),1:LINE-(C,B-50/D),1:LINE(C+10/D,B-83/D)-(C+10/D,B-78/D),1:LINE-(C+20/D,B-73/D),1:LINE-(C+20/D,B-40/D),1
104 LINE(C+15/D,B-85/D)-(C+20/D,B-78/D),1:LINE-(C+30/D,B-76/D),1:LINE-(C+30/D,B-60/D),1
105 LINE(C,B-83/D)-(C,B-73/D),1:LINE-(C+10/D,B-68/D),1:LINE-(C+10/D,B-63/D),1:LINE-(C,B-58/D),1:GOTO131
106 LINE(C+5/D+.5,B-10/D)-(C-5/D+.5,B-10/D),1:LINE-(C,B-15/D),1:LINE-(C+10/D,B-20/D),1:LINE-(C+5/D+.5,B-15/D),1:LINE-(C+5/D+.5,B-10/D),1
107 LINE-(C+7/D+.5,B-6/D),1:LINE-(C+5/D+.5,B-3/D),1:LINE-(C-5/D+.5,B-3/D),1:LINE-(C-7/D+.5,B-6/D),1:LINE-(C-5/D+.5,B-10/D),1:LINE(C+2/D+.5,B-3/D)-(C+5/D+.5,B),1:LINE-(C+8/D,B),1
108 LINE(C-2/D+.5,B-3/D)-(C-5/D+.5,B),1:LINE-(C-8/D,B),1:PSET(C+3/D+.5,B-8/D):PSET(C-3/D+.5,B-8/D):LINE(C+3/D+.5,B-5/D)-(C-3/D+.5,B-5/D),1:GOTO131
109 LINE(127-10/D,E(D,3))-(127-10/D,E(D,3)-10/D),1:LINE-(127+10/D,E(D,3)-10/D),1:LINE-(127+10/D,E(D,3)),1:LINE-(127-10/D,E(D,3)),1
110 LINE(127-10/D,E(D,3)-10/D)-(127-5/D,E(D,3)-15/D),1:LINE-(127+15/D,E(D,3)-15/D),1:LINE-(127+15/D,E(D,3)-5/D),1:LINE-(127+10/D,E(D,3)),1
111 LINE(127+10/D,E(D,3)-10/D)-(127+15/D,E(D,3)-15/D),1:GOTO131
112 LINE(C-14/D,B-46/D)-(C-12/D,B-37/D),1:LINE-(C-20/D,B-32/D),1:LINE-(C-30/D,B-32/D),1:LINE-(C-22/D,B-24/D),1:LINE-(C-40/D,B-17/D),1:LINE-(C-40/D,B-7/D),1:LINE-(C-38/D,B-5/D),1:LINE-(C-40/D,B-3/D),1:LINE-(C-40/D,B),1
113 LINE-(C-36/D,B),1:LINE-(C-34/D,B-2/D),1:LINE-(C-32/D,B),1:LINE-(C-28/D,B),1:LINE-(C-28/D,B-3/D),1:LINE-(C-30/D,B-5/D),1:LINE-(C-28/D,B-7/D),1:LINE-(C-28/D,B-15/D),1:LINE-(C,B-27/D),1
114 LINE(C+14/D,B-46/D)-(C+12/D,B-37/D),1:LINE-(C+20/D,B-32/D),1:LINE-(C+30/D,B-32/D),1:LINE-(C+22/D,B-24/D),1:LINE-(C+40/D,B-17/D),1:LINE-(C+40/D,B-7/D),1:LINE-(C+38/D,B-5/D),1:LINE-(C+40/D,B-3/D),1:LINE-(C+40/D,B),1
115 LINE-(C+36/D,B),1:LINE-(C+34/D,B-2/D),1:LINE-(C+32/D,B),1:LINE-(C+28/D,B),1:LINE-(C+28/D,B-3/D),1:LINE-(C+30/D,B-5/D),1:LINE-(C+28/D,B-7/D),1:LINE-(C+28/D,B-15/D),1:LINE-(C,B-27/D),1
116 LINE(C+6/D,B-48/D)-(C+38/D,B-41/D),1:LINE-(C+40/D,B-42/D),1:LINE-(C+18/D,B-56/D),1:LINE-(C+12/D,B-56/D),1:LINE-(C+10/D,B-57/D),1:LINE-(C+8/D,B-56/D),1:LINE-(C-8/D,B-56/D),1:LINE-(C-10/D,B-58/D),1:LINE-(C+14/D,B-58/D),1
117 LINE-(C+16/D,B-59/D),1:LINE-(C+8/D,B-63/D),1:LINE-(C+6/D,B-63/D),1:LINE-(C+2/D+.5,B-70/D),1:LINE-(C+2/D+.5,B-63/D),1:LINE-(C-2/D+.5,B-63/D),1:LINE-(C-2/D+.5,B-70/D),1:LINE-(C-6/D,B-63/D),1:LINE-(C-8/D,B-63/D),1
118 LINE-(C-16/D,B-59/D),1:LINE-(C-14/D,B-58/D),1:LINE-(C+10/D,B-57/D),1:LINE-(C-12/D,B-56/D),1:LINE-(C-18/D,B-56/D),1:LINE-(C-36/D,B-47/D),1:LINE-(C-36/D,B-39/D),1:LINE-(C-28/D,B-41/D),1:LINE-(C-28/D,B-46/D),1
119 LINE-(C-20/D,B-50/D),1:LINE-(C-18/D,B-50/D),1:LINE-(C-14/D,B-46/D),1:GOTO242
120 LINE(C+6/D,B-60/D)-(C+30/D,B-90/D),1:LINE-(C+60/D,B-30/D),1:LINE-(C+60/D,B-10/D),1:LINE-(C+30/D,B-40/D),1:LINE-(C+15/D,B-40/D),1
121 LINE(C-6/D,B-60/D)-(C-30/D,B-90/D),1:LINE-(C-60/D,B-30/D),1:LINE-(C-60/D,B-10/D),1:LINE-(C-30/D,B-40/D),1:LINE-(C-15/D,B-40/D),1
122 LINE(C,B-25/D)-(C+6/D,B-25/D),1:LINE-(C+10/D,B-20/D),1:LINE-(C+12/D,B-10/D),1:LINE-(C+10/D,B-6/D),1:LINE-(C+10/D,B),1:LINE-(C+14/D,B),1:LINE-(C+15/D,B-5/D),1:LINE-(C+16/D,B),1:LINE-(C+20/D,B),1
123 LINE-(C+20/D,B-6/D),1:LINE-(C+18/D,B-10/D),1:LINE-(C+18/D,B-20/D),1:LINE-(C+15/D,B-30/D),1:LINE-(C+15/D,B-45/D),1:LINE-(C+40/D,B-60/D),1:LINE-(C+40/D,B-70/D),1
124 LINE-(C+10/D,B-55/D),1:LINE-(C+6/D,B-60/D),1:LINE-(C+10/D,B-74/D),1:LINE-(C+6/D,B-80/D),1:LINE-(C+4/D+.5,B-80/D),1:LINE-(C+3/D+.5,B-82/D),1:LINE-(C+2/D+.5,B-80/D),1:LINE-(C,B-80/D),1
125 LINE(C,B-25/D)-(C-6/D,B-25/D),1:LINE-(C-10/D,B-20/D),1:LINE-(C-12/D,B-10/D),1:LINE-(C-10/D,B-6/D),1:LINE-(C-10/D,B),1:LINE-(C-14/D,B),1:LINE-(C-15/D,B-5/D),1:LINE-(C-16/D,B),1:LINE-(C-20/D,B),1
126 LINE-(C-20/D,B-6/D),1:LINE-(C-18/D,B-10/D),1:LINE-(C-18/D,B-20/D),1:LINE-(C-15/D,B-30/D),1:LINE-(C-15/D,B-45/D),1:LINE-(C-40/D,B-60/D),1:LINE-(C-40/D,B-70/D),1
127 LINE-(C-10/D,B-55/D),1:LINE-(C-6/D,B-60/D),1:LINE-(C-10/D,B-74/D),1:LINE-(C-6/D,B-80/D),1:LINE-(C-4/D+.5,B-80/D),1:LINE-(C-3/D+.5,B-82/D),1:LINE-(C-2/D+.5,B-80/D),1:LINE-(C,B-80/D),1
128 LINE(C-6/D,B-25/D)-(C,B-6/D),1:LINE-(C+10/D,B),1:LINE-(C+4/D+.5,B-8/D),1:LINE-(C+6/D,B-25/D),1:LINE(C-40/D,B-64/D)-(C-40/D,B-90/D),1:LINE-(C-52/D,B-80/D),1:LINE-(C-52/D,B-40/D),1
129 LINE(C+40/D,B-86/D)-(C+38/D,B-92/D),1:LINE-(C+42/D,B-92/D),1:LINE-(C+40/D,B-86/D),1:LINE-(C+40/D,B-50/D),1
130 LINE(C+4/D+.5,B-70/D)-(C+6/D,B-74/D),1:LINE(C-4/D+.5,B-70/D)-(C-6/D,B-74/D),1:LINE(C,B-64/D)-(C,B-60/D),1


I think this is the end of my main RetroChallenge activity for this month. I also did a little work on another classic dungeon crawl game "Stronghold of the Dwarven Lords" from Tim Hartnell's book Giant Book of Computer Games (1984), subtitled "For most popular home computers that use BASIC."  I used OCR from a version of the book for the VZ200 computer, but it was missing a page, so I had to use another version for the TI99/4a to type in what was missing.  After some correcting and adjustments for the MC-10 it seemed to work fine.


Maybe next year I will try converting Akalabeth to BASIC09 under NitrsOS9.

Working directory on Github for this project: https://github.com/jggames/trs80mc10/tree/master/quicktype/MCX/Akalabeth

No comments:

Post a Comment