Is this specifications of ao68000?
The MC68000 uses UDS and LDS as a byte lane in a read-cycle.
ao68000 uses the SEL signal as a byte lane. During a read-cycle, it is always SEL=4'b1111. In the read-cycle of 1 byte, SEL=4'b1111.
If this difference is specifications of ao68000, I do not assume it a problem. However, I think it to be slightly inconvenient.
This behaviour of the SEL signal when reading was chosen deliberately because of its simplicity. I was planning to use the processor on a 32-bit bus, where reading a byte has the same cost as reading a 32-bit word.
I agree that this way of driving the SEL signal can be inconvenient (and inefficient), especially on a bus with a smaller width.
If I find some time this week I might commit a fix. The fix should not be difficult.
Thank you for your interest and tests.
I implemented ao68000 for trial in FPGA.
The board is here. Device is ArriaGX. http://www.cqpub.co.jp/eda/ArriaGX/default.htm (This is written in Japanese.)
The software is here. http://www.vector.co.jp/soft/dos/prog/se007609.html (This is written in Japanese.) AS68K is an assembler for 68000. The distribution package includes a monitor program. This monitor program uses UART. Because it is an old program, the bus of the peripheral device is 16 bits width. I revised boundery to 32 bits to the specifications of the SEL signal.
It execute.
---- monitor program message ----
MC68000/08 CPU board monitor Ver1.20 ? This monitor supports following commands Dssssss(cr) - Dump in hex and char Gssssss(cr) - Go without trace Fssssss,eeeeee,dd(cr) - Fill with a value Mssssss - Memory set ssssssss dd xx cr,space,BS or "." Lssssss(cr) - List 20-lines or range RS - Register set/display Tssssss - Trace one instruction S - S2-loader (exit by ESC) l00ff0000 00FF0000 ORI.B #$00,D1 00FF0004 ??? 00FF0006 ??? 00FF0008 PEA $00F001CE 00FF000E MOVE.L #$00001000,-(A7) 00FF0014 MOVE SR,-(A7) 00FF0016 MOVEM.L D0-D7/A0-A7,-(A7) 00FF001A MOVE.L #$00F00592,$0008 00FF0022 MOVE.L #$00F005AC,$000C 00FF002A MOVE.L #$00F005B8,$0010 00FF0032 MOVE.L #$00F005E4,$0014 00FF003A MOVE.L #$00F005E4,$0018 00FF0042 MOVE.L #$00F005E4,$001C 00FF004A MOVE.L #$00F005E4,$0020 00FF0052 MOVE.L #$00F001C6,$0024 00FF005A MOVE.L #$00F005E4,$0028 00FF0062 MOVE.L #$00F005E4,$002C 00FF006A LEA $00FF05EE(PC),A0 00FF006E LEA $0080,A1 00FF0072 MOVEQ #$0F,D0 *
---- MON68K message ----
Thank you.
I am happy to hear it executes.
It was interesting to hear about the Veritak simulator.
Thank you for your tests.