LuigiBlood

Satellaview Tester Source

May 20th, 2015
225
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. lorom
  2.  
  3. table MSUFontTable.tab,rtl
  4.  
  5.     ORG $008000
  6.  
  7. MSUPlayer:
  8.     JSR initsnes
  9.     SEP #$20 ; 8 bits A
  10.    
  11.     lda #$8F  ; Turning off the screen, forcing VBlank.
  12.     sta $2100
  13.    
  14.     LDA #$01
  15.     STA $2121 ;Write to Pallette Table 1
  16.     LDA $A002
  17.     STA $2122
  18.     LDA $A003
  19.     STA $2122
  20.     LDA $A004
  21.     STA $2122
  22.     LDA $A005
  23.     STA $2122
  24.     LDA $A006
  25.     STA $2122
  26.     LDA $A007
  27.     STA $2122
  28.     LDA $A008
  29.     STA $2122
  30.    
  31.     STZ $210C ;BG3 = $6000, BG4 = $8000
  32.    
  33.     STZ $210B ;BG1 = $2000, BG2 = $4000
  34.    
  35.     LDA #$00
  36.     STA $2115 ;Inc Value for VRAM
  37.     STZ $2117 ;Address $0000 for VRAM
  38.     STZ $2116
  39.     LDA #$01
  40.     STA $4300 ;DMA control register
  41.     LDA #$18
  42.     STA $4301 ;DMA Destination Address : To VRAM "$2118"
  43.     STZ $4302 ;DMA Source Address : 00D000  00D000
  44.     LDA #$D0
  45.     STA $4303
  46.     STZ $4304
  47.     STZ $4305 ;DMA Size Transfer : $1000 Bytes.
  48.     LDA #$10
  49.     STA $4306
  50.     LDA #$01
  51.     STA $420B ;Begin Transfer
  52.    
  53.     STZ $2105 ;  BG Mode 0
  54.     LDA.b #%00001100
  55.     STA $2107
  56.     LDA.b #%00010000
  57.     STA $2108
  58.     LDA.b #%00010100
  59.     STA $2109
  60.     LDA.b #%00011000
  61.     STA $210A
  62.    
  63.    
  64.     STZ $210C ;GFX : BG3 = $0000, BG4 = $0000
  65.    
  66.     STZ $210B ;GFX : BG1 = $0000, BG2 = $0000
  67.    
  68.     LDA #$00
  69.     STA $2116 ; VRAM address to write : $C00
  70.     LDA #$0C
  71.     STA $2117
  72.    
  73.     LDA #$00
  74.     STA $2115 ;Inc Value for VRAM
  75.     LDA #$00
  76.     STA $4300 ;DMA control register
  77.     LDA #$18
  78.     STA $4301 ;DMA Destination Address : To VRAM "$2118"
  79.     LDA #$00
  80.     STA $4302 ;DMA Source Address : 00D000  00CFF0
  81.     LDA #$B1
  82.     STA $4303
  83.     STZ $4304
  84.     REP #$20
  85.     LDA #480
  86.     STA $4305 ;DMA Size Transfer : 384 Bytes.
  87.     ;STZ $4306
  88.     SEP #$20
  89.     LDA #$01
  90.     STA $420B ;Begin Transfer
  91.    
  92.     SEP #$20
  93.     LDA.b #%00010001
  94.     STA $212C
  95.     lda #$0F  ; Turning on the screen.
  96.     sta $2100
  97.    
  98.     LDA #$80
  99.     STA $2197
  100.     jml InitTest
  101.     - bra -
  102.    
  103. JoypadCheck:
  104.     PHP
  105.     SEP #$20
  106.   - LDA $4212
  107.     AND #$01
  108.     BNE -
  109.     PLP
  110.     RTS
  111.    
  112. InitTest:
  113.     REP #$20
  114.     LDA #$2188
  115.     STA $04 ;Current register
  116.     STZ $06 ;Bank 00.
  117.     STZ $07 ;7=Send  8=Recv, 9=Send16, A,B,C,D=Recv Serial
  118.     STZ $09
  119.     STZ $0A
  120.     STZ $0C
  121.     STZ $0E
  122.     STZ $10
  123.     SEP #$20
  124.     LDA #$01
  125.     STA $4200
  126.     JMP Mess
  127.    
  128. Set16:
  129.     SEP #$20
  130.     LDA $07
  131.     XBA
  132.     LDA $09
  133.     STA $07
  134.     XBA
  135.     STA $09
  136.     JMP UpdateScreen
  137.    
  138. SendSerial:
  139.     ;Serial Mode
  140.     JSL SerialMode
  141.     JMP UpdateScreen
  142.    
  143. Mess:
  144.     REP #$20
  145.     JSR JoypadCheck
  146.     LDA $4218
  147.     ;AntiRepeat
  148.     CMP $10
  149.     BNE Mess2
  150.     JMP UpdateScreen
  151. Mess2:
  152.     STA $10
  153.     ;Change Register (L/R)
  154.     BIT #$0020
  155.     BNE RegDown
  156.     BIT #$0010
  157.     BNE RegUp
  158.     ;Send Byte (Start)
  159.     BIT #$1000
  160.     BNE SendByte
  161.     ;Set other 16 bit (Select)
  162.     BIT #$2000
  163.     BNE Set16
  164.     ;Change Bit <^v>YXBA
  165.     BIT #$0200
  166.     BNE Bit7
  167.     BIT #$0800
  168.     BNE Bit6
  169.     BIT #$0400
  170.     BNE Bit5
  171.     BIT #$0100
  172.     BNE Bit4
  173.     BIT #$4000
  174.     BNE Bit3
  175.     BIT #$0040
  176.     BNE Bit2
  177.     BIT #$8000
  178.     BNE Bit1
  179.     BIT #$0080
  180.     BNE Bit0
  181.     JMP UpdateScreen
  182.    
  183. RegDown:
  184.     REP #$20
  185.     LDA $04
  186.     CMP #$2188
  187.     BEQ Mess
  188.     DEC
  189.     STA $04
  190.     JMP UpdateScreen
  191.    
  192. RegUp:
  193.     REP #$20
  194.     LDA $04
  195.     CMP #$2199
  196.     BEQ Mess
  197.     INC
  198.     STA $04
  199.     JMP UpdateScreen
  200.    
  201. SendByte:
  202.     LDA $04
  203.     CMP #$2198
  204.     BCS SendSerial
  205.     SEP #$20
  206.     LDA $07
  207.     STA ($04)
  208.     JMP UpdateScreen
  209.    
  210. Bit7:
  211.     SEP #$20
  212.     LDA $07
  213.     EOR #$80
  214.     STA $07
  215.     JMP UpdateScreen
  216.    
  217. Bit6:
  218.     SEP #$20
  219.     LDA $07
  220.     EOR #$40
  221.     STA $07
  222.     JMP UpdateScreen
  223.    
  224. Bit5:
  225.     SEP #$20
  226.     LDA $07
  227.     EOR #$20
  228.     STA $07
  229.     JMP UpdateScreen
  230.    
  231. Bit4:
  232.     SEP #$20
  233.     LDA $07
  234.     EOR #$10
  235.     STA $07
  236.     JMP UpdateScreen
  237.  
  238. Bit3:
  239.     SEP #$20
  240.     LDA $07
  241.     EOR #$08
  242.     STA $07
  243.     JMP UpdateScreen
  244.    
  245. Bit2:
  246.     SEP #$20
  247.     LDA $07
  248.     EOR #$04
  249.     STA $07
  250.     JMP UpdateScreen
  251.    
  252. Bit1:
  253.     SEP #$20
  254.     LDA $07
  255.     EOR #$02
  256.     STA $07
  257.     JMP UpdateScreen
  258.    
  259. Bit0:
  260.     SEP #$20
  261.     LDA $07
  262.     EOR #$01
  263.     STA $07
  264.     JMP UpdateScreen
  265.        
  266. UpdateScreen:
  267.     ;Timing Shifter
  268.     SEP #$20
  269.     LDA $0E
  270.     BEQ +
  271.     DEC $0E
  272.     BRA ++
  273.   + INC $0E
  274.     NOP
  275.  ++ LDA ($04)
  276.     STA $08
  277.  
  278.     ;Register C00
  279.     REP #$20
  280.     LDA #$C00+332
  281.     STA $2116
  282.    
  283.     SEP #$20
  284.     ;STZ $2100
  285.   - LDA $4212
  286.     BIT #$80
  287.     BEQ -
  288.    
  289.     LDA $04
  290.     LSR A
  291.     LSR A
  292.     LSR A
  293.     LSR A
  294.     AND #$0F
  295.     ORA #$60
  296.     STA $2118
  297.    
  298.     LDA $04
  299.     AND #$0F
  300.     ORA #$60
  301.     STA $2118
  302.    
  303.     ;Send
  304.     REP #$20
  305.     LDA #$C00+395
  306.     STA $2116
  307.    
  308.     SEP #$30
  309.     LDY #$08
  310.     LDA $07
  311.     CLC
  312.     ROL
  313.   - ROL
  314.     TAX
  315.     AND #$01
  316.     ORA #$60
  317.     STA $2118
  318.     TXA
  319.     DEY
  320.     BNE -
  321.    
  322.     STZ $2118
  323.     STZ $2118
  324.    
  325.     LDA $07
  326.     LSR A
  327.     LSR A
  328.     LSR A
  329.     LSR A
  330.     AND #$0F
  331.     ORA #$60
  332.     STA $2118
  333.    
  334.     LDA $07
  335.     AND #$0F
  336.     ORA #$60
  337.     STA $2118
  338.    
  339.     ;Recv
  340.     REP #$20
  341.     LDA #$C00+459
  342.     STA $2116
  343.    
  344.     SEP #$30
  345.     LDY #$08
  346.     LDA $08
  347.     CLC
  348.     ROL
  349.   - ROL
  350.     TAX
  351.     AND #$01
  352.     ORA #$60
  353.     STA $2118
  354.     TXA
  355.     DEY
  356.     BNE -
  357.    
  358.     STZ $2118
  359.     STZ $2118
  360.    
  361.     LDA $08
  362.     LSR A
  363.     LSR A
  364.     LSR A
  365.     LSR A
  366.     AND #$0F
  367.     ORA #$60
  368.     STA $2118
  369.    
  370.     LDA $08
  371.     AND #$0F
  372.     ORA #$60
  373.     STA $2118
  374.    
  375.     ;Recv Serial 1
  376.     REP #$20
  377.     LDA #$C00+459+64
  378.     STA $2116
  379.    
  380.     SEP #$30
  381.     LDY #$08
  382.     LDA $0A
  383.     CLC
  384.     ROL
  385.   - ROL
  386.     TAX
  387.     AND #$01
  388.     ORA #$60
  389.     STA $2118
  390.     TXA
  391.     DEY
  392.     BNE -
  393.    
  394.     STZ $2118
  395.     STZ $2118
  396.    
  397.     LDA $0A
  398.     LSR A
  399.     LSR A
  400.     LSR A
  401.     LSR A
  402.     AND #$0F
  403.     ORA #$60
  404.     STA $2118
  405.    
  406.     LDA $0A
  407.     AND #$0F
  408.     ORA #$60
  409.     STA $2118
  410.    
  411.     ;Recv Serial 2
  412.     REP #$20
  413.     LDA #$C00+459+64+32
  414.     STA $2116
  415.    
  416.     SEP #$30
  417.     LDY #$08
  418.     LDA $0B
  419.     CLC
  420.     ROL
  421.   - ROL
  422.     TAX
  423.     AND #$01
  424.     ORA #$60
  425.     STA $2118
  426.     TXA
  427.     DEY
  428.     BNE -
  429.    
  430.     STZ $2118
  431.     STZ $2118
  432.    
  433.     LDA $0B
  434.     LSR A
  435.     LSR A
  436.     LSR A
  437.     LSR A
  438.     AND #$0F
  439.     ORA #$60
  440.     STA $2118
  441.    
  442.     LDA $0B
  443.     AND #$0F
  444.     ORA #$60
  445.     STA $2118
  446.    
  447.     ;Recv Serial 3
  448.     REP #$20
  449.     LDA #$C00+459+64+64
  450.     STA $2116
  451.    
  452.     SEP #$30
  453.     LDY #$08
  454.     LDA $0C
  455.     CLC
  456.     ROL
  457.   - ROL
  458.     TAX
  459.     AND #$01
  460.     ORA #$60
  461.     STA $2118
  462.     TXA
  463.     DEY
  464.     BNE -
  465.    
  466.     STZ $2118
  467.     STZ $2118
  468.    
  469.     LDA $0C
  470.     LSR A
  471.     LSR A
  472.     LSR A
  473.     LSR A
  474.     AND #$0F
  475.     ORA #$60
  476.     STA $2118
  477.    
  478.     LDA $0C
  479.     AND #$0F
  480.     ORA #$60
  481.     STA $2118
  482.    
  483.     ;Recv Serial 4
  484.     REP #$20
  485.     LDA #$C00+459+64+64+32
  486.     STA $2116
  487.    
  488.     SEP #$30
  489.     LDY #$08
  490.     LDA $0D
  491.     CLC
  492.     ROL
  493.   - ROL
  494.     TAX
  495.     AND #$01
  496.     ORA #$60
  497.     STA $2118
  498.     TXA
  499.     DEY
  500.     BNE -
  501.    
  502.     STZ $2118
  503.     STZ $2118
  504.    
  505.     LDA $0D
  506.     LSR A
  507.     LSR A
  508.     LSR A
  509.     LSR A
  510.     AND #$0F
  511.     ORA #$60
  512.     STA $2118
  513.    
  514.     LDA $0D
  515.     AND #$0F
  516.     ORA #$60
  517.     STA $2118
  518.    
  519.     ;lda #$0F  ; Turning on the screen.
  520.     ;sta $2100
  521.    
  522.     REP #$20
  523.   - JSR JoypadCheck
  524.     LDA $4218
  525.     CMP $10
  526.     BEQ -
  527.     JMP Mess
  528.  
  529. ;Snes Init
  530.     ORG $9000
  531.     incsrc SNESInit.asm
  532.    
  533. Font:  
  534.     ORG $D000
  535.     incbin Font8_v3.chr
  536.  
  537. Pal:   
  538.     ORG $A000
  539.     db $00, $00, $FF, $FF, $FF, $FF, $FF, $FF
  540.  
  541. Text:
  542.     ORG $B100
  543.     Fillbyte $00
  544.     Fillbyte $1000
  545.     ORG $B100
  546.     db "Satellaview Test                "
  547.     db "Register Full Tester            "
  548.     db "                                "
  549.     db "L/R: Change Register            "
  550.     db "Left/Up/Down/Right/Y/X/B/A:     "
  551.     db "             Change Bit to Send "
  552.     db "Start: Send current Byte        "
  553.     db "Select: Set another byte        "
  554.     db "                                "
  555.     db "                                "
  556.     db "Register: 2188                  "
  557.     db "                                "
  558.     db "Byte Send: 00000000  00         "
  559.     db "                                "
  560.     db "Byte Recv: 00000000  00         "
  561.     db "                                "
  562.     db "SerialRecv 00000000  00         "
  563.  
  564. Header:
  565.     ORG $FFB0
  566.         cleartable
  567.         db "01" ; Always "01"
  568.         db $00 ;Something
  569.         db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 ;Always $00
  570.         db "Satella Tester  " ;Title
  571.         db $01, $00, $00, $00 ;1M Data
  572.         db $00, $00 ;Unlimited Starts
  573.         db $70, %11101000 ;7-29 Date
  574.         db $30, $10 ;FastROM, LoROM, Full Size ROM
  575.         db $33 ;Maker, but always $33
  576.         db $00 ;Version 0
  577.         dw $0000 ;Checksum
  578.         dw $0000 ;Complement Checksum
  579.  
  580. NormalSize:
  581.     ORG $FFE0
  582.         fillbyte $00
  583.         fill 1015808
  584.        
  585.     ORG $FFE0
  586.         dw $0000, $0000, $8000, $8000, $8000, $8000, $8000, $8000
  587.         dw $0000, $0000, $8000, $8000, $8000, $8000, $8000, $8000
  588.        
  589. SerialMode:
  590.     ORG $018000
  591.     ;Activate BIOS at $80-9F:$8000-FFFF
  592.    
  593.     SEP #$30
  594.     LDA #$80
  595.     STA $085000
  596.     STA $0E5000
  597.     ;Get register
  598.     REP #$30
  599.     LDA $04
  600.     CMP #$2198
  601.     BEQ Serial_Send98
  602.     BNE Serial_Send99
  603.    
  604. Serial_Send98:
  605.     ;Send 8bit
  606.     SEP #$20
  607.     REP #$10
  608.     LDA $07
  609.     LDY #$000A
  610.     LDX #$0002
  611.     ;JSL $1059B8 ;port_2198_send_cmd_recv_multiple_words Y=Address X=Number of words
  612.     PHY
  613.     JML $80C41F
  614.     RTL
  615.  
  616. Serial_Send99:
  617.     ;Send 16bit
  618.     SEP #$20
  619.     REP #$10
  620.     LDA $07
  621.     XBA
  622.     LDA $09
  623.     XBA
  624.     ;JSL $80C3D6 ;send_16bit_to_port_2199
  625.     JSL $1059B0
  626.     JSL $1059B4 ;recv_8bit_from_port_2199
  627.     STA $0A
  628.     JSL $1059B4 ;recv_8bit_from_port_2199
  629.     STA $0B
  630.     JSL $1059B4 ;recv_8bit_from_port_2199
  631.     STA $0C
  632.     JSL $1059B4 ;recv_8bit_from_port_2199
  633.     STA $0D
  634.     RTL
RAW Paste Data