enjoy
![Very Happy :D](./images/smilies/icon_biggrin.gif)
Moderator: Mask of Destiny
Check this out. You can use my scroll.TmEE co.(TM) wrote:I just noticed... fixed it...
Code: Select all
ScrollState equ $FFE00C *Free scroll flag
ScrollPos equ $FFE00E *Scroll current position
ScrollString equ $FFE012 *Pointer to start scroll string
Screen equ $FFF000 *ASCII screen
*Insert this in VBlank Routine
move.w ScrollState,d0 *
addq.w #1,d0 *
and.w #$0003,d0 *
move.w d0,ScrollState *
bne SkipScrl *
move.l #$03200002,$C00004 *Reading form VRAM at 0x8320
move.w $c00000,d0 *[d0] - scrolling
subq.b #1,d0 *
and.b #$07,d0 *
move.l #$43200002,$C00004 *Write to VRAM at 0x8320
move.w d0,$c00000 *[d0] - scrolling
cmp.b #07,d0 *
bne SkipScrl *
move.w $FFFC80,$FFFCFE *
move.l #$FFFC7E,d0 *
move.l d0,a0 *
addq.l #2,d0 *
move.l d0,a1 *
move.w #40,d0 *
ScrlLn: move.w (a1)+,(a0)+ *
dbra d0,ScrlLn *
*Printing #00-terminated string.
ScrlPrnt: move.l ScrollPos,d0 *
move.l d0,a0 *
move.b (a0)+,d0 *
cmp.b #0,d0 *
beq ScrlEnS *
and.w #$00FF,d0 *
or.w #$8000,d0 *
move.w d0,$FFFCD0 *
move.l a0,d0 *
move.l d0,ScrollPos *
bra SkipScrl *
ScrlEnS: move.w #$8020,$FFFCD0 *
move.l #ScrollString,d0 *
move.l d0,ScrollPos *
SkipScrl:
*Update ASCII screen every frame with DMA
*But it can be shrinking to scroll only. 32 or 40 words + 1.
move.w #$9300,$C00004 *Size low byte => Reg#19
move.w #$9407,$C00004 *Size high byte => Reg#20
move.w #$9500,$C00004 *String low byte => Reg#21
move.w #$96F8,$C00004 *String middle byte => Reg#22
move.w #$977F,$C00004 *String high byte => Reg#23
move.l #$40000083,$C00004 *VRAM write with DMA at $C000
*end
*Call this to scroll init (copying string to buffer) (a0)
ScrlInit: dc.w $48E7,$FFFE *MOVEM.L D0-D7/A0-A6,-(A7)
or.w #$0700,sr *IRQ off
move.l #$FFFC80,d0 *
move.l d0,a1 *
move.l #41,d0 *
ScrlClr: move.w #$8020,(a1)+ *
dbra d0,ScrlClr *
move.l #ScrollString,d0 *
move.l d0,ScrollPos *
move.l d0,a1 *
ScrlInLp: move.b (a0),d0 *
move.b (a0)+,(a1)+ *
cmp.b #0,d0 *
bne ScrlInLp *
and.w #$F8FF,sr *IRQ on
dc.w $4CDF,$7FFF *MOVEM.L (A7)+,D0-D7/A0-A6
rts *
Code: Select all
*VBlank
subq.w #1,TimeStamp *
cmp.w #0,TimeStamp *
bne TimeEx *
move.w #60,d1 *
move.w $A10000,d0 *
and.b #$40,d0 *
cmp.b #$00,d0 *
beq SetPre *
move.w #50,d1 *
SetPre: move.w d1,TimeStamp *
addq.b #1,TimeSec+1 *
cmp.b #$3A,TimeSec+1 *
bne TimeEx *
move.b #$30,TimeSec+1 *
addq.b #1,TimeSec *
cmp.b #$36,TimeSec *
bne TimeEx *
move.b #$30,TimeSec *
addq.b #1,TimeMin+1 *
cmp.b #$3A,TimeMin+1 *
bne TimeEx *
move.b #$30,TimeMin+1 *
addq.b #1,TimeMin *
cmp.b #$36,TimeMin *
bne TimeEx *
move.b #$30,TimeMin *
TimeEx:
My PD-ROMs are always pass trough test on real hardware. So, I guess it's your fault.TmEE co.(TM) wrote:The TFM player doesn't work correctly on my MD2 (or MD1s). If you try to play a file, it halts (scroller still works)...
I got a 4Gb MMC card, MMC/SD connector, 4MB flash and other parts for my new project for MD.TmEE co.(TM) wrote:I got a 2GB Kingston microSD card with its USB reader for x-mas, what did you get ?
It seems that I have to apologize to you. Indeed, at one NTSC console hangs happening. It turned out wrong expectation of Z80 bus...TmEE co.(TM) wrote:The only problem I can think if is my flashcart which is just 2x 16mbit ROMs and a custom EEPROM mapper, no SRAM of any kind...