home *** CD-ROM | disk | FTP | other *** search
/ Crawly Crypt Collection 1 / crawlyvol1.bin / program / books / errata1 / errata1.stw (.txt) next >
Atari Works Document  |  1993-10-31  |  32KB  |  441 lines

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