Skip to content

💾 An old HP48 archive manager & Xmodem transfer tool that I wrote in Turbo Pascal under DOS in the 90s.

Notifications You must be signed in to change notification settings

karl-rousseau/HP48desktop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HP48 Desktop

Historique

UART 8250 RS232 cable

Ce vieux projet sous DOS a été fait à l'époque pour plusieurs raisons:

  • il était difficile de classer toutes les archives du calculateur HP-48S/Sx/G/Gx
  • avec l'utilisation du protocole KERMIT sur le port série RS232, la vitesse de transfert était vraiment trop lente
  • et il y avait beaucoup trop de manipulations pour enchaîner plusieurs fichiers à la suite
Comme ELENDRIL et d'autres développeurs, avaient sorti une lib HP48 pour faire des transferts en Xmodem
alors je me suis décidé à inclure cette fonctionnalité sous DOS en PASCAL + ASM.
A cette époque, je n'avais pas accès à un système de base de données
alors je me suis créé mon propre format.

L'inspiration du moment était:

  • les écrans des BBS en ASCII ART sous l'éditeur d'écrans DOS TheDraw, affichés via ANSI.SYS
  • le design ASCII des écrans avec "highlighted key shortcuts" à la sauce Borland Turbo Vision
  • les couleurs EGA de l'époque en mode texte 80x25 ou 80x43
  • l'animation (ici de tri des fiches) suivant la même logique que l'outil de défragmentation DOS Norton Speed Disk

Fonctionnalités

Hardware

Le logiciel se base sur les composants de l'époque que l'on trouvait sur IBM/PC/XT/AT et les clônes x86.

Gestionnaire du port série RS232 Controlleur d'IRQ
UART 8250 Intel 8259
uart 8250 intel 8259

Voici un diagramme simple des entrées/sorties de l'UART: UART I/O

et utilisé dans le code suivant ces registres:

Base Address I/O Access Abbrv. Register Name
+0 Write THR Transmitter Holding Buffer
+0 Read RBR Receiver Buffer
+1 Read/Write IER Interrupt Enable Register
+2 Read IIR Interrupt Identification Register
+2 Write FCR FIFO Control Register
+3 Read/Write LCR Line Control Register
+4 Read/Write MCR Modem Control Register
+5 Read LSR Line Status Register
+6 Read MSR Modem Status Register
+7 Read/Write SR Scratch Register

Software

L'écran principal contient à gauche, une colonne de fichiers, du répertoire en cours. En haut et au milieu de l'écran, il y a un résumé de l'état actuel. Et sur la partie restante, on a accès à une fenêtre de dialogue ou d'affichage

F1: l'écran d'aide et F1 pour la suite de l'aide ...
screenshot1 screenshot2
ALT-C pour le paramétrage général ALT-R pour la recherche & l'édition de fiche
screenshot3 screenshot4
des statistiques ... avec des stats sur les libs ...
screenshot5 screenshot6
le choix des tris le tri des fiches ...
screenshot7 screenshot8
le tri type défragmenteur ... le transfert Xmodem ...
screenshot9 screenshot10

Status

  • l'éxecutable avec runtime intégré (type "all in one"), est fait pour tenir facilement sur disquette 💾
  • sans aucune modification, il tourne sans problème sous DOSemu (ici v0.74) ou BOXER sous MacOS. Il semble qu'il manque certains "extended character" (aka VGA CP437) dans le rendu de DOSbox que l'on doit pouvoir corriger en installant des fichiers EGAxx.CPI ou FreeDOS mode.com + des codepages *.CPX. Ici le rendu en fonte TTF.
  • le patch Turbo Pascal de la lib CRT ne semble pas nécessaire.
  • des fonctionnalités comme un éditeur d'images (au format GROB) ou de binaires, n'ont jamais été finalisé.
  • avec un peu de patience, il doit être possible de porter (en enlevant le code ASM) le tout sous LAZARUS pour avoir un éxecutable pour LINUX ou MacOS 👍
  • mais de nos jours, on peut facilement refaire ce programme en Python (marcherait même sur RaspberryPi) ou en application JavaScript via l'API CHROME Serial ❤️
  • il faut aussi noter que depuis cette période, il y a eu des outils sous Microsoft Windows via le logiciel Hewlett Packard Connectivity Software aka ConnX v4 et un cable USB: https://www.youtube.com/watch?v=3O_TjRwsmjs

References

About

💾 An old HP48 archive manager & Xmodem transfer tool that I wrote in Turbo Pascal under DOS in the 90s.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published