SSC is an abbreviation of Screen Specific Code and is a block of up to around 16,100 bytes of memory from $C000 to $FEFF.
Each Outside Screen in Wurlde has specific code to control specific screen graphics and effects.
The Main window contains the Windmill screen and the SSC memory will hold this HIRES screen, Collision Map, graphics and code to rotate the veins on the windmill, shimmer the stars in the sky and control any incidental creatures on the screen (incidental meaning that they do not directly affect the Hero).
The SSC Memory or module always has a 32 byte header that always resides between C000 to C01F
Location | Vector Address |
---|---|
C000 | JMP ScreenInit Code |
C003 | JMP ScreenRun Code |
C006 | JMP Collision Detected |
C009 | JMP Action Vector |
C018 | Screen Prose Vector |
C01A | Screen Name Vector |
C01C | Screen Rules |
C01D | Location ID |
C01E | Recognised Action Keys |
C01F | Collision Type |
C020 | Collision Table vector(C02C) |
C022 | Screen Inlay vector |
C024 | Entering text vector |
C026 | Interaction Header vector |
C028 | Character List Vector |
C02A | Character Info Vector |
C02C | Ceiling Table |
C054 | Floor Table |
C07C | Collisions Table |
C0A4 (onwards) always contains the Screen Inlay which always contain embedded codes for Sky and Land contours. The Screen Inlay is always 40×119.
The Vectors at $C000,C003 and C006 can be directly JSR'd to since they contain the JMP op-code in each call address.
ScreenInit is called immediately after the block is loaded.
ScreenRun is called during the main Game loop
Each Bit of the Screen Rules Byte defines a rule that applies to the screen.
Bit | Description |
---|---|
B0 | Disable Hero Control until this flag is cleared (controlled through levelrun) |
B1 | Disable Hero Jump (Standing jump, standing jump left/right, running jumps) |
B2 | Exit Left to logical Screen Left |
B3 | Exit Right to logical Screen Right |
B4 | - |
B5 | - |
B6 | - |
B7 | Sync to 25Hz |
Recognised Action
Bit | Description |
---|---|
B0 | Call ProcAction when Action key pressed |
B1 | Call ProcAction when Inventory key pressed |
B2 | Call ProcAction when Item Drop key pressed |
B3 | Call ProcAction when Item Pickup key pressed |
B4 | Call ProcAction when Up key pressed |
B5 | - |
B6 | - |
B7 | - |
Screen Prose contains the text that will be displayed in the textbox and should be a description of the location. Dimensions are 35×7. A line terminator is “%” and the passage terminator always “]”. Codes below 32 trigger Object names Codes between 128 and 143 trigger Group names Codes between 144 and 175 trigger Character names Codes between 176 and 207 trigger Keywords Codes between 208 and 223 trigger Location names Codes above 223 trigger general texts
Screen Name is Short Name of location. Dimensions are 13×1.