RetroBrew Computers Forum
Discussion forum for the RetroBrew Computers community.

Home » RBC Forums » General Discussion » Interested in a Z280 SBC (Z280 SBC retrobrew (CPU280 Revival))  () 1 Vote
Re: Interested in a Z280 SBC [message #5484 is a reply to message #5483] Mon, 12 November 2018 09:27 Go to previous messageGo to next message
plasmo is currently offline  plasmo
Messages: 916
Registered: March 2017
Location: New Mexico, USA
Senior Member
I think I got it working. I need to check for common memory when doing XMOVE and adjust the DMA address registers appropriately. In GENCPM I allocate 2 data buffers and 2 directory buffers and put buffers outside of common. That gives me a TPA of 60K. Everything is still in CSEG, I hope someone can show me how to move some of the code into DSEG.
Bill
PS, RAMdisk is still not working. I'm long way from done.
index.php?t=getfile&id=1124&private=0
Re: Interested in a Z280 SBC [message #5485 is a reply to message #5482] Mon, 12 November 2018 09:34 Go to previous messageGo to next message
hperaza is currently offline  hperaza
Messages: 68
Registered: March 2017
Member
plasmo wrote on Mon, 12 November 2018 07:05
I have coded up XMOVE using DMA and it is running. I still use GENCPM to take care of HASH, ALV, DIRBCB and DTABCB. I now ran into the same problem Tony has, i.e., when pip large file (help.hlp is my test file), it can't verify. However, I can pip small files without any issue. The one GENCPM option that seems to solve the problem is answering 'N' to the question 'Allocate buffers outside of Common (Y) ?'. I set up the disks with different combination of directory buffers, data buffers, and allocate buffers outside of common. Only the disks that have outside allocated buffers failed write verify. I'm using 3 banks of memory.

If you are using double-bit allocation vectors keep in mind that GENCPM has a bug that causes it to allocate the wrong vector size for double-bit ALV; be sure you allocate them by hand.

Quote:
PS, I'm going to port the same software (slightly modified) to Z280 running in 8-bit Z80-compatible bus (https://github.com/Plasmode/ZZ80RCWink and see if it has the same problem.

The Zilog errata warns against running the Z280 in Z80-bus mode with the cache enabled. Have you come across the bug they describe?
Re: Interested in a Z280 SBC [message #5486 is a reply to message #5485] Mon, 12 November 2018 10:02 Go to previous messageGo to next message
plasmo is currently offline  plasmo
Messages: 916
Registered: March 2017
Location: New Mexico, USA
Senior Member
I am using GENCPM to allocate ALV and have had a problem when I copy very large file (1 meg) without verifying (it hangs, but if copy with verify it works), but that somehow went away in the latest version. I need to figure out how to allocate ALV by hand.

Alan Cox had warned me about Z280 cache problem in Z80-compatible mode. I had ZZ80RC for several months now, porting CP/M2.2, non-banked version of CP/M3, Wordstar, MBASIC, PTx music player, and had not encountered strange behaviors. I think the cache bug is fixed in later mask of Z280. It is getting to be my favorite board now.
Bill

[Updated on: Mon, 12 November 2018 10:06]

Report message to a moderator

Re: Interested in a Z280 SBC [message #5487 is a reply to message #5477] Mon, 12 November 2018 13:48 Go to previous messageGo to next message
hperaza is currently offline  hperaza
Messages: 68
Registered: March 2017
Member
agn453 wrote on Sun, 11 November 2018 21:49
All this has fixed the Banked version that uses just bank 0 and 1 - see below (except for CP/M 3 PIP's verify error). The multi-bank version is still not working though.

I remember running into a similar problem when I was first developing a banked CP/M 3 BIOS for my P112: PIP corrupted files larger than a certain size during copy, and very large programs (e.g. HiTech C compiler) used to crash unexpectedly.

The problem had to do with the fact that in CP/M 3 the TPA extends above the application bank partially into the common area (unlike e.g. MP/M). Since the application bank is normally on bank 1 and the common area on bank 0, that means that the TPA is not contiguous in physical memory.

PIP apparently uses all the available memory as copy buffer, and when copying large files a file sector will land sooner or later within the crossing area between the two banks. Since the Z180 DMA can transfer data between physical addresses only, it could not copy such a sector correctly.

Since your BIOS is using DMA transfers, I suspect you may be running into the same problem.

One solution is to check for that particular case and then do two DMA transfers (the Z280 can chain two DMA channels for that purpose). A simpler (but slower) fix is to do a byte-by-byte copy from one bank to another (the Z280 ldup instruction will become handy here).
Re: Interested in a Z280 SBC [message #5488 is a reply to message #5487] Mon, 12 November 2018 14:14 Go to previous messageGo to next message
agn453 is currently offline  agn453
Messages: 68
Registered: June 2018
Location: Newcastle, NSW, Australia
Member
hperaza wrote on Tue, 13 November 2018 08:48


I remember running into a similar problem when I was first developing a banked CP/M 3 BIOS for my P112: PIP corrupted files larger than a certain size during copy, and very large programs (e.g. HiTech C compiler) used to crash unexpectedly.

The problem had to do with the fact that in CP/M 3 the TPA extends above the application bank partially into the common area (unlike e.g. MP/M). Since the application bank is normally on bank 1 and the common area on bank 0, that means that the TPA is not contiguous in physical memory.

PIP apparently uses all the available memory as copy buffer, and when copying large files a file sector will land sooner or later within the crossing area between the two banks. Since the Z180 DMA can transfer data between physical addresses only, it could not copy such a sector correctly.

Since your BIOS is using DMA transfers, I suspect you may be running into the same problem.

One solution is to check for that particular case and then do two DMA transfers (the Z280 can chain two DMA channels for that purpose). A simpler (but slower) fix is to do a byte-by-byte copy from one bank to another (the Z280 ldup instruction will become handy here).


Hector - you've hit the nail on the head!

This is exactly what is happening to PIP - it tries to write a sector that crosses the common memory fence (in our case the 00E000h address). I'm coding up a quick fix which makes sure the interbank move is done with the TPA bank in-context (MMU move) - and the DMAXFR routine will need to check this too (Note-to-self: Physical memory addresses are not the same as Logical addresses!Wink ...

Tony


--
Tony Nicholson

[Updated on: Mon, 12 November 2018 14:34]

Report message to a moderator

Re: Interested in a Z280 SBC [message #5490 is a reply to message #5487] Mon, 12 November 2018 15:35 Go to previous messageGo to next message
plasmo is currently offline  plasmo
Messages: 916
Registered: March 2017
Location: New Mexico, USA
Senior Member
hperaza wrote on Mon, 12 November 2018 14:48
agn453 wrote on Sun, 11 November 2018 21:49
All this has fixed the Banked version that uses just bank 0 and 1 - see below (except for CP/M 3 PIP's verify error). The multi-bank version is still not working though.

I remember running into a similar problem when I was first developing a banked CP/M 3 BIOS for my P112: PIP corrupted files larger than a certain size during copy, and very large programs (e.g. HiTech C compiler) used to crash unexpectedly.

The problem had to do with the fact that in CP/M 3 the TPA extends above the application bank partially into the common area (unlike e.g. MP/M). Since the application bank is normally on bank 1 and the common area on bank 0, that means that the TPA is not contiguous in physical memory.

PIP apparently uses all the available memory as copy buffer, and when copying large files a file sector will land sooner or later within the crossing area between the two banks. Since the Z180 DMA can transfer data between physical addresses only, it could not copy such a sector correctly.

Since your BIOS is using DMA transfers, I suspect you may be running into the same problem.

One solution is to check for that particular case and then do two DMA transfers (the Z280 can chain two DMA channels for that purpose). A simpler (but slower) fix is to do a byte-by-byte copy from one bank to another (the Z280 ldup instruction will become handy here).

That's a great explanation to why PIP with verify of small files works, but not large files.

I do check the source & destination addresses of xmove to make sure it is not in the common memory. In fact that was the fix that solved the PIP-with-verify error. But do I need to check whether a single xmove call can have address started in banked memory but finished in the common memory?
Bill
Re: Interested in a Z280 SBC [message #5491 is a reply to message #5490] Mon, 12 November 2018 15:51 Go to previous messageGo to next message
agn453 is currently offline  agn453
Messages: 68
Registered: June 2018
Location: Newcastle, NSW, Australia
Member
plasmo wrote on Tue, 13 November 2018 10:35
That's a great explanation to why PIP with verify of small files works, but not large files.

I do check the source & destination addresses of xmove to make sure it is not in the common memory. In fact that was the fix that solved the PIP-with-verify error. But do I need to check whether a single xmove call can have address started in banked memory but finished in the common memory?
Bill


Yes. For RAM disk, you need to check that reads/writes are using a buffer that is in bank 0 - and if it isn't then check if the buffer is straddling the commmon memory fence and take appropriate action to read/write below and above the fence.

Tony


--
Tony Nicholson

[Updated on: Mon, 12 November 2018 15:54]

Report message to a moderator

Re: Interested in a Z280 SBC [message #5492 is a reply to message #5491] Mon, 12 November 2018 22:35 Go to previous messageGo to next message
agn453 is currently offline  agn453
Messages: 68
Registered: June 2018
Location: Newcastle, NSW, Australia
Member
Success!!

My BIOS for the Z280RC now works for Banked memory (and no more CP/M 3 PIP verificaton errors).

Thanks to Hector for the hint about common memory boundary symptoms. I changed the BIOS to use the Z280's memory management to copy data between banks.

A zip file containing a snapshot of the source files is attached - or you can get the latest from https://github.com/agn453/Z280RC as I intend updating things some more (including enhancing the DMAXFR routine to cater for memory bank boundary defect).

Tony

TinyZZ Monitor v0.99 6/9/18


>boot CP/M
1--User Apps,
2--CP/M2.2,
3--CP/M3: 3 press Return to execute command

Boot LDRBIOS

CP/M V3.0 Loader
Copyright (C) 1998, Caldera Inc.

 RESBIOS3 SPR  F700  0900
 BNKBIOS3 SPR  C500  1B00
 RESBDOS3 SPR  F100  0600
 BNKBDOS3 SPR  9700  2E00

 60K TPA

Z280RC Banked BIOS 13-Nov-2018
Built with Cache MOVE-w/MMU Cont.-DMA Alloc-CSV
Drives CompactFlash A:..D: RamDisk M:

C>; C:PROFILE.SUB
C>d:setdef * d: a: c: [order=(com,sub) display page uk]

Drive Search Path:
1st Drive            - Default
2nd Drive            - D:
3rd Drive            - A:
4th Drive            - C:

Search Order         - COM, SUB
Console Page Mode    - On
Program Name Display - On
Date format used     - UK

C>date
D:DATE     COM
Tue 13/11/2018 17:31:44
C>m1:
1M>pip m:=c:*.*[v]
A:PIP      COM  (User 0)

COPYING -
@BIOS280
CRCKLIST.CRC
BANKBIOS.LOG
BANKBIOS.SUB
BANKED.DAT
BANKED1.DAT
BDOS3.SPD
BDOS3.SPR
BIOS3.SPR
BIOS3.SYM
BIOSDBG.REL
BIOSDBG.MAC
BIOSDBG.PRB
BNK1BIOS.LOG
NBNKBIOS.LOG
IDEHD.MAC
BIOSKRNL.MAC
BIOSKRNL.REL
SCB.REL
LDRBIOS.LOG
SCB.PRN
BIOSKRNL.PRB
BIOSKRNL.PRN
IDEHD.PRN
IDEHD.REL
BNKBDOS3.SPD
BNKBDOS3.SPR
BNKBDOS3.SPZ
BNKBIOS3.SPR
BNKBIOS3.SYM
BUILDALL.SUB
CHARIO.REL
CHARIO.MAC
CHARIO.PRB
RAMDISK.PRN
CLOCK.REL
CLOCK.MAC
RAMDISK.REL
CLOCK.PRB
CLOCK.PRN
CHARIO.PRN
BIOSDBG.PRN
CPMLDR3.REL
CPM3ADD2.COM
CPM3ADD2.MAC
GENCPM.DAT
TEST.COM
CPM3M80.LIB
SCB.PRB
CPMLDR3.COM
CPMLDR3.MAC
CRCK.COM
Z280RCIO.LIB
DRI-CPM3.SUB
GENCPM.COM
IDEHD.PRB
RAMDISK.PRB
CONFBANK.LIB
LDRBIOS.SUB
MODEBAUD.LIB
NBNKBIOS.SUB
NONBANK.DAT
OUTJMPE.COM
OUTJMPE.PAS
RAMDISK.MAC
CONFNBNK.LIB
RESBDOS3.SPR
BNK1BIOS.SUB
CPM3NBNK.SYS
CONFIG.LIB
CPM3BANK.SYS
CPM3BNK1.SYS
CONFBNK1.LIB
CONFLDR.LIB
RESBDOS3.SPD
RESBDOS3.SPZ
SCB.MAC
USE-ZPM3.SUB
Z280DBG.COM
Z280DBG.MAC

1M>sd
A:SD       COM  (User 0)


         Drive M1:  files: 80  space used: 1332k  (188k free)
@BIOS280.      4k | BNKBDOS3.SPR  16k | CPM3BANK.SYS  24k | NBNKBIOS.SUB   4k
BANKBIOS.LOG   8k | BNKBDOS3.SPZ  16k | CPM3BNK1.SYS  24k | NONBANK .DAT   4k
BANKBIOS.SUB   4k | BNKBIOS3.SPR  12k | CPM3M80 .LIB   8k | OUTJMPE .COM  12k
BANKED  .DAT   4k | BNKBIOS3.SYM   4k | CPM3NBNK.SYS  12k | OUTJMPE .PAS   8k
BANKED1 .DAT   4k | BUILDALL.SUB   4k | CPMLDR3 .COM   8k | RAMDISK .MAC  12k
BDOS3   .SPD  12k | CHARIO  .MAC   4k | CPMLDR3 .MAC  40k | RAMDISK .PRB  28k
BDOS3   .SPR  12k | CHARIO  .PRB  16k | CPMLDR3 .REL   4k | RAMDISK .PRN  28k
BIOS3   .SPR   4k | CHARIO  .PRN  16k | CRCK    .COM   4k | RAMDISK .REL   4k
BIOS3   .SYM   4k | CHARIO  .REL   4k | CRCKLIST.CRC   4k | RESBDOS3.SPD   4k
BIOSDBG .MAC  16k | CLOCK   .MAC  12k | DRI-CPM3.SUB   4k | RESBDOS3.SPR   4k
BIOSDBG .PRB  48k | CLOCK   .PRB  36k | GENCPM  .COM  24k | RESBDOS3.SPZ   4k
BIOSDBG .PRN  48k | CLOCK   .PRN  36k | GENCPM  .DAT   4k | SCB     .MAC   4k
BIOSDBG .REL   4k | CLOCK   .REL   4k | IDEHD   .MAC  24k | SCB     .PRB   8k
BIOSKRNL.MAC  60k | CONFBANK.LIB   8k | IDEHD   .PRB  60k | SCB     .PRN   8k
BIOSKRNL.PRB 164k | CONFBNK1.LIB   8k | IDEHD   .PRN  64k | SCB     .REL   4k
BIOSKRNL.PRN 160k | CONFIG  .LIB   8k | IDEHD   .REL   4k | TEST    .COM   8k
BIOSKRNL.REL   4k | CONFLDR .LIB   8k | LDRBIOS .LOG   8k | USE-ZPM3.SUB   4k
BNK1BIOS.LOG   8k | CONFNBNK.LIB   8k | LDRBIOS .SUB   4k | Z280DBG .COM   4k
BNK1BIOS.SUB   4k | CPM3ADD2.COM   4k | MODEBAUD.LIB   4k | Z280DBG .MAC   4k
BNKBDOS3.SPD  16k | CPM3ADD2.MAC  20k | NBNKBIOS.LOG   8k | Z280RCIO.LIB   8k

1M>

  • Attachment: bios280.zip
    (Size: 186.91KB, Downloaded 437 times)


--
Tony Nicholson

[Updated on: Thu, 15 November 2018 14:49]

Report message to a moderator

Re: Interested in a Z280 SBC [message #5493 is a reply to message #5492] Tue, 13 November 2018 06:42 Go to previous messageGo to next message
plasmo is currently offline  plasmo
Messages: 916
Registered: March 2017
Location: New Mexico, USA
Senior Member
Tony,
Congratulation! Very cool, I'll download it and try it out on my hardware.
Bill
Re: Interested in a Z280 SBC [message #5494 is a reply to message #5493] Tue, 13 November 2018 08:23 Go to previous messageGo to next message
plasmo is currently offline  plasmo
Messages: 916
Registered: March 2017
Location: New Mexico, USA
Senior Member
Tony,
It seems to work well except xmodem is not working. It will start up and waiting for data but will not start data transfer. The hardware will hang, some of the time (ctrl C does not get hardware's attention). Otherwise it runs MBASIC80 (StarTrek works!Wink and Zork. I even commented out OUTJMP and reassembled it and it works the same.
Bill
Re: Interested in a Z280 SBC [message #5496 is a reply to message #5494] Tue, 13 November 2018 13:52 Go to previous messageGo to next message
b1ackmai1er is currently offline  b1ackmai1er
Messages: 396
Registered: November 2017
Senior Member
With xmodem, try forcing checksum i.e.

XM RC file.com

Regards Phil
Re: Interested in a Z280 SBC [message #5497 is a reply to message #5496] Tue, 13 November 2018 14:45 Go to previous messageGo to next message
hperaza is currently offline  hperaza
Messages: 68
Registered: March 2017
Member
Tony, just installed your banked BIOS on my Z280RC and so far is working perfectly!

The XMODEM problem is again the serial port speed, which was already on the edge. Very likely the new conin BIOS routine has an extra overhead which causes the next character to be missed. If the serial speed is lowered, or if the sending application on the PC side adds a small per-character delay, then the transfer will succeed.
Re: Interested in a Z280 SBC [message #5498 is a reply to message #5494] Tue, 13 November 2018 15:13 Go to previous messageGo to next message
agn453 is currently offline  agn453
Messages: 68
Registered: June 2018
Location: Newcastle, NSW, Australia
Member
plasmo wrote on Wed, 14 November 2018 03:23
Tony,
It seems to work well except xmodem is not working. It will start up and waiting for data but will not start data transfer. The hardware will hang, some of the time (ctrl C does not get hardware's attention). Otherwise it runs MBASIC80 (StarTrek works!Wink and Zork. I even commented out OUTJMP and reassembled it and it works the same.
Bill


Bill,

You may remember our private e-mail discussion back in early July - shortly after I received the Z280RC board from you.

At that time I was having difficulties receiving files using the XMODEM 2.7 you supplied on the system image. At the time I was using a Raspberry Pi with minicom (and I even tried Kermit too with the rz/sz programs installed). Sending files was not a problem. I suspected a timing issue and the fact that there was no-flow control on the 115200bps console port - possibly causing data-overruns on receive.

To work around this I had to use Tera Term 4.99 running under Windows 10 (presumably since the USB drivers in Windows better handle the USB console adapter) and boot the Z280RC into CP/M 2.2 to receive files with XMODEM successfully. The timing in XMODEM when it receives a data packet (128 bytes encapsulated in an xmodem header and checksum/crc at full speed) is time critical. The simple polling used by the CP/M 2.2 BIOS for console input and output can handle this. My experience with your orginal Non-banked CP/M 3 CBIOS3 was just too erratic - sometimes it would work, othertimes it would not.

My new BIOS has more code in the Console routines - and this probably pushes out the timing issues further.

I have the source-code for XMODEM 2.7 and intend trying to manually configure it to write directly to the Z280's UART I/O ports. This will be an interim solution though - since once I get an interrupt system working there will be additional overheads which mean XMODEM cannot touch the console UART ports.

I think the only way to fix this properly is to add a separate UART (like a Z80 SIO which has a fifo and modem control lines) for file transfer. I'm going to breadboard one up - however, interrupts under mode 3 on the Z280 will likely raise more issues (Z280 doesn't recognise the Z80 IM 2 style return from interrupt op-code - which looks at the bus M1 signal and the RETI instruction opcodes on the bus).

Tony


--
Tony Nicholson
Re: Interested in a Z280 SBC [message #5499 is a reply to message #5497] Tue, 13 November 2018 15:34 Go to previous messageGo to next message
agn453 is currently offline  agn453
Messages: 68
Registered: June 2018
Location: Newcastle, NSW, Australia
Member
hperaza wrote on Wed, 14 November 2018 09:45
Tony, just installed your banked BIOS on my Z280RC and so far is working perfectly!

The XMODEM problem is again the serial port speed, which was already on the edge. Very likely the new conin BIOS routine has an extra overhead which causes the next character to be missed. If the serial speed is lowered, or if the sending application on the PC side adds a small per-character delay, then the transfer will succeed.


That's great Hector - and I agree the XMODEM issues are related to the port speed and time critical issues with console I/O in the BIOSKRNL and CHARIO bios routines.

On another matter - last night I was trying to compile the source-code for Simeon Cran's ZPM3 BDOS with your ZSM4 beta 10. It throws up some M and D errors (long symbol names) that M80 doesn't. Perhaps you'd like to take a look at it. Probably it's too much work to make ZSM4 handle longer symbols - but you'd know best!

(The attached zpm3s.arc is from the Tesseract RCPM+ Volume 93)

Tony
  • Attachment: zpm3s.arc
    (Size: 243.50KB, Downloaded 371 times)


--
Tony Nicholson

[Updated on: Tue, 13 November 2018 15:50]

Report message to a moderator

Re: Interested in a Z280 SBC [message #5500 is a reply to message #5494] Tue, 13 November 2018 15:49 Go to previous messageGo to next message
agn453 is currently offline  agn453
Messages: 68
Registered: June 2018
Location: Newcastle, NSW, Australia
Member
plasmo wrote on Wed, 14 November 2018 03:23
..snip..
The hardware will hang, some of the time (ctrl C does not get hardware's attention).
..snip.
Bill


Bill,

I meant to comment on this too.. CTRL-C won't get XMODEM's attention when using the BIOS CON: port for file transfer. If it is in the middle of receiving a packet then the only easy way out is to hit RESET. (The data transfer might have an 03h byte in the data it transfers via the console UART - so it can't see your CTRL-C until the protocol gets to a "start-of-packet" state).

Tony


--
Tony Nicholson

[Updated on: Tue, 13 November 2018 16:22]

Report message to a moderator

Re: Interested in a Z280 SBC [message #5501 is a reply to message #5500] Tue, 13 November 2018 19:14 Go to previous messageGo to next message
plasmo is currently offline  plasmo
Messages: 916
Registered: March 2017
Location: New Mexico, USA
Senior Member
Tony,
I simplified your conin routine to check out the timing issue associated with XMODEM.

conin:
; console char into reg A
	in a,(RxStat)	;;; read on-chip UART receiver status
	and 10h		; data available?
	jp z,conin
	in a,(RxData)	; get it in Reg A
	ret


XMODEM works with the simplified console input (this is the same routine in my CPM2.2) and I have experimentally verified that I can insert up to 15 NOP and it still works, but failed with 20 NOPs. That's not very much time to do anything significant in the conin routine.

This is useful because it checks out your CP/M3 implementation is good, that XMODEM failed only because of the console input delay, not because of other potential CP/M3 bugs.

Hector had raised a couple issues with the Z280RC and they are actually interconnected. The CF byteswap issue due to hardware design error can be fixed with software with about 5% performance penalty. The lack of hardware handshakes for console I/O is more difficult to fix and I have not spent much time on it. XMODEM is a critical capability so if XMODEM won't work because of more complex console I/O and lack of hardware handshake, then CF byte swap need to be fixed so files can be transferred from PC to Z280RC. It may be a good time to fix the CF byte order in CP/M3.
Bill

[Updated on: Tue, 13 November 2018 19:14]

Report message to a moderator

Re: Interested in a Z280 SBC [message #5502 is a reply to message #1189] Tue, 13 November 2018 21:45 Go to previous messageGo to next message
geowar1 is currently offline  geowar1
Messages: 41
Registered: October 2018
Member
Adding the /z1 flag has always solved my xmodem issues on the z280rc.
IIRC that makes xmodem think you're running on a 1 MHz Z80 and slows down some delay loops that are otherwise too fast on the Z280.

Re: Interested in a Z280 SBC [message #5503 is a reply to message #5499] Tue, 13 November 2018 21:46 Go to previous messageGo to next message
geowar1 is currently offline  geowar1
Messages: 41
Registered: October 2018
Member
You can add /s8 to force zsm4 to support 8 character symbol names.
Re: Interested in a Z280 SBC [message #5504 is a reply to message #5501] Wed, 14 November 2018 02:21 Go to previous messageGo to next message
agn453 is currently offline  agn453
Messages: 68
Registered: June 2018
Location: Newcastle, NSW, Australia
Member
plasmo wrote on Wed, 14 November 2018 14:14
Tony,
I simplified your conin routine to check out the timing issue associated with XMODEM.

conin:
; console char into reg A
	in a,(RxStat)	;;; read on-chip UART receiver status
	and 10h		; data available?
	jp z,conin
	in a,(RxData)	; get it in Reg A
	ret


XMODEM works with the simplified console input (this is the same routine in my CPM2.2) and I have experimentally verified that I can insert up to 15 NOP and it still works, but failed with 20 NOPs. That's not very much time to do anything significant in the conin routine.

This is useful because it checks out your CP/M3 implementation is good, that XMODEM failed only because of the console input delay, not because of other potential CP/M3 bugs.

..snip..


I've modified the XMODEM 2.7 source to include Z280 UART character I/O routines internally.

Attached in a ZIP file containing the modified source code XM27Z280.MAC, a configuration file XMZ280RC.CFG with default configuration switches for the Z280RC, a submit file to build it from source using Hector's ZSM4 and pre-built binary XMZ280.COM).

To use it you can copy the XMZ280.COM to XM.COM (or XMODEM.COM) onto a drive in your search-path and place the XMZ280RC.CFG file in your current directory; then -

XM filename,ext /S      will send a file from the Z280RC system,

or

XM filename.ext /R      will receive a file to the Z280RC system.


If you don't have XMZ280RC.CFG in the current directory, you should add the command line switch /X3 to select the built-in I/O routines and /Z9 to set timeouts appropriately for the CPU speed -

e.g.

XM filename.ext /S/X3/Z9



Enjoy!

Tony
  • Attachment: xm27z280.zip
    (Size: 30.82KB, Downloaded 304 times)


--
Tony Nicholson
Re: Interested in a Z280 SBC [message #5505 is a reply to message #5497] Wed, 14 November 2018 06:47 Go to previous messageGo to next message
etchedpixels is currently offline  etchedpixels
Messages: 333
Registered: October 2015
Senior Member
The Z280 UART is designed to be driven via a DMA channel. So you don't need to breadboard up a new UART so much as fix up the CP/M BIOS to use the DMA functionality at least on receive.

Alan
Re: Interested in a Z280 SBC [message #5506 is a reply to message #5505] Wed, 14 November 2018 08:18 Go to previous messageGo to next message
hperaza is currently offline  hperaza
Messages: 68
Registered: March 2017
Member
etchedpixels wrote on Wed, 14 November 2018 06:47
The Z280 UART is designed to be driven via a DMA channel. So you don't need to breadboard up a new UART so much as fix up the CP/M BIOS to use the DMA functionality at least on receive.

Not enough. With the BIOS overhead, fetching a char from the DMA buffer will take nearly as many CPU cycles as fetching it from an I/O port. Thus, when receiving a large block of data the buffer can overflow anyway before XMODEM has time to collect all bytes.

Yes, one can optimize the DMA buffer size for XMODEM's particular case, but sooner or later you'll come across an application that needs that additional byte...
Re: Interested in a Z280 SBC [message #5507 is a reply to message #5506] Wed, 14 November 2018 08:35 Go to previous messageGo to next message
plasmo is currently offline  plasmo
Messages: 916
Registered: March 2017
Location: New Mexico, USA
Senior Member
Tony,
Thank you! XM27Z280 works great on your CP/M3. XMODEM is my most used tool, I wouldn't know what to do if it doesn't work. Just as importantly, I read your comments about using XIZ, wow, what a time saver!
Bill

Re: Interested in a Z280 SBC [message #5508 is a reply to message #5499] Wed, 14 November 2018 08:37 Go to previous messageGo to next message
hperaza is currently offline  hperaza
Messages: 68
Registered: March 2017
Member
agn453 wrote on Tue, 13 November 2018 15:34
On another matter - last night I was trying to compile the source-code for Simeon Cran's ZPM3 BDOS with your ZSM4 beta 10. It throws up some M and D errors (long symbol names) that M80 doesn't. Perhaps you'd like to take a look at it. Probably it's too much work to make ZSM4 handle longer symbols - but you'd know best!

I see what you mean. Internally, ZSM4 has a limit of 12 characters for the identifier length even when the REL format has capacity for only up to 8 chars. That allows using better names for local labels, but the ZPM3 disassembly pushed that limit!

I just uploaded a new version (beta 11) that increases the max identifier length to 15 chars, and that's the maximum it can handle without changing the symbol table structure. It appears to assemble the ZPM3 BDOS correctly now.
Re: Interested in a Z280 SBC [message #5509 is a reply to message #5506] Wed, 14 November 2018 09:47 Go to previous messageGo to next message
etchedpixels is currently offline  etchedpixels
Messages: 333
Registered: October 2015
Senior Member
hperaza wrote on Wed, 14 November 2018 08:18
etchedpixels wrote on Wed, 14 November 2018 06:47
The Z280 UART is designed to be driven via a DMA channel. So you don't need to breadboard up a new UART so much as fix up the CP/M BIOS to use the DMA functionality at least on receive.

Not enough. With the BIOS overhead, fetching a char from the DMA buffer will take nearly as many CPU cycles as fetching it from an I/O port. Thus, when receiving a large block of data the buffer can overflow anyway before XMODEM has time to collect all bytes.

Yes, one can optimize the DMA buffer size for XMODEM's particular case, but sooner or later you'll come across an application that needs that additional byte...


No - on two counts

1. The protocol has internal flow control so the time you take to fetch the bytes is irrelevant to reliability providing they are buffered
2. The buffer size merely has to exceed the worst case window size of the protocol permitted to the sender it does not have to be 'tuned to the protocol'

Don't let me stop you wire wrapping yourself a UART but your worst case for a command to the CF card is 7 seconds so don't forget that detail either because even at 9600 baud thats 7000 characters of buffering so you might need to try 110 baud to be safe ;-)

In the real world however the protocols (X/Y/Z and everyone else) are all flow controlled so if your DMA buffer is 4K there isn't anything that's going to overflow (and btw as your link is direct and low latency the performance difference between Xmodem and the later ones is minimal so the extra buffering isn't even useful). The absolute worst case scenario would be ZModem with windowing doing a disk write to your CF card that caused the CF card to have to erase blocks and do compaction. In that case you'll end up with the sender data all in your DMA buffer and the sender waiting for you without any losses. You might not get 100% wire performance but you will get your data.

This is the same reason you can do 100Mbit ethernet with an 8bit microcontroller - providing you have at least a flow control window of reliable buffer it just works.

Alan

[Updated on: Wed, 14 November 2018 09:49]

Report message to a moderator

Re: Interested in a Z280 SBC [message #5510 is a reply to message #5509] Wed, 14 November 2018 10:01 Go to previous messageGo to next message
hperaza is currently offline  hperaza
Messages: 68
Registered: March 2017
Member
Alan, my point is that not everything is X/Y/Z modem. And that DMA alone is a brute-force approach, and as such there are many situations where it will simply fail. If you want things to work reliably at whatever speed over a RS232 link, then you need hardware handshake lines.
Re: Interested in a Z280 SBC [message #5511 is a reply to message #5510] Wed, 14 November 2018 10:17 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'll tackle the UART Receive DMA issue...

I also like to point out that while 115200 is hardwired in UART bootstrap mode (it is even hardwired to Odd parity), once software has the control, it can change the baud clock divider to different values such as 57600/28800, or even use the internal counter to generate wide range of serial clock and change parity to None if so desired. I leave the serial port at the hardwired 115200 Odd parity to save me the trouble of changing serial port setting between bootstrap Z280RC with a new CF disk and the normal operation. Most users seldom initialize new CF disk so different serial port setting setting at different modes of operation is not an issue.
Bill
Re: Interested in a Z280 SBC [message #5512 is a reply to message #5510] Wed, 14 November 2018 11:03 Go to previous messageGo to next message
etchedpixels is currently offline  etchedpixels
Messages: 333
Registered: October 2015
Senior Member
hperaza wrote on Wed, 14 November 2018 10:01
Alan, my point is that not everything is X/Y/Z modem. And that DMA alone is a brute-force approach, and as such there are many situations where it will simply fail. If you want things to work reliably at whatever speed over a RS232 link, then you need hardware handshake lines.


I'm at this point just going to politely disagree with you and point out the internet doesn't use hardware flow control either.

Alan


Re: Interested in a Z280 SBC [message #5513 is a reply to message #5512] Wed, 14 November 2018 11:34 Go to previous messageGo to next message
hperaza is currently offline  hperaza
Messages: 68
Registered: March 2017
Member
etchedpixels wrote on Wed, 14 November 2018 11:03
hperaza wrote on Wed, 14 November 2018 10:01
Alan, my point is that not everything is X/Y/Z modem. And that DMA alone is a brute-force approach, and as such there are many situations where it will simply fail. If you want things to work reliably at whatever speed over a RS232 link, then you need hardware handshake lines.


I'm at this point just going to politely disagree with you and point out the internet doesn't use hardware flow control either.

Internet is not RS232. Internet is not everything either, it is not even a reliable communication channel for certain applications.
Re: Interested in a Z280 SBC [message #5514 is a reply to message #5508] Wed, 14 November 2018 11:49 Go to previous messageGo to next message
agn453 is currently offline  agn453
Messages: 68
Registered: June 2018
Location: Newcastle, NSW, Australia
Member
hperaza wrote on Thu, 15 November 2018 03:37
I just uploaded a new version (beta 11) that increases the max identifier length to 15 chars, and that's the maximum it can handle without changing the symbol table structure. It appears to assemble the ZPM3 BDOS correctly now.


Thank you for such a speedy response Hector. I'll grab the latest ZSM4 and give it a whirl soon!

Tony


--
Tony Nicholson
Re: Interested in a Z280 SBC [message #5515 is a reply to message #5507] Wed, 14 November 2018 12:01 Go to previous messageGo to next message
agn453 is currently offline  agn453
Messages: 68
Registered: June 2018
Location: Newcastle, NSW, Australia
Member
plasmo wrote on Thu, 15 November 2018 03:35
Tony,
Thank you! XM27Z280 works great on your CP/M3. XMODEM is my most used tool, I wouldn't know what to do if it doesn't work. Just as importantly, I read your comments about using XIZ, wow, what a time saver!
Bill



The XIZ that Bill and I refer to is my favourite assembly language source code translator. It converts assembly language source files to/from 8080-style (but not all TDL/XITAN) to Zilog Z80 (suitable for M80, SLR Z80ASM, ZSM4 etc. Wink It does a fairly good job - but the output sometimes needs to be fixed (especially op-codes starting in column 1) and some confusion with macros that produce Z80 code (e.g. JRNZ <-> JR NZ, Wink The version I use is from a long time ago (circa April 1986) - attached is a ZIP.

If anyone has a later version (or the source-code) I'd love to modify it to output lowercase op-codes and save me from post-processing with a little TurboPascal I wrote to do this.

Tony
  • Attachment: xiz.zip
    (Size: 11.42KB, Downloaded 292 times)


--
Tony Nicholson

[Updated on: Wed, 14 November 2018 12:04]

Report message to a moderator

Re: Interested in a Z280 SBC [message #5516 is a reply to message #5501] Wed, 14 November 2018 12:26 Go to previous messageGo to next message
agn453 is currently offline  agn453
Messages: 68
Registered: June 2018
Location: Newcastle, NSW, Australia
Member
plasmo wrote on Wed, 14 November 2018 14:14

Hector had raised a couple issues with the Z280RC and they are actually interconnected. The CF byteswap issue due to hardware design error can be fixed with software with about 5% performance penalty.


Bill,

Have you considered a Rev 2 Z280RC board that fixes the CF 16-bit access mode byte-swap? That way the software doesn't need to change and the CompactFlash will be compatible with other systems using a similar format.

Also, I've hit the 512 directory entries limit on the CompactFlash 8MB drives a few times (particularly with timestamps enabled). I'm considering increasing it to 1024 for the optional drives E:..H: that can be configured in my BIOS.

Tony


--
Tony Nicholson
Re: Interested in a Z280 SBC [message #5517 is a reply to message #5516] Wed, 14 November 2018 17:40 Go to previous messageGo to next message
plasmo is currently offline  plasmo
Messages: 916
Registered: March 2017
Location: New Mexico, USA
Senior Member
Tony,
I have not thought too much about rev 2 of Z280RC. I like to have reasonable solutions for the existing concerns such as UART receive DMA as well as the inability to handle Mode 2 interrupt acknowledge. A forum member, I forgot whom, pointed out Tilmann Reh's solution which I thought was very clever and at the same time fix the problem of DS1302 RTC not being accurate.

I do have a software byteswap fix that I can post on my GitHub page as an alternative for people wanting to transfer files via moving the physical CF card between PC and Z280RC. I did a disk copy benchmark and which measured 39 seconds instead of 37 seconds without software byte swap--about 5% degradation which is smaller than speed variations among different brand of CF disks. It is a simple algorithm, but affect ZZMon and CP/M and all existing data. Another word, the CF disk needs to be initialized and loaded with new set of software and files.

My original directory setting and number and size of drives were arbitrary, which is rather frightening because I have had no prior CP/M experience! With CP/M3 it is a good time to change the directory entries and number of disk drives. My smallest CF disk is 64Meg, so we can have eight 8-meg drives and more directory entries. How do you initialize each drive?
Bill
Re: Interested in a Z280 SBC [message #5518 is a reply to message #5517] Wed, 14 November 2018 19:41 Go to previous messageGo to next message
agn453 is currently offline  agn453
Messages: 68
Registered: June 2018
Location: Newcastle, NSW, Australia
Member
plasmo wrote on Thu, 15 November 2018 12:40
Tony,
I have not thought too much about rev 2 of Z280RC. I like to have reasonable solutions for the existing concerns such as UART receive DMA as well as the inability to handle Mode 2 interrupt acknowledge. A forum member, I forgot whom, pointed out Tilmann Reh's solution which I thought was very clever and at the same time fix the problem of DS1302 RTC not being accurate.


Bill, I think I read somewhere that you can signal RETI by reading or writing to one of the Z80 device status registers. I'll have to dig out my old Zilog datasheets and take a look.

Quote:

I do have a software byteswap fix that I can post on my GitHub page as an alternative for people wanting to transfer files via moving the physical CF card between PC and Z280RC. I did a disk copy benchmark and which measured 39 seconds instead of 37 seconds without software byte swap--about 5% degradation which is smaller than speed variations among different brand of CF disks. It is a simple algorithm, but affect ZZMon and CP/M and all existing data. Another word, the CF disk needs to be initialized and loaded with new set of software and files.


That doesn't sound too nice. Up until now, I have made only image copies (using dd on Linux as a backup strategy) and loaded all my files to the Z280RC's drives using XMODEM (or PIP using its paper-tape era options to get Intel hex files across e.g. PIP filename.hex=CON:[HAZ] and raw-uploading .HEX files).

Quote:

My original directory setting and number and size of drives were arbitrary, which is rather frightening because I have had no prior CP/M experience! With CP/M3 it is a good time to change the directory entries and number of disk drives. My smallest CF disk is 64Meg, so we can have eight 8-meg drives and more directory entries. How do you initialize each drive?
Bill


I think it would be prudent to stick with the 512 directory entries for A: (at least). It's a common CP/M format used by many other systems with CompactFlash (e.g. other RC2014 systems).

I use disk utility (DU v8.8 Wink You should be able to find DU88 (or DU90) on one of the CP/M public domain/shareware sites. If not I can upload it.

Just a moment ago I enabled the four extra drives with 1024 directory entries on my system. Here's the log of me "formatting" a drive -

CP/M V3.0 Loader
Copyright (C) 1998, Caldera Inc.

 RESBIOS3 SPR  F700  0900
 BNKBIOS3 SPR  BD00  2300
 RESBDOS3 SPR  F100  0600
 BNKBDOS3 SPR  8F00  2E00

 60K TPA

Z280RC Banked BIOS 15-Nov-2018
Built with Cache MOVE-w/MMU BigDirE-H Cont.-DMA Alloc-CSV
Drives CompactFlash A:..H: RamDisk M:

..snip..

C>show e:[dr
D:SHOW     COM

        E: Drive Characteristics
   64,512: 128 Byte Record Capacity
    8,064: Kilobyte Drive  Capacity
    1,024: 32 Byte  Directory Entries
        0: Checked  Directory Entries
      256: Records / Directory Entry
       32: Records / Block
    1,024: Records / Track
      256: Reserved  Tracks
      512: Bytes / Physical Record


C>du
A:DU       COM

DISK UTILITY v8.8
Universal Version under CP/M 3.1

Type ? for help
Type X to exit

:le					<- Login drive E

:g0					<- Read Group 0
G=0000:00, T=256, S=1, PS=0

:ch0-7f,e5;w;+;/256			<- Change whole sector to E5, Write,
						 Next Sector, Repeat 256 times

0000000000000000F10000000B07FEFFFEFFFFFF00000000000000000000000000020100000B09FE
FFFEFFFFFF00000000000000000000000000130100000B0BFEFFFEFFFFFF00000000000000000000
000000240100000B0DFEFFFEFFFFFF000004051F01BF07FF01F0000000010002030004051F01DF07
FF01F00000004000G=0000:01, T=256, S=2, PS=0
02030004051F01DF07FF01F0000000800002030004051F01DF07FF01F0000000C00002030004051F
017F03FF01F00000000001020363007C009500AE00C7000000000000000000000000000000000000
0000000000310001CD08043EE2D3103E80D312D314AF320300320400213F04CD1E04310001210300
2201002A62FE2206G=0000:02, T=256, S=3, PS=0
003EC33200003205000624215C00CDBF03215C00360123119A04010B00CD6502115C000E0FCD0500
3CCAD201110001D50E1ACD0500115C000E14CD0500B7D1C2CA0121800019EBC3AF01FE01C2DB01C3
000121A504CD1E04C3010221C104CD1E04C301020E09CD05000E01CD0500C372010E34C3F8010E39
CD1502213504CD1EG=0000:03, T=256, S=4, PS=0
0418FEDB14E610C83EFFC9DB14E610CA0B02DB16C9DB12E601CA150279D318C93EFFC9AFC9210000
79FE05D032E404216300FE00C8217C00FE01C8219500FE02C821AE00FE03C821C700C9010000ED43
E504C9ED43E704C96069C9696022E904C9213501C9EBEDB0EBC93AE404FE04CAAE02E5C5CD13043E
40D3CD3AE704D3C7G=0000:04, T=256, S=5, PS=1

..snip..

:g0
G=0000:00, T=256, S=1, PS=0

:d
00  E5E5E5E5 E5E5E5E5  E5E5E5E5 E5E5E5E5  *eeeeeeeeeeeeeeee*
10  E5E5E5E5 E5E5E5E5  E5E5E5E5 E5E5E5E5  *eeeeeeeeeeeeeeee*
20  E5E5E5E5 E5E5E5E5  E5E5E5E5 E5E5E5E5  *eeeeeeeeeeeeeeee*
30  E5E5E5E5 E5E5E5E5  E5E5E5E5 E5E5E5E5  *eeeeeeeeeeeeeeee*
40  E5E5E5E5 E5E5E5E5  E5E5E5E5 E5E5E5E5  *eeeeeeeeeeeeeeee*
50  E5E5E5E5 E5E5E5E5  E5E5E5E5 E5E5E5E5  *eeeeeeeeeeeeeeee*
60  E5E5E5E5 E5E5E5E5  E5E5E5E5 E5E5E5E5  *eeeeeeeeeeeeeeee*
70  E5E5E5E5 E5E5E5E5  E5E5E5E5 E5E5E5E5  *eeeeeeeeeeeeeeee*

:x

C>initdir e:
A:INITDIR  COM


INITDIR WILL ACTIVATE TIME STAMPS FOR SPECIFIED DRIVE.
Do you want to re-format the directory on drive: E  (Y/N)?  y

C>set e: [name=ide0.p04,create=on,update=on
D:SET      COM

Label for drive E:

Directory       Passwds  Stamp    Stamp    Stamp
Label           Reqd     Create   Access   Update
--------------  -------  -------  -------  -------
E:IDE0    .P04    off      on       off      on


C>show e:[dr,lab
D:SHOW     COM

Label for drive E:

Directory     Passwds  Stamp   Stamp
Label         Reqd     Create  Update  Label Created   Label Updated
------------  -------  ------  ------  --------------  --------------
IDE0    .P04    off     on      on     15/11/18 14:20  15/11/18 14:20

        E: Drive Characteristics
   64,512: 128 Byte Record Capacity
    8,064: Kilobyte Drive  Capacity
    1,024: 32 Byte  Directory Entries
        0: Checked  Directory Entries
      256: Records / Directory Entry
       32: Records / Block
    1,024: Records / Track
      256: Reserved  Tracks
      512: Bytes / Physical Record


C>


Tony


--
Tony Nicholson

[Updated on: Wed, 14 November 2018 19:57]

Report message to a moderator

Re: Interested in a Z280 SBC [message #5519 is a reply to message #5516] Thu, 15 November 2018 04:27 Go to previous messageGo to next message
hperaza is currently offline  hperaza
Messages: 68
Registered: March 2017
Member
agn453 wrote on Wed, 14 November 2018 12:26
Also, I've hit the 512 directory entries limit on the CompactFlash 8MB drives a few times (particularly with timestamps enabled). I'm considering increasing it to 1024 for the optional drives E:..H: that can be configured in my BIOS.

I'd go directly for 4096 directory entries - once you start copying files, assembling and/or compiling applications you will hit the 1024-entry limit very quickly (at least that was my experience with a 10MB GIDE partition on the P112). Remember that in CP/M # of dir entries <> max # of files, as large files (e.g. assembly listings) take several directory entries. Also, in CP/M 3 1/4 of the entries are used by the timestamps (when enabled).
Re: Interested in a Z280 SBC [message #5520 is a reply to message #5519] Thu, 15 November 2018 10:07 Go to previous messageGo to next message
geowar1 is currently offline  geowar1
Messages: 41
Registered: October 2018
Member
The limit I hit is the one in my brain... More than 512 files in one directory is more than I can mentally keep track of... especially when file names are limited to the 8.3 and no mixed case. I find user areas less that useful (even with any/all of the z80 dos extensions) because there's always something I need that's I can't access from the user area where I'm working.
Re: 8080 to Z80 translation [message #5522 is a reply to message #5515] Thu, 15 November 2018 11:19 Go to previous messageGo to next message
geowar1 is currently offline  geowar1
Messages: 41
Registered: October 2018
Member
There are two here: http://www.hytherion.com/beattidp/comput/z80cpm.htm
One is an awk script that you can run anywhere... you can run awk scripts... [duh!] ;-)
The other (<ZTRANS.COM>) is (CP/M Z80) native app.

I'd be interested in how they compare with the one that you're using... I suspect they have the same issues; I find I have to double check all / manually switch "M" to '(HL)' sometimes... and re-do any 8080/Z80 macros "JRNZ", etc.

I've been tempted to disassemble ZTRANS.COM to make it output lower case... but I've been xmodem'ng up to host (macOS) and then using bbedit to convert to lower case and then xmodem'ng back down to the target (z280rc) machine.

Re: 8080 to Z80 translation [message #5523 is a reply to message #5522] Thu, 15 November 2018 11:29 Go to previous messageGo to next message
lowen is currently offline  lowen
Messages: 226
Registered: August 2016
Location: Western NC USA
Senior Member
geowar1 wrote on Thu, 15 November 2018 14:19
...
I've been tempted to disassemble ZTRANS.COM to make it output lower case... but I've been xmodem'ng up to host (macOS) and then using bbedit to convert to lower case and then xmodem'ng back down to the target (z280rc) machine.



I have to admit that I for one have difficulty reading lowercase assembler code; I write and wrote in all upper case for assembler for so long that lowercase assembler just feels Wrong. Smile


--
Bughlt: Sckmud
Shut her down Scotty, she's sucking mud again!
Re: 8080 to Z80 translation [message #5524 is a reply to message #5523] Thu, 15 November 2018 11:50 Go to previous messageGo to next message
snhirsch_gmail.com is currently offline  snhirsch_gmail.com
Messages: 63
Registered: May 2017
Member
Here's the sources for an Intel to Zilog translator in C. I hacked it a bit to get it working on Linux.
Re: Interested in a Z280 SBC [message #5525 is a reply to message #5520] Thu, 15 November 2018 12:40 Go to previous messageGo to next message
etchedpixels is currently offline  etchedpixels
Messages: 333
Registered: October 2015
Senior Member
With CP/M 3 as with MP/M you can mark files as system files in which case they can be run/read regardless of user area and you can list them with DIRS rather than DIR

It's one of the little things that makes CP/M 3 so much more pleasant to use.
Re: Interested in a Z280 SBC [message #5526 is a reply to message #5519] Thu, 15 November 2018 13:45 Go to previous messageGo to previous message
agn453 is currently offline  agn453
Messages: 68
Registered: June 2018
Location: Newcastle, NSW, Australia
Member
hperaza wrote on Thu, 15 November 2018 23:27

I'd go directly for 4096 directory entries - once you start copying files, assembling and/or compiling applications you will hit the 1024-entry limit very quickly
..snip..


Hector,

Having thought about this again I've elected to use 2048 directory entries. Going higher would mean I'd need to use a block size of 8192 (BLS) and I'd rather stick with 4096 so the small files aren't chewing up a bigger allocation.

Yet another aside - I noticed reference to RSX180 in your ZSM4 distribution. A DuckDuckGo search seems to only have a reference to your P112 site for a disk image (for the P112). Is this the PDP-11 RSX system migrated to a Z180? Over 40 years ago (around the time I was getting into microcomputers) I spent too much time after work hours tinkering on RSX-11M. Is the source code available? If you'd rather respond privately - use Tony dot Nicholson at computer dot org to reach me.

Tony



--
Tony Nicholson

[Updated on: Fri, 16 November 2018 03:18]

Report message to a moderator

Previous Topic: New TI Project
Next Topic: Z180 upd7220 GDC SBC


Current Time: Wed Mar 19 03:15:19 PDT 2025

Total time taken to generate the page: 0.01283 seconds