10325
UTILITY -> Floppy disc and tape tool
© _Public_Domain_ (1989)
 
 
 
Disc Utility v4.0
cpc
 
 

Last Update : Sunday 24 November 2013 at 22 h 29

Manual n° 1

; -------------------------------------------------------------------------------------------------------------- ; -- -- ; -- RSX POUR UTILITAIRE DE DISQUETTE -- ; -- -- ; -- ùSECTEUR.LIRE,<numero>,<piste>,<drive>,<adresse du buffer> -- ; -- -- ; -- ùSECTEUR.ECRIRE,<numero>,<piste>,<drive>,<adresse du buffer> -- ; -- -- ; -- ùPISTE.LIRE,<numero>,<premier secteur>,<nombre de secteur>,<drive>,<adresse du buffer> -- ; -- -- ; -- ùPISTE.ECRIRE,<numero>,<premier secteur>,<nombre de secteur>,<drive>,<adresse du buffer> -- ; -- -- ; -- ùFORMATER,<piste>,<premier secteur>,<nombre de secteur>,<drive> -- ; -- -- ; -- ùFORMATAGE,<type de lecteur en decimal>,<numero du secteur>,<drive> -- ; -- -- ; -- VERSION 4.0 (C) J.P.B SYSTEM 1989 -- ; -- -- ; -------------------------------------------------------------------------------------------------------------- ; ORG &9600 ; Debut de l'assemblage LD HL,BUFFA LD BC,TABLE CALL KERNEL ; Definition des RSX LD HL,MESSA7 STYZ LD A,(HL) CP 255 RET Z CALL ECRIT INC HL JR STYZ BUFFA DEFS 4 TABLE DEFW SECTA JP RUNA ; Saut au programme 1 JP RUNB ; Saut au programme 2 JP RUNC ; Saut au programme 3 JP RUND ; Saut au programme 4 JP RUNE ; Saut au programme 5 JP RUNF ; Saut au programme 6 JP RUNG ; Saut au programme 7 SECTA DEFM "SECTEUR.LIR","E"+128 ; Definition du nom 1 DEFM "SECTEUR.ECRIR","E"+128 ; Definition du nom 2 DEFM "PISTE.LIR","E"+128 ; Definition du nom 3 DEFM "PISTE.ECRIR","E"+128 ; Definition du nom 4 DEFM "FORMATE","R"+128 ; Definition du nom 5 DEFM "FORMATAG","E"+128 ; Definition du nom 6 DEFM "HELP.DIS","C"+128 ; Definition du nom 7 RUNA CP 4 ; Verifie les 4 parametres JR Z,SUITE ERROR LD HL,MESSA1 ; Pas assez de parametres BOUCLE LD A,(HL) CP 255 RET Z CALL ECRIT INC HL JR BOUCLE SUITE CALL FETAR ; Debut de la premiere RSX JR INTERA FETAR LD A,(IX+7) ; Verification de l'exactitude des parametres CP 0 JP NZ,ERL3 LD A,(IX+3) CP 0 JP NZ,ERL1 LD A,(IX+5) CP 0 JP NZ,ERL2 LD A,(IX+2) CP 2 JR C,OUI JP ERL1 OUI LD A,(IX+4) CP 43 ; Piste de reference = 43 JR C,NON JP ERL2 NON RET INTERA LD H,(IX+1) ; Charge le buffer dans HL LD L,(IX+0) LD E,(IX+2) ; Charge le drive dans E LD D,(IX+4) ; Charge la piste dans D LD C,(IX+6) ; Charge le numero de secteur RST &18 ; Appel ROM7 READ SECTOR DEFW BOUTON RET ; Fin et retour BASIC MODE EQU &BC0E BORDURE EQU &BC38 ENCRE EQU &BC32 ECRIT EQU &BB5A KERNEL EQU &BCD1 RUNB CP 4 JR NZ,ERROR CALL FETAR ; Verifie l'exactitude des parametres LD H,(IX+1) LD L,(IX+0) LD E,(IX+2) LD D,(IX+4) LD C,(IX+6) RST &18 DEFW MALIN RET RUNC CALL VERI0 ; Verification des bons parametres CP 255 RET Z JR DEB0 RUND CALL VERI0 ; Verification des bons parametres CP 255 RET Z JR DEB1 VERI0 CP 5 ; Y-a-t-il assez de parametres JP NZ,ERROR LD A,(IX+9) CP 0 JP NZ,ERL2 LD A,(IX+8) CP 43 JR C,CAPS JP ERL2 CAPS LD A,(IX+7) CP 0 JP NZ,ERL3 LD A,(IX+5) CP 0 JP NZ,ERL4 LD A,(IX+3) CP 0 JP NZ,ERL1 LD A,(IX+2) CP 2 JR C,PLOT JP ERL1 PLOT RET ; Fin de la verification des erreurs DEB0 LD H,(IX+1) ; Adresse du buffer LD L,(IX+0) LD B,(IX+4) ; Nombre de secteur a lire LD D,(IX+8) ; Numero de piste LD E,(IX+2) ; Numero de drive LD C,(IX+6) ; Premier secteur a lire FOIN0 PUSH BC ; Sauvegarde les parametres dans la pile PUSH DE PUSH HL RST &18 DEFW BOUTON ; Appel ROM7 READ SECTOR POP HL ; Restore les parametres de la pile POP DE POP BC INC H ; Augmente le buffer de 512 octets INC H INC C ; Passe au secteur suivant DJNZ FOIN0 ; Tant que B<>0 RET DEB1 LD H,(IX+1) ; Adresse du buffer LD L,(IX+0) LD B,(IX+4) ; Nombre de secteur a lire LD D,(IX+8) ; Numero de piste LD E,(IX+2) ; Numero de drive LD C,(IX+6) ; Premier secteur a lire FOIN1 PUSH BC ; Sauvegarde les parametres dans la pile PUSH DE PUSH HL RST &18 DEFW MALIN ; Appel ROM7 WRITE SECTOR POP HL ; Restore les parametres de la pile POP DE POP BC INC H ; Augmente le buffer de 512 octets INC H INC C ; Passe au secteur suivant DJNZ FOIN1 ; Tant que B<>0 RET RUNE CP 4 ; Verifie le nombre adequat de parametres JP NZ,ERROR LD A,(IX+7) CP 0 JP NZ,ERL2 LD A,(IX+5) CP 0 JP NZ,ERL3 LD A,(IX+3) CP 0 JP NZ,ERL4 LD A,(IX+1) CP 0 JP NZ,ERL1 LD A,(IX+6) CP 84 ; Piste de reference JR C,VISSA JP ERL2 VISSA LD A,(IX+0) CP 2 JR C,VISSB JP ERL1 VISSB LD C,(IX+4) ; Creation de la table necessaire pour le formatage LD IY,TABLE1 LD B,(IX+2) ; Nombre de fois a repeter VISSC XOR A LD D,(IX+6) LD (IY+0),D LD (IY+1),A LD (IY+2),C LD A,2 ; Taille du secteur imposee 512 octets par secteur LD (IY+3),A INC C INC IY INC IY INC IY INC IY DJNZ VISSC ; Remplir toute la table LD D,(IX+6) ; Charge le numero de piste LD E,(IX+0) ; Charge le drive actif LD HL,TABLE1 RST &18 DEFW POST RET RUNF CP 3 ; Verifie le nombre adequat de parametres JP NZ,ERROR LD A,(IX+5) CP 0 JP NZ,ERL5 LD A,(IX+3) CP 0 JP NZ,ERL3 LD A,(IX+1) CP 0 JP NZ,ERL1 LD HL,VALUE LD A,(IX+4) CP &50 JR NZ,VALUE1 VALUE3 ADD A,2 LD (HL),A JR VALUE2 VALUE1 CP &28 JP NZ,ERL5 JR VALUE3 VALUE2 LD A,(IX+0) CP 2 JR C,OUF JP ERL1 OUF LD C,(IX+2) ; Commence a creer la table en fonction de la demande LD IY,TABLE2 LD B,5 VORT1 LD (IY+2),C INC C PUSH BC LD B,8 VORT6 INC IY DJNZ VORT6 POP BC DJNZ VORT1 LD C,(IX+2) LD B,5 VORT7 INC C DJNZ VORT7 LD IY,TABLE3 LD B,4 VORT8 LD (IY+2),C INC C PUSH BC LD B,8 VORT9 INC IY DJNZ VORT9 POP BC DJNZ VORT8 LD E,(IX+00) XOR A NOIR LD D,A ; Numero de piste compris entre 0 et 41 LD HL,TABLE2 LD IY,TABLE2 LD (IY+00),D LD (IY+4),D LD (IY+8),D LD (IY+12),D LD (IY+16),D LD (IY+20),D LD (IY+24),D LD (IY+28),D LD (IY+32),D PUSH AF PUSH HL PUSH DE RST &18 DEFW POST POP DE POP HL POP AF INC A DEFM &FE ; Code operation de CP xx VALUE DEFM &00 ; Piste de reference determine par IX+4 JR NZ,NOIR RET RUNG CP &00 ; Verifie aucun parametres JP NZ,ERROR XOR A PUSH AF ; Sauvegarde A et les flags PUSH AF INC A INC A CALL MODE ; Installe le mode POP AF ; Restitue A et les flags LD B,A LD C,B CALL BORDURE ; Installe la bordure POP AF LD B,A LD C,A PUSH AF CALL ENCRE ; Installe l'encre 0 POP AF INC A LD B,&1A LD C,&1A CALL ENCRE ; Installe l'encre 1 LD HL,MESSA6 SYSZ LD A,(HL) ; Charge dans A le contenu de CP &FF ; HL et incremente le pointeur RET Z ; jusqu'a la fin de l'ecriture CALL ECRIT INC HL JR SYSZ POST DEFM &52,&C6,&07 ; Adresse ROM7 FORMAT TRACK BOUTON DEFM &66,&C6,&07 ; Adresse ROM7 READ SECTOR MALIN DEFM &4E,&C6,&07 ; Adresse ROM7 WRITE SECTOR ERL1 LD HL,MESSA2 ; Message d'erreur drive JP BOUCLE ERL2 LD HL,MESSA3 ; Message d'erreur piste JP BOUCLE ERL3 LD HL,MESSA4 ; Message d'erreur secteur JP BOUCLE ERL4 LD HL,MESSA5 ; Message d'erreur secteur JP BOUCLE ERL5 LD HL,MESSA0 ; Message d'erreur lecteur JP BOUCLE MESSA0 DEFM "Type de lecteur errone" DEFM 255 MESSA1 DEFM "Nombre incorrect de parametres" DEFM 255 MESSA2 DEFM "Numero de drive errone " DEFM 255 MESSA3 DEFM "Numero de piste errone " DEFM 255 MESSA4 DEFM "Numero de secteur errone " DEFM 255 MESSA5 DEFM "Nombre de secteur errone " DEFM 255 MESSA6 DEFM 10 ; Message d'aide pour utilisateur DEFM " ",24,"DISC UTILITY V4.0",24,13,10 DEFM " ------------------",13,10,10 DEFM " ******************************",13,10 DEFM " ** (C) J.P.B SYSTEM 1989 **",13,10 DEFM " ******************************",13,10,10,10 DEFM "ùSECTEUR.LIRE,<numero>,<piste>,<drive>,<adresse du buffer>",13,10 DEFM "ùSECTEUR.ECRIRE,<numero>,<piste>,<drive>,<adresse du buffer>",13,10,10 DEFM "ùPISTE.LIRE,<numero>,<premier secteur>,<nbre secteur>,<drive>,<adresse buffer>",13,10 DEFM "ùPISTE.ECRIRE,<numero>,<premier secteur>,<nbre secteur>,<drive>,<adresse buffer>",13,10,10 DEFM "ùFORMATER,<piste>,<premier secteur>,<nombre de secteur>,<drive>",13,10 DEFM "ùFORMATAGE,<type de lecteur en decimal>,<numero du secteur>,<drive>",13,10,10,10 DEFM 255 MESSA7 DEFM 13,10," DISC UTILITY V4.0 Installed .",13,10,10 DEFM 255 TABLE2 DEFM 0,0,0,2 ; Emplacement reserve pour la table TABLE3 DEFM 0,0,0,2 DEFM 0,0,0,2 DEFM 0,0,0,2 DEFM 0,0,0,2 DEFM 0,0,0,2 DEFM 0,0,0,2 DEFM 0,0,0,2 DEFM 0,0,0,2 TABLE1 DEFM 0 ; Derniere table pour le formatage


Goto Top
CPC-POWER/CPCSOFTS, programming by Kukulcan © 2007-2021 all rights reserved.
Reproduction forbidden without any express authorization. All the game titles used belong to their respective owners.
Hébergement Web, Mail et serveurs de jeux haute performance