GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — smallbasic.github.io/samples/node/104.bas at master · smallbasic/smallbasic.github.io

Expand file tree

/

104.bas

Copy path
More file actions
More file actions

Latest commit

 

History

History
History
132 lines (106 loc) · 2.1 KB
/

104.bas

Copy path

File metadata and controls

132 lines (106 loc) · 2.1 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
''' 17.06.2004
'' Save Screen Procedures v2.0 with simple Compression Algorithm
'' a very primitive but maybe usefull way to save screen areas to file
'' (C) 2004 by Carsten (contact: SMALLBasic Forum)
''Draw Testpicture
testpicture
?"Saving Screen Area"
rect 299,199,451,351
SaveScreenC "..\\testpicture.sbb",300,200,450,350
cls
?"Loading Screen Area"
LoadScreenC "..\\testpicture.sbb"
end
''***********************************************
''example picture
''Draw HEXAGON
'' hexagon.bas
'' 28/05/2000
sub testpicture
cls
sf=.95
x=(ymax/2)-10:y=0:cx=xmax/2:cy=ymax/2
c=cos(pi/3):s=sin(pi/3)
c1=cos(pi/36):s1=sin(pi/36)
cls
for j=1 to 30
sx=x+cx:sy=cy-y
pset sx,sy
for i=0 to 6
sx=x+cx:sy=cy-y
line sx,sy color i*6
xn=x*c-y*s
y=x*s+y*c
x=xn
next
xn=sf*(x*c1-y*s1)
y=sf*(x*s1+y*c1)
x=xn
next
end
''********************************************
'' Here are the Save and Load Routines
'' you can use in your programms
''********************************************
''********************************************
'' Save Compressed Screen
'' Needs: Filename, x, y, x1, y1
'' coordinates as in RECT
''********************************************
sub SaveScreenC (Filename,fromx,fromy,tox,toy)
local x,y,dx,dy,colcount,oldcol,h
if fromx>tox
swap fromx,tox
fi
if fromy>toy
swap fromy,toy
fi
dx=tox-fromx
dy=toy-fromy
open Filename for output as #1
print #1,"SBSCREENCOMP"
print #1,dx
print #1,dy
for y=fromy to toy
colcount=1
oldcol=point(fromx,fromy)
for x=fromx+1 to tox
h=point(x,y)
if (h=oldcol and x<tox)
colcount++
else
?#1,colcount
?#1,oldcol
colcount=1:oldcol=h
fi
next x
next y
close #1
'' this is done for windows ...
chmod Filename, 0o666
end
''********************************************
''Load Compressed Screen
''Needs: Filename
''********************************************
sub LoadScreenC(Filename)
local x,y,c,cc
open Filename for input as #1
input #1,name
''is it a sbscreen compressed file?
if name="SBSCREENCOMP"
input #1,xr
input #1,yr
for y=0 to yr
x=0
repeat
input #1,cc
input #1,c
line x,y,x+cc,y,c
x=x+cc
until (x>=xr or eof(1))
next y
fi
close #1
end
'
You are visitor 01402520 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.