small change. Add make a fdd image.
git-svn-id: svn://kolibrios.org@1151 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
@@ -13,4 +13,8 @@ echo ==============================
|
|||||||
echo ** building firs loader for fat32 **
|
echo ** building firs loader for fat32 **
|
||||||
@fasm -m 65535 fat32/bootsect.asm fat32/bootsect.bin
|
@fasm -m 65535 fat32/bootsect.asm fat32/bootsect.bin
|
||||||
@fasm -m 65535 fat32/kordldr.f1x.asm fat32/kordldr.f1x
|
@fasm -m 65535 fat32/kordldr.f1x.asm fat32/kordldr.f1x
|
||||||
|
echo ==============================
|
||||||
|
echo ** make a image of fdd **
|
||||||
|
@fasm -m 65535 floppy.asc kord.img
|
||||||
|
|
||||||
@pause
|
@pause
|
||||||
|
49
kernel/trunk/sec_loader/trunk/boot/floppy.asc
Normal file
49
kernel/trunk/sec_loader/trunk/boot/floppy.asc
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
include "mkfloppy.inc"
|
||||||
|
;// insert boot sect
|
||||||
|
file "fat1x/bootsect.bin", 512
|
||||||
|
|
||||||
|
; fat1
|
||||||
|
db 0F0h, 0FFh, 0FFh, 9*512-3 dup 0
|
||||||
|
; fat2
|
||||||
|
db 0F0h, 0FFh, 0FFh, 9*512-3 dup 0
|
||||||
|
|
||||||
|
; root
|
||||||
|
dent kordldr, "KORDLDR F1X", FA_ARC
|
||||||
|
dent kord, "KORD ",FA_DIR
|
||||||
|
dent kolibri, "KOLIBRI ",FA_DIR
|
||||||
|
; ...
|
||||||
|
|
||||||
|
rb 33*512-$
|
||||||
|
;///////////////////////////
|
||||||
|
defdir kord
|
||||||
|
{
|
||||||
|
dent loader, "LOADER ", FA_ARC
|
||||||
|
dent ini,"STARTOS INI", FA_ARC
|
||||||
|
}
|
||||||
|
|
||||||
|
defdir kolibri
|
||||||
|
{
|
||||||
|
dent kolibri_ldm, "KOLIBRI LDM", FA_ARC
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
; data
|
||||||
|
stof kordldr, "fat1x/kordldr.f1x"
|
||||||
|
stod kord,root
|
||||||
|
|
||||||
|
stof loader, "../loader"
|
||||||
|
stof ini,"../startos.ini"
|
||||||
|
|
||||||
|
store dword ini_base/512+1 at ini_base+1F8h
|
||||||
|
store word (ini_size+511)/512-1 at ini_base+1FCh
|
||||||
|
store word 220h at ini_base+1FEh
|
||||||
|
|
||||||
|
stod kolibri,root
|
||||||
|
stof kolibri_ldm, "../kolibri_ldm/bin/kolibri.ldm"
|
||||||
|
store dword kolibri_ldm_base/512+1 at kolibri_ldm_base+1F8h
|
||||||
|
store word (kolibri_ldm_size+511)/512-1 at kolibri_ldm_base+1FCh
|
||||||
|
store word 220h at kolibri_ldm_base+1FEh
|
||||||
|
|
||||||
|
|
||||||
|
; ...
|
||||||
|
rb 2*80*18*512-$
|
90
kernel/trunk/sec_loader/trunk/boot/mkfloppy.inc
Normal file
90
kernel/trunk/sec_loader/trunk/boot/mkfloppy.inc
Normal file
@@ -0,0 +1,90 @@
|
|||||||
|
; ---------------------------------------------------------------------------
|
||||||
|
; mkfloppy.inc
|
||||||
|
; ---------------------------------------------------------------------------
|
||||||
|
; Created by Phantom-84
|
||||||
|
; ---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
FA_RO equ 01h
|
||||||
|
FA_HID equ 02h
|
||||||
|
FA_SYS equ 04h
|
||||||
|
FA_VOL equ 08h
|
||||||
|
FA_DIR equ 10h
|
||||||
|
FA_ARC equ 20h
|
||||||
|
|
||||||
|
DSTAMP equ 28C1h
|
||||||
|
TSTAMP equ 6000h
|
||||||
|
|
||||||
|
root_size=0
|
||||||
|
|
||||||
|
macro reset id
|
||||||
|
{
|
||||||
|
local count, cur, disp, val, var
|
||||||
|
times 511-($+511) mod 512 db 0
|
||||||
|
if id#_size>0
|
||||||
|
count=(id#_size+511)/512
|
||||||
|
cur=id#_base/512-(33-2)
|
||||||
|
repeat count
|
||||||
|
if %=count
|
||||||
|
val=0FFFh
|
||||||
|
else
|
||||||
|
val=cur+1
|
||||||
|
end if
|
||||||
|
if cur and 1
|
||||||
|
val=val shl 4
|
||||||
|
end if
|
||||||
|
disp=(cur*3)/2
|
||||||
|
load var word from 512+disp
|
||||||
|
var=var or val
|
||||||
|
store word var at 512+disp
|
||||||
|
store word var at 10*512+disp
|
||||||
|
cur=cur+1
|
||||||
|
end repeat
|
||||||
|
end if
|
||||||
|
}
|
||||||
|
|
||||||
|
macro dent id, name, attr
|
||||||
|
{
|
||||||
|
@@ db name
|
||||||
|
times @b+11-$ db 32
|
||||||
|
db attr
|
||||||
|
dw 0, TSTAMP, DSTAMP, DSTAMP, 0, TSTAMP, DSTAMP
|
||||||
|
if id#_size=0
|
||||||
|
dw 0
|
||||||
|
else
|
||||||
|
dw id#_base/512-(33-2)
|
||||||
|
end if
|
||||||
|
if (attr) and FA_DIR
|
||||||
|
dd 0
|
||||||
|
else
|
||||||
|
dd id#_size
|
||||||
|
end if
|
||||||
|
}
|
||||||
|
|
||||||
|
macro orgdir id, parentid
|
||||||
|
{
|
||||||
|
id#_base:
|
||||||
|
dent id, ".", FA_DIR
|
||||||
|
dent parentid, "..", FA_DIR
|
||||||
|
}
|
||||||
|
|
||||||
|
macro findir id
|
||||||
|
{
|
||||||
|
id#_size=$-id#_base
|
||||||
|
reset id
|
||||||
|
}
|
||||||
|
|
||||||
|
macro stod id, parentid
|
||||||
|
{
|
||||||
|
orgdir id, parentid
|
||||||
|
id
|
||||||
|
findir id
|
||||||
|
}
|
||||||
|
|
||||||
|
macro stof id, name
|
||||||
|
{
|
||||||
|
id#_base: file name
|
||||||
|
id#_size=$-id#_base
|
||||||
|
reset id
|
||||||
|
}
|
||||||
|
|
||||||
|
defdir fix macro
|
@@ -31,14 +31,14 @@
|
|||||||
;======================================================================
|
;======================================================================
|
||||||
|
|
||||||
|
|
||||||
version db 'Secondary Loader v 0.009',0
|
version db 'Secondary Loader v 0.010',0
|
||||||
version_end:
|
version_end:
|
||||||
|
|
||||||
select_section db 'Select section:'
|
select_section db 'Select section:'
|
||||||
select_section_end:
|
select_section_end:
|
||||||
section_description db 'Section description:'
|
section_description db 'Section description:'
|
||||||
section_description_end:
|
section_description_end:
|
||||||
soft_mes db 'Soft (c) 2008'
|
soft_mes db 'Soft (c) 2008-2009'
|
||||||
soft_mes_end:
|
soft_mes_end:
|
||||||
|
|
||||||
badprocessor db '>Fatal - CPU 586+ required.',0
|
badprocessor db '>Fatal - CPU 586+ required.',0
|
||||||
|
@@ -26,6 +26,7 @@
|
|||||||
|
|
||||||
;<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
;<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||||
If DEBUG
|
If DEBUG
|
||||||
|
cseg_msg db ' - Adress of code segment',0
|
||||||
stack_msg db 'Set stack & segments is have completed',0
|
stack_msg db 'Set stack & segments is have completed',0
|
||||||
show_string db 'Have loaded size:'
|
show_string db 'Have loaded size:'
|
||||||
show_decode db ' ',0
|
show_decode db ' ',0
|
||||||
@@ -57,7 +58,8 @@ firstDataSect_msg db ' -first data sector, offset to data in sectors',0
|
|||||||
size_root_dir_msg db ' -size root dir in sectrors',0
|
size_root_dir_msg db ' -size root dir in sectrors',0
|
||||||
DataClasters_msg db ' -size data in Clasters',0
|
DataClasters_msg db ' -size data in Clasters',0
|
||||||
check_name_fat_msg db ' -if -1 name is present, else 0 then not present name',0
|
check_name_fat_msg db ' -if -1 name is present, else 0 then not present name',0
|
||||||
convertion_file_name_msg db ' -if -1, then destination name is bad',0
|
convertion_file_name_msg db ' -if -1, then destination name of file is bad',0
|
||||||
|
start_making_FAT12_msg db '>>>>>> Begin making fat12 FS on RAMDISK <<<<<<<',0
|
||||||
make_fat12_RFS_msg db '-Make FAT12 Ram FS',0
|
make_fat12_RFS_msg db '-Make FAT12 Ram FS',0
|
||||||
get_type_FS_msg db '-End make RamDisk',0
|
get_type_FS_msg db '-End make RamDisk',0
|
||||||
return_code_af_move db ' -return code after 0x87 int 0x15, move block',0
|
return_code_af_move db ' -return code after 0x87 int 0x15, move block',0
|
||||||
|
635
kernel/trunk/sec_loader/trunk/listing.inc
Normal file
635
kernel/trunk/sec_loader/trunk/listing.inc
Normal file
@@ -0,0 +1,635 @@
|
|||||||
|
; Listing generator
|
||||||
|
; LocoDelAssembly 2007.06.01
|
||||||
|
|
||||||
|
INSTRUCTIONS equ bt in ja jb jc je jg jl jo jp js jz or \
|
||||||
|
aaa aad aam aas adc add and bsf bsr btc btr bts cbw cdq clc \
|
||||||
|
cld cli cmc cmp cqo cwd daa das dec div fld fst hlt inc ins \
|
||||||
|
int jae jbe jge jle jmp jna jnb jnc jne jng jnl jno jnp jns \
|
||||||
|
jnz jpe jpo lar lds lea les lfs lgs lsl lss ltr mov mul neg \
|
||||||
|
nop not out pop por rcl rcr ret rol ror rsm sal sar sbb shl \
|
||||||
|
shr stc std sti str sub ud2 xor \
|
||||||
|
arpl call cdqe clgi clts cmps cwde emms fabs fadd fbld fchs \
|
||||||
|
fcom fcos fdiv feni fild fist fld1 fldz fmul fnop fsin fstp \
|
||||||
|
fsub ftst fxam fxch idiv imul insb insd insw int1 int3 into \
|
||||||
|
invd iret jcxz jnae jnbe jnge jnle lahf lgdt lidt lldt lmsw \
|
||||||
|
lods loop movd movq movs orpd orps outs pand popa popd popf \
|
||||||
|
popq popw push pxor retd retf retn retq retw sahf salc scas \
|
||||||
|
seta setb setc sete setg setl seto setp sets setz sgdt shld \
|
||||||
|
shrd sidt sldt smsw stgi stos test verr verw wait xadd xchg \
|
||||||
|
xlat \
|
||||||
|
addpd addps addsd addss andpd andps bound bswap cmova cmovb \
|
||||||
|
cmovc cmove cmovg cmovl cmovo cmovp cmovs cmovz cmppd cmpps \
|
||||||
|
cmpsb cmpsd cmpsq cmpss cmpsw cpuid divpd divps divsd divss \
|
||||||
|
enter f2xm1 faddp fbstp fclex fcomi fcomp fdisi fdivp fdivr \
|
||||||
|
femms ffree fiadd ficom fidiv fimul finit fistp fisub fldcw \
|
||||||
|
fldpi fmulp fneni fprem fptan fsave fsqrt fstcw fstsw fsubp \
|
||||||
|
fsubr fucom fwait fyl2x icebp iretd iretq iretw jecxz jrcxz \
|
||||||
|
lddqu leave lodsb lodsd lodsq lodsw loopd loope loopq loopw \
|
||||||
|
loopz maxpd maxps maxsd maxss minpd minps minsd minss movsb \
|
||||||
|
movsd movsq movss movsw movsx movzx mulpd mulps mulsd mulss \
|
||||||
|
mwait outsb outsd outsw pabsb pabsd pabsw paddb paddd paddq \
|
||||||
|
paddw pandn pause pavgb pavgw pf2id pf2iw pfacc pfadd pfmax \
|
||||||
|
pfmin pfmul pfrcp pfsub pi2fd pi2fw popad popaw popfd popfq \
|
||||||
|
popfw pslld psllq psllw psrad psraw psrld psrlq psrlw psubb \
|
||||||
|
psubd psubq psubw pusha pushd pushf pushq pushw rcpps rcpss \
|
||||||
|
rdmsr rdpmc rdtsc retfd retfq retfw retnd retnq retnw scasb \
|
||||||
|
scasd scasq scasw setae setbe setge setle setna setnb setnc \
|
||||||
|
setne setng setnl setno setnp setns setnz setpe setpo stosb \
|
||||||
|
stosd stosq stosw subpd subps subsd subss vmrun vmxon wrmsr \
|
||||||
|
xlatb xorpd xorps \
|
||||||
|
andnpd andnps cmovae cmovbe cmovge cmovle cmovna cmovnb cmovnc\
|
||||||
|
cmovne cmovng cmovnl cmovno cmovnp cmovns cmovnz cmovpe cmovpo\
|
||||||
|
comisd comiss fcmovb fcmove fcmovu fcomip fcompp fdivrp ffreep\
|
||||||
|
ficomp fidivr fisttp fisubr fldenv fldl2e fldl2t fldlg2 fldln2\
|
||||||
|
fnclex fndisi fninit fnsave fnstcw fnstsw fpatan fprem1 frstor\
|
||||||
|
frstpm fscale fsetpm fstenv fsubrp fucomi fucomp fxsave haddpd\
|
||||||
|
haddps hsubpd hsubps invlpg lfence looped loopeq loopew loopne\
|
||||||
|
loopnz loopzd loopzq loopzw mfence movapd movaps movdqa movdqu\
|
||||||
|
movhpd movhps movlpd movlps movnti movntq movsxd movupd movups\
|
||||||
|
paddsb paddsw pextrw pfnacc pfsubr phaddd phaddw phsubd phsubw\
|
||||||
|
pinsrw pmaxsw pmaxub pminsw pminub pmulhw pmullw psadbw pshufb\
|
||||||
|
pshufd pshufw psignb psignd psignw pslldq psrldq psubsb psubsw\
|
||||||
|
pswapd pushad pushaw pushfd pushfq pushfw rdmsrq rdtscp setalc\
|
||||||
|
setnae setnbe setnge setnle sfence shufpd shufps skinit sqrtpd\
|
||||||
|
sqrtps sqrtsd sqrtss swapgs sysret vmcall vmload vmread vmsave\
|
||||||
|
vmxoff wbinvd wrmsrq \
|
||||||
|
clflush cmovnae cmovnbe cmovnge cmovnle cmpeqpd cmpeqps \
|
||||||
|
cmpeqsd cmpeqss cmplepd cmpleps cmplesd cmpless cmpltpd \
|
||||||
|
cmpltps cmpltsd cmpltss cmpxchg fcmovbe fcmovnb fcmovne \
|
||||||
|
fcmovnu fdecstp fincstp fnstenv frndint fsincos fucomip \
|
||||||
|
fucompp fxrstor fxtract fyl2xp1 invlpga ldmxcsr loopned \
|
||||||
|
loopneq loopnew loopnzd loopnzq loopnzw monitor movddup \
|
||||||
|
movdq2q movhlps movlhps movntdq movntpd movntps movq2dq \
|
||||||
|
paddusb paddusw palignr pavgusb pcmpeqb pcmpeqd pcmpeqw \
|
||||||
|
pcmpgtb pcmpgtd pcmpgtw pfcmpeq pfcmpge pfcmpgt pfpnacc \
|
||||||
|
pfrsqrt phaddsw phsubsw pmaddwd pmulhrw pmulhuw pmuludq \
|
||||||
|
pshufhw pshuflw psubusb psubusw rsqrtps rsqrtss stmxcsr \
|
||||||
|
syscall sysexit sysretq ucomisd ucomiss vmclear vmmcall \
|
||||||
|
vmptrld vmptrst vmwrite \
|
||||||
|
addsubpd addsubps cmpneqpd cmpneqps cmpneqsd cmpneqss cmpnlepd\
|
||||||
|
cmpnleps cmpnlesd cmpnless cmpnltpd cmpnltps cmpnltsd cmpnltss\
|
||||||
|
cmpordpd cmpordps cmpordsd cmpordss cvtdq2pd cvtdq2ps cvtpd2dq\
|
||||||
|
cvtpd2pi cvtpd2ps cvtpi2pd cvtpi2ps cvtps2dq cvtps2pd cvtps2pi\
|
||||||
|
cvtsd2si cvtsd2ss cvtsi2sd cvtsi2ss cvtss2sd cvtss2si fcmovnbe\
|
||||||
|
maskmovq movmskpd movmskps movshdup movsldup packssdw packsswb\
|
||||||
|
packuswb pfrcpit1 pfrcpit2 pfrsqit1 pmovmskb pmulhrsw prefetch\
|
||||||
|
sysenter sysexitq unpckhpd unpckhps unpcklpd unpcklps vmlaunch\
|
||||||
|
vmresume \
|
||||||
|
cmpxchg8b cvttpd2dq cvttpd2pi cvttps2dq cvttps2pi cvttsd2si \
|
||||||
|
cvttss2si pmaddubsw prefetchw punpckhbw punpckhdq punpckhwd \
|
||||||
|
punpcklbw punpckldq punpcklwd \
|
||||||
|
cmpunordpd cmpunordps cmpunordsd cmpunordss cmpxchg16b \
|
||||||
|
loadall286 loadall386 maskmovdqu prefetcht0 prefetcht1 \
|
||||||
|
prefetcht2 punpckhqdq punpcklqdq prefetchnta
|
||||||
|
|
||||||
|
PREFIXES equ rep lock repe repz repne repnz
|
||||||
|
|
||||||
|
DATA_DEFINITORS equ db dw du dd dp df dq dt file
|
||||||
|
DATA_RESERVERS equ rb rw rd rp rf rq rt
|
||||||
|
|
||||||
|
CRLF equ 13, 10 ; Remove 13 for Linux
|
||||||
|
MAX_BYTES equ 13
|
||||||
|
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; MODE MACROSES ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
macro use16
|
||||||
|
{
|
||||||
|
use16
|
||||||
|
_USE = 16
|
||||||
|
}
|
||||||
|
|
||||||
|
macro use32
|
||||||
|
{
|
||||||
|
use32
|
||||||
|
_USE = 32
|
||||||
|
}
|
||||||
|
|
||||||
|
macro use64
|
||||||
|
{
|
||||||
|
use64
|
||||||
|
_USE = 64
|
||||||
|
}
|
||||||
|
|
||||||
|
macro detect_mode
|
||||||
|
{
|
||||||
|
local aux
|
||||||
|
|
||||||
|
_USE = 32
|
||||||
|
|
||||||
|
virtual at 0
|
||||||
|
xchg eax, eax
|
||||||
|
load aux byte from 0
|
||||||
|
|
||||||
|
if aux = $66
|
||||||
|
_USE = 16
|
||||||
|
else if aux = $87
|
||||||
|
_USE = 64
|
||||||
|
end if
|
||||||
|
end virtual
|
||||||
|
}
|
||||||
|
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;; DISPLAYING MACROSES ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
||||||
|
macro display_address address*
|
||||||
|
{
|
||||||
|
local aux, digit
|
||||||
|
|
||||||
|
aux = address
|
||||||
|
|
||||||
|
repeat _USE / 4
|
||||||
|
digit = aux shr (_USE - 4 * %) and $F
|
||||||
|
|
||||||
|
display digit + '0' + ('9' - 'B') and (9 - digit) shr 4 and $F
|
||||||
|
end repeat
|
||||||
|
|
||||||
|
display ': '
|
||||||
|
}
|
||||||
|
|
||||||
|
macro display_bytes pointer
|
||||||
|
{
|
||||||
|
local aux, size, digit
|
||||||
|
|
||||||
|
size = $ - pointer
|
||||||
|
|
||||||
|
if size > MAX_BYTES
|
||||||
|
size = MAX_BYTES
|
||||||
|
end if
|
||||||
|
|
||||||
|
repeat size
|
||||||
|
load aux byte from pointer+%-1
|
||||||
|
|
||||||
|
digit = aux shr 4
|
||||||
|
display digit + '0' + ('9' - 'B') and (9 - digit) shr 4 and $F
|
||||||
|
|
||||||
|
digit = aux and $F
|
||||||
|
display digit + '0' + ('9' - 'B') and (9 - digit) shr 4 and $F
|
||||||
|
|
||||||
|
|
||||||
|
display ' '
|
||||||
|
end repeat
|
||||||
|
|
||||||
|
repeat MAX_BYTES - size
|
||||||
|
display ' '
|
||||||
|
end repeat
|
||||||
|
}
|
||||||
|
|
||||||
|
; The macro below in some situations doesn't adds a space to separate things unfortunatelly, so for readability ensurance
|
||||||
|
; another one will be used instead...
|
||||||
|
;macro display_args [args]
|
||||||
|
;{
|
||||||
|
;common
|
||||||
|
; aux = 1
|
||||||
|
;
|
||||||
|
;forward
|
||||||
|
; if ~args eq
|
||||||
|
; if aux
|
||||||
|
; display ' '
|
||||||
|
; else
|
||||||
|
; display ', '
|
||||||
|
; end if
|
||||||
|
;
|
||||||
|
; aux = 0
|
||||||
|
;
|
||||||
|
; match =ON, _RESOLVE_EQUATES
|
||||||
|
; \{
|
||||||
|
; match args, args
|
||||||
|
; \\{
|
||||||
|
; irps arg, args
|
||||||
|
; \\\{
|
||||||
|
; display \\\`arg
|
||||||
|
; \\\}
|
||||||
|
; \\}
|
||||||
|
; \}
|
||||||
|
; match =OFF, _RESOLVE_EQUATES
|
||||||
|
; \{
|
||||||
|
; irps arg, args
|
||||||
|
; \\{
|
||||||
|
; display \\`arg
|
||||||
|
; \\}
|
||||||
|
;
|
||||||
|
; \}
|
||||||
|
; end if
|
||||||
|
;}
|
||||||
|
|
||||||
|
; This one separates everything with one space. A very ugly listing but at least you will not see things
|
||||||
|
; like "push ebxesiedi" nor "ret word0"
|
||||||
|
|
||||||
|
macro display_args [args]
|
||||||
|
{
|
||||||
|
common
|
||||||
|
aux = 1
|
||||||
|
|
||||||
|
forward
|
||||||
|
if ~args eq
|
||||||
|
if ~aux
|
||||||
|
display ','
|
||||||
|
end if
|
||||||
|
|
||||||
|
aux = 0
|
||||||
|
|
||||||
|
match =ON, _RESOLVE_EQUATES
|
||||||
|
\{
|
||||||
|
match args, args
|
||||||
|
\\{
|
||||||
|
if ~args eqtype ""
|
||||||
|
irps arg, args
|
||||||
|
\\\{
|
||||||
|
display ' ', \\\`arg
|
||||||
|
\\\}
|
||||||
|
else
|
||||||
|
display " '", args, "'"
|
||||||
|
end if
|
||||||
|
\\}
|
||||||
|
\}
|
||||||
|
match =OFF, _RESOLVE_EQUATES
|
||||||
|
\{
|
||||||
|
if ~args eqtype ""
|
||||||
|
irps arg, args
|
||||||
|
\\{
|
||||||
|
display ' ', \\`arg
|
||||||
|
\\}
|
||||||
|
else
|
||||||
|
display " '", args, "'"
|
||||||
|
end if
|
||||||
|
\}
|
||||||
|
end if
|
||||||
|
}
|
||||||
|
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;; INSTRUCTIONS & PREFIXES MACROSES ;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
||||||
|
macro prefix mnemonic
|
||||||
|
{
|
||||||
|
local aux
|
||||||
|
|
||||||
|
macro mnemonic [args]
|
||||||
|
\{
|
||||||
|
\common
|
||||||
|
match =1, _ON_VIRTUAL\\{_LISTING equ 0\\}
|
||||||
|
match =equ, args\\{_LISTING equ 0\\}
|
||||||
|
match =equ any, args\\{_LISTING equ 0\\}
|
||||||
|
|
||||||
|
match =1, _LISTING
|
||||||
|
\\{
|
||||||
|
display_address $
|
||||||
|
aux = $
|
||||||
|
\\}
|
||||||
|
|
||||||
|
mnemonic
|
||||||
|
|
||||||
|
match =1, _LISTING
|
||||||
|
\\{
|
||||||
|
display_bytes aux
|
||||||
|
|
||||||
|
display \`mnemonic
|
||||||
|
display CRLF
|
||||||
|
\\}
|
||||||
|
|
||||||
|
match =1, _ON_VIRTUAL\\{restore _LISTING\\}
|
||||||
|
match =equ, args\\{restore _LISTING\\}
|
||||||
|
match =equ any, args\\{restore _LISTING\\}
|
||||||
|
|
||||||
|
def_prefix mnemonic
|
||||||
|
args
|
||||||
|
purge mnemonic
|
||||||
|
\}
|
||||||
|
}
|
||||||
|
|
||||||
|
macro def_prefix mnemonic
|
||||||
|
{
|
||||||
|
macro def_prefix mnemonic
|
||||||
|
\{
|
||||||
|
prefix mnemonic
|
||||||
|
\}
|
||||||
|
def_prefix mnemonic
|
||||||
|
}
|
||||||
|
|
||||||
|
macro instruction mnemonic
|
||||||
|
{
|
||||||
|
local aux
|
||||||
|
|
||||||
|
macro mnemonic [args]
|
||||||
|
\{
|
||||||
|
\common
|
||||||
|
match =1, _ON_VIRTUAL\\{_LISTING equ 0\\}
|
||||||
|
match =equ, args\\{_LISTING equ 0\\}
|
||||||
|
match =equ any, args\\{_LISTING equ 0\\}
|
||||||
|
|
||||||
|
match =1, _LISTING
|
||||||
|
\\{
|
||||||
|
display_address $
|
||||||
|
aux = $
|
||||||
|
\\}
|
||||||
|
|
||||||
|
mnemonic args
|
||||||
|
|
||||||
|
match =1, _LISTING
|
||||||
|
\\{
|
||||||
|
display_bytes aux
|
||||||
|
|
||||||
|
display \`mnemonic
|
||||||
|
|
||||||
|
virtual at 0
|
||||||
|
db \`mnemonic
|
||||||
|
repeat 11 - $
|
||||||
|
display ' '
|
||||||
|
end repeat
|
||||||
|
end virtual
|
||||||
|
|
||||||
|
display_args args
|
||||||
|
display CRLF
|
||||||
|
\\}
|
||||||
|
|
||||||
|
match =1, _ON_VIRTUAL\\{restore _LISTING\\}
|
||||||
|
match =equ, args\\{restore _LISTING\\}
|
||||||
|
match =equ any, args\\{restore _LISTING\\}
|
||||||
|
\}
|
||||||
|
}
|
||||||
|
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; DATA MACROSES ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
||||||
|
macro data_define mnemonic
|
||||||
|
{
|
||||||
|
local aux
|
||||||
|
macro mnemonic [args]
|
||||||
|
\{
|
||||||
|
\common
|
||||||
|
match =1, _ON_VIRTUAL\\{_LISTING equ 0\\}
|
||||||
|
match =equ, args\\{_LISTING equ 0\\}
|
||||||
|
match =equ any, args\\{_LISTING equ 0\\}
|
||||||
|
|
||||||
|
match =1, _LISTING
|
||||||
|
\\{
|
||||||
|
display_address $
|
||||||
|
aux = $
|
||||||
|
\\}
|
||||||
|
|
||||||
|
mnemonic args
|
||||||
|
|
||||||
|
match =1, _LISTING
|
||||||
|
\\{
|
||||||
|
display_bytes aux
|
||||||
|
|
||||||
|
display \`mnemonic
|
||||||
|
|
||||||
|
display_args args
|
||||||
|
display CRLF
|
||||||
|
|
||||||
|
aux = aux + MAX_BYTES
|
||||||
|
|
||||||
|
repeat ($ - aux + MAX_BYTES - 1) / MAX_BYTES
|
||||||
|
display_address aux
|
||||||
|
display_bytes aux
|
||||||
|
display CRLF
|
||||||
|
|
||||||
|
aux = aux + MAX_BYTES
|
||||||
|
end repeat
|
||||||
|
\\}
|
||||||
|
|
||||||
|
match =1, _ON_VIRTUAL\\{restore _LISTING\\}
|
||||||
|
match =equ, args\\{restore _LISTING\\}
|
||||||
|
match =equ any, args\\{restore _LISTING\\}
|
||||||
|
\}
|
||||||
|
|
||||||
|
struc mnemonic [args]
|
||||||
|
\{
|
||||||
|
\common
|
||||||
|
match =1, _ON_VIRTUAL\\{_LISTING equ 0\\}
|
||||||
|
match =equ, args\\{_LISTING equ 0\\}
|
||||||
|
match =equ any, args\\{_LISTING equ 0\\}
|
||||||
|
|
||||||
|
match =1, _LISTING
|
||||||
|
\\{
|
||||||
|
display_address $
|
||||||
|
aux = $
|
||||||
|
\\}
|
||||||
|
|
||||||
|
. mnemonic args
|
||||||
|
|
||||||
|
match =1, _LISTING
|
||||||
|
\\{
|
||||||
|
display_bytes aux
|
||||||
|
|
||||||
|
display \`., ' ', \`mnemonic
|
||||||
|
|
||||||
|
display_args args
|
||||||
|
display CRLF
|
||||||
|
|
||||||
|
aux = aux + MAX_BYTES
|
||||||
|
|
||||||
|
repeat ($ - aux + MAX_BYTES - 1) / MAX_BYTES
|
||||||
|
display_address aux
|
||||||
|
display_bytes aux
|
||||||
|
display CRLF
|
||||||
|
|
||||||
|
aux = aux + MAX_BYTES
|
||||||
|
end repeat
|
||||||
|
\\}
|
||||||
|
|
||||||
|
match =1, _ON_VIRTUAL\\{restore _LISTING\\}
|
||||||
|
match =equ, args\\{restore _LISTING\\}
|
||||||
|
match =equ any, args\\{restore _LISTING\\}
|
||||||
|
\}
|
||||||
|
}
|
||||||
|
|
||||||
|
macro data_reserve mnemonic
|
||||||
|
{
|
||||||
|
local aux
|
||||||
|
macro mnemonic [args]
|
||||||
|
\{
|
||||||
|
\common
|
||||||
|
match =1, _ON_VIRTUAL\\{_LISTING equ 0\\}
|
||||||
|
match =equ, args\\{_LISTING equ 0\\}
|
||||||
|
match =equ any, args\\{_LISTING equ 0\\}
|
||||||
|
|
||||||
|
match =1, _LISTING
|
||||||
|
\\{
|
||||||
|
display_address $
|
||||||
|
aux = $
|
||||||
|
\\}
|
||||||
|
|
||||||
|
mnemonic args
|
||||||
|
|
||||||
|
match =1, _LISTING
|
||||||
|
\\{
|
||||||
|
times MAX_BYTES display ' '
|
||||||
|
|
||||||
|
display \`mnemonic
|
||||||
|
|
||||||
|
display_args args
|
||||||
|
display CRLF
|
||||||
|
\\}
|
||||||
|
|
||||||
|
match =1, _ON_VIRTUAL\\{restore _LISTING\\}
|
||||||
|
match =equ, args\\{restore _LISTING\\}
|
||||||
|
match =equ any, args\\{restore _LISTING\\}
|
||||||
|
\}
|
||||||
|
|
||||||
|
struc mnemonic [args]
|
||||||
|
\{
|
||||||
|
\common
|
||||||
|
match =1, _ON_VIRTUAL\\{_LISTING equ 0\\}
|
||||||
|
match =equ, args\\{_LISTING equ 0\\}
|
||||||
|
match =equ any, args\\{_LISTING equ 0\\}
|
||||||
|
|
||||||
|
match =1, _LISTING
|
||||||
|
\\{
|
||||||
|
display_address $
|
||||||
|
aux = $
|
||||||
|
\\}
|
||||||
|
|
||||||
|
. mnemonic args
|
||||||
|
|
||||||
|
match =1, _LISTING
|
||||||
|
\\{
|
||||||
|
times MAX_BYTES display ' '
|
||||||
|
|
||||||
|
display \`., ' ', \`mnemonic
|
||||||
|
|
||||||
|
display_args args
|
||||||
|
display CRLF
|
||||||
|
\\}
|
||||||
|
|
||||||
|
match =1, _ON_VIRTUAL\\{restore _LISTING\\}
|
||||||
|
match =equ, args\\{restore _LISTING\\}
|
||||||
|
match =equ any, args\\{restore _LISTING\\}
|
||||||
|
\}
|
||||||
|
}
|
||||||
|
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;; LISTING CONTROL MACROSES ;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
||||||
|
macro virtual [args]
|
||||||
|
{
|
||||||
|
common
|
||||||
|
_ON_VIRTUAL equ 1
|
||||||
|
|
||||||
|
virtual args
|
||||||
|
}
|
||||||
|
|
||||||
|
macro end [args]
|
||||||
|
{
|
||||||
|
common
|
||||||
|
match =virtual, args\{restore _ON_VIRTUAL\}
|
||||||
|
|
||||||
|
end args
|
||||||
|
}
|
||||||
|
|
||||||
|
macro enable_listing
|
||||||
|
{
|
||||||
|
detect_mode
|
||||||
|
|
||||||
|
match =0, _MACROSES_INSTALLED
|
||||||
|
\{
|
||||||
|
match instructions, INSTRUCTIONS
|
||||||
|
\\{
|
||||||
|
irps ins, instructions
|
||||||
|
\\\{
|
||||||
|
instruction ins
|
||||||
|
\\\}
|
||||||
|
\\}
|
||||||
|
|
||||||
|
match prefixes, PREFIXES
|
||||||
|
\\{
|
||||||
|
irps prefix, prefixes
|
||||||
|
\\\{
|
||||||
|
def_prefix prefix
|
||||||
|
\\\}
|
||||||
|
\\}
|
||||||
|
|
||||||
|
match data_definitors, DATA_DEFINITORS
|
||||||
|
\\{
|
||||||
|
irps def, data_definitors
|
||||||
|
\\\{
|
||||||
|
data_define def
|
||||||
|
\\\}
|
||||||
|
\\}
|
||||||
|
|
||||||
|
match data_reservers, DATA_RESERVERS
|
||||||
|
\\{
|
||||||
|
irps def, data_reservers
|
||||||
|
\\\{
|
||||||
|
data_reserve def
|
||||||
|
\\\}
|
||||||
|
\\}
|
||||||
|
\}
|
||||||
|
|
||||||
|
_MACROSES_INSTALLED equ 1
|
||||||
|
_LISTING equ 1
|
||||||
|
}
|
||||||
|
|
||||||
|
macro disable_listing
|
||||||
|
{
|
||||||
|
_LISTING equ 0
|
||||||
|
}
|
||||||
|
|
||||||
|
macro enable [feature*]
|
||||||
|
{
|
||||||
|
forward
|
||||||
|
UNKNOWN equ 1
|
||||||
|
|
||||||
|
match =resolve_equates, feature
|
||||||
|
\{
|
||||||
|
restore _RESOLVE_EQUATES
|
||||||
|
_RESOLVE_EQUATES equ ON
|
||||||
|
UNKNOWN equ 0
|
||||||
|
\}
|
||||||
|
|
||||||
|
match =listing, feature
|
||||||
|
\{
|
||||||
|
enable_listing
|
||||||
|
UNKNOWN equ 0
|
||||||
|
\}
|
||||||
|
|
||||||
|
match =1, UNKNOWN
|
||||||
|
\{
|
||||||
|
display 'ERROR: Unknown "',`feature, '" feature', 13, 10
|
||||||
|
err
|
||||||
|
\}
|
||||||
|
|
||||||
|
restore UNKNOWN
|
||||||
|
restore UNKNOWN
|
||||||
|
}
|
||||||
|
|
||||||
|
macro disable [feature*]
|
||||||
|
{
|
||||||
|
UNKNOWN equ 1
|
||||||
|
|
||||||
|
match =resolve_equates, feature
|
||||||
|
\{
|
||||||
|
restore _RESOLVE_EQUATES
|
||||||
|
_RESOLVE_EQUATES equ OFF
|
||||||
|
UNKNOWN equ 0
|
||||||
|
\}
|
||||||
|
|
||||||
|
match =listing, feature
|
||||||
|
\{
|
||||||
|
disable_listing
|
||||||
|
UNKNOWN equ 0
|
||||||
|
\}
|
||||||
|
|
||||||
|
match =1, UNKNOWN
|
||||||
|
\{
|
||||||
|
display 'ERROR: Unknown "',`feature, '" feature', 13, 10
|
||||||
|
err
|
||||||
|
\}
|
||||||
|
|
||||||
|
restore UNKNOWN
|
||||||
|
restore UNKNOWN
|
||||||
|
}
|
||||||
|
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; INITIALIZATION ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
||||||
|
_MACROSES_INSTALLED equ 0
|
||||||
|
_ON_VIRTUAL equ 0
|
||||||
|
|
||||||
|
disable resolve_equates
|
@@ -1,4 +1,4 @@
|
|||||||
; Copyright (c) 2009, <Lrz>
|
; Copyright (c) 2008-2009, <Lrz>
|
||||||
; All rights reserved.
|
; All rights reserved.
|
||||||
;
|
;
|
||||||
; Redistribution and use in source and binary forms, with or without
|
; Redistribution and use in source and binary forms, with or without
|
||||||
@@ -12,7 +12,7 @@
|
|||||||
; names of its contributors may be used to endorse or promote products
|
; names of its contributors may be used to endorse or promote products
|
||||||
; derived from this software without specific prior written permission.
|
; derived from this software without specific prior written permission.
|
||||||
;
|
;
|
||||||
; THIS SOFTWARE IS PROVIDED BY Alexey Teplov aka <Lrz> ''AS IS'' AND ANY
|
; THIS SOFTWARE IS PROVIDED BY Alexey Teplov nickname <Lrz> ''AS IS'' AND ANY
|
||||||
; EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
; EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
; DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY
|
; DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY
|
||||||
@@ -25,94 +25,20 @@
|
|||||||
;*****************************************************************************
|
;*****************************************************************************
|
||||||
|
|
||||||
;start of the project 13.02.2008 year.
|
;start of the project 13.02.2008 year.
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;Secondary Loader copyright Alexey Teplov aka <Lrz> & K Soft team
|
;Secondary Loader copyright Alexey Teplov nickname <Lrz>
|
||||||
;if you need log preproc
|
;if you need log preproc
|
||||||
;/////////////
|
;/////////////
|
||||||
;include 'listing.inc'
|
;include 'listing.inc'
|
||||||
;enable listing
|
;enable listing
|
||||||
;////////////
|
;////////////
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;start of code:
|
;start of code: ;
|
||||||
;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
DEBUG equ 1
|
|
||||||
root_dir_entry_count equ 224 ;<3B><><EFBFBD>-<2D><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
||||||
;point_to_fat_struc equ 0xA000 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Fat <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> 1 <20><>
|
|
||||||
ini_data_ equ 0x2000 ;<3B><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
||||||
size_show_section equ 18
|
|
||||||
default_timeout_value equ 5 ;default value to timeout is will was some errors
|
|
||||||
flag_found_default equ 0x1 ;default value is found
|
|
||||||
flag_found_timeout equ 0x2 ;timeout value is found
|
|
||||||
flag_found_LM equ 0x1 ;found LM value
|
|
||||||
flag_found_RS equ 0x2 ;found RS value
|
|
||||||
flag_found_GTRFMS equ 0x4 ;found type RamFS
|
|
||||||
flag_found_RamdiskSector equ 0x8 ;found RamdiskSector
|
|
||||||
flag_found_RamdiskCluster equ 0x16 ;found RamdiskCluster
|
|
||||||
;statick data <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|
||||||
save_cx equ word [bp-2] ;save cx size ini file
|
|
||||||
ret_on_ch equ word [bp-4] ;point to return <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
||||||
save_cx_d equ word [bp-6] ;save cx - size default section and working section
|
|
||||||
status_flag equ word [bp-8] ;status flag
|
|
||||||
point_loader equ word [bp-10]
|
|
||||||
point_default equ word [bp-12] ;point to default
|
|
||||||
|
|
||||||
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|
||||||
point_to_hframe equ word [bp-14] ;point on start frame (for change section)
|
|
||||||
point_to_1 equ word [bp-16]
|
|
||||||
point_to_2 equ word [bp-18]
|
|
||||||
point_to_3 equ word [bp-20]
|
|
||||||
point_to_4 equ word [bp-22]
|
|
||||||
point_to_5 equ word [bp-24]
|
|
||||||
point_to_6 equ word [bp-26]
|
|
||||||
point_to_7 equ word [bp-28]
|
|
||||||
point_to_8 equ word [bp-30]
|
|
||||||
point_to_9 equ word [bp-32]
|
|
||||||
point_to_10 equ word [bp-34]
|
|
||||||
point_to_11 equ word [bp-36]
|
|
||||||
point_to_12 equ word [bp-38]
|
|
||||||
point_to_13 equ word [bp-40]
|
|
||||||
point_to_14 equ word [bp-42]
|
|
||||||
point_to_15 equ word [bp-44]
|
|
||||||
point_to_16 equ word [bp-46]
|
|
||||||
point_to_16 equ word [bp-48]
|
|
||||||
point_to_17 equ word [bp-50]
|
|
||||||
point_to_18 equ word [bp-52]
|
|
||||||
;here array for fast scroling 16 word - poin to start section
|
|
||||||
point_to_point_def equ word [bp-54]
|
|
||||||
point_to_eframe equ word [bp-56] ;point on point frame
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
; <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> cx <20> di <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
||||||
find_sec_di equ word [bp-58] ;<3B><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> di
|
|
||||||
info_real_mode_size equ word [bp-60];<3B><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>.<2E>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
||||||
free_ad_memory equ word [bp-62] ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
||||||
show_errors_sect equ word [bp-64] ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|
||||||
save_descript_size equ word [bp-66] ;save descript size previos section <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
||||||
save_ramdisksize equ dword [bp-70] ;save size of ramdisk in byte
|
|
||||||
save_file_size equ dword [bp-74] ;save size of reading file
|
|
||||||
set_ramfs equ word [bp-76] ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
|
||||||
point_next_fat_str equ word [bp-78] ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> fat <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
||||||
size_root_dir equ word [bp-80] ;<3B><><EFBFBD>-<2D><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> 512 <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
||||||
firstDataSect equ word [bp-82] ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> 0
|
|
||||||
DataClasters equ word [bp-84] ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|
||||||
point_to_free_root equ word [bp-86] ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD> <20><><EFBFBD>
|
|
||||||
point_to_dest_file_name equ word [bp-88] ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|
||||||
data_offset equ word [bp-90] ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>.<2E> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> 1-<2D> <20><>
|
|
||||||
first_input equ word [bp-92] ;<3B><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>.
|
|
||||||
save_di_RAMDISK equ word [bp-94] ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> di -<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
||||||
save_cx_RAMDISK equ word [bp-96] ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
||||||
status_flag_loader_f equ word [bp-98] ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
||||||
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20>.<2E>. <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Enter, <20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
|
||||||
;<3B><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20>.<2E>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> 0<>1000:0000
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
use16
|
use16
|
||||||
org 0x0
|
org 0x0
|
||||||
jmp start
|
jmp start
|
||||||
|
include 'sl_equ.inc' ; <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> equ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
include 'boot_st.inc'
|
include 'boot_st.inc'
|
||||||
include 'debug_msg.inc' ;here is message from debug
|
include 'debug_msg.inc' ;here is message from debug
|
||||||
include 'parse_dat.inc'
|
include 'parse_dat.inc'
|
||||||
@@ -165,6 +91,18 @@ start:
|
|||||||
call putchar
|
call putchar
|
||||||
loop @b
|
loop @b
|
||||||
|
|
||||||
|
if DEBUG
|
||||||
|
pushad
|
||||||
|
mov ax,cs
|
||||||
|
shl eax,4 ; <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
mov cx,0xa
|
||||||
|
mov di,cseg_msg
|
||||||
|
call decode
|
||||||
|
;***************
|
||||||
|
mov si,cseg_msg
|
||||||
|
call printplain
|
||||||
|
popad
|
||||||
|
end if
|
||||||
|
|
||||||
|
|
||||||
if DEBUG
|
if DEBUG
|
||||||
@@ -216,19 +154,64 @@ cpugood:
|
|||||||
; set up esp
|
; set up esp
|
||||||
movzx esp, sp
|
movzx esp, sp
|
||||||
|
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
; init memory
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
; Load startos.ini
|
; Load startos.ini
|
||||||
xor ax,ax ; function 1 - read file
|
mov cx,loop_read_startos_file ;<3B><><EFBFBD>-<2D><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> startos.ini
|
||||||
|
align 4
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
; Load startos.ini ;
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
load_startos_file:
|
||||||
|
|
||||||
|
xor ax,ax
|
||||||
mov di,file_data
|
mov di,file_data
|
||||||
inc ax
|
inc ax ;function 1 - read file
|
||||||
|
push cx
|
||||||
call far dword [loader_callback]
|
call far dword [loader_callback]
|
||||||
|
pop cx
|
||||||
push cs
|
push cs
|
||||||
push cs
|
push cs
|
||||||
pop ds
|
pop ds
|
||||||
pop es
|
pop es
|
||||||
|
|
||||||
test bx,bx
|
test bx,bx
|
||||||
jnz error_ini
|
jz check_conf_file
|
||||||
|
dec cx
|
||||||
|
jnz load_startos_file
|
||||||
|
|
||||||
|
;SET DEFAULT Not use ini file
|
||||||
|
error_ini:
|
||||||
|
mov si, error_ini_f1 ;Error: cannot load ini file, buffer is full
|
||||||
|
dec bx
|
||||||
|
jz err_show_ini
|
||||||
|
mov si, error_ini_f2 ;Error: ini file not found
|
||||||
|
dec bx
|
||||||
|
jz err_show_ini
|
||||||
|
mov si, error_ini_f3 ;Error: cannot read ini file
|
||||||
|
dec bx
|
||||||
|
jz err_show_ini
|
||||||
|
|
||||||
|
mov si, error_ini_nf ;Error: unrecognized error when loading ini file
|
||||||
|
err_show_ini:
|
||||||
|
call printplain
|
||||||
|
mov si, error_ini_common
|
||||||
|
call printplain
|
||||||
|
; wait for keypress
|
||||||
|
xor ax,ax
|
||||||
|
int 16h
|
||||||
|
|
||||||
|
ini_loaded:
|
||||||
|
|
||||||
|
jmp $
|
||||||
|
|
||||||
|
align 4
|
||||||
|
check_conf_file:
|
||||||
;Check config file in current dir
|
;Check config file in current dir
|
||||||
push ax ;save size file
|
push ax ;save size file
|
||||||
if DEBUG
|
if DEBUG
|
||||||
@@ -250,39 +233,11 @@ use_parse ;parsing startos.ini
|
|||||||
;
|
;
|
||||||
jmp ini_loaded
|
jmp ini_loaded
|
||||||
|
|
||||||
;SET DEFAULT Not use ini file
|
|
||||||
error_ini:
|
|
||||||
mov si, error_ini_f1 ;Error: cannot load ini file, buffer is full
|
|
||||||
dec bx
|
|
||||||
jz err_show_ini
|
|
||||||
mov si, error_ini_f2 ;Error: ini file not found
|
|
||||||
dec bx
|
|
||||||
jz err_show_ini
|
|
||||||
mov si, error_ini_f3 ;Error: cannot read ini file
|
|
||||||
dec bx
|
|
||||||
jz err_show_ini
|
|
||||||
|
|
||||||
mov si, error_ini_nf ;Error: unrecognized error when loading ini file
|
|
||||||
err_show_ini:
|
|
||||||
call printplain
|
|
||||||
mov si, error_ini_common
|
|
||||||
call printplain
|
|
||||||
; wait for keypress
|
|
||||||
mov ah, 0
|
|
||||||
int 16h
|
|
||||||
|
|
||||||
ini_loaded:
|
|
||||||
|
|
||||||
jmp $
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;DATA
|
;DATA
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
; table for move to extended memory (int 15h, ah=87h)
|
; table for move to extended memory (int 15h, ah=87h)
|
||||||
align 8
|
align 4
|
||||||
table_15_87:
|
table_15_87:
|
||||||
db 0x00,0x00,0x0,0x00,0x00,0x00,0x0,0x0
|
db 0x00,0x00,0x0,0x00,0x00,0x00,0x0,0x0
|
||||||
db 0x00,0x00,0x0,0x00,0x00,0x00,0x0,0x0
|
db 0x00,0x00,0x0,0x00,0x00,0x00,0x0,0x0
|
||||||
@@ -345,7 +300,7 @@ struc FAT_32_entry ;Byte Directory Entry Structure
|
|||||||
;<3B><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>....
|
;<3B><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>....
|
||||||
;;;
|
;;;
|
||||||
;timer
|
;timer
|
||||||
shot_name_fat rb 11
|
shot_name_fat rb 11 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> fat12, <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> FAT /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>
|
||||||
if DEBUG
|
if DEBUG
|
||||||
rb 1 ;<3B><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
rb 1 ;<3B><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
dest_name_fat rb 12
|
dest_name_fat rb 12
|
||||||
|
@@ -12,7 +12,7 @@
|
|||||||
; names of its contributors may be used to endorse or promote products
|
; names of its contributors may be used to endorse or promote products
|
||||||
; derived from this software without specific prior written permission.
|
; derived from this software without specific prior written permission.
|
||||||
;
|
;
|
||||||
; THIS SOFTWARE IS PROVIDED BY Alexey Teplov aka <Lrz> ''AS IS'' AND ANY
|
; THIS SOFTWARE IS PROVIDED BY Alexey Teplov nickname <Lrz> ''AS IS'' AND ANY
|
||||||
; EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
; EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
; DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY
|
; DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY
|
||||||
|
@@ -307,7 +307,7 @@ end if
|
|||||||
stosw
|
stosw
|
||||||
loop @b
|
loop @b
|
||||||
;;;;;;;;;;;;;;;;;;;;;;; show firm ))
|
;;;;;;;;;;;;;;;;;;;;;;; show firm ))
|
||||||
mov di,286
|
mov di,(2*160-(2*(soft_mes_end-soft_mes+4))) ;286
|
||||||
mov ah,color_sym_pink;color_sym_red
|
mov ah,color_sym_pink;color_sym_red
|
||||||
mov al,'K'
|
mov al,'K'
|
||||||
stosw
|
stosw
|
||||||
|
@@ -12,7 +12,7 @@
|
|||||||
; names of its contributors may be used to endorse or promote products
|
; names of its contributors may be used to endorse or promote products
|
||||||
; derived from this software without specific prior written permission.
|
; derived from this software without specific prior written permission.
|
||||||
;
|
;
|
||||||
; THIS SOFTWARE IS PROVIDED BY Alexey Teplov aka <Lrz> ''AS IS'' AND ANY
|
; THIS SOFTWARE IS PROVIDED BY Alexey Teplov nickname <Lrz> ''AS IS'' AND ANY
|
||||||
; EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
; EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
; DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY
|
; DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY
|
||||||
|
@@ -12,7 +12,7 @@
|
|||||||
; names of its contributors may be used to endorse or promote products
|
; names of its contributors may be used to endorse or promote products
|
||||||
; derived from this software without specific prior written permission.
|
; derived from this software without specific prior written permission.
|
||||||
;
|
;
|
||||||
; THIS SOFTWARE IS PROVIDED BY Alexey Teplov aka <Lrz> ''AS IS'' AND ANY
|
; THIS SOFTWARE IS PROVIDED BY Alexey Teplov nickname <Lrz> ''AS IS'' AND ANY
|
||||||
; EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
; EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
; DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY
|
; DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY
|
||||||
@@ -177,8 +177,6 @@ local .found_end_str
|
|||||||
jmp far dword [es:si]
|
jmp far dword [es:si]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.error_LM:
|
.error_LM:
|
||||||
call error.LoaderModule
|
call error.LoaderModule
|
||||||
.rest_value_loop_LM:
|
.rest_value_loop_LM:
|
||||||
@@ -194,6 +192,10 @@ macro use_RamdiskFS
|
|||||||
{
|
{
|
||||||
if DEBUG
|
if DEBUG
|
||||||
local ._not_memory_in_sys
|
local ._not_memory_in_sys
|
||||||
|
;//////// clear window
|
||||||
|
mov ax,3
|
||||||
|
int 0x10
|
||||||
|
;\\\\\\\\\ clear window is end
|
||||||
mov si,ramdiskFS_st
|
mov si,ramdiskFS_st
|
||||||
call printplain
|
call printplain
|
||||||
end if
|
end if
|
||||||
@@ -342,7 +344,7 @@ end if
|
|||||||
macro use_free_memory
|
macro use_free_memory
|
||||||
{
|
{
|
||||||
local _support_function_use_free_memory
|
local _support_function_use_free_memory
|
||||||
;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1 <EFBFBD><EFBFBD>.
|
;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1 <EFBFBD><EFBFBD>.
|
||||||
;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0<EFBFBD>88 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0<EFBFBD>15 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0<EFBFBD>88 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0<EFBFBD>15 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
; <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD> <EFBFBD> ax <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD> <EFBFBD> ax=0
|
; <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD> <EFBFBD> ax <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD> <EFBFBD> ax=0
|
||||||
mov ah,0x88 ;ah,0x88
|
mov ah,0x88 ;ah,0x88
|
||||||
@@ -353,7 +355,7 @@ local _support_function_use_free_memory
|
|||||||
._support_function_use_free_memory:
|
._support_function_use_free_memory:
|
||||||
mov free_ad_memory,ax ; <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD> <EFBFBD> ax=0
|
mov free_ad_memory,ax ; <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD> <EFBFBD> ax=0
|
||||||
if DEBUG
|
if DEBUG
|
||||||
pusha
|
pushad
|
||||||
movzx eax,ax
|
movzx eax,ax
|
||||||
mov cx,0x0a
|
mov cx,0x0a
|
||||||
mov di,free_memory_msg
|
mov di,free_memory_msg
|
||||||
@@ -364,7 +366,7 @@ if DEBUG
|
|||||||
mov si,free_memory_msg
|
mov si,free_memory_msg
|
||||||
call printplain
|
call printplain
|
||||||
|
|
||||||
popa
|
popad
|
||||||
end if
|
end if
|
||||||
|
|
||||||
|
|
||||||
@@ -612,6 +614,16 @@ use_RamdiskCluster ;
|
|||||||
|
|
||||||
|
|
||||||
.fat12: ;fat12
|
.fat12: ;fat12
|
||||||
|
if DEBUG
|
||||||
|
; <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> c FS=fat12
|
||||||
|
pushad
|
||||||
|
mov si,start_making_FAT12_msg
|
||||||
|
call printplain
|
||||||
|
popad
|
||||||
|
end if
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
;<EFBFBD><EFBFBD><EFBFBD> FAT12 <EFBFBD> FAT16 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD> BPB_TotSec32 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0, <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>> (<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0x10000).
|
;<EFBFBD><EFBFBD><EFBFBD> FAT12 <EFBFBD> FAT16 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD> BPB_TotSec32 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0, <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>> (<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0x10000).
|
||||||
mov set_ramfs,12 ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
mov set_ramfs,12 ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
movzx ebx,byte [fat12_buffer.BPB_SecPerClus]
|
movzx ebx,byte [fat12_buffer.BPB_SecPerClus]
|
||||||
@@ -1309,7 +1321,7 @@ macro first_create_fat_table
|
|||||||
mov point_to_free_root,di ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> =0 <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
mov point_to_free_root,di ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> =0 <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
|
|
||||||
pop ds
|
pop ds ; <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>.<EFBFBD>. <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
mov byte [di],al
|
mov byte [di],al
|
||||||
or ax,-1
|
or ax,-1
|
||||||
@@ -1322,7 +1334,7 @@ macro first_create_fat_table
|
|||||||
mov point_next_fat_str,3
|
mov point_next_fat_str,3
|
||||||
|
|
||||||
if DEBUG
|
if DEBUG
|
||||||
pusha
|
pushad
|
||||||
mov ax,point_next_fat_str
|
mov ax,point_next_fat_str
|
||||||
mov cx,0x0a
|
mov cx,0x0a
|
||||||
mov di,fat_create_msg
|
mov di,fat_create_msg
|
||||||
@@ -1330,7 +1342,7 @@ if DEBUG
|
|||||||
;Show size
|
;Show size
|
||||||
mov si,fat_create_msg
|
mov si,fat_create_msg
|
||||||
call printplain
|
call printplain
|
||||||
popa
|
popad
|
||||||
end if
|
end if
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -1532,7 +1544,7 @@ macro get_firstDataSector
|
|||||||
mov DataClasters,ax
|
mov DataClasters,ax
|
||||||
|
|
||||||
if DEBUG
|
if DEBUG
|
||||||
pusha
|
pushad
|
||||||
mov ax,firstDataSect ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
mov ax,firstDataSect ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
mov cx,0x0a
|
mov cx,0x0a
|
||||||
mov di,firstDataSect_msg
|
mov di,firstDataSect_msg
|
||||||
@@ -1556,7 +1568,7 @@ if DEBUG
|
|||||||
;Show size
|
;Show size
|
||||||
mov si,DataClasters_msg
|
mov si,DataClasters_msg
|
||||||
call printplain
|
call printplain
|
||||||
popa
|
popad
|
||||||
|
|
||||||
end if
|
end if
|
||||||
|
|
||||||
@@ -1615,6 +1627,25 @@ local .exit
|
|||||||
@@:
|
@@:
|
||||||
mov al,byte [ds:si+bx]
|
mov al,byte [ds:si+bx]
|
||||||
mov ah,byte [gs:di+bx] ;gs:di - point to name in fat struct
|
mov ah,byte [gs:di+bx] ;gs:di - point to name in fat struct
|
||||||
|
|
||||||
|
if DEBUG
|
||||||
|
pushad
|
||||||
|
|
||||||
|
|
||||||
|
mov cx,11
|
||||||
|
;input cx=size al=char <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> cx
|
||||||
|
@@:
|
||||||
|
mov al,byte [gs:di]
|
||||||
|
inc di
|
||||||
|
call putchar
|
||||||
|
loop @b
|
||||||
|
|
||||||
|
xor ax,ax
|
||||||
|
int 0x16
|
||||||
|
|
||||||
|
|
||||||
|
popad
|
||||||
|
end if
|
||||||
inc bx
|
inc bx
|
||||||
|
|
||||||
cmp ah,al
|
cmp ah,al
|
||||||
@@ -1661,6 +1692,7 @@ end if
|
|||||||
macro convertion_file_name
|
macro convertion_file_name
|
||||||
;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> hello.asm <EFBFBD> 'HELLO ASM', <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> fat.
|
;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> hello.asm <EFBFBD> 'HELLO ASM', <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> fat.
|
||||||
|
;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> es:di <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> shot_name_fat
|
||||||
{
|
{
|
||||||
local .next_step
|
local .next_step
|
||||||
local .error
|
local .error
|
||||||
|
@@ -12,7 +12,7 @@
|
|||||||
; names of its contributors may be used to endorse or promote products
|
; names of its contributors may be used to endorse or promote products
|
||||||
; derived from this software without specific prior written permission.
|
; derived from this software without specific prior written permission.
|
||||||
;
|
;
|
||||||
; THIS SOFTWARE IS PROVIDED BY Alexey Teplov aka <Lrz> ''AS IS'' AND ANY
|
; THIS SOFTWARE IS PROVIDED BY Alexey Teplov nickname <Lrz> ''AS IS'' AND ANY
|
||||||
; EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
; EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
; DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY
|
; DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY
|
||||||
|
98
kernel/trunk/sec_loader/trunk/sl_equ.inc
Normal file
98
kernel/trunk/sec_loader/trunk/sl_equ.inc
Normal file
@@ -0,0 +1,98 @@
|
|||||||
|
; Copyright (c) 2008-2009, <Lrz>
|
||||||
|
; All rights reserved.
|
||||||
|
;
|
||||||
|
; Redistribution and use in source and binary forms, with or without
|
||||||
|
; modification, are permitted provided that the following conditions are met:
|
||||||
|
; * Redistributions of source code must retain the above copyright
|
||||||
|
; notice, this list of conditions and the following disclaimer.
|
||||||
|
; * Redistributions in binary form must reproduce the above copyright
|
||||||
|
; notice, this list of conditions and the following disclaimer in the
|
||||||
|
; documentation and/or other materials provided with the distribution.
|
||||||
|
; * Neither the name of the <organization> nor the
|
||||||
|
; names of its contributors may be used to endorse or promote products
|
||||||
|
; derived from this software without specific prior written permission.
|
||||||
|
;
|
||||||
|
; THIS SOFTWARE IS PROVIDED BY Alexey Teplov aka <Lrz> ''AS IS'' AND ANY
|
||||||
|
; EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
; DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY
|
||||||
|
; DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
; (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||||
|
; ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
; (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
;*****************************************************************************
|
||||||
|
; <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
DEBUG equ 1 ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> =1 <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> =0
|
||||||
|
loop_read_startos_file equ 3 ;<EFBFBD><EFBFBD><EFBFBD>-<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> callback <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>2
|
||||||
|
root_dir_entry_count equ 224 ;<EFBFBD><EFBFBD><EFBFBD>-<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
;point_to_fat_struc equ 0xA000 ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Fat <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> 1 <EFBFBD><EFBFBD>
|
||||||
|
ini_data_ equ 0x2000 ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
size_show_section equ 18
|
||||||
|
default_timeout_value equ 5 ;default value to timeout is will was some errors
|
||||||
|
flag_found_default equ 0x1 ;default value is found
|
||||||
|
flag_found_timeout equ 0x2 ;timeout value is found
|
||||||
|
flag_found_LM equ 0x1 ;found LM value
|
||||||
|
flag_found_RS equ 0x2 ;found RS value
|
||||||
|
flag_found_GTRFMS equ 0x4 ;found type RamFS
|
||||||
|
flag_found_RamdiskSector equ 0x8 ;found RamdiskSector
|
||||||
|
flag_found_RamdiskCluster equ 0x16 ;found RamdiskCluster
|
||||||
|
;statick data <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||||
|
save_cx equ word [bp-2] ;save cx size ini file
|
||||||
|
ret_on_ch equ word [bp-4] ;point to return <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
save_cx_d equ word [bp-6] ;save cx - size default section and working section
|
||||||
|
status_flag equ word [bp-8] ;status flag
|
||||||
|
point_loader equ word [bp-10]
|
||||||
|
point_default equ word [bp-12] ;point to default
|
||||||
|
|
||||||
|
;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||||
|
point_to_hframe equ word [bp-14] ;point on start frame (for change section)
|
||||||
|
point_to_1 equ word [bp-16]
|
||||||
|
point_to_2 equ word [bp-18]
|
||||||
|
point_to_3 equ word [bp-20]
|
||||||
|
point_to_4 equ word [bp-22]
|
||||||
|
point_to_5 equ word [bp-24]
|
||||||
|
point_to_6 equ word [bp-26]
|
||||||
|
point_to_7 equ word [bp-28]
|
||||||
|
point_to_8 equ word [bp-30]
|
||||||
|
point_to_9 equ word [bp-32]
|
||||||
|
point_to_10 equ word [bp-34]
|
||||||
|
point_to_11 equ word [bp-36]
|
||||||
|
point_to_12 equ word [bp-38]
|
||||||
|
point_to_13 equ word [bp-40]
|
||||||
|
point_to_14 equ word [bp-42]
|
||||||
|
point_to_15 equ word [bp-44]
|
||||||
|
point_to_16 equ word [bp-46]
|
||||||
|
point_to_16 equ word [bp-48]
|
||||||
|
point_to_17 equ word [bp-50]
|
||||||
|
point_to_18 equ word [bp-52]
|
||||||
|
;here array for fast scroling 16 word - poin to start section
|
||||||
|
point_to_point_def equ word [bp-54]
|
||||||
|
point_to_eframe equ word [bp-56] ;point on point frame
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
; <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> cx <EFBFBD> di <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
find_sec_di equ word [bp-58] ;<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> di
|
||||||
|
info_real_mode_size equ word [bp-60];<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>.<EFBFBD>. <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
free_ad_memory equ word [bp-62] ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
show_errors_sect equ word [bp-64] ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||||
|
save_descript_size equ word [bp-66] ;save descript size previos section <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
save_ramdisksize equ dword [bp-70] ;save size of ramdisk in byte
|
||||||
|
save_file_size equ dword [bp-74] ;save size of reading file
|
||||||
|
set_ramfs equ word [bp-76] ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
point_next_fat_str equ word [bp-78] ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> fat <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
size_root_dir equ word [bp-80] ;<EFBFBD><EFBFBD><EFBFBD>-<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> 512 <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
firstDataSect equ word [bp-82] ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> 0
|
||||||
|
DataClasters equ word [bp-84] ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||||
|
point_to_free_root equ word [bp-86] ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
point_to_dest_file_name equ word [bp-88] ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||||
|
data_offset equ word [bp-90] ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>.<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> 1-<EFBFBD> <EFBFBD><EFBFBD>
|
||||||
|
first_input equ word [bp-92] ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||||
|
save_di_RAMDISK equ word [bp-94] ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> di -<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
save_cx_RAMDISK equ word [bp-96] ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
status_flag_loader_f equ word [bp-98] ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD>.<EFBFBD>. <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Enter, <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
;<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD>.<EFBFBD>. <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> 0<EFBFBD>1000:0000
|
Reference in New Issue
Block a user