narc/SYS/SYS.INC

172 lines
5.0 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

**************************************************************************
* *
* THE Z-UNIT SYSTEM SPECIFIC EQUATES *
* *
**************************************************************************
****DEBUG EQU 1 ;THIS VERSION IS CURRENTLY UNDER CONSTRUCTION
DEBUG EQU 0 ;ADD THIS BEFORE RELEASE!!!!!
INTRLACE .EQU 0 ;IF = 1, THEN INTERLACED SYSTEM IS BEING USED
* ;IF = 2, LO-RES NON-INTERLACE
*PIXBLT STUFF
PXSIZE .set 8
SCRN_PTCH .set 512*PXSIZE
SCRN_CONV .set 13h
STACK_ST .set 10FFFF0h
RAM_ST .set 1000000h
RAM_LEN .set 0100000h/32
TAPVALUE .set 0
OFFSETVAL .set 0
PLANEMSK .set 0
INI_CTRL .set 0
*
*SYSTEM Z MEMORY MAP
*
SCRATCH .SET 01000000h ;START OF SCRATCH
STCKST .SET 010FFFF0h ;TOP OF STACK
CMOS .EQU 01400000H ;START OF CMOS RAM
SCREEN .SET 00h ;START OF SCREEN MEMORY
SCRNE .SET 0200000h ;END OF SCREEN+1
COLRAM .SET 01800000h ;COLOR RAM B0-B4 BLU, B5-B9 GRN, B10-B14 RED
CYCOLORS EQU 01800E00H ;CYCLABLE COLORS
ROM .SET 0FFC00000h ;PROGRAM ROM
IROM .SET 02000000h ;IMAGE ROM
CMAPSEL .SET 01A80080h ;COLOR MAP SELECT (0-15)
SWITCH .SET 01C00000h ;I/O WIDGET BOARD
COINS .SET 01C00010H
SOUND .SET 01E00000h ;SOUND I/O (B0-B7 = SOUND#)
; B8 = MUSIC STROBE (0 EN)
; B9 = SOUND STROBE (0 EN)
; B10 = RESET (0 EN)
SYSCTRL .SET 01F00000H ;SYSTEM CONTROL LATCH
;BIT 0 - FG SCROLL 0
;BIT 1 - FG SCROLL 1
;BIT 2 - ALWAYS 1
;BIT 3 - ALWAYS 1
;BIT 4 - AUTO-ERASE ENABLE(0)
;BIT 5 - OBJECT PALETTE ENABLE(0)
;BIT 6 - ALWAYS 1
;BIT 7 - ALWAYS 1
;BITS 8 - 15 7 SEG. (DP,G - A)
*
*SYSTEM STUFF
*
AUTOERAS .EQU 10H
OBJPALET .EQU 20H
SYSCINIT .EQU 0FFFCH ;INITIAL SYSCTRL VALUE
*
*SEVEN SEGMENT DISPLAY
*
SEG70 .EQU 0300H
SEG71 .EQU 9F00H
SEG72 .EQU 2500H
SEG73 .EQU 0D00H
SEG74 .EQU 9900H
SEG75 .EQU 4900H
SEG76 .EQU 4100H
SEG77 .EQU 1F00H
SEG78 .EQU 0100H
SEG79 .EQU 1900H
*
*INTERRUPT CONSTANTS
.IF INTRLACE=1
SCOREINT .EQU 40+1BH ;END OF SCORE AREA INTERRUPT
HSINT .EQU 115+1BH ;HALF SCREEN
EOSINT .EQU 200+1BH ;END OF SCREEN
SKYINT .EQU 75+1BH ;END OF SKY COLOR INTERRUPT
MIDSCRN .EQU 230 ;MIDSCREEN LINE FOR BEAM INT. SPLIT
BHSINT .EQU 100+1BH ;BLIMP HALF SCREEN INTERRUPT
BEOSINT .EQU 200+1BH ;BLIMP END OF SCREEN INTERRUPT
.ENDIF
.IF INTRLACE=2
SCOREINT .EQU 40+1BH ;END OF SCORE AREA INTERRUPT
HSINT .EQU 115+1BH ;HALF SCREEN
EOSINT .EQU 256+1BH ;END OF SCREEN
SKYINT .EQU 75+1BH ;END OF SKY COLOR INTERRUPT
MIDSCRN .EQU 230 ;MIDSCREEN LINE FOR BEAM INT. SPLIT
BHSINT .EQU 115+1BH ;BLIMP HALF SCREEN INTERRUPT
BEOSINT .EQU 256+1BH ;BLIMP END OF SCREEN INTERRUPT
.ENDIF
.IF INTRLACE=0
SCOREINT .EQU 80+1BH ;END OF SCORE AREA INTERRUPT
HSINT .EQU 230+1BH ;HALF SCREEN
EOSINT .EQU 400+1BH ;END OF SCREEN
SKYINT .EQU 150+1BH ;END OF SKY COLOR INTERRUPT
MIDSCRN .EQU HSINT-1BH ;MIDSCREEN LINE FOR BEAM INT. SPLIT
BHSINT .EQU 200+1BH ;BLIMP HALF SCREEN INTERRUPT
BEOSINT .EQU 400+1BH ;BLIMP END OF SCREEN INTERRUPT
.ENDIF
ERASECOL .EQU 0FFFFH ;GAME AUTO ERASE COLOR #
ERASELOC .EQU 1800FF0H ;GAME AUTO ERASE COLOR LOCATION
*
*DMA STUFF
*
DMAREGS: .equ 01A800A0h ;BOTTOM OF DMA REGISTERS FOR MMTM
DMACTRL: .equ 01A80000h ;DMA CONTROL REGISTER
;BIT 15:
;1=START DMA (WRITE)
;0=STOP DMA (WRITE)
;1=DMA BUSY (READ)
;0=DMA IDLE (READ)
DMAGO .EQU DMACTRL ;FOR SYSCHECK
DMAOFFST: .equ 01A80010h ;DMA OFFSET REGISTER
DMASAGL: .equ 01A80020h ;DMA DATA STARTING ADDRESS LOW 16 BITS
DMASAGH: .equ 01A80030h ;DMA DATA STARTING ADDRESS HIGH 16 BITS
DMAHORIZ: .equ 01A80040h ;DMA DESTINATION, X COORDINATE
DMAVERT: .equ 01A80050h ;DMA DESTINATION, Y COORDINATE
DMAHSIZE: .equ 01A80060h ;DMA DESTINATION, X SIZE
DMAVSIZE: .equ 01A80070h ;DMA DESTINATION, Y SIZE
DMACMAP: .equ 01A80080h ;DMA COLOR MAP SELECT
DMACONST: .equ 01A80090h ;DMA CONSTANT COLOR SUBSTITUTE
DMACON .EQU DMACONST
DMAMAP .EQU DMACMAP
DMASIZ .EQU DMAHSIZE
DMADAD .EQU DMAHORIZ
DMASAD .EQU DMASAGL
DMAOFF .EQU DMAOFFST
DMACTL .EQU DMACTRL
*BITS FOR THE DMA CONTROL WORD
DMAWZ .SET 1|8000h ;WRITE ZERO DATA
DMAWNZ .SET 2|8000h ;WRITE NON-ZERO DATA
DMACZ .SET 4|8000h ;WRITE CONSTANT ON ZERO DATA
DMACNZ .SET 8|8000h ;WRITE CONSTANT ON NON-ZERO DATA
DMAWAL .SET 3|8000h ;WRITE BOTH ZERO & NON-ZERO DATA
DMACAL .SET 0Ch|8000h ;WRITE CONSTANT ON BOTH ZERO & NON-ZERO DATA
ISIZE .equ 0
ISIZEX .EQU 0
ISIZEY .EQU 10H
IANIOFF .equ 20H
IANIOFFX .EQU 20H
IANIOFFY .EQU 30H
ISAG .equ 40h
ICMAP .equ 60H
ICBOX .equ 80H
ICBOXSIZ .equ 90H
ZM .set 1 ;Z MINUS MULTIPLIER
ZP .set 010000h ;Z PLUS MULTIPLIER
*
*SOUND PROCESSOR EQUATES
NINT .EQU 0800H ;SOUND NON-INTERRUPTABLE
NINTEQ .EQU 0400H ;SOUND NON-INTERRUPTABLE BY EQUAL PRIORITY
CHANNEL .EQU 0F000H
NOTIME .EQU 04000H
*
*SOUND CHANNELS
CHANCVSD .EQU 0
CHANDACA .EQU 1
CHANDACB .EQU 2
CHANYAM .EQU 3