site logo  BootableJFSLoad

HomePage | Categories |* BLOG *| RecentChanges | RecentlyCommented | Login/Register

Revision [1188]

Last edited on 2008-05-27 16:08:55 by MikeGreene
Additions:
**[[BootOs2Ldr os2ldr Entry Values]]**


Revision [1176]

Edited on 2008-05-27 15:32:46 by MikeGreene
Additions:
mov si, 160Ch ; 8800:160C buffer
call readdrive ; load superblock to 0x8960C
Deletions:
mov si, 160Ch ; 8800:016C buffer
call readdrive ; load boot drive sector to 0x8960C


Revision [1175]

Edited on 2008-05-26 16:09:30 by MikeGreene
Additions:
loc_8AA3E:
loc_8AA55:
Deletions:
loc_8AA3E: ; CODE XREF: sub_8AA04+32j
loc_8AA55: ; CODE XREF: sub_8AA04+1Dj
; sub_8AA04+2Cj ...


Revision [1174]

Edited on 2008-05-26 16:08:01 by MikeGreene
Additions:
The JFS superblock procedure loads the super block and stores values at the following locations:
superblock 8800:160C (0x8960C to 0x8980C)
offset 1858 to 185B (0x89858 to 0x89858)
offset 185C to 185F (0x8985C to 0x8985F)
call readsuperblock
readsuperblock proc near
push bp
mov bp, sp
xor ecx, ecx
mov di, 3D45h
call sub_8AA59
mov cl, al
mov ch, 0
push cx
mov di, 1509h
call sub_8AA59
mov bx, 1
pop cx
cmp cl, al
jg short loc_8AA55
mov si, 3D45h
mov di, 1509h
mov bx, 1
repe cmpsb
or cl, cl
jnz short loc_8AA55
cmp byte ptr es:[di], 5Ch ; '\'
jz short loc_8AA3E
cmp byte ptr es:[di], 0
jnz short loc_8AA55
loc_8AA3E: ; CODE XREF: sub_8AA04+32j
mov al, [si-1]
cmp al, es:[di-1]
jnz short loc_8AA55
mov di, si
mov al, 5Ch ; '\'
stosb
mov ds:14EFh, di
stosb
xor bx, bx
loc_8AA55: ; CODE XREF: sub_8AA04+1Dj
; sub_8AA04+2Cj ...
mov ax, bx
pop bp
readsuperblock endp
Deletions:
call readsector
readsector proc near
readsector endp


Revision [1173]

Edited on 2008-05-26 12:10:48 by MikeGreene
Additions:
; read into memory at offset 160C buffer
; see openJFS -- jfs_superblock.h
Deletions:
; read into memory at offset 016C buffer


Revision [1172]

Edited on 2008-05-26 11:52:42 by MikeGreene
Additions:
; read 1 sector from offset of partition 0x40 (64) or 32,768
; from the IBM docs this would be the superblock and it gets
; read into memory at offset 016C buffer
Deletions:
; Bochs: cs:s=0x8800 ds:s=0x8800 ss:s=0x8800 es:s=0x8800 fs:s=0x3000


Revision [1171]

Edited on 2008-05-26 09:41:43 by MikeGreene
Additions:
This is the main entry point from Phase 2:


Revision [1170]

Edited on 2008-05-26 09:40:02 by MikeGreene

No differences.

Revision [1169]

Edited on 2008-05-26 08:54:29 by MikeGreene
Deletions:
assume es:nothing


Revision [1168]

Edited on 2008-05-26 08:53:09 by MikeGreene
Additions:
- If INT13 Ext functions are supported then 3000:0000, segment contain in fs, has 58333149h, stored as 49 31 33 58. If not the location is zero.
Deletions:
- If INT13 Ext functions are supported then 3000:0000 has 58333149h, stored as 49 31 33 58. If not the location is zero.


Revision [1167]

Edited on 2008-05-26 08:52:23 by MikeGreene
Additions:
This module contains the micro-FSD which is located between the partition bootsector and the actual data on the hard drive. The load segment was calculated in Phase 2 and for the Bochs drive image is 0x8800. The entry point is 8800:199C or 0x8999C with the registers (Bochs image) loaded as follows:
eax: 0x0000199C
ecx: 0x00007FBE
edx: 0x00000080
ebx: 0x00000000
esp: 0x00007C00
ebp: 0x00000000
esi: 0xFFFF0046
edi: 0x00000000
eflags 0x00000246
IOPL=0 id vip vif ac vm rf nt of df IF tf sf ZF af PF cf
Segment registers:
cs:s=0x8800 ds:s=0x8800 ss:s=0x0000 es:s=0x07C0 fs:s=0x3000
This is somewhat irrelevant because es, ds, and ss will be set to cs (0x8800 in this example) and sp set to 0x5000.
Deletions:
This module contains the micro-FSD which is located between the partition bootsector and the actual data on the hard drive. The load segment was calculated in Phase 2 and for the Bochs drive image is 0x8800.


Revision [1166]

Edited on 2008-05-26 08:43:41 by MikeGreene
Additions:
This module contains the micro-FSD which is located between the partition bootsector and the actual data on the hard drive. The load segment was calculated in Phase 2 and for the Bochs drive image is 0x8800.
Deletions:
This module contains the micro-FSD which is located between the partition bootsector and the actual data on the hard drive.


Revision [1165]

Edited on 2008-05-26 08:42:35 by MikeGreene
Additions:
- The storage area contains the results of Phase 2 -- (Bochs disk) 0x8803E 3F, 0, 0 0, 0, 0, 0, 0 or 0x000000000000003F.
Deletions:
-


Revision [1164]

Edited on 2008-05-26 08:13:07 by MikeGreene
Additions:
; BIOS parameter block (BPB)
88003 db 'IBM 4.50' ; Partition creator
8800B db 0, 2 ; 0x0200 size of sector in bytes
88015 db F8 ; media type - hard disk
88018 db 3F, 0 ; BPB formatted geo: Sectors - 63
8801A db 20, 0 ; BPB formatted geo: Heads - 32
8801C db 3F, 0, 0 ,0 ; 0x0000003F hidden sectors
88020 db 41, 12, 13, 0 ; 0x00131241 Big number of sectors
88024 db 80 ; physical drive number
88025 db 80 ; Boot drive letter
88026 db 29 ; Ext-BPB signature
88027 db BD , 55, 9C, 69 ; Partition serial number 0x699c55bd
8802B db bochs, 0, 0, 0, 0, 0, 0 ; Partition label (11)
88036 db "JFS " ; Filesystem type (8)
; Used as temp storage
8803E db 0, 0, 0, 0 ; absolute number of the start of the sectors
88042 db 0, 0, 0, 0
88047 db 0 ; unused, should be zero
88048 db 20 ; number of sectors to be read
88049 db 0 ; unused, should be zero
8804A db 0, 0, 0, 0 ;segment:offset pointer to the memory buffer
Deletions:
88003 db 'IBM 4.50',0
8800C db 2
88015 db F8
88018 db 3F
88019 db 0
8801A db 20
8801B db 0
8801C db 3F
8801D db 0
8801E db 0
8801F db 0
88020 db 41
88021 db 12
88022 db 13
88023 db 0
88024 db 80 ; drive index store
88025 db 80
88026 db 29
88027 db BD
88028 db 55
88029 db 9C
8802A db 69
8802B db bochs
88030 db 0
88031 db 0
88032 db 0
88033 db 0
88034 db 0
88035 db 0
88036 db "JFS "
8803E db 0, 0, 0, 0 ; absolute number of the start of the sectors
8803F db 0, 0, 0, 0
88047 db 0 ; unused, should be zero
88048 db 20
88049 db 0
8804A db 0, 0, 0, 0


Revision [1136]

Edited on 2008-05-25 19:08:17 by MikeGreene

No differences.

Revision [1135]

Edited on 2008-05-25 19:08:08 by MikeGreene
Additions:
**[[BootableJFSLVM LVM MBR Disassembled]]**
**[[BootableJFSPartition Bootable JFS Partition Bootsector]]**
**[[BootableJFSLoad The micro-FSD]]**
Deletions:
**[[BootableJFSLVM MBR]]**


Revision [1128]

Edited on 2008-05-25 19:01:30 by MikeGreene
Additions:
<<===The micro-FSD===
This module contains the micro-FSD which is located between the partition bootsector and the actual data on the hard drive.
Items from previous loads:
Deletions:
<


Revision [1127]

Edited on 2008-05-25 13:04:38 by MikeGreene
Additions:
>>
**[[BootableJFS Top Page]]**
**[[BootableJFSLVM MBR]]**
<
Deletions:
Items from previous loads:


Revision [1126]

Edited on 2008-05-25 13:03:28 by MikeGreene
Additions:
Items from previous loads:
- If INT13 Ext functions are supported then 3000:0000 has 58333149h, stored as 49 31 33 58. If not the location is zero.
-


Revision [1111]

The oldest known version of this page was created on 2008-05-24 06:38:11 by MikeGreene
Valid XHTML 1.0 Transitional :: Valid CSS :: Powered by Wikka Wakka Wiki 1.1.6.7
Page was generated in 0.4414 seconds