home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #26 / NN_1992_26.iso / spool / comp / sys / hp48 / 5598 < prev    next >
Encoding:
Text File  |  1992-11-08  |  3.9 KB  |  80 lines

  1. Newsgroups: comp.sys.hp48
  2. 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
  3. From: mheiskan@snakemail.hut.fi (Mika Heiskanen)
  4. Subject: Re: (up/dn)MATCH Q's...
  5. In-Reply-To: ins534z@aurora.cc.monash.edu.au's message of 6 Nov 92 01:21:11 GMT
  6. Message-ID: <MHEISKAN.92Nov6185057@lk-hp-9.hut.fi>
  7. Sender: usenet@nntp.hut.fi (Usenet pseudouser id)
  8. Nntp-Posting-Host: lk-hp-9.hut.fi
  9. Reply-To: mheiskan@.vipunen.hut.fi
  10. Organization: Helsinki University of Technology, Finland
  11. References: <Bx5Aoy.L7A@ireq.hydro.qc.ca> <STEVEV.92Nov3113953@miser.uoregon.edu>
  12.     <1992Nov3.220518.9744@tamsun.tamu.edu>
  13.     <ins534z.721012871@aurora.cc.monash.edu.au>
  14. Date: 06 Nov 92 16:50:57 GMT
  15. Lines: 63
  16.  
  17. In article <ins534z.721012871@aurora.cc.monash.edu.au> ins534z@aurora.cc.monash.edu.au (Quetzal) writes:
  18.  
  19. >The RULES menu does this by operating on a string containing the algebraic,
  20. >I'm led to believe.  It formats it for the EquationWriter, but all it
  21. >is is a string.  Consult an expert on this.  I'm not.
  22.  
  23. No, it is a Meta object. Commands in rules menu work like this:
  24.  
  25. For each internal function the are the so called algebraic flags. One of them
  26. is for indicating that there is a pointer after the program itself pointing
  27. to a list of rules commands that suit that particular function. These are
  28. then appended to the rules that work for all commands, ie DNEG, DINV etc.
  29. This list is then shown in the rules menu.
  30. When you press one of these keys, you start a primitive code object that
  31. calls a special dispatching routine, which checks *addresses* of the first
  32. objects in the meta. After that, the eqwr display is rebuilt.
  33. For an example here's a disassembly of the primitive executed by TRG*:
  34.  
  35. 5C91D P  MTRG*
  36.  
  37. 5C91D:5C922 Prefixed MC    |  
  38. 5C922:34E2EB5   LC(5)   #5BE2E  ; rf r_x+ 
  39. 5C929:8F9F6F5   GOSBVL  #5F6F9  ; mc NS:ObDispatch 
  40. 5C930:31000             | :: xSIN       | :: HP:x+      | Any   | Any   | Any
  41. 5C935:29E200F0650       ; ROMPTR 240 86
  42. 5C940:32000             | :: xSIN       | :: HP:x-      | Any   | Any   | Any
  43. 5C945:29E200F0650       ; ROMPTR 240 86
  44. 5C950:41000             | :: xCOS       | :: HP:x+      | Any   | Any   | Any
  45. 5C955:29E200F0750       ; ROMPTR 240 87
  46. 5C960:42000             | :: xCOS       | :: HP:x-      | Any   | Any   | Any
  47. 5C965:29E200F0750       ; ROMPTR 240 87
  48. 5C970:61000             | :: xSINH      | :: HP:x+      | Any   | Any   | Any
  49. 5C975:29E200F0950       ; ROMPTR 240 89
  50. 5C980:62000             | :: xSINH      | :: HP:x-      | Any   | Any   | Any
  51. 5C985:29E200F0950       ; ROMPTR 240 89
  52. 5C990:71000             | :: xCOSH      | :: HP:x+      | Any   | Any   | Any
  53. 5C995:29E200F0A50       ; ROMPTR 240 90
  54. 5C9A0:72000             | :: xCOSH      | :: HP:x-      | Any   | Any   | Any
  55. 5C9A5:29E200F0A50       ; ROMPTR 240 90
  56. 5C9B0:81000             | :: xTANH      | :: HP:x+      | Any   | Any   | Any
  57. 5C9B5:29E200F0B50       ; ROMPTR 240 91
  58. 5C9C0:82000             | :: xTANH      | :: HP:x-      | Any   | Any   | Any
  59. 5C9C5:29E200F0B50       ; ROMPTR 240 91
  60. 5C9D0:51000             | :: xTAN       | :: HP:x+      | Any   | Any   | Any
  61. 5C9D5:29E200F0850       ; ROMPTR 240 88
  62. 5C9E0:52000             | :: xTAN       | :: HP:x-      | Any   | Any   | Any
  63. 5C9E5:29E200F0850       ; ROMPTR 240 88
  64. 5C9F0:F                 ; End of Data
  65.  
  66. Thus TRG* does transform (In MATCH terminology):
  67. SIN(&1+&2), SIN(&1-&2) ... TAN(&1-&2).
  68.  
  69. This dispatching is much faster than using the match commands. That is why
  70. for instance COLCT uses some of these primitives. Should anybody want to
  71. use these entries, just look into entries.Z around address 5C000 and the
  72. comments for ObDispatch at 5F6F9.
  73.  
  74. The old disassembler in seq doesn't disassemble these calls correctly. I'll
  75. update it as soon as I've gone through the entries again. Until then you're
  76. free to email and ask for the source.
  77.  
  78. --
  79. --> mheiskan@vipunen.hut.fi
  80.