Quantcast
Channel: stardot.org.uk
Viewing all articles
Browse latest Browse all 2385

8-bit acorn hardware • OSWORD 14 & 15 numbers (for real-time clocks)

$
0
0
I'm at the point in my implementation of time utilities where I need to fix some OSWORD 14 & 15 specifications. Acorn were not consistent about this, and subsequent roms have made things worse, until it's all a mess, as summarised on the wiki! I would like to get some kind of consensus about this so that (for example) my SNTP implementation can be used with other clock roms.

Here is what I have at the moment:
OSWORD 14 (&0E) returns data depending on the first byte in the memory block:
  • Byte 0 = 0: Return date and time in the form www,dd mmm yyyy.hh:mm:yy
  • Byte 0 = 1: Return date and time as 7 BCD values (no century)
  • Byte 0 = 2: Convert date and time from 7 BCD values to string, using current century
  • Byte 0 = 3-4: Not used (too many other conflicting uses!)
  • Byte 0 = 5: Return saved date and time as string, depending on second byte in block:
    • Byte 1 = &FF: Return time of last clock setting
    • Byte 1 = 0-39: Reserved for alarm times
  • Byte 0 = 6: Return saved date & time as BCD, depending on second byte in block
  • Byte 0 = 7: Return timezone offset as one BCD byte
OSWORD 15 (&OF) sets the clock depending on the string in the memory block; the first byte is the length:
  • Byte 0 = 1, "S": Wait for the seconds to tick over, then return
  • Byte 0 = 3, "UTC", "GMT", "BST": Set timezone offset according to TLA
  • Byte 0 = 4, "C±cc": Adjust clock calibration by ±cc units (on my clock they are 1/128 s/hr each)
  • Byte 0 = 6, "UTC±zz": Set the timezone offset to ±zz hours
  • Byte 0 = 7, "S±ss.cc": Adjust time by ±ss seconds and cc centi-seconds
  • Byte 0 = 8, "hh:mm:ss": Set time, leaving date unchanged
  • Byte 0 = 15, "www,dd mmm yyyy": Set date, leaving time unchanged
  • Byte 0 = 24, "www,dd mmm yyyy.hh:mm:ss": Set date and time
If I get around to implementing alarms, they will be set by OSWORD 15 blocks beginning "Ann=" where nn is the alarm number.

I don't want to change OSWORD 15 much, though I would happily add more TLAs to subcall 3, but I'm much more open to change of OSWORD 14. Should I change 7 to return timezone as a string, and have BCD as 8? Do we need some way to read the century in BCD? Is any consensus possible?

Statistics: Posted by Barneyntd — Mon Mar 11, 2024 2:17 pm



Viewing all articles
Browse latest Browse all 2385

Trending Articles