Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Current »

Screen registers

The addresses of the screen files are held in BLINK registers PB0 to PB3 and SBR. Their width determine the file granularity in a bank. For example, the LORES1 can be stored at 0, 4, 8 or 12K. Their softcopies are stored at ($046x) for the most significant bits and ($047x) for the 8 right bits. The role of these registers is as follows:

Register  Name   Role   Length     Granularity  Width    Softcopies ($046x)       ($047x)
PB0 ($70) SC_LR0 LORES0 512 bytes 512 bytes 13 bits 5 bits right 8 bits right
PB1 ($71) SC_LR1 LORES1 3.5K bytes 4K bytes 10 bits 2 bits right 8 bits right
PB2 ($72) SC_HR0 HIRES0 6K bytes 8K bytes 9 bits 1 bit right 8 bits right
PB3 ($73) SC_HR1 HIRES1 2K bytes 2K bytes 11 bits 3 bits right 8 bits right
SBR ($74) SC_SBR SBF 2K bytes 2K bytes 11 bits 3 bits right 8 bits right

These registers are write-only. They are set by OS_Sci with OUT (C),A instructions are used. B always contains the left bits of data (more than 8), A the data, C the port. So, A is ($047x) and B is ($046x). Please, refer to the Screen Files chapter for more about their structure.

How to generate address from blink screen register softcopies (iner of the OS_SCI call)

h : bit from $046x
l : bit from $047x
        Add 00 here
||
vv
PB0 : 13 bits : hhhh hlll 00ll lll0
PB1 : 10 bits : hhll llll 00ll 0000
PB2 : 9 bits : hlll llll 00l0 0000
PB3 : 11 bits : hhhl llll 00ll l000
SBR : 11 bits : hhhl llll 00ll l000

Example, on an Expanded machine :

Register : ($046x) ($047x) -> Offset
PB0 $04 $31 -> $212200
PB1 $00 $1C -> $070000
PB2 $00 $43 -> $212000
PB3 $00 $39 -> $070400
SBR $01 $0F -> $213800
  • No labels