You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When running a Monitor v11 application, such as SMALLTALK.OBJ, or EDITOR.OBJ, the mouse does not appear to work. The white dot lisaem cursor will move, but the native cursor rarely changes position. The times I have seen it move tend to be when I'm using the keyboard (e.g. cmd-tab to switch out of lisaem), at which point it tends to move in ~100px increments before disappearing.
SmalltalkCursor.mov
The following is from a lisaem Trace Log and may shed some light as to the problem:
src/lisa/motherboard/glue.c:check_running_lisa_os:316:Lisa ROM v1:00fe06ec v2:00fe06ec
src/lisa/motherboard/glue.c:check_running_lisa_os:406:Unknown OS Running: v1=000e7582 v2=000e758a; test1,2,3: 00000000, 00000000, 00000000
src/lisa/motherboard/glue.c:check_running_lisa_os:406:Unknown OS Running: v1=000e2980 v2=000e2ad2; test1,2,3: 00000000, 00000000, 00000000
src/lisa/motherboard/glue.c:check_running_lisa_os:406:Unknown OS Running: v1=000da930 v2=000e2ad2; test1,2,3: 00000000, 00000000, 00000000
src/lisa/motherboard/glue.c:check_running_lisa_os:406:Unknown OS Running: v1=000e2980 v2=000e2ad2; test1,2,3: 00000000, 00000000, 00000000
src/lisa/motherboard/glue.c:check_running_lisa_os:406:Unknown OS Running: v1=000e2980 v2=000e2ad2; test1,2,3: 000e7524, 000e75ba, 000e75ca
So lisaem appears to try and fingerprint the OS via entries in the exception vectors, specifically the external 1 and 2 interrupts? And one of these is from the COPS?
Some further snooping around the string mouse would seem to confirm this with the external autovector line appearing a few lines above mouse:
And searching for those hex values returns a single hit in DRIVERS.OBJ. Which is where I would guess these kb/mouse routines would reside. And remarkably / happily, this irq handler appears very similar to Level2 in the Lisa source file LIBHW-DRIVERS.TEXT.unix.txt – which makes the rest of this a breeze...
Following the nest of branches from that IRQ handler, we end up in one that looks quite similar to COPS1 in the Lisa code:
e2b90 move.b d0, 0x10ee ; MOVE.B D0,MousDx ; save mouse delta-x
e2b94 move.b #0x2, 0x1013 ; MOVE.B #2,COPSState ; new state -- waiting for Dy
And right beneath it, what looks quite similar to COPS2:
e2ba8 move.b d0, 0x10ef ; MOVE.B D0,MousDy ; save mouse delta-y
e2bac clr.b 0x1013 ; MOVE.B #0,COPSState ; new state -- normal wait
And according to the top of Monitor_11_Listing_Sep82.pdf, these would all be in the range 1000 17ff Data Area for DRIVERS.OBJ
After the presumable MouseDy code, it jumps to a routine that starts moving bits from memory into registers:
Disassembling Monitor 12's DRIVERS.OBJ, all of the routines look the same, just with the low memory addresses changed. The chunk of code above maps to the following in v12:
As the glue file uses 0xfec and 0xfee for the mouse x/y pointers on Monitor 12, it seems quite probable using 0x10ea and 0x10ec for Monitor 11 would resolve the issue.
The text was updated successfully, but these errors were encountered:
When running a Monitor v11 application, such as SMALLTALK.OBJ, or EDITOR.OBJ, the mouse does not appear to work. The white dot lisaem cursor will move, but the native cursor rarely changes position. The times I have seen it move tend to be when I'm using the keyboard (e.g. cmd-tab to switch out of lisaem), at which point it tends to move in ~100px increments before disappearing.
SmalltalkCursor.mov
The following is from a lisaem Trace Log and may shed some light as to the problem:
Snooping to see where v1 and v2 get plucked from:
lisaem/src/lisa/motherboard/glue.c
Lines 338 to 339 in 61d55b3
So lisaem appears to try and fingerprint the OS via entries in the exception vectors, specifically the external 1 and 2 interrupts? And one of these is from the COPS?
Some further snooping around the string
mouse
would seem to confirm this with the external autovector line appearing a few lines abovemouse
:Looking further in the trace for the instructions executed from this address:
And searching for those hex values returns a single hit in
DRIVERS.OBJ
. Which is where I would guess these kb/mouse routines would reside. And remarkably / happily, this irq handler appears very similar toLevel2
in the Lisa source fileLIBHW-DRIVERS.TEXT.unix.txt
– which makes the rest of this a breeze...Following the nest of branches from that IRQ handler, we end up in one that looks quite similar to COPS1 in the Lisa code:
And right beneath it, what looks quite similar to COPS2:
And according to the top of Monitor_11_Listing_Sep82.pdf, these would all be in the range
1000 17ff Data Area for DRIVERS.OBJ
After the presumable MouseDy code, it jumps to a routine that starts moving bits from memory into registers:
And the
0x10ec
and0x10ee
seem similar enough to the existing Monitor values that this all seems plausibly correct:lisaem/src/lisa/motherboard/glue.c
Lines 384 to 387 in 61d55b3
Disassembling Monitor 12's
DRIVERS.OBJ
, all of the routines look the same, just with the low memory addresses changed. The chunk of code above maps to the following in v12:As the glue file uses
0xfec
and0xfee
for the mouse x/y pointers on Monitor 12, it seems quite probable using0x10ea
and0x10ec
for Monitor 11 would resolve the issue.The text was updated successfully, but these errors were encountered: