Eric's Apple Network Server 700 tinker log

eric

Administrator
Staff member
Sep 2, 2021
1,081
1,783
113
MN
bluescsi.com
Well in a bunch of unrelated issues covering up the real issue which was me being silly I am back up and running, though my install from last year I cant launch any apps at all or smit or anything. I'm just going to start fresh again to refresh myself on the entire process.

One oddity is that the power button wont keep the machine off. It powers down but only for about 5 seconds then powers back up - donno if thats some setting or datacenter thing it's trying to stay on after power loss or shutdown.
 

joevt

Tinkerer
Mar 5, 2023
144
47
28
Is there a way to write on multiple line on the lcd screen? control chars/escape/etc dont seem to work passing to `lcdstring`
Does the ANS 700 have the same ROM as an ANS 500?
Here's the version, size, checksum, and md5 of the ANS 500 ROM:
077d.28f2 4096 962f6c13 676809c236138574282fa8416c6c5a6d "./ROM 1.1.22 ANS 500

The ANS 500 ROM has an Open Firmware driver for the LCD which does support some control and escape characters. Open it like this:
Code:
unselect-dev
0 value lcd-ih
" lcd" 2dup find-device open-dev dup . dup to lcd-ih to my-self
The number that is output is the instance handle that was opened. It should be non-zero if successful.
my-self may be reset to zero if you type an incorrect command. You can just re-open the device again or do
lcd-ih to my-self

Then you can write to the LCD like this:
" hello" write

Or like this:
" hello" " write" lcd-ih $call-method

The write word for the LCD seems to support the following special characters:
  • 0x08: back space - Left one character and erase it.
  • 0x09: tab - Output lanks to the next multiple of 8 column number.
  • 0x0A: linefeed - Down one line, clear the line, go to column 0.
  • 0x0B: Up one line.
  • 0x0C: lcd-init - Goto line 0 column 0.
  • 0x0D: Ignore.
  • 0x1B: escape - Begins an escape sequence. Only 5B is accepted as the second character. Characters 0 - 9 end the escape sequence (and do nothing). 0x44 (character D does a back space and continues the escape sequence.

Writing beyond the end of a line does a line feed to continue on the next line. I believe there are 20 characters per line.

Characters that change the line number transmit a line number change command (each line uses a different command: 0x80, 0xC0, 0x94, 0xD4). There's other commands (0x01, 0x02, 0x04, 0x06, 0x0f, 0x38). Are the LCD commands documented somewhere?

To use the special characters, put the hex in the string surrounded by "( and ) like this:
" abc"(0A)def"(0B)ghi(080808)jkl" " write" lcd-ih $call-method

Actually, since lcd has a write command, it might be usable as the Open Firmware output device:
" lcd" output
 

Attachments

  • lcd.4th.zip
    2.3 KB · Views: 3

eric

Administrator
Staff member
Sep 2, 2021
1,081
1,783
113
MN
bluescsi.com
@joevt oh interesting! I (finally) tried to dump the ROM from my 700 but my collection of cables/adapters/etc must not be correct as I can never get output or input on the OF console. Is there any way to dump this while the machine is running (Is it mapped to a memory location or anything like that?)
I have two options but neither work: USB Type C to RS232 DB9 Serial Port Adapter Cable, FTDI Chipset -> null modem cable -> DB9 to apple serial adapter. I assume it's because it's RS422
And a Keyspan USB->RS422 adapter which is seen in linux as a serial tty, but i get no traffic.

Is there a way I could do this from a vintage mac with a serial port?

-

How could one call these OF ROM routines from C or while the system is running? I'm not familiar with how all this works.
Writing beyond the end of a line does a line feed to continue on the next line. I believe there are 20 characters per line.
With the `lcdstring` command this doesn't seem to happen.
 

eric

Administrator
Staff member
Sep 2, 2021
1,081
1,783
113
MN
bluescsi.com
Success! Winning combo was it's the 2nd port on the ANS from the top and just using the kingston adapter to a serial cable:
1754069606750.png
 

eric

Administrator
Staff member
Sep 2, 2021
1,081
1,783
113
MN
bluescsi.com
RAID card installed. Took out the full compute unit as it was easier. the SCSI connectors on the back made it hard to put the card in so i took off one of the stand offs for the external HD connector. Disk drive in the ANS is not working so I pulled out the floppy drive from my childhood 6115/CD and it worked. Booted into the RAID utility with putting the ANS in service mode then `boot fd:dacconf.ns` - Have a BlueSCSI with 3 9GB drives for a RAID 5. Auto configured and now it's initializing the drives.
 

Attachments

  • IMG_7291.jpeg
    IMG_7291.jpeg
    1.6 MB · Views: 2

joevt

Tinkerer
Mar 5, 2023
144
47
28
@joevt oh interesting! I (finally) tried to dump the ROM from my 700 but my collection of cables/adapters/etc must not be correct as I can never get output or input on the OF console. Is there any way to dump this while the machine is running (Is it mapped to a memory location or anything like that?)
There's probably a way but I only have apps for Mac OS 9 and OS X - neither of which is usable by the ANS 700?
The ROM is mapped to last 4 megabytes of physical memory. So, one would map it, then copy it.

RS-232 has a single wire for receive and a single wire for transmit.
RS-422 uses differential signalling. You can connect the one wire from RS-232 and ground the other wire for RS-422.

How could one call these OF ROM routines from C or while the system is running? I'm not familiar with how all this works.
I don't think you can call Open Firmware from most OS's.

If you can't find a driver or reverse engineer a driver from the OS (what does the lcdstring app use?), then you could try reverse engineering the driver from Open Firmware. The Open Firmware driver indicates that the registers for controlling the LCD are 32 bytes at 0x1c000 of macio. This is at 0xf301c000 physical address. command byte is at offset 0x00 and the data byte is at offset 0x10. There's a 1 ms delay used after every write to a register.

Success! Winning combo was it's the 2nd port on the ANS from the top and just using the kingston adapter to a serial cable:
Are the ports not marked as modem and printer port? The default port for Open Firmware is modem port.

@joevt Attached is the raw output.
Thanks for the dump. It's identical to the ANS 500. I can't find where the ROM for the ANS 500 was posted. I thought it was in this forum?