//NSIL.DEFS -- definitions for NSIL


manifest
[
NMfonts = 6 //number of macro fonts (4-9)
Mtsize = NMfonts*128 //macro table size
DirPreambleSize=6
CursorMap = #431
ksTypeReadOnly=1
ksTypeWriteOnly=2
ksTypeReadWrite=3
verLatestCreate=#40000+2
Nwrds = 36 //number of words per scan line
ScreenXmax = Nwrds*16 //raster points in x
ScreenYmax = 762 //I added 2 scan lines so Status fits at the bottom in grid 4 (R Bates)
BuildYmax = 760 //Define this constant for compatibility with old and new drawings
BlankLines = 16 //number of unused scan lines on top of display must be even (R Bates)
MarkChar = #73 //character in gates.al which is used for mark
OriginChar = #72 //character in gates.al used for origin

//I added two "pseudo Cursor position registers so I could move the display window
//away from the screen origin, and still have all of Sil’c calculations work
//correctly with "@Cursor" ty instructions

//Now the real cursor coordinate assignments
DispCursorX = #426
//send the alto software CursorX from Tab1 to ScrenXMax + Tab1
DispCursorY = #427
//send the alto software CursorY from BlankLines to ScrenYMax + BL
MouseX = #424
MouseY = #425

Mark = 1
//cases of mouse events
Draw = 2
Select = 3
ShiftSelect = 4
ShiftMark = 5
CtrlSelect = 6
CtrlDraw = 7
CtrlMark = 8
ShiftDelete = 9
ShiftUndelete = 10


Dead = 7
//object states
Active = 0
Selected = 1


]

external
//static variables
[
CursorX //X location of Cursor in Bit-Map coordinates
CursorY //Y location of Cursor in Bit-Map coordinates
TABkey //indicates TAB key as apposed to CTRL i
ShiftDown //indicates that the Shift key is depressed - used to decode "Cont-Shift" function
PutCount //counts up to five minutes and then causes FileOut
Lprvec //vector of fp’s for libraries returned by LookUpEntries
ErrorObj
Axmin //selectarea window
Axmax
Aymin
Aymax

WindowXmin
WindowYmin
TickFlag
Mag

MakeGrayOK //special flag to override gray in RebuildSome when
//rebuilding prior to "Place Selected"
Changed //the picture has been changed since last written
VirginSinceBuild
//not changed since BUILD processed the picture

PlaceSelected
OneLevel
SilZone
MXmin
MYmin
MXmax
MYmax
lastlink
mainl
Message
StatusObject
Sweeping
Clink
Slink
CurrentFont
Yinc
YLockFlag
LineWidth
Space
//size of object space
SpaceTop //end of object space
SpaceBase //base of space
MouseBuffer
Blink
//set once per second
FlashSense //flag for sense of blinking mark,origin
OriginObject
MarkObject
mx //mouse coordinates
my
MaxStringHeight //set by Cvrt to the height of the string it did
Mact //the macro table
DisplayArea //the bit map
FontVec //one entry per font
MaskTable //for SetBlock
FirstItem //beginning of the list of objects
NewItem //pointer to next free word in stack
OldX
NewX
OldY
NewY
RebuildXmin
RebuildYmin
RebuildXmax
RebuildYmax
RebuilderState
RestartRebuilder
RebuilderLink
NSelectedItems
Dcb
GridMask
TimeCount
FNameObject


]

external
//O.S. procedures and statics
[
OpenFileFromFp
fpUserCm
fpSysDir
fpComCm
fpRemCm
Usc
InitializeZone
OpenFile
Puts
Closes
MoveBlock
Gets
SetKeyboardProc
lvCursorLink
Zero
CallSwat
Endofs
keys
lvUserFinishProc
Junta
CounterJunta
Resets
]

external
//Sil procedures
[
LibUpdate //update mact from library files
ReadLibFps //get file pointers for library files
LookupEntries
SilReInit
InitSelArea
MoveLineEndpoints
SetCursor
Expand
GobbleFonts
ReadUserCmItem
ReadFont
CleanUp
MoveSelected
CopySelected
DeleteSelected
UnDelete
WriteBlock
FileOut
FixFname
Update
Compact
FlashMark
UpdateYCursor
MakeItem
GetMouseEvent
MakeMouseEvent
MouseProc
MakeGray
ZapRebuilder
ZapRebuilderItem
RemoveBuildMark
Cvrt
DoKeyboard
MouseBufferEmpty
PushCoords
MoveObjectTo
DoDraw
SelectArea
ClearSelections
MakeSelected
SelectItem
RebuildSome
SetBlock
DisplayObject
AddText
DefineMacro
CheckMacro
RecursiveDefinition
FileIn
//NSilUtil
IncrementCoords
AddToList
FlushList
Length
StEq
AppendC
AppendS
AppendN
AppendB
WSS
]


structure str:
[
length byte
char↑1,255 byte
]


structure item:
[
link word
state bit 3
xmin bit 13
ymin word
xmax word
font bit 4
ymax bit 12
string: @str
]

structure Mevent:
[
type bit 4
curx bit 12
cury word
]