Keyboard Shortcuts
ctrl + shift + ? :
Show all keyboard shortcuts
ctrl + g :
Navigate to a group
ctrl + shift + f :
Find
ctrl + / :
Quick actions
esc to dismiss
Likes
- Z80MC
- Messages
Search
Re: A Z80 Asm rec
I'm sure it's still Z80 code.? Once you figure out the other directives, any good editor with search and replace should fix it up quickly. Plan B.? Get a PC that runs ASM20
On Friday, December 22, 2023 at 04:54:29 p.m. EST, ajparent1/kb1gmx <kb1gmx@...> wrote:
I'm trying to assemble ZMCV15.... ASMZ80 V20 can't get it to? run under Linux Mint and its format is? sufficient different that most of the Z80 assembler I run under the emulator (MyZ80) all find strange.? The path to reassembling it is a serious edit, unfun. Thoughts? Allison |
Re: A Z80 Asm rec
开云体育Hmmm... I had no issues compiling asmx2.0b5 on my Slackware machine via
make, but "gcc *-c -o asmx' did not work and I didn't pursue the
error.? Let me try (probably tomorrow) building it on my somewhat
ancient Mint machine. On 12/22/23 17:56, ajparent1/kb1gmx
wrote:
Still not running... |
Re: A Z80 Asm rec
Still not running...
Is there some missing incantation?? This is familiar to me with foreign (not repository) code that seems to mostly do nothing. >make install <? yields an error install is invalid parameter... Trying to build with gcc is also a dud. It would be really nice if it assembled under CP/M? (myz80 is a cp/m system). Allison |
Re: A Z80 Asm rec
开云体育Herb Johnson has a modified version of asmx on his website at that assembles zmcv15. -Bob On 12/22/23 16:54, ajparent1/kb1gmx
wrote:
I'm trying to assemble ZMCV15.... |
Re: FAT without the fat, alternate SD IO
My next step is to get to the base raw SD initialization and read/write.
The idea is more compact code that has no fat artifacts or code needed to handle it as fat. to me other than a few keep out areas the 1gb sd is just a bag of 2,097,152 (0x200000) blocks of 512 bytes. The idea is to have a super directory (tag and bag) of smaller CP/M sized (8mb or smaller)? "disks" that can be loaded as needed. Each would be file system only.? ?The CP/M OS is loaded from EProm as pseudo boot track.? The?CP/M file systems can be loaded on the fly as its an offset and DPH/DPB that describe the media.? SELDISK in the BIOS selects a drive (up to 16) but usual systems limit that due to buffer space and ALLOC space (256 byte per 8MB using 4K alloc) needs. But the base number of drives can be altered on the fly and its a minor coding task to make that a loadable system variable rather than BIOS fixed? as done often. By doing that it become easy to make a really large device usable. Seems to work fine for 128 or 256mb CF. PC comparability for the SD is not used as files needed are simply transferred via USB-serial to Z80MC.? By treating the SD as a non removable memory it lightens the code.? Doing that allows for a monitor, tag and bag OS, BIOS, CP/M image (62K system) plus extras to fit in 32K eprom. This is a result of thinking outside of the CP/M alteration guide and 4 floppies. Allison |
Re: FAT without the fat, alternate SD IO
That may be it, I really don't enjoy parsing the FAT structure.? Accessing the device on the
LBA makes more sense to me as its really just a large number of addressable blocks.? I've done that with IDE/CF for years and its faster.? Also makes it more in common with romdisk. With the advent of large Eproms romdisk makes having base software available.? The 32K mapping for low address space makes it easy to have the rough equivilent of 8"SSSD disk (about 240K) for those that remember CP/M 2.2. Now to wade through the source and make sure I captured the needed code. NSDOS is a tag and bag DOS.? Its structure is simple. ;***
;? ?Tag-n-Bag a primitive file system for mass storage device.
;? ?
;? ?Directory size typically 4 logical blocks (256, 512)
;? ?Empty entry is all spaces or zeros
;
;? ?16 bytes per entry FILE:
;? ? ? Byte? 0-7 symbolic name 8 char (ascii 7 bit)
;? ? ? ? ? ? 8,9 disk address (starting block)
;? ? ? ? ? 10,11 number of blocks in file
;? ? ? ? ? ? ?12 file type
;? ? ? ? ? ? ? ? ? 0=undefined
;? ? ? ? ? ? ? ? ? 1=executable 14-15 start addr
;? ? ? ? ? ? ? ? ? 2=data file?
;? ? ? ? ? 14-15 type dependent, start address
;
;? ?ODS:? device is a collection of sequential blocks
;? ? ? ? ?Block Logical size is 65535 max
;? ? ? ? ?NS* floppy has a boot block at 0000h
;? ? ? ? ?Block at logical 0000h is start of directory. ;==========================================================
The base version of that had no scatter gather mechanism so the NS* system had? a utillity to compact the disk.? ? Another weel know OS that was similar was DEC RT-11. Why is it interesting,,,,? Any file can be a directory. Allison |
Re: FAT without the fat, alternate SD IO
Hi Allison, You can just cut the FAT out.? Under the FAT is nothing more than reading/writing LBA. Cheers, Josh
On Friday, December 15, 2023 at 09:43:21 p.m. EST, ajparent1/kb1gmx <kb1gmx@...> wrote:
Planning a new Eprom for the Z80MC.. The basic plan is a tag and bag file system.? Anyone that has used NSdos that was such a file system.? The plan s to rewrite NSDOS to use anything but floppy (and their hard sector controller).? SD is the logical device. So to do this I need to access the card at the sector level likely LBA. My first pass is a handful of routines needed: There is no on device file system assumed such as FAT16 or other partition, or file table, or allocation table... So the first usable block to max block (end of media!)? need to be known. The assumption is 1 block is 512 bytes. SD _RESET SD_initial? ? initialize where the SD parameters are pulled from the device. SD_Read_block SD_write_block The code needs to be compact so most FAT code contains unneeded functions. I assume the SD will have wasted space as 1 or 2gb is far larger than needed. Storage is cheap these days. Most z80 systems loaded with programs and applications are relatively small.? ?My largest system uses 128mb CF and I fill about 45mb of it.? Also PC readable is not required.? Most examples found are not Z80 asm or are full FAT and most examples are in C.? C on Z80 tends to produce large code.? A pointer or example code would be helpful.? The ZMCV15 code has it but ts full FAT. ? Allison |
FAT without the fat, alternate SD IO
Planning a new Eprom for the Z80MC..
The basic plan is a tag and bag file system.? Anyone that has used NSdos that was such a file system.? The plan s to rewrite NSDOS to use anything but floppy (and their hard sector controller).? SD is the logical device. So to do this I need to access the card at the sector level likely LBA. My first pass is a handful of routines needed: There is no on device file system assumed such as FAT16 or other partition, or file table, or allocation table... So the first usable block to max block (end of media!)? need to be known. The assumption is 1 block is 512 bytes. SD _RESET SD_initial? ? initialize where the SD parameters are pulled from the device. SD_Read_block SD_write_block The code needs to be compact so most FAT code contains unneeded functions. I assume the SD will have wasted space as 1 or 2gb is far larger than needed. Storage is cheap these days. Most z80 systems loaded with programs and applications are relatively small.? ?My largest system uses 128mb CF and I fill about 45mb of it.? Also PC readable is not required.? Most examples found are not Z80 asm or are full FAT and most examples are in C.? C on Z80 tends to produce large code.? A pointer or example code would be helpful.? The ZMCV15 code has it but ts full FAT. ? Allison |
Re: Where's the CPM files
开云体育
that was it josh.? try it now and it should work.?
From: [email protected] <[email protected]> on behalf of joshbensadon via groups.io <joshbensadon@...>
Sent: December 8, 2023 10:43 AM To: [email protected] <[email protected]> Subject: Re: [Z80MC] Where's the CPM files ?
When I go to files section,? I should see "NEW/UPLOAD" button (like I do in COSMAC GROUP).? But I don't see it.
Is might be a permissions thing? |
Re: Where's the CPM files
Ok, right, this isn't the COSMAC group.?? Thanks.
On Wednesday, December 6, 2023 at 11:28:30 a.m. EST, ajparent1/kb1gmx <kb1gmx@...> wrote:
Hi Josh, Best place is the files section of the group. While use PCs and program them even the older systems are my thing. I still have the old don't you wish you have now what DEC had then. For that I boot the MicroVAX as The OpenVMS Language Senstive Editor LSE and cross platform systems are still cleaner than some of the current PCisms.? Linux made than less painful. The only time I've done SD so far I made FAT file of 256mb on a fresh 1GB device?so that its allocated sequentially.? Then located the staring Block number and addressed the blocks in it as LBA starting at xxxxxxH? to the PC its just a block that's allocated with whatever inside.? The system then doesn't need to know FAT at all.? The PC only created the larger container file and allowed me to know the stating address. The CP/M system populated the container file as sectors starting at xxxxxh.? The PC was involved but minimally to initialize (create Fat 32 container file) the disk. As to BIOS design and storage allocation its not obvious but Alloc is a bit map that has one bit per addressable block for the current allocation size.? I had to figure that out in late 1979 when I got CP/M2.2 after running 1.3 and 1.4 in prior years.? So Alloc map for 8mb using allocation block size of 4K bytes is 256 bytes, allocation block size can be as a large as 16K (32K on clones). For large disks I use either 4K or 8k allocations.? The Allocation size limits possible number of files as it sets a minimum granularity.? So for 8mb using 8K allocation block size limits the disk to 1024 files, for 4K it would be 2048 assuming DIRectory size can accommodate that.? The size of? things in the bios for a given disk as all sorts of interactions.? The CP/M Alteration Guide is rather vague on all that.. Andy Johnson-Larid CP/M Handbook gets into it and helps make it clearer. Once up as per earlier CP/M system getfile and putfile tools of my creation are use to transfer serially via USB serial cable to PCs or real serial (tm) to other non PC systems usually VAX, PDP-11, or CP/M. For the BIOS I use on many systems where the device is LBA rather than track sector I use sectors per track of 4 as the device is typically 512byte sectors and make tracks equal to the size of disk (8MB/512=16384).? Offset is usually 0000 as I typically boot from Eprom (copy ccp and BDOS from 8k eprom).? However offset is not part of the size of disk as literal 0th is the first sector that happens to be directory for X many sectors with data block after that. Hard disks are not removable during operating of system so checked entries will be zero (0) but is used for floppies to insure a media swap is caught before a write which would trash the directory. The next high memory cost item is the disk buffers typically equal to sector size or sometimes block size? I try to keep them small.? For example 512 bytes by 4 drives can easily eat up 2K of valuable ram in a basic 64K system.? Why?? They cannot be shared if doing a disk to disk copy havoc would ensue. That's important as high level languages like C, Pascal, and even assembles want ram to run? fast and most the minimum is 48K (ram from 100h to base of BIOS) as the BDOS and CCP are easily overlaid and reloaded. Sector skew only applies to floppies (rotational delay) and for hard disks and other modern media CF and SD zero (00) makes more sense.? Save having skew table or calculating it.? I stopped building in floppies when IDE hit the streets (as too small and salvage) and drives became cheap.? CP/M itself has a internal math error that limits it to 8mb.? P2dos, NovaDOS, Zrdos and a few others fix that at the cost of must be Z80 CPU.? For those 1GB is the limit and 32Mb partitions makes more sense.? The latter due to the flat file structure.? I've spent more than a little time inside CP/M (and enhanced clones) as sources have been available since 1980. Some of the buffers and other space eaters that the BIOS hides can be burred in mapped ram such as Z80MC has for the first 32K.? I've used that before in? a few of my machines where I strive for faster and larger available ram (usually 62K).? The other trick is if the EPROM is large? as in greater than 16K a bootable image of CP/M, Bios and a system monitor that will load it to ram. One block or mappable ram is low ram and others used to support the BIOS. FYI the z80MC will be paired with a small LCD Display and keyboard as a portable system on battery. Allison |
to navigate to use esc to dismiss