mirror of
https://github.com/mikpe/pdp10-tools.git
synced 2026-01-11 23:53:19 +00:00
86 lines
3.8 KiB
Plaintext
86 lines
3.8 KiB
Plaintext
doc/Timers.txt
|
|
Copyright (C) 2015-2017 Mikael Pettersson
|
|
|
|
This file is part of pdp10-tools.
|
|
|
|
pdp10-tools is free software: you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation, either version 3 of the License, or
|
|
(at your option) any later version.
|
|
|
|
pdp10-tools is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with pdp10-tools. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
|
|
PDP10 Timers
|
|
============
|
|
|
|
PDP6 / KA10 / KI10
|
|
------------------
|
|
|
|
- there is a clock tied to the AC power line frequency (50 or 60 Hz)
|
|
- the clock is part of the "processor conditions"
|
|
- CONO APR,E allows the clock interrupt to be enabled or disabled, and the entire group
|
|
of processor conditions to be assigned an interrupt priority level
|
|
- on KI10, the clock has its own interrupt priority level assignment
|
|
- on PDP6 and KA10, the clock shares interrupt priority level with the other processor conditions
|
|
- CONI APR,E allows the current state of the processor conditions to be inspected
|
|
- KI10 also has a "timer", but it functions like a watchdog and is not usable as a clock
|
|
|
|
KL10
|
|
----
|
|
|
|
- 1 MHz time base, recorded in two words in the EPT
|
|
- 12-bit 100 kHz interval timer able to raise interrupts with programmable period
|
|
- CONO MTR,E assigns interrupt level to the interval timer, and enables or disables the time base
|
|
- CONO TIM,E assigns interrupt period to the interval timer, and enables or disables it
|
|
- CONI TIM,E reads the current contents of the interval timer, as well as its configuration data
|
|
- KL10 also has a "metering" system, similar to programmable performance monitoring counters
|
|
|
|
KS10/KD10
|
|
---------
|
|
|
|
- a 12-bit hardware millisecond counter, running at 4.1 MHz, overflow represents just under 1 ms
|
|
- a "time base" doubleword (36+35 bits) in "the workspace", with the low 12 bits corresponding
|
|
to the hardware counter
|
|
- an "interval" word in "the workspace" able to represent intervals up to 2^23 ms (almost 140 minutes)
|
|
- WRTIM writes a doubleword to the time base (clearing the low 12 bits)
|
|
- RDTIM reads the time base, adds the hardware counter, and writes a doubleword
|
|
- WRINT writes a word to the interval register
|
|
- RDINT reads the interval register and writes a word
|
|
- WRAPR allows the interval done interrupt to be enabled, if so it shares priority level with
|
|
several other "system conditions"
|
|
|
|
Jupiter/KC10
|
|
------------
|
|
|
|
- 12-bit 100 kHz interval timer able to raise interrupts with programmable period, identical to KL10
|
|
- WRTMB E similar to KL10 CONO MTR,E
|
|
- WRINT E equivalent to KL10 CONO TIM,E
|
|
- RDINT E equivalent to KL10 CONI TIM,E
|
|
- doubleword timebase, updated via a 16 bits 1usec hardware counter
|
|
|
|
XKL-1 / Toad-1
|
|
--------------
|
|
|
|
- interval timer: 8-bit hardware counter incremented every 128 usec, on overflow signals interrupt and
|
|
reloads the interval (between 1 and 127, inclusive)
|
|
- WRITM E loads a new interval, assigns priority level, and optionally clears the timer
|
|
- interrupt vectors via an emulated XPCW using locations 100-103 in the EPT
|
|
- RDITM E reads the state of the timer (except for its current count)
|
|
|
|
- time base: a 60-bit count updated via a 16 bit 500 ns (2 MHz) hardware counter
|
|
- RDTIME E reads the time base as a doubleword
|
|
- WRTIME E writes a doubleword to the time base, except for the bits corresponding to the hardware counter
|
|
- looks Jupiter-like
|
|
|
|
- watchdog: a hardware decrementer with 32.8 millisecond intervals, except when the processor is halted
|
|
or the watchdog is disabled (via WCTRLF E)
|
|
- WRKPA Y writes 18-bit immediate to the decrementer
|
|
- if the decrementer reaches zero, it signals a "keep-alive" interrupt which is very much like an NMI
|