-
Notifications
You must be signed in to change notification settings - Fork 11
/
demolbl.bas
72 lines (58 loc) · 1.71 KB
/
demolbl.bas
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
# (for Emacs) -*- indented-text -*-
# this is a label-using version of `demo.bas', which shows how much
# nicer it is not to have to deal with line numbers. :-)
rem zmakebas demo
gosub @init
gosub @header
gosub @udgdem
gosub @blockdem
stop
@init:
for f=usr "a"+7 to usr "u"+7 step 8
poke f,255
next f
let is48=1
# init all attrs just in case
border 7:paper 7:ink 7:bright 0:flash 0:cls
# check for 48k speccy or 48k mode. This is a pretty nasty way to do
# it, but seems to be the most sane way (from Basic at least).
print "\t"
if screen$(0,0)="S" then let is48=0
ink 0:print at 0,0;
return
@header:
print ink 5;"\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..";\
"\..\..\..\..\..\..\..\..\..\..\..\..\..\..\.."
print paper 5;" Non-ASCII chars in zmakebas "
print ink 5;"\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''";\
"\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''"
print
return
@udgdem:
print "Here are the UDGs:"''
print ink 1;"\a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s";
if is48 then print ink 1;"\t\u";
print ''"(They should be underlined.)"
return
@blockdem:
# 01234567890123456789012345678901
print at 11,0;"The block graphics, first as"'\
"listed by a for..next loop, then"'\
"via zmakebas's escape sequences:"
ink 7
print at 15,0;
for f=128 to 143:print chr$(f);" ";:next f:print ''
print at 17,0;"\ \ ' \' \'' \ . \ : \'. \': ";\
"\. \.' \: \:' \.. \.: \:. \::"
# draw boxes around them to make it look less confusing
ink 1
for y=0 to 1
for x=0 to 15
plot x*16,55-y*16:draw 7,0:draw 0,-7:draw -7,0:draw 0,7
next x
next y
ink 0
print at 20,0;"And finally here's the copyright"'\
"symbol (";ink 1;"\*";ink 0;\
") and pound sign (";ink 1;"`";ink 0;")."
return