fixed and completed comments
This commit is contained in:
@@ -538,8 +538,10 @@ irq7: // irq7 is tied to PCI INTA# and PCI INTB# on the M5484LITE
|
||||
rte // return from exception
|
||||
|
||||
irq7text:
|
||||
.data
|
||||
.ascii "IRQ7!"
|
||||
.dc.b 13,10,0
|
||||
.text
|
||||
|
||||
#elif MACHINE_FIREBEE /* these handlers are only meaningful for the Firebee */
|
||||
irq5: // irq5 is tied to PCI INTC# and PCI INTD# on the M5484LITE
|
||||
@@ -769,7 +771,6 @@ handler_gpt0:
|
||||
|
||||
lea -7 * 4(sp),sp // save registers
|
||||
movem.l d0-d4/a0-a1,(sp)
|
||||
|
||||
mvz.b vbasehi,d0 // screen base address high
|
||||
cmp.w #2,d0 // screen base lower than 0x20000?
|
||||
blt video_chg_end // yes, do nothing
|
||||
@@ -788,15 +789,14 @@ sca_other:
|
||||
move.b 0xffff8203,d0 // mid byte
|
||||
lsl.l #8,d0
|
||||
move.b 0xffff820d,d0 // low byte
|
||||
move.l d0,d3
|
||||
move.l d0,d3 // d0 and d3 now contain the video memory start address
|
||||
|
||||
video_chg_1page:
|
||||
// check if page is already marked as video page
|
||||
moveq #20,d4
|
||||
move.l d0,d2
|
||||
lsr.l d4,d2 // new page
|
||||
move.l _video_tlb,d4
|
||||
bset.l d2,d4 // set as changed
|
||||
lsr.l d4,d2 // shift right by 20 bit -> page number (MB pages)
|
||||
move.l _video_tlb,d4 // save to video pages bitmask
|
||||
bset.l d2,d4 // set as newly set
|
||||
bne video_chg_2page // was it set already?
|
||||
move.l d4,_video_tlb
|
||||
// jsr _flush_and_invalidate_caches FIXME: why should we need that?
|
||||
@@ -807,10 +807,10 @@ video_copy_data:
|
||||
move.l d0,a0
|
||||
move.l a0,a1
|
||||
add.l #0x60000000,a1
|
||||
move.l #0x10000,d4 // whole page
|
||||
move.l #0x10000,d4 // 16 bytes per copy -> 1 MB
|
||||
|
||||
video_copy_data_loop:
|
||||
move.l (a0)+,(a1)+ // copy video page contents to real screen
|
||||
move.l (a0)+,(a1)+ // copy video page contents to FPGA memory
|
||||
move.l (a0)+,(a1)+
|
||||
move.l (a0)+,(a1)+
|
||||
move.l (a0)+,(a1)+
|
||||
@@ -834,33 +834,33 @@ video_copy_data_loop:
|
||||
move.l d1,MCF_MMU_MMUDR
|
||||
move.l d2,MCF_MMU_MMUOR // setzen vidoe maped to 60xxx only data
|
||||
nop
|
||||
|
||||
video_chg_2page:
|
||||
// test of adjacent page is needed also
|
||||
// calculate screen memory size
|
||||
move.l d3,d0
|
||||
mvz.w 0xffff8210,d4 // VWRAP: words per scanline
|
||||
mvz.w 0xffff82aa,d2 // VDE: vertical display end
|
||||
mvz.w 0xffff82a8,d1 // VDB: vertical display begin
|
||||
sub.l d1,d2 // number of lines
|
||||
mulu d2,d4 // times number of words per line
|
||||
add.l d4,d0 // video memory end address
|
||||
cmp.l #__STRAM_END,d0 // start address > end of STRAM?
|
||||
add.l d4,d0 // calculate end address
|
||||
cmp.l #__STRAM_END,d0 // > end of STRAM?
|
||||
bge video_chg_end // yes - we're finished
|
||||
|
||||
moveq #20,d4
|
||||
moveq #20,d4 // shift right by 20 bit -> page number (MB pages)
|
||||
move.l d0,d2
|
||||
lsr.l d4,d2 // neue page
|
||||
lsr.l d4,d2 // calculate page number
|
||||
move.l _video_tlb,d4
|
||||
bset.l d2,d4 // setzen als ge<EFBFBD>ndert
|
||||
beq video_copy_data // nein nochmal
|
||||
bset.l d2,d4 // set as changed
|
||||
beq video_copy_data // was not set yet, copy
|
||||
|
||||
jsr _flush_and_invalidate_caches
|
||||
|
||||
video_chg_end:
|
||||
lea MCF_GPT0_GMS,a0 // disable and reenable timer
|
||||
bclr.b #0,3(a0) // input capture
|
||||
lea MCF_GPT0_GMS,a0 // disable and reenable trigger
|
||||
bclr.b #0,3(a0)
|
||||
nop
|
||||
bset.b #0,3(a0)
|
||||
|
||||
movem.l (a7),d0-d4/a0-a1 // restore saved registers
|
||||
movem.l (sp),d0-d4/a0-a1 // restore saved registers
|
||||
lea 7 * 4(sp),a7
|
||||
rte
|
||||
#endif /* MACHINE_FIREBEE */
|
||||
|
||||
Reference in New Issue
Block a user