home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #27 / NN_1992_27.iso / spool / comp / sys / hp48 / 5839 < prev    next >
Encoding:
Internet Message Format  |  1992-11-19  |  7.3 KB

  1. From: akcs.joehorn@hpcvbbs.cv.hp.com (Joseph K. Horn)
  2. Date: Fri, 20 Nov 1992 05:40:03 GMT
  3. Subject: Re: Saturn machine language reference (LONG)
  4. Message-ID: <2b0c718f.2179.1comp.sys.hp48.1@hpcvbbs.cv.hp.com>
  5. Path: sparky!uunet!zaphod.mps.ohio-state.edu!wupost!sdd.hp.com!hpscit.sc.hp.com!scd.hp.com!hpscdm!cupnews0.cup.hp.com!news1.boi.hp.com!hp-pcd!hpcvra!rnews!hpcvbbs!akcs.joehorn
  6. Newsgroups: comp.sys.hp48
  7. References: <STEVEV.92Nov15033151@miser.uoregon.edu>
  8. Lines: 150
  9.  
  10. * * * * *     Saturn Processor Reference Update     * * * * *
  11.  
  12. stevev@miser.uoregon.edu [Steve VanDevender] posted a Saturn ML
  13. reference which I found very well organized and a valuable addition to
  14. the corpus of HP48 Hacker's Notes.  However, its instruction timing
  15. data is based on the specifications of an older version of the
  16. processor which had fewer instructions, and a few which were slower.
  17. Also, some instructions were missing.  If you keep Saturn notes,
  18. please update as follows.
  19.  
  20. HP's own SASM.DOC needs to be updated with this too, since it was
  21. copied from the HP-71 IDS for the most part.
  22.  
  23. Thanks to Alonzo Gariepy and Preston Brown for most of this stuff.
  24. Although I proofread it twice, blame any typos o me, however.
  25. Please post additions and/or corrections to this update.  Thanx.
  26.  
  27. -jkh-
  28.  
  29. =====================================================================
  30.  
  31. The following instructions had timings of "???" in Steve's table.
  32. BTW, none of these instructions were in the HP-71's processor.
  33.  
  34. Field & register mnemonics are as per Steve's symbol table.
  35. Specially important: "m" stands only for A or C, and "L" stands for
  36. the data length (the number of nibbles being handled).
  37.  
  38. AG MNEMONIC         HP MNEMONIC         CYCLES
  39. -----------         -----------         ------
  40. ADD.g n,r           r=r+CON g,n            5+L
  41. BRBC h,A,PC+5+b     ?ABIT=0 n             16/9  \
  42. BRBC h,C,PC+5+b     ?CBIT=0 n             16/9   \  yes=16
  43. BRBS h,A,PC+5+b     ?ABIT=0 n             16/9   /   no=9
  44. BRBS h,C,PC+5+b     ?CBIT=0 n             16/9  /
  45. CLRB h,C            CBIT=0 n               6
  46. JUMP.A @m           PC=(m)                16
  47. MOVE.g m,t          m=t.F g                6+L
  48. MOVE.g t,m          t=m.F g                6+L
  49. MOVE.A PC,m         m=PC                   9
  50. MOVE.Pn h,A         LAHEX nnnnn            5+L  (not 6+L)
  51. RETBC h,A           ?ABIT=0 n             16/9
  52. RETBC h,C           ?CBIT=0 n             16/9
  53. RETBS h,A           ?ABIT=1 n             16/9
  54. RETBS h,C           ?CBIT=1 n             16/9
  55. SETB h,m            mBIT=1 n               6
  56. SRB.g r             rSRB.F g               6+L
  57. SUB.g n,r           r=r-CON g,n            5+L
  58. SWAP.g m,t          mtEX.F g               6+L
  59. SWAP.A m,PC         mPCEX                 16
  60.  
  61. =====================================================================
  62.  
  63. The following instructions are missing from Steve's main document but
  64. are present in the disassembly summary appendix without description or
  65. timing data.  The ones marked with an asterisk (*) were not in the
  66. HP-71's processor.
  67.  
  68. AG MNEMONIC         HP MNEMONIC         CYCLES   OPCODE    NEW
  69. -----------         -----------         ------   ------    ---
  70.  
  71. BUSCB               BUSCB                  7     8083       *
  72.   Reserved.  Same as NOP (all devices ignore NSTR {Not STRobe line:
  73.   system clock, active low} until a new command is loaded) for the
  74.   internal peripherals.  Not issued by the CPU.
  75.  
  76. BUSCC               BUSCC                  6     80B        -
  77.   The device currently addressed by its local data pointer performs a
  78.   specific operation as defined by the individual device.  This
  79.   command is not issued by the CPU.
  80.  
  81. BUSCD               BUSCD                  7     808D       *
  82.   Reserved.  Same as NOP (all devices ignore NSTR {Not STRobe line:
  83.   system clock, active low} until a new command is loaded) for the
  84.   internal peripherals.  Not issued by the CPU.
  85.   
  86. CONFIG              CONFIG                11     805        -
  87.   Configures an unconfigured device that has DAISYIN=1 @C.A; it then
  88.   will no longer respond to either the CONFIGURE or ID bus commands.
  89.  
  90. INTOFF              INTOFF                 5     808F       -
  91.   Masks maskable input register interrupts (ignore interrupts).
  92.   Unmaskable interrupts (always available) are (1) NINTX line pulled
  93.   low, which disables all interrupts and sets HS3 (aka MP, Module
  94.   Pulled hardware status bit); (2) NINT2X, same as NINTX except no
  95.   hardware status bits are set; and (3) IR15X line pulled high,
  96.   readable via the input register commands A=IN (IN.4 A) and C=IN
  97.   (IN.4 C).
  98.  
  99. INTON               INTON                  5     8080       -
  100.   Unmasks maskable input register interrupts (catch interrupts) on the
  101.   KDN line.  If KDN goes high while interrupts are off, it must remain
  102.   high until INTON is executed to generate an interrupt.
  103.  
  104. RSI                 RSI                    6     80810 (?)  -
  105.   ReSet Interrupts.  Causes any input register line high to be
  106.   considered a new interrupt regardless of whether all input register
  107.   lines have returned low.  Documents disagree on opcode; some say
  108.   8081, most say 80810.
  109.  
  110. SHUTDN              SHUTDN                 6     807        -
  111.   Issue the NOP bus command to clear all ops, then issue the SHUTDOWN
  112.   bus command and enter low-power standby state; chained chips respond
  113.   according to their own special requirements.  System clock and
  114.   on-board oscillator are stopped.  Data in CPU resident memory is
  115.   preserved.  However, if SHUTDN is executed when the output register
  116.   is 000, the PC will be set to zero, causing a system halt.  The CPU
  117.   is reawakened by either pulling an input register line high, or by
  118.   driving the NCD line low then releasing it when NSTR (system clock)
  119.   goes low (active).
  120.  
  121. SREQ                SREQ?                  7     80E        -
  122.   Issue the POLL bus command and latch system bus into C.0; HS2 (aka
  123.   SR, the Service Request hardware status bit) is set if C.0 is not
  124.   zero (each bit representing one device's response).
  125.  
  126. UNCNFG              UNCNFG                12     804        -
  127.   Unconfigure the configured device @C.A; it then will only respond to
  128.   the CONFIGURE and ID bus commands.
  129.  
  130. RESET               RESET                  6     80A        -
  131.   Issue the RESET bus command; chained chips perform a local reset.
  132.   Unconfigures all soft-configured devices.
  133.  
  134. =====================================================================
  135.  
  136. The following instructions have wrong timing in Steve's table and in
  137. HP's SASM.DOC.  That data was correct for the HP-71's processor, but
  138. not for the HP48's, which is faster by one cycle for these
  139. instructions:
  140.  
  141. AG MNEMONIC         HP MNEMONIC         CYCLES
  142. -----------         -----------         ------
  143. CALL.4 PC+b+6       GOSUBL                14
  144. CLR.X ST            CLRST                  5
  145. MOVE.X ST,C         C=ST                   5
  146. MOVE.X C,ST         ST=C                   5
  147. MOVE.Pn h,C         LCHEX                  2+L  **
  148. SWAP.X C,ST         CSTEX                  5
  149.  
  150. ** note: LCHEX's timing may be confusing; the opcode is 3nhh..h, where
  151. n is *one less* than the number of hex digits to be handled, so its
  152. timing is 3+n (using HP's documentation notation), which is the same
  153. as 2+L (using Steve's notation).
  154.  
  155. =====================================================================
  156.  
  157. -Joseph K. Horn-   -Peripheral Vision, Ltd.-
  158. akcs.joehorn@hpcvbbs.cv.hp.com
  159. Disclaimer: I don't work for HP, EduCALC, or anybody else.
  160.  
  161.