🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: comp.sources.hp48
1 messages
1 total messages Started by David Waelder Mon, 14 Sep 1992 01:20
v07i006: sd10_dw - String Displayer 10 lines v1.0, Part01/01
#26
Author: David Waelder
Date: Mon, 14 Sep 1992 01:20
173 lines
6878 bytes
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
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads