|
Subject: Re: [stella] Games that do bad things to HMOVE... From: bwmott@xxxxxxxxxxxx Date: Fri, 24 Apr 1998 15:45:14 -0400 (EDT) |
> > Or it might move the objects 30 or 40 pixels one direction. :) experiment
> > :)
>
> Yes, it looks like a lot of experimenting is needed :-)
Well, I had some time to play around with the HMOVE stuff today
and I've got all the data for moving P0 and P1. The problem I wrote
about P0 not being moved right was all wrong. There was a bug in my
program I loaded $0f into HMPX instead of $f0 :-)
So here's a table which summaries the information I gathered by hitting
HMOVE at various cycles after WSYNC. The table starts at cycle ten
since that was the smallest delay my program allowed, however, by
wrapping around to 86 I end up with all of the values :-)
I'm also including the program I used to gather the data. If anyone
has some free time feel free to build a table for the missles and
balls (hopefully it'll be the same).
Man, this was fun! Now I just need to look over the data to see if it
makes any sense. It looks like hitting HMOVE at cycle 73 or cycle 74
should be fairly useful in creating a playfield where no HMOVE blanks
occur.
Have Fun!
Brad
HMPx values
0 1 2 3 4 5 6 7 8 9 a b c d e f
Cyc
10 0 -1 -2 -2 -2 -2 -2 -2 8 7 6 5 4 3 2 1 ** HBLANK
11 0 -1 -1 -1 -1 -1 -1 -1 8 7 6 5 4 3 2 1 HBLANK
12 0 0 0 0 0 0 0 0 8 7 6 5 4 3 2 1 HBLANK
13 1 1 1 1 1 1 1 1 8 7 6 5 4 3 2 1 HBLANK
14 1 1 1 1 1 1 1 1 8 7 6 5 4 3 2 1 ** HBLANK
15 2 2 2 2 2 2 2 2 8 7 6 5 4 3 2 2 HBLANK
16 3 3 3 3 3 3 3 3 8 7 6 5 4 3 3 3 HBLANK
17 4 4 4 4 4 4 4 4 8 7 6 5 4 4 4 4 HBLANK
18 4 4 4 4 4 4 4 4 8 7 6 5 4 4 4 4 ** HBLANK
19 5 5 5 5 5 5 5 5 8 7 6 5 5 5 5 5 HBLANK
20 6 6 6 6 6 6 6 6 8 7 6 6 6 6 6 6 HBLANK
21 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
.
.
53 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
54 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
55 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0
56 0 0 0 0 0 0 -1 -2 0 0 0 0 0 0 0 0
57 0 0 0 0 0 -1 -2 -3 0 0 0 0 0 0 0 0
58 0 0 0 0 0 -1 -2 -3 0 0 0 0 0 0 0 0 **
59 0 0 0 0 -1 -2 -3 -4 0 0 0 0 0 0 0 0
60 0 0 0 -1 -2 -3 -4 -5 0 0 0 0 0 0 0 0
61 0 0 -1 -2 -3 -4 -5 -6 0 0 0 0 0 0 0 0
62 0 0 -1 -2 -3 -4 -5 -6 0 0 0 0 0 0 0 0 **
63 0 -1 -2 -3 -4 -5 -6 -7 0 0 0 0 0 0 0 0
64 -1 -2 -3 -4 -5 -6 -7 -8 0 0 0 0 0 0 0 0
65 -2 -3 -4 -5 -6 -7 -8 -9 0 0 0 0 0 0 0 -1
66 -2 -3 -4 -5 -6 -7 -8 -9 0 0 0 0 0 0 0 -1 **
67 -3 -4 -5 -6 -7 -8 -9 -10 0 0 0 0 0 0 -1 -2
68 -4 -5 -6 -7 -8 -9 -10 -11 0 0 0 0 0 -1 -2 -3
69 -5 -6 -7 -8 -9 -10 -11 -12 0 0 0 0 -1 -2 -3 -4
70 -5 -6 -7 -8 -9 -10 -11 -12 0 0 0 0 -1 -2 -3 -4 **
71 -6 -7 -8 -9 -10 -11 -12 -13 0 0 0 -1 -2 -3 -4 -5
72 -7 -8 -9 -10 -11 -12 -13 -14 0 0 -1 -2 -3 -4 -5 -6
73 -8 -9 -10 -11 -12 -13 -14 -15 0 -1 -2 -3 -4 -5 -6 -7
74 -8 -9 -10 -11 -12 -13 -14 -15 0 -1 -2 -3 -4 -5 -6 -7 **
75 0 -1 -2 -3 -4 -5 -6 -7 8 7 6 5 4 3 2 1 HBLANK
76 0 -1 -2 -3 -4 -5 -6 -7 8 7 6 5 4 3 2 1 HBLANK
77 0 -1 -2 -3 -4 -5 -6 -7 8 7 6 5 4 3 2 1 HBLANK
78 0 -1 -2 -3 -4 -5 -6 -7 8 7 6 5 4 3 2 1 HBLANK
79 0 -1 -2 -3 -4 -5 -6 -7 8 7 6 5 4 3 2 1 HBLANK
80 0 -1 -2 -3 -4 -5 -6 -6 8 7 6 5 4 3 2 1 HBLANK
81 0 -1 -2 -3 -4 -5 -5 -5 8 7 6 5 4 3 2 1 HBLANK
82 0 -1 -2 -3 -4 -5 -5 -5 8 7 6 5 4 3 2 1 ** HBLANK
83 0 -1 -2 -3 -4 -4 -4 -4 8 7 6 5 4 3 2 1 HBLANK
84 0 -1 -2 -3 -3 -3 -3 -3 8 7 6 5 4 3 2 1 HBLANK
85 0 -1 -2 -2 -2 -2 -2 -2 8 7 6 5 4 3 2 1 HBLANK
86 0 -1 -2 -2 -2 -2 -2 -2 8 7 6 5 4 3 2 1 ** HBLANK
87 0 -1 -1 -1 -1 -1 -1 -1 8 7 6 5 4 3 2 1 HBLANK
88 0 0 0 0 0 0 0 0 8 7 6 5 4 3 2 1 HBLANK
89 1 1 1 1 1 1 1 1 8 7 6 5 4 3 2 1 HBLANK
90 1 1 1 1 1 1 1 1 8 7 6 5 4 3 2 1 ** HBLANK
91 2 2 2 2 2 2 2 2 8 7 6 5 4 3 2 2 HBLANK
92 3 3 3 3 3 3 3 3 8 7 6 5 4 3 3 3 HBLANK
93 4 4 4 4 4 4 4 4 8 7 6 5 4 4 4 4 HBLANK
Notice that 10 + 76 = 86 and the table is repeating...
10 0 -1 -2 -2 -2 -2 -2 -2 8 7 6 5 4 3 2 1 ** HBLANK
11 0 -1 -1 -1 -1 -1 -1 -1 8 7 6 5 4 3 2 1 HBLANK
12 0 0 0 0 0 0 0 0 8 7 6 5 4 3 2 1 HBLANK
13 1 1 1 1 1 1 1 1 8 7 6 5 4 3 2 1 HBLANK
14 1 1 1 1 1 1 1 1 8 7 6 5 4 3 2 1 ** HBLANK
15 2 2 2 2 2 2 2 2 8 7 6 5 4 3 2 2 HBLANK
16 3 3 3 3 3 3 3 3 8 7 6 5 4 3 3 3 HBLANK
17 4 4 4 4 4 4 4 4 8 7 6 5 4 4 4 4 HBLANK
processor 6502
;; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;; TIA (Stella) write-only registers
;; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Vsync equ $00
Vblank equ $01
Wsync equ $02
Nusiz0 equ $04
Nusiz1 equ $05
ColuP0 equ $06
ColuP1 equ $07
ColuBK equ $09
Ctrlpf equ $0A
Resp0 equ $10
Resp1 equ $11
Grp0 equ $1b
Grp1 equ $1c
Hmp0 equ $20
Hmp1 equ $21
Hmove equ $2A
Hmclr equ $2B
;; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;; 6532 (RIOT) registers
;; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Swcha equ $0280
Swacnt equ $0281
Swchb equ $0282
Swbcnt equ $0283
Intim equ $0284
Tim64t equ $0296
;; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;; ROM definitions
;; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
RomStart equ $F000
RomEnd equ $FFFF
IntVectors equ $FFFA
delay equ $a0
oldjoy equ $a1
;; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;; Program initialisation
;; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
org $F000
MotionTable: dc.b $00, $10, $20, $30, $40, $50, $60, $70
dc.b $80, $90, $a0, $b0, $c0, $d0, $e0, $f0
Ziffern dc.b $77,$22,$77,$77,$55,$77,$44,$77,$77,$77,$77,$77,$77,$66,$77,$77
dc.b $55,$66,$11,$11,$55,$44,$44,$11,$55,$55,$55,$55,$44,$55,$44,$44
dc.b $55,$22,$77,$33,$77,$77,$77,$11,$77,$77,$77,$66,$44,$55,$66,$66
dc.b $55,$22,$44,$11,$11,$11,$55,$11,$55,$11,$55,$55,$44,$55,$44,$44
dc.b $77,$77,$77,$77,$11,$77,$77,$11,$77,$77,$55,$77,$77,$66,$77,$44
; 0 1 2 3 4 5 6 7 8 9 A B C D E F
org $F400
NUMDATA:
dc.b $77, $55, $55, $55, $77
dc.b $72, $56, $52, $52, $77
dc.b $77, $51, $57, $54, $77
dc.b $77, $51, $53, $51, $77
dc.b $75, $55, $57, $51, $71
dc.b $77, $54, $57, $51, $77
dc.b $74, $54, $57, $55, $77
dc.b $77, $51, $51, $51, $71
dc.b $77, $55, $57, $55, $77
dc.b $77, $55, $57, $51, $77
dc.b $77, $55, $57, $55, $75
dc.b $77, $55, $56, $55, $77
dc.b $77, $54, $54, $54, $77
dc.b $76, $55, $55, $55, $76
dc.b $77, $54, $56, $54, $77
dc.b $77, $54, $56, $54, $74
dc.b $27, $65, $25, $25, $77
dc.b $22, $66, $22, $22, $77
dc.b $27, $61, $27, $24, $77
dc.b $27, $61, $23, $21, $77
dc.b $25, $65, $27, $21, $71
dc.b $27, $64, $27, $21, $77
dc.b $24, $64, $27, $25, $77
dc.b $27, $61, $21, $21, $71
dc.b $27, $65, $27, $25, $77
dc.b $27, $65, $27, $21, $77
dc.b $27, $65, $27, $25, $75
dc.b $27, $65, $26, $25, $77
dc.b $27, $64, $24, $24, $77
dc.b $26, $65, $25, $25, $76
dc.b $27, $64, $26, $24, $77
dc.b $27, $64, $26, $24, $74
dc.b $77, $15, $75, $45, $77
dc.b $72, $16, $72, $42, $77
dc.b $77, $11, $77, $44, $77
dc.b $77, $11, $73, $41, $77
dc.b $75, $15, $77, $41, $71
dc.b $77, $14, $77, $41, $77
dc.b $74, $14, $77, $45, $77
dc.b $77, $11, $71, $41, $71
dc.b $77, $15, $77, $45, $77
dc.b $77, $15, $77, $41, $77
dc.b $77, $15, $77, $45, $75
dc.b $77, $15, $76, $45, $77
dc.b $77, $14, $74, $44, $77
dc.b $76, $15, $75, $45, $76
dc.b $77, $14, $76, $44, $77
dc.b $77, $14, $76, $44, $74
dc.b $77, $15, $35, $15, $77
dc.b $72, $16, $32, $12, $77
dc.b $77, $11, $37, $14, $77
dc.b $77, $11, $33, $11, $77
dc.b $75, $15, $37, $11, $71
dc.b $77, $14, $37, $11, $77
dc.b $74, $14, $37, $15, $77
dc.b $77, $11, $31, $11, $71
dc.b $77, $15, $37, $15, $77
dc.b $77, $15, $37, $11, $77
dc.b $77, $15, $37, $15, $75
dc.b $77, $15, $36, $15, $77
dc.b $77, $14, $34, $14, $77
dc.b $76, $15, $35, $15, $76
dc.b $77, $14, $36, $14, $77
dc.b $77, $14, $36, $14, $74
dc.b $57, $55, $75, $15, $17
dc.b $52, $56, $72, $12, $17
dc.b $57, $51, $77, $14, $17
dc.b $57, $51, $73, $11, $17
dc.b $55, $55, $77, $11, $11
dc.b $57, $54, $77, $11, $17
dc.b $54, $54, $77, $15, $17
dc.b $57, $51, $71, $11, $11
dc.b $57, $55, $77, $15, $17
dc.b $57, $55, $77, $11, $17
dc.b $57, $55, $77, $15, $15
dc.b $57, $55, $76, $15, $17
dc.b $57, $54, $74, $14, $17
dc.b $56, $55, $75, $15, $16
dc.b $57, $54, $76, $14, $17
dc.b $57, $54, $76, $14, $14
dc.b $77, $45, $75, $15, $77
dc.b $72, $46, $72, $12, $77
dc.b $77, $41, $77, $14, $77
dc.b $77, $41, $73, $11, $77
dc.b $75, $45, $77, $11, $71
dc.b $77, $44, $77, $11, $77
dc.b $74, $44, $77, $15, $77
dc.b $77, $41, $71, $11, $71
dc.b $77, $45, $77, $15, $77
dc.b $77, $45, $77, $11, $77
dc.b $77, $45, $77, $15, $75
dc.b $77, $45, $76, $15, $77
dc.b $77, $44, $74, $14, $77
dc.b $76, $45, $75, $15, $76
dc.b $77, $44, $76, $14, $77
dc.b $77, $44, $76, $14, $74
dc.b $47, $45, $75, $55, $77
dc.b $42, $46, $72, $52, $77
dc.b $47, $41, $77, $54, $77
dc.b $47, $41, $73, $51, $77
dc.b $45, $45, $77, $51, $71
dc.b $47, $44, $77, $51, $77
dc.b $44, $44, $77, $55, $77
dc.b $47, $41, $71, $51, $71
dc.b $47, $45, $77, $55, $77
dc.b $47, $45, $77, $51, $77
dc.b $47, $45, $77, $55, $75
dc.b $47, $45, $76, $55, $77
dc.b $47, $44, $74, $54, $77
dc.b $46, $45, $75, $55, $76
dc.b $47, $44, $76, $54, $77
dc.b $47, $44, $76, $54, $74
dc.b $77, $15, $15, $15, $17
dc.b $72, $16, $12, $12, $17
dc.b $77, $11, $17, $14, $17
dc.b $77, $11, $13, $11, $17
dc.b $75, $15, $17, $11, $11
dc.b $77, $14, $17, $11, $17
dc.b $74, $14, $17, $15, $17
dc.b $77, $11, $11, $11, $11
dc.b $77, $15, $17, $15, $17
dc.b $77, $15, $17, $11, $17
dc.b $77, $15, $17, $15, $15
dc.b $77, $15, $16, $15, $17
dc.b $77, $14, $14, $14, $17
dc.b $76, $15, $15, $15, $16
dc.b $77, $14, $16, $14, $17
dc.b $77, $14, $16, $14, $14
dc.b $77, $55, $75, $55, $77
dc.b $72, $56, $72, $52, $77
dc.b $77, $51, $77, $54, $77
dc.b $77, $51, $73, $51, $77
dc.b $75, $55, $77, $51, $71
dc.b $77, $54, $77, $51, $77
dc.b $74, $54, $77, $55, $77
dc.b $77, $51, $71, $51, $71
dc.b $77, $55, $77, $55, $77
dc.b $77, $55, $77, $51, $77
dc.b $77, $55, $77, $55, $75
dc.b $77, $55, $76, $55, $77
dc.b $77, $54, $74, $54, $77
dc.b $76, $55, $75, $55, $76
dc.b $77, $54, $76, $54, $77
dc.b $77, $54, $76, $54, $74
dc.b $77, $55, $75, $15, $77
dc.b $72, $56, $72, $12, $77
dc.b $77, $51, $77, $14, $77
dc.b $77, $51, $73, $11, $77
dc.b $75, $55, $77, $11, $71
dc.b $77, $54, $77, $11, $77
dc.b $74, $54, $77, $15, $77
dc.b $77, $51, $71, $11, $71
dc.b $77, $55, $77, $15, $77
dc.b $77, $55, $77, $11, $77
dc.b $77, $55, $77, $15, $75
dc.b $77, $55, $76, $15, $77
dc.b $77, $54, $74, $14, $77
dc.b $76, $55, $75, $15, $76
dc.b $77, $54, $76, $14, $77
dc.b $77, $54, $76, $14, $74
dc.b $77, $55, $75, $55, $57
dc.b $72, $56, $72, $52, $57
dc.b $77, $51, $77, $54, $57
dc.b $77, $51, $73, $51, $57
dc.b $75, $55, $77, $51, $51
dc.b $77, $54, $77, $51, $57
dc.b $74, $54, $77, $55, $57
dc.b $77, $51, $71, $51, $51
dc.b $77, $55, $77, $55, $57
dc.b $77, $55, $77, $51, $57
dc.b $77, $55, $77, $55, $55
dc.b $77, $55, $76, $55, $57
dc.b $77, $54, $74, $54, $57
dc.b $76, $55, $75, $55, $56
dc.b $77, $54, $76, $54, $57
dc.b $77, $54, $76, $54, $54
dc.b $77, $55, $65, $55, $77
dc.b $72, $56, $62, $52, $77
dc.b $77, $51, $67, $54, $77
dc.b $77, $51, $63, $51, $77
dc.b $75, $55, $67, $51, $71
dc.b $77, $54, $67, $51, $77
dc.b $74, $54, $67, $55, $77
dc.b $77, $51, $61, $51, $71
dc.b $77, $55, $67, $55, $77
dc.b $77, $55, $67, $51, $77
dc.b $77, $55, $67, $55, $75
dc.b $77, $55, $66, $55, $77
dc.b $77, $54, $64, $54, $77
dc.b $76, $55, $65, $55, $76
dc.b $77, $54, $66, $54, $77
dc.b $77, $54, $66, $54, $74
dc.b $77, $45, $45, $45, $77
dc.b $72, $46, $42, $42, $77
dc.b $77, $41, $47, $44, $77
dc.b $77, $41, $43, $41, $77
dc.b $75, $45, $47, $41, $71
dc.b $77, $44, $47, $41, $77
dc.b $74, $44, $47, $45, $77
dc.b $77, $41, $41, $41, $71
dc.b $77, $45, $47, $45, $77
dc.b $77, $45, $47, $41, $77
dc.b $77, $45, $47, $45, $75
dc.b $77, $45, $46, $45, $77
dc.b $77, $44, $44, $44, $77
dc.b $76, $45, $45, $45, $76
dc.b $77, $44, $46, $44, $77
dc.b $77, $44, $46, $44, $74
dc.b $67, $55, $55, $55, $67
dc.b $62, $56, $52, $52, $67
dc.b $67, $51, $57, $54, $67
dc.b $67, $51, $53, $51, $67
dc.b $65, $55, $57, $51, $61
dc.b $67, $54, $57, $51, $67
dc.b $64, $54, $57, $55, $67
dc.b $67, $51, $51, $51, $61
dc.b $67, $55, $57, $55, $67
dc.b $67, $55, $57, $51, $67
dc.b $67, $55, $57, $55, $65
dc.b $67, $55, $56, $55, $67
dc.b $67, $54, $54, $54, $67
dc.b $66, $55, $55, $55, $66
dc.b $67, $54, $56, $54, $67
dc.b $67, $54, $56, $54, $64
dc.b $77, $45, $65, $45, $77
dc.b $72, $46, $62, $42, $77
dc.b $77, $41, $67, $44, $77
dc.b $77, $41, $63, $41, $77
dc.b $75, $45, $67, $41, $71
dc.b $77, $44, $67, $41, $77
dc.b $74, $44, $67, $45, $77
dc.b $77, $41, $61, $41, $71
dc.b $77, $45, $67, $45, $77
dc.b $77, $45, $67, $41, $77
dc.b $77, $45, $67, $45, $75
dc.b $77, $45, $66, $45, $77
dc.b $77, $44, $64, $44, $77
dc.b $76, $45, $65, $45, $76
dc.b $77, $44, $66, $44, $77
dc.b $77, $44, $66, $44, $74
dc.b $77, $45, $65, $45, $47
dc.b $72, $46, $62, $42, $47
dc.b $77, $41, $67, $44, $47
dc.b $77, $41, $63, $41, $47
dc.b $75, $45, $67, $41, $41
dc.b $77, $44, $67, $41, $47
dc.b $74, $44, $67, $45, $47
dc.b $77, $41, $61, $41, $41
dc.b $77, $45, $67, $45, $47
dc.b $77, $45, $67, $41, $47
dc.b $77, $45, $67, $45, $45
dc.b $77, $45, $66, $45, $47
dc.b $77, $44, $64, $44, $47
dc.b $76, $45, $65, $45, $46
dc.b $77, $44, $66, $44, $47
dc.b $77, $44, $66, $44, $44
Cart_Init: SEI ; Disable interrupts.:
CLD ; Clear "decimal" mode.
LDX #$FF
TXS ; Clear the stack
Common_Init:
LDX #$28 ; Clear the TIA registers ($04-$2C)
LDA #$00
TIAClear:
STA $04,X
DEX
BPL TIAClear ; loop exits with X=$FF
LDX #$FF
RAMClear:
STA $00,X ; Clear the RAM ($FF-$80)
DEX
BMI RAMClear ; loop exits with X=$7F
LDX #$FF
TXS ; Reset the stack
IOClear:
STA Swbcnt ; console I/O always set to INPUT
STA Swacnt ; set controller I/O to INPUT
LDA $280
sta oldjoy
LDA #0
STA delay
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Main program loop
;
Start:
LDA #$02
STA Wsync ; Wait for horizontal sync
STA Vblank ; Turn on Vblank
STA Vsync ; Turn on Vsync
STA Wsync ; Leave Vsync on for 3 lines
STA Wsync
STA Wsync
LDA #$00
STA Vsync ; Turn Vsync off
LDA #43 ; Vblank for 37 lines
STA Tim64t ; 43*64intvls=2752=8256colclks=36.2lines
;; Look at joystick here and change delay value
LDA $280
EOR oldjoy
BEQ next
LDA $280
AND #$40
BNE right
dec delay
jmp out
right: LDA $280
AND #$80
BNE out
inc delay
out: lda $280
STA oldjoy
next:
lda #$00
sta $81
lda delay
clc
adc #10
sta $80
clc
rol $80
rol $81
rol $80
rol $81
adc $80
sta $80
lda $81
adc #0
sta $81
lda #<NUMDATA
adc $80
sta $80
lda #>NUMDATA
adc $81
sta $81
LDA #0
STA Nusiz0
STA Nusiz1
STA Grp0
STA Grp1
VblankLoop:
LDA Intim
BNE VblankLoop ; wait for vblank timer
STA Wsync ; finish waiting for the current line
STA Vblank ; turn off Vblank
LDA #$00 ;black
STA ColuBK
LDA #$0e ;white
STA ColuP0
STA ColuP1
LDA #$AA ; playfield color
STA $8
LDA #1 ; reflected playfield
STA Ctrlpf
LDA #$ff
STA $d
STA Wsync
LDY #$00
DigitLoop: LDA ($80),y
STA Grp0
sta Wsync
iny
cpy #$05
BNE DigitLoop
LDA #1
STA Nusiz0
STA Nusiz1
LDX #$00
MotionLoop: STA Wsync
LDA #0
STA Grp0
STA Grp1
LDA #$80
STA Hmp0
LDA MotionTable,X
STA Hmp1
LDA #$07
STA Wsync ; waste the rest of the line
NOP
TAY
pause1: DEY
BNE pause1
STA Resp0
STA Resp1
; The following loop does the HMOVE at ??
; STA Wsync
; STA Hmove
; JMP return
SEC
LDA #<delaybranch
SBC delay
STA $82
LDA #>delaybranch
SBC #0
STA $83
TXA
STA Wsync ;
JMP ($82) ; +5 5
return: TAX
LDA #$AA ; Turn graphics on
STA Grp0
STA Grp1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Screen: LDY #6
B3: STA Wsync
DEY
BNE B3
INX
CPX #$10
BNE MotionLoop
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
STA Wsync
LDA #$80
STA Hmp0
LDA #$90
STA Hmp1
LDA #$07
STA Wsync ; waste the rest of the line
NOP
TAY
pause3: DEY
BNE pause3
STA Resp0
STA Resp1
STA Wsync
STA Hmove
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
LDY #40
B4: STA Wsync
DEY
BNE B4
LDA #$02
STA Vblank ;turn on Vblank
LDX #16
END: STA Wsync
DEX
BNE END
JMP Start
org $FD00
dodelay:
dc.b $c9
dc.b $c9
dc.b $c9
dc.b $c9
dc.b $c9
dc.b $c9
dc.b $c9
dc.b $c9
dc.b $c9
dc.b $c9
dc.b $c9
dc.b $c9
dc.b $c9
dc.b $c9
dc.b $c9
dc.b $c9
dc.b $c9
dc.b $c9
dc.b $c9
dc.b $c9 ; +2 2
dc.b $c9
dc.b $c9 ; +2 2
dc.b $c9
dc.b $c9 ; +2 4
dc.b $c9
dc.b $c9 ; +2 6
dc.b $c9
dc.b $c9 ; +2 8
dc.b $c9
dc.b $c9 ; +2 10
dc.b $c9
dc.b $c9 ; +2 12
dc.b $c9
dc.b $c9 ; +2 14
dc.b $c9
dc.b $c9 ; +2 16
dc.b $c9
dc.b $c9 ; +2 18
dc.b $c9
dc.b $c9 ; +2 20
dc.b $c9
dc.b $c9 ; +2 22
dc.b $c9
dc.b $c9 ; +2 24
dc.b $c9
dc.b $c9 ; +2 26
dc.b $c9
dc.b $c9 ; +2 28
dc.b $c9
dc.b $c9 ; +2 30
dc.b $c9
dc.b $c9 ; +2 32
dc.b $c9
dc.b $c9 ; +2 34
dc.b $c9
dc.b $c9 ; +2 36
dc.b $c9
dc.b $c9 ; +2 38
dc.b $c9
dc.b $c9 ; +2 40
dc.b $c9
dc.b $c9 ; +2 42
dc.b $c9
dc.b $c9 ; +2 44
dc.b $c9
dc.b $c9 ; +2 46
dc.b $c9
dc.b $c9 ; +2 48
dc.b $c9
dc.b $c9 ; +2 50
dc.b $c9
dc.b $c9 ; +2 52
dc.b $c9
dc.b $c9 ; +2 54
dc.b $c9
dc.b $c9 ; +2 56
dc.b $c9
dc.b $c9 ; +2 58
dc.b $c9
dc.b $c9 ; +2 60
dc.b $c9
dc.b $c9 ; +2 62
dc.b $c9
dc.b $c9 ; +2 64
dc.b $c9
dc.b $c9 ; +2 66
dc.b $c9
dc.b $c9 ; +2 68
dc.b $c9
dc.b $c9 ; +2 70
dc.b $c5
delaybranch: dc.b $ea
STA Hmove ; +3 73
JMP return
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Set up the 6502 interrupt vector table
;
ORG IntVectors
NMI dc.w Cart_Init
Reset dc.w Cart_Init
IRQ dc.w Cart_Init
; END
--------------------------------------------------------------------------
Bradford W. Mott (bwmott@xxxxxxx) Computer Science Department
http://www4.ncsu.edu/~bwmott/www North Carolina State University
--------------------------------------------------------------------------
--
Archives (includes files) at http://www.biglist.com/lists/stella/archives/
Unsub & more at http://www.biglist.com/lists/stella/stella.html
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [stella] Games that do bad thin, bwmott | Thread | Re: [stella] Games that do bad thin, bwmott |
| [stella] PCX2GRP 0.1 alpha, Eckhard Stolberg | Date | Re: Re: [stella] Games that do bad , kurt.woloch |
| Month |