APPLICATIONSDISQUE ★ DISKCUT (AMSTRAD SEMANAL) ★

DISKCUT: Cómo hacer mil diabluras con su discoDISKCUT: ¿Cómo hacer mil diabluras con su disco? (y II)
★ Ce texte vous est présenté dans sa version originale ★ 
 ★ This text is presented to you in its original version ★ 
 ★ Este texto se presenta en su versión original ★ 
 ★ Dieser Text wird in seiner Originalfassung präsentiert ★ 

Los discos, a pesar de ser el soporte para almacenar información más fiable que se conoce por el momento, de vez en cuando falla, se niega a funcionar o, aún peor, de mottu propio o por descuido nuestro desaparecen de su interior archivos conteniendo información crucial. Pensando en todos estos problemas, nuestro colaborador Alberto Suñer ha diseñado un magnifico programa que permite hacer de todo con el disco de un CPC.

Aquién no se le ha borrado accidentalmente algún programa que estaba almacenado en el disco, y que precisamente era el de mayor importancia para nosotros en el momento de ir a cargarlo sin éxito.

Esto por supuesto nos ha pasado a la mayoría de los que utilizamos continuamente la unidad de disco, y a los más despistados seguramente le habrá ocurrido en más de una ocasión, lo cual supone en la mayoría de los casos muchas horas extras de trabajo.

Dado que yo me encuentro entre los últimos citados, he pensado que esto no podía continuar, ya que de lo contrario únicamente trabajaría para rehacer lo hecho el día anterior.

Así pues, me he dedicado a investigar el directorio del disco, consiguiendo averiguar muchas de las interioridades que éste nos esconde.
Desvelaremos con este artículo uno de los grandes misterios con que nos encontramos todos aquellos que estamos acostumbrados a trabajar con ordenadores Amstrad con unidad de disco incorporada.

Veremos cómo se almacenan en el disco los programas que nosotros grabamos desde Basic, y la forma en que se guarda la información.

En primer lugar, hemos de decir que cuando se formatea un disco, éste consta de diversas pistas, cada una de las cuales contiene determinados sectores.

De estos últimos, cuatro se reservan para el directorio del disco, del cual nos ocuparemos en el presente artículo.

Cada uno de los sectores del disco es capaz de almacenar 512 bytes, así pues disponemos de un directorio de 2.048 bytes, en el cual se almacena la información para cada uno de los distintos programas grabados en el disco.

Cada programa tiene reservado un espacio de 32 bytes, en los cuales se indica el nombre del programa, el tipo, etc.

De esta forma se podrán almacenar como máximo 64 programas, ya que éstos ocuparán el espacio total reservado para el directorio. Así, si en un disco ya tenemos ocupado el espacio reservado para el directorio e intentamos salvar uno nuevo, nos aparecerá el mensaje:

DIRECTORY FULL

Lo cual nos indicará que tenemos el directorio del disco lleno, por lo que no podremos almacenar ese nuevo programa. Así pues aunque en un disco aún se tenga espacio disponible, no se podrá almacenar nada más, ya que en el directorio no se dispone de espacio.

Para cada formato el número correspondiente los sectores varía, siendo dichos valores los que s indican a continuación:

  • Formato sistema . . 9 sectores en cada pista números del 65 al 73.
  • Formato Data .... 9 sectores en cada pista números del 193 al 201.
  • Formato IBM ..... 8 sectores en cada pista números del 1 al 8.

Vamos a ver a continuación algunos de los datos más importantes que se almacenan en dicho directorio.

Byte 0.— Este byte indica el número de usuario al que pertenece dicho programa. Dado que normalmente se trabaja con usuario cero, este valor será cero.

Ahora bien, si nosotros ejecutamos la orden:

|USER,5

y a continuación salvamos un programa, el byte 0 del directorio correspondiente al mismo contendrá el valor cero.

Además del usuario, este byte nos indicará si un programa se encuentra en el directorio o no, es decir, si se ha borrado o bien aun permanece intacto.

En caso de que el programa se hubiera borrado, utilizando la orden:

|ERA,“nombre”

en dicho bytte aparecería el valor #E5.
  • Fichero en directorio ... byte 0.- valor del 1 al 15
  • Fichero borrado....... byte 0.- valor #E5

Bytes 1-8.— Estos ocho bytes se utilizan para almacenar el nombre del programa, en caso de que la cadena correspondiente al mismo tuviera menos de ocho caracteres, los restantes se rellenarían con el código del carácter “espacio”, es decir, el 32.

Bytes 9-11.— En estos tres bytes, se almacena la información correspondiente a la extensión del programa. Pero, además, cada uno de ellos nos ofrece una información adicional.

Si la cadena correspondiente a la extensión tuviera menos de tres caracteres, los restantes se rellenarían con el código ACII del carácter “espacio”.

Byte 9.— El byte 9, correspondiente al primer código de la extensión, nos indicará si dicho programa es de sólo lectura o bien de lectura y escritura.

Normalmente cuando salvamos cualquier programa en disco, éste se almacena en forma de lectura/escritura, es decir, que se puede cargar en memoria o bien se puede salvar otro programa con el mismo nombre, con lo cual perderíamos el
contenido del actual, o bien se le coloca la etiqueta BAK.

En este caso el byte 9, correspondiente a dicho programa, contendría el valor ASCII perteneciente al primer carácter de la extensión.

En caso de que el programa sea de sólo lectura, esto indicará que si deseamos almacenar en el disco un programa con el mismo nombre, no se nos aceptará, ya que éste únicamente se podrá cargar en memoria.

Si esto fuera así, significaría que el byte 9 correspondiente a dicho carácter, contedría el código ASCII del primer carácter correspondiente a la extensión, pero además tendría puesto a uno el byte 8.

  • Lectura/escritura byte 9—código ASCII del primer carácter de la extensión
  • Sólo lectura byte 9—código ASCII del primer carácter de la extensión + 128

BYTE 10.— Este byte, además de contener el segundo carácter correspondiente a la extensión, nos indicará si dicho programa debe ser visible en el directorio o bien únicamente será visible para el sistema, en cuyo caso no aparecerá cuando efectuemos un CAT.

En el primer caso dicho byte contendría el valor ASCII del segundo carácter de la cadena correspondiente a la extensión, por el contrario, ese byte contedría dicho valor más 128.

  • Directorio byte 10.—código ASCII del segundo carácter de la extensión
  • Sistema byte 10.—código ASCII del segundo carácter de la extensión + 128

Debemos tener en cuenta que cada espacio de 32 bytes del directorio, no significa necesariamente que almacene la información para un programa, ya que en dicho espacio se guarda la información para 16 K de datos.

Así pues, para programas menores de 16 K, únicamente ocuparemos el espacio citado anteriormente, en caso de que el programa almacenado sea de longitud superior, entonces se ocuparán dos espacios de directorio.

De esta forma un programa de 17 K, por ejemplo, ocupará 64 bytes del directorio, es decir, 32 espacios para un bloque de 16 K y otros tantos para el otro bloque de 1 K.

Por lo tanto, cuanto más extenso sea un programa, mayor espacio de directorio ocupará.

No debemos asombrarnos si aparece el mensaje  directory full, aun cuando no se encuentre en dicho disco los 64 programas que como hemos dicho anteriormente, se pueden almacenar en un mismo disco.

El programa que os vamos a ofrecer no sólo nos dará la posibilidad, como hemos dicho anteriormente, de recuperar ficheros borrados accidentalmente, sino que contiene una serie de opciones que nos resultarán muy interesantes.

Para ello él mismo consta de un bloque de Basic que será el encargado de facilitarnos la elección de cada una de las opciones y otro bloque en Código Máquina que será realmente el que trabajará sobre el disco.

La información necesaria para poder sacar todo el partido al directorio del disco a través de nuestro programa, os la ofreceremos en el siguiente artículo, donde os explicaremos cómo utilizar el programa, y cada uno de los apartados de que consta el mismo.

AS

★ PUBLISHERS: Hobby Press , Amstrad Semanal
★ YEAR: 1987
★ CONFIG: 64K + AMSDOS
★ LANGUAGE:
★ LiCENCE: LISTING
★ COLLECTION: AMSTRAD SEMANAL 1987
★ AUTHOR: Alberto SUÑER
 



★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listing:
 » Diskcut    (Amstrad  Semanal)    SPANISH    LISTINGDATE: 2026-07-05
DL: 0
TYPE: PDF
SiZE: 1224Ko
NOTE: Supplied by archive.org ; 4 pages/PDFlib v1.6

★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Applications » Récupérez vos programmes ou fichiers protégés (Amstrad Magazine)
» Applications » Desproteger programas en Basic (Amstrad Semanal)
Je participe au site:
» Pour ce titre nous ne disposons de fichier executable sur CPC (Dump, Saisie du listing) , alors si vous avez ça dans vos cartons ou vous désirez usé vos petit doigts boudinés sur votre clavier faites le nous savoir.
» Vous avez des infos personnel ?
» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.732-desktop
Page créée en 799 millisecondes et consultée 10 fois

L'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.