home *** CD-ROM | disk | FTP | other *** search
- ; Remember reader 1.0
- ;
- ; (c) 1998 Cyborg
-
- IncDir "Sys:Coder/"
- Include "Preass/Konstanten.inc"
- Include "Preass/ASL_lib.inc"
- Include "Preass/intuition.inc"
- Include "Include/Guienv.i"
- Include "Include/Libraries/gadtools.i"
-
- Main:
- Include "preass/Startup.i"
- Jsr Openlibs
- Tst.l D0
- Beq Mainende
- Jsr START
- Mainende:
- jsr Closelibs
- Move.l Error,d0
- tst.l d0
- beq .l1
- jmp ErrorHandling
- .l1: Rts
-
- Mode_NoCase= 100
- Mode_Case= 0
-
-
- FileReq:
- Move.l A0,LokalScreen
- Move.l AslBase,a6
- Move.l #ASL_FileRequest,d0
- Move.l #0,a0
- Jsr AllocAslRequest(a6)
- Move.l D0,Requester
- Tst.l Requester
- Beq .Select2
- move.l #ASLFR_Taglist,a0
- move.l LokalScreen,4(a0)
- Move.l Requester,a0
- Move.l #ASLFR_Taglist,a1
- Jsr ASLRequest(a6)
- Move.l D0,Result
- Tst.l Result
- Beq .Select2
- Clr.l D0
- Move.l Requester,A0
- Move.l 4(A0),D0
- Move.l D0,Filename_Zeiger
- Clr.l D0
- Move.l Requester,A0
- Move.l 8(A0),D0
- Move.l D0,Dirname_zeiger
- Move.l ExecBase,a6
- Move.l Dirname_zeiger,a0
- Move.l #Dirname,a1
- Move.l #100,d0
- Jsr Copymem(a6)
- Move.l Filename_zeiger,a0
- Move.l #Name,a1
- Move.l #100,d0
- Jsr Copymem(a6)
- Lea Name_Bak,a0
- move.l Dirname_zeiger,a1
- .Sel1: move.b (a1)+,(a0)+
- cmpi.b #0,(a1)
- bne .sel1
- cmpi.b #":",-1(a0)
- beq .sel12
- move.b #"/",(a0)+
- .sel12: move.l Filename_zeiger,a1
- .Sel2: move.b (a1)+,(a0)+
- cmpi.b #0,(a1)
- bne .sel2
- move.b #0,(a0)+
- .Select2:
- Tst.l Requester
- Beq .lab1
- Move.l AslBase,a6
- Move.l Requester,a0
- Jsr FreeASLRequest(a6)
- .lab1: RTS
-
- FillBuffer:
- subq.l #1,d1
- .l1:move.b d0,(a0)+
- dbra d1,.l1
- RTS
-
- ConvertZahl:
- Move.l #" ",Zusatz
- Move.l #" 0",Zahl
- ConvertZahl1:
- Movem.l a0-a5,-(sp)
- Lea Zusatz,a0
- Cmpi.l #0,d7
- bpl .l0
- Neg.l d7
- move.b #"-",zahl
- Cmpi.l #9999,d7
- bgt .l0
- move.b #"-",zusatz
- .l0:Move.l d7,d0
- MoveQ.l #-1,d1
- .l1:AddQ.l #1,d1
- Subi.l #10000000,d0
- Bpl .l1
- Addi.l #10000000,d0
- addi.l #$30,d1
- cmpi.b #"0",d1
- Beq .l11
- move.b d1,0(a0)
- .l11:MoveQ.l #-1,d1
- .l2:AddQ.l #1,d1
- Subi.l #1000000,d0
- Bpl .l2
- Addi.l #1000000,d0
- addi.l #$30,d1
- cmpi.b #" ",0(a0)
- bne .l22
- cmpi.b #"0",d1
- Beq .l21
- .l22:
- move.b d1,1(a0)
- .l21:MoveQ.l #-1,d1
- .l3:AddQ.l #1,d1
- Subi.l #100000,d0
- Bpl .l3
- Addi.l #100000,d0
- addi.l #$30,d1
- cmpi.b #" ",1(a0)
- bne .l32
- cmpi.b #"0",d1
- Beq .l31
- .l32:
- move.b d1,2(a0)
- .l31:MoveQ.l #-1,d1
- .l4:AddQ.l #1,d1
- Subi.l #10000,d0
- Bpl .l4
- Addi.l #10000,d0
- addi.l #$30,d1
- cmpi.b #" ",2(a0)
- bne .l42
- cmpi.b #"0",d1
- Beq .l41
- .l42:
- move.b d1,3(a0)
- .l41:MoveQ.l #-1,d1
- .l5:AddQ.l #1,d1
- Subi.l #1000,d0
- Bpl .l5
- Addi.l #1000,d0
- addi.l #$30,d1
- cmpi.b #" ",3(a0)
- bne .l52
- cmpi.b #"0",d1
- Beq .l51
- .l52:
- move.b d1,4(a0)
- .l51:MoveQ.l #-1,d1
- .l6:AddQ.l #1,d1
- Subi.l #100,d0
- Bpl .l6
- Addi.l #100,d0
- addi.l #$30,d1
- cmpi.b #" ",4(a0)
- bne .l62
- cmpi.b #"0",d1
- Beq .l61
- .l62:
- move.b d1,5(a0)
- .l61:MoveQ.l #-1,d1
- .l7:AddQ.l #1,d1
- Subi.l #10,d0
- Bpl .l7
- Addi.l #10,d0
- addi.l #$30,d1
- cmpi.b #" ",5(a0)
- bne .l72
- cmpi.b #"0",d1
- Beq .l71
- .l72:
- move.b d1,6(a0)
- .l71:
- addi.l #$30,d0
- move.b d0,7(a0)
- Movem.l (sp)+,a0-a5
- Tst.l D6
- Beq .ende
- Move.l DOSBase,a6
- Move.l D6,d1
- Move.l #Zusatz,d2
- Move.l #8,d3
- Jsr Write(a6)
- .ende:RTS
-
- CompareString:
- movem.l d0-d7/a0-a6,-(sp)
- movem.l d0-d1/a0-a1,-(sp)
- Jsr CountString
- Move.l D0,Stringlaenge
- movem.l (sp)+,d0-d1/a0-a1
- movem.l d0-d1/a0-a1,-(sp)
- Move.l a1,A0
- Jsr CountString
- Cmp.l Stringlaenge,D0
- Beq .l0
- movem.l (sp)+,d0-d1/a0-a1
- bra .fehler
- .l0:movem.l (sp)+,d0-d1/a0-a1
- cmpi.l #Mode_Nocase,d1
- beq .nocase
- move.l Stringlaenge,d1
- subq.l #1,d1
- addi.l d0,a1
- .l1:move.b (a0)+,d0
- cmp.b (a1)+,d0
- bne .fehler
- dbra d1,.l1
- movem.l (a7)+,d0-d7/a0-a6
- moveq.l #-1,d0
- RTS
- .NoCase:
- move.l Stringlaenge,d1
- subq.l #1,d1
- addi.l d0,a1
- .l2:move.b (a0)+,d0
- move.b (a1)+,d2
- bclr #5,d0
- bclr #5,d2
- cmp.b d2,d0
- bne .fehler
- dbra d1,.l2
- movem.l (a7)+,d0-d7/a0-a6
- moveq.l #-1,d0
- RTS
- .Fehler:
- movem.l (a7)+,d0-d7/a0-a6
- moveq.l #0,d0
- RTS
-
- CountString:
- move.l a1,-(Sp)
- move.l a0,a1
- .l1: cmpi.b #$00,(a1)+
- bne .l1
- lea -1(a1),a1
- sub.l a0,a1
- move.l a1,d0
- move.l (sp)+,a1
- RTS
-
- CountEOL:
- move.l a1,-(Sp)
- move.l a0,a1
- .l1: cmpi.b #$0a,(a1)
- beq .l2
- cmpi.b #$00,(a1)+
- bne .l1
- lea -1(a1),a1
- .l2: sub.l a0,a1
- move.l a1,d0
- addq.l #1,d0
- cmpi.b #$00,(a0)
- beq .null
- move.l (sp)+,a1
- RTS
- .null: clr.l d0
- move.l (sp)+,a1
- RTS
-
- CD:
- Move.l DOSBase,a6
- Move.l a0,d1
- Move.l #Access_read,d2
- Jsr Lock(a6)
- Tst.l d0
- Beq .ende
- Move.l d0,d1
- Jsr Currentdir(a6)
- Move.l d0,d1
- Jsr Unlock(a6)
- moveq.l #-1,d0
- .ende: RTS
-
- GetFilename:
- cmpi.l #0,laenge
- beq .l13
- cmpi.l #1,laenge
- beq .l13
- Move.l Adresse,a0
- .l1: cmpi.b #`"`,(a0)
- beq .l10
- cmpi.b #` `,(a0)+
- beq .l1
- lea -1(a0),a1
- .l2: cmpi.b #`"`,(a0)
- beq .l11
- cmpi.b #$0a,(a0)
- beq .l12
- cmpi.b #$00,(a0)
- beq .l12
- cmpi.b #` `,(a0)+
- bne .l2
- Lea -1(a0),a2
- .l3: suba.l a1,a2
- Move.l ExecBase,a6
- Move.l a1,a0
- Move.l #Filename,a1
- Move.l a2,d0
- Jsr Copymem(a6)
- Move.l a2,d0
- rts
- .l10: lea 1(a0),a1
- bra .l2
- .l11: lea 1(a0),a1
- bra .l3
- .l12: move.l a0,a2
- bra .l3
- .l13: moveq.l #0,d0
- RTS
-
-
-
- Start:
- Move.l DOSBase,a6
- Jsr Output(a6)
- Move.l D0,OH
- Move.l #Envarc_Remembername000,d1
- Move.l #Mode_old,d2
- Jsr Open(a6)
- Move.l D0,TH
- Cmp.l #0,D0
- Beq .ende
- .l1:
- Move.l TH,d1
- Move.l #Buffer1,d2
- Move.l #250,d3
- Jsr Fgets(a6)
- Move.l D0,Result
- Move.l TH,d1
- Move.l #Buffer3,d2
- Move.l #250,d3
- Jsr Fgets(a6)
- Move.l D0,Result
- Move.l Result,d0
- Cmp.l #0,D0
- Beq .close
- Move.l #Envarc_Remembername001,d1
- Move.l #Mode_old,d2
- Jsr Open(a6)
- Move.l D0,FH
- Cmp.l #0,D0
- Bne .pre0000
- Bra .Pre0001
- .Pre0000:
-
- .l3:
- Move.l FH,d1
- Move.l #Buffer2,d2
- Move.l #250,d3
- Jsr Fgets(a6)
- Move.l D0,Result
- Move.l Result,d0
- Cmp.l #0,D0
- Beq .l2
- Move.l #Buffer1,a0
- Move.l #Buffer2,a1
- Move.l #0,d0
- Move.l #MODE_nocase,d1
- Jsr Comparestring
- Cmp.l #0,D0
- Beq .l3
- Move.l DOSBase,a6
- Move.l #Buffer3,d1
- Move.l #0,d2
- Move.l #0,d3
- Jsr Execute(a6)
- .l2:
- Move.l FH,d1
- Jsr Close(a6)
- bra .l1
-
- .Pre0001:
-
- .close:
- Move.l TH,d1
- Jsr Close(a6)
- .ende:
- RTS
- Errorhandling:
- Move.l DOSBase,a6
- Jsr output(a6)
- Move.l D0,Ausgabe
- Move.l Error,d0
- Cmp.l #1,D0
- Beq .Pre0000
- Bra .Pre0001
- .Pre0000:
- Move.l DOSBase,a6
- Move.l Ausgabe,d1
- Move.l #Allgemeiner_Fehlerxnname000,d2
- Moveq.l #$13,d3
- Jsr Write(a6)
- .Pre0001:
- Move.l Error,d0
- Cmp.l #2,D0
- Beq .Pre0002
- Bra .Pre0003
- .Pre0002:
- Move.l DOSBase,a6
- Move.l Ausgabe,d1
- Move.l #Konnte_File_nicht_findenxnname001,d2
- Moveq.l #$19,d3
- Jsr Write(a6)
- .Pre0003:
- Move.l Error,d0
- Cmp.l #3,D0
- Beq .Pre0004
- Bra .Pre0005
- .Pre0004:
- Move.l DOSBase,a6
- Move.l Ausgabe,d1
- Move.l #Window_Screen_Fehlerxnname002,d2
- Moveq.l #$15,d3
- Jsr Write(a6)
- .Pre0005:
- Move.l Error,d0
- Cmp.l #4,D0
- Beq .Pre0006
- Bra .Pre0007
- .Pre0006:
- Move.l DOSBase,a6
- Move.l Ausgabe,d1
- Move.l #Library_nicht_gefundenxnname003,d2
- Moveq.l #$17,d3
- Jsr Write(a6)
- .Pre0007:
- Move.l Error,d0
- Cmp.l #5,D0
- Beq .Pre0008
- Bra .Pre0009
- .Pre0008:
- Move.l DOSBase,a6
- Move.l Ausgabe,d1
- Move.l #Fehlerhafte_Eingabexnname004,d2
- Moveq.l #$14,d3
- Jsr Write(a6)
- .Pre0009:
- Move.l Error,d0
- Cmp.l #6,D0
- Beq .Pre0010
- Bra .Pre0011
- .Pre0010:
- Move.l DOSBase,a6
- Move.l Ausgabe,d1
- Move.l #Speicherfehlerxnname005,d2
- Moveq.l #$0F,d3
- Jsr Write(a6)
- .Pre0011:
- RTS
- even
- Ausgabe: dc.l 0
- Allgemeiner_Fehlerxnname000:
- dc.b `Allgemeiner Fehler`,$a,``,0
- even
- Konnte_File_nicht_findenxnname001:
- dc.b `Konnte File nicht finden`,$a,``,0
- even
- Window_Screen_Fehlerxnname002:
- dc.b `Window|Screen Fehler`,$a,``,0
- even
- Library_nicht_gefundenxnname003:
- dc.b `Library nicht gefunden`,$a,``,0
- even
- Fehlerhafte_Eingabexnname004:
- dc.b `Fehlerhafte Eingabe`,$a,``,0
- even
- Speicherfehlerxnname005: dc.b `Speicherfehler`,$a,``,0
- even
-
- Even
- Openlibs:
- Move.l $4.w,a6
- Move.l #Aslname,a1
- Moveq.l #0,d0
- Jsr Openlibrary(a6)
- Move.l d0,Aslbase
- Tst.l D0
- Beq.w .ende
- Move.l #DOSname,a1
- Moveq.l #0,d0
- Jsr Openlibrary(a6)
- Move.l d0,DOSbase
- Tst.l D0
- Beq.w .ende
- RTS
- .ende: Move.l #4,Error
- Rts
- Closelibs:
- Move.l $4.w,a6
- Tst.l Aslbase
- Beq.w .ende00
- Move.l Aslbase,a1
- Jsr Closelibrary(a6)
- .ende00:Tst.l DOSbase
- Beq.w .ende01
- Move.l DOSbase,a1
- Jsr Closelibrary(a6)
- .ende01:Rts
- even
- WBmessage: dc.l 0
- Laenge: dc.l 0
- Adresse: dc.l 0
- Error: dc.l 0
- LokalScreen: dc.l 0
- Requester: dc.l 0
- Result: dc.l 0
- Filename_Zeiger: dc.l 0
- Dirname_zeiger: dc.l 0
- Zusatz: dc.l 0
- Zahl: dc.l 0
- Zahlyyy: dc.l 0
- Stringlaenge: dc.l 0
- OH: dc.l 0
- TH: dc.l 0
- FH: dc.l 0
- AslBase: dc.l 0
- DOSBase: dc.l 0
- NONE: dc.l 0
- even
- DirName: blk.b 256,0
- even
- Name: blk.b 256,0
- even
- Name_bak: blk.b 256,0
- even
- ASLFR_Taglist:
- dc.l ASLFR_screen,0
- dc.l ASLFR_PrivateIDCMP,Dostrue
- dc.l ASLFR_TextAttr,Dosfalse
- dc.l ASLFR_InitialLeftEdge,20
- dc.l ASLFR_InitialTopEdge,24
- dc.l ASLFR_InitialWidth,300
- dc.l ASLFR_Initialheight,210
- dc.l ASLFR_InitialDrawer,Dirname
- dc.l ASLFR_InitialFile,Name
- dc.l Tag_end,0
- Filename: blk.b 256,0
- even
- Version: dc.b "$VER: Remember Reader 1.0 30.3.98 (C) CYBORG 98",0
- even
- Buffer1: blk.b 250,0
- even
- Buffer3: blk.b 250,0
- even
- Buffer2: blk.b 250,0
- even
- Envarc_Remembername000:
- dc.b `Envarc:Remember.tasks`,0
- even
- Envarc_Remembername001:
- dc.b `Envarc:Remember.dump`,0
- even
- Aslname: dc.b "asl.library",0
- DOSname: dc.b "dos.library",0
- even
- Include "Preass:LVO3.0/Exec_lib.i"
- Include "Preass:LVO3.0/Asl_lib.i"
- Include "Preass:LVO3.0/DOS_lib.i"
-
-