home *** CD-ROM | disk | FTP | other *** search
- ;> s.MapFindID
- ;
- ; 21 Nov 1993
-
- AREA MapFindID,CODE,READONLY
-
- GET ^.h.RegNames
- GET ^.h.Macros
- GET ^.h.SWIs
- GET h.Head
- GET h.Macros
-
- IMPORT MWriteText
- IMPORT ReadMap
- IMPORT StartZone
- IMPORT NextFileFragment
- IMPORT ConvertAndWriteFrag
- IMPORT BlankZeroes
- IMPORT FirstFreeFragment
- IMPORT NextFileFragment
- IMPORT ConvertAndWriteFrag
-
- EXPORT MapFindID_Code
- ;******************************************************************************
- ;
- ;MapFindID_Code ; -----
- ;--------------
- ; on entry:
- ; r0 -> id in ascii
- ;
- ; on exit:
- ;
- Routine "MapFindID_Code","r1-r11"
- LDR wb,[r12]
- BL ReadMap
- BVS exitWID
- LDR r11,MapLocation
-
- MOV r1,r0
- LDR r2,IDFieldMask
- MOV r0,#&10
- ORR r0,r0,#(1 :SHL: 31) :OR: (1 :SHL: 29)
- SWI XOS_ReadUnsigned
- BVS exitWID
-
- MOV r6,r2
- MOV r0,r2 ; r0,r6 ID
- BL StartZone ; r0 start zone
- LDRB r5,LogSectorSize
- ADD r5,r5,#3
- MOVS r8,r0,ASL r5 ; r8 start point
- MOV r10,r8
- MOV r7,#0 ; r7 counter
- LDR r4,MapEnd
- MOVEQ r8,r4
- BEQ halfOne
- halfTwoLoop
- ADR r1,Buffer
- MOV r2,#BufferSize
- MOV r0,r6
- BL NextFileFragment
- BEQ halfOne
- SUB r3,r10,r0
- ADD r7,r7,r3
- BL ConvertAndWriteFrag
- ADRVC r0,Buffer
- BLVC BlankZeroes
- SWIVC XOS_Write0
- BVS exitWID
- B halfTwoLoop
- halfOne
- MOV r10,#512
- BL FirstFreeFragment ; get r9 ready
- MOV r4,r8
- halfOneLoop
- ADR r1,Buffer
- MOV r2,#BufferSize
- MOV r0,r6
- [ debug
- PrintR r9
- ]
- BL NextFileFragment
- BEQ resultWID
- SUB r3,r10,r0
- ADD r7,r7,r3
- BL ConvertAndWriteFrag
- ADRVC r0,Buffer
- BLVC BlankZeroes
- SWIVC XOS_Write0
- BVS exitWID
- B halfOneLoop
-
- resultWID
- ADR r1,Buffer
- MOV r2,#BufferSize
- LDRB r3,LogBitSize
- TEQ r7,#0
- BEQ IDnomore
- Write "Total number of bytes allocated: &"
- MOVS r0,r7,ASL r3
- SWIVC XOS_ConvertHex8
- BVS exitWID
- Write " = "
- MOVVC r0,r7,ASL r3
- SWIVC XOS_ConvertCardinal4
- BVS exitWID
- WriteNL
- B writtenWID
- IDnomore
- WriteB """No fragments found."",10,13"
- writtenWID
- ADRVC r0,Buffer
- SWIVC XOS_Write0
- exitWID
- RoutineEnd
-
- END
-