home *** CD-ROM | disk | FTP | other *** search
/ rtsi.com / 2014.01.www.rtsi.com.tar / www.rtsi.com / OS9 / MM1 / DRIVERS / windio54.lzh / windio54.notes < prev   
Text File  |  1995-01-31  |  11KB  |  301 lines

  1. Part 1 --  WINDIO #54 GENERAL INFORMATION
  2.  
  3.  
  4. History
  5.     Since the Atlanta CoCoFest in October 1994, windio has been undergoing
  6. some changes.  This edition #54 release is a culmination of three months
  7. of work.
  8.  
  9.     This release of K-Windows gives the developer and user some features
  10. which were in demand, but lacking for quite a while.  While windio is
  11. still not bug-free, it has most definitely improved in certain areas.
  12. Most notably, the keyboard driver underwent a major overhaul.  Besides
  13. this, several bugs were nixed, and general speed improvements were
  14. introduced throughout the code.
  15.  
  16.     Now that windio #54 is released, the responsibilities for maintaining
  17. the MM/1 version are going back to its original author, Kevin Darling.  As
  18. I understand, Kevin's work on porting K-Windows to other systems will be
  19. folded in with the MM/1 version.  This is certainly good news for all of us.
  20. No one knows source code better than the person who wrote it.
  21.  
  22.  
  23. Kudos
  24.     A number of people were responsible for the release of this version
  25. of K-Windows and it's only fair to recognize them.  While this is by no
  26. means a complete list, I do wish to recognize the efforts of as many
  27. individuals as I can recall:
  28.  
  29.     o Foremost, Kevin Darling, for giving his permission to let me
  30.       take a crack at the windio source code.  (Thanks Kev :)
  31.  
  32.     o David Graham for talking Kevin into doing this :-)
  33.  
  34.     o Eddie Kuns for his immense help and contributions to the
  35.       new implementation of the keyboard driver as well as his
  36.       ideas on other facets of K-Windows.
  37.  
  38.     o Colin McKay, Joel Hegberg, Ken Scales for their bug reports,
  39.       ideas and overall participation in the development process.
  40.  
  41.     o Scott Griepentrog for allowing us to use his resources for
  42.       the MM/1 developer's forum.
  43.  
  44.     o Mike Haaland for his ideas and suggestions, as well as his
  45.       work on updating cgfx in conjunction with this release.
  46.       (sorry about the CTRL-ALT-DEL thingie :-)
  47.  
  48.     o James Jones for his help with windio questions.
  49.  
  50.     If there are some I've missed, I certainly apologize.  This was
  51. indeed a team effort, and every bit of participation helped.
  52.  
  53.  
  54. Part 2 -- WINDIO #54 RELEASE NOTES
  55.  
  56.     This is not intended to be official documentation for K-Windows.
  57. David Graham is currently working on updating the docs, but was not
  58. able to have them finished by the release.  Therefore, the following
  59. information was assembled to provide you with an understanding of the
  60. changes that went into windio #54.
  61.  
  62.     Ident output of the modules included are provided below:
  63.  
  64. Windio #54 for the 68070 MM/1:
  65.  
  66. Header for:      windio
  67. Module size:     $8258       #33368   
  68. Owner:           0.0
  69. Module CRC:      $593A56     Good CRC
  70. Header parity:   $1E74       Good parity
  71. Edition:         $36         #54      
  72. Ty/La At/Rev     $E01        $A000    
  73. Permission:      $555        -----e-r-e-r-e-r
  74. Dev Drv, 68000 obj, Sharable, System State Process
  75.  
  76.  
  77. Windio #54 for the 68340 MM/1a:
  78.  
  79. Header for:      windio
  80. Module size:     $8260       #33376   
  81. Owner:           0.0
  82. Module CRC:      $FFD932     Good CRC
  83. Header parity:   $1E54       Good parity
  84. Edition:         $36         #54      
  85. Ty/La At/Rev     $E01        $A000    
  86. Permission:      $555        -----e-r-e-r-e-r
  87. Dev Drv, 68000 obj, Sharable, System State Process
  88.  
  89.  
  90. Keydrv #48 for either CPU:
  91.  
  92. Header for:      keydrv
  93. Module size:     $828        #2088    
  94. Owner:           0.0
  95. Module CRC:      $A8EA84     Good CRC
  96. Header parity:   $1C52       Good parity
  97. Edition:         $30         #48      
  98. Ty/La At/Rev     $C01        $A000    
  99. Permission:      $555        -----e-r-e-r-e-r
  100. System Mod, 68000 obj, Sharable, System State Process
  101.  
  102.  
  103.     The mouse and sound drivers were not changed; hence they are
  104. not included in this archive.
  105.  
  106. 68K Assembly Tweaks
  107.     Some speed improvements were made by tweaking 68k assembly branch
  108. instructions to use shorter displacement values (bra.b vs. bra.w).
  109. In fact, this speed gain was noticeable enough that we had to actually
  110. INCREASE the delay loop in the palette switching code; otherwise,
  111. "sparklies" would appear along the bottom edge of the window.
  112.  
  113.  
  114. Concurrent Flood Fills
  115.     In windio #52, concurrent flood fills going on in different windows
  116. tended have interesting effects on the screen.  The problem was due to
  117. the flood fill algorithm using a global stack.  This bug has been fixed by
  118. having windio allocate memory from the system when doing a flood fill.
  119.  
  120.     You may notice a 15K or so reduction in your memory pool for each flood
  121. fill you invoke.  This memory, of course, is returned to the free memory
  122. pool after the flood fill has completed.
  123.  
  124.  
  125. Hot Spots
  126.     Hot spots were disabled in windio #52.  I later learned that this
  127. was intentional.  However, several developers were adamant about having
  128. this feature reinstated, and so it was.  Hot spots are now usable under
  129. windio #54 (though I take no responsibility for their success or
  130. failure :-).
  131.  
  132.  
  133. Addition of Two New GetStt calls
  134.     In conjunction with the new keydrv module, two new GetStt calls
  135. were added to windio (see below).
  136.  
  137.  
  138. Keyboard Driver
  139.     A considerable amount of effort was put into revamping the keyboard
  140. driver for the MM/1.  With the help of Eddie Kuns, we were able to put
  141. together what I believe is a very slick method of interpreting and
  142. handling XT scan codes.  It certainly positions the keyboard driver
  143. for additional features down the road (downloadable keymaps).
  144.  
  145.     A distinction is made between the keypad and the alternate keypad.
  146. The keypad is the set of hybrid numeric/arrow keys and encompasses the
  147. ENTER, +, -, *, / keys.  The alternate keypad is defined to be the
  148. set of isolated arrows (in diamond formation) as well as the six
  149. isolated PgUp, PgDn, Ins, Del, Home, End keys.  The alternate keypad
  150. may or may not be part of your keyboard.  The numeric keypad should
  151. definitely be.
  152.  
  153.     We added legal key sense functions through the use of two new
  154. GetStt calls:  SS_KySns ($AD) and SS_KyImg ($AE).  They are
  155. documented below. (NOTE:  C language bindings are included in
  156. the two example source files which use these calls, testkysns.c and
  157. testkyimg.c.  These bindings should be available in the next release
  158. of the cgfx.l library.)
  159.  
  160. ---------------------------- SETSTAT CALLS --------------------------
  161.  
  162. SS_KySns ($AD)
  163.  
  164. Entry Points:
  165.     d0.w    = path
  166.     d1.w    = $AD
  167.  
  168. Exit Points:
  169.     d0.l    = a 32-bit value whose bits are defined below
  170.  
  171. bit set if TRUE:
  172.  
  173.   00000000000000X  Shift (Right or Left)
  174.   0000000000000X0  CTRL
  175.   000000000000X00  ALT
  176.   00000000000X000  Up Arrow
  177.   0000000000X0000  Down Arrow
  178.   000000000X00000  Left Arrow
  179.   00000000X000000  Right Arrow
  180.   0000000X0000000  Space
  181.   000000X00000000  Left Shift
  182.   00000X000000000  Right Shift
  183.   0000X0000000000  Caps Lock
  184.   000X00000000000  Scroll Lock
  185.   00X000000000000  NUM Lock
  186.   0X0000000000000  Keypad Key
  187.   X00000000000000  Alternate Keypad Key
  188.  
  189.  special bits
  190.  bit 31: 0 = not valid for this window, 1 = valid for this window
  191.  
  192. See the example program testkysns.c for implementation.
  193.  
  194.  
  195.  
  196. SS_KyImg ($AE)
  197.  
  198. Entry Points:
  199.     d0.w    = path
  200.     d1.w    = $AE
  201.  
  202. Exit Points:
  203.     a0.l    = the address of the 16 byte keyboard image
  204.  
  205. NOTES:
  206.     Keydrv uses a 16 byte keyboard image to keep track of which keys are
  207. up and which are down at a given time.  Each bit in the 16 byte buffer
  208. is an offset based on a "key code" which is common across different
  209. types of keyboards (refer to the file 'keyboard_abstract' for a
  210. listing of key codes).
  211.  
  212.     This call should be used only if information for a particular cannot
  213. be gleaned from the SS_KySns call.  Also, the call may be changed in
  214. the future, depending on changes made to the keydrv module.
  215.  
  216. See the example program testkyimg.c for implementation.
  217.  
  218. ---------------------------------------------------------------------
  219.  
  220. SysReq
  221.     In an attempt to free up keystrokes on the keyboard, an agreement
  222. was made to use the SysReq key as the lead-in key for all window and
  223. system oriented keystrokes.  Accessing the SysReq key can be different,
  224. depending on which brand of keyboard you have.  Usually, it is invoked
  225. by holding down the ALT key, pressing the key with the SysReq label on
  226. it, then release both keys.  On other keyboards (like mine), SysReq is
  227. a key unto itself, and it is only necessary to press that key to invoke
  228. a system request function.
  229.  
  230.     After pressing the SysReq key (either by ALT-SysReq or some other
  231. similar keystroke), the following keys cause corresponding actions to
  232. be taken:
  233.  
  234.     R   = Resize the window
  235.     M   = Move the window
  236.     B   = Throw the window to the back of the window stack
  237.     D   = Debugger/Reset.  If you have ROMBug or some other ROM-based
  238.           debugger installed, it will be invoked; otherwise, this
  239.           will reset your machine.
  240.     UP  = Turn on keyboard mouse (NOTE: This is the up arrow on the
  241.           numeric keypad, NOT the up arrow on the alternate keypad)
  242.     DN  = Turn off the keyboard mouse (NOTE: This is the down arrow on
  243.           the numeric keypad, NOT the down arrow on the alternate keypad)
  244.  
  245.     Any other key is ignored.  Note that the CTRL/ALT/A, CTRL/ALT/B,
  246. and CTRL/ALT/SPACE keystrokes still resize, back, and move the window,
  247. but hopefully they will be phased out in favor of the newer SysReq
  248. method.
  249.  
  250.  
  251. Keyboard Mouse
  252.     The keyboard mouse now fully supports all three mouse buttons on
  253. the keyboard.  Once the keyboard mouse is activated (using SysRq-Up),
  254. the key are used to control the mouse cursor:
  255.  
  256.  
  257.     UP Arrow on the Numeric Keypad           8 pixels up
  258.     DOWN Arrow on the Numeric Keypad         8 pixels down
  259.     LEFT Arrow on the Numeric Keypad         8 pixels left
  260.     RIGHT Arrow on the Numeric Keypad        8 pixels right
  261.     SHIFT + Any arrow above                  1 pixel increments
  262.     ALT + Any arrow above                    extreme side of screen
  263.  
  264.     0/INS on the Numeric Keypad              mouse button 1
  265.     ./DEL on the Numeric Keypad              mouse button 2
  266.     ENTER on the Numeric Keypad              mouse button 3
  267.  
  268.     Note that the keyboard mouse does NOT work with the alternate
  269. keypad arrows (these are usually found on the newer 101-key keyboards).
  270. The reason for this that the user does not have to lose the functionality
  271. of having arrow keys just because the keyboard mouse is on.  The downside
  272. is that part of the numeric keypad has to be sacrificed as a result when
  273. the keyboard mouse is in use.
  274.  
  275.     Another neat bonus:  holding down two adjacent arrow keys allows the
  276. mouse cursor to move diagonally.
  277.  
  278.  
  279. Part 3 -- WINDIO #54 BUG LIST
  280.  
  281.     As stated earlier, there are still bugs which were not fixed in
  282. this version of windio.  Below is a list of the known ones:
  283.  
  284. 1. There is a problem where PUTting will throw extra garbage onto the
  285.    screen.  The following display code grabs the first character on the
  286.    second line of the screen, and attempts to put it it on the 80th
  287.    column.  Notice the junk that is spilled on the left side of the first
  288.    line when the second display code is evoked.
  289.  
  290.         display 1b2c dc05 0000 0008 0008 0008
  291.         display 1b2d dc05 0278 0008
  292.  
  293.  
  294. 2. The following command will crash your system:
  295.  
  296.          display 1b21>/w
  297.  
  298. 3. The OPutBlk (offset put block) function does not work on type
  299.    3, 4, 5, 8 or 9 screens (40 columns)
  300.  
  301.