home *** CD-ROM | disk | FTP | other *** search
-
-
-
- ORG 0D000H
- WIDTH 80
-
- ORG 0D000H ;main program
-
- REG0 EQU 00H ;register for I/O port 2000H
- REG1 EQU 01H ;......................2001H
- SELPRS EQU 0AH ;register for SWSEL
- SPCNT EQU 0BH ;.............SPMEET
- T816 EQU 0CH ;.............SSP816
- XPOS EQU 0D1H ;.............SORG
- YPOS EQU 0D2H ;..................
- PAGE EQU 0D3H ;..................
- CLRSTRL EQU 0E1H ;.............SCLRTB
- CLRSTRH EQU 0E2H ;....................
- JSEL EQU 0B5H ;.............SJPRS
- JSTAS1 EQU 0B6H ;..................
- JSTAS2 EQU 0B7H ;..................
- JTEST EQU 0B8H ;.............SJTEST
- ADRH EQU 0B1H ;.............SDISP
- ADRL EQU 0B2H ;..................
- NUMR EQU 0B3H ;..................
- DSTRL EQU 0C1H ;..................
- DSTRH EQU 0C2H ;..................
- SND3 EQU 0A1H ;.............SOU3
- SND4 EQU 0A2H ;.............SOU4
- SND5 EQU 0A3H ;.............SOU5
- MIC0 EQU 0A4H ;.............SMIC
- MIC1 EQU 0A5H ;.................
-
-
- CLD
- SEI
- LDA #00H
- STA 2000H
- STA 2001H
- L0 LDA 2002H
- BPL L0
- JSR SPRT
- JMP SCRT
- L1 LDA 2002H
- BPL L1
- LDX #0FFH
- TXS
-
- LDA #08H
- STA REG0
- LDA #0EH
- STA REG1
- LDA #00H
- STA JTEST
- STA T816
-
- LDA #20H
- STA SND3 ;disable sound channel 3
- STA SND4 ;disable sound channel 4
- LDA #10H
- STA SND5 ;disable sound channel 5
-
- LDA #00H
- STA SND5 ;enable sound channel 5
-
- LDA #80H
- STA CLRSTRL
- LDA #0FFH
- STA CLRSTRH
- JSR SCLRTB
-
- JSR SORG ;set display original point
-
- LDA REG0
- ORA #80H
- STA 2000H
-
- JSR STDLY ;STDLY delay 1/2 sec
- JSR STDLY
-
- JSR SCBAR ;establish color bar
- JSR SCHXY ;change display original point
-
- JSR STDLY
- JSR STDLY
- JSR SORG
-
- JSR SPMOT ;sprite diagonal motion
-
- JSR STDLY
- JSR SSP64
-
- JSR STDLY
- JSR SSP816
-
- JSR STDLY
-
-
- JSR SJTEST ;joy stick test
- INC 53H ;loop operation
- L3 LDA 53H
- BNE L3
-
- ;--------------------------------------------------------------
-
- ORG 0F000H ;interrupt
- PHA
- TXA
- PHA
- TYA
- PHA
- LDA #00H
- STA 2003H
- LDA #02H
- STA 4014H ;sprite data DMA t0 PPU
- LDA REG1
- STA 2001H
-
- JSR SOU3
- JSR SOU4
- JSR SOU5
-
- LDA #00H ;joy stick 1
- STA JSEL
- JSR SJPRS ;detect whether joy stick be pressed
- LDA #01H ;joy stick 2
- STA JSEL
- JSR SJPRS
-
- JSR SSELP ;detect whether SEL be pressed
-
- LDA T816 ;when test SP816, T816=#1
- BNE I2
-
- JSR SSCROL ;screen scrolling
- ;this SUB. will repeat trigger I/O addr.
- 2000H
- I2 LDA JTEST
- CMP #01H
- BNE I1
-
- LDA #08H
- STA 2000H
- JSR STWAIT
- LDA #00H
- STA 2001H
- JSR SMIC ;test MIC function
- JSR SJSTAS
- LDA #00H ;relocated display original point
- STA 2005H
- STA 2005H
- LDA #88H
- STA 2000H
- LDA #0EH
- STA 2001H
-
-
- I1 PLA
- TAY
- PLA
- TAX
- PLA
-
- RTI
-
- ;--------------------------------------------------------------
-
- ORG 0D200H ;subroutine beginninng address
-
- SPRT LDX #20H ;PPU RAM test,PPU RAM assumed using
- LDA #00H page 1,3
- STX 2006H
- STA 2006H
- LDY #10H ;think over changing value ?????
- LDX #00H
- LDA #0AAH
- P1 STA 2007H
- INX
- BNE P1
- DEY
- BNE P1
-
- LDY #20H
- LDX #00H
- P2 STY 2006H
- STX 2006H
- LDA 2007H ;first read open I/O 2007H read function
- LDA 2007H
- CMP #0AAH
- BNE P3
- STY 2006H
- STX 2006H
- LDA #55H
- STA 2007H
-
- STY 2006H
- STX 2006H
- LDA 2007H ;first read open I/O 2007H read function
- LDA 2007H
- CMP #55H
- BNE P3
- INX
- BNE P2
- INY
- CPY #24H ;think over changing value ?????
- BNE P2
-
- LDY #28H
- LDX #00H
- P5 STY 2006H
- STX 2006H
- LDA 2007H
- LDA 2007H
- CMP #0AAH
- BNE P3
- STY 2006H
- STX 2006H
- LDA #55H
- STA 2007H
-
- STY 2006H
- STX 2006H
- LDA 2007H
- LDA 2007H
- CMP #55H
- BNE P3
- INX
- BNE P5
- INY
- CPY #2CH ;think over changing value ?????
- BNE P5
- JSR SPROK
- RTS
-
- P3 JSR SPRFL
- RTS
-
- ;-----SUB. CPU RAM test---------------------------------------
-
- SCRT LDX #00H
- LDA #0AAH
- C0 STA 00H,X
- INX
- BNE C0
- C1 STA 100H,X
- INX
- BNE C1
- C2 STA 200H,X
- INX
- BNE C2
- C3 STA 300H,X
- INX
- BNE C3
- C4 STA 400H,X
- INX
- BNE C4
- C5 STA 500H,X
- INX
- BNE C5
- C6 STA 600H,X
- INX
- BNE C6
- C7 STA 700H,X
- INX
- BNE C7
-
- C10 LDA 00H,X
- CMP #0AAH
- BNE C8
- LDA #55H
- STA 00H,X
- LDA 00H,X
- CMP #55H
- BNE C8
- INX
- BNE C10
-
- C11 LDA 100H,X
- CMP #0AAH
- BNE C8
- LDA #55H
- STA 100H,X
- LDA 100H,X
- CMP #55H
- BNE C8
- INX
- BNE C11
-
- BNE C12
-
- C13 LDA 300H,X
- CMP #0AAH
- BNE C8
- LDA #55H
- STA 300H,X
- LDA 300H,X
- CMP #55H
- BNE C8
- INX
- BNE C13
- JMP C14
-
- C8 JSR SCRFL ;C8 in this position has equal distance
- JMP L1 from C10 and C17
-
- C14 LDA 400H,X
- CMP #0AAH
- BNE C8
- LDA #55H
- STA 400H,X
- LDA 400H,X
- CMP #55H
- BNE C8
- INX
- BNE C14
-
- C15 LDA 500H,X
- CMP #0AAH
- BNE C8
- LDA #55H
- STA 500H,X
- LDA 500H,X
- CMP #55H
- BNE C8
- INX
- BNE C15
-
- C16 LDA 600H,X
- CMP #0AAH
- BNE C8
- LDA #55H
- STA 600H,X
- LDA 600H,X
- CMP #55H
- BNE C8
- INX
- BNE C16
-
- C17 LDA 700H,X
- CMP #0AAH
- BNE C8
- LDA #55H
- STA 700H,X
- LDA 700H,X
- CMP #55H
- BNE C8
- INX
- BNE C17
-
- JSR SCROK
- JMP L1
-
- ;-------SUB. color table filled--------------------------------
-
- SCLRTB LDA #00H ;color table filled
- STA 2001H
- LDY #00H
- LDX #3FH
- LDA #00H
- STX 2006H
- STA 2006H
- CL1 LDA (CLRSTRL),Y
- STA 2007H
- INY
- CPY #1CH ;total 28 byte
- BNE CL1
- RTS
-
- ;-------SUB. time delay----------------------------------------
-
- STDLY LDX #20H ;delay 1/2 sec
- T1 JSR STWAIT
- DEX
- BNE T1
- RTS
-
- ;-------SUB. time waiting for 1 blanking-----------------------
-
- STWAIT LDA 2002H ;waiting 1/60 sec
- BMI STWAIT
- ST1 LDA 2002H
- BPL ST1
- RTS
-
- ;-------SUB. detect whether joy stick be pressed---------------
-
- SJPRS LDX JSEL ;joy stick 1, JSEL=0
- ;joy stick 2, JSEL=1
- LDA #01H
- STA 4016H
- LDA #00H
- STA 4016H
- STA JSTAS1,X
- LDY #07H
- J1 LDA 4016H,X
- AND #01H
- LSR A
- ROL JSTAS1,X
- DEY
- BPL J1
- RTS
-
- ;-------SUB. detect whether SEL be pressed---------------------
-
- SSELP LDA JSTAS1 ;when SEL be pressed,SELPRS=#1
- AND #20H
- BEQ SE1
- LDA #01H
- STA SELPRS
- SE1 RTS
-
- ;-------SUB. display PPURAM TEST OK title----------------------
-
- SPROK JSR SCSCR ;PPU RAM test OK
- LDA #21H
- STA ADRH
- LDA #06H
- STA ADRL
- LDA #10H
- STA NUMR
- LDA #0A0H
- STA DSTRL
- LDA #0FFH
- STA DSTRH
- JSR SDISP
- RTS
-
- ;-------SUB. display PPURAM TEST FAIL title--------------------
-
- SPRFL JSR SCSCR ;PPU RAM test fail
- LDA #21H
- STA ADRH
- LDA #6CH
- STA ADRL
- LDA #10H
- STA NUMR
- LDA #0B0H
- STA DSTRL
- LDA #0FFH
- STA DSTRH
- JSR SDISP
-
- JSR SFAIL
- RF1 JMP RF1 ;when test fail program halt
- RTS
-
- ;-------SUB. RAM test fail ,display red screen-----------------
-
- SFAIL LDA #80H
- STA CLRSTRL
- LDA #0FFH
- STA CLRSTRH
- JSR SCLRTB
-
- LDX #3FH
- LDA #00H
- JSR SADR
- LDA #16H
- STA 2007H
-
- JSR SORG
- LD
- ter-------------------------
-
- SDISP LDX ADRH ;screen starting address
- LDA ADRL
- STX 2006H
- STA 2006H
- LDY #00H
- D1 LDA (DSTRL),Y ;data
- STA 2007H
- INY ;str
- BNE -----------
-
- SCSCR LDX #20H ;clear screen
- LDA #00H
- STX 2006H
- STA 2006H
- LDY #10H ;clear 4 page
- LDX #00H
- PN1 STA 2007H
- INX
- BNE PN
-
- ;-------SUB. display CPURAM TEST OK title----------------------
-
- SCROK LDA #21H ;CPU RAM test OK
- STA ADRH
- LDA #0C6H
- STA ADRL
- LDA #10H
- STA NUMR
- LDA #0C0H
- STA DSTRL
- LDA #0FFH
- STA DSTRH
- JSR SDISP
- RTS
-
- ;-------SUB. display CPURAM TEST FAIL title--------------------
-
- SCRFL LDA #22H ;CPU RAM test fail
- STA ADRH
- LDA #2CH
- STA ADRL
- LDA #10H
- STA NUMR
- LDA #0D0H
- STA DSTRL
- LDA #0FFH
- STA DSTRH
- JSR SDISP
-
- JSR SFAIL
- RF2 JMP RF2
- * bar on 1st page & 256 patterns on the 4th page----
-
- SCBAR LDA REG1 ;establish color bar
- AND #0F7H ;disable TEXT
- STA 2001H
- LDA REG0
- AND #7FH
- STA 2000H
-
- JSR SOU1
-
- LDX #20H
- LDA #00H
- STX 2006H
- STA 2006H
- LDY #78H
- L11 LDA #01H
-
-