Guest User

Amiga BASIC port entry for Reddit /r/retrobattlestations

a guest
Sep 11th, 2013
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.60 KB | None | 0 0
  1. 100 REM === Setup graphics and initialize some constants
  2. 105 REM === For Amiga BASIC
  3. 110 CLS
  4. 120 PI = 3.141593
  5. 130 SW = 500:SH = 180:SC = SW / 1750:XF = SW / 2
  6. 140 IF SH / 1000 < SC THEN SC = SH / 1000
  7. 150 REM === Read the vector graphics from DATA and draw the picture
  8. 160 READ P$
  9. 170 IF P$ = "EOI" THEN END
  10. 180 IF P$ = "C" OR P$ = "E" THEN GOSUB 1010
  11. 190 IF P$ = "L" THEN GOSUB 1510
  12. 200 GOTO 160
  13. 1000 REM === Draw circle or ellipse
  14. 1010 READ XC,YC,XR:YR = XR: IF P$ = "E" THEN READ YR
  15. 1015 REM == Original var was AS which is a reserved token/var
  16. 1020 READ SA,EA
  17. 1030 XC=INT(XC*SC):YC=INT(YC*SC):XR=INT(XR*SC):YR=INT(YR*SC)
  18. 1040 A2 = XR * XR:B2 = YR * YR:F2 = 4 * A2
  19. 1050 X = 0:Y = YR:SI = 2 * B2 + A2 * (1 - 2 * YR)
  20. 1060 IF B2 * X > A2 * Y THEN GOTO 1110
  21. 1070 SP = X / Y:AN = ATN (SP):DG = 90 - AN * 180 / PI: GOSUB 1190
  22. 1080 IF SI >= 0 THEN SI = SI + F2 * (1 - Y):Y = Y - 1
  23. 1090 SI = SI + B2 * (4 * X + 6)
  24. 1100 X = X + 1: GOTO 1060
  25. 1110 F2 = 4 * B2
  26. 1120 X = XR:Y = 0:SI = 2 * A2 + B2 * (1 - 2 * XR)
  27. 1130 IF A2 * Y > B2 * X THEN RETURN
  28. 1140 SP = Y / X:AN = ATN (SP):DG = AN * 180 / PI: GOSUB 1190
  29. 1150 IF SI >= 0 THEN SI = SI + F2 * (1 - X):X = X - 1
  30. 1160 SI = SI + A2 * (4 * Y + 6)
  31. 1170 Y = Y + 1: GOTO 1130
  32. 1180 REM === Plot point on arc
  33. 1190 NS = AS:NE = AE: IF AS < 0 THEN NS = AS + 360:NE = AE + 360
  34. 1200 IF DG >= AS AND DG <= AE THEN LINE(XC + X + XF,YC - Y) - (XC + X + XF,YC - Y)
  35. 1210 IF 180 - DG >= AS AND 180 - DG <= AE THEN LINE(XC - X + XF,YC - Y) - (XC - X + XF,YC - Y)
  36. 1220 IF DG >= NS - 180 AND DG <= NE - 180 THEN LINE(XC - X + XF,YC + Y) - (XC - X + XF,YC + Y)
  37. 1230 IF 180 - DG >= NS - 180 AND 180 - DG <= NE - 180 THEN LINE(C + X + XF,YC + Y) - (C + X + XF,YC + Y)
  38. 1240 RETURN
  39. 1500 REM === Draw a line
  40. 1510 READ X1,Y1,X2,Y2
  41. 1520 X1 = X1 * SC:Y1 = Y1 * SC:X2 = X2 * SC:Y2 = Y2 * SC
  42. 1530 LINE(X1+XF,Y1) - (X2+XF,Y2)
  43. 1540 RETURN
  44. 5000 REM === This is the image data
  45. 5010 DATA L,-350,24,-45,0
  46. 5020 DATA L,-450,24,-89,38
  47. 5030 DATA L,-55,77,-88,499
  48. 5040 DATA L,-129,533,-365,514
  49. 5050 DATA L,-365,517,-88,560
  50. 5060 DATA L,-11,35,-48,528
  51. 5070 DATA L,23,30,-18,529
  52. 5080 DATA L,56,99,-18,530
  53. 5090 DATA L,124,111,56,99
  54. 5100 DATA L,38,24,124,111
  55. 5110 DATA L,-64,807,101,679
  56. 5120 DATA L,-140,983,101,679
  57. 5130 DATA L,-858,786,-185,998
  58. 5140 DATA L,-864,752,-197,911
  59. 5150 DATA L,-62,687,-158,892
  60. 5160 DATA L,-226,836,-138,667
  61. 5170 DATA L,-689,586,-150,645
  62. 5180 DATA L,-340,640,-689,586
  63. 5190 DATA L,-724,633,-354,685
  64. 5200 DATA L,-360,701,-724,633
  65. 5210 DATA L,-774,676,-375,747
  66. 5220 DATA L,-380,765,-774,676
  67. 5230 DATA L,-239,796,-328,776
  68. 5240 DATA L,-320,757,-230,773
  69. 5250 DATA L,-214,729,-295,713
  70. 5260 DATA L,-286,695,-206,706
  71. 5270 DATA L,-190,663,-263,652
  72. 5280 DATA L,-365,788,-367,801
  73. 5290 DATA L,-367,801,-359,789
  74. 5300 DATA L,-225,827,-226,836
  75. 5310 DATA L,-62,687,-64,807
  76. 5320 DATA C,-41,31,31,-7,94
  77. 5330 DATA C,-90,73,36,-6,87
  78. 5340 DATA C,-126,496,38,266,354
  79. 5350 DATA C,-82,526,34,261,356
  80. 5360 DATA C,32,30,9,44,175
  81. 5370 DATA C,-261,553,461,78,93
  82. 5380 DATA C,-177,151,50,6,78
  83. 5390 DATA C,-811,219,688,-19,6
  84. 5400 DATA C,-205,420,50,269,341
  85. 5410 DATA C,-190,-999,1469,259,269
  86. 5420 DATA C,-264,-1083,1539,262,271
  87. 5430 DATA C,-212,414,41,271,339
  88. 5440 DATA C,-710,226,573,-21,8
  89. 5450 DATA C,-184,148,41,8,78
  90. 5460 DATA C,-331,859,768,78,86
  91. 5470 DATA C,-49,293,495,163,188
  92. 5480 DATA C,-256,278,295,154,196
  93. 5490 DATA C,-191,874,38,261,331
  94. 5500 DATA C,-865,759,7,80,183
  95. 5510 DATA C,-849,764,24,170,246
  96. 5520 DATA C,-175,952,47,257,318
  97. 5530 DATA C,-150,659,15,-41,89
  98. 5540 DATA C,-342,659,19,-25,81
  99. 5550 DATA C,-351,657,28,263,342
  100. 5560 DATA C,-363,721,20,-26,78
  101. 5570 DATA C,-371,721,26,260,342
  102. 5580 DATA C,-384,784,20,-12,78
  103. 5590 DATA C,-267,686,34,84,155
  104. 5600 DATA C,-285,680,15,147,267
  105. 5610 DATA C,-199,683,24,254,341
  106. 5620 DATA C,-198,683,22,-19,68
  107. 5630 DATA C,-217,747,18,-16,80
  108. 5640 DATA C,-300,746,33,82,163
  109. 5650 DATA C,-317,742,15,159,255
  110. 5660 DATA C,-226,746,28,261,347
  111. 5670 DATA C,-333,807,31,80,147
  112. 5680 DATA C,-256,824,31,-6,77
  113. 5690 DATA C,772,75,53,0,360
  114. 5700 DATA L,718,64,584,32
  115. 5710 DATA L,584,32,535,188
  116. 5720 DATA E,531,390,302,197,0,360
  117. 5730 DATA C,260,298,67,40,246
  118. 5740 DATA C,806,298,67,-69,141
  119. 5750 DATA C,426,351,49,0,360
  120. 5760 DATA C,639,351,49,0,360
  121. 5770 DATA E,533,458,115,54,200,340
  122. 5780 DATA E,531,673,151,313,142,263
  123. 5790 DATA E,531,673,151,313,-82,37
  124. 5800 DATA E,419,708,109,132,104,263
  125. 5810 DATA E,644,708,109,132,-83,76
  126. 5820 DATA E,400,961,75,61,62,192
  127. 5830 DATA E,663,961,75,61,-11,118
  128. 5840 DATA L,327,976,736,976
  129. 5850 DATA EOI
Add Comment
Please, Sign In to add comment