Page 1 of 1

New 65816 SBC

Posted: Sat Oct 07, 2017 7:08 pm
by danwerner
I have had this idea rattling around in my head for a 65816 SBC for some time now – and I had some free time, so I put form to that thought. The design is pretty straight forward, and leverages the ECB bus and is compatible with the IO boards from the Retrobrew Computers (formerly N8VEM) project. I have a monitor running in "emulation" mode and am working on creating a native mode monitor now. I also have the code running to control the 8272 based floppy controller card.

The system has 512K RAM and 32K ROM as well as a real time clock on board.

as it stands the memory map is:

000000 - 007FFF On Board RAM
008000 - 00FDFF On Board RAM or ROM - ROM can be software selectable to 32K or a choice of a 8 or 16K bank - bank size selectable in GAL equations
00FE00 - 00FE06 16550 UART
00FE07 - FE07 RTC & ROM SIZE SELECTION FLAG
00FE08 - 00FEFF Mapped to Z80 ports for ECB bus boards (IO)
00FF00 - 00FFFF BIOS and Hardware Vectors
00FF00 - 00FF70 Native mode jump table
00FF71 - 00FFEF Emulation Mode jump table
00FFF0 - 00FFFF Hardware Vectors
010000 - 07FFFF On Board RAM
080000 - FFFFFF Open to ECB Bus

more information including schematics can be found here:
https://www.retrobrewcomputers.org/doku ... 16_ecb_sbc


I have a few extra SBCs from the manufacturing run, so if anyone is interested in building one of these -- they are listed for sale on the Retrobrew computers "board inventory" page here:

https://www.retrobrewcomputers.org/doku ... dinventory

Re: New 65816 SBC

Posted: Sat Oct 07, 2017 7:26 pm
by BigDumbDinosaur
You might find Supermon 816 useful, as it runs on the '816 in native mode.

Re: New 65816 SBC

Posted: Sat Oct 07, 2017 7:46 pm
by danwerner
BigDumbDinosaur wrote:
You might find Supermon 816 useful, as it runs on the '816 in native mode.
Thanks, will check it out!

Dan

Re: New 65816 SBC

Posted: Sun Oct 08, 2017 3:08 am
by danwerner
BigDumbDinosaur wrote:
You might find Supermon 816 useful, as it runs on the '816 in native mode.
Supermon 816 is exactly what I was looking for, so I abandoned my monitor and decided to use Supermon.

I successfully got it to assemble using the WDC assembler (I want to keep all of my work in the same tools, to keep my sanity :D ), and everything checks out -- except reverse copies. forward works, but reverse does not.

example
T 7000 7010 5000 <- works OK
T 7000 7010 7060 <- returns to prompt OK, but fails to copy anyhting

The code is pretty simple, and as far as I can tell it assembled properly (from what I can tell the WDC toolset is picky, so proper assembly is not always to be taken for granted)

I am going to keep looking, but I was wondering if there were any known bugs in this area?

Dan

Re: New 65816 SBC

Posted: Sun Oct 08, 2017 3:14 am
by danwerner
danwerner wrote:
BigDumbDinosaur wrote:
You might find Supermon 816 useful, as it runs on the '816 in native mode.
Supermon 816 is exactly what I was looking for, so I abandoned my monitor and decided to use Supermon.

I successfully got it to assemble using the WDC assembler (I want to keep all of my work in the same tools, to keep my sanity :D ), and everything checks out -- except reverse copies. forward works, but reverse does not.

example
T 7000 7010 5000 <- works OK
T 7000 7010 7060 <- returns to prompt OK, but fails to copy anyhting

The code is pretty simple, and as far as I can tell it assembled properly (from what I can tell the WDC toolset is picky, so proper assembly is not always to be taken for granted)

I am going to keep looking, but I was wondering if there were any known bugs in this area?

Dan

nevermind, I found the problem -- duh . . .

Code: Select all

 000000C0   opc_cpyi .equ $c0                  ;CPY # opcode
 000000A2   opc_ldxi .equ $a2                  ;LDX # opcode
 000000A0   opc_ldyi .equ $a0                  ;LDY # opcode
 00000054   opc_mvn  .equ $54                  ;MVN opcode
 0000002C   opc_mvp  .equ 44                  ;MVP opcode
 000000C2   opc_rep  .equ $c2                  ;REP opcode
 000000E2   opc_sep  .equ $e2                  ;SEP opcode

Re: New 65816 SBC

Posted: Sun Oct 08, 2017 4:05 am
by BigDumbDinosaur
danwerner wrote:
BigDumbDinosaur wrote:
You might find Supermon 816 useful, as it runs on the '816 in native mode.
Supermon 816 is exactly what I was looking for, so I abandoned my monitor and decided to use Supermon.

I successfully got it to assemble using the WDC assembler (I want to keep all of my work in the same tools, to keep my sanity :D ), and everything checks out -- except reverse copies. forward works, but reverse does not.

example
T 7000 7010 5000 <- works OK
T 7000 7010 7060 <- returns to prompt OK, but fails to copy anyhting

The code is pretty simple, and as far as I can tell it assembled properly (from what I can tell the WDC toolset is picky, so proper assembly is not always to be taken for granted)

I am going to keep looking, but I was wondering if there were any known bugs in this area?

nevermind, I found the problem -- duh . . .

Code: Select all

 000000C0   opc_cpyi .equ $c0                  ;CPY # opcode
 000000A2   opc_ldxi .equ $a2                  ;LDX # opcode
 000000A0   opc_ldyi .equ $a0                  ;LDY # opcode
 00000054   opc_mvn  .equ $54                  ;MVN opcode
 0000002C   opc_mvp  .equ 44                  ;MVP opcode   <----------------
 000000C2   opc_rep  .equ $c2                  ;REP opcode
 000000E2   opc_sep  .equ $e2                  ;SEP opcode
Dan
Amazing what a missing dollar sign can do. :D

Re: New 65816 SBC

Posted: Tue Oct 10, 2017 12:03 pm
by JeeK
danwerner wrote:
BigDumbDinosaur wrote:
You might find Supermon 816 useful, as it runs on the '816 in native mode.
Thanks, will check it out!
Maybe you will find Jammon (Jamaica Monitor) also useful. Despite it's old, it works nicely at least for my environment. I translated it to the ACME assembler syntax for better integration into my project, which is based on C64 SuperCPU for testing and a 16-bit C64 expansion board (c't magazine, 1987) (sorry, currently just german docs available) on real hardware. In addition to the embedding glue code needed I fixed a minor bug concerning disassembling in alternate display mode and how the cpu flags are handled.
Details on request. ;)

Re: New 65816 SBC

Posted: Thu Oct 12, 2017 2:34 am
by danwerner
JeeK wrote:
danwerner wrote:
BigDumbDinosaur wrote:
You might find Supermon 816 useful, as it runs on the '816 in native mode.
Thanks, will check it out!
Maybe you will find Jammon (Jamaica Monitor) also useful. Despite it's old, it works nicely at least for my environment. I translated it to the ACME assembler syntax for better integration into my project, which is based on C64 SuperCPU for testing and a 16-bit C64 expansion board (c't magazine, 1987) (sorry, currently just german docs available) on real hardware. In addition to the embedding glue code needed I fixed a minor bug concerning disassembling in alternate display mode and how the cpu flags are handled.
Details on request. ;)

I will check it out, thanks!

Dan