Mike B.
unread,Feb 15, 2012, 2:36:56 PM2/15/12You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to
Today I’ve written a little assembler program to confirm my assumption
about the following (wrong) sentence in the ACWG (p 86):
"When an communication instruction is executed the value of Wdesc, the
pointer to the data and the message length are copied into registers
in the link hardware, and the process is descheduled. The value of
Wdesc is also copied into the relevant link channel control word - but
this is to aid analysing only."
The program replaces one Wdesc with another Wdesc. To afford this I’ve
connected also Link1In with Link1Out on my transputer.
C:\Transputer\d72uni>ispy
Using \\.\pcil1 ispy 3.23
# Part rate Link# [ Link0 Link1 Link2 Link3 ] by Mike!
0 T805d-25 1.2M 0 [ HOST 0:1 ... ... ]
And it’s possible! So, why was this sentence written? Maybe the
priority is transferred to the link engine and there is a slightly
different handling when it comes to resynchronize with the CPU – but
this is not easy to inspect – and not really important.
When I run the program without changing the Wdesc the outcome is:
22 00 00 00
40 01 00 80
01 00 00 00
07 00 00 00
01 00 00 00
00 01 00 80
01 00 00 00
EE AD 00 00
After inserting the replace code the output becomes:
22 00 00 00
40 01 00 80
01 00 00 00
07 00 00 00
33 03 00 00
80 01 00 80
00 00 00 00
EE AD 00 00
I will post the code in the subsequent message.
Happy assembler reading!
Mike
PS: Don’t simply write MINT into the channel control word. The link is
still active and maybe the CPU schedules a kinky process! Use resetch
instead.