home *** CD-ROM | disk | FTP | other *** search
/ Amiga Elysian Archive / AmigaElysianArchive.iso / emulate / qdos4ami.lha / docs / updates.txt < prev    next >
Text File  |  1990-05-26  |  15KB  |  345 lines

  1. The Problems with some Floppy drives were caused by a missing Diskchange
  2. signal from those floppy drives. This Bug is fixed by a new command:
  3. DSKCNG (means DISKCHANGE). This command must be given after the new
  4. Disk is inserted. Then you should access this Disk by a DIR command.
  5.  
  6. Another Problem was caused by the missing hardware clock on some Amiga 1000
  7. and Amiga 500 computers. Okay, forget it.
  8.  
  9. The IO.FLINE bug (caused crash on BASIC LOAD) in the Janus device driver
  10. is removed. Please install the new QLDISK.COM on your PC side.
  11.  
  12. --------------------------------------------------------------------------
  13.  
  14. Thanks to Rod Crookes, who send me his patched Version of the QDOS
  15. for english keyboards. This was the main Reason for this Update
  16. He had send to me much more usefull stuff, but i think it is
  17. better not to include such software in a PD-Disk, since there may
  18. be a copyright on it...
  19.  
  20. The Load_QDOS routine has been changed to avoid loading QDOS at
  21. absolute addresses. This should be of great use to all of you, who
  22. had trouble with the second floppy drive.
  23.  
  24. There are now two different files QL2MB, which can cope with different
  25. addresses of fast memory, namely $200000 and $400000.
  26. These files now contain this address as second part of theier name.
  27.  
  28. In general, this update is more "Amigaized", and so, perhaps more
  29. easy to understand. Thanks to Joern Ryba for the nice Icons.
  30.  
  31. At the last update, I asked for Help with the CRC-sum of the WD1770.
  32. Two weeks after the update was released, I got a Disk from Mark J. Swift
  33. with a patch to the FLOPPY_CDE driver. Actually, this program was some
  34. months older, but late is better than never !
  35. You should now be able to read Disks on a 
  36. normal QL which have been written to by QDOS on the Amiga. 
  37. May be, if i have more time, i will include the CRC generator in
  38. the assembler source, and enable checking of bad data again. But up to now
  39. it should be enough to have normal QDOS disks. Attention ! you should
  40. not expect, that you only have to show your Disks to QDOS to get them
  41. corrected ! You will have to format another Disk, and copy ALL files to
  42. the new Disk !
  43. Thanks to Mark J. Swift.
  44.  
  45. 18.3.1990
  46.  
  47.                               ********************************
  48.                               *                              *
  49.                               *      VERSION 3.10 UPDATES    *
  50.                               *                              *
  51.                               ********************************
  52.  
  53. Since most of the material for this Update comes from M.J.Swift,
  54. I include his last comment here. After this I will continue with
  55. my own remarks to this Update:
  56. -------------------------------------------------------------------
  57.       VARIOUS BUG FIXES BY M.J.SWIFT AND F.N.SWIFT APRIL 1990
  58. -------------------------------------------------------------------
  59.  
  60. CONTENT.
  61.  
  62. This text file describes the changes that my brother and I have made to the
  63. the files on the QDOS3.03C release. Each change takes the form of a patch,
  64. the various source files concerned were NOT re-assembled. Here is a list of
  65. the relevant patches.
  66.  
  67.  
  68. Patch to QDOS_cde
  69.  
  70. Offset $2C8, $11A bytes long.
  71.  
  72.  
  73. Patches to FLOPPY_cde
  74.  
  75. Offset $10E8, $5E bytes long.
  76. Offset $14A2, $E bytes long.
  77. Offset $1710, $C bytes long.
  78. Offset $1A44, $2A bytes long.
  79.  
  80.  
  81. -------------------------------------------------------------------
  82.              CHANGES TO QDOS_uk, QDOS_dt and QDOS_2000B
  83. -------------------------------------------------------------------
  84.  
  85. A PROBLEM WITH SV.BTPNT
  86.  
  87. There was an obscure bug which caused the machine to crash whenever the
  88. slave blocks filled up. The bug meant that on a small machine QDOS was
  89. extremely unreliable.
  90.  
  91. A brief explanation.
  92.  
  93. Every block of 512 bytes above the start of the system variables is a
  94. potential slave block and has an entry of eight bytes in a table which
  95. starts at SV.BTBAS and finishes at SV.BTTOP. Great care is taken to make
  96. sure that the length of this table IS divisible by eight. The system variable
  97. SV.BTPNT points to the most recent slave block entry and is initially set to
  98. point half way through the table. Unfortunately no checks are made on the
  99. value of SV.BTPNT itself which should also be divisible by eight. As it
  100. turns out, SV.BTPNT was ALWAYS initialised incorrectly.
  101.  
  102. In my version I correctly initialise the table for values of lomem that
  103. are higher than the system tables (which was formerly accomplished in the
  104. initialisation routine for BASIC) and set SV.BTBAS to be half way between
  105. the first usable entry, and the first unusable entry. The slave block
  106. pointed to by SV.BTBAS is now guaranteed to be usable.
  107.  
  108. As a result the "no clear" flag used by MM_ALCHP is possibly now redundant,
  109. although I've left it alone as it might be called by another routine.
  110.  
  111.  
  112. A PROBLEM WITH SV.RAMT
  113.  
  114. Before this patch it was very difficult to choose a value for ramtop,
  115. (besides the defaults) that did not cause the machine to crash. This problem
  116. was again due to bad initialisation. In essence the start of the common heap
  117. has to fall on a 512 byte boundary and certain values of ramtop meant that
  118. this was not always the case. With the patch shown here, ramtop can be set
  119. to any value that is divisible by 512.
  120.  
  121.  
  122. THE QDOS PATCH.
  123.  .
  124.  .          (* I have removed the Patch, since it is done now RAKO *) 
  125.  .
  126.  
  127. -------------------------------------------------------------------
  128.                          CHANGES TO FLOPPY_cde
  129. -------------------------------------------------------------------
  130.  
  131.  
  132. DIRTY BOOTS.
  133.  
  134. There is a puzzling bug in the floppy code which prevents the machine from
  135. automatically running the BOOT program from a QDOS disk, should there be
  136. one in the drive when you invoke QDOS. Also any attempt to access such a
  137. disk will be greeted with a 'not found' or a corrupt directory unless you
  138. physically remove and then re-insert the disk in the drive. I couldn't trace
  139. the bugs down (they are somewhere in the FLOPPY1_asm code) but managed to
  140. over-ride them by signalling a disk change in the initialisation routine
  141. of FLOPPY2_asm.
  142.  
  143.  .
  144.  .     (* again the patch is left out here. RAKO *)
  145.  .
  146.  
  147. This works fine when booting from flp1_ but what if you want to boot from
  148. the second drive? The same old problem crops up again. As it is at the
  149. moment the software disk change flag (CNG_FLG) can only handle one disk
  150. change at a time. We need to signal that the disks in ALL drives have
  151. changed, it is therefore necessary to change the way the flag is accessed.
  152.  
  153.  .
  154.  .     (* I don't want to bother you with this Patch RAKO *)
  155.  .
  156.  
  157. -------------------------------------------------------------------
  158.                  CHANGES TO THE LOAD_QDOS ROUTINE
  159. -------------------------------------------------------------------
  160.  
  161.  
  162. The newer loader New_Load_QDOS is certainly better than the old, but it
  163. still requires you to allocate absolute areas of memory which is not
  164. guaranteed, particularly if you are starting QDOS from the ramdisk, or
  165. if memory has become fragmented by other applications.
  166.  
  167.  
  168. L_QDOS COMES TO THE RESCUE
  169.  
  170. The loader routine L_QDOS makes no assumptions about the availability of
  171. particular areas of memory and can be started from CLI or workbench without
  172. having to use IconX. To use L_QDOS from the workbench, create a project icon
  173. that has L_QDOS as the DEFAULT TOOL. When you double click on the icon,
  174. L_QDOS will take its parameters from the icons' TOOLTYPES field.
  175.  
  176. The files QL512 QL512x QL1MB_chip QL2MB_20000 and QL2MB_40000 all use
  177. this method when loading QDOS. If you click once on any of these icons
  178. and then choose 'info' from the workbench menu, you will be presented
  179. with an example of parameter passing through the TOOLTYPES field.
  180.  
  181.  
  182. STARTING QDOS FROM RAMDISK
  183.  
  184. Q. Why should I want to?
  185.  
  186. A. If you only have one drive, its the easiest
  187.    way to do an auto-boot of a QL disk.
  188.  
  189. If you wish to start QDOS from ramdisk, copy all the necessary files into
  190. the ramdisk, remove the Amiga disk and put in a QL disk (it will show up as
  191. bad on the workbench). Open up the ramdisk and start QDOS as normal. When
  192. QDOS has loaded it will automatically load and then run the BOOT program
  193. from your QL disk.
  194.  
  195. In order to make the process easier I have placed two files on disk called
  196. UKtoRAM and DTtoRAM which do most of the hard work for you.
  197.  
  198. You should note that if you start QDOS from RAM on an unexpanded A500 with
  199. a 'Friends only' version of the QDOS disk, L_QDOS will run out of memory
  200. due to the size of the file MIXTOOL_cde. If you do not possess MIXTOOL_cde
  201. or if you delete it from the disk, there should be no problems.
  202.  
  203.  
  204. SYNTAX FOR THE LOADER ROUTINE L_QDOS
  205.  
  206. usage:   L_QDOS [QDOS_file]        The name of the QDOS rom file.
  207.          [-s<ssp>]                 A value for the system stack.
  208.          [-m<lomem><+len|-himem>]  Which area of memory should be used.
  209.          [-c<lomem><+len|-himem>]  Which area(s) of memory should be cleared.
  210.          [-r[himem] rom1 rom2..]   The upper limit for memory to be used
  211.                                    by ROMs, followed by the names of each
  212.                                    ROM file.
  213.  
  214. Example:
  215.  
  216.    L_QDOS QDOS_uk -s$28480 m$0-$80000 -c$0-$80000 -r$80000 TKamiga_cde
  217.                                          JAN_cde FLOPPY_cde SERPAR_cde
  218.  
  219.    ...loads the British version of QDOS, sets the system stack to its normal
  220.    value, sets the bottom and top of usable RAM to be in CHIP memory, clears
  221.    all remaining CHIP memory, loads the relevant ROM images, and surrenders
  222.    the Amiga to QDOS.
  223.  
  224.  
  225.    If you have extended memory at $C80000 then you might like to try:
  226.  
  227.    L_QDOS QDOS_uk -s$28480 m$C00000-$C80000 -c$0-$80000 -c$C00000-$C80000
  228.                        -r$80000 TKamiga_cde JAN_cde FLOPPY_cde SERPAR_cde
  229.  
  230.    ...sets the bottom and top of RAM to be in extended memory, loads
  231.    the stated ROMs in CHIP memory, clears all remaining memory and
  232.    initiates QDOS.
  233.  
  234.  
  235. The C and assembly source for L_QDOS are called 'L_QDOS.c' and 'SUB.asm'
  236. and can be found in the directory ':src'. L_QDOS uses a customized Cstartup
  237. code which allows a C program to treat the TOOLTYPES of an icon as if they
  238. were the parameters of a CLI command. Cstartup.o can also be found in the
  239. ':src' directory and should be BLINKed with L_QDOS.o and SUB.o should you
  240. feel the need to alter L_QDOS.
  241.  
  242.  
  243. -------------------------------------------------------------------
  244. A FINAL WORD.
  245. -------------------------------------------------------------------
  246.  
  247. Finally, I created a new file called QL512x for people with extended memory
  248. at $C00000, moved all the QDOS rom image files into a directory called
  249. 'roms' and added this file to the docs directory.
  250.  
  251.  
  252. Mark J. Swift - Manchester, England. - 18th April 1990
  253.  
  254. -------------------------------------------------------------------
  255.  
  256. ************************************************************************
  257.       RAKO       RAKO      RAKO     RAKO      RAKO      RAKO
  258. ************************************************************************
  259. Here I'm back again. I have changed the source code according to
  260. Marks patches (GRRMPF!) and recompiled everything to a new Version
  261. of QDOS. The following changes have been added by me now:
  262.  
  263. 1) The foreign Keyboard Manager TRAP #1 , D0=$27 , D1=Address of table
  264.    is used to alter the keyboard table (default is German)
  265.    Look at the file QL_EMU:src/QLASCII_asm.
  266.    You can not use an Amiga assembler !
  267.    As a consequence of this TRAP , there is no more need for two Versions
  268.    of QDOS. You will not have QDOS_dt and QDOS_uk anymore.
  269.  
  270. 2) QDOS_2000B is not supported anymore, since I hope you have upgraded
  271.    your Amiga to 1MB chipmemory. If not, then you should do so as
  272.    fast as possible !
  273.  
  274. 3) I have added batch files for starting QDOS to aid you in creating
  275.    a "turnkey Disk". You can use these Batchfiles from the WB by
  276.    changing the default tool to "c:IconX".
  277.  
  278. 4) some minor inconsistencies have been removed (The PAL bit is set,
  279.    the Modulo is set correct)
  280.  
  281. ›33m
  282. 5) QDOS itself (and the Floppy device) should now be 68010/20/30/40 proof.
  283.    I have tested it shortly, and it seemed to work.
  284.    To keep further compatibility, and make software devellopment
  285.    more easy, I have added a new feature to the     TRAP #0
  286.    (enter supervisor mode). It now saves the old Status Register
  287.    as a word in the new defined System Variable   SV.SR = $28024
  288.    All you have to do now to get the current Statusregister saved is
  289.    TRAP   #0
  290.    MOVE.W $28024,anywhere
  291.    (Since the MOVE SR,anywhere instruction is privileged in 68010/20/30/40)
  292.    Of course, this applies only for QDOS programms which are
  293.    designed for the Amiga only, since the above feature is shurely
  294.    not supported on ATARI, THOR, and QL machines.
  295.    The other difference between 68000 and 68010/20/30/40 machines is
  296.    that all TRAPs save an additional (Vector Base) Register on the Stack.
  297.    So you should avoid to use RTE instruction, when you want to
  298.    pop the SR and return to the calling programm.
  299.    A last word about this: All TAS replaced programms will show
  300.    (at least) a very strange behaviour when you try to run them on
  301.    a 68030 machine with coprocessor, since the line $F... emulator
  302.    is used for coprocessor implementation. I am writing a new
  303.    TAS replacer for this purpose, which don`t generate line $F...
  304.    instructions anymore. This will have the name
  305.          *****************************************
  306.          *                                       *
  307.          *             No_TAS_30_BAS.            *
  308.          *                                       *
  309.          *****************************************
  310.    Please look, if this file is allready included in the src directory.
  311. 6) There are new Toolkits (even for the PD-Disk) named BTOOL_cde
  312.    and MATCH_cde, both from Boris Jakubith, and both Freeware.
  313.    Please refer to the separate Manual for these.
  314.    !! I did not appended them to the List of TOOLTYPES in the
  315.       QL-Icons, because
  316.       1. The BTOOL has functions with the same name as those
  317.          from the Toolkit II, but with incompatible arguments !
  318.       2. The L_QDOS from M.J.Swift does (yet) not allow so
  319.          much Toolkits to be specified in the TOOLTYPES.
  320.          (Next time I'll return to the good old ICONX) !!
  321.       (It took me nearly a whole day to get to this point!
  322.        People seem to think, I have nothing else to do !
  323.        Perhaps next time I remove these stupid Toolkits,
  324.        when I need the Diskspace for something else.
  325.        The documentation from Boris is in German anyway.)
  326.  
  327.  
  328. AND NOW I HAVE TO SAY SOMETHINGS ABOUT HOW TO MAKE CHANGES TO QDOS:
  329. PLEASE DO CHANGE THE SOURCES, AND MARK ALL CHANGES WITH A SPECIAL
  330. COMMENT (e.g. a unique combination of special characters).
  331. WRITE DOWN (on white paper) WHICH ROUTINES (Label names) YOU HAVE
  332. MODIFIED, AND SEND BOTH (DISK AND PAPER) AS FAST AS POSSIBLE TO ME.
  333. I will put all changes together to make a new Version of QDOS.
  334. ›31m
  335.  
  336. Thank you,
  337.  
  338. Rainer Kowallik   , May 1990
  339. Eisackstr. 14
  340. 1000 Berlin 62
  341.  
  342. (030) 855 866 5
  343.  
  344. Kowallik@vax@hmi@dbp.de
  345.