home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Frozen Fish 1: Amiga
/
FrozenFish-Apr94.iso
/
bbs
/
alib
/
d1xx
/
d173
/
fileselect.lha
/
FileSelect
/
FileSelect.s
< prev
next >
Wrap
Text File
|
1989-02-04
|
36KB
|
1,470 lines
***************************************************************************
* File Select V1.0 by Fabrice Lienhardt *
* 7 rue de Leicester *
* 67000 Strasbourg (France) *
* (This is public domain) *
* 100% assembler - Written with Devpac Assembler *
***************************************************************************
incdir ":include/" :Open libraries
include exec/exec_lib.i
include intuition/intuition.i
include intuition/intuition_lib.i
include graphics/graphics_lib.i
include libraries/dos_lib.i
include libraries/dos.i
lea intname,a1
CALLEXEC OldOpenLibrary :Open Intuition
tst.l d0
beq int_error :quit if error
move.l d0,_IntuitionBase
lea grafname,a1
CALLEXEC OldOpenLibrary :Open Graphics
tst.l d0
beq gfx_error :quit if error
move.l d0,_GfxBase
lea.l dosname,a1
CALLEXEC OldOpenLibrary :Open Dos
tst.l d0
beq dos_error :quit if error
move.l d0,_DOSBase
***************************************************************************
move.l #$10000,d1 :if possible FASTRAM
move.l #1734,d0 :ram with 34*51 characters
CALLEXEC AllocMem :allocate memory for buffer (oblig.!)
tst.l d0
beq mem_error :if error, quit
move.l d0,filebuffer
lea.l NewScreen,a0
CALLINT OpenScreen :Open Screen for my example
move.l d0,screenhd
* :Prepare text in filewindow
lea.l gadload,a6 :or gadsave or gaddelete !!!!
move.l a6,gad78text
lea.l titleload,a6 :or titlesave or titledelete !!!
move.l a6,filetitle
bsr fileselect :and call routine fileselect
nop :-----------------------------------
nop :Results:
nop : address of filename in register a0
nop : or a0 = 0 if cancel
nop :-----------------------------------
nop :etc etc etc....(your routines to
nop : load or save or delete a file).
nop
nop :for my example, print the filename
nop :in CLI window
move.l a0,d6
CALLDOS Output
move.l d0,d1
move.l d0,d7
move.l #fileselmsg,d2
move.l #60,d3
CALLDOS Write
tst.l d6
beq nofileselected
move.l d7,d1
move.l #fisel,d2
move.l #17,d3
CALLDOS Write
move.l d6,a5
moveq #0,d3
nbchar:
addq #1,d3
tst.b (a5)+
bne nbchar
addq #1,d3
subq #1,a5
move.b #$0d,(a5)+
move.b #$0a,(a5)
move.l d7,d1
move.l #filename,d2
CALLDOS Write
bra the_end :close all and return to CLI
nofileselected:
move.l d7,d1
move.l #nofilesel,d2
move.l #18,d3
CALLDOS Write
the_end:
move.l screenhd,a0
CALLINT CloseScreen :Close Screen
scr_error:
move.l filebuffer,a1
move.l #1734,d0
CALLEXEC FreeMem :free memory for file buffer
mem_error:
move.l _DOSBase,a1
CALLEXEC CloseLibrary :Close dos library
dos_error:
move.l _GfxBase,a1
CALLEXEC CloseLibrary :Close gfx library
gfx_error:
move.l _IntuitionBase,a1
CALLEXEC CloseLibrary :Close int library
int_error:
rts
***************************************************************************
* Sub-routine to select a filename in a directory -------------------------
***************************************************************************
* Sorry but I am to lazy to traduce all comments in English !!!
* It were be traduced in version 1.1 !!!
fileselect:
lea.l filewindow,a0
CALLINT OpenWindow :Open window Load-Save-Delete
move.l d0,filewinhd
move.l d0,a0
move.l wd_RPort(a0),fileRPort :Determination RastPort
move.l wd_UserPort(a0),fileUPort:Determination UserPort
filedrive:
bsr filerefreshfile :effacer fichier
move.b #0,flaglock :lock encore ferme
move.l #filedrawer,d1 :adresse du drawer
move.l #$fffffffe,d2 :mode lecture
CALLDOS Lock :Lock
tst.l d0
beq lockerr :si erreur afficher
move.b #1,flaglock :lock ouvert
move.l d0,lockhd
move.l lockhd,d1
move.l #fileinfo,d2 :buffer = fileinfo
CALLDOS Examine :Examiner titre disquette
tst.l d0 :erreur?
beq lockerr :si oui determiner pourquoi
bra filelecture
lockerr:
bsr fileunlock :sinon refermer lock car erreur
bsr fileinitmover :initialiser mover
lea.l fileafferr1,a0
move.b #1,affstatus
bsr fileaffstatus :'No disk in drive'
move.b #1,flaglect
move.l screenhd,a0
CALLINT ScreenToFront :revenir ecran apres erreur
bra fileinitbcle
filelecture:
bsr fileinitmover :initialiser prop gadget
move.b #0,flaglect :lecture possible = nouv. disk
fileinitbcle:
move.b #0,d
move.b #0,f
filebigbcle:
move.l fileUPort,a0
CALLEXEC GetMsg :lire si message dans port
tst.l d0
beq filenomsg :si non continuer
move.l d0,a1
move.l im_Class(a1),d4
move.l im_Code(a1),d5
move.l im_IAddress(a1),a4
CALLEXEC ReplyMsg
bra filelectgadget
filenomsg:
tst.b flaglect :lecture directory en cours?
bne filenolect
move.l lockhd,d1
move.l #fileinfo+2,d2
CALLDOS ExNext :si oui continuer a lire
tst.l d0
bne filenoend :si terminer alors fileend
bsr fileclrstatus
move.b d,d0
add.b f,d0
tst.b d0
beq filezero :si fin et pas de fichiers?
bra fileend
filezero:
move.b #1,flaglect :alors arreter lecture
bsr fileunlock :unlock si possible
bra filebigbcle
filenoend:
lea.l fileinfo+8,a0 :Tri de la memoire buffer
move.b (a0),d7 :d7,premiere lettre du titre
cmp.b #$5b,d7
bcc filenomajuscule :test si majuscule pour tri
add.b #$20,d7 :egalite majuscule-minuscule
filenomajuscule:
tst.l fileinfo+4
bpl filedir :si positif alors directory
move.b #1,affstatus
lea.l fileinfo+8,a0
bsr fileaffstatus :afficher titre
add.b #1,f :sinon incrementer nb fichiers
moveq #1,d6 :et preparer couleur
moveq #1,d1
add.b d,d1 :debut des fichiers = d+1
move.b f,d2
add.b d,d2 :fin fichiers = f+d
bra filesavename :puis comparer et memoriser
filedir:
move.b #3,affstatus
lea.l fileinfo+8,a0
bsr fileaffstatus :afficher titre
add.b #1,d :si dir alors incrementer nb dir
moveq #3,d6 :et preparer couleur
moveq #1,d1 :debut des fichiers = 1
move.b d,d2 :fin fichiers = d
filesavename:
cmp.b d1,d2 :dernier fichier atteint?
beq filemove :si oui alors deplacer buffer
move.l d1,d3
subq #1,d3
mulu #34,d3 :offset nom (d1) dans buffer
move.l filebuffer,a0
add.l d3,a0
move.b (a0),d3 :d3 = premiere lettre nom (d1)
cmp.b #$5b,d3
bcc filenomajuscule2 :test si majuscule pour tri
add.b #$20,d3 :egalite majuscule-minuscule
filenomajuscule2:
cmp.b d7,d3
bcs filenolower :pas inferieur alors continuer
bra filemove :sinon deplacer buffer
filenolower:
addq #1,d1
bra filesavename :passer a nom suivant et boucler
filemove:
moveq #1,d3
add.b d,d3 :transfert des titres dans buffer
add.b f,d3
mulu #34,d3
move.l filebuffer,a0
add.l a0,d3
move.l d3,a3 :a3 = (f+d+1)*34 ad fin transfert
sub.l #34,d3
move.l d3,a2 :a2 = a3-34 adresse debut transfert
moveq #1,d3
add.b f,d3
add.b d,d3
sub.b d1,d3 :d3 = (f+d+1-d1) nb de transferts
filetransfert:
moveq #8,d4
filetrans:
move.l -(a2),-(a3) :transfert 32 octets
subq #1,d4
bne filetrans
move.w -(a2),-(a3) :+2 octets
subq #1,d3
bne filetransfert
clr.l d3 :preparer sauvegarde nom
move.l d1,d3
subq #1,d3
mulu #34,d3
lea.l fileinfo+8,a0 :adresse debut source
move.l filebuffer,a1
add.l d3,a1 :adresse debut destination
moveq #8,d4
filecopyname:
move.l (a0)+,(a1)+ :recopie du nom titre
subq #1,d4
bne filecopyname
move.b #0,(a1)+ :placer fin nom
move.b d6,(a1) :placer couleur
move.b f,d0
add.b d,d0
cmp.b #50,d0
bne filebigbcle
lea.l fileafferr3,a0 :si > 50 titres arreter et
move.b #1,affstatus :'Directory truncated'
bsr fileaffstatus
fileend:
move.b #1,flaglect
bsr fileunlock :plus de lectures a effectuer
lea.l gadget79,a0
move.l filewinhd,a1
move.l #0,a2
moveq #5,d0
moveq #0,d1 :mettre tous les parametres
moveq #0,d2
moveq #0,d3
clr.l d5
move.b f,d5
add.b d,d5
cmp.b #11,d5
bcs filenogreater :preparer prop gadget
move.l #$ffff,d4
divu d5,d4
and.l #$0000ffff,d4
mulu #10,d4 :taille mover = $ffff*10/(f+d)
bra fileprop
filenogreater:
move.l #$ffff,d4
fileprop:
CALLINT ModifyProp :modifier le prop gadget
move.b #1,fileaffstart :--affichage a partir du 1er titre--
clr.l d2 :affichage des noms de fichier
move.b f,d2
add.b d,d2 :calculer nombre de fichiers presents
cmp.b #11,d2
bcs minusdix
moveq #10,d2 :si > 10 alors forcer a 10
minusdix:
move.l fileRPort,a0
lea.l affnames,a1 :initialiser parametres
moveq #0,d0
moveq #0,d1
move.l filebuffer,a3 :afficher 10 premiers titres
filenamesbcle:
moveq #8,d0
lea.l names,a2
filecopynames:
move.l (a3)+,(a2)+ :32 caracteres a copier
subq #1,d0
bne filecopynames
move.w (a3),(a2)+ :+2 caracteres
addq #1,a3
move.b (a3)+,affnames :placer couleur pour dir ou file
movem.l a0-a3/d0-d2,-(sp) :sauver parametres
CALLINT PrintIText :afficher nom du fichier
movem.l (sp)+,a0-a3/d0-d2 :recuperer parametres
addq #8,d1
subq #1,d2
bne filenamesbcle
bra filebigbcle
filenolect:
clr.l d0
move.b f,d0
add.b d,d0
cmp.b #11,d0 :si <10 reboucler
bcs filebigbcle :calcul position mover
sub.b #10,d0
mulu filemoverpos,d0
divu #$ffff,d0
and.l #$0000ffff,d0
addq #1,d0 :d0 = 1er titre a afficher
cmp.b fileaffstart,d0
beq filebigbcle :si pas changements, pas scroller
bcc filescrolld
bsr filescrolldown :sinon scroller vers le bas
bra filebigbcle
filescrolld:
bsr filescrollup :ou vers le haut
bra filebigbcle
filelectgadget:
moveq #0,d0
move.w gg_GadgetID(a4),d0 :d0 = ID du gadget
cmp.w #61,d0
beq filedf0 :Lecture de tous les gadgets
cmp.w #62,d0
beq filedf1
cmp.w #63,d0
beq filedh0
cmp.w #64,d0
beq fileparent
cmp.w #65,d0
beq filedrawers
cmp.w #66,d0
beq filetitre
cmp.w #67,d0
beq filetitre
cmp.w #68,d0
beq filetitre
cmp.w #69,d0
beq filetitre
cmp.w #70,d0
beq filetitre
cmp.w #71,d0
beq filetitre
cmp.w #72,d0
beq filetitre
cmp.w #73,d0
beq filetitre
cmp.w #74,d0
beq filetitre
cmp.w #75,d0
beq filetitre
cmp.w #76,d0
beq filestring
cmp.w #77,d0
beq filecancel
cmp.w #78,d0
beq fileload
and.l #$10000,d4
beq filediskremoved
and.l #$8000,d4
beq filediskinsert
bra filebigbcle
filedf0:
bsr filereinit :Unlock-clr titres-no oldname
bsr fileclrstatus
lea.l filedrawer,a0
move.l #'df0:',(a0)+ :recommencer avec df0:
move.b #$00,(a0)
bsr filerefresh
bra filedrive
filedf1:
bsr filereinit :Unlock-clr titres-no oldname
bsr fileclrstatus
lea.l filedrawer,a0
move.l #'df1:',(a0)+ :recommencer avec df1:
move.b #$00,(a0)
bsr filerefresh
bra filedrive
filedh0:
bsr filereinit :Unlock-clr titres-no oldname
bsr fileclrstatus
lea.l filedrawer,a0
move.l #'dh0:',(a0)+ :recommencer avec dh0:
move.b #$00,(a0)
bsr filerefresh
bra filedrive
filecancel:
bsr fileunlock :unlock si necessaire
move.l filewinhd,a0
CALLINT CloseWindow :Close fileselect Window
move.l #0,a0
rts :puis quitter
fileload:
bsr fileunlock :unlock si necessaire
lea.l filename,a0 :preparer a0
tst.b (a0)
beq filenoload :si pas de nom alors erreur
move.l filewinhd,a0
CALLINT CloseWindow :Close fileselect Window
lea.l filename,a0
rts
filenoload:
lea.l fileafferr2,a0 :'no file specified'
move.b #1,affstatus :couleurs jaune
bsr fileaffstatus :afficher
bra filebigbcle
fileparent:
lea.l filedrawer,a0
moveq #38,d0
fileparentex:
cmp.b #'/',(a0,d0) :recherche d'un slash a partir de fin
beq fileparentexist
cmp.b #':',(a0,d0)
beq fileparentexist2
subq #1,d0 :si pas trouve passer a suite
bne fileparentex :et reboucler
bra filebigbcle :si inexistant ne rien faire
fileparentexist:
move.b #0,(a0,d0) :si trouve tronquer
bra fileparexit
fileparentexist2:
addq #1,d0
tst.b (a0,d0)
beq filebigbcle :si juste dfx: alors rien a faire
move.b #0,(a0,d0) :ne pas effacer :
fileparexit:
bsr filereinit :Unlock-clr titres-no oldname
bsr fileclrstatus
bsr filerefresh
bra filedrive
filestring:
bra fileload
filetitre:
add.b fileaffstart,d0 :d0 = position - 66(gadget) -1 (off)
sub.b #67,d0 :d0 de 0 a x
move.b f,d1
add.b d,d1
cmp.b d1,d0
bcc filebigbcle :si champ non defini alors erreur
mulu #34,d0
move.l filebuffer,a0
add.l d0,a0 :adresse du buffer fichier
move.b 33(a0),d7
cmp.b #03,d7 :d7 = couleur
beq fileseldir :directory
lea.l filename,a1 :sinon fichier
move.l a0,a2
filetittst:
move.b (a1)+,d5
cmp.b (a2),d5 :comparaison si deja recopie
bne filefirst :si non recopier titre dans string
tst.b (a2)+
bne filetittst
bra fileload :si oui alors deja recopie et load
filefirst:
moveq #8,d0
lea.l filename,a1
filecopyfile:
move.l (a0)+,(a1)+ :recopie du nom fichier dans string
subq #1,d0
bne filecopyfile
bsr filerefreshfile
bra filebigbcle
fileseldir:
moveq #7,d0 :cas ou titre directory
lea.l filedrawer,a1
filetstend:
tst.b (a1)+ :recherche fin du drawer
bne filetstend
subq #2,a1
cmp.b #':',(a1)
beq filenoslash
addq #1,a1
move.b #'/',(a1)+ :slash de separation pour sous-dir
filenewdrawer:
move.b (a0),(a1)+ :copie du nouveau drawer
tst.b (a0)
beq filenewend
addq #1,a0
bra filenewdrawer
filenoslash:
addq #1,a1
bra filenewdrawer
filenewend:
bsr filereinit :Unlock-clr titres-no oldname
bsr fileclrstatus
bsr filerefresh
bra filedrive
filedrawers:
bsr filereinit :Unlock-clr titres-no oldname
bsr fileclrstatus
bra filedrive :accepter nouveau drawer et lock
filediskremoved:
nop
filediskinsert:
nop
bra filebigbcle
****************************************************************************
* Sous programmes file -----------------------------------------------------
****************************************************************************
filerefresh:
move.l #0,gadget65
lea.l gadget65,a0
move.l filewinhd,a1
move.l #0,a2
CALLINT RefreshGadgets :rafraichir drawer uniquement
lea.l gadget66,a0
move.l a0,gadget65
rts
filerefreshfile:
move.l #0,gadget76
lea.l gadget76,a0
move.l filewinhd,a1
move.l #0,a2
CALLINT RefreshGadgets :rafraichir file uniquement
lea.l gadget77,a0
move.l a0,gadget76
rts
fileunlock:
tst.b flaglock :unlock a effectuer?
beq filenounlock :sinon revenir
move.b #0,flaglock :si oui remettre flag a 0
move.l lockhd,d1
CALLDOS UnLock :et unlock
filenounlock:
rts
filereinit:
bsr fileunlock :refermer lock avant new drawer
move.l fileRPort,a1
moveq #0,d0
CALLGRAF SetAPen :couleur remplissage
move.l fileRPort,a1
moveq #12,d0
move.l #51,d1
move.l #267,d2
move.l #130,d3
CALLGRAF RectFill :efface zone titres
bsr fileinitmover :reinitialiser mover
move.b #$0,filename :detruire ancien nom fichier
rts
fileclrstatus:
move.l fileRPort,a1
moveq #0,d0
CALLGRAF SetAPen :couleur remplissage
move.l fileRPort,a1
moveq #65,d0
move.l #172,d1
move.l #291,d2
move.l #180,d3
CALLGRAF RectFill :efface zone Status
rts
fileaffstatus:
move.l a0,-(sp)
bsr fileclrstatus :dabord effacer status
move.l (sp)+,a0
lea.l affstat,a1 :copie de texte pour message erreur
moveq #8,d0
filecopyerr:
move.l (a0)+,(a1)+ :32 caracteres a copier
subq #1,d0
bne filecopyerr
move.l fileRPort,a0
lea.l affstatus,a1
moveq #0,d0
moveq #0,d1
CALLINT PrintIText :afficher nom fichier ou erreur
rts
fileinitmover:
lea.l gadget79,a0
move.l filewinhd,a1
move.l #0,a2
moveq #5,d0
moveq #0,d1 :remettre tous les parametres org.
moveq #0,d2
moveq #0,d3
move.l #$ffff,d4
CALLINT ModifyProp :modifier le prop gadget
rts
filescrolldown:
moveq #4,d0
filewait2:
cmpi.b #1,$dff006
bne filewait2
move.l d0,-(sp)
move.l fileRPort,a1 :preparer scrollraster
move.l #0,d0
move.l #-2,d1
move.l #12,d2
move.l #51,d3
move.l #267,d4
move.l #130,d5
CALLGRAF ScrollRaster :scroller texte 1 ligne en bas
move.l (sp)+,d0
subq #1,d0
bne filewait2 :scroller 8 bits vers le bas
move.l filebuffer,a0
clr.l d0
sub.b #1,fileaffstart
move.b fileaffstart,d0
subq #1,d0
mulu #34,d0
add.l d0,a0 :a0 = adresse debut nouveau titre
lea.l affdown,a1 :copie de texte pour titre suivant
moveq #8,d0
filecopyd:
move.l (a0)+,(a1)+ :32 caracteres a copier
subq #1,d0
bne filecopyd
move.b (a0)+,(a1)+ :copie du 0
move.b (a0),afftitd :copie de la couleur
move.l fileRPort,a0
lea.l afftitd,a1
moveq #0,d0
moveq #0,d1
CALLINT PrintIText :afficher nom fichier ou erreur
rts
filescrollup:
moveq #4,d0
filewait3:
cmpi.b #1,$dff006
bne.l filewait3
move.l d0,-(sp)
move.l fileRPort,a1 :preparer scrollraster
move.l #0,d0
move.l #2,d1
move.l #12,d2
move.l #51,d3
move.l #267,d4
move.l #130,d5
CALLGRAF ScrollRaster :scroller texte 1 ligne en haut
move.l (sp)+,d0
subq #1,d0
bne filewait3 :scroller 8 bits vers le haut
move.l filebuffer,a0
clr.l d0
add.b #1,fileaffstart
move.b fileaffstart,d0
add.b #8,d0
mulu #34,d0
add.l d0,a0 :a0 = adresse debut nouveau titre
lea.l affup,a1 :copie de texte pour titre suivant
moveq #8,d0
filecopyu:
move.l (a0)+,(a1)+ :32 caracteres a copier
subq #1,d0
bne filecopyu
move.b (a0)+,(a1)+ :copie du 0
move.b (a0),afftitu :copie de la couleur
move.l fileRPort,a0
lea.l afftitu,a1
moveq #0,d0
moveq #0,d1
CALLINT PrintIText :afficher nom fichier ou erreur
rts
****************************************************************************
* Declaration des variables systeme et handles -----------------------------
****************************************************************************
_IntuitionBase dc.l 0 :Bases des librairies
_DOSBase dc.l 0
_GfxBase dc.l 0
intname INTNAME :Nom des librairies
even
grafname GRAFNAME
even
dosname DOSNAME
even
filewinhd dc.l 0
filebuffer dc.l 0
lockhd dc.l 0
fileRPort dc.l 0
fileUPort dc.l 0
cnop 0,4
fileinfo ds.l 260
f dc.w 0
d dc.w 0
fileaffstart dc.w 0
flaglect dc.w 0
flaglock dc.w 0
filename ds.b 34
filedrawer dc.b 'df0:'
ds.w 17
****************************************************************************
* Declaration des structures ecran et fenetres -----------------------------
****************************************************************************
NewScreen dc.w 0,0 :Positions X et Y
dc.w 640,200 :largeur, hauteur
dc.w 2 :Nb de bitplanes
dc.b 2,1 :couleurs
dc.w $8002 :viewmodes
dc.w 15 :type
dc.l 0 :font
dc.l titrescreen :title
dc.l 0 :gadgets
dc.l 0 :bitmap
titrescreen dc.b 'Fileselect V1.0 by F.Lienhardt 1988',0
even
filewindow dc.w 168 :Position X
dc.w 14 :Position Y
dc.w 304 :Largeur
dc.w 186 :Hauteur
dc.b 1,3 :Couleurs
dc.l $18060 :IDCMP-flags
dc.l $1000 :Type
dc.l gadget61 :Pointeur gadget61
dc.l 0 :Checkmark
filetitle dc.l 0 :Nom fenetre
screenhd dc.l 0 :Affichage dans ecran
dc.l 0 :Pointeur Bitmaps
dc.w 0,0,0,0 :Dimensions max et min
dc.w 15 :Screen-Type
even
***************************************************************************
* Declaration des gadgets fenetre load
***************************************************************************
* Gadget61 (Boolean Df0) ---------------------------------------------------
gadget61 dc.l gadget62 :Gadget suivant
dc.w 24 :Position X
dc.w 15 :Position Y
dc.w 40 :Longueur Hit-Box
dc.w 9 :Hauteur Hit-Box
dc.w 0 :Flags
dc.w 1 :Activation flags
dc.w 1 :Gadget-typ -Boolean-
dc.l border61 :Gadget-image
dc.l 0 :Select gadget
dc.l gadtext61 :Text
dc.l 0 :Exclude
dc.l 0 :Special Info
dc.w 61 :Gadget-ID
dc.l 0 :User Data
border61 dc.w 0,0 :Offset
dc.b 1,1 :Couleurs
dc.b 1 :Modus
dc.b 5 :Nb coordonnees
dc.l coord61 :Coordonnes Border
dc.l 0 :Structure suivante
coord61 dc.w -1,-1 :
dc.w 40,-1 :
dc.w 40,9 :Coordonnees
dc.w -1,9 :
dc.w -1,0 :
gadtext61 dc.b 1,1 :Couleurs
dc.b 0 :Modus JAM1
even :Position Parite
dc.w 0 :Position X
dc.w 1 :Position Y
dc.l 0 :Font
dc.l gad61text :Text
dc.l 0 :Texte suivant
* Gadget62 (Boolean Df1) ---------------------------------------------------
gadget62 dc.l gadget63 :Gadget suivant
dc.w 88 :Position X
dc.w 15 :Position Y
dc.w 40 :Longueur Hit-Box
dc.w 9 :Hauteur Hit-Box
dc.w 0 :Flags
dc.w 1 :Activation flags
dc.w 1 :Gadget-typ -Boolean-
dc.l border62 :Gadget-image
dc.l 0 :Select gadget
dc.l gadtext62 :Text
dc.l 0 :Exclude
dc.l 0 :Special Info
dc.w 62 :Gadget-ID
dc.l 0 :User Data
border62 dc.w 0,0 :Offset
dc.b 1,1 :Couleurs
dc.b 1 :Modus
dc.b 5 :Nb coordonnees
dc.l coord62 :Coordonnes Border
dc.l 0 :Structure suivante
coord62 dc.w -1,-1 :
dc.w 40,-1 :
dc.w 40,9 :Coordonnees
dc.w -1,9 :
dc.w -1,0 :
gadtext62 dc.b 1,1 :Couleurs
dc.b 0 :Modus JAM1
even :Position Parite
dc.w 0 :Position X
dc.w 1 :Position Y
dc.l 0 :Font
dc.l gad62text :Text
dc.l 0 :Texte suivant
* Gadget63 (Boolean Dh0) ----------------------------------------------------
gadget63 dc.l gadget64 :Gadget suivant
dc.w 152 :Position X
dc.w 15 :Position Y
dc.w 40 :Longueur Hit-Box
dc.w 9 :Hauteur Hit-Box
dc.w 0 :Flags
dc.w 1 :Activation flags
dc.w 1 :Gadget-typ -Boolean-
dc.l border63 :Gadget-image
dc.l 0 :Select gadget
dc.l gadtext63 :Text
dc.l 0 :Exclude
dc.l 0 :Special Info
dc.w 63 :Gadget-ID
dc.l 0 :User Data
border63 dc.w 0,0 :Offset
dc.b 1,1 :Couleurs
dc.b 1 :Modus
dc.b 5 :Nb coordonnees
dc.l coord63 :Coordonnes Border
dc.l 0 :Structure suivante
coord63 dc.w -1,-1 :
dc.w 40,-1 :
dc.w 40,9 :Coordonnees
dc.w -1,9 :
dc.w -1,0 :
gadtext63 dc.b 1,1 :Couleurs
dc.b 0 :Modus JAM1
even :Position Parite
dc.w 0 :Position X
dc.w 1 :Position Y
dc.l 0 :Font
dc.l gad63text :Text
dc.l 0 :Texte suivant
* Gadget64 (Boolean Parent) -------------------------------------------------
gadget64 dc.l gadget65 :Gadget suivant
dc.w 216 :Position X
dc.w 15 :Position Y
dc.w 64 :Longueur Hit-Box
dc.w 9 :Hauteur Hit-Box
dc.w 0 :Flags
dc.w 1 :Activation flags
dc.w 1 :Gadget-typ -Boolean-
dc.l border64 :Gadget-image
dc.l 0 :Select gadget
dc.l gadtext64 :Text
dc.l 0 :Exclude
dc.l 0 :Special Info
dc.w 64 :Gadget-ID
dc.l 0 :User Data
border64 dc.w 0,0 :Offset
dc.b 1,1 :Couleurs
dc.b 0 :Modus
dc.b 5 :Nb coordonnees
dc.l coord64 :Coordonnes Border
dc.l 0 :Structure suivante
coord64 dc.w -1,-1 :
dc.w 64,-1 :
dc.w 64,9 :Coordonnees
dc.w -1,9 :
dc.w -1,0 :
gadtext64 dc.b 1,1 :Couleurs
dc.b 0 :Modus JAM1
even :Position Parite
dc.w 0 :Position X
dc.w 1 :Position Y
dc.l 0 :Font
dc.l gad64text :Text
dc.l 0 :Texte suivant
* Gadget65 (String du Drawer) ----------------------------------------------
gadget65 dc.l gadget66 :Gadget suivant
dc.w 74 :Position X
dc.w 31 :Position Y
dc.w 216 :Longueur Hit-Box
dc.w 10 :Hauteur Hit-Box
dc.w 0 :Flags
dc.w 1 :Activation flags
dc.w 4 :Gadget-typ -String-
dc.l border65 :Gadget-image
dc.l 0 :Select gadget
dc.l gadtext65 :Text
dc.l 0 :Exclude
dc.l strinfo65 :Special Info
dc.w 65 :Gadget-ID
dc.l 0 :User Data
border65 dc.w 0,0 :Offset
dc.b 1,1 :Couleurs
dc.b 0 :Modus JAM1
dc.b 5 :Nb coordonnees
dc.l coord65 :Coordonnees Border
dc.l bordere65 :Structure suivante
coord65 dc.w -2,-2 :
dc.w 216,-2 :
dc.w 216,9 :Coordonnees
dc.w -2,9 :
dc.w -2,-2 :
bordere65 dc.w 0,0 :Offset
dc.b 1,1 :Couleurs
dc.b 0 :Modus JAM1
dc.b 2 :Nb coordonnees
dc.l coorde65 :Coordonnees Border
dc.l 0 :Structure suivante
coorde65 dc.w -69,14 :Coordonnees
dc.w 224,14 :
strinfo65 dc.l filedrawer :Pointeur sur buffer text
dc.l 0 :Pointeur sur buffer undo
dc.w 4 :Position curseur
dc.w 39 :Nombre caracteres max
dc.w 0 :Afficher a partir posit. 0
dc.w 0,0,0,0,0 :Definitions diverses
dc.l 0 :Pointeur RastPort
dc.l 0 :Valeur du Nb saisi (Integer)
dc.l 0 :Configuration Clavier d'origine
gadtext65 dc.b 1,0 :Couleurs
dc.b 0 :Modus JAM1
even :Position Parite
dc.w -68 :Position X
dc.w 0 :Position Y
dc.l 0 :Font
dc.l gad65text :Text
dc.l 0 :Texte suivant
* Gadget66 (Boolean Titre1) -------------------------------------------------
gadget66 dc.l gadget67 :Gadget suivant
dc.w 12 :Position X
dc.w 51 :Position Y
dc.w 256 :Longueur Hit-Box
dc.w 8 :Hauteur Hit-Box
dc.w 0 :Flags
dc.w 1 :Activation flags
dc.w 1 :Gadget-typ -Boolean-
dc.l border66 :Gadget-image
dc.l 0 :Select gadget
dc.l 0 :Text
dc.l 0 :Exclude
dc.l 0 :Special Info
dc.w 66 :Gadget-ID
dc.l 0 :User Data
border66 dc.w 0,0 :Offset
dc.b 1,1 :Couleurs
dc.b 2 :Modus
dc.b 5 :Nb coordonnees
dc.l coord66 :Coordonnes Border
dc.l 0 :Structure suivante
coord66 dc.w -1,-1 :
dc.w 256,-1 :
dc.w 256,80 :Coordonnees
dc.w -1,80 :
dc.w -1,0 :
* Gadget67 (Boolean Titre2) ------------------------------------------------
gadget67 dc.l gadget68 :Gadget suivant
dc.w 12 :Position X
dc.w 59 :Position Y
dc.w 256 :Longueur Hit-Box
dc.w 8 :Hauteur Hit-Box
dc.w 0 :Flags
dc.w 1 :Activation flags
dc.w 1 :Gadget-typ -Boolean-
dc.l 0 :Gadget-image
dc.l 0 :Select gadget
dc.l 0 :Text
dc.l 0 :Exclude
dc.l 0 :Special Info
dc.w 67 :Gadget-ID
dc.l 0 :User Data
* Gadget68 (Boolean Titre3) ------------------------------------------------
gadget68 dc.l gadget69 :Gadget suivant
dc.w 12 :Position X
dc.w 67 :Position Y
dc.w 256 :Longueur Hit-Box
dc.w 8 :Hauteur Hit-Box
dc.w 0 :Flags
dc.w 1 :Activation flags
dc.w 1 :Gadget-typ -Boolean-
dc.l 0 :Gadget-image
dc.l 0 :Select gadget
dc.l 0 :Text
dc.l 0 :Exclude
dc.l 0 :Special Info
dc.w 68 :Gadget-ID
dc.l 0 :User Data
* Gadget69 (Boolean Titre4) ------------------------------------------------
gadget69 dc.l gadget70 :Gadget suivant
dc.w 12 :Position X
dc.w 75 :Position Y
dc.w 256 :Longueur Hit-Box
dc.w 8 :Hauteur Hit-Box
dc.w 0 :Flags
dc.w 1 :Activation flags
dc.w 1 :Gadget-typ -Boolean-
dc.l 0 :Gadget-image
dc.l 0 :Select gadget
dc.l 0 :Text
dc.l 0 :Exclude
dc.l 0 :Special Info
dc.w 69 :Gadget-ID
dc.l 0 :User Data
* Gadget70 (Boolean Titre5) ------------------------------------------------
gadget70 dc.l gadget71 :Gadget suivant
dc.w 12 :Position X
dc.w 83 :Position Y
dc.w 256 :Longueur Hit-Box
dc.w 8 :Hauteur Hit-Box
dc.w 0 :Flags
dc.w 1 :Activation flags
dc.w 1 :Gadget-typ -Boolean-
dc.l 0 :Gadget-image
dc.l 0 :Select gadget
dc.l 0 :Text
dc.l 0 :Exclude
dc.l 0 :Special Info
dc.w 70 :Gadget-ID
dc.l 0 :User Data
* Gadget71 (Boolean Titre6) ------------------------------------------------
gadget71 dc.l gadget72 :Gadget suivant
dc.w 12 :Position X
dc.w 91 :Position Y
dc.w 256 :Longueur Hit-Box
dc.w 8 :Hauteur Hit-Box
dc.w 0 :Flags
dc.w 1 :Activation flags
dc.w 1 :Gadget-typ -Boolean-
dc.l 0 :Gadget-image
dc.l 0 :Select gadget
dc.l 0 :Text
dc.l 0 :Exclude
dc.l 0 :Special Info
dc.w 71 :Gadget-ID
dc.l 0 :User Data
* Gadget72 (Boolean Titre7) ------------------------------------------------
gadget72 dc.l gadget73 :Gadget suivant
dc.w 12 :Position X
dc.w 99 :Position Y
dc.w 256 :Longueur Hit-Box
dc.w 8 :Hauteur Hit-Box
dc.w 0 :Flags
dc.w 1 :Activation flags
dc.w 1 :Gadget-typ -Boolean-
dc.l 0 :Gadget-image
dc.l 0 :Select gadget
dc.l 0 :Text
dc.l 0 :Exclude
dc.l 0 :Special Info
dc.w 72 :Gadget-ID
dc.l 0 :User Data
* Gadget73 (Boolean Titre8) ------------------------------------------------
gadget73 dc.l gadget74 :Gadget suivant
dc.w 12 :Position X
dc.w 107 :Position Y
dc.w 256 :Longueur Hit-Box
dc.w 8 :Hauteur Hit-Box
dc.w 0 :Flags
dc.w 1 :Activation flags
dc.w 1 :Gadget-typ -Boolean-
dc.l 0 :Gadget-image
dc.l 0 :Select gadget
dc.l 0 :Text
dc.l 0 :Exclude
dc.l 0 :Special Info
dc.w 73 :Gadget-ID
dc.l 0 :User Data
* Gadget74 (Boolean Titre9) ------------------------------------------------
gadget74 dc.l gadget75 :Gadget suivant
dc.w 12 :Position X
dc.w 115 :Position Y
dc.w 256 :Longueur Hit-Box
dc.w 8 :Hauteur Hit-Box
dc.w 0 :Flags
dc.w 1 :Activation flags
dc.w 1 :Gadget-typ -Boolean-
dc.l 0 :Gadget-image
dc.l 0 :Select gadget
dc.l 0 :Text
dc.l 0 :Exclude
dc.l 0 :Special Info
dc.w 74 :Gadget-ID
dc.l 0 :User Data
* Gadget75 (Boolean Titre10) ------------------------------------------------
gadget75 dc.l gadget76 :Gadget suivant
dc.w 12 :Position X
dc.w 123 :Position Y
dc.w 256 :Longueur Hit-Box
dc.w 8 :Hauteur Hit-Box
dc.w 0 :Flags
dc.w 1 :Activation flags
dc.w 1 :Gadget-typ -Boolean-
dc.l 0 :Gadget-image
dc.l 0 :Select gadget
dc.l 0 :Text
dc.l 0 :Exclude
dc.l 0 :Special Info
dc.w 75 :Gadget-ID
dc.l 0 :User Data
* Gadget76 (String du FileName) ---------------------------------------------
gadget76 dc.l gadget77 :Gadget suivant
dc.w 76 :Position X
dc.w 137 :Position Y
dc.w 216 :Longueur Hit-Box
dc.w 8 :Hauteur Hit-Box
dc.w 0 :Flags
dc.w 1 :Activation flags
dc.w 4 :Gadget-typ -String-
dc.l border76 :Gadget-image
dc.l 0 :Select gadget
dc.l gadtext76 :Text
dc.l 0 :Exclude
dc.l strinfo76 :Special Info
dc.w 76 :Gadget-ID
dc.l 0 :User Data
border76 dc.w 0,0 :Offset
dc.b 1,1 :Couleurs
dc.b 0 :Modus JAM1
dc.b 5 :Nb coordonnees
dc.l coord76 :Coordonnees Border
dc.l border76b :Structure suivante
coord76 dc.w -1,-1 :
dc.w 220,-1 :
dc.w 220,8 :Coordonnees
dc.w -1,8 :
dc.w -1,0 :
border76b dc.w 0,0 :Offset
dc.b 1,1 :Couleurs
dc.b 0 :Modus JAM1
dc.b 2 :Nb coordonnees
dc.l coord76b :Coordonnees Border
dc.l 0 :Structure suivante
coord76b dc.w -71,13 :Coordonnees
dc.w 222,13 :
strinfo76 dc.l filename :Pointeur sur buffer text
dc.l 0 :Pointeur sur buffer undo
dc.w 0 :Position curseur
dc.w 33 :Nombre caracteres max
dc.w 0 :Afficher a partir posit. 0
dc.w 0,0,0,0,0 :Definitions diverses
dc.l 0 :Pointeur RastPort
dc.l 0 :Valeur du Nb saisi (Integer)
dc.l 0 :Configuration Clavier d'origine
gadtext76 dc.b 1,1 :Couleurs
dc.b 0 :Modus JAM1
even :Position Parite
dc.w -68 :Position X
dc.w 0 :Position Y
dc.l 0 :Font
dc.l gad76text :Text
dc.l 0 :Texte suivant
* Gadget77 (Boolean CANCEL) -------------------------------------------------
gadget77 dc.l gadget78 :Gadget suivant
dc.w 38 :Position X
dc.w 156 :Position Y
dc.w 64 :Longueur Hit-Box
dc.w 10 :Hauteur Hit-Box
dc.w 0 :Flags
dc.w 1 :Activation flags
dc.w 1 :Gadget-typ -Boolean-
dc.l border77 :Gadget-image
dc.l 0 :Select gadget
dc.l gadtext77 :Text
dc.l 0 :Exclude
dc.l 0 :Special Info
dc.w 77 :Gadget-ID
dc.l 0 :User Data
gadtext77 dc.b 1,1 :Couleurs
dc.b 0 :Modus JAM1
even :Position Parite
dc.w 0 :Position X
dc.w 1 :Position Y
dc.l 0 :Font
dc.l gad77text :Text
dc.l 0 :Texte suivant
border77 dc.w 0,0 :Offset
dc.b 1,1 :Couleurs
dc.b 0 :Modus JAM1
dc.b 5 :Nb coordonnees
dc.l coord77 :Coordonnees Border
dc.l 0 :Structure suivante
coord77 dc.w -1,-1 :
dc.w 64,-1 :
dc.w 64,10 :Coordonnees
dc.w -1,10 :
dc.w -1,0 :
* Gadget78 (Boolean LOAD) ---------------------------------------------------
gadget78 dc.l gadget79 :Gadget suivant
dc.w 204 :Position X
dc.w 156 :Position Y
dc.w 64 :Longueur Hit-Box
dc.w 10 :Hauteur Hit-Box
dc.w 0 :Flags
dc.w 1 :Activation flags
dc.w 1 :Gadget-typ -Boolean-
dc.l border78 :Gadget-image
dc.l 0 :Select gadget
dc.l gadtext78 :Text
dc.l 0 :Exclude
dc.l 0 :Special Info
dc.w 78 :Gadget-ID
dc.l 0 :User Data
gadtext78 dc.b 1,2 :Couleurs
dc.b 0 :Modus JAM1
even :Position Parite
dc.w 1 :Position X
dc.w 1 :Position Y
dc.l 0 :Font
gad78text dc.l 0 :Text
dc.l gadtext78b :Texte suivant
border78 dc.w 0,0 :Offset
dc.b 1,1 :Couleurs
dc.b 1 :Modus JAM1
dc.b 5 :Nb coordonnees
dc.l coord78 :Coordonnees Border
dc.l border78b :Structure suivante
coord78 dc.w -1,-1 :
dc.w 64,-1 :
dc.w 64,10 :Coordonnees
dc.w -1,10 :
dc.w -1,0 :
border78b dc.w 0,0 :Offset
dc.b 1,1 :Couleurs
dc.b 2 :Modus JAM1
dc.b 5 :Nb coordonnees
dc.l coord78b :Coordonnees Border
dc.l 0 :Structure suivante
coord78b dc.w -140,15 :
dc.w 88,15 :
dc.w 88,25 :Coordonnees
dc.w -140,25 :
dc.w -140,16 :
gadtext78b dc.b 3,3 :Couleurs
dc.b 0 :Modus JAM1
even :Position Parite
dc.w -204 :Position X
dc.w 16 :Position Y
dc.l 0 :Font
dc.l gad78btext :Text
dc.l 0 :Texte suivant
* Gadget79 (Proportional Mover) ---------------------------------------------
gadget79 dc.l 0 :Gadget suivant
dc.w 276 :Position X
dc.w 50 :Position Y
dc.w 20 :Largeur Hit-Box
dc.w 82 :Hauteur Hit-Box
dc.w 4 :Flags
dc.w 0 :Activation flags
dc.w 3 :Gadget-typ -Prop-
dc.l moverimage79 :Gadget-image
dc.l 0 :Select gadget
dc.l 0 :Text
dc.l 0 :Exclude
dc.l propinfo79 :Special Info
dc.w 79 :Gadget-ID
dc.l 0 :User Data
moverimage79 dc.w 0,0 :Offset
dc.w 7 :Dimensions
filemoversize dc.w 3 :
dc.w 1 :Nb bitplanes
dc.l moverdata79 :Donnees image
dc.b 1,1 :Couleurs
dc.l 0 :Structure suivante
moverdata79 dc.b 0 :
dc.b 0 :Donnees image
dc.b 0 :-pas de donnees-
dc.b 0 :
propinfo79 dc.w 5 :Flags -AUTOKNOB FREEVERT-
dc.w 0 :Position x mover
filemoverpos dc.w 0 :Position y mover
dc.w 0 :Valeur decalage horizontal
filemoverstep dc.w $ffff :Valeur decalage vertical
dc.w 0 :Largeur Box
dc.w 0 :Hauteur Box
dc.w 0 :Decalage absolu horizontal
dc.w 0 :Decalage absolu vertical
dc.w 0 :Bord gauche Box
dc.w 0 :Bord droit Box
even
* Structure pour affichage status ------------------------------------------
affstatus dc.b 1,1 :Couleurs
dc.b 0 :Modus JAM1
even :Position Parite
dc.w 66 :Position X
dc.w 172 :Position Y
dc.l 0 :Font
dc.l affstat :Text
dc.l 0 :Texte suivant
affstat ds.l 8
* Structure pour affichage noms de fichier ---------------------------------
affnames dc.b 1,1 :Couleurs
dc.b 0 :Modus JAM1
even :Position Parite
dc.w 12 :Position X
dc.w 51 :Position Y
dc.l 0 :Font
dc.l names :Text
dc.l 0 :Texte suivant
names ds.w 17
* Structure pour affichage noms de fichier ---------------------------------
afftitd dc.b 1,1 :Couleurs
dc.b 0 :Modus JAM1
even :Position Parite
dc.w 12 :Position X
dc.w 51 :Position Y
dc.l 0 :Font
dc.l affdown :Text
dc.l 0 :Texte suivant
affdown ds.w 17
* Structure pour affichage noms de fichier ---------------------------------
afftitu dc.b 1,1 :Couleurs
dc.b 0 :Modus JAM1
even :Position Parite
dc.w 12 :Position X
dc.w 123 :Position Y
dc.l 0 :Font
dc.l affup :Text
dc.l 0 :Texte suivant
affup ds.w 17
*************************************************************************
*************************************************************************
fileafferr1 dc.b 'No disk present - Bad drawer',0
even
fileafferr2 dc.b 'No file specified',0
even
fileafferr3 dc.b 'Directory truncated',0
even
titleload dc.b ' Load file',0
even
titlesave dc.b ' Save file',0
even
titledelete dc.b ' Delete file',0
even
gad61text dc.b ' df0 ',0
even
gad62text dc.b ' df1 ',0
even
gad63text dc.b ' dh0 ',0
even
gad64text dc.b ' Parent ',0
even
gad65text dc.b ' Drawer: ',0
even
gad76text dc.b 'Filename',0
even
gad77text dc.b ' Cancel ',0
even
gadload dc.b ' Load ',0
even
gadsave dc.b ' Save ',0
even
gaddelete dc.b ' Delete ',0
even
gad78btext dc.b ' Status ',0
even
nofilesel dc.b 'No file selected',$0d,$0a
even
fileselmsg dc.b $0d,$0a,'Fileselect V1.0 by F.Lienhardt - (info in file read.me)',$0d,$0a,$0a
even
fisel dc.b 'File selected : ',0
even