mirror of
https://gitlab.com/camelot/kickc.git
synced 2025-02-20 00:29:10 +00:00
Merged FlightControl/CX16_VERA Commander X16 veralib updates and space demo.
This commit is contained in:
parent
41bb71511c
commit
4993a2cb4b
@ -43,13 +43,6 @@ char * const DEFAULT_SCREEN = 0x0000;
|
||||
// VRAM Bank (0/1) of the default screen
|
||||
char * const DEFAULT_SCREEN_VBANK = 0;
|
||||
|
||||
|
||||
// Load a file to memory
|
||||
// Returns a status:
|
||||
// - 0xff: Success
|
||||
// - other: Kernal Error Code (https://commodore.ca/manuals/pdfs/commodore_error_messages.pdf)
|
||||
char LoadFileBanked( char device, char* filename, dword address);
|
||||
|
||||
// Put a single byte into VRAM.
|
||||
// Uses VERA DATA0
|
||||
// - vbank: Which 64K VRAM bank to put data into (0/1)
|
||||
@ -72,12 +65,13 @@ char vpeek(char vbank, char* vaddr);
|
||||
// - num: The number of bytes to copy
|
||||
void memcpy_to_vram(char vbank, void* vdest, void* src, unsigned int num );
|
||||
|
||||
// Copy block of banked internal memory (256 banks at A000-BFFF) to VERA VRAM.
|
||||
// Copy block of memory (from banked RAM to VRAM)
|
||||
// Copies the values of num bytes from the location pointed to by source directly to the memory block pointed to by destination in VRAM.
|
||||
// - vdest: dword of the destination address in VRAM
|
||||
// - src: dword of source banked address in RAM. This address is a linair project of the banked memory of 512K to 2048K.
|
||||
// - vdest: absolute address in VRAM
|
||||
// - src: absolute address in the banked RAM of the CX16.
|
||||
// - num: dword of the number of bytes to copy
|
||||
void bnkcpy_vram_address(dword vdest, dword src, dword num );
|
||||
// Note: This function can switch RAM bank during copying to copy data from multiple RAM banks.
|
||||
void memcpy_bank_to_vram(unsigned long vdest, unsigned long src, unsigned long num );
|
||||
|
||||
// Copy block of memory (from VRAM to VRAM)
|
||||
// Copies the values from the location pointed by src to the location pointed by dest.
|
||||
@ -106,3 +100,11 @@ void memset_vram(char vbank, void* vdest, char data, unsigned long num );
|
||||
// - data: The value to set the vram with.
|
||||
// - num: The number of bytes to set
|
||||
void memset_vram_word(char vbank, void* vdest, unsigned int data, unsigned long num );
|
||||
|
||||
// Load a file into one of the 256 8KB RAM banks.
|
||||
// - device: The device to load from
|
||||
// - filename: The file name
|
||||
// - address: The absolute address in banked memory to load the file too
|
||||
// - returns: 0xff: Success, other: Kernal Error Code (https://commodore.ca/manuals/pdfs/commodore_error_messages.pdf)
|
||||
// Note: This function only works if the entire file fits within the selected bank. The function cannot load to multiple banks.
|
||||
char load_to_bank( char device, char* filename, unsigned long address);
|
@ -4,21 +4,6 @@
|
||||
|
||||
#include <cx16.h>
|
||||
#include <cx16-kernal.h>
|
||||
#include <peekpoke.h>
|
||||
|
||||
// Load a file to memory
|
||||
// Returns a status:
|
||||
// - 0xff: Success
|
||||
// - other: Kernal Error Code (https://commodore.ca/manuals/pdfs/commodore_error_messages.pdf)
|
||||
char LoadFileBanked( char device, char* filename, dword address) {
|
||||
setnam(filename);
|
||||
setlfs(device);
|
||||
char bank = (byte)(((((word)<(>address)<<8)|>(<address))>>5)+((word)<(>address)<<3));
|
||||
char* addr = ((<address)&0x1FFF); // stip off the top 3 bits, which are representing the bank of the word!
|
||||
addr += 0xA000;
|
||||
VIA1->PORT_A = (char)bank; // select the bank
|
||||
return load(addr, 0);
|
||||
}
|
||||
|
||||
// Put a single byte into VRAM.
|
||||
// Uses VERA DATA0
|
||||
@ -71,12 +56,13 @@ void memcpy_to_vram(char vbank, void* vdest, void* src, unsigned int num ) {
|
||||
*VERA_DATA0 = *s;
|
||||
}
|
||||
|
||||
// Copy block of banked internal memory (256 banks at A000-BFFF) to VERA VRAM.
|
||||
// Copy block of memory (from banked RAM to VRAM)
|
||||
// Copies the values of num bytes from the location pointed to by source directly to the memory block pointed to by destination in VRAM.
|
||||
// - vdest: dword of the destination address in VRAM
|
||||
// - src: dword of source banked address in RAM. This address is a linair project of the banked memory of 512K to 2048K.
|
||||
// - vdest: absolute address in VRAM
|
||||
// - src: absolute address in the banked RAM of the CX16.
|
||||
// - num: dword of the number of bytes to copy
|
||||
void bnkcpy_vram_address(dword vdest, dword src, dword num ) {
|
||||
// Note: This function can switch RAM bank during copying to copy data from multiple RAM banks.
|
||||
void memcpy_bank_to_vram(unsigned long vdest, unsigned long src, unsigned long num ) {
|
||||
// Select DATA0
|
||||
*VERA_CTRL &= ~VERA_ADDRSEL;
|
||||
// Set address
|
||||
@ -85,18 +71,17 @@ void bnkcpy_vram_address(dword vdest, dword src, dword num ) {
|
||||
*VERA_ADDRX_H = <(>vdest);
|
||||
*VERA_ADDRX_H |= VERA_INC_1;
|
||||
|
||||
dword beg = src;
|
||||
dword end = src+num;
|
||||
unsigned long beg = src;
|
||||
unsigned long end = src+num;
|
||||
|
||||
char bank = (byte)(((((word)<(>beg)<<8)|>(<beg))>>5)+((word)<(>beg)<<3));
|
||||
|
||||
char* addr = ((<beg)&0x1FFF); // stip off the top 3 bits, which are representing the bank of the word!
|
||||
addr += 0xA000;
|
||||
|
||||
POKE(0x9f61, (byte)bank); // select the bank
|
||||
for(dword pos=beg; pos<end; pos++) {
|
||||
VIA1->PORT_A = (char)bank; // select the bank
|
||||
for(unsigned long pos=beg; pos<end; pos++) {
|
||||
if(addr == 0xC000) {
|
||||
POKE(0x9f61, (byte)++bank); // select the bank
|
||||
VIA1->PORT_A = (char)++bank; // select the bank
|
||||
addr = 0xA000;
|
||||
}
|
||||
*VERA_DATA0 = *addr;
|
||||
@ -173,3 +158,18 @@ void memcpy_in_vram(char dest_bank, void *dest, char dest_increment, char src_ba
|
||||
}
|
||||
}
|
||||
|
||||
// Load a file into one of the 256 8KB RAM banks.
|
||||
// - device: The device to load from
|
||||
// - filename: The file name
|
||||
// - address: The absolute address in banked memory to load the file too
|
||||
// - returns: 0xff: Success, other: Kernal Error Code (https://commodore.ca/manuals/pdfs/commodore_error_messages.pdf)
|
||||
// Note: This function only works if the entire file fits within the selected bank. The function cannot load to multiple banks.
|
||||
char load_to_bank( char device, char* filename, dword address) {
|
||||
setnam(filename);
|
||||
setlfs(device);
|
||||
char bank = (byte)(((((word)<(>address)<<8)|>(<address))>>5)+((word)<(>address)<<3));
|
||||
char* addr = ((<address)&0x1FFF); // stip off the top 3 bits, which are representing the bank of the word!
|
||||
addr += 0xA000;
|
||||
VIA1->PORT_A = (char)bank; // select the bank
|
||||
return load(addr, 0);
|
||||
}
|
||||
|
@ -482,6 +482,11 @@ public class TestPrograms {
|
||||
compileAndCompare("examples/cx16/cx16-bankaddressing.c");
|
||||
}
|
||||
|
||||
//@Test
|
||||
//public void testCx16SpaceDemo() throws IOException, URISyntaxException {
|
||||
// compileAndCompare("examples/cx16/spacedemo/spacedemo.c");
|
||||
//}
|
||||
|
||||
@Test
|
||||
public void testCx16LoadFileInBank() throws IOException, URISyntaxException {
|
||||
compileAndCompare("examples/cx16/cx16-bankload.c");
|
||||
|
@ -79,15 +79,17 @@ void main() {
|
||||
clrscr();
|
||||
printf("\n\nsprite banked file load and display demo.\n");
|
||||
|
||||
const dword BANK_SPRITE = 0x12000; // Load in bank 9.
|
||||
const dword VRAM_SPRITE = 0x10000; // Load in bank 9.
|
||||
// RAM Bank where sprite is loaded
|
||||
const dword BANK_SPRITE = 0x12000;
|
||||
// VRAM address of sprite
|
||||
const dword VRAM_SPRITE = 0x10000;
|
||||
// Sprite attributes: 8bpp, in front, 64x64, address SPRITE_PIXELS_VRAM
|
||||
struct VERA_SPRITE SPRITE_ATTR = { <(VRAM_SPRITE/32)|VERA_SPRITE_8BPP, 320-32, 240-32, 0x0c, 0xf1 };
|
||||
|
||||
char status = LoadFileBanked(8, "SPRITE", BANK_SPRITE );
|
||||
char status = load_to_bank(8, "SPRITE", BANK_SPRITE );
|
||||
|
||||
bnkcpy_vram_address(VERA_PALETTE+32, BANK_SPRITE-2, 32);
|
||||
bnkcpy_vram_address(VRAM_SPRITE, BANK_SPRITE+32-2, 64*32);
|
||||
memcpy_bank_to_vram(VERA_PALETTE+32, BANK_SPRITE-2, 32);
|
||||
memcpy_bank_to_vram(VRAM_SPRITE, BANK_SPRITE+32-2, 64*32);
|
||||
|
||||
SPRITE_ATTR.ADDR = <(VRAM_SPRITE/32)|VERA_SPRITE_4BPP;
|
||||
SPRITE_ATTR.X = 100;
|
||||
|
@ -9,6 +9,7 @@
|
||||
#include <cx16-kernal.h>
|
||||
#include <cx16-veralib.h>
|
||||
#include <6502.h>
|
||||
#include <peekpoke.h>
|
||||
#include <conio.h>
|
||||
#include <printf.h>
|
||||
#include <stdio.h>
|
||||
@ -251,20 +252,20 @@ void main() {
|
||||
clrscr();
|
||||
|
||||
// Loading the graphics in main banked memory.
|
||||
char status = LoadFileBanked(8, "SPRITES", BANK_SPRITES);
|
||||
status = LoadFileBanked(8, "TILES", BANK_TILES_SMALL);
|
||||
status = LoadFileBanked(8, "TILEB", BANK_TILES_LARGE);
|
||||
char status = load_to_bank(8, "SPRITES", BANK_SPRITES);
|
||||
status = load_to_bank(8, "TILES", BANK_TILES_SMALL);
|
||||
status = load_to_bank(8, "TILEB", BANK_TILES_LARGE);
|
||||
|
||||
// Load the palette in main banked memory.
|
||||
status = LoadFileBanked(8, "PALETTES", BANK_PALETTE);
|
||||
status = load_to_bank(8, "PALETTES", BANK_PALETTE);
|
||||
|
||||
// Copy graphics to the VERA VRAM.
|
||||
bnkcpy_vram_address(VRAM_SPRITES, BANK_SPRITES-2, (dword)64*64*NUM_SPRITES/2);
|
||||
bnkcpy_vram_address(VRAM_TILES_SMALL, BANK_TILES_SMALL-2, (dword)32*32*(NUM_TILES_SMALL)/2);
|
||||
bnkcpy_vram_address(VRAM_TILES_LARGE, BANK_TILES_LARGE-2, (dword)64*64*(NUM_TILES_LARGE)/2);
|
||||
memcpy_bank_to_vram(VRAM_SPRITES, BANK_SPRITES-2, (dword)64*64*NUM_SPRITES/2);
|
||||
memcpy_bank_to_vram(VRAM_TILES_SMALL, BANK_TILES_SMALL-2, (dword)32*32*(NUM_TILES_SMALL)/2);
|
||||
memcpy_bank_to_vram(VRAM_TILES_LARGE, BANK_TILES_LARGE-2, (dword)64*64*(NUM_TILES_LARGE)/2);
|
||||
|
||||
// Load the palette in VERA palette registers, but keep the first 16 colors untouched.
|
||||
bnkcpy_vram_address(VERA_PALETTE+32, BANK_PALETTE-2, (dword)32*3);
|
||||
memcpy_bank_to_vram(VERA_PALETTE+32, BANK_PALETTE-2, (dword)32*3);
|
||||
|
||||
// Now we activate the tile mode.
|
||||
vera_layer_mode_tile(0, (dword)0x10000, VRAM_TILES_SMALL, 128, 64, 16, 16, 4);
|
||||
|
@ -187,8 +187,9 @@ conio_x16_init: {
|
||||
rts
|
||||
}
|
||||
main: {
|
||||
// RAM Bank where sprite is loaded
|
||||
.label BANK_SPRITE = $12000
|
||||
// Load in bank 9.
|
||||
// VRAM address of sprite
|
||||
.label VRAM_SPRITE = $10000
|
||||
.label SPRITE_ATTR = $43
|
||||
// vera_layer_set_text_color_mode( 1, VERA_LAYER_CONFIG_16C )
|
||||
@ -207,58 +208,58 @@ main: {
|
||||
sta SPRITE_ATTR-1,y
|
||||
dey
|
||||
bne !-
|
||||
// LoadFileBanked(8, "SPRITE", BANK_SPRITE )
|
||||
jsr LoadFileBanked
|
||||
// bnkcpy_vram_address(VERA_PALETTE+32, BANK_SPRITE-2, 32)
|
||||
// load_to_bank(8, "SPRITE", BANK_SPRITE )
|
||||
jsr load_to_bank
|
||||
// memcpy_bank_to_vram(VERA_PALETTE+32, BANK_SPRITE-2, 32)
|
||||
lda #$20
|
||||
sta.z bnkcpy_vram_address.num
|
||||
sta.z memcpy_bank_to_vram.num
|
||||
lda #0
|
||||
sta.z bnkcpy_vram_address.num+1
|
||||
sta.z bnkcpy_vram_address.num+2
|
||||
sta.z bnkcpy_vram_address.num+3
|
||||
sta.z memcpy_bank_to_vram.num+1
|
||||
sta.z memcpy_bank_to_vram.num+2
|
||||
sta.z memcpy_bank_to_vram.num+3
|
||||
lda #<BANK_SPRITE-2
|
||||
sta.z bnkcpy_vram_address.beg
|
||||
sta.z memcpy_bank_to_vram.beg
|
||||
lda #>BANK_SPRITE-2
|
||||
sta.z bnkcpy_vram_address.beg+1
|
||||
sta.z memcpy_bank_to_vram.beg+1
|
||||
lda #<BANK_SPRITE-2>>$10
|
||||
sta.z bnkcpy_vram_address.beg+2
|
||||
sta.z memcpy_bank_to_vram.beg+2
|
||||
lda #>BANK_SPRITE-2>>$10
|
||||
sta.z bnkcpy_vram_address.beg+3
|
||||
sta.z memcpy_bank_to_vram.beg+3
|
||||
lda #<VERA_PALETTE+$20
|
||||
sta.z bnkcpy_vram_address.vdest
|
||||
sta.z memcpy_bank_to_vram.vdest
|
||||
lda #>VERA_PALETTE+$20
|
||||
sta.z bnkcpy_vram_address.vdest+1
|
||||
sta.z memcpy_bank_to_vram.vdest+1
|
||||
lda #<VERA_PALETTE+$20>>$10
|
||||
sta.z bnkcpy_vram_address.vdest+2
|
||||
sta.z memcpy_bank_to_vram.vdest+2
|
||||
lda #>VERA_PALETTE+$20>>$10
|
||||
sta.z bnkcpy_vram_address.vdest+3
|
||||
jsr bnkcpy_vram_address
|
||||
// bnkcpy_vram_address(VRAM_SPRITE, BANK_SPRITE+32-2, 64*32)
|
||||
sta.z memcpy_bank_to_vram.vdest+3
|
||||
jsr memcpy_bank_to_vram
|
||||
// memcpy_bank_to_vram(VRAM_SPRITE, BANK_SPRITE+32-2, 64*32)
|
||||
lda #<$40*$20
|
||||
sta.z bnkcpy_vram_address.num
|
||||
sta.z memcpy_bank_to_vram.num
|
||||
lda #>$40*$20
|
||||
sta.z bnkcpy_vram_address.num+1
|
||||
sta.z memcpy_bank_to_vram.num+1
|
||||
lda #<$40*$20>>$10
|
||||
sta.z bnkcpy_vram_address.num+2
|
||||
sta.z memcpy_bank_to_vram.num+2
|
||||
lda #>$40*$20>>$10
|
||||
sta.z bnkcpy_vram_address.num+3
|
||||
sta.z memcpy_bank_to_vram.num+3
|
||||
lda #<BANK_SPRITE+$20-2
|
||||
sta.z bnkcpy_vram_address.beg
|
||||
sta.z memcpy_bank_to_vram.beg
|
||||
lda #>BANK_SPRITE+$20-2
|
||||
sta.z bnkcpy_vram_address.beg+1
|
||||
sta.z memcpy_bank_to_vram.beg+1
|
||||
lda #<BANK_SPRITE+$20-2>>$10
|
||||
sta.z bnkcpy_vram_address.beg+2
|
||||
sta.z memcpy_bank_to_vram.beg+2
|
||||
lda #>BANK_SPRITE+$20-2>>$10
|
||||
sta.z bnkcpy_vram_address.beg+3
|
||||
sta.z memcpy_bank_to_vram.beg+3
|
||||
lda #<VRAM_SPRITE
|
||||
sta.z bnkcpy_vram_address.vdest
|
||||
sta.z memcpy_bank_to_vram.vdest
|
||||
lda #>VRAM_SPRITE
|
||||
sta.z bnkcpy_vram_address.vdest+1
|
||||
sta.z memcpy_bank_to_vram.vdest+1
|
||||
lda #<VRAM_SPRITE>>$10
|
||||
sta.z bnkcpy_vram_address.vdest+2
|
||||
sta.z memcpy_bank_to_vram.vdest+2
|
||||
lda #>VRAM_SPRITE>>$10
|
||||
sta.z bnkcpy_vram_address.vdest+3
|
||||
jsr bnkcpy_vram_address
|
||||
sta.z memcpy_bank_to_vram.vdest+3
|
||||
jsr memcpy_bank_to_vram
|
||||
// SPRITE_ATTR.ADDR = <(VRAM_SPRITE/32)|VERA_SPRITE_4BPP
|
||||
lda #<VRAM_SPRITE/$20&$ffff
|
||||
sta.z SPRITE_ATTR
|
||||
@ -708,11 +709,13 @@ cputs: {
|
||||
jsr cputc
|
||||
jmp __b1
|
||||
}
|
||||
// Load a file to memory
|
||||
// Returns a status:
|
||||
// - 0xff: Success
|
||||
// - other: Kernal Error Code (https://commodore.ca/manuals/pdfs/commodore_error_messages.pdf)
|
||||
LoadFileBanked: {
|
||||
// Load a file into one of the 256 8KB RAM banks.
|
||||
// - device: The device to load from
|
||||
// - filename: The file name
|
||||
// - address: The absolute address in banked memory to load the file too
|
||||
// - returns: 0xff: Success, other: Kernal Error Code (https://commodore.ca/manuals/pdfs/commodore_error_messages.pdf)
|
||||
// Note: This function only works if the entire file fits within the selected bank. The function cannot load to multiple banks.
|
||||
load_to_bank: {
|
||||
.const device = 8
|
||||
.const bank = ((>((main.BANK_SPRITE&$ffff)))>>5)+(<((main.BANK_SPRITE>>$10)<<3))
|
||||
// setnam(filename)
|
||||
@ -739,13 +742,14 @@ LoadFileBanked: {
|
||||
// }
|
||||
rts
|
||||
}
|
||||
// Copy block of banked internal memory (256 banks at A000-BFFF) to VERA VRAM.
|
||||
// Copy block of memory (from banked RAM to VRAM)
|
||||
// Copies the values of num bytes from the location pointed to by source directly to the memory block pointed to by destination in VRAM.
|
||||
// - vdest: dword of the destination address in VRAM
|
||||
// - src: dword of source banked address in RAM. This address is a linair project of the banked memory of 512K to 2048K.
|
||||
// - vdest: absolute address in VRAM
|
||||
// - src: absolute address in the banked RAM of the CX16.
|
||||
// - num: dword of the number of bytes to copy
|
||||
// bnkcpy_vram_address(dword zp(3) vdest, dword zp(7) num)
|
||||
bnkcpy_vram_address: {
|
||||
// Note: This function can switch RAM bank during copying to copy data from multiple RAM banks.
|
||||
// memcpy_bank_to_vram(dword zp(3) vdest, dword zp(7) num)
|
||||
memcpy_bank_to_vram: {
|
||||
.label __0 = $2b
|
||||
.label __2 = $2d
|
||||
.label __4 = $35
|
||||
@ -903,11 +907,11 @@ bnkcpy_vram_address: {
|
||||
lda.z addr+1
|
||||
adc #>$a000
|
||||
sta.z addr+1
|
||||
// POKE
|
||||
stx $9f61
|
||||
// VIA1->PORT_A = (char)bank
|
||||
stx VIA1+OFFSET_STRUCT_MOS6522_VIA_PORT_A
|
||||
__b1:
|
||||
// select the bank
|
||||
// for(dword pos=beg; pos<end; pos++)
|
||||
// for(unsigned long pos=beg; pos<end; pos++)
|
||||
lda.z pos+3
|
||||
cmp.z end+3
|
||||
bcc __b2
|
||||
@ -934,10 +938,10 @@ bnkcpy_vram_address: {
|
||||
lda.z addr
|
||||
cmp #<$c000
|
||||
bne __b3
|
||||
// POKE(0x9f61, (byte)++bank);
|
||||
// VIA1->PORT_A = (char)++bank;
|
||||
inx
|
||||
// POKE
|
||||
stx $9f61
|
||||
// VIA1->PORT_A = (char)++bank
|
||||
stx VIA1+OFFSET_STRUCT_MOS6522_VIA_PORT_A
|
||||
lda #<$a000
|
||||
sta.z addr
|
||||
lda #>$a000
|
||||
@ -952,7 +956,7 @@ bnkcpy_vram_address: {
|
||||
bne !+
|
||||
inc.z addr+1
|
||||
!:
|
||||
// for(dword pos=beg; pos<end; pos++)
|
||||
// for(unsigned long pos=beg; pos<end; pos++)
|
||||
inc.z pos
|
||||
bne !+
|
||||
inc.z pos+1
|
||||
|
@ -84,15 +84,15 @@ main::@3: scope:[main] from main::@2
|
||||
to:main::@4
|
||||
main::@4: scope:[main] from main::@3
|
||||
[40] *(&main::SPRITE_ATTR) = memcpy(*(&$0), struct VERA_SPRITE, SIZEOF_STRUCT_VERA_SPRITE)
|
||||
[41] call LoadFileBanked
|
||||
[41] call load_to_bank
|
||||
to:main::@5
|
||||
main::@5: scope:[main] from main::@4
|
||||
[42] phi()
|
||||
[43] call bnkcpy_vram_address
|
||||
[43] call memcpy_bank_to_vram
|
||||
to:main::@6
|
||||
main::@6: scope:[main] from main::@5
|
||||
[44] phi()
|
||||
[45] call bnkcpy_vram_address
|
||||
[45] call memcpy_bank_to_vram
|
||||
to:main::@7
|
||||
main::@7: scope:[main] from main::@6
|
||||
[46] *((word*)&main::SPRITE_ATTR) = <main::VRAM_SPRITE/$20
|
||||
@ -340,84 +340,84 @@ cputs::@2: scope:[cputs] from cputs::@1
|
||||
[172] call cputc
|
||||
to:cputs::@1
|
||||
|
||||
byte LoadFileBanked(byte LoadFileBanked::device , byte* LoadFileBanked::filename , dword LoadFileBanked::address)
|
||||
LoadFileBanked: scope:[LoadFileBanked] from main::@4
|
||||
byte load_to_bank(byte load_to_bank::device , byte* load_to_bank::filename , dword load_to_bank::address)
|
||||
load_to_bank: scope:[load_to_bank] from main::@4
|
||||
[173] setnam::filename = main::filename
|
||||
[174] call setnam
|
||||
to:LoadFileBanked::@1
|
||||
LoadFileBanked::@1: scope:[LoadFileBanked] from LoadFileBanked
|
||||
[175] setlfs::device = LoadFileBanked::device#0
|
||||
to:load_to_bank::@1
|
||||
load_to_bank::@1: scope:[load_to_bank] from load_to_bank
|
||||
[175] setlfs::device = load_to_bank::device#0
|
||||
[176] call setlfs
|
||||
to:LoadFileBanked::@2
|
||||
LoadFileBanked::@2: scope:[LoadFileBanked] from LoadFileBanked::@1
|
||||
[177] *((byte*)VIA1+OFFSET_STRUCT_MOS6522_VIA_PORT_A) = LoadFileBanked::bank#0
|
||||
to:load_to_bank::@2
|
||||
load_to_bank::@2: scope:[load_to_bank] from load_to_bank::@1
|
||||
[177] *((byte*)VIA1+OFFSET_STRUCT_MOS6522_VIA_PORT_A) = load_to_bank::bank#0
|
||||
[178] load::address = (byte*)0+$a000
|
||||
[179] load::verify = 0
|
||||
[180] call load
|
||||
to:LoadFileBanked::@return
|
||||
LoadFileBanked::@return: scope:[LoadFileBanked] from LoadFileBanked::@2
|
||||
to:load_to_bank::@return
|
||||
load_to_bank::@return: scope:[load_to_bank] from load_to_bank::@2
|
||||
[181] return
|
||||
to:@return
|
||||
|
||||
void bnkcpy_vram_address(dword bnkcpy_vram_address::vdest , dword bnkcpy_vram_address::src , dword bnkcpy_vram_address::num)
|
||||
bnkcpy_vram_address: scope:[bnkcpy_vram_address] from main::@5 main::@6
|
||||
[182] bnkcpy_vram_address::num#2 = phi( main::@5/$20, main::@6/(word)$40*$20 )
|
||||
[182] bnkcpy_vram_address::beg#0 = phi( main::@5/main::BANK_SPRITE-2, main::@6/main::BANK_SPRITE+$20-2 )
|
||||
[182] bnkcpy_vram_address::vdest#2 = phi( main::@5/VERA_PALETTE+$20, main::@6/main::VRAM_SPRITE )
|
||||
void memcpy_bank_to_vram(dword memcpy_bank_to_vram::vdest , dword memcpy_bank_to_vram::src , dword memcpy_bank_to_vram::num)
|
||||
memcpy_bank_to_vram: scope:[memcpy_bank_to_vram] from main::@5 main::@6
|
||||
[182] memcpy_bank_to_vram::num#2 = phi( main::@5/$20, main::@6/(word)$40*$20 )
|
||||
[182] memcpy_bank_to_vram::beg#0 = phi( main::@5/main::BANK_SPRITE-2, main::@6/main::BANK_SPRITE+$20-2 )
|
||||
[182] memcpy_bank_to_vram::vdest#2 = phi( main::@5/VERA_PALETTE+$20, main::@6/main::VRAM_SPRITE )
|
||||
[183] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL
|
||||
[184] bnkcpy_vram_address::$0 = < bnkcpy_vram_address::vdest#2
|
||||
[185] bnkcpy_vram_address::$1 = < bnkcpy_vram_address::$0
|
||||
[186] *VERA_ADDRX_L = bnkcpy_vram_address::$1
|
||||
[187] bnkcpy_vram_address::$2 = < bnkcpy_vram_address::vdest#2
|
||||
[188] bnkcpy_vram_address::$3 = > bnkcpy_vram_address::$2
|
||||
[189] *VERA_ADDRX_M = bnkcpy_vram_address::$3
|
||||
[190] bnkcpy_vram_address::$4 = > bnkcpy_vram_address::vdest#2
|
||||
[191] bnkcpy_vram_address::$5 = < bnkcpy_vram_address::$4
|
||||
[192] *VERA_ADDRX_H = bnkcpy_vram_address::$5
|
||||
[184] memcpy_bank_to_vram::$0 = < memcpy_bank_to_vram::vdest#2
|
||||
[185] memcpy_bank_to_vram::$1 = < memcpy_bank_to_vram::$0
|
||||
[186] *VERA_ADDRX_L = memcpy_bank_to_vram::$1
|
||||
[187] memcpy_bank_to_vram::$2 = < memcpy_bank_to_vram::vdest#2
|
||||
[188] memcpy_bank_to_vram::$3 = > memcpy_bank_to_vram::$2
|
||||
[189] *VERA_ADDRX_M = memcpy_bank_to_vram::$3
|
||||
[190] memcpy_bank_to_vram::$4 = > memcpy_bank_to_vram::vdest#2
|
||||
[191] memcpy_bank_to_vram::$5 = < memcpy_bank_to_vram::$4
|
||||
[192] *VERA_ADDRX_H = memcpy_bank_to_vram::$5
|
||||
[193] *VERA_ADDRX_H = *VERA_ADDRX_H | VERA_INC_1
|
||||
[194] bnkcpy_vram_address::end#0 = bnkcpy_vram_address::beg#0 + bnkcpy_vram_address::num#2
|
||||
[195] bnkcpy_vram_address::$7 = > bnkcpy_vram_address::beg#0
|
||||
[196] bnkcpy_vram_address::$8 = bnkcpy_vram_address::$7 << 8
|
||||
[197] bnkcpy_vram_address::$9 = < bnkcpy_vram_address::$8
|
||||
[198] bnkcpy_vram_address::$10 = < bnkcpy_vram_address::beg#0
|
||||
[199] bnkcpy_vram_address::$11 = > bnkcpy_vram_address::$10
|
||||
[200] bnkcpy_vram_address::$23 = (word)bnkcpy_vram_address::$9
|
||||
[201] bnkcpy_vram_address::$12 = bnkcpy_vram_address::$23 | bnkcpy_vram_address::$11
|
||||
[202] bnkcpy_vram_address::$13 = bnkcpy_vram_address::$12 >> 5
|
||||
[203] bnkcpy_vram_address::$14 = > bnkcpy_vram_address::beg#0
|
||||
[204] bnkcpy_vram_address::$15 = bnkcpy_vram_address::$14 << 3
|
||||
[205] bnkcpy_vram_address::$16 = < bnkcpy_vram_address::$15
|
||||
[206] bnkcpy_vram_address::$24 = (word)bnkcpy_vram_address::$16
|
||||
[207] bnkcpy_vram_address::$17 = bnkcpy_vram_address::$13 + bnkcpy_vram_address::$24
|
||||
[208] bnkcpy_vram_address::bank#0 = (byte)bnkcpy_vram_address::$17
|
||||
[209] bnkcpy_vram_address::$18 = < bnkcpy_vram_address::beg#0
|
||||
[210] bnkcpy_vram_address::addr#0 = bnkcpy_vram_address::$18 & $1fff
|
||||
[211] bnkcpy_vram_address::addr#1 = (byte*)bnkcpy_vram_address::addr#0 + $a000
|
||||
[212] *((byte*) 40801) = bnkcpy_vram_address::bank#0
|
||||
to:bnkcpy_vram_address::@1
|
||||
bnkcpy_vram_address::@1: scope:[bnkcpy_vram_address] from bnkcpy_vram_address bnkcpy_vram_address::@3
|
||||
[213] bnkcpy_vram_address::bank#2 = phi( bnkcpy_vram_address/bnkcpy_vram_address::bank#0, bnkcpy_vram_address::@3/bnkcpy_vram_address::bank#5 )
|
||||
[213] bnkcpy_vram_address::addr#4 = phi( bnkcpy_vram_address/bnkcpy_vram_address::addr#1, bnkcpy_vram_address::@3/bnkcpy_vram_address::addr#2 )
|
||||
[213] bnkcpy_vram_address::pos#2 = phi( bnkcpy_vram_address/bnkcpy_vram_address::beg#0, bnkcpy_vram_address::@3/bnkcpy_vram_address::pos#1 )
|
||||
[214] if(bnkcpy_vram_address::pos#2<bnkcpy_vram_address::end#0) goto bnkcpy_vram_address::@2
|
||||
to:bnkcpy_vram_address::@return
|
||||
bnkcpy_vram_address::@return: scope:[bnkcpy_vram_address] from bnkcpy_vram_address::@1
|
||||
[194] memcpy_bank_to_vram::end#0 = memcpy_bank_to_vram::beg#0 + memcpy_bank_to_vram::num#2
|
||||
[195] memcpy_bank_to_vram::$7 = > memcpy_bank_to_vram::beg#0
|
||||
[196] memcpy_bank_to_vram::$8 = memcpy_bank_to_vram::$7 << 8
|
||||
[197] memcpy_bank_to_vram::$9 = < memcpy_bank_to_vram::$8
|
||||
[198] memcpy_bank_to_vram::$10 = < memcpy_bank_to_vram::beg#0
|
||||
[199] memcpy_bank_to_vram::$11 = > memcpy_bank_to_vram::$10
|
||||
[200] memcpy_bank_to_vram::$23 = (word)memcpy_bank_to_vram::$9
|
||||
[201] memcpy_bank_to_vram::$12 = memcpy_bank_to_vram::$23 | memcpy_bank_to_vram::$11
|
||||
[202] memcpy_bank_to_vram::$13 = memcpy_bank_to_vram::$12 >> 5
|
||||
[203] memcpy_bank_to_vram::$14 = > memcpy_bank_to_vram::beg#0
|
||||
[204] memcpy_bank_to_vram::$15 = memcpy_bank_to_vram::$14 << 3
|
||||
[205] memcpy_bank_to_vram::$16 = < memcpy_bank_to_vram::$15
|
||||
[206] memcpy_bank_to_vram::$24 = (word)memcpy_bank_to_vram::$16
|
||||
[207] memcpy_bank_to_vram::$17 = memcpy_bank_to_vram::$13 + memcpy_bank_to_vram::$24
|
||||
[208] memcpy_bank_to_vram::bank#0 = (byte)memcpy_bank_to_vram::$17
|
||||
[209] memcpy_bank_to_vram::$18 = < memcpy_bank_to_vram::beg#0
|
||||
[210] memcpy_bank_to_vram::addr#0 = memcpy_bank_to_vram::$18 & $1fff
|
||||
[211] memcpy_bank_to_vram::addr#1 = (byte*)memcpy_bank_to_vram::addr#0 + $a000
|
||||
[212] *((byte*)VIA1+OFFSET_STRUCT_MOS6522_VIA_PORT_A) = memcpy_bank_to_vram::bank#0
|
||||
to:memcpy_bank_to_vram::@1
|
||||
memcpy_bank_to_vram::@1: scope:[memcpy_bank_to_vram] from memcpy_bank_to_vram memcpy_bank_to_vram::@3
|
||||
[213] memcpy_bank_to_vram::bank#2 = phi( memcpy_bank_to_vram/memcpy_bank_to_vram::bank#0, memcpy_bank_to_vram::@3/memcpy_bank_to_vram::bank#5 )
|
||||
[213] memcpy_bank_to_vram::addr#4 = phi( memcpy_bank_to_vram/memcpy_bank_to_vram::addr#1, memcpy_bank_to_vram::@3/memcpy_bank_to_vram::addr#2 )
|
||||
[213] memcpy_bank_to_vram::pos#2 = phi( memcpy_bank_to_vram/memcpy_bank_to_vram::beg#0, memcpy_bank_to_vram::@3/memcpy_bank_to_vram::pos#1 )
|
||||
[214] if(memcpy_bank_to_vram::pos#2<memcpy_bank_to_vram::end#0) goto memcpy_bank_to_vram::@2
|
||||
to:memcpy_bank_to_vram::@return
|
||||
memcpy_bank_to_vram::@return: scope:[memcpy_bank_to_vram] from memcpy_bank_to_vram::@1
|
||||
[215] return
|
||||
to:@return
|
||||
bnkcpy_vram_address::@2: scope:[bnkcpy_vram_address] from bnkcpy_vram_address::@1
|
||||
[216] if(bnkcpy_vram_address::addr#4!=$c000) goto bnkcpy_vram_address::@3
|
||||
to:bnkcpy_vram_address::@4
|
||||
bnkcpy_vram_address::@4: scope:[bnkcpy_vram_address] from bnkcpy_vram_address::@2
|
||||
[217] bnkcpy_vram_address::bank#1 = ++ bnkcpy_vram_address::bank#2
|
||||
[218] *((byte*) 40801) = bnkcpy_vram_address::bank#1
|
||||
to:bnkcpy_vram_address::@3
|
||||
bnkcpy_vram_address::@3: scope:[bnkcpy_vram_address] from bnkcpy_vram_address::@2 bnkcpy_vram_address::@4
|
||||
[219] bnkcpy_vram_address::bank#5 = phi( bnkcpy_vram_address::@2/bnkcpy_vram_address::bank#2, bnkcpy_vram_address::@4/bnkcpy_vram_address::bank#1 )
|
||||
[219] bnkcpy_vram_address::addr#5 = phi( bnkcpy_vram_address::@2/bnkcpy_vram_address::addr#4, bnkcpy_vram_address::@4/(byte*) 40960 )
|
||||
[220] *VERA_DATA0 = *bnkcpy_vram_address::addr#5
|
||||
[221] bnkcpy_vram_address::addr#2 = ++ bnkcpy_vram_address::addr#5
|
||||
[222] bnkcpy_vram_address::pos#1 = ++ bnkcpy_vram_address::pos#2
|
||||
to:bnkcpy_vram_address::@1
|
||||
memcpy_bank_to_vram::@2: scope:[memcpy_bank_to_vram] from memcpy_bank_to_vram::@1
|
||||
[216] if(memcpy_bank_to_vram::addr#4!=$c000) goto memcpy_bank_to_vram::@3
|
||||
to:memcpy_bank_to_vram::@4
|
||||
memcpy_bank_to_vram::@4: scope:[memcpy_bank_to_vram] from memcpy_bank_to_vram::@2
|
||||
[217] memcpy_bank_to_vram::bank#1 = ++ memcpy_bank_to_vram::bank#2
|
||||
[218] *((byte*)VIA1+OFFSET_STRUCT_MOS6522_VIA_PORT_A) = memcpy_bank_to_vram::bank#1
|
||||
to:memcpy_bank_to_vram::@3
|
||||
memcpy_bank_to_vram::@3: scope:[memcpy_bank_to_vram] from memcpy_bank_to_vram::@2 memcpy_bank_to_vram::@4
|
||||
[219] memcpy_bank_to_vram::bank#5 = phi( memcpy_bank_to_vram::@2/memcpy_bank_to_vram::bank#2, memcpy_bank_to_vram::@4/memcpy_bank_to_vram::bank#1 )
|
||||
[219] memcpy_bank_to_vram::addr#5 = phi( memcpy_bank_to_vram::@2/memcpy_bank_to_vram::addr#4, memcpy_bank_to_vram::@4/(byte*) 40960 )
|
||||
[220] *VERA_DATA0 = *memcpy_bank_to_vram::addr#5
|
||||
[221] memcpy_bank_to_vram::addr#2 = ++ memcpy_bank_to_vram::addr#5
|
||||
[222] memcpy_bank_to_vram::pos#1 = ++ memcpy_bank_to_vram::pos#2
|
||||
to:memcpy_bank_to_vram::@1
|
||||
|
||||
void memcpy_to_vram(byte memcpy_to_vram::vbank , void* memcpy_to_vram::vdest , void* memcpy_to_vram::src , word memcpy_to_vram::num)
|
||||
memcpy_to_vram: scope:[memcpy_to_vram] from main::@7
|
||||
@ -572,7 +572,7 @@ cputc::@1: scope:[cputc] from cputc::@7
|
||||
to:cputc::@return
|
||||
|
||||
void setnam(volatile byte* setnam::filename)
|
||||
setnam: scope:[setnam] from LoadFileBanked
|
||||
setnam: scope:[setnam] from load_to_bank
|
||||
[292] strlen::str#1 = setnam::filename
|
||||
[293] call strlen
|
||||
[294] strlen::return#2 = strlen::len#2
|
||||
@ -587,7 +587,7 @@ setnam::@return: scope:[setnam] from setnam::@1
|
||||
to:@return
|
||||
|
||||
void setlfs(volatile byte setlfs::device)
|
||||
setlfs: scope:[setlfs] from LoadFileBanked::@1
|
||||
setlfs: scope:[setlfs] from load_to_bank::@1
|
||||
asm { ldxdevice lda#1 ldy#0 jsr$ffba }
|
||||
to:setlfs::@return
|
||||
setlfs::@return: scope:[setlfs] from setlfs
|
||||
@ -595,7 +595,7 @@ setlfs::@return: scope:[setlfs] from setlfs
|
||||
to:@return
|
||||
|
||||
byte load(volatile byte* load::address , volatile byte load::verify)
|
||||
load: scope:[load] from LoadFileBanked::@2
|
||||
load: scope:[load] from load_to_bank::@2
|
||||
[301] load::status = 0
|
||||
asm { ldxaddress ldyaddress+1 ldaverify jsr$ffd5 bcserror lda#$ff error: stastatus }
|
||||
to:load::@return
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -4,15 +4,6 @@ byte CONIO_SCREEN_BANK
|
||||
byte CONIO_SCREEN_BANK#14 CONIO_SCREEN_BANK zp[1]:27 100.93636363636364
|
||||
byte* CONIO_SCREEN_TEXT
|
||||
word CONIO_SCREEN_TEXT#16 CONIO_SCREEN_TEXT zp[2]:28 0.6392405063291139
|
||||
byte LoadFileBanked(byte LoadFileBanked::device , byte* LoadFileBanked::filename , dword LoadFileBanked::address)
|
||||
byte* LoadFileBanked::addr
|
||||
dword LoadFileBanked::address
|
||||
byte LoadFileBanked::bank
|
||||
const byte LoadFileBanked::bank#0 bank = (byte)><main::BANK_SPRITE>>5+(word)<>main::BANK_SPRITE<<3
|
||||
byte LoadFileBanked::device
|
||||
const byte LoadFileBanked::device#0 device = 8
|
||||
byte* LoadFileBanked::filename
|
||||
byte LoadFileBanked::return
|
||||
const byte OFFSET_STRUCT_MOS6522_VIA_PORT_A = 1
|
||||
const byte OFFSET_STRUCT_VERA_SPRITE_X = 2
|
||||
const byte OFFSET_STRUCT_VERA_SPRITE_Y = 4
|
||||
@ -108,50 +99,6 @@ const nomodify dword VERA_SPRITE_ATTR = $1fc00
|
||||
const nomodify struct MOS6522_VIA* VIA1 = (struct MOS6522_VIA*) 40800
|
||||
const nomodify byte WHITE = 1
|
||||
void __start()
|
||||
void bnkcpy_vram_address(dword bnkcpy_vram_address::vdest , dword bnkcpy_vram_address::src , dword bnkcpy_vram_address::num)
|
||||
word~ bnkcpy_vram_address::$0 zp[2]:43 202.0
|
||||
byte~ bnkcpy_vram_address::$1 reg byte a 202.0
|
||||
word~ bnkcpy_vram_address::$10 zp[2]:59 202.0
|
||||
byte~ bnkcpy_vram_address::$11 reg byte x 101.0
|
||||
word~ bnkcpy_vram_address::$12 zp[2]:61 202.0
|
||||
word~ bnkcpy_vram_address::$13 zp[2]:61 40.4
|
||||
word~ bnkcpy_vram_address::$14 zp[2]:63 202.0
|
||||
word~ bnkcpy_vram_address::$15 zp[2]:63 202.0
|
||||
byte~ bnkcpy_vram_address::$16 reg byte a 101.0
|
||||
word~ bnkcpy_vram_address::$17 zp[2]:61 101.0
|
||||
word~ bnkcpy_vram_address::$18 zp[2]:15 202.0
|
||||
word~ bnkcpy_vram_address::$2 zp[2]:45 202.0
|
||||
word~ bnkcpy_vram_address::$23 zp[2]:61 202.0
|
||||
word~ bnkcpy_vram_address::$24 zp[2]:65 202.0
|
||||
byte~ bnkcpy_vram_address::$3 reg byte a 202.0
|
||||
word~ bnkcpy_vram_address::$4 zp[2]:53 202.0
|
||||
byte~ bnkcpy_vram_address::$5 reg byte a 202.0
|
||||
word~ bnkcpy_vram_address::$7 zp[2]:55 202.0
|
||||
word~ bnkcpy_vram_address::$8 zp[2]:55 202.0
|
||||
byte~ bnkcpy_vram_address::$9 reg byte y 33.666666666666664
|
||||
byte* bnkcpy_vram_address::addr
|
||||
word bnkcpy_vram_address::addr#0 addr zp[2]:15 101.0
|
||||
byte* bnkcpy_vram_address::addr#1 addr zp[2]:15 101.0
|
||||
byte* bnkcpy_vram_address::addr#2 addr zp[2]:15 1001.0
|
||||
byte* bnkcpy_vram_address::addr#4 addr zp[2]:15 1034.6666666666667
|
||||
byte* bnkcpy_vram_address::addr#5 addr zp[2]:15 1501.5
|
||||
byte bnkcpy_vram_address::bank
|
||||
byte bnkcpy_vram_address::bank#0 reg byte x 60.599999999999994
|
||||
byte bnkcpy_vram_address::bank#1 reg byte x 1501.5
|
||||
byte bnkcpy_vram_address::bank#2 reg byte x 1034.6666666666667
|
||||
byte bnkcpy_vram_address::bank#5 reg byte x 750.75
|
||||
dword bnkcpy_vram_address::beg
|
||||
dword bnkcpy_vram_address::beg#0 beg zp[4]:11 19.548387096774196
|
||||
dword bnkcpy_vram_address::end
|
||||
dword bnkcpy_vram_address::end#0 end zp[4]:7 39.357142857142854
|
||||
dword bnkcpy_vram_address::num
|
||||
dword bnkcpy_vram_address::num#2 num zp[4]:7 8.416666666666666
|
||||
dword bnkcpy_vram_address::pos
|
||||
dword bnkcpy_vram_address::pos#1 pos zp[4]:11 2002.0
|
||||
dword bnkcpy_vram_address::pos#2 pos zp[4]:11 388.0
|
||||
dword bnkcpy_vram_address::src
|
||||
dword bnkcpy_vram_address::vdest
|
||||
dword bnkcpy_vram_address::vdest#2 vdest zp[4]:3 37.875
|
||||
void clearline()
|
||||
byte~ clearline::$1 reg byte a 2.00000002E8
|
||||
byte~ clearline::$2 reg byte a 2.00000002E8
|
||||
@ -259,6 +206,15 @@ volatile byte* load::address loadstore zp[2]:40 33.666666666666664
|
||||
byte load::return
|
||||
volatile byte load::status loadstore zp[1]:48 1001.0
|
||||
volatile byte load::verify loadstore zp[1]:42 50.5
|
||||
byte load_to_bank(byte load_to_bank::device , byte* load_to_bank::filename , dword load_to_bank::address)
|
||||
byte* load_to_bank::addr
|
||||
dword load_to_bank::address
|
||||
byte load_to_bank::bank
|
||||
const byte load_to_bank::bank#0 bank = (byte)><main::BANK_SPRITE>>5+(word)<>main::BANK_SPRITE<<3
|
||||
byte load_to_bank::device
|
||||
const byte load_to_bank::device#0 device = 8
|
||||
byte* load_to_bank::filename
|
||||
byte load_to_bank::return
|
||||
void main()
|
||||
const nomodify dword main::BANK_SPRITE = $12000
|
||||
struct VERA_SPRITE main::SPRITE_ATTR loadstore zp[8]:67
|
||||
@ -268,6 +224,50 @@ const byte* main::s[$2d] = "
|
||||
|
||||
sprite banked file load and display demo.
|
||||
"
|
||||
void memcpy_bank_to_vram(dword memcpy_bank_to_vram::vdest , dword memcpy_bank_to_vram::src , dword memcpy_bank_to_vram::num)
|
||||
word~ memcpy_bank_to_vram::$0 zp[2]:43 202.0
|
||||
byte~ memcpy_bank_to_vram::$1 reg byte a 202.0
|
||||
word~ memcpy_bank_to_vram::$10 zp[2]:59 202.0
|
||||
byte~ memcpy_bank_to_vram::$11 reg byte x 101.0
|
||||
word~ memcpy_bank_to_vram::$12 zp[2]:61 202.0
|
||||
word~ memcpy_bank_to_vram::$13 zp[2]:61 40.4
|
||||
word~ memcpy_bank_to_vram::$14 zp[2]:63 202.0
|
||||
word~ memcpy_bank_to_vram::$15 zp[2]:63 202.0
|
||||
byte~ memcpy_bank_to_vram::$16 reg byte a 101.0
|
||||
word~ memcpy_bank_to_vram::$17 zp[2]:61 101.0
|
||||
word~ memcpy_bank_to_vram::$18 zp[2]:15 202.0
|
||||
word~ memcpy_bank_to_vram::$2 zp[2]:45 202.0
|
||||
word~ memcpy_bank_to_vram::$23 zp[2]:61 202.0
|
||||
word~ memcpy_bank_to_vram::$24 zp[2]:65 202.0
|
||||
byte~ memcpy_bank_to_vram::$3 reg byte a 202.0
|
||||
word~ memcpy_bank_to_vram::$4 zp[2]:53 202.0
|
||||
byte~ memcpy_bank_to_vram::$5 reg byte a 202.0
|
||||
word~ memcpy_bank_to_vram::$7 zp[2]:55 202.0
|
||||
word~ memcpy_bank_to_vram::$8 zp[2]:55 202.0
|
||||
byte~ memcpy_bank_to_vram::$9 reg byte y 33.666666666666664
|
||||
byte* memcpy_bank_to_vram::addr
|
||||
word memcpy_bank_to_vram::addr#0 addr zp[2]:15 101.0
|
||||
byte* memcpy_bank_to_vram::addr#1 addr zp[2]:15 101.0
|
||||
byte* memcpy_bank_to_vram::addr#2 addr zp[2]:15 1001.0
|
||||
byte* memcpy_bank_to_vram::addr#4 addr zp[2]:15 1034.6666666666667
|
||||
byte* memcpy_bank_to_vram::addr#5 addr zp[2]:15 1501.5
|
||||
byte memcpy_bank_to_vram::bank
|
||||
byte memcpy_bank_to_vram::bank#0 reg byte x 60.599999999999994
|
||||
byte memcpy_bank_to_vram::bank#1 reg byte x 1501.5
|
||||
byte memcpy_bank_to_vram::bank#2 reg byte x 1034.6666666666667
|
||||
byte memcpy_bank_to_vram::bank#5 reg byte x 750.75
|
||||
dword memcpy_bank_to_vram::beg
|
||||
dword memcpy_bank_to_vram::beg#0 beg zp[4]:11 19.548387096774196
|
||||
dword memcpy_bank_to_vram::end
|
||||
dword memcpy_bank_to_vram::end#0 end zp[4]:7 39.357142857142854
|
||||
dword memcpy_bank_to_vram::num
|
||||
dword memcpy_bank_to_vram::num#2 num zp[4]:7 8.416666666666666
|
||||
dword memcpy_bank_to_vram::pos
|
||||
dword memcpy_bank_to_vram::pos#1 pos zp[4]:11 2002.0
|
||||
dword memcpy_bank_to_vram::pos#2 pos zp[4]:11 388.0
|
||||
dword memcpy_bank_to_vram::src
|
||||
dword memcpy_bank_to_vram::vdest
|
||||
dword memcpy_bank_to_vram::vdest#2 vdest zp[4]:3 37.875
|
||||
void memcpy_in_vram(byte memcpy_in_vram::dest_bank , void* memcpy_in_vram::dest , byte memcpy_in_vram::dest_increment , byte memcpy_in_vram::src_bank , void* memcpy_in_vram::src , byte memcpy_in_vram::src_increment , word memcpy_in_vram::num)
|
||||
byte~ memcpy_in_vram::$0 reg byte a 2.0000000002E10
|
||||
byte~ memcpy_in_vram::$1 reg byte a 2.0000000002E10
|
||||
@ -493,11 +493,11 @@ reg byte x [ gotoxy::y#4 gotoxy::y#3 gotoxy::y#0 gotoxy::y#2 ]
|
||||
reg byte a [ vera_layer_set_text_color_mode::layer#3 ]
|
||||
reg byte x [ clrscr::l#2 clrscr::l#1 ]
|
||||
reg byte y [ clrscr::c#2 clrscr::c#1 ]
|
||||
zp[4]:3 [ bnkcpy_vram_address::vdest#2 ]
|
||||
zp[4]:7 [ bnkcpy_vram_address::num#2 bnkcpy_vram_address::end#0 ]
|
||||
zp[4]:11 [ bnkcpy_vram_address::pos#2 bnkcpy_vram_address::beg#0 bnkcpy_vram_address::pos#1 ]
|
||||
reg byte x [ bnkcpy_vram_address::bank#2 bnkcpy_vram_address::bank#0 bnkcpy_vram_address::bank#5 bnkcpy_vram_address::bank#1 ]
|
||||
zp[2]:15 [ memcpy_to_vram::s#2 memcpy_to_vram::s#1 bnkcpy_vram_address::addr#5 bnkcpy_vram_address::addr#4 bnkcpy_vram_address::addr#1 bnkcpy_vram_address::addr#2 bnkcpy_vram_address::addr#0 bnkcpy_vram_address::$18 cputs::s#2 cputs::s#0 clrscr::line_text#2 clrscr::line_text#1 clrscr::line_text#0 ]
|
||||
zp[4]:3 [ memcpy_bank_to_vram::vdest#2 ]
|
||||
zp[4]:7 [ memcpy_bank_to_vram::num#2 memcpy_bank_to_vram::end#0 ]
|
||||
zp[4]:11 [ memcpy_bank_to_vram::pos#2 memcpy_bank_to_vram::beg#0 memcpy_bank_to_vram::pos#1 ]
|
||||
reg byte x [ memcpy_bank_to_vram::bank#2 memcpy_bank_to_vram::bank#0 memcpy_bank_to_vram::bank#5 memcpy_bank_to_vram::bank#1 ]
|
||||
zp[2]:15 [ memcpy_to_vram::s#2 memcpy_to_vram::s#1 memcpy_bank_to_vram::addr#5 memcpy_bank_to_vram::addr#4 memcpy_bank_to_vram::addr#1 memcpy_bank_to_vram::addr#2 memcpy_bank_to_vram::addr#0 memcpy_bank_to_vram::$18 cputs::s#2 cputs::s#0 clrscr::line_text#2 clrscr::line_text#1 clrscr::line_text#0 ]
|
||||
reg byte x [ vera_layer_get_color::layer#2 vera_layer_get_color::layer#1 vera_layer_get_color::layer#0 ]
|
||||
reg byte a [ vera_layer_get_color::return#2 vera_layer_get_color::return#0 vera_layer_get_color::return#1 ]
|
||||
reg byte x [ insertup::i#2 insertup::i#1 ]
|
||||
@ -553,12 +553,12 @@ zp[2]:37 [ setnam::filename ]
|
||||
zp[1]:39 [ setlfs::device ]
|
||||
zp[2]:40 [ load::address ]
|
||||
zp[1]:42 [ load::verify ]
|
||||
reg byte a [ bnkcpy_vram_address::$1 ]
|
||||
reg byte a [ bnkcpy_vram_address::$3 ]
|
||||
reg byte a [ bnkcpy_vram_address::$5 ]
|
||||
reg byte y [ bnkcpy_vram_address::$9 ]
|
||||
reg byte x [ bnkcpy_vram_address::$11 ]
|
||||
reg byte a [ bnkcpy_vram_address::$16 ]
|
||||
reg byte a [ memcpy_bank_to_vram::$1 ]
|
||||
reg byte a [ memcpy_bank_to_vram::$3 ]
|
||||
reg byte a [ memcpy_bank_to_vram::$5 ]
|
||||
reg byte y [ memcpy_bank_to_vram::$9 ]
|
||||
reg byte x [ memcpy_bank_to_vram::$11 ]
|
||||
reg byte a [ memcpy_bank_to_vram::$16 ]
|
||||
reg byte a [ vera_layer_get_mapbase_bank::return#0 ]
|
||||
reg byte a [ vera_layer_get_mapbase_offset::$0 ]
|
||||
reg byte a [ vera_layer_get_rowshift::return#0 ]
|
||||
@ -568,32 +568,32 @@ reg byte a [ vera_layer_get_textcolor::return#0 ]
|
||||
reg byte a [ vera_layer_get_color::return#3 ]
|
||||
reg byte x [ cputc::color#0 ]
|
||||
reg byte a [ cputc::$15 ]
|
||||
zp[2]:43 [ cputc::conio_addr#0 cputc::conio_addr#1 bnkcpy_vram_address::$0 clearline::c#2 clearline::c#1 strlen::str#2 strlen::str#1 strlen::str#0 ]
|
||||
zp[2]:43 [ cputc::conio_addr#0 cputc::conio_addr#1 memcpy_bank_to_vram::$0 clearline::c#2 clearline::c#1 strlen::str#2 strlen::str#1 strlen::str#0 ]
|
||||
reg byte a [ cputc::$2 ]
|
||||
reg byte a [ cputc::$4 ]
|
||||
reg byte a [ cputc::$5 ]
|
||||
reg byte a [ cputc::$6 ]
|
||||
reg byte a [ cputc::scroll_enable#0 ]
|
||||
zp[2]:45 [ cputc::$16 bnkcpy_vram_address::$2 memcpy_in_vram::i#2 memcpy_in_vram::i#1 strlen::len#2 strlen::len#1 strlen::return#2 setnam::$0 ]
|
||||
zp[2]:45 [ cputc::$16 memcpy_bank_to_vram::$2 memcpy_in_vram::i#2 memcpy_in_vram::i#1 strlen::len#2 strlen::len#1 strlen::return#2 setnam::$0 ]
|
||||
zp[1]:47 [ setnam::filename_len ]
|
||||
zp[1]:48 [ load::status ]
|
||||
zp[2]:49 [ vera_layer_set_config::addr#0 screenlayer::vera_layer_get_height1_return#0 screenlayer::vera_layer_get_height1_return#1 screenlayer::$5 ]
|
||||
zp[2]:51 [ vera_layer_set_tilebase::addr#0 screenlayer::vera_layer_get_width1_config#0 vera_layer_get_mapbase_offset::return#2 vera_layer_get_mapbase_offset::return#0 ]
|
||||
reg byte a [ vera_layer_get_color::$3 ]
|
||||
zp[2]:53 [ vera_layer_get_color::addr#0 bnkcpy_vram_address::$4 ]
|
||||
zp[2]:53 [ vera_layer_get_color::addr#0 memcpy_bank_to_vram::$4 ]
|
||||
reg byte a [ vera_layer_get_color::$0 ]
|
||||
reg byte a [ vera_layer_get_color::$1 ]
|
||||
reg byte a [ cputln::$2 ]
|
||||
zp[2]:55 [ cputln::temp#0 cputln::temp#1 bnkcpy_vram_address::$7 bnkcpy_vram_address::$8 ]
|
||||
zp[2]:55 [ cputln::temp#0 cputln::temp#1 memcpy_bank_to_vram::$7 memcpy_bank_to_vram::$8 ]
|
||||
reg byte a [ cputln::$3 ]
|
||||
zp[1]:57 [ insertup::cy#0 ]
|
||||
zp[1]:58 [ insertup::width#0 ]
|
||||
reg byte a [ insertup::$3 ]
|
||||
zp[2]:59 [ insertup::line#0 insertup::start#0 memcpy_in_vram::dest#0 bnkcpy_vram_address::$10 ]
|
||||
zp[2]:61 [ memcpy_in_vram::src#0 bnkcpy_vram_address::$23 bnkcpy_vram_address::$12 bnkcpy_vram_address::$13 bnkcpy_vram_address::$17 ]
|
||||
zp[2]:63 [ memcpy_in_vram::num#0 bnkcpy_vram_address::$14 bnkcpy_vram_address::$15 ]
|
||||
zp[2]:59 [ insertup::line#0 insertup::start#0 memcpy_in_vram::dest#0 memcpy_bank_to_vram::$10 ]
|
||||
zp[2]:61 [ memcpy_in_vram::src#0 memcpy_bank_to_vram::$23 memcpy_bank_to_vram::$12 memcpy_bank_to_vram::$13 memcpy_bank_to_vram::$17 ]
|
||||
zp[2]:63 [ memcpy_in_vram::num#0 memcpy_bank_to_vram::$14 memcpy_bank_to_vram::$15 ]
|
||||
reg byte a [ clearline::$5 ]
|
||||
zp[2]:65 [ clearline::addr#0 bnkcpy_vram_address::$24 ]
|
||||
zp[2]:65 [ clearline::addr#0 memcpy_bank_to_vram::$24 ]
|
||||
reg byte a [ clearline::$1 ]
|
||||
reg byte a [ clearline::$2 ]
|
||||
reg byte a [ vera_layer_get_color::return#4 ]
|
||||
|
Loading…
x
Reference in New Issue
Block a user