convergence

Journal

orgams-0811.hfe propose :

  • un source d'exemple conséquence 'yap.o
  • l'affichage du temps d'assemblage !
  • navigation plus rapide
  • raccourci pour sauter de "CALL bidulle" à "bidulle" en 1 coup de cuillère à pot.
  • des erreurs corrigées.

orgams-0727.hfe inclue :

  • elines.o (source fonctionnel. Ouvrir CONTROL-O, exécuter CONTROL-2)
  • ed5.s + ROMs mises à jour : import source DAMS !

orgams-0714.hfe inclue :

  • ed2.s (version actualisée, avec les bugs du jour)
  • test.txt (source ascii bidon, à importer avec CONTROL-I)

Avertissements

Installer les ROMs avant toute chose (#BURN.BAS)
Pour l'instant tous les emplacements se voient figés par arrêté municipal :

  • ROM 12 pour Monogams (Trace, Désassembleur)
  • ROM 11 pour Orgams (Editeur+Assembleur)
  • Bank #CF comme bank principale de travail (version ROM)
  • (=#C7 si pas d'extension RAM)

MON5.S (version patchée de Trace05.S)

Avertissements

Manque :

  • Gestion des instructions outi/otir/outd/otdr et les équivalents in
  • Plein d'autres choses.

Jouons avec

Pokons RST 6 suivi de RST 0 :
poke &4000,&F7:poke &4000,&C7
call &4000
On s'apprête donc à tracer RST 0. On appuie sur S pour tracer pas à pas. On observe avec joie la commutation LROM.
Si on appuie sur R, on entre en mode rapide jusqu'au retour de la routine. Comme c'est sans retour et qu'il y a RESET de la pile, on re-bascule en pas à pas de manière un peu arbitraire. En re-appuyant sur 'R', on admirera tout ébaubi la réinitialisation CPC s'exécuter en mode émulation. On appuie alors sur ESC pour repasser en pas à pas.

Notes

  • Flag :
    • inRom=0 assemble en RAM pour developpement et tests
    • inRom=1 installe en ROM (pour l'instant, FIXE à 12)
    • Dans les deux cas, on utilise la fonte en ROM.

Sauf oubli, les changements dans le source se voient précédés de labels (mad1 à mad8).

Ajouts

  • Sauvegarde source+dams dans RAM supplémentaire. Pour rétablir : call #BE80

Modifications

  • Version ROM (point d'entree E000)
    • Appelée avec pile dans bank de travail.
    • On ne sauvegarde rien. La routine appelante s'en charge.
  • Buffers en bank (defs n marche moins bien pour une ROM !)
  • Effaçage écran plus rapide et sans lecture (sinon on copie ROM).
  • ctxtLDIR renommé copyHere (le comportement n'est plus tout à fait identique à LDIR, on prend C=longueur avec 0 pour 256).

Suppressions :

  • Flag autoRom (plus besoin de charger la fonte).
  • ini_ga : ne s'occupe plus des connexions RAM/ROM.

ED1.S (version patchée de orgams.s)

Avertissements

  • La lecture/sauvegarde ne marche pas ! Il faut passer par l'import/export ASCII.
  • Il manque l'assemblage ! Gênant.
  • Pas de version ROM pour l'instant (mais nécessite les routines en ROM 11 et 12).
  • Le report des lignes erronées est désactivé. Mais on détecte toute de même de telles lignes car elles sont laissées en l'état, tandis que les autres se voient tabulées et passées en majuscule.

Jouons avec

m#9000
g ed2.s
a, j

Modifications

Renommage "orgams.s" en "ed2.s" :

  • orgams c'est un peu vague.
  • ed : court à taper.
  • numérotation : bien mieux que CPOLD.

Dans le source :

  • mad1: Plus rien à charger, mais ROM 11 & 12 doivent être installées.
  • mad2: Change doc oGetLine : NC pour EndOfFile.
  • !!Warning : les autres docs ne sont pas bien à jour.
  • mad4: Connection ROM + detection remplace connexion bank.
  • mad5: Désactive check erreur (TODO : mettre gestion au propre)
  • mad6: Idem. Et EOF == nc.
  • mad7: "Import" : utilise routines rapides et corrige bug (Dans les fichiers ASCII, c'est 0D,0A la marque de fin de ligne, pas 00).
  • mad8: "Export" : idem.
  • IO_2K: Passe en #4100
  • TAB: c'est 9 (respecte code ASCII).
  • mad9: optimise routine d'affichage.

Ajouts

  • mad3: Routines chargement rapide "ASCII".
  • BUF_TMP: Utilisé pour IMPORT/EXPORT. TODO: se servir de BUF_LINE à la place quand ce dernier sera aligné.

Suppressions

  • L'éditeur ne connecte plus lui-même la banque de travail.
  • INIT: Pas besoin de CLS après MODE 2.
  • INIT: Pas besoin de reset position curseur (fait dans START)
  • INIT: Plus besoin de message de chargement
  • MAIN: Plus besoin de CLS,
  • MAIN: Pas besoin de reset position curseur (fait dans START)
  • Toutes les routines listées dans SHORT_KB : pas besoin de sauvegarder les registres. C'est une fausse sécurité, trompeuse.
  • INIT_ROM: on ne copie plus la fonte depuis la ROM. On l'utilise directement en ROM !
  • LOAD_MSG: supprimé.
  • FNTSTRAT & FNTEND: supprimé.
  • DATA2K: supprimé
  • USE_ROM: supprimé

Warning

BUF_LINE et BUF_NUM : ce n'est pas bon signe d'initialiser à zéro via DAMS (eg DEFS n,0).

ED3.S

Nouveautés

  • Accès assemblage (CONTROL-1). Assemble+saut (CONTROL-2).

Jouons avec

|ds,&40
m#8900
g ed3.s
a, j

ld a,33:jp #BB5A
CONTROL-2

Modifications

  • mad13: Hack temporaire : tilde (~) comme caractère spécial.

Ajouts

  • mad10: Adresses Assemble et AssJump
  • mad11: Appel assemblage
  • mad12: Raccourci clavier assemblage (!! A vérfier pour QWERTY !!)
  • mad14: ORG par défaut.

ED4.S

Nouveautés

  • Un source d'exemple fonctionnel.

Jouons avec

|ds,&40
m#8800
g ed4.s
a, j
CONTROL-O (comme Open)
elines.o + return
CONTROL-2

Modifications

  • mad16 : Affichage rapide CHR. On affiche tout (y compris chr control)
  • mad17 : Affichage rapide LINE.

Ajouts

  • mad15 : store en #BE80
    • call dams dans le source pour breakpoint
    • call #be80 sous basic pour retrouver source (*tel qu'il était lors de la dernière exécution)

ED5.S

Nouveautés

Grâce à une routine d'import adéquate (maintenant en ROM), on peut importer de l'ASCII ou des sources DAMS.
L'import se fait à partir de la position courante.

Modifications

  • mad17 : Aligne BUF_FILE sur adresse xx00
    • Necessaire pour writLine
    • Plus simple pour mesurer pos/longueur d'une chaine.
  • mad18 : Fix export
  • mad19 : Exporte import !
    • Gere source DAMS
    • Importe à partir de line courante (et pas en fin de source)
    • TODO : display nb lines imported (que ce soit en erreur ou en succes)
  • mad20 :

ED6.S

Nouveautés

On peut installer l'éditeur en ROM (#A par défaut). Buggé !!

Modifications

  • mad21
    • Adr routines externes déplacées en fin de source (label ROUTINES)
    • Amputation doc :
      • Gain de place
      • Elle n'était pas synchro de toute façon
      • Argument déjà évoqué : la doc pour les routines externes n'a rien à faire dans le code appelant !
  • mad22. Agrégations "DATAS" par type :
    • Switch (USE_NUM) A placer en début de source ?
    • Valeurs constantes (EQU)
    • Données: constantes (tables)
    • Données constantes (messages : placés dans même rom que routine d'affichage)
    • Emplacement Variables et buffers : tout ce qui ne se retrouve pas en ROM !
  • Occurences "inRom" : modifications pour version ROM.

ED7.S

Modifications

Version ROM : init des variables (BUFFERs remplis avec 0, curseur à #0101 etc..).
Mais ça reste buggué !

EDA.S

En gros : délestage, CONTROL-ENTER & RETURN.

Modifications

  • mad23a à mad23d : Nouvelle configuration ROM.
  • mad24a, mad24b : on passer adresse buffer à TAB2SPC. AF et HL corrompus.
  • mad28 : remplace #BB06 par #BB18, car ce dernier n'étend pas les chaines (cf CONTROL-ENTER = 'RUN"').

Ajouts

  • mad25a à mad25c : gestion CONTROL-ENTER
  • mad26 : Accès à 'codec_seek_next_label_from_prefix' Non branché.
  • mad27 : mini gestion CONTROL-RETURN (1 seul niveau)
  • mad29 : ajout label 'gotoline' : routine à utiliser pour tout déplacement.
  • mad30 : sysconf. Configuration system (redefinition touches) à ne lancer que du lancement de l'éditeur.

Suppressions

Init ROM, LOAD, SAVE, IMPORT, EXPORT, TAB2SPC, MSG_IO et messages associés (déportés dans CH3.T).

EDB.S

En gros : fix RETURN, CONTROL-DEL remplace CONTROL-D.

Modifications

  • mad31a b c : Fix bug RETURN multiple. Change comportement : nouvelle ligne ne doit pas être validée !
    • RETURN puis ";" doit être équivalent à ";", Flèche gauche, RETURN
    • Permettra DEL pour annuler l'insertion du retour à la ligne.

Ajouts

Popote Madram (points d'entrées, dump pour debug).

Sauf mention contraire, le contenu de cette page est protégé par la licence Creative Commons Attribution-ShareAlike 3.0 License