Hello all,
I have been having fun clowning around with my homebrew Z80 SBC (1),
and am at a point
where I can start considering storage options.
Quick specs:
Zilog Z80B @ 6 MHz
2 x 32 KB SRAM (full 64 KB contiguous available after h/w init)
512 KB FLASH EEPROM - 32 KB mapped to 0000 - 8000h at boot
Zilog Z85C30 SCC - uses system clock for BRG ; 8N1 @ 19.2 Kb/s
I've poked through the archives a (very little) bit for info on (E/EP)
ROM filesystems,
found some stuff by Allison, Falconer, and others. The bag-and-tag
(NS*DOS-alike)
method seems like a good candidate, but then I got to thinking....
I have an Atari 1050 drive sitting idle. It uses a TTL-level serial
packet
protocol, TOTALLY h/w compatible with the SCC (just use CTS or DTR
for /COMMAND).
It offers 130 KB of storage, 260 if I make a 'flippy'.
So...I have some questions:
Has something like this been done before? I have read a little on the
1060,
which was an Atari prototype peripheral that was analogous to the
Apple II CP/M
'Z-80 Softcard' (2) ; I also know of (but haven't absorbed the
details) the Indus GT
having CP/M capability through it's own Z80. But has anyone ever (mis)
used
the 1050 drive, sans Atari computer, with CP/M ???
How can I bootstrap a CP/M system? (This applies to the FLASH disk as
well...)
Reading through DRI docs, ISTM there is a stage where you couple your
CBIOS
with an existing FDOS, and then write the resultant FDOS to a floppy,
and then
that floppy becomes your system 'master' for the target. How does one
bootstrap
CP/M for a 'totally alien' disk format- whether FLASH or something
like the 1050?
And are there any rigorous, hadn-holding treatments of CP/M
bootstrapping, DRI
docs aside (I have a Kaypro II manual that is just all of the DRI
stuff inside-
User Guide, System Regeneration Guide, ED/ASM/DDT Guides)
Would a C128 w/ Juggl'er or Apple ][ + Softcard help?
P.S.:
(1) In poking through past posts, I came upon a bit by Glenn
Herrmannsfledt
about his homebrew SBC - mine turned out an awful lot like what he
describes!!
(2) I actually have a Taiwanese Softcard clone, which works with my
Laser 128!
Thoughts and comments, please!!
Thanks,
Tarkin
|
|
0
|
|
|
|
Reply
|
Tarkin000 (374)
|
12/16/2009 8:44:22 AM |
|
Tarkin:
> Hello all,
> I have been having fun clowning around with my homebrew Z80 SBC (1),
> and am at a point
> where I can start considering storage options.
>
> Quick specs:
> Zilog Z80B @ 6 MHz
> 2 x 32 KB SRAM (full 64 KB contiguous available after h/w init)
> 512 KB FLASH EEPROM - 32 KB mapped to 0000 - 8000h at boot
> Zilog Z85C30 SCC - uses system clock for BRG ; 8N1 @ 19.2 Kb/s
>
Nice project,...! Thank You for sharing...!
---snip---
>
> So...I have some questions:
>
> Has something like this been done before? I have read a little on the
> 1060,
> which was an Atari prototype peripheral that was analogous to the
> Apple II CP/M
> 'Z-80 Softcard' (2) ; I also know of (but haven't absorbed the
> details) the Indus GT
> having CP/M capability through it's own Z80. But has anyone ever (mis)
> used
> the 1050 drive, sans Atari computer, with CP/M ???
>
First some facts: my first computer was an 800XL + 1050.
then some "links" for those not quite sure what it is:
search Google, or whatever, for keywords like:
"SIO2PC" or "sioinstr.txt"
to get a list of pages there points to Nick Kennedy's page...
(for a discussion of the other way around)
This come direct from memory so i could be wrong in more than
one place:
As i remember the Atari protocol was at 2400 baud so it will not
be that very fast. There was some kind of copy-protection in
the 1050's ROM not allowing You to "see" the complete FS,
remember i did buy an "Disk-Doubler", as fare as i can tell it is
a sandwich of 2x6810's + an 2732, with that one was able to
run an disk-editor on the FS, (data on an PC-floppy was inverse).
(and the 1050 don't care about the index-hole)
So from that I'm not even sure this will work with an unmodified 1050...?
> How can I bootstrap a CP/M system? (This applies to the FLASH disk as
> well...)
> Reading through DRI docs, ISTM there is a stage where you couple your
> CBIOS
> with an existing FDOS, and then write the resultant FDOS to a floppy,
> and then
> that floppy becomes your system 'master' for the target. How does one
> bootstrap
> CP/M for a 'totally alien' disk format- whether FLASH or something
> like the 1050?
Here I'm sure You will get something much better, but my 2cent:
In Boot-Prom make an Start-Menu,
Read 128 byte from Boot-device at track 0, sector 1, place it at
0000h...00080h, transfer control to that, (Jp 0 or RST 0),
those 128 byte should load from track 0, sector 2... track x, sector x the
OS or an extended Boot-loader to load the OS and put it at the right
place in memory,... transfer control to Init in the Bios,
and You are up-and-running...
Good luck...!
<ole>
|
|
0
|
|
|
|
Reply
|
Ole
|
12/16/2009 3:20:57 PM
|
|
Thomas Richter wrote:
> Why not? Of course, you would need to tell CP/M *how* to access the
> drive; it is a custom, Atari specific protocol with a rather small
> sector size of 128 bytes (typical sizes would be rather 512 bytes). I'm
> not a CP/M expert, thus I cannot tell whether *that* is possible, but
> fitting the 1050 hardware wise to the system shouldn't be a problem.
CPM was designed around 128 byte/sector 8" floppies, other sector sizes
required buffering up multiple logical (128 byte) sectors to write a
single physical sector. The 128 byte sector should not present a problem
to CPM.
Regards,
BobH
|
|
0
|
|
|
|
Reply
|
BobH
|
12/16/2009 5:09:57 PM
|
|
Ole Christensen wrote:
> This come direct from memory so i could be wrong in more than
> one place:
> As i remember the Atari protocol was at 2400 baud so it will not
> be that very fast.
No, it's not that bad. The Atari drivers were pretty fast at their time,
the transfer speed is 19200 baud.
> There was some kind of copy-protection in
> the 1050's ROM not allowing You to "see" the complete FS,
You do see the complete data bytes, it's not a copy protection, but
rather an abstraction around the disk transfer protocol. You just send
the 1050 the sector you want to read, and get the data back. Not more,
i.e. you cannot see implementation details like sector headers. Thus,
you do have full access to the payload data, all what is needed to put
data on the disk whatever you like. Sector headers etc. are not "file
system" specific, but hardware specific - and not required to store data
or a filing system on the disk.
> remember i did buy an "Disk-Doubler", as fare as i can tell it is
> a sandwich of 2x6810's + an 2732, with that one was able to
> run an disk-editor on the FS, (data on an PC-floppy was inverse).
You can then edit details like the track layout etc, but that is
typically not required unless you want to copy copy-protected disks that
played tricks with those.
> So from that I'm not even sure this will work with an unmodified 1050...?
Why not? Of course, you would need to tell CP/M *how* to access the
drive; it is a custom, Atari specific protocol with a rather small
sector size of 128 bytes (typical sizes would be rather 512 bytes). I'm
not a CP/M expert, thus I cannot tell whether *that* is possible, but
fitting the 1050 hardware wise to the system shouldn't be a problem.
So long,
Thomas
|
|
0
|
|
|
|
Reply
|
Thomas
|
12/16/2009 5:48:13 PM
|
|
Tarkin wrote:
> Hello all,
> I have been having fun clowning around with my homebrew Z80 SBC (1),
> and am at a point where I can start considering storage options.
> [...]
> I have an Atari 1050 drive sitting idle. It uses a TTL-level serial
> packet protocol
Hi,
I am not 100% sure, but many others took an CBM (Commodore) drive,
because it's like using a high level language (you have not to use
exotic command sequences and you do not have to consider timing etc.
with the commodore floppy drives, because they have an own intelligence.
Example: http://8bit.yarek.pl/interface/zx81.zx1541/index.html
A 1541 drive was used with a ZX81, and for me it seems to be a feasable,
almost easy approach.
Regards
Peter
|
|
0
|
|
|
|
Reply
|
Peter
|
12/16/2009 6:41:25 PM
|
|
Tarkin wrote:
> How can I bootstrap a CP/M system? (This applies to the FLASH disk as well...)
> Reading through DRI docs, ISTM there is a stage where you couple your CBIOS
> with an existing FDOS, and then write the resultant FDOS to a floppy, and then
> that floppy becomes your system 'master' for the target. How does one bootstrap
> CP/M for a 'totally alien' disk format- whether FLASH or something like the 1050?
I modify Dunfield's monitor and put it in ROM on my board. I assemble my
CP/M code under SIMH using SLR Z80ASM or the original CP/M assembler.
Then I load the hex files for BDOS/CCP/CBIOS using the monitor and jump
to the CBIOS start address.
It helps at this stage if you have a disk that's already formatted and
filled with E5h (I used IDE drives) as I then transfer (one at a time)
PIP, LOAD etc. using the monitor, and once in CP/M SAVE them to disk.
Writing a simple XMODEM program will also be useful.
If you can connect your disk system to the PC for formatting and
writing, you can construct the filesystem on the PC and write it as an
image. This is what I did with my Z180 SBC which uses flash ROM and NVRAM.
--
David Knoll
Anti-spam: Change 'news' to 'david' for my real address.
|
|
0
|
|
|
|
Reply
|
David
|
12/17/2009 11:10:21 AM
|
|
On Wed, 16 Dec 2009 18:48:13 +0100, Thomas Richter
<thor@math.tu-berlin.de> wrote:
>Ole Christensen wrote:
>
>> This come direct from memory so i could be wrong in more than
>> one place:
>> As i remember the Atari protocol was at 2400 baud so it will not
>> be that very fast.
>
>No, it's not that bad. The Atari drivers were pretty fast at their time,
>the transfer speed is 19200 baud.
>
>> There was some kind of copy-protection in
>> the 1050's ROM not allowing You to "see" the complete FS,
>
>You do see the complete data bytes, it's not a copy protection, but
>rather an abstraction around the disk transfer protocol. You just send
>the 1050 the sector you want to read, and get the data back. Not more,
>i.e. you cannot see implementation details like sector headers. Thus,
>you do have full access to the payload data, all what is needed to put
>data on the disk whatever you like. Sector headers etc. are not "file
>system" specific, but hardware specific - and not required to store data
>or a filing system on the disk.
>
>> remember i did buy an "Disk-Doubler", as fare as i can tell it is
>> a sandwich of 2x6810's + an 2732, with that one was able to
>> run an disk-editor on the FS, (data on an PC-floppy was inverse).
>
>You can then edit details like the track layout etc, but that is
>typically not required unless you want to copy copy-protected disks that
>played tricks with those.
>
>> So from that I'm not even sure this will work with an unmodified 1050...?
>
>Why not? Of course, you would need to tell CP/M *how* to access the
>drive; it is a custom, Atari specific protocol with a rather small
>sector size of 128 bytes (typical sizes would be rather 512 bytes). I'm
>not a CP/M expert, thus I cannot tell whether *that* is possible, but
>fitting the 1050 hardware wise to the system shouldn't be a problem.
>
Thomas,
CP/M treats disks as addressable logical sectors of size 128 bytes.
Now it's the BIOS that makes the drive look that way to the BDOS
and the drive can be anything the programmer wants it to be. Typical
larger or IDE, and other drives will use physical sectors of 512 bytes
so it's a programtic issue.
So is the atari wants some specific layout you can write code to make
any disk (or EPROM or EEPROM) look that way.
Allison
>So long,
> Thomas
|
|
0
|
|
|
|
Reply
|
Allison
|
12/17/2009 11:52:12 PM
|
|
On Dec 16, 3:44=A0am, Tarkin <tarkin...@gmail.com> wrote:
> Hello all,
> =A0 I have been having fun clowning around with my homebrew Z80 SBC (1),
> and am at a point
> where I can start considering storage options.
>
> Quick specs:
> =A0Zilog Z80B @ 6 MHz
> =A02 x 32 KB SRAM (full 64 KB contiguous available after h/w init)
> =A0512 KB FLASH EEPROM - 32 KB mapped to 0000 - 8000h at boot
> =A0Zilog Z85C30 SCC - uses system clock for BRG ; 8N1 @ 19.2 Kb/s
>
> =A0I've poked through the archives a (very little) bit for info on (E/EP)
> ROM filesystems,
> found some stuff by Allison, Falconer, and others. =A0The =A0bag-and-tag
> (NS*DOS-alike)
> method seems like a good candidate, but then I got to thinking....
>
> =A0I have an Atari 1050 drive sitting idle. It uses a TTL-level serial
> packet
> protocol, TOTALLY h/w compatible with the SCC (just use CTS or DTR
> for /COMMAND).
> It offers 130 KB of storage, 260 if I make a 'flippy'.
>
> =A0So...I have some questions:
>
> Has something like this been done before? I have read a little on the
> 1060,
> which was an Atari prototype peripheral that was analogous to the
> Apple II CP/M
> 'Z-80 Softcard' (2) ; I also know of (but haven't absorbed the
> details) the Indus GT
> having CP/M capability through it's own Z80. But has anyone ever (mis)
> used
> the 1050 drive, sans Atari computer, with CP/M ???
>
> How can I bootstrap a CP/M system? (This applies to the FLASH disk as
> well...)
> Reading through DRI docs, ISTM there is a stage where you couple your
> CBIOS
> with an existing FDOS, and then write the resultant FDOS to a floppy,
> and then
> that floppy becomes your system 'master' for the target. How does one
> bootstrap
> CP/M for a 'totally alien' disk format- whether FLASH or something
> like the 1050?
> And are there any rigorous, hadn-holding treatments of CP/M
> bootstrapping, DRI
> docs aside (I have a Kaypro II manual that is just all of the DRI
> stuff inside-
> User Guide, System Regeneration Guide, ED/ASM/DDT Guides)
> Would a C128 w/ Juggl'er or Apple ][ + Softcard =A0help?
>
> P.S.:
> =A0(1) In poking through past posts, I came upon a bit by Glenn
> Herrmannsfledt
> about his homebrew SBC - mine turned out an awful lot like what he
> describes!!
> (2) I actually have a Taiwanese Softcard clone, which works with my
> Laser 128!
>
> Thoughts and comments, please!!
>
> Thanks,
> =A0 Tarkin
Thanks for all the input!
I have hit a snag using the 1050.
The data line (OUT) from the peripheral (what would be IN for an A800)
is stuck logic high, which leads me to believe either it's DIL
transistor
pack was blown from a cabling mishap, or there is some other h/w
failure in the 1050. So, I'm going to set aside the 1050 until I can
devote my full attention to debugging it...
The suggestions RE bootstrapping CP/M all line up with what I have
read so far - Get a monitor working, get comms working (XMODEM,
IHEX loader, etc) and develop the CBIOS and system image on another
machine/emulator.
Also, Peter- I had thought about using a CBM drive- a 1571-
but it looks like it must have a separate CLK line, where as the
Atari drives did not (I think).
Thanks again,
Tarkin
|
|
0
|
|
|
|
Reply
|
Tarkin
|
12/18/2009 5:22:12 PM
|
|
>
> I have hit a snag using the 1050.
> The data line (OUT) from the peripheral (what would be IN for an A800)
> is stuck logic high, which leads me to believe either it's DIL
> transistor
> pack was blown from a cabling mishap, or there is some other h/w
> failure in the 1050. So, I'm going to set aside the 1050 until I can
> devote my full attention to debugging it...
>
If a schematic for the 1050 could help You...
(and You not already have one)...
<ole>
|
|
0
|
|
|
|
Reply
|
Ole
|
12/18/2009 6:41:25 PM
|
|
On Dec 18, 12:22=A0pm, Tarkin <tarkin...@gmail.com> wrote:
> Also, Peter- I had thought about using a CBM drive- a 1571-
> but it looks like it must have a separate CLK line, where as the
> Atari drives did not (I think).
That's correct, it has bidirectional data and clock lines, a pull down
attention request line, an attention line from the computer side,
ground and reset - six pins. The 1571 is the better choice than the
1541 since the 1571 supports a much faster version of the protocol -
when the 1540 was produced for the Vic-20, it had a hardware serial
protocol, and they thought they could use the same one for the C64,
but they hit a hardware snag (the CIA chip? the main processor / video
display processor phasing? some interaction? I forget), and so had to
bit-bang it. And of course, the efficiency of the protocol was because
it was in hardware - bit banged it was as slow as watching a glacier
melt before global warming.
The advantage, as noted, of the 1541/1571 family for this is that you
can check that you have the protocol working before trying to put it
to use, by writing a small program to talk to the drive and see the
response.
The 1571 also has more capable built-in support, since the C128 came
with a CP/M built in, and while they should have run the Z80 off the
dot clock at 8MHz and used wait states to interface with the C128
memory bus, file-based operations at least were a lot more nimble in
C128-CP/M+ than in the old C-64.
For the 1541/1571 serial bus computer side pin-outs, view this in a
monospace font (eg copy and paste into a console text editor or
Wordpad with Courier). Its one of those DIN plugs that CBM loved so
much.
Serial I/O
++ ++
+-------+----------------------+ / +-+ \
| Pin | Type | /5 1\
+-------+----------------------+ + O O +
| 1 | /SERIAL SRQ IN | | 6 |
| 2 | GND | | O |
| 3 | SERIAL ATN OUT | | |
| 4 | SERIAL CLK IN/OUT | + O O +
| 5 | SERIAL DATA IN/OUT | \4 O 2/
| 6 | /RESET | \ 3 /
+-------+----------------------+ +---+
|
|
0
|
|
|
|
Reply
|
BruceMcF
|
12/19/2009 2:25:06 AM
|
|
On Fri, 18 Dec 2009 09:22:12 -0800 (PST), Tarkin wrote:
> I have hit a snag using the 1050.
> The data line (OUT) from the peripheral (what would be IN for an A800)
> is stuck logic high, which leads me to believe either it's DIL
> transistor
> pack was blown from a cabling mishap, or there is some other h/w
> failure in the 1050. So, I'm going to set aside the 1050 until I can
> devote my full attention to debugging it...
Did you connect the 1050 to an Atari computer or to your SBC?
If you connected it to the SBC, be sure to provide +5V on the
+5V/Ready input of the drive (SIO pin 10), otherwise the drive
will just sit there quietly.
so long,
Hias
|
|
0
|
|
|
|
Reply
|
Matthias
|
12/19/2009 1:23:31 PM
|
|
On Dec 19, 8:23=A0am, Matthias Reichl <use-reply...@hias.horus.com>
wrote:
> On Fri, 18 Dec 2009 09:22:12 -0800 (PST), Tarkin wrote:
> > I have hit a snag using the 1050.
> > The data line (OUT) from the peripheral (what would be IN for an A800)
> > is stuck logic high, which leads me to believe either it's DIL
> > transistor
> > pack was blown from a cabling mishap, or there is some other h/w
> > failure in the 1050. So, I'm going to set aside the 1050 until I can
> > devote my full attention =A0to debugging it...
>
> Did you connect the 1050 to an Atari computer or to your SBC?
>
Yes. The DATA IN (to computer, what would be DATA OUT from the 1050)
just sat HIGH
> If you connected it to the SBC, be sure to provide +5V on the
> +5V/Ready input of the drive (SIO pin 10),
:^O
I did not see that in the docs I read!!
(Doesn't mean it wasn't there...)
> otherwise the drive
> will just sit there quietly.
>
That's what it's been doing :^(
> so long,
>
> Hias
Thanks for the tip!! I had thought the drive output electronics
had gone bad, so I disconnected my second serial port
interface on the SBC, and ripped out the Atario SIO
protocol test code. Luckily, I backed it up....
I will restore the setup, attach the (READY) line, and report back!
Thank you!!,
Tarkin
|
|
0
|
|
|
|
Reply
|
Tarkin
|
12/20/2009 4:19:39 AM
|
|
Bruce wrote:
> For the 1541/1571 serial bus computer side pin-outs, view this in a
> monospace font (eg copy and paste into a console text editor or
> Wordpad with Courier).
Hello, Bruce!
I don't know what you use, to read the comp.os.cpm Newsgroup.
Me, I use Windows 98SE and Outlook Express 6.
Because Windows and Outlook Express (and Internet Explorer) are the
standards, in local cybercafes. I have never seen a cybercafe use
Linux. There was one small cybercafe whose owner was a fan of the Mac,
but he went bankrupt, following a move near a supermarket (its
customers did not went to the new location).
So, since I use "boxes" to surround my tables in WordStar, I
investigated how to show them properly, once published on the
comp.os.cpm Newsgroup.
Under Outlook Express, there is a "Affichage" (Display) pull-down
menu. One of its options is "Taille du texte" (Size of text). The last
option is "Fixe" (Fixed). It works but, unfortunately, you need to
select it each time...
One day, I finally found that "Outils" (Tools) -- "Options" (Options,
the last option, at the bottom), had a "Lecture" (Read) "button". When
you click on it, you see a I/O window, with "Polices" (Fonts) at the
bottom. When you click on it, you see another I/O window, with the
first 2 pull-down menus being "Police proportionnelle" and "police =E0
largeur fixe" (Proportional font and Fixed font).
When I started using Windows, 10 years ago, there was something called
"System" font. The name seems to have changed. Nowadays, I usually
find one "Lucida Console" font which does the job. Once you click on
"Ok", the program remembers that it must use a fixed font to display
the comp.os.cpm Newsgroup messages. This has worked for me for several
months. I read the comp.os.cpm Newsgroup messages in a fixed font. All
that is missing is green characters on black screen. (And "single
column" characters.)
Yours Sincerely,
Mr. Emmanuel Roche, France
|
|
0
|
|
|
|
Reply
|
Mr
|
12/29/2009 4:10:05 PM
|
|
Mr. Emmanuel Roche wrote:
> (...) I read the comp.os.cpm Newsgroup messages in a fixed font.
I forgot to say that, when I publish a WordStar file in the
comp.os.cpm Newsgroup, I see it right-justified on the screen, since I
reformat the text to 64 columns. Apparently, Google Groups only allow
67 columns of text. I have no idea why they chose such a curious
value, rather than the 72 columns of MBASIC, coming straight from the
ASR-33 Teletype. All my 8-bit computers (and typewriters) have 80
columns. Even my Daisy-Wheel printer had 136 columns. This must be
progress?
Yours Sincerely,
Mr. Emmanuel Roche, France
|
|
0
|
|
|
|
Reply
|
Mr
|
12/29/2009 4:29:55 PM
|
|
|
13 Replies
267 Views
(page loaded in 0.229 seconds)
|