Sencilla Guía para utilizar Turbo Pascal 3 en CP/M v2.2 ¡en un CPC!

Avatar de Usuario
ron
Mensajes: 18343
Registrado: 28 Oct 2010 14:20
Ubicación: retrocrypta
Agradecido : 1530 veces
Agradecimiento recibido: 1291 veces

Sencilla Guía para utilizar Turbo Pascal 3 en CP/M v2.2 ¡en un CPC!

Mensajepor ron » 09 Dic 2010 23:30


Vaya, pedazo de texto que he encontrado en internet buscando recursos sobre el Turbo Pascal en CP/M

http://turpas3.angelfire.com/Sp/readme.txt



Sencilla Guía para utilizar Turbo Pascal 3 en CP/M v2.2 ¡en un CPC!


Muy bien, tengo todas estas cosas en mi sitio, puedo verlo en el navegador, así que voy a ejecutarlo y a jugar un rato con él, aunque no se qué tengo que hacer o las cosas que tengo no funcionan con esto –  espero que tengas un emulador de CPC o de lo contrario esta va a ser una larga noche! :-o

Bueno, debo hacer hincapié en que los programas '.pas' de mi sitio son específicos de Turbo Pascal 3 – para conseguir esta versión Pascal aquí hay varios sitios donde puedes conseguirlo (sólo una copia hará que no lo tengas que descargar dos veces) – hay también otros sitios:

http://www.cantrell.org.uk/mirrors/ftp.nvg.ntnu.no/pub/cpc/utils/cpc/turbopas.zip
ftp://ftp.nvg.unit.no/utils/cpc/turbopas.zip

Existen otras versiones de Pascal para la gama Amstrad CPC (HiSoft Pascal es el que se me ocurre, pero seguramente haya unos cuantos más que este), aunque aún con estas versiones -necesitarás- Turbo Pascal 3 para ejecutar todos mis programas.

La sencilla razón por la que hago hincapié en el uso de Turbo Pascal es porque los programas están escritos para ser ejecutados bajo CP/M v2.2 y en algunos casos CP/M Plus. Algunos de los códigos genéricos que uso creo que pueden ejecutarse en otros sistemas y podrían funcionar bajo otros compiladores de Pascal en un CPC aunque no lo garantizo, ya que no lo he probado. Los ejemplos que os presento aquí quizá solo tengan instrucciones exclusivas de TP, aunque TP añade instrucciones adicionales sobre código de Pascal genérico – que de alguna manera es un fastidio.

Así que tienes el disco de Turbo Pascal o su imagen (.dsk file) y un emulador (yo utilizo Caprice aunque Winape debería ir bien, o CPCEMU si tu prefieres ese).

Sólo tienes que introducir la imagen de disco en la unidad 'A' en el emulador que quieras o introducir el disco en la unidad 'A' si tienes un CPC real (en este caso espero que tengas una unidad 'B' porque es ahí donde yo introduzco el disco con los programas en Pascal – los emuladores evitan este problema porque ya tienes una unidad 'B'!).

Creo que otro dilema para la gente es que tengo los programas en mi sitio pero no en una imagen de disco lista para ser introducida en un Emulador con Turbo Pascal listo para Compilar y ejecutar: al crear este pequeño sitio quise que los archivos se pudieran mostrar fácilmente y hay por ahí programas (CPCFS y CPCXFS) que permiten introducirlos en una imagen de disco.

Otra posibilidad (para gente que no quiere teclear los programas) es, si tienen un emulador como CPCEMU, poner el archivo en el directorio tape y usar un programa como JL-COPY (que debería estar en los sitios arriba mencionados, en el mismo directorio) para transferirlo a disco (son sólo archivos de texto).

Si aún así la gente no está conforme hablaré con Kev Thacker y veré si no le importa alojar una imagen de disco de mis programas en Pascal.

Bien, tienes Turbo Pascal (unidad A), los programas en un disco en la unidad B, ¿¿y ahora qué??

Vamos a arrancar Turbo Pascal, para hacerlo teclea |CPM

A continuación aparecerá un mensaje 'CP/M 2.2 ----- Turbo Pascal' y 'A>turbo'
seguido de un cursor -> simplemente pulsa Enter.

Ahora se muestra el mensaje 'Include error messages (Y/N)?' – yo normalmente contesto 'Y'. Si tecleas 'N' y tecleas tú mismo los programas y te equivocas sólo puedo insistir en que deberías haber grabado tu programa primero. Siempre es mejor decir Sí, a pesar de que tenga que cargar un archivo de errores (que utiliza un poco de memoria): todos mis programas funcionarán aún cuando el archivo de mensajes de error esté en memoria.

Ahora vamos con el Menú Principal que es desde donde accedes a todo tipo de cosas
– cargar tus archivos, grabarlos, compilar, ejecutar, editar – que te manda al editor, así como las opciones del compilador, etc. Si quieres teclear mi programa Pascal, quizá sea mejor tener una imagen de disco en blanco en la unidad B, pulsa [L] para la entrar en la Unidad activa y entonces [E] para Editar. Al pulsar [E] te preguntará por un nombre para el programa – tal vez lo más sencillo sea utilizar el mismo nombre (si aún lo tienes) del programa que imprimiste desde mi página – aunque no es importante realmente, sólo es el nombre con el que llamarás al archivo. Tras esto ya puedes empezar a escribir en ese programa.

Si en cambio, tienes un disco con los programas en Pascal en la Unidad B entonces en el Menú Principal en 'Logged drive' pulsa [L] y especifica para Unidad B.

Con el fin de que saber qué programa ejecutar necesitaras un Listado del Directorio
– pulsa [D] en el Menú Principal y en 'Dir Mask:' escribe '*.pas' lo que mostrará
todos los archivos en Pascal (asumiendo que tienen esa extensión '.pas').

Para cargar uno de ellos pulsa [W] para 'Work file' y en 'Work file name:'
escribe el nombre completo de uno de los archivos '.pas' (p.e. 'Printhex.pas')

Para ver y editar ese archivo pulsa [E] lo que te mandará al editor.

AHORA, para salir del editor pulsa [CTRL]+[K] seguido de [D] lo que mostrará el
prompt '>' , pulsando entonces cualquiera de las teclas del cursor o Enter nos
devolverá al Menú Principal de nuevo.

Para ejecutar ese programa pulsa [R] – el programa se compilará primero y se ejecutará, o se ejecutará directamente dependiendo de si se compiló o no previamente
(una segunda ejecución lo ejecutará instantáneamente sin compilarlo de nuevo), una vez que termine en el prompt '>', presionando Enter o cualquiera de las teclas del
cursor nos llevará al Menú Principal.

Para Compilar el programa a un archivo '.COM' de  CP/M selecciona [O] para 'compiler Options', y entonces selecciona [C] para archivo COM. Luego [Q] para Quitar y para generar ese archivo pulsa [C] para compilarlo (a Disco o imagen de Disco).



Bien, ahora algunos de vosotros probablemente estéis pensando en que yo he hecho todo estoy y he creado este archivo para ayudar a la gente a usar Turbo Pascal 3 en CP/M ¿¡¿Por qué?!?

El por qué yo he hecho esta guía es quizá debido a que tenía un pequeño sitio con algunos programas en Turbo Pascal y pensé que podría ser beneficioso para alguien interesado o que hubiera visitado mi sitio numerosas veces aunque sólo viera un puñado de programas sin instrucciones sobre cómo usarlos. Una sencilla guía para ayudar a quién que quiera usar Turbo Pascal es mejor que ninguna, o intentar encontrar algún otro sitio con el Manual de Turbo Pascal 3 o un Tutorial de TP 3 ¡el cual yo aún no he podido encontrar! :-o

¿Por qué Turbo Pascal y CP/M??

Razones mayormente personales – Comencé a aprender Turbo Pascal (o Pascal en un Mac), aunque he estado utilizándolo en PC en DOS (sería TP 7 o similar). Hace algunos años (2000-2002) estuve portando programas de TP escritos en versiones posteriores de TP para TP 3 – Tuve TP 3 en un antiguo IBM XT (versión PC-DOS que venía con todos los extras) y comencé a jugar con CP/M en 1999 tras despertarse mi interés mientras hacía un curso de Diplomado en Tecnología (Computación) – ¡que nunca terminé! En el 99 conseguí un disco de arranque de CP/M-86 v1.1 para el IBM PC/XT que había sido parcheado para funcionar en procesadores posteriores y una cantidad de trabajo para hacer CP/M entrar en el siglo XXI con la capacidad de utilizar disquetes de 1.44Mb y un programa de RAMDisk que permitía usar la memoria extendida como un RAMDisk – Yo tuve un portátil basado en 386 con 4Mb. Sobre los 640 con los que se conformaba CP/M, 4Mb era un tamaño enorme para él.

Así que por mero interés tuve el placer de convertir programas tipo DOS y hasta tenerlos funcionando en CP/M-86! :D

CP/M no es más que el Sistema Operativo para el que Turbo Pascal está disponible – la versión 3 es la última. Sospecho que las únicas personas que realmente saben por qué TP se encuentra solamente en CP/M son la gente de Borland, aunque supongo que el predominio de CP/M en todo tipo de sistemas en los 80 y el número de diferentes procesadores para los que se encontraba CP/M (no sólo ordenadores de 8bits) tuvo algo que ver en hacer Turbo Pascal ampliamente disponible para un gran número de usuarios.

¿Y CPC??

Bueno, el CPC es algo que he tenido desde niño – aún poseo un  CPC6128, aunque tiendo a jugar con los emuladores un poco. CP/M-86 v1.1 (que es lo mismo que CP/M v2.2 en un 8bit) me permitió hacer un montón de bonitas cosas que el IBM tenía en su arsenal – sobre todo interrupciones hardware ¡que podrían haberse usado tanto en DOS como en CP/M-86! Permitió a alguien hacer un programa con el hardware apropiado para hacer que se vea moderno con cosas como Juegos, Videos deslumbrantes, etc. Así que, cuando descubrí que CP/M v2.2 era capaz de de acceder al Firmware en un CPC, ¡me enganché! :D Por supuesto, escribir código como éste significa que realmente dependes del ordenador mismo y que otra máquina corriendo CP/M v2.2 no necesariamente podrá ejecutar ese código. He tratado de ser prudente documentando qué código que afecta al CPC y cuál debería funcionar bajo CP/M v2.2 (o CP/M-80, como dicen algunos) usando TP 3 en un sistema diferente. Sí, seguramente estoy rompiendo todas aquellas reglas sobre la portabilidad de programas de CP/M, aunque he intentado aportar algo para todos y al mismo tiempo crear un pequeño punto para programas de CPC bajo CP/M – no
he visto ningún otro sitio que haga esto.

Supongo que mi legado en esto es también algo personal, fui llevado a creer que CP/M era basura por algunas revistas de CPC (no voy a nombrarlas aunque probablemente ya sepas de qué hablo) y fue una vez bautizado como el “¡programa para formatear disquetes!” o algo por estilo, ¡para ellos BASIC era lo normal!

Durante años sentí que CP/M tenía errores y no podía hacerle funcionar pero no eran más que obstáculos para mí, para tratar de entenderlo mejor. En CP/M v2.2 necesitas [CTRL]+[C] cuando cambias los discos, por ejemplo (lo mismo se aplica en CP/M-86 v1.1), pero no es muy preocupante y es algo a lo que me he acostumbrado. El interfaz de programa Turbo Pascal en sí mismo es muy crudo en CP/M y creo que necesitarás GSX si quieres gráficos, aunque con el firmware en juego, puedes hacer rápidamente todo eso y más, con color - la otra posibilidad es usar los códigos de control en instrucciones 'Write' (el equivalente en Pascal de 'Print'), así con el firmware en su sitio los programas en Turbo Pascal rápidamente serán comparables con programas de Locomotive BASIC.

El Locomotive BASIC tiene una clara ventaja, que yo haya encontrado, sobre Turbo Pascal y es la capacidad de calcular soluciones matemáticas rápidamente y mostrar los resultados antes (así por ejemplo un simple círculo calculado en BASIC tarda bastante menos tiempo que el programa equivalente en Turbo Pascal), la principal razón de esto es porque el BASIC es un lenguaje interpretado y por ello lleva incorporada una tabla que le permite obtener respuestas más rápidas – Turbo Pascal es un lenguaje compilado y no la tiene. La mejor manera de evitar un problema como este en Turbo Pascal es utilizar una matriz y simplemente dar las respuestas desde allí cuando se pregunte por ellas, de esta manera he descubierto que los programas en Turbo Pascal se ejecutan bastante más rápido cuando se usan matrices de constantes.



De todos modos, esto es todo lo que me viene a la mente de momento. Si tienes más  preguntas, sencillamente escríbeme a: cpm22_user@yahoo.com. Exactamente cuán lejos se puede ir en términos de producir algo en Turbo Pascal es una conjetura incluso para mí – la capacidad de incorporar Código Máquina en el interior del programa (como hago en algunos de mis ejemplos) hace posible crear algo 'cercano' a calidad comercial. Lo que me gusta de Turbo Pascal 3 es la capacidad de producir archivos '.com' mientras que el Locomotive BASIC no puede hacerlo sin la ayuda de programas de terceros.


Volver a “Lenguajes de Programación y herramientas Dev”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado