From asm332@cix.compulink.co.uk (Sean Eaton) From: asm332@cix.compulink.co.uk (Sean Eaton) Subject: VIC-20: How to load software. Date: Sun, 30 Jan 1994 14:49:07 +0000 d3daniel@dtek.chalmers.se (Daniel Hansson) writes: > Anyone who's succeeded in loading any program into the VIC-20 >emulator? I have downloaded some games from funet but the doc's doesn't >tell how to get them in the emulator! I've tried to put them in memory- >location $0401 in the configure file, but this gives me a guru. > > Any ideas? Ok, the files on funet can be loaded although the process is a little more complex than mounting them in the VIC's RAM on power-up. The best way is to show by example: * First of all remove the line which says "$0400 ram3" from the * * vic-conf file. Now when you run the emulator it should say "3583 * * BYTES FREE" and not "6655 BYTES FREE". You now have an unexpanded * * VIC and not one with a 3K ram-pack. * Let's say you've transferred vic-man from funet. The first thing you must do is find its start address. All the programs on funet are in the VIC's disk drive format which means that the first two bytes form the start address - low byte first, then high byte. You can find the start address very easily from Amiga DOS: 1> type vic-man opt h 0000: 01100C10 0A009E20 34313130 00000078 ....... 4110...x 0010: A97F8D1E 9120681B 209114A9 FF8D0590 ..... h. ....... 0020: AD119149 FF2920F0 08AD0090 09808D00 ...I.) ......... ***BREAK The first two bytes are 01 and 10. Swap them around to give 1001 and that's your start address! 1000h (4096) is the start of BASIC on an unexpanded VIC. Run the emulator, making sure that you've removed the $0400 ram3 line from the config file, then type LOAD"VIC-MAN",8. You must make sure any files you wish to load are in the current directory. The VIC will respond by saying LOADING. Loading is not instantaneous; you'll have to wait about 15-20 seconds for a full 3K program. Once it has loaded, you can run it or list it or do whatever. Downhill, froggie, outpost and lucy_lizard are also unexpanded programs and are loaded in an identical way, though you might want to rename lucy_lizard to lizard or something without an underscore as the VIC doesn't have one. Screen-40 and othello_ii are examples of 8/16K programs: 1> type screen-40 opt h 0000: 01120C12 0A009E20 34363232 000000AD ....... 4622.... 0010: 1F91C946 D007A91F A0122060 1A4C3E12 ...F...... `.L>. 0020: 930ED343 5245454E 2D34300D C6495845 ...CREEN-40..IXE ***BREAK Swap the first two bytes and you get 1201h (4609) - the start of BASIC on an 8 or 16K VIC. This time run the emulator with the command line: 1> run vic-20 $2000 ram8 (for a VIC with an 8K Ram pack) or 1> run vic-20 $2000 ram16 (for a VIC with a 16K Ram pack) It's probably best to use the 16K version. Once the VIC powers-up, type "LOAD"SCREEN-40",8 and settle down for a nice long wait. I haven't come across any games that need the 3K Ram pack yet but I would imagine they'd look like this: 1> type someprog opt h 0000: 0104..... In which case invoke the emulator with the command line: 1> run vic-20 $0400 ram3 and load as before. You might like to check out ftp.hrz.uni-kassel.de. It is stuffed full of fossilised cartridge images. These can be mounted in the VIC's ram from the command line quite simply: 1> run vic-20 $a000 GORF (or whatever) and they auto-boot. Battleship is a 24K game; run the VIC with $2000 ram24 and type LOAD"BATTLESHIP.BIN",8 and sit back and have a cup of tea for 10 minutes. Incidentally, if you don't like hanging around for the programs to load you can cheat: Look at the dump of vic-man (above). See the 4110? Type 1> run vic-20 $0fff vic-man then type SYS4110. Subtract 2 from the start address: 1001h - 2h = 0fffh This will also work with programs that need a Ram pack: 1> run vic-20 $11ff screen-40 $2000 ram16 followed by SYS4622 (The Ram pack must come last on the command line, otherwise you'll get an unexpanded VIC.) This doesn't work with BASIC programs, though; these must be loaded the slow way. Hope this helps. (phew!) -Sean. By the way, the emulator appears to come supplied with the C64's character ROM and not the VIC's. I transferred the VIC's character ROM yesterday. I will upload it to aminet if anyone wants it. Has anyone else noticed that the emulator's screen is stretched slightly vertically whereas on a real VIC it is stretched horizontally?