throoph@jacobs.CS.ORST.EDU (Henry Throop) (10/03/89)
Is there some way to save the SHR screen from ProDOS 8, so it can be loaded into a paint program and modified? I have tried moving the SHR screen buffer ($e1/2000-$e1/9fff) down to bank 0 and saving it as type $C1, and tried rebooting to P16 and using a screen saver DA. Both of these almost work, but for some reason when I load the resulting file, it has about 6 small copies of the screen on the image, and the palette is messed up. Anybody know what's happening? Also, I've noticed that after G)oing to a subroutine from the monitor and returning with an RTS, the registers (ctrl-e) are not what they should be at the end of the program. Ending with a BRK 00 gets them right, but that's probably nor a good idea. Thanks for any help --- Henry Throop Internet: throoph@jacobs.cs.orst.edu
dseah@wpi.wpi.edu (David I Seah) (10/03/89)
In article <12831@orstcs.CS.ORST.EDU> throoph@jacobs.CS.ORST.EDU.UUCP (Henry Throop) writes: > >Is there some way to save the SHR screen from ProDOS 8, so it can be loaded >into a paint program and modified? I have tried moving the SHR screen buffer >($e1/2000-$e1/9fff) down to bank 0 and saving it as type $C1, and tried >rebooting to P16 and using a screen saver DA. Both of these almost work, >but for some reason when I load the resulting file, it has about 6 small >copies of the screen on the image, and the palette is messed up. Anybody >know what's happening? Perhaps you forgot to linearize the screen buffer before moving the picture from bank $e1. You can do this by storing a $41 in $e0c029 before moving the picture. Things ought to work just fine then. ]CALL-151 *C029:41 *00/1000<E1/2000.9FFFM *CREATE PIC,T$C1 *BSAVE PIC,A$1000,L$7FFF -- Dave Seah | O M N I D Y N E S Y S T E M S - M | Internet: dseah@wpi.wpi.edu | User Friendly Killing Machines | America Online: AFC DaveS "MY GOD! I HAVE POCKETS!!! I CAN'T BELIEVE IT! I HAVE POCKETS!!" - Tick
dlyons@Apple.COM (David Lyons) (10/04/89)
In article <4473@wpi.wpi.edu> dseah@wpi.wpi.edu (David I Seah) writes: >In article <12831@orstcs.CS.ORST.EDU> throoph@jacobs.CS.ORST.EDU.UUCP (Henry Throop) writes: >> >>Is there some way to save the SHR screen from ProDOS 8, so it can be loaded >>into a paint program and modified? >>[...] for some reason when I load the resulting file, it has about 6 small >>copies of the screen on the image, and the palette is messed up. > >Perhaps you forgot to linearize the screen buffer before moving the picture >from bank $e1. You can do this by storing a $41 in $e0c029 before moving the >picture. Things ought to work just fine then. Yup, the linearization bit is what's causing you trouble here. Please note that if you're writing a program that fiddles with $C029, you should *not* store hard-coded values directly in there--there are *reserved* bits there that you must not alter. In a program, you need to use LDA/ORA/STA, or LDA/AND/STA, or LDA/TSB, or LDA/TRB, or whatever. -- --Dave Lyons, Apple Computer, Inc. | DAL Systems AppleLink--Apple Edition: DAVE.LYONS | P.O. Box 875 America Online: Dave Lyons | Cupertino, CA 95015-0875 GEnie: D.LYONS2 or DAVE.LYONS CompuServe: 72177,3233 Internet/BITNET: dlyons@apple.com UUCP: ...!ames!apple!dlyons My opinions are my own, not Apple's.
lmb7421@ultb.UUCP (L.M. Barstow) (10/04/89)
In article <12831@orstcs.CS.ORST.EDU> throoph@jacobs.CS.ORST.EDU.UUCP (Henry Throop) writes: > >Is there some way to save the SHR screen from ProDOS 8, so it can be loaded >into a paint program and modified? I have tried moving the SHR screen buffer >($e1/2000-$e1/9fff) down to bank 0 and saving it as type $C1, and tried >but for some reason when I load the resulting file, it has about 6 small >copies of the screen on the image, and the palette is messed up. Anybody >know what's happening? You almost had it. When you load the picture back in, and when you save it, make sure the interlacing is *off*...this means storing a $C1 in $C029 before saving and before loading. Also, I think you have to split the load and the save into two parts.... So a load would be: POKE 49193,193 BLOAD PIC.SHR,a$2000,l$4000 CALL moveroutine :REM a routine which moves memory from 00/2000..00/5fff to e1/2000..e1/5fff BLOAD PIC.SHR,a$2000,b$4000 CALL moveroutine1 : REM a routine which moves memory from 00/2000..00/5fff to e1/6000..e1/9fff GET A$ :REM wait for key POKE 49193,1 (Don't forget to add <CTRL-D> to all BLOADs, etc...this was only a quick reply.) -- Les Barstow **All of the paths work!!!!** LMB7421@RITVAX.BITNET lmb7421@{ultb,vaxa,vaxb,vaxc,vaxd}.isc.rit.edu UUCP: ...rutgers!rochester!rit!ultb!lmb7421 LENSMAN@DRYCAS.BITNET lensman@drycas.club.cc.cmu.edu