RetroBrew Computers Forum
Discussion forum for the RetroBrew Computers community.

Home » RBC Forums » General Discussion » Tiny68K, 68000 SBC with 16 Meg memory for CP/M-68K (68000, CP/M-68K, 100mm x 100mm pcb)
Tiny68K, 68000 SBC with 16 Meg memory for CP/M-68K [message #3702] Tue, 31 October 2017 21:02 Go to next message
plasmo is currently offline  plasmo
Messages: 916
Registered: March 2017
Location: New Mexico, USA
Senior Member
This is a branch off "Plasmo's 68k pathfinder projects" https://www.retrobrewcomputers.org/forum/index.php?t=msg& ;th=152&start=0&

Since the rev 1 of Tiny68K is reasonably matured, I like to start a new topic dedicated to this design and its derivatives. There is a wiki page for Tiny68K: https://www.retrobrewcomputers.org/doku.php?id=boards:sbc:ti ny68k

A brief highlight of features:
* 68000 CPU with a nominal clock of 8MHz
* Entire 68000 address space is filled with a 16-meg SIMM72 DRAM except for I/O devices located at the top 32K bytes.
* 68681 dual UART. Port A is dedicate to console at 38400, N81, CTS/RTS handshake. Port B is available for other uses.
* IDE44 interface to CompactFlash
* Two serial EEPROM, 24C256. Software may boot from either serial EEPROM depending on one jumper select. The second EEPROM is writable in-situ.
* A 7-segment display for status indication.

plasmo wrote on Fri, 27 October 2017 23:09


* I encountered a curious bug on "pip" command: when I tried to concatenate multiple files using the command format:
pip file1.txt=file2.txt,file3.txt I get the error message:

Exception $03 at user address $0001B1BA. Aborted.

pip works fine otherwise. This error occurs in simulation as well, so it may be a bug in pip command or corrupted distribution disk.
* Beside the strange bug in "pip", most software work fine except gkermit. It just hung.
* Creating a new CF disk is kludgy. I'm not smart enough to have a general solution that reads CP/M68K image (created with cpmtools) on FAT directory and creates a CP/M CF disk. So my solution right now is using cpmtools to create a CP/M68k image, converting it to srecord and serially loading into the RAMdrive location on Tiny68K. With the disk image loaded and CP/M running, I can then copy the files in the RAMdrive into CF. This works well, except loading 2 megabyte disk image into RAM at 38.4K baud takes about 30 minutes. Only need to do this once to create a new CF disk, but it is slow nevertheless.
* Still working on an utility that will copy first 32K byte of memory into the 2nd serial flash. With this utility a new boot serial flash can be created thus allowing boot software update without the need of an external programmer.
* I did all my tests with SanDisk brand of CF which work well. I do have one Transcend brand of CF that read/write FAT16 files correctly on PC but does not read/write CP/M68k files correctly on Tiny68K. I'm concerned that Tiny68K hardware/software may only work with a subset of CF. I'm ordering a batch of Transcend CF and see if I can figure out what the problems may be.
Bill


Most of the issues I was concerned about have been successfully resolved:
* The problem with concatenating files using PIP is due to a bug in the BIOS, so is the issue with file upload/download with Kermit. They are both working properly now.
* I'm glad I tried other brands of CF because the original setup time was too short. I added more wait states to CF access so it now has appropriate amount of setup time, access time & hold time. It should works reliably for different brands of CF (keep my fingers crossed!Wink.
* I now have an utility software that can copy first 32K byte of data in memory to the 2nd serial EEPROM. The utility software needs more polishing, but the hardware is all there to allow in-situ programming of the serial EEPROM.
* The creation of new CF disk is still slow. I don't have a Linux box and rawrite32 does not work on my Windows Vista machine. It takes about 30 minutes to serially upload the CP/M68K distribution files. Only need to do that once and when the new CF disk is created, everything works quickly and correctly afterward.
* I did all the development and testings with 8MHz CPU clock, but I tried 12MHz clock on two boards and they appear to work.

I'm close to shipping out the boards. What need to be done are:
* Tweak the boot monitor so it will display various steps on the 7-segment display as it boots up. If the monitor failed to boot, it may show where it failed.
* Documentation! Never enough but more is better.

Re: Tiny68K, 68000 SBC with 16 Meg memory for CP/M-68K [message #3703 is a reply to message #3702] Tue, 31 October 2017 21:28 Go to previous messageGo to next message
plasmo is currently offline  plasmo
Messages: 916
Registered: March 2017
Location: New Mexico, USA
Senior Member
computerdoc wrote on Tue, 31 October 2017 02:12
Hi Bill,
I would love to use the PLCC version of the 68681. I have only found an Advance Information datasheet for the 68681. Although it has a PLCC version of the MC68681FN, I would feel better about creating an Eagle part with the finalized Datasheet. Do you have a finalized MC68681FN Datasheet? Attached is all I can find so far. I've tried several sites. If you or anyone can find a better datasheet, I would be most grateful.


Kip,
Here are more comments about your design:
* For the 40-pin IDE connector, you may want to add a jumper between pin 20 and VCC. Some IDE-to-CF adapter derives the 5V power from pin 20.
* Jumper options around 24C256 are not quite right. There need to be a jumper option for each 24C256 from pin 1 to ground. The 24C256 with pin 1 to ground is the boot device. Jumper to pin 7 of 24C256 is for write protect. Only one 24C256 need to be write protected.
* You need a 10-pin programming header (2x5) for Altera EPM7128
* SIMM72 draws large current spikes and needs filter capacitors near the connector. Two 10uF caps located at each end of the connector should be enough.
* Reset button and voltage monitor do not go directly to 68000. It goes to EPM7128 (signal name nPORST). State machine in EPM7128 holds 68000 in reset until content of the boot 24C256 is loaded into DRAM then it releases the reset to 68000.
* Pin out of PLCC44 in Advance Info for 68681 is correct.
* Look at the footprint of the EPM7128. longer finger pads are better for hand soldering..

If you like me to help your bring up the board, send me 2 bare boards. I'll solder down the EPM7128 on both and return one board back to you. I'll populate the 2nd board and see if I can bring it up.
Bill
Re: Tiny68K, 68000 SBC with 16 Meg memory for CP/M-68K [message #3714 is a reply to message #3703] Sat, 04 November 2017 20:38 Go to previous messageGo to next message
plasmo is currently offline  plasmo
Messages: 916
Registered: March 2017
Location: New Mexico, USA
Senior Member
OK, I'm ready to ship Tiny68K as assembled boards or kits. I assembled 5 boards to check out the design. All 5 boards work with 12MHz CPU clock even though the 68000 is a 10-MHz part. So it appeared to have good design margins. I'll ship the two assembled boards with 12MHz oscillator. For the kits, I will still ship with 8MHz oscillator just to be safe. I'll PM people who have expressed interested in Tiny68K requesting their shipping address and payment details.
Re: Tiny68K, 68000 SBC with 16 Meg memory for CP/M-68K [message #3717 is a reply to message #3714] Mon, 06 November 2017 06:13 Go to previous messageGo to next message
plasmo is currently offline  plasmo
Messages: 916
Registered: March 2017
Location: New Mexico, USA
Senior Member
I received payments for 6 Tiny68K boards in the last 36 hours. Thank you all! All boards are assembled and programmed; the fully assembled boards are also tested with various diagnostics at 12MHz. I will start shipping them out today and be done by tomorrow. I will PM the USA buyers with tracking numbers. For the international buyers I will send you the Custom number, but USPS does not track the Custom number.
Photos below are what you should expect in the package.
First two photos are that of a fully assembled & tested board. They are shipped with SIMM72 installed, all you need is apply 5V to the 2.5mm jack and null serial cable with CTS/RTS handshake.
The next two photos are what a kit #2 looks like. Discrete capacitors, leaded resistors, and hardware are in separate bags; the 44-pin CF adapter is directly from the factory; and active components are on an anti-static foam. Sockets are for 68681, 68000, and two serial EEPROM. The serial EEPROM (2 pcs) are pre-programmed with identical monitor software. The last photo is the partially assembled board with surface mount components soldered and EPM7128 programmed; the SIMM72 memory has been tested.
I'm currently working on a more detailed assembly instruction, the thing I learned and watched out for during the assembly of the last 7 boards. However, this is my design and I'm an experienced assembler (please excuse my gross self indulgence) so if I missed some details please ask for clarifications. I'll get back to you in 24 hours.
I'll also add instruction on how to create the 1st CF disk and a listing of the monitor software in the serial EEPROM. That's all for now, have fun with it!


-------------------------
Update on 11:20am
Boards are all shipped. The domestic packages should arrive this Thursday. I don't have an estimated date of arrival for international shipment.
-------------------------

[Updated on: Mon, 06 November 2017 10:22]

Report message to a moderator

Re: Tiny68K, 68000 SBC with 16 Meg memory for CP/M-68K [message #3718 is a reply to message #3717] Mon, 06 November 2017 22:02 Go to previous messageGo to next message
computerdoc is currently offline  computerdoc
Messages: 130
Registered: October 2015
Senior Member

Hi Bill,
Thank you SOOOOO much! You ARE the MAN! Surprised


Kip Koon
computerdoc at sc dot rr dot com
http://www.cocopedia.com/wiki/index.php/User:Computerdoc
Re: Tiny68K, 68000 SBC with 16 Meg memory for CP/M-68K [message #3719 is a reply to message #3718] Wed, 08 November 2017 13:49 Go to previous messageGo to next message
plasmo is currently offline  plasmo
Messages: 916
Registered: March 2017
Location: New Mexico, USA
Senior Member
The packages should arrive tonight and tomorrow. My phone & internet service went down yesterday morning while I was working on the Tiny68K wiki page. The repairman won't even be here until tomorrow morning. I still can surf the web through the phone, but getting files from my computer and upload to the wiki is more complicated than I can manage. The instruction on how to assemble kit #2 is in pretty good shape,
https://www.retrobrewcomputers.org/doku.php?id=boards:sbc:ti ny68k:tiny68k_kit2
but I need to complete the work on how to create a new CF disk. So bear with me for a couple days while I get the internet sorted.
Re: Tiny68K, 68000 SBC with 16 Meg memory for CP/M-68K [message #3722 is a reply to message #3719] Thu, 09 November 2017 16:55 Go to previous messageGo to next message
norwestrzh is currently offline  norwestrzh
Messages: 196
Registered: November 2015
Senior Member
Package arrived right on schedule, in good shape. I have a couple of questions.

No values given for resistors. From the photos, I get R3-R9 220, R16-R18 4k7, R10 10k, and R14 1k7 (?? a little hard to see that one).

Any guidance on the 7 segment display? -- size?, CC or CA? Can't read the chip numbers on the serial EEPROMs. CF adapter available on eBay??

Oh, and that reminds me. I'd be interested in getting whatever is necessary to hook up a CF to the Soneplex. Do you have any plans to produce a PCB or adapter to fit to it??

Roger
Re: Tiny68K, 68000 SBC with 16 Meg memory for CP/M-68K [message #3723 is a reply to message #3722] Thu, 09 November 2017 22:13 Go to previous messageGo to next message
plasmo is currently offline  plasmo
Messages: 916
Registered: March 2017
Location: New Mexico, USA
Senior Member
Roger,
The part list from the Tiny68K wiki page should answer most of your question:
https://www.retrobrewcomputers.org/doku.php?id=boards:sbc:ti ny68k:rev1partlist

I have produced an IDE daughterboard for the soneplex MPU board as shown here:
https://www.retrobrewcomputers.org/forum/index.php?t=msg& ;th=201&goto=3625&#msg_3625
I need to work on a wiki page for it as well. Bare board is $1.50 ($1 shipping). populated/tested board is $8 ($3 shipping)

My internet is still down. I used the public library computer to update the page on creating a new CF disk for Tiny68K, but it is not finished:
https://www.retrobrewcomputers.org/doku.php?id=boards:sbc:ti ny68k:create_new_cf

Life without Internet is a struggle.
Bill
Re: Tiny68K, 68000 SBC with 16 Meg memory for CP/M-68K [message #3724 is a reply to message #3723] Fri, 10 November 2017 14:03 Go to previous messageGo to next message
zamp is currently online  zamp
Messages: 19
Registered: April 2017
Location: Finger Lakes, NY, USA
Junior Member
My kit #2 showed up a couple of days ago and looks very nice and extremely well packed. Thank you very much, Bill.

I'll probably build it up this weekend and I'm looking forward to loading CP/M.

I've read through https://www.retrobrewcomputers.org/doku.php?id=boards:sbc:ti ny68k:create_new_cf and it all makes sense. I think that everything needed is there, except for writeBoot.s68 . That's the only file I can't find.


Ron
Re: Tiny68K, 68000 SBC with 16 Meg memory for CP/M-68K [message #3725 is a reply to message #3724] Fri, 10 November 2017 18:24 Go to previous messageGo to next message
plasmo is currently offline  plasmo
Messages: 916
Registered: March 2017
Location: New Mexico, USA
Senior Member
I'm glad you've received the package in good shape.
My internet connection is restored now. I updated the "create new CF" page with link to writeBoot and t68kram. Corrected a few typos. It is ready for use.
Re: Tiny68K, 68000 SBC with 16 Meg memory for CP/M-68K [message #3730 is a reply to message #3725] Mon, 13 November 2017 06:58 Go to previous messageGo to next message
zamp is currently online  zamp
Messages: 19
Registered: April 2017
Location: Finger Lakes, NY, USA
Junior Member
I built up the Tiny68K kit #2 and installed all chips and SIMM, but did not yet install a CF card. It was about 1:30AM by the time I hooked up a Prolific USB to serial cable (a Raspberry Pi console cable). That USB to serial cable has only Rcv and Xmt, not CTS or RTS. Tonight, when I have more time and I am more awake, I'll set up something else with CTS and RTS, but I was hoping with just that that I'd at least see the Tiny68kbug greeting, even if I didn't have flow control for input to the monitor.

I configured my terminal emulator for 38,400 8N1 and powered up the Tiny68K. The LED immediately displayed 8 and did not show any animation of and LED segments. Pressing reset didn't change the display at all. I get output from the first console port, but it's random junk that is intermittently displayed.

I'll try again with CTS and RTS connected, but from my reading of T68kbug.X68 I don't expect to see anything different. I think I need to do some debugging. Do these seem reasonable first steps?

Check for bent pins (I checked last night, but it was pretty late).
Check 5V on board.
Swap U5 and U7 in case one of them didn't get programmed.
Check clock with oscilloscope.

I think that Ben pre-programmed the Altera EPM7128SQC100 and the two AT24C256PC. I've got an Altera USB blaster and a CH341A programmer, so I supposed I could try reprogramming the EPM7128SQC100 and the two AT24C256PC, but I'm not very experienced with using either of them, and I hesitate to risk misprogramming what Ben has probably already correctly programmed.


Ron
Re: Tiny68K, 68000 SBC with 16 Meg memory for CP/M-68K [message #3731 is a reply to message #3730] Mon, 13 November 2017 07:56 Go to previous messageGo to next message
plasmo is currently offline  plasmo
Messages: 916
Registered: March 2017
Location: New Mexico, USA
Senior Member
First thing to check is make sure you have a shorting bar in place to enable U5 as the boot serial flash. See picture below.
index.php?t=getfile&id=667&private=0
Even without CTS/RTS, the 7-seg display should transition from '8' to '4' (it actually rapidly transition from 8 -> 1 -> 2 ->3 ->4). You can add a loopback wire as shown in the picture and it will then bootup normally with just Xmt and Rcv. In fact you can do all software installation and testing with just Xmt and Rcv but you can't upload/download files with gkermit and extraneous characters may be added when you move the cursor rapidly in microEMACS, but that's much later in the testing phase.
index.php?t=getfile&id=668&private=0
Check the orientation of the 7-segment display, the decimal point should be closest to the edge of the board.
Your EPM7128 is programmed and verified. Both 24C256 are programmed and then inserted in my test board to make sure they will boot properly.
What is the power supply current draw? At 8MHz clock, it should be around 500mA @ 5V. Look at pin 32 (X2) of the 68681 with scope, you should see 3.68MHz sine wave, roughly 5V peak-to-peak. Look closely at the 68000 pins and how they are inserted in the sockets. The long rows of pins are a bit tricky to lineup and insert properly.
Bill
Re: Tiny68K, 68000 SBC with 16 Meg memory for CP/M-68K [message #3732 is a reply to message #3731] Mon, 13 November 2017 08:37 Go to previous messageGo to next message
zamp is currently online  zamp
Messages: 19
Registered: April 2017
Location: Finger Lakes, NY, USA
Junior Member
plasmo wrote on Mon, 13 November 2017 10:56
First thing to check is make sure you have a shorting bar in place to enable U5 as the boot serial flash.

Oops... I didn't didn't jumper either of them. That's probably what I did wrong. I assembled things in a different order than suggested as I like using an organic flux where I can and hot water cleaning, so I deliberately installed water sensitive components at the very end using no clean solder/flux. And I entirely missed the two-pin headers at T18/19 and T20/21.

If that's not it, I'll continue with your other suggestions.

I did get the LED installed correctly - your photos and construction step 9 description made that easy to get right.

Thanks for the photo of the CTS/RTS jumper. It confirms that I correctly followed the traces for those pins back to the DUART.




Ron
Re: Tiny68K, 68000 SBC with 16 Meg memory for CP/M-68K [message #3733 is a reply to message #3732] Mon, 13 November 2017 12:55 Go to previous messageGo to next message
plasmo is currently offline  plasmo
Messages: 916
Registered: March 2017
Location: New Mexico, USA
Senior Member
My assembly order has more to do with the height of components. I don't want the board to be rocking when I'm soldering so I start with low components and gradually build to the highest ones. You certainly can change the order as you see fit.

You may find the pin length of the jumper too long. I cut about 1/2 of the pin off. The installation of the 2nd serial eeprom is optional. The board in the picture does not even have the 2nd eeprom socket or jumper installed. The 2nd eeprom does give you dual boot capability and an easy way to develop new monitor/debugger or operating system.
Re: Tiny68K, 68000 SBC with 16 Meg memory for CP/M-68K [message #3737 is a reply to message #3732] Mon, 13 November 2017 19:56 Go to previous messageGo to next message
zamp is currently online  zamp
Messages: 19
Registered: April 2017
Location: Finger Lakes, NY, USA
Junior Member
zamp wrote on Mon, 13 November 2017 11:37
Oops... I didn't didn't jumper either of them. That's probably what I did wrong.

That was my problem. After I added a jumper across T18/19 and wired up an adapter with CTS and RTS, I was able to go through the entire procedure for installing CP/M-68K on a new compact flash card and it all worked, except that I've not yet been able to send or receive a file using gkermit. I'm using a Mac right now, and I've tried two different Mac terminal emulators (ZTerm and Serial) that supposedly have kermit built in. I have doubts about the kermit implementation in both Mac terminal emulators. One crashes on starting a kermit send and the other hangs or ignores the cancel button in its kermit send dialog box.

I'll try kermit transfers again later this week using a Windows 10 PC.

But there may also be something going on with gkermit on CP/M-68K. The gkermit docs says typing three control-Cs in a row should cancel a gkermit trasnfer, but that only seems to work near the beginning of a gkermit file send. I'm unable to interrupt a gkermit -s or gkermit -r if I've let the transfer attampt run for more than a minute or so.

I used to be pretty up on kermit (I ported it to Primos in the distant past), xmodem, ymodem, and zmodem (in the 80s I integrated those into a couple of Cornell Cooperative Extension BBSs [first on Primos, later on Solaris] that I was the programmer for). While waiting for gkermit tests tonight I dug up an old (1987), simple C version of zmodem. Whether or not I can get gkermit working for me, I'll probably try porting zmodem to CP/M-68K.


Ron
Re: Tiny68K, 68000 SBC with 16 Meg memory for CP/M-68K [message #3738 is a reply to message #3737] Mon, 13 November 2017 21:34 Go to previous messageGo to next message
plasmo is currently offline  plasmo
Messages: 916
Registered: March 2017
Location: New Mexico, USA
Senior Member
Oh boy, this is my fault! I thought I've fixed a bug on my BIOS but I just looked at the BIOS in the wiki page and it still have the old bug. The bug is in the conin routine where the incoming data is AND with $7F, so it is 7-bit ASCII characters. Obviously that filters out all control characters. No wonder kermit won't work. I need to figure out what happened to my most current version and update the BIOS in the wiki.

On the other hand, this is great news. I'm glad to hear your hardware is working and able to create a new CF and all seems to be running well (except kermit). Are you running at 8MHz right now? I believe you should be able to run at 12MHz.
Re: Tiny68K, 68000 SBC with 16 Meg memory for CP/M-68K [message #3739 is a reply to message #3738] Mon, 13 November 2017 22:50 Go to previous messageGo to next message
zamp is currently online  zamp
Messages: 19
Registered: April 2017
Location: Finger Lakes, NY, USA
Junior Member
I've got some 12MHz oscillators on order and a couple of 12MHZ 68000, so I should soon have it running faster, but I'm honestly pretty happy with the speed right now.

I think by default Kermit does depend on getting most 8-bit characters through unchanged, but control-C is ascii 3, so ANDing it with 7F should still pass it through unchanged. And typing a control-C at the CP/M seems to be doing what it should. Also, I CAN abort a gkermit transfer as long as I type a few control-Cs shortly after I invoke gkermit.

Digital Research also ANDs with 7F in their example conin. I never did much with 68K assembly code and that was back shortly after the 128K Mac came out, so I don't yet have an eye for reading it. But there's a bit in your conin that looks an awful lot like something that watches for the programmers switch on an old 68K Mac to be pressed and drops into the MacsBug debugger. At some point I'll grab a 68000 reference, your BIOS, and your Tiny68K schematic and try to get a rough feel for what you've written. It'll be a good exercise and should help me actually learn a little of the 68000 instruction set.

Thanks, Ben for working up such a nice hardware design and well documented, repeatable OS install procedure. I'm really enjoying putting this system together. I've never worked with CP/M-68K before and I'm really enjoying picking up a "new" OS. And the huge address space is really nice compared to the few old 8080 and Z80 CP/M systems I used to develop on.


Ron
Re: Tiny68K, 68000 SBC with 16 Meg memory for CP/M-68K [message #3741 is a reply to message #3739] Tue, 14 November 2017 07:22 Go to previous messageGo to next message
tingo is currently offline  tingo
Messages: 114
Registered: February 2017
Location: Oslo, Norway
Senior Member
Kermit (in general) doesn't need an 8-bit clean channel. Some versions can be configured to support an 8-bit clean channel.

Torfinn
Re: Tiny68K, 68000 SBC with 16 Meg memory for CP/M-68K [message #3742 is a reply to message #3739] Tue, 14 November 2017 07:38 Go to previous messageGo to next message
plasmo is currently offline  plasmo
Messages: 916
Registered: March 2017
Location: New Mexico, USA
Senior Member
I updated the BIOS and the link on wiki page on CF creation so it points to the correct version of BIOS. The updated BIOS is also attached below.

The origin of my BIOS is ERGBIOS.S from the CP/M v1.3 distribution files. The original conin routine did AND $7F with the input and also have a break for MacBug. I removed them when I encountered problems with kermit, but my software revision control is not what it should be.

The current Altera EPM7128 design has one wait state for the memory access. That is not necessary for 8-12MHz CPU clock. I'll soon release an update with zero wait which should speed up the board by about 20%.

A zmodem program for CP/M68K would be very cool. You probably noticed the kermit transfer rate is nowhere near the 38400 speed.

Thank you for the feedback. I have had a great deal of fun working and sharing the design. I hope to collect more feedback, update the board design and have more boards & kits available to interested member in a few weeks.
Re: Tiny68K, 68000 SBC with 16 Meg memory for CP/M-68K [message #3743 is a reply to message #3742] Tue, 14 November 2017 16:44 Go to previous messageGo to next message
zamp is currently online  zamp
Messages: 19
Registered: April 2017
Location: Finger Lakes, NY, USA
Junior Member
That was a fast fix, Ben. With tinybios_r5 I'm able to send and receive text files using gkermit and I can at least receive binary (-i) files with gkermit. I've not tried sending binary files yet. gkermit downloaded these executables and they all work:
ARC.68K
LU.68K
SQ.68K
USQ.68K


Ron
Re: Tiny68K, 68000 SBC with 16 Meg memory for CP/M-68K [message #3744 is a reply to message #3743] Tue, 14 November 2017 17:47 Go to previous messageGo to next message
plasmo is currently offline  plasmo
Messages: 916
Registered: March 2017
Location: New Mexico, USA
Senior Member
Excellent! So everything is working? BTW, I'm not familiar with ARC.68K, LU.68K, SQ.68K, and USQ.68K. What are they, and are they available for download? There are not many software for CPM-68K so I'm interested in all software for CPM-68K.

Could you tell me about the brand and size of your CF disk? A user PM me that he is having problem with the creation of CF disk and it sounds like a CF disk problem. There is a particular brand of CF (Transcend 128M, 80x) that I intermittently have checksum errors. I know it is not a setup, access, or hold time problem. I'm wondering if I still have issues with CF access.
Re: Tiny68K, 68000 SBC with 16 Meg memory for CP/M-68K [message #3745 is a reply to message #3744] Tue, 14 November 2017 19:03 Go to previous messageGo to next message
zamp is currently online  zamp
Messages: 19
Registered: April 2017
Location: Finger Lakes, NY, USA
Junior Member
Everything does seem to be working. I've not encountered any CRC or other disk errors. The CF card I'm using is a used 128MB Toshiba that I got off of eBay. $23 with shipping for 20 128MB CF cards from China, but they're sold out. The same seller has some other brands of cards for $1.50 and up right now: https://www.ebay.com/sch/mcqo2749/m.html?_nkw=&_armrs=1& amp;_ipg=&_from= . I can send you a few of the 128MB Toshiba cards if you want to try them out.

Those programs are CP/M-68K versions of tools that were used in the old modem download days. Archive creator/extractor, squeeze/unsqueeze (similar to Unix compress/uncompress, but different file format), LU is an all-in-one archiver/unarchiver/squeezer/unsqueezer. I looked for those because I needed to unpack a .LBR for a CP/M-68K version of RUNOFF. LBRs can be unpacked with LU. I found those all at the same site along with some other stuff I've not tried yet. LBRs are kind of nice because you can take a directory full of files and LU them up into a LBR. Then put the LBR someplace safe. CP/M gets cluttered very quickly if you have all of your old projects with many source files all unpacked and spread all over your disks/users. Setting aside a user in a disk for your LBRs lets you keep a text file that lists what all of your LBRs are. For me that's necessary since I have problems remembering what those 8 character filenames mean.

I found all of those archive tools and RUNOFF in the same place: http://www.retroarchive.org/cpm/cdrom/CPM/CPM68K/

What I grabbed from there is this:

68000USQ.LBR 14848 02-09-85 Squeeze/Unsqueeze for CP/M-68K
ARC68K.ARC 133888 11-27-87 ARC 5.12 for CP/M-68K
COM2X.LBR 23808 09-07-86 No description available
CPX2PLUS.DOC 14510 02-22-87 No description available
F83V2-68.LBR 237568 02-09-85 No description available
KMINCE.LBR 89984 08-29-86 KeyPad editor for CP/M-68K Mince
LU.68K 77184 11-20-86 LU for CP/M-68K. See XLU68K.LBR too.
MSUTILS.LBR 135424 02-18-88 No description available
ROFF4161.LBR 229120 05-22-86 Powerful customizable text formatter
SD68K.LBR 27136 06-11-86 No description available
SDB.LBR 201856 10-31-86 Simple Data Base for CP/M-68K
SNOBOL4.LBR 109696 05-22-86 No description available
SYSHACKS.LBR 49792 05-22-86 No description available
UTILS.LBR 161408 05-22-86 No description available
XLU68K.LBR 171136 11-16-86 Source and Documentation for LU.68K

If you start with LU.68K you can then download .LBR files to your CP/M-68K system and unpack them. It's all pretty old-fashioned and not very user friendly. Later this week I'll capture and post a session where I unpack a LBR with LU and describe what I'm doing.

I found some other nice tools and I'm keeping notes on the sources. I'll write it all up and post it somewhere. I could post it here, but I'm not sure if you want to clutter this hardware thread with that stuff. Do you have any suggestions on where to keep track of the stuff we find for CP/M-68K and notes on using it all?

Ben: let me know if you want me to send you a few of these Toshiba CF cards (for free). Sorry I'm not able to do that for everyone. But I'll keep an eye out for more of the Toshiba CF cards and post here if I find some more, especially if I find them at $1 each again.


Ron
Re: Tiny68K, 68000 SBC with 16 Meg memory for CP/M-68K [message #3746 is a reply to message #3745] Tue, 14 November 2017 20:44 Go to previous messageGo to next message
computerdoc is currently offline  computerdoc
Messages: 130
Registered: October 2015
Senior Member

Hi Tiny68K Fans,
After much help from Bill troubleshooting my Tiny68K, it all boiled down to a suspicious Transcend 133x 4GB CF Card. It never gave me any good results.
I tried a Transcend 80x 512MB card and it works perfectly. No Errors during the pip with verify command when transferring all files from drive E: to drive A:.
I'm now looking for a good source for some inexpensive as possible Sandisk cards since that is what Bill has successfully tested with. I've looked on ebay
for some good deals. I wish I could buy emass to get the price down. I am interested in getting a few CF cards that work from someone.
I'm using TeraTerm to communicate with my Tiny68K. It can transfer files with Kermit among other protocols. How do I transfer several files at once?
Or do I have to transfer 1 file at a time? I have tried both ways, but I can't seem to get it to work.
Are there any experienced CP/M 68Kers out there to help us all understand how to use CP/M 68K?


Kip Koon
computerdoc at sc dot rr dot com
http://www.cocopedia.com/wiki/index.php/User:Computerdoc
Re: Tiny68K, 68000 SBC with 16 Meg memory for CP/M-68K [message #3747 is a reply to message #3745] Tue, 14 November 2017 21:14 Go to previous messageGo to next message
plasmo is currently offline  plasmo
Messages: 916
Registered: March 2017
Location: New Mexico, USA
Senior Member
RUNOFF!! Surprised Laughing oh my, have not heard that name for a long long time.

Wow, there are so much information here. I need to chew on them for a long while...

Regarding CF disk: Thank you very much for offering, but I'm actually looking for CF disks that do not work with Tiny68K so I can figure out what's going on. However, $1/disk is a great deal and I'll keep an eye out for that seller. For people wanting a turnkey Tiny68K, it is a good idea to include a CF disk already installed and tested.

I'm looking forward to visit the site and see what software are available. I'll be delighted if you can post logs of your exploration here. My hope with Tiny68K is putting out an affordable 68K platform so people can explore the world of 68K and able to share our experiences because we all have a common platform. It is already working for me because I'm new to CP/M and I've learned much already. You've just opened another door and I'm looking forward to learn much much more.
Bill

Re: Tiny68K, 68000 SBC with 16 Meg memory for CP/M-68K [message #3748 is a reply to message #3746] Wed, 15 November 2017 06:43 Go to previous messageGo to next message
plasmo is currently offline  plasmo
Messages: 916
Registered: March 2017
Location: New Mexico, USA
Senior Member
computerdoc wrote on Tue, 14 November 2017 21:44
Hi Tiny68K Fans,
After much help from Bill troubleshooting my Tiny68K, it all boiled down to a suspicious Transcend 133x 4GB CF Card. It never gave me any good results.
I tried a Transcend 80x 512MB card and it works perfectly. No Errors during the pip with verify command when transferring all files from drive E: to drive A:.
I'm now looking for a good source for some inexpensive as possible Sandisk cards since that is what Bill has successfully tested with. I've looked on ebay
for some good deals. I wish I could buy emass to get the price down. I am interested in getting a few CF cards that work from someone.
I'm using TeraTerm to communicate with my Tiny68K. It can transfer files with Kermit among other protocols. How do I transfer several files at once?
Or do I have to transfer 1 file at a time? I have tried both ways, but I can't seem to get it to work.
Are there any experienced CP/M 68Kers out there to help us all understand how to use CP/M 68K?


Kip,
I was so focused on following up to zamp's last message, I completely overlook yours. Congratulation on getting your kit up and running. Troubleshooting over emails never give me the whole picture and I was speculating all over the places. I start to see a trend with the CF issues: the problem may be with the newer, higher speed, large capacity ones. The older, slower, smaller CF are working. I'm confident it is not an setup/access/hold time issue, it is something else. I love to borrow your 133x 4GB CF to chase down the problem.
I know gkermit accepts wild card character so you can transfer multiple files. You may have the same kermit problem with previous version of BIOS. I updated the wiki page on CF creation with the new BIOS yesterday morning, so if you were using older files, you should visit the CF creation page again and get the latest.
https://www.retrobrewcomputers.org/doku.php?id=boards:sbc:ti ny68k:create_new_cf
Re: Tiny68K, 68000 SBC with 16 Meg memory for CP/M-68K [message #3749 is a reply to message #3748] Wed, 15 November 2017 07:50 Go to previous messageGo to next message
rwiker is currently offline  rwiker
Messages: 14
Registered: February 2016
Junior Member
My kit arrived here in Norway today - looking forward to assembling and playing with it Smile

Thanks!
How to install LU.68K, unpack .LBR archives, and PIP (copy) to other user spaces on other drives [message #3757 is a reply to message #3747] Wed, 15 November 2017 18:37 Go to previous messageGo to next message
zamp is currently online  zamp
Messages: 19
Registered: April 2017
Location: Finger Lakes, NY, USA
Junior Member
There are some CP/M-68K .LBR files on the Internet that have tools you may want to unpack. There are many more 8080 or Z80 CP/M .LBR files around that contain source code for programs you may want to try porting to CP/M-68K. A tool that can unpack .LBR files is LU.68K. Here's how you can get a copy of LU.68K on your CP/M-68K computer and use it.

On your host computer (not the target CP/M-68K computer) download these two files:

http://www.retroarchive.org/cpm/cdrom/CPM/CPM68K/LU.68K
http://www.retroarchive.org/cpm/cdrom/CPM/CPM68K/XLU68K.LBR

Connect to your CP/M-68K computer using a terminal emulator that can send files using the Kermit protocol, then perform the following boldfaced steps.

A>d:

D>user 1

1D>dir
(We're going to do this work in an empty spot. User 1 on drive D: is empty on my system.)
No file
1D>a:gkermit -r
(type this and then start sending LU.68K from your host)
G-Kermit CU-1.00, Columbia University, 1999-12-25
Escape back to your local Kermit and give a SEND command.

KERMIT READY TO RECEIVE...


1D>a:gkermit -r
(type this and then start sending XLU68K.LBR from your host)
G-Kermit CU-1.00, Columbia University, 1999-12-25
Escape back to your local Kermit and give a SEND command.

KERMIT READY TO RECEIVE...


1D>dir
D: LU 68K : XLU68K LBR
1D>a:pip a:[g0]=lu.68k

(The above PIP copy command may be confusing. Let me break it down into pieces...
  • a:pip PIP copies files. The PIP program is over on drive A: I'm in user 1 and on drive D, but I can just refer to A:PIP and CP/M will first look here in 1D:, then in 1A:, and then finally in 0A: where PIP.68K actually lives.
  • a:[g0] This is the destination, 0A:. Because I'm now in user 1, if I said a: instead of a:[g0] PIP would copy it to 1A: instead of to 0A:.
  • = This separates the destination from the source
  • lu.68k The source file to copy from
refer to the "CP/M-68K Operating System User's Guide" for lots more of the ugliness of the PIP command.)
1D>era lu.68k (now that lu.68k was copied to a0: we don't need it here in d1:)

1D>dir
D: XLU68K LBR
1D>a:lu
(start up LU from A0:)
XLU68K - Library Utility for CP/M-68K
(c) 1986 by Robert Heller
-? > -h
(ask for help with -h or -?)
Command Function
======= ==========================
-o Open library file
-c Close library file
-x Exit LU
-e Extract file(s)
-eu Extract and unsqueeze
-a Add or replace file(s)
-as Squeeze and add or replace file(s)
-l List files in library
-k Kill file(s) in library
-r Reorganize library
-h This text
-? This text
-H > -o xlu68k
(open file xlu68k.lbr)
lu: old library file XLU68K.LBR has 24 entries, 1 free
-O > -l
(That's an lowercase L. Either -l or -L will list the files in the directory. The files with a Q in the 2nd character of the extension are sQueezed or compressed.)
Name Type Start Length CRC
==================================
DIRECTORY 0 6 0000
LUADD .CQ 6 54 0000
LUCLOSE .CQ 60 8 0000
LUCPM68K.CQ 68 9 0000
LUEXTRCT.CQ 77 33 0000
LUKILL .CQ 110 13 0000
LULIST .CQ 123 13 0000
LUMAIN .CQ 136 34 0000
LUMISC .CQ 170 18 0000
LUOPEN .CQ 188 28 0000
LUREORG .CQ 216 33 0000
LUDEF .HQ 249 14 0000
LUVARS .HQ 263 6 0000
LU .6QK 269 373 0000
LULINK .SUB 642 1 0000
SQ .CQ 643 127 0000
SQMAIN .CQ 770 17 0000
SQ .6QK 787 203 0000
USQ .CQ 990 50 0000
USQMAIN .CQ 1040 14 0000
USQ .6QK 1054 174 0000
XLU68K .RQF 1228 48 0000
XLU68K .DQC 1276 61 0000
==================================
Used sectors 1337
Deleted sectors 0
Total sectors 1337
Active entries = 23, deleted = 0, free = 1, total = 24
-L > -eu *.*
(Extract and Unsqueeze *.* [all files] in the .LBR archive)
sqX0222A -> LUADD.C: unsqueezing, done.
LUADD.CQ extracted
sqX0222B -> LUCLOSE.C: unsqueezing, done.
LUCLOSE.CQ extracted
sqX0222C -> LUCPM68K.C: unsqueezing, done.
LUCPM68K.CQ extracted
sqX0222D -> LUEXTRCT.C: unsqueezing, done.
LUEXTRCT.CQ extracted
sqX0222E -> LUKILL.C: unsqueezing, done.
LUKILL.CQ extracted
sqX0222F -> LULIST.C: unsqueezing, done.
LULIST.CQ extracted
sqX0222G -> LUMAIN.C: unsqueezing, done.
LUMAIN.CQ extracted
sqX0222H -> LUMISC.C: unsqueezing, done.
LUMISC.CQ extracted
sqX0222I -> LUOPEN.C: unsqueezing, done.
LUOPEN.CQ extracted
sqX0222J -> LUREORG.C: unsqueezing, done.
LUREORG.CQ extracted
sqX0222K -> LUDEF.H: unsqueezing, done.
LUDEF.HQ extracted
sqX0222L -> LUVARS.H: unsqueezing, done.
LUVARS.HQ extracted
sqX0222M -> LU.68K: unsqueezing, done.
LU.6QK extracted
sqX0222N is not a squeezed file
LULINK.SUB extracted
sqX0222O -> SQ.C: unsqueezing, done.
SQ.CQ extracted
sqX0222P -> SQMAIN.C: unsqueezing, done.
SQMAIN.CQ extracted
sqX0222Q -> SQ.68K: unsqueezing, done.
SQ.6QK extracted
sqX0222R -> USQ.C: unsqueezing, done.
USQ.CQ extracted
sqX0222S -> USQMAIN.C: unsqueezing, done.
USQMAIN.CQ extracted
sqX0222T -> USQ.68K: unsqueezing, done.
USQ.6QK extracted
sqX0222U -> XLU68K.RFF: unsqueezing, done.
XLU68K.RQF extracted
sqX0222V -> XLU68K.DOC: unsqueezing, done.
XLU68K.DQC extracted
-EU > -x
(eXit from the LU utility)
lu: old library XLU68K.LBR closed

1D>dir
(c=Check out what we unpacked. XLU68K.DOC is the confusing manual for LU. There are also SQ [squeeze] and USQ [unsqueeze] tools here that you could copy to a0: with PIP if you want to.)
D: LULINK SUB : LUADD C : LUCLOSE C : XLU68K LBR : LUCPM68K C
D: LUEXTRCT C : LUKILL C : LULIST C : LUMAIN C : LUMISC C
D: LUOPEN C : LUREORG C : LUDEF H : LUVARS H : LU 68K
D: SQ C : SQMAIN C : SQ 68K : USQ C : USQMAIN C
D: USQ 68K : XLU68K RFF : XLU68K DOC
1D>ERA xlu68k.lbr
(now that it's unpacked you can delete the .LBR - or keep it if that's your preference)

1D>a:

1A>user 0

A>
(and we're back in A0: where we started)


Ron
Re: How to install LU.68K, unpack .LBR archives, and PIP (copy) to other user spaces on other drives [message #3758 is a reply to message #3757] Thu, 16 November 2017 07:34 Go to previous messageGo to next message
plasmo is currently offline  plasmo
Messages: 916
Registered: March 2017
Location: New Mexico, USA
Senior Member
Great instruction, worked exactly on my machine as you've described. I have not used USER command much because I don't know the purpose of the command, this is a good method to keep work space apart. In the past I used drive e: (RAMdrive) for scratch area because it is faster and files disappear after power is removed anyway.
I compiled and linked the sq.c and sqmain.c programs. The resulting sq.68k works exactly like the original downloaded sq.68k, but when I compare the executable to the original, it is different. I assume it is because the original sq.68k was compiled on a different version of C.
Re: Tiny68K, 68000 SBC with 16 Meg memory for CP/M-68K [message #3770 is a reply to message #3738] Fri, 17 November 2017 07:55 Go to previous messageGo to next message
zamp is currently online  zamp
Messages: 19
Registered: April 2017
Location: Finger Lakes, NY, USA
Junior Member
plasmo wrote on Tue, 14 November 2017 00:34
Are you running at 8MHz right now? I believe you should be able to run at 12MHz.

I ordered some 12MHz full-size oscillators that just showed up. I swapped out the 8MHz oscillator for 12MHz and the Tiny68K still seems to be working error free. I've not yet tested extensively at 12MHz. I have weekend plans that should involve a lot of edit, compile, test cycles so it'll get a decent workout.


Ron
Re: Tiny68K, 68000 SBC with 16 Meg memory for CP/M-68K [message #3782 is a reply to message #3770] Sun, 19 November 2017 13:26 Go to previous messageGo to next message
zamp is currently online  zamp
Messages: 19
Registered: April 2017
Location: Finger Lakes, NY, USA
Junior Member
zamp wrote on Fri, 17 November 2017 10:55
I have weekend plans that should involve a lot of edit, compile, test cycles so it'll get a decent workout.

My plans were to port Frotz to CP/M-68K, but that didn't pan out. Frotz lets you play Z-Machine games like Zork and Planetfall. But Frotz is nicely written with function and variable names longer than 8 characters as well as #defines of symbol namess longer than 8 characters. And CP/M-68K's version of C allows for:
  • 8 character or less local variable names and #define symbols
  • 6 character or less global variable names and function names
I could spend many hours doing global search and replaces to make short #define symbol names, variable names, and function names. And then I'd probably find that other limitations of the C compiler or library might need to be worked around.

I'm going to bail on porting Frotz.

I also wanted to port f2c so that I could compile Adventure. I don't need to play it again, but I like having it on a retro system and it would be nice for demos. And having FORTRAN would also be nice. But I think an f2c port might be tough given the limited Alcyon C math library functions, so at the moment I'm not going to look into what it would take.

I guess I'll give rzsz a go which would give us xmodem, ymodem, and zmodem send and receive. It's sufficiently old that I might be able to get it ported.

But I'm starting to think that CP/M-68K is a bit limiting given how few tools there ever were, how few of them are still to be found in archives, and the lack of source code for some essentials like CP/M-68K 1.3 itself, the C compiler (and preprocessor), assembler, linker, libraries.

I'm looking around for another OS that looks more like Unix and has full source. The most appealing I've come across so far is Alan Cox's FUZIX: https://github.com/EtchedPixels/FUZIX . Source for everything is there and Alan (etchedpixels on this forum) has brought up a limited, one-process version on a 68K emulator: https://www.retrobrewcomputers.org/forum/index.php?t=msg& ;th=101&goto=1279&#msg_1279

Alan also appears to have bought one of the Tiny68K boards. I'm really hoping he's going to port Fuzix to it. But the lack of an directly-connected Ethernet interface would probably mean a port isn't that appealing to Alan.





Ron
Re: Tiny68K, 68000 SBC with 16 Meg memory for CP/M-68K [message #3784 is a reply to message #3782] Sun, 19 November 2017 14:37 Go to previous messageGo to next message
plasmo is currently offline  plasmo
Messages: 916
Registered: March 2017
Location: New Mexico, USA
Senior Member
What about CPM-68k v1.2? I understand the C source for it is available and the Alcyon C math library is more stable (the floating point library for v1.3 C does not work).

Etchedpixels has both Tiny68K as well as a repurposed SPX MPU board that has CP/M68K installed. I'm hopeful a 68000 FUZIX will become available... soon? Is Ethernet particular important to an useful FUZIX OS? I have a few CS8900 Ethernet controllers I want to try that should fit within the Tiny68K form factor. Alternatively, the 68302 on the repurposed SPX MPU board has a crude SPI interface that maybe sufficiently fast to work with an SPI-to-Ethernet daughterboard.
Re: Tiny68K, 68000 SBC with 16 Meg memory for CP/M-68K [message #3785 is a reply to message #3784] Sun, 19 November 2017 15:09 Go to previous messageGo to next message
zamp is currently online  zamp
Messages: 19
Registered: April 2017
Location: Finger Lakes, NY, USA
Junior Member
plasmo wrote on Sun, 19 November 2017 17:37
What about CPM-68k v1.2? I understand the C source for it is available and the Alcyon C math library is more stable (the floating point library for v1.3 C does not work).

With CP/M-68K 1.2 we could hack on the OS source if we wanted to change things. I'd like to be able to do that. But the short variable, function, and define names are still pretty limiting for the code I would want to port. I supposed we could work up different C, assembler, and linker that could deal with longer names, but that's more effort than I want to go to. And I'd forgotten how much I disliked CP/M's PIP (which is easily fixed by writing a new copy/cp comand) and limited file system users (0-15 on each drive); I much prefer a filesystem with subdirectories. And I also want environment variables.

I didn't realize the math library in CP/M-68K 1.3 wasn't working. That's not good to hear.

plasmo wrote on Sun, 19 November 2017 17:37
Etchedpixels has both Tiny68K as well as a repurposed SPX MPU board that has CP/M68K installed. I'm hopeful a 68000 FUZIX will become available... soon? Is Ethernet particular important to an useful FUZIX OS? I have a few CS8900 Ethernet controllers I want to try that should fit within the Tiny68K form factor. Alternatively, the 68302 on the repurposed SPX MPU board has a crude SPI interface that maybe sufficiently fast to work with an SPI-to-Ethernet daughterboard.

I don't know Alan's thinking on any of this, but if it were me and I was developing an OS that was going to include TCP/IP, then I would want to be targeting hardware that could support Ethernet and/or WiFi. But if Alan were to port Fuzix to the Tiny8K then I'd definitely play around with it even if it couldn't do TCP/IP. Fuzix looks like something I want to learn about whether it's on the Tiny68K or another platform. It really looks like a well thought out OS and I can actually understand the bits of the code that I've looked at. I'm sure much of the code would be over my head, but I do like what I see there.

Another OS that looks interesting is CDOS-68K (find it here: http://www.cpm.z80.de/binary.html) which looks complete, but I can find no documentation at all for it online, other than what is in the help files that are in the CDOS-68K source. Without any documentation on porting it to a new system, it's beyond my ability to tackle.

FreeMINT also looks nice, but it appears that no one is developing it any further. But Fuzix looks like it's being very actively developed.

An hour or so into the CP/M-68K port, rzsz is so far looking like I'll get it working. I've got most of rz|rb|rx reworked into rxyz -x|-y|-z. I'm not having to #ifdef out much code. And so far I've not run into any long names. :-)


Ron
Re: Tiny68K, 68000 SBC with 16 Meg memory for CP/M-68K [message #3786 is a reply to message #3784] Sun, 19 November 2017 15:16 Go to previous messageGo to next message
norwestrzh is currently offline  norwestrzh
Messages: 196
Registered: November 2015
Senior Member
Zamp --

Have you looked into the GCC toolchain that can be used to produce 68k code? The versions of GCC that are part of these toolchains are older than the currently available versions of GCC, but they would probably be a pleasure to work with as opposed to the Digital Research version of C, or Alcyon's.

The downside is that the 68k executable output from the 68k GCC toolchain lacks the header and relocation bits that 68k CP/M seems to like (so you can't run them directly from the command line, as you can a .68k application), but they can be loaded and executed within DDT (using the "R" and "G" functions). It would probably be possible to create a loader application that would load and execute them via BDOS functions. The FORTH interpreter, F83, seems to work that way. I.E. there's a small F83.68k that merely loads and runs F83.BIN.

I built a version of Plasmo's ASCII art program this way (after translating it from BASIC to C), and it is very fast on my homebrew 68k at 12 MHz.

Roger
Re: Tiny68K, 68000 SBC with 16 Meg memory for CP/M-68K [message #3788 is a reply to message #3782] Sun, 19 November 2017 19:04 Go to previous messageGo to next message
zamp is currently online  zamp
Messages: 19
Registered: April 2017
Location: Finger Lakes, NY, USA
Junior Member
zamp wrote on Sun, 19 November 2017 16:26
And CP/M-68K's version of C allows for:
  • 8 character or less local variable names and #define symbols
  • 6 character or less global variable names and function names


I just learned there is source for a CP/M-68K version of Alcyon C online. I found links to it at multiple sites, including http:// cpm-connections.blogspot.com/2010/11/list-of-c-compilers-for -cpm.html .

Quote:
Alcyon C For CP/M-68K. Includes compiler, assembler, linker and libraries: http://www.cpm.z80.de/download/cpm68k1.zip
Floating point library for the 68881 or 68882: [url=http://www.cpm.z80.de/download/lib68881.zip]

There are multiple versions of the compiler in this archive, but they are not all complete. I haven't read enough of the code to tell if it can be compiled with the existing CP/M-68K C compiler or if it needs to be compiled on VMS. But I do see that the source for everything is there: C preprocessor, compiler, assembler, linking loader, library tools, C library, math library, include files.

And there is a #define for the symbol size (#define SSIZE 8) that looks to be used through the C preprocessor and compiler, so it might be possible to rebuild all of this to allow longer #define names.

Rons-MacBook-Pro:cpm68k1 amp1$ ls
v101	v102	v102a	v103
Rons-MacBook-Pro:cpm68k1 amp1$ cd v103
Rons-MacBook-Pro:v103 amp1$ find . -type f -exec grep -l SSIZE {} \;
./cgen/cgen.h
./cgen/main.c
./cpp/lex.c
./cpp/preproc.h
./icode.h
./parser/expr.c
./parser/lex.c
./parser/parser.h
./parser/symt.c
Rons-MacBook-Pro:v103 amp1$

I'm not sure if any of the versions of Alcyon C here exactly match what is bundled into CP/M-68K 1.2 or 1.3. I don't know if I'm going to play around with rebuilding the compiler tool chain or not, but it's nice to know the source for some versions IS available.


Ron
Re: Tiny68K, 68000 SBC with 16 Meg memory for CP/M-68K [message #3791 is a reply to message #3788] Sun, 19 November 2017 21:46 Go to previous messageGo to next message
computerdoc is currently offline  computerdoc
Messages: 130
Registered: October 2015
Senior Member

Hi Guys,
I'm still having great difficulty getting gkermit -r to work. I have Tera Term 4.96 installed and communicating with my Tiny68K just fine.
I can send clrcpmmem.s68, cpm15000.s68, tinybios.s68 (v5 but says v0.6), and writeboot.s68 to create the boot code on track 1 of the CF Card.
CP/M 68K v1.3 boots just fine. The serial is setup in TeraTerm to com31,38400,8,n,1,hardware. I run gkermit -r and try to transfer via
Kermit/send to send the file lu.68k to drive d:, but nothing ever gets sent. The only thing that doesn't work is the kermit transfer.
I managed to kermit to work once, but I didn't know I had to transfer/kermit/finish to save the file so I didn't get anything. I have
successful before or since. I even tried upgrading the oscillator can from 8MHZ to 12MHZ and this same output was repested. Everything
worked EXCEPT for the Kermit transfer. Please Help! Here is the output.
-----------------------------begin-------------------------- -------
Tiny68kbug
11/5/17 v0.6, type "he" for help
> ..X
Valid S record received, executing from starting address
S record execution completed
> ............................................................ ............................................................ ............................................................ ............................................................ ............................................................ ............................................................ ............................................................ ............................................................ ............................................................ ............................................................ ......................................................X
> .................................X
> .......X
Valid S record received, executing from starting address
S record execution completed
>
Tiny68kbug
11/5/17 v0.6, type "he" for help
> bo
Copying CP/M 68K from Compact Flash...checksum is 0C0DCC9E

CP/M-68K V1.3 COPYRIGHT (C) 1982, 1984, 1985 Digital Research

A>d:

D>a:gkermit -r
G-Kermit CU-1.00, Columbia University, 1999-12-25
Escape back to your local Kermit and give a SEND command.

KERMIT READY TO RECEIVE...
# N3
Tiny68kbug
11/5/17 v0.6, type "he" for help
>
-------------------------------end-------------------------- -------------
Bill, Can you or anyone shed ANY light on this? I can't seem to whip this thing! ARGH! Sad
Because I can create a good bootable Track 1, wouldn't it stand to reason that I should be able to transfer a file via kermit?
Oh by the way, I still get the Bs in me readme.txt even though I can create the boot code on Track 1 and boot successfully.
I have Skype if needed to troubleshoot. Also Teamviewer. Any help is most appreciated. Thanks in advance.


Kip Koon
computerdoc at sc dot rr dot com
http://www.cocopedia.com/wiki/index.php/User:Computerdoc
Re: Tiny68K, 68000 SBC with 16 Meg memory for CP/M-68K [message #3792 is a reply to message #3791] Sun, 19 November 2017 22:33 Go to previous messageGo to next message
plasmo is currently offline  plasmo
Messages: 916
Registered: March 2017
Location: New Mexico, USA
Senior Member
Kip,
Once you have saved BIOS and CPM15000 in track1 all you need to do afterward is type 'bo' to boot into CPM. Another word, you only need to load clrcpmmem, cpm15000, tinybios, and writeboot once for each new CF disk.

You can do all file loads and execution and run most CPM executables without hardware flow control, but the extra 'Bs' in microEMACS when you hold down the down arrow key is the surest indication that your hardware handshake is not working. That is the reason gkermit is not working. Tell me about your serial port connections. You obvious have the Rx and Tx wired correctly. What about the RTS and CTS?

Bill

Note: the picture I posted that shows RTS loopback to CTS with a short wire is only a temporary fix to resolve initial communication problems.
Re: Tiny68K, 68000 SBC with 16 Meg memory for CP/M-68K [message #3793 is a reply to message #3792] Mon, 20 November 2017 00:55 Go to previous messageGo to next message
computerdoc is currently offline  computerdoc
Messages: 130
Registered: October 2015
Senior Member

Hi Bill,
I am using the following TTL Serial to MicroUSB Module.
< https://www.ebay.com/itm/FT232RL-3-3V-5-5V-FTDI-USB-to-TTL-S erial-Adapter-Module-for-Arduino-Mini-Port/141976901783?hash =item210e7b9897:g:jk8AAOSwrklVMjIp>
I have RTS of the module connected to CTS input to 68681 and CTS of module to RTS input to 68681.
I do boot off the CF Card. I rewrote Track 1 to make sure I had the version 5 of the TinyBIOS file.
Should I try some other terminal software?



Kip Koon
computerdoc at sc dot rr dot com
http://www.cocopedia.com/wiki/index.php/User:Computerdoc
Re: Tiny68K, 68000 SBC with 16 Meg memory for CP/M-68K [message #3795 is a reply to message #3793] Mon, 20 November 2017 05:56 Go to previous messageGo to next message
plasmo is currently offline  plasmo
Messages: 916
Registered: March 2017
Location: New Mexico, USA
Senior Member
index.php?t=getfile&id=679&private=0

Kip,
You've seen this picture of the console serial connector pinout in the wiki page. These are all TTL level signals. I like you to do three tests for me: (note: input or output direction are from the persepctive of Tiny68K)

Signal name          Signal direction        Active level
                     (from perspective       (TTL level)
                     of Tiny68K)             
---------------------------------------------------------                     
RTS output to PC      (output)               TTL low (0V)
CTS input to 68681    (input)                TTL low (0V)
Transmit to PC        (output)               TTL low (0V)
Receive to 68681      (input)                TTL low (0V)
GND               
VCC


Test 1:
With hardware handshake enabled, for PC to send data to Tiny68K, the RTS output must be active (TTL low). Similarly for Tiny68K to send data to PC, CTS input must be active (TTL low). Hook up a meter or scope to the RTS and CTS pins. Since you are able to communicate with Tiny68K, I expect both are TTL low.

Test 2:
Does Tera Term has the ability to monitor and manually toggle the handshake signals? I know RealTerm does, and I can do the following exercise in RealTerm:
2a. Select the 'Pins' tab, you should see green light for 'RTS (7)' and over at the Status column you should see green light for 'CTS (8)'.
2b. Turn off power to Tiny68K, you should see 'CTS (8)' light goes out.
2c. Hook up a meter or scope to CTS pin
2d. Turn on power to Tiny68K, CTS pin should measure TTL low, the 'CTS(8)' light at Status column should turn green, and Tiny68K should sign on with the power-on message
2e. click the "Clear" button of 'RTS(7)', you should see the 'RTS(7)' light goes out and CTS pin should measure TTL high level. Type 'he' on the console, you should not receive any character echo back.
2f. Click the 'Set' button of 'RTS(7)', you should see the 'RTS(7)' light turns green and CTS pin should now measure TTL low level, and you should see the characters you typed echo back.
This exercise demonstrates PC can send handshake signal to Tiny68K and it will respond properly

Test3:
To demonstrate that Tiny68K can send handshake to PC and get the proper response:
3a. Hook a meter or scope to RTS output pin.
3b. Execute microEMACS in CP/M: me readme.txt
3c. RTS output should measure TTL low. Press and hold the down-arrow key, you should see RTS output toggling, this is Tiny68K signaling to PC not to send more characters because Tiny68K is busily updating the screen. PC should not send characters to Tiny68K when RTS output is TTL high.
3d. CTS input pin should stay TTL low in this exercise because PC is generally fast enough to handle serial data stream at 38400.

I suspect step 3c is where you are having problem, that RTS output of Tiny68K is not toggling, or that it is toggling but somehow the signal is not coming back to PC to stop it from sending more characters. Which means either the serial-to-USB adapter is not transmit the signal back or the PC software is not responding to it.

That looks like a nice, low cost USB-to-serial adapter. I'll go buy a couple just to try it out. On the next revision of pc board I can create an alternate header for it so the adapter just plug in directly.

[Updated on: Mon, 20 November 2017 06:09]

Report message to a moderator

Re: Tiny68K, 68000 SBC with 16 Meg memory for CP/M-68K [message #3796 is a reply to message #3702] Mon, 20 November 2017 06:24 Go to previous messageGo to next message
zamp is currently online  zamp
Messages: 19
Registered: April 2017
Location: Finger Lakes, NY, USA
Junior Member
If you're using one of the TTL to RS-232 adapters like the one in these photos...
index.php?t=getfile&id=681&private=0index.php?t=getfile&id=680&private=0
...then Transmit, Receive, RTS, CTS, Gnd, VCC from the Tiny68K should all be directly connected to the same-named terminals on the TTL to RS-232 adapter board.
          TTL to RS232(DB9 or
Tiny68K   DB25) adapter
--------- -------------------
Receive   Receive
Transmit  Transmit
CTS       CTS
RTS       RTS
Gnd       Gnd
VCC       VCC


If you're instead using a cable like one of these...
index.php?t=getfile&id=682&private=0
...then you'll have to connect like this
Tiny68K   USB to TTL cable
--------- ----------------
Receive   Transmit
Transmit  Receive
CTS       RTS
RTS       CTS
Gnd       Gnd
VCC       DO NOT CONNECT VCC OF THIS CABLE TO VCC ON TINY68K

Note that the more common 4-pin cable of this style will not work with the Tiny68K as it doesn't include CTS and RTS. For this type of 6-pin cable, you may need to pull the individual terminals out of the 6-pin housing and rearrange them to match the order of the connector on the Tiny68K.

If you're wondering how to rearrange the terminals in a "dupont" style header or make up your own custom dupont cables (like the one in my first two pictures, you can learn how with this video: https://www.youtube.com/watch?v=GkbOJSvhCgU
  • Attachment: overview.jpg
    (Size: 96.16KB, Downloaded 4595 times)
  • Attachment: closeup.JPG
    (Size: 111.34KB, Downloaded 4532 times)
  • Attachment: other.PNG
    (Size: 328.01KB, Downloaded 4482 times)


Ron

[Updated on: Mon, 20 November 2017 07:39]

Report message to a moderator

Re: Tiny68K, 68000 SBC with 16 Meg memory for CP/M-68K [message #3797 is a reply to message #3796] Mon, 20 November 2017 07:42 Go to previous messageGo to previous message
plasmo is currently offline  plasmo
Messages: 916
Registered: March 2017
Location: New Mexico, USA
Senior Member
zamp,
Thank you! I know there are only 6 signals, but somehow the RS232 hookup causes more grief than operating the rest of the system. I don't know what other people are using, so it is nice to see the pictures of a couple adapters and instruction on how to hook them up. I would really like a common pinout that an adapter can just plug in, no hassel, no tears, but the pinout seems all different. Maybe two or three headers in parallel and just populate the header that fit the particular adapter one has.
Previous Topic: Another 8085 Single Board Computer SBC-85
Next Topic: CTC/SIO Baud Rate Generation


Current Time: Sat Apr 26 13:26:57 PDT 2025

Total time taken to generate the page: 0.00821 seconds