Skip to content

Commit 6af0f26

Browse files
author
SlithyMatt
committed
Agon Mode 1 plots working
1 parent 13fb43d commit 6af0f26

File tree

11 files changed

+175
-2
lines changed

11 files changed

+175
-2
lines changed

agon/AgonPalette.png

9.63 KB
Loading

agon/M1BITMAP.BAS

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
10 T = TIME
2+
20 MODE 1: CLS
3+
30 FOR I% = 0 TO 15
4+
40 G% = (I% AND 12) / 4
5+
50 G% = G% * 85
6+
60 B% = I% AND 3
7+
70 B% = B% * 85
8+
80 COLOUR I%,0,G%,B%
9+
100 VDU 23,27,0,I%
10+
110 VDU 23,27,1,1;1;0,G%,B%,255
11+
120 NEXT I%
12+
130 FOR PY%=0 TO 383
13+
140 YZ = PY%*2.625/384-1.3125
14+
150 FOR PX%=0 TO 511
15+
160 XZ = PX%*3.5/512-2.5
16+
170 X = 0: Y = 0
17+
180 FOR I%=0 TO 15
18+
190 IF X*X+Y*Y > 4 THEN GOTO 240
19+
200 XT=X*X-Y*Y+XZ
20+
210 Y=2*X*Y+YZ
21+
220 X=XT
22+
230 NEXT I%
23+
240 VDU 23,27,0,I%
24+
250 VDU 23,27,3,PX%;PY%;
25+
260 NEXT PX%
26+
270 NEXT PY%
27+
280 COLOUR 15,255,255,255
28+
300 COLOUR 15
29+
310 PRINT ((TIME-T)/100); " SECONDS"

agon/M1PLOT.BAS

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
10 T = TIME
2+
20 MODE 1: CLS
3+
25 VDU 23,0,192,0
4+
30 FOR I% = 0 TO 15
5+
40 G% = (I% AND 12) / 4
6+
50 G% = G% * 85
7+
60 B% = I% AND 3
8+
70 B% = B% * 85
9+
80 COLOUR I%,0,G%,B%
10+
120 NEXT I%
11+
130 FOR PY%=0 TO 383
12+
140 YZ = PY%*2.625/384-1.3125
13+
150 FOR PX%=0 TO 511
14+
160 XZ = PX%*3.5/512-2.5
15+
170 X = 0: Y = 0
16+
180 FOR I%=0 TO 15
17+
190 IF X*X+Y*Y > 4 THEN GOTO 240
18+
200 XT=X*X-Y*Y+XZ
19+
210 Y=2*X*Y+YZ
20+
220 X=XT
21+
230 NEXT I%
22+
240 GCOL 0,I%
23+
250 PLOT 65,PX%,PY%
24+
260 NEXT PX%
25+
270 NEXT PY%
26+
280 COLOUR 15,255,255,255
27+
300 COLOUR 15
28+
310 PRINT ((TIME-T)/100); " SECONDS"

agon/M1PRINT.BAS

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
10 MODE 1: CLS
2+
20 VDU 23,255,255,255,255,255,255,255,255,255
3+
30 FOR PY%=0 TO 47
4+
40 YZ = PY%*2/48-1
5+
50 FOR PX%=0 TO 63
6+
60 XZ = PX%*3.5/64-2.5
7+
70 X = 0: Y = 0
8+
80 FOR I%=0 TO 15
9+
90 IF X*X+Y*Y > 4 THEN GOTO 140
10+
100 XT=X*X-Y*Y+XZ
11+
110 Y=2*X*Y+YZ
12+
120 X=XT
13+
130 NEXT I%
14+
140 COLOUR I%
15+
160 PRINT CHR$(255);
16+
170 NEXT PX%
17+
190 NEXT PY%
18+
200 T$=GET$
19+
210 COLOUR 15

agon/M2PLOT.BAS

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
10 T = TIME
2+
20 MODE 2: CLS
3+
25 VDU 23,0,192,0
4+
30 FOR I% = 0 TO 47
5+
40 R% = I% / 16
6+
50 R% = R% * 85
7+
60 G% = (I% AND 15) / 4
8+
70 G% = G% * 85
9+
80 B% = I% AND 3
10+
90 B% = B% * 85
11+
80 COLOUR I%,R%,G%,B%
12+
120 NEXT I%
13+
130 FOR PY%=0 TO 199
14+
140 YZ = PY%*2.625/200-1.3125
15+
150 FOR PX%=0 TO 319
16+
160 XZ = PX%*3.5/320-2.5
17+
170 X = 0: Y = 0
18+
180 FOR I%=0 TO 47
19+
190 IF X*X+Y*Y > 4 THEN GOTO 240
20+
200 XT=X*X-Y*Y+XZ
21+
210 Y=2*X*Y+YZ
22+
220 X=XT
23+
230 NEXT I%
24+
240 GCOL 0,I%
25+
250 PLOT 65,PX%,PY%
26+
260 NEXT PX%
27+
270 NEXT PY%
28+
280 COLOUR 15,255,255,255
29+
300 COLOUR 15
30+
310 PRINT ((TIME-T)/100); " SECONDS"

agon/mand320.data

250 KB
Binary file not shown.
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
#include "fabgl.h"
2+
3+
fabgl::VGAController dc;
4+
fabgl::Canvas canvas(&displayController);
5+
fabgl::PS2Controller ps2c;
6+
7+
class PlotScene : public Scene {
8+
PlotScene() : Scene(0,20,dc.getViewPortWidth(),dc.getViewPortHeight()) {
9+
}
10+
11+
if (ps2controller.keyboard()->isVKDown(fabgl::VK_RETURN)) {
12+
canvas.clear();
13+
written = false;
14+
} else if (!written) {
15+
canvas.setBrushColor(0,0,2);
16+
canvas.clear();
17+
canvas.selectFont(&fabgl::FONT_8x8);
18+
canvas.setPenColor(2,2,2);
19+
canvas.drawText(100,80,"Hit ENTER when ready...");
20+
written = true;
21+
}
22+
}
23+
24+
void setup() {
25+
ps2controller.begin(PS2Preset::KeyboardPort0_MousePort1, KbdMode::GenerateVirtualKeys);
26+
27+
displayController.begin();
28+
displayController.setResolution(VGA_320x200_75Hz);
29+
}
30+
31+
void loop() {
32+
PlotScene scene;
33+
scene.start();
34+
}

slides/x16vsagon.odp

-58.9 KB
Binary file not shown.

x16/mand320.data

250 KB
Binary file not shown.

x16/x16-mandelbrot-vga-short.bas

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
10 T = TI
2+
20 SCREEN 3
3+
22 COLOR 1,0
4+
24 CLS
5+
30 POKE $9F2D,$07
6+
40 POKE $9F2F,$20
7+
50 POKE $9F29,$31
8+
100 FOR PY=0 TO 199
9+
110 YZ = PY*2.625/200-1.3125
10+
120 FOR PX=0 TO 319
11+
130 XZ = PX*3.5/320-2.5
12+
140 X = 0
13+
150 Y = 0
14+
160 FOR I=0 TO 47
15+
170 IF X*X+Y*Y > 4 THEN GOTO 215
16+
180 XT = X*X - Y*Y + XZ
17+
190 Y = 2*X*Y + YZ
18+
200 X = XT
19+
210 NEXT I
20+
215 I = I+80
21+
216 IF I=128 THEN I=0
22+
217 B = 0
23+
218 OS = $4000
24+
219 Y = PY
25+
220 IF Y < 153 THEN GOTO 230
26+
221 IF Y = 153 AND PX < 192 THEN GOTO 230
27+
222 B = 1
28+
223 OS = -192
29+
224 Y = PY-153
30+
230 VPOKE B,OS+Y*320+PX,I
31+
240 NEXT PX
32+
260 NEXT PY
33+
270 PRINT ((TI-T)/100); " SECONDS"

0 commit comments

Comments
 (0)