home *** CD-ROM | disk | FTP | other *** search
/ Fish 'n' More 2 / fishmore-publicdomainlibraryvol.ii1991xetec.iso / fish / code_examples / cmanual_456 / appendices / contents.doc < prev    next >
Text File  |  1991-01-27  |  9KB  |  485 lines

  1. AMIGA C MANUAL
  2. Version V2.000
  3.  
  4. ---------------
  5. C O N T E N T S
  6. ---------------
  7.  
  8. 0           INTRODUCTION
  9.  
  10. 0.1         INTRODUCTION
  11.  
  12. 0.2         HOW TO COMPILE AND LINK
  13. 0.2.1       SOURCE CODE
  14. 0.2.2       FIRST PHASE OF COMPILATION
  15. 0.2.3       SECOND PHASE OF COMPILATION
  16. 0.2.4       LINKING
  17.  
  18. 0.3         C PROGRAMS
  19. 0.3.1       #INCLUDE
  20. 0.3.2       #DEFINE
  21. 0.3.3       OTHER PRE-PROCESSOR COMMANDS
  22. 0.3.4       FUNCTIONS
  23. 0.3.5       VARIABLES
  24. 0.3.6       STORAGE CLASSES FOR VARIABLES
  25. 0.3.6.1     AUTOMATIC
  26. 0.3.6.2     FORMAL
  27. 0.3.6.3     GLOBAL
  28. 0.3.6.4     EXTERNAL STATIC
  29. 0.3.6.5     INTERNAL STATIC
  30. 0.3.6.6     REGISTER
  31. 0.3.7       POINTERS
  32. 0.3.8       STRUCTURES
  33. 0.3.8.1     HOW TO DECLARE STRUCTURES
  34. 0.3.8.2     HOW TO CHANGE THE STRUCTURE'S FIELDS
  35. 0.3.8.3     POINTERS AND STRUCTURES
  36. 0.3.9       CASTING
  37.  
  38. 0.4         LIBRARIES
  39. 0.4.1       ROM LIBRARIES
  40. 0.4.2       DISK LIBRARIES
  41. 0.4.3       OPEN AND CLOSE LIBRARIES
  42.  
  43. 0.5         MEMORY
  44.  
  45.  
  46.  
  47. 1           SCREENS
  48.  
  49. 1.1         INTRODUCTION
  50.  
  51. 1.2         DIFFERENT TYPES OF SCREENS
  52.  
  53. 1.3         WORKBENCH SCREEN
  54.  
  55. 1.4         CUSTOM SCREENS
  56. 1.4.1       RESOLUTION
  57. 1.4.2       DEPTH
  58. 1.4.3       INTERLACED
  59. 1.4.4       HAM AND EXTRA HALFBRIGHTE
  60. 1.4.5       DUAL PLAYFIELDS
  61. 1.4.6       FONTS
  62. 1.4.7       SIZE AND POSITION
  63. 1.4.8       TITLE
  64. 1.4.9       GADGETS
  65.  
  66. 1.5         INITIALIZE A CUSTOM SCREEN
  67.  
  68. 1.6         OPEN A CUSTOM SCREEN
  69.  
  70. 1.7         SCREEN STRUCTURE
  71.  
  72. 1.8         FUNCTIONS
  73.  
  74. 1.9         EXAMPLES
  75.  
  76.  
  77.  
  78. 2           WINDOWS
  79.  
  80. 2.1         INTRODUCTION
  81.  
  82. 2.2         SPECIAL WINDOWS
  83. 2.2.1       BACKDROP WINDOWS
  84. 2.2.2       BORDERLESS WINDOWS
  85. 2.2.3       GIMMEZEROZERO WINDOWS
  86. 2.2.4       SUPERBITMAP WINDOWS
  87.  
  88. 2.3         SYSTEM GADGETS
  89.  
  90. 2.4         REDRAWING THE WINDOW DISPLAY
  91.  
  92. 2.5         INITIALIZE A WINDOW
  93.  
  94. 2.6         OPEN A WINDOW
  95.  
  96. 2.7         WINDOW STRUCTURE
  97.  
  98. 2.8         OPEN A SUPERBITMAP WINDOW
  99.  
  100. 2.9         MAKE YOUR OWN CUSTOM POINTER
  101.  
  102. 2.10        FUNCTIONS
  103.  
  104. 2.11        EXAMPLES
  105.  
  106.  
  107.  
  108. 3           GRAPHICS
  109.  
  110. 3.1         INTRODUCTION
  111.  
  112. 3.2         LINES TEXT PICTURES
  113.  
  114. 3.3         BORDERS
  115. 3.3.1       THE BORDER STRUCTURE
  116. 3.3.2       COORDINATES
  117.  
  118. 3.4         HOW TO USE THE BORDER STRUCTURE
  119. 3.4         TEXT
  120. 3.4.1       THE INTUITEXT STRUCTURE
  121. 3.4.2       FONTS
  122. 3.4.3       HOW TO USE THE INTUITEXT STRUCTURE
  123.  
  124. 3.5         IMAGES
  125. 3.5.1       IMAGE DATA
  126. 3.5.2       THE IMAGE STRUCTURE
  127. 3.5.3       PLANEPICK
  128. 3.5.4       PLANEONOFF
  129. 3.5.5       HOW TO USE THE IMAGE STRUCTURE
  130.  
  131. 3.6         FUNCTIONS
  132.  
  133. 3.7         EXAMPLES
  134.  
  135.  
  136.  
  137. 4           GADGETS
  138.  
  139. 4.1         INTRODUCTION
  140.  
  141. 4.2         DIFFERENT TYPES OF GADGETS
  142.  
  143. 4.3         CUSTOM GADGETS
  144. 4.3.1       GRAPHICS FOR CUSTOM GADGETS
  145. 4.3.2       POSITION
  146. 4.3.3       SIZE
  147.  
  148. 4.4         INITIALIZE A CUSTOM GADGET
  149.  
  150. 4.5         BOOLEAN GADGET
  151.  
  152. 4.6         STRING/INTEGER GADGET
  153. 4.6.1       STRINGINFO STRUCTURE
  154. 4.6.2       INITIALIZE A STRING/INTEGER GADGET
  155. 4.6.3       USING A STRING/INTEGER GADGET
  156.  
  157. 4.7         PROPORTIONAL GADGET
  158. 4.7.1       PROPINFO STRUCTURE
  159. 4.7.2       INITIALIZE A PROPORTIONAL GADGET
  160.  
  161. 4.8         MONITORING THE GADGETS
  162.  
  163. 4.9         FUNCTIONS
  164.  
  165. 4.10        EXAMPLES
  166.  
  167.  
  168.  
  169. 5           REQUESTERS
  170.  
  171. 5.1         INTRODUCTION
  172.  
  173. 5.2         DIFFERENT TYPES OF REQUESTERS
  174. 5.2.1       SYSTEM REQUESTERS
  175. 5.2.2       APPLICATION REQUESTERS
  176. 5.2.3       DOUBLE-MENU REQUESTERS
  177. 5.3         GRAPHICS FOR REQUESTERS
  178.  
  179. 5.4         POSITION
  180.  
  181. 5.5         REQUESTERS AND GADGETS
  182.  
  183. 5.6         SIMPLE REQUESTERS
  184.  
  185. 5.7         OPEN A REQUESTERS
  186. 5.7.1       INITIALIZE A REQUESTER
  187. 5.7.2       HOW TO ACTIVATE AN APPLICATION REQUESTER
  188.  
  189. 5.8         IDCMP FLAGS
  190.  
  191. 5.9         FUNCTIONS
  192.  
  193. 5.10        EXAMPLES
  194.  
  195.  
  196.  
  197. 6           ALERTS
  198.  
  199. 6.1         INTRODUCTION
  200.  
  201. 6.2         DIFFERENT LEVELS OF WARNINGS 
  202.  
  203. 6.3         HOW TO USE THE DISPLAYALERT() FUNCTION
  204.  
  205. 6.4         EXAMPLES OF STRINGS AND SUBSTRINGS
  206.  
  207. 6.5         FUNCTIONS
  208.  
  209. 6.6         EXAMPLES
  210.  
  211.  
  212.  
  213. 7           MENUS
  214.  
  215. 7.1         INTRODUCTION
  216.  
  217. 7.2         MENU DESIGN
  218.  
  219. 7.3         HOW TO ACCESS MENUS FROM THE KEYBOARD
  220.  
  221. 7.4         MENU ITEMS
  222.  
  223. 7.5         MUTUAL EXCLUDE
  224.  
  225. 7.6         OPEN A MENU
  226. 7.6.1       INITIALIZE A MENU STRUCTURE
  227. 7.6.2       INITIALIZE A MENUITEM STRUCTURE
  228. 7.6.3       HOW TO SUBMIT AND REMOVE A MENU STRIP TO/FROM A WINDOW
  229.  
  230. 7.7         SPECIAL IDCMP FLAGS
  231. 7.7.1       MENUPICK
  232. 7.7.2       MENUVERIFY
  233.  
  234. 7.8         MENU NUMBERS
  235.  
  236. 7.9         FUNCTIONS
  237.  
  238. 7.10        MACROS
  239.  
  240. 7.11        EXAMPLES
  241.  
  242.  
  243.  
  244. 8           IDCMP
  245.  
  246. 8.1         INTRODUCTION
  247.  
  248. 8.2         IDCMP PORTS
  249.  
  250. 8.3         HOW TO RECEIVE IDCMP MESSAGES
  251. 8.3.1       OPEN IDCMP PORTS
  252. 8.3.2       WAIT FOR MESSAGES
  253. 8.3.3       COLLECT MESSAGES
  254. 8.3.4       EXAMINE THE MESSAGE
  255. 8.3.5       REPLY
  256. 8.3.6       EXAMPLE
  257.  
  258. 8.4         IDCMP FLAGS
  259.  
  260. 8.5         FUNCTIONS
  261.  
  262. 8.6         EXAMPLES
  263.  
  264.  
  265.  
  266. 9           MISCELLANEOUS
  267.  
  268. 9.1         INTRODUCTION
  269.  
  270. 9.2         MEMORY
  271.  
  272. 9.2.1       ALLOCATE MEMORY
  273. 9.2.2       DEALLOCATE MEMORY
  274. 9.2.3       REMEMBER MEMORY
  275.  
  276. 9.3         PREFERENCES
  277.  
  278. 9.4         WARNINGS
  279.  
  280. 9.5         DOUBLE CLICK
  281.  
  282. 9.6         TIME
  283.  
  284. 9.7         STYLE
  285. 9.7.1       GADGETS
  286. 9.7.2       REQUESTERS
  287. 9.7.3       MENUS
  288. 9.7.4       MOUSE
  289.  
  290. 9.8         FUNCTIONS
  291.  
  292. 9.9         EXAMPLES
  293.  
  294.  
  295.  
  296. 10          SPRITES
  297.  
  298. 10.1        INTRODUCTION
  299.  
  300. 10.2        LIMITATIONS
  301.  
  302. 10.3        COLOURS
  303.  
  304. 10.4        ACCESS HARDWARE SPRITES
  305. 10.4.1      SPRITE DATA
  306. 10.4.2      SIMPLESPRITE STRUCTURE
  307. 10.4.3      RESERVE A SPRITE
  308. 10.4.4      PLAY WITH THE SPRITE
  309. 10.4.5      FREE THE SPRITE
  310. 10.4.6      PROGRAM STRUCTURE
  311.  
  312. 10.5        TECHNIQUES
  313. 10.5.1      WIDER SPRITES
  314. 10.5.2      MORE COLOURS
  315. 10.5.2.1    15 COLOURED SPRITE DATA
  316. 10.5.2.2    ATTACH SPRITES
  317. 10.5.2.3    MOVE ATTACHED SPRITES
  318. 10.5.3      LEVELS
  319.  
  320. 10.6        FUNCTIONS
  321.  
  322. 10.7        EXAMPLES
  323.  
  324.  
  325.  
  326. 11          AMIGADOS
  327.  
  328. 11.1        INTRODUCTION
  329. 11.1.1      PHYSICAL DEVICES
  330. 11.1.2      VOLUMES
  331. 11.1.3      DIRECTORIES/SUBDIRECTORIES/FILES
  332. 11.1.4      LOGICAL DEVICES
  333.  
  334. 11.2        OPEN AND CLOSE FILES
  335.  
  336. 11.3        READ AND WRITE FILES
  337. 11.3.1      READ()
  338. 11.3.2      WRITE()
  339.  
  340. 11.4        MOVE INSIDE FILES
  341.  
  342. 11.5        FILES AND MULTITASKING
  343.  
  344. 11.6        OTHER USEFUL FUNCTIONS
  345. 11.6.1      CREATE DIRECTORIES
  346. 11.6.2      DELETE FILES AND DIRECTORIES
  347. 11.6.3      RENAME FILES AND DIRECTORIES
  348. 11.6.4      ATTACH COMMENTS TO FILES AND DIRECTORIES
  349. 11.6.5      PROTECT FILES AND DIRECTORIES
  350.  
  351. 11.7        EXAMINE FILES AND DIRECTORIES
  352. 11.7.1      FILEINFOBLOCK AND DATESTAMP STRUCTURE
  353. 11.7.2      EXAMINE()
  354. 11.7.3      4 BYTE BOUNDARY
  355. 11.7.4      EXAMPLE
  356. 11.7.5      EXAMINE FILES/SUBDIRECTORIES IN A DIRECTORY/DEVICE
  357. 11.7.5.1    EXNEXT()
  358. 11.7.5.2    ERROR MESSAGES
  359. 11.7.5.3    EXAMPLE
  360.  
  361. 11.8        FUNCTIONS
  362.  
  363. 11.9        EXAMPLES
  364.  
  365.  
  366.  
  367. 12          LOW LEVEL GRAPHICS ROUTINES
  368.  
  369. 12.1        INTRODUCTION
  370.  
  371. 12.2        CREATE A DISPLAY
  372. 12.2.1      GENERAL INFORMATION
  373. 12.2.1.1    HOW A MONITOR/TV WORK
  374. 12.2.1.2    INTERLACED
  375. 12.2.1.3    HIGH AND LOW RESOLUTION
  376. 12.2.1.4    PIXELS
  377. 12.2.1.5    COLOURS
  378. 12.2.2      DISPLAY ELEMENTS
  379. 12.2.2.1    RASTER
  380. 12.2.2.2    VIEW
  381. 12.2.2.3    VIEWPORT
  382. 12.2.2.4    BITMAP
  383. 12.2.3      CREATE A DISPLAY
  384. 12.2.3.1    VIEW
  385. 12.2.3.1.1  VIEW STRUCTURE
  386. 12.2.3.1.2  PREPARE A VIEW STRUCTURE
  387. 12.2.3.2    VIEWPORTS
  388. 12.2.3.2.1  VIEWPORT STRUCTURE
  389. 12.2.3.2.2  PREPARE A VIEWPORT STRUCTURE
  390. 12.2.3.3    COLORMAP
  391. 12.2.3.3.1  COLORMAP STRUCTURE
  392. 12.2.3.3.2  DECLARE AND INITIALIZE A COLORMAP STRUCTURE
  393. 12.2.3.3.3  SET THE RGB VALUES
  394. 12.2.3.3.4  DEALLOCATE THE COLOURMAP
  395. 12.2.3.4    BITMAP
  396. 12.2.3.4.1  BITMAP STRUCTURE
  397. 12.2.3.4.2  DECLARE AND INITIALIZE A BITMAP STRUCTURE
  398. 12.2.3.4.3  ALLOCATE RASTER
  399. 12.2.3.5    RASINFO
  400. 12.2.3.5.1  RASINFO STRUCTURE
  401. 12.2.3.5.2  DECLARE AND INITIALIZE A RASINFO STRUCTURE
  402. 12.2.3.6    MAKEVPORT()
  403. 12.2.3.7    MRGCOP()
  404. 12.2.3.8    LOADVIEW()
  405. 12.2.4      CLOSE A DISPLAY
  406. 12.2.5      EXAMPLE
  407.  
  408. 12.3        DRAW
  409. 12.3.1      RASTPORT
  410. 12.3.1.1    RASTPORT STRUCTURE
  411. 12.3.1.2    PREPARE A RASTPORT
  412. 12.3.2      DRAWING PENS
  413. 12.3.3      DRAWING MODES
  414. 12.3.4      PATTERNS
  415. 12.3.4.1    LINE PATTERNS
  416. 12.3.4.2    AREA PATTERNS
  417. 12.3.4.3    MULTICOLOURED PATTERNS
  418. 12.3.5      BITPLANE MASK
  419. 12.3.6      DRAW SINGLE PIXELS
  420. 12.3.7      READ SINGLE PIXELS
  421. 12.3.8      POSITION THE CURSOR
  422. 12.3.9      TEXT
  423. 12.3.10     DRAW SINGLE LINES
  424. 12.3.11     DRAW MULTIPLE LINES
  425. 12.3.12     DRAW FILLED RECTANGLES
  426. 12.3.13     FLOOD FILL
  427. 12.3.14     DRAW FILLED AREAS
  428. 12.3.14.1   AREAINFO AND TMPRAS STRUCTURES
  429. 12.3.14.2   AREAMOVE(), AREADRAW() AND AREAEND()
  430. 12.3.14.3   TURN OFF THE OUTLINE FUNCTION
  431. 12.3.14.4   EXAMPLE
  432. 12.3.15     SET THE RASTER TO A SPECIFIC COLOUR
  433. 12.3.16     BLITTER
  434. 12.3.16.1   CLEAR RECTANGULAR MEMORY AREAS
  435. 12.3.16.2   SCROLL A RECTANGULAR AREA
  436. 12.3.16.3   COPY RECTANGULAR AREAS
  437.  
  438. 12.4        FUNCTIONS
  439.  
  440. 12.5        EXAMPLES
  441.  
  442.  
  443.  
  444. 13          VSPRITES
  445.  
  446. 13.1        INTRODUCTION
  447.  
  448. 13.2        HOW VSPRITES WORK
  449. 13.2.1      LIMITATIONS
  450. 13.2.2      HOW TO AVOID THE LIMITATIONS
  451.  
  452. 13.3        CREATE VSPRITES
  453. 13.3.1      VSPRITE DATA
  454. 13.3.2      VSPRITE STRUCTURE
  455. 13.3.3      COLOUR TABLE
  456. 13.3.4      GELSINFO STRUCTURE
  457. 13.3.5      INITIALIZE THE GELSINFO STRUCTURE
  458. 13.3.6      INITIALIZE THE VSPRITE STRUCTURE
  459. 13.3.7      ADD THE VSPRITE TO THE VSPRITE LIST
  460. 13.3.8      PREPARE THE GEL SYSTEM
  461. 13.3.9      CHANGE THE VSPRITE
  462. 13.3.10     REMOVE VSPRITES
  463.  
  464. 13.4        A COMPLETE EXAMPLE
  465.  
  466. 13.5        FUNCTIONS
  467.  
  468. 13.6        EXAMPLES
  469.  
  470.  
  471.  
  472. 14          HINTS AND TIPS
  473.  
  474. 14.1        INTRODUCTION
  475.  
  476. 14.2        NTSC VERSUS PAL
  477. 14.2.1      HOW TO WRITE PROGRAMS THAT WILL FIT BOTH SYSTEMS
  478. 14.2.2      NTSC OR PAL?
  479.  
  480. 14.3        PROGRAMS RUNNING UNDER WORKBENCH
  481.  
  482. 14.4        CHECK IF THE PROGRAM WAS STARTED FROM CLI OR WORKBENCH
  483.  
  484. 14.5        EXAMPLES
  485.