PDA

View Full Version : Kaypro 10 - as a reason to begin learning, not just "playing". From where to begin ?



Sandisk78
October 11th, 2017, 05:01 AM
Hello, everebody ! I'm not a professional in computers. I just estetically respect these old machines - so I try to use, collect and save from being recycled/destroyed as I consider them to be some beautiful artefacts of the Past, masterpieces like 1916-28 airplanes or 1918-75 cars, which I would like to collect If I had enough money ) So, maybe it's a shame, but since I began to collect vintage computers in 2006, I mostly played games on them, or used Photoshop/Corel Draw on mid 1990's machines, but I didn't have clear understanding how do they work ... Recently I began to learn C on IBM-PC compatible systems... But now I want even more - try to understand everething about a computer, about it's structure and try to learn assembler. I thinks it's better to begin with the earliest machine in my collection - Kaypro 10. It seems really cool as an artefact of the Past and as a computer - really archaic and primitive, in the good meaning of that word - even an IBM 5150 with 640k of ram and a HDD seems a *multimidia monster* in comparison to this 8 bit machine. But I just wonder, what really it can do - can games for it can be written, maybe like the ones I've seen on the youtube on Tandy TRS80 series of computers. I want to try to *imagine* than I live in the first half of the 80's). Also I wonder about the nature of it's "graphical mode", which is mentioned on some sites in the Internet.

So from where I have to begin ? I'm searching google for all necessary information, books, PDF's. If someone can send me information or articles (even if for some money) that can't be found in the Internet I would be happy or just give me an advice how to organise the process.... Also there are few of verions of the C language as well as many Assemblers that can be run in CP/m 2.2 on a K10 - which are more... user friendly ?

Thanks, Iakov..

P.S. a picture of my K10 in film (Ilford Pan 400)

41263

glitch
October 11th, 2017, 05:14 AM
Good decision! That was the initial draw of old computers for me -- easier to hack on. And, what you learn on old systems is still usable in a modern context. Same underlying concepts.

There are C dialects for CP/M, I think I've used BDS C and Aztec C. All of my CP/M programming has been in assembly. It's not too difficult to learn, especially if you start off with the 8080 instruction set (much simpler, though less flexible). The Digital Research assembler provided with CP/M is fine, it understands Intel mnemonics only though. You can edit on the Kaypro or on a modern machine with a full-featured text editor and copy your files over via serial link. When working directly on CP/M I'd been using VEDIT or VDE -- forget which -- as my programmer's editor.

durgadas311
October 11th, 2017, 05:32 AM
I used Software Toolworks C, and of course ASM/MAC/RMAC. There does exist a Z80.LIB macro file for MAC/RMAC that extends the Intel mnemonics for the Z80, which is what I used. That does commit you to Intel mnemonics though, so you might want to pick one or the other (if you can find a Zilog mnemonics assembler for CP/M).

I've also used CP/NET for the convenience of editing source files on my modern PC and compiling/running on CP/M. That is a bit more work to setup, though, and if you only have a RS-232 serial port then it might not be worth the effort, compared to simple file-transfer programs.

I also do most/all my work on virtual computers, so I've gotten a little cavalier about adding "hardware".

As far as education materials, I'm not aware of any "CP/M For Dummies" (no offense intended!) manuals, which would be the best to start with. However, I learned by reading the Digital Research manuals. For how to write programs that run on CP/M, the "Programmer's Guide" (CP/M 2 System Interface section) is a good starting point. Many of the DRI manuals have been scanned into PDF, but the OCR was not always perfect so you'll need to be able to "read past" the OCR errors. DRI manuals don't tell you how to program in 8080/Z80 assembly language, though. If you're familiar with programming at all, you can probably pick it up without too much difficulty. Also, the CP/M command "DDT" (or "SID" on newer systems) can be used for very simple program entry and execution. The "A" (assemble) command can be used to enter a program segment in pseudo-assembly language, and then you can run it right there. Crashes can happen (in any case), so make sure to have good backups.

krebizfan
October 11th, 2017, 06:06 AM
Two books with canned CP/M code examples are
Andy Laird Johnson Programmer's CP/M Handbook
David Cortesi Dr. Dobb's Z80 Toolbook
Both are available online.

I recommend doing as much programming as possible inside an emulator. CP/M does not have much in the way of default error handling and simple mistakes can easily result in erased disks.

clh333
October 11th, 2017, 06:21 AM
The Kaypro 10 is a venerable CP/M machine; much of what became IBM DOS and MS DOS came from the concepts of CP/M, which of course itself owes a lot to UNIX.

I looked on my bookshelf and found four titles that I could recommend. See the scans of the covers below.

Programming the Z80 by Rodney Zaks (SYBEX, 1982) is a thorough discussion of the CPU, its architecture and registers.
Z80 Applications by James W. Coffron (SYBEX, 1983) goes into hardware interfacing with the Z80.
CP/M Revealed by Jack D. Dennon (Hayden, 1982) delves into the operating system: its architecture, BIOS calls and using the DEBUG utility.
Introduction to CP/M Assembly Language by Jon Lindsay (Hayden, 1984) takes a tour of writing assembly language programs to accomplish common OS tasks.

I have the original Borland distro of Turbo Pascal (on 5.25 disk) but I don't recall getting interested in C until later when I moved to DOS. If I do, it will be the MIX C compiler. I'll have to check.

Also check Dave Dunfield's site for his utilities, including the MicroC compiler: http://www.classiccmp.org/dunfield/img/index.htm

Hope this helps,

-CH-

41265 41266 41267 41268

clh333
October 11th, 2017, 06:32 AM
P.S. Ilford Pan 400 developed in what... Rodinal?

-CH-

Sandisk78
October 11th, 2017, 06:48 AM
thanks all for the information and the advice !

And the picture - it was develloped in good old Kodak D-76 at 20* Cels .
Exposure was 16 seconds with f=16. I think it's overexposed a bit.
Next time I'll try 2...4 seconds in the same light situaton. ( Scanned with Minolta Dimage Scan Elite 5400. )

Sandisk78
October 11th, 2017, 06:57 AM
thanks ! I see... Agree, it's clear- that's the time I have to use an emulator...)

I recommend doing as much programming as possible inside an emulator. CP/M does not have much in the way of default error handling and simple mistakes can easily result in erased disks.

thanks ! I see... Agree, it's clear- that's the time I have to use an emulator...)

clh333
October 11th, 2017, 07:25 AM
I have no Mix C versions for CP/M. However, I used to subscribe to a magazine named "MicroCornucopia": Like many other computer magazines of the time they offered disks of supplementary information and programs.

I just checked and found C, assembly and Forth compilers among the titles. Also Nevada Pilot and COBOL for the Kaypro, and the aforementioned Turbo Pascal version 1.00.

-CH-

durgadas311
October 11th, 2017, 08:02 AM
Also, nice photo. Photographing computer screens is not easy. Looks good!

Sandisk78
October 12th, 2017, 01:32 AM
Also, nice photo. Photographing computer screens is not easy. Looks good!

Thanks ! When making pictures of classic compuers with CRT screens I just minimise brightness so it glows no more than other objects reflect natural light and use a tripod, close aperture and shoot at 4 ... 30 seconds speed with 100 ... 400 iso.

geneb
October 12th, 2017, 05:36 AM
One of the better CP/M books is "Soul of CP/M". It pretty much covers it all, including 8080 assembly.

g.

EkriirkE
October 19th, 2017, 06:42 AM
The "Kaypro CP/M" booklet that comes with(?) the machines I found is super useful, it teaches the basics of Z80 assembly with example code