RetroBrew Computers Forum
Discussion forum for the RetroBrew Computers community.

Home » RBC Forums » General Discussion » New board: 68k-MBC, an easy to build 68008 SBC (and a prototype on breadboard) (68008 CPU @ 8MHz, CP/M-68K, 128/512/1024KB RAM, I2C, 2 Serial ports, RS232, ICSP, User led and key, optional RTC and microSD, 16 HD (emulated on SD), optional 16x GPIO port )
New board: 68k-MBC, an easy to build 68008 SBC (and a prototype on breadboard) [message #7930] Thu, 03 September 2020 10:51 Go to next message
just4fun is currently offline  just4fun
Messages: 273
Registered: May 2017
Location: Dark side of the Moon
Senior Member
I'm just starting to play with a 68008 on a breadboard, feeding the instructions with a PIC18F47Q10 MCU (on the red custom PCB). SRAM is not connected yet:

/forum/index.php?t=getfile&id=1833&private=0

I've used here a PIC MCU because it has TTL compatible GPIOs. This is needed using an HMOS CPU (not CMOS as the previous one I've used).

I'm starting to see interesting things about the prefetching of the 68008 (used in a single-step bus cycle mode). The prefetching seems to be a not well documented aspect in the official documentation. The behaviour seems the same of the 68000 (two words prefetch FIFO).
I've found an interesting article about 68000 prefetching (and its subtle effects) here.
In this HP Real-time Emulator brochure they say that "68000/68008 have a two-words prefetch..." so the prefetch seems to be the same for both 68000 and 68008.

**** EDIT: the following assumptions are wrong. See https://www.retrobrewcomputers.org/forum/index.php?t=msg& ;amp ;amp ;amp ;amp ;th=511&goto=7952&#msg_7952.

Here a sequence needed to activate the HALT pin of the CPU. After the STOP 0x2700 instruction two more words are fetched by the CPU (in this case are two consecutive NOP instructions). Only after reading these two more words the HALT pin goes low (it is active low). So the whole sequence takes 8 bytes from the reset.

/forum/index.php?t=getfile&id=1835&private=0

**** EDIT: end of the wrong part

Another aspect is the power drained by this CPU. The whole breadboard sinks about 170-200mA during the simple tests I'm doing. So the voltage drop on the breadboard is a problem. To limit that I started to use multiple parallel wires for VCC and GND, and when this is not possible due the space I've done special cables with multiple wires soldered to a pin header to allow the insertion into the breadboard like a single wire:

/forum/index.php?t=getfile&id=1834&private=0

The next step will be connect the SRAM and test the loading sequence. We'll see...

[Updated on: Mon, 12 April 2021 08:13]

Report message to a moderator

Re: 68008 on breadboard [message #7931 is a reply to message #7930] Thu, 03 September 2020 14:28 Go to previous messageGo to next message
Yves-D. is currently offline  Yves-D.
Messages: 21
Registered: January 2020
Junior Member
Intesting finds about the prefetch queue which seems to be the best guarded secret of the lowly 68008.
I follow your work on this with interest.

The power consumption of the old NMOS 68000 bothered me too.
The alternatives are the 68HC000 / 68EC000 / 68SEC000 which are CMOS and you wouldn't need a PIC capable of driving NMOS pins.

In the end I got the lowest consumption with an 68SEC000 + 68C681 + 512k Flash + 128k SRam + low power GAL at about 50mA@5V at 12Mhz
Lowering the voltage to 3.3V (only possible on the 68SEC000) + 28L92 UART + 3.3V 512k Flash + 3.3V 512k SRAM + 3.3V low power GAL yielded around 28mA@3.3V at 12Mhz
These are values I can live with as I intend to run some of these devices 24h/24h.
The 68SEC000 rated at 20Mhz can be pushed up to 42Mhz as it seems. This heavy overclocking is seen in accelerator boards (using 68SEC000) for the Amiga (google ACA500plus).

Keep in mind that the 68SEC000 has a static core and can even be halted (Trap+HALT instruction in supervisor mode) and the oscillator can be turned off.
There's a hint about that in the 68SEC000 add-on to the user manual.
This might be interesting in your application where a PIC is feeding instructions to the 68k.

Here's my take on the 68SEC000 (fits into an Altoids box):
/forum/index.php?t=getfile&id=1837&private=0



Yves
Re: 68008 on breadboard [message #7932 is a reply to message #7931] Thu, 03 September 2020 18:21 Go to previous messageGo to next message
plasmo is currently offline  plasmo
Messages: 916
Registered: March 2017
Location: New Mexico, USA
Senior Member
Very nice. For comparison Tiny68K with NMOS 68000 consumes about 600mA, 5V at 12MHz.

This reminds me that I need to publish my Kuno design...
Bill
Re: 68008 on breadboard [message #7935 is a reply to message #7932] Fri, 04 September 2020 00:42 Go to previous messageGo to next message
just4fun is currently offline  just4fun
Messages: 273
Registered: May 2017
Location: Dark side of the Moon
Senior Member
Nice designs! Thanks for the info.
Re: 68008 on breadboard [message #7939 is a reply to message #7935] Fri, 04 September 2020 11:28 Go to previous messageGo to next message
quarterturn is currently offline  quarterturn
Messages: 86
Registered: April 2018
Member
Could it possibly run uCLinux like the Katy 68K? I have a Tiny68K and also find CP/M 68K old and obscure comapred to say Z80 CP/M 2.2.
Re: 68008 on breadboard [message #7942 is a reply to message #7939] Sat, 05 September 2020 01:28 Go to previous messageGo to next message
just4fun is currently offline  just4fun
Messages: 273
Registered: May 2017
Location: Dark side of the Moon
Senior Member
The final board will have 1MB RAM, so I think yes (having the time to do that...).

[Updated on: Sat, 05 September 2020 01:28]

Report message to a moderator

Re: 68008 on breadboard [message #7952 is a reply to message #7942] Tue, 08 September 2020 10:18 Go to previous messageGo to next message
just4fun is currently offline  just4fun
Messages: 273
Registered: May 2017
Location: Dark side of the Moon
Senior Member
Just to say that the 68008 fooled me completely in the previous test... Laughing Laughing
This was the result of a my own error and misassumption...

Error 1: I forgot to take into account that after the reset 8 bytes are needed to load the reset vector (SSP and PC)

But why the behavior appeared to me correct?

Simple, if you write an odd address as the PC vector (inside the reset exception) the 68008 halts immediately because it doesn't like an instruction starting in an odd address! And when this situation happens in the reset exception it simply halts itself and activates the HALT signal. This combinations fooled me completely because the 8th byte of the previous wrong sequence was an odd number!

Misassumption 1: when a STOP 0x2700 instruction is executed the HALT signal becomes active. No, this is not true because the execution is stopped, but the HALT signal remains not active (probably because it is used only for "catastrophic" situations as a wrong address inside an exception).

The correct sequence is the following:

/forum/index.php?t=getfile&id=1842&private=0

The first 4 bytes are the SSP vector, the second group of 4 bytes are the PC vector. If the 4th byte here is an odd number the CPU halts immediately and put the HALT signal on.
The following bytes are the STOP 0x2700 instruction that stops the CPU but doesn't give any signal on the HALT pin.

And also for these details the official documentations isn't too much clear...
Re: 68008 on breadboard [message #7958 is a reply to message #7952] Wed, 09 September 2020 06:41 Go to previous messageGo to next message
gbm is currently offline  gbm
Messages: 34
Registered: January 2018
Member
Actually you did not reach the point at which HALT is executed. The 68k ALWAYS prefetches at least one word of the next instruction before executing the current one, the only exception here is the execution of DBcc instruction.
First, try to use non-zero nitial values for SSP and PC, like 0x1000. The CPU will fetch 8 bytes of SSP and PC, 2 words of HALT, then the 1st word of the next instruction, then it will execute HALT.

The core of 68008 is exactly the same as 68000. Fetches are always done in word (2-byte) units, just the physical memory access is split into two byte transactions.

I may check the correct 68008 behavior on my SDC_One cycle-by-cycle if you supply the code you want to test. The SDC_One 68008 is fully tested and runs CP/M68k, so the hardware is definitely reliable.
Re: 68008 on breadboard [message #7959 is a reply to message #7958] Wed, 09 September 2020 11:32 Go to previous messageGo to next message
just4fun is currently offline  just4fun
Messages: 273
Registered: May 2017
Location: Dark side of the Moon
Senior Member
Thanks gbm,
I've checked again using this sequence soon after the CPU reset:

0x00  // SSP (4 bytes)
0x00
0x10
0x00

0x00  // PC (4 bytes)
0x00
0x20
0x00

STOP 0x2700  // 1st instruction 0x4E72 0x2700 (4 bytes: 0x4E 0x72 0x27 0x00)

NOP          // 2nd instruction 0x4E71        (2 bytes: 0x4E 0x71)

Currently all these bytes are "passed" in sequence by the PIC MCU to the 68008 when a read bus cycle is detected.
No RAM is currently used/connected.

If you try it on a RAM, the STOP 0x2700 instruction must begin at the address 0x2000.

As you can see in the output of the LA only 12 bytes are read (so until the STOP 0x2700 included), so the NOP instruction seems not to be fetched at all (the PIC MCU "feeds" a byte only if a read bus cycle is detected):

/forum/index.php?t=getfile&id=1853&private=0

[Updated on: Fri, 11 September 2020 00:24]

Report message to a moderator

Re: 68008 on breadboard [message #7968 is a reply to message #7959] Mon, 14 September 2020 08:47 Go to previous messageGo to next message
just4fun is currently offline  just4fun
Messages: 273
Registered: May 2017
Location: Dark side of the Moon
Senior Member
The 68008 starts moving...
Here the first "hello world" (in assembler using Easy68k):

https://i.postimg.cc/Xq51nqcK/68008_on_Breadboard.png

...and the actual "situation" on the breadboard:

https://i.postimg.cc/fT4gB7D8/68008_on_Breadboard.jpg

For now the program is loaded from the flash of the PIC MCU. Next step will probably be using the microSD or a loader from the serial port.
Re: 68008 on breadboard [message #7983 is a reply to message #7968] Thu, 24 September 2020 01:25 Go to previous messageGo to next message
just4fun is currently offline  just4fun
Messages: 273
Registered: May 2017
Location: Dark side of the Moon
Senior Member
EhBasic running on the "68008 on breadboard" @ 8MHz...

/forum/index.php?t=getfile&id=1875&private=0

/forum/index.php?t=getfile&id=1876&private=0

/forum/index.php?t=getfile&id=1877&private=0

The ASCIIART.BAS test took about 2m28s @ 8MHz.

https://i.postimg.cc/G2jdkqY8/20200924-105905.jpg

[Updated on: Thu, 24 September 2020 02:06]

Report message to a moderator

Re: 68008 on breadboard [message #7984 is a reply to message #7983] Thu, 24 September 2020 02:52 Go to previous messageGo to next message
Yves-D. is currently offline  Yves-D.
Messages: 21
Registered: January 2020
Junior Member
Yay, success!
Considering how often EHBasic-68k was used lately on the 68000 systems demoed on this forum, it's a pity it has not been extended with some new few features.

I tried to re-implement the load/save function (intended for the Easy68k-Emulator) for read/writing the Basic program to a 29F040 flash chip present in my system.
So far I've no results to show. The EHBasic code must also be located in RAM, you can't write to a 29Fxxx flash chip and at the same time read the program instructions from it.
Writing the program code to a Flash-Chip or EEProm would be simpler in assembler than handling the additional burden of a FAT-FS on a compact-flash.

Another nice add-on I've thought of, would be an autostart of an EHBasic program: The 68000 starts EHBasic on power-up, checks in the Flash if there's an "autostart.bas" available and executes it.
That would make a self-contained system out of every 68k-SBC, starting automatically it's embedded Basic-code. With no need of external compilers and uploads during Basic code fixes. Just a VT100 for character input.
Unfortunately digging trough the load/save EHBasic assembler code makes my head spin each time I try...

Yves

[Updated on: Thu, 24 September 2020 03:02]

Report message to a moderator

Re: 68008 on breadboard [message #7998 is a reply to message #7984] Mon, 05 October 2020 10:16 Go to previous messageGo to next message
just4fun is currently offline  just4fun
Messages: 273
Registered: May 2017
Location: Dark side of the Moon
Senior Member
One interesting thing of the PIC18F47Q10 MCU is the CLC (Configurable Logic Cell) module.
It is a sort of LUT element of a CPLD. You can configure the logic function and use it as glue logic. More, because all the setting is made changing the content of a dedicated set of registers, you could change the implemented function dynamically while the FW runs.
There are 8 CLC modules into the PIC18F47Q10.

I've some glue logic in the breadboard done with a 74HCT02 IC, so I decided to try to use these CLC modules to implement the glue logic inside the PIC.
In the following image there is the digital network (in red) to "migrate":

/forum/index.php?t=getfile&id=1885&private=0

There are 5 signals, three are already connected to MCU GPIO pins and two are completely external. So an implementation requires five MCU pins, two more. But two signals of the logic network are connected only with the MCU, so can be "virtualized" into bits inside CLC registers using the ability to change the implemented network dynamically (e.g. you can change the "negate" or "not negate" bit to create a 0 or 1 as a "virtual" signal).

So it can be done without using more MCU pins!

Here the screenshot of one of the two CLC I've used from the MPLABX IDE:

/forum/index.php?t=getfile&id=1886&private=0

The IO/M# (# = negated) signal is now connected to a GPIO pin (RA3, previously used for the S_STEP# output) internally "linked" to the CLCIN0 input (NOR gate 1).
The DS# signal is now connected to a GPIO pin (RA2, previously used for the DT_EN# output) internally "linked" to the CLCIN1 input (NOR gate 3).
The output of the whole CLC1 module is the DTACK# signal connected to an output GPIO pin (RA4, as before but now it is an output).

The S_STEP# signal is now "virtualized" using the output of the NOR gate 2 that has all the inputs to 0, changing the "inverted" or "not inverted" bit related with the configuration of the NOR gate 2 output (in the previous photo is "inverted" that means S_STEP# = 1, so "not active").
The same with the DT_EN# signal. In this case I used a whole CLC (CLC2) to have a 0/1 virtual signal to input at the CLC1 NOR gate 3 (see the CLC2_OUT input selection).
In this way I can manage two "virtual output GPIO pins" from the PIC FW to the digital network created with the CLC modules without to use any real physical GPIO output pin.

Of course I've made the needed modifications inside the PIC FW to take into account the various changes.

And here the new "setup" of the breadboard without the 74HCT02 IC (laying up side down...):

/forum/index.php?t=getfile&id=1887&private=0

Of course the "68008 on breadboard" is running as before...

/forum/index.php?t=getfile&id=1888&private=0

[Updated on: Thu, 08 October 2020 06:50]

Report message to a moderator

Re: 68008 on breadboard [message #8005 is a reply to message #7930] Fri, 09 October 2020 01:08 Go to previous messageGo to next message
ale500 is currently offline  ale500
Messages: 44
Registered: April 2018
Member
Very clever use of the CLCs. (I gave up on Microchip's uC because of driver and firmware issues with the JLink and the Pickit 3 I have, now bricked), I still have so PSoC5s that have something similar, maybe more versatile. I haven't thought about using them as glue logic per se, but their 5V tolerance made them a possibility. I just think that such a powerful uC to control something so under-powered, it only shows how these uC get crippled as general computing units.
I just don't find my 68008 anywhere... I'll have to use a 68000 instead...
Re: 68008 on breadboard [message #8006 is a reply to message #8005] Fri, 09 October 2020 05:30 Go to previous messageGo to next message
just4fun is currently offline  just4fun
Messages: 273
Registered: May 2017
Location: Dark side of the Moon
Senior Member
ale500 wrote on Fri, 09 October 2020 10:08
I haven't thought about using them as glue logic per se, but their 5V tolerance made them a possibility.
Here and example (not mine) of an "odd couple": Psoc + Z80: https://hackaday.io/project/167711-3-chip-z80-design

ale500 wrote on Fri, 09 October 2020 10:08
I just think that such a powerful uC to control something so under-powered, it only shows how these uC get crippled as general computing units.
Yes, these MCU are really monsters... but if you think from a BOM cost point of view it could make sense...

After all is just for fun...


[Updated on: Fri, 09 October 2020 05:30]

Report message to a moderator

Re: 68008 on breadboard [message #8009 is a reply to message #8006] Sat, 10 October 2020 02:44 Go to previous messageGo to next message
just4fun is currently offline  just4fun
Messages: 273
Registered: May 2017
Location: Dark side of the Moon
Senior Member
Adding an auto-reset circuit.

In the previous XXX-MBC there was a simple auto-reset circuit for the Arduino bootloader, but here there isn't any bootloader because the Pickit4 is used to program the MCU.

Anyway an auto-reset circuit is requested to enable an "automated cross-assembler toolchain" to reset the board and "trigger" the sLoad loader for an automatic load&execute function.
But a simple approach can't be done here because the PIC MCU Reset signal needs "special" attention because is used by the external programmers for the "high voltage" programming sequence.

So I used a more "convoluted" reset circuit driven by the DTR signal as used for the Arduino bootloader:

/forum/index.php?t=getfile&id=1889&private=0

and here a short video showing the "automated toolchain" with the Easy68K assembler and the sLoad utility loading and executing the EhBasic interpreter. Please note that when the TeraTerm script is launched from the batch file the DTR signal activated by the TeraTerm sw resets the breadboard and sLoad is executed.


About a bootloader for the PIC.

I've seen that there is a MPLABX bootloader utility that must be "integrated" into the source to allow to upload a new FW using the serial port (and a sw utility to run from a PC). May be I'll give a look to it in the next if I've the time...

Now I've done enough "experiments" with the breadboard and I can start the design of the final board.
Re: 68008 on breadboard [message #8062 is a reply to message #8009] Thu, 29 October 2020 12:06 Go to previous messageGo to next message
bigpete is currently offline  bigpete
Messages: 7
Registered: May 2020
Junior Member
I for one am looking forward to the inevitable "NS32032 on a breadboard" post. lol.


Your projects are all amazing and I can't wait to see how this one turns out.

[Updated on: Fri, 30 October 2020 06:52]

Report message to a moderator

Re: 68008 on breadboard [message #8063 is a reply to message #8062] Fri, 30 October 2020 02:02 Go to previous messageGo to next message
just4fun is currently offline  just4fun
Messages: 273
Registered: May 2017
Location: Dark side of the Moon
Senior Member
bigpete wrote on Thu, 29 October 2020 20:06
I for one am looking forward to the inevitable "NS32032 on a breadboard" post. lol.

Yeah... Laughing

Not sure the next "candidate" could be...

Currently is just arrived a lot of W65C816 CPU, but probably the most "strange" one will be a KR180VM2 CPU that is on the way. It is the soviet "clone" of a Digital LSI-11 CPU, so a sort of PDP-11 could be possible. Currently I'm trying to read the KR180VM2 datasheet (I've found all the original tech docs, but of course is only in Russian), but I have to read also "some" PDP-11 documentation as I never used that.

/forum/index.php?t=getfile&id=1912&private=0

/forum/index.php?t=getfile&id=1913&private=0



Quote:
...can wait to see how this one turns out

Me too... Very Happy
I've just finished the draft of the schematic of the "final" board, and currently editing it on the CAD.

BTW: I must to admit that I'm having big fun with these CPU, and also acquiring a lot of knowledge...
Re: 68008 on breadboard [message #8064 is a reply to message #7930] Fri, 30 October 2020 04:12 Go to previous messageGo to next message
ale500 is currently offline  ale500
Messages: 44
Registered: April 2018
Member
The KR1801VM2 is quite nice as it implements mul and div, as well as all basic PDP-11 opcodes. A group of people was able to get die pictures, draw the schematics and develop a verilog models of the VM2 as well as the VM1 (and they work!Wink. I'd recommend you have a look at https://github.com/1801BM1.
The models are there as well as quite a bit of information and a datasheet written in Russian.
The thing is that in this processor (and in the VM1 and 3) the shared address/data bus uses negative logic and has open drain drivers, i.e. you need a pull up on most pins (look at the schematic in the repository). I haven't got any VM2s (there was an offer some weeks ago, but I didn't want to bid) but I got 2 VM1s, they work the same way but are slower, they need more clocks per opcode. These things are slow < 500 k ops per second @ 5 MHz.
They have a complicated bus:

The SYNC signal tells you when the processor accesses the BUS, some addresses are internal to a small peripheral in the processor die: timers and an interrupt controller.
The DIN/DOUT signals tells you about read and write and you have to acknowledge the cycles like in the MC68K. If not an exception is raised after 64 cycles.
Recently I got some 74LS240 to interface this chip to memory (inverting buffers), using the inverted bus is not fun Smile, so I can continue this long standing VM1 project.

Quote:
It is the soviet "clone" of a Digital LSI-11 CPU
It is not "the": it is one of the several clones that exist!. Some of them are several chips, this one is a one chip version Smile. Insane what these guys did back then Smile

Have fun !

[Updated on: Fri, 30 October 2020 04:18]

Report message to a moderator

Re: 68008 on breadboard [message #8069 is a reply to message #8064] Sat, 31 October 2020 05:46 Go to previous messageGo to next message
just4fun is currently offline  just4fun
Messages: 273
Registered: May 2017
Location: Dark side of the Moon
Senior Member
@ale500:

Thanks for the info!
I've found a lot of info also here (a really gold mine!). There is also a thread about the 180VM1 (180BM1).

BTW: I've just finished the draft of the schematic with Kicad (see attachment). It will be possible configure the board choosing between two main HW configurations: Lite and Full. With the Lite config it will be possible set up a 68008 system with only 3 ICs.

[Updated on: Sun, 01 November 2020 01:31]

Report message to a moderator

Re: 68008 on breadboard [message #8144 is a reply to message #8069] Sun, 20 December 2020 09:17 Go to previous messageGo to next message
just4fun is currently offline  just4fun
Messages: 273
Registered: May 2017
Location: Dark side of the Moon
Senior Member
I was distracted by other things... so I did only little steps...

Anyway here the first attempt to put all the components on a 100x100mm PCB (without any routing, but only taking into account the "ratnest").
The real work starts now. We'll see...


/forum/index.php?t=getfile&id=1944&private=0
  • Attachment: A091020.jpg
    (Size: 222.03KB, Downloaded 3593 times)
Re: 68008 on breadboard [message #8174 is a reply to message #8144] Mon, 04 January 2021 09:35 Go to previous messageGo to next message
just4fun is currently offline  just4fun
Messages: 273
Registered: May 2017
Location: Dark side of the Moon
Senior Member
I've just sent the PCB to the fab, so fingers crossed...

Here the final layout:

/forum/index.php?t=getfile&id=1953&private=0

/forum/index.php?t=getfile&id=1954&private=0

On the bottom side SJ1/2/3 are used to configure the HW for the Lite/Full mode (Lite mode requires only 3 ICs and less components populated).

The AUX connector here expands the IOEXP connector used in the previous boards (V20-MBC and Z80-MBC2), supporting both the two serial ports with RS232 levels, the I2C port, the TTL level serial 2 port and a serial-USB adapter for the serial 2 with independent power:

/forum/index.php?t=getfile&id=1955&private=0

The GPIO connector is the same of the previous board (V20-MBC and Z80-MBC2):

/forum/index.php?t=getfile&id=1956&private=0

Of course it is compatible with both the uTerm and uCom boards and the related 3D printed horizontal and vertical brackets.

[Updated on: Mon, 04 January 2021 09:43]

Report message to a moderator

Re: 68008 on breadboard [message #8275 is a reply to message #8174] Mon, 01 February 2021 03:47 Go to previous messageGo to next message
just4fun is currently offline  just4fun
Messages: 273
Registered: May 2017
Location: Dark side of the Moon
Senior Member
68k-MBC starts moving...

/forum/index.php?t=getfile&id=1970&private=0

/forum/index.php?t=getfile&id=1971&private=0
Re: 68008 on breadboard [message #8319 is a reply to message #8275] Sun, 14 February 2021 10:45 Go to previous messageGo to next message
just4fun is currently offline  just4fun
Messages: 273
Registered: May 2017
Location: Dark side of the Moon
Senior Member
Testing the Lite HW configuration of the 68k-MBC, that allows to make a 3 ICs 68008 system (and uses less components than the Full HW configuration).

Now IOS firmware can check for Lite/Full HW configuration and modify the signals behaviour accordingly.

/forum/index.php?t=getfile&id=1984&private=0

/forum/index.php?t=getfile&id=1986&private=0

/forum/index.php?t=getfile&id=1985&private=0


Up to now I've found three needed changes on the PCB, nothing that I can't manage with an easy "patch", anyway a new revision will be needed.
Re: 68008 on breadboard [message #8431 is a reply to message #8319] Wed, 31 March 2021 08:42 Go to previous messageGo to next message
just4fun is currently offline  just4fun
Messages: 273
Registered: May 2017
Location: Dark side of the Moon
Senior Member
Porting CP/M-68K to the 68k-MBC.
Starting to see something familiar...

/forum/index.php?t=getfile&id=2047&private=0

The blocking/de-blocking routines this time are on the MCU side (managed by IOS), using an optimized physical read approach (de-blocking) and a deferred write blocking strategy as suggested by the CP/M-68K System Guide par. 5.3.2 and 5.3.4.

Both 128 and 512 bytes sector sizes are supported (with transparent blocking/de-blocking if the 128 bytes sector size is enabled) by IOS.
Re: 68008 on breadboard [message #8433 is a reply to message #8431] Thu, 01 April 2021 08:53 Go to previous messageGo to next message
gkaufman is currently offline  gkaufman
Messages: 186
Registered: October 2015
Senior Member
Looking good, can't wait for the files to be available Razz
Re: 68008 on breadboard [message #8459 is a reply to message #8433] Mon, 12 April 2021 05:25 Go to previous messageGo to next message
just4fun is currently offline  just4fun
Messages: 273
Registered: May 2017
Location: Dark side of the Moon
Senior Member
All the details to build the 68K-MBC can be found from now here.

/forum/index.php?t=getfile&id=2082&private=0

/forum/index.php?t=getfile&id=2083&private=0

Note: Some documentation is not ready yet on the projects page.

I've prepared an "easy" link to get a small lot (5 pcs minimum) of PCB. The link is this one.
Re: 68008 on breadboard [message #8475 is a reply to message #8459] Sat, 17 April 2021 08:40 Go to previous messageGo to next message
just4fun is currently offline  just4fun
Messages: 273
Registered: May 2017
Location: Dark side of the Moon
Senior Member
I've found a way to flash the PIC18F47Q10 just using an Arduino Uno board and a simple hand-made "ICSP Shield", thanks to this page.
I've made a correction on a file to set the right Device Id, and changed a little the .ino to add a "standby" state when is more safe connect/disconnect the ICSP cable to/from an unpowered target board:

/forum/index.php?t=getfile&id=2084&private=0

/forum/index.php?t=getfile&id=2085&private=0

I'll write all the details in the 68k-MBC "project page"...
For now the news are that... it can be done! Razz

BTW: in the meanwhile if someone wants the modified files and the schematic of the "ICSP Shield" can ask here of course.


* UPDATE *: It is all on the "project page" from now.

/forum/index.php?t=getfile&id=2090&private=0

[Updated on: Fri, 23 April 2021 06:10]

Report message to a moderator

Re: 68008 on breadboard [message #8703 is a reply to message #8475] Mon, 21 June 2021 13:41 Go to previous messageGo to next message
guus.assmann is currently offline  guus.assmann
Messages: 50
Registered: May 2018
Location: Netherlands
Member
Hello,
Today I've finally tested my board, after assembling it of course.
And at first, I was happy, it worked.
However in a few minutes, it started giving strange data on the screen and reporting a halt.
So I tested 3 other CPU's, all 8Mhz. Same result, mostly even faster.
Next, I put in 2 fast Ram-chips. (10nS)
With those the CPU works fine and stays alive during testing.
So my conclusion is, that the Ram is not fast enough, or timing is off by a bit.
Please advise what to do....
BR/
Guus
Re: 68008 on breadboard [message #8704 is a reply to message #8703] Tue, 22 June 2021 10:13 Go to previous messageGo to next message
gkaufman is currently offline  gkaufman
Messages: 186
Registered: October 2015
Senior Member
Same problem here, Fabio is aware and I've sent him some of the 68008P8's that failed here.

I've ordered MC68008P10's from this vendor on Ebay https://www.ebay.com/itm/152975924021 and all 4 have worked perfectly.

I'm curious what 10ns ram you've used?
Re: 68008 on breadboard [message #8705 is a reply to message #8704] Wed, 23 June 2021 10:08 Go to previous messageGo to next message
guus.assmann is currently offline  guus.assmann
Messages: 50
Registered: May 2018
Location: Netherlands
Member
Just checked.
Samsung K6R4008Y10.
In s SOJ package and on an adapter PCB.
Re: 68008 on breadboard [message #8706 is a reply to message #8705] Thu, 24 June 2021 09:58 Go to previous messageGo to next message
just4fun is currently offline  just4fun
Messages: 273
Registered: May 2017
Location: Dark side of the Moon
Senior Member
Hi,
yes a few people seem to have this kind of problem.

I'm currently waiting a couple of 68008P8 CPU from gkaufman that are showing that.

Also I'm currently testing others CPU (now little more of 20 CPU) that arrived lately from various sellers, and yesterday I found one (68008P8) showing the "error 2" after about ten seconds from the power on (I was never able to reproduce this issue until now...).

I've done some tests with it, then I did a little change based on those and the not working CPU started to work...

Probably too early to call it "fix", anyway I've attached here that testing version of IOS (as .hex file).

Could you try it and say if there is any improvement for you?

Regards.

[Updated on: Fri, 25 June 2021 03:31]

Report message to a moderator

Re: 68008 on breadboard [message #8721 is a reply to message #8706] Sun, 27 June 2021 10:51 Go to previous messageGo to next message
gkaufman is currently offline  gkaufman
Messages: 186
Registered: October 2015
Senior Member
The S310121-R250521_68k-MBC_IOS_Test0.X.production.hex now works perfectly with the 3 MC68008P8's that previously gave "error 2", and also works fine with my other MC68008P10's

I think you have a "fix"!

I'm curious what the issue was?

-= Gary
Re: 68008 on breadboard [message #8722 is a reply to message #8705] Sun, 27 June 2021 10:55 Go to previous messageGo to next message
gkaufman is currently offline  gkaufman
Messages: 186
Registered: October 2015
Senior Member
guus.assmann wrote on Wed, 23 June 2021 10:08
Just checked.
Samsung K6R4008Y10.
In s SOJ package and on an adapter PCB.
Thanks, where did you get the adapter boards?
Re: 68008 on breadboard [message #8740 is a reply to message #8722] Sat, 03 July 2021 08:26 Go to previous messageGo to next message
just4fun is currently offline  just4fun
Messages: 273
Registered: May 2017
Location: Dark side of the Moon
Senior Member
I changed the a bit inside a PIC configuration register (SLRCONC) that sets the slew rate of a GPIO when used as output, and in particular RC0 (CLK) used to output the clock to the 68008 CPU.

The final updated version of IOS is available from now in the "project" download page: https://hackaday.io/project/177988-68k-mbc-a-3-ics-68008-hom ebrew-computer#menu-files

I've updated the SD image too with files related to the "dockerized" gcc cross-compiler toolchain. For more info read the README.TXT files inside /gcc-68k/docker and /gcc-68k/workdir of the new SD image.


Regards

Fabio

[Updated on: Sat, 03 July 2021 08:27]

Report message to a moderator

Re: 68008 on breadboard [message #8749 is a reply to message #8740] Sun, 04 July 2021 08:40 Go to previous messageGo to next message
guus.assmann is currently offline  guus.assmann
Messages: 50
Registered: May 2018
Location: Netherlands
Member
@gkaufman,
The adapter boards were designed by someone in this forum and manufactured by JCLPCB.
BR/
Guus
Re: 68008 on breadboard [message #8877 is a reply to message #8749] Tue, 20 July 2021 10:37 Go to previous messageGo to next message
just4fun is currently offline  just4fun
Messages: 273
Registered: May 2017
Location: Dark side of the Moon
Senior Member
I've just tried one of these little thermal printers available on ebay/aliexpress. They have an RS232 serial port, so I've used it as a little "system printer" (activated with the Ctrl-P CP/M command) connected to the RS232 port 2:

/forum/index.php?t=getfile&id=2261&private=0

To have more printable space I've done a small utility (with CB68) to set a small font so it is possible to get 42 columns...

/forum/index.php?t=getfile&id=2262&private=0

I'll add a chapter on the "project" page with all the details when I've the time...


* UPDATE * : Added a chapter about the Q203 printer: https://hackaday.io/project/177988-68k-mbc-a-3-ics-68008-hom ebrew-computer/log/195649-using-a-small-thermal-printer

[Updated on: Wed, 28 July 2021 00:50]

Report message to a moderator

Re: 68008 on breadboard [message #8896 is a reply to message #8877] Mon, 26 July 2021 02:44 Go to previous messageGo to next message
just4fun is currently offline  just4fun
Messages: 273
Registered: May 2017
Location: Dark side of the Moon
Senior Member
Starting to think to a Standard Parallel Port (SPP) adapter to connect to the 68k-MBC GPIO port...

/forum/index.php?t=getfile&id=2267&private=0

/forum/index.php?t=getfile&id=2268&private=0

We'll see...
Re: 68008 on breadboard [message #8919 is a reply to message #8896] Fri, 30 July 2021 03:56 Go to previous messageGo to next message
just4fun is currently offline  just4fun
Messages: 273
Registered: May 2017
Location: Dark side of the Moon
Senior Member
I realized that the MCP23017 GPIO inputs aren't strictly TTL compatible, so I added a 74HCT14 for the input Status lines (from the printer).

I've also moved the led for a better panel mounting.

BTW: I've found an interesting book about the Parallel Port. See the attachment (Parallel Port Complete Programming, Interfacing and Using the PC's Parallel Printer Port)

/forum/index.php?t=getfile&id=2293&private=0
Re: 68008 on breadboard [message #9166 is a reply to message #8919] Tue, 28 September 2021 09:02 Go to previous messageGo to previous message
just4fun is currently offline  just4fun
Messages: 273
Registered: May 2017
Location: Dark side of the Moon
Senior Member
I've tested the SPP adapter board but, unfortunately, I don't like it at all... Crying or Very Sad

/forum/index.php?t=getfile&id=2423&private=0

I've underestimated the total combined effect of the "backdrive" currents (when the printer is on and the board is off, so currents are injected thru the "upper" ESD diodes), and they are too much.

So I've started again from scratch and ended up that a simpler and effective approach probably is to use a couple of the "venerable" but still in production 74LS244.

Other most "modern" approaches (as using the 74ABT Bi-CMOS series) require at least one IC more (other 74XX244 do not have the Schmitt trigger on inputs that 74LS244 has), and using discrete devices for the 11 open collector output drivers require 11 BJT/FET plus more resistors (and the resulting signals are "slow" due the passive pullups).

So I did a new version with two 74LS244:

/forum/index.php?t=getfile&id=2424&private=0

We'll see...

BTW: I've found another interesting documentation. It is the complete IEEE Std 1284-2000 with all the details about EPP and ECP too here

[Updated on: Sat, 02 October 2021 01:27]

Report message to a moderator

Previous Topic: VT100 control codes and minicom
Next Topic: N8 SBC 3.5" Floppy Support


Current Time: Sat Apr 26 14:35:58 PDT 2025

Total time taken to generate the page: 0.00874 seconds