The FileStore CMOS RAM:
Byte(s) Function ---------------------------------------------------- 0 - 13 Real time clock 14 The server station number 15 255 - server station number (used as a check) 16 - 19 - 20 If error: Error code 21 If error: X register 22 If error: Y register 23 If error: Address MSB \ >- addr = ?23 + &100 + ?24 24 If error: Address LSB / 25 - 27 If error: 24bit SIN 28 Maximum users allowed to log on 29 Configured drives + 1 30 - 35 Printer server name (disabled if 30 = 0) 36 - 46 Username set by *FSUser 47 Check byte for FSuser name 48 Printer page feeds 49 If = 0 then copyright check is on 50 - 63 -
The code to perform the reading is:
LDA #5 LDX #(address MOD &100) LDY #(address DIV &100) JSR &FFF1 RTSWhere address is where you want the result to be stored to (which should not be the same place you decide to poke your code into the server memory). As a BASIC function to prebuild this code segment, it appears as:
buffy%?0 = &A9 buffy%?1 = 5 buffy%?2 = &A2 buffy%?3 = address% MOD 256 buffy%?4 = &A0 buffy%?5 = address% DIV 256 buffy%?6 = &20 buffy%?7 = &FFF1 MOD 256 buffy%?8 = &FFF1 DIV 256 buffy%?9 = &60This code is poked into the FileStore at the address you have decided (with *FSProt off!). You should then Remote_JSR to your code. Finally, peek the address that you have specified to store the result to. The result is at offset +4; so read back 6 bytes, the result it buffy%?4.
If this all looks a bit of a hassle - remember that !FSutil can do this all for you, and write data back to CMOS if necessary.