home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1993 #1 / NN_1993_1.iso / spool / comp / sys / hp48 / 6915 < prev    next >
Encoding:
Internet Message Format  |  1993-01-11  |  3.7 KB

  1. Path: sparky!uunet!haven.umd.edu!darwin.sura.net!newsserver.jvnc.net!rutgers!modus!gear!cflav!flavio
  2. From: flavio@cflav.sublink.org (Flavio Casetta)
  3. Newsgroups: comp.sys.hp48
  4. Subject: Re: Sorting With SmartROM
  5. Message-ID: <ywo5wB1w164w@cflav.sublink.org>
  6. Date: 9 Jan 93 19:15:45 GMT
  7. References: <2b4b6839.2576comp.sys.hp48@hpcvbbs.cv.hp.com>
  8. Organization: Flavio Casetta, Reg'd HP ISV & OEM of handheld computers.
  9. Lines: 86
  10.  
  11. akcs.ejf@hpcvbbs.cv.hp.com (Ed Fasula) writes:
  12.  
  13. > I want to sort a stack of lists by the first object.  How does one do
  14. > this with SmartROM?  I looked into the hidden commands and there was
  15. > refrence to sortn, sortIDONTREMEMBER, anyway only sortany and sort
  16. > show-up in the index.  
  17.  
  18. sortany goes for you (the name should tell you something...)
  19.  
  20. Let's create a program sorting the list on the first element.
  21.  
  22. It will take as input a stack like this:
  23.  
  24. N+1:  list1
  25. N  :  list2
  26. ...:  ...
  27. 2  :  listN
  28. 1  :  N        real counter
  29.  
  30. and will rearrange the lists according to the order of their first element.
  31. The program will check that the n objects are actually on the stack and they 
  32. are lists before going on with the sorting process. If any of these conditions
  33. is violated it issues an error. The program saves correctly the LASTARG 
  34. arguments and is provided with argument checking as well stack integrity 
  35. capabilities so that you haven't to worry about crashes.
  36. It works even if the stack contains merely a 0 (a null meta object).
  37.  
  38. Type in the following :
  39.  
  40. 821 189 ->Xlib      CKOBJ          checks if the elements are all of the same
  41.                                    type
  42. #62266h ->EXT       DUP#0=         True if there are no list
  43. #61993h ->EXT       case           if True then do next and exit
  44. #18DBFh ->EXT       UNCOERCE       gets back the 0
  45. #032C2h ->EXT       Over
  46. #62216h ->EXT       TYPELIST?      checks if they are lists
  47. #63B46h ->EXT       NcaseTYPEERR   if not Bad Argument Type error
  48. #06E97h ->EXT       '              pushes the following program as argument for
  49.                                    sortany
  50.   #05089h ->EXT       CARCOMP      extracts the first element (1)
  51.   #03223h ->EXT       Swap
  52.   #05089h ->EXT       CARCOMP      extracts the first element (2)
  53.   #03223h ->EXT       Swap
  54.   #06E97h ->EXT       '            pushes the following command on the stack
  55.   #1EC5Dh ->EXT       >            compares (1) > (2) ?
  56.   #18F23h ->EXT       EvalNoCK     EVALuates > without affecting LASTARG
  57.   #2A7CFh ->EXT       %0<>         translates into system boolean
  58.   8 ->PRG                          collects the subprogram
  59.  
  60. 821 110 ->Xlib      sortany        calls the generic sort algorithm
  61. #18DBFh ->EXT       UNCOERCE       converts the counter from sysbin to real
  62. 11 ->PRG                           collects the program
  63.  
  64. 'SORTLIST1' [STO]
  65.  
  66. the checksum is #5B77h
  67.  
  68. now you can sort any set of lists whose first elements are comparable with >.
  69.  
  70. > Where are these other commands and what do they
  71. > do.  
  72.  
  73. sortany is a hidden command, therefore it is described in the hidden commands
  74. reference manual.
  75.  
  76. > I also got a whole bunch of programs with SmartROM (on disk) and I
  77. > don't know what 90% of them do.  This package is confusing!  
  78.  
  79. As usual you don't tell us the name of the programs.
  80. How can I tell you what they do if you don't tell me the name ?
  81.  
  82. The SmartROM may be confusing. Since it is not toy but a very complex 
  83. application development platform, I can understand you are confused.
  84.  
  85. Simple software is seldom powerful.
  86.  
  87. Bye
  88.  
  89. Flavio
  90.  
  91.  
  92. __
  93. * flavio@cflav.sublink.org (Flavio Casetta)
  94.  ---------------------------------------------------------------------
  95. | The usual disclaimer does not apply      |   +59 440404 (Vox populi) |
  96. | ForCALC's opinions are necessarily mine  |   +59 304490 (Fax dei)    |
  97.