Most popular way to get .prg to "real" VIC?
Moderator: Moderators
Most popular way to get .prg to "real" VIC?
I'm a 6502 assembly newbie but I need it to start programming my subpixel graphics project.
Since VICE doesn't emulate the composite signal output, this effort is moot unless I get my code onto my real VIC. What's the most popular way to do this, here?
My hardware is an unexpanded NTSC VIC with 1541 drive (no serial cable, but I think I can find it or I can buy a new one). On the PC side, I have access to both Linux (Debian Stable) and Windows XP. I'm willing to install a different version of Linux on a spare PC, since software on Debian Stable tends to be older.
My ultimate target hardware is unexpanded VIC with 1541. While this offers little RAM, I have 170K of floppy disc space to work with.
I've been looking at options to connect a PC to a 1541, but the numerous options leave me a bit confused. I never knew about all these fancy parallel cable mods.
Another option, perhaps, is to rig the audio output of a PC to the tape input on the VIC? If that can work well, I'd like that option since it's so cheap.
Oh--I also have a Commodore 128.
As for developing in 6502 assembly, I take it I should use CA65, right? I've never done any 6502 assembly before, so I have no prefered assembler.
Thanks! I'm completely new to all of this, and appreciate help getting started with 6502 VIC development.
Since VICE doesn't emulate the composite signal output, this effort is moot unless I get my code onto my real VIC. What's the most popular way to do this, here?
My hardware is an unexpanded NTSC VIC with 1541 drive (no serial cable, but I think I can find it or I can buy a new one). On the PC side, I have access to both Linux (Debian Stable) and Windows XP. I'm willing to install a different version of Linux on a spare PC, since software on Debian Stable tends to be older.
My ultimate target hardware is unexpanded VIC with 1541. While this offers little RAM, I have 170K of floppy disc space to work with.
I've been looking at options to connect a PC to a 1541, but the numerous options leave me a bit confused. I never knew about all these fancy parallel cable mods.
Another option, perhaps, is to rig the audio output of a PC to the tape input on the VIC? If that can work well, I'd like that option since it's so cheap.
Oh--I also have a Commodore 128.
As for developing in 6502 assembly, I take it I should use CA65, right? I've never done any 6502 assembly before, so I have no prefered assembler.
Thanks! I'm completely new to all of this, and appreciate help getting started with 6502 VIC development.
- Schema
- factor
- Posts: 1439
- Joined: Tue Mar 23, 2004 7:07 am
- Website: http://www.jammingsignal.com
- Location: Toronto, Ontario
This is by far the most common FAQ
, unfortunately there's no "best" solution. And some of the options for the C64 (like Warpcopy) aren't available for the VIC.
It depends on your patience and budget.
Simplest/cheapest would be to connect a 1541 to your PC with a XM1541 cable/adaptor (i.e. [1]). Then use opencbm [2] under your OS of choice to write the .prg to a floppy, and carry it over to the VIC.
Another convenient but more expensive option is the uIEC [3] - write the .prg to a SD card on your PC and carry it over the the VIC.
There are other, more painful options: Null modem cables and terminal programs, 64HDD, and so on. Plus countless hobby projects that aren't commercially available. I like your tape idea but I haven't heard if that's possible.
As for 6502 assemblers, CA65 is good but there are other options out there. I personally use DASM [4].
[1] http://www.nkcelectronics.com/commodore ... a1541.html
[2] http://www.trikaliotis.net/opencbm
[3] http://www.c64-wiki.com/index.php/uIEC
[4] http://www.atari2600.org/DASM/

It depends on your patience and budget.
Simplest/cheapest would be to connect a 1541 to your PC with a XM1541 cable/adaptor (i.e. [1]). Then use opencbm [2] under your OS of choice to write the .prg to a floppy, and carry it over to the VIC.
Another convenient but more expensive option is the uIEC [3] - write the .prg to a SD card on your PC and carry it over the the VIC.
There are other, more painful options: Null modem cables and terminal programs, 64HDD, and so on. Plus countless hobby projects that aren't commercially available. I like your tape idea but I haven't heard if that's possible.
As for 6502 assemblers, CA65 is good but there are other options out there. I personally use DASM [4].
[1] http://www.nkcelectronics.com/commodore ... a1541.html
[2] http://www.trikaliotis.net/opencbm
[3] http://www.c64-wiki.com/index.php/uIEC
[4] http://www.atari2600.org/DASM/
- Pedro Lambrini
- Vic 20 Scientist
- Posts: 1132
- Joined: Mon Dec 01, 2008 11:36 am
I know this might not be the solution you're after but, if you had a datasette, just use WAV-PRG to convert the PRG to a WAV, record it onto a tape through the audio out on your PC, load it up on the Vic and then save it back onto a disk in your 1541? That's how I managed to get the game Dragonwing onto a disk for my real Vic. It's sounds a little convoluted but it's worked for me and it's cheap. 

"...That of the Eastern tribe being like a multitude of colours as if a rainbow had settled upon its brow..." Daniels 1:3
If I find my old Datasette I may use that option.
Connecting a 1541 to my PC seems the most attractive option, right now, especially if both of my 1541 drives work. And I find my 1541 serial cables, of course.
[edit:]
I hit the motherlode! I finally found my stash of Commodore cables and power supplies! I've got my Datasette, two 1541's, two C128s (maybe one is dead), and a (I think) dead C64.
Now I'm in business...
Connecting a 1541 to my PC seems the most attractive option, right now, especially if both of my 1541 drives work. And I find my 1541 serial cables, of course.
[edit:]
I hit the motherlode! I finally found my stash of Commodore cables and power supplies! I've got my Datasette, two 1541's, two C128s (maybe one is dead), and a (I think) dead C64.
Now I'm in business...
As OpenCBM doesn't work well for some people, another option is to boot to DOS using a floppy drive. Don't know if you can boot DOS using an USB stick. Once in DOS, you can copy your PRGs using StarCommander.Schema wrote:... Then use opencbm [2] under your OS of choice to write the .prg to a floppy, and carry it over to the VIC.
Code: Select all
___
/ __|__
/ / |_/ Met vriendelijke groet, Ruud Baltissen
\ \__|_\
\___| URL: www.baltissen.org
-
- Vic 20 Scientist
- Posts: 1188
- Joined: Tue Apr 28, 2009 3:51 pm
You know, I don't actually have a tape deck.Pedro Lambrini wrote:I know this might not be the solution you're after but, if you had a datasette, just use WAV-PRG to convert the PRG to a WAV, record it onto a tape through the audio out on your PC, load it up on the Vic and then save it back onto a disk in your 1541?
But I do have a couple car tape CD/MP3 player adapters. These adapters look like an audio tape but there's no tape inside. Instead, it has a long headphone wire that you plug into a CD player (or other audio device). These tape player adapters were popular when many cars had tape players.
I wonder if I can simply put one of those in the Datasette, and press "play" on my computer when I see the datasette motor start turning?
- Diddl
- Vic 20 Afficionado
- Posts: 426
- Joined: Wed Jun 10, 2009 3:18 am
- Website: https://oe7twj.at/
- Location: Austria
- Occupation: software engineer
I always used SD2IEC from NKC Electronics for moving files from PC to VIC and vice versa.
And now SD2IEC integrated in Final Expansion v3.1
And now SD2IEC integrated in Final Expansion v3.1
Yes, why not the Brain's uIEC or SD2IEC ?
I think they are the best way at the moment to transfer software between Vic and PCs and you may use them for all other CBM machines.
I will also release a Mega-Cart patch (based on Diddl SJLoad routines) to add turbo load support for these devices.
I think they are the best way at the moment to transfer software between Vic and PCs and you may use them for all other CBM machines.
I will also release a Mega-Cart patch (based on Diddl SJLoad routines) to add turbo load support for these devices.
Mega-Cart: the cartridge you plug in once and for all.
I'm ordering a Commodore XE+XM1541 Adapter, but I may also get a uIEC or SD2IEC. I have a few questions:
1) The SD2IEC product seems to require a daughterboard or custom cable. Where do I get that? I'm no electronics wiz so I don't know about the "do it yourself" kit.
2) The uIEC link says the product is available on eBAY, but I'm an eBAY neophyte and I couldn't find it anywhere there. Is it not on eBAY USA, maybe?
3) This may be a stupid question--is it possible to connect both a PC with XE+XM1541 adapter and a VIC20 to the same 1541 drive at the same time, so long as they don't simultaneously try to access the drive?
If #3 is possible, I have a weird idea of using this along with custom USR code to get the VIC20 on the internet (for internet network games). The idea is to use the 1541 as a simple network hub to pass data packets between the VIC and the PC.
1) The SD2IEC product seems to require a daughterboard or custom cable. Where do I get that? I'm no electronics wiz so I don't know about the "do it yourself" kit.
2) The uIEC link says the product is available on eBAY, but I'm an eBAY neophyte and I couldn't find it anywhere there. Is it not on eBAY USA, maybe?
3) This may be a stupid question--is it possible to connect both a PC with XE+XM1541 adapter and a VIC20 to the same 1541 drive at the same time, so long as they don't simultaneously try to access the drive?
If #3 is possible, I have a weird idea of using this along with custom USR code to get the VIC20 on the internet (for internet network games). The idea is to use the 1541 as a simple network hub to pass data packets between the VIC and the PC.
- Diddl
- Vic 20 Afficionado
- Posts: 426
- Joined: Wed Jun 10, 2009 3:18 am
- Website: https://oe7twj.at/
- Location: Austria
- Occupation: software engineer
> 1) The SD2IEC product seems to require a daughterboard or custom cable.
NKC sell two kind of SD2IEC. The new SD2IEC with daughterboard and the old MMC2IECwithout (ready to use).
It is also very easy to build this daughterboard and the a SD2IEC also. Sometimes you can buy a SD2IC on ebay.
---
Raedy to use solutions are also MMCR and 1541u. 1541u is the best solution, cause you never use a floppy drive. 1541u is the ultimate floppy emulation.
NKC sell two kind of SD2IEC. The new SD2IEC with daughterboard and the old MMC2IECwithout (ready to use).
It is also very easy to build this daughterboard and the a SD2IEC also. Sometimes you can buy a SD2IC on ebay.
---
Raedy to use solutions are also MMCR and 1541u. 1541u is the best solution, cause you never use a floppy drive. 1541u is the ultimate floppy emulation.
I wrote a modem emulator Window service (it runs all the time). Just hook up your vic via a null modem to the PC and you can download directly. In addition to the basic AT commands to dial out, it also listens on a specified port (for like a BBS). It also includes DIR <path>, GET <file> and XGET <file> XGET is an Xmodem recieve command. You can get it here:
http://www.commodore128.org/index.php?board=34.0
(BTW, its written in C#, so if you want the source, let me know)
http://www.commodore128.org/index.php?board=34.0
(BTW, its written in C#, so if you want the source, let me know)
A good news/bad news update:
-------------------------------------------
First the good news.
I wrote my first 6502 program last night! Yippee!!!
As suggested by Schema, I tried out DASM. I spent much of the last week confused and bewildered about where to even begin with DASM. I slogged through the Denial archives and found what I needed here and in a longwinded thread helping Legacy. My thanks to everyone who had the patience to help out Legacy!
(All my first program does is POKE36879,8 or lda #8; sta $900F; rts. The BASIC POKE version is the first command of my robovic game, so I thought it would be as good a place as any to start with assembly.)
-------------------------------------------
Now the bad news.
My XE+XM1541 came in, and I haven't been able to get it to work on either of my Windows computers (a Socket 754 Sempron desktop and a Pentium M laptop). In both cases, the 1541 sits there with the red light on as if it's constantly reseting; running "cbmctrl reset" doesn't deactivate this. I've tried messing with BIOS settings and enabling "Legacy Plug+Play detection"...no effect.
The jumpers are set to XM mode (they shipped that way); I haven't tried XE mode since OpenCBM's documentation states that XE cables aren't supported.
I'm concerned because I had an impression that it may be necessary to use a computer older than a Pentium. I don't have any 486/386/286/8086/8088 machines. I do have a Pentium 120 machine in storage, but I get the impression that even this is too modern to work (also, I do not have Windows on it, nor do I have any copy of DOS).
So I guess I'm back to square one.
I have no null modem, nor any normal modem for the VIC.
SD2IEC is useless without a daughterboard; MMC2IEC is out of production; uIEC seems unavailable.
-----------------------------------------------
So my current status is that I'm excited to be assembly coding for (emulated) VIC20, but I'm still puzzled on getting anything transfered to my VIC. It's looking like perhaps more expensive solutions are called for, but availability seems to be an issue.
-------------------------------------------
First the good news.
I wrote my first 6502 program last night! Yippee!!!

As suggested by Schema, I tried out DASM. I spent much of the last week confused and bewildered about where to even begin with DASM. I slogged through the Denial archives and found what I needed here and in a longwinded thread helping Legacy. My thanks to everyone who had the patience to help out Legacy!
(All my first program does is POKE36879,8 or lda #8; sta $900F; rts. The BASIC POKE version is the first command of my robovic game, so I thought it would be as good a place as any to start with assembly.)
-------------------------------------------
Now the bad news.
My XE+XM1541 came in, and I haven't been able to get it to work on either of my Windows computers (a Socket 754 Sempron desktop and a Pentium M laptop). In both cases, the 1541 sits there with the red light on as if it's constantly reseting; running "cbmctrl reset" doesn't deactivate this. I've tried messing with BIOS settings and enabling "Legacy Plug+Play detection"...no effect.
The jumpers are set to XM mode (they shipped that way); I haven't tried XE mode since OpenCBM's documentation states that XE cables aren't supported.
I'm concerned because I had an impression that it may be necessary to use a computer older than a Pentium. I don't have any 486/386/286/8086/8088 machines. I do have a Pentium 120 machine in storage, but I get the impression that even this is too modern to work (also, I do not have Windows on it, nor do I have any copy of DOS).
So I guess I'm back to square one.

I have no null modem, nor any normal modem for the VIC.
SD2IEC is useless without a daughterboard; MMC2IEC is out of production; uIEC seems unavailable.
-----------------------------------------------
So my current status is that I'm excited to be assembly coding for (emulated) VIC20, but I'm still puzzled on getting anything transfered to my VIC. It's looking like perhaps more expensive solutions are called for, but availability seems to be an issue.
Regarding OpenCBM: there is an option to install a parallel port driver. Have you tried that? I found I need to take that step to get the program to work. Notice that after installing the driver, your parallel port won't work very well with other applications (printers etc) so you would need to uninstall it if you need the parallel port for other uses.
Anders Carlsson






You could use your XE cable with 64HDD. There is a free version that is totally acceptable for use with a VIC. You'll need a DOS PC, or one you can boot to DOS with a floppy. My own system is a Pentium 4 running MS-DOS 6.22
More info can be found at http://www.64hdd.com
Once 64HDD is setup, you'll also have a good setup for Star Commander as well.
More info can be found at http://www.64hdd.com
Once 64HDD is setup, you'll also have a good setup for Star Commander as well.
Alan