Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

TurboDOS V1.43 runs on Altairz80

176 views
Skip to first unread message

retrogear

unread,
Mar 15, 2015, 4:27:17 PM3/15/15
to
Thanks to previous work by Per Frejvall and Peter Schorn, I was able to upgrade
an altairz80 emulation of TurboDOS to version 1.43. It launches from a cp/m 2.2
pre-boot. I appear to have 2 hard drives. It's still a work in process since
I'm learning TurboDOS on the fly. I also discovered TurboDOS has those nasty
serial numbers which the system gen command rejects. The number seems to be encoded
in the 3 bytes at offset 11h in the system .REL files. I had a chicken/egg dilemma
but eventually was able to use all original .rel files and the 1.43 gen command.
It also appears that to run the gen command within turbodos requires non-banked mode even though it says banked version, not sure why yet.
Also by sending the printer to console I was able to print
a load map even though jumbled somewhat. It is demonstrated in the output below:

64K CP/M Version 2.2 (SIMH ALTAIR 8800, BIOS V1.27, 2 HD, 02-May-2009)

A>osload

AltairZ80 Init Done!

Copyright 1986, Software 2000, Inc. (21/1118)

TurboDOS Version implemented by Per Frejvall
for simh/AltairZ80 computer.
Credit to Peter Schorn.

A:OSMASTER.SYS loading from BD2B to FEFF, size 41D5
Banked memory detected

AltairZ80 Init Done!
TurboDOS 1.43, Copyright 1986, Software 2000, Inc. (21/1118)

TurboDOS Version implemented by Per Frejvall
for simh/AltairZ80 computer.
Credit to Peter Schorn.

0A>bank 0

Current bank number: 0

0A>print console

Printing is to CONSOLE

0A>gen alt.sys osmaster.sys ;ufeffm
Copyright 1986, Software 2000, Inc.
;------------------------------------------------------------------------
;
; .GEN-file for Altair-system with Hard-disk.
; Banked version.
;
;------------------------------------------------------------------------
;
STDSINGL ;standard package for single user.
CPMSUP ;cp/m function support module
;faslod
bnkmgr
patch
;rtcnul
rtcclk
althdsk
altbc
altinit
altbnk
Pass 1
LCLUSR LCLMSG LCLTBL CMDINT AUTLOD SGLUSR AUTLOG OSNTRY FILMGR
FILSUP FILCOM BUFMGR DSKMGR DSKTBL NONFIL CONMGR CONTBL DOMGR
INPLN LSTMGR LSTTBL COMMGR RTCMGR DSPSGL MEMMGR COMSUB SYSNIT
CPMSUP BNKMGR PATCH RTCCLK ALTHDS ALTCON ALTINI ALTBNK
Pass 2

ABSOLUTE LOAD MAP:

MODULE PROG SEG DATA SEG PAGE SEG BANK SEG INIT SEG COMM SEG TOTA
L
NAME BASE SIZE BASE SIZE BASE SIZE BASE SIZE BASE SIZE SIZE
====== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ====


LCLUSR LCLUSR BEBD 037C F7E0 003D FB00 00FB 0100 000C
04C0
LCLMSG LCLMSG C239 00FD F81D 0084
0181
LCLTBL LCLTBL F8A1 0003
0003
CMDINT CMDINT C336 04AB F8A4 0048 010C 0013
0506
AUTLOD AUTLOD C7E1 0061 F8EC 004B
00AC
SGLUSR SGLUSR C842 0068 F937 0001
0069
AUTLOG AUTLOG C8AA 000F F938 0001
0010
OSNTRY OSNTRY C8B9 0207 F939 0002
0209
FILMGR FILMGR CAC0 0873 F93B 0002
0875

FILSUP FILSUP D333 0980 F93D 0032
09B2
FILCOM FILCOM DCB3 016D F96F 0002
016F
BUFMGR BUFMGR DE20 0479 F971 000F
0488
DSKMGR DSKMGR E299 0211 F980 0030 011F 0036
0277
DSKTBL DSKTBL F9B0 0030
0030
NONFIL NONFIL E4AA 00E2 F9E0 0003
00E5
CONMGR CONMGR E58C 0153 F9E3 0002
0155
CONTBL CONTBL F9E5 0009
0009
DOMGR DOMGR E6DF 017D F9EE 0009
0186

INPLN INPLN E85C 008B
008B
LSTMGR LSTMGR E8E7 00FF
00FF
LSTTBL LSTTBL F9F7 0071
0071
COMMGR COMMGR E9E6 004D
004D
RTCMGR RTCMGR EA33 0059 FA68 0005
005E
DSPSGL DSPSGL EA8C 0099 FA6D 0010
00A9
MEMMGR MEMMGR EB25 0145 FA7D 000C
0151
COMSUB COMSUB EC6A 0116 FA89 0022
0138
SYSNIT SYSNIT FAAB 0001 0155 0029
002A

CPMSUP CPMSUP ED80 00E4 FAAC 000F
00F3
BNKMGR BNKMGR EE64 06BB FABB 0021 FC60 01C0
089C
PATCH PATCH F51F 0080
0080
RTCCLK RTCCLK F59F 010F
010F
ALTHDS ALTHDS F6AE 00D4 FADC 0024 FE20 0086
017E
ALTCON ALTCON F782 005E
005E
ALTINI ALTINI 017E 00B8
00B8
ALTBNK ALTBNK FEA6 005A 0236 004E
00A8

Processing parameter file:
SRHDRV = 0FF ;SEARCH SYSTEM DISK FOR COMMAND FILES
CONAST = 0,CONDRA
DSKAST = 0,dskdra,1,dskdra,2,dskdra,0ff,(0)
MEMRES = 0400 ;AMOUNT OF DYNAMIC SPACE BELOW THE O.S.
AUTUSR = 80 ;DEFAULT TO PRIVLEGED, USER 0
NMBUFS = 12 ;DEFAULT NUMBER OF BUFFERS
BUFSIZ = 02 ;DEFAULT BUFFER SIZE (LOG2(SIZE/128))
CLPCHR = ">"
ATNCHR = 01
;ptrast = 01,lstdra
prtmod = 00
curbnk = 1
cintry+22 = patch,44
patch = 21,00,00,7d,0c9

Writing output file 0A:OSMASTER.SYS

0A>copy *.rel 0b:

Ambiguous filename: confirm individual files (y/n)? n
0A:ALTBC .REL copied to 0B:ALTBC .REL
0A:ALTBNK .REL copied to 0B:ALTBNK .REL
0A:ALTCON .REL copied to 0B:ALTCON .REL
0A:ALTHDSK .REL copied to 0B:ALTHDSK .REL
0A:ALTINIT .REL copied to 0B:ALTINIT .REL
0A:BNKMGR .REL copied to 0B:BNKMGR .REL
0A:BNKREQ .REL copied to 0B:BNKREQ .REL
0A:COMSUB .REL copied to 0B:COMSUB .REL
0A:CONREM .REL copied to 0B:CONREM .REL
0A:CPMSUP .REL copied to 0B:CPMSUP .REL
0A:DSPCHR .REL copied to 0B:DSPCHR .REL
0A:DSPSGL .REL copied to 0B:DSPSGL .REL
0A:FASLOAD .REL copied to 0B:FASLOAD .REL
0A:FASLOD .REL copied to 0B:FASLOD .REL
0A:LCLUSR .REL copied to 0B:LCLUSR .REL
0A:MPMSUP .REL copied to 0B:MPMSUP .REL
0A:MSGFMT .REL copied to 0B:MSGFMT .REL
0A:NETFWD .REL copied to 0B:NETFWD .REL
0A:NORLOD .REL copied to 0B:NORLOD .REL
0A:PATCH .REL copied to 0B:PATCH .REL
0A:QUEMGR .REL copied to 0B:QUEMGR .REL
0A:RTCCLK .REL copied to 0B:RTCCLK .REL
0A:RTCMGR .REL copied to 0B:RTCMGR .REL
0A:RTCNUL .REL copied to 0B:RTCNUL .REL
0A:SPOOLR .REL copied to 0B:SPOOLR .REL
0A:STDLOADR.REL copied to 0B:STDLOADR.REL
0A:STDMASTR.REL copied to 0B:STDMASTR.REL
0A:STDSINGL.REL copied to 0B:STDSINGL.REL
0A:STDSPOOL.REL copied to 0B:STDSPOOL.REL
0A:SUBMIT .REL copied to 0B:SUBMIT .REL
0A:SYSNIT .REL copied to 0B:SYSNIT .REL
0A:USRSUP .REL copied to 0B:USRSUP .REL

0A>dir 0b:

. ********* 00:00:00 7,916K REMAINING
32 FILES 0B:????????.??? 220K DISPLAYED

ALTBC .REL 4K CONREM .REL 4K MSGFMT .REL 4K SPOOLR .REL 4K
ALTBNK .REL 4K CPMSUP .REL 4K NETFWD .REL 4K STDLOADR.REL 20K
ALTCON .REL 4K DSPCHR .REL 4K NORLOD .REL 4K STDMASTR.REL 36K
ALTHDSK .REL 4K DSPSGL .REL 4K PATCH .REL 4K STDSINGL.REL 24K
ALTINIT .REL 4K FASLOAD .REL 4K QUEMGR .REL 4K STDSPOOL.REL 28K
BNKMGR .REL 4K FASLOD .REL 4K RTCCLK .REL 4K SUBMIT .REL 4K
BNKREQ .REL 4K LCLUSR .REL 4K RTCMGR .REL 4K SYSNIT .REL 4K
COMSUB .REL 4K MPMSUP .REL 4K RTCNUL .REL 4K USRSUP .REL 4K

0A>

Credit again goes to Per Frejvall and Peter Schorn for blazing a trail.
I can make this available to those interested. I would also appreciate more info
from anyone experienced in TurboDOS.

Larry G

jdhadd...@gmail.com

unread,
Mar 15, 2015, 10:12:26 PM3/15/15
to
It's great to see some interest in TurboDOS. I've got a couple working TurboDOS systems running on real hardware. Multiple processors, 8 bit z80s and 16 bit 186's running in the same chassis, hard disk and floppy disk caching, and a great command interpreter. I don't consider myself an expert, but I do enjoy tinkering with it, my next challenge is to try integrating Arcnet. I'm happy to share my experiences and help with what I can, best way to contact me is e-mail new_castle_j at yahoo.com
Jonathan

pbetti

unread,
Mar 16, 2015, 3:57:01 AM3/16/15
to
Please share.
Contact me privately in case you need web space for this.

Piergiorgio Betti

retrogear

unread,
Mar 21, 2015, 10:47:38 PM3/21/15
to

> > I'm learning TurboDOS on the fly. I also discovered TurboDOS has those nasty
> > serial numbers which the system gen command rejects. The number seems to be encoded
> > in the 3 bytes at offset 11h in the system .REL files. I had a chicken/egg dilemma
> > but eventually was able to use all original .rel files and the 1.43 gen command.


I found a serial program rs.com on the Walnut Creek cdrom. It turns out each module in the sys file is serialized:

0A>rs stdloadr


----------------------------------------
| RS version 1.4 |
| RESERIALIZER |
| USE THIS PROGRAM RESPONSIBLY |
| (c) infrigement is YOUR responsibility |
----------------------------------------


Enter new value for ?ORIG? in DECIMAL : 12
Enter new value for ?UNIT? in DECIMAL : 3456
Matching files: 1


Now processing STDLOADR.REL, size 4380H bytes.

OSLOAD reserialized.
LDRMSG reserialized.
OSNTRY reserialized.
FILMGR reserialized.
FILSUP reserialized.
FILCOM reserialized.
BUFMGR reserialized.
DSKMGR reserialized.
DSKTBL reserialized.
NONFIL reserialized.
CONMGR reserialized.
CONTBL reserialized.
DSPSGL reserialized.
COMSUB reserialized.

end of file
STDLOADR.REL written back, all modules serialized 12/3456


*** all done ***

0A>

p...@frejvall.se

unread,
Mar 22, 2015, 4:56:16 PM3/22/15
to
Hi everyone!

I am so pleased to see this being alive and well. Unfortunately I have little time right now but I may be able to chime in every now and then.

Getting TurboDOS to work in a multi-processor system should be pretty easy. The implementor's guide contains all the information needed to create a driver that uses anything from smoke signaling to 10 gigabit ethernet :)

So many fond memories from the 80's!

Per Frejvall

retrogear

unread,
Mar 26, 2015, 11:22:05 PM3/26/15
to
Work is progressing getting TurboDOS V1.43 (and some 8-bit of 1.43+) running on the zemu emulator.
Wiley now has a functioning real-time clock and date, banked mode with interrupts. There is a program on the Walnut Creek CD timecl.mac that prints the time with the prompt. Also on the CD is systat.mac that shows system stats. I put in some y2k patches for the year in dir and date (renamed tdate).


62K CPM 2.2

*******************************************
A>osload


Z80 Emulator Init Done!

Copyright 1986, Software 2000, Inc. (21/1118)
TurboDOS Version 1.41 implemented by Per Frejvall
for simh/AltairZ80 computer.
Credit to Peter Schorn.
Upgraded to 1.43 by Larry Greene.
Modified to run on Z80 Emulator(2015-3-23)

A:OSMASTER.SYS loading from 7F96 to C3FF, size 446A

Z80 Emulator Init Done!
TurboDOS 1.43, Copyright 1986, Software 2000, Inc. (21/1118)
TurboDOS Version 1.41 implemented by Per Frejvall
for simh/AltairZ80 computer.
Credit to Peter Schorn.
Upgraded to 1.43 by Larry Greene.
Modified to run on Z80 Emulator(2015-3-23)

[22:03 @] 0A>dir


. 26 Mar 15 22:03:30 1,108K REMAINING
58 FILES 0A:????????.??? 306K DISPLAYED
BANK .COM 2K EMU .GEN 2K EMURTC .REL 2K SHOW .COM 2K
BNKMGR .REL 4K EMU .PAR 2K ERASEDIR.COM 2K STAT .COM 6K
CHANGE .COM 2K EMUBC .MAC 4K FASLOD .REL 2K STDLOADR.REL 18K
COPY .COM 24K EMUBC .REL 2K GEN .COM 8K STDSINGL.REL 24K
CPMSUP .REL 2K EMUBNK .MAC 2K L80 .COM 12K SUBMIT .COM 2K
DEL .COM 2K EMUBNK .REL 2K M80 .COM 20K SYSTAT .COM 2K
DELETE .COM 2K EMUCON .MAC 8K OSLOAD .COM 12K TDATE .COM 2K
DIR .COM 4K EMUCON .REL 2K OSMASTER.SYS 18K TIMECL .MAC 2K
DLOAD .COM 10K EMUHDSK .MAC 20K PATCH .REL 2K TIMECL .REL 2K
DO .COM 2K EMUHDSK .REL 2K PIP .COM 8K TURBOMAK.DO 2K
DOASM .DO 2K EMUINIT .MAC 2K PRINT .COM 2K TURBOMAK.SUB 2K
DOASM .SUB 2K EMUINIT .REL 2K RENAME .COM 4K TYPE .COM 2K
DRIVE .COM 2K EMULOAD .GEN 2K RTCCLK .REL 2K ULOAD .COM 10K
DROPZONE.COM 10K EMULOAD .PAR 2K RTCMGR .REL 2K
DUMP .COM 2K EMURTC .MAC 6K RTCNUL .REL 2K

[22:03 @] 0A>systat


SYSTAT v1.00 by ESKAY
TurboDOS Version 1.4, TurboDOS Serial Number 21/1118, Privileged logon.
Banked system (current bank = 1) on circuit 0, node 0. CP/M version 3.1
Memory free in current bank: 64253 bytes (top of TPA = FBFCH).
Default drive is removable, block size = 2k. Disk has 554 free blocks.
Accessible drives are : ABCD
Number of buffers: 18. Buffer size: 512 bytes.
Current printing set to DIRECT TO PRINTER A
System printer assignments :
Printer A: Queue A
Printer B: Queue A
Printer C: Queue A
Printer D: Queue A
Printer E: Queue A
Printer F: Queue A
Printer G: Queue A
Printer H: Queue A
Printer I: Queue A
Printer J: Queue A
Printer K: Queue A
Printer L: Queue A
Printer M: Queue A
Printer N: Queue A
Printer O: Queue A
Printer P: Queue A


[22:03 @] 0A>


[22:04 @] 0A>tdate set



Date: 26 mar 15

Date:
Date: 26 Mar 15

Time: 22:05:00

Time: 22:05:00

[22:05 @] 0A>

[22:06 @] 0A>tdate



Date: 26 Mar 15

Time: 22:06:08

[22:06 @] 0A>
0 new messages