51 lines
721 B
Text
51 lines
721 B
Text
PROC Triangle(BYTE level)
|
|
INT v,i
|
|
BYTE x,y
|
|
BYTE ARRAY widths(20)
|
|
CHAR ARRAY tmp(5)
|
|
|
|
v=1
|
|
FOR y=1 TO level-1
|
|
DO
|
|
v==+y
|
|
OD
|
|
FOR x=0 TO level-1
|
|
DO
|
|
StrI(v+x,tmp)
|
|
widths(x)=tmp(0)
|
|
OD
|
|
|
|
v=1
|
|
FOR y=1 TO level
|
|
DO
|
|
FOR x=0 TO y-1
|
|
DO
|
|
StrI(v,tmp)
|
|
FOR i=tmp(0) TO widths(x)-1
|
|
DO
|
|
Put(32)
|
|
OD
|
|
Print(tmp)
|
|
IF x<y-1 THEN
|
|
Put(32)
|
|
ELSE
|
|
PutE()
|
|
FI
|
|
v==+1
|
|
OD
|
|
OD
|
|
RETURN
|
|
|
|
PROC Main()
|
|
BYTE LMARGIN=$52,oldLMARGIN
|
|
|
|
oldLMARGIN=LMARGIN
|
|
LMARGIN=0 ;remove left margin on the screen
|
|
|
|
Put(125) PutE() ;clear the screen
|
|
Triangle(5)
|
|
PutE()
|
|
Triangle(13)
|
|
|
|
LMARGIN=oldLMARGIN ;restore left margin on the screen
|
|
RETURN
|