home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.sys.hp48
- Path: sparky!uunet!charon.amdahl.com!pacbell.com!ames!saimiri.primate.wisc.edu!zaphod.mps.ohio-state.edu!sol.ctr.columbia.edu!ira.uka.de!gmd.de!Germany.EU.net!mcsun!news.funet.fi!funic!nntp.hut.fi!nntp.hut.fi!mheiskan
- From: mheiskan@snakemail.hut.fi (Mika Heiskanen)
- Subject: Re: (up/dn)MATCH Q's...
- In-Reply-To: ins534z@aurora.cc.monash.edu.au's message of 6 Nov 92 01:21:11 GMT
- Message-ID: <MHEISKAN.92Nov6185057@lk-hp-9.hut.fi>
- Sender: usenet@nntp.hut.fi (Usenet pseudouser id)
- Nntp-Posting-Host: lk-hp-9.hut.fi
- Reply-To: mheiskan@.vipunen.hut.fi
- Organization: Helsinki University of Technology, Finland
- References: <Bx5Aoy.L7A@ireq.hydro.qc.ca> <STEVEV.92Nov3113953@miser.uoregon.edu>
- <1992Nov3.220518.9744@tamsun.tamu.edu>
- <ins534z.721012871@aurora.cc.monash.edu.au>
- Date: 06 Nov 92 16:50:57 GMT
- Lines: 63
-
- In article <ins534z.721012871@aurora.cc.monash.edu.au> ins534z@aurora.cc.monash.edu.au (Quetzal) writes:
-
- >The RULES menu does this by operating on a string containing the algebraic,
- >I'm led to believe. It formats it for the EquationWriter, but all it
- >is is a string. Consult an expert on this. I'm not.
-
- No, it is a Meta object. Commands in rules menu work like this:
-
- For each internal function the are the so called algebraic flags. One of them
- is for indicating that there is a pointer after the program itself pointing
- to a list of rules commands that suit that particular function. These are
- then appended to the rules that work for all commands, ie DNEG, DINV etc.
- This list is then shown in the rules menu.
- When you press one of these keys, you start a primitive code object that
- calls a special dispatching routine, which checks *addresses* of the first
- objects in the meta. After that, the eqwr display is rebuilt.
- For an example here's a disassembly of the primitive executed by TRG*:
-
- 5C91D P MTRG*
-
- 5C91D:5C922 Prefixed MC |
- 5C922:34E2EB5 LC(5) #5BE2E ; rf r_x+
- 5C929:8F9F6F5 GOSBVL #5F6F9 ; mc NS:ObDispatch
- 5C930:31000 | :: xSIN | :: HP:x+ | Any | Any | Any
- 5C935:29E200F0650 ; ROMPTR 240 86
- 5C940:32000 | :: xSIN | :: HP:x- | Any | Any | Any
- 5C945:29E200F0650 ; ROMPTR 240 86
- 5C950:41000 | :: xCOS | :: HP:x+ | Any | Any | Any
- 5C955:29E200F0750 ; ROMPTR 240 87
- 5C960:42000 | :: xCOS | :: HP:x- | Any | Any | Any
- 5C965:29E200F0750 ; ROMPTR 240 87
- 5C970:61000 | :: xSINH | :: HP:x+ | Any | Any | Any
- 5C975:29E200F0950 ; ROMPTR 240 89
- 5C980:62000 | :: xSINH | :: HP:x- | Any | Any | Any
- 5C985:29E200F0950 ; ROMPTR 240 89
- 5C990:71000 | :: xCOSH | :: HP:x+ | Any | Any | Any
- 5C995:29E200F0A50 ; ROMPTR 240 90
- 5C9A0:72000 | :: xCOSH | :: HP:x- | Any | Any | Any
- 5C9A5:29E200F0A50 ; ROMPTR 240 90
- 5C9B0:81000 | :: xTANH | :: HP:x+ | Any | Any | Any
- 5C9B5:29E200F0B50 ; ROMPTR 240 91
- 5C9C0:82000 | :: xTANH | :: HP:x- | Any | Any | Any
- 5C9C5:29E200F0B50 ; ROMPTR 240 91
- 5C9D0:51000 | :: xTAN | :: HP:x+ | Any | Any | Any
- 5C9D5:29E200F0850 ; ROMPTR 240 88
- 5C9E0:52000 | :: xTAN | :: HP:x- | Any | Any | Any
- 5C9E5:29E200F0850 ; ROMPTR 240 88
- 5C9F0:F ; End of Data
-
- Thus TRG* does transform (In MATCH terminology):
- SIN(&1+&2), SIN(&1-&2) ... TAN(&1-&2).
-
- This dispatching is much faster than using the match commands. That is why
- for instance COLCT uses some of these primitives. Should anybody want to
- use these entries, just look into entries.Z around address 5C000 and the
- comments for ObDispatch at 5F6F9.
-
- The old disassembler in seq doesn't disassemble these calls correctly. I'll
- update it as soon as I've gone through the entries again. Until then you're
- free to email and ask for the source.
-
- --
- --> mheiskan@vipunen.hut.fi
-