i am confused that what will be the value of variable DPBBUF_SIZ given below the value given as (4472 + 15) / 16 and assigned to varible DPBBUF_SIZ is in terms of hexadecimal or decimal. please let me know what value will be assigned to varibale DPBBUF_SIZ. thanks in advance.
DOSSIZE EQU 5000H
DPBBUF_SIZ DW (4472 + 15) / 16 ; my PROBLEM is that what value will
;be assigned to varible "DPBBUF_SIZ" here.
GOINIT:
CLD
XOR SI,SI
MOV DI,SI
IF MSVER
MOV CX,[MEMORY_SIZE]
CMP CX,1
JNZ NOSCAN
MOV CX,2048 ; START SCANNING AT 32K BOUNDARY
XOR BX,BX
MEMSCAN:INC CX
JZ SETEND
MOV DS,CX
MOV AL,[BX]
NOT AL
MOV [BX],AL
CMP AL,[BX]
NOT AL
MOV [BX],AL
JZ MEMSCAN
SETEND:
MOV [MEMORY_SIZE],CX
ENDIF
IF IBMVER OR IBMJAPVER
MOV CX,[MEMORY_SIZE]
ENDIF
NOSCAN:
MOV AX,CS
MOV DS,AX
ASSUME DS:SYSINITSEG
IF HIGHMEM
SUB CX,(DOSSIZE / 16) ; Leave room for DOS
SUB CX,CS:[DPBBUF_SIZ] ; Allow OEM to tune (my problem: what
;will be the final value of CX after this line or instruction)
ENDIF
SHR AX,1 ; Divide by 16 for paras
SHR AX,1
SHR AX,1
SHR AX,1
SUB CX,AX
MOV ES,CX
SHR CX,1 ; Divide by 2 to get words
REP MOVSW ; RELOCATE SYSINIT
ASSUME ES:SYSINITSEG
PUSH ES
MOV AX,OFFSET SYSIN
PUSH AX
....................
....more code here..
i think that given code will be enough to understand the problem. am i doing any mistake somewhere, please guide. thanks.