83:Ports:04
From WikiTI
Revision as of 01:12, 3 April 2005 by 195.56.94.233 (Talk)
Synopsis
Port Number: 04h
Function: Timer Interrupt Frequency and Memory Map Control
This port controls the frequency of the hardware timer and the memory map mode.
Read Values
This is a mirror of the link port.
Write Values
- Bit 0 reset to select memory map mode 0. In mode 0 the RAM and ROM is mapped to CPU memory as follows:
- Address 0000h ~ 3FFFh: ROM Page 0
- Address 4000h ~ 7FFFh: Swappable (Page selected in 83:Ports:00/83:Ports:02)
- Address 8000h ~ BFFFh: RAM Page 1
- Address C000h ~ FFFFh: RAM Page 0
- Bit 0 set to select memory map mode 1. In mode 1 the RAM and ROM is mapped to CPU memory as follows:
- Address 0000h ~ 3FFFh: ROM Page 0
- Address 4000h ~ 7FFFh: RAM Page 0
- Address 8000h ~ BFFFh: Swappable (Page selected in 83:Ports:00/83:Ports:02)
- Address C000h ~ FFFFh: RAM Page 1
- Bits 1 and 2 control the hardware timer frequency. Setting both 0 sets the timer to the fastest speed, and both 1 is the slowest speed. The normal speed is with both bits 1.
- Bit 3: Unused? Always 0.
- Bit 4: Timer frequency multiplier; when this bit is set, all the times are multiplied by 90% (i. e. it's 11.1% faster) compared to when it's reset.
- Bit 5-7: Unknown, but definitely used.
Comments
The calculator uses mode 0 for normal operation. If you change the memory map mode be sure to change it back before returning control.
To calculate resulting timer frequency you can use the following formula:
freq = 1800 * ((out_value & 0x10) ? 1.0 : 0.9) / (3 + ((out_value & 0x06) << 1)) / 6000000