Here is a little set of programs for sketching pictures on an HP28S. They use DGTIZ, so I assume that you know how to digitize points using DGTIZ and INS (if not, reread the owners manual). When you start, you either have a string on the stack which is an old picture you want to modify, or you want to start a fresh picture. You then press PICS to start. You are given a screen, and are in DGTIZ mode. You then digitize any number of points, and press ON to continue. You will see that the stack has three items in it: 1. A list of the points you just digitized (possibly empty) 2. A string (the picture you were just looking at) 3. A string (the previous picture). You press POINT to blacken the points you just digitized. You press ERASE to lighten those points. You press LINES to draw lines between the points. You press ELINE to lighten (erase) all the points on the lines between the points. You press DROP RE.DO to just forget the points you digitized. You press DROP SWAP RE.DO to get the previous screen, if you don't like the last changes you made (unlike UNDO, this can be done again if you realize that you like those changes after all). And you press EXIT to get the old stack back, with your picture in a string on level 1. The whole thing is about 940 bytes. Here are the programs, comments following. PICS [checksum 6F20] << DREW DEPTH ROLLD DEPTH 1 - ->LIST { RE.DO POINT ERASE LINES ELINE QUIT } MENU -> z << DUP DO DUP ->LCD DGTIZ DEPTH 2 - ->LIST CLMF HALT UNTIL END SWAP DROP z LIST-> 1 + ROLL CLMF 23 MENU >> >> QUIT [E721] << DROP 1 CONT >> LINES [373F] << AB BB >> ELINE [3727] << AB BA >> ERASE [37E7] << AA BA >> POINT [37FF] << AA BB >> AA [780D] << CLLCD 1 DO GETI PIXEL UNTIL 46 FS? END DROP2 LCD-> >> AB [758C] << CLLCD SKTCH LCD-> >> BA [D55C] << NOT ROT DROP OVER AND RE.DO >> BB [4367] << ROT DROP OVER OR RE.DO >> RE.DO [366C] << O CONT >> DREW [A245] << "FOR A NEW PICTURE," 1 DISP "PRESS 'N'. FOR AN OLD" 2 DISP "ONE, PRESS ANY KEY" 3 DISP GETK IF "N" SAME NOT THEN "EXCEPT THAT ONE" 4 DISP 2 WAIT CLLCD ELSE CLLCD LCD-> END >> SKTCH [F060] << -> pnts << 1 pnts SIZE 1 - FOR n pnts n GETI 3 ROLLD GET LINE NEXT >> >> LINE [170D] << OVER PIXEL IF DUP2 <> (<> IS NOT EQUALS) THEN OVER - PPAR DUP 2 GET SWAP 1 GET - C->R 31 / SWAP 136 / 3 PICK C->R 4 ROLL / ABS SWAP ROT / ABS MAX PPAR 4 GET / SWAP OVER / ROT 1 4 ROLL START OVER + DUP PIXEL NEXT END DROP2 >> -------------------------------- You may already have the following utility programs, I am reposting them to make this posting self-contained. GETK [2DBB] << TIME -> t << DO IF TIME .01 - t > THEN #18E58h SYSEVAL TIME 't' STO END UNTIL KEY END >> >> CONT [8E08] <<#22EF0h SYSEVAL>> TIME [9699] << #11CAh SYSEVAL RCWS 40 STWS SWAP B->R 8192 / SWAP STWS 3600 / ->HMS COR HMS- 12 MOD 1 HMS+ >> Credits and comments: If you don't have the checksum program, just forget the checksums (I didn't want to re-re-repost it!) The program TIME was taken directly from an HP SYSEVAL page. It needs you to have a real variable COR, the clock correction. You may have a different TIME program, feel free to use your own. The program CONT was taken from the book "Customize your HP 28", which I highly recommend and is available >from Edu-CALC. It is simply a programmed version of shift-1 (CONT). The programs LINE and SKTCH were taken from the book "HP 28 Insights", also highly recommended and available >from Edu-CALC. The program GETK was inspired by Paul Dale, the amazing fellow who wrote Chess and Othello for the HP 28S. You can replace it with << DO UNTIL KEY END >>, but this version shuts the calculator off after a minute if you don't press a key. W. Mier-Jedrzejowicz posted the SYSEVAL on this net a while ago. The joke in DREW is from Penn and Teller. If you have any comments or corrections, please post or write to me and have me organize and post. Have fun! Alan Weiss