// GINN.DF
// $$ N.B.
// $$ Given a 606 dot x 808 line display which is 8.5 inches x 11 inches
// $$ there are 73.454545 lines/vert inch and 71.294117 dot/horiz inch
// $$ and a line is 13.613861 thou-inch and a dot is 14.026402 thou-inch
manifest [
paral = 128
leftdelim = ${
rightdelim = $}
];
structure LIST[
max word
siz word
]
manifest [ listbase = (size LIST + 15) / 16 ]
structure LOOK[
bold bit 1
italic bit 1
menu bit 1
remark bit 1
serif bit 1
ul bit 1
vanish bit 1
blank bit 9
]
manifest [
mlooks = #177000 // * * * * * sum of masks * * * * *
fbold = offset LOOK.bold
mbold = #100000 rshift fbold
fitalic = offset LOOK.italic
mitalic = #100000 rshift fitalic
fmenu = offset LOOK.menu
mmenu = #100000 rshift fmenu
fremark = offset LOOK.remark
mremark = #100000 rshift fremark
fserif = offset LOOK.serif
mserif = #100000 rshift fserif
ful = offset LOOK.ul
mul = #100000 rshift ful
fvanish = offset LOOK.vanish
mvanish = #100000 rshift fvanish
]
manifest [
fjust = 1
fcenter = 2
]
structure FORMAT[
dent word // see "firstnumeric" below
lmarg word
rmarg word
quad word // see "firstbinary" below
look word = @LOOK
]
manifest [ nnumerics = 4;
firstnumeric = (offset FORMAT.dent + 15)/16;
fdent = (offset FORMAT.dent + 15)/16;
flmarg = (offset FORMAT.lmarg + 15)/16;
frmarg = (offset FORMAT.rmarg + 15)/16;
fquad = (offset FORMAT.quad + 15)/16;
flook = (offset FORMAT.look + 15)/16;
firstbinary = flook
nbinaries = 1;
]
manifest [ formatl = (size FORMAT + 15) / 16 ]
manifest [ changel = 2 * formatl ]
structure SPEC[
@LIST
link word
trailerlength word
dirty bit
marker bit
blank bit 6
doc byte
para word
@FORMAT
]
manifest [ specbase = (size SPEC + 15) / 16 ]
manifest [ firstformat = specbase - formatl ]
manifest [ abandon = 255 ] // doc = 255 means abandon spec
structure FCODE[
kind bit 3
wordn bit 3
bitn bit 4
un bit 1
blank bit 5
]
manifest [
knormal = 0
kdigit = 1
kcr = 2
klook = 3
kquad = 4
kmeasure = 5
knone = #7 // three bits of a -1
]
structure ST[
blank word
open word
close word
gets word
puts word
reset word
putback word
error word
endof word
stateof word
blank word
blank word
blank word
type word
]
manifest
[
lookspmask = #1
lookcrmask = #2
looktabmask = #4
looktrailermask = #10
lookmarkermask = #20
lookremarkmask = #40 // $$
farcp = 350 // cpseeable // $$ was 700
fardl = 10 // scan -- max scroll // $$ was 20
xcursorloc = #426 ;
ycursorloc = #427 ;
// $$[
widthspmin = 4
widthspave = 8
tabchstd = 64
minline = 15
devalto = 0
devdp = 1
altolmarg = 30
altormarg = 565
dplmarg = 180
dprmarg = 540
dpwidthcc = 6
dpspmin = 3
dpspave = 6
dptabch = 6
dptabwidth = 48
dppitch = 6
dpheight = 8
marglevel = 5
// $$]
ywwtop = 48 ;// $$
ywwsys = ywwtop+16
ywwmenu1 = ywwtop+32
ywwmenu2 = ywwtop+48
ywwscr1 = ywwtop+448 ; // $$
ywwscr2 = ywwscr1-96 ; // $$
xlstripe = 15; // $$ was 24
xrstripe = 580;
ytstripe = 10;
pagebarxfirst = 30 // $$ was something ridiculous
pagebarxlast = 600 // $$ was something ridiculous
tabwidthmin = 8 // currently same as tabwidthstd
lfmenu = 2
idmenu1 = 1
idmenu2 = 2
idmenu3 = 3
idmenu4 = 4
idmenu5 = 5
idbanner1 = 1
idbanner2 = 2
idbanner3 = 3
swindow = 2 ; // 0=snone 1=sline
sbound = 3 ;
snew = 4 ;
ssplit = 5 ; // 6=schar
snoline = 7 ;
smchar = 8 ;
smline = 9 ;
smenu = 10 ;
spage = 11 ;
sinvert = -10 ;
topblk = #36 // also listed in GKBD.SR
midblk = #34
botblk = #31
shtopblk = #37
shmidblk = #35
shbotblk = #32
sh = #24
shsh = #26
shesc = #23
shdel = #27
shbs = #20
shlf = #22
shtab = #21
shcr = #25
shsp = #30
skeyboard = #0 ; // 000-377 except 0
skeyset = #400; // 400-437 except 400
smouse = #440; // 440-507 except 440,450,460,470,500
sstripe = #510; // 510-514
maxcode = #515
sinchar = 1 ;
scoleft = 2 ;
scoright = 3 ;
smapchar = 4 ;
spaste = 5 ;
scut = 6 ;
sreadf = 7 ;
swritef = 8 ;
squit = 9 ;
spointchar = 10 ;
scoleftword = 11 ;
sstripeline = 12 ; // these 5 must be consecutive
sstripenone = 13 ;
sstripewindow = 14 ;
sstripefly = 15 ;
sstripemenu = 16 ;
sjumpup = 17 ;
sjumpfar = 18 ;
sjumpdown = 19 ;
srollup = 20 ;
srolldown = 21 ;
srollover = 22 ;
sdirectory = 23 ;
sdivwindow = 24 ;
smodwindow = 25 ;
splaceright = 26 ;
splaceleft = 27 ;
srollupfast = 28 ;
srolldownfast = 29 ;
srollupfar = 30 ;
srolldownfar = 31 ;
smove = 32 ;
snewwindow = 33 ;
soverwrite = 34 ;
sprintfile = 35 ;
slookey = 36 ;
sjustifyww = 38 ;
smark = 39 ;
scutpaste = 40 ;
sroll = 41 ;
sexchange = 42 ;
sdelwindow = 43 ;
sthing = 44 ;
sparagraph = 45 ;
scarrier = 46 ;
sflyaway = 47 ;
sbugmenu = 48 ;
stabulator = 49 ;
spageto = 50 ; // $$
slevel = 51 ; // $$
maxsig = 52 ; // insert sig codes before this line
mquit = 0
mdirectory = 1
mcancel = 2
mfile = 3
mall = 4
mprint = 5
mfetch = 6
mscan = 8
msubstitute = 9
mdocument = 10
mturnto = 11
madd = 12
mcreate = 13
mmake = 14
// $$[
mdouble = 15
mheadings = 16
mpagenums = 17
mrepaginate = 18
mstart = 19
mstop = 20
mcassette = 21
mwrite = 22
mput = 23
mdrawer = 24 // %%
maxmitems = 25 // insert menu codes before this line
// and recompile GMENU
// $$]
mmdir = 0
mmclean = 1
mmdirty = 2
mmnull = 3
mmnodoc = 4
// $$[
mmprint = 5
mmstop = 6
mmcassette = 7
mmdirnocab = 8 // %%
mmnodocnocab = 9 // %%
maxmenumessages = 10 // insert menu message codes above
// $$]
maxtrailerl = 100 // characters
chtrailer = $Z-#100
chmod = #376 //used for italicizing etc
extrafont = 30 // words needed by chmod // $$
worthcompact = 2000 // if regainable by overlay
fnopsys = 4; // moved here and changed from BRAVO.DF
fnfont = 5;
fnfilebb = 6;
fneditbb = 7;
fnwwbb = 8
fnmenubb = 9
fndevbb = 10;
// ** IF MORE BB FILES ARE ADDED ABOVE:
// INCREASE lastfnbb AND MAYBE minuserfn BELOW,
// ADD "---module" MANIFEST TO LIST BELOW AND TO QINITCOMT.SR,
// AND ADD FILE NAME TO GOVERLAY.SR (openoverlay).
// WHEN minuserfn IS CHANGED, RECOMPILE GFILE.SR TOO
minuserfn = 12; // 1 or 2 bigger than last bb but ls maxfn
firstfnbb = 6 ; // !!!!!
lastfnbb = 10 ; // !!!!!
nomodule = 0;
resmodule = 1;
initmodule = 2;
menumodule = fnmenubb // $$
editmodule = fneditbb;
wwmodule = fnwwbb;
lookmodule = fneditbb; // shared now
mousemodule = resmodule; // shared now
dirtymodule = fnfilebb // $$
devicemodule = fndevbb // $$
];