m.def 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622
  1. DEFINITION MODULE m;
  2. CONST
  3. Replace = 0;
  4. Ovrlay = 1;
  5. Invert = 2;
  6. Erase = 3;
  7. zREPz = 0;
  8. zORz = 1;
  9. zXORz = 2;
  10. zNANDz = 3;
  11. zNREPz = 4;
  12. zNORz = 5;
  13. zNXORz = 6;
  14. zANDz = 7;
  15. (* Graphics Adaptor Definitions *)
  16. ATT = 128; (* AT&T Std. Color & DEB Adaptors *)
  17. ATT640x400 = 128; (* 640x400 monochrome *)
  18. DEB640x200 = 129; (* 640x200 16-color *)
  19. DEB640x400 = 130; (* 640x400 16-color *)
  20. CGA = 6; (* IBM Color Graphics Adaptor (CGA) *)
  21. CGA320x200 = 4; (* 320x200 4-color *)
  22. CGA640x200 = 6; (* 640x200 2-color *)
  23. COR = 34; (* Cornerstone *)
  24. COR1600x1280V = 34; (* Vista 1600 1600x1280 mono *)
  25. COR1600x1280VA = 37; (*Vista 1600 1600x1280 no em, 2 mon *)
  26. COR1600x1280DP = 35; (* DualPage 1600x1280 mono *)
  27. COR1600x1280DPA = 36; (* DualPage 1600x1280, no JP1 *)
  28. EGA = 512; (* IBM Enhanced Graphics Adaptor *)
  29. EGAMono = 512; (* 640x350 monochrome *)
  30. EGA320x200 = 544; (* 320x200 16-color *)
  31. EGA640x200 = 528; (* 640x200 16-color *)
  32. EGA640x350 = 560; (* 640x350 16-color (128k EGA) *)
  33. MGA640x350 = 561; (* 640x350 2-color *)
  34. EGA640x480 = 562; (* 640x480 16-color (VGA) *)
  35. MGA640x480 = 563; (* 640x480 2-color (MCGA) *)
  36. VGA320x200 = 564; (* 320x200 256-color (PS2 VGA) *)
  37. EGA640x350S = 565; (* 640x350 16-color (no bios-EGA) *)
  38. VGA640x350S = 566; (* 640x350 16-color (no bios-VGA) *)
  39. VGA640x480S = 567; (* 640x480 16-color (no bios-VGA) *)
  40. JRT320x200 = 569; (*320x200 16-color IBM PCjr & Tandy 1000 EX *)
  41. EVA = 516; (* Tseng Labs EVA/480 *)
  42. EVA640x480 = 516; (* 640x480 16-color *)
  43. EVR = 1024; (* Everex Graphics Edge Adaptor *)
  44. EVR640x200 = 1024; (* 640x200 16-color *)
  45. EVR640x400 = 1025; (* 640x400 4-color *)
  46. GEN = 518; (* Genoa SuperEGA HiRes *)
  47. GEN800x600 = 518; (* 800x600 16-color *)
  48. GEN1024x768 = 519; (* Genoa SuperVGA HiRes-10 16-color *)
  49. GEN640x350X = 530; (* 640x350 256-color *)
  50. GEN640x480X = 531; (* 640x480 256-color *)
  51. HER = 8; (* Hercules/AST Monochrome Adaptor *)
  52. HER720x348 = 8; (* 720x348 monochrome *)
  53. MDS = 2; (* MDS Genius Graphics Display *)
  54. MDS736x1008 = 2; (* 736x1008 monochrome *)
  55. NNR512x512 = 4096; (* Number Nine 512x485 256-color *)
  56. NNR1024x768 = 4097; (* 2048x4 @ 1024x768x16 *)
  57. NSI = 514; (* NSI Logic Smart EGA/Plus *)
  58. NSI800x600 = 514; (* 800x600 16-color *)
  59. OCD800x600 = 571; (* Orchid Designer VGA 800x600x16 *)
  60. OCD1024x768 = 572; (* 1024x768 16 color *)
  61. OCD640x350X = 573; (* 640x480 256 color *)
  62. OCD640x480X = 574; (* 640x480 256 color *)
  63. PAR = 517; (* Paradise AutoSwitch EGA/480 *)
  64. PAR640x480 = 517; (* 640x480 16-color *)
  65. PAR800x600 = 529; (* 800x600 16-color *)
  66. SIG = 32; (* Sigma Design *)
  67. SIG640x400 = 32; (* 640x400 16-color, Color-400 *)
  68. SIG1664x1200 = 33; (* Sigma LaserView 1664x1200 mono *)
  69. STB = 256; (* STB GraphicsPlus-II Adaptor *)
  70. STB640x352 = 256; (* 640x352 monochrome *)
  71. STB320x200 = 257; (* 320x200 16-color *)
  72. STB640x200 = 258; (* 640x200 4-color *)
  73. STB640x400 = 384; (* 640x400 monochrome *)
  74. STB800x600 = 571; (* STB VGA Extra/EM 800x600x16 *)
  75. STB1024x768 = 572; (* 1024x768 16 color *)
  76. STB640x350X = 573; (* 640x350 256 color *)
  77. STB640x480X = 574; (* 640x480 256 color *)
  78. TEC = 16; (* Tecmar Graphics-Master Adaptor *)
  79. TEC720x352 = 16; (* 720x352 monochrome *)
  80. TEC720x704 = 17; (* 720x704 monochrome *)
  81. TEC320x200 = 18; (* 320x200 16-color *)
  82. TEC640x200 = 19; (* 640x200 16-color *)
  83. TEC640x400 = 20; (* 640x400 16-color *)
  84. TOS = 16384; (* Toshiba 3100 *)
  85. TOS640x400 = 16384; (* 640x400 monochrome *)
  86. TTS = 2048; (* IBM 3270 PC *)
  87. TTS720x350 = 2048; (* 720x350 monochrome *)
  88. TTS360x350 = 2049; (* 360x350 4-color *)
  89. VGA = 520; (* Video-7 VEGA Deluxe *)
  90. VGA640x480 = 520; (* 640x480 16-color *)
  91. VGA752x410 = 521; (* 752x410 16-color *)
  92. VGA720x540 = 522; (* V7 VGA 720x540 16-color *)
  93. VGA800x600 = 523; (* 800x600 16-color (VGA) *)
  94. VGA640x350X = 524; (* V7 VRAM 640x350 256-color *)
  95. VGA640x480X = 525; (* 640x480 256-color *)
  96. VGA1024x768x2 = 527; (* 1024x768 2-color *)
  97. WYS = 64; (* Wyse WY-700 Graphics Display *)
  98. WYS1280x800 = 64; (* 1280x800 monochrome *)
  99. WYS1280x400 = 65; (* 1280x400 monochrome *)
  100. WYS640x400 = 66; (* 640x400 monochrome *)
  101. MEC1120x750 = 610; (* NEC PC 98XA monochrome *)
  102. MEC640x400 = 611; (* NEC PC 98VM monochrome *)
  103. NEC1120x750 = 626; (* NEC PC 98XA 16-color *)
  104. NEC640x400 = 627; (* NEC PC 98VM 16-color *)
  105. (* Defines for National Design Genesis-1024/1280 *)
  106. NDI640x480x4D = 04140H; (* 640x480 16-color, digitl *)
  107. NDI640x480x4A = 04141H; (* 640x480 16-color, analog *)
  108. NDI1024x768x4J = 04148H; (* 1024x768 16-color, JVC *)
  109. NDI1024x768x4M = 04149H; (* 1024x768 16-color, Mitsu. *)
  110. NDI1280x1024x4J = 0414AH; (* 1280x1024 16-color, JVC *)
  111. NDI960x720x4N = 0414BH; (* 960x720 16-color, NEC XL *)
  112. (* Defines for Hewlett-Packard HP82328 IGC *)
  113. HP1024x768x4 = 0664AH; (* 1024x768 16-color *)
  114. CUSTLIN = CGA640x200; (* User defined linear memory *)
  115. CUSTBS = SIG640x400; (* User defined Bank select *)
  116. CUSTEGA = EGA640x350; (* User defined EGA Superset *)
  117. (* Mouse Definitions *)
  118. com1 = 1; (* Mouse Systems mouse, COM1 *)
  119. com2 = 2; (* Mouse Systems mouse, COM2 *)
  120. msMouse = 16; (* Microsoft Bus Mouse *)
  121. msCOM1 = 17; (* Microsoft Serial Mouse, COM1 *)
  122. msCOM2 = 18; (* Microsoft Serial Mouse, COM2 *)
  123. MsDriver = 32; (* Microsoft Mouse driver *)
  124. swRight = 1;
  125. swMiddle = 2; (* (not on 2 button mice) *)
  126. swLeft = 4;
  127. swAll = 7;
  128. black = 0; (* all bits OFF *)
  129. white = -1; (* all bits ON *)
  130. TextPg0 = 0;
  131. GrafPg0 = 256;
  132. GrafPg1 = 257;
  133. ScrnXmin = 0;
  134. ScrnYmin = 0;
  135. cNormal = 0; (* TEXTFACE *)
  136. cBold = 1;
  137. cItalic = 2;
  138. cUnderline = 4;
  139. cStrikeout = 8;
  140. cMirrorX = 32;
  141. cMirrorY = 64;
  142. cProportional = 128;
  143. alignLeft = 0; (* TEXTALIGN - Horizontal *)
  144. alignCenter = 1;
  145. alignRight = 2;
  146. alignBaseline = 0; (* TEXTALIGN - Vertical *)
  147. alignBottom = 1;
  148. alignMiddle = 2;
  149. alignTop = 3;
  150. pathRight = 0; (* TEXTPATH definitions *)
  151. pathUp = 900;
  152. pathLeft = 1800;
  153. pathDown = 2700;
  154. capFlat = 0; (* PENCAP definitions *)
  155. capRound = 1;
  156. capSquare = 2;
  157. joinRound = 0; (* PENJOIN definitions *)
  158. joinBevel = 1;
  159. joinMiter = 2;
  160. TYPE
  161. POINT = RECORD (* "Point" structure type *)
  162. X: INTEGER; (* X coordinate *)
  163. Y: INTEGER; (* Y coordinate *)
  164. END;
  165. COLRTABLE = ARRAY[0..15] OF LONGINT;
  166. RECT = RECORD (* "Rectangle" structure type *)
  167. xMin: INTEGER; (* minimum X *)
  168. yMin: INTEGER; (* minimum Y *)
  169. xMax: INTEGER; (* maximum X *)
  170. yMax: INTEGER; (* maximum Y *)
  171. END;
  172. POLYHEAD = RECORD (* Polygon "header" structure *)
  173. polyBgn: CARDINAL; (* beginning index *)
  174. polyEnd: CARDINAL; (* ending index *)
  175. polyRect: RECT; (* boundry limits *)
  176. END;
  177. EVENT = RECORD (* Event record structure *)
  178. ASCII: CHAR; (* ASCII character code *)
  179. ScanCode: BYTE; (* Keyboard scan code *)
  180. State: CARDINAL; (* Keyboard & mouse switches *)
  181. CursorX: INTEGER; (* Cursor X position *)
  182. CursorY: INTEGER; (* Cursor Y position *)
  183. Time: INTEGER; (* System time of event *)
  184. END;
  185. CURRCD = RECORD (* Cursor Image definition *)
  186. curWidth: CARDINAL; (* must be 16 *)
  187. curHeight: CARDINAL; (* must be 16 *)
  188. curAlign: CARDINAL; (* must be 0 *)
  189. curRowBytes: CARDINAL;(* must be 2 *)
  190. curBits: CHAR; (* must be 1 *)
  191. curPlanes: CHAR; (* must be 1 *)
  192. curData: ARRAY [1..32] OF BYTE; (* cursor data bytes *)
  193. END;
  194. PATRCD = RECORD (* Pattern Image definition *)
  195. patWidth: CARDINAL; (* must be 8 *)
  196. patHeight: CARDINAL; (* must be 8 *)
  197. patAlign: CARDINAL; (* must be zero *)
  198. patRowBytes: CARDINAL;(* must be equal to patBits *)
  199. patBits: BYTE; (* value of 1,2,4 or 8 *)
  200. patPlanes: BYTE; (* value of 1 thru 32 *)
  201. patData: ARRAY [1..32] OF BYTE; (* pattern data bytes *)
  202. END;
  203. PENSTATE = RECORD (* Pen State record structure *)
  204. psBkColor: LONGINT; (* Background color *)
  205. psPnColor: LONGINT; (* Pen color *)
  206. psPnLoc: POINT; (* Pen location *)
  207. psPnSize: POINT; (* Pen size *)
  208. psPnMode: CARDINAL; (* Pen mode (rasterOp) *)
  209. psPnPat: CARDINAL; (* Pen pattern index *)
  210. psPnCap: CARDINAL; (* Pen end-cap style *)
  211. psPnJoin: CARDINAL; (* Line join style *)
  212. psPnDash: CARDINAL; (* Line dash style *)
  213. psPnOffset: CARDINAL;(* Dash starting offset *)
  214. psPnLevel: CARDINAL; (* Pen visibility level *)
  215. END;
  216. DIRREC = RECORD (* FILEQUERY - directory record *)
  217. reserved: ARRAY [1..21] OF CHAR; (* (DOS reserved) *)
  218. fileAttr: BYTE; (* File attribute *)
  219. fileTime: CARDINAL; (* File create time *)
  220. fileDate: CARDINAL; (* File create date *)
  221. fileSize: LONGINT; (* File size (bytes) *)
  222. fileName: ARRAY [1..14] OF CHAR; (* "FILENAME.EXT\0" *)
  223. END;
  224. IMAGEHEADER = RECORD (* Image Header record structure*)
  225. imWidth: CARDINAL; (* Pixel width (X) *)
  226. imHeight: CARDINAL; (* Pixel height (Y) *)
  227. imAlign: CARDINAL; (* Image alignment *)
  228. imRowBytes: CARDINAL;(* Bytes per row *)
  229. imBits: BYTE; (* Bits per pixel *)
  230. imPlanes: BYTE; (* Planes per pixel *)
  231. (* imData: array [1..?] of byte;
  232. image data, variable length *)
  233. END;
  234. DASHRCD = RECORD (* DEFINEDASH data record *)
  235. nCnts: CARDINAL;(* number of active entries, 1-8*)
  236. cnt1: CARDINAL; (* distance ON, 1 *)
  237. cnt2: CARDINAL; (* distance OFF, 2 *)
  238. cnt3: CARDINAL; (* distance ON, 3 *)
  239. cnt4: CARDINAL; (* distance OFF, 4 *)
  240. cnt5: CARDINAL; (* distance ON, 5 *)
  241. cnt6: CARDINAL; (* distance OFF, 6 *)
  242. cnt7: CARDINAL; (* distance ON, 7 *)
  243. cnt8: CARDINAL; (* distance OFF, 8 *)
  244. END;
  245. MAPARRAY = ARRAY [0..7] OF CARDINAL;
  246. (* CursorMap data record *)
  247. (* Sample User Definable Types: *)
  248. CCBtype = RECORD (*User Definable Clock_Communication_Block*)
  249. Timer: CARDINAL;
  250. tX: INTEGER;
  251. tY: INTEGER;
  252. tSw: INTEGER;
  253. END;
  254. MCBtype = RECORD (*User Definable Mouse_Communication_Block*)
  255. mX: INTEGER;
  256. mY: INTEGER;
  257. mSw: INTEGER;
  258. END;
  259. IMAGE = BYTE; (* "image" type equivalence *)
  260. IMAGEPTR = POINTER TO IMAGE;
  261. TYPE
  262. adsMem = POINTER TO BYTE;
  263. MAP = RECORD (* "rowTable" Raster Line Pointers *)
  264. rowTable: ARRAY [0..1280] OF adsMem; (* Table of row pointers *)
  265. END;
  266. rowtblPtr = POINTER TO MAP;
  267. BITMAP = RECORD (* "bitmap" Data Structure *)
  268. devClass: INTEGER; (* Device class *)
  269. devType: INTEGER; (* Device type *)
  270. devProcs: adsMem; (* Ptr to device procedure list *)
  271. rowBytes: INTEGER; (* Bytes per scan line *)
  272. pixWidth: INTEGER; (* Pixels horizontal *)
  273. pixHeight: INTEGER; (* Pixels vertical *)
  274. pixResX: INTEGER; (* Pixels per inch horzontally *)
  275. pixResY: INTEGER; (* Pixels per inch vertically *)
  276. pixBits: INTEGER; (* Color bits per pixel *)
  277. pixPlanes: INTEGER; (* Color planes per pixel *)
  278. mapTable: ARRAY [0..23] OF rowtblPtr;(* Pointers to rowTable(s) *)
  279. mapActive: INTEGER; (* Active logical page *)
  280. mapPages: INTEGER; (* Number of mapList entries,1-4 *)
  281. mapList: ARRAY [0..3] OF INTEGER; (* List of logical pages loaded *)
  282. mapRsvd: ARRAY [0..5] OF INTEGER; (* (reserved for future use) *)
  283. mapSegment: CARDINAL; (* Map segment *)
  284. mapHandle: CARDINAL; (* Map handle *)
  285. mapManager: adsMem; (* Pointer to paging manager *)
  286. END;
  287. BITMAPPTR = POINTER TO BITMAP;
  288. (* Bitmap Device Type (devType) Definitions *)
  289. CONST
  290. devSTD = 0; (* Standard memory mapped bitmap *)
  291. devEGA = 1; (* IBM EGA/VGA display bitmap *)
  292. devND1 = 040H; (* NDI Genesis-1024 bitmap *)
  293. devND2 = 041H; (* NDI Genesis-1280 bitmap *)
  294. devHP1 = 042H; (* Hewlett Packard1 *)
  295. devEMS = 080H; (* EMS expanded memory bitmap *)
  296. devWYS = 081H; (* Wyse 1280x800 display bitmap *)
  297. devSIG = 082H; (* Sigma Design Color-400 bitmap *)
  298. devLASVU = 083H; (* Sigma Design LaserView/plus *)
  299. devVISTA = 084H; (* Cornerstone VISTA 1600 *)
  300. devREV512 = 085H; (* Number Nine Revolution 512x484 *)
  301. devDUALPG = 086H; (* Cornerstone DualPage System *)
  302. devTSENG = 087H;
  303. (* Tseng labs Bank Select - STB/GENOA/ORCHID *)
  304. devREV2048 = 088H; (* #9 2048x4 Bank manager *)
  305. cDevClass = 0; (* "GetBMapField" index definitions *)
  306. cDevType = 2;
  307. cRowBytes = 8;
  308. cPixWidth = 10;
  309. cPixHeight = 12;
  310. cPixRsX = 14;
  311. cPixRsY = 16;
  312. cPixBits = 18;
  313. cPixPlanes = 20;
  314. cMapTable = 22;
  315. TYPE
  316. METAPORT = RECORD (* "metaPort" Data Structure *)
  317. portBMap: BITMAPPTR;
  318. (* Pointer to "bitmap" record *)
  319. portRect: RECT;
  320. (* 'Local' coordinate port bounds *)
  321. portOrgn: POINT;
  322. (* 'Global' origin of portRect *)
  323. portVirt: RECT;
  324. (* 'Virtual' port bounds *)
  325. portFlgs: INTEGER;
  326. (* Port Flags *)
  327. portClip: RECT;
  328. (* 'Local' clipping rectangle *)
  329. portRgn: adsMem;
  330. (* (reserved) *)
  331. bkPat: INTEGER;
  332. (* Background pattern index *)
  333. bkColor: LONGINT;
  334. (* Background color *)
  335. pnColor: LONGINT;
  336. (* Pen color *)
  337. pnLoc: POINT;
  338. (* Pen location *)
  339. pnSize: POINT;
  340. (* Pen size *)
  341. pnMode: INTEGER;
  342. (* Pen mode (rasterOp) *)
  343. pnPat: INTEGER;
  344. (* Pen pattern index *)
  345. pnCap: INTEGER;
  346. (* Pen end-cap style *)
  347. pnJoin: INTEGER;
  348. (* Line join style *)
  349. pnDash: INTEGER;
  350. (* Line dash style *)
  351. pnOffset: INTEGER;
  352. (* Dash sequence offset *)
  353. pnLevel: INTEGER;
  354. (* Pen visibility level *)
  355. txFont: adsMem;
  356. (* Pointer to current font record *)
  357. txFace: INTEGER;
  358. (* Text facing flags *)
  359. txMode: INTEGER;
  360. (* Text mode (rasterOp) *)
  361. txUnder: INTEGER;
  362. (* Text underline position *)
  363. txScore: INTEGER;
  364. (* Text underline scoring *)
  365. txPath: INTEGER;
  366. (* Text path *)
  367. txAlign: POINT;
  368. (* Text alignment *)
  369. txAngle: INTEGER;
  370. (* Text angle (stroked) *)
  371. txSize: POINT;
  372. (* Text size (stroked) *)
  373. txSlant: INTEGER;
  374. (* Text slant (stroked) *)
  375. txExtra: INTEGER;
  376. (* Text justify bits *)
  377. txSpace: INTEGER;
  378. (* Space justify bits *)
  379. mkType: INTEGER;
  380. (* Marker type index *)
  381. mkSize: POINT;
  382. (* Marker size *)
  383. mkAngle: INTEGER;
  384. (* Marker angle *)
  385. spare: ARRAY [1..10] OF INTEGER;
  386. (* (spares) *)
  387. END;
  388. TYPE
  389. METAPORTPTR = POINTER TO METAPORT;
  390. PUSHAREA = RECORD (* PUSHGRAFIX/POPGRAFIX savearea *)
  391. saveArea: ARRAY [1..64] OF CARDINAL;
  392. END;
  393. CONST
  394. cportBMap = 0; (* "GetPortField" Index Definitions *)
  395. cportRect = 4;
  396. cportOrgn = 12;
  397. cportVirt = 16;
  398. cportFlgs = 24;
  399. cportClip = 26;
  400. cportRgn = 34;
  401. cbkPat = 38;
  402. cbkColor = 40;
  403. cpnColor = 44;
  404. cpnLoc = 48;
  405. cpnSize = 52;
  406. cpnMode = 56;
  407. cpnPat = 58;
  408. cpnCap = 60;
  409. cpnJoin = 62;
  410. cpnDash = 64;
  411. cpnOffset = 66;
  412. cpnLevel = 68;
  413. ctxFont = 70;
  414. ctxFace = 74;
  415. ctxMode = 76;
  416. ctxUnder = 78;
  417. ctxScore = 80;
  418. ctxPath = 82;
  419. ctxAlign = 84;
  420. ctxAngle = 88;
  421. ctxSize = 90;
  422. ctxSlant = 94;
  423. ctxExtra = 96;
  424. ctxSpace = 98;
  425. cmkType = 100;
  426. cmkSize = 102;
  427. cmkAngle = 106;
  428. cspare = 108;
  429. cxmin = 0;
  430. cymin = 2;
  431. cxmax = 4;
  432. cymax = 6;
  433. cX = 0;
  434. cY = 2;
  435. cseg = 0;
  436. coff = 2;
  437. TYPE
  438. fontRec =
  439. RECORD
  440. (* FONT DATA RECORD *)
  441. fontVer : BYTE;
  442. (* Font format version number *)
  443. fontRev : BYTE;
  444. (* Font style revision designation *)
  445. nameLen : BYTE;
  446. (* Font name length *)
  447. fontName : ARRAY [1..46] OF CHAR;
  448. (* Font Name (ASCII) *)
  449. fontNull : CHAR;
  450. (* (extra terminating null) *)
  451. fontSign : ARRAY [1..8] OF CHAR;
  452. (* "METAFONT" signature *)
  453. fontSize : LONGINT;
  454. (* Buffer size needed to hold font *)
  455. fontMin : INTEGER;
  456. (* Minimum character code *)
  457. fontMax : INTEGER;
  458. (* Maximum character code *)
  459. ptSizeA : ARRAY [1..2] OF CHAR;
  460. (* Point Size (ASCII) *)
  461. ptSizeB : INTEGER;
  462. (* Point Size (binary) *)
  463. family : INTEGER;
  464. (* Font style family *)
  465. fontClass : INTEGER;
  466. (* Device class *)
  467. fontFlags : INTEGER;
  468. (* Font flags *)
  469. fontColor : ARRAY [1..2] OF LONGINT;
  470. (* Font Color *)
  471. minChar : CHAR;
  472. (* Minimum ASCII character *)
  473. maxChar : CHAR;
  474. (* Maximum ASCII character *)
  475. chWidth : INTEGER;
  476. (* Fixed space character width *)
  477. chHeight : INTEGER;
  478. (* Character height *)
  479. chKern : INTEGER;
  480. (* Fixed space character offset *)
  481. ascent : INTEGER;
  482. (* Ascent *)
  483. decent : INTEGER;
  484. (* Decent *)
  485. leading : INTEGER;
  486. (* Leading *)
  487. fxSpace : INTEGER;
  488. (* Fixed character Spacing *)
  489. chCenter : POINT;
  490. (* Icon or Marker center (X,Y) *)
  491. chAngle : INTEGER;
  492. (* Italicise slant angle *)
  493. chUnder : INTEGER;
  494. (* Recommended txUnder setting *)
  495. chScore : INTEGER;
  496. (* Recommended txScore setting *)
  497. locTbl : LONGINT;
  498. (* offset to locTable *)
  499. ofwdTbl : LONGINT;
  500. (* offset to ofwdTable *)
  501. kernTbl : LONGINT;
  502. (* offset to kernTable *)
  503. sizeTbl : LONGINT;
  504. (* offset to size/rotation table *)
  505. bmapTbl : LONGINT;
  506. (* offset to font bitmap data record*)
  507. rowTbl : LONGINT;
  508. (* offset to bitmap rowTable(s) *)
  509. fontTbl : LONGINT;
  510. (* offset to font image/nodes table *)
  511. fontRsvd : ARRAY [1..59] OF INTEGER;
  512. (*reserved for future use*)
  513. END;
  514. CONST
  515. cFontVer = 0;
  516. (* "GetFontField" Index Definitions *)
  517. cFontName = 2;
  518. cFontSign = 50;
  519. cFontSize = 58;
  520. cFontMin = 62;
  521. cFontMax = 64;
  522. cPtSizeA = 66;
  523. cPtSizeB = 68;
  524. cFamily = 70;
  525. cFontClass = 72;
  526. cFontFlags = 74;
  527. cFontColor = 76;
  528. cMinChar = 84;
  529. cChWidth = 86;
  530. cChHeight = 88;
  531. cChKern = 90;
  532. cAscent = 92;
  533. cDecent = 94;
  534. cLeading = 96;
  535. cFxSpace = 98;
  536. cChCenter = 100;
  537. cChAngle = 104;
  538. cChUnder = 106;
  539. cChScore = 108;
  540. cLocTbl = 110;
  541. cOfwdTbl = 114;
  542. cKernTbl = 118;
  543. cSizeTbl = 122;
  544. cBmapTbl = 126;
  545. cRowTbl = 130;
  546. cFontTbl = 134;
  547. PROCEDURE InitGrafix ( devmode : INTEGER) ;
  548. END m.