home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.sources.hp48
- Path: sparky!uunet!seq!spell
- From: David Waelder <davidw@fib.upc.es>
- Subject: v07i006: sd10_dw - String Displayer 10 lines v1.0, Part01/01
- Message-ID: <1992Sep14.012019.15902@seq.uncwil.edu>
- Followup-To: comp.sys.hp48
- Sender: spell@seq.uncwil.edu (Chris Spell)
- Organization: Univ. of North Carolina @ Wilmington
- Date: Mon, 14 Sep 1992 01:20:19 GMT
- Approved: spell@seq.uncwil.edu
- Lines: 176
-
- Checksum: 3324972336 (verify with brik -cv)
- Submitted-by: David Waelder <davidw@fib.upc.es>
- Posting-number: Volume 7, Issue 6
- Archive-name: sd10_dw/part01
-
-
- BEGIN_DOC sd10.doc
-
- Program, version: SD10 v1.0
- This means: String Displayer 10 lines
- Author: Marc Molin del Castillo
-
- **What does this thing?
- SD10 is a program that permits you display up to 10 lines in your hp48
- and move through it with ease (line up, line down, page up, page down, home
- and end). All you have to do is put a String in level one of the stack and
- voil!. Use the A - B - C - D - E - F keys to move arround and any other key to
- finish. I use it for looking at programs which don't work. First I try to
- find out the problem with the SD10 and afterwards I use the editor of the
- calculator to correct the problem (It's good programming: much less local
- patching!). To do so you just RCL the program in the stack, press the "" and
- then the + key, after you execute SD10.
-
- My friends at the university use it for "memos" at exams. It's very
- useful in that sense, but cheating in exams beeing unfair to others. (Would you
- be happy to know that most of those who work in missile guidance faked all their
- exams through all their career?)
-
- Also I think the SD10 is useful for long instructions. Quest For Leila
- is a nice example.
-
-
- **Details, detalis...
-
- The SD10 allows you about 31 chars. per line depending of the letters
- you use (Due to proportional spacing. In one line fit 22 M's or 66 I's). That
- implies that the amount of information on screen can be 370% (more or less)
- superior to the regular editor screen.
-
- The program keeps record of the flags it changes and the graphics
- screen. If you want to remain things unchanged at the end of the edition
- do not exit the program via the ON/ATTN do it by pressing any other key
- except the A-B-C-D-E-F
-
-
- **A little technical explanation...
-
- I was fed up of horsing arround that small editor our big calculator
- has and so I decided to make a program that could display the more information
- the better. Outputing text in the graphics screen seemed the solution, but
- when I tried to move across the string it was awfuly slow and copying the idea
- from a friend I divided the string in small strings and put them in a list.
- I use a pointer to know what part of the string is displaied and thats all. The
- shredding of the string into lines was very slow so I decided to make it in
- System RPL (my first SysRPL program, snif!) to make it faster (Altough I
- espected it would be faster than it actually is) The part of the shredding is
- explained in the program SD10.s
-
- **Disclaimer and stuff
-
- This program makes use of undocumented features of the hp48 even if
- you can proof that the use of this program bears to data loss, hardware
- malfunction or exam failing the author is responsible... NOT
-
-
-
- Feel free to send all of your money to:
- Marc Moline
- Pza F i Argemi - 4
- 08224 Terrassa (BARCELONA)
- S P A I N
-
- Comments and "keep up with the good job" to be sent to:
- akcs.MarcM@hpcvbbs.cv.hp.com
-
- or DavidW@fib.upc.es
-
-
- For those who have an urge to contact me:
- 93 - 788 01 51 (From Spain)
- xxx(International call) 34(Spain) 3(barcelona) 7880151(my house)
- END_DOC
-
- BEGIN_ASC sd10.asc
- %%HP: T(1)A(D)F(.);
- "D9D20E1632D9D202BA81D9F81D0040D9D209E5502A170DCC2683256119201000
- 01B5464D226EE170D9D2008316119201000032230E0E30337507EE06AF250CAF
- 06FED3022650FED303375032230B21305E170B9F06C0726AF250B2130B213078
- BF18B9C1916C1634E104B023392010000000000000495D2C147A20683A29C2A2
- E24A2173A2339203000000000000019339203000000000000010B21309C2A21C
- 432D6E2010C4D6E2020C435D6E203064C474D6E2030059434D6E2030B424C4D6
- E201095E1632339201000000000000110472C133032339201000000000000110
- 313C1D5032D9D20F52E1D6E201095D6E2020C43533920100000000000001090D
- A13ECB19C2A217CB145632D6E20109597632DCC02D6E20109578BF1173A276BA
- 1D6E2020C4353ECB10A132D6E201096634E147A20E4A20510000000000000000
- 000B2130D6E201096D6E20109590DA1233A2EEDA1B969176BA1D6E2010C4D6E2
- 010966C7D19C2A2DA5E1AE8C1C4232634E147A20E4A205100000000000000000
- 00E4A2051000C300000000000000B2130E1B20790004000038000FBFBFDFEFF7
- F3EBFDF8FF7D2AB8D74BC70FBF1FDFE387FBD1FDF6387DA29ED77AA70FBF0EDF
- E7C7F3E0EDF87C71AAACD769A70F3CFFDF0FE7FBFFFDFEFE7D2AB8D74BC70AE8
- C1D6E2030B424C4743A24A5A147A20E4A20510000000000000000000E4A20510
- 000000000000000000B21300F2E14B2A2F17A133920100000000000001090DA1
- D6BB1FD3326C7D1F1732D9D203392010000000000001105D2C14B2A2B21305DF
- 22EB3A1D6E20109576BA145632D6E20109597632DCC02B213049632606E1ED2A
- 269112D6E203064C474F76C1D6E2030059434634E1DCC023FBF1EF53293632B2
- 13051E2"
- END_ASC
-
-
- BYTES: #2E15h 6415
-
- BEGIN_UU sd10.uue
- begin 644 sd10
- M2%!(4#0X+46=+>!A(YTM(*L8G8_1``2=+9!>!:)QT,QB.%(6D0(!`!!;9-0B
- MYAX'G2T`.&$1*1```",RX.`#,U=P[F#Z4L#Z8.\](&(%[STP<P4C,K`2`^5Q
- ML/E@#">F+P4K,;`2`X?[@9L<&<9A0QY`"S*3`@$```````"4U<)!IP*&HY(L
- M*BZD$C<J,RDP````````$#F3`@,````````!*S&0+"K!--+F`@%,;2X@P#35
- MY@(#1DQ';2XP`)4TU.8"`TM"3&TN$)#E82,S*1`````````10"<<,S`RDP(!
- M```````0`1/#T04CG2WP)1YM+A"0U>8"`DQ3,RD0````````$)#0&N.\D2PJ
- M<;Q!92-M+A"0E6<CS0S2Y@(!68?[$3<J9ZO1Y@("3%/CO`$:(VTN$)!F0QYT
- M*N"D`A4```````````"P$@-M+A"0UN8"`5D)K2$S*NZML6D99ZO1Y@(!3&TN
- M$)!F?!W)HM):'NK(P20C-N1!IP).*E`!````````````3BI0`0`\````````
- M`"LQX+$"EP!```"#`/#[^_W^?S^^WX__UZ*+?;1\\/OQ_3YXOQW?;X/7*NE]
- MIWKP^^#]?GP_#MZ/QQ>JRGV6>O##__WP?K__W^_OUZ*+?;1\H(X<;2XPL"3$
- M=#0JI*5!IP).*E`!````````````3BI0`0```````````"LQ`"\>M*+R<1HS
- M*1`````````0D-`:;;OQ/2/&U_%Q(YTM,),"`0``````$`'5PD$K*BLQ4/TB
- MOJ/1Y@(!66>K064C;2X0D)5G(\T,LA(#E#9B8![>HF(9(6TN,$=/1G'&TN
- 4,`"5-&1#'LT,,K\?_C628R,K,0`K
- `
- end
- sum -r/size 52758/919 section (from "begin" to "end")
- sum -r/size 61164/650 entire input file
- END_UU
-
-
- BEGIN_SRC sd10.s
- ASSEMBLE ( *HEADER OF THE FILE* )
- NIBASC /HPHP48-E/
- RPL
- ::
-
- CK1NOLASTWD ( *SEE IF THERE'S ANYTHING IN THE STACK* )
-
- CK&DISPATCH0 str ( *IT MUST BE AN STRING* )
-
- ::
-
- NULL{} ( *EMPTY LIST* )
-
- BEGIN
-
- OVERDUP NEWLINE$ #1 ( *CHECK FOR NEWLINES IN THE STRING* )
-
- POS$ DUP#0<> ( *IF POS$ RETURNS 0 WE FINISH* )
-
- WHILE
-
- SWAPOVER #1 SWAP #1- ( *WE CUT A LINE* )
-
- SUB$ ROTSWAP >TCOMP ( *AND CATENATE IT TO THE LIST* )
-
- UNROT #1+ OVERLEN$ #1+ ( *LEAVE THE REST OF THE STRING* )
-
- SUB$ SWAP ( *ON THE STACK*)
-
- REPEAT
-
- SWAPDROP DROPSWAP >TCOMP ( *CUT AND PASTE OF THE LAST BITS* )
-
- ;
-
- ;
- END_SRC
-