home *** CD-ROM | disk | FTP | other *** search
-
- OPT P=68000,AMIGA,CASE,O+,NOWARN,NODEBUG
-
- bra _main
- dc.b "$VER: "
- Title: dc.b "IndexAG v1.0 (15-02-1997) © by Claudio Buraglio",10,0
-
- _main: lea IndexName,a1
- bsr ReadArg ; Legge il primo argomento
- lea GuideName,a1
- bsr ReadArg ; Legge il II argomento
- lea FindText,a1
- bsr ReadArg ; Legge il III argomento
- lea Switch,a1
- bsr ReadArg ; Legge il IV argomento
- lea Short,a1
- bsr ReadArg ; Legge il V argomento
-
- lea Switch+1,a1
- cmp.b #"D",(a1)
- bne .OpenDos
-
- lea FindText,a1 ; Il testo da cercare quanto e' lungo ?
- moveq.l #0,d0
- .Loop: addq.l #1,d0
- tst.b (a1)+
- bne .Loop
- move.l d0,FindLen
-
- .OpenDos:
- move.l #0,d0 ; Version
- lea DosName,a1
- move.l 4,a6
- jsr -552(a6) ; OpenLibrary
- tst.l d0
- beq rts
- move.l d0,DosBase
-
- move.l #Title,d1
- move.l DosBase,a6
- jsr -$3b4(a6) ; PutStr
-
- lea IndexName,a0 ; se non e' stato specificato un file
- tst.b (a0) ; .indice esce
- beq NoArgs
-
- lea FindText,a1 ; Testo da cercare
- tst.b (a1)
- beq .NoFindArg ; se esiste un testo da cercare lo
- bsr StrToUpper ; porta in uppercasae
-
-
- ;--------------------------------------------------------
- .NoFindArg: lea GuideName,a1 ; se esiste il nome con cui
- tst.b (a1) ; salvare il file .guide
- bne CercaSuff2 ; salta a CercaSuff2
-
- .CopiaNome: move.b (a0)+,(a1)+ ; copia IndexName(a0) in GuideName(a1)
- tst.b (a0)
- bne .CopiaNome
-
- CercaSuff: cmp.b #".",(a1) ; se trova il punto di .indice
- beq .Punto ; lo riscrive in .guide
-
- cmp.l #GuideName,a1 ; se non e' stato trovato nessun punto
- beq NoSuff ; esce segnalando l'errore altrimenti...
- subq.l #1,a1 ; decrementa a1
- bra CercaSuff ; e luppa.
-
- .Punto: move.b #".",(a1)+ ; scrive .guide
- move.b #"g",(a1)+
- move.b #"u",(a1)+
- move.b #"i",(a1)+
- move.b #"d",(a1)+
- move.b #"e",(a1)+
- move.b #$00,(a1)
-
- ;--------------------------------------------------------
-
- CercaSuff2: lea IndexName,a1
-
- .Cerca: cmp.b #".",(a1) ; se trova il punto
- beq .LabelCD ; salta..
- tst.b (a1)+ ; se trova uno zero
- beq NoSuff ; segnala l'errore
- bra .Cerca
-
- .LabelCD: lea NrDisco,a2
- cmp.b #"T",-2(a1) ; AMINE(T)n.
- beq CercaDisco
- cmp.b #"T",-3(a1) ; AMINE(T)nn.
- beq CercaDisco
- bra NoSuff ; segnala l'errore
-
- CercaDisco: cmp.b #"T",-1(a1) ; se siamo alla fine di AMINET
- beq CopiaNrDisco ; copia il nr. disco
- subq.l #1,a1 ; Decrementa il ptr di 1
- bra CercaDisco ; altrimenti continua la ricerca
-
- CopiaNrDisco: move.b (a1)+,(a2)+
- cmp.b #".",(a1) ; se arriviamo al punto il nr del CD
- bne CopiaNrDisco ; e' finito, quindi...
- move.b #" ",(a2)+ ; aggiunge uno spazio e
- move.b #$00,(a2) ; un terminatore NULL
-
- FineNrDisco: lea Switch+1,a3 ; se come Switch e' specificato
- cmp.b #"A",(a3) ; (A)ppend
- beq .CaricaCounter ; carica un possibile index.tmp
-
- bra OpenLoadIndex ; altrimenti salta la routine
-
- .CaricaCounter: move.l #CounterFile,d1
- move.l #1005,d2 ; OldFile
- move.l DosBase,a6
- jsr -30(a6) ; Open
- tst.l d0
- beq OpenLoadIndex
- move.l d0,File
-
- move.l d0,d1 ; File Handle
- move.l #FileCounter,d2 ; Buffer
- move.l #4,d3
- move.l DosBase,a6
- jsr -42(a6) ; Read
-
- move.l File,d1
- move.l DosBase,a6
- jsr -36(a6) ;Close
-
- OpenLoadIndex:
- move.l #IndexName,d1 ; Nome
- move.l #-2,d2 ; Access_Read
- move.l DosBase,a6
- jsr -84(a6) ; Lock
- move.l d0,d1
- beq NoFile
- move.l d0,Lock
-
- move.l #FIB,d2
- move.l DosBase,a6
- jsr -102(a6) ; Examine
- tst.l d0 ; zero se directory o empty file
- beq UnLock
- move.l FIB+$7c,d0
- move.l d0,FileLen
-
- add.l #16,d0
- move.l #0,d1 ; Request
- move.l 4,a6
- jsr -198(a6) ; AllocMem
- tst.l d0
- beq UnLock
-
- add.l #8,d0
- move.l d0,a0
- add.l FileLen,a0
- move.l 0,(a0)
-
- move.l d0,MemBase
-
- move.l #IndexName,d1 ; Name
- move.l #1005,d2 ; OldFile
- move.l DosBase,a6
- jsr -30(a6) ; Open
- tst.l d0
- beq FreeMem
- move.l d0,File
-
- move.l d0,d1
- move.l MemBase,d2
- move.l FileLen,d3
- move.l DosBase,a6
- jsr -42(a6) ; Read
-
- move.l File,d1
- move.l DosBase,a6
- jsr -36(a6) ;Close
-
- ; Programma...
-
- move.l MemBase,a0
- move.l #0,-4(a0)
- move.l a0,d0
- add.l FileLen,d0
- subq.l #4,d0
- move.l d0,EndFile
-
- ; Apre il file di destinazione
-
- SkipOpenSource: lea Switch+1,a3
- cmp.b #"A",(a3)
- beq .Append
- bra .NewFile
-
- .Append: move.l #GuideName,d1
- move.l #1004,d2 ; ReadWrite
- move.l DosBase,a6
- jsr -30(a6) ; Open
- tst.l d0
- beq NoDest
- move.l d0,File
-
- move.l d0,d1 ; File Handle
- move.l #0,d2 ; Posizion
- move.l #1,d3 ; OFFSET_END
- move.l DosBase,a6
- jsr -66(a6) ; Seek
-
- bra .Guide
-
- .NewFile: move.l #GuideName,d1
- move.l #1006,d2 ; NewFile
- move.l DosBase,a6
- jsr -30(a6) ; Open
- tst.l d0
- beq NoDest
- move.l d0,File
-
- ; Tutto Ok. Creo .guide
-
- .Guide: move.l #18,FileWidth
- move.l #10,DirWidth
-
- lea Switch+1,a3
- cmp.b #"A",(a3)
- beq NoHeaderGuide
-
- WriteHeadGuide: move.l File,d1 ; File Handle
- move.l #AGHead1,d2 ; Buffer
- move.l #AGEndA,d3
- move.l DosBase,a6
- jsr -48(a6) ; Write
-
- lea IndexName,a0
- lea Path,a1
- moveq.l #0,d0
-
- .loop1: tst.b (a0)+
- bne .loop1
-
- .loop2 cmp.b #"_",-(a0)
- bne .loop2
- addq.l #1,a0
-
- .loop3: move.b (a0)+,(a1)+
- addq.l #1,d0
- cmp.b #".",(a0)
- bne .loop3
-
- move.b #" ",(a1)+
- move.b #" ",(a1)+
- move.b #"-",(a1)+
- move.b #" ",(a1)+
- move.b #" ",(a1)+
- addq.l #5,d0
-
- lea FindText,a0
- .loop4: move.b (a0)+,(a1)+
- addq.l #1,d0
- tst.b (a0)
- bne .loop4
-
- move.l File,d1 ; File Handle
- move.l #Path,d2 ; Buffer
- move.l d0,d3
- move.l DosBase,a6
- jsr -48(a6) ; Write
-
- cmp.b #"S",Short
- beq HeaderShort
-
- move.l File,d1 ; File Handle
- move.l #AGHead2,d2 ; Buffer
- move.l #AGEndB,d3
- move.l DosBase,a6
- jsr -48(a6) ; Write
- bra NoHeaderGuide
-
- HeaderShort: move.l File,d1 ; File Handle
- move.l #AGHead3,d2 ; Buffer
- move.l #AGEndC,d3
- move.l DosBase,a6
- jsr -48(a6) ; Write
-
- NoHeaderGuide:
- move.l MemBase,a0
- move.l a0,PtFile
- move.l a0,a5
-
- CicloProgramma:
-
- lea FindText,a1 ; Testo da cercare
- tst.b (a1)
- beq FillAree
-
- move.l a5,a0 ; Buffer di ricerca
-
- lea Switch+1,a3
- cmp.b #"D",(a3)
- bne .CercaTesto
- bsr CercaDir
- bra .Continua
-
- .CercaTesto: bsr CercaTesto
- .Continua: tst.b d0 ; -1 = errore, 0 = OK
- bne FineProg
- move.l a0,a5
-
- FillAree: lea AGLine,a1
- move.l #254,d0
- .Fill1: move.b #$00,(a1)+
- dbra d0,.Fill1
-
- lea AGLine,a1
- move.l FileWidth,d0
- addq.l #2,d0
- .Fill: move.b #" ",(a1)+
- dbra d0,.Fill
- move.b #$00,(a1)
-
- move.l a5,a0
-
- move.l a0,PtFile
- lea AGLine,a1
- move.b #"@",(a1)+
- move.b #"{",(a1)+
- move.b #'"',(a1)+
-
- CopiaFile: move.b (a0)+,(a1)+
- tst.b (a1)
- beq FineNome
- cmp.b #"~",(a0)
- beq FindFine
- bra CopiaFile
-
- FindFine tst.b (a1)+
- bne FindFine
- subq.l #1,a1
-
- FineNome: move.b #'"',(a1)+
- move.b #' ',(a1)+
-
- move.l a0,PtDir
-
- lea AGCommand,a2
- CopiaComm: move.b (a2)+,(a1)+
- tst.b (a2)
- bne CopiaComm
-
- lea NrDisco,a2
- CopiaNumDisk1: move.b (a2)+,(a1)+
- tst.b (a2)
- bne CopiaNumDisk1
-
- .FindDir: cmp.b #"~",(a0)+
- beq CopiaDir1
- bra .FindDir
-
- CopiaDir1: move.l a1,PtPath
- .CopiaDir: move.b (a0)+,(a1)+
- cmp.b #"~",(a0)
- bne .CopiaDir
- move.b #"/",(a1)+
-
- move.l PtFile,a0
- .CopiaFile: move.b (a0)+,(a1)+
- cmp.b #"~",(a0)
- bne .CopiaFile
- move.b #'"',(a1)+
- move.b #'}',(a1)+
- move.b #' ',(a1)+
-
- move.l a1,a5
-
- move.l DirWidth,d0
- subq.l #1,d0
- .Fill: move.b #" ",(a1)+
- dbra d0,.Fill
- move.b #$00,(a1)
- move.l a5,a1
-
- .FindDirArea: cmp.b #"~",(a0)+
- beq CopiaDir
- bra .FindDirArea
-
- CopiaDir: cmp.b #"S",Short
- beq FinePathArea
-
- .CopiaDir: move.b (a0)+,(a1)+
- tst.b (a1)
- beq FinePathArea
- cmp.b #"~",(a0)
- beq FinePath
- bra .CopiaDir
-
- FinePath: tst.b (a1)+
- bne FinePath
- subq.l #1,a1
-
- FinePathArea: move.b #" ",(a1)+
-
-
- FindSize: cmp.b #"~",(a0)+
- bne FindSize
-
- CopiaSize: cmp.b #"~",2(a0)
- beq .CopiaSizeS2
- cmp.b #"~",3(a0)
- beq .CopiaSizeS1
- bra .CopiaSize
-
- .CopiaSizeS2: move.b #" ",(a1)+
- .CopiaSizeS1: move.b #" ",(a1)+
- .CopiaSize: move.b (a0)+,(a1)+
- cmp.b #"~",(a0)
- bne .CopiaSize
-
- move.b (a0)+,(a1)
- move.b #" ",(a1)+ ; spazio dopo size
- ; Numero Disco
- cmp.b #"S",Short
- beq .finedisco
-
- lea NrDisco,a2
-
- tst.b 2(a2)
- beq .uno
- move.b (a2)+,(a1)+
- move.b (a2)+,(a1)+
- bra .finedisco
- .uno: move.b #" ",(a1)+
- move.b (a2)+,(a1)+
- .finedisco: move.b #" ",(a1)+
- move.b #'@',(a1)+
- move.b #'{',(a1)+
- move.b #'"',(a1)+
-
- CopiaCommento: move.b (a0)+,(a1)+
- cmp.b #10,(a0)
- bne CopiaCommento
- move.b #'"',(a1)+
- move.b #" ",(a1)+
-
- cmp.b #"~",-3(a0)
- bne .go
- cmp.b #"N",-2(a0)
- bne .go
- cmp.b #"C",-1(a0)
- bne .go
- cmp.b #$0a,-0(a0)
- bne .go
-
- lea AGNoComment,a2
- .CopyNoComment: move.b (a2)+,(a1)+
- tst.b (a2)
- bne .CopyNoComment
- bra FineCommento
-
- .go: lea AGCommand,a2
- .CopiaComm: move.b (a2)+,(a1)+
- tst.b (a2)
- bne .CopiaComm
-
- lea NrDisco,a2
- CopiaNumDisk2: move.b (a2)+,(a1)+
- tst.b (a2)
- bne CopiaNumDisk2
-
- move.l PtPath,a2
- .CopiaPath: move.b (a2)+,(a1)+
- cmp.b #" ",(a2)
- bne .CopiaPath
-
- .FindEnd: cmp.b #'"',-(a1)
- bne .FindEnd
-
- move.b #" ",(a1)+
- move.b #"C",(a1)+ ; Identifica il commento
- move.b #'"',(a1)+
- move.b #"}",(a1)+
-
- FineCommento: move.b (a0)+,(a1)+ ; LF
- move.b #$00,(a1)+ ; Fine riga
- move.l a0,a5
-
- ; move.l #AGLine,d1
- ; move.l DosBase,a6
- ; jsr -$3b4(a6) ; PutStr
-
- lea AGLine,a1
- moveq.l #0,d3
- conta: addq.l #1,d3
- tst.b (a1)+
- bne conta
- subq.l #1,d3
-
- move.l File,d1 ; File Handle
- move.l #AGLine,d2 ; Buffer header IFF
- move.l DosBase,a6
- jsr -48(a6) ; Write
-
- addq.l #1,FileCounter
-
- move.l EndFile,d0
- cmp.l d0,a5
- bge FineProg
- bra CicloProgramma
-
- ;--------------------------------------------------------------
- FineProg: lea Switch+1,a3
- cmp.b #"A",(a3)
- beq CloseDestFile
-
- Footer: lea NrEntry,a1
- move.b #$0a,(a1)+
-
- move.l FileCounter,d2
- tst.b d2
- beq AddStringa0
- cmp.b #1,d2
- beq AddStringa1
- move.l A1,-(SP)
- bsr Decl
- move.l (SP)+,A1
-
- lea ConBinDec+2,a0
- Uguale: cmp.b #"0",(a0)+
- beq Uguale
- subq.l #1,a0
-
- CopiaLenght: move.b (a0)+,(a1)+
- cmp.b #"0",(a0)
- blt AddStringa
- cmp.b #"9",(a0)
- bhi AddStringa
- bra CopiaLenght
-
- AddStringa0: lea TxNote0,a0
- bra CopiaNota
- AddStringa1: lea TxNote1,a0
- bra CopiaNota
- AddStringa: lea TxNote2,a0
- CopiaNota: move.b (a0)+,(a1)+
- tst.b (a0)
- bne CopiaNota
-
- lea AGEnd,a0
- CopiaEnd: move.b (a0)+,(a1)+
- tst.b (a0)
- bne CopiaEnd
-
- lea NrEntry,a1
- moveq.l #0,d3
- ContaLenght: addq.l #1,d3
- tst.b (a1)+
- bne ContaLenght
- subq.l #1,d3
-
- move.l File,d1 ; File Handle
- move.l #NrEntry,d2 ; Buffer
- move.l DosBase,a6
- jsr -48(a6) ; Write
-
- move.l File,d1 ; File Handle
- move.l #AGEnd,d2 ; Buffer
- move.l #10,d3
- move.l DosBase,a6
- jsr -48(a6) ; Write
-
- CloseDestFile: move.l File,d1
- move.l DosBase,a6
- jsr -36(a6) ;Close
-
- lea Switch+1,a3
- cmp.b #"A",(a3)
- beq .SalvaCounter
- bra Print
-
- .DeleteCounter: move.l #CounterFile,d1
- move.l DosBase,a6
- jsr -72(a6) ; DeleteFile
- bra CloseDosBase
-
- .SalvaCounter: move.l #CounterFile,d1
- move.l #1006,d2 ; NewFile
- move.l DosBase,a6
- jsr -30(a6) ; Open
- tst.l d0
- beq Print
- move.l d0,File
-
- move.l d0,d1 ; File Handle
- move.l #FileCounter,d2 ; Buffer
- move.l #4,d3
- move.l DosBase,a6
- jsr -48(a6) ; Write
-
- move.l File,d1
- move.l DosBase,a6
- jsr -36(a6) ;Close
-
- ;=================================================================
-
- Print: move.l #GuideName,d1
- move.l DosBase,a6
- jsr -$3b4(a6) ; PutStr
-
- move.l #TxtSuccess,d1
- move.l DosBase,a6
- jsr -$3b4(a6) ; PutStr
-
- FreeMem:
- move.l FileLen,d0
- add.l #16,d0
- move.l MemBase,a1
- sub.l #8,a1
- move.l 4,a6
- jsr -210(a6) ; FreeMem
-
- UnLock: move.l Lock,d1
- move.l DosBase,a6
- jsr -90(a6) ; UnLOck
-
- CloseDosBase:
- move.l DosBase,a1
- move.l 4,a6
- jsr -414(a6) ; CloseLibrary
- clr.l d0
- rts: rts
-
- ;------------------------------------------------------------
- MakeUpperCase:
- cmp.b #"a",d0
- blt .rts
- cmp.b #"z",d0
- bhi .rts
- bclr #5,d0
- .rts: rts
-
- ;------------------------------------------------------------
- ; Gestione Errori
-
- NoFile: move.l #TxtSourceErr,d1
- move.l DosBase,a6
- jsr -$3b4(a6) ; PutStr
- bra CloseDosBase
-
- NoSuff: move.l #TxtSuffErr,d1
- move.l DosBase,a6
- jsr -$3b4(a6) ; PutStr
- bra CloseDosBase
-
- NoDest: move.l #TxtDestErr,d1
- move.l DosBase,a6
- jsr -$3b4(a6) ; PutStr
- bra FreeMem
-
- NoArgs: move.l #TxtUsage,d1
- move.l DosBase,a6
- jsr -$3b4(a6) ; PutStr
- bra CloseDosBase
-
- ;-------------------------------------------------------------
- CercaTesto: movem.l A1-A2,-(SP) ; a0 = buffer, a1 = testo
- move.l a1,a2
-
- .Loop: tst.b (a1)
- beq .Trovato
-
- move.b (a0),d0
- tst.b d0
- beq .NoMatch
-
- cmp.b #"a",d0
- blt .Upper ; e' inferiore
- cmp.b #"z",d0
- bhi .Upper ; e' superiore
- bclr #5,d0 ; Force Uppercase
-
- .Upper: cmp.b (a1),d0
- beq .Next
-
- move.l a2,a1 ; Ripristina il ptr del testo
- addq.l #1,a0
- bra .Loop
-
- .Next: addq.l #1,a1
- addq.l #1,a0
- bra .Loop
-
- .NoMatch: move.l #-1,d0
- movem.l (SP)+,A1-A2
- rts
-
- .Trovato: tst.b -1(a0)
- beq .Inizio
- cmp.b #$0a,-1(a0)
- beq .Inizio
- subq.l #1,a0
- bra .Trovato
-
- .Inizio: moveq.l #0,d0
- movem.l (SP)+,A1-A2
- rts
-
- ;-------------------------------------------------------------
- CercaDir: movem.l A1-A2,-(SP) ; a0 = buffer, a1 = testo
- move.l a1,a2
-
- .CercaDir: cmp.b #"~",(a0)+
- bne .CercaDir
-
- .Loop: tst.b (a1)
- beq .Trovato
-
- move.b (a0),d0
- tst.b d0
- beq .NoMatch
-
- cmp.b #"~",d0
- beq .FineDirArea
-
- cmp.b #"a",d0
- blt .Upper ; e' inferiore
- cmp.b #"z",d0
- bhi .Upper ; e' superiore
- bclr #5,d0 ; Force Uppercase
-
- .Upper: cmp.b (a1),d0
- beq .Next
-
- .NextR: move.l a2,a1 ; Ripristina il ptr del testo
- addq.l #1,a0
- bra .Loop
-
- .Next: addq.l #1,a1
- addq.l #1,a0
- bra .Loop
-
- .NoMatch: move.l #-1,d0
- movem.l (SP)+,A1-A2
- rts
-
- .FineDirArea: cmp.b (a1),d0
- beq .Trovato
-
- cmp.b #$0a,(a0)+
- bne .FineDirArea
- move.l a2,a1 ; Ripristina il ptr del testo
- bra .CercaDir
-
- .Trovato: cmp.b #"~",(a0)
- bne .NextR
- move.l FindLen,d1
- sub.l d1,a0
- cmp.b #"~",(a0)
- bne .FalsoAllarme
-
- .Trovato2: tst.b -1(a0)
- beq .Inizio
- cmp.b #$0a,-1(a0)
- beq .Inizio
- subq.l #1,a0
- bra .Trovato2
-
- .Inizio: moveq.l #0,d0
- movem.l (SP)+,A1-A2
- rts
-
- .FalsoAllarme: add.l d1,a0
- bra .FineDirArea
-
- StrToUpper: movem.l a1,-(SP)
- .NextChar: cmp.b #"a",(a1)
- blt .TestFine ; e' inferiore
- cmp.b #"z",(a1)
- bhi .TestFine ; e' superiore
- bclr #5,(a1) ; Force Uppercase
- .TestFine: tst.b (a1)+
- bne .NextChar
- movem.l (SP)+,a1
- rts
-
- ;-------------------------------------------------------------
- ReadArg:cmp.b #$0a,(a0) ; se Line Feed...
- beq .Exit ; esce.
- cmp.b #$00,(a0) ; se Nullo...
- beq .Exit ; esce.
- cmp.b #'"',(a0) ; Se incontra le virgolette "
- beq .Virg ; usa l'apposita routine
- cmp.b #"'",(a0) ; Se incontra le virgolette '
- beq .Virg ; usa l'apposita routine
- cmp.b #" ",(a0) ; Cerca inizio testo
- bne .loop ; se si loop
- addq #1,a0
- bra ReadArg ; se no, cicla.
- .loop: cmp.b #$0a,(a0) ; se Line Feed
- beq .Exit
- cmp.b #$20,(a0) ; o un'altro spazio
- beq .Exit ; esce
- move.b (a0)+,(a1)+ ; copia lettera
- bra .loop ; e cicla
- .Virg: addq.l #1,a0
- .V: cmp.b #$0a,(a0) ; se Line Feed
- beq .Exit
- cmp.b #'"',(a0) ; o un'altra virgoletta
- beq .ExV ; esce
- cmp.b #"'",(a0)
- beq .ExV
- move.b (a0)+,(a1)+ ; copia lettera
- bra .V ; e cicla
- .ExV: addq #1,a0
- .Exit: rts
-
- NL: move.l #NewLineChar,d1
- move.l DosBase,a6
- jsr -$3b4(a6) ; PutStr
- rts
- *----------------------------------------------------------
- * -- Conversione di d2.l -> Dec-String a partire da (a4) - (d0,d1,d2-a4,a5)
-
- Decl: moveq #7,d0 Conversione di 8 Cifre
- lea ConBinDec+1,a4 +1 per spazio per segno
- lea .Table,a5 Tabella
-
- .Next: moveq #'0',d1 Inizio con cifra '0'
- .Dec: addq #1,d1 Cifra + 1
- sub.l (a5),d2 c'e' ancora qualcosa?
- bcc.s .Dec se si
- subq #1,d1 correggi cifra
- add.l (a5),d2 quindi anche
- move.b d1,(a4)+ Cifra -> Buffer
- lea 4(a5),a5 next power_10
- dbra d0,.Next for 8 Digits
- rts
-
- cnop 0,4
- .Table: dc.l 10000000
- dc.l 1000000
- dc.l 100000
- dc.l 10000
- dc.l 1000
- dc.l 100
- dc.l 10
- dc.l 1
-
- AGCommand: dc.b 'system "ICD:Bin/E ',0
- AGNoComment: dc.b "LINK ICD:Bin/Help.guide/NOCOM}",0
- AGEnd: dc.b "@ENDNODE",10,10,0
- TxNote0: dc.b "There is no archive to list.",10,10,0
- TxNote1: dc.b "One file listed.",10,10,0
- TxNote2: dc.b " files listed",10,10,0
-
- AGHead1: dc.b '@database Archive',10
- AGHa: dc.b '@node main "'
- AGEndA: EQU *-AGHead1
-
- AGHead2: dc.b '"',10,10,'@{"Filename " LINK ICD:Bin/Help.guide/FILENAME} Directory Size CD @{"Description" LINK ICD:Bin/Help.guide/DESCRIPTION }',10
- AGb: dc.b '-----------------------------------------------------------',10
- AGEndB: EQU *-AGHead2
- AGHead3: dc.b '"',10,10,'@{"Filename " LINK ICD:Bin/Help.guide/FILENAME} Size @{"Description" LINK ICD:Bin/Help.guide/DESCRIPTION }',10
- AGc: dc.b '-----------------------------------------------',10
- AGEndC: EQU *-AGHead3
-
-
- * * * Campo dati
- cnop 0,8
-
-
- DosName: dc.b "dos.library",0
- NewLineChar: dc.b 10,0
-
- TxtUsage: dc.b 10,"Uso: IndiceAG <File.indice> [file.guide] [cercare] [-D,-A,]",10,10
- dc.b "Questo comando crea un indice in formato AmigaGuide, se come parametro",10
- dc.b "gli viene passato un file EARSANCDx.indice creato con CreaIndice.",10,10,0
- TxtSourceErr: dc.b 10,"ERROR! Can't find Source File!",10,10,0
- TxtSuffErr: dc.b 10,"ERROR! The Source file Must be have the suffix .index .",10,10,0
- TxtDestErr: dc.b 10,10,"ERROR! Can't open destination file!",10,10,0
-
- TxtSuccess: dc.b " maked!",10,10,0
-
- CounterFile: dc.b "T:Counter.temp",0
-
- section AreaDati,BSS
-
- FIB: ds.b $104
-
- DosBase: ds.l 1
- Lock: ds.l 1
- FileLen: ds.l 1
- MemBase: ds.l 1
- File: ds.l 1
- EndFile: ds.l 1
- PtFile: ds.l 1
- PtDir: ds.l 1
- PtPath: ds.l 1
- FileWidth: ds.l 1
- DirWidth: ds.l 1
- FileCounter: ds.l 1
- FindLen: ds.l 1
-
- NrDisco ds.b 8
- ConBinDec: ds.b 12
- NrEntry: ds.b 80
- Switch: ds.b 80
- Path: ds.b 80
- Short: ds.b 4
-
- IndexName: ds.b 256
- GuideName: ds.b 256
- FindText: ds.b 256
-
- AGLine: ds.b 512
-