home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Misc / CBMDevKit1.dms / CBMDevKit1.adf / tutorials.lha / tutorials / V40_Release_Notes < prev   
Encoding:
Text File  |  1993-11-17  |  55.8 KB  |  1,351 lines

  1.  
  2.             V40 Kickstart Release Notes
  3.  
  4.    ************************************************************************
  5.    *                                      *
  6.    *                COPYRIGHTS                  *
  7.    *                                      *
  8.    *           UNLESS OTHERWISE NOTED, ALL FILES ARE          *
  9.    *                                      *
  10.    *  Copyright (c) 1985-1993 Commodore-Amiga, Inc.  All Rights Reserved  *
  11.    *                                      *
  12.    ************************************************************************
  13.  
  14.  
  15.    ************************************************************************
  16.    *                                      *
  17.    *                COPYRIGHTED DEVELOPER MATERIALS                *
  18.    *                                      *
  19.    ************************************************************************
  20.  
  21.    THIS SOFTWARE AND INFORMATION IS COPYRIGHTED.
  22.  
  23.    THIS SOFTWARE AND INFORMATION MAY NOT BE REDISTRIBUTED, DISCLOSED,
  24.    OR DUPLICATED, IN WHOLE OR IN PART, IN ANY MANNER OTHER THAN AS
  25.    SPECIFIED IN A SIGNED AGREEMENT WITH COMMODORE.
  26.  
  27.    ************************************************************************
  28.    *                                      *
  29.    *                DISCLAIMER                  *
  30.    *                                      *
  31.    *   THIS SOFTWARE AND INFORMATION IS PROVIDED "AS IS".          *
  32.    *   NO REPRESENTATIONS OR WARRANTIES ARE MADE WITH RESPECT TO THE      *
  33.    *   ACCURACY, RELIABILITY, PERFORMANCE, CURRENTNESS, OR OPERATION      *
  34.    *   OF THIS SOFTWARE AND INFORMATION, AND ALL USE IS AT YOUR OWN RISK. *
  35.    *   NEITHER COMMODORE NOR THE AUTHORS ASSUME ANY RESPONSIBILITY OR      *
  36.    *   LIABILITY WHATSOEVER WITH RESPECT TO YOUR USE OF THIS SOFTWARE      *
  37.    *   AND INFORMATION.                              *
  38.    *                                      *
  39.    ************************************************************************
  40.  
  41.  
  42.  
  43.                 AMIGA KICKSTART V40.65
  44.  
  45.  
  46. A3000:
  47.  
  48. Building kickstart 40.65 from BuildList <A3000> : 03-Nov-93 17:00:56
  49.  
  50.             exec 40.10   @ $F80000-$F837D8 Size:  14296  (15.7.93)
  51.           layers 40.1    @ $F837D8-$F8698C Size:  12724  (15.2.93)
  52.           keymap 40.4    @ $F8698C-$F8760C Size:   3200  (12.3.93)
  53.          mathffp 40.1    @ $F8760C-$F87AA8 Size:   1180  (16.3.93)
  54.         scsidisk 40.8    @ $F87AA8-$F8A79C Size:  11508  (3.11.93)
  55.            audio 37.10   @ $F8A79C-$F8B83C Size:   4256  (26.4.91)
  56.        battclock 39.3    @ $F8B83C-$F8C1A8 Size:   2412  (20.4.92)
  57.          battmem 39.2    @ $F8C1A8-$F8C38C Size:    484  (6.3.92)
  58.         rawinput 40.1    @ $F8C38C-$F8D9C0 Size:   5684  (8.3.93)
  59.            wbtag 39.1    @ $F8D9C0-$F8DA84 Size:    196  (20.4.92)
  60.      con-handler 40.2    @ $F8DA84-$F90248 Size:  10180  (12.5.93)
  61.          console 40.2    @ $F90248-$F93ECC Size:  15492  (5.3.93)
  62.             misc 37.1    @ $F93ECC-$F93F7C Size:    176  (8.1.91)
  63.              dos 40.3    @ $F93F7C-$F9DB88 Size:  39948  (1.4.93)
  64.            bonus 40.1    @ $F9DB88-$F9DC88 Size:    256  (15.2.93)
  65.               fs 40.1    @ $F9DC88-$FA3C28 Size:  24480  (15.2.93)
  66.         graphics 40.24   @ $FA3C28-$FBCCB4 Size: 102540  (18.5.93)
  67.             icon 40.1    @ $FBCCB4-$FBF0E4 Size:   9264  (15.2.93)
  68.            strap 40.1    @ $FBF0E4-$FBFFFC Size:   3864  (8.3.93)
  69.    Kickety-Split ------- @ $FC0000-$FC0008 Size:     12 bytes skipped
  70.          utility 40.1    @ $FBFFFC-$FC09C4 Size:   2504  (10.2.93)
  71.       filesysres 40.1    @ $FC09C4-$FC0B64 Size:    416  (15.2.93)
  72.  mathieeesingbas 40.4    @ $FC0B64-$FC0E50 Size:    748  (16.3.93)
  73.            potgo 37.4    @ $FC0E50-$FC0F88 Size:    312  (28.1.91)
  74.              ram 39.4    @ $FC0F88-$FC3400 Size:   9336  (9.8.92)
  75.             disk 37.2    @ $FC3400-$FC3748 Size:    840  (21.4.91)
  76.           ramlib 40.2    @ $FC3748-$FC3B6C Size:   1060  (5.3.93)
  77.         bootmenu 40.5    @ $FC3B6C-$FC517C Size:   5648  (17.3.93)
  78.            shell 40.2    @ $FC517C-$FC965C Size:  17632  (4.3.93)
  79.            timer 39.4    @ $FC965C-$FCA448 Size:   3564  (29.7.92)
  80.        expansion 40.2    @ $FCA448-$FCAFEC Size:   2980  (9.3.93)
  81.        trackdisk 40.1    @ $FCAFEC-$FCCCF4 Size:   7432  (12.3.93)
  82.         ramdrive 39.35   @ $FCCCF4-$FCD2E8 Size:   1524  (21.5.92)
  83.        intuition 40.85   @ $FCD2E8-$FE6C88 Size: 104864  (5.5.93)
  84.         gadtools 40.4    @ $FE6C88-$FEC81C Size:  23444  (24.5.93)
  85.               wb 40.5    @ $FEC81C-$FFDC24 Size:  70664  (24.5.93)
  86.              cia 39.1    @ $FFDC24-$FFE014 Size:   1008  (10.3.92)
  87.  
  88. Build of kickstart 40.65 completed at : 03-Nov-93 17:01:32
  89.  
  90.  
  91. A1200:
  92.  
  93. Building kickstart 40.65 from BuildList <A1200> : 03-Nov-93 17:05:12
  94.  
  95.             exec 40.10   @ $F80000-$F837B8 Size:  14264  (15.7.93)
  96.        expansion 40.2    @ $F837B8-$F84290 Size:   2776  (9.3.93)
  97.  mathieeesingbas 40.4    @ $F84290-$F85134 Size:   3748  (16.3.93)
  98.   graphics_aa_nt 40.24   @ $F85134-$F9E5B8 Size: 103556  (18.5.93)
  99.              dos 40.3    @ $F9E5B8-$FA81C4 Size:  39948  (1.4.93)
  100.               fs 40.1    @ $FA81C4-$FAE164 Size:  24480  (15.2.93)
  101.          console 40.2    @ $FAE164-$FB1DE8 Size:  15492  (5.3.93)
  102.           layers 40.1    @ $FB1DE8-$FB4F9C Size:  12724  (15.2.93)
  103.             a300 40.8    @ $FB4F9C-$FB792C Size:  10640  (3.11.93)
  104.      con-handler 40.2    @ $FB792C-$FBA0F0 Size:  10180  (12.5.93)
  105.         bootmenu 40.5    @ $FBA0F0-$FBB700 Size:   5648  (17.3.93)
  106.            audio 37.10   @ $FBB700-$FBC7A0 Size:   4256  (26.4.91)
  107.          cardres 40.4    @ $FBC7A0-$FBD384 Size:   3044  (4.5.93)
  108.          utility 40.1    @ $FBD384-$FBDD40 Size:   2492  (10.2.93)
  109.        battclock 39.3    @ $FBDD40-$FBE6AC Size:   2412  (20.4.92)
  110.         carddisk 40.1    @ $FBE6AC-$FBEFDC Size:   2352  (12.2.93)
  111.             disk 37.2    @ $FBEFDC-$FBF324 Size:    840  (21.4.91)
  112.          mathffp 40.1    @ $FBF324-$FBF7C0 Size:   1180  (16.3.93)
  113.              cia 39.1    @ $FBF7C0-$FBFBB0 Size:   1008  (10.3.92)
  114.            wbtag 39.1    @ $FBFBB0-$FBFC74 Size:    196  (20.4.92)
  115.            potgo 37.4    @ $FBFC74-$FBFDAC Size:    312  (28.1.91)
  116.             misc 37.1    @ $FBFDAC-$FBFE5C Size:    176  (8.1.91)
  117.       filesysres 40.1    @ $FBFE5C-$FBFFFC Size:    416  (15.2.93)
  118.    Kickety-Split ------- @ $FC0000-$FC0008 Size:     12 bytes skipped
  119.           ramlib 40.2    @ $FBFFFC-$FC042C Size:   1072  (5.3.93)
  120.         ramdrive 39.35   @ $FC042C-$FC0A20 Size:   1524  (21.5.92)
  121.            strap 40.1    @ $FC0A20-$FC1938 Size:   3864  (8.3.93)
  122.            timer 39.4    @ $FC1938-$FC2724 Size:   3564  (29.7.92)
  123.           keymap 40.4    @ $FC2724-$FC33A4 Size:   3200  (12.3.93)
  124.         rawinput 40.1    @ $FC33A4-$FC49D8 Size:   5684  (8.3.93)
  125.        trackdisk 40.1    @ $FC49D8-$FC66E0 Size:   7432  (12.3.93)
  126.             icon 40.1    @ $FC66E0-$FC8B10 Size:   9264  (15.2.93)
  127.              ram 39.4    @ $FC8B10-$FCAF88 Size:   9336  (9.8.92)
  128.            shell 40.2    @ $FCAF88-$FCF468 Size:  17632  (4.3.93)
  129.        intuition 40.85   @ $FCF468-$FE8E08 Size: 104864  (5.5.93)
  130.         gadtools 40.4    @ $FE8E08-$FEE99C Size:  23444  (24.5.93)
  131.               wb 40.5    @ $FEE99C-$FFFDA4 Size:  70664  (24.5.93)
  132.          battmem 39.2    @ $FFFDA4-$FFFF88 Size:    484  (6.3.92)
  133.  
  134. Build of kickstart 40.65 completed at : 03-Nov-93 17:05:50
  135.  
  136.  
  137. A4000:
  138.  
  139. Building kickstart 40.65 from BuildList <A4000> : 03-Nov-93 17:06:28
  140.  
  141.             exec 40.10   @ $F80000-$F837C0 Size:  14272  (15.7.93)
  142.           layers 40.1    @ $F837C0-$F86974 Size:  12724  (15.2.93)
  143.              cia 39.1    @ $F86974-$F86D64 Size:   1008  (10.3.92)
  144.            strap 40.1    @ $F86D64-$F87C7C Size:   3864  (8.3.93)
  145.            a1000 40.8    @ $F87C7C-$F8A5E8 Size:  10604  (3.11.93)
  146.         bootmenu 40.5    @ $F8A5E8-$F8BBF8 Size:   5648  (17.3.93)
  147.        battclock 39.3    @ $F8BBF8-$F8C564 Size:   2412  (20.4.92)
  148.         ramdrive 39.35   @ $F8C564-$F8CB58 Size:   1524  (21.5.92)
  149.         rawinput 40.1    @ $F8CB58-$F8E18C Size:   5684  (8.3.93)
  150.             disk 37.2    @ $F8E18C-$F8E4D4 Size:    840  (21.4.91)
  151.      con-handler 40.2    @ $F8E4D4-$F90C98 Size:  10180  (12.5.93)
  152.          console 40.2    @ $F90C98-$F9491C Size:  15492  (5.3.93)
  153.            potgo 37.4    @ $F9491C-$F94A54 Size:    312  (28.1.91)
  154.              dos 40.3    @ $F94A54-$F9E660 Size:  39948  (1.4.93)
  155.            bonus 40.1    @ $F9E660-$F9E760 Size:    256  (15.2.93)
  156.               fs 40.1    @ $F9E760-$FA4700 Size:  24480  (15.2.93)
  157.   graphics_aa_nt 40.24   @ $FA4700-$FBDB84 Size: 103556  (18.5.93)
  158.              ram 39.4    @ $FBDB84-$FBFFFC Size:   9336  (9.8.92)
  159.    Kickety-Split ------- @ $FC0000-$FC0008 Size:     12 bytes skipped
  160.            timer 39.4    @ $FBFFFC-$FC0DF4 Size:   3576  (29.7.92)
  161.            audio 37.10   @ $FC0DF4-$FC1E94 Size:   4256  (26.4.91)
  162.       filesysres 40.1    @ $FC1E94-$FC2034 Size:    416  (15.2.93)
  163.            wbtag 39.1    @ $FC2034-$FC20F8 Size:    196  (20.4.92)
  164.          mathffp 40.1    @ $FC20F8-$FC2594 Size:   1180  (16.3.93)
  165.             icon 40.1    @ $FC2594-$FC49C4 Size:   9264  (15.2.93)
  166.           ramlib 40.2    @ $FC49C4-$FC4DE8 Size:   1060  (5.3.93)
  167.             misc 37.1    @ $FC4DE8-$FC4E98 Size:    176  (8.1.91)
  168.  mathieeesingbas 40.4    @ $FC4E98-$FC5D3C Size:   3748  (16.3.93)
  169.            shell 40.2    @ $FC5D3C-$FCA21C Size:  17632  (4.3.93)
  170.           keymap 40.4    @ $FCA21C-$FCAE9C Size:   3200  (12.3.93)
  171.        expansion 40.2    @ $FCAE9C-$FCB9CC Size:   2864  (9.3.93)
  172.        trackdisk 40.1    @ $FCB9CC-$FCD6D4 Size:   7432  (12.3.93)
  173.          utility 40.1    @ $FCD6D4-$FCE090 Size:   2492  (10.2.93)
  174.        intuition 40.85   @ $FCE090-$FE7A30 Size: 104864  (5.5.93)
  175.         gadtools 40.4    @ $FE7A30-$FED5C4 Size:  23444  (24.5.93)
  176.               wb 40.5    @ $FED5C4-$FFE9CC Size:  70664  (24.5.93)
  177.          battmem 39.2    @ $FFE9CC-$FFEBB0 Size:    484  (6.3.92)
  178.  
  179. Build of kickstart 40.65 completed at : 03-Nov-93 17:07:03
  180.  
  181.  
  182. The following notes pertain to differences between Kickstarts 39.106
  183. (Release 3.0) and 40.65 (Release 3.1):
  184.  
  185. These notes do not include the change notes for the CD32 modules cd.device,
  186. lowlevel.library, or nonvolatile.library since these are new subsystems.
  187. See the autodocs for these new subsystems for more information.
  188. Lowlevel.library and nonvolatile.library are expected to be provided
  189. in disk-loadable library on Workbench 3.1.
  190.  
  191. Changed:
  192.  
  193.     bonus 40.1
  194.     bootmenu 40.5
  195.     carddisk.device 40.1
  196.     cardres 40.3
  197.     console.device 40.2
  198.     con-handler 40.2
  199.     dos 40.3
  200.     exec 40.10
  201.     expansion 40.2
  202.     filesysres 40.1
  203.     fs/ffs 40.1
  204.     gadtools 40.4
  205.     graphics 40.24
  206.     icon 40.1
  207.     intuition 40.85
  208.     keymap    40.4
  209.     layers 40.1
  210.     mathffp 40.1
  211.     mathieeesingbas 40.4
  212.     ramlib 40.2
  213.     rawinput 40.1
  214.     scsidisk 40.8
  215.     shell 40.2
  216.     strap 40.1
  217.     trackdisk 40.1
  218.     utility 40.1
  219.     wb 40.5
  220.  
  221.  
  222. Details follow:
  223.  
  224.  
  225. bonus V40.1 
  226.  
  227.     - Bumped version to V40.  (40.1)
  228.  
  229.  
  230. bootmenu 40.5
  231.  
  232.     -    Fixed bug where the chip type mutual exclude gadget was being
  233.     displayed even on pre-ECS machines.  (39.20)
  234.  
  235.     -    Bumped version to V40.  (40.2)
  236.  
  237.     -    When it brings up the "Expansion Board Diagnostic" screen as a result
  238.     of a bad board in the system, it now reboots the system when the user
  239.     clicks Continue. Added ROM-tag handling to prevent reentering the
  240.     same     screen after the reboot is done.  (40.2)
  241.  
  242.     -    Miscellaneous fixes.  (40.4)
  243.  
  244.     -    Removed clean-up code used right before BootMenu reboots the
  245.     system.  (40.5)
  246.  
  247.  
  248. carddisk 40.1
  249.  
  250.     -    Now uses TaggedOpenLibrary (saves some ROM)  (39.1)
  251.  
  252.     -    Remove dead code for raw i/o (also saves some ROM)  (39.1)
  253.  
  254.     -    Flush cache during data writes in anticipation of 040 copyback
  255.     cache on A1200 (no hardware support for PCMCIA memory space data
  256.     cache control provided, so the data cache is still potentially
  257.     a problem when programming flash rom; means turning off the
  258.     data cache globally for 030/040 A1200's to support 6-10us
  259.     write/verify timing).  (39.1)
  260.  
  261.     -    Bumped version to V40.  (40.1)
  262.  
  263.  
  264. cardres 40.3
  265.  
  266.     -    Now leaves PCMCIA slot disabled if any RAM is configured at $600000;
  267.     this allows use of >4Megs of 24bit RAM on the A1200 at the expense of
  268.     being unable to use the PCMCIA slot.  (39.1)
  269.  
  270.     -    Partial work around for a hardware bug in our PCMCIA implementation
  271.     which presents 2Meg+ addresses everytime we access ATTRIBUTE memory.
  272.     This causes a problem when a >2Meg card which ignores REG is used
  273.     (and a potential problem with any card which tries to decode the
  274.     entire address when REG is set).  The former problem is kludged
  275.     around by trying to sniff out mirroring of 4 bytes at $A00000 and
  276.     $800000 but not mirrored at $600000.  (39.1):
  277.  
  278.     -    Considerably faster memory sizing for SRAM/DRAM cards (does test of
  279.     every 256 words/long-words).  (39.1):
  280.  
  281.     -    BVD1/SC, BVD2/DA, and BSY/IRQ status change interrupts can now be
  282.     individually enabled/disabled.  WR (Write-Protect) status change
  283.     interrupts are always enabled (rare), and there is no change in the
  284.     defaults.  This is intended for future use if needed (e.g., Flash-ROM
  285.     which expects software to poll SC during programming; better
  286.     performance can be obtained if interrupts are not generated).  If
  287.     needed on the A600, this can be implemented as documented work
  288.     around, or SeFunction() of CardMiscControl().  No expected change
  289.     for existing software; defaults are the same as they use to be in
  290.     V37 card.resource. Spurious interrupts (change true, but interrupt
  291.     disabled) are cleared by the resource software, and hidden from the
  292.     status change callback hook.  (39.1)
  293.  
  294.     -    Secondary callback option for status change interrupts; allows
  295.     high-performance hardware to be serviced via interrupts only (instead
  296.     of Signal()ing a task).  (39.1)
  297.   
  298.     If needed on the A600, this can be implemented as a documented work 
  299.           around.  To expected change for existing software; default behavior 
  300.     is the same, and the bit used to enable the secondary status change 
  301.         callback has been documented as MUST BE SET TO 0 (and the only known
  302.         device driver is carddisk.device, which does the right thing).
  303.  
  304.     -    Flush Cache when ReleaseCard() is called.  A flush before full release
  305.     ensures that no more writes will occur once the caller returns from
  306.     ReleaseCard(). This is to support the 040 copyback cache when/if an
  307.     040 becomes available for the A1200.  Would prefer control over the
  308.     data cache for PCMCIA space independent of the first 4MEG of 24bit
  309.     Fast RAM, but we don't have this feature.  Lack of Data Cache control
  310.     for PCMCIA space is still potentially problematic for use of FlashROM
  311.     programming which requires disabling the DATA cache for 030/040
  312.     equipped A1200's so that fast (6-10us) write/read operations can be
  313.     performed during programming.  Disabling the DATA cache during
  314.     FlashROM writes means disabling globally.  (39.1)
  315.  
  316.     -    Bumped version to V40.  (40.2)
  317.  
  318.     -    Miscellaneous fixes.  (40.3)
  319.  
  320.  
  321. console 40.2 
  322.  
  323.     -    Bumped version to V40.  (40.1)
  324.  
  325.     -    Miscellaneous fixes.  (40.2)
  326.  
  327.  
  328. con-handler 40.2
  329.  
  330.     -    Bumped version to V40.  (40.1)
  331.  
  332.     -    Miscellaneous fixes.  (40.1)
  333.  
  334.     -    Fixes any possible remaining hole where a ^C could be sent to a
  335.     non-existant process, and removes any chance of an Enforcer hit
  336.     while trying to decide if the process still exists.
  337.  
  338.     Note that this searches the exec task lists under Disable(), so on
  339.     a heavily-loaded (with tasks) system this might affect MIDI.
  340.     (40.2)
  341.  
  342.  
  343. dos 40.3
  344.  
  345.     -    GetDeviceProc() now returns errors better (especially
  346.     ERROR_NO_MORE_ENTRIES).  It used to lose error codes by calling
  347.     UnLock().  (39.25)
  348.  
  349.     -    Fixed bug in RemAssignList(): it wouldn't remove the first lock in
  350.     the assign.  (39.26)
  351.  
  352.     -    AttemptLockDosList() was returning NULL or 1 for failure instead of
  353.     NULL.  (39.26)
  354.  
  355.     -    Made RunCommand() free any memory added to the tc_MemEntryList by
  356.     the command.  tc_MemEntryList is now saved and emptied before calling
  357.     the command, and restored after any added memory is freed.  (39.26)
  358.  
  359.     -    Fixed exall emulation to not lose 1 file each time the list is broken
  360.     up into multiple ExAll() calls.  (39.26)
  361.  
  362.     -    Removed broken attempted fix for rda_Buffer.  Autodocs now reflect
  363.     that you must restore rda_Buffer before each call to ReadArgs() if
  364.     you pass in an RDArgs structure.  Now always clears rda_Buffer in
  365.     FreeArgs().  (39.26)
  366.  
  367.     -    SetVBuf() re-enabled.  (39.26)
  368.  
  369.     -    Changed some prototypes to avoid C++ reserved word "template".
  370.     Changed VPrintf()/VFPrintf() prototypes to VOID * from LONG * to
  371.     reduce useless compiler warnings/casts.  (39.26)
  372.  
  373.     -    SetVBuf() now updates the filehandle so it won't overwrite the buffer
  374.     with a smaller one if SetVBuf() is called before doing buffered IO.
  375.     Also it doesn't allocate anything if the new size is the same as the
  376.     old.  (39.26)
  377.  
  378.     -    SetVar() now creates subdirectories as needed (including multiple
  379.     ones) if they do not exist already (in ENV: and in ENVARC: if
  380.     GVF_SAVE_VAR is set).  Also, it now preserves any IoErr() and won't
  381.     try to save to ENVARC if there is an error saving to ENV:.  (39.26)
  382.  
  383.     -    Modified to fix an edge condition which existed when making the mod
  384.     to SetVBuf().  (39.26)
  385.  
  386.     -    Close() doesn't free a SetVBuf() user-supplied buffer if the
  387.         user Close() the file.  Fixed.  (39.27)
  388.  
  389.     -    ExAll() emulation doesn't return the directory the user is exalling.
  390.     Fixed.  (39.27)
  391.     
  392.     -    Bumped version to V40.  (40.1)
  393.  
  394.     -    Fixes Enforcer hit on ExNext with NULL lock.  Now returns
  395.     INVALID_LOCK error.  (40.3)
  396.  
  397.     -    Fixes bad packet on ExAllEnd.  (40.3)
  398.             
  399.  
  400. exec 40.10
  401.  
  402.     -    Now added the full support for the Zorro-III quick interrupts.
  403.     The new LVO (in an old slot) ObtainQuickVector() is used to allocate
  404.     the vector.  There is no deallocation since this is basically
  405.     a configuration issue and not a dynamic thing.  (39.50)
  406.  
  407.     -    On machines with PCMCIA cards, EXEC now makes sure the interface
  408.     is turned on at boot time and then will turn it off before
  409.     configuration.  This should let a full 8-meg of RAM be added in the
  410.     Zorro-II space.
  411.  
  412.     This change requires an update to the credit card resource/device
  413.     such that it will correctly turn on the interface if needed.  (39.50)
  414.  
  415.     -    The Quick Interrupt vectors that have not yet been added used to
  416.     be -1.  Now they point at an Alert that is the new Unexpected
  417.     Quick Interrupt.  (39.50)
  418.  
  419.       -    Updated the ObtainQuickVector() autodocs to reflect that the
  420.     V37.175 ROMs do not have a blank vector at the end of EXEC. (39.52)  
  421.  
  422.       -    Changed the copyright information to show 1993.  This will
  423.     thus automatically fix everyone else :-)  (39.55)
  424.  
  425.     -    Bumped version to V40.  (40.0)
  426.  
  427.     -    Just changed to V40 so that the Version commands will work right.
  428.     (40.0)
  429.  
  430.     -    Removed the last of the old Procure/Vacate code.  (40.2)
  431.  
  432.     -    The SAD documentation was changed to reflect the real command numbers 
  433.     (rather than what was planned). (40.3)
  434.  
  435.     -    Fixed SAD commands from SAD V39 (write byte was broken and the docs
  436.     were a bit wrong as to the command format...)  (40.6)
  437.       
  438.     -    Miscellaneous housekeeping changes.  (40.7)
  439.  
  440.     -    Miscellaneous housekeeping changes.  (40.9)
  441.  
  442.     -    Disabled quick interrupts.  This avoids the problem with the A4091
  443.     and quick interrupts.  V39 exec didn't have quick interrupts enabled,
  444.     only beta V40's.  (40.10)
  445.  
  446.  
  447. expansion 40.2
  448.  
  449.     -    New - A1200 specific build that can detect CPU Slot RAM ($08000000)
  450.     if you have a 32-bit addressing CPU installed.  The CPU slot area
  451.     is 128meg in size (just like the A3000) but has the addition of
  452.     a wrap check at each 1meg of space in the CPU address space to make
  453.     low-cost RAM expansion possible without jumpers.  (It is now possible
  454.     to get 128Meg SIMMs so a single SIMM on a CPU card could make a
  455.     128Meg of FAST RAM system )
  456.  
  457.     The reason that this has to be A1200 specific (at least for now)
  458.     is that the behavior of the existing A500/A2000 CPU cards with
  459.     respect to 32-bit addresses is very undefined.  They act very
  460.     strangely and differently making it very difficult to safely figure
  461.     out if these cards are operating correctly or not.
  462.  
  463.     No code changes for anything but the new A1200 version of the
  464.     library.  (39.8)
  465.  
  466.     -    Bumped version to V40.  (40.1)
  467.  
  468.     -    Two major bugs found in the A3000 memory test/CPU Card test.
  469.     Both were fixed.  (40.1)
  470.  
  471.     -    CPU Card space is now able to be more than 128Meg.  (We can grab
  472.     3 * 256Meg more since we don't start Zorro-III until $40000000
  473.     anyway...)  (40.1)
  474.  
  475.     -    CPU Card space test now also does mirror testing.  (40.1)
  476.  
  477.     -    Due to the fixes, some forms of the code have gotten a bit smaller,
  478.     specifically, the A3000, A4000, and A1200 versions.  (40.1)
  479.  
  480.     -    Reworked the memory test to deal with extra-high capacitance
  481.     bus systems.  (40.2)
  482.  
  483.  
  484. filesysres 40.1
  485.  
  486.     -    Now matches the FS version change.  (39.3)
  487.  
  488.     -    Bumped version to V40, picks up filesystem version.  (40.1)
  489.  
  490.  
  491. fs 40.1
  492.  
  493.     -    Fixed deletion of the destination of a hardlink - this was badly
  494.     broken in all versions of the FS, DCFS just made it easier to hit.
  495.     This was causing spurious "Checksum Error on Block 0" errors (and
  496.     potentially others), especially when UUCP was using a DCFS partition.
  497.     (39.29)
  498.  
  499.     -    Fixed a returncode which would make softlinks not work if a softlink
  500.     to a directory is in the middle of a path.  (39.30)
  501.  
  502.     -    Fixed the buffer overrun on ExAll with ED_COMMENT if the first
  503.     character was >$80 (and lost the first character of comments).
  504.     (39.30)
  505.  
  506.     -    Fixed updating the date of a directory that changes in the parent
  507.     of that directory's dircache.  (39.30)
  508.  
  509.     -    There were old offsetting bugs in the exall filename/comment copying
  510.     code.  When I fixed the code not to copy too many bytes, the clear was
  511.     being done to the wrong byte. (39.30)
  512.  
  513.     -    Bumped version to V40.  (40.1)
  514.  
  515.     -    Fix to deletion of destination of a hardlink - an offset into the
  516.     stack was wrong.  (40.1)
  517.  
  518.     -    Directory notification re-enabled.  (40.1)
  519.  
  520.     -    Support for SectorsPerBlock added.  (40.1)
  521.  
  522.  
  523. gadtools 40.4
  524.  
  525.     -    Fixed bugs in clipping code in TEXT_KIND and NUMBER_KIND gadgets. The
  526.     clipping didn't work correctly on right and center justified text, and
  527.     was under-evaluating the number of pixels available for the text in a
  528.     gadget that didn't have borders.  (39.359)
  529.  
  530.     -    Fixed bug in the calculation of the default value for the
  531.     GTSL_MaxPixelLen tag. This caused odd clipping of the number display
  532.     for sliders whenever the title of the gadget wasn't on the same side
  533.     of the slider as the display of its current value.  (39.359)
  534.  
  535.     -    Fixed GTJ_CENTER option for the various GTXX_Justification tags. The
  536.     way centering was done could cause certain characters to get lost.
  537.     (39.360)
  538.  
  539.     -    Bumped version to V40.  (40.1)
  540.  
  541.     -    Fixed bug where TEXT_KIND and NUMBER_KIND gadgets wouldn't render
  542.     correctly if the text was center or right justified, and GTTX_Clipped
  543.     or GTTX_Border were not used.  (40.1)
  544.  
  545.     -    Fixed bug where the selected item and the scroll bar would not get
  546.     updated correctly when going from a list with items, to a ~0 list,
  547.     and finally to an empty list. When switching to the empty list, the
  548.     two components would remain unchanged.  (40.2)
  549.  
  550.     -    Fixed activation/deactivation problem with the arrows on scroller
  551.     gadgets.  Except for the initial creation of a scroller gadget,
  552.     the GA_Disabled tag was being ignored.  (40.3)
  553.  
  554.     -    Unused items in a listview are now rendered using BACKGROUNDPEN
  555.     instead of being rendered with the window's backfill hook (via
  556.     EraseRect()). This is more appropriate.  (40.4)
  557.  
  558.  
  559. graphics 40.24
  560.  
  561.     -    Fixed some problems with narrow ViewPorts. All work well now in AA
  562.     and ECS machines. Narrow ViewPorts on 'A' machines (and emulated 'A')
  563.     still broken in Hires modes.  (39.97)
  564.  
  565.     -    These fixes also fixed the problem with ViewPorts narrower than the
  566.     DClips losing pixels on the RHS under ECS (reported a gazillion times
  567.     on BIX with the palette requester screen).  (39.97)
  568.  
  569.     -    LoadView() was not calling the MonitorSpec->KillView() vector with the
  570.     MonitorSpec in a0, as documented. The only monitor using a KillView()
  571.     so far is the A2024 driver, and that didn't use the MonitorSpec
  572.     parameter anyway, so there is no impact in fixing this.  (39.97)
  573.  
  574.     -    A minor change made to BestModeIDA() - better weighing of ModeIDs with
  575.     similar aspect ratios. So, if BestModeIDA() is passed a NominalWidth
  576.     and Height of 322x200, the result will be LORES non-laced instead of
  577.     HIRES LACE, which is the same aspect ratio as LORES non-laced, but
  578.     the LORES is a better fit.  (39.97)
  579.  
  580.     -    CoerceMode() now ignores the AVOID_FLICKER option if the ViewPort
  581.     being coerced is interlaced.  (39.97)
  582.  
  583.     -    Changed the default value of the ViewExtra->TopLine from 0 to a
  584.     constant TOPLINE.  (39.97)
  585.  
  586.     -    Fixed sprite bug on ECS machines. If the view was at the maximum
  587.     vertical overscan, the sprite pointer would disappear or screw up on
  588.     the top line of a programmable mode. Fixed MoveSprite to take account
  589.     of the difference in the vertical counter between ECS and AA.  (39.97)
  590.  
  591.     -    LoadRGB4 with 0 colors now does nothing.  (39.97)
  592.  
  593.     -    ScrollVPort should now not mess up the bitplane pointers for a
  594.     HAM8 screen.  (39.97)
  595.  
  596.     -    When blitting from an interleaved source to an interleaved destination
  597.     using BltBitMaskRastPort, the mask data would be interpreted as
  598.     interleaved.  Work-around for versions of graphics library older than
  599.     this one is to copy the source bitmap, and zero its pad field before
  600.     blitting.  (39.97)
  601.  
  602.     -    Fix for bltbitmap trashing low byte of d7 when interleaved.  (39.97)
  603.  
  604.     -    ScrollVPort, and ChanegVPBitMap HAM8 fix incorporated.  (39.97)
  605.  
  606.     -    Change to BuildVP which allows one extra line of vertical overscan
  607.     in programmable modes.  (39.97)
  608.  
  609.     -    Added vertical blank counter in GfxBase for Intuition use.  (39.97)
  610.  
  611.     -    Fixed potential Enforcer hit when sprite size is changed while
  612.     the active view is nil.  (39.97)
  613.  
  614.     -    Huge clean-up of the GfxAssociate()/GfxLookUp()/GfxFree() code. This
  615.     code had two problems:
  616.     
  617.     1) There was no locking around the hash table! This was fixed with a
  618.        new semphore in GfxBase.
  619.  
  620.          2) The hash table was meant to handle hash collisions by chaining 
  621.            entries.  The code never actually did this. All it would do was 
  622.            place the entry in the next available slot. This meant that there 
  623.            could only be n entries in the hash table (where n = 256 from 2.01 
  624.            to 2.03, or n = 8 from 2.04 until now). Now fixed by correctly 
  625.            chaining hash collisions. (39.98)
  626.  
  627.     -    ViewPorts whose top edge was completely off the bottom of the display
  628.     would have one line of garbage on the last visible line. This was
  629.     because the clipping code clipped the bottom of the ViewPort to the
  630.     bottom of the monitor, but the top of the Viewport was only clipped to
  631.     the top of the monitor. This resulted in a display window whose bottom
  632.     edge was higher than its top edge, although this display window was
  633.     still outside of the displayable region. Now, if this condition is
  634.     found, MakeVPort() will not generate any intermediate copper
  635.     instructions (because they should never be executed), frees the
  636.     vp->DspIns intermediate copper list,  and sets vp->DspIns to NULL.
  637.     When MrgCop() finds a NULL vp->DspIns, it will ignore the whole
  638.     ViewPort, just as it does if the VP_HIDE bit is set. This is so that
  639.     Spr/Clr/UCopIns instructions which are still around will not be
  640.     merged with the other ViewPorts. This may be (though is unlikely) a
  641.     compatibility problem, with anyone expecting their UserCopperlists to
  642.     be merged with the rest of the system, irrespective of their
  643.     ViewPort's position.  (39.100)
  644.  
  645.     -    Minor autodoc change in AllocBitMap.  (39.100)
  646.  
  647.     -    Fixed newly introduced bug in ScrollVPort which would word-swap the
  648.     plane pointers in one case.  (39.100)
  649.  
  650.     -    Fix for TextFit Y clipping in. There may still be a bug in the x
  651.     direction with proportional fonts, this is still being looked at.
  652.     (39.100)
  653.  
  654.     -    ChangeVPBitMap will now no longer hang with video overscan hires-lace.
  655.     It will also now not flash on a double-ntsc 320x200 screen which is
  656.     dragged down.  (39.100)
  657.  
  658.     -    The code in MakeVP() that detects the number of sprites requested and
  659.     tries to drop the bandwidth to fit was unecessarily checking if the
  660.     difference between the current DDFSTRT and the required DDFSTRT was
  661.     less than 8. This meant that a Hires screen at MaxOScan with sprite
  662.     #1 would not drop the bandwidth (and sprite 1 would not be visible),
  663.     but if sprite #2 was used it would drop the bandwidth to accomodate,
  664.     and sprite 2 would be visible.  (39.100)
  665.  
  666.     -    Found another case in the DblPAL monitor where positioning two
  667.     viewports on 256-line boundaries, MrgCop() would build a bad
  668.     copperlist. This code was all in the get_hwait_hack() function, and
  669.     it turned out to be easier to redesign the code that actually
  670.     calculates the X position on line 255 than to hack in another cusp
  671.     case.  Hopefully, all of the possible cases have been trapped,
  672.     including multiple consecutive WAIT(0xff, xxx) instructions for
  673.     monitors with more than 512 lines per frame (namely, DblPAL and
  674.     Motivator). Testing will tell! If there is a bug in this code, it
  675.     will have more chance of being seen in PAL modes.  (39.100)
  676.  
  677.     -    If the user viewport has a ViewPortExtra attached, ScrollVPort will
  678.     now cache copper-list addresses in it. This can make a major
  679.     difference in performance, particularly on a 256-color screen.
  680.     MrgCop invalidates this cache.  (39.102)
  681.  
  682.     -    VideoControl() now supports a new tag, VC_IntermediateCLUpdate.
  683.     When this is set to false, ScrollVPort will not affect the 
  684.     intermediate copper-lists for a viewport, thus gaining speed.
  685.     This requires a small bit of Intuition support to be safe in
  686.     a screen. SetRGBxxx and ChangeVPBitMap will soon also pay
  687.     attention to this bit. This flag can be checked for by
  688.     VC_IntermediateCLUpdate_Query,&var. Note that this
  689.     tag introduces a new naming scheme for VideoControl.
  690.     VC_xxx tags use sane parameter returning methods, instead
  691.     of the brain-damaged way that VTAG_xxx tags work.  (39.102)
  692.  
  693.     -    Size optimization in VideoControl. It was using ti->ti_Data
  694.     zillions of times. Each loop iteration now stores this in a
  695.     variable to save 100 million dereferences.  (39.102)
  696.  
  697.     -    ChangeVPBitMap now supports VC_IntermediateCLUpdate tag for disabling
  698.     modification of intermediate copper lists. (40.1)
  699.  
  700.     -    Fixed bug in ChangeVPBitMap when auto-scroll screens were scrolled off
  701.     of the top. Now clips DyOffset against the monitor's min_row. (40.1)
  702.  
  703.     -    Re-wrote color copper-list poker. Now faster most of the time. It also
  704.     supports VC_IntermediateCLUpdate, which makes color-loading
  705.     significantly  faster ALL the time. Also smaller, and simpler. (40.1)
  706.  
  707.     -    Code-space optimization. Library init code was using a local variable
  708.     to point to GfxBase most of the time, when it could simply use A6.
  709.     (40.1)
  710.  
  711.     -    Fixed another MrgCop problem. User Copper lists which execute on 
  712.     line 255 could cause lower viewports to vanish. It will be a miracle
  713.     if this actually works without breaking anything else.  (40.1)
  714.  
  715.     -    Bumped version to V40. (40.1)
  716.  
  717.     -    The internal CalcFMode() was looking at the wrong register when
  718.     checking if BytesPerRow was correct for the required alignment. This
  719.     was causing some misaligned promoted screens to be skewed.  (40.1)
  720.  
  721.     -    Now *safely* changes the default monitor setting. This was previously
  722.     unlocked, and could result in a database query returning the wrong
  723.     information if the default monitor was concurrently being changed.
  724.     (40.1)
  725.  
  726.     -    Big size optimization in MakeVPort also nearly doubles its
  727.     performance.  (40.1)
  728.  
  729.     -    Changed ChangeVPBitMap to not reply immediately to the "safe-to-write"
  730.     message when VP_HIDE is set. This should prevent some animations
  731.     from taking 100% CPU when their screen is put behind. Also fixed a
  732.     bug in the signalling system.  (40.1)
  733.  
  734.     -    Now sets copinit->wait_forever to contain a write to bplcon3.
  735.     This will cause LoadView(NULL) to switch the sprite resolution
  736.     back to normal.  (40.1)
  737.  
  738.     -    The flag "LPEN_SWAP_FRAMES" is initialized to ON for old Agnii.
  739.     (40.1)
  740.  
  741.     -    The Genloc enable bit in copinit will now be correct as soon as
  742.     the genloc is detected, instead of until the first screen.  (40.1)
  743.  
  744.     -    Fixed a bug in BestModeID(). If you pass BestModeID()
  745.     BIDTAG_MonitorID with DEFAULT_MONITOR, the result would always be
  746.     INVALID_ID.  (40.1)
  747.  
  748.     -    BestModeID() no longer checks monitor compatibility unless passed 
  749.     a special flag from CoerceMode().  (40.1)
  750.  
  751.     -    Added locking around promotion state changes.  (40.1)
  752.  
  753.     -    Fixed a bug where, when  booting a AA machine into ECS mode, the
  754.     database values for Max/VideoOScan MaxX in SuperHires were wrong.
  755.     (40.1)
  756.  
  757.     -    When LightPens are enabled, some versions of Agnus swap the Long
  758.     and Short frames over, some don't, and there is no ID bit software
  759.     can read. I have defined a new DisplayFlags bit called 
  760.     LPEN_SWAP_FRAMES, which is set by default. LPen s/w can then set
  761.     up a test to ask the user if there are visible problems, and if 
  762.     so, clear this flag.  (40.1)
  763.     
  764.     -    The NTSC/PAL ScanDbl modes I introduced last time had the 
  765.     DIPF_IS_WB bit set. This is now cleared.  (40.1)
  766.  
  767.     -    VC_NoColorPaletteLoad tag for VideoControl() inhibits the loading of
  768.     all color registers except color 0 for the ViewPort.  (40.1)
  769.  
  770.     -    When switching from lace to non-lace, it was possible Agnus/Alice to
  771.     be stuck in SHF mode.  Now checks that for NTSC/PAL screens, as well
  772.     as the programmed modes which it was checking before, but only writes
  773.     to vposw if the mode is SHF. Hopefully, this won't cause the display
  774.     problems with Amber we had last time we tried this.  (40.1)
  775.  
  776.     -    Added monitorinfo->mouse_ticks for Intuition use.  (40.1)
  777.  
  778.     -    Fixed copper.i to match copper.h. (40.4)
  779.  
  780.     -    Autodoc fix in GetExtSprite (40.4)
  781.  
  782.     -    WritePixelArray8 totally re-written to use chunkytoplanar hardware.
  783.     (40.4)
  784.  
  785.     -    This fixed a bug report of a 4 bitplane NTSC interlaced WB in
  786.     front of CED on ECS machines would cause garbled displays. (40.4)
  787.  
  788.     -    Found a bug in CalcIVG() that had been present since it was first
  789.     written.  CalcIVG() looks at CopIns->Count to count the copper
  790.     instructions.  However, CopIns->Count also includes those
  791.     instructions that are unique to Long and Short frames. In edge
  792.     conditions, it was possible that CalcIVG() would return a value
  793.     one line too large, which naturally causes MrgCop() at line 255
  794.     to fail. (40.4)
  795.  
  796.     -    Added "non-dual-playfield dual-playfield" support, via
  797.     VC_DUALPF_Disable VideoControl() tag. Changed MakeVPort, 
  798.     VideoControl(), and create_color_bits() (40.6)
  799.  
  800.     -    Fixed a bug where VC_NoColorPaletteLoad_Query would return the 
  801.     reverse of the current state. (40.6)
  802.  
  803.     -    Fixed the V39 bug where the "Attach" bits would not be set for 
  804.     sprites created with the SPRITEA_Attached tag. (40.6)
  805.  
  806.     -    Fixed MrgCop() bugs.  (40.12)
  807.  
  808.     -    The code that calculates the STRADDLES_256 flag was not halving
  809.     the inter-viewport gap in interlaced screens.  Fixed.  (40.12)
  810.  
  811.     -    ScrollVPort now behaves as if dual-playfield screens with no
  812.     rasinfo->Next are non-dual-playfield screens.  (40.12)
  813.  
  814.     -    BOBs would render incorrectly to obscured smart-refresh and
  815.     superbitmap windows on interleaved screens.  Fixed. (40.12)
  816.  
  817.     -    60/50hz clock bit fix.  (40.16)
  818.  
  819.     -    Fixed MungWall hit.  (40.16)
  820.  
  821.     -    Fixed screen flashing with ECS emulation on AA bug.  (40.18)
  822.  
  823.     -    "GetColorMap fails under memoration" problem fixed.  (40.19)
  824.  
  825.     -    Some depths of ScanDoubled beam-sync modes required an odd number of
  826.     lines in the inter-viewport gap, but MrgCop() always doubled the
  827.     WAIT position in ScanDouble displays.  Now adds 1 to the WAIT
  828.     position if a flag in the CopList->Flags shows that this is a "half
  829.     line" gap; this flag is set in CalcIVG().  (40.20)
  830.  
  831.     -    Check if the CopList being merged is vp->SprIns, vp->ClrIns or
  832.     vp->UCopIns before checking the STRADDLES_256 flag.  (40.20)
  833.  
  834.     -    Removed check for SetDefaultMonitor failing and pulling an alert
  835.     in graphics library init.  (40.23)
  836.  
  837.     -    When changing between PAL and NTSC views (and presumably between
  838.     other monitor types too), occasionally the machine could freeze.
  839.     The cause is unknown, but our current theory is that disabling
  840.     RASTER DMA in the middle of a fetch cycle could be dangerous. We
  841.     now try to ensure that we don't disable RASTER DMA in the middle
  842.     of a fetch cycle. This is an improvement, although tests show this
  843.     to not be perfect. Brings the crash interval from a few minutes to
  844.     many hours of continuous screen flipping.  (40.23)
  845.  
  846.     -    ScrollVPort would fail to modify the FMODE value in the intermediate
  847.     copper list of an interlaced screen. This is because it was looking
  848.     for a DIWHIGH move followed by an FMODE move. The interlaced
  849.     intermediate copper lists have two DIWHIGH moves, and have LF/SHF
  850.     bits set in the opcodes.  Fix was to AND out the LF/SHF bits and to
  851.     make it skip as many DIWHIGH writes as appear.
  852.     one AND.L #immed + 1 bra.s.  (40.24)
  853.  
  854.  
  855. icon 40.1 
  856.  
  857.     -    Bumped version to V40.  (40.1)
  858.  
  859.     -    No longer calls alert for the silly case.  (40.1)
  860.  
  861.  
  862. intuition 40.85
  863.  
  864.     -    Menus are now brought on-screen much faster than before.  The extra
  865.     memory required to do this is freed immediately after the menu is
  866.     drawn onto the display.  If that memory isn't available, menus are
  867.     brought on-screen the old way.  Menus are removed from the screen
  868.     several times faster than before.  (39.2192)
  869.  
  870.     -    The menu code has been massaged (mostly unifying item-panels and
  871.     subitem-panels), which saved a bunch of code.  (39.2192)
  872.  
  873.     -    When a window is resized, the window drag-bar no longer flashes.
  874.     (39.2192)
  875.  
  876.     -    If a screen is opened before DOS sends Intuition the first SetPrefs(),
  877.     the pointer will be the ROM default pointer, instead of being blank.
  878.     (39.2192)
  879.  
  880.     -    If you used a boopsi string gadget as an integer gadget, with
  881.     Intuition supplying the buffer, and you specified a STRINGA_MaxChars
  882.     of > 15, you would get a mismatched FreeMem() when the gadget is
  883.     disposed.  This is now fixed.  (39.2192)
  884.  
  885.     -    Certain OpenScreen() failures would erroneously CloseFont()
  886.     GfxBase->DefaultFont even though it had not been opened.  This is now
  887.     fixed.  (39.2192)
  888.  
  889.     -    For 3.0, there were some changes to clean up autoscroll, in particular
  890.     to fix bugs when an absolute input device (such as a tablet) is used.
  891.     Mostly incidental to that change, a problem was being caused as a
  892.     result of inadvertently switching the autoscroll boundary to be the
  893.     DClip of the active screen, where it used to be the "hull" of the
  894.     DClips of all the screens.  If there are two screens in the system
  895.     with different DClips, the mouse can be way outside the DClip of the
  896.     smaller screen.  If that screen is active, it will AutoScroll at a
  897.     ridiculous rate.  For example, if the mouse is seventeen pixels below
  898.     its DClip, moving it down one pixel causes the screen to autoscroll
  899.     by eighteen, instead of one.  This is now fixed.  (39.2192)
  900.  
  901.     -    Intuition now updates its internal time values based on (nearly) _any_
  902.     InputEvent it receives, instead of just IECLASS_TIMER ones.  The
  903.     problem was that outgoing IntuiMessages get their time from this
  904.     internal time, which meant that IntuiMessage time was the time-stamp
  905.     of the most recent timer tick, instead of the time-stamp of the event
  906.     that actually triggered this IntuiMessage.  This problem completely
  907.     precludes correlating an IntuiMessage with the InputEvent that caused
  908.     it, which is important for tablet people, for example. (39.2210)
  909.  
  910.     -    If the TimeStamp of an event would be a step backwards in time or
  911.     farther forward than one second, Intuition doesn't heed it.  However,
  912.     Intuition _always_ respects IECLASS_TIMER TimeStamps, which allows
  913.     changes to system-time to be picked up.  (39.2339)
  914.  
  915.     -    If a child screen is dragged off the bottom of the display, and the
  916.     scan-rate changes (say by Amiga-M changing to a screen of a different
  917.     scan-rate), the child screen would be accidentally brought up so one
  918.     scan line was visible.  This bug is now fixed.  (39.2339)
  919.  
  920.     -    In frameiclass, the IM_FRAMEBOX method now accounts for the extra room
  921.     of the new-for-V39 frame types.  In the initial V39, frameiclass
  922.     ignored the new frame types when computing how much bigger the frame
  923.     box needed to be when compared to the contents. (39.2256)
  924.  
  925.     -    After creating the BarLayer of a SCREENQUIET screen, Intuition now
  926.     changes its backfill hook to the screen's LayerInfo backfill hook.
  927.     This fixes the bug where the part of a window obscuring the title-bar
  928.     area of a SCREENQUIET screen wasn't erased when the window was closed.
  929.     (Effectively, Intuition was relying on a layers side-effect that was
  930.     optimized out for V39).  (39.2339)
  931.  
  932.     -    Fixed the bug where changing coercion Preferences (specifically the
  933.     "Avoid Flicker" option) could leave a screen illegally positioned.
  934.     (39.2339)
  935.  
  936.     -    Clarified some comments and removed a redundant test in Intuition's
  937.     MakeVPort() code.  Intuition is verified ready for the graphics fix
  938.     that prevents minor display garbage if a ViewPort is completely off
  939.     the bottom of the display.  (39.2339)
  940.  
  941.     -    The ImageClass OM_GET method now uses UnpackStructureTags() (the
  942.     packing table already existed for the OM_SET method).  (39.2339)
  943.  
  944.     -    A child screen fully off the bottom of the display no longer
  945.     autoscrolls up.  The old way, it could trap a parent/child pair of
  946.     screens in an undraggable condition. (39.2275)
  947.  
  948.     -    Fixed a recent bug where an overscanned screen could get pulled down
  949.     by autoscroll under certain conditions.  (Autoscroll isn't supposed to
  950.     pull screens down below their DClip top).  (39.2339)
  951.  
  952.     -    An off-the-bottom child screen can no longer mess up Intuition's mouse
  953.     limits (which could leave a screen unreachable under certain
  954.     conditions).  (39.2339)
  955.  
  956.     -    ScreenPosition(SPOS_MAKEVISIBLE) of a coerced screen now works right.
  957.     (39.2339)
  958.  
  959.     -    The mouse scaling factors are now correct for double-NTSC monitors.
  960.     (39.2339)
  961.  
  962.     -    Keyboard control of the mouse cursor moves the mouse exactly one
  963.     screen pixel at a time.  This only worked when a window was active,
  964.     but now it works even if no window is active.  (39.2339)
  965.  
  966.     -    Fixed several bugs with non-draggable child screens (39.2332):
  967.  
  968.     Non-draggable child screens whose DClips don't match their parent's
  969.       come up in the right place.
  970.     
  971.     Non-draggable child screens whose widths don't match their parent's
  972.       no longer wrap when you drag the parent.
  973.  
  974.     SPOS_FORCEDRAG now allows non-draggable child-screens to move
  975.     horizontally.
  976.  
  977.     Non-draggable child screens didn't have their top edge validated
  978.       correctly against their parent's when they are first opened.
  979.     
  980.     When resizing a window, the erasing of the old border and old GRELxxx
  981.     gadgets has been optimized to flash a lot less and be faster.  When
  982.     changing the activation state of a window, the border re-rendering
  983.     has been optimized.
  984.  
  985.     Fixed a hole in the state machine where a task whose priority exceeds
  986.     that of input.device could get into trouble calling Intuition if a
  987.     function it called (eg.  ScreenToBack()) got deferred because of the
  988.     state Intuition was in (eg.  user was dragging a screen).  Intuition
  989.     was missing a lock and was implicitly relying on task priority for
  990.     things to clean up in the right order.
  991.  
  992.     If OpenWindow() failed to create the window layer(s), Intuition would
  993.     fail to repair any damage that might have been caused in to other
  994.     windows of the screen.
  995.  
  996.     If a MENUVERIFY window was ever sent a MENUVERIFY/MENUWAITING message
  997.     (because the user accessed the menus of some other window on the same
  998.     screen), then every normal MENUPICK from that point on would be
  999.     immediately preceded by a spurious MOUSEBUTTONS/MENUUP message.
  1000.  
  1001.     While processing a menu command-key, if Intuition timed out waiting
  1002.     for the application to reply the MENUVERIFY, Intuition would fail to
  1003.     send a MENUPICK/MENUNULL message.  Also, two memory-allocation failure
  1004.     paths in the MENUVERIFY code had the same problem.  These are all
  1005.     fixed, as MENUVERIFY applications need the guarantee of receiving a
  1006.     MENUPICK and/or a MOUSEBUTTONS/MENUUP for every MENUVERIFY.
  1007.  
  1008.     Attached screens which are opened as SA_Exclusive now form an
  1009.     exclusive family, allowing the benefits of both.  This used to fail.
  1010.  
  1011.     SetIPrefs() now bounds-checks the Overscan values it receives, which
  1012.     could be illegal if the user added or removed the VGAOnly monitor, or
  1013.     changed between PAL and NTSC in BootMenu.
  1014.  
  1015.     -    When Intuition splits a single InputEvent into button and movement
  1016.     components, the button event is now sent first.  This fixes some
  1017.     inconsistencies with extended input information like pressure, as
  1018.     well as odd behavior of the qualifiers, in particular
  1019.     IEQUALIFIER_MIDBUTTON.  (39.2339)
  1020.  
  1021.     -    One of the important input token fields is now longword aligned.
  1022.     (39.2339)
  1023.  
  1024.     -    When Intuition splits a single InputEvent into button and movement
  1025.     components, the button event is now sent first.  This fixes some
  1026.     inconsistencies with extended input information like pressure, as
  1027.     well as odd behavior of the qualifiers, in particular
  1028.     IEQUALIFIER_MIDBUTTON.  (39.2339)
  1029.  
  1030.     -    One of the important input token fields is now longword aligned.
  1031.     (39.2339)
  1032.  
  1033.     -    The code to detect damage caused when a gadget method performs
  1034.         ScrollRaster() or ScrollRasterBF() turns out to be in fundamental
  1035.         conflict with an application using ScrollRaster() or ScrollRasterBF()
  1036.         in an Intuition window.  It turns out that Intuition can throw away
  1037.         damage that the application needs.  ScrollWindowRaster() is safe.
  1038.  
  1039.         The change is that until a gadget with the GMORE_SCROLLRASTER
  1040.         property is added to a window, the ScrollRaster() damage detection
  1041.         code does not run for that window.  This means that it is V37-
  1042.     compatible until a GMORE_SCROLLRASTER gadget enters the picture.
  1043.         If the user app uses one of those, he must switch any use of
  1044.         ScrollRaster[BF]() within the application to ScrollWindowRaster().
  1045.         The gadget must continue to use ScrollRaster[BF](), however.  The
  1046.         biggest complication would come from using some gadget class the user 
  1047.         doesn't control the source to.  How does the user know if it
  1048.     currently uses GMORE_SCROLLRASTER, or might in the future?  If the
  1049.     user uses such a class, switch to ScrollWindowRaster(). (39.2369) 
  1050.  
  1051.     -    IESUBCLASS_PIXEL NEWPOINTERPOS events with IEQUALIFIER_RELATIVEMOUSE
  1052.         were broken.  This is now fixed. (39.2369)
  1053.  
  1054.     -    The WBenchToFront() and WBenchToBack() functions call ScreenDepth() 
  1055.         through the LVO. (39.2369)
  1056.  
  1057.     -    RefreshWindowFrame() now correctly redraws the window title if someone
  1058.         pokes the title string or title string pointer directly. (39.2369) 
  1059.  
  1060.     -    When an application obtains use of a sprite other than the pointer
  1061.         sprite, by using the old GetSprite() call, Intuition now arranges for
  1062.         the sprite pixel resolution to fall back to ECS compatibility.  Users
  1063.         of ExtSprites are unaffected. (39.2369)
  1064.  
  1065.     -    FreeScreenBuffer() now does a WaitBlit() before FreeBitMap().
  1066.         (39.2369)
  1067.  
  1068.     -    Figuring out where the user clicked in a string gadget now uses
  1069.         TextFit() instead of successive TextLength()s.  (39.2369)
  1070.  
  1071.     -    Calls to MoveScreen() or ScreenPosition() have always been ignored
  1072.         while the user is dragging a screen or sizing/dragging a window.
  1073.         These calls are now deferred, which is preferable and fixes a problem
  1074.         encountered with the new Palette Prefs when it opens the color wheel
  1075.         on a separate screen. (39.2369)
  1076.  
  1077.     -    Did a general autodoc cleanup, including proof-reading of all V39
  1078.         references.  Also, there was some minor cleanup to the include files.
  1079.         Notable changes:  (39.2369)
  1080.       
  1081.         The ScrollWindowRaster() autodoc has been elaborated.
  1082.  
  1083.     There are now definitions for 2.0-style system gadgets
  1084.     (GTYP_WZOOM, GTYP_WDEPTH, etc.).  The 1.3-style definitions
  1085.     are now defined in terms of the new ones.
  1086.  
  1087.     Pointerclass.h|i now contains notes on the compatibility fallback
  1088.     techniques used by Intuition/graphics when sprites other than
  1089.     the pointer sprite are used.
  1090.  
  1091.     -    Calling NewModifyProp() while the user is dragging the slider knob can
  1092.     no longer leaves behind trash remnants of the knob.  (39.2415)
  1093.  
  1094.     -    Intuition used to hard-code relationships between monitors and how
  1095.     many "database ticks" to move the pointer when the mouse itself moves.
  1096.     Intuition now obtains this information from the MonitorInfo structure,
  1097.     if it is there, and falls back to the old way if it is absent.  This
  1098.     data still needs to be added to the graphics database.  (39.2415)
  1099.  
  1100.     -    The string "Workbench Screen" is now localizable.  (39.2415)
  1101.  
  1102.     -    Fixed a long-standing Enforcer hit which can occur if you click the
  1103.     mouse after the last screen has closed (say during Workbench reset).
  1104.     (39.2415)
  1105.  
  1106.     -    Fixed a long-standing Enforcer hit which can occur if you activate a
  1107.     window with a requester in it by clicking on a system gadget in that
  1108.     window.  (The bug is most detectable if no active window has had a
  1109.     requester in it since the computer was turned on).  (39.2415)
  1110.  
  1111.     -    Graphics has added a performance enhancement via VideoControl()
  1112.     which allows an application to request that its ViewPort's
  1113.     intermediate copper-lists not be kept up-to-date.  Intuition now
  1114.     detects and handles such ViewPorts correctly by ensuring that
  1115.     MakeVPort() is always invoked on such a ViewPort if MrgCop() is going
  1116.     to be called.  (39.2415)
  1117.  
  1118.     -    The public screen list is now case-insensitive.  (39.2415)
  1119.  
  1120.     -    Bumped the version to V40.  (40.29)
  1121.  
  1122.     -    Fixed a race condition with closing the Workbench which could cause
  1123.     LockPubScreen(NULL) to return garbage.  (40.29)
  1124.      
  1125.     -    Fixed a hole in the public screen uniqueness test where if two
  1126.     screens  tried to open simultaneously with the same public screen
  1127.     name, it was possible that both would succeed, instead of the second
  1128.     one failing  with OSERR_PUBNOTUNIQUE.  (40.29)
  1129.  
  1130.     -    Screens whose bitplanes are not sufficiently aligned to be promoted
  1131.     are now promoted into a lower resolution, instead of being shown
  1132.     scrambled.  This fix requires the latest graphics.library and a new
  1133.     DblNTSC and DblPAL monitor.  This ought to allow Boing! to come up
  1134.     promoted (albeit in extra-lores).  (40.29)
  1135.  
  1136.     -    Added a new tag, SA_MinimizeISG, which requests that Intuition give
  1137.     the smallest possible inter-screen gap, instead of enforcing the old
  1138.     compatible minimum.  This is required to use the new graphics
  1139.     VC_NoColorPaletteLoad VideoControl() tag.  (40.29)
  1140.  
  1141.     -    The calculation of the menu panel size now takes into account the
  1142.     height of the Amiga-key symbol, and the IntuiText TopEdge.  This fixes
  1143.     some possible crashes when using a too-big Amiga-key.  (40.29)
  1144.  
  1145.     -    Fixed a bug where if a window failed to zoom due to lack of memory,
  1146.     Intuition would nevertheless update the future zoom size/position to
  1147.     the current size/position.  A window which uses title-bar zooming
  1148.     (like our Prefs editors do) could have been stranded in its small
  1149.     state.  (40.29)
  1150.  
  1151.     -    Removed code that calls OpenMonitor() and CloseMonitor(), since
  1152.     they're unnecessary.  (40.29)
  1153.  
  1154.     -    Fixed a small bug in border redrawing when resizing a window which had
  1155.     no depth gadget.  This bug crept in with the V40 border redraw
  1156.     optimizations.  (40.29)
  1157.  
  1158.     -    All non-essential Alert()s are now gone, to save space.  (40.29)
  1159.  
  1160.     -    Fixed a bug in AllocScreenBuffer() failure where it called
  1161.     FreeScreenBuffer() badly.  (40.34)
  1162.  
  1163.     -    Fixed a hole in UnlockPubScreen() where it could race with
  1164.     CloseScreen() and die with Enforcer hits.  (40.34)
  1165.  
  1166.     -    Holding a gadget down no longer blocks OpenWindow() from completing.
  1167.     (40.45)
  1168.  
  1169.     -    frbuttonclass no longer crashes if the OM_NEW taglist includes
  1170.     GA_Width or GA_Height.  (40.45)
  1171.  
  1172.     -    Fixed a small window of vulnerability when ModifyIDCMP() connects
  1173.     the window's WindowPort.  This could cause Enforcer hits if
  1174.     input.device got to run at the wrong time with respect to the
  1175.     client's call to ModifyIDCMP() or OpenWindow().  (40.47)
  1176.  
  1177.     -    Fixed a bug where a non-draggable child screen could inadvertently
  1178.     be moved by the system if the active monitor changed.  (40.65)
  1179.  
  1180.     -    Miscellaneous housekeeping changes.  (40.71)
  1181.  
  1182.     -    OpenScreen() now fails if AttachPalExtra() fails.  Otherwise,
  1183.     Enforcer hits and awful death may result.  (40.85)
  1184.  
  1185.     -    If sysiclass fails to allocate its TmpRas, it would fail to release
  1186.     the semaphore which protects class-data, locking out subsequent
  1187.     users.  Fixed.  (40.85)
  1188.  
  1189.  
  1190. keymap 40.4
  1191.  
  1192.     -    Bumped version to V40.  (40.1)
  1193.  
  1194.     -    Updated autodocs  (40.4)
  1195.  
  1196.  
  1197. layers 40.1 
  1198.  
  1199.     -    Bumped version to V40.  (40.1)
  1200.  
  1201.     -    Removed calls to Alert for the pathalogical startup cases.  (40.1)
  1202.  
  1203.  
  1204. mathffp 40.1
  1205.  
  1206.     -    Removed the Expunge code.  (39.1)
  1207.  
  1208.     -    Bumped version to V40.  (40.1)
  1209.  
  1210.  
  1211. mathieeesingbas 40.4
  1212.  
  1213.     -    Bumped version to V40.  (40.1)
  1214.  
  1215.     -    Removed the IO FPU support. (Since 68020 and up are really connected 
  1216.     to the FPU there is no real need and almost no one makes a IO FPU 
  1217.     anymore for the 68000 machines since it is cheaper to make a 68EC030
  1218.     plus real FPU and is *MUCH* faster). (40.1)
  1219.  
  1220.     -    Removed the Expunge code since there is no real need for it.  (40.3)
  1221.     
  1222.     -    Miscellaneous changes.  (40.4)
  1223.  
  1224.  
  1225. ramlib 40.2 
  1226.  
  1227.     -    Bumped version to V40.  (40.1)
  1228.  
  1229.     -    Took out alerts that can not happen.  (40.1)
  1230.  
  1231.     -    Miscellaneous fixes.  (40.2)
  1232.  
  1233.  
  1234. rawinput 40.1 
  1235.  
  1236.     -    Bumped version to V40.  (40.1)
  1237.  
  1238.     -    Miscellaneous fixes.  (40.1)
  1239.     
  1240.  
  1241. scsidisk 40.8
  1242.  
  1243.     -    Bumped version to V40.  (40.1)
  1244.  
  1245.     -    Never uses IDE reads of more than 128 blocks.   (40.1)
  1246.  
  1247.     -    Removes a "romboot.device" string that was meaningless (and 
  1248.     has been in there since the A590). (40.1)
  1249.  
  1250.     -    Bumped version to V40.  (40.1)
  1251.     
  1252.     -    Uses the new exec Gayle check code for A1200/A600.  (40.3)
  1253.   
  1254.     -    Some CDROM drives do not generate a media-changed error on the
  1255.     first media insertion after reset, but just go from not-ready to
  1256.     ready.  The SCSI driver was counting on those errors to notice
  1257.     disk changes.  Modified scsidisk to notice that we've quietly
  1258.     gone not-ready to ready and notify everyone as appropriate.  (40.4)
  1259.  
  1260.     -    Bumped the constant for IDE timeout from 9 seconds to 15 seconds.
  1261.     This is to allow for slower spin-up drives such as the new
  1262.     Seagates.  (40.5)
  1263.  
  1264.     -    Some timeouts were changed for greater future compatibility on
  1265.     IDE systems.  (40.7)
  1266.  
  1267.     -    A new entry in the error table was added for reporting media changes
  1268.     (in particular for supporting Syquest IDE drives).  (40.7)
  1269.  
  1270.     -    Some other minor changes to the startup code were added, including
  1271.     things like returning real errors instead of -1 in several cases,
  1272.     and sending StartUnit to devices that haven't spun up (very good
  1273.     for some CDROMs and disk drives which default to not spinning up).
  1274.  
  1275.     There's now some dead code in the A4000 IDE handling, but it doesn't
  1276.     hurt anything (it plays with a battmem bit it now ignores).  (40.7)
  1277.  
  1278.     -    Restored a line of source code that got deleted by mistake in the
  1279.     40.7 changes.  (40.8)
  1280.  
  1281.  
  1282. shell 40.2
  1283.  
  1284.     -    Removed support for "Hold" bit and for 1.3-style redirection (set
  1285.     oldredirect on) for space reasons.  (40.1)
  1286.  
  1287.     -    Miscellaneous changes.
  1288.  
  1289.  
  1290. strap 40.1 
  1291.  
  1292.     -    Miscellaneous fixes.  (40.1)
  1293.  
  1294.  
  1295. trackdisk 40.1 
  1296.  
  1297.     -    Bumped version to V40.  (40.1)
  1298.  
  1299.     -    Miscellaneous fixes.  (40.1)
  1300.  
  1301.  
  1302. utility 40.1
  1303.  
  1304.     -    Bumped version to V40.  (40.1)
  1305.  
  1306.     -    There are now two distinct versions of the library generated. One for
  1307.     68000 systems, and one for 68020 and above systems. The 68020-only
  1308.     version is 316 bytes smaller than the 68000 version. The 68020 version
  1309.     is meant for use in the A1200, A3000, and A4000 ROMs. The A1200 is
  1310.     currently our smallest ROM, so this extra space will help.  (40.1)
  1311.  
  1312.  
  1313. wb 40.5
  1314.  
  1315.     -    Adjusted the sizes of the OK/CANCEL and SAVE/CANCEL gadgets in the
  1316.     Workbench requesters to match the new font+6 height values.  This
  1317.     makes for better gadgets on high-resolution displays such as the
  1318.     800x600 modes and also matches the new V39 prefs editors.  (39.51)
  1319.  
  1320.     -    Fixed a long standing bug that was just found:  The system would crash
  1321.     (sometimes) or cause Enforcer hits if files were deleted within
  1322.     a drawer that was also selected for deletion.  This one has
  1323.     a fundamental flaw in Workbench which had to be patched with some
  1324.     rather tricky organization of tests... (39.52)
  1325.  
  1326.     -    Cleaned up the Rename requester such that the user can not type in
  1327.     the ":" or "/" characters rather than waiting until later to check
  1328.     for them.  (String hook)  (39.54)
  1329.  
  1330.     -    Bumped version to V40.  (40.1)
  1331.  
  1332.     -    Workbench is now 100% font sensitive!  This means that the
  1333.     information requester is now font sensitive and does complete
  1334.     layout and fall-back as needed.  (40.1)
  1335.  
  1336.     -    Found and fixed the backdrop refresh on startup timing problem
  1337.     (it was a very interesting case of rendering the window before it
  1338.     was ready to listen to new Preferences).  (40.1)
  1339.  
  1340.     -    Information number displays are now all localized numbers.
  1341.     That is, they are %lU using GTNM_Format tag of V39.  (40.1)
  1342.  
  1343.     -    Fixed bug where physical devices would not show up any more.  Now,
  1344.     once again, makes sure that the physical devices show up.  (40.2)
  1345.  
  1346.     -    Fixed: WBstartup app calling addAPPXXX can cause alert.  (40.4)
  1347.  
  1348.     -    Miscellaneous housekeeping changes.  (40.5)
  1349.  
  1350.  
  1351.