My new file manager

187 views
Skip to first unread message

Matthew Brugman

unread,
Aug 26, 2026, 11:56:17 AMAug 26
to Altair-Duino
I've been working an a file manager for the Altair in assembly.  It's starting to take shape pretty nicely, so I thought I'd share my progress.

By file manager, think XTreeGold, Midnight Commander, etc.

The source is at https://github.com/mbrugman67/stem and I did a little screencast recording: https://youtu.be/VWdoinQcBtQ?si=JT8XYIPWyRalOdMe

I haven't put a release on github yet, but you can pull the source and assemble it yourself, if you'd like.  Instructions and info in the README.

FAIR WARNING - this is in progress, so be sure to backup disks/files if you play with it :)

Matthew Brugman

unread,
Aug 26, 2026, 5:55:28 PMAug 26
to Altair-Duino
The main branch in GitHub now includes file renaming:)

Matthew Brugman

unread,
Aug 27, 2026, 10:41:57 AMAug 27
to Altair-Duino
Just to clarify, this is a program that runs on the Altair. It’s a retro programming exercise for me; something I would have written if I had access to an Altair back in the day. 

Of course my progress would’ve been much slower then because I would have been learning 8080 assembly instead of just remembering it 🙂 (I first learned assembly on my TRS-80 CoCo)

John Galt

unread,
Aug 27, 2026, 12:04:14 PMAug 27
to Altair-Duino
I'll give you encouragement.

Thumbs up!

Cliff Chism

unread,
Aug 27, 2026, 2:31:01 PMAug 27
to Altair-Duino
I’ll give you a a thumbs up too. I’m looking forward to giving it a go. Just got a lot going on right now. Well done. 

Cliff

Matthew Brugman

unread,
Aug 27, 2026, 4:44:40 PMAug 27
to Altair-Duino

Thanks!  Let me know if you try it. I’ll keep working on it and will post my progress. 

Walt Perko

unread,
Aug 28, 2026, 8:19:34 PMAug 28
to Altair-Duino
Hi, 

I have XTGOLD80 on my website ... designed for the Intel 8080 in an Altair 8800 computer.  

Run the program, wait!  It takes a little time to get up 'n running ... the DOCs are also on the page:  



.

John Galt

unread,
Aug 28, 2026, 11:48:00 PMAug 28
to Altair-Duino

mbrugman67 is making his own file manager because he wants to learn and practice his assembler craft and make something from his own ideas.

why not review and give feedback on his program instead.

Matthew Brugman

unread,
Aug 30, 2026, 10:17:41 AMAug 30
to Altair-Duino
I was thinking that someone else would have done something like this.  I hadn’t looked for it; I’m just doing this for fun. What else does a retired engineer do, lol. 

I appreciate pointing out that XTGOLD exists,  but feedback would be appreciated. Thanks!

John Galt

unread,
Aug 31, 2026, 11:58:03 AMAug 31
to Altair-Duino
There are many file managers. over the years people have also made terminal specific versions.

The most popular versions Handle file compression and decompression into Library archives.

Library Archives are neat because you can run self contained programs right out of the archive.
programs like LRUN and more up to date like Tom's R : https://github.com/ratboy666/r


There are more MC like file managers with the addition of archiving to save space. they are spread all over the place some buried on different Cp/M archives.

the entire point is for you to program and work on your skills and that is awesome.



 
 


Matthew Brugman

unread,
Sep 3, 2026, 4:17:58 PMSep 3
to Altair-Duino
I put together a 'release' on Github: https://github.com/mbrugman67/stem/releases/tag/v0.9.3  

This version will:
  • list disk directories (I've only tried it with floppies, limited to 70 files per disk for now)
  • copy files (to current or other disks)
  • delete flies
  • rename files
  • display files (best guess as to hexdump or display as text)
  • display "help" information (press H at start banner or once a directory is loaded)
The readme at the repo has screenshots and more detailed information: https://github.com/mbrugman67/stem

I was playing around and decided to try the VT100 emulator to be sure I wasn't getting too crazy with the ANSII escape sequences.  I noticed a couple of things about that:
  • The display was shifted left maybe a couple of pixels.  I think I saw this somewhere else in the groups, but I'm not sure.  Is this typical?  Maybe a retrace interval timing thing with the PIC firmware?
  • The VT100 emulation handles most of the escape sequences I'm sending, including reverse video, but doesn't seem to do bold.  Again, is that what others have seen?
display.png

To be honest, I don't use the VT100 emulator much; I have a USB<->RS-232 cable plugged in and use that almost all of the time.

Anyway, if anyone wants to give it a try, I'd appreciate feedback.  Again, this is just my fun play time thing; a chance to get back into assembly coding.

Matthew Brugman

unread,
Sep 9, 2026, 3:53:19 PM (12 days ago) Sep 9
to Altair-Duino
Another new release: https://github.com/mbrugman67/stem/releases/tag/v0.9.4  

This one adds swithcing of user areas.  One can start the program and list files on a drive as before, but now at any time one may select another user area to list and manipulate those files.

Actual moving of files from one user area to another will be in the next release :)  

By the way, does anyone know where/how  CP/M stores which user area a file belongs to?  I'm guessing it's field in the directory structure, but I haven't found doc on that yet.  Guess I could look at the source for CP/M 2.2, but sheesh, who wants to do that? :)

Thanks again,
Matt

John Galt

unread,
Sep 9, 2026, 4:39:16 PM (12 days ago) Sep 9
to Altair-Duino
User is part of MP/M. check with MP/M reference materials on the directory structure.

see is this helps

Matthew Brugman

unread,
Sep 10, 2026, 9:33:15 AM (11 days ago) Sep 10
to Altair-Duino
Thanks for that reference!

My goal is to have a zero-copy file move from one user area to another. I see how it could be done by directly manipulating the directory entries, but I’d prefer to stick with only using CP/M syscalls for portability. It’s hard to ignore a career of low level and embedded firmware engineering, lol. 

John Galt

unread,
Sep 10, 2026, 12:45:41 PM (11 days ago) Sep 10
to Altair-Duino
many of the Cp/M reference books either come with a file copy program or a hex dump program which you develop as you work through the chapters. they both come from MITS documentation.
so the authors just kind of copied what MITS gave as examples and then embellish it a little.

The Copy program example is limited to 64KB files due to a counter limitation. some of the CP/M programming books clue the reader into this limitation then ask the reader to come up with their own solutions to the problem.
also all of these books are in 8080 op code assembler... if you need Z80 you will need to translate them.

via a google search you can find just about all these CP/M programming books online in PDF format.

I used them about 6 years ago to built up a library of Cp/M Z80 subroutines. i programmed a few hundred megabytes of code for various projects then lost interest.
i have not programmed in assembler in 4-5 years now.

Matthew Brugman

unread,
Sep 10, 2026, 1:09:35 PM (11 days ago) Sep 10
to Altair-Duino
I’ve already added file copy, delete, rename, paged hex and text dump to my little file manager. Pretty elementary using CP/M syscalls in assembler. The concept of manipulating user area is where I am now; just looking to come up with an interesting solution.  Given the time that 8080 and CP/M have been around, nothing I come up with will be truly new and unique. I just enjoy the process of solving problems. Probably why I got to senior/project level engineering before I retired. 
Reply all
Reply to author
Forward
0 new messages