home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Vectronix 2
/
VECTRONIX2.iso
/
FILES_01
/
JAGDEV_1.LZH
/
DEVELOP.JAG
/
VECTRONI.X!
/
LZJAG
/
TESTLZSS.S
< prev
Wrap
Text File
|
1994-09-21
|
3KB
|
88 lines
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; JAGUAR Multimedia Entertainment System Source Code
;;;
;;; COPYRIGHT (c)1994 Atari Computer Corporation
;;; UNAUTHORIZED REPRODUCTION, ADAPTATION, DISTRIBUTION,
;;; PERFORMANCE OR DISPLAY OF THIS COMPUTER PROGRAM OR
;;; THE ASSOCIATED AUDIOVISUAL WORK IS STRICTLY PROHIBITED.
;;; ALL RIGHTS RESERVED.
;;;
;;; Module: testlzss.s
;;; Test LZSS Decompression Routine
;;;
;;; History: 09/20/94 - Created (SDS)
;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
.include "jaguar.inc"
.extern _dlzstart
.extern _dlzend
.extern delzss
.extern lzinbuf
.extern lzoutbuf
.extern lzworkbuf
.extern moucode
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Program Entry Point Follows
move.l #$00070007,G_END
move.w #$FFFF,VI
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Load the GPU with the DELZSS routine
blitwait:
move.l B_CMD,d0 ; Make sure blitter is idle
andi.l #1,d0
beq blitwait
lea _dlzstart,a0 ; Start of GPU code in ROM
move.l #_dlzend,d0 ; End of GPU code in ROM
sub.l a0,d0 ; Find # of bytes to copy
lsr.l #2,d0 ; make # of longs to copy
; The destination pointer is the GPU RAM Address + $8000 for 32-bit copies
move.l #delzss+$8000,A1_BASE
move.l a0,A2_BASE ; Source in ROM from above
move.l #PITCH1|PIXEL32|XADDPHR,A1_FLAGS
move.l #PITCH1|PIXEL32|XADDPHR,A2_FLAGS
move.l #0,A1_CLIP ; Required for Blitter Bug
move.l #0,A1_PIXEL
move.l #0,A2_PIXEL
or.l #$00010000,d0 ; One outer loop
move.l d0,B_COUNT
move.l #SRCEN|LFU_REPLACE,B_CMD
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Now set up the Decompression parameters
move.l #moucode,lzinbuf ; Pointer to compressed data
move.l #$100000,lzoutbuf ; Pointer where code executes
move.l #$40000,lzworkbuf ; 8k working buffer
move.l #delzss,G_PC
move.l #1,G_CTRL
;;; If you have other things to do here that don't need the buffers
;;; or the GPU, now would be a good time. Just wait for the GPU to
;;; stop as shown below before using any of the above
gpuwait:
move.l G_CTRL,d0 ; Wait for GPU to finish
andi.l #1,d0
bne gpuwait
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Start the newly decompressed code
move.l #$100000,a0
jmp (a0)
.end