5054
COMPILATION -> Officielle
© E.S.A.T. Software (1986)
 
 
 
Mephisto
Catalogue Disquette Etendu
cpc
 
 
screenshot
screenshot
screenshot
screenshot
 
 
 

screenshot
CTM644 Colour Monitor
screenshot
GT65 Green Monitor
 

Mots Clefs

INFOS

- CATEGORIES -
COMPILATION -> Officielle               
- DIVERS -
Mephisto 1.1 comprends 2 programmes :
- Mephisto v1.2
- Satan v1.1

- STAFF -
Edité par : E.S.A.T. Software (Electronic Service Aquitaine Télécom)

Auteur : Laurent KUTIL

- BUGS -
Concerne le listing en pages 3 et 4 du manuel
* Bug du type de fichier
AVANT :
20 b$(0)="Basic":b$(1)="Basic P":b$(3)="Binaire":b$(6)="ASCII"

APRES :
20 b$(0)="Basic":b$(1)="Basic P":b$(2)="Binaire":b$(6)="ASCII"


* Bugs au niveau du calcul des adresses
AVANT :
30 DEF FNf(a)=PEEK(a)+PEEK(a)*256

APRES :
30 DEF FNf(a)=PEEK(a)+PEEK(a+1)*256


* Si on demande une sortie vers l'imprimante, la question pour une autre disquette n'apparaitra pas
AVANT :
140 PRINT #e : PRINT #e,"Une autre disquette (O/N) ?"; : rep$="": WHILE rep$<>"0" AND rep$<>"N" : rep$=INKEY$ : rep$=UPPER$(rep$) : WEND : PRINT #e,rep$

APRES :
140 PRINT #e : PRINT "Une autre disquette (O/N) ?"; : rep$="": WHILE rep$<>"0" AND rep$<>"N" : rep$=INKEY$ : rep$=UPPER$(rep$) : WEND : PRINT #e,rep$


* Bug d'affichage
AVANT :
180 PRINT #e,TAB(8);:FOR m%=&1045 TO &1050:PRINT #e,CHR$(PEEK(m%) AND &7F):NEXT m%

APRES :
180 PRINT #e,TAB(8);:FOR m%=&1045 TO &1050:PRINT #e,CHR$(PEEK(m%) AND &7F);:NEXT m%


* Bug sur les DATA de la routine ASM
AVANT :
250 DATA CD,57,BB,11,00,80,CD,9B,BC,CD,4E,BB,C9,18,08,84,3C,C0,07,00,00,00,00,21,0F,10,CD,D4,BC,D0,22,10,10,79,32,12,10,1E,00,
3A,13,10,57,3A,14,10,4F,2A,15,10,4F,2A,15,10,DF,10,10,C9,06,0C,21,45,10,11,00,20,CD,77,BC,CD,7A,BC,C9,00,00,00,00,00,00,00,00,2E

APRES :
250 DATA CD,57,BB,11,00,80,CD,9B,BC,CD,4E,BB,C9,18,08,84,3C,C0,07,00,00,00,00,21,0F,10,CD,D4,BC,D0,22,10,10,79,32,12,10,1E,00,
3A,13,10,57,3A,14,10,4F,2A,15,10,DF,10,10,C9,06,0C,21,45,10,11,00,20,CD,77,BC,CD,7A,BC,C9,00,00,00,00,00,00,00,00,2E,00,00,00


DIR = visible au CAT ou |DIR
SYS = fichier caché
READ ONLY = non traité

CALL &1000 -> init
CALL &100D -> Catalogue
CALL &1036 -> devrait pointer sur le chargement du fichier


;CALL &1000
CALL &BB57..........; 1000:..CD 57 BB ; interdiction de placer des caractères sur l'écran

LD.. DE,&8000.......; 1003:..11 00 80 ; DE = adresse d'un tampon de 2ko
CALL &BC9B..........; 1006:..CD 9B BC ; génère le catalogue de la cassette

CALL &BB4E..........; 1009:..CD 4E BB ; Initialisation du mode texte
RET.................; 100C:..C9

;CALL &100D fait un saut direct en &1017
JR &1017............; 100D:..18 08

;Données ROM + Piste, Secteur...
DB &84..............; 100F:..84...... ; numéro de la commande pour lire un secteur
DEFW &C03C..........; 1010:..3C C0....; Adresse par défaut dans la ROM pour lire un secteur (&C03C)
DB &07..............; 1012:..07...... ; ROM 7 (AMSDOS)
NOP................ ; 1013:..00...... ; format de la disquette et donc piste pour la FAT (0 = DATA, 2 = VENDOR/SYSTEM)
NOP................ ; 1014:..00...... ; Secteur de début (&C1 pour DATA ou &41 pour VENDOR/SYSTEM)
DB &00,&00......... ; 1015:..00 00....; adresse en mémoire (&3000 a &3600 -> +&200 pour chaque secteur de la FAT)

LD HL,&100F........ ; 1017:..21 0F 10 ; adresse où se trouve le nom de la commande à rechercher
CALL &BCD4..........; 101A:..CD D4 BC ; recherche un RSX dans les ROMs pour effectuer une commande
RET NC..............; 101D:..D0...... ; pas trouvé on sort
LD (&1010),HL...... ; 101E:..22 10 10 ; va écrire HL dans &1010 (adresse 16 bits)
LD A,C..............; 1021:..79...... ; C dans A
LD (&1012),A........; 1022:..32 12 10 ; on écrit le numéro de la ROM
LD E,&00............; 1025:..1E 00....; lecteur A
LD A,(&1013)........; 1027:..3A 13 10
LD D,A..............; 102A:..57...... ; D = Piste de début
LD A,(&1014)........; 102B:..3A 14 10
LD C,A..............; 102E:..4F...... ; C = Secteur de début
LD HL,(&1015)...... ; 102F:..2A 15 10 ; HL = adresse en mémoire

; doublon a supprimer et tout va fonctionner
LD C,A..............; 1032:..4F
LD HL,(&1015).......; 1033:..2A 15 10


RST &18.............; 1036:..DF
DJNZ &1049..........; 1037:..10 10
RET.................; 1039:..C9

; Chargement du premier block du fichier en &2000
LD B,&0C............; 103A:..06 0C
LD HL,&1045.........; 103C:..21 45 10 ; adresse du nom du fichier (juste après le &C9)
LD DE,&2000.........; 103F:..11 00 20 ; adresse de chargement
CALL &BC77..........; 1042:..CD 77 BC ; positionne le tampon pour la lecture et lit le premier bloc
CALL &BC7A..........; 1045:..CD 7A BC ; ferme le fichier
RET.................; 1048:..C9

 

Goto Top
CPC-POWER/CPCSOFTS, programmation par Kukulcan © 2007-2025 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