GMW@psuvm.BITNET (06/05/85)
Ok, I've posted Kermit for the 64. I haven't posted the FORTH version as the sources aren't available and it isn't clear how to boot it. Also, I haven't included the CROSS assembler source code for Eric Lavitsky's version, as it is over 8000 lines long. If you need it, let me know and I'll email it to you. Here is a short description of the files: C64BOOT.HLP -- short help file for the boot routines. These routines allow you to download the other files from your mainframe. C64BOOT.CLU -- mainframe side download routine written in the CLU language (smells a lot like Pascal). C64BOOT.C -- mainframe side download routine written in C. C64BOOT.BAS -- 64 Basic routine that talks with the mainframe boot routines. You'll need to type this one in. C64BOOT.SIM -- mainframe side boot routine written in SIMULA. C64DXL.M65 -- CROSS assembler source code of routine that converts .HEX files to 6502 machine code. C64DXL.HEX -- hexified object version of the above routine C64DXL.BAS -- *slow* Basic version. Run this on C64DXL.HEX to produce your working version. C64KER.MSG -- a few notes on C64-Kermit by the author. C64KER.HEX -- hexified object file for C64-Kermit. C64KER.DOC -- C64-Kermit documentation. Includes boot instructions. You probably won't need all these files. If you already have a suitable downloader (like VIPterm) you won't need the C64BOOT.* routines. The mainframe side boot routines may need to be re-written in a language your site knows about, but this should be fairly trivial. Essentially, booting Kermit goes something like this: 1) Download C64DXL.BAS, C64DXL.HEX and C64KER.HEX. 2) Load Supermon (or equivalent) as per the instructions in the .DOC file, then load and run C64DXL.BAS and feed it C64DXL.HEX. This will produce a fast machine-language un-hexifier. Save it with the monitor's SAVE function. 3) Now run the fast C64DXL on C64KER.HEX. This produces an executable Kermit and, if you've followed the instructions, jumps back to the monitor. The last number it prints is the last address used by Kermit. You'll need this to save Kermit with the monitor. If you don't have Supermon, it should be possible to poke the last address into locations 45-46 (pointer to End of Basic Text in Lo byte / Hi byte format) and give the command 'save "kermit",8' from Basic. Locations 43-44, also used by the SAVE command, point to the Start of Basic Text at $0800, which happens to be where Kermit starts, so they needn't be modified. I haven't tried this, but it looks fine on paper. If you choose to try it, note that the last instruction executed by C64DXL is a BRK, which is normally intercepted by Supermon and causes a jump back to the monitor command level. You'll have to POKE 790,123 and POKE 791,227 to reset the BRK interrupt vector so it points to the Basic interpreter main loop. Otherwise the BRK will cause the screen to clear and you'll miss the last address information. Good luck. I'm no expert, but I might be able to help if you have problems. Send bravos/flames to Eric Lavitsky, not me. George M. Weaver Penn State Astronomy Dept. GMW at PSUVM.BITNET ...!allegra!psuvax1!gmw@psuvm.bitnet