forked from picocomputer/ehbasic
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathBarnsleyFern.txt
More file actions
57 lines (48 loc) · 2.17 KB
/
BarnsleyFern.txt
File metadata and controls
57 lines (48 loc) · 2.17 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
10 REM BARNSLEY FERN
15 REM FROM: ROSETTA CODE WEBSITE
20 REM Conversion from Applesoft BASIC to EHBASIC on RP6502
25 REM Applesoft screen is 280h x 192v
30 REM Our early rev rpg6502 EhBASIC screen is 320h x 180v
50 REM Addresses for our four new functions from mapfile:
55 LET HGR = $E9AB : REM F_HGR->init_bitmap_graphics()
60 LET HPLOT = $E9B3 : REM F_HPLOT->draw_pixel()
65 LET TEXTMODE = $E9EF : REM F_TEXT->init_console_text()
70 LET HOME = $E9F3 : REM F_CLS->cls()
75 LET CLS = HOME : REM cls()
82 LET GREEN = 10 : REM Green ON EHBASIC HPLOT
100 LET YY(1) = 0.16
110 XX(2) = 0.85 : XY(2) = 0.04
120 YX(2) = -0.04 : YY(2) = 0.85
130 LET Y(2) = 1.6
140 XX(3) = 0.20 : XY(3) = -0.26
150 YX(3) = 0.23 : YY(3) = 0.22
160 LET Y(3) = 1.6
170 XX(4) = -0.15 : XY(4) = 0.28
180 YX(4) = 0.26 : YY(4) = 0.24
190 LET Y(4) = 0.44
200 REM HGR :I = PEEK (49234) : REM Applesoft HI-RES GRAPHICS NO TEXT
202 CALL HGR,$FF : REM EhBASIC $FF means 320H x 240V x 4bpp
210 REM HCOLOR= 1 : REM GREEN ON APPLE-II
220 LET X = 0 : Y = 0
225 LET Xint = 0 : Yint = 0 : REM Applesoft has integer vars X% and Y%
230 FOR I = 1 TO 100000
240 REM R = INT(RND(1) * 100) : REM Applesoft
242 R = INT(RND(0) * 100) : REM EhBASIC
250 REM F = (R < 7) + (R < 14) + 2 : REM in Applesoft true == 1
251 F = 0-(R<7) - (R < 14) + 2 : REM in EhBASIC true ==-1
260 REM F = F - (R = 99) : REM Applesoft
261 F = F + (R = 99) : REM EhBASIC
270 X = XX(F) * X + XY(F) * Y
280 Y = YX(F) * X + YY(F) * Y
290 Y = Y + Y(F)
300 REM X% = 62 + X * 27.9 : REM Original Applesoft
302 Xint = INT( 62 + (X * 27.9) )
304 REM Xint = INT( 70 + (X * 31.9) )
320 REM Y% = 192 - Y * 19.1 : REM Original Applesoft
322 REM Yint = INT( 192 - (Y * 19.1) )
324 REM Yint = INT( 180 - (Y * 17.9) ) : REM use for EhBASIC 320Hx180V mode
325 Yint = INT( 240 - (Y * 23.9) ) : REM use for EhBASIC 320Hx240V mode
330 REM HPLOT X% * 2 + 1,Y% : REM Applesoft
333 IF Xint > 127 THEN LET Xint = 127 : REM Ensure HPLOT's x var is < 255
335 CALL HPLOT,(Xint*2), Yint, GREEN : REM RP6502 EhBASIC
340 NEXT