MANUAL FOR 27KASM (6502 Machine code) This file describes the program 27KASM which allows the machine code programmer to write upto 27K of source code in BASIC and still be able to assemble it - even on a basic Model B - as all output is written directly to disc. The manual is (C)1997 SPROW and software is (C)1996 SPROW INSTRUCTIONS- Two example programs should also have been made available to you,these should be studied for a model way of using the utility. Your program must be written using offset assembly,ie.you'll need BASIC II or later. Set O% to &A00 and P% to where the program needs to appear to have been assembled at. *RUN (either at the command line or as part of your program) 27KASM. Inside the FOR...NEXT loop add a VDU255 command,or PRINTCHR$(255) - the issue of a CHR$ 255 into the VDU stream is the 'switch' for writing to disc. The program itself installs into page &C00 (the CHR$ defn buffer on the BBC and Electron,or Econet workspace on the Master) and uses &A00 as a temporary buffer.Hence cassette FS cannot be used,nor can the redefinition of characters. Pressing BREAK will stop the interception,and it will need to be run again. Final machine code output is written to a file "OUTPUT",and the source code remains in memory,the load and execution addresses of the file "OUTPUT" can be set as desired after the closing VDU255 switch. Note that the 27k limit assumes that MODE 7 is in use,also there must be enough free memory for variable storage such as address labels. Trivial example: 0REM Conventional layout 0REM Assembling to disc 10 10*RUN 27KASM 20FORX=4 TO 7 STEP3 20FORX=4 TO 7 STEP3 30P%=&3000:O%=&A00 30P%=&3000:O%=&A00 40 40VDU255 50[OPTX 50[OPTX 60RTS:\Opcode &60 60RTS:\Opcode &60 70] 70] 80 80VDU255 90NEXT 90NEXT 100*SAVE OUTPUT A00 +1 100 KNOWN PROBLEMS/FUTURE ENHANCEMENTS- No known problems Note that due to space restrictions,the VDU stream is not fully tested - ie.embedding obscure VDU sequences in your listing may cause unpredictable results. HISTORY- V1.00 First release version.To EUG disc user group. V1.01 Corrected a typing mistake which meant output was written to "OBJECT" not "OUTPUT" this (writing to "OBJECT") was used for internal development only.