Examples of the AltMon commands?

30 views
Skip to first unread message

Walt Perko

unread,
Apr 21, 2026, 2:54:22 PMApr 21
to Altair 8800
Hi, 

The documentation I have from deramp doesn't explain how I can type data into RAM from the ALTMON prompt.  

How am I supposed to identify the console port on address 10h/11h?  

I tried 10, that didn't work, then 11, that didn't work, then 0 and 00 and those didn't work either???

 B boot Altair disk by jumping to Altair disk boot loader (FF00) 
 C SSSS FFFF CCCC compare blocks of memory 
 D SSSS FFFF dump memory in hex and ASCII 
 E SSSS FFFF DDDD exchange blocks of memory 
 F SSSS FFFF DD DD find two byte sequence in memory 
 G SSSS go to and execute 
 H P load Intel hex file from 2SIO port 0 or 1 

 I PP input from I/O port 

 J SSSS go to and execute (G) 
 K SSSS FFFF DD fill block of memory with “K”onstant 
 L P load Intel hex file from 2SIO port 0 or 1 
 M SSSS FFFF DDDD move block of memory 
 N non destructive memory test (size RAM) 
 O PP DD output to port 
 P LLLL program memory (modify memory) 
 Q SSSS FFFF compute checksum on range of memory 
 R jump to ROM at FC00 (e.g., alternate boot ROM) 
 S SSSS FFFF DD search for single byte in memory 
 T SSSS FFFF test memory   


.

Patrick Linstruth

unread,
Apr 21, 2026, 4:27:41 PMApr 21
to altair 8800
I don’t understand. What does memory have to do with identifying a port address?

The ‘P’ command is used to “enter data into RAM”.

The ‘I’ command executes an IN instruction from port ‘PP’

 P LLLL program memory (modify memory) 
--
You received this message because you are subscribed to the Google Groups "Altair 8800" group.
To unsubscribe from this group and stop receiving emails from it, send an email to Altair-8800...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/Altair-8800/bd3e2015-7de2-4401-813b-b8fcf9a46782n%40googlegroups.com.

Walt Perko

unread,
Apr 21, 2026, 4:37:49 PMApr 21
to Altair 8800
 Hi, 

I read the line:   I PP input from I/O port as INPUT from PORT PP ... similar to  the IN P in the AMON monitor program.  

Oh Yeah!  I forgot I was typing in HEX numbers, not Decimal that was screwing me up with those letters.  


.

Peter Sterrantino

unread,
Apr 22, 2026, 9:27:47 AMApr 22
to Walt Perko, Altair 8800
Hi Walt, 

If you want to write directly to an I/O port you would use: O PP DD, where PP is the port (in hex) and DD is the data (in hex). I use this all the time to check out the ports on the Interfacer 1. 

Pete

Walt Perko

unread,
Apr 22, 2026, 10:05:21 AMApr 22
to Altair 8800
Hi, 

I was just trying to type a hex program into RAM to do some tests.  From using AMON, I've found the structure is different in AltMon which is why I think there should be one or two examples in the manual for each command. 


.

Walt Perko

unread,
Apr 22, 2026, 8:40:37 PMApr 22
to Altair 8800
Hi, 

Okay, so how do I send a string of hex data to AltMon starting at address 0000h ?  

Everything I've been trying doesn't work!  



.

On Tuesday, April 21, 2026 at 1:27:41 PM UTC-7 pat...@deltecent.com wrote:

Patrick Linstruth

unread,
Apr 23, 2026, 5:12:32 AMApr 23
to Altair 8800
What you mean by “send a string of hex”? Using the keyboard? From a file?

If you want to enter 30-39 at 0000, you would enter “P0000” and then just enter the bytes:

Altair 8800 (GEN2) simulator V4.0-0 Current        git commit id: 9e3d414e
sim> set rom altmon
sim> g f800


ALTMON 1.3 
*PGM 0000 
00-30 00-31 00-32 00-33 00-34 00-35 00-36 00-37 00-38 00-39 00-[ESC]
*DUMP 0000 000f 
0000 30 31 32 33 34 35 36 37 38 39 00 00 00 00 00 00  0123456789......
*

Altmon will show you the byte that is already there. You just enter what you want or SPACE to skip to the next byte.

The input ends with an ESC or an invalid character, like ‘.’.


Walt Perko

unread,
Apr 23, 2026, 8:04:38 AMApr 23
to Altair 8800
Hi, 

I've come to the conclusion that AMON is much better than ALTMON ... I don't care that it takes more space away from RAM.  I don't expect to be running any programs on my Altair 8800c or ZAltair's that need all that RAM.  

OTOH, the simple command logic of AMON far outweighs trying to remember oddball command characters in ALTMON.  

Now I'm thinking I want to reprogram my EEPROM on the FlexRAM boards for AMON.  

I'm also wondering why with AMON I can get this result:  

AMON 2.8 by M. Eberhard
RAM: EF00
>DU 0000 00FF

 0000: 21 20 00 DB 10 E6 02 CA 03 00 7E D3 11 FE 00 CA  ! .[.f.J..~S.~.J
 0010: 00 00 23 C3 03 00 00 00 00 00 00 00 00 00 00 00  ..#C............


But with ALTMON I get a different result?  

ALTMON 1.3
*DUMP 0000 00FF
0000 21 20 00 DB 10 E6 02 CA 03 00 7E D3 11 FE 00 CA  ! ........~.....
0010 00 00 23 C3 03 00 00 00 00 00 00 00 00 00 00 00  ..#.............

It's the same set of program instructions, but the ASCII display is different ???  

Tried it with a little different and more advanced program:  

AMON 2.8 by M. Eberhard
RAM: EF00
>DU 0000 00FF

 0000: 0E 41 DB 10 E6 02 CA 02 00 DB 11 FE 20 CA 00 F8  .A[.f.J..[.~ J.x
 0010: 79 D3 11 06 FF 16 FF 15 C2 17 00 05 C2 15 00 FE  yS......B...B..~
 0020: 5A CA 00 00 0C C3 02 00 00 00 00 00 00 00 00 00  ZJ...C..........


ALTMON 1.3
*DUMP 0000 00FF
0000 0E 41 DB 10 E6 02 CA 02 00 DB 11 FE 20 CA 00 F8  .A.......... ...
0010 79 D3 11 06 FF 16 FF 15 C2 17 00 05 C2 15 00 FE  y...............
0020 5A CA 00 00 0C C3 02 00 00 00 00 00 00 00 00 00  Z...............


Although when the programs run, they work the same, but why doesn't the ASCII look the same in the RAM dumps?  



.

Joseph Corda

unread,
Apr 23, 2026, 8:38:38 AMApr 23
to Walt Perko, Altair 8800
Walt..
Seems Monitor programs are like coffee, everyone has a favorite that works for them !
Between ALTMON vs. AMON I tend to lean to ALTMON...
Now ... if you could do what I did and build your own monitor...then you can make it do what ever you want

So in the end I like my JOEMON monitor the best ;-) 
Joe

image.png


Walt Perko

unread,
Apr 23, 2026, 11:03:11 AMApr 23
to Altair 8800
Hi, 

Joe, for beginners that are not machine language, assembly language or even BASIC language experts, getting started is where AMON is leaps and bounds easier to help people get started:  

AMON 2.8 by M. Eberhard
RAM: EF00
>?

AD <A> <C> [<G>]     Absolute binary dump, optional GO address
AL [<0/1>]           Absolute binary load, 0 prevents execution
BO                   Boot from Altair Floppy
CO <S> <D> <C> [<R>] Copy memory, optional repeat count <R>
DU <A> [<C>]         Dump memory
EN <A>               Enter data into memory
EX <A> [<1>]         Execute memory, optional EPROM disable
FI [<V> [<A> [<C>]]] Fill memory with hex value <V>
HB [<P>]             Altair Hard disk boot, opt. platter <P>
HD <A> <C> [<O>]     Hex dump, optional address offset <O>
HL [<O>]             Hex load, optional address offset <O>
MT <A> <C>           Memory test (can take several minutes)

  <A>, <S>, <D> are addresses. <C> is a byte count. All in hex.
  ---More---

IN <P>               Read and report from input port <P>
OT <P> <V>           Write hex value <V> to output port <P>
SE <A> <V1> ... <Vn> Search for hex string
SE <A> 'text'        Search for text string
TE [<E>]             Terminal mode, ^C [or ^<E>] to exit
TP <0-7>             Set transfer port:
                      0: 88-2SIO port 0  4: 88-4PIO port 0
                      1: 88-2SIO port 0  5: 88-PIO
                      2: 88-SIO          6: 88-2SIO port 1
                      3: 88-ACR          7: Interfacer 1 port B
TT <0/1>             Video Terminal/Teletype-style deleting
VE <S> <D> <C>       Verify (compare) memory

  <A>, <S>, <D> are addresses. <C> is a byte count. All in hex.
>


Looking at ALTMON it's pretty much you need to get a manual, then the manual doesn't even have decent examples of how to use the monitor:  

ALTMON 1.3
*
*

Typing a question mark doesn't even give a simple list of commands, nor even show up on the display!  


In the manual ... 

  Command Summary: 
 B boot Altair disk by jumping to Altair disk boot loader (FF00)
 C SSSS FFFF CCCC compare blocks of memory
 D SSSS FFFF dump memory in hex and ASCII
 E SSSS FFFF DDDD exchange blocks of memory
 F SSSS FFFF DD DD find two byte sequence in memory
 G SSSS go to and execute H P load Intel hex file from 2SIO port 0 or 1
 I PP input from I/O port
 J SSSS go to and execute (G)
 K SSSS FFFF DD fill block of memory with “K”onstant L P load Intel hex file from 2SIO port 0 or 1
 M SSSS FFFF DDDD move block of memory
 N non destructive memory test (size RAM)
 O PP DD output to port
 P LLLL program memory (modify memory)
 Q SSSS FFFF compute checksum on range of memory
 R jump to ROM at FC00 (e.g., alternate boot ROM)
 S SSSS FFFF DD search for single byte in memory
 T SSSS FFFF test memory



Bottom line is why should I need to memorize the command list for ALTMON, when AMON simply shows me what I need and how to use it right in my computer?   No need to dig into any manuals ... and again, in the age of the Altair 8800, programs mostly fit into much less than 64K RAM, so having a smarter 2K AMON monitor seems better than a 1K ALTMON monitor that requires an external manual.  



.

Patrick Linstruth

unread,
Apr 23, 2026, 3:24:07 PMApr 23
to Altair 8800
I'm also wondering why with AMON I can get this result:  

AMON 2.8 by M. Eberhard
RAM: EF00
>DU 0000 00FF

 0000: 21 20 00 DB 10 E6 02 CA 03 00 7E D3 11 FE 00 CA  ! .[.f.J..~S.~.J
 0010: 00 00 23 C3 03 00 00 00 00 00 00 00 00 00 00 00  ..#C............


First impression is AMON must strip the high bit when displaying the ASCII value.

C3h & 7Fh = 43h = “C”.


But with ALTMON I get a different result?  

ALTMON 1.3
*DUMP 0000 00FF
0000 21 20 00 DB 10 E6 02 CA 03 00 7E D3 11 FE 00 CA  ! ........~.....
0010 00 00 23 C3 03 00 00 00 00 00 00 00 00 00 00 00  ..#.............

Altmon doesn’t (which is “better”, in my opinion).


Patrick Linstruth

unread,
Apr 23, 2026, 3:38:21 PMApr 23
to Altair 8800
Coke or Pepsi
Windows, Mac or Linux
iPhone or Android
Altmon or Amon

Use whichever you want. It’s your computer.

On Apr 23, 2026, at 8:38 AM, Joseph Corda <jjco...@gmail.com> wrote:

Walt..
Seems Monitor programs are like coffee, everyone has a favorite that works for them !
Between ALTMON vs. AMON I tend to lean to ALTMON...
Now ... if you could do what I did and build your own monitor...then you can make it do what ever you want

So in the end I like my JOEMON monitor the best ;-) 
Joe

<image.png>

Joseph Corda

unread,
Apr 23, 2026, 3:50:30 PMApr 23
to Patrick Linstruth, Altair 8800
Lol I completely agree Patrick !  
oh and COKE is better ;-)

Walt Perko

unread,
Apr 23, 2026, 3:54:08 PMApr 23
to Altair 8800
Hi, 

Stripping off the high bit for a display seems better than just looking at a bunch of dots.   At least I can see there is something more than dots ... which is a more comfortable feeling when doing the dump.  

It may not be important, but seems a tiny bit more informative to the user.  

OTOH, what would be neat is if the monitor could upon request replace the ASCII field with 8080/Z80 mnemonics.  



.

Patrick Linstruth

unread,
Apr 23, 2026, 5:34:56 PMApr 23
to Altair 8800
A “DUMP” of memory should not alter what you’re seeing on the display. Unless you like Pepsi, then it’s ok.

If you want to see a JMP instruction (C3) in your ASCII dump as a ‘C’ (which it isn’t) rather than a ‘.’, and also see 43 as a ‘C’ (which it is), then Amon is the right choice for you!

In 2026, a C3 can be anything it wants to be. There is no truth:  (0xC3 = ‘C’ AND 0x43 = ‘C’) -> (0xC3 = 0x43)

Showing 8080/Z80 mnemonics is called a “disassembler” and would take up a bit of ROM space.

If you want a monitor that does all that, consider booting CP/M and using DDT. It was designed to do what you’re wanting a simple monitor to do.

Terry Fox

unread,
Apr 23, 2026, 5:59:16 PMApr 23
to Altair 8800
As SNL kept telling us:
NO COKE, PEPSI!

Joseph Corda

unread,
Apr 23, 2026, 6:09:12 PMApr 23
to Terry Fox, Altair 8800
lol.  Thats a great skit.  

Walt Perko

unread,
Apr 23, 2026, 6:51:24 PMApr 23
to Altair 8800
Hi, 

Getting back to the point that in my Altair 8800 I haven't used any programs so large they needed so much RAM that having a more advanced monitor could be a fun thing to have.  DDT is only 5K ... thus it would easily fit inside the monitor EPROM, but combining the two programs into one might save a few more bytes and since it's an 8K EPROM and could be a 32K EPROM even, there's plenty of room for the tool.  

Some people have embedded BASIC into their EPROMs ... then there's all the EPROM boards that let people store all sorts of programs and data for their computers.  

It's all just some ideas to find a more ideal Altair 8800 computer to play with.  



.

Patrick Linstruth

unread,
Apr 23, 2026, 7:20:41 PMApr 23
to Altair 8800
I think people embedded BASIC on ROM so they wouldn’t need to load it from paper tape or cassette.

I imagine people with disk drives no longer loaded BASIC from ROM and loaded it from disk.

Is your goal to enter programs in hex using the keyboard and then run them from a monitor?

I’m not sure what problem you’re attempting to solve, or is it just a fun project to put things in ROM that can be loaded from disk?

Walt Perko

unread,
Apr 23, 2026, 7:41:56 PMApr 23
to Altair 8800
Hi,  

With the help of ChatGPT, I'm slowly learning a little assembly/machine language programming.   

Being able to dump a little program into RAM with AMON seems a smarter path and helps me test fairly fast.  

My current update is now where I'm typing in my own modification to the program that hopefully will add a LF and a CR before jumping back to the first loop.  


.

Reply all
Reply to author
Forward
0 new messages