How to interact with your 6502 computer?
How to interact with your 6502 computer?
Prompted by a comment elsewhere, I wondered what tactics people might be using to get input into their retro computer, or to access files.
I've recently used all of the following tactics:
- direct input at keyboard of a 1980s machine
- serial connection from PC to a 1980s machine
- online emulator, in my case usually JSBeeb
- offline emulator, in my case probably B-em or BeebEm
- not-quite-native solid state storage, in my case an SDCard gizmo, bitbanged through a VIA, controlled by a ROM, all with hoglet's assistance
I haven't recently used
- original floppy drives
- original tape cassette storage
- audio connection from PC to emulate tape cassette
- solid state storage emulating native floppy storage connected as a floppy
(Although I did capture an historical tape and look at it in Audacity and attempted to decode it using some command line tools... but then hoglet fed the audio into a real computer and got the result directly.)
What have I missed, I wonder.
I've recently used all of the following tactics:
- direct input at keyboard of a 1980s machine
- serial connection from PC to a 1980s machine
- online emulator, in my case usually JSBeeb
- offline emulator, in my case probably B-em or BeebEm
- not-quite-native solid state storage, in my case an SDCard gizmo, bitbanged through a VIA, controlled by a ROM, all with hoglet's assistance
I haven't recently used
- original floppy drives
- original tape cassette storage
- audio connection from PC to emulate tape cassette
- solid state storage emulating native floppy storage connected as a floppy
(Although I did capture an historical tape and look at it in Audacity and attempted to decode it using some command line tools... but then hoglet fed the audio into a real computer and got the result directly.)
What have I missed, I wonder.
Re: How to interact with your 6502 computer?
Well, the Apple II clone is direct input at keyboard only.. but the plan for my mini is to connect the console current-loop interface to a current-loop/RS-232 converter, and then a serial-to-wifi connection to my router. And then I should be able to connect to the console remotely.
The mini currently has a (very old) SCSI disk, but I will try to get an SD2SCI working in its place.
The mini currently has a (very old) SCSI disk, but I will try to get an SD2SCI working in its place.
Re: How to interact with your 6502 computer?
I have a few Apple ][s, and one of them has a CFFA 3000 card. With this, I can put a great number of floppy images on a USB stick and access the images as if they were floppies. I can also use the CFFA to make disk images from floppies, and then use the images from OpenEmulator.
Re: How to interact with your 6502 computer?
Owning nearly 70 vintage computers, getting software into/out of them can be challenging. Many of my vintage computers are sitting isolated because I don't have a way (yet) to get software on them.
But for the ones that I can:
Apple II -- I use a plan old serial cable and ADT Pro on my modern PC to transfer data over to real floppies.
Commodore 8 Bit (64/128/VIC-20/Plus4/16) -- I have a ZoomFloppy that can connect a real 1541 to my modern PC so that I can transfer data. I also have a SD2IEC solution that I can use SD cards with. Plus, I have some EEPROM carts that I will build one day to make custom carts with.
Commodore 16 Bit (Amiga 500/600/1200/2000) -- I have a GoTek floppy emulator that takes SD cards.
TI99-4/a -- I have a SD to cart solution that is really great!
But for the ones that I can:
Apple II -- I use a plan old serial cable and ADT Pro on my modern PC to transfer data over to real floppies.
Commodore 8 Bit (64/128/VIC-20/Plus4/16) -- I have a ZoomFloppy that can connect a real 1541 to my modern PC so that I can transfer data. I also have a SD2IEC solution that I can use SD cards with. Plus, I have some EEPROM carts that I will build one day to make custom carts with.
Commodore 16 Bit (Amiga 500/600/1200/2000) -- I have a GoTek floppy emulator that takes SD cards.
TI99-4/a -- I have a SD to cart solution that is really great!
Cat; the other white meat.
Re: How to interact with your 6502 computer?
Ah - cartridges - that's another avenue. I once thought I might build a cart with dual-port RAM and two interfaces for this kind of purpose, but never did. A cart made with RAM and a battery backup might also be handy.
Another one, even more obscure, is to user an FPGA-based in-circuit emulator and load code over the command channel - I've seen hoglet doing that, using his Godil-based AtomBusMon.
Another one, even more obscure, is to user an FPGA-based in-circuit emulator and load code over the command channel - I've seen hoglet doing that, using his Godil-based AtomBusMon.
Re: How to interact with your 6502 computer?
BigEd wrote:
- direct input at keyboard of a 1980s machine
- serial connection from PC to a 1980s machine
- serial connection from PC to a 1980s machine
Great idea for a thread, BTW, Ed!
In 1988 my 65C02 got six new registers and 44 new full-speed instructions!
https://laughtonelectronics.com/Arcana/ ... mmary.html
https://laughtonelectronics.com/Arcana/ ... mmary.html
Re: How to interact with your 6502 computer?
Cheers Jeff! So, with your PC acting as a keyboard, you get the PC to type in your programs, as it were? Perhaps you've written a Forth-based XModem implementation?!?
(Edit: In my case, I have an srecord loader written in BBC Basic:)
(Edit: In my case, I have an srecord loader written in BBC Basic:
Code: Select all
10DEFFNH:T%=EVAL("&"+LEFT$(A$,2)):A$=MID$(A$,3):C%=C%+T%:=T%
20DEFPROCR:REP.INPUTA$:U.LEFT$(A$,2)="S1":A$=MID$(A$,3):C%=1:ENDPROC
30REP.PROCR:L%=FNH:P%=FNH*256+FNH:FORI%=1TOL%-3:?P%=FNH:P%=P%+1:N.:T%=FNH:IFC%AND255THENP."BADCRC"ELSEU.FA.
Re: How to interact with your 6502 computer?
At present the setup is both kinda cool and kinda clunky.
I do use Forth on the PC, but it's not directly involved for a file transfer to KK. I go to the DOS command line and just < copy thisfile.txt lpt1 >. (No need to actually type that; there's a file-copy utility that does the copy with a couple of mouse-clicks. And IIRC Garth has a similar setup, but he invokes the copy from within his text editor.)
The cool part is how the Strobe output on the PC parallel port simply attaches to CA1 of the VIA, which retains its role as a strobe input. What's new is that CA2 gets sent back to the PC in the guise of a Ready signal from the "printer." Without something like this the speed would have to be limited to the speed of a human typing.
Of course in addition to source files I also want to send actual keystrokes to KK, and to do this I start Forth and run a little loop that sends my PC keystrokes to LPT1. (Who wants TWO keyboards on the desk! The PC keyboard is much nicer to use than KK's anyway.)
The clunky part is initialization. KK still has its original EPROM, which doesn't see the need for handshaking when receiving input from a human.
So, the VIA initialization is done manually. After KK powerup I type the sequence < F7 4C C! > into the PC window that's running the keystroke-relay loop. ($4C is the address of the VIA's Peripheral Control Register.)
The cool part is how the Strobe output on the PC parallel port simply attaches to CA1 of the VIA, which retains its role as a strobe input. What's new is that CA2 gets sent back to the PC in the guise of a Ready signal from the "printer." Without something like this the speed would have to be limited to the speed of a human typing.
Of course in addition to source files I also want to send actual keystrokes to KK, and to do this I start Forth and run a little loop that sends my PC keystrokes to LPT1. (Who wants TWO keyboards on the desk! The PC keyboard is much nicer to use than KK's anyway.)
The clunky part is initialization. KK still has its original EPROM, which doesn't see the need for handshaking when receiving input from a human.
Last edited by Dr Jefyll on Tue Dec 13, 2016 4:13 pm, edited 2 times in total.
In 1988 my 65C02 got six new registers and 44 new full-speed instructions!
https://laughtonelectronics.com/Arcana/ ... mmary.html
https://laughtonelectronics.com/Arcana/ ... mmary.html
Re: How to interact with your 6502 computer?
I do like a hand-typed bootstrap!
- GARTHWILSON
- Forum Moderator
- Posts: 8775
- Joined: 30 Aug 2002
- Location: Southern California
- Contact:
Re: How to interact with your 6502 computer?
Most of this will be a re-run for anyone who has been on the forum very long, but for anyone new, here it is again.
Jeff and I seem to be doing approximately the same thing, although he on a parallel port and I on a serial port.
What I send over the serial port is usually just text, from marked blocks in the text editor on the PC. They could be anything the workbench computer is expecting at that point. Usually it's Forth source code, sometimes assembly-language source code (in the format that my Forth kernel handles), sometimes an Intel Hex file, and rarely maybe something else I'm forgetting. The workbench computer just thinks you're typing this stuff in, lighting fast, without errors, and it handles it as it's coming in, not waiting for the end of the transmission before starting to process it. It could be doing something else at the same time. It doesn't care where it comes from, and although it usually comes from the DOS PC, I have also used my HP hand-held computers. Anything that can send out text on an RS-232 port. I suppose it could even be from a tape modem, as long as intelligible text comes out of it. The host computer thinks it's just sending the text to a serial printer. It wouldn't have to be text, but it virtually always is. I could for example load Forth words (via Forth source code text) for handling a binary file of some sort, then call that, and send the binary it's expecting.
It's hard for people to imagine how simple the method is. I really need to make a video of it. When NightmareTony was here, he kept looking for the "hidden part." There isn't any. No TSRs, nothing else running, etc.. (Wow, I can't believe he's been gone for over four years now!)
I've also sent info back to the PC in the Intel hex format, and used a GWBASIC program on the PC to accept it and put it in a file. My text editor (MultiEdit) has a terminal program that should work just as well or better, but I got accustomed to the other way before I had this editor, and it works, and I don't need to do this part often enough to learn a new way.
A method that came to mind from a post here yesterday was to use an (E)EPROM, assuming you have an (E)EPROM programmer on the PC. It's not as convenient as an SD card, but it sure beats typing and POKEing it all in every time like someone above mentioned.
Jeff and I seem to be doing approximately the same thing, although he on a parallel port and I on a serial port.
What I send over the serial port is usually just text, from marked blocks in the text editor on the PC. They could be anything the workbench computer is expecting at that point. Usually it's Forth source code, sometimes assembly-language source code (in the format that my Forth kernel handles), sometimes an Intel Hex file, and rarely maybe something else I'm forgetting. The workbench computer just thinks you're typing this stuff in, lighting fast, without errors, and it handles it as it's coming in, not waiting for the end of the transmission before starting to process it. It could be doing something else at the same time. It doesn't care where it comes from, and although it usually comes from the DOS PC, I have also used my HP hand-held computers. Anything that can send out text on an RS-232 port. I suppose it could even be from a tape modem, as long as intelligible text comes out of it. The host computer thinks it's just sending the text to a serial printer. It wouldn't have to be text, but it virtually always is. I could for example load Forth words (via Forth source code text) for handling a binary file of some sort, then call that, and send the binary it's expecting.
It's hard for people to imagine how simple the method is. I really need to make a video of it. When NightmareTony was here, he kept looking for the "hidden part." There isn't any. No TSRs, nothing else running, etc.. (Wow, I can't believe he's been gone for over four years now!)
I've also sent info back to the PC in the Intel hex format, and used a GWBASIC program on the PC to accept it and put it in a file. My text editor (MultiEdit) has a terminal program that should work just as well or better, but I got accustomed to the other way before I had this editor, and it works, and I don't need to do this part often enough to learn a new way.
A method that came to mind from a post here yesterday was to use an (E)EPROM, assuming you have an (E)EPROM programmer on the PC. It's not as convenient as an SD card, but it sure beats typing and POKEing it all in every time like someone above mentioned.
http://WilsonMinesCo.com/ lots of 6502 resources
The "second front page" is http://wilsonminesco.com/links.html .
What's an additional VIA among friends, anyhow?
The "second front page" is http://wilsonminesco.com/links.html .
What's an additional VIA among friends, anyhow?
Re: How to interact with your 6502 computer?
BigEd wrote:
What have I missed, I wonder.
I have a 1541 connected to an Amiga 2000, which has USB mass storage, CD-ROM, and internet connectivity. I use it to make disks for my Commodore 8-bits. Usually though, I use it to take disks made on the Commodore machines to the outside world.
Re: How to interact with your 6502 computer?
That's certainly an interesting extra tactic!
- BigDumbDinosaur
- Posts: 9428
- Joined: 28 May 2009
- Location: Midwestern USA (JB Pritzker’s dystopia)
- Contact:
How to interact with your 6502 computer?
In POC's case, serial port A is attached to a Wyse thin client (whose operating system is Linux). The thin client runs WYSE 60 terminal emulation, and acts as the system console. The user interface is SuperMon 128.
For communication with the outside world, POC's serial port B is connected to the Equinox SuperSerial (SST) interface on my Linux software development box. As both POC and the Equinox SST hardware are DTE, I arranged serial port B on POC so connection could be made with an ordinary network patch code. So port B is actually xDTE. Data is transferred from the Linux box to POC using Motorola S-records. The data rate on both ports A and B is 115.2 Kbps.
Once I get POC V2 running I'll have two more serial ports (four total), and could connect another terminal to one of those ports and possibly get multiple sessions simultaneously running. Or I could connect a serial interface printer (I have two).
For communication with the outside world, POC's serial port B is connected to the Equinox SuperSerial (SST) interface on my Linux software development box. As both POC and the Equinox SST hardware are DTE, I arranged serial port B on POC so connection could be made with an ordinary network patch code. So port B is actually xDTE. Data is transferred from the Linux box to POC using Motorola S-records. The data rate on both ports A and B is 115.2 Kbps.
Once I get POC V2 running I'll have two more serial ports (four total), and could connect another terminal to one of those ports and possibly get multiple sessions simultaneously running. Or I could connect a serial interface printer (I have two).
Last edited by BigDumbDinosaur on Thu Dec 15, 2016 2:19 am, edited 1 time in total.
x86? We ain't got no x86. We don't NEED no stinking x86!
Re: How to interact with your 6502 computer?
How about joystick for interaction - re-living my teenage years in the 80's !!
So my homebrew has a direct keyboard - an Acorn BBC keyboard, driven through one of the 6522s.
Also, serial through a 6551 connected to my PC USB through an SPIO to USB, and TeraTerm software.
Then there's an SD card breakout board bit banged through the 6522 with FAT16 driver software in ROM.
The joystick is a standard Atari 9 pin, connected to a port on the AY-3-8910 sound chip, which is itself driven through a second 6522 on my board.
I've written some simple games with joystick for input - great nostalgic fun!!
So my homebrew has a direct keyboard - an Acorn BBC keyboard, driven through one of the 6522s.
Also, serial through a 6551 connected to my PC USB through an SPIO to USB, and TeraTerm software.
Then there's an SD card breakout board bit banged through the 6522 with FAT16 driver software in ROM.
The joystick is a standard Atari 9 pin, connected to a port on the AY-3-8910 sound chip, which is itself driven through a second 6522 on my board.
I've written some simple games with joystick for input - great nostalgic fun!!
- GARTHWILSON
- Forum Moderator
- Posts: 8775
- Joined: 30 Aug 2002
- Location: Southern California
- Contact:
Re: How to interact with your 6502 computer?
dolomiah wrote:
How about joystick for interaction - re-living my teenage years in the 80's !!
http://WilsonMinesCo.com/ lots of 6502 resources
The "second front page" is http://wilsonminesco.com/links.html .
What's an additional VIA among friends, anyhow?
The "second front page" is http://wilsonminesco.com/links.html .
What's an additional VIA among friends, anyhow?