From: Jeremy Smith Subject: 28/48 FAQ 28/48 FAQs (Frequently Asked Questions) about the HP 28C, HP 28S, and HP 48SX. (October 2, 1992) FAQs ==== This file (replaces FAQ2848.old on seq.uncwil.edu) is compiled by jeremy@atlantis.cs.orst.edu, to which any additions and corrections should be sent. FAQ3 - HP-48SX Q&A & Useful tidbits (60950 bytes. Includes \->ASC and vectored enter articles). See hp48/FAQ3 on seq.uncwil.edu (or to: hp-mail-server@seq.uncwil.edu send message: send FAQ3). 95FAQ - A draft 95 FAQ has been posted to comp.sys.palmtops HP 28 stuff =========== To find out the version of your HP 28C execute HEX then #A SYSEVAL. It will be 1BB or 1CC. The version of your HP 28S is 2BB HP 28 and 48 stuff Flickering display - caused by fluorescent lights. Split a matrix in rows by using \Gs- Build a matrix from rows by using \Gs+ Your calculator is very accurate, but not infinite. Don't expect 'SQ(\v/2)' to be exactly 2. Mind the values of your symbolic, constant, function evaluation flags. The 28 speed nybble has a value 0-f (default 7) which can be changed by software; the 48 is 'hard-wired' to top speed - 2MHz and cannot be changed. Transmitting data from the HP28 to the HP48 is done with INPRT which comes on the floppies included with the HP48 cable. INPRT is available from seq.uncwil.edu binaries/inprt.tar.Z What is the difference between the 28 & 48? ftp seq.uncwil.edu desc/from28to48.Z HP 48 stuff =========== Infinite Results and Related Flags. Flag -20 set causes a positive or negative underflow to be treated as an error. If flag -20 is clear, an underflow causes an Error. No matter whether or not flag -20 is set, flag -23 gets set if a negative number underflows, or flag -24 gets set if a positive number underflows. (For example: -1E-499 10 / will cause a negative underflow.) It appears that flags -23 and -24 stay set until they are cleared by the user. They can be tested with FS? or FC? or FS?C or FC?C whenever desired. For Overflows flag -21 does the same as flag -20 and flag -25 does the same as flags -23 and -24. No sign distinction for overflows. For Infinite Results, flag -22 does the same as flag -20 and flag -26 does the same as flags -23 and -24. HP48 Owner's Manual, new single volume, Edition 1, 11/91, part number 00048-90091. Adding temperatures The notation: 1 ^oF (1 degree Fahrenheit) means 1 degree on the absolute scale, while 1 F^o (1 Fahrenheit degree) means an increment of 1 degree. With that in mind define two new units: Celsius degrees: 1_K, 'C^o' (where ^o is the degree symbol alpha- right shift-6), STO Fahrenheit degrees: 1_^oR, 'F^o', STO Ex: To add an increment of 10 Celsius degrees to 100 degrees Fahrenheit: 10_C^o 100_^oF + (returns 118^oF) - note that the most recent (top) unit on the stack is the one that the answer ends up in, so that 100_^oF 10_C^o + returns 65.5555555556_C^o which must then been converted to Fahrenheit (1_^oF CONVERT) so that it is in absolute temperature units. Deleting a library. To delete library 1234: HOME (or change to the directory where the library was attached), 1234 DETACH, :0: 1234 PURGE, powercycle. To find out the version type ON-D, Backspace, EVAL. Type ON-C to get back to the real world. Also << #30794h SYSEVAL >> Type ON-x as follows: press ON, press x, release ON, release x. Stopping TAYLR gone mad; ON-C halts any operation & doesn't erase variables. Press \pi \->NUM to get pi. Same for e, i, MINR, MAXR. Flag 19 determines whether 2D makes a vector or a complex number MEM invokes garbage collection (memory cleanup). Garbage collection occurs automatically at intervals causing the 48 to pause for a moment. Use less stack to make it faster. ON-C gets all memory back, except variables. PICT, last stack, last arg, the stack, etc all use up memory. \Ga and other characters preceded by \ - see manual (II) p627. Vectored ENTER refers to \GaENTER and \GbENTER. See desc/vect.enter.Z on seq.uncwil.edu (or to: hp-mail-server@seq.uncwil.edu send message: send hardware/vector.ENTER.Z). Tetris - get games/ml.tetris on seq.uncwil.edu (or to: hp-mail-server@seq.uncwil.edu send message: send games/ml.tetris). \->ASC is a 48 program that converts a binary object to an ascii string (like uuencode) and ASC\-> reverses the process. Use \->ASC to post binary objects. \->ASC available as comp.sources.hp48/volume01/asc.Z on seq.uncwil.edu (or to: hp-mail-server@seq.uncwil.edu send message: send comp.sources.hp48/volume01/asc.Z). Bugs in the 48. See desc/bugs.Z on seq.uncwil.edu (or to: hp-mail-server@seq.uncwil.edu send message: send desc/bugs.Z). HP 48 System RPL, System Tools, Machine Language & related notes ================================================================ Saturn is the code name for HP's 4-bit proprietary microprocessor with a 1M- nybble address space (RAM+ROM), first used in the HP-71. It has been upgraded with some additional (ML) instructions for use in the HP 48. (System) RPL (Reverse Polish Lisp) is the language developed to implement the 48 functionality on the Saturn, and was designed to be portable to other CPUs. The programming language defined in the Owner's Manual is called "User RPL", which is a subset of a much larger and more powerful language called "System RPL". Some differences between User RPL and System RPL which spring to 's mind are listed below: User RPL System RPL 1. To use a command, you just The commands have no names and can type its name. The HP 48 only be used with SYSEVAL or by recognizes the name because directly embedding the "External" it's in the built-in list of code in a program using various command names. System RPL programming tools. 2. The commands are safe to use The commands are dangerous to use because they have built-in because they assume the stack has argument type checking. the correct arguments on it, and may wipeout if not. 3. Slower (because of #2) Faster (because of #2) 4. You can view, print, and edit The only way to view, print, or edit programs directly on the HP 48 programs is with System RPL without any extra software developer's software in the HP 48 or needed. on a computer. 5. You can only handle a few of You can handle all 29 object types the HP 48's object types. directly. 6. You can only do "supported" You have total control of the HP 48 things in the Manual. and can do "impossible" things. 7. Impresses the natives. Impresses hackers. Joe Horn's Library ID list: see hp48/Library.IDS on seq.uncwil.edu 48tools - RPL Development System. See hp_tools/tools.exe on seq.uncwil.edu (or to: hp-mail-server@seq.uncwil.edu send message: send hp_tools/tools.exe). Or get EduCALC Goodies Disk #4, complete docs included. Machine Language (ML). Every thing you need to learn to program the 48 in both RPL and Assembler (ML) is on EduCalc's goodies disk #4. ML runs even faster than System RPL, but it takes much longer to write large applications in ML than in System RPL. You can learn and develop ML software with HP's System RPL development system (TOOLS.EXE) because it includes a complete assembler with complete docs and uses HP's mnemonics. Jan Brittenson has written an assembler called STAR which the oldtimers like because it has "personality" (viz. bugs, sparse documentation, and uses AG mnemonics); many of the goodies posted by the net gods are developed with STAR. Mnemonics for machine language come in two flavors: AG (Alonzo Gariepy) and HP (Hewlett-Packard). Alonzo's 48 internals: see hardware/innards.Z on seq.uncwil.edu (or to: hp-mail-server@seq.uncwil.edu send message: send hardware/innards.Z). ASAP - A Saturn Assembler Program, written in perl (unix) Chip48 is a machine language program which interprets Chip8, a game language used on small systems in the 1970s. CHIP48 is "a small interpreted language designed specifically for writing simple video games". Written by Andreas Gustafsson, CHIP48 was the platform for many delightful games for the HP 48, such as SYZYGY by Roy Trevino. Chip8 games appear as an undecipherable string on the stack, but can be run using the Chip48 interpreter. It was upgraded by Erik Bryntse to support higher resolution and screen scrolling; he called this version SCHIP (for "Super CHIP"). SCHIP games include the famous IN SEARCH OF COKE (aka "ANT") by Paul Raines, and H.PIPER! by Erin Catto. Hans Christian Egeberg wrote a CHIP48/SCHIP assembler called CHIPPER that can be run on a PC. All six of the programs mentioned in this paragraph are available on EduCALC Goodies Disks. See also chip8/*.* on seq.uncwil.edu (or to: hp-mail-server@seq.uncwil.edu send message: send chip8/super-chip_v1.0.Z). STAR - A macro assembler for saturn code, written in C, uses AG mnemonics: see hardware/star-1.04.4.tar.Z on seq.uncwil.edu (or to: hp-mail-server@seq.uncwil.edu send message: send hardware/star-1.04.4.tar.Z). SAD - Saturn Disassembler is available as pub/sad-1.03.tar.Z from ftp.ai.mit.edu (128.52.38.46). These notes from the author (bson@ai.mit.edu): "SAD ports with relative ease to any machine/compiler with sizeof (int) >= 4. It is a disassembler run from a SAD-specific GNU Emacs mode (read README and load sad.el), which disassembles using AG mnemonics. It is capable of optionally producing output that can be fed as input to STAR, although they are not entirely compatible (minor changes, I may perhaps update SAD upon request). The Emacs mode allows you to disassemble ROM segments in different buffers/windows, as well as interactively adding info the comments/symbol/format databases (just edit the buffer and press C-c C-c)." SASS - Saturn Assembler, written in C. SASS compiled for the PC is available from seq.uncwil.edu: hardware/sassPC.tar.Z and gmuvax2.gnu.edu: hp48/sass231.zip (source: hp48/sass23.tar). Voyager (by Derek Nickel), disassembler running under DOS. Uses HP mnemonics. See hardware/voyager7.exe on seq.uncwil.edu (or to: hp-mail-server@seq.uncwil.edu send message: send hardware/voyager7.exe). MLDL - Machine Language Development Lab (by Jan Brittenson) available as software and also on a card. (Named after similar development tools for HP-41 ML development.) Uses AG mnemonics. HP 48 hardware (see hardware/*.* on seq.uncwil.edu) ============== 6-foot serial 9-pin cable $15.95 from EduCALC (Stock #2609, page 49 in catalog #55). HP 48 accessories: see hp48/desc/educalc.51.Z on seq.uncwil.edu (or to: hp-mail-server@seq.uncwil.edu send message: send desc/educalc.51.Z). The HP 41 Emulator Card allows you to write HP 41 programs and run them on the 48. It's also called the Lobotomy Card. Difference between the HP 48SX and the HP 48S is that the latter lacks the card bay, and the circuitry to enable cards. They have the same IR and serial capabilities. Non-HP RAM cards. Read HP's point of view (appendix B in hp48/FAQ3 on seq.uncwil.edu) and compare a hacker's point of view (hardware/ram.cards.Z on seq.uncwil.edu). The RESET! button: under rubber forefoot - left US, right - non US. Push an opened paperclip into the little hole (has the letter `R' beside it) to activate. PC is DTE, modem is DCE. Use null modem &/or gender bender. Pinouts for serial cables, looking at them end on: +-----------7 sgnd +-----5 rx +-----4 signal ground | +---3 rx +-----5 sgnd | +---4 sgnd | +---3 rx (input) | | +-2 tx | +-3 tx | | 3 tx | | +-2 tx (output) | | | 1 shield | | 2 rx | | | | | | 1 shield | | | | | | | v v v | | | | v v v v v v v ___________ v v v v ___________________________ ___________ | ------- | _________ \o o o o o o o o o o o o o/ \o o o o o/ |/ o o o \| |o o o o| \o o o o o o o o o o o o/ \o o o o/ ||o o o|| `-------' ----------------------- ------- |\ o o /| 25 14 9 6 | ------- | `---------' HP 48 PC (25 pin) PC (9 pin) Macintosh HP BBS ====== HP's calculator BBS: (503) 750-4448 @ 2400 baud N81, and (503) 750-3277 @ 9600 baud v.32 N81. Also (from Internet sites): telnet hpcvbbs.cv.hp.com handheld ftp sites (the archive sites - Lots of articles, information and ================== neat public domain HP 28 & HP 48 software) [IP#_________] [site____________] [directory______________] [__________Notes] 15.255.240.16 hpcsos.col.hp.com pub 15.255.72.15 hpcvaaz.cv.hp.com pub 15.255.72.16 hpcvbbs.cv.hp.com pub/readme login: new (HP's calculator BBS) 36.14.0.43 calvin.stanford.edu 128.109.221.20 sec.uncwil.edu hp48/ hp28/ (start here for HP48 stuff) 128.214.6.100 nic.funet.fi pub/archive/comp.sources.hp48/index 129.174.1.8 gmuvax2.gmu.edu hp28 new/hp28 hp48 129.186.99.31 telnet DIAL: me\16125 (Iowa State) 130.39.128.96 max.ee.lsu.edu hp48sx 131.188.1.43 faui43.informatik.uni-erlangen.de pub/hp28 pub/hp48 134.129.111.64 plains.nodak.edu pub/hpcalc/hp28 146.169.2.1 src.doc.ic.ac.uk pub/computing/systems/handhelds/hp48 (206) 562-7083 sci-fac bbs ] Science [ SCIence-FACtor BBS (206) 644-4569 sci-fac bbs ] Math [ sysop Bruce N. Baker (206) 747-5329 sci-fac bbs ] Engineering [ a PCboard BBS (403) 487-6947 HP BBS Edmonton (414) 362-2020 9600n81 Milwaukee HP48BBS (416) 968-6633 2400n81 Raiders of the Lost Arg BBS john.ricciuti@canrem.uucp (503) 750-4448 2400 baud N81 HP's calculator BBS (503) 750-3277 9600 baud v.32 N81 HP's calculator BBS (517) 886-0836 2400n81 Dan's BBS Extravaganza dunham@cl-next4.cl.msu.edu palmtop sites: (Usenet: comp.sys.palmtops draft FAQ: george@ucs.ucb.ca) ============== 18.62.0.6 eddie.mit.edu distrib/hp95lx/... (HP 95) 128.32.183.94 math.berkeley.edu (sharp wizard) 129.89.8.4 csd4.csd.uwm.edu pub/Psion pub/Palmtop (HP 95 Pofo Poqet Psion) 131.254.254.2 ftp.irisa.fr (HP 95) 141.211.164.8 atari.archive.umich.edu usenet:comp.sys.atari.st (Atari PortFo) 146.169.2.1 src.doc.ic.ac.uk public/packages/psion (Psion) mail agserv@ukmug.uk.mugnet.org message: send {help|index|newsletter}(AgendA) 0271-24458 AgendA BBS (AgendA) +81 03-3299-8661 2400n81 guest ID: SHRAP999 Japanese BBS Kanji (PC-E500) Mailing lists, mail servers =========================== Handhelds Mailing list: (forwarded to comp.sys.handhelds) To join mailing list send message SUBSCRIBE HANDHELDS your_real_name To abdicate from mailing list send message UNSUBSCRIBE HANDHELDS or SIGNOFF HANDHELDS to MAILSERV@GAC.EDU (Internet) or MAILSERV@GACVAX1.BITNET (Bitnet) To post message on mailing list (forwarded to comp.sys.handhelds), send to: HANDHELDS@GAC.EDU (Internet) or HANDHELDS@GACVAX1.BITNET (Bitnet) To join comp.sys.hp48 and comp.sources.hp48 mailing list send mail to: hp48-sub@seq.uncwil.edu To abdicate from comp.sys.hp48 & comp.sources.hp48 mailing list, mail to: hp48-unsub@seq.uncwil.edu To submit an article to comp.sources.hp48 send it to: hp48@seq.uncwil.edu Handhelds mail server To: hp-mail-server@seq.uncwil.edu Subject: don't care send HELP INDEX (help on using this server, and index of files) HP28 (specify this only if you want files from the HP 28 directory) The newsgroups ============== Charter comp.sys.handhelds This newsgroup will contain all the same postings the inet group contains of the same name. Voting on this will just make comp.sys.handhelds an official Usenet newsgroup. Nothing else will change. If the vote fails comp.sys.handhelds will just remain an inet only group. Charter comp.sys.palmtops This newsgroup will contain all discussion related to any machine classified as a palmtop. The Wizard, BOSS, HP95, the rumored Sony/Mac machine, that new CMOS Cray (the one with antigrav units) are considered palmtops. Charter comp.sys.hp48 This newsgroup will contain all discussion pertaining to the HP48 calculator and accessories. HP28 discussion is also invited and welcome. Anything that is normally posted to comp.sys.handhelds about the HP48 should be posted here with the exception of programs in any form. Programs should be posted to the source group, assuming that it passes. Otherwise, all programs will be posted here. Charter comp.sources.hp48 This moderated newsgroup will contain all program postings and anything that needs to be archived. All programs can and should be posted here. It will not matter if they are rpl source, assembly source, uuencoded binaries, asc encoded binaries, or any other format that might come up in the foreseeable future. It would be good to post large documents like the internals list here for archiving and to keep the bytes down in the discussion group. This is not a requirement, only a suggestion. Each posting will contain rkive(1) headers so that rkive(1) can be used to automatically archive each posting. Hopefully the sites that archive comp.sources.* will also archive the HP48 source. There will be at least one archive site, seq.uncwil.edu. Each posting will also contain a version number so that it will be much easier to keep track of newer versions and to purge old versions. Since most HP28 programs run on the HP48, they are welcome. The postings will be identified by HP28 in the subject line of each message. The moderator will be Chris Spell (spell@seq.uncwil.edu) until such time as he decides to name a successor. Mail Order HP 48sx and accessories available from: ========== EduCalc Mail Store (714) 582-2637 (also overseas) 27953 Cabot Road Laguna Niguel, CA 92677 USA (800) 677-7001 fax: (714) 582-1445 Calculators, Inc. Minneapolis (612) 866-8908 Elek-Tek (708) 677-7660 7350 North Linder Avenue Skokie, Illinois 60077 (800) 395-1000 fax: (708) 677-7168 Surveyors Supply Co. (919) 362-7000 Hwy 64 at Salem Street P.O. Box 809 Apex, NC 27502 (800) 334-0095 fax: (919) 362-7077 File Formats (There are hundreds. These few are most generally encountered ============ in the HP 48 world) .asc HP 48 ASCII string. Download to your 48 and use ASC-> to convert to 48 program .lib HP 48 library file .ps PostScript document. First line should start with the two characters: %! (more often: %!PS-Adobe-2.0...). Send this file to a postscript printer. .tar unix archiving utility that can store numerous files (and directories of files) in one file.tar. It stands for Tape ARchive, and originally was developed to archive files to tape. To untar a tar file type: tar xvf file.tar. A DOS version of tar is available from wuarchive.wustl.edu mirrors/msdos/filutl/pdtar.zip .uue A uuencoded file. type: uudecode file.uue to generate file, which may be any other format requiring further processing. uudecode is native on unix systems and available for most other systems. .Z A unix compressed file. Type: uncompress file.Z to generate file. A DOS version of uncompress is available from wuarchive.wustl.edu mirrors/msdos/compress/comp430d.zip .zip A PKzip'd file binary Most files obtained from ftp sites should be transferred in binary mode. ftp, telnet, Bitftp, & DECwrl ============================= ftp allows you to logon to a remote site and list and get (and put) files. This is generally available only from Internet sites, but see DECwrl below for subterfuge. From your terminal prompt type: ftp machine.site.domain login: anonymous (anonymous is usual public access name) password: your_email_address (not required but preferred, for stats) cd directory (usually pub/) cd sub_directory (often self descriptive) get README |more (more README to your screen without actually getting file) type binary (see below) get file_of_interest (download file_of_interest) telnet allows you to log in to a remote machine as if you are connected to a directly attached terminal. This is generally available only from Internet sites. From your terminal prompt type: telnet machine.site.domain {port} At the login prompt put login_name (it is not given if none is required): login: login_name BITftp - How to ftp through BITftp: Send the message 'HELP' to BITFTP@PUCC (Bitnet) or to BITFTP@PUCC.Princeton.edu (Internet). It sends you everything you'll need. DECwrl - How to ftp through DECwrl: Send to ftpmail@decwrl.dec.com the message: connect (defaults to decwrl.dec.com) get README.ftp (the help file @decwrl.dec.com) quit