I received well over 50 replies asking me to post the "secret" of copying ROM libraries... I'm sorry that I cannot reply individually to ALL of you, but here is the information: The simple program: << 1 SWAP START DUP SYSEVAL SWAP OVER BYTES SWAP DROP 2 * + NEXT DROP >> Will do the trick... Let's say that you store it as 'COPY' then do this: COPY For example, if your EQLIB is in PORT1, do: #80000h 8 COPY If it's in PORT2: #C0000h 8 COPY You can find out how many libraries there are in your card by looking at that port from the LIBRARY menu. Most Sparcom cards only have one library (unfortunately, this means that it's difficult to selectively choose what you want -- a serious design error in my belief - modular is in, but I guess Sparcom doesn't know that [just joking guys]). Ok, so you will get something like this on your stack: Library 270: Finance... Library 273: EQLIB... Library 272: PRTB... Library 271: COLIB... Library 269: MES.... Library 268: UTIL... LIbrary 267: Library 266: You may backup (by storing these in variables and uploading them to your PC or Mac) these libraries individually. However, since 267 is 70K, you will need a 128K RAM card to store it in a variable. Many of the necessary routines that the EQLIB and PRTBL use are kept in Lib 267 (I believe). If you wanted only MINEHUNT for some reason, that is easy to do, enter: #80000h (or #C0000h if it is in PORT2) 6 COPY Now, Lib. 268 should be the first item on the stack, type: 0 STO This will put the UTIL library in PORT0 (it is about 7K) Now turn off your calculator and unplug the EQLIB card. Turn it back on, do a ORANGE-SHIFT LIBRARY, hit the UTIL softkey then MINEHUNT, and voila! Be very careful with this, if one of the routines that you call needs a different library to be installed, it may crash your calculator. (MINEHUNT is guaranteed safe... but the others are not)... How does this program work? Simple: PORT1 starts at address 80000h and PORT2 starts at C0000h (be warned - I've heard that these addresses switch ports if you have a RAM in PORT2 and a ROM in PORT1, but I have not yet purchased a RAM card, so I cannot verify this). The first library of the card is stored right at X0000h (where X is either 8 or C). My program simply evaluates this object. The EVALuation of a library returns that library to the stack, thus a copy is put on the stack. This is actually just a link to the ROM code, it is not copied into RAM. Then the program finds the size in bytes of the library, multiplies it by 2 to get the number of nibbles, and adds it to the base address to compute the base address of the next library. It does the number of times you asked it to. Presto... Pretty weak program, but I didn't want to spend the time to post machine code until I have a decent backup/restore routine written. Be VERY careful with this program. It expects you to know what you are doing. If you type in an address other than the port where a ROM card is, your calculator may crash. This may also happen if you tell it to find 9 libraries when the card only has 8. You can count the libraries in a card by going to the PORT1 or PORT2 directory in the LIBRARY menu and counting the number of different library numbers you see (be sure to use NXT to see them all). Good luck, I'll try to be more complete at a later time... ---Xeno