Author |
Message |
BitWise
Joined: Sun Aug 04, 2013 9:02 pm Posts: 23
|
The 6800 has some strange features (compared to the 6502). The rotate instructions set the overflow flag weirdly (V = N ^ C). And my personal favourite, store instructions (STA, STX & STS) affect the N, Z and V flags.
I may have some alpha boards available after Xmas for testing. Possibly without the USB serial chip and a PL2303 adapter to start.
|
Sat Dec 20, 2014 1:00 am |
|
|
BitWise
Joined: Sun Aug 04, 2013 9:02 pm Posts: 23
|
My boards arrived and I've soldered up the first one. The silk screen pattern for the power regulators is the wrong way round and when I tested the power I found that the red LED I used has its flat edge and anode/cathode wires reversed from normal so I had to unsolder and flip it round. I'll put the main processor in tomorrow and try out the switches and flag LEDs.
You do not have the required permissions to view the files attached to this post.
|
Tue Dec 23, 2014 11:53 pm |
|
|
barrym95838
Joined: Tue Dec 31, 2013 2:01 am Posts: 116 Location: Sacramento, CA, United States
|
BitWise wrote: The 6800 has some strange features (compared to the 6502). The rotate instructions set the overflow flag weirdly (V = N ^ C). And my personal favourite, store instructions (STA, STX & STS) affect the N, Z and V flags.
I may have some alpha boards available after Xmas for testing. Possibly without the USB serial chip and a PL2303 adapter to start. IMO, no other processor with which I'm familiar has "better" flag-setting behavior than the 6502, so I agree that the 6800 is a bit strange and annoying. Another one that bit me badly was the odd behaviors of the TSX and TXS instructions, which increment or decrement by one during the transfer. The 65xx and 6809 don't do this, and it's not particularly well-documented in the literature I had on-hand, so I wasted more time and curse-words discovering that 'feature' than any other. Mike
|
Sat Dec 27, 2014 4:29 pm |
|
|
BitWise
Joined: Sun Aug 04, 2013 9:02 pm Posts: 23
|
This project is still on going. The current status is:
The 16F1455 with USB CDC code is now functioning. No more PL2303 serial connections.
The number of emulations on board is now 8. You have the choice of:
1. SC/MP with 44K RAM and 20K ROM - Fully working with NIBL 2. CDP1802 with 44K RAM (Not boot ROM yet) 3. 6800 with 32K+12K RAM and 8K ROM (FLEX layout) 4. 6502 with 32K RAM + 32K ROM (16K Banked at $8000 for BASIC/FORTH/LISP ROMS- BBC layout) 5. 65C02 with 44K RAM + 20K ROM 6. 6809 with 32K+12K RAM and 8K ROM (FLEX layout) - Part Coded 7. 8080 with 44K RAM +4K ROM- Part Coded 8. Z80 with 44K RAM +4K ROM - Part Coded
Due to a design slip I have bit-bashed SPI currently on standard Arduino pins (for SD card access)
The card is compatible with my VT220 terminal shield
Currently running a with a cycle rate of 1Mhz but 2Mhz should be possible with all the emulations.
All the emulations are coded to be cycle exact for standard instructions and addressing modes. Added host access pseudo instructions are not.
The board design has been updated to allow 3 jumpers to allow any of the emulations to be picked as default (on the prototype boards you will hold a button on reset to enter a boot mode selector) and allow hardware SPI. The new board exposes more pins for EF inputs in CDP mode.
6800 and SC/MP modes have been added to my portable assembler and a 1802 mode is in flight. 8080 was added a couple of years ago. Only Z80 and 6809 to go.
I'd like to put a CP/M BIOS into a 4K ROM for the 8080/Z80 modes. If I could get CP/M 2.2 into ROM as well that would free up more RAM for the transcient program area.
The 6800 should be able to run the FLEX operating with a bit of persuading and it would be nice to have FLEX2 on the 6809.
I have a stock of small 128/256MB micro SD cards that would make nice virtual drives. I'm considering having a very simple non-standard partition table that just cuts them into floppy and small hard disk sizes.
|
Thu Feb 05, 2015 10:26 am |
|
|
BitWise
Joined: Sun Aug 04, 2013 9:02 pm Posts: 23
|
I managed to boot BBC BASIC in the 6502 emulator last night after stripping down my old Acorn MOS emulation and making it match the new emulation environment. Found some really dumb bugs in the implementation of the branches that inverted their operation. Needs a bit more work to implement the bank switching for the ROM images.
|
Thu Feb 12, 2015 10:12 pm |
|
|
BigEd
Joined: Wed Jan 09, 2013 6:54 pm Posts: 1803
|
A milestone!
|
Thu Feb 12, 2015 10:15 pm |
|
|
BitWise
Joined: Sun Aug 04, 2013 9:02 pm Posts: 23
|
Its getting there. The SC/MP is fully functional. The 6502 is close to working. The 6800 prints a message from its boot ROM so some of that emulation must work - needs more code to do something useful. The 1802 is coded but is waiting for me to add the device to my assembler then I can port the 1802 CamelForth and test it. The 65C02 is coded but needs a boot ROM. The 8080, Z80 and 6809 are part coded.
|
Thu Feb 12, 2015 10:23 pm |
|
|
barrym95838
Joined: Tue Dec 31, 2013 2:01 am Posts: 116 Location: Sacramento, CA, United States
|
BitWise wrote: ... The 6800 prints a message from its boot ROM so some of that emulation must work - needs more code to do something useful ... Maybe you could try my SWTPC translation of VTL-2: viewtopic.php?f=8&t=110It expects only the following three hooks, and RAM from $0000 to $7fff. It uses $0000 to $0107 (for variables, system stack, and input buffer), and is assembled to reside at $7d00. Everything in between belongs to the VTL-2 programmer. Code: ;mikbug-specific equates piad = $8004 ; to detect user keypress for pause function ineee = $e1ac ; to receive a user keypress outeee = $e1d1 ; to output an ASCII char ;
I can PM you my source, or re-assemble it to match your environment ... just let me know. Mike B.
|
Fri Feb 13, 2015 2:05 am |
|