I have all your machine language programs which were entered using MLX stored on tape. Recently I purchased a disk drive, and am converting my tape programs to disk. Is there some way I can load the ML programs and save them to disk?
Bruce T. Livingston
Yes, and there are a couple of methods. The simplest way would be to use the "MLX" Load (SHIFT-L) and Save (SHIFT-S) commands to load the programs from tape and then save them back out to disk. Another way to transfer an ML program from tape to disk is by using a machine language monitor, such as "Supermon64." After entering the monitor, type:
.L "program name"
This loads your program into memory from the tape. Next, save the program on disk with:
.S "program name",08,starting address,ending address
Be sure to give an ending address which is actually one byte beyond the end of your program (the starting and ending addresses for programs listed in MLX format are specified in the articles).
If you don't have a monitor program, you can save an ML program on disk by first loading it into memory from tape, and then loading and running this short routine:
10 SA=49152: REM STARTING ADDRESS
20 EA=51000: REM END ADDRESS
30 INPUT"PROGRAM NAME",N$
40 OPEN1,8,1,N$
50 HI=INT(SA/256)
60 LO=SA-HI*256
70 PRINT#1,CHR$(LO);CHR$(HI);
80 FOR I=SA TO EA
90 PRINT#1,CHR$(PEEK(I));
100 NEXT
110 CLOSE1
This routine (which works on both the 64 and VIC) assumes that the ML program is already in memory, and that the ML program does not reside in the BASIC program area. The variables SA and EA in lines 10 and 20 should be changed to reflect the starting and ending address of the program you wish to save on disk. Again, if you're working with a program saved with MLX, you can use the addresses given in the articles which accompanied the programs.