What you can do with the VIC chip, is point it to two different screen memory areas, switching between them on the right raster line. This is fiddly because we’re also accessing the disk drive a lot, and interrupts are disabled during disk access. Also, we’d need to fill the unused part of one of the screen memory areas with something useful, as wasting ~900 bytes is not an option.
We’ve chosen another path for Ozmoo - it has its own “screen kernal”, e.g. a set of routines to access the screen (print, place the cursor, clear the screen etc), replacing the routines in kernal. This is so (A) it can stop any number of lines at the top from scrolling, (B) it can handle an imaginary cursor outside the screen, so if a game prints centered text in the upper window (“statusline”) that doesn’t fit on a 40 column screen, at least the middle part of it will display correctly, and (C) it can handle printing in the right-most column without unwanted effects. Infocom’s interpreters avoided the right-most column headache by simply leaving it empty.
Indeed, I’m seriously thinking around .pdf feelies where one can deliver a solid backgrounder to the story, a thing which IMVHO don’t detract from the narrative.
You are both correct. Reading “35/50” as “35 points out of 50” is a period-accurate mistake. I made it all the time, playing Zork on a 40-column screen. :)
Different generations, I suppose. I see a ratio of 80% because that’s what 4 divided by 5 in math means (0.80). In writing I do use a / to denote either/or (like what I did just there) but only for words. Anyway, it’s fun to discuss these things and get different perspectives.
Weighing in what you’ve all said, and talking it over between us, we opted for “Sc:123 Mv:1234” for screens ~40 characters wide, while screens ~30 characters wide get “123:1234”. We will also use “Sc:” and “Mv:” on certain screen widths, when showing only score, or only moves.
While we’re at it, we’re changing the threshold values when the library switches between different layouts, to follow a simple rule: As far as possible, we guarantee that a room name up to 21 characters in length can be printed without it being cut short by the score, moves or time on the statusline. This gives authors a number they can use while designing their games, if they want.
With this in place, the library can print 16 different statusline layouts, depending on settings and screen width.
Nah, looking at the code now, I see that the library chooses between:
A: Time: 12:34 AM + some space to the right
B: Time: 12:34 AM
C: 12:34 AM
D: No time at all