RT-11 is "famous" for self-modifying code. That fact makes it so much
fun to debug when you have a real-time bug. Been there... Done that...
-Steve
-----Original Message-----
From: owner-hecnet at Update.UU.SE
[mailto:owner-hecnet at Update.UU.SE] On Behalf Of Johnny Billquist
Sent: Monday, June 04, 2012 22:52
To: hecnet at Update.UU.SE
Subject: Re: [HECnet] Speaking of IDLE
On 2012-06-05 04:44, Johnny Billquist wrote:
On 2012-06-05 03:24, Steve Davidson wrote:
Paul,
I think that depends on whether or not the idle loop
pattern (for the
console light display) is being used. The lights pattern most
certainly makes use of the WAIT instruction. The SJ monitor is a
completely different beast than FB and friends - no
question about it!
Well, there are more ways to spin a cat... Or spin the
lights in this
case. WAIT is one way to show something on the front panel. Loading
the display register is another.
RT-11 is in fact using the Switch Register at 177570 to
display things
on the front panel.
Look at RMONFB.MAC, around line 4800, to see the code.
(Every time I read the RT-11 sources, I feel a little dirty... No
offense meant for the RT-11 fans around here or anywhere.)
It's all conditionalized on LIGH$T, and there is not even
the option
if you are running the SJ monitor...
Aw, heck. I might as well post the code, since isn't that long...
====
3$:
.IF NE LIGH$T
.ROM DEC LITECT,VALUE=1
BNE 8$
ADD #512.,LITECT
4$: ROL 7$
BNE 5$
COM 7$
5$: BCC 6$
ADD #100,4$
BIC #200,4$
6$: BIT #LIGHT$,CONFG2
BEQ 8$
MOV (PC)+,@(PC)+
7$: .WORD 0,SR
.ENDC
8$:
..NULJ::
====
(And yes, SR is defined as 177570)
(And maybe you understand why I feel dirty when reading RT-11
after this fine example of code... It's cut-and-pasted right
from the source, it really looks just like this.)
Johnny
--
Johnny Billquist || "I'm on a bus
|| on a psychedelic
trip
email: bqt at softjar.se || Reading murder books
pdp is alive! || tryin' to stay hip" -
B. Idol