' include file for qfig.bas

DECLARE FUNCTION Angle! (x0!, y0!, x1!, y1!)
DECLARE FUNCTION KeyIsTouched$ ()
DECLARE FUNCTION KeyIsTyped% ()
DECLARE FUNCTION Usetdata$ ()
DECLARE FUNCTION yesno$ ()
DECLARE SUB CL.R.edraw (simple%, show%)
DECLARE SUB Chr.Input (a$)
DECLARE SUB CopySymm ()
DECLARE SUB CursorDisplay (ppxx%, ppyy%)
DECLARE SUB CursorMotion (keyin%)
DECLARE SUB D.Circles (cx%, cy%, rad!, ratio!, sang!, eang!, clr%, thickness%, simple%, wpatt%)
DECLARE SUB D.Lines (sx%, sy%, ex%, ey%, clr%, box%, thickness%, linetype%, filltype%, simple%)
DECLARE SUB D.Strings (n%, clr%, simple%)
DECLARE SUB D.Str1 (n%, clr%, simple%)
DECLARE SUB Disp.C (sobj%, snode%)
DECLARE SUB Disp.D (sobj%, snode%)
DECLARE SUB DispCut ()
DECLARE SUB EditObject ()
DECLARE SUB FillPattern ()
DECLARE SUB G.Addnode (o%, n%, editcc%)
DECLARE SUB G.Arc ()
DECLARE SUB G.ArrowDirec (sobj%, snode%, n%)
DECLARE SUB G.Arrows ()
DECLARE SUB G.Arrowset (sobj%, snode%, already%)
DECLARE SUB G.Box ()
DECLARE SUB G.Char ()
DECLARE SUB G.CharDisp ()
DECLARE SUB G.Charset (ams$, n%)
DECLARE SUB G.Crcl ()
DECLARE SUB G.Crcl.Ellps ()
DECLARE SUB G.Curve (curve%, closed%)
DECLARE SUB G.Ellps ()
DECLARE SUB G.Group ()
DECLARE SUB G.Group1 (i%)
DECLARE SUB G.XYparam (x0%, y0%, x1%, y1%, x2%, y2%, ax!, bx!, cx!, ay!, by!, cy!)
DECLARE SUB Help.Me ()
DECLARE SUB IO.Eepic ()
DECLARE SUB IO.Export ()
DECLARE SUB IO.File ()
DECLARE SUB IO.Load (ifile%)
DECLARE SUB IO.Save (ifile%)
DECLARE SUB KeyDisplay ()
DECLARE SUB KeySwitch (ksw%)
DECLARE SUB Killer (i%, s%)
DECLARE SUB KillObject ()
DECLARE SUB L.Text (ipx%, ipy%)
DECLARE SUB MarkEnds (c%)
DECLARE SUB Marking (c%, n%)
DECLARE SUB Marking.Chk (m%, sobj%, snode%)
DECLARE SUB Marking.One (c%, i%)
DECLARE SUB Marking.Reg (sx%, sy%, ex%, ey%, total%)
DECLARE SUB MaxMin (ppxx%, ppyy%)
DECLARE SUB MoveObj (c%)
DECLARE SUB MoveObject (total%, c%)
DECLARE SUB Object.Max.Check ()
DECLARE SUB PPUT (xp, yp, markp%())
DECLARE SUB Preparation ()
DECLARE SUB Rotate ()
DECLARE SUB SetInst (ninstr%)
DECLARE SUB SetObject (n%, clr%, simple%)
DECLARE SUB TeX.Characters (i%, j%, ams$, kanji%, special%, script%)
DECLARE SUB ptext (x%, y%, s$, c%, m%)
DECLARE SUB whelp ()
DECLARE SUB QUIT0 ()

TYPE Instruction
  L AS STRING * 15
  R AS STRING * 15
  D AS STRING * 6
END TYPE

COMMON SHARED /Objects/ xx(), yy(), obj%(), mobj%()
COMMON SHARED /Settings/ ltp%(), ltp$(), lth$(), tlp$(), dpattern$()
COMMON SHARED /Settings/ chartype$(), chartex$(), charjtex$(), chattr%()
COMMON SHARED /Settings/ epitch%(), eheight(), jheight(), scrpt()
COMMON SHARED /Settings/ Ins() AS Instruction
COMMON SHARED /Settings/ curs%(), curs1%(), curs2%()
COMMON SHARED /Settings/ mark%(), markg%(), markx%(), marky%(), kky$()
COMMON SHARED /Settings/ windowx%(), windowy%(), wndwxy()
COMMON SHARED /Settings/ iomessages$()

COMMON SHARED pxmin%, pxmax%, pymin%, pymax%
COMMON SHARED charpt%, chartype%, jpitch%
COMMON SHARED px%, py%, s%, s1%, mouswitch%, func%, func1%, job%, seljob%
COMMON SHARED pxo%, pyo%, hscroll%, vscroll%, margin%, help%, linesel%, wkill%
COMMON SHARED xmin%, xmax%, ymin%, ymax%, row%, col%, lbut%, rbut%, woldrad%
COMMON SHARED nobj%, ltype%, thick%, fill%, kswitch%, altpitch$, pi, wtext%
COMMON SHARED group%, emulation%, wndwfctr%, wnode%, wspec%, wrong%, selh%
COMMON SHARED scrtype%, ega%, line1%, line2%, line3%, texth%, pymax2%
COMMON SHARED winpy%, inbox%, sxg%, syg%

COMMON SHARED arrowhead, darrowhead, arrowdirect, arcarrowd, filler%()
COMMON SHARED eepicpattern$(), tpicshade$(), tpicshade%, nocheat%
COMMON SHARED interpolcurve%, interpolang%

COMMON SHARED wxx1!, wxx2!

CONST nobjmax% = 300    '(maximum # of objects)-1 =300
CONST nodemax% = 64     '(maximum # of nodes)-1  =64
CONST UP = &H48, LEFT = &H4B, RIGHT = &H4D, DOWN = &H50
CONST CR = &HD, SP = &H20, DEL = &H53, ESC = &H0, CLRHM = &H3E, HMCLR = &HAE
CONST FILE.CHECK$ = "% Output of qfig.bas"
CONST ptmm = .3515
CONST REGIONXMAX = 840, REGIONYMAX = 880
CONST msgload$ = "  Now loading.... "
CONST msgsave$ = "  Now saving..... "
CONST msgrdrw$ = " Now redrawing... "

DIM xx(nobjmax%, nodemax%), yy(nobjmax%, nodemax%), obj%(nobjmax%, 6)
DIM mobj%(nobjmax% / 2)
DIM ltp%(3), ltp$(3), lth$(2), tlp$(1 TO 3), dpattern$(3)
DIM chartype$(3), chartex$(1, 3), charjtex$(1, 1), chattr%(3, 1)
DIM epitch%(3, 94), jheight(1), eheight(3), scrpt(2)
DIM Ins(13) AS Instruction
DIM curs%(92), curs1%(92), curs2%(92)
DIM mark%(32), markg%(32), markx%(24), marky%(24)
DIM kky$(1 TO 25)
DIM filler%(3), eepicpattern$(1 TO 3), tpicshade$(1 TO 3)
DIM windowx%(3), windowy%(3), wndwxy(3)
DIM iomessages$(1 TO 7)

DEF fno$ (a, b) = LTRIM$(STR$(INT(a * b)))
DEF fnor$ (a, b) = LTRIM$(STR$(INT(a * b * 1000! + .5) / 1000!))
'DEF fnor$ (a, b) = LTRIM$(STR$(INT(a * b * 1000! + .5) / 1000!))
DEF fnoo% (ob%) = obj%(ob%, 0) - INT(obj%(ob%, 0) / 100) * 100

' end of qfig.bi