3124 lines
70 KiB
NASM
3124 lines
70 KiB
NASM
.WIDTH 132
|
||
.OPTION B,D,L,T
|
||
.MNOLIST
|
||
|
||
*
|
||
*COBRA CRAP ********************TO BE REMOVED*************************
|
||
*
|
||
; .DEF O_COB,COBBUL,CKPLYR,CHKFREE
|
||
;O_COB .EQU 0
|
||
;COBBUL .EQU 0
|
||
;CKPLYR .EQU 0
|
||
;CHKFREE .EQU 0
|
||
*********************************TO BE REMOVED*************************
|
||
|
||
**************************************************************************
|
||
* CODE JANITORS: JAMIE BEGELMAN, KURT MAHAN, EUGENE P. JARVIS
|
||
* COPYRIGHT (C) 1990 WILLIAMS ELECTRONICS GAMES INC.
|
||
* ALL RIGHTS RESERVED.
|
||
*
|
||
**************************************************************************
|
||
.INCLUDE "\VIDEO\SYS\GSP.INC" ;GSP ASSEMBLER EQUATES
|
||
.INCLUDE "\VIDEO\SYS\SYS.INC" ;Z UNIT SYSTEM EQUATES
|
||
.INCLUDE "\VIDEO\SYS\MACROS.HDR" ;MACROS DEFINITIONS
|
||
.INCLUDE MPROC.EQU
|
||
.INCLUDE LINK.EQU
|
||
.INCLUDE IMGTBL.GLO
|
||
*********************************************************
|
||
**************************************************************************
|
||
* *
|
||
* DEFS AND REFS *
|
||
* *
|
||
**************************************************************************
|
||
.REF WDISTAB,SNDSND,INTIO,WARMSET,GET_AUD,STORE_AUDIT,WDOGDIS
|
||
.DEF POWERTST
|
||
.DEF CROSS_H,SW_CHK,CPU_CHK,COL_BARS,BURN_IN,STRNEW1
|
||
; .DEF SWITCHTEST, CONV_PLOT, DIPTEST, DIAGCPUTEST, POWERCMOS
|
||
; .DEF CHECKDIPFREE, READ_DIP, FORCEDIP
|
||
; .DEF BURNIN, COLORBAR
|
||
|
||
.DEF CIRCLE, HVLINE, STRING, RECTANGLE, POINT, DSCRCLR, INITCOLR
|
||
; .DEF STRINGCENTER
|
||
; .REF SNDRES,POWERRET, INITCOLR
|
||
|
||
; .REF ROM_NAME, CMOS_VAL, FAC_SET, INIT_TAB, WARMSET, PCMOSRET
|
||
; .REF INIT_TB, ALL_TAB, TOD_TAB
|
||
; .REF GET_HSC, INIT_HSR, VAL_TAB
|
||
; .REF CMOSLOCK, CMOSUNLOCK, CPU_RET, CLSCRACH, EXEC_LP, COLOR_START
|
||
; .REF DIPINIT, CLRALLPD, SINTRAM, IRQLED, EXECLED
|
||
; .REF WDOGRAM
|
||
; .REF WC_BYTEI, RC_BYTEI, WIPEOUT, RC_LONGI, WC_LONGI
|
||
; .REF CLR_AUD, STORE_AUDIT
|
||
;
|
||
; .REF KILL_AUD
|
||
; .REF WDOGDIS, WDISTAB
|
||
; .REF CKTEST
|
||
;
|
||
; .REF DIPCOINTAB, SET_COIN_ADJ
|
||
; .REF GET_CSPT, PUT_ADJ
|
||
; .REF BLASTMESS
|
||
; .REF CLEAR_HSCOLORS
|
||
.REF SNDTST
|
||
.REF SYSCOPY
|
||
.BSS SWSET1,32 ; FOR SWITCH TEST
|
||
.BSS SWSET2,32
|
||
|
||
.BSS DIPVAL,16
|
||
|
||
.BSS FORCEDIP,16 ; FOR FORCING THE USE OF THE DIP
|
||
.BSS CERRORS,32
|
||
.BSS CPASSES,32
|
||
.BSS SCHANGE,16
|
||
|
||
.TEXT
|
||
.EVEN
|
||
|
||
**************************************************************************
|
||
* *
|
||
* USEFUL MACROS *
|
||
* *
|
||
**************************************************************************
|
||
*
|
||
* TIMED PAUSE
|
||
*
|
||
PAUSE $MACRO TIME, REG
|
||
MOVI :TIME:, :REG:, L
|
||
LABEL?: NOP
|
||
DSJS :REG:, LABEL?
|
||
$END
|
||
*
|
||
*BIT SET
|
||
* BSET BIT# 0-31(KONSTANT OR REGISTER),REGISTER TO SET BIT IN
|
||
* NOTE: A14 IS DESTROYED, 'A' FILE REGISTERS ONLY
|
||
*
|
||
BSET $MACRO P1,R1
|
||
MOVK 1,A14
|
||
SLL :P1:,A14
|
||
OR A14,:R1:
|
||
$END
|
||
*
|
||
*FCALL - FUNCTION CALL WITHOUT USING THE SYSTEM STACK
|
||
* FCALL ROUTINE, BREG
|
||
*
|
||
FCALL $MACRO NAME, BREG
|
||
MOVI :NAME:, :BREG:, L
|
||
EXGPC :BREG:
|
||
$END
|
||
*
|
||
*FRET - FUNCTION RETURN WITHOUT USING THE SYSTEM STACK
|
||
* FCALL ROUTINE, BREG
|
||
*
|
||
FRET $MACRO BREG
|
||
EXGPC :BREG:
|
||
$END
|
||
|
||
BUT_MAC $MACRO X,Y,RADIUS,COLOR,MASK,SHIFT,EXTEND
|
||
.WORD :X:
|
||
.WORD :Y:
|
||
.WORD :RADIUS:
|
||
.LONG :COLOR:
|
||
.LONG :MASK:
|
||
.WORD :SHIFT:
|
||
.WORD :EXTEND:
|
||
$END
|
||
|
||
STR_MAC $MACRO X,Y,STRING,COLOR,DIR
|
||
.WORD :X:
|
||
.WORD :Y:
|
||
.LONG :STRING:
|
||
.WORD :COLOR:
|
||
.WORD :DIR:
|
||
$END
|
||
|
||
VECMAC $MACRO COLOR,X1,Y1,X2,Y2
|
||
.WORD :COLOR:
|
||
.WORD :X1:
|
||
.WORD :Y1:
|
||
.WORD :X2:
|
||
.WORD :Y2:
|
||
$END
|
||
|
||
DOTMAC $MACRO COLOR,X,Y
|
||
.WORD :COLOR:
|
||
.WORD :X:
|
||
.WORD :Y:
|
||
$END
|
||
|
||
RECTMAC $MACRO COLOR,X,Y,W,H
|
||
.WORD :W:
|
||
.WORD :H:
|
||
.WORD :X:
|
||
.WORD :Y:
|
||
.WORD :COLOR:
|
||
$END
|
||
|
||
CHIPMAC $MACRO NUM,X1,Y1,X2,Y2,X3,Y3,STRING,DIR,X4,Y4,STUFFED
|
||
.WORD :NUM:
|
||
.WORD :X1:
|
||
.WORD :Y1:
|
||
.WORD :X2:
|
||
.WORD :Y2:
|
||
.WORD :X3:
|
||
.WORD :Y3:
|
||
.LONG :STRING:
|
||
.WORD :DIR:
|
||
.WORD :X4:
|
||
.WORD :Y4:
|
||
.WORD :STUFFED:
|
||
$END
|
||
|
||
CMNUM EQU 0
|
||
CMLOC EQU CMNUM+16
|
||
CMXLOC EQU CMLOC
|
||
CMYLOC EQU CMLOC+16
|
||
CMSIZE EQU CMLOC+32
|
||
CMXSIZE EQU CMSIZE
|
||
CMYSIZE EQU CMSIZE+16
|
||
CMOFFSET EQU CMSIZE+32
|
||
CMSTRING EQU CMOFFSET+32
|
||
CMDIR EQU CMSTRING+32
|
||
CMPINLOC EQU CMDIR+16
|
||
CMSTUFFED EQU CMPINLOC+32
|
||
CMEND EQU CMSTUFFED+16
|
||
|
||
|
||
**************************************************************************
|
||
* *
|
||
* RAM_CHIP: MACRO DEFINES A RAM CHIP RECORD. *
|
||
* *
|
||
* CHIP_NO -- CHIP NUMBER *
|
||
* WIDTH -- CHIP CELL SIZE IN BITS (MUST BE > 0) *
|
||
* INTERLEAVE -- DISTANCE BETWEEN ADJACENT CELLS ON CHIP (IN BITS) *
|
||
* START_ADDR -- ADDRESS OF FIRST CELL ON CHIP *
|
||
* END_ADDR -- ADDRESS OF LAST CELL ON CHIP *
|
||
* *
|
||
**************************************************************************
|
||
|
||
RAM_CHIP $MACRO TAB_LINK,CHIP_NO, WIDTH, INTERLEAVE, START_ADDR, END_ADDR
|
||
|
||
.WORD :WIDTH:
|
||
.WORD :INTERLEAVE:
|
||
.WORD :CHIP_NO:
|
||
.LONG :START_ADDR:
|
||
.LONG :END_ADDR:
|
||
.LONG :TAB_LINK:
|
||
$END
|
||
|
||
RAM_WDTH EQU 000H ; OFFSETS INTO RAM CHIP RECORD
|
||
RAM_ITLV EQU 010H
|
||
RAM_NMBR EQU 020H
|
||
RAM_SADR EQU 030H
|
||
RAM_EADR EQU 050H
|
||
RAM_LINK EQU 070H
|
||
RAM_SIZE EQU 090H
|
||
|
||
ROM_CKSM EQU 000H
|
||
ROM_WDTH EQU 010H ; OFFSETS INTO ROM CHIP RECORD
|
||
ROM_ITLV EQU 020H
|
||
ROM_NMBR EQU 030H
|
||
ROM_SADR EQU 040H
|
||
ROM_EADR EQU 060H
|
||
ROM_LINK EQU 080H
|
||
ROM_SIZE EQU 0A0H
|
||
|
||
;****************************************************************************
|
||
;* ROM_CHIP: MACRO DEFINES A ROM CHIP RECORD. *
|
||
;* *
|
||
;* CHIP_NO -- CHIP NUMBER *
|
||
;* WIDTH -- CHIP CELL SIZE IN BITS (MUST BE > 0) *
|
||
;* INTERLEAVE -- DISTANCE BETWEEN ADJACENT CELLS ON CHIP (IN BITS) *
|
||
;* START_ADDR -- ADDRESS OF FIRST CELL ON CHIP *
|
||
;* END_ADDR -- ADDRESS OF LAST CELL ON CHIP *
|
||
;* CHECK_SUM -- DATAIO CHECK SUM FOR CHIP *
|
||
;****************************************************************************
|
||
|
||
ROM_CHIP $MACRO TAB_LINK,CHIP_NO, WIDTH, INTERLEAVE, START_ADDR, END_ADDR, CHECK_SUM
|
||
|
||
.WORD :CHECK_SUM:
|
||
.WORD :WIDTH:
|
||
.WORD :INTERLEAVE:
|
||
.WORD :CHIP_NO:
|
||
.LONG :START_ADDR:
|
||
.LONG :END_ADDR:
|
||
.LONG :TAB_LINK:
|
||
|
||
$END
|
||
|
||
|
||
RANDOM_SEED EQU 5A5A5A5Ah ; RAM TESTS: PSEUDO-RANDOM SEQUENCE
|
||
ZERO_EXTEND EQU 1Fh ; PARAMETERS
|
||
SIGN_EXTEND EQU 20h
|
||
PAL_SELECT EQU 0FFDCH ; ENABLE VIDEO PALETTE MAP ACCESS
|
||
|
||
**************************************************************************
|
||
* *
|
||
* POWERTST *
|
||
* *
|
||
* POWERUP SELF TEST ROUTINES *
|
||
* *
|
||
* ENTRY *
|
||
* NOTHING *
|
||
* *
|
||
* EXIT *
|
||
* NOTHING *
|
||
* *
|
||
**************************************************************************
|
||
.TEXT
|
||
BURN_IN
|
||
DINT
|
||
MOVI STCKST-100H,SP,L
|
||
JRUC POWERTST1
|
||
CPU_CHK
|
||
POWERTST
|
||
.IF DEBUG
|
||
JAUC WARMSET
|
||
.ENDIF
|
||
DINT
|
||
MOVI STCKST,SP,L
|
||
POWERTST1
|
||
SETF 16, 0, 0
|
||
SETF 32, 0, 1
|
||
|
||
; HALT DMA AND ENABLE CACHE
|
||
|
||
CLR A14
|
||
MOVE A14, @DMACTRL
|
||
MOVE A14, @CONTROL
|
||
|
||
*THESE STROBE EQUATES ARE FOR THE PINBALL SOUND CARD
|
||
RESETBIT EQU 0FE00H ;THIS IS THE ^RESET BIT
|
||
MUSICBIT EQU 0FD00H ;THIS IS THE YAMAHA SIDE STROBE
|
||
SOUNDBIT EQU 0FD00H ;THIS IS THE SOUND SIDE STROBE
|
||
; RESET SOUND BOARD
|
||
MOVI RESETBIT,A0 ;HIT RESET BIT
|
||
MOVE A0,@SOUND
|
||
MOVI 100,A0 ;WAIT FOR IT TO CATCH
|
||
DSJS A0,$
|
||
; CLR A0
|
||
NOT A0
|
||
MOVE A0,@SOUND
|
||
|
||
; DISABLE VIDEO PALETTE RAMS, AUTOERASE AND ERROR LED
|
||
|
||
MOVI 0FFFCH,A13
|
||
MOVE A13,@SYSCTRL,W
|
||
; MOVE A13,@SYSCOPY
|
||
|
||
; DISABLE WATCH DOG
|
||
|
||
; SETF 16,1,0 ;SIGN EXTENSION ON FOR THIS
|
||
MOVI WDISTAB,A1
|
||
MOVK 1,A3
|
||
MOVI 0FFFCH,A2
|
||
MOVE *A1+,A0,W
|
||
WDOGSL
|
||
OR A2,A0
|
||
MOVE A0,@SYSCTRL,W
|
||
XOR A3,A0
|
||
MOVE A0,@SYSCTRL,W
|
||
MOVE *A1+,A0,W
|
||
SEXT A0,W
|
||
JRNN WDOGSL
|
||
|
||
; SETF 16,0,0 ;BACK OFF FOR BEGLEMAN SHIT
|
||
; INITIALIZE IO REGISTERS
|
||
FCALL INTIO,B6
|
||
|
||
CLR B0
|
||
MOVI VRAMCHIPS, A14 ; VERIFY COLOR/VIDEO RAMS
|
||
FCALL RAMCHECK, B5
|
||
|
||
; ENABLE VIDEO PALETTE MAP ACCESS
|
||
|
||
MOVI PAL_SELECT, A13
|
||
MOVE A13,@SYSCTRL,W
|
||
MOVI PALCHIPS, A14 ; VERIFY VIDEO PALETTE MAP RAMS
|
||
FCALL RAMCHECK, B5
|
||
MOVE B0,A12
|
||
|
||
; DISABLE VIDEO PALETTE MAP ACCESS
|
||
|
||
MOVI 0FFFCH,A13
|
||
MOVE A13,@SYSCTRL,W
|
||
FCALL INITCOLR, B5 ; DISPLAY CPU BOARD
|
||
FCALL DSCRCLR,B6
|
||
|
||
FCALL CPUDRAW,B5
|
||
MOVI CPU,A10 ; WE GOT THIS FAR, CPU MUST BE OK
|
||
MOVI 1,A11
|
||
FCALL CHIPOUT,B5
|
||
|
||
MOVI VRAMTAB,A9
|
||
FCALL CHIPTABLE,B5 ; PLOT OUT THE CHIP TABLE
|
||
|
||
MOVE A12,A12
|
||
JRZ PDMACK
|
||
PBADRAM
|
||
MOVI RAMBADMESS,A0
|
||
JRUC CPUBADM
|
||
|
||
; MOVI [128,130],A1
|
||
; CLR A2
|
||
; MOVI ROBO_RED,A3
|
||
; FCALL STRING,B6
|
||
; JRUC PCPUBAD
|
||
|
||
PDMACK
|
||
MOVI DMACMESS,A0
|
||
MOVI [128,130],A1
|
||
CLR A2
|
||
MOVI ROBO_YELLOW,A3
|
||
FCALL STRING,B6
|
||
|
||
FCALL DMACHECK,B5 ; CHECK THE DMA
|
||
MOVI DMA,A10
|
||
MOVE A0,A11
|
||
MOVE A0,A12
|
||
INC A11 ; GREEN/RED
|
||
FCALL CHIPOUT,B5
|
||
|
||
MOVI [128,130],A0
|
||
MOVI [10,260],A1
|
||
MOVI ROBO_BLACK,A2
|
||
FCALL RECTANGLE,B6
|
||
|
||
MOVE A12,A12
|
||
JRZ PSRAMCK ;MESSAGE FOR DMA BAD
|
||
|
||
MOVI DMABADMESS,A0
|
||
JRUC CPUBADM
|
||
|
||
; MOVI [128,130],A1
|
||
; CLR A2
|
||
; MOVI ROBO_RED,A3
|
||
; FCALL STRING,B6
|
||
; JRUC PCPUBAD
|
||
|
||
|
||
PSRAMCK
|
||
MOVI SRAMCHECK,A0
|
||
MOVI [128,130],A1
|
||
CLR A2
|
||
MOVI ROBO_YELLOW,A3
|
||
FCALL STRING,B6
|
||
|
||
; MOVI 0FF3CH,A13 ;SELECT PAGE ZERO CMOS
|
||
; MOVE A13,@SYSCTRL,W
|
||
|
||
MOVI >200,A0 ;UNLOCK CMOS
|
||
MOVE A0,@SECCHIP,W
|
||
|
||
CLR B0
|
||
MOVI SRAMCHIPS,A14 ; VERIFY SCRATCH RAMS
|
||
FCALL RAMCHECK, B5
|
||
MOVE B0,A12
|
||
|
||
MOVI >300,A0 ;LOCK CMOS
|
||
MOVE A0,@SECCHIP,W
|
||
|
||
MOVI 0FFFCH,A13
|
||
MOVE A13,@SYSCOPY
|
||
|
||
; MOVI SRAMTAB,A9
|
||
; FCALL CHIPTABLE,B5
|
||
|
||
MOVI [128,130],A0
|
||
MOVI [10,260],A1
|
||
MOVI ROBO_BLACK,A2
|
||
FCALL RECTANGLE,B6
|
||
|
||
MOVE A12,A12
|
||
JRNZ PBADRAM
|
||
;
|
||
; ROM CHANGES
|
||
;
|
||
PROMCK
|
||
MOVI ROMCMESS,A0
|
||
MOVI [128,130],A1
|
||
CLR A2
|
||
MOVI ROBO_YELLOW,A3
|
||
FCALL STRING,B6
|
||
|
||
CLR B0
|
||
MOVI PROMCHIPS,A14
|
||
FCALL ROMCHECK,B5
|
||
MOVE B0,B0
|
||
JRNZ PBADROM ; FOR NOW, WOOF WOOF
|
||
|
||
CLR B0 ; CHECK ROMS
|
||
MOVI IROMCHIPS,A14
|
||
FCALL ROMCHECK,B5
|
||
|
||
MOVE B0,A12
|
||
MOVI [128,130],A0
|
||
MOVI [10,260],A1
|
||
MOVI ROBO_BLACK,A2
|
||
FCALL RECTANGLE,B6
|
||
|
||
MOVE A12,A12
|
||
JRZ PCPUGOOD
|
||
|
||
PBADROM
|
||
MOVI [128,130],A0
|
||
MOVI [10,260],A1
|
||
MOVI ROBO_BLACK,A2
|
||
FCALL RECTANGLE,B6
|
||
MOVI ROMBADMESS,A0
|
||
CPUBADM
|
||
MOVI [128,130],A1
|
||
CLR A2
|
||
MOVI ROBO_RED,A3
|
||
FCALL STRING,B6
|
||
;
|
||
; END OF ROM CHANGES
|
||
;
|
||
|
||
PCPUBAD
|
||
; MOVI CPUPAUSE,A0
|
||
; MOVI [143,130],A1
|
||
; CLR A2
|
||
; MOVI ROBO_RED,A3
|
||
; FCALL STRING,B6
|
||
PCPUBADL
|
||
PAUSE 1200000H,B6 ; GIVE THE GUY A GLIMPSE
|
||
CMPI STCKST,SP ;AUTO CYCLE ?
|
||
JRNE PCPUBADL ; YES, LOOP ON BAD
|
||
JRUC PCPURET
|
||
|
||
PCPUGOOD
|
||
MOVI CPUGOOD,A0
|
||
MOVI [143,130],A1
|
||
CLR A2
|
||
MOVI ROBO_GREEN,A3
|
||
FCALL STRING,B6
|
||
|
||
PAUSE 600000H,B6 ; GIVE THE GUY A GLIMPSE
|
||
PCPURET
|
||
CMPI STCKST,SP ;AUTO CYCLE ?
|
||
JREQ PCPURET1 ; NOPE...
|
||
CLR A13
|
||
SETF 16,1,0 ;WORD SIGN EXTEND (FIELD 0)
|
||
CALLA SNDTST
|
||
JRUC BURN_IN
|
||
|
||
PCPURET1
|
||
JAUC WARMSET
|
||
|
||
WAIT DSJS B6,WAIT
|
||
WAIT1
|
||
MOVE @SWITCH,A0,L
|
||
BTST 20,A0
|
||
JREQ WAIT1
|
||
RETS
|
||
|
||
;*
|
||
;*DO CPU TEST, RETURNS TO CPUTESTR
|
||
;CPU_CHK:
|
||
; DINT
|
||
; CALLR WDOGDIS
|
||
; JAUC CPUTEST
|
||
;*
|
||
;*CPU TEST RETURN POINT
|
||
;CPUTESTR:
|
||
; MOVI RT_RET,B0
|
||
; JRUC BTESTR
|
||
;*ROM BOARD TEST RETURN POINT
|
||
;ROMTESTR:
|
||
; MOVI ROM_RET,B0
|
||
;BTESTR:
|
||
; MOVI DIAG_PID,A1
|
||
; CALLA GETPRC ;CREATE PROCESS FOR RETURN
|
||
; MOVI INAMODE,A0
|
||
; MOVE A0,@GAMSTATE,W
|
||
; JAUC WARMSET
|
||
;*
|
||
;*CHECK THE ROM BOARD, THIS IS THE ONLY PLACE TO CALL ROMTEST
|
||
;*NO REGISTERS ARE PRESERVED
|
||
;CHECKROM:
|
||
; PUSHST
|
||
; DINT
|
||
; MOVE SP,@SPTEMP,L
|
||
; CALLR WDOGDIS
|
||
; JAUC ROMTEST
|
||
**************************************************************************
|
||
* *
|
||
* MONITOR STUFF *
|
||
* *
|
||
**************************************************************************
|
||
CROSS_H
|
||
CONV_PLOT:
|
||
MOVI MON_RECS,A9
|
||
CPRLP1
|
||
MOVE *A9+,A2,W ; GET COLOR
|
||
JRZ CPRDONE
|
||
MOVE *A9+,A0,L ; START POINT
|
||
MOVE *A9+,A1,L ; DIMENSIONS
|
||
FCALL RECTANGLE,B6
|
||
JRUC CPRLP1
|
||
CPRDONE
|
||
MOVI MON_VECS,A9 ; POINT AT VECTOR TABLE
|
||
CPVLP1
|
||
MOVE *A9+,A2,W ; GET COLOR
|
||
JRZ CPVDONE
|
||
MOVE *A9+,A0,L ; START POINT
|
||
MOVE *A9+,A1,L ; END POINT
|
||
FCALL HVLINE,B6
|
||
JRUC CPVLP1
|
||
CPVDONE
|
||
MOVI MON_DOTS,A9 ; POINT AT DOT TABLE
|
||
CPDLP1
|
||
MOVE *A9+,A1,W ; GET COLOR
|
||
JRZ CPDDONE
|
||
MOVE *A9+,A0,L ; GET THE POINT
|
||
FCALL POINT,B6
|
||
JRUC CPDLP1
|
||
CPDDONE
|
||
RETS
|
||
**************************************************************************
|
||
* *
|
||
* MONITOR TEST DATA AREA *
|
||
* *
|
||
**************************************************************************
|
||
|
||
MON_VECS:
|
||
VECMAC ROBO_WHITE,004,004,390,004
|
||
VECMAC ROBO_WHITE,004,004,004,250
|
||
VECMAC ROBO_WHITE,004,250,390,250
|
||
VECMAC ROBO_WHITE,390,250,390,004
|
||
VECMAC ROBO_WHITE,060,005,060,250
|
||
VECMAC ROBO_WHITE,115,005,115,250
|
||
VECMAC ROBO_WHITE,170,005,170,250
|
||
VECMAC ROBO_WHITE,225,005,225,250
|
||
VECMAC ROBO_WHITE,280,005,280,250
|
||
VECMAC ROBO_WHITE,335,005,335,250
|
||
VECMAC ROBO_WHITE,005,54,390,54
|
||
VECMAC ROBO_WHITE,005,103,390,103
|
||
VECMAC ROBO_WHITE,005,152,390,152
|
||
VECMAC ROBO_WHITE,005,201,390,201
|
||
.LONG 0
|
||
|
||
MON_RECS:
|
||
VECMAC ROBO_RED,182,000,030,005 ; TOP
|
||
VECMAC ROBO_GREEN,182,005,030,006
|
||
VECMAC ROBO_RED,182,250,030,005 ; BOTTOM
|
||
VECMAC ROBO_GREEN,182,244,030,006
|
||
VECMAC ROBO_RED,000,117,005,020 ; LEFT
|
||
VECMAC ROBO_GREEN,005,117,006,020
|
||
VECMAC ROBO_RED,390,117,005,020 ; RIGHT
|
||
VECMAC ROBO_GREEN,384,117,006,020
|
||
.LONG 0
|
||
|
||
MON_DOTS:
|
||
DOTMAC ROBO_WHITE,032,029
|
||
DOTMAC ROBO_WHITE,087,029
|
||
DOTMAC ROBO_WHITE,142,029
|
||
DOTMAC ROBO_WHITE,197,029
|
||
DOTMAC ROBO_WHITE,252,029
|
||
DOTMAC ROBO_WHITE,307,029
|
||
DOTMAC ROBO_WHITE,362,029
|
||
|
||
DOTMAC ROBO_WHITE,032,078
|
||
DOTMAC ROBO_WHITE,087,078
|
||
DOTMAC ROBO_WHITE,142,078
|
||
DOTMAC ROBO_WHITE,197,078
|
||
DOTMAC ROBO_WHITE,252,078
|
||
DOTMAC ROBO_WHITE,307,078
|
||
DOTMAC ROBO_WHITE,362,078
|
||
|
||
DOTMAC ROBO_WHITE,032,127
|
||
DOTMAC ROBO_WHITE,087,127
|
||
DOTMAC ROBO_WHITE,142,127
|
||
DOTMAC ROBO_WHITE,197,127
|
||
DOTMAC ROBO_WHITE,252,127
|
||
DOTMAC ROBO_WHITE,307,127
|
||
DOTMAC ROBO_WHITE,362,127
|
||
|
||
DOTMAC ROBO_WHITE,032,176
|
||
DOTMAC ROBO_WHITE,087,176
|
||
DOTMAC ROBO_WHITE,142,176
|
||
DOTMAC ROBO_WHITE,197,176
|
||
DOTMAC ROBO_WHITE,252,176
|
||
DOTMAC ROBO_WHITE,307,176
|
||
DOTMAC ROBO_WHITE,362,176
|
||
|
||
DOTMAC ROBO_WHITE,032,225
|
||
DOTMAC ROBO_WHITE,087,225
|
||
DOTMAC ROBO_WHITE,142,225
|
||
DOTMAC ROBO_WHITE,197,225
|
||
DOTMAC ROBO_WHITE,252,225
|
||
DOTMAC ROBO_WHITE,307,225
|
||
DOTMAC ROBO_WHITE,362,225
|
||
.LONG 0
|
||
|
||
PRIMARY_COLORS:
|
||
|
||
RECTMAC ROBO_RED,0,0,395,255
|
||
RECTMAC ROBO_GREEN,0,0,395,255
|
||
RECTMAC ROBO_BLUE,0,0,395,255
|
||
.LONG 0
|
||
|
||
COLOR_BARS:
|
||
|
||
RECTMAC ROBO_BLACK, 0, 0, 49, 16
|
||
RECTMAC ROBO_BLACK, 49, 0, 49, 16
|
||
RECTMAC ROBO_BLACK, 98, 0, 49, 16
|
||
RECTMAC ROBO_BLACK, 147, 0, 49, 16
|
||
RECTMAC ROBO_BLACK, 196, 0, 49, 16
|
||
RECTMAC ROBO_BLACK, 245, 0, 49, 16
|
||
RECTMAC ROBO_BLACK, 294, 0, 49, 16
|
||
RECTMAC ROBO_BLACK, 343, 0, 49, 16
|
||
.LONG 0
|
||
|
||
|
||
|
||
**************************************************************************
|
||
* *
|
||
* COLORBAR *
|
||
* *
|
||
**************************************************************************
|
||
COL_BARS
|
||
COLORBAR:
|
||
|
||
MOVI INTENSITIES_START, A0, L
|
||
MOVI COLRAM+100H,A1, L
|
||
|
||
MOVK 16, A2 ; 5 BITS / COLOR
|
||
MOVK 8, A6 ; # COLOR BARS
|
||
CB3
|
||
ADDI >F00,A1 ;STEP TO NEXT PALETTE
|
||
MOVE *A0+, A3 ; STARTING COLOR
|
||
MOVE *A0+, A4 ; COLOR DECREMENT
|
||
|
||
MOVE A2, A5
|
||
|
||
CB4 MOVE A3, *A1+
|
||
SUB A4, A3
|
||
DSJS A5, CB4
|
||
DSJS A6, CB3
|
||
|
||
; =========================
|
||
; | DISPLAY COLOR BARS |
|
||
; =========================
|
||
|
||
CLR A14
|
||
MOVE A14,@DMAGO ; HALT THE DMA
|
||
MOVI 0101H,A14
|
||
MOVE A14,A8
|
||
|
||
MOVI COLOR_BARS, A3, L ; COLOR BAR TABLE
|
||
MOVI [16,0], A13, L ; POSITION INCRMENT
|
||
MOVI 101H,A12
|
||
MOVK 16, A11 ; # INTENSITIES / BAR
|
||
MOVK 8,A6 ;THIS MANY BARS
|
||
CB6
|
||
CLR A2 ; STARTING COLOR
|
||
MOVE *A3+,A1,L
|
||
JRZ CB8
|
||
MOVE A8,@DMACMAP,W ;STUFF PALETTE
|
||
MOVE *A3+,A0,L
|
||
ADDK 16,A3
|
||
MOVE A11,A10
|
||
CB7
|
||
FCALL RECTANGLE, B6
|
||
ADD A13, A0
|
||
ADD A12, A2
|
||
DSJS A10, CB7
|
||
ADD A14,A8 ;NEXT PALETTE PLEASE
|
||
DSJ A6,CB6
|
||
|
||
CB8
|
||
CLR A14
|
||
MOVE A14,@DMACMAP,W
|
||
RETS
|
||
|
||
|
||
INTENSITIES_START:
|
||
|
||
.WORD 03E0H ; GREEN
|
||
.WORD 0040H ; BUMP GREEN
|
||
|
||
.WORD 7C00H ; RED
|
||
.WORD 0800H ; BUMP RED
|
||
|
||
.WORD 001FH ; BLUE
|
||
.WORD 0002H ; BUMP BLUE
|
||
|
||
.WORD 0000H ; BLACK
|
||
.WORD 0000H ; BUMP BLACK
|
||
|
||
.WORD 7FFFH ; WHITE
|
||
.WORD 0842H ; BUMP WHITE
|
||
|
||
.WORD 7FE0H ; YELLOW
|
||
.WORD 0840H ; BUMP YELLOW
|
||
|
||
.WORD 7C1FH ; PURPLE
|
||
.WORD 0802H ; BUMP PURPLE
|
||
|
||
.WORD 03FFH ; CYAN
|
||
.WORD 0042H ; BUMP CYAN
|
||
|
||
.LONG 0
|
||
|
||
**************************************************************************
|
||
* *
|
||
* SWITCHTEST *
|
||
* *
|
||
* DRAW OUT THE ROBO SWITCHES -- A PRETTY PICTURE *
|
||
* *
|
||
* ENTRY *
|
||
* NOTHING *
|
||
* *
|
||
* EXIT *
|
||
* NOTHING *
|
||
* *
|
||
**************************************************************************
|
||
|
||
;DONEMASK EQU 00100000H ;TEST SWITCH
|
||
DONEMASK EQU 00240000H ; P1 + P2 START
|
||
.BSS DONECNT,32 ; FOR SWITCH TEST
|
||
SW_CHK
|
||
SWITCHTEST:
|
||
MMTM SP,A12,A13
|
||
; CALLA WDOGDIS
|
||
MOVI >10,A13
|
||
MOVE A13,@DONECNT,L
|
||
CLR A13 ; THE HOLD ME REGISTER
|
||
MOVE A13,@SWSET1,L
|
||
MOVE A13,@SWSET2,L
|
||
MOVI BUT_TABLE,A9
|
||
CLR A10
|
||
CALLR BUT_PLOT ; PLOT SOME BUTTONS
|
||
MOVI JOY_TABLE,A9
|
||
CALLR JOY_PLOT ; PLOT THE JOYSTICKS
|
||
MOVI STR_TABLE,A9
|
||
CALLR STR_PLOT ; PLOT THE STRINGS
|
||
MOVI 00B90000H,A0
|
||
MOVI 00B90190H,A1
|
||
MOVI ROBO_WHITE,A2
|
||
FCALL HVLINE,B6 ; DRAW LITTLE WHITE LINE
|
||
SDLOOP
|
||
MMFM SP,A12,A13
|
||
SLEEP 1
|
||
MMTM SP,A12,A13
|
||
|
||
MOVE @SWITCH,A10,L ; GRAB ME A SWITCH REGISTER
|
||
NOT A10
|
||
MOVE A10,A0
|
||
ANDI DONEMASK,A0
|
||
CMPI DONEMASK,A0,L ; CHECK FOR DONE
|
||
JRNZ SDGO
|
||
MOVE @DONECNT,A0,L ;REQUIRE A CERTAIN TIME
|
||
DEC A0
|
||
MOVE A0,@DONECNT,L
|
||
JRNE SDGO
|
||
MMFM SP,A12,A13
|
||
RETP
|
||
SDGO
|
||
MOVE @SWSET1,A11,L
|
||
CMP A11,A10 ; CHECK FOR CHANGES
|
||
JRZ SDCK2
|
||
MOVE A10,@SWSET1,L
|
||
MOVE @SWITCH+32,A10,L
|
||
NOT A10
|
||
SLL 24,A10
|
||
SRL 24,A10
|
||
; ANDI 0FFH,A10
|
||
JRUC SDPRC1
|
||
; MOVE A10,@SWSET2,L
|
||
; JRUC SDPROC
|
||
SDCK2
|
||
MOVE @SWITCH+32,A10,L
|
||
NOT A10
|
||
SLL 24,A10
|
||
SRL 24,A10
|
||
; ANDI 0FFH,A10
|
||
MOVE @SWSET2,A11,L
|
||
CMP A11,A10
|
||
JRZ SDLOOP
|
||
SDPRC1
|
||
MOVE A10,@SWSET2,L
|
||
SDPROC
|
||
CLR A0
|
||
MOVE A0,@SCHANGE,W
|
||
|
||
MOVI BUT_TABLE,A9
|
||
CALLR BUT_PLOT
|
||
MOVI JOY_TABLE,A9
|
||
CALLR JOY_UPDATE ; UPDATE THE JOYSTICK INFO
|
||
|
||
MOVE @SCHANGE,A0,W
|
||
JRZ SDLOOP
|
||
|
||
MOVI 0FD80H,A0
|
||
MOVE A0,@SOUND,W
|
||
MOVI 0FF80H,A0
|
||
MOVE A0,@SOUND,W
|
||
JRUC SDLOOP
|
||
*
|
||
*DIP SWITCH TEST
|
||
*
|
||
DIPTEST
|
||
MOVI >C8,A12
|
||
MOVI DIPTAB,A9
|
||
CALLR STR_PLOT ; PLOT THE STRINGS
|
||
DIPL
|
||
MOVE @VCOUNT,A1,W ; CUT BEAM INTERFERENCE
|
||
CMPI 200,A1
|
||
JRLS DIPL
|
||
|
||
MOVB @SWITCH+>30,A10
|
||
; SLL 24,A10
|
||
MOVI >60009E,A1
|
||
MOVK 1,A2
|
||
CALLR DIPSUB
|
||
|
||
MOVB @SWITCH+>38,A10
|
||
; SLL 24,A10
|
||
MOVI >600152,A1
|
||
CALLR DIPSUB
|
||
MOVE A12,A12
|
||
JRN DIPL1
|
||
DEC A12
|
||
JRUC DIPL
|
||
DIPL1
|
||
MOVE @SWITCH,A0,L
|
||
BTST 20,A0
|
||
JREQ DIPL
|
||
RETS
|
||
|
||
DIPSUB
|
||
MOVK 8,A11
|
||
DIPTST1L
|
||
MOVI ROBO_BLACK,A3 ;ERASE OLD BUGGERS
|
||
MOVI DIPON,A0
|
||
CALLR STRNEW
|
||
MOVI DIPOFF,A0
|
||
CALLR STRNEW
|
||
MOVI ROBO_WHITE,A3
|
||
MOVI DIPON,A0
|
||
SRL 1,A10
|
||
JRNC DIPTST1
|
||
MOVI DIPOFF,A0
|
||
DIPTST1
|
||
CALLR STRNEW
|
||
SUBI >00E,A1
|
||
DSJS A11,DIPTST1L
|
||
RETS
|
||
|
||
**************************************************************************
|
||
* *
|
||
* JOY_MESS *
|
||
* *
|
||
* PLOT THE STATUS OF A JOYSTICK AROUND A CIRCLE *
|
||
* *
|
||
* ENTRY *
|
||
* A9 CENTER OF STICK CIRCLE *
|
||
* A10 BUTTON MASK *
|
||
* A11 COLOR *
|
||
* *
|
||
* EXIT *
|
||
* NOTHING *
|
||
* *
|
||
**************************************************************************
|
||
|
||
JOY_MESS:
|
||
MOVI JJJTAB,A8
|
||
MOVK 4,A7
|
||
JML
|
||
MOVI ROBO_BLACK,A3
|
||
SRL 1,A10
|
||
JRNC JM1
|
||
MOVE A11,A3 ; SET COLOR
|
||
MOVK 1,A14
|
||
MOVE A14,@SCHANGE,W
|
||
JM1
|
||
MOVE *A8+,A0,L
|
||
MOVE A9,A1 ; CIRCLE CENTER
|
||
MOVB *A8,A2 ;X CORRECTION
|
||
ADDK 8,A8
|
||
ADD A2,A1
|
||
MOVB *A8,A2 ;Y CORRECTION
|
||
ADDK 8,A8
|
||
SLL 16,A2
|
||
ADD A2,A1
|
||
CLR A2 ; DIRECTION
|
||
CALLR STRNEW
|
||
DSJS A7,JML
|
||
RETS
|
||
*
|
||
*JOYSTICK MESSAGE TABLE
|
||
*
|
||
JJJTAB
|
||
.LONG UPMESS
|
||
.BYTE -7,-27
|
||
|
||
.LONG DOWNMESS
|
||
.BYTE -20,20
|
||
|
||
.LONG LEFTMESS
|
||
.BYTE -48,-5
|
||
|
||
.LONG RIGHTMESS
|
||
.BYTE 20,-5
|
||
|
||
|
||
|
||
**************************************************************************
|
||
* *
|
||
* BUT_PLOT *
|
||
* *
|
||
* PLOT A BUTTON TABLE ON THE SCREEN *
|
||
* *
|
||
* ENTRY *
|
||
* A9 POINTS TO BUTTON TABLE LIST *
|
||
* A10 SETTINGS OF THE SWITCH REGISTER *
|
||
* *
|
||
* EXIT *
|
||
* NOTHING *
|
||
* *
|
||
**************************************************************************
|
||
|
||
BUT_PLOT:
|
||
MOVE *A9,A1,L ; XY LOC
|
||
JRZ BPDONE
|
||
ADDI 32,A9
|
||
MOVE *A9,A0,W ; RADIUS
|
||
ADDI 16,A9
|
||
MOVE *A9,A6,L ; COLOR
|
||
ADDI 32,A9
|
||
MOVE *A9,A11,L ; GET MASK
|
||
ADDI 32,A9 ; MASK
|
||
ADDI 16,A9 ; SHIFT COUNT
|
||
MOVE *A9,A8,W ; JAMMA EXTEND-O-BIT
|
||
JRZ BPLOW
|
||
MOVE @SWSET2,A10,L
|
||
JRUC BPAND
|
||
BPLOW
|
||
MOVE @SWSET1,A10,L
|
||
BPAND
|
||
ADDI 16,A9
|
||
AND A10,A11 ; MASK OFF SOMETHING USEFUL
|
||
JRZ BPHOLLOW
|
||
ADDI CFILL,A6 ; MASK IN THE FILL BITS
|
||
JRUC BPCIRC
|
||
BPHOLLOW
|
||
MMTM SP,A0,A1,A6
|
||
MOVI ROBO_BLACK,A6
|
||
ADDI CFILL,A6
|
||
FCALL CIRCLE,B6
|
||
MMFM SP,A0,A1,A6
|
||
JRUC BPCIRC2
|
||
BPCIRC
|
||
MOVK 1,A14
|
||
MOVE A14,@SCHANGE,W
|
||
BPCIRC2
|
||
FCALL CIRCLE,B6
|
||
JRUC BUT_PLOT
|
||
BPDONE
|
||
RETS
|
||
|
||
**************************************************************************
|
||
* *
|
||
* JOY_PLOT *
|
||
* *
|
||
* PLOT A BUTTON TABLE ON THE SCREEN *
|
||
* *
|
||
* ENTRY *
|
||
* A9 POINTS TO BUTTON TABLE LIST *
|
||
* *
|
||
**************************************************************************
|
||
|
||
JOY_PLOT:
|
||
MOVE *A9,A1,L ; XY LOC
|
||
JRZ JPDONE
|
||
ADDI 32,A9
|
||
MOVE *A9,A0,W ; RADIUS
|
||
ADDI 16,A9
|
||
MOVE *A9,A6,L ; COLOR
|
||
ADDI 96,A9
|
||
FCALL CIRCLE,B6
|
||
JRUC JOY_PLOT
|
||
JPDONE
|
||
RETS
|
||
|
||
**************************************************************************
|
||
* *
|
||
* JOY_UPDATE *
|
||
* *
|
||
* UPDATE ALL THE STICK INFORMATION *
|
||
* *
|
||
* ENTRY *
|
||
* A9 JOYSTICK TABLE POINTER *
|
||
* A10 SWITCH INFORMATION *
|
||
* *
|
||
* EXIT *
|
||
* NOTHING *
|
||
* *
|
||
**************************************************************************
|
||
|
||
JOY_UPDATE:
|
||
MOVE *A9,A1,L ; XY LOC
|
||
JRZ JUDONE
|
||
ADDI 32,A9
|
||
MOVE *A9,A0,W ; RADIUS
|
||
ADDI 16,A9
|
||
MOVE *A9,A11,L ; COLOR
|
||
ADDI 32,A9
|
||
MOVE *A9,A6,L ; MASK
|
||
ADDI 32,A9
|
||
MOVE *A9,A7,W ; SHIFT COUNT
|
||
ADDI 16,A9
|
||
MOVE *A9,A8,W ; EXTEND-O-BIT FOR JAMMA
|
||
JRZ JULOW
|
||
MOVE @SWSET2,A10,L
|
||
JRUC JUAND
|
||
JULOW
|
||
MOVE @SWSET1,A10,L
|
||
JUAND
|
||
ADDI 16,A9
|
||
AND A10,A6 ; MASK OFF JOYSTICK BITS
|
||
NOT A7
|
||
ADDK 1,A7
|
||
SRL A7,A6 ; ZERO BASE THE LITTLE SUCKER
|
||
MMTM SP,A9,A10,A8,A7
|
||
MOVE A1,A9 ; CENTER OF STICK HERE
|
||
MOVE A6,A10 ; BUTTON MASK
|
||
CALLR JOY_MESS
|
||
MMFM SP,A9,A10,A8,A7
|
||
JRUC JOY_UPDATE
|
||
JUDONE
|
||
RETS
|
||
|
||
|
||
**************************************************************************
|
||
* *
|
||
* STR_PLOT *
|
||
* *
|
||
* PLOT A STRING TABLE ON THE SCREEN *
|
||
* *
|
||
* ENTRY *
|
||
* A9 POINTS TO STRING TABLE LIST *
|
||
* *
|
||
**************************************************************************
|
||
|
||
STR_PLOT:
|
||
MOVE *A9,A1,L ; XY LOC
|
||
JRZ STDONE
|
||
ADDI 32,A9
|
||
MOVE *A9,A0,L ; STRING PTR
|
||
ADDI 32,A9
|
||
MOVE *A9,A3,W ; COLOR
|
||
ADDI 16,A9
|
||
MOVE *A9,A2,W ; DIRECTION
|
||
ADDI 16,A9
|
||
FCALL STRING,B6
|
||
JRUC STR_PLOT
|
||
STDONE
|
||
RETS
|
||
|
||
CFILL EQU 0FFFF0000H
|
||
|
||
;
|
||
; FORMAT
|
||
;
|
||
; X,Y,RADIUS,COLOR,MASK,SHIFT COUNT ( FOR JOYSTICK STUFF ), EXTENDBIT
|
||
;
|
||
BUT_TABLE:
|
||
BUT_MAC 107,65,10,ROBO_RED,00040000H,0,0 ; P1 START
|
||
BUT_MAC 293,65,10,ROBO_BLUE,00200000H,0,0 ; P2 START
|
||
BUT_MAC 260,199,10,ROBO_GREEN,00080000H,0,0 ; SLAM
|
||
BUT_MAC 260,222,10,ROBO_GREEN,00100000H,0,0 ; TEST
|
||
BUT_MAC 260,245,10,ROBO_GREEN,01000000H,0,0 ; VIDEO FREEZE
|
||
BUT_MAC 30,207,10,ROBO_GREEN,00010000H,0,0 ; COIN LEFT (1)
|
||
BUT_MAC 120,207,10,ROBO_GREEN,00800000H,0,0 ; COIN CENTER (3)
|
||
BUT_MAC 75,207,10,ROBO_GREEN,00020000H,0,0 ; COIN RIGHT (2)
|
||
BUT_MAC 165,207,10,ROBO_GREEN,02000000H,0,0 ; FOURTH COIN (4)
|
||
BUT_MAC 214,207,10,ROBO_GREEN,00400000H,0,0 ; SERVICE CREDIT
|
||
.LONG 0
|
||
|
||
JOY_TABLE
|
||
BUT_MAC 65,130,15,CFILL+ROBO_RED,0000000FH,0,0 ; P1 MOVE
|
||
BUT_MAC 162,130,15,CFILL+ROBO_RED,00000F0H,4,0 ; P1 FIRE
|
||
BUT_MAC 243,130,15,CFILL+ROBO_BLUE,0000F00H,8,0 ; P2 MOVE
|
||
BUT_MAC 335,130,15,CFILL+ROBO_BLUE,000F000H,12,0 ; P2 FIRE
|
||
.LONG 0
|
||
|
||
|
||
STR_TABLE:
|
||
STR_MAC 140,15,STSTART,ROBO_YELLOW,0 ; SMASH TV SWITCH MESSAGE
|
||
STR_MAC 80,82,P1START,ROBO_RED,0 ; P1 START
|
||
STR_MAC 262,82,P2START,ROBO_BLUE,0 ; P2 START
|
||
STR_MAC 40,167,P1MOVE,ROBO_RED,0 ; P1 MOVE
|
||
STR_MAC 135,167,P1FIRE,ROBO_RED,0 ; P1 FIRE
|
||
STR_MAC 216,167,P2MOVE,ROBO_BLUE,0 ; P2 MOVE
|
||
STR_MAC 315,167,P2FIRE,ROBO_BLUE,0 ; P2 FIRE
|
||
STR_MAC 275,196,SLAM,ROBO_GREEN,0 ; SLAM
|
||
STR_MAC 275,219,TEST,ROBO_GREEN,0 ; TEST SWITCH
|
||
STR_MAC 275,242,VIDEO,ROBO_GREEN,0 ; VIDEO FREEZE
|
||
|
||
; STR_MAC 10,222,LEFTMESS,ROBO_GREEN,0 ; LEFT COIN
|
||
; STR_MAC 46,222,CENTER,ROBO_GREEN,0 ; CENTER COIN
|
||
; STR_MAC 100,222,RIGHTMESS,ROBO_GREEN,0 ; RIGHT COIN
|
||
; STR_MAC 139,222,FOURTH,ROBO_GREEN,0
|
||
STR_MAC 15,222,CBUTMESS,ROBO_GREEN,0
|
||
|
||
STR_MAC 15,233,COINMESS,ROBO_GREEN,0
|
||
STR_MAC 193,222,SERVICE1,ROBO_GREEN,0 ; SERVICE CREDIT
|
||
STR_MAC 197,233,SERVICE2,ROBO_GREEN,0 ; SERVICE CREDIT
|
||
STR_MAC 100,35,GETOUT1,ROBO_WHITE,0 ; GET OUT MESSAGE 1
|
||
.LONG 0
|
||
DIPTAB
|
||
STR_MAC >90,>20,DIPMES0,ROBO_WHITE,0 ; DIP SWITCH TEST
|
||
STR_MAC >68,>3C,DIPMES1,ROBO_GREEN,0 ; DIP SWITCH 1
|
||
STR_MAC >114,>3C,DIPMES2,ROBO_GREEN,0 ; DIP SWITCH 2
|
||
STR_MAC >3C,>50,DIPMES18,ROBO_WHITE,0 ; 1-8
|
||
STR_MAC >F0,>50,DIPMES18,ROBO_WHITE,0 ; 1-8
|
||
.LONG 0
|
||
DIPMES0
|
||
.STRING "DIP SWITCH TEST",0
|
||
DIPMES1
|
||
.STRING "DS1",0
|
||
DIPMES18
|
||
.STRING "1 2 3 4 5 6 7 8",0
|
||
DIPMES2
|
||
.STRING "DS2",0
|
||
DIPON
|
||
.STRING "ON",0
|
||
DIPOFF
|
||
.STRING "OFF",0
|
||
GETOUT1
|
||
.STRING "P1 START AND P2 START TO EXIT",0
|
||
; .STRING "TEST SWITCH OFF TO EXIT",0
|
||
.EVEN
|
||
|
||
STSTART
|
||
.STRING "SMASH TV SWITCHES",0
|
||
.EVEN
|
||
|
||
P1START
|
||
.STRING "P1 START",0
|
||
.EVEN
|
||
P2START
|
||
.STRING "P2 START",0
|
||
.EVEN
|
||
|
||
LEFTMESS
|
||
.STRING "LFT",0
|
||
.EVEN
|
||
RIGHTMESS
|
||
.STRING "RT",0
|
||
.EVEN
|
||
UPMESS
|
||
.STRING "UP",0
|
||
.EVEN
|
||
DOWNMESS
|
||
.STRING "DOWN",0
|
||
.EVEN
|
||
|
||
P1MOVE
|
||
.STRING "P1 MOVE",0
|
||
.EVEN
|
||
P1FIRE
|
||
.STRING "P1 FIRE",0
|
||
.EVEN
|
||
P2MOVE
|
||
.STRING "P2 MOVE",0
|
||
.EVEN
|
||
P2FIRE
|
||
.STRING "P2 FIRE",0
|
||
.EVEN
|
||
|
||
COINMESS
|
||
.STRING "COIN COIN COIN COIN",0
|
||
.EVEN
|
||
|
||
CBUTMESS .STRING "LFT 1 RT 2 3 4",0
|
||
.EVEN
|
||
|
||
;CENTER
|
||
; .STRING "CENTER",0
|
||
; .EVEN
|
||
;FOURTH
|
||
; .STRING "FOURTH",0
|
||
; .EVEN
|
||
|
||
SERVICE1
|
||
.STRING "SERVICE",0
|
||
.EVEN
|
||
SERVICE2
|
||
.STRING "CREDIT",0
|
||
.EVEN
|
||
SLAM
|
||
.STRING "SLAM - TILT",0
|
||
.EVEN
|
||
TEST
|
||
.STRING "TEST",0
|
||
.EVEN
|
||
VIDEO
|
||
.STRING "VIDEO FREEZE",0
|
||
.EVEN
|
||
|
||
DMACMESS
|
||
.STRING "CHECKING CUSTOM",0
|
||
.EVEN
|
||
DMABADMESS
|
||
.STRING "CUSTOM CHIP U99 BAD",0
|
||
.EVEN
|
||
|
||
ROMCMESS
|
||
.STRING "CHECKING ROMS",0
|
||
.EVEN
|
||
ROMBADMESS
|
||
.STRING "ROM CHIPS BAD",0
|
||
.EVEN
|
||
|
||
RAMBADMESS
|
||
.STRING "RAM CHIPS BAD",0
|
||
.EVEN
|
||
|
||
CPUGOOD
|
||
.STRING "CPU BOARD OK",0
|
||
.EVEN
|
||
|
||
CPUWAIT1
|
||
CPUPAUSE
|
||
.STRING "PRESS ANY BUTTON",0
|
||
.EVEN
|
||
|
||
**************************************************************************
|
||
* *
|
||
* CPUDRAW *
|
||
* *
|
||
* PLOT THE CPU BOARD AND DRAW ALL THE CHIPS *
|
||
* *
|
||
* ENTRY *
|
||
* B5 RETURN ADDRESS *
|
||
* *
|
||
* EXIT *
|
||
* NOTHING *
|
||
* *
|
||
**************************************************************************
|
||
|
||
CPUDRAW:
|
||
MOVI CPU_VECS,A9 ; POINT AT VECTOR TABLE
|
||
CPUDLP1
|
||
MOVE *A9+,A2,W ; GET COLOR
|
||
JRZ CPUD1
|
||
MOVE *A9+,A0,L ; START POINT
|
||
MOVE *A9+,A1,L ; END POINT
|
||
FCALL HVLINE,B6
|
||
JRUC CPUDLP1
|
||
CPUD1
|
||
MOVE B5,A13
|
||
FCALL CHIPPLOT,B5 ; PLOT ALL THE CHIPS
|
||
MOVE A13,B5
|
||
FRET B5
|
||
|
||
**************************************************************************
|
||
* *
|
||
* CHIPTABLE *
|
||
* *
|
||
* UPDATE A LIST OF CHIPS, BASED ON THEIR VALUES IN A12 *
|
||
* *
|
||
* ENTRY *
|
||
* A9 POINTER TO TABLE *
|
||
* A12 LIST OF ON/OFF BITS *
|
||
* B5 RETURN ADDRESS *
|
||
* *
|
||
* EXIT *
|
||
* NOTHING *
|
||
* *
|
||
**************************************************************************
|
||
|
||
CHIPTABLE:
|
||
MOVE B5,A14
|
||
CTABLOOP
|
||
MOVE *A9+,A10,L ; GET POINTER TO CHIP RECORD
|
||
JRZ CTABDONE
|
||
MOVK 1,A11
|
||
MOVE *A10(CMNUM),A0,W ; GET THE BIT NUMBER
|
||
BTST A0,A12 ; CHECK BIT NUMBER
|
||
JRZ CTABL2
|
||
MOVK 2,A11
|
||
CTABL2
|
||
FCALL CHIPOUT,B5
|
||
JRUC CTABLOOP
|
||
|
||
CTABDONE
|
||
MOVE A14,B5
|
||
FRET B5
|
||
|
||
**************************************************************************
|
||
* *
|
||
* CHIPPLOT *
|
||
* *
|
||
* PLOT OUT THE CHIP LIST *
|
||
* *
|
||
* ENTRY *
|
||
* B5 RET VALUE *
|
||
* *
|
||
* EXIT *
|
||
* NOTHING *
|
||
**************************************************************************
|
||
|
||
CHIPPLOT:
|
||
MOVE B5,A14
|
||
MOVI CPU_CHIPS,A10
|
||
CPPLOTLOOP
|
||
CLR A11
|
||
MOVE *A10,A0,L
|
||
JRZ CPPLOTDONE
|
||
FCALL CHIPOUT,B5
|
||
ADDI CMEND,A10
|
||
JRUC CPPLOTLOOP
|
||
|
||
CPPLOTDONE
|
||
MOVE A14,B5
|
||
FRET B5
|
||
|
||
**************************************************************************
|
||
* *
|
||
* CHIPOUT *
|
||
* *
|
||
* ACTUALLY PLOT THE CHIP *
|
||
* *
|
||
* ENTRY *
|
||
* A10 POINTS TO CHIP TO PLOT *
|
||
* A11 COLOR OF CHIP *
|
||
* 00 = OUTLINE *
|
||
* 01 = GREEN *
|
||
* 02 = RED *
|
||
* 03 = GREY *
|
||
* *
|
||
* EXIT *
|
||
* A10 IS INTACT *
|
||
* *
|
||
**************************************************************************
|
||
|
||
CHIPOUT:
|
||
MOVE *A10(CMLOC),A5,L ; CHIP OUTLINE
|
||
MOVE A5,A6
|
||
MOVE A5,A7
|
||
MOVE A5,A8
|
||
MOVE *A10(CMXSIZE),A0,W
|
||
ADD A0,A6
|
||
ADD A0,A7
|
||
MOVE *A10(CMYSIZE),A0,W
|
||
SLL 16,A0
|
||
ADD A0,A7
|
||
ADD A0,A8
|
||
MOVE A5,A0
|
||
MOVE A6,A1
|
||
MOVI ROBO_WHITE,A2
|
||
FCALL HVLINE,B6
|
||
MOVE A6,A0
|
||
MOVE A7,A1
|
||
MOVI ROBO_WHITE,A2
|
||
FCALL HVLINE,B6
|
||
MOVE A8,A0
|
||
MOVE A7,A1
|
||
MOVI ROBO_WHITE,A2
|
||
FCALL HVLINE,B6
|
||
MOVE A5,A0
|
||
MOVE A8,A1
|
||
MOVI ROBO_WHITE,A2
|
||
FCALL HVLINE,B6
|
||
;
|
||
MOVE *A10(CMSTUFFED),A0,W ; CHECK FOR STUFFED
|
||
JRNZ CONOSTUF
|
||
MOVK 3,A11 ; WANT IT GREY, DUDE
|
||
|
||
CONOSTUF
|
||
MOVE A11,A11 ; CHECK FOR FILLING THE CHIP
|
||
JRZ CONOFILL
|
||
MOVE *A10(CMLOC),A0,L
|
||
ADDI 00010001H,A0
|
||
MOVE *A10(CMSIZE),A1,L
|
||
SUBI 00010001H,A1 ; GET INTERNAL AREA
|
||
MOVE A11,A2
|
||
SLL 4,A2
|
||
ADDI CHIPCOLORS,A2
|
||
MOVE *A2,A2,W ; GET ME A COLOR
|
||
FCALL RECTANGLE,B6
|
||
CONOFILL
|
||
MOVE *A10(CMPINLOC),A1,L ; PIN LOCATION
|
||
MOVE A5,A0
|
||
ADD A1,A0
|
||
MOVI ROBO_WHITE,A1
|
||
FCALL POINT,B6
|
||
|
||
MOVE *A10(CMSTRING),A0,L ; CHIP TEXT
|
||
MOVE A5,A1
|
||
MOVE *A10(CMOFFSET),A2,L
|
||
ADD A2,A1
|
||
MOVE *A10(CMDIR),A2,W
|
||
MOVI ROBO_BLACK,A3
|
||
MOVE A11,A11 ; CHECK FOR COLOR
|
||
JRNZ COBLACK
|
||
MOVI ROBO_WHITE,A3
|
||
COBLACK
|
||
FCALL STRING,B6
|
||
FRET B5
|
||
|
||
CHIPCOLORS:
|
||
.WORD ROBO_BLACK
|
||
.WORD ROBO_GREEN
|
||
.WORD ROBO_RED
|
||
.WORD ROBO_GREY
|
||
|
||
**************************************************************************
|
||
* *
|
||
* DMACHECK *
|
||
* *
|
||
* CHECK THE DMA OUT *
|
||
* *
|
||
* ENTRY *
|
||
* B5 RETURN ADDRESS *
|
||
* *
|
||
* EXIT *
|
||
* A0 DMA STATUS *
|
||
* 0 = GOOD *
|
||
* 1 = BAD *
|
||
* *
|
||
**************************************************************************
|
||
|
||
DMACHECK
|
||
MOVI [1,448],A14,L ; BLOW OUT TRADEMARK
|
||
MOVE A14,@DMAHSIZE,1
|
||
|
||
CLR A14
|
||
MOVE A14,@DMAOFFST ; OFFSET
|
||
MOVE A14,@DMACONST, 0 ; CONSTANT
|
||
MOVE A14,@DMAHORIZ, 1 ; CLEAR DESTINATION ADDRESS
|
||
MOVE A14,@DMASAGL, 1
|
||
MOVI 257,A14
|
||
MOVE A14,@DMAVERT,W ; NEAT NEW VERTICAL ADDRESS
|
||
|
||
MOVI 0505H,A14
|
||
MOVE A14,@DMACMAP, 0
|
||
|
||
MOVI 8003H,A14 ; USE IMAGE ROM - WRITE ALWAYS
|
||
MOVE A14,@DMACTRL, 0
|
||
|
||
MOVI 7FFFH,A14
|
||
DMACWAIT
|
||
MOVE @DMACTRL,A0,W ;DMA BUSY?
|
||
BTST 15,A0
|
||
JREQ DMADONE
|
||
DSJS A14,DMACWAIT
|
||
JRUC DMACBAD ; DMA TIMED OUT
|
||
|
||
DMADONE
|
||
CLR A0 ; GET BACK TO A REAL PALETTE
|
||
MOVE A0,@DMACMAP,0
|
||
MOVI 0101000H,A0 ; LOCATION
|
||
MOVI 2000000H,A1 ; DMA LOGO LOCATION
|
||
MOVI 448,A2 ; NUMBER OF BYTES TO COMPARE
|
||
DMACLOOP
|
||
MOVB *A0,A3
|
||
SLL 28,A3
|
||
SRL 28,A3
|
||
; ANDI 0FH,A3 ; MASK, SINCE IT IS 4 BITS, DUDE!
|
||
MOVB *A1,A4
|
||
SLL 28,A4
|
||
SRL 28,A4
|
||
; ANDI 0FH,A4 ; WELL, WE KNOW WHAT IT SHOULD BE, BUT...
|
||
ADDK 8,A0
|
||
ADDK 8,A1
|
||
CMP A3,A4
|
||
JRNZ DMACBAD
|
||
DSJS A2,DMACLOOP
|
||
;
|
||
; NOW CHECK OUT THE PALETTE END OF THINGS
|
||
;
|
||
MOVI PAL_SELECT, A13
|
||
MOVE A13,@SYSCTRL,W ; ENABLE PALETTE
|
||
|
||
MOVI 0101000H,A0 ; LOCATION
|
||
MOVI 224,A2 ; NUMBER OF BYTES TO COMPARE
|
||
DMACLOOP2
|
||
MOVE *A0+,A3,W
|
||
ANDI 0F0FH,A3
|
||
CMPI 0505H,A3
|
||
JRNZ DMACBAD
|
||
DSJS A2,DMACLOOP2
|
||
CLR A0
|
||
JRUC DMACRET
|
||
DMACBAD
|
||
CLR A0 ; GET BACK TO A REAL PALETTE
|
||
MOVE A0,@DMACTRL,W
|
||
MOVE A0,@DMACMAP,W
|
||
MOVK 1,A0
|
||
DMACRET
|
||
MOVI 0FFFCH,A13
|
||
MOVE A13,@SYSCTRL,W
|
||
MOVE A0,A0
|
||
FRET B5
|
||
|
||
**************************************************************************
|
||
* *
|
||
* RAMCHECK *
|
||
* *
|
||
* CHECK A BANK OF RAM, GIVEN A STARTING TABLE ADDRESS *
|
||
* *
|
||
* ENTRY *
|
||
* A14 POINTER TO RAM TABLE *
|
||
* B5 RETURN ADDRESS *
|
||
* *
|
||
* EXIT *
|
||
* B0 LIST OF ERRORS *
|
||
* *
|
||
**************************************************************************
|
||
|
||
RAMCHECK:
|
||
SETF 16, 0, 0
|
||
SETF 32, 0, 1
|
||
|
||
; SNAG NEXT CHIP RECORD
|
||
|
||
RAMLOOP:
|
||
CLR B2
|
||
MOVE *A14(RAM_SADR),A12,L ; STARTING ADDRESS
|
||
MOVE *A14(RAM_EADR),A13,L ; ENDING ADDRESS
|
||
MOVE *A14(RAM_ITLV),A11,W ; INTERLEAVE
|
||
MOVE *A14(RAM_WDTH),A10,W ; WIDTH
|
||
|
||
; CELL COUNT
|
||
|
||
SUB A12, A13 ; (END-START)/INTERLEAVE+1
|
||
DIVU A11, A13
|
||
INC A13
|
||
|
||
; SET FIELD SIZES
|
||
|
||
MOVE A11, A9 ; FS1 = INTERLEAVE
|
||
ANDI ZERO_EXTEND, A9
|
||
EXGF A9, 1
|
||
|
||
MOVE A10, A9 ; FS0 = WIDTH
|
||
ANDI ZERO_EXTEND, A9
|
||
EXGF A9, 0
|
||
|
||
; FILL IN ASCENDING ORDER
|
||
|
||
MOVE A13, A9 ; XEROX COUNT
|
||
MOVE A12, A8 ; XEROX START
|
||
|
||
MOVI RANDOM_SEED, A7, L
|
||
CLR A5
|
||
|
||
RAC1: SLA 1, A7 ; GENERATE A PSEUDO
|
||
JRV RAC2 ; RANDOM NUMBER
|
||
ORI 2, A7
|
||
RAC2: MOVE A7, A6
|
||
ADDC A5, A6
|
||
|
||
MOVE A6, *A8+, 1 ; WRITE
|
||
|
||
DSJS A9, RAC1
|
||
|
||
; READBACK IN ASCENDING ORDER
|
||
|
||
MOVE A13, A9 ; XEROX COUNT
|
||
MOVE A12, A8 ; XEROX START
|
||
|
||
MOVI RANDOM_SEED, A7, L
|
||
|
||
RAC3: SLA 1, A7 ; GENERATE A PSEUDO
|
||
JRV RAC4 ; RANDOM NUMBER
|
||
ORI 2, A7
|
||
RAC4: MOVE A7, A6
|
||
ADDC A5, A6
|
||
|
||
MOVE *A8+, A4, 1 ; READ
|
||
|
||
ZEXT A6
|
||
ZEXT A4
|
||
|
||
CMP A6, A4
|
||
JRZ RAC5
|
||
;
|
||
; GOT AN ERROR HERE
|
||
;
|
||
SETF 16, 0, 0 ; RESET FIELDS
|
||
SETF 32, 0, 1
|
||
MOVE *A14(RAM_NMBR),A4,W ; GET BIT NUMBER TO SET
|
||
MOVE A4,B1
|
||
MOVK 1,B2
|
||
SLL B1,B2
|
||
OR B2,B0 ; SET THAT BIT
|
||
JRUC RAC6 ; BREAK !!
|
||
|
||
RAC5: DSJS A9, RAC3
|
||
|
||
RAC6: SETF 16, 0, 0 ; RESET FIELDS
|
||
SETF 32, 0, 1
|
||
;
|
||
; B1 SHOULD BE ZERO IF THE CHIP IS COOL HERE
|
||
;
|
||
MOVE *A14(RAM_LINK),A10,L
|
||
JRZ RAMNOPLOT
|
||
MOVK 1,A11
|
||
MOVE B2,B2
|
||
JRZ RAMPLOT
|
||
MOVK 2,A11
|
||
RAMPLOT
|
||
MOVE B5,A9 ; I HOPE THIS ONE IS SAFE!
|
||
MOVE B0,A13
|
||
FCALL CHIPOUT,B5
|
||
MOVE A13,B0
|
||
MOVE A9,B5
|
||
|
||
RAMNOPLOT
|
||
ADDI RAM_SIZE,A14 ; ADVANCE TO NEXT GUY
|
||
MOVE *A14,A7,W
|
||
JRNZ RAMLOOP ; HERE WE GO AGAIN
|
||
FRET B5
|
||
|
||
**************************************************************************
|
||
* *
|
||
* ROM STUFF *
|
||
* *
|
||
**************************************************************************
|
||
|
||
ROMCHECK:
|
||
|
||
ROMLOOP
|
||
CLR B2
|
||
MOVE *A14(ROM_CKSM),A13,L ; CHECK TO SEE IF ROM SOCKET THERE
|
||
JRZ ROMEMPTY
|
||
CLR A8 ; CHECKSUM
|
||
|
||
MOVE *A14(ROM_SADR),A12,L ; STARTING ADDRESS
|
||
MOVE *A14(ROM_EADR),A13,L ; ENDING ADDRESS
|
||
MOVE *A14(ROM_ITLV),A11,W ; INTERLEAVE
|
||
MOVE *A14(ROM_WDTH),A10,W ; WIDTH
|
||
JRZ PROG_ROM
|
||
;
|
||
; SUM UP A GIVEN IMAGE ROM -- THIS IS ONLY FOR 4BIT SYSTEMS
|
||
;
|
||
SUB A12,A13 ; ( EADDR - SADDR ) / 32 + 1
|
||
MOVK 32,A0
|
||
DIVU A0,A13
|
||
INC A13
|
||
|
||
SLL 1,A11 ;ADJUST SHIFT FOR TYPE
|
||
NEG A11
|
||
;
|
||
;
|
||
RCILP
|
||
MOVE *A12+,A7,L
|
||
|
||
SRL A11,A7
|
||
|
||
MOVE A7,A0
|
||
ANDI 00000003H,A0 ; BITS 1-0
|
||
MOVE A0,A1 ; FIRST TWO BITS
|
||
MOVE A7,A0
|
||
ANDI 00000300H,A0
|
||
SRL 6,A0
|
||
OR A0,A1 ; BITS 3-2
|
||
MOVE A7,A0
|
||
ANDI 000030000H,A0
|
||
SRL 12,A0
|
||
OR A0,A1 ; BITS 5-4
|
||
MOVE A7,A0
|
||
ANDI 03000000H,A0
|
||
SRL 18,A0
|
||
OR A0,A1 ; BITS 7-6
|
||
|
||
RCILDONE
|
||
ADD A1,A8
|
||
DSJ A13,RCILP
|
||
JRUC ROMCKCK
|
||
|
||
PROG_ROM
|
||
SUB A12,A13 ; ( EADDR - SADDR ) / 32 + 1
|
||
*** MOVK 8,A0
|
||
*** DIVU A0,A13
|
||
SRL 4,A13
|
||
INC A13
|
||
RCPLP
|
||
MOVB *A12,A7
|
||
SLL 24,A7
|
||
SRL 24,A7
|
||
ADDK 16,A12
|
||
ADD A7,A8
|
||
DSJS A13,RCPLP
|
||
|
||
ROMCKCK
|
||
MOVE *A14(ROM_CKSM),A7,W
|
||
ZEXT A7
|
||
ZEXT A8
|
||
**** ANDI 0FFFFH,A7
|
||
CMP A7,A8
|
||
JRZ ROMRELOOP
|
||
MOVE *A14(ROM_NMBR),A4,W ; GET BIT NUMBER TO SET
|
||
MOVE A4,B1
|
||
MOVK 1,B2
|
||
SLL B1,B2
|
||
OR B2,B0 ; SET THAT BIT
|
||
ROMRELOOP
|
||
MOVE *A14(ROM_LINK),A10,L
|
||
JRZ ROMNOPLOT
|
||
MOVK 1,A11
|
||
MOVE B2,B2
|
||
JRZ ROMPLOT
|
||
MOVK 2,A11
|
||
ROMPLOT
|
||
MOVE B5,A9 ; I HOPE THIS ONE IS SAFE!
|
||
MOVE B0,A13
|
||
FCALL CHIPOUT,B5
|
||
MOVE A13,B0
|
||
MOVE A9,B5
|
||
|
||
ROMNOPLOT
|
||
ADDI ROM_SIZE,A14
|
||
JRUC ROMLOOP
|
||
;
|
||
ROMEMPTY
|
||
FRET B5
|
||
|
||
|
||
;****************************************************************************
|
||
;* INITCOLR: INITIALIZE COLORS; ROUTINE LOADS PALETTE 0 WITH THE COLOR *
|
||
;* PALETTE USED BY DIAGNOSTIC TESTS. *
|
||
;****************************************************************************
|
||
|
||
INITCOLR:
|
||
;
|
||
|
||
MOVI COLRAM,A0,L ; PALETTE LOCATION
|
||
MOVI DIAGP,A1,L
|
||
MOVE *A1+,A2,W ; LENGTH OF PALETTE
|
||
LPLP1
|
||
MOVE *A1+,*A0+,W
|
||
DSJS A2,LPLP1 ; KEEP ON CHUGGIN, BABY
|
||
|
||
CLR A14
|
||
MOVE A14, @CMAPSEL
|
||
|
||
FRET B5
|
||
;****************************************************************************
|
||
;* POINT: FUNCTION DISPLAYS A POINT OF ANY COLOR. *
|
||
;* *
|
||
;* ENTRY: A0 = XY SCREEN ADDRESS OF THE POINT *
|
||
;* A1 = COLOR VALUE *
|
||
;* B6 = RETURN ADDRESS *
|
||
;* *
|
||
;* USES: A0, A1, B2, B3, B4, B6, B10 *
|
||
;****************************************************************************
|
||
|
||
POINT:
|
||
|
||
MOVI SCRN_PTCH, DPTCH
|
||
CLR OFFSET
|
||
|
||
LMO DPTCH, B10
|
||
MOVE B10, @CONVDP
|
||
|
||
PIXT A1, *A0.XY
|
||
|
||
FRET B6
|
||
|
||
;****************************************************************************
|
||
;* RECTANGLE: FUNCTION DISPLAYS A RECTANGLE OF ANY COLOR. *
|
||
;* *
|
||
;* ENTRY: A0 = XY SCREEN ADDRESS OF UPPER LEFT CORNER *
|
||
;* A1 = XY RECTANGLE DIMENSIONS *
|
||
;* A2 = COLOR VALUE *
|
||
;* *
|
||
;* B6 = RETURN ADDRESS *
|
||
;* *
|
||
;* USES: A0, A1, A2, B2, B3, B4, B6, B7, B9, B10 *
|
||
;****************************************************************************
|
||
|
||
RECTANGLE:
|
||
|
||
MOVI SCRN_PTCH, DPTCH
|
||
CLR OFFSET
|
||
|
||
LMO DPTCH, B10
|
||
MOVE B10, @CONVDP
|
||
|
||
MOVE A2, COLOR1
|
||
MOVE A0, DADDR
|
||
MOVE A1, DYDX
|
||
|
||
FILL XY
|
||
|
||
FRET B6
|
||
|
||
;****************************************************************************
|
||
;* LINE: FUNCTION DRAWS HORIZONTAL OR VERTICAL LINES OF ANY COLOR. *
|
||
;* *
|
||
;* ENTRY: A0 = BEGINNING XY SCREEN ADDRESS *
|
||
;* A1 = ENDING XY SCREEN ADDRESS *
|
||
;* A2 = COLOR VALUE *
|
||
;* *
|
||
;* B6 = RETURN ADDRESS *
|
||
;* *
|
||
;* USES: A0, A1, A2, A3, A4, B3, B4, B6, B9, B10 *
|
||
;****************************************************************************
|
||
|
||
HVLINE:
|
||
|
||
; CLR A0
|
||
; CLR A1
|
||
;HVL1
|
||
; MOVE A2,*A0+
|
||
; MOVI 100,A3
|
||
;LLL DSJS A3,LLL
|
||
; DSJS A1,HVL1
|
||
|
||
|
||
MOVI SCRN_PTCH, DPTCH
|
||
CLR OFFSET
|
||
|
||
LMO DPTCH, B10
|
||
MOVE B10, @CONVDP
|
||
|
||
MOVE A2, COLOR1
|
||
|
||
MOVK 1H, A2 ; DRAV DX: ASSUME HORIZONTAL LINE
|
||
|
||
MOVE A0, A3 ; DETERMINE (P2 > P1) OR (P2 < P1)
|
||
CVXYL A3, A3
|
||
|
||
MOVE A1, A4
|
||
CVXYL A4, A4
|
||
|
||
CMP A3, A4 ; IF (P2 < P1) ~(INCREMENT)
|
||
JRP $100
|
||
|
||
NEG A2 ; INCREMENT IS A SIGNED WORD
|
||
ZEXT A2, 0
|
||
|
||
$100: CMPXY A0, A1 ; IF VERTICAL LINE
|
||
JRZ $110 ; DRAV DX -> DRAV DY
|
||
SLL 16, A2
|
||
|
||
$110: DRAV A2, A0 ; DRAW LINE
|
||
CMPXY A0, A1
|
||
JRNN $110
|
||
JRNZ $110
|
||
|
||
FRET B6
|
||
|
||
;****************************************************************************
|
||
;* STRING: FUNCTION DISPLAYS AN ASCIZ STRING OF ANY COLOR EITHER VERTICALLY *
|
||
;* OR HORIZONTALLY. *
|
||
;* *
|
||
;* ENTRY: A0 = STARTING STRING ADDRESS *
|
||
;* A1 = XY SCREEN ADDRESS *
|
||
;* A2 = DIRECTION *
|
||
;* A3 = COLOR *
|
||
;* *
|
||
;* B6 = RETURN ADDRESS *
|
||
;* *
|
||
;* USES: A0 - A6, B0 - B4, B6 - B14 *
|
||
;****************************************************************************
|
||
STRNEW1
|
||
MMTM SP,A1,A2,A3,A4,A5,A6
|
||
FCALL STRING,B6
|
||
MMFM SP,A1,A2,A3,A4,A5,A6
|
||
RETS
|
||
STRNEW
|
||
MMTM SP,A0
|
||
CALLR STRNEW1
|
||
MMFM SP,A0
|
||
RETS
|
||
STRING:
|
||
|
||
MOVI SCRN_PTCH, DPTCH
|
||
CLR OFFSET
|
||
|
||
LMO DPTCH, B10
|
||
MOVE B10, @CONVDP
|
||
|
||
MOVE A3, COLOR1
|
||
CLR COLOR0
|
||
|
||
|
||
$200: MOVB *A0, A4 ; GET CHARACTER
|
||
JRZ $230 ; QUIT IFF NULL
|
||
|
||
ADDK 8,A0
|
||
SUBK 32, A4 ; GET POINTER TO CHARACTER HEADER
|
||
SLL 3, A4
|
||
ADDI SYSFONT,A4,L
|
||
MOVB *A4,A4
|
||
SLL 5,A4
|
||
ADDI T2_SP,A4
|
||
MOVE *A4+,A5 ; CHAR DIMENSIONS
|
||
MOVE A5,A6 ; SPLIT UP BYTE
|
||
SLL 12,A6 ;SHIFT UP HEIGHT TO Y
|
||
SLL 28,A5 ;STRIP AWAY HEIGHT
|
||
SRL 28,A5
|
||
MOVY A6,A5
|
||
RL 16,A5
|
||
MOVE A5,DYDX
|
||
|
||
CLR A6 ; A6 = CHAR WIDTH
|
||
MOVX A5, A6
|
||
|
||
ADDK 7, A6 ; ROUND UP WIDTH TO INTEGRAL NUMBER
|
||
SRL 3, A6 ; OF BYTES = SOURCE PITCH
|
||
SLL 3, A6
|
||
MOVE A6, SPTCH
|
||
|
||
MOVE *A4,A6 ; CHAR DATA
|
||
ADDI CBASE,A6
|
||
MOVE A6, SADDR
|
||
|
||
MOVE A1, DADDR
|
||
|
||
PIXBLT B,XY
|
||
|
||
CLR A6
|
||
MOVE A2, A2
|
||
JRZ $210
|
||
|
||
MOVY A5, A6 ; A1 += (CHAR HEIGHT + SPACING)
|
||
SRL 16, A6 ; DIRECTION = DOWN
|
||
ADDK 1H, A6
|
||
SLL 16, A6
|
||
ADD A6, A1
|
||
JRUC $200
|
||
|
||
$210: MOVX A5, A6 ; A1 += (CHAR WIDTH + SPACING)
|
||
ADDK 2H, A6 ; DIRECTION = RIGHT
|
||
ADD A6, A1
|
||
JRUC $200
|
||
|
||
$230: ; SETF 16, 1, 0
|
||
FRET B6
|
||
|
||
;STRINGCENTER:
|
||
; SETF 8, 0, 0
|
||
; CLR A1
|
||
; MOVE A0,A2
|
||
;SPLLOOP
|
||
; MOVE *A0+, A4 ; GET THE CHAR
|
||
; JRZ SPLEND ; END OF STRING
|
||
;
|
||
; SUBK 32, A4 ; GET POINTER TO CHARACTER HEADER
|
||
; SLL 5H, A4
|
||
; ADDI SYSFONT, A4, L
|
||
; MOVE *A4, A4, 1
|
||
;
|
||
; MOVE *A4+, A5, 1 ; CHAR DIMENSIONS
|
||
; MOVE A5, DYDX
|
||
;
|
||
; CLR A6 ; A6 = CHAR WIDTH
|
||
; MOVX A5, A6
|
||
;
|
||
; ADDK 7, A6 ; ROUND UP WIDTH TO INTEGRAL NUMBER
|
||
; SRL 3, A6 ; OF BYTES = SOURCE PITCH
|
||
; SLL 3, A6
|
||
;
|
||
; MOVX A5, A6 ; A1 += (CHAR WIDTH + SPACING)
|
||
; ADDK 2H, A6 ; DIRECTION = RIGHT
|
||
; ADD A6, A1
|
||
; JRUC SPLLOOP
|
||
;
|
||
;SPLEND
|
||
; SETF 16, 1, 0
|
||
; MOVE A2,A0 ; RESTORE STRING ADDRESS
|
||
; SRL 1,A1
|
||
; MOVI 200,A2
|
||
; SUB A1,A2
|
||
; MOVE A2,A1
|
||
; FRET B6
|
||
;****************************************************************************
|
||
;* CIRCLE: FUNCTION DRAWS OUTLINE OR FILLED CIRCLES. *
|
||
;* *
|
||
;* ENTRY: A0 = radius *
|
||
;* A1 = center (Y:X) *
|
||
;* A6 = <00:15> = color *
|
||
;* A6 = <15:31> = fill: 0=no fill, 1=fill *
|
||
;* *
|
||
;* USES: A0 - A8, B0, B10 *
|
||
;****************************************************************************
|
||
|
||
CIRCLE:
|
||
|
||
movi plot8,a7 ; assume no fill
|
||
btst 16,a6
|
||
jrz CIRC0
|
||
movi fill4,a7
|
||
CIRC0:
|
||
movi SCRN_PTCH,DPTCH ; Restore screen pitch and convdp
|
||
MOVI 13h,B10 ; THIS IS FASTER
|
||
MOVE B10,@CONVDP
|
||
MOVE A6,COLOR1
|
||
movi [1,0],DYDX ; Y width always 1
|
||
|
||
clr a2 ; x = 0
|
||
move a0,a3 ; y = r
|
||
move a0,a4
|
||
sll 1,a4
|
||
subk 3,a4
|
||
neg a4 ; d = 3 - 2*r
|
||
cloop:
|
||
cmp a3,a2 ; if x > y, we are done
|
||
jrgt done
|
||
|
||
MOVE A7, B0 ; PLOT ROUTINE
|
||
EXGPC B0
|
||
|
||
move a2,a5 ; x -> a5
|
||
btst 31,a4
|
||
jrz dpos ; branch if d is positive
|
||
|
||
; d negative
|
||
|
||
sll 2,a5 ; 4*x -> a5
|
||
addk 6,a5 ; 4*x+6 -> a5
|
||
jruc cont
|
||
|
||
; d positive
|
||
|
||
dpos:
|
||
|
||
sub a3,a5 ; x-y -> a5
|
||
sll 2,a5 ; 4*(x-y) -> a5
|
||
addk 10,a5 ; 4*(x-y)+10 -> a5
|
||
subk 1,a3 ; y = y - 1
|
||
|
||
cont:
|
||
add a5,a4 ; d = d + a5
|
||
addk 1,a2 ; x = x + 1
|
||
jruc cloop
|
||
|
||
done: FRET B6
|
||
|
||
plot8:
|
||
move a3,a5
|
||
neg a5 ; -y into a5; +y in a3
|
||
sll 16,a5
|
||
sll 16,a3
|
||
movx a2,a5 ; a3 = (y:x)
|
||
movx a2,a3 ; a5 = (-y:x)
|
||
|
||
movk 2,a8
|
||
put4:
|
||
move a1,a0 ; center (Y:X) in a0
|
||
addxy a3,a0 ; (cx+x),(cy+y)
|
||
pixt a6,*a0.XY
|
||
move a1,a0 ; center (Y:X) in a0
|
||
addxy a5,a0 ; (cx+x),(cy-y)
|
||
pixt a6,*a0.XY
|
||
move a1,a0 ; center (Y:X) in a0
|
||
subxy a3,a0 ; (cx-x),(cy-y)
|
||
pixt a6,*a0.XY
|
||
move a1,a0 ; center (Y:X) in a0
|
||
subxy a5,a0 ; (cx-x),(cy+y)
|
||
pixt A6,*a0.XY
|
||
rl 16,a3
|
||
rl 16,a5 ; transpose x and y
|
||
dsj a8,put4
|
||
sra 16,a3 ; restore y
|
||
|
||
FRET B0
|
||
|
||
fill4:
|
||
move a2,b10 ; x
|
||
sll 1,b10 ; 2x
|
||
movx b10,DYDX ; delta x = 2x
|
||
move a3,a5
|
||
neg a5 ; -y into a5 +y in a3
|
||
sll 16,a5
|
||
sll 16,a3
|
||
movx a2,a5 ; a3 = (y:x)
|
||
movx a2,a3 ; a5 = (-y:x)
|
||
movk 2,a8
|
||
put2:
|
||
move a1,a0
|
||
subxy a5,a0
|
||
move a0,DADDR
|
||
fill XY
|
||
|
||
move a1,a0
|
||
subxy a3,a0
|
||
move a0,DADDR
|
||
fill XY
|
||
rl 16,a3 ; a3 = (x:y)
|
||
rl 16,a5 ; transpose x and y
|
||
clr a6
|
||
subxy a5,a6
|
||
move a6,a5 ; a5 = (-x:y)
|
||
move a3,b10 ; y
|
||
sll 1,b10 ; 2y
|
||
movx b10,DYDX ; delta x = 2y
|
||
dsj a8,put2
|
||
sra 16,a3 ; restore y
|
||
|
||
FRET B0
|
||
*
|
||
*SCRCLR - CLEAR ENTIRE BIT MAP
|
||
* USES:B2,B3,B4 CALL WITH B6
|
||
DSCRCLR
|
||
CLR B2
|
||
DSWRITE
|
||
CLR B3
|
||
MOVE B3,@DMACMAP,0
|
||
MOVI SCREEN,B3,L
|
||
MOVI (SCRNE-SCREEN)/32,B4,L
|
||
SCRLP MOVE B2,*B3+,L
|
||
DSJS B4,SCRLP
|
||
FRET B6
|
||
|
||
**************************************************************************
|
||
* *
|
||
* CPU BOARD INFORMATION *
|
||
* *
|
||
**************************************************************************
|
||
|
||
CPU_VECS:
|
||
VECMAC ROBO_WHITE,5,15,390,15 ; BOARD OUTLINE
|
||
VECMAC ROBO_WHITE,390,15,390,254
|
||
VECMAC ROBO_WHITE,5,254,390,254
|
||
VECMAC ROBO_WHITE,5,15,5,100
|
||
VECMAC ROBO_WHITE,5,100,15,100
|
||
VECMAC ROBO_WHITE,15,100,15,115
|
||
VECMAC ROBO_WHITE,5,115,15,115
|
||
VECMAC ROBO_WHITE,5,115,5,135
|
||
VECMAC ROBO_WHITE,5,135,15,135
|
||
VECMAC ROBO_WHITE,15,135,15,138
|
||
VECMAC ROBO_WHITE,5,138,15,138
|
||
VECMAC ROBO_WHITE,5,138,5,215
|
||
VECMAC ROBO_WHITE,5,215,15,215
|
||
VECMAC ROBO_WHITE,15,215,15,230
|
||
VECMAC ROBO_WHITE,5,230,15,230
|
||
VECMAC ROBO_WHITE,5,230,5,254
|
||
.LONG 0
|
||
|
||
CPUXBASE EQU 5
|
||
CPUYBASE EQU 5
|
||
|
||
|
||
CPU_CHIPS:
|
||
CRAM1 CHIPMAC 0,100,25,20,40,7,12,CNAME5,1,2,2,1 ; COLOR RAM
|
||
CRAM2 CHIPMAC 1,100,70,20,40,7,8,CNAME23,1,2,2,1 ; COLOR RAM
|
||
|
||
VRAM1 CHIPMAC 2,200,25,15,35,5,5,CNAME10,1,2,2,1 ; BANK 1 VIDEO RAM
|
||
VRAM2 CHIPMAC 3,217,25,15,35,5,5,CNAME11,1,2,2,1
|
||
VRAM3 CHIPMAC 4,234,25,15,35,5,5,CNAME12,1,2,2,1
|
||
VRAM4 CHIPMAC 5,251,25,15,35,5,5,CNAME13,1,2,2,1
|
||
VRAM5 CHIPMAC 6,268,25,15,35,5,5,CNAME14,1,2,2,1
|
||
VRAM6 CHIPMAC 7,285,25,15,35,5,5,CNAME15,1,2,2,1
|
||
|
||
VRAM7 CHIPMAC 8,200,70,15,35,5,5,CNAME28,1,2,2,1 ; BANK 2 VIDEO RAM
|
||
VRAM8 CHIPMAC 9,217,70,15,35,5,5,CNAME29,1,2,2,1
|
||
VRAM9 CHIPMAC 10,234,70,15,35,5,5,CNAME30,1,2,2,1
|
||
VRAM10 CHIPMAC 11,251,70,15,35,5,5,CNAME31,1,2,2,1
|
||
VRAM11 CHIPMAC 12,268,70,15,35,5,5,CNAME32,1,2,2,1
|
||
VRAM12 CHIPMAC 13,285,70,15,35,5,5,CNAME33,1,2,2,1
|
||
|
||
CPU CHIPMAC 0,330,80,35,35,8,14,CNAME36,0,3,3,1 ; CPU
|
||
DMA CHIPMAC 0,320,175,45,40,12,18,CNAME99,0,42,3,1 ; DMA
|
||
|
||
PROM1 CHIPMAC 0,90,167,20,40,7,8,CNAME89,1,2,2,1 ; PROGRAM ROM 1
|
||
PROM2 CHIPMAC 1,90,210,20,40,7,3,CNAME105,1,2,2,1 ; PROGRAM ROM 2
|
||
|
||
IROM1 CHIPMAC 1,130,167,20,40,7,8,CNAME90,1,2,2,0 ; IMAGE ROM
|
||
IROM2 CHIPMAC 2,152,167,20,40,7,8,CNAME91,1,2,2,0 ; IMAGE ROM
|
||
IROM3 CHIPMAC 3,174,167,20,40,7,8,CNAME92,1,2,2,0 ; IMAGE ROM
|
||
IROM4 CHIPMAC 4,196,167,20,40,7,8,CNAME93,1,2,2,0 ; IMAGE ROM
|
||
|
||
IROM5 CHIPMAC 5,228,167,20,40,7,8,CNAME95,1,2,2,1 ; IMAGE ROM
|
||
IROM6 CHIPMAC 6,250,167,20,40,7,8,CNAME96,1,2,2,1 ; IMAGE ROM
|
||
IROM7 CHIPMAC 7,272,167,20,40,7,8,CNAME97,1,2,2,1 ; IMAGE ROM
|
||
IROM8 CHIPMAC 8,294,167,20,40,7,8,CNAME98,1,2,2,0 ; IMAGE ROM
|
||
|
||
IROM9 CHIPMAC 9,130,210,20,40,7,3,CNAME106,1,2,2,1 ; IMAGE ROM
|
||
IROM10 CHIPMAC 10,152,210,20,40,7,3,CNAME107,1,2,2,1 ; IMAGE ROM
|
||
IROM11 CHIPMAC 11,174,210,20,40,7,3,CNAME108,1,2,2,1 ; IMAGE ROM
|
||
IROM12 CHIPMAC 12,196,210,20,40,7,3,CNAME109,1,2,2,0 ; IMAGE ROM
|
||
|
||
IROM13 CHIPMAC 13,228,210,20,40,7,3,CNAME111,1,2,2,1 ; IMAGE ROM
|
||
IROM14 CHIPMAC 14,250,210,20,40,7,3,CNAME112,1,2,2,1 ; IMAGE ROM
|
||
IROM15 CHIPMAC 15,272,210,20,40,7,3,CNAME113,1,2,2,1 ; IMAGE ROM
|
||
IROM16 CHIPMAC 16,294,210,20,40,7,3,CNAME114,1,2,2,0 ; IMAGE ROM
|
||
|
||
SRAM1 CHIPMAC 0,30,130,15,35,5,5,CNAME66,1,2,2,1 ; SCRATCH PAD
|
||
SRAM2 CHIPMAC 1,47,130,15,35,5,5,CNAME67,1,2,2,1 ; SCRATCH PAD
|
||
SRAM3 CHIPMAC 2,64,130,15,35,5,5,CNAME68,1,2,2,1 ; SCRATCH PAD
|
||
SRAM4 CHIPMAC 3,81,130,15,35,5,5,CNAME69,1,2,2,1 ; SCRATCH PAD
|
||
|
||
*CHIPMAC $MACRO NUM,X1,Y1,X2,Y2,X3,Y3,STRING,DIR,X4,Y4,STUFFED
|
||
CMOSRAM CHIPMAC 4,100,115,20,40,7,8,CNAME49,1,2,2,1 ; CMOS RAM
|
||
.LONG 0
|
||
|
||
VRAMTAB .LONG CRAM1,CRAM2
|
||
.LONG VRAM1,VRAM2,VRAM3,VRAM4,VRAM5,VRAM6
|
||
.LONG VRAM7,VRAM8,VRAM9,VRAM10,VRAM11,VRAM12
|
||
.LONG 0
|
||
PROMTAB .LONG PROM1,PROM2
|
||
.LONG 0
|
||
IROMTAB .LONG IROM1,IROM2,IROM3,IROM4
|
||
.LONG IROM5,IROM6,IROM7,IROM8
|
||
.LONG IROM9,IROM10,IROM11,IROM12
|
||
.LONG IROM13,IROM14,IROM15,IROM16
|
||
.LONG 0
|
||
SRAMTAB .LONG SRAM1,SRAM2,SRAM3,SRAM4,CMOSRAM
|
||
.LONG 0
|
||
|
||
CNAME5
|
||
.STRING "U5",0
|
||
.EVEN
|
||
CNAME10
|
||
.STRING "U10",0
|
||
.EVEN
|
||
CNAME11
|
||
.STRING "U11",0
|
||
.EVEN
|
||
CNAME12
|
||
.STRING "U12",0
|
||
.EVEN
|
||
CNAME13
|
||
.STRING "U13",0
|
||
.EVEN
|
||
CNAME14
|
||
.STRING "U14",0
|
||
.EVEN
|
||
CNAME15
|
||
.STRING "U15",0
|
||
.EVEN
|
||
CNAME23
|
||
.STRING "U23",0
|
||
.EVEN
|
||
CNAME28
|
||
.STRING "U28",0
|
||
.EVEN
|
||
CNAME29
|
||
.STRING "U29",0
|
||
.EVEN
|
||
CNAME30
|
||
.STRING "U30",0
|
||
.EVEN
|
||
CNAME31
|
||
.STRING "U31",0
|
||
.EVEN
|
||
CNAME32
|
||
.STRING "U32",0
|
||
.EVEN
|
||
CNAME33
|
||
.STRING "U33",0
|
||
.EVEN
|
||
CNAME36
|
||
.STRING "U36",0
|
||
.EVEN
|
||
CNAME49
|
||
.STRING "U49",0
|
||
.EVEN
|
||
CNAME66
|
||
.STRING "U66",0
|
||
.EVEN
|
||
CNAME67
|
||
.STRING "U67",0
|
||
.EVEN
|
||
CNAME68
|
||
.STRING "U68",0
|
||
.EVEN
|
||
CNAME69
|
||
.STRING "U69",0
|
||
.EVEN
|
||
CNAME89
|
||
.STRING "U89",0
|
||
.EVEN
|
||
CNAME90
|
||
.STRING "U90",0
|
||
.EVEN
|
||
CNAME91
|
||
.STRING "U91",0
|
||
.EVEN
|
||
CNAME92
|
||
.STRING "U92",0
|
||
.EVEN
|
||
CNAME93
|
||
.STRING "U93",0
|
||
.EVEN
|
||
CNAME95
|
||
.STRING "U95",0
|
||
.EVEN
|
||
CNAME96
|
||
.STRING "U96",0
|
||
.EVEN
|
||
CNAME97
|
||
.STRING "U97",0
|
||
.EVEN
|
||
CNAME98
|
||
.STRING "U98",0
|
||
.EVEN
|
||
CNAME99
|
||
.STRING "U99",0
|
||
.EVEN
|
||
CNAME105
|
||
.STRING "U105",0
|
||
.EVEN
|
||
CNAME106
|
||
.STRING "U106",0
|
||
.EVEN
|
||
CNAME107
|
||
.STRING "U107",0
|
||
.EVEN
|
||
CNAME108
|
||
.STRING "U108",0
|
||
.EVEN
|
||
CNAME109
|
||
.STRING "U109",0
|
||
.EVEN
|
||
CNAME111
|
||
.STRING "U111",0
|
||
.EVEN
|
||
CNAME112
|
||
.STRING "U112",0
|
||
.EVEN
|
||
CNAME113
|
||
.STRING "U113",0
|
||
.EVEN
|
||
CNAME114
|
||
.STRING "U114",0
|
||
.EVEN
|
||
CNAME115
|
||
.STRING "U115",0
|
||
.EVEN
|
||
|
||
|
||
|
||
**************************************************************************
|
||
* *
|
||
* RAM CHIP DATA *
|
||
* *
|
||
**************************************************************************
|
||
|
||
;
|
||
; MAKE SURE THESE TABLES CORRESPOND WITH THE STUFF ABOVE
|
||
;
|
||
VRAMCHIPS:
|
||
|
||
; COLOR RAMS
|
||
|
||
RAM_CHIP 0,0, 8, 16, 1800008H, 180FFF8H
|
||
RAM_CHIP 0,1, 8, 16, 1800000H, 180FFF0H
|
||
|
||
; VIDEO RAMS
|
||
RAM_CHIP 0,10, 4, 32, 0000018H, 01FFFF8H ; U30 ( 24 - 27 )
|
||
RAM_CHIP 0,11, 4, 32, 0000010H, 01FFFF0H ; U31 ( 16 - 19 )
|
||
RAM_CHIP 0,12, 4, 32, 0000008H, 01FFFE8H ; U32 ( 8 - 11 )
|
||
RAM_CHIP 0,13, 4, 32, 0000000H, 01FFFE0H ; U33 ( 0 - 3 )
|
||
|
||
;RAM_CHIP $MACRO TAB_LINK,CHIP_NO, WIDTH, INTERLEAVE, START_ADDR, END_ADDR
|
||
RAM_CHIP 0,2, 2, 32, 000001CH, 01FFFFCH ; U10 ( 28 - 29 )
|
||
RAM_CHIP 0,3, 2, 32, 0000014H, 01FFFF4H ; U11 ( 20 - 21 )
|
||
RAM_CHIP 0,8, 2, 32, 000000CH, 01FFFECH ; U28 ( 12 - 13 )
|
||
RAM_CHIP 0,9, 2, 32, 0000004H, 01FFFE4H ; U29 ( 4 - 5 )
|
||
|
||
.LONG 0
|
||
|
||
PALCHIPS:
|
||
|
||
; VIDEO PALETTE RAMS
|
||
|
||
RAM_CHIP 0,4, 4, 32, 0000018H, 01FFFF8H ; U12 ( 24 - 27 )
|
||
RAM_CHIP 0,5, 4, 32, 0000010H, 01FFFF0H ; U13 ( 16 - 19 )
|
||
RAM_CHIP 0,6, 4, 32, 0000008H, 01FFFE8H ; U14 ( 8 - 11 )
|
||
RAM_CHIP 0,7, 4, 32, 0000000H, 01FFFE0H ; U15 ( 0 - 3 )
|
||
|
||
;RAM_CHIP $MACRO TAB_LINK,CHIP_NO, WIDTH, INTERLEAVE, START_ADDR, END_ADDR
|
||
|
||
RAM_CHIP 0,2, 2, 32, 000001EH, 01FFFFEH ; U10 ( 30 - 31 )
|
||
RAM_CHIP 0,3, 2, 32, 0000016H, 01FFFF6H ; U11 ( 22 - 23 )
|
||
RAM_CHIP 0,8, 2, 32, 000000EH, 01FFFEEH ; U28 ( 14 - 15 )
|
||
RAM_CHIP 0,9, 2, 32, 0000006H, 01FFFE6H ; U29 ( 6 - 7 )
|
||
|
||
.LONG 0
|
||
|
||
; SCRATCH RAMS
|
||
|
||
SRAMCHECK
|
||
.STRING "CHECKING SCRATCH RAMS",0
|
||
.EVEN
|
||
|
||
SRAMCHIPS
|
||
RAM_CHIP SRAM4,3, 4, 16, 1000000H, 10FFFF0H ; U69 ( 0 - 3 )
|
||
RAM_CHIP SRAM3,2, 4, 16, 1000004H, 10FFFF4H ; U68 ( 4 - 7 )
|
||
RAM_CHIP SRAM2,1, 4, 16, 1000008H, 10FFFF8H ; U67 ( 8 - 11 )
|
||
RAM_CHIP SRAM1,0, 4, 16, 100000CH, 10FFFFCH ; U66 ( 12 - 15 )
|
||
;RAM_CHIP $MACRO TAB_LINK,CHIP_NO, WIDTH, INTERLEAVE, START_ADDR, END_ADDR
|
||
CMOSCHIP
|
||
RAM_CHIP CMOSRAM,4, 8, 16, 1407FE0H, 1407FF0H ; U49 ( 0 - 7 )
|
||
.LONG 0
|
||
|
||
PROMCHIPS
|
||
;ROM_CHIP $MACRO TAB_LINK,CHIP_NO, WIDTH, INTERLEAVE, START_ADDR, END_ADDR, CHECK_SUM
|
||
ROM_CHIP PROM1,0,0,0, 0FFE00008H, 0FFFFFFF8H, >3FC5 ; U89
|
||
ROM_CHIP PROM2,1,0,0, 0FFE00000H, 0FFFFFFF0H, >7E70 ; U105
|
||
.LONG 0
|
||
.WORD >C03A,>818F ;CHECKSUM ADJUST
|
||
|
||
IROMCHIPS
|
||
.EVEN
|
||
ROM_CHIP IROM13,13, 8, 0, 2000000H, 23FFFFFH, 06FC0H ; U111
|
||
ROM_CHIP IROM5, 5, 8, 1, 2000000H, 23FFFFFH, 0D367H ; U95
|
||
ROM_CHIP IROM9, 9, 8, 2, 2000000H, 23FFFFFH, 0A9DEH ; U106
|
||
|
||
ROM_CHIP IROM14,14, 8, 0, 2400000H, 27FFFFFH, 0373EH ; U112
|
||
ROM_CHIP IROM6, 6, 8, 1, 2400000H, 27FFFFFH, 0BD14H ; U96
|
||
ROM_CHIP IROM10,10, 8, 2, 2400000H, 27FFFFFH, 01C6CH ; U107
|
||
|
||
ROM_CHIP IROM15,15, 8, 0, 2800000H, 2BFFFFFH, 06525H ; U113
|
||
ROM_CHIP IROM7, 7, 8, 1, 2800000H, 2BFFFFFH, 00C91H ; U97
|
||
ROM_CHIP IROM11,11, 8, 2, 2800000H, 2BFFFFFH, 014F6H ; U108
|
||
|
||
;ROM_CHIP $MACRO TAB_LINK,CHIP_NO, WIDTH, INTERLEAVE, START_ADDR, END_ADDR, CHECK_SUM
|
||
|
||
.LONG 0 ; FORCE IT TO STOP HERE
|
||
|
||
;****************************************************************************
|
||
;* SYSFONT: SYSTEM FONT; MODULE DEFINES THE FONT USED WITH SYSTEM *
|
||
;* DIAGNOSTICS. *
|
||
;****************************************************************************
|
||
|
||
; ===========================
|
||
; | DYDX CHAR DIMENSIONS |
|
||
; | POINTER TO XY CHAR DATA |
|
||
; ===========================
|
||
|
||
T2_SP:
|
||
.WORD 048h
|
||
.word I2_SP-CBASE
|
||
|
||
T2_MN:
|
||
.WORD 088h
|
||
.WORD I2_MN-CBASE
|
||
|
||
T2_PER:
|
||
.WORD 028H
|
||
.WORD I2_PER-CBASE
|
||
|
||
T2_SLASH:
|
||
.WORD 068H
|
||
.WORD I2_SLASH-CBASE
|
||
|
||
T2_00:
|
||
.WORD 068h
|
||
.WORD I2_00-CBASE
|
||
|
||
T2_11:
|
||
.WORD 068h
|
||
.WORD I2_11-CBASE
|
||
|
||
T2_22:
|
||
.WORD 068h
|
||
.WORD I2_22-CBASE
|
||
|
||
T2_33:
|
||
.WORD 068h
|
||
.WORD I2_33-CBASE
|
||
|
||
T2_44:
|
||
.WORD 068h
|
||
.WORD I2_44-CBASE
|
||
|
||
T2_55:
|
||
.WORD 068h
|
||
.WORD I2_55-CBASE
|
||
|
||
T2_66:
|
||
.WORD 068h
|
||
.WORD I2_66-CBASE
|
||
|
||
T2_77:
|
||
.WORD 068h
|
||
.WORD I2_77-CBASE
|
||
|
||
T2_88:
|
||
.WORD 068h
|
||
.WORD I2_88-CBASE
|
||
|
||
T2_99:
|
||
.WORD 068h
|
||
.WORD I2_99-CBASE
|
||
|
||
T2_AA:
|
||
.WORD 068h
|
||
.WORD I2_AA-CBASE
|
||
|
||
T2_BB:
|
||
.WORD 068h
|
||
.WORD I2_BB-CBASE
|
||
|
||
T2_CC:
|
||
.WORD 068h
|
||
.WORD I2_CC-CBASE
|
||
|
||
T2_DD:
|
||
.WORD 068h
|
||
.WORD I2_DD-CBASE
|
||
|
||
T2_EE:
|
||
.WORD 068h
|
||
.WORD I2_EE-CBASE
|
||
|
||
T2_FF:
|
||
.WORD 068h
|
||
.WORD I2_FF-CBASE
|
||
|
||
T2_GG:
|
||
.WORD 068h
|
||
.WORD I2_GG-CBASE
|
||
|
||
T2_HH:
|
||
.WORD 068h
|
||
.WORD I2_HH-CBASE
|
||
|
||
T2_II:
|
||
.WORD 028h
|
||
.WORD I2_II-CBASE
|
||
|
||
T2_JJ:
|
||
.WORD 068h
|
||
.WORD I2_JJ-CBASE
|
||
|
||
T2_KK:
|
||
.WORD 068h
|
||
.WORD I2_KK-CBASE
|
||
|
||
T2_LL:
|
||
.WORD 058h
|
||
.WORD I2_LL-CBASE
|
||
|
||
T2_MM:
|
||
.WORD 0A8h
|
||
.WORD I2_MM-CBASE
|
||
|
||
T2_NN:
|
||
.WORD 078h
|
||
.WORD I2_NN-CBASE
|
||
|
||
T2_OO:
|
||
.WORD 078h
|
||
.WORD I2_OO-CBASE
|
||
|
||
T2_PP:
|
||
.WORD 068h
|
||
.WORD I2_PP-CBASE
|
||
|
||
T2_QQ:
|
||
.WORD 07Ah
|
||
.WORD I2_QQ-CBASE
|
||
|
||
T2_RR:
|
||
.WORD 068h
|
||
.WORD I2_RR-CBASE
|
||
|
||
T2_SS:
|
||
.WORD 068h
|
||
.WORD I2_SS-CBASE
|
||
|
||
T2_TT:
|
||
.WORD 068h
|
||
.WORD I2_TT-CBASE
|
||
|
||
T2_UU:
|
||
.WORD 068h
|
||
.WORD I2_UU-CBASE
|
||
|
||
T2_VV:
|
||
.WORD 078h
|
||
.WORD I2_VV-CBASE
|
||
|
||
T2_WW:
|
||
.WORD 0B8h
|
||
.WORD I2_WW-CBASE
|
||
|
||
T2_XX:
|
||
.WORD 078h
|
||
.WORD I2_XX-CBASE
|
||
|
||
T2_YY:
|
||
.WORD 068h
|
||
.WORD I2_YY-CBASE
|
||
|
||
T2_ZZ:
|
||
.WORD 068h
|
||
.WORD I2_ZZ-CBASE
|
||
|
||
; ===========================
|
||
; | CHARACTER DIRECTORY |
|
||
; ===========================
|
||
|
||
SYSFONT:
|
||
|
||
.BYTE (T2_SP-T2_SP)/32 ; SPACE CHARACTER, " "
|
||
.BYTE (T2_SP-T2_SP)/32 ; FILLER
|
||
.BYTE (T2_SP-T2_SP)/32
|
||
.BYTE (T2_SP-T2_SP)/32
|
||
.BYTE (T2_SP-T2_SP)/32
|
||
.BYTE (T2_SP-T2_SP)/32
|
||
.BYTE (T2_SP-T2_SP)/32
|
||
.BYTE (T2_SP-T2_SP)/32
|
||
.BYTE (T2_SP-T2_SP)/32
|
||
.BYTE (T2_SP-T2_SP)/32
|
||
.BYTE (T2_SP-T2_SP)/32
|
||
.BYTE (T2_SP-T2_SP)/32
|
||
.BYTE (T2_SP-T2_SP)/32
|
||
.BYTE (T2_MN-T2_SP)/32 ; MINUS CHARACTER, "-"
|
||
.BYTE (T2_PER-T2_SP)/32
|
||
.BYTE (T2_SLASH-T2_SP)/32 ; "/"
|
||
.BYTE (T2_00-T2_SP)/32 ;0
|
||
.BYTE (T2_11-T2_SP)/32 ;1
|
||
.BYTE (T2_22-T2_SP)/32 ;2
|
||
.BYTE (T2_33-T2_SP)/32 ;3
|
||
.BYTE (T2_44-T2_SP)/32 ;4
|
||
.BYTE (T2_55-T2_SP)/32 ;5
|
||
.BYTE (T2_66-T2_SP)/32 ;6
|
||
.BYTE (T2_77-T2_SP)/32 ;7
|
||
.BYTE (T2_88-T2_SP)/32 ;8
|
||
.BYTE (T2_99-T2_SP)/32 ;9
|
||
.BYTE (T2_00-T2_SP)/32 ; no :
|
||
.BYTE (T2_00-T2_SP)/32 ; no ;
|
||
.BYTE (T2_00-T2_SP)/32 ; no <
|
||
.BYTE (T2_00-T2_SP)/32 ; no =
|
||
.BYTE (T2_00-T2_SP)/32 ; no >
|
||
.BYTE (T2_00-T2_SP)/32 ; no ?
|
||
.BYTE (T2_00-T2_SP)/32 ; no @
|
||
.BYTE (T2_AA-T2_SP)/32 ;A
|
||
.BYTE (T2_BB-T2_SP)/32 ;B
|
||
.BYTE (T2_CC-T2_SP)/32 ;C
|
||
.BYTE (T2_DD-T2_SP)/32 ;D
|
||
.BYTE (T2_EE-T2_SP)/32 ;E
|
||
.BYTE (T2_FF-T2_SP)/32 ;F
|
||
.BYTE (T2_GG-T2_SP)/32 ;G
|
||
.BYTE (T2_HH-T2_SP)/32 ;H
|
||
.BYTE (T2_II-T2_SP)/32 ;I
|
||
.BYTE (T2_JJ-T2_SP)/32 ;J
|
||
.BYTE (T2_KK-T2_SP)/32 ;K
|
||
.BYTE (T2_LL-T2_SP)/32 ;L
|
||
.BYTE (T2_MM-T2_SP)/32 ;M
|
||
.BYTE (T2_NN-T2_SP)/32 ;N
|
||
.BYTE (T2_OO-T2_SP)/32 ;O
|
||
.BYTE (T2_PP-T2_SP)/32 ;P
|
||
.BYTE (T2_QQ-T2_SP)/32 ;Q
|
||
.BYTE (T2_RR-T2_SP)/32 ;R
|
||
.BYTE (T2_SS-T2_SP)/32 ;S
|
||
.BYTE (T2_TT-T2_SP)/32 ;T
|
||
.BYTE (T2_UU-T2_SP)/32 ;U
|
||
.BYTE (T2_VV-T2_SP)/32 ;V
|
||
.BYTE (T2_WW-T2_SP)/32 ;W
|
||
.BYTE (T2_XX-T2_SP)/32 ;X
|
||
.BYTE (T2_YY-T2_SP)/32 ;Y
|
||
.BYTE (T2_ZZ-T2_SP)/32 ;Z
|
||
|
||
; ===========================
|
||
; | CHARACTER DEFINITIONS |
|
||
; ===========================
|
||
CBASE:
|
||
I2_SP:
|
||
.byte 00h
|
||
.byte 00h
|
||
.byte 00h
|
||
.byte 00h
|
||
.byte 00h
|
||
.byte 00h
|
||
.byte 00h
|
||
.byte 00h
|
||
|
||
I2_MN:
|
||
.byte 000h
|
||
.byte 000h
|
||
.byte 000h
|
||
.byte 0FFh
|
||
.byte 0FFh
|
||
.byte 000h
|
||
.byte 000h
|
||
.byte 000h
|
||
|
||
I2_PER:
|
||
.BYTE 0
|
||
.BYTE 0
|
||
.BYTE 0
|
||
.BYTE 0
|
||
.BYTE 0
|
||
.BYTE 0
|
||
.BYTE 0FFH
|
||
.BYTE 0FFH
|
||
|
||
I2_SLASH:
|
||
.BYTE 30H
|
||
.BYTE 30H
|
||
.BYTE 18H
|
||
.BYTE 18H
|
||
.BYTE 06H
|
||
.BYTE 06H
|
||
.BYTE 03H
|
||
.BYTE 03H
|
||
|
||
I2_00:
|
||
.byte 01Eh
|
||
.byte 03Fh
|
||
.byte 033h
|
||
.byte 033h
|
||
.byte 033h
|
||
.byte 033h
|
||
.byte 03Fh
|
||
.byte 01Eh
|
||
|
||
I2_11:
|
||
.byte 0Eh
|
||
.byte 0Fh
|
||
.byte 0Fh
|
||
.byte 0Ch
|
||
.byte 0Ch
|
||
.byte 0Ch
|
||
.byte 0Ch
|
||
.byte 0Ch
|
||
|
||
I2_22:
|
||
.byte 01Fh
|
||
.byte 03Fh
|
||
.byte 038h
|
||
.byte 01Ch
|
||
.byte 0Eh
|
||
.byte 07h
|
||
.byte 03Fh
|
||
.byte 03Fh
|
||
|
||
I2_33:
|
||
.byte 01Fh
|
||
.byte 03Fh
|
||
.byte 030h
|
||
.byte 01Eh
|
||
.byte 01Eh
|
||
.byte 030h
|
||
.byte 03Fh
|
||
.byte 01Fh
|
||
|
||
I2_44:
|
||
.byte 038h
|
||
.byte 03Ch
|
||
.byte 036h
|
||
.byte 033h
|
||
.byte 03Fh
|
||
.byte 03Fh
|
||
.byte 030h
|
||
.byte 030h
|
||
|
||
I2_55:
|
||
.byte 03Fh
|
||
.byte 03Fh
|
||
.byte 03h
|
||
.byte 01Fh
|
||
.byte 03Fh
|
||
.byte 030h
|
||
.byte 03Fh
|
||
.byte 01Fh
|
||
|
||
I2_66:
|
||
.byte 03Eh
|
||
.byte 03Fh
|
||
.byte 03h
|
||
.byte 01Fh
|
||
.byte 03Fh
|
||
.byte 033h
|
||
.byte 03Fh
|
||
.byte 01Eh
|
||
|
||
I2_77:
|
||
.byte 03Fh
|
||
.byte 03Fh
|
||
.byte 030h
|
||
.byte 018h
|
||
.byte 018h
|
||
.byte 0Ch
|
||
.byte 0Ch
|
||
.byte 0Ch
|
||
|
||
I2_88:
|
||
.byte 01Eh
|
||
.byte 03Fh
|
||
.byte 033h
|
||
.byte 01Eh
|
||
.byte 01Eh
|
||
.byte 033h
|
||
.byte 03Fh
|
||
.byte 01Eh
|
||
|
||
I2_99:
|
||
.byte 01Eh
|
||
.byte 03Fh
|
||
.byte 033h
|
||
.byte 03Fh
|
||
.byte 03Eh
|
||
.byte 030h
|
||
.byte 03Fh
|
||
.byte 01Fh
|
||
|
||
I2_AA:
|
||
.byte 01Eh
|
||
.byte 03Fh
|
||
.byte 033h
|
||
.byte 033h
|
||
.byte 03Fh
|
||
.byte 03Fh
|
||
.byte 033h
|
||
.byte 033h
|
||
|
||
I2_BB:
|
||
.byte 01Fh
|
||
.byte 03Fh
|
||
.byte 033h
|
||
.byte 03Fh
|
||
.byte 01Fh
|
||
.byte 033h
|
||
.byte 03Fh
|
||
.byte 01Fh
|
||
|
||
I2_CC:
|
||
.byte 03Eh
|
||
.byte 03Fh
|
||
.byte 03h
|
||
.byte 03h
|
||
.byte 03h
|
||
.byte 03h
|
||
.byte 03Fh
|
||
.byte 03Eh
|
||
|
||
I2_DD:
|
||
.byte 01Fh
|
||
.byte 03Fh
|
||
.byte 033h
|
||
.byte 033h
|
||
.byte 033h
|
||
.byte 033h
|
||
.byte 03Fh
|
||
.byte 01Fh
|
||
|
||
I2_EE:
|
||
.byte 03Fh
|
||
.byte 03Fh
|
||
.byte 03h
|
||
.byte 03Fh
|
||
.byte 03Fh
|
||
.byte 03h
|
||
.byte 03Fh
|
||
.byte 03Fh
|
||
|
||
I2_FF:
|
||
.byte 03Fh
|
||
.byte 03Fh
|
||
.byte 03h
|
||
.byte 03Fh
|
||
.byte 03Fh
|
||
.byte 03h
|
||
.byte 03h
|
||
.byte 03h
|
||
|
||
I2_GG:
|
||
.byte 03Eh
|
||
.byte 03Fh
|
||
.byte 03h
|
||
.byte 03h
|
||
.byte 033h
|
||
.byte 033h
|
||
.byte 03Fh
|
||
.byte 01Eh
|
||
|
||
I2_HH:
|
||
.byte 033h
|
||
.byte 033h
|
||
.byte 033h
|
||
.byte 03Fh
|
||
.byte 03Fh
|
||
.byte 033h
|
||
.byte 033h
|
||
.byte 033h
|
||
|
||
I2_II:
|
||
.byte 03h
|
||
.byte 03h
|
||
.byte 03h
|
||
.byte 03h
|
||
.byte 03h
|
||
.byte 03h
|
||
.byte 03h
|
||
.byte 03h
|
||
|
||
I2_JJ:
|
||
.byte 030h
|
||
.byte 030h
|
||
.byte 030h
|
||
.byte 030h
|
||
.byte 030h
|
||
.byte 033h
|
||
.byte 03Fh
|
||
.byte 01Eh
|
||
|
||
I2_KK:
|
||
.byte 033h
|
||
.byte 033h
|
||
.byte 01Bh
|
||
.byte 0Fh
|
||
.byte 01Fh
|
||
.byte 033h
|
||
.byte 033h
|
||
.byte 033h
|
||
|
||
I2_LL:
|
||
.byte 03h
|
||
.byte 03h
|
||
.byte 03h
|
||
.byte 03h
|
||
.byte 03h
|
||
.byte 03h
|
||
.byte 01Fh
|
||
.byte 01Fh
|
||
|
||
I2_MM:
|
||
.byte 087h,03h
|
||
.byte 0CFh,03h
|
||
.byte 0CFh,03h
|
||
.byte 07Bh,03h
|
||
.byte 07Bh,03h
|
||
.byte 033h,03h
|
||
.byte 033h,03h
|
||
.byte 033h,03h
|
||
|
||
I2_NN:
|
||
.byte 063h
|
||
.byte 067h
|
||
.byte 06Fh
|
||
.byte 06Fh
|
||
.byte 07Bh
|
||
.byte 07Bh
|
||
.byte 073h
|
||
.byte 063h
|
||
|
||
I2_OO:
|
||
.byte 03Eh
|
||
.byte 07Fh
|
||
.byte 063h
|
||
.byte 063h
|
||
.byte 063h
|
||
.byte 063h
|
||
.byte 07Fh
|
||
.byte 03Eh
|
||
|
||
I2_PP:
|
||
.byte 01Fh
|
||
.byte 03Fh
|
||
.byte 033h
|
||
.byte 03Fh
|
||
.byte 01Fh
|
||
.byte 03h
|
||
.byte 03h
|
||
.byte 03h
|
||
|
||
I2_QQ:
|
||
.byte 03Eh
|
||
.byte 07Fh
|
||
.byte 063h
|
||
.byte 063h
|
||
.byte 063h
|
||
.byte 063h
|
||
.byte 07Fh
|
||
.byte 03Eh
|
||
.byte 060h
|
||
.byte 060h
|
||
|
||
I2_RR:
|
||
.byte 01Fh
|
||
.byte 03Fh
|
||
.byte 033h
|
||
.byte 03Fh
|
||
.byte 01Fh
|
||
.byte 033h
|
||
.byte 033h
|
||
.byte 033h
|
||
|
||
I2_SS:
|
||
.byte 03Eh
|
||
.byte 03Fh
|
||
.byte 03h
|
||
.byte 01Fh
|
||
.byte 03Eh
|
||
.byte 030h
|
||
.byte 03Fh
|
||
.byte 01Fh
|
||
|
||
I2_TT:
|
||
.byte 03Fh
|
||
.byte 03Fh
|
||
.byte 0Ch
|
||
.byte 0Ch
|
||
.byte 0Ch
|
||
.byte 0Ch
|
||
.byte 0Ch
|
||
.byte 0Ch
|
||
|
||
I2_UU:
|
||
.byte 033h
|
||
.byte 033h
|
||
.byte 033h
|
||
.byte 033h
|
||
.byte 033h
|
||
.byte 033h
|
||
.byte 03Fh
|
||
.byte 01Eh
|
||
|
||
I2_VV:
|
||
.byte 063h
|
||
.byte 063h
|
||
.byte 063h
|
||
.byte 036h
|
||
.byte 036h
|
||
.byte 03Eh
|
||
.byte 01Ch
|
||
.byte 01Ch
|
||
|
||
I2_WW:
|
||
.byte 023h,06h
|
||
.byte 023h,06h
|
||
.byte 073h,06h
|
||
.byte 076h,03h
|
||
.byte 076h,03h
|
||
.byte 0DEh,03h
|
||
.byte 08Ch,01h
|
||
.byte 08Ch,01h
|
||
|
||
I2_XX:
|
||
.byte 063h
|
||
.byte 063h
|
||
.byte 036h
|
||
.byte 01Ch
|
||
.byte 01Ch
|
||
.byte 036h
|
||
.byte 063h
|
||
.byte 063h
|
||
|
||
I2_YY:
|
||
.byte 033h
|
||
.byte 033h
|
||
.byte 01Eh
|
||
.byte 01Eh
|
||
.byte 0Ch
|
||
.byte 0Ch
|
||
.byte 0Ch
|
||
.byte 0Ch
|
||
|
||
I2_ZZ:
|
||
.byte 03Fh
|
||
.byte 03Fh
|
||
.byte 038h
|
||
.byte 01Ch
|
||
.byte 0Eh
|
||
.byte 07h
|
||
.byte 03Fh
|
||
.byte 03Fh
|
||
|
||
.END
|
||
|