FILE: georam wedge FROM: Craftware 08/09/90 S#: 788676 SUBJECT: GEORAM Stash/Fetch/Swap * TYPE: prg BLOCKS: 2 DOWNLOADS: 2 EST. D/L TIME: 300: 00:27 1200: 00:08 EQUIPMENT: C128, GEO-RAM cartridge FILES NEEDED: none AUTHOR: Craftware SHAREWARE: no SUBJ -- FETCH,STASH,SWAP using geoRAM This wedge alters the Basic 7.0 REU commands (FETCH, STASH, and SWAP) to work with a geoRAM REU instead of a Commodore type unit. To install: BANK0:BLOAD"GEORAM WEDGE" SYS DEC("0C00") Notes: -C128 RAM Bank 0 or 1 is supported; the BANK command determines which RAM BANK will be used. -FAST is allowed -- even RECOMMENDED! Because geoRAM access is slower since it doesn't use Direct Memory Access. -ILLEGAL QUANTITY error will occur if the expansion bank is greater than 7. -Number of bytes is really 0 to 65535, but 0 will transfer 65536 bytes. -The wedge will piggyback with another wedge when installed (i.e. it will look for a wedged JMP in the CHRGET routine and will JMP there instead of returning to CHRGET when passing non-wedge tokens.) Resides in $0C00 to $0D24 and uses $FE and $FF for zero page pointer. To modify these locations, ML source is uploaded as file geowedge.s which is a MERLIN source file. Full detail of wedge are contained in comments. Also includes ML callable routine to perform operations from ML programs. Example: Save the bit-mapped graphics area, which is 9K from $1C00 to $4000 into start of expansion memory: FAST:BANK0 STASH DEC("2400"),DEC("1C00"),0,0 REM >#BYTES=9K >START ADDR Timing: 8K transfers: STASH=0.88 sec SLOW / 0.43 sec FAST FETCH=0.85 sec SLOW / 0.42 sec FAST SWAP =1.32 sec SLOW / 0.65 sec FAST 128K (2 STASHes of 64K) STASH=14.1 sec SLOW / 6.90 sec FAST Caveat: If RAM address + #bytes overflows 65525 it will wrap to 0 in same bank. Expansion will only overflow from bank 7 into bank 0. Of course, you would crash your system if you FETCHed over sensitive areas, such as the wedge itself, RAM below $0400, or $FF00-$FF05.