************************************************** *** *** *** Loader for *** *** ^^^^^^^^^^ *** *** F68K *** *** ^^^^ *** *** on the *** *** Sinclair QL *** *** *** *** by Dirk Kutscher *** *** *** ************************************************** Content Hardware Requirements Files Getting started Special features Problems? Remark ************************* * Hardware Requirements * ************************* To start F68K on your QL you need at least one 3.5" disc drive and a minimum of 256 KB RAM. If you lack the disc drive you might be able to run F68K but should not try to use the Streaminterface to access DEVICE1_SCR since it is assumed to provide 300 blocks which you cannot emulate on microdrive. I am working at a mdv version at the moment. ************ * FILES * ************ The loader consists of the following files: bootF68K_QL This is a SuperBASIC-program which initialises the F68K-Disc for the use on a QL-System. If your F68K version was distributed on Atari Disc it is necessary to recreate the QLF68K_exe file (as well as QLCONFIG_exe) since the job information in the header of QL-files (Dataspace etc.) is not available on Atari Discs. Once you have run this program on your QL Disc you can happily forget it. QLF68K_EXE This the EXECutable loader created by boot. Start F68K by typing 'EXEC flp1_QLF68K_EXE'. Of course you can also use QRAM etc.. QLF68K_CDE This is the machinecode program for loading F68K. If you have the -exe file installed it should not concern you anymore. QLF68K_ASM This is the assembler source for the loader. It will probably only assemble on Talent's Workbench Assembler, but it might give you some ideas of how to write your own loaders. (Of course you may also use it to expand the loader). QLF68K_TXT this one CHANGES_TXT loader development documentation QLCONFIG_exe This is the configuration utility for QLF68K_exe. It gives you the possiblity to patch the following filenames according to your personal hardware environment: flp1_F68K_img (the F68K bit image) flp1_F68K_out (the F68K output file) flp1_F68K_in (the F68K input file) flp1_DEVICE1_scr (Blockdevice for RW-access) flp1_STREAMS_scr "" ser1 (Printer device) If you like to keep these names you just have to confirm by hitting ENTER. You are then asked (in German), if you would like these names (except for the printer) to be questioned again when starting F68K. For experiments, first attempts etc. it might be useful to answer 'j' (for 'yes'). If you are familar with the system or even want save a complete application 'n' (for 'No') will make the loader start F68K directly when executed. QLCONFIG_cde The mc-file for the configuration utility. Loaded by bootF68K_QL. ******************* * Getting started * ******************* On executing QLF68K_exe the program first tries to allocate enough space in the memory for F68K. If the neccessary amount of bytes ($10000 + $20028 for code and data) is not available the execution will terminate. After this the program opens the console and gives you the possibility to change the names for the necessary files. (See files.QLConfig_exe) If you do change the names (e.g. the device) you should make sure that these files really exist and that they also can be accessed in the same way as the original file names. If no change is necessary just confirm by hitting ENTER. Now the program is loading the F68K-file (i.e 'flp1_F68K_IMG'). If loading has been succesful F68K should now prompt with the copyright note and with it's 'ok'. If you want to access the Blockdevice now you should make sure that you can provide the specified files (e.g. DEVICE1_SCR and STREAMS_SCR) on the specified devices otherwise you might at least get an error report by QDOS or F68K. You do not have to worry about closing channels when changing discs (e.g. on a multitasking QL), since the RW routines are somewhat 'atomic' in this regard: They open and close their channels each time they are called. At first this seems to slow down the block accesses but thanks to QDOS this impression vanishes because all the often called directory blocks etc. are stored in slave blocks of the QDOS filing system. ******************** * Special features * ******************** Since F68K's editor uses VT52-sequences to control the cursor etc., which is normally non-standard on the QL, these control codes are emulated by the loader's I/O routines. There is also a translation table for some special characters ("Deutsche Umlaute") including ENTER, BACKSPACE etc. Nevertheless the user may still redirect I/O as he desires. I have provided three different EMIT routines each giving a different degree of emulation: Default is full emulation. The VT52-sequences as well as the the translation tables are supported. You could switch between these different modes by some simple FORTH words: : VT52_OFF ( -- ) EMITS 8 + @ ^EMIT ! ; : VT52_ON ( -- ) EMITS 4 + @ ^EMIT ! ; : NO_TRANSLATION ( -- ) EMITS 12 + @ ^EMIT ! ; ************* * Problems? * ************* Problems may occur if you have got the TOS-formatted F68K disc and are not able to create the appropriate QL disc, probably because you lack a disc driver or a transformation utility. In such a case you can send me (adress below) two QDOS-formatted 3.5" discs AND a paid and self-adressed envelope and I will rush you the latest QL version as soon as possible. ********** * Remark * ********** I have written this loader to support both the spread of the programming language Forth and QDOS, the operating system of the QL. So you can make as many copies of the loader as you want and also distribute them as long as no profit is gained by the distribution. I would also like my name to be kept visible etc... The programme has been successfully tested on R. Kowallik's QL-Emulator for the Amiga. I have no objections to somebody writing a C version of the loader nor other improvements. I would be pleased to hear from you then! For suggestions, questions or any other comments please use the following adress: Dirk Kutscher Kastanienweg 39 2804 Lilienthal Germany You can also contact me via eMail using one of the following adresses: Dirk_Kutscher@HB.MAUS.DE Karl @ BBS.FORTH-eV.de