14392
UTILITAIRE -> Diverstypeins
© Happy Computer (1985)
 
 
 
Disassembler
cpc
 
 
screenshot
CTM644 Colour Monitor
screenshot
GT65 Green Monitor
 

Mots Clefs

INFOS

- CATEGORIES -
UTILITAIRE -> Divers               
- STAFF -
Paru sous forme de listing dans le magazine "Happy Computer" N°19 - Issue 05/85
Auteur : Stefan AUST

- BUGS -
Corrections par Copper :
- Relocation de la routine assembleur de &AB50 vers &A650 pour le 6128
- Ajout des instructions non documentées préfixées par $DD ou $FD avec les registres ixh / ixl / iyh / iyl

- Liste des lignes modifiées :
* Ajustement pour le 6128 même si en pratique il faut mieux avoir une adresse plus basse pour pouvoir charger des binaires
AVANT :
130 MEMORY &AB4F

APRES :
130 MEMORY &A64F


Pour éviter un overflow quand la variable start passe de &7FFF à &8000
AVANT :
140 DEFINT a-m,o-z

APRES :
140 DEFINT a-m,o-r,t-z


* Relocation de la routine asm pour lire en ROM
AVANT :
160 DATA &df,&54,&ab,&c9,&57,&ab,&fc,&3a,0,0,&32,&5e,&ab,&c9
930 FOR i=0 TO 13:READ x:POKE &AB50+i,x:NEXT i
2980 POKE &AB58,al:POKE &AB59,ah
2990 CALL &AB50:a=PEEK(&AB5E)

APRES :
160 DATA &df,&54,&a6,&c9,&57,&a6,&fc,&3a,0,0,&32,&5e,&a6,&c9
930 FOR i=0 TO 13:READ x:POKE &A650+i,x:NEXT i
2980 POKE &A658,al:POKE &A659,ah
2990 CALL &A650:a=PEEK(&A65E)


* Ajout des instruction sll
AVANT :
1050 FOR i=0 TO 7:cb$(56+i)="srl "+reg$(i):NEXT i

APRES :
1050 FOR i=0 TO 7:cb$(56+i)="srl "+reg$(i):cb$(48+i)="sll "+reg$(i):NEXT i


* Ajout des instuctionss non documentées préfixées par $DD et $FD
AVANT :
1630 IF dd$(a)=""THEN 1490
1730 IF fd$(a)=""THEN 1490
1950 nadr=start+1:GOSUB 2940
2000 nadr=start+1:GOSUB 2940
2230 nadr=start+1:GOSUB 2940
2250 anz=2
2280 nadr=start+1:GOSUB 2940
2300 anz=2

APRES :
1630 IF dd$(a)=""THEN code$=code$(a):IF code$=""THEN 1490 ELSE op$="ix":GOTO 5000
1730 IF fd$(a)=""THEN code$=code$(a):IF code$=""THEN 1490 ELSE op$="iy":GOTO 5000
1950 nadr=start+anz:GOSUB 2940
2000 nadr=start+anz:GOSUB 2940
2230 nadr=start+anz:GOSUB 2940
2250 anz=anz+1
2280 nadr=start+anz:GOSUB 2940
2300 anz=anz+1


et ajout d'un nouveau bloc de code en 5000 pour gérer ixl / ixh / iyl / iyh
5000 v=VAL(code$):anz=2:IF v THEN ofs=1 ELSE ofs=0
5010 IF MID$(code$,1+ofs,3)="rst" THEN 1390
5020 IF MID$(code$,8+ofs,1)="h" OR MID$(code$,8+ofs,1)="l" THEN code$=LEFT$(code$,7+ofs)+op$+MID$(code$,8+ofs)
5030 IF MID$(code$,6+ofs,1)="h" OR MID$(code$,6+ofs,1)="l" THEN code$=LEFT$(code$,5+ofs)+op$+MID$(code$,6+ofs)
5040 GOTO 1390


* Correction de bug
AVANT :
3930 GOTO 3820
1670 nadr=start+3:GOSUB 2940

APRES :
3930 GOTO 3810
1670 nadr=start+2:GOSUB 2940

 

Goto Top
CPC-POWER/CPCSOFTS, programmation par Kukulcan © 2007-2024 tous droits réservés.
Reproduction sans autorisation interdite. Tous les titres utilisés appartiennent à leurs propriétaires respectifs.
Hébergement Web, Mail et serveurs de jeux haute performance