Korjattu bugi main task workloading käyttäessä samaa temp pointeria kuin rasterikeskeytys
This commit is contained in:
parent
cef15740c0
commit
9b6fd57100
|
@ -1,6 +1,6 @@
|
||||||
zeropages = ,$02, $04, $08, $16, $0B, $0D, $10, $12, $22, $24, $68, $45
|
zeropages = ,$02, $04, $08, $16, $0B, $0D, $10, $12, $22, $24, $68, $45
|
||||||
temp_zeropages = ,$54, $56, $58, $5A
|
temp_zeropages = ,$54, $56, $58, $5A
|
||||||
zeropages_userdefined = ,$5e, $5f, $60, $61, $62, $63
|
zeropages_userdefined = ,$5e, $5f, $60, $61, $62, $63
|
||||||
zeropage_screenmemory = $fe
|
zeropage_screenmemory = $fe
|
||||||
zeropage_decrunch1 = $47
|
zeropage_decrunch1 = $47
|
||||||
zeropage_decrunch2 = $48
|
zeropage_decrunch2 = $48
|
||||||
|
@ -29,7 +29,7 @@ override_target_settings_org = $810
|
||||||
override_target_settings_ignore_sys = 0
|
override_target_settings_ignore_sys = 0
|
||||||
override_target_settings_ignore_prg = 0
|
override_target_settings_ignore_prg = 0
|
||||||
output_debug_symbols = 1
|
output_debug_symbols = 1
|
||||||
open_files = ,resources/images/piraattinaamat-2.flf, resources/images/piraattinaamat-1.flf, piraatti_intro.ras
|
open_files = ,piraatti_intro.asm, resources/images/piraattinaamat-2.flf, resources/images/piraattinaamat-1.flf, piraatti_intro.ras
|
||||||
project_path = /Users/gimulnautti/piraattipuolue-github/c64-vaali-intro-2023/
|
project_path = /Users/gimulnautti/piraattipuolue-github/c64-vaali-intro-2023/
|
||||||
zeropage_colormemory = $fb
|
zeropage_colormemory = $fb
|
||||||
dirart_flf_file = none
|
dirart_flf_file = none
|
||||||
|
@ -38,7 +38,7 @@ show_all_files = 1
|
||||||
use_vice_c1541 = 0
|
use_vice_c1541 = 0
|
||||||
remove_unused_symbols = 1
|
remove_unused_symbols = 1
|
||||||
ignore_initial_jump = 0
|
ignore_initial_jump = 0
|
||||||
current_file = piraatti_intro.asm
|
current_file = piraatti_intro.ras
|
||||||
output_type = prg
|
output_type = prg
|
||||||
exomizer_toggle = 0
|
exomizer_toggle = 0
|
||||||
use_track_19 = 1
|
use_track_19 = 1
|
||||||
|
|
|
@ -422,36 +422,6 @@ begin
|
||||||
mainWorkState := s;
|
mainWorkState := s;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
/**
|
|
||||||
* Assembly setup for a character set copy in RAM
|
|
||||||
*/
|
|
||||||
procedure CopyCharsetRomToRam(targetHi : byte);
|
|
||||||
begin
|
|
||||||
asm("
|
|
||||||
ldx #$08 ; we loop 8 times (8x255 = 2Kb)
|
|
||||||
lda #$33 ; make the CPU see the Character Generator ROM...
|
|
||||||
sta $01 ; ...at $D000 by storing %00110011 into location $01
|
|
||||||
lda #$d0 ; load high byte of $D000
|
|
||||||
sta $fc ; store it in a free location we use as vector
|
|
||||||
ldy #$00 ; init counter with 0
|
|
||||||
sty $fb ; store it as low byte in the $FB/$FC vector
|
|
||||||
lda $fd ; second pair in $FD/$FE
|
|
||||||
lda targetHi ; point to target
|
|
||||||
sta $fe
|
|
||||||
|
|
||||||
loopc lda ($fb),y ; read byte from vector stored in $fb/$fc
|
|
||||||
sta ($fd),y ; write to the RAM
|
|
||||||
iny ; do this 255 times...
|
|
||||||
bne loopc ; ..for low byte $00 to $FF
|
|
||||||
inc $fc ; when we passed $FF increase high byte...
|
|
||||||
inc $fe
|
|
||||||
dex ; ... and decrease X by one before restart
|
|
||||||
bne loopc ; We repeat this until X becomes Zero
|
|
||||||
lda #$37 ; switch in I/O mapped registers again...
|
|
||||||
sta $01 ; ... with %00110111 so CPU can see them
|
|
||||||
");
|
|
||||||
end;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Print character set char to sprite data (hires)
|
* Print character set char to sprite data (hires)
|
||||||
* Triple each bit in char both vertical and horizontal
|
* Triple each bit in char both vertical and horizontal
|
||||||
|
@ -471,14 +441,15 @@ var
|
||||||
begin
|
begin
|
||||||
while (char > 64) do char -= 64;
|
while (char > 64) do char -= 64;
|
||||||
|
|
||||||
tempPtr1 := charsetptr + char * 8;
|
// tempPtr1 := charsetptr + char * 8;
|
||||||
|
charsetptr += char * 8;
|
||||||
|
|
||||||
for k:=0 to 8 do begin
|
for k:=0 to 8 do begin
|
||||||
temp[0] := 0;
|
temp[0] := 0;
|
||||||
temp[1] := 0;
|
temp[1] := 0;
|
||||||
temp[2] := 0;
|
temp[2] := 0;
|
||||||
for i:=0 to 10 do begin
|
for i:=0 to 10 do begin
|
||||||
charTemp := tempPtr1[0] & chrBitMask[sprChrBit[i]];
|
charTemp := charsetptr[0] & chrBitMask[sprChrBit[i]];
|
||||||
sprOfsTemp := sprOffset[i];
|
sprOfsTemp := sprOffset[i];
|
||||||
if charTemp then temp[sprOfsTemp] := temp[sprOfsTemp] | sprBitMask[i];
|
if charTemp then temp[sprOfsTemp] := temp[sprOfsTemp] | sprBitMask[i];
|
||||||
end;
|
end;
|
||||||
|
@ -488,7 +459,7 @@ begin
|
||||||
sPtr[2] := temp[2];
|
sPtr[2] := temp[2];
|
||||||
sPtr += 3;
|
sPtr += 3;
|
||||||
end;
|
end;
|
||||||
tempPtr1 += 1;
|
charsetptr += 1;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
end;
|
end;
|
||||||
|
|
Loading…
Reference in New Issue