Don't worry I know that being a regular on forums is not as easy as most people would like. I myself struggle whenever I try to reference my previous posts. I'm happy to say that this time was pretty self-referential where I'm managing to quote from the main article.
For instance right now I'm improving the new round of tests by comparing between the two previous version models. To show this I'd like to add a new review by looking at the current state and outlines here now.
Source Design 2
To surmize I have managed to add improvements for the main contestion of the original's "optional" parts. From the original pathing we may observe
(1) File.img <= CAT file commands <= .bin files <= optional LD file commands <= optional elf type objects <= NASM assembling
To restate here the contestion was for the size in use of the previous binary files. The new adjustments take care of these binary files by correlating the values from the disk_read function more appropriately. Basically the variables at hand are between the AL and CL components of the BIOS function. Where AL = section_size and CL=section_segment_number represented by the code snippet below.
mov bx,0x0000_8000
mov cl,3
mov bx,msgString
mov bx,0x0000_8000
mov cl,3
mov al,2
call read_section
mov cx,0x800
mov es,cx
mov bx,0
mov cx,00000h
mov cl,3
;mov bx,0x0000_8000
mov al,2
call read_section
Consequentally instead of merely counting the parts I compensate for this by adjusting the value of CL to the corresponding value of AL. To illustrate this here is a new outline of path
Disk_Read(boot.asm) => Jump_From_Gate(Stage1.asm)
=>Jump_Into_BIOS16_Segment(Stage2.asm @ 0x8000) <CL=3 AL=2>
=>Stage3_Addressment( @ 0x8400) <CL=3+1 - AL-1=5>
The main inference being that CL is dependent on the values put into AL (CL=previous CL +1 + AL-1).
Amazingly this was not the case in the 2nd design where the boot file's disk_read was simplified to a single function
[BITS 16]
;[ORG 0x7c00]
section .text
_prep_module:
xor ax,ax
mov ds,ax
mov es,ax
mov ss,ax
mov sp,0x7C00
DriveIdPrep:
mov [DriveId],dl
mov ah,0x41
mov bx,0x55aa
int 0x13
; jc CheckPrep
cmp bx,0xaa55
; jne CheckPrep
SizeFunction:
mov bx,0x0000_7E00
mov cl,2
mov ah,0x02
; mov al,1
; mov al,12h
mov al,65
mov ch,0
mov dh,0
int 0x13
; jc ReadCheck
mov dl,[DriveId]
mov cx,0x1000
mov es,cx
mov bx,0x0000_0000
;mov bx,0x0000_D000
mov cl,3
mov bx,0x0000_0000
mov cl,3
mov al,1
call read_section
;mov cx,0xD00
mov cx,0x1000
mov es,cx
mov bx,0
;mov al,1
mov cl,3
mov al,1
call read_section
mov cx,0
mov es,cx
.move1:
jmp 0x7e00
Source Design 3
However for the purposes of the article it is pertinent to restate that the objective here is to make a conventional design of the BIOS .In conclusion the problem in the 2nd design is that build commands referencing anything beyond the disk_read function is still in testing. What else is now similarly in the Source Design 2 reference the disk_read function reads the incomplete check whenever I read anything beyond CL=0x24 passed the stage3.asm section. I'm convinced this is just a settings configuration in the BIOS however I still have to test that meanwhile again I'm happy to post the new source code and continue this conversation any further and I'm sorry for any discrepancies I make in these long form posts.