home *** CD-ROM | disk | FTP | other *** search
/ Crawly Crypt Collection 1 / crawlyvol1.bin / program / books / errata1 / errata1.txt < prev    next >
Text File  |  1993-10-31  |  13KB  |  378 lines

  1. The Atari® Compendium
  2. by Scott Sanders
  3. Errata Sheet: 11/1/1993
  4.  
  5. 1.3 (The 260/520/1040ST)
  6. The original ST computers contained a 320x200x16 mode, a 640x200x4 mode, and a 
  7. 640x400x2 mode (not 640x400x1 as stated).
  8.  
  9. 1.5
  10. The MegaSTe has three serial ports, not two (one is shared with the LAN).
  11.  
  12. The TT has a 1280x960x2 mode (not 1280x960x1).
  13.  
  14. 1.6
  15. The Falcon030 may have a 2.5" IDE drive installed, not a half-height drive as stated.
  16.  
  17. 2.3 (Overview)
  18. GEMDOS derives its heritage from CPM 68k (not CPM 86k).
  19.  
  20. 2.4 (GEMDOS Directories)
  21. Each sub-directory contains a directory named '..' which refers to its parent directory. In 
  22. addition, each sub-directory contains a directory named '.' which refers to itself. The root 
  23. directory contains neither of these files.
  24.  
  25. 2.5 (Disk Transfer Address)
  26. The DTA structure is never defined. It is as follows:
  27.  
  28. typedef struct _dta
  29. {
  30.     BYTE        d_reserved[21];
  31.     UCHAR    d_attrib;
  32.     UWORD    d_time;
  33.     UWORD    d_date;
  34.     ULONG    d_length;
  35.     BYTE        d_fname[14];
  36. } DTA;
  37.  
  38. 2.17 (Signal Table - SIGABRT)
  39. The last sentence in this table entry should be "It is unrecommended that you catch this 
  40. signal."
  41.  
  42. 2.23 (GEMDOS Time & Date Functions)
  43. TOS 1.02 is incorrectly referred to as 1.2. Any references to TOS 1.2 should be considered 
  44. references to TOS 1.02, likewise with TOS 1.04 or TOS 1.06.
  45.  
  46. 2.38 (Dcntl() - FS_INSTALL entry)
  47. The structure fs_descr is defined without the portability macros. 'WORD' should be 
  48. substituted for 'short' and 'LONG' should be substituted for 'long'.
  49.  
  50. 2.51 (Fchmod() - table)
  51. The definition 'S_IRUSER' should be 'S_IRUSR'.
  52.  
  53. 2.54-2.58 (Fcntl() - table)
  54. Several constant definitions for the cmd parameter of Fcntl() were omitted. The correct 
  55. constants are (note: TIOCSTOP was documented, but the constant listed was incorrect):
  56.  
  57.             Definition        Constant
  58.             F_SETLKW            0x0007
  59.             TIOCSTOP            0x5409
  60.             TIOCGXKEY            0x540D
  61.             TIOCSXKEY            0x540E
  62.             PSETFLAGS            0x5404
  63.             PGETFLAGS            0x5405
  64.             PTRACEGFLAGS        0x5007
  65.             PTRACESFLAGS        0x5006
  66.             PTRACEGO            0x5008
  67.             PTRACESTEP        0x500A
  68.             PLOADINFO            0x500C
  69.             SHMSETBLK            0x4E01
  70.             SHMGETBLK            0x4E00
  71.  
  72. 2.77-2.78 (Fsfirst() and Fsnext())
  73. The DTA structure was never defined. See the note for page 2.5 above.
  74.  
  75. 2.87 (Pexec())
  76. Pexec() mode 6 is available as of 0.15.
  77.  
  78. 3.4 (System Startup)
  79. The Fuji logo and hard disk spin-up delay occurs on all TOS versions past 2.06, not just 
  80. 2.06 and 3.06 as is stated.
  81.  
  82. 3.8 (Searching for a Cookie)
  83. The example code references the cookie structure members 'cookie' and 'value' as 'c' and 
  84. 'v' rather than by their full name.
  85.  
  86. 3.11 (_MCH cookie)
  87. The ST Book '_MCH' cookie contains a value of 0x00010008.
  88.  
  89. 3.12 (FSMC cookie)
  90. The value field of the 'FSMC' cookie contains a pointer to a structure with information 
  91. about the current version of GDOS as follows:
  92.  
  93. typedef struct _gdos_info
  94. {
  95.     ULONG    gdos_type;
  96.     UWORD    gdos_version;
  97.     WORD        gdos_quality;
  98. } GDOS_INFO;
  99.  
  100. The structure member gdos_type will be either '_FSM' for FSMGDOS, '_FNT' for 
  101. FONTGDOS, or '_SPD' for SpeedoGDOS.
  102.  
  103. The structure member gdos_version contains the currently installed version of GDOS with 
  104. the major version number being in the high byte and the minor version being in the low 
  105. byte.
  106.  
  107. The structure member gdos_quality is initialized to 0xFFFF to indicate that printouts will 
  108. be processed at the 'default' quality setting. Applications may change this value to 0x0000 
  109. to force GDOS drivers to output in DRAFT mode or 0x0001 to force GDOS drivers to 
  110. output in FINAL mode. The variable should be restored to 0xFFFF after each print.
  111.  
  112. 3.13 (BIOS Devices)
  113. The Mega STe supports devices 6, 7, and 9 as Modem 1, Modem 2, and Serial 2 
  114. respectively. Reliable use of BIOS serial devices other than the ST compatible device #1 
  115. on a Falcon030 requires the use of the TSR program "FPATCH2.PRG" (available from 
  116. Atari Developer Support) or a TOS version > 4.04.
  117.  
  118. 3.31 (Setexc() - table)
  119. The vector number for TRAP #1 (GEMDOS) is 0x21.
  120.  
  121. 4.16 (The Serial Port)
  122. No mention was made of the Mega STe's serial ports. They bear the same functionality as 
  123. serial ports on the TT except that there is no Serial 1 port on a Mega STe.
  124.  
  125. The Falcon030 contains an MFP chip, however, it is not used to control any of the serial 
  126. devices.
  127.  
  128. 4.23 (Bconmap())
  129. The Falcon030 requires "FPATCH2.PRG" or an installed TOS version greater than 4.04 
  130. for Bconmap() to work as expected.
  131.  
  132. 4.xx (DSP functions)
  133. Most of the DSP functions contain an incorrect function opcode in the 'Binding' section of 
  134. the function reference. The correct opcode for all DSP functions is properly listed in the 
  135. 'Opcode' section, however.
  136.  
  137. 4.33 (Dosound())
  138. Dosound(-1) returns a pointer to the sound block of the currently playing sound or NULL 
  139. if no sound is currently being played. This feature is broken in MultiTOS 1.00-1.08.
  140.  
  141. 4.58 (EsetGray())
  142. Mode 0 of EsetGray() causes the low 12 bits of a palette entry to be interpreted as a TT 
  143. color. Mode 1 causes the low eight bits of a palette entry to be interpreted as a gray value 
  144. between 0-255.
  145.  
  146. 4.59 (EsetPalette())
  147. The correct binding for EsetPalette() is:
  148.  
  149.         pea        palette
  150.         move.w    count,-(sp)
  151.         move.w    start,-(sp)
  152.         move.w    #$54,-(sp)
  153.         trap        #14
  154.         lea        10(sp),sp
  155.  
  156. 4.61 (Flopfmt())
  157. buf should be a word-aligned pointer to a buffer large enough to hold one complete track 
  158. (not sector as stated).
  159.  
  160. 4.74 (Kbrate())
  161. The correct binding for Kbrate() is:
  162.  
  163.         move.w    rate,-(sp)
  164.         move.w    delay,-(sp)
  165.         move.w    #$23,-(sp)
  166.         trap        #14
  167.         addq.l    #6,sp
  168.  
  169. 4.80 (Offgibit())
  170. Offgibit() bit #7 toggles SCC A between the Serial 2 and LAN ports on a TT.
  171.  
  172. 4.81 (Ongibit())
  173. For each bit of mask that is set, that bit will be toggled.
  174.  
  175. 4.86 (Rsconf())
  176. Rsconf() with a speed parameter of -2 will return the last set baud rate on TOS 1.06 or 
  177. TOS 1.04 with "TOS14FX2.PRG".
  178.  
  179. 4.92 (Setscreen())
  180. If any parameter of Setscreen() is -1, then the value is left unchanged.
  181.  
  182. 4.94 (Sndstatus())
  183. Sndstatus() is available when bit #2 of the '_SND' cookie is set.
  184.  
  185. 4.96 (Soundcmd() - table)
  186. The sample rates generated by using a TT compatible prescale value with SETPRESCALE 
  187. are incorrectly identified in MHz rather than KHz.
  188.  
  189. 4.97 (Supexec())
  190. The function pointer taken by Supexec() was not properly prototyped. Supexec() takes a 
  191. pointer to a function accepting no arguments and returning a LONG.
  192.  
  193. 4.99 (VgetRGB())
  194. VgetRGB() is available when the '_VDO' cookie contains a value of 0x00030000 or higher.
  195.  
  196. 4.100 (VsetMask())
  197. The opcode for VsetMask() is 92 (0x5C).
  198.  
  199. 4.101 (VsetMode())
  200. Vsetmode() should be VsetMode(). In addition, a value of -1 for the mode parameter will 
  201. return the current mode setting.
  202.  
  203. 5.10 (The IKBD Controller - Kbdvbase())
  204. The chain of events that occurs when an IKBD event is generated is incorrectly 
  205. documented. When an interrupt occurs on either 6850 chip (IKBD or MIDI), the following 
  206. chain of events happen:
  207.  
  208. 1. The system interrupt handler installed in MFP #4 is called. This routine determines 
  209. which 6850 caused the interrupt.
  210.  
  211. 2. If the MIDI 6850 caused the interrupt, midisys() is called immediately. midisys() checks 
  212. the MIDI control register for either an error condition or a data byte. If a data byte is 
  213. available, it is placed in the low byte of d0 and sent to midivec(). If an error occurred, 
  214. vmiderr() is called.
  215.  
  216. 3. If the Keyboard 6850 generated the interrupt, ikbdsys() is called immediately. The 
  217. ikbdsys() handler checks for an error condition or the availability of a data byte. If an error 
  218. condition exists, vkbderr() is called. Otherwise, the ikbdsys() handler reads data byte(s) as 
  219. necessary to form a complete 'packet' depending on what generated the interrupt (joystick, 
  220. mouse, or keyboard).
  221.  
  222. 4. If the ikbdsys() handler receives a keyboard make or break code, it handles the packet 
  223. internally. Otherwise, the address of the packet is passed to statvec(), mousevec(), 
  224. clockvec(), or joyvec().
  225.  
  226. Handler vectors may be altered by modifying the structure whose address is returned by 
  227. Kbdvbase() or by using Mfpint() as appropriate.
  228.  
  229. 5.22 (Falcon030 Video Modes)
  230. The Falcon030 is capable of producing a wide variety of video modes. The table represents 
  231. those accessible from the Desktop only.
  232.  
  233. 6.5 (Applications)
  234. The sample code contains an error. Replace the lines:
  235.  
  236. if(_AESglobal[0] == -1)
  237.     menu_register( ap_id, menu_title);
  238.  
  239. with:
  240.  
  241. if(_AESglobal[1] == -1)
  242.     menu_register( ap_id, menu_title);
  243.  
  244. 6.30 (The Desktop Window)
  245. Calling wind_get( 0, WF_WORKXYWH, ...) will return the size of the desktop work area 
  246. minus the menu bar (not WF_PREVXYWH as stated).
  247.  
  248. 6.37 (_aes)
  249. The _aes binding should list the arrays _addrin and _addrout as being of type '.ds.l', not 
  250. '.ds.w'.
  251.  
  252. 6.51 (appl_init())
  253. appl_init() may return a value of -1 which indicates that the AES failed to initialize the 
  254. application. GEM applications may not make any AES or VDI calls unless appl_init() 
  255. succeeds.
  256.  
  257. 6.53 (appl_search())
  258. The type parameter will be filled in with the value 10 to indicate the current system shell.
  259.  
  260. 6.53 (appl_tplay()/appl_trecord)
  261. These functions require a patch (available from Atari) to work under TOS 1.0.
  262.  
  263. 6.59 (evnt_button())
  264. evnt_button( 0x101, 0x03, 0x00, ... ) may be used to wait for either the left or right mouse 
  265. button. This method works with evnt_multi() as well.
  266.  
  267. 6.65 (evnt_mesag() - table)
  268. The AC_OPEN message contains the menu identifier returned by menu_register() in 
  269. msg[4]. msg[3] is unused.
  270.  
  271. 6.73 (form_alert())
  272. Each line of an alert may be as many as 30 characters long (not 40 as is stated).
  273.  
  274. 6.99 (menu_attach())
  275. If you remove a menu with menu_bar(), all attachments are cleared and must be reset 
  276. upon reenabling the menu.
  277.  
  278. The MENU structure is missing a member. It should be defined as follows:
  279.  
  280. typedef struct _menu
  281. {
  282.     OBJECT    *mn_tree;
  283.     WORD        mn_menu;
  284.     WORD        mn_item;
  285.     WORD        mn_scroll;
  286.     WORD        mn_keystate;
  287. } MENU;
  288.  
  289. mn_keystate is unused with menu_attach() but is used to return the current keyboard state 
  290. in menu_popup().
  291.  
  292. 6.124 (rsrc_rcfix())
  293. rsrc_rcfix() is available as of AES version 4.0 and higher.
  294.  
  295. 6.136 (shel_read())
  296. The last sentence of the 'Parameters' section should be: "The first BYTE of the command 
  297. line indicates the length of the string which actually begins at &tail[1]."
  298.  
  299. 6.138 (shel_write() - table)
  300. shel_write() mode 1 should have a wisgr paramater of 0 to launch a TOS application or a 
  301. wisgr parameter of 1 to launch a GEM application.
  302.  
  303. 6.145 (wind_create() - table)
  304. The SMALLER attribute shows the correct mask but an incorrect bit. The correct bit is 14.
  305.  
  306. 6.156 (wind_update())
  307. The first sentence of page 6.156 should read:
  308.  
  309. As of AES version 4.0, you may logically OR a mask of 0x0100 to either BEG_UPDATE or 
  310. BEG_MCTRL.
  311.  
  312. 7.4 (VDI Device Identification Numbers - table)
  313. The "MEMORY.SYS" driver should always be assigned to device #61.
  314.  
  315. 7.35 (v_clswk())
  316. v_clswk() closes a physical workstation.
  317.  
  318. 7.60 (v_opnvwk())
  319. v_opnvwk() opens a virtual workstation.
  320.  
  321. 7.113 (vqt_name())
  322. As of SpeedoGDOS version 4.20, this call will return the a modified font index for GDOS 
  323. bitmap fonts to avoid conflicting with outline font indexes. The index will be added to 5000 
  324. for bitmap fonts.
  325.  
  326. 11.13 (Illustration)
  327. The version of Pagestream shown is actually 2.2, not 2.1.
  328.  
  329. 11.15 (The File Menu)
  330. If a menu item 'Recall' appears, it should appear between the 'Open' command(s) and 
  331. 'Save' command(s).
  332.  
  333. 11.23 (Application Software)
  334. The '_IDT' cookie does not contain any information that could be used to determine a 
  335. nation's currency symbol. Use the '_AKP' cookie if present (or the OSHEADER if not) to 
  336. determine the country for which this version of TOS was compiled (and thus the correct 
  337. symbol).
  338.  
  339. Applications (like entertainment software) should place any data/configuration files in a 
  340. sub-directory of the application folder. Only directly reveal those files which the user may 
  341. have to launch or manipulate.
  342.  
  343. B.6 (Memory Map)
  344. The SCC vectors are present on a Mega STe.
  345.  
  346. B.7 (System Variables)
  347. The availability of system variables depends on the installed TOS version, not the 
  348. computer as might be implied by the layout of the table. The columns next to system 
  349. variables were shaded based upon the release of TOS which is most often associated with 
  350. that computer as follows:
  351.  
  352.                 Computer        TOS Version
  353.                 ST            1.00 or 1.04
  354.                 Mega ST        1.02
  355.                 STe            1.06
  356.                 Mega STe        2.0x
  357.                 TT030        3.0x
  358.                 Falcon030        4.0x
  359.  
  360. B.15 (_longframe)
  361. This system variable is valid on an ST as well (it will simply contain 0).
  362.  
  363. B.15 (kcl_hook)
  364. This vector is jumped through with the keycode contained in the low byte of d0.
  365.  
  366. B.16 (0x00E00000)
  367. The operating system ROM's moved to this address as of TOS 1.06.
  368.  
  369. B.16 (0x00FC0000)
  370. This block of memory extends to 0x00FEFFFF, not FF7FFFF. The memory between 
  371. 0x00FF0000 and 0xFF7FFF is reserved for the operating system.
  372.  
  373. B.30 (MFP)
  374. The MFP is present on a Falcon, however it is not used for serial communications.
  375.  
  376. C.6 (Image Compression)
  377. .IMG files do not always contain a vertical replication count at the beginning of every 
  378. scanline.