home *** CD-ROM | disk | FTP | other *** search
- ********************************************************************************
- * 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 ;(libratyName,version)(A1,D0)
- CloseLibrary EQU -414 ;(library)(A1)
- GetMsg EQU -372 ;(port)(A0)
- ReplyMsg EQU -378 ;(message)(A1)
- FindTask EQU -294 ;(name)(A1)
-
- 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)
- Lock EQU -84 ;(name,type)(D1-D2)
- UnLock EQU -90 ;(lock)(D1)
- Examine EQU -102 ;(lock,fileInfoBlock)(D1-D2)
- ExNext EQU -108 ;(lock,fileInfoBlock)(D1-D2)
- Delay EQU -198 ;(timeout)(D1)
-
- OpenWindow EQU -204 ;(OWargs)(A0)
- CloseWindow EQU -72 ;(Window)(A0)
- SetMenuStrip EQU -264 ;(Window,Menu)(A0-A1)
- ClearMenuStrip EQU -54 ;(Window)(A0)
- WindowToBack EQU -306 ;(Window)(A0)
- WindowToFront EQU -312 ;(Window)(A0)
- WBenchToFront EQU -342 ;()
- RefreshGadgets EQU -222 ;(Gadgets,Window,Req)(A0-A2)
- ActivateGadget EQU -462 ;(Gadgets,Window,Req)(A0-A2)
- ModifyProp EQU -156 ;(Gadget,Window,Req,Flags,HPos,VPos,HBody,VBody)(A0-A2,D0-D4)
- AllocRemember EQU -396 ;(RememberKey,Size,Flags)(A0,D0-D1)
- FreeRemember EQU -408 ;(RememberKey,ReallyForget)(A0,D0)
-
- RectFill EQU -306 ;(RastPort,xl,yl,xu,yu)(A1,D0-D3)
- SetAPen EQU -342 ;(RastPort,pen)(A1,D0)
- SetBPen EQU -348 ;(RastPort,pen)(A1,D0)
- SetDrMd EQU -354 ;(RastPort,drawMode)(A1,D0)
- BltTemplate EQU -36 ;(source,srcX,srcModulo,RastPort,destX,destY,sizeX,sizeY)(A0,D0-D1,A1,D2-D5)
- WaitBlit EQU -228 ;()
-
- * 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
- PublicMemory 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 ******************************************************
-
- *Begin LINK A4,#-60
- CLR.L Pointer(A4)
- CLR.B Flags(A4)
- * MOVE.L 4.W,A6
- * LEA DosName(PC),A1
- * MOVEQ #0,D0
- * JSR OpenLibrary(A6)
- * MOVE.L D0,DosBase(A4)
- * BEQ.W GetOut
- LEA GfxName(PC),A1
- MOVEQ #0,D0
- JSR OpenLibrary(A6)
- MOVE.L D0,GfxBase(A4)
- BEQ.W ToRTS
- LEA IntName(PC),A1
- MOVEQ #0,D0
- JSR OpenLibrary(A6)
- MOVE.L D0,IntBase(A4)
- BEQ.W CloseGfx
- MOVE.L D0,A6
- LEA RememberKey(PC),A0
- MOVE.L #3464,D0
- MOVEQ #1,D1
- JSR AllocRemember(A6)
- MOVE.L D0,PublicMemory(A4)
- BNE.S PublicAllocated
- BSR.W Insufficient
- BRA.W CloseAllLibs
- PublicAllocated LEA MainWindow(PC),A0
- JSR OpenWindow(A6)
- MOVE.L D0,WW1(A4)
- BNE.S MainWWOpened
- BSR.W Insufficient
- BRA.W FreeMemory
- MainWWOpened MOVE.L WW1(A4),A0
- MOVE.L 50(A0),RP1(A4)
- LEA MenuMemory(PC),A1
- JSR SetMenuStrip(A6)
- JSR WBenchToFront(A6)
-
- MainLoop BSR.W Show
- MOVE.L WW1(A4),A0
- MOVE.L 86(A0),A0
- MOVE.L 4.W,A6
- JSR GetMsg(A6)
- TST.L D0
- BEQ.S MainLoop
- MOVE.L D0,A1
- MOVE.L 20(A1),D2
- MOVE.B 25(A1),D3
- MOVE.L 28(A1),D4
- JSR ReplyMsg(A6)
- CMPI.B #$20,D2
- BEQ.W ArrowPress
- CMPI.B #$40,D2
- BEQ.W WWToBF
- BTST #21,D2
- BNE.W RawKeys
- CMPI.B #8,D2
- BEQ.W ClickMouse
-
- MOVEQ #20-1,D1
- CMPI.W #$100,D2
- BEQ.S SearchForItem
- MOVEQ #6-1,D1
- SearchForItem LEA ItemTable(PC),A0
- MOVEQ #0,D0
- NextKey CMP.B (A0)+,D3
- BEQ.S FoundKey
- ADDQ.B #1,D0
- DBF D1,NextKey
- BRA.S MainLoop
- FoundKey LSL.W #1,D0
- MOVE.W JumpTable(PC,D0.W),D0
- MOVE.L Pointer(A4),D1
- PEA MainLoop(PC)
- JMP JumpTable(PC,D0.W)
-
- RawKeys CMPI.B #13,D3
- BNE.S WriteKey
- MOVE.L WW1(A4),A1
- ChgMode MOVE.L #$568,82(A1)
- LEA Line+24(PC),A0
- MOVE.L #'view',(A0)
- BRA.W MainLoop
- WriteKey MOVE.L Pointer(A4),A0
- MOVE.B D3,(A0)+
- MOVE.L A0,Pointer(A4)
- BRA.W MainLoop
-
- ItemTable DC.B $4F,$4E,$4C,$4D,$44,$43,0,$20,$40,$60,$80,$A0,1,$21,$41,2,$22,$42,$62,$82
- JumpTable DC.W Left-JumpTable
- DC.W Right-JumpTable
- DC.W Up-JumpTable
- DC.W Down-JumpTable
- DC.W Fire-JumpTable
- DC.W Fire-JumpTable
- DC.W Load-JumpTable
- DC.W Save-JumpTable
- DC.W Modify-JumpTable
- DC.W FillMemory-JumpTable
- DC.W MoveMemory-JumpTable
- DC.W Quit-JumpTable
- DC.W SetAddress-JumpTable
- DC.W PgUp-JumpTable
- DC.W PgDn-JumpTable
- DC.W SearchString-JumpTable
- DC.W SearchWord-JumpTable
- DC.W SearchLongWord-JumpTable
- DC.W SearchTask-JumpTable
- DC.W RepeatSearch-JumpTable
-
- ClickUp MOVE.L Pointer(A4),D1
- BSR.W PgUp
- BSR.W Show
- BTST #7,ArrowUpGG+13(PC)
- BEQ.W MainLoop
- MOVE.L DosBase(A4),A6
- MOVEQ #10,D1
- JSR Delay(A6)
- Loop_2 BTST #7,ArrowUpGG+13(PC)
- BEQ.W MainLoop
- MOVE.L Pointer(A4),D1
- BSR.W PgUp
- BSR.W Show
- BRA.S Loop_2
-
- ArrowPress MOVE.L Pointer(A4),D1
- CMP.L DragGG(PC),D4
- BEQ.S ClickUp
- CMP.L ArrowDownGG(PC),D4
- BEQ.S ChangeMode
- CMP.L ArrowUpGG(PC),D4
- BNE.W MainLoop
- BSR.W PgDn
- BSR.W Show
- BTST #7,ArrowDownGG+13(PC)
- BEQ.W MainLoop
- MOVE.L DosBase(A4),A6
- MOVEQ #10,D1
- JSR Delay(A6)
- Loop_1 BTST #7,ArrowDownGG+13(PC)
- BEQ.W MainLoop
- MOVE.L Pointer(A4),D1
- BSR.W PgDn
- BSR.W Show
- BRA.S Loop_1
-
- ChangeMode MOVE.L WW1(A4),A1
- BTST #5,83(A1)
- BNE.W ChgMode
- PEA MainLoop(PC)
-
- Fire MOVE.L WW1(A4),A1
- MOVE.L #$200168,82(A1)
- LEA Line+24(PC),A0
- MOVE.L #'edit',(A0)
- RTS
-
- WWToBF MOVE.L WW1(A4),A0
- MOVE.L IntBase(A4),A6
- CMP.L WWFrontGG(PC),D4
- BEQ.S WWToBack
- CMP.L MainWindow+18(PC),D4
- BNE.S ToMainLoop1
- JSR WindowToFront(A6)
- ToMainLoop1 BRA.W MainLoop
- WWToBack JSR WindowToBack(A6)
- BRA.S ToMainLoop1
-
- ClickMouse BTST #6,$BFE001
- BNE.S ToMainLoop1
- MOVEQ #0,D0
- MOVEQ #0,D1
- MOVE.L WW1(A4),A0
- MOVE.W 108(A0),D0
- MOVE.W 110(A0),D1
- SUBI.W #12,D0
- CMPI.W #430,D0
- BCC.S ExitClick
- SUBI.W #61,D1
- CMPI.W #128,D1
- BCC.S ExitClick
- CMPI.W #303,D0
- BCC.S AsciiPart
- CMPI.W #279,D0
- BCC.S ExitClick
- MOVE.L D0,D2
- DIVU #72,D2
- LSL.W #3,D2
- SUB.W D2,D0
- LSR.W #4,D0
- BRA.S ForHex
- AsciiPart SUBI.W #303,D0
- LSR.W #3,D0
- ForHex LSR.W #3,D1
- LSL.B #4,D1
- OR.B D0,D1
- MOVE.B D1,Pointer+3(A4)
- BSR.W Show
- ExitClick BTST #6,$BFE001
- BEQ.S ClickMouse
- BRA.S ToMainLoop1
-
- ******************** Load and Save subroutines *********************************
-
- Load LEA TextLoad(PC),A1
- SUBA.L A2,A2
- MOVEQ #7,D0
- BSR.W LoadSave
- MOVE.L A5,D1
- BEQ.W ExitLS
- MOVE.L #1005,D2
- MOVE.L DosBase(A4),A6
- JSR Open(A6)
- MOVE.L D0,D1
- BNE.S ReadFile
- BadFile LEA FileDoesNotExist(PC),A1
- BSR.W Request
- BRA.S RestoreLength
- ReadFile MOVE.L D0,-(A7)
- MOVE.L Pointer(A4),D2
- MOVE.L #901120,D3
- JSR Read(A6)
- MOVE.L (A7)+,D1
- JSR Close(A6)
- RestoreLength MOVE.L SaveLength(A4),A1
- CLR.B (A1)
- ExitLS SUBA.L A5,A5
- RTS
-
- Save LEA TextSave(PC),A1
- LEA LengthGadget(PC),A2
- MOVEQ #10,D0
- BSR.W LoadSave
- DecToHex LEA SaveLengthBuffer(PC),A0
- MOVEQ #0,D7
- MOVEQ #0,D1
- TST.B (A0)
- BEQ.S RestoreLength
- ConvertToHex MOVE.B (A0)+,D1
- BEQ.S EndBufferDec
- SUBI.B #'0',D1
- CMPI.B #9,D1
- BHI.S RestoreLength
- MULU #10,D7
- ADD.L D1,D7
- BRA.S ConvertToHex
- EndBufferDec MOVE.L A5,D1
- BEQ.W ExitLS
- MOVE.L #1006,D2
- MOVE.L DosBase(A4),A6
- JSR Open(A6)
- MOVE.L D0,D1
- BEQ.W BadFile
- MOVE.L D0,-(A7)
- MOVE.L Pointer(A4),D2
- MOVE.L D7,D3
- JSR Write(A6)
- MOVE.L (A7)+,D1
- JSR Close(A6)
- BRA.W RestoreLength
-
- LoadSave LEA LoadSaveWW(PC),A0
- MOVE.L A1,26(A0)
- MOVE.L A2,FileGadget-LoadSaveWW(A0)
- MOVE.B D0,LoadBorder1-LoadSaveWW+7(A0)
- MOVE.L IntBase(A4),A6
- JSR OpenWindow(A6)
- MOVE.L D0,WW2(A4)
- BNE.S LoadSaveWWOpened
- BSR.W Insufficient
- BRA.W ExitSearch
- LoadSaveWWOpened MOVE.L D0,A0
- MOVE.L 50(A0),RP2(A4)
- TST.B Flags(A4)
- BEQ.S Locking
- BSR.W PrintFiles
- LEA FileGadget(PC),A0
- CLR.W FileSInfo-FileGadget+8(A0)
- BSR.W ActivStringGG
- BRA.W LoadSaveLoop
- Locking MOVE.L #$00FF0000,Flags(A4)
- LEA PropGadget(PC),A0
- MOVE.L WW2(A4),A1
- SUBA.L A2,A2
- MOVEQ #5,D0
- MOVEQ #0,D2
- MOVEQ #-1,D4
- MOVE.L IntBase(A4),A6
- JSR ModifyProp(A6)
- MOVEQ #0,D0
- MOVE.L RP2(A4),A1
- MOVE.L GfxBase(A4),A6
- JSR SetAPen(A6)
- MOVEQ #8,D0
- MOVEQ #30,D1
- MOVE.W #247,D2
- MOVEQ #82,D3
- JSR RectFill(A6)
- MOVE.L PublicMemory(A4),A5
- MOVE.W #1600-1,D0
- FillSpaces MOVE.W #' ',(A5)+
- DBF D0,FillSpaces
- LEA DirBuffer(PC),A0
- MOVE.L A0,D1
- MOVEQ #-2,D2
- MOVE.L DosBase(A4),A6
- JSR Lock(A6)
- MOVE.L D0,SaveLock(A4)
- BNE.S LockIsOk
- BadDevice LEA RequestDevice(PC),A1
- BSR.W Request
- LEA DirGadget(PC),A0
- CLR.W DirSInfo-DirGadget+8(A0)
- BSR.W ActivStringGG
- NOT.B Flags(A4)
- BRA.S LoadSaveLoop
- LockIsOk MOVE.L D0,D1
- MOVE.L A5,D2
- JSR Examine(A6)
- TST.L 4(A5)
- BMI.S BadDevice
- LoadSaveLoop BSR.W Show
- TST.B ClickCounter(A4)
- BEQ.S CounterNull
- SUBQ.B #1,ClickCounter(A4)
- CounterNull TST.B Flags(A4)
- BNE.W NoMoreFiles
- MOVE.L SaveLock(A4),D1
- MOVE.L PublicMemory(A4),A5
- LEA 3200(A5),A0
- MOVE.L A0,D2
- MOVE.L DosBase(A4),A6
- JSR ExNext(A6)
- TST.L D0
- BNE.S MoveFile
- NOT.B Flags(A4)
- BSR.W PrintFiles
- MOVE.L #$5FFFA,D4
- MOVE.B NumberFiles(A4),D1
- BEQ.S LessThan6
- EXT.W D1
- DIVU D1,D4
- BVC.S Corect
- LessThan6 MOVEQ #-1,D4
- Corect MOVEQ #0,D2
- MOVEQ #5,D0
- LEA PropGadget(PC),A0
- MOVE.L WW2(A4),A1
- SUBA.L A2,A2
- MOVE.L IntBase(A4),A6
- JSR ModifyProp(A6)
- LEA FileGadget(PC),A0
- CLR.W FileSInfo-FileGadget+8(A0)
- BSR.W ActivStringGG
- BRA.S NoMoreFiles
- MoveFile MOVEQ #3,D2
- LEA 3204(A5),A0
- TST.L (A0)+
- BMI.S ItsFile
- MOVEQ #2,D2
- ItsFile MOVE.B NumberFiles(A4),D1
- EXT.W D1
- LSL.W #5,D1
- LEA 0(A5,D1.W),A5
- MOVE.B D2,(A5)+
- LEA 1(A5),A1
- MOVEQ #0,D2
- CopyFileName TST.B (A0)
- BEQ.S EndFileName
- ADDQ.B #1,D2
- MOVE.B (A0)+,(A1)+
- BRA.S CopyFileName
- EndFileName MOVE.B D2,(A5)
- ADDQ.B #1,NumberFiles(A4)
- NoMoreFiles MOVE.L WW2(A4),A0
- MOVE.L 86(A0),A0
- MOVE.L 4.W,A6
- JSR GetMsg(A6)
- TST.L D0
- BEQ.W LoadSaveLoop
- MOVE.L D0,A1
- MOVE.W 22(A1),D2
- MOVE.L 28(A1),D3
- JSR ReplyMsg(A6)
- CMPI.B #$40,D2
- BEQ.W GadgetUnPress
- CMPI.B #$20,D2
- BEQ.W GadgetPress
-
- ClickFile BTST #6,$BFE001
- BNE.S ToLoadSaveLoop1
- MOVE.L WW2(A4),A0
- MOVE.W 108(A0),D0
- MOVE.W 110(A0),D1
- CMPI.W #242,D0
- BCC.S ToLoadSaveLoop1
- SUBI.W #18,D1
- CMPI.W #54,D1
- BCC.S ToLoadSaveLoop1
- EXT.L D1
- DIVU #9,D1
- ADD.B FromFile(A4),D1
- MOVE.B D1,D3
- LSL.W #5,D1
- MOVE.L PublicMemory(A4),A5
- LEA 0(A5,D1.W),A2
- MOVE.B (A2)+,D0
- MOVE.B (A2)+,D2
- EXT.W D2
- SUBQ.W #1,D2
- CMPI.B #3,D0
- BNE.S ItIsDirectory
- ItIsFile TST.B ClickCounter(A4)
- BEQ.S CounterNull2
- CMP.B WhichFile(A4),D3
- BEQ.W PressOk
- CounterNull2 MOVE.B D3,WhichFile(A4)
- LEA FileBuffer(PC),A0
- MoveFileName MOVE.B (A2)+,(A0)+
- DBF D2,MoveFileName
- CLR.B (A0)
- LEA FileGadget(PC),A0
- MOVE.L WW2(A4),A1
- SUB.L A2,A2
- MOVE.L IntBase(A4),A6
- JSR RefreshGadgets(A6)
- BSR.W PrintFiles
- MOVE.B #10,ClickCounter(A4)
- ToLoadSaveLoop1 BRA.W LoadSaveLoop
-
- ItIsDirectory CMPI.B #2,D0
- BNE.S ToLoadSaveLoop1
- LEA DirBuffer(PC),A0
- MOVE.W DirSInfo+16(PC),D0
- LEA -1(A0,D0.W),A1
- BEQ.S DoublePoint
- CMPI.B #':',(A1)
- BEQ.S DoublePoint
- CMPI.B #'/',(A1)+
- BEQ.S MoveDirName
- MOVE.B #'/',(A1)
- DoublePoint ADDQ.W #1,A1
- MoveDirName MOVE.B (A2)+,(A1)+
- DBF D2,MoveDirName
- CLR.B (A1)
-
- UnLocking MOVE.L SaveLock(A4),D1
- MOVE.L DosBase(A4),A6
- JSR UnLock(A6)
- BRA.W Locking
-
- CDParent LEA DirBuffer(PC),A0
- MOVE.W DirSInfo+16(PC),D0
- BEQ.S ToLoadSaveLoop1
- LEA -1(A0,D0.W),A1
- CMPI.B #':',(A1)
- BEQ.S ToLoadSaveLoop1
- CD CLR.B (A1)
- CMPA.L A0,A1
- BEQ.S UnLocking
- CMPI.B #':',-(A1)
- BEQ.S UnLocking
- CMPI.B #'/',(A1)
- BNE.S CD
- CLR.B (A1)
- BRA.S UnLocking
-
- GadgetPress CMP.L CancelGadget(PC),D3
- BNE.S ToLoadSaveLoop2
- SliderOn MOVE.B NumberFiles(A4),D0
- EXT.W D0
- SUBQ.W #6,D0
- BLS.S ToLoadSaveLoop2
- ADDQ.W #1,D0
- MOVEQ #1,D5
- SWAP D5
- DIVU D0,D5
- MOVE.L D5,D0
- SWAP D0
- ADD.W D0,D5
- SliderLoop MOVEQ #0,D2
- MOVE.W PropInfo+4(PC),D2
- DIVU D5,D2
- MOVE.B D2,FromFile(A4)
- BSR.S PrintFiles
- BTST #7,PropGadget+13(PC)
- BNE.S SliderLoop
- ToLoadSaveLoop2 BRA.W LoadSaveLoop
-
- PrintFiles MOVE.L GfxBase(A4),A6
- MOVE.L RP2(A4),A1
- MOVE.L PublicMemory(A4),A5
- MOVEQ #0,D7
- MOVE.B FromFile(A4),D6
- EXT.W D6
- LSL.W #5,D6
- LEA 0(A5,D6.W),A3
- MOVE.L #$0008001E,36(A1)
- PrintNextFile MOVEQ #0,D0
- MOVE.B (A3)+,D0
- JSR SetAPen(A6)
- MOVE.B WhichFile(A4),D6
- SUB.B FromFile(A4),D6
- CMP.B D6,D7
- BNE.S NotThisFile
- MOVEQ #5,D0
- JSR SetDrMd(A6)
- NotThisFile ADDQ.W #1,A3
- MOVEQ #30,D0
- MOVE.L D5,-(A7)
- BSR.W Print
- MOVE.L (A7)+,D5
- MOVEQ #1,D0
- JSR SetDrMd(A6)
- MOVE.W #8,36(A1)
- ADDI.W #9,38(A1)
- ADDQ.B #1,D7
- CMPI.B #6,D7
- BNE.S PrintNextFile
- RTS
-
- GadgetUnPress CMP.L OkGadget(PC),D3
- BEQ.W UnLocking
- CMP.L GetdirGadget(PC),D3
- BEQ.W PressCancel
- CMP.L PropGadget(PC),D3
- BEQ.W UnLocking
- CMP.L DirGadget(PC),D3
- BEQ.S FileEntered
- CMP.L ParentGadget(PC),D3
- BEQ.S PressOk
- CMP.L FileGadget(PC),D3
- BEQ.S PressOk
- CMP.L LoadSaveWW+18(PC),D3
- BEQ.W CDParent
- CMP.L DirGadget(PC),D3
- BNE.W LoadSaveLoop
-
- FileEntered LEA LengthGadget(PC),A0
- TST.L FileGadget-LengthGadget(A0)
- BEQ.S PressOk
- MOVE.L WW2(A4),A1
- SUBA.L A2,A2
- MOVE.L IntBase(A4),A6
- JSR ActivateGadget(A6)
- BRA.W LoadSaveLoop
-
- PressOk MOVE.W FileSInfo+16(PC),D1
- BEQ.S PressCancel
- LEA DirBuffer(PC),A5
- MOVE.W DirSInfo+16(PC),D0
- LEA 0(A5,D0.W),A0
- BEQ.S AllOk
- CMPI.B #':',-1(A0)
- BEQ.S AllOk
- CMPI.B #'/',-1(A0)
- BEQ.S AllOk
- MOVE.L A0,SaveLength(A4)
- MOVE.B #'/',(A0)+
- BRA.S AddSlash
- AllOk MOVE.L A0,SaveLength(A4)
- AddSlash LEA FileBuffer(PC),A1
- MountName MOVE.B (A1)+,(A0)+
- DBF D1,MountName
- BRA.S Close2ndWW
-
- PressCancel SUBA.L A5,A5
- Close2ndWW MOVE.L WW2(A4),A0
- MOVE.L IntBase(A4),A6
- JMP CloseWindow(A6)
-
- ActivStringGG MOVE.L WW2(A4),A1
- MOVE.L IntBase(A4),A6
- SUBA.L A2,A2
- JMP ActivateGadget(A6)
-
- ******************** Modify subroutine *****************************************
-
- Modify LEA ModifyWW(PC),A0
- MOVE.L IntBase(A4),A6
- JSR OpenWindow(A6)
- MOVE.L D0,WW2(A4)
- BEQ.W Insufficient
- ModifyAgain LEA ByteGG(PC),A0
- MOVE.L WW2(A4),A1
- SUBA.L A2,A2
- CLR.B ByteBuffer-ByteGG(A0)
- CLR.B WordBuffer-ByteGG(A0)
- CLR.B LongBuffer-ByteGG(A0)
- MOVE.L IntBase(A4),A6
- JSR RefreshGadgets(A6)
- CMPI.B #1,ByteMode(A4)
- BEQ.S ModeWord
- BCC.S ModeLong
- ModeByte LEA ByteGG(PC),A0
- BRA.S RunGG
- ModeWord LEA WordGG(PC),A0
- BRA.S RunGG
- ModeLong LEA LongGG(PC),A0
- RunGG BSR.S ActivStringGG
-
- ModifyLoop BSR.W Show
- MOVE.L WW2(A4),A0
- MOVE.L 86(A0),A0
- MOVE.L 4.W,A6
- JSR GetMsg(A6)
- TST.L D0
- BEQ.S ModifyLoop
- MOVE.L D0,A1
- MOVE.W 22(A1),D2
- MOVE.L 28(A1),D3
- JSR ReplyMsg(A6)
- CMPI.W #$200,D2
- BEQ.W Close2ndWW
- MOVE.L Pointer(A4),A1
- CMP.L ByteGG(PC),D3
- BEQ.S ItwasWordGG
- BCC.S ItwasLongGG
- CLR.B ByteMode(A4)
- LEA ByteBuffer(PC),A2
- BSR.W BufferToHex
- BMI.W Close2ndWW
- MOVE.B D0,(A1)+
- MOVE.L A1,Pointer(A4)
- BRA.W ModifyAgain
- ItwasWordGG MOVE.B #1,ByteMode(A4)
- LEA WordBuffer(PC),A2
- BSR.W BufferToHex
- BMI.W Close2ndWW
- BTST #0,Pointer+3(A4)
- BEQ.S EvenOk
- NotParity BSR.W Close2ndWW
- LEA ParityRequest(PC),A1
- BRA.W Request
- EvenOk MOVE.W D0,(A1)+
- MOVE.L A1,Pointer(A4)
- BRA.W ModifyAgain
- ItwasLongGG MOVE.B #2,ByteMode(A4)
- LEA LongBuffer(PC),A2
- BSR.W BufferToHex
- BMI.W Close2ndWW
- BTST #0,Pointer+3(A4)
- BNE.S NotParity
- MOVE.L D0,(A1)+
- MOVE.L A1,Pointer(A4)
- BRA.W ModifyAgain
-
- ******************** Fill and Move block subroutines *************************
-
- FillMemory LEA TextFill(PC),A1
- LEA PatternText(PC),A2
- MOVEQ #3,D0
- BRA.S FillMove
-
- MoveMemory LEA TextMove(PC),A1
- LEA MoveToText(PC),A2
- MOVEQ #7,D0
-
- FillMove LEA FillMoveWW(PC),A0
- MOVE.L A1,26(A0)
- MOVE.L A2,PatternIText-FillMoveWW+12(A0)
- MOVE.W D0,PatternSInfo-FillMoveWW+10(A0)
- CLR.B LengthBuffer-FillMoveWW(A0)
- CLR.L PatternBuffer-FillMoveWW(A0)
- MOVE.L IntBase(A4),A6
- JSR OpenWindow(A6)
- MOVE.L D0,WW2(A4)
- BEQ.W Insufficient
- LEA LengthGG(PC),A0
- Activate2nd BSR.W ActivStringGG
-
- FillMoveLoop MOVE.L WW2(A4),A0
- MOVE.L 86(A0),A0
- MOVE.L 4.W,A6
- JSR GetMsg(A6)
- TST.L D0
- BEQ.S FillMoveLoop
- MOVE.L D0,A1
- MOVE.W 22(A1),D2
- MOVE.L 28(A1),D3
- JSR ReplyMsg(A6)
- CMPI.W #$200,D2
- BEQ.W Close2ndWW
- CMP.L FillMoveWW+18(PC),D3
- BNE.S ValuesEntered
- LEA LengthBuffer(PC),A2
- BSR.W BufferToHex
- BMI.W Close2ndWW
- MOVE.L D0,D7
- LEA PatternGG(PC),A0
- BRA.S Activate2nd
-
- ValuesEntered BSR.W Close2ndWW
- SUBQ.W #1,D7
- LEA PatternBuffer(PC),A2
- BSR.W BufferToHex
- BMI.S ExitFillMove
- MOVE.L Pointer(A4),A1
- MOVE.L D0,A2
- LEA TextMove(PC),A3
- CMPA.L FillMoveWW+26(PC),A3
- BEQ.S Moving
- Filling MOVE.B D0,(A1)+
- DBF D7,Filling
- SWAP D7
- TST.W D7
- BEQ.S ExitFillMove
- SUBQ.W #1,D7
- FillLoop1 MOVEQ #-1,D3
- FillLoop2 MOVE.B D0,(A1)+
- DBF D3,FillLoop2
- DBF D7,FillLoop1
- ExitFillMove RTS
-
- Moving CMPA.L A1,A2
- BEQ.S ExitFillMove
- BCS.S MoveHigher
- LEA 1(A1,D7.L),A1
- LEA 1(A2,D7.L),A2
- MoveLower MOVE.B -(A1),-(A2)
- DBF D7,MoveLower
- SWAP D7
- TST.W D7
- BEQ.S ExitFillMove
- SUBQ.W #1,D7
- MoveLoop1 MOVEQ #-1,D1
- MoveLoop2 MOVE.B -(A1),-(A2)
- DBF D1,MoveLoop2
- DBF D7,MoveLoop1
- BRA.S ExitFillMove
- MoveHigher MOVE.B (A1)+,(A2)+
- DBF D7,MoveHigher
- SWAP D7
- TST.W D7
- BEQ.S ExitFillMove
- SUBQ.W #1,D7
- MoveLoop3 MOVEQ #-1,D1
- MoveLoop4 MOVE.B (A1)+,(A2)+
- DBF D1,MoveLoop4
- DBF D7,MoveLoop3
- ExitMove RTS
-
- ******************** Set address subroutine ************************************
-
- SetAddress LEA SetAddressWW(PC),A0
- CLR.B SetAddressBuffer-SetAddressWW(A0)
- MOVE.L IntBase(A4),A6
- JSR OpenWindow(A6)
- MOVE.L D0,WW2(A4)
- BEQ.W Insufficient
- LEA SetAddrGG(PC),A0
- BSR.W ActivStringGG
- SetAddressLoop BSR.W Show
- MOVE.L WW2(A4),A0
- MOVE.L 86(A0),A0
- MOVE.L 4.W,A6
- JSR GetMsg(A6)
- TST.L D0
- BEQ.S SetAddressLoop
- MOVE.L D0,A1
- MOVE.W 22(A1),D2
- JSR ReplyMsg(A6)
- CMPI.W #$200,D2
- BSR.W Close2ndWW
- CMPI.W #$200,D2
- BEQ.S ExitMove
- LEA SetAddressBuffer(PC),A2
- BSR.W BufferToHex
- BMI.S ExitMove
- MOVE.L D0,D1
- BRA.W TestArea
-
- ******************** Moving subroutines ****************************************
-
- PgUp SUBI.L #$100,D1
- BRA.S TestArea
- PgDn ADDI.L #$100,D1
- BRA.S TestArea
- Left SUBQ.L #1,D1
- BRA.S TestArea
- Right ADDQ.L #1,D1
- BRA.S TestArea
- Up SUBI.L #$10,D1
- BRA.S TestArea
- Down ADDI.L #$10,D1
-
- TestArea CMPI.L #$FFFFFF,D1
- BHI.S AreaBad
- CMPI.L #$DFFFFF,D1
- BHI.S AreaOk
- CMPI.L #$DF0000,D1
- BCS.S AreaOk
- LEA CustomChipsRq(PC),A1
- BRA.W Request
- AreaOk MOVE.L D1,Pointer(A4)
- AreaBad RTS
-
- ******************** Searches subroutines **************************************
-
- SearchString LEA TextSearch(PC),A1
- MOVEQ #101,D0
- BSR.W Search
-
- SearchAgain1 LEA SearchBuffer(PC),A2
- MOVE.B (A2)+,D0
- BEQ.S AreaBad
- NextByte CMP.B (A0)+,D0
- BEQ.S FoundSth
- CMPA.L A1,A0
- BCS.S NextByte
- LEA RequestString(PC),A1
- BRA.W Request
- FoundSth MOVE.L A0,A3
- MOVE.W SearchSInfo+16(PC),D3
- SUBQ.W #2,D3
- BCS.S StringFound
- CmpBuffer CMPM.B (A3)+,(A2)+
- DBNE D3,CmpBuffer
- BNE.S SearchAgain1
- LEA SearchBuffer+1(PC),A2
- CMPA.L A0,A2
- BEQ.S SearchAgain1
- StringFound SUBQ.W #1,A0
- BRA.S Found
-
- SearchWord LEA TextWord(PC),A1
- MOVEQ #5,D0
- BSR.S Search
- SearchAgain2 LEA SearchBuffer(PC),A2
- BSR.W BufferToHex
- BMI.S ToRTS
- BSR.S Parity
- NextWord CMP.W (A0)+,D0
- BEQ.S WordFound
- CMPA.L A1,A0
- BCS.S NextWord
- LEA RequestWord(PC),A1
- BRA.W Request
- WordFound SUBQ.W #2,A0
- Found MOVE.L A0,Pointer(A4)
- ToRTS RTS
-
- Parity MOVE.L A0,D1
- BTST #0,D1
- BEQ.S ParityOk
- ADDQ.L #1,D1
- ParityOk MOVE.L D1,A0
- RTS
-
- SearchLongWord LEA TextLongWord(PC),A1
- MOVEQ #9,D0
- BSR.S Search
- SUBQ.W #1,A1
- SearchAgain3 LEA SearchBuffer(PC),A2
- BSR.W BufferToHex
- BMI.S ToRTS
- BSR.S Parity
- NextLongWord CMP.L (A0),D0
- BEQ.S Found
- ADDQ.W #2,A0
- CMPA.L A1,A0
- BCS.S NextLongWord
- LEA RequestLongWord(PC),A1
- BRA.W Request
-
- Search LEA SearchWW(PC),A0
- MOVE.L A1,26(A0)
- MOVE.W D0,SearchSInfo-SearchWW+10(A0)
- MOVEQ #50,D1
- LEA SearchBuffer(PC),A1
- ClearSearchBuffer CLR.B (A1)+
- DBF D1,ClearSearchBuffer
- MOVE.L IntBase(A4),A6
- JSR OpenWindow(A6)
- MOVE.L D0,WW2(A4)
- BEQ.W Insufficient
- LEA SearchGG(PC),A0
- BSR.W ActivStringGG
- SearchLoop BSR.W Show
- MOVE.L WW2(A4),A0
- MOVE.L 86(A0),A0
- MOVE.L 4.W,A6
- JSR GetMsg(A6)
- TST.L D0
- BEQ.S SearchLoop
- MOVE.L D0,A1
- MOVE.W 22(A1),D2
- JSR ReplyMsg(A6)
- BSR.W Close2ndWW
- CMPI.W #$200,D2
- BEQ.S ExitSearch
- RepeatArea LEA FirstArea(PC),A3
- MOVE.L Pointer(A4),D0
- SearchArea MOVE.L (A3)+,A0
- MOVE.L (A3)+,A1
- CMP.L A0,D0
- BCS.S Next_3
- CMP.L A1,D0
- BHI.S Next_4
- RTS
- Next_3 ADDQ.W #4,A3
- Next_4 LEA 16(A3),A3
- BRA.S SearchArea
- ExitSearch ADDQ.W #4,A7
- ToRTS2 RTS
-
- RepeatSearch MOVE.W SearchSInfo+10(PC),D7
- BEQ.S ToRTS2
- MOVE.W SearchSInfo+16(PC),D6
- BEQ.S ToRTS2
- BSR.S RepeatArea
- MOVE.L D0,A0
- ADDQ.W #1,A0
- CMPI.W #9,D7
- BCS.W SearchAgain2
- BEQ.W SearchAgain3
- CMPI.W #101,D7
- BEQ.W SearchAgain1
- BRA.S RSearchTask
-
- SearchTask LEA TextTask2(PC),A1
- MOVE.W #103,D0
- BSR.W Search
- RSearchTask LEA SearchBuffer(PC),A1
- MOVE.L 4.W,A6
- JSR FindTask(A6)
- TST.L D0
- BNE.S TaskFound
- LEA TaskRequest(PC),A1
- BRA.W Request
- TaskFound MOVE.L D0,A0
- BRA.W Found
-
- ******************** Show subroutine *******************************************
-
- Show MOVE.L RP1(A4),A1
- MOVE.L GfxBase(A4),A6
- MOVE.L Pointer(A4),D4
- LEA Line+15(PC),A2
- MOVEQ #6-1,D6
- Loop8 MOVE.B D4,D5
- AND.B #%00001111,D5
- CMP.B #9,D5
- BLE.S NotGreater1
- ADDQ.B #7,D5
- NotGreater1 ADD.B #'0',D5
- MOVE.B D5,-(A2)
- LSR.L #4,D4
- DBF D6,Loop8
- MOVE.L #$00110030,36(A1)
- LEA Line(PC),A3
- MOVEQ #38,D0
- BSR.W Print
- MOVE.L Pointer(A4),D0
- FindArea CMP.L (A3)+,D0
- BCS.S Next_1
- CMP.L (A3)+,D0
- BHI.S Next_2
- MOVEQ #16,D0
- BSR.W Print
- BRA.S ShowNumbers
- Next_1 ADDQ.W #4,A3
- Next_2 LEA 16(A3),A3
- BRA.S FindArea
- ShowNumbers MOVE.B Pointer+3(A4),D6
- LSR.B #4,D6
- MOVE.L #$0011003F,36(A1)
- MOVE.L Pointer(A4),D4
- CLR.B D4
- MOVE.L D4,A5
- MOVEQ #0,D7
- NextLine LEA PrintCodes+8(PC),A2
- LEA 30(A2),A0
- MOVEQ #4-1,D3
- NextPart MOVE.L (A5)+,D4
- MOVE.L D4,(A0)+
- MOVEQ #8-1,D0
- Loop9 MOVE.B D4,D5
- AND.B #%00001111,D5
- CMP.B #9,D5
- BLE.S NotGreater2
- ADDQ.B #7,D5
- NotGreater2 ADD.B #'0',D5
- MOVE.B D5,-(A2)
- LSR.L #4,D4
- DBF D0,Loop9
- LEA 17(A2),A2
- DBF D3,NextPart
- LEA PrintCodes(PC),A3
- CMP.B D7,D6
- BEQ.S ShowCur
- MOVEQ #54,D0
- BSR.W Print
- Return MOVE.W #$11,36(A1)
- ADDQ.W #8,38(A1)
- ADDQ.B #1,D7
- CMPI.B #16,D7
- BNE.S NextLine
- TextOver RTS
-
- ShowCur MOVE.L D6,-(A7)
- MOVE.B Pointer+3(A4),D2
- ANDI.W #$000F,D2
- MOVE.W D2,D0
- LSR.B #2,D0
- LSL.B #1,D2
- ADD.B D2,D0
- MOVEQ #38,D6
- SUB.B D0,D6
- SUBQ.B #2,D6
- LEA PrintCodes(PC),A3
- BSR.S Print
- MOVEQ #2,D0
- JSR SetAPen(A6)
- MOVEQ #3,D0
- JSR SetBPen(A6)
- MOVEQ #2,D0
- BSR.W Print
- MOVEQ #1,D0
- JSR SetAPen(A6)
- MOVEQ #0,D0
- JSR SetBPen(A6)
- MOVE.L D6,D4
- MOVE.B Pointer+3(A4),D0
- ANDI.W #$000F,D0
- MOVEQ #16,D6
- SUB.B D0,D6
- SUBQ.B #1,D6
- ADD.W D4,D0
- BSR.S Print
- MOVEQ #2,D0
- JSR SetAPen(A6)
- MOVEQ #3,D0
- JSR SetBPen(A6)
- MOVEQ #1,D0
- BSR.S Print
- MOVEQ #1,D0
- JSR SetAPen(A6)
- MOVEQ #0,D0
- JSR SetBPen(A6)
- MOVE.L D6,D0
- BSR.S Print
- MOVE.L (A7)+,D6
- BRA.W Return
-
- Print MOVE.L D0,D4
- BEQ.W TextOver
- SUBQ.B #1,D0
- LEA TextImage(PC),A0
- MoveNextChar MOVEQ #0,D1
- MOVE.B (A3)+,D1
- LSL.W #3,D1
- LEA Fonts(PC,D1.W),A2
- MOVE.B (A2)+,(A0)+
- MOVE.B (A2)+,53(A0)
- MOVE.B (A2)+,107(A0)
- MOVE.B (A2)+,161(A0)
- MOVE.B (A2)+,215(A0)
- MOVE.B (A2)+,269(A0)
- MOVE.B (A2)+,323(A0)
- MOVE.B (A2),377(A0)
- DBF D0,MoveNextChar
- SUBA.W D4,A0
- MOVEQ #0,D0
- MOVEQ #54,D1
- MOVE.W 36(A1),D2
- EXT.L D2
- MOVE.W 38(A1),D3
- EXT.L D3
- LSL.W #3,D4
- ADD.W D4,36(A1)
- MOVEQ #8,D5
- JSR BltTemplate(A6)
- JMP WaitBlit(A6)
- Fonts INCBIN Fonts.CE
-
- BufferToHex MOVEQ #0,D0
- TST.B (A2)
- BEQ.S ErrorBuffer
- ConvertBuffer MOVE.B (A2)+,D1
- BEQ.S EndBuffer
- SUBI.B #'0',D1
- BCLR #5,D1
- CMPI.B #9,D1
- BLS.S LessOrSame
- SUBQ.B #7,D1
- LessOrSame CMPI.B #$0F,D1
- BHI.S ErrorBuffer
- LSL.L #4,D0
- ADD.B D1,D0
- BRA.S ConvertBuffer
- ErrorBuffer MOVEQ #-1,D0
- EndBuffer RTS
-
- ******************** Request subroutine ****************************************
-
- Insufficient LEA MemoryRequest(PC),A1
-
- Request LEA RequestWW(PC),A0
- MOVE.L A1,RequestIText-RequestWW+12(A0)
- MOVE.L IntBase(A4),A6
- MOVE.L 68(A6),D0
- SUBI.W #174,D0
- BPL.S Rq1
- CLR.W D0
- BRA.S Rq2
- Rq1 CMPI.W #386,D0
- BCS.S Rq2
- MOVE.W #420,D0
- Rq2 SWAP D0
- LSR.W #1,D0
- SUBI.W #34,D0
- BPL.S Rq3
- CLR.W D0
- BRA.S Rq4
- Rq3 CMPI.W #178,D0
- BCS.S Rq4
- MOVE.W #212,D0
- Rq4 MOVE.L D0,(A0)
- JSR OpenWindow(A6)
- MOVE.L D0,D7
- BEQ.S EndBuffer
-
- RequestLoop MOVE.L D7,A0
- MOVE.L 86(A0),A0
- MOVE.L 4.W,A6
- JSR GetMsg(A6)
- TST.L D0
- BEQ.S RequestLoop
- MOVE.L D0,A1
- MOVE.W 22(A1),D2
- MOVE.B 25(A1),D3
- JSR ReplyMsg(A6)
- CMPI.B #$40,D2
- BEQ.S ExitRequest
- CMPI.B #$35,D3
- BEQ.S ExitRequest
- CMPI.B #$45,D3
- BEQ.S ExitRequest
- CMPI.B #$34,D3
- BNE.S RequestLoop
- ExitRequest MOVE.L D7,A0
- MOVE.L IntBase(A4),A6
- JMP CloseWindow(A6)
-
- ******************** Structures ************************************************
-
- MainWindow DC.W 66,0,508,200
- DC.B 3,2
- DC.L $568,$21000,WWFrontGG,0,0,0,0
- DC.W 0,0,0,0,1
-
- WWFrontGG DC.L WWBackGG
- DC.W -43,5,37,14,$14,1,1
- DC.L 0,0,0,0,0
- DC.W 0,0,0
- WWBackGG DC.L DragGG
- DC.W -43,25,37,13,$14,1,1
- DC.L 0,0,0,0,0
- DC.W 0,0,0
- DragGG DC.L ArrowUpGG
- DC.W 0,0,0,40,$27,0,$20
- DC.L Image,0,0,0,0
- DC.W 0,0,0
- ArrowUpGG DC.L ArrowDownGG
- DC.W 462,64,32,32,6,3,1
- DC.L ImageArrowUp1,ImageArrowUp2,0,0,0
- DC.W 0,0,0
- ArrowDownGG DC.L ModeGG
- DC.W 462,158,32,32,6,3,1
- DC.L ImageArrowDown1,ImageArrowDown2,0,0,0
- DC.W 0,0,0
- ModeGG DC.W 0,0,160,47,82,10,3,3,1
- DC.L BlueBorder,0,0,0,0
- DC.W 0,0,0
-
- ImageArrowUp1 DC.W 0,0,32,32,2
- DC.L ArrowUp
- DC.B 3,0,0,0,0,0
- ImageArrowUp2 DC.W 0,0,32,32,2
- DC.L ArrowUp
- DC.B 1,3,0,0,0,0
- ImageArrowDown1 DC.W 0,0,32,32,2
- DC.L ArrowDown
- DC.B 3,0,0,0,0,0
- ImageArrowDown2 DC.W 0,0,32,32,2
- DC.L ArrowDown
- DC.B 1,3,0,0,0,0
- ArrowUp DC.L %00000000000000000000000000000000
- DC.L %00000000000000111100000000000000
- DC.L %00000000000011111111000000000000
- DC.L %00000000001111111111110000000000
- DC.L %00000000111111111111111100000000
- DC.L %00000011111111111111111111000000
- DC.L %00001111111111111111111111110000
- DC.L %00000000001111111111110000000000
- DC.L %00000000001111111111110000000000
- DC.L %00000000001111111111110000000000
- DC.L %00000000001111111111110000000000
- DC.L %00000000001111111111110000000000
- DC.L %00000000001111111111110000000000
- DC.L %00000000001111111111110000000000
- DC.L %00000000001111111111110000000000
- DC.L %00000000001111111111110000000000
- DC.L %00000000001111111111110000000000
- DC.L %00000000001111111111110000000000
- DC.L %00000000000000000000000000000000
- DC.L %00000000000000000000000000000000
- DC.L %00000000000000000000000000000000
- DC.L %00000000001111111111110000000000
- DC.L %00000000001111111111110000000000
- DC.L %00000000000000000000000000000000
- DC.L %00000000000000000000000000000000
- DC.L %00000000000000000000000000000000
- DC.L %00000000001111111111110000000000
- DC.L %00000000000000000000000000000000
- DC.L %00000000000000000000000000000000
- DC.L %00000000000000000000000000000000
- DC.L %00000000000000000000000000000000
- DC.L %00000000000000000000000000000000
-
- DC.L %00000000000000111100000000000000
- DC.L %00000000000011000011000000000000
- DC.L %00000000001100000000110000000000
- DC.L %00000000110000000000001100000000
- DC.L %00000011000000000000000011000000
- DC.L %00001100000000000000000000110000
- DC.L %00110000000000000000000000001100
- DC.L %11111111110000000000001111111111
- DC.L %00000000110000000000001100000000
- DC.L %00000000110000000000001100000000
- DC.L %00000000110000000000001100000000
- DC.L %00000000110000000000001100000000
- DC.L %00000000110000000000001100000000
- DC.L %00000000110000000000001100000000
- DC.L %00000000110000000000001100000000
- DC.L %00000000110000000000001100000000
- DC.L %00000000110000000000001100000000
- DC.L %00000000110000000000001100000000
- DC.L %00000000111111111111111100000000
- DC.L %00000000000000000000000000000000
- DC.L %00000000111111111111111100000000
- DC.L %00000000110000000000001100000000
- DC.L %00000000110000000000001100000000
- DC.L %00000000111111111111111100000000
- DC.L %00000000000000000000000000000000
- DC.L %00000000111111111111111100000000
- DC.L %00000000110000000000001100000000
- DC.L %00000000111111111111111100000000
- DC.L %00000000000000000000000000000000
- DC.L %00000000111111111111111100000000
- DC.L %00000000111111111111111100000000
-
- ArrowDown DC.L %00000000000000000000000000000000
- DC.L %00000000000000000000000000000000
- DC.L %00000000000000000000000000000000
- DC.L %00000000000000000000000000000000
- DC.L %00000000000000000000000000000000
- DC.L %00000000001111111111110000000000
- DC.L %00000000000000000000000000000000
- DC.L %00000000000000000000000000000000
- DC.L %00000000000000000000000000000000
- DC.L %00000000001111111111110000000000
- DC.L %00000000001111111111110000000000
- DC.L %00000000000000000000000000000000
- DC.L %00000000000000000000000000000000
- DC.L %00000000000000000000000000000000
- DC.L %00000000001111111111110000000000
- DC.L %00000000001111111111110000000000
- DC.L %00000000001111111111110000000000
- DC.L %00000000001111111111110000000000
- DC.L %00000000001111111111110000000000
- DC.L %00000000001111111111110000000000
- DC.L %00000000001111111111110000000000
- DC.L %00000000001111111111110000000000
- DC.L %00000000001111111111110000000000
- DC.L %00000000001111111111110000000000
- DC.L %00000000001111111111110000000000
- DC.L %00001111111111111111111111110000
- DC.L %00000011111111111111111111000000
- DC.L %00000000111111111111111100000000
- DC.L %00000000001111111111110000000000
- DC.L %00000000000011111111000000000000
- DC.L %00000000000000111100000000000000
- DC.L %00000000000000000000000000000000
-
- DC.L %00000000000000000000000000000000
- DC.L %00000000111111111111111100000000
- DC.L %00000000111111111111111100000000
- DC.L %00000000000000000000000000000000
- DC.L %00000000111111111111111100000000
- DC.L %00000000110000000000001100000000
- DC.L %00000000111111111111111100000000
- DC.L %00000000000000000000000000000000
- DC.L %00000000111111111111111100000000
- DC.L %00000000110000000000001100000000
- DC.L %00000000110000000000001100000000
- DC.L %00000000111111111111111100000000
- DC.L %00000000000000000000000000000000
- DC.L %00000000111111111111111100000000
- DC.L %00000000110000000000001100000000
- DC.L %00000000110000000000001100000000
- DC.L %00000000110000000000001100000000
- DC.L %00000000110000000000001100000000
- DC.L %00000000110000000000001100000000
- DC.L %00000000110000000000001100000000
- DC.L %00000000110000000000001100000000
- DC.L %00000000110000000000001100000000
- DC.L %00000000110000000000001100000000
- DC.L %00000000110000000000001100000000
- DC.L %11111111110000000000001111111111
- DC.L %00110000000000000000000000001100
- DC.L %00001100000000000000000000110000
- DC.L %00000011000000000000000011000000
- DC.L %00000000110000000000001100000000
- DC.L %00000000001100000000110000000000
- DC.L %00000000000011000011000000000000
- DC.L %00000000000000111100000000000000
-
- Image DC.W 0,0,508,40,2
- DC.L ImageData
- DC.B 3,0,0,0,0,0
- ImageData INCBIN Image.CE
- BlueBorder DC.W 0,0
- DC.B 2,0,0,9
- DC.L BlueLines,Shadows1
- BlueLines DC.W 301,16,334,16,334,143,301,143,301,16,301,49,334,49,334,110,301,110
- Shadows1 DC.W 0,0
- DC.B 1,0,0,3
- DC.L UpLines,Shadows2
- UpLines DC.W -158,-7,345,-7,345,150
- Shadows2 DC.W 0,0
- DC.B 3,0,0,3
- DC.L DownLines,0
- DownLines DC.W -158,-6,-158,151,345,151
-
-
- Line DC.B 'Address: Mode: view Area: '
-
- FirstArea DC.L $000000,$07FFFF
- DC.B ' Chip RAM '
- DC.L $080000,$1FFFFF
- DC.B 'copy of chip RAM'
- DC.L $200000,$9FFFFF
- DC.B ' Fast RAM '
- DC.L $A00000,$BFFFFF
- DC.B ' CIAs '
- DC.L $C00000,$C7FFFF
- DC.B ' Expansion '
- DC.L $C80000,$DBFFFF
- DC.B ' Unused '
- DC.L $DC0000,$DEFFFF
- DC.B ' Realtime clock '
- DC.L $E00000,$E7FFFF
- DC.B ' Unused '
- DC.L $E80000,$EFFFFF
- DC.B ' Expansion slot '
- DC.L $F00000,$F7FFFF
- DC.B ' ROM module '
- DC.L $F80000,$FBFFFF
- DC.B ' copy of ROM '
- DC.L $FC0000,$FFFFFF
- DC.B ' KickStart ROM '
-
- PrintCodes DCB.B 54,' '
- RememberKey DC.L 0
-
- RequestWW DC.W 0,0,220,44
- DC.B 2,1
- DC.L $440,$31002,RequestGG,0,TitleRequest,0,0
- DC.W 0,0,0,0,1
- RequestGG DC.W 0,0,140,27,68,12,1,3,1
- DC.L 0,0,RequestIText,0,0
- DC.W 0,0,0
- RequestIText DC.B 2,0,0,0
- DC.W -130,-12
- DC.L 0,0,ResumeIText
- ResumeIText DC.B 3,0,0,0
- DC.W 10,2
- DC.L 0,ResumeText,0
-
- LoadSaveWW DC.W 180,60,280,136
- DC.B 3,2
- DC.L $68,$31012,ParentGadget,0,0,0,0
- DC.W 0,0,0,0,1
- ParentGadget DC.L OkGadget
- DC.W 8,15,71,8,0,$203,1
- DC.L Borders,0,ParentIText,0,0
- DC.W 0,0,0
- ParentIText DC.B 3,0,0,0
- DC.W 10,0
- DC.L 0,ParentText,0
- OkGadget DC.L GetdirGadget
- DC.W 8,-12,71,8,8,$203,1
- DC.L Borders,0,OkIText,0,0
- DC.W 0,0,0
- Borders DC.W 0,0
- DC.B 2,0,0,5
- DC.L OkLines,0
- OkLines DC.W -2,-2,72,-2,72,9,-2,9,-2,-2
- OkIText DC.B 3,0,0,0
- DC.W 25,0
- DC.L 0,OkString,0
- GetdirGadget DC.L CancelGadget
- DC.W 105,-12,71,8,8,$203,1
- DC.L Borders,0,GetdirIText,0,0
- DC.W 0,0,0
- GetdirIText DC.B 3,0,0,0
- DC.W 12,0
- DC.L 0,GetdirString,0
- CancelGadget DC.L PropGadget
- DC.W -79,-12,71,8,$18,$203,1
- DC.L Borders,0,CancelIText,0,0
- DC.W 0,0,0
- CancelIText DC.B 3,0,0,0
- DC.W 12,0
- DC.L 0,CancelString,0
- PropGadget DC.L DirGadget
- DC.W 255,26,18,60,4,3,3
- DC.L ImageSlider,0,0,0,PropInfo
- DC.W 0,0,0
- PropInfo DC.W 5,0,0,0,$FFFF,0,0,0,0,0,0
- DirGadget DC.L FileGadget
- DC.W 88,90,180,10,0,3,4
- DC.L LoadBorder1,0,DirIText,0,DirSInfo
- DC.W 0,0,0
- DirIText DC.B 3,0,0,0
- DC.W -80,0
- DC.L 0,DirText,FileIText
- FileIText DC.B 3,0,0,0
- DC.W -80,10
- DC.L 0,FileText,0
- DirSInfo DC.L DirBuffer,DirBuffer
- DC.W 0,101,0,0,0,0,0,0
- DC.L 0,0,0
- LoadBorder1 DC.W 0,0
- DC.B 1,0,0,0
- DC.L DirLines,LoadBorder2
- DirLines DC.W 184,8,-4,8,-4,18,184,18,184,-2,-4,-2,-4,18,-4,28,62,28,62,18
- LoadBorder2 DC.W 0,10
- DC.B 2,0,0,5
- DC.L FileLines,0
- FileLines DC.W -82,-15,161,-15,161,-74,-82,-74,-82,-15
- FileGadget DC.W 0,0,88,100,180,10,0,3,4
- DC.L 0,0,0,0,FileSInfo
- DC.W 0,0,0
- FileSInfo DC.L FileBuffer,FileBuffer
- DC.W 0,31,0,0,0,0,0,0
- DC.L 0,0,0
- LengthGadget DC.W 0,0,88,110,90,10,0,3,4
- DC.L 0,0,LengthIText,0,LengthSInfo
- DC.W 0,0,0
- LengthSInfo DC.L SaveLengthBuffer,SaveLengthBuffer
- DC.W 0,7,0,0,0,0,0,0
- DC.L 0,0,0
- LengthIText DC.B 3,0,0,0
- DC.W -80,0
- DC.L 0,LengthText,0
-
- ModifyWW DC.W 216,96,208,65
- DC.B 3,2
- DC.L $240,$3100A,ByteGG,0,TextChange,0,0
- DC.W 0,0,0,0,1
- ByteGG DC.L WordGG
- DC.W 110,22,90,10,0,3,4
- DC.L BorderL,0,ByteIText,0,ByteSInfo
- DC.W 0,0,0
- ByteIText DC.B 3,0,0,0
- DC.W -90,0
- DC.L 0,ByteText,0
- ByteSInfo DC.L ByteBuffer,ByteBuffer
- DC.W 0,3,0,0,0,0,0,0,0,0,0,0,0,0
- WordGG DC.L LongGG
- DC.W 110,33,90,10,0,3,4
- DC.L BorderL,0,WordIText,0,WordSInfo
- DC.W 0,0,0
- WordIText DC.B 3,0,0,0
- DC.W -90,0
- DC.L 0,WordText,0
- WordSInfo DC.L WordBuffer,WordBuffer
- DC.W 0,5,0,0,0,0,0,0,0,0,0,0,0,0
- LongGG DC.W 0,0,110,44,90,10,0,3,4
- DC.L BorderL,0,LongIText,0,LongSInfo
- DC.W 0,0,0
- LongIText DC.B 3,0,0,0
- DC.W -90,0
- DC.L 0,LongText,0
- LongSInfo DC.L LongBuffer,LongBuffer
- DC.W 0,9,0,0,0,0,0,0,0,0,0,0,0,0
- BorderL DC.W 0,0
- DC.B 1,0,0,5
- DC.L LinesB,0
- LinesB DC.W -4,-2,76,-2,76,9,-4,9,-4,-2
-
- FillMoveWW DC.W 217,101,206,54
- DC.B 3,2
- DC.L $240,$3100A,LengthGG,0,TextFill,0,0
- DC.W 0,0,0,0,1
- LengthGG DC.L PatternGG
- DC.W 110,22,90,10,0,3,4
- DC.L BorderL,0,FMLengthIText,0,FMLengthSInfo
- DC.W 0,0,0
- FMLengthIText DC.B 3,0,0,0
- DC.W -90,0
- DC.L 0,FMLengthText,0
- FMLengthSInfo DC.L LengthBuffer,LengthBuffer
- DC.W 0,7,0,0,0,0,0,0,0,0,0,0,0,0
- PatternGG DC.W 0,0,110,33,90,10,0,3,4
- DC.L BorderL,0,PatternIText,0,PatternSInfo
- DC.W 0,0,0
- PatternIText DC.B 3,0,0,0
- DC.W -90,0
- DC.L 0,PatternText,0
- PatternSInfo DC.L PatternBuffer,PatternBuffer
- DC.W 0,7,0,0,0,0,0,0,0,0,0,0,0,0
-
- SetAddressWW DC.W 259,103,122,50
- DC.B 3,2
- DC.L $240,$3100A,SetAddrGG,0,TextSetAddress,0,0
- DC.W 0,0,0,0,1
- SetAddrGG DC.W 0,0,24,26,72,10,0,3,4
- DC.L BorderL,0,0,0,SetAddrSInfo
- DC.W 0,0,0
- SetAddrSInfo DC.L SetAddressBuffer,SetAddressBuffer
- DC.W 0,7,0,0,0,0,0,0,0,0,0,0,0,0
-
- SearchWW DC.W 211,103,218,51
- DC.B 3,2
- DC.L $240,$3100A,SearchGG,0,0,0,0
- DC.W 0,0,0,0,1
- SearchGG DC.L 0
- DC.W 16,26,190,10,0,3,4
- DC.L SearchBorder,0,0,0,SearchSInfo
- DC.W 0,0,0
- SearchSInfo DC.L SearchBuffer,SearchBuffer
- DCB.W 14,0
- SearchBorder DC.W 0,0
- DC.B 1,0,0,5
- DC.L SearchLines,0
- SearchLines DC.W -5,-2,188,-2,188,9,-5,9,-5,-2
-
- MenuMemory DC.L MenuAddress
- DC.W 0,0,88,0,$101
- DC.L MenuTitleMemory,ItemLoad,0,0
- ItemLoad DC.L ItemSave
- DC.W 0,0,210,10,$56
- DC.L 0,LoadIText,0
- DC.B 'O',0
- DC.W 0,0,-1
- ItemSave DC.L ItemModify
- DC.W 0,10,210,10,$56
- DC.L 0,SaveIText,0
- DC.B 'W',0
- DC.W 0,0,-1
- ItemModify DC.L ItemFill
- DC.W 0,20,210,10,$56
- DC.L 0,ModifyIText,0
- DC.B 'M',0
- DC.W 0,0,-1
- ItemFill DC.L ItemMove
- DC.W 0,30,210,10,$56
- DC.L 0,FillIText,0
- DC.B 'F',0
- DC.W 0,0,-1
- ItemMove DC.L ItemQuit
- DC.W 0,40,210,10,$56
- DC.L 0,MoveIText,0
- DC.B 'C',0
- DC.W 0,0,-1
- ItemQuit DC.L 0
- DC.W 0,53,210,10,$56
- DC.L 0,QuitIText,0
- DC.B 'Q',0
- DC.W 0,0,-1
- LoadIText DC.B 3,2,0,0
- DC.W 1,1
- DC.L 0,TextLoad,0
- SaveIText DC.B 3,2,0,0
- DC.W 1,1
- DC.L 0,TextSave,0
- ModifyIText DC.B 3,2,0,0
- DC.W 1,1
- DC.L 0,TextModify,0
- FillIText DC.B 3,2,0,0
- DC.W 1,1
- DC.L 0,TextFill,0
- MoveIText DC.B 3,2,0,0
- DC.W 1,1
- DC.L 0,TextMove,0
- QuitIText DC.B 3,2,0,0
- DC.W 1,1
- DC.L 0,TextQuit,0
- MenuAddress DC.L MenuSearch
- DC.W 88,0,96,0,$101
- DC.L MenuTitleAddress,ItemSetAddress,0,0
- ItemSetAddress DC.L ItemPgBackwards
- DC.W 0,0,180,10,$56
- DC.L 0,SetAddressIText,0
- DC.B 'A',0
- DC.W 0,0,-1
- ItemPgBackwards DC.L ItemPgForewards
- DC.W 0,10,180,10,$56
- DC.L 0,PgBackwardsIText,0
- DC.B 'U',0
- DC.W 0,0,-1
- ItemPgForewards DC.L 0
- DC.W 0,20,180,10,$56
- DC.L 0,PgForewardsIText,0
- DC.B 'D',0
- DC.W 0,0,-1
- SetAddressIText DC.B 3,2,0,0
- DC.W 1,1
- DC.L 0,TextSetAddress,0
- PgBackwardsIText DC.B 3,2,0,0
- DC.W 1,1
- DC.L 0,TextPgBackwards,0
- PgForewardsIText DC.B 3,2,0,0
- DC.W 1,1
- DC.L 0,TextPgForewards,0
- MenuSearch DC.W 0,0,184,0,88,0,$101
- DC.L MenuTitleSearch,ItemSearch,0,0
- ItemSearch DC.L ItemWord
- DC.W 0,0,180,10,$56
- DC.L 0,SearchIText,0
- DC.B 'S',0
- DC.W 0,0,-1
- ItemWord DC.L ItemLongWord
- DC.W 0,10,180,10,$56
- DC.L 0,SWordIText,0
- DC.B 'H',0
- DC.W 0,0,-1
- ItemLongWord DC.L ItemTask
- DC.W 0,20,180,10,$56
- DC.L 0,LongWordIText,0
- DC.B 'L',0
- DC.W 0,0,-1
- ItemTask DC.L ItemRepeat
- DC.W 0,30,180,10,$56
- DC.L 0,TaskIText,0
- DC.B 'T',0
- DC.W 0,0,-1
- ItemRepeat DC.W 0,0,0,40,180,10,$56
- DC.L 0,RepeatIText,0
- DC.B 'R',0
- DC.W 0,0,-1
- SearchIText DC.B 3,2,0,0
- DC.W 1,1
- DC.L 0,TextSearch,0
- SWordIText DC.B 3,2,0,0
- DC.W 1,1
- DC.L 0,TextWord,0
- LongWordIText DC.B 3,2,0,0
- DC.W 1,1
- DC.L 0,TextLongWord,0
- TaskIText DC.B 3,2,0,0
- DC.W 1,1
- DC.L 0,TextTask,0
- RepeatIText DC.B 3,2,0,0
- DC.W 1,1
- DC.L 0,TextRepeat,0
-
- FileDoesNotExist DC.B 'File doesn',39,'t exist',0
- RequestDevice DC.B 'Dir or device not found',0
- ParityRequest DC.B 'Error! Not parity address',0
- CustomChipsRq DC.B 'Error! Custom chips area',0
- RequestString DC.B ' Given string not found',0
- RequestWord DC.B ' Given word not found',0
- RequestLongWord DC.B 'Given long word not found',0
- TaskRequest DC.B ' Given task not exist',0
- MemoryRequest DC.B ' Insufficient memory !',0
- TitleRequest DC.B 'Request',0
- ResumeText DC.B 'Resume',0
- ParentText DC.B 'Parent',0
- DirText DC.B 'Directory',0
- FileText DC.B 'FileName',0
- LengthText DC.B 'Length',0
- OkString DC.B 'Ok!',0
- GetdirString DC.B 'Getdir',0
- CancelString DC.B 'Cancel',0
- TextChange DC.B ' Change B. W. L. to.. ',0
- ByteText DC.B 'byte $',0
- WordText DC.B 'word $',0
- LongText DC.B 'long $',0
- FMLengthText DC.B 'Length $',0
- PatternText DC.B 'Pattern $',0
- MoveToText DC.B 'Move to $',0
- MenuTitleMemory DC.B ' Memory',0
- TextLoad DC.B 'Load file to memory',0
- TextSave DC.B 'Save block to file',0
- TextModify DC.B 'Modify',0
- TextFill DC.B 'Fill block',0
- TextMove DC.B 'Move block',0
- TextQuit DC.B 'Quit',0
- MenuTitleAddress DC.B ' Address',0
- TextSetAddress DC.B 'Set address',0
- TextPgBackwards DC.B 'Page backwards',0
- TextPgForewards DC.B 'Page forewards',0
- MenuTitleSearch DC.B ' Search',0
- TextSearch DC.B 'Ascii string',0
- TextWord DC.B 'Hex word',0
- TextLongWord DC.B 'Hex long word',0
- TextTask DC.B 'Task by name',0
- TextTask2 DC.B 'Task name',0
- TextRepeat DC.B 'Repeat search',0
- IntName DC.B 'intuition.library',0
- GfxName DC.B 'graphics.library',0
- *DosName DC.B 'dos.library',0
- EVEN
-
- ******************** Subroutine Quit *******************************************
-
- Quit ADDQ.W #4,A7
- TST.B Flags(A4)
- BEQ.S NoUnLock
- MOVE.L DosBase(A4),A6
- MOVE.L SaveLock(A4),D1
- JSR UnLock(A6)
- NoUnLock MOVE.L WW1(A4),A0
- MOVE.L IntBase(A4),A6
- JSR ClearMenuStrip(A6)
- MOVE.L WW1(A4),A0
- JSR CloseWindow(A6)
- FreeMemory LEA RememberKey(PC),A0
- MOVEQ #1,D0
- JSR FreeRemember(A6)
- CloseAllLibs MOVE.L 4.W,A6
- MOVE.L IntBase(A4),A1
- JSR CloseLibrary(A6)
- CloseGfx MOVE.L GfxBase(A4),A1
- JMP CloseLibrary(A6)
- * JSR CloseLibrary(A6)
- *CloseDos MOVE.L DosBase(A4),A1
- * JSR CloseLibrary(A6)
- *GetOut UNLK A4
- * MOVEQ #0,D0
- * RTS
-
- EndProgram
- * DCB.B 732,0
- ImageSlider EQU EndProgram
- DirBuffer EQU EndProgram+20
- FileBuffer EQU EndProgram+121
- TextImage EQU EndProgram+152
- SearchBuffer EQU EndProgram+584
- SaveLengthBuffer EQU EndProgram+687
- PatternBuffer EQU EndProgram+694
- LengthBuffer EQU EndProgram+701
- ByteBuffer EQU EndProgram+708
- WordBuffer EQU EndProgram+711
- LongBuffer EQU EndProgram+716
- SetAddressBuffer EQU EndProgram+725
-
- ******************** End of program ********************************************
-