Runtime optimizations

* Moved the SAVEDST routine to the main loop saving one JSR and RTS on
each byte.
* The address calculation routine now is called once for every line
instead of every byte.
* Corrected Arnaud's name. Sorry for the typo!
This commit is contained in:
Mario Patiño 2013-07-15 20:05:37 +02:00
parent 08afe8c96d
commit 971cabde0d
2 changed files with 32 additions and 37 deletions

View File

@ -1,6 +1,6 @@
*********************** ***********************
* Apple II BMP Viewer * * Apple II BMP Viewer *
* Arnaud Coqui}re * * Arnaud Cocqui}re *
* Mario Patino * * Mario Patino *
*********************** ***********************
@ -53,36 +53,6 @@ S1 STY SRCY
STA COMPTS STA COMPTS
RTS RTS
SAVEDST LDX DESTX
JSR CALC
LDY DESTY
LDA BUFFDST
LSR ; DERNIER DECALLAGE POUR 7EMEBIT
STA (MEM),Y
LDA DHGR
BEQ HGR
BIT $C01C
BPL PAGE2
BIT $C054
JMP S2
PAGE2 BIT $C055
HGR INY
CPY #40
BNE S2
DEX
CPX #$FF
BEQ FIN
STX DESTX
JSR READBMP ; SAUTE DES OCTETS DANS BMP
LDA DHGR
BEQ FILLD
JSR READBMP
FILLD LDY #00
S2 STY DESTY
LDA #06
STA COMPTD
RTS
FIN JMP END
DEBUT BIT $C050 ; GRAPHIQUES DEBUT BIT $C050 ; GRAPHIQUES
@ -134,6 +104,7 @@ GO1 LDA SOURCE+$0A
STA SRCY STA SRCY
STA DESTY STA DESTY
LDX #191 LDX #191
JSR CALC
STX DESTX STX DESTX
LDA #06 LDA #06
STA COMPTD STA COMPTD
@ -145,13 +116,37 @@ BP ASL BUFFBMP
BPL S3 BPL S3
JSR READBMP JSR READBMP
S3 DEC COMPTD ; 7 ROTATIONS S3 DEC COMPTD ; 7 ROTATIONS
BPL S4 BPL BP
JSR SAVEDST LDY DESTY
S4 JMP BP LDA BUFFDST
LSR ; DERNIER DECALLAGE POUR 7EMEBIT
STA (MEM),Y
LDA DHGR
BEQ HGR
BIT $C01C
BPL PAGE2
BIT $C054
JMP S2
PAGE2 BIT $C055
HGR INY
CPY #40
BNE S2
DEX
CPX #$FF
BEQ FIN
JSR CALC
STX DESTX
JSR READBMP ; SAUTE DES OCTETS DANS BMP
LDA DHGR
BEQ FILLD
JSR READBMP
FILLD LDY #00
S2 STY DESTY
LDA #06
STA COMPTD
JMP BP
END PLA FIN STA $C010
PLA
STA $C010
BF LDA $C000 BF LDA $C000
BPL BF BPL BF
STA $C010 STA $C010

Binary file not shown.