Posts: 297
Threads: 25
Joined: Nov 2006
Does anyone know if any other peripheral select addresses
beside the ones that I know about (FB - timer, FC - card
reader, FD - display, FE - wand, 10 - halfnut display)
are used? In particular, what about the HP-IL adapter
or any of the printers? I want to avoid any potential
conflicts with something that I am thinking about designing.
Thanks,
Monte
Posts: 1,841
Threads: 54
Joined: Jul 2005
Have you checked the SDK41 manual on TOS?
HTH
Raymond
(TOS = Warren Furlow's calculator site, linked from here;-)
Posts: 297
Threads: 25
Joined: Nov 2006
Yes, that's the first place I checked.
Thanks,
Monte
Posts: 2,309
Threads: 116
Joined: Jun 2005
HP-IL, the 82143A, and the 82442A don't use peripheral select.
HP originally chose addresses Fx because they could do an "ldi 3fx" followed by a ram slct and a perf slct, in order to disable RAM and enable the peripheral. This worked because there wasn't RAM at addresses 3Fx. As a result when they introduced the Extended Memory modules, they had to omit addresses 2Fx/3Fx from those modules.
With the halfnut LCD controller, they apparently decided that the same idea would work for addresses 010 through 03f.
If you don't need to use the same constant for both disabling RAM and enabling your peripheral, you could use almost anything other than 10 and fb through fe.
Posts: 297
Threads: 25
Joined: Nov 2006
Okay, I just wanted to make sure that I didn't step on something
that already existed.
So that means that the peripheral flags are dedicated to a specific
function and are not conditioned by the peripheral select. In the
SDK41 documentation it implies that only peripheral flags 0, 3,
4, and 5 are not committed? But perhaps 0 and 5 are used for
something with the zenrom since these two have mnemonics in the
"zencode" column?
I was hoping to use a pair of peripheral flags to signal status
for my design, but perhaps I'll have to use a data read instead.
Thanks,
Monte
Posts: 2,309
Threads: 116
Joined: Jun 2005
Of the 14 possible peripheral flags, only flags 3 and 4 were not assigned to any released HP product. Here's a table from my working notes:
flag test
num opcode device mnem expansion
---- ------ ------ ----- ------------------------
0 3ac 82143A ?PBSY Printer BuSY
1 32c 82104A ?CRDR CaRD Reader
2 22c 82153A ?WNDB WaND Byte available
3 02c none ?PF 3
4 06c none ?PF 4
5 0ac 82242A ?EDAV Emitter Diode AVailable
6 16c 82160A ?IFCR InterFace Clear Received
7 2ac 82160A ?SRQR Service ReQuest Received
8 12c 82160A ?FRAV FRame AVailable
9 26c 82160A ?FRNS Frame Received Not as Sent
10 0ec 82160A ?ORAV Output Register AVailable
11 1ac 82182A ?TFAIL
12 36c 82182A ?ALM ALarM
13 2ec all ?SERV SERVice
I would strongly advise against using more than one flag for a new device. These flags are only intended to be used to quickly identify conditions that awaken a 41 from light sleep, so it is reasonable for a device to use one of them, but to further distinguish which condition of that device resulted in the wakeup, data should be read from the device.
HP chose to use up five of the scarce flags for HP-IL, but that probably seemed like a reasonable use of the scarce resource because it was expected that almost all further peripherals would use HP-IL rather than dedicated interface modules.