home *** CD-ROM | disk | FTP | other *** search
/ Amiga Elysian Archive / AmigaElysianArchive.iso / emulate / qdos4ami.lha / docs / Alpha_QDOS_TXT < prev    next >
Text File  |  1990-05-20  |  20KB  |  413 lines

  1.           QDOS for the AMIGA
  2.           ------------------
  3.  
  4. 1) Introduction and motivation
  5. ------------------------------
  6.  
  7. I have bought my first QL at 1984 in Berlin, and since this time the
  8. QL has proofed to be a very handy tool for all kind of computer work.
  9. But unfortunately this computer was not very popular, it was difficult
  10. to get anything (software and hardware) for the QL, and without the
  11. usergroup, I would have given up very early. With the advent of the
  12. ATARI 520 ST and the increasing popularity of the IBM clones the
  13. QL became more and more uninteresting for new users, and Sinclair
  14. lost interest in the computer himself.
  15. So far so bad, but after checking the possible alternatives, there
  16. was actually no computer which was really much better than the QL.
  17. So the Idea came up to build a new computer with 68000 CPU and
  18. a reasonable keyboard. But why building a new computer, when you
  19. can buy one ?
  20. For this purpose the AMIGA seemed to be best suited. It is
  21. highly expandable and has many hardware features allready on board.
  22. Furthermore, it seemed to be more easy to emulate the QL screen
  23. on the AMIGA, than on the ATARI.
  24.  
  25.  
  26.  
  27. 2) What has been done up to now
  28. -------------------------------
  29.  
  30. The gamma version was made from a disassembly of the JS-ROM,
  31. which was expanded in some features and testet on the QL.
  32. The QL-screen emulation is performed using the Blitter, which
  33. makes it a very fast process, costing nearly no CPU time.
  34. The keyboard is emulated in most features (including Ctrl-Alt-7)
  35. and Keyrow (using the IPC) is working on all programs.
  36. Additionaly a default trap handler has been installed, which will
  37. tell you what happend at what address, and return to SuperBASIC.
  38. The program must be assembled on the QL using the GST macro assembler.
  39. NO OTHER assembler can be used (I have tested some Amiga assembler,
  40. but there is no Assembler, which has a linker and is really bug free.
  41. The best result gave the Atztec-C assembler. It was able to assemble
  42. all files, but the linker crashed the system when attempting to link the
  43. QDOS file.)
  44. Apart from the MicroDriVes and the NETwork all standard QL devices are
  45. implemented: CON_ , SCR_ , PIPE_ , SER1 , PAR , FLPn_ . The RAMdisks are
  46. running too, but it is only included in the ! Friends only Version !
  47. The clock should run too, if you use the system routines.
  48. The T.Tebby toolkit is working also, when TAS instructions are replaced.
  49. * Additionally in This Version  (3.01) a JANus device driver is  included
  50. * which allows you to use the Harddisk from the IBM Sidecar.
  51. ** A FLoPpy driver accomplishes the system in this release (3.03)
  52. ** The Amiga mouse is integrated, QRAM (pointer interface) and MPAINT
  53. ** have proofed to work correctly with it.
  54.  
  55. Disks supplied:
  56. Version 3.03 comes on 3 disks:
  57. Disk 1 is a Amiga BOOT disk, it contains this document (Alpha_QDOS_TXT)
  58.        an introduction to QDOS (QDOS_INTRO) an old description for the
  59.        RK00 Version (RK00_INFO) and the QDOS system, ready to BOOT.
  60.        Additionally, some Programs for File transfer and other utilities
  61.        are included in executable and source form.
  62. Disk 2 is in QDOS format and contains the Assembler source for QDOS.
  63.        This Disk should be copied using INDEX synchronization 
  64.        and nibble mode or the QDOS DISKCOPY.
  65. Disk 3 is also in QDOS format and contains some Utilities and patched
  66.        programs. Specifically programs to support Filetransfer,
  67.        TAS replacing and using the PROSPERO compilers.
  68.  
  69. NOTE ! if you give this Disk to other persons, please copy all 3 disks !
  70. If you possess a "Friends only" version, then delete the Files
  71. TOOLKIT_CDE and MIXTOOL_CDE and change the startup-sequence accordingly
  72. before giving this Disk to others.
  73.  
  74.  
  75. Files supplied:
  76. *** In this sector there are a lot of changes since the early versions.
  77. *** Mostly the Batch files have become redundant.
  78. *** But I am too lazy to update this list. So here it is:
  79.  
  80. QDOS                          The complete running QDOS
  81. TKamiga_CDE                   The T.Tebby toolkit without TAS instructions
  82.                               !!! Friends only !!!
  83. MIXTOOL_CDE                   A combined toolkit including EDITOR
  84.                               and RAMdisk and QMON and Qliberator
  85.                               runtime library
  86.                               !!! Friends only !!!
  87. QL_EXTRA                      batch file to start the QL-emulator
  88.                               in fast memory
  89.  
  90. S/startup-sequence            start the QDOS 512k system
  91. AllocAbs                      used to allocate Memory
  92. Lbytes                        used to load files into memory
  93. Load_Qdos                     This programm moves QDOS from $30000
  94.                               to $00000, sets the clock and memory
  95.                               boundaries. The full format is:
  96.                               Load_Qdos RAMbottom RAMtop SSP
  97.                               All addresses are hex numbers,
  98.                               where RAMbottom and RAMtop should lie
  99.                               in Fast memory, and no care must be taken
  100.                               about Amigados. SSP is the Supervisor
  101.                               Stackpointer and must lie outside the
  102.                               scratch area between RAMbottom and RAMtop
  103. SerQl                         A filetransfer program which can be used
  104.                               to send files from the QL to the Amiga
  105.                               via the serial port. The Handshake lines
  106.                               must be connected for this.
  107.                               Allthough the programm works correct on
  108.                               the Amiga side, it may be difficuld to
  109.                               send files from the Amiga to the QL.
  110.                               I had not the time to search for the
  111.                               reason, but i think the Problem must
  112.                               be the QC compiler on the QL.
  113.                               You can transfer files from the Amiga
  114.                               to the QL nevertheless by sending them
  115.                               with the Amiga SERQL and receiving them
  116.                               with
  117.                               COPY SER2hr to RAM1_hilf
  118.                               and removing the additional bytes in a text
  119.                               editor.
  120.                               Note, that you MUST use the Ramdisk for
  121.                               long files on BOTH computers.
  122.  
  123. SRC/SerQL.C                   Amiga version of SERQL (Aztec C)
  124. SRC/SerQL_C                   QL version of SERQL (QC)
  125.  
  126. SRC/Load_QDOS.ASM             (use Aztec C assembler)
  127. flp2_TAS_replacer_BAS         Superbasic program to replace the
  128.                               TAS instructions in any program.
  129.  
  130. flp1_JAN_ASM                  janus device driver source, QL side
  131. JAN_CDE                       janus device driver binary, QL side
  132. PC/QLDISK.PAS                 Turbo pascal source for IBM part
  133. PC/QLDISK.COM                 compiled version (TURBO 3.0 !)
  134. PC/AUTOEXEC.BAT               example for IBM
  135.  
  136. flp2_QLTRA_BAS                file transfer program QL->QLamiga, source
  137. flp2_QLTRA_OBJ                compiled version (4800 BAUD  !!!)
  138.  
  139.  
  140.  
  141. 3) Known Bugs !!!
  142. -----------------
  143.  
  144. To Start with the hardest one: The Amiga hardware does not allow
  145. the CPU to get two contigues bus cycles. This means, that any
  146. read - modify - write cycle is dammed to fail.  More precise:
  147. the TAS instruction does not work ! neither in Chip nor in Fast memory !
  148. To get around this problem, the line $F... emulator was programed
  149. to emulate the TAS instruction. Now you just need to run TAS_replacer_BAS
  150. on any program which contains TAS instructions to replace them by
  151. the appropriate line $F... instruction.
  152. So far, so good, but the sideeffect may be as follows:
  153. One day you want to give a program to a friend with a normal QL.
  154. If your program needs a library, which contains TAS instructions,
  155. then it will now contain line $F... instructions. On a normal QL
  156. this will cause a total system crash. Thats it !
  157.  
  158. The Next Bug is perhaps correlated with this. The RAMdisk (QRAM)
  159. can not be formatted correctly, although i have applied TAS_replacer_BAS
  160. to it. This should not bother you too much, since you can still use it.
  161. But if you try to use the Qliberator compiler with an unformatted
  162. RAMdisk, you may have some trouble. Just try some other RAMdisks.
  163. !!! The RAMdisk is only included on the friends only Version !!!
  164.  
  165. ** The obscure Memory Management Bugs are fixed in this Version (3.03)
  166. *** The Slave Block Bug is fixed in 3.10 by M.J. Swift
  167.  
  168. For those, who want to program amiga hardware under QDOS, I want to
  169. give one essential hint:
  170. Interrupts and DMA are very very very critical. You MUST enable your
  171. interrupts directly after starting QDOS.
  172. You should never disable interrupts in INTENA. Use 'OR #$0700,SR' instead.
  173. You should reset interrupt requests only once and only those which
  174. really have occured.
  175. If you fail to do so, then NOTHING will work, even if you don't need
  176. interrupts !
  177.  
  178. A last remark must be made upon the keyboard. You should try to buy a
  179. computer in Germany with an English keyboard. Hopeless !
  180. This stupid selling staff can not imagine, that not everybody who buys
  181. a computer is a secretary which needs ä,ö,ü in the proper place.
  182. So you have always the pleasure to search for @,[,],{,},_,Y,Z and many
  183. other commonly used keys. But this does only bother those, which
  184. must write programs for computers, and not the so called "User"
  185. which is a much better, this means richer, person.
  186. Okay, what i want to tell you is, that the keyboard emulation is only
  187. good for German Amigas and not for English Amigas.
  188. For the first time you can use ALTKEY to redifine some keys.
  189. But over a long range you have to change the QLASC... tables
  190. in the QDOS_ASM file and generate a new QDOS version.
  191. The sideffect is, that KEYROW may contain some minor inconsistencies.
  192.  
  193. * The keyboard emulation has proofed to fail on certain keyboards.
  194. * This Bug should be fixed now !
  195.  
  196. * The Ctrl-C , Ctrl-spc , Ctrl-F5 'bug' is fixed  now !
  197.  
  198. *** An english keyboard emulation is included. A source for this Emulation
  199. *** can be found in the "SRC" directory of this Disk. it is named
  200. *** QLASCII_asm. You should not try to assemble it on the Amiga, since
  201. *** this will not produce the correct object code.
  202.  
  203. If you have fixed a bug, I will be greatfull when you can send me the
  204. corrected SOURCES or inform me about the reasons.
  205.  
  206. 4) New standards
  207. ----------------
  208.  
  209. (Read also RK00_INFO !)
  210. Changes to the System variables:
  211.  
  212. $28002              Flag byte, now contains the following flags:
  213.                      Bit 0 : 0 => OPEN path enable
  214.                      Bit 1 : 0 => OV error disable
  215.                      Bit 2 : 1 => No clearing of memory on MM.ALCHP
  216.  
  217. $28003              Is the contents of CIA-A ICR, updated by interrupt
  218.                     from the Keyboard server. The new value is ORed to
  219.                     the old one.
  220.  
  221. $280A2              in previous versions this was the Caps lock routine
  222.                     address. Since this was never used, i have changed
  223.                     its meaning. It is now a long word offset to the
  224.                     system clock. should not bother you.
  225.  
  226. $280F2              Priority increment of the QL screen emulator.
  227.                     the following byte is increased by 2*contents
  228.                     of this byte, if the result is negative, the
  229.                     next plane (green or red) is updated.
  230.                     Default is 20dez. This will not cost any CPU time.
  231.                     A value of 80dez. will cost 20% CPU time,
  232.                     and a value of 127dez. will cost 30% CPU time.
  233.                     If you set this byte to zero, then the emulation
  234.                     is switched of after the next vertical blank int.
  235.  
  236. $280F3              actual QL screen emulator priority.
  237.                     This byte should be set to zero too, when switching
  238.                     off the screen emulation.
  239.  
  240. $280F4              Address of Blitter interrupt server.
  241.                     If you have switched off the QL screen emulation,
  242.                     you must wait until this Long word contains 0.
  243.                     Afterwards you can link in your own server for
  244.                     Blitter interrupts here.
  245.  
  246. Any program which needs the Amiga hardware interrupts can use
  247. the old MT.LXINT system call. This now handles all interrupts
  248. except the Blitter, Keyboard  and 50 Hz interrupt.
  249. You must read the INTREQ register by your own to decide what to do.
  250. If it was the interrupt you was waiting for, you have to reset it by
  251. your own. You will get the CPU with all interrupts masked out, and
  252. you should not change this status.
  253.  
  254. * The Amiga bitplanes are starting at $18000.
  255. ** The Floppy controller uses the Memory from $10000  on.
  256. * Additional bitplanes can claim the Memory between $14000 - $17FFF.
  257. *** A new Manager Trap is introduced: TRAP #1 with D0 set to $27
  258. *** and D1 containing the address of the new Keyboard table
  259. *** will set foreign Language keyboard tables.
  260.  
  261. ****************************************************************
  262.  
  263. * 5) The JANus device driver
  264. * ---------------------------
  265. In the Gamma release, you had no possibility to save or load
  266. programs from a permanent medium. In the Beta release, I had
  267. included a very simple directory device driver which enables you to
  268. use the IBM-harddisk on the Bridgeboard. Of course you can make
  269. use of this program only, if you posses the IBM bridgeboard (sidecar)
  270. and a  Harddisk in one of the IBM compatible slots.
  271. (But the floppy on the  IBM will give you  at least 360K.)
  272. The JANus devicedriver expects the program QLDISK.COM running on
  273. the IBM side. This program is also included in source format (QLDISK.PAS)
  274. and must be compiled with TURBO pascal 3.0 !
  275. any filename has the form:         JAN1_name_ext
  276. where 1[,2,3,4,5,6,7,8] has no function.
  277. The extension is converted from _ext  to .ext automatically.
  278. Names consist  of capital letters only and must not be longer than 8
  279. characters.
  280. Subdirectories and file conventions of MS-DOS are used.
  281. If you try to read MS-DOS files from QDOS, you will experience some
  282. trouble, since QDOS needs a 64 byte fileheader, which is of course
  283. not present in MS-DOS files. The other way around, you will find
  284. 64 additional bytes at the top of any QDOS file, when you try to read
  285. QDOS files from the  IBM side.
  286. additional BASIC extensions:
  287. CHDIR "path"                  changes the  subdirectory path (CD on IBM)
  288. MKDIR "name"                  make subdirectory (MKDIR on IBM)
  289. RMDIR "name"                  remove subdirectory (RMDIR on IBM)
  290. SHODIR                        display the actual path at channel #1
  291. JAN_USE "abc"                 set up a new device name for JAN (eg MDV)
  292.  
  293. For transfer of files between the QL and QDOS on the amiga you
  294. can use the program QLTRA_BAS or QLTRA_OBJ.
  295. This program transferes a complete disk.
  296. Up to now you should not try to operate  on more than 4800 Baud.
  297. It is  also essential, that  you don't type anything on the keyboard
  298. while files are transfered. This is because interrupts from the serial
  299. port are disabled while processing the keyboard interrupts.
  300.  
  301. ** Access of MS-DOS files is possible in the new Version using
  302. ** a filename which contains a 'commercial at @' (eg. D:\@AUTOEXEC.BAT)
  303. ** A backwards searchlist is established, which scans all parent directories
  304. ** for OPEN old file QDOS calls 
  305. ****************************************************************
  306. ****************************************************************
  307. Version 3.03 comes with a floppy device driver for QDOS floppies.
  308. This device driver is not the fastest one, and there are lots of
  309. bugs, but for the first time you can use it.
  310. The Format of a QDOS filename on the floppydisk is FLPn_name_ext.
  311. Where FLPn_ is the device name. FLP1_ stands for DF0:, FLP2_ for DF1:
  312. and so on (sorry, QDOS convention was first). Filenames can consist of
  313. up to 32 characters. The *D2D random access convention is emulated in
  314. full scale, so that CP/M and MS-DOS emulator should work.
  315. Additional extensions:
  316. DISKCOPY
  317.    make a track to track copy from FLP1_ to FLP2_
  318.    You should use DISKCOPY instead of FORMATing a Disk, since
  319.    Formating a Disk takes 8 minutes !
  320. RQDISK drive,side,track
  321.    Read one Track from a drive to the Trackbuffer ($10000) and
  322.    convert from MFM to ASCII
  323.  
  324. Bugs and Hints:
  325.  
  326. Again the hardest Bug first:
  327. *** This Bug has been fixed in Version 3.10 by M.J. Swift.
  328. You can read QDOS disks and write files on Disk, and do everything
  329. like on the QL. But when you try to read a Disk which was written on
  330. the Amiga using a normal QL, you will not be able to read anything !
  331. This is because the CRC calculation routine in my driver does not
  332. work correct. I have tested every possible combination, but i couln't
  333. find the bug. If you are able to fix it, please let me know!
  334.  
  335. Some combination of Floppy drives have proofed to give unreadable
  336. Disks. This depends much on the drives of your Amiga AND the drives
  337. of your QL. Up to now, my Amiga was able to read every QDOS disk,
  338. but a friend had trouble to read the same disks.
  339.  
  340. A little hint:
  341. Normally QDOS scatters the sectors of adjencent blocks on different
  342. sides of one disk. This doesn't matter with a WD1770, but it makes reading
  343. a Disk on the Amiga unneccessary slow. You can gain a factor of 3 in speed,
  344. when you FORMAT a Disk on the Amiga (afterwards just make a DISKCOPY from
  345. this Disk) and copy the files from the original QDOS Disk to the Amiga disk.
  346.  
  347. *************************************************************
  348.  
  349. 6) What has to be done next
  350. ----------------------------
  351.  
  352. These are the most important things to do, but unfortunately
  353. I don't have enough time to do this all by myself. I am writing
  354. my doctor thesis in Physics, and this will cost most of my time.
  355. So I am looking for people who are interested in this project
  356. and are able and willing to do some work for it.
  357. I think, it is best you contact me to get information about a specific
  358. part of the project. So you can avoid to invent the wheel a second
  359. time. You can reach me by post mail:
  360. Rainer Kowallik, Eisackstr. 14, 1000 Berlin(W) 62 (Germany)
  361. By Phone:
  362. (Germany) 030 855 866 5
  363. By EAN mail
  364. Kowallik@vax@hmi@dbp.de              or in the new form:
  365. S=KOWALLIK;OU=VAX;P=HMI;A=DBP;C=DE
  366.  
  367. ALL PROGRAMS HAVE TO HAVE THE FORMAT OF A STANDARD QL-ROM.
  368. NO OTHER INTERFACE THAN A ROM TOOLKIT SHOULD BE USED !
  369.  
  370. Subject                                              programmer
  371. -------------------------------------------------------------------------
  372. An adaption of the Toolkit network server which    |
  373. uses the CD bit of the serial port (CIA-B, PRA #5) |
  374. The transmission speed should be changeble         |
  375. -------------------------------------------------------------------------
  376. A device driver for the Harddisk DH0, using        |
  377. subdirectories and fileformat of Amigados          |
  378. -------------------------------------------------------------------------
  379. New SCR_ and CON_ drivers which can use all        |
  380. features of the Amiga (32 colours, extra halfbright|
  381. Interlace, overscan)                               |
  382. -------------------------------------------------------------------------
  383. QDOS Disk Read and write access under Amiga DOS    |
  384. -------------------------------------------------------------------------
  385.  
  386.  
  387. 8) Copyright statement :
  388. ------------------------
  389.  
  390. Since I have really spend much time on develloping this QDOS emulator,
  391. I think that it is not imoral to claim this emulator as my program.
  392. Nevertheless QDOS and the related names are protected by the ones
  393. who have now the rights (is it sinclair again, or amstrad, or t.tebby
  394. or who or what ?)
  395. But this should not stop you from spreading this disk, as long as you
  396. are shure, that no commercial use is made from all that stuff.
  397. I am shure, that these  programs are only interesting for people
  398. who have or have had a QL or THOR, and so have allready paid for this
  399. software. Those who are working with these programs and don't posses
  400. a QL are invited to buy a second hand QL or so.
  401.  
  402. 9) Acknoledgement
  403. -----------------
  404.  
  405. Thanks to
  406. Wolfgang Schroeder and Joern Ryba for discussion,
  407. Boris Jakubith and Mathias Leidig for the CRC generator,
  408. Andreas Ihlenfeld for his Keyrow MT.IPCOM,
  409. M.J.Swift for all of his Bug fixes
  410.  
  411.  
  412. and you for your interest.
  413.