77 lines
1.1 KiB
Plaintext
77 lines
1.1 KiB
Plaintext
DEFINE PTR="CARD"
|
|
|
|
BYTE FUNC AtasciiToInternal(CHAR c)
|
|
BYTE c2
|
|
|
|
c2=c&$7F
|
|
IF c2<32 THEN
|
|
RETURN (c+64)
|
|
ELSEIF c2<96 THEN
|
|
RETURN (c-32)
|
|
FI
|
|
RETURN (c)
|
|
|
|
PROC CharOut(CARD x BYTE y CHAR c)
|
|
BYTE i,j,v
|
|
PTR addr
|
|
|
|
addr=$E000+AtasciiToInternal(c)*8;
|
|
FOR j=0 TO 7
|
|
DO
|
|
v=Peek(addr)
|
|
i=8
|
|
WHILE i>0
|
|
DO
|
|
IF (v&1)=0 THEN
|
|
Color=0
|
|
ELSE
|
|
Color=1
|
|
FI
|
|
Plot(x+i-1,y+j)
|
|
|
|
v=v RSH 1
|
|
i==-1
|
|
OD
|
|
addr==+1
|
|
OD
|
|
RETURN
|
|
|
|
PROC TextOut(CARD x BYTE y CHAR ARRAY text)
|
|
BYTE i
|
|
|
|
FOR i=1 TO text(0)
|
|
DO
|
|
CharOut(x,y,text(i))
|
|
x==+8
|
|
OD
|
|
RETURN
|
|
|
|
PROC Frame(CARD x BYTE y,width,height)
|
|
Color=1
|
|
Plot(x,y)
|
|
DrawTo(x+width-1,y)
|
|
DrawTo(x+width-1,y+height-1)
|
|
DrawTo(x,y+height-1)
|
|
DrawTo(x,y)
|
|
RETURN
|
|
|
|
PROC Main()
|
|
BYTE CH=$02FC,COLOR1=$02C5,COLOR2=$02C6
|
|
BYTE i,x,y,width=[122],height=[10]
|
|
|
|
Graphics(8+16)
|
|
COLOR1=$0C
|
|
COLOR2=$02
|
|
|
|
FOR i=1 TO 10
|
|
DO
|
|
x=Rand(320-width)
|
|
y=Rand(192-height)
|
|
Frame(x,y,width,height)
|
|
TextOut(x+1,y+1,"Goodbye, World!")
|
|
OD
|
|
|
|
DO UNTIL CH#$FF OD
|
|
CH=$FF
|
|
RETURN
|