put setup VIC-II routine at $E5A0 for Advanced Pinball Simulator. Issue #23
This commit is contained in:
1 parent
e88f12f2ed
commit
810dfb75af
3 files changed
+28
-23
No files matched your search
+1
-16
@@ -1,22 +1,7 @@
|
||||
;; Function defined on pp272-273 of C64 Programmers Reference Guide
|
||||
;; Compute's Mapping the 64 p215
|
||||
cint:
|
||||
;; Set up default IO values (Compute's Mapping the 64 p215)
|
||||
lda #$1b ; Enable text mode
|
||||
sta $d011
|
||||
lda #$c8 ; 40 column etc
|
||||
sta $d016
|
||||
|
||||
;; Compute's Mapping the 64, p156
|
||||
;; We use a different colour scheme of white text on all blue
|
||||
lda #$06
|
||||
sta $D020
|
||||
sta $D021
|
||||
|
||||
;; Turn off sprites
|
||||
;; (observed hanging around after running programs and resetting)
|
||||
lda #$00
|
||||
sta $D015
|
||||
jsr setup_vicii
|
||||
|
||||
;; Initialise cursor blink flags (Compute's Mapping the 64 p215)
|
||||
lda #$00
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
|
||||
setup_vicii:
|
||||
;; Set up default IO values (Compute's Mapping the 64 p215)
|
||||
lda #$1b ; Enable text mode
|
||||
sta $d011
|
||||
lda #$c8 ; 40 column etc
|
||||
sta $d016
|
||||
|
||||
;; Compute's Mapping the 64, p156
|
||||
;; We use a different colour scheme of white text on all blue
|
||||
lda #$06
|
||||
sta $D020
|
||||
sta $D021
|
||||
|
||||
;; Turn off sprites
|
||||
;; (observed hanging around after running programs and resetting)
|
||||
lda #$00
|
||||
sta $D015
|
||||
|
||||
+8
-7
@@ -74,7 +74,7 @@ int main (int argc, char *argv[]) {
|
||||
int collect_cycles=5000000;
|
||||
|
||||
// KERNAL part is actually just under 7KB
|
||||
int rom_bottom=0xe4b7;
|
||||
int rom_bottom=0xa000;
|
||||
int rom_top=0xffff;
|
||||
char *filename=NULL;
|
||||
|
||||
@@ -198,13 +198,14 @@ int main (int argc, char *argv[]) {
|
||||
int nf=sscanf((char *)buffer,".C:%x%*[^:]:%*x X:%*x Y:%*x SP:%x %*[^ ] %d",&pc,&sp,&cycles);
|
||||
if (nf==3) {
|
||||
// fprintf(stdout,"%x %x %d\n",pc,sp,cycles);
|
||||
// Detect entry into ROM via code
|
||||
if (pc>=rom_bottom&&pc<=rom_top) {
|
||||
if (last_pc<rom_bottom||last_pc>rom_top) {
|
||||
// PC has just entered the ROM
|
||||
fprintf(stdout,"$%04x called from $%04x @ cycle %d\n",pc,last_pc,cycles);
|
||||
// Detect entry into ROM via code
|
||||
if (pc<0xc000||pc>=0xe000)
|
||||
if (pc>=rom_bottom&&pc<=rom_top) {
|
||||
if (last_pc<rom_bottom||last_pc>rom_top) {
|
||||
// PC has just entered the ROM
|
||||
fprintf(stdout,"$%04x called from $%04x @ cycle %d\n",pc,last_pc,cycles);
|
||||
}
|
||||
}
|
||||
}
|
||||
// Detect entry into ROM via interrupt
|
||||
if (pc>=rom_bottom&&pc<=rom_top)
|
||||
if (sp==(last_sp-3)) {
|
||||
|
||||
Reference in new issue
Block a user