Cette routine est appelée par appui sur CTRL+W depuis le programme d'édition buffer . Sa structure est quasi identique au sous programme de lecture . Une seule différence fondamentale : Si la longueur ID est plus grande que la longueur réelle l'écriture du secteur détruira les IDS suivants . Une confirmation est donc demandée . ; ;- Routine ecriture physique - ; WRITPHY PUSH HL ;Préserver les paramètres édition buffer PUSH DE CALL FEN1 ;Fenetre pour affichages ; CALL WRITPAR ;Initialiser en écriture CALL PUTDEST ;Texte mettre disque destination LD A,(PISTW) ;Piste écriture devient LD (PISTSEL),A ;piste sélectionnée . CALL AFFPIST ;Afficher numéro piste CALL GOPIST1 ;Aller sur piste JR C,OKPIS1 ; CALL ERPFORM ;Si NC , il n'y à sans doute pas de disquette JR ABANDON1 ; OKPIS1 LD HL,(ADID) ;Récupérer zone IDS ecriture LD A,(COUNT) ;et la position physique du secteur lu ; FINDWRI DEC A ;Pointer l'ID écriture concerné JR Z,SECWRIT INC HL INC HL INC HL INC HL JR FINDWRI ; SECWRIT CALL IDTRANS4 ;Copier les IDS dans QUATRID LD A,(QUATRID+2) LD (DERSEC),A ;1 seul secteur à écrire CALL DIFLENL ;Voir si LS ID > LS réel JR C,LENINF JR Z,LENINF ; LD HL,TECRASE ;Si oui . Avertir et confirmer écrasement CALL PRT CALL OUNO JP NC,ABANDON2 ; LENINF LD A,(COUNT) ;COUNT contient le numéro d'ordre du secteur CP 1 ;a lire CALL NZ,VISESEC ;Si ce n'est pas le premier , viser juste ; LD HL,(POINTER) ;Zone de stockage des états lecture LD A,(HL) AND %00001000 ;Tester si CM a été détecté et écrire LD A,#45 ;selon CM ou non . JR Z,NOWCM LD A,#49 NOWCM LD HL,WRITFDC ;Commande écrire buffer sur disque . CALL SETCOM2 ; LD HL,20000 ;Restaurer adresse d'origine du buffer LD (ADBUFF),HL CALL INSTRSEC ;Ecrire sur disque ; CALL AFFRESW ;Afficher statuts ecriture ABANDON2 LD A,(VRAILEN) ;Restaurer vraie longueur LD (LENSEC),A CALL SOURCE ;Reprendre les parametres source pour ; ;prochaine lecture ; ABANDON1 CALL FENBUF1 ;Restaurer fene^tre buffer POP DE ;Et récupérer paramètres édition POP HL RET ; ;- Afficher resultats ecriture - ; AFFRESW CALL EFFLB1 ;Effacer lignes du bas CALL DEUXNB ;Initialiser conversions 2 chiffres ; LD HL,TWSECT CALL PRT LD B,4 LD HL,QUATRID ;Afficher IDS écrits BCLWSE LD A,(HL) CALL PRTHEX1 INC HL DJNZ BCLWSE ; LD HL,TWDR CALL PRT LD A,(DRSELEC) ;Drive écriture ADD A,#41 CALL #BB5A ; LD HL,TWPIST CALL PRT LD A,(PISTSEL) ;Piste écriture CALL PRTDECIA CALL CINQNB ; CALL TSTERRS LD HL,TWERR CALL PRT CALL PRT3ERR ;Erreurs écriture ; LD HL,TOCWRIT CALL PRT LD HL,(NBLUS) ;Nombre d'octets effectivement écrits LD (VALEUR),HL CALL DEUCON16 LD IY,#2518 CALL AFFRESU ;Afficher ET1-ET2-ET3 ; LD A,7 CALL #BB5A ;Bip et attendre touche JP #BB06 ; ;- Textes et variables en rapport avec LITPHY et WRITPHY - ; TWSECT DB 31,2,22,24," ECRITURE SECTEUR : ",24," "+#80 TLDR DB " " TWDR DB " ",24," DRIVE : ",24," "+#80 TWPIST DB " ",24," PISTE : ",24," "+#80 TWERR DB 31,2,23,24," ERREURS ECRITURE : ",24," "+#80 TOCWRIT DB 31,2,24,24," OCTETS ECRITS : ",24," "+#80 TECRASE DB 31,2,22,20,24," ATTENTION !! SECTEUR > QUE TAILLE FORMAT !" DB " ECRASEMENT ",24," ",7+#80 ; TLITPHY DB 31,2,22,24," Secteur : ",24," ","&"+#80 TLITPH1 DB 31,20,22,24," - Position sur la piste : ",24," "+#80 TLITPH2 DB 31,52,22,24," - Octets lus : ",24," ","&"+#80 TLITPH3 DB 31,2,23,24," Taille ID : ",24," ",32+#80 TLITPH4 DB 31,20,23,24," - Taille reelle : ",24," "+#80 TLITPH5 DB 31,2,24,24," Etat d'erreur : ",24," "+#80 POINTID DW 0 STATANA DB 0 FLAGPHY DB #FF TREPROD DB 31,2,22,24," Reproduire format ? (O/N) ",24,7,18+#80 TOUPIST DB 31,2,22,18,"Donner numéro piste pour ecriture ? ",7+#80 TCOPDRV DB 31,2,21,24," Placer disquette destination dans : ",24," A" DB 7,10,13+#80 TIDCONF DB 31,2,21,24," Conformer IDS Piste ? (O/N)",24,7,18+#80 TREMET DB 31,2,21,24," Remettre disquette source dans : ",24," A",7,#80 FLAGREP DB 0 T0 DB 239,210,185,163,144,126,110,96,83,71,59,50,38,31,24,17,10,3 T1 DB 216,171,134,102,74,49,16,8 T2 DB 230,129,50 T3 DB 191 IDSLECT DS 4 ADID DW 0 ;SOS Programmeurs n°3
★ AMSTRAD CPC ★ DOWNLOAD ★ |
|
CPCrulez[Content Management System] v8.7-desktop/c Page créée en 339 millisecondes et consultée 1845 foisL'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko. |
|
|