home *** CD-ROM | disk | FTP | other *** search
- ********************************************************************************
- * Debugger for CoreEye by MC68 *
- * If you find any bugs in the program please let me know. *
- * Write to the following address: *
- * Andrzej Fien Finished: 14.09.1990 *
- * ul.Turkienicza 17/26 *
- * 35-010 Rzeszow *
- * POLAND *
- ********************************************************************************
-
- OpenLibrary EQU -552 ;(libName,version)(A1,D0)
- CloseLibrary EQU -414 ;(library)(A1)
- AllocMem EQU -198 ;(byteSize,requirements)(D0-D1)
- FreeMem EQU -210 ;(memoryBlock,byteSize)(A1,D0)
- FindTask EQU -294 ;(name)(A1)
- GetMsg EQU -372 ;(port)(A0)
- ReplyMsg EQU -378 ;(message)(A1)
- WaitPort EQU -384 ;(port)(A0)
-
- Open EQU -30 ;(name,accessMode)(D1-D2)
- Close EQU -36 ;(file)(D1)
- Read EQU -42 ;(file,buffer,length)(D1-D3)
- Write EQU -48 ;(file,buffer,length)(D1-D3)
- Output EQU -60 ;()
- Lock EQU -84 ;(name,type)(D1-D2)
- UnLock EQU -90 ;(lock)(D1)
- Examine EQU -102 ;(lock,fileInfoBlock)(D1-D2)
- Execute EQU -222 ;(string,file,file)(D1-D3)
-
- * stack frame map
- Flags EQU -60
- WhichFile EQU -59
- NumberFiles EQU -58
- FromFile EQU -57
- ClickCounter EQU -56
- ByteMode EQU -55
- SaveLock EQU -52
- SaveLength EQU -48
- WBMessage EQU -44
- PublicMem EQU -40
- ChipMem EQU -36
- RP2 EQU -32
- WW2 EQU -28
- RP1 EQU -24
- WW1 EQU -20
- IntBase EQU -16
- GfxBase EQU -12
- DosBase EQU -8
- Pointer EQU -4
-
- ******************** Code ******************************************************
-
- MOVE.L 4.W,A6
- MOVE.L #20000,D0
- MOVEQ #1,D1
- JSR AllocMem(A6)
- MOVE.L D0,MemPtr
- BEQ.W ProgramReady
- LEA DosName(PC),A1
- MOVEQ #0,D0
- JSR OpenLibrary(A6)
- MOVE.L D0,A6
- MOVE.L #XFile,D1
- MOVE.L #1005,D2
- JSR Open(A6)
- MOVE.L D0,D1
- MOVE.L D0,-(A7)
- MOVE.L MemPtr(PC),D2
- MOVE.L #20000,D3
- JSR Read(A6)
- MOVE.L (A7)+,D1
- JSR Close(A6)
- MOVE.L MemPtr(PC),A0
- SearchHunkCode CMPI.L #$3E9,(A0)+
- BNE.S SearchHunkCode
- MOVE.L (A0)+,D0
- LSL.L #2,D0
- MOVE.W D0,CodeOnly
- LEA 0(A0,D0.W),A1
- MOVE.L A1,A2
- MOVE.L A0,CodePtr
- SearchHunkReloc CMPI.L #$3EC,(A1)+
- BNE.S SearchHunkReloc
- MOVE.L (A1)+,D1
- ADDQ.W #4,A1
- SUBQ.W #1,D1
- MOVE.W D1,Counter+2
- RebuiltReloc MOVE.L (A1)+,D2
- MOVE.W D2,(A2)+
- DBF D1,RebuiltReloc
- SUBA.L A0,A2
- MOVE.W A2,Decrunched
- MOVE.L #WorkFile,D1
- MOVE.L #1006,D2
- JSR Open(A6)
- MOVE.L D0,D1
- MOVE.L D0,-(A7)
- MOVE.L CodePtr(PC),D2
- MOVE.W Decrunched(PC),D3
- EXT.L D3
- JSR Write(A6)
- MOVE.L (A7)+,D1
- JSR Close(A6)
- MOVE.L #PowerPacker,D1
- MOVEQ #0,D2
- MOVEQ #0,D3
- JSR Execute(A6)
- MOVE.L #WorkFile,D1
- MOVEQ #-2,D2
- JSR Lock(A6)
- MOVE.L D0,D1
- MOVE.L D0,-(A7)
- MOVE.L MemPtr(PC),D2
- JSR Examine(A6)
- MOVE.L (A7)+,D1
- JSR UnLock(A6)
- MOVE.L MemPtr(PC),A3
- MOVE.L 124(A3),D0
- SUBI.W #12,D0
- MOVE.W D0,Crunched
- MOVE.L #WorkFile,D1
- MOVE.L #1005,D2
- JSR Open(A6)
- MOVE.L D0,D1
- MOVE.L D0,-(A7)
- MOVE.L MemPtr(PC),D2
- MOVE.L #20000,D3
- JSR Read(A6)
- MOVE.L (A7)+,D1
- JSR Close(A6)
- MOVE.L MemPtr(PC),A0
- ADDQ.W #4,A0
- MOVE.W Crunched(PC),D0
- ADDQ.W #3,D0
- LEA Place(PC),A1
- MoveProgram MOVE.B (A0)+,(A1)+
- DBF D0,MoveProgram
- MOVE.B 3(A0),Corect3+1
- SUBA.L #Code,A1
- MOVE.L A1,D0
- BTST #1,D0
- BEQ.S LWAlign
- ADDQ.W #2,D0
- LWAlign LEA Code(PC),A0
- LEA 0(A0,D0.W),A1
- MOVE.L #$3F2,(A1)+
- SUBA.L #Program,A1
- MOVE.W A1,AllLength
- LSR.L #2,D0
- MOVE.L D0,Length1
- MOVE.L D0,Length2
- LSL.L #2,D0
- SUBI.W #16,D0
- LSR.W #1,D0
- SUBQ.W #1,D0
- MOVE.W D0,Code+2
- MOVE.W CodeOnly(PC),D0
- ADDI.W #732,D0
- BTST #2,D0
- BEQ.S DLWAlign
- ADDQ.W #4,D0
- DLWAlign MOVE.L D0,Begin+6
- MOVE.L D0,FreeChipMem+2
- MOVE.W Decrunched(PC),Corect1+2
- MOVE.W Crunched(PC),D0
- ADD.W D0,Corect1+6
- MOVE.W CodeOnly(PC),Corect2+2
- BSR.W Code
- MOVE.L #EyeFile,D1
- MOVE.L #1006,D2
- JSR Open(A6)
- MOVE.L D0,D1
- MOVE.L D0,-(A7)
- MOVE.L #Program,D2
- MOVE.W AllLength(PC),D3
- EXT.L D3
- JSR Write(A6)
- MOVE.L (A7)+,D1
- JSR Close(A6)
- MOVE.L A6,A1
- MOVE.L 4.W,A6
- JSR CloseLibrary(A6)
- MOVE.L MemPtr(PC),A1
- MOVE.L #20000,D0
- JSR FreeMem(A6)
- ProgramReady MOVEQ #0,D0
- RTS
-
- MemPtr DC.L 0
- CodePtr DC.L 0
- CodeOnly DC.W 0
- Decrunched DC.W 0
- Crunched DC.W 0
- AllLength DC.W 0
- XFile DC.B 'x',0
- WorkFile DC.B 'x.work',0
- EyeFile DC.B 'Eye',0
- PowerPacker DC.B 'sys:tools/pp',0
- EVEN
-
- Program DC.L $3F3,0,1,0,0
- Length1 DC.L 0,$3E9
- Length2 DC.L 0
- Code MOVE.W #0,D0
- LEA Begin(PC),A0
- Decode EORI.W #$620D,(A0)+
- DBF D0,Decode
- Begin MOVE.L 4.W,A6
- MOVE.L #0,D0
- MOVEQ #2,D1
- JSR AllocMem(A6)
- LINK A4,#-60
- MOVE.L D0,ChipMem(A4)
- BEQ.W Quit
- CLR.L WBMessage(A4)
- LEA DosName(PC),A1
- MOVEQ #0,D0
- JSR OpenLibrary(A6)
- MOVE.L D0,DosBase(A4)
- BEQ.W FreeChipMem
- SUBA.L A1,A1
- JSR FindTask(A6)
- MOVE.L D0,A3
- TST.L 172(A3)
- BEQ.S FromWB
- MOVE.L DosBase(A4),A6
- JSR Output(A6)
- MOVE.L D0,D1
- LEA Copyright(PC),A0
- MOVE.L A0,D2
- MOVEQ #TextLength,D3
- JSR Write(A6)
- MOVE.L 4.W,A6
- BRA.S AfterGetMsg
- FromWB LEA 92(A3),A0
- JSR WaitPort(A6)
- LEA 92(A3),A0
- JSR GetMsg(A6)
- MOVE.L D0,WBMessage(A4)
- AfterGetMsg MOVE.L ChipMem(A4),A2
- Corect1 LEA 0(A2),A1
- LEA Place+4(PC),A0
- BSR.S Decrunch
- Corect2 LEA 0(A2),A0
- MOVE.L A0,A3
- MOVE.L A2,D0
- Counter MOVE.W #0,D1
- Reloc32 MOVE.W (A0)+,D2
- ADD.L D0,0(A2,D2.W)
- DBF D1,Reloc32
- MOVE.W #732/2-1,D1
- ClearBuffers CLR.W (A3)+
- DBF D1,ClearBuffers
- JSR (A2)
- MOVE.L DosBase(A4),A1
- JSR CloseLibrary(A6)
- FreeChipMem MOVE.L #0,D0
- MOVE.L ChipMem(A4),A1
- JSR FreeMem(A6)
- MOVE.L WBMessage(A4),D5
- BEQ.S Quit
- MOVE.L D5,A1
- JSR ReplyMsg(A6)
- Quit UNLK A4
- MOVEQ #0,D0
- RTS
-
- Decrunch LEA Place(PC),A5
- Corect3 MOVEQ #0,D1
- MOVE.L -(A0),D5
- LSR.L D1,D5
- MOVEQ #32,D7
- SUB.B D1,D7
- Dec1 BSR.S Dec9
- TST.B D1
- BNE.S Dec4
- MOVEQ #0,D2
- Dec2 MOVEQ #2,D0
- BSR.S Dec10
- ADD.W D1,D2
- CMPI.W #3,D1
- BEQ.S Dec2
- Dec3 MOVEQ #8,D0
- BSR.S Dec10
- MOVE.B D1,-(A1)
- DBF D2,Dec3
- CMPA.L A1,A2
- BCS.S Dec4
- RTS
- Dec4 MOVEQ #2,D0
- BSR.S Dec10
- MOVEQ #0,D0
- MOVE.B 0(A5,D1.W),D0
- MOVE.L D0,D4
- MOVE.W D1,D2
- ADDQ.W #1,D2
- CMPI.W #4,D2
- BNE.S Dec7
- BSR.S Dec9
- MOVE.L D4,D0
- TST.B D1
- BNE.S Dec5
- MOVEQ #7,D0
- Dec5 BSR.S Dec10
- MOVE.W D1,D4
- Dec6 MOVEQ #3,D0
- BSR.S Dec10
- ADD.W D1,D2
- CMPI.W #7,D1
- BEQ.S Dec6
- BRA.S Dec8
- Dec7 BSR.S Dec10
- MOVE.W D1,D4
- Dec8 MOVE.B 0(A1,D4.W),-(A1)
- DBF D2,Dec8
- CMPA.L A1,A2
- BCS.S Dec1
- RTS
- Dec9 MOVEQ #1,D0
- Dec10 MOVEQ #0,D1
- SUBQ.W #1,D0
- Dec11 LSR.L #1,D5
- ROXL.L #1,D1
- SUBQ.B #1,D7
- BNE.S Dec12
- MOVEQ #32,D7
- MOVE.L -(A0),D5
- Dec12 DBF D0,Dec11
- RTS
-
- Copyright DC.B $9B,'1;33;3430mCoreEye',$9B,'0;31;40m '
- DC.B 'Version 1.00 Copyright ',$A9,' 14.09.1990 by MC68',10
- TextLength EQU *-Copyright
- DosName DC.B 'dos.library',0
- EVEN
- Place DCB.B 10000,0
-