Home | EN-US English | RU Russian | Other projects (EN-US English)


Multi-Bootable OS/2 Recovery Live CD Project


The main IDEA of the project was taken from eComStation DemoCD. My version has smaller memory requirements (for eCS DemoCD => 192 Mb!!!). Tools needed for CD/DVD making:
  1. Distributive of OS/2 Warp 3.0 + XR_W044 + XR_D003
  2. Distributive of OS/2 Warp 4.0 + XR_M017 + XR_D003
  3. Distributive of OS/2 Warp 4.52 (MCP2, ACP2) + XR_C006 + XR_D003
    + with additional drivers Os2Ahci, DaniS506, DaniAtapi, DaniDASD, RamFS, NTFS, Fat32, JFS/UDF etc.
  4. BCDW 1.50z (for loader menu)
  5. BCDW 2.01a (for fdd loader) - loader.rar
  6. cdimage, oscdimg from Microsoft or mkisofs (for iso-image creation)
  7. mkbootcd (for making boot-catalogue)
  8. Winimage (for working with HDD/FDD images)
  9. Nero Burning ROM.
  10. Memdisk/OS2CSM/PmVdmCC tools by Veit Kannegieser.
  11. Emulatiors. Connectix/Microsoft VirtualPC & VirtualBox.
Bootable CD creation is made in MS Windows environment.

System requirements for Bootable CD.


HDD Emulation + OS2CSM. (Accessible hard drives, floppy, & all devices which work via BIOS INT13h calls. CD/DVD unavailable by design.) FDD 2.88 Emulation + OS2CSM. (Accessible hard drives, CD/DVD, all devices which work via OS2DASD/LVM. floppy unavailable by design.) MEMDISK + OS2CSM. (Accessible hard drives, floppy, CD/DVD, all devices which work via OS2DASD/LVM.) CPU selection:
For Os/2 v 3.0 (??.??? kernel) - 386SX CPU+
For Os/2 v 4.0 W4 (14.097 kernel) - 386SX CPU+
For Os/2 v 4.5 W4 - 486SX CPU+ (14.105_W4 kernel)
For Os/2 v 4.5 UNI - 486SX CPU+ (14.105_UNI kernel)
For Os/2 v 4.5 SMP - 486DX CPU+ (14.105_SMP kernel)
* NB! When swapping to HDD it is recommended to use HDD working in LBA translation mode, i.e. > 504 Mb.

CD contents.


Here are the components of my CD:

CD operating manual.


!!!NB : if you have more then one CD/DVD device you must boot from the first one. HDD not required, but recommended for swapfile.
If your system does not supports CD booting, loading is possible via bcdl bootable floppy (http://bootcd.narod.ru/) to run this CD on PCs w/o BIOS support for ELTORITO ATAPI CDROM BOOT (look \BCDW\LOADER.RAR = 3 images of fdd-loader), BUT in some cases:
1) only FDD 2.88 Emulation (HDD Emulation now works only in Warp 3.0);
2) FLOPPY must be disabled. Otherwise IBMINT13.I13 traps when in HDD Emulation mode.
The booting process is also possible using 'Ontrack Disk manager' bootable floppy ("Press spacebar to boot from diskette or Press C to boot from CD-ROM" option).(http://www.ontrack.com/) Works on PCs w/o BIOS support for ELTORITO ATAPI CDROM BOOT.

This CD supports the following boot media emulation types:
1) FDD 2.88 Emulation (2.88 Mb FDD Image).
2) HDD Emulation (40-60 Mb HDD Image).
3) No Emulation MEMDISK (4 Mb MEMDISK Compressed Image).

  1. Here is loader menu BCDW 1.50z
    \winme.ima     ; MS Windows ME EN Boot Disk (original)
    \w98se.ima     ; MS Windows 98SE EN Boot Disk                         
    \w98rus.img    ; MS Windows 98SE RU Boot Disk (original)              
    \msnet.img     ; MS-DOS Networking 3.0 (Windows 98 SE) Boot Disk
    \aurora.ima    ; IBM OS/2 Warp 4.5 W4 (HDD Emulation)
    \merlin.ima    ; IBM OS/2 Warp 4.0 (HDD Emulation)
    \warp4rus.ima  ; IBM OS/2 Warp 4.0 RUS (HDD Emulation)
    \connect.ima   ; IBM OS/2 Warp 3.0 (HDD Emulation)
    \os4boot.img   ; IBM OS/2 Warp 4.5 W4 (FDD 2.88Mb Emulation) NOUSB
    \os2boot.img   ; IBM OS/2 Warp 4.5 W4 (FDD 2.88Mb Emulation)
    \osuboot.img   ; IBM OS/2 Warp 4.5 UNI (FDD 2.88Mb Emulation)
    \ossboot.img   ; IBM OS/2 Warp 4.5 SMP (FDD 2.88Mb Emulation)
    \osmboot.img   ; IBM OS/2 Warp 4.0 W4 (FDD 2.88Mb Emulation)
    \os3boot.img   ; IBM OS/2 Warp 3.0 (FDD 2.88Mb Emulation)
    \BOOTIMGS\cdloader.bin ; IBM OS/2 Warp 4.5 W4 (MemDisk/OS2CSM)
    

    You can select entry by pressing [Up], [Down] keys and then - [Enter].

  2. Menu sample:
                  IBM OS/2 Warp 4.5 CONFIG.SYS BOOT OPTIONS (MEM Emulation)        
    ------------------------------------------------------------------------------
     Country:         [United States 437,850 (ISO)                            ]* 
     Boot type:       [Workspace shell            ]*  [x] start FC/2 after boot  
     IDE Support:     [(E)IDE/ATA(PI) Performance mode (DaniS506, DaniATAPI)  ]* 
     ATAPI Support:   [(E)IDE/ATA(PI) Performance mode (DaniS506, DaniATAPI)  ]* 
     DASD Support:    [(E)IDE/ATA(PI) Performance mode (DaniS506, DaniATAPI)  ]* 
     Optical drives:  [Standard CD-ROM/CD-RW/DVD Device Manager (IBMCDROM)    ]* 
                                                                                 
     Video drivers:   [IBMVGA32]*  [1920]x[1080]x[16]*  [x] COM/LPT  [x] Mouse   
                                                                                 
     CD-ROM located in drive:  [X]*   Reserve the following drive letter:   [W]* 
                                                                                 
     [x] Swap memory on drive: [?]*   [x] Use RAMFS of [xxxx] Mb on drive:  [W]* 
                                                                                 
     [x] Pause on errors   [x] Auto-fail   [x] Suppress popups on drive:    [C]* 
                                                                                 
     [x] DOS subsystem  [x] Win/OS2 16bit subsystem  [?] OPEN32/ODIN subsystem   
                                                                                 
     [x] UDF  [x] HPFS  [x] JFS  [x] NTFS(r)  [x] FAT32  [x] Up2Tb  [x] USB(cw-) 
                                                                                 
     [x] FLOPPY  [x] UNICODE  [x] APM  [x] APIC  [x] ACPI  [x] KEE  [x] TCPIP-32 
    -------------------------------------------------------------------------------
      Press [F10] when done, [1-4] quick sets, [ESC] - [Alt]+[F1] to bypass OS2CSM
    
  3. Menu commands.
  4. OS2CSM Loader options:
  5. To start FC/2 from command line enter:
    fc.exe
  6. To change default graphics mode resolution from command line (before starting pmshell) enter:
    SCREENRS W:\OS2\OS2.INI 1024 768 24
  7. To start DHCP discovery from command line enter:
    \MPTN\BIN\setupd.cmd
  8. To manually set static IP from command line edit and enter:
    \MPTN\BIN\setup.cmd
    and edit nameserver address:
    \VAR\ETC\resolv2
  9. To start graphics shell from command line enter:
    pmshell

Screenshot.


OS/2 Recovery Live CD

Plans.


  1. Install MMPM/MMOS2 (now only libraries are set), SNAP/SDD (installed, now in testing).
  2. Install browsers: Opera, etc.
  3. Install Warpoverlay.
  4. ODIN for win32 implementation (installed, now in testing).
  5. WIN/OS2 for win16 implementation (installed, now in testing).
  6. Make kernel selection (W4/UNI/SMP).

Special notes.


  1. EGA/CGA video modes work ONLY via HDD emulation. (???)
  2. Netscape works ONLY via MEMDISK option. (???)
  3. DOS subsystem works ONLY via HDD emulation.
  4. WiN/OS2, ODIN/OPEN32 subsystems may not work correctly.
  5. The CD may not be loaded with "[v] Use FLOPPY" option - I recommend to disable it.
  6. In HDD Emulation mode IBMINT13.I13 halts booting process when hdd with more then 8 Gb is detected.
  7. In FDD emulation mode IDE CD-ROM doesn't work (IBMATAPI/OS2CDROM not needed) by design.
  8. The system is in testing regime now & has some traps :)

Startup sample.


To boot from CD select:
IBM OS/2 Warp 4.5 W4 (FDD 2.88Mb Emulation) NOUSB

For GUI-mode set marks - "RAMFS" & "Enable mouse"
Then - [F10].
If you have some problems booting this CD after you see "OS/2 WARP x.x CONFIG.SYS BOOT OPTIONS" you may change boot parameters.

Manual CD creation.


To create such a CD by yourself use the following directory tree: FDD/HDD images are made using Winimage.
It is possible to make image from "real" HDD drive - Primary Master (C:) (better not greater then 100 Mb).
To be continued... ...

Customized version of CONFIG.SYS


SET SCUSEPRETTYCLOCK=ON
SET SCKILLFEATUREENABLED=ON
SET NEWNOTEBOOKS=NEW
AUTOFAIL=YES
SUPPRESSPOPUPS=C:
IFS=C:\OS2\HPFS.IFS /CACHE:2048 /CRECL:4 /AUTOCHECK:*
IFS=C:\OS2\NTFS.IFS /RO:*
PROTSHELL=C:\OS2\CMD.EXE
SET USER_INI=C:\OS2\OS2.INI
SET SYSTEM_INI=C:\OS2\OS2SYS.INI
SET OS2_SHELL=C:\OS2\CMD.EXE
SET AUTOSTART=PROGRAMS,TASKLIST,FOLDERS,CONNECTIONS,WARPCENTER
SET RUNWORKPLACE=C:\OS2\PMSHELL.EXE
SET COMSPEC=C:\OS2\CMD.EXE
LIBPATH=.;C:\OS2\DLL;C:\IBMGSK50\LIB;C:\IBMGSK40\LIB;C:\IBMGSK\LIB;C:\MPTN\DLL;C:\IBMCOM\DLL;C:\OS2\MDOS;C:\;C:\OS2\APPS\DLL;C:\JAVA11\DLL;C:\IBMINST;C:\ODIN\SYSTEM32;
SET PATH=C:\IBMGSK50\BIN;C:\IBMGSK40\BIN;C:\IBMGSK\BIN;C:\MPTN\BIN;C:\IBMCOM;C:\OS2;C:\OS2\SYSTEM;C:\OS2\INSTALL;C:\;C:\OS2\MDOS;C:\OS2\APPS;C:\JAVA11\BIN;;C:\ODIN\SYSTEM32
SET DPATH=C:\MPTN;C:\IBMCOM;C:\OS2;C:\OS2\SYSTEM;C:\OS2\INSTALL;C:\;C:\OS2\BITMAP;C:\OS2\MDOS;C:\OS2\APPS;C:\IBMINST;;C:\ODIN\SYSTEM32
SET PROMPT=$i[$p]
SET HELP=C:\MPTN;C:\MPTN\HELP;C:\OS2\HELP
SET GLOSSARY=C:\OS2\HELP\GLOSS;
SET IPF_KEYS=SBCS
PRIORITY_DISK_IO=YES
FILES=40
BASEDEV=IBMKBD.SYS
DEVICE=C:\OS2\LOG.SYS
DEVICE=C:\IBMCOM\LANMSGDD.OS2 /I:C:\IBMCOM /S 
DEVICE=C:\IBMCOM\PROTMAN.OS2 /I:C:\IBMCOM
DEVICE=C:\OS2\BOOT\TESTCFG.SYS
DEVICE=C:\OS2\BOOT\DOS.SYS
DEVICE=C:\OS2\BOOT\PMDD.SYS
COUNTRY=007,C:\OS2\SYSTEM\COUNTRY.SYS
CODEPAGE=866,850
DEVINFO=KBD,RU441,C:\OS2\KEYBOARD.DCP
SET LANG=en_US
SET TZ=mst-3
SET ULSPATH=C:\LANGUAGE
DEVICE=C:\OS2\BOOT\UNICODE.SYS
BUFFERS=90
IOPL=YES
DISKCACHE=D,LW
MAXWAIT=1
MEMMAN=SWAP,PROTECT
SWAPPATH=C:\OS2\SYSTEM 2048 2048
BREAK=ON
THREADS=256
PROCESSES=64
PRINTMONBUFSIZE=134,134,134
SET KEYS=OFF
SET BOOKSHELF=C:\OS2\BOOK
SET SOMIR=C:\OS2\ETC\SOM.IR;C:\OS2\ETC\WPSH.IR;C:\OS2\ETC\WPDSERV.IR;C:\OS2\ETC\REXX.IR
SET SOMDDIR=C:\OS2\ETC\DSOM
BASEDEV=TIMER0.SYS
RUN=C:\OS2\CACHE.EXE /LAZY:ON /READAHEAD:ON /MAXAGE:7500 /DISKIDLE:60000 /BUFFERIDLE:60000
REM SET DELDIR=C:\DELETE,512;
BASEDEV=PRINT01.SYS /Q
BASEDEV=IBM1FLPY.ADD
REM BASEDEV=IBM2FLPY.ADD
REM BASEDEV=IBM1S506.ADD
BASEDEV=DANIS506.ADD /!BIOS /BM
REM BASEDEV=XDFLOPPY.FLT
BASEDEV=OS2DASD.DMD
BASEDEV=OS2LVM.DMD
BASEDEV=CHKDSK.SYS
PROTECTONLY=NO
SHELL=C:\OS2\MDOS\COMMAND.COM C:\OS2\MDOS /P
FCBS=16,8
RMSIZE=640
DEVICE=C:\OS2\BOOT\APM.SYS
RUN=C:\OS2\APMDAEMN.EXE
DEVICE=C:\OS2\BOOT\OS2CDROM.DMD /Q
REM IFS=C:\OS2\BOOT\UDF.IFS
IFS=C:\OS2\BOOT\CDFS.IFS /Q /W
REM BASEDEV=IBMIDECD.FLT
REM BASEDEV=IBMATAPI.FLT
BASEDEV=DANIATAPI.FLT
DEVICE=C:\OS2\BOOT\POINTDD.SYS
DEVICE=C:\OS2\BOOT\MOUSE.SYS
DEVICE=C:\OS2\BOOT\COM.SYS
SET DEVICEFONTDISABLED=NO
BASEDEV=USBUHCD.SYS
BASEDEV=USBOHCD.SYS
BASEDEV=USBEHCD.SYS
BASEDEV=USBD.SYS /REQ:USBUHCD$ /REQ:USBOHCD$ /REQ:USBEHCD$
BASEDEV=USBHID.SYS
BASEDEV=USBMSD.ADD /FLOPPIES:1 /REMOVABLES:1 /FIXED_DISKS:1 /V
BASEDEV=USBCDROM.ADD
DEVICE=C:\OS2\BOOT\USBKBD.SYS
DEVICE=C:\OS2\BOOT\USBMOUSE.SYS
DEVICE=C:\OS2\BOOT\USBCOM.SYS
SET DMIPATH=C:\DMISL\BIN
SET CLASSPATH=C:\IBMGSK\CLASSES\SRIP.JAR;C:\IBMGSK\CLASSES\SGUIDE.ZIP;C:\IBMGSK\CLASSES\CSSGKEY.JAR;C:\JAVA11\LIB\SecMa.jar;C:\java11\Swing\swingall.jar;C:\java11\lib\classes.zip;.\.;
SET SWING_HOME=C:\java11\Swing
CALL=C:\IBMCOM\PROTOCOL\NETBIND.EXE
RUN=C:\IBMCOM\LANMSGEX.EXE
SET NLSPATH=C:\MPTN\MSG\NLS\%N;
SET ETC=C:\MPTN\ETC
DEVICE=C:\MPTN\PROTOCOL\SOCKETSK.SYS
DEVICE=C:\MPTN\PROTOCOL\AFOS2.SYS
RUN=C:\MPTN\BIN\CNTRL.EXE
RUN=C:\MPTN\BIN\VDOSCTL.EXE
DEVICE=C:\IBMCOM\MACS\NULLNDIS.OS2
SET IKEYMAN_HOME=C:\IBMGSK
SET IKEYMAN40_HOME=C:\IBMGSK40
SET IKEYMAN50_HOME=C:\IBMGSK50
SET DISPLAYTYPE=VGA
DEVINFO=SCR,VGA,C:\OS2\VIOTBL.ISO
SET VIDEO_DEVICES=VIO_SVGA
SET VIO_SVGA=DEVICE(BVHVGA,BVHSVGA)
DEVICE=C:\OS2\MDOS\VSVGA.SYS
SET GRADD_CHAINS=C1
DEVICE=C:\OS2\GRADD.SYS
DEVICE=C:\OS2\MDOS\VMANWIN.SYS
SET C1=GENGRADD,SBFILTER,VGAGRADD
device=c:\odin\system32\win32k.sys -P:pe2lx
CALL=C:\OS2\LVM.EXE /REDISCOVERPRM
CALL=C:\APPS\FC2\FC.EXE

Download ISO image OS/2 Bootable Recovery Live CD.


You MUST own a OS/2 Warp or eComStation license, to legal use this disk!

Current version dated: September 28th, 2015.
HTTP Link here (full-version without TOOLS):
DOWNLOAD OS2BOOT.ISO 7Z 2015.28.09


Team BOOT/2 OS/2 recovery boot CD, using a new technology.


OS/2 recovery boot CD, using a new technology
(ramfs.ifs/cdfs.ifs boot with FreeLDR bootloader)
--------------------------------------------

     We  are  glad to present you a new recovery CD with a new boot technology
using  FreeLDR  bootloader (developed by osFree team) and OS/2 booter for that
bootloader.   Now   it's   posible   to   create  a  plenty  of  several  boot
configurations,  available  as  FreeLDR  menu items. Additionally, in the main
menu  you  can  choose  a  set  of alpha- numeric keys to activate a so-called
toggles  which  toggle  a set of settings. Then settings specified via toggles
from  the  main  menu  are substituted into boot.cfg file variables and so on,
thus choosing a different boot configurations. The bootloader authors now have
partly  implemented  a  config file preprocessor. This way the settings set in
the  main menu are passed not only into boot.cfg but into config.sys and other
configs  too,  plus depending on active bootloader variables, a pieces of file
are  inserted/deleted (like #ifdef directive in a C preprocessor) and a set of
variables are substituted.

     It this case, we have the following toggles: (see the boot.cfg beginning)

key             function
---------------------------
r               Chooses a "primary" bootdisk (ramdisk)
c               Chooses a "secondary" bootdisk (CD/flash/hard disk)
f               Switches on/off a config.sys editor before OS/2 boot
m               Toggles SMP,ACPI,LDR flags values
d               Toggles a bootos2.mdl debug messages flag
s               Chooses a 9600/115200 baud comport speed
p               Chooses a comport base address
u               USB or IDE/SATA CDROM
a               DASD manager: DASD32+LVM/DASD16/DANI
i               Enable/disable MMOS2
n               Enable/disable network support
l               Locale: en_US or ru_RU
v               Enable/disable VirtualPC additions
---------------------------

Notes:
     1) this boot method includes two boot drives - the primary one and secon-
dary  one.  The primary drive is the ramdisk, this is the same disk which is a
bootable  one  for OS/2. The secondary one is a CD or flash or hard disk, i.e.
the same drive on which all the boot files are stored. The boot mecha- nism is
the  following:  the  FreeLDR  (which is an example of a multiboot loader, the
most  known  of  which  is  GNU  GRUB)  loads  a number of files, according to
boot.cfg configuration file. In this case, the file bootos2.mdl plays the role
of  a  multiboot  kernel,  other  files  are loaded as they are using 'module'
keyword.  Bootos2.mdl  gets  a  command  line  from FreeLDR, and a set of boot
modules, in the form of a special structure. Each module has a 'command line',
a  starting  memory  address, and an ending memory address (They are loaded in
memory  as  one  contiguous  piece).  Bootos2.mdl installs special 'universal'
microfsd  and  minifsd for a trivial filesystem, consisting of boot modules in
memory and a structure describing their addresses and command lines. This time
the  OS/2  boot  occurs  as  usual - the boot modules are retrieved from their
in-memory  locations  by  ordinary microfsd/minifsd calls. The first time, the
os2ldr  is  active  and the boot occurs in real mode via microfsd. Then os2ldr
passes  control  to os2krnl, and the system switches into protected mode. This
time,  a minifsd is loading and the 2nd boot stage begins. Such a way BASEDEV,
PSD  and  some  other files are loaded. The kernel loads the files via minifsd
calls  with  MFS_  prefix.  Like in the case of microfsd, only one file can be
loaded  at  one  time.  After  some moment, the 3rd stage begins. This time, a
FS_INIT  entry point is called from a minifsd, after this a minifsd works like
an  ordinary  IFS,  but  in read-only mode and only a subset of FS_*-calls are
supported.  In  contrast  with  the  2nd  stage,  several  files can be opened
concurrently.  This  time  different  DLLs  are  loaded,  different IFS-es and
DEVICE-s  begin  to  load. The first time the initial IFS is loaded. A minifsd
from  bootos2.mdl  passes  it a role of a boot IFS. The minifsd MFS_TERM entry
point  is  called.  The bootos2.mdl minifsd now sear- ches for a module set in
--module=  key  of  bootos2.mdl  command  line,  and  then  calls its FS_MOUNT
(FS_ATTACH) entry point and reopens each open file using an IFS FS_OPENCREATE.
And  also,  the  key  --fs=  in  the  bootos2.mdl  command line is needed - it
specifies  the  boot  IFS name - the same as needed to be specified in FS_NAME
exported  symbol.  Bootos2.mdl  also  searches  for  the IFS with such name in
CONFIG.SYS file. Then the system boots as usual using that boot IFS. Thus, the
boot  IFS  can be any, i.e., our minifsd/microfsd is 'universal'. Successfully
tested  IFS'es  so  far are: vfat-os2.ifs, ext2-os2.ifs, ramfs.ifs, fat32.ifs,
hpfs.ifs,  jfs.ifs.  For  cdfs.ifs the direct boot from CDFS is also possible;
but  in  this  case  a panic in OS2DASD.DMD occurs - it refuses to set a CDROM
drive  letter  as  a bootable one. For CDFS boot to be successful, a change in
OS2CDROM.DMD/  OS2DASD.DMD code is needed. But for this time, a workaround for
that  was  found  - instead of passing control to cdfs.ifs, we pass control to
ramfs.ifs  (it is usually always needed to boot from CDFS, because of the need
in  writable  filesystem).  And when booting such way, a --ramdisk-boot key in
bootos2.mdl  command  line  is  needed.  Our minifsd then reads config.sys and
searches  for  all  DEVICE=  and  IFS=  statements  which  load  files  from a
ramdisk,  and  copies  all these files to the same location on the ramdisk. It
uses  direct  calls  to  IFS  entry  points for that: FS_MKDIR, FS_OPENCREATE,
FS_WRITE,  FS_CLOSE.  After  passing  the control to ramfs.ifs the boot conti-
nues  from  there.  Besides  that, we must mention the --auto-preload key from
the  bootos2.mdl command line. It is a special FreeLDR-specific key which uses
a  FreeLDR  possibility  (which is absent from GRUB) for a multiboot kernel to
call  commands  from  the  bootloader  itself.  This  time  bootos2.mdl  reads
config.sys   and  searches  for  BASEDEV,  PSD,  IFS,  DEVICE,  RUN  and  CALL
statements in it, and load all these files into memory using 'module' command.
Thus, when using the --auto-preload key, no need to specify all needed modules
in  boot.cfg.  Other  files  are  implicit,  they  are guessed from config.sys
content.  The  only  needed  files  are  os2ldr, os2krnl, os2dump, config.sys,
os2ldr.msg,  os2ldr.ini (optional), os2logo, os2dbcs, os2dbcs.fnt. Other files
are  guessed from config.sys; all that can be, is guessed. But, for example, a
set  of  DLL's  is  nowhere  to  be  guessed. (though, they can be guessed, in
principle,  if  we'll  parse  all  loaded  modules and load all their imported
modules  -  this  is  in  a todo list) The only mandatory DLL- forwarders like
viocalls/moucalls/os2char/msg/etc  are  always  loaded.  Besides the specified
IFSes,  ntfs.ifs from Pavel Shtemenko (aka [Pasha] at #os2russian) was tested.
In  principle,  it  should  work too, but Pasha introduced a check for EXE/DLL
READ/WRITE  permissions  for  some  reason, and if you try opening them not in
READ/WRITE  mode, then FS_OPENCREATE returns an error. It just refuses to load
EXE/DLL  from ntfs. Don't know why, but Pasha says it was done not by mistake,
but  specially. We will of course wait until he implements a support for write
to  ntfs partitions, but I know that CDFS.IFS doesn't have such a limitation -
it  just  opens  file  in a read-only mode even if you specify to open it in a
read-write  mode.  Thus,  the  OS/2  boot  from  ntfs is possible (FreeLDR has
support for ntfs, all is needed now is write support for ntfs.ifs).

     2)  the  config.sys  editor is started when you press Alt-E on the os2ldr
boot  blob  with  "OS/2"  string  in  front of it, or this can be activated by
specifying --cfged in bootos2.mdl command line. The last occurs when you press
"f" key in FreeLDR main menu.

     3)  SMP  flag  chooses  a  SMP/UNI  kernel. The UNI kernel is the 14.104a
retail  kernel  from  IBM.  The  SMP  one is the kernel developed by OS/4 team
(http://os4.su).  LDR  can  be  choosen IBM/OS4, by defaul an os2ldr from OS/4
team  is  choosen.  And, as an alternative, IBM's os2ldr can be choosen. It is
the  same  version,  supplied  with  Aurora/eCS.  The  ACPI  flag specifies if
enable/disable ACPI.

     4)  Debug options. They are needed when having problems with bootos2.mdl.
The  "d"  key  switches  a  debug mode on/off. This option enables bootos2.mdl
debug  messages  (first, the messages from the main bootos2.mdl part, then the
messages from microfsd, and then the ones from minifsd). In active debug mode,
the  "s" key chooses a COM port speed (9600/115200 baud; 9600 by default), the
"p"  key chooses the COM port base address (by default, 0x3f8, i.e., this is a
com1).

     5)  The  config.sys  editor  is only partly implemented. Working keys are
arrow keys, PgUp/PgDn, Home, End for navigating around the file. And also, you
can use Enter key to insert empty lines, and Backspace key to delete symbols.

     6)  The  modules are loaded via commands like module   ,
where  the   is the path to module file on disk;  is the path
seen by OS/2. In other words, if "module (cd)\boot\ramboot.cfg config.sys" is
specified,  then  a  file  \boot\ramboot.cfg will load from a CD into memory,
and  it  will play the role of a config.sys file in a root directory of a boot
drive.  Thus,  we  can  have a plenty of config.sys files (and not necessarily
in the root directory).

     7)  Drive  names  notation.  As  with  GRUB,  (cd) means a bootable CDROM
device.  If  the  system has several CD drives, then (cd) will be the disk the
boot  process  is  occuring from. (hd0) is the 1st BIOS harddisk, (hd1) is the
2nd  one.  It  is  possible  to specify partitions: (hd0,0) is the 1st primary
parti-  tion on the 1st BIOS harddisk. (hd0,3) is the 4th primary partition on
the  1st  harddisk.  (hd0,4)  is  the  1st  logical  partition on the 1st BIOS
harddisk.  Thus,  partitions  0-3 are primary ones, 4,...255 are logical ones.
Also, (fd0) is the 1st floppy device in the system. (fd1) is the 2nd one. (nd)
is  the  current  network  device when booting from tftp/ripl/etc. (is not yet
implemented  in  FreeLDR). In addition to disks which GRUB has, FreeLDR has an
additional  macro  "()"  which  mean  a  FreeLDR  boot drive (a drive on which
FreeLDR is installed).

     8)  Note  that FreeLDR functions are not restricted to booting OS/2 only.
The  loading  of any multiboot-compliant kernel is also possible (for example,
FreeDOS32,  HelenOS, Moebius, GNU HURD, and many others). Incompatible kernels
can  be  loaded  too using FreeLDR. For that, special system-dependent loaders
can  be used. For example, bootstrap loader can be used for loading L4/Fiasco,
for  loading  classic  OS/2 kernels, bootos2.mdl loader can be used; chain.mdl
can   be   used   for   loading  other  incompatible  loaders/kernels  using a
chainloading  technique.  This  way NTLDR can be started from FreeLDR, and you
can   start   many  bootsectors  using  it;  linux.mdl  is  used  for  booting
Linux-compatible  kernels  - not only Linux itself, but also memdisk (not that
memdisk  written  by  Veit  Kannegieser which is used in eCS boot CDs but that
memdisk written by Peter Anvin for syslinux and which is used when booting DOS
from syslinux). On this CD, linux.mdl loads memtest86 or memdisk with a floppy
image containing FreeDOS.

     9)  You  can  add  programs to this CD according to your preferences. For
that  you  should  place  the  CD  contents into rambootcd directory, then add
programs/drivers, edit config files, and, finally, execute rambootcd.cmd. This
will  build  the  CD ISO image which can be burned onto the CD-R disk. in this
BootCD  version  the  rembootcd.cmd  can  be  started directly from the \tools
directory; the ISO image will be created in the directory, which is parent for
rambootcd\; for the CDRW disk to be erased, and to be written, you cab use the
blank.cmd  and  burn.cmd scripts, respectively. Please change dev=0,0,0 in two
latter scripts to your CD writer "coordinated" on the SCSI bus.

     You  can test an ISO image in VirtualPC or other emulator supporting OS/2
(for  example,  twoostwo  or some qemu versions. The qemu developers sometimes
break  OS/2  compatibility,  sometimes  repair  it.  OS/2  works  well in qemu
versions  like  0.9.0  or 0.10.1, but doesn't work in 0.10.3. For qemu to work
with  OS/2  you should comment-out os2lvm.dmd and replace it together with its
os2dasd.dmd  to  danidasd,dmd  or  a  16-bits  version of os2dasd.dmd). If you
will not do this, you will get a trap in os2lvm.dmd.

     10)  Our  config.sys  files  have  "@"  and "!" macros. These symbols are
substituted  by  bootos2.mdl  to  choosen  primary  and secondary boot drives,
accordingly.  I.e.,  the  disks  choosen  in  the  main  menu  go  into  final
config.sys.  You  can  start  a  config.sys  editor  and all these values will
automatically   inserted  there.  You  only  should  finally  edit  the  given
config.sys and continue booting.

     11)  ACPI  is  supported by this CD but isn't included for known reasons. 
You can add it yourself if you are a  legal  owner  of  eCS  license.  (It  is
sufficient  to  add  acpi.psd, apm.add, AcpiDaemon.exe  to os2\boot\ directory
(and rename it to acpidaem.exe) and acpi32.dll into os2\dll\  directory,  then 
rebuild the CD, and reburn it to the CD-R). Also, Panorama VESA  is  supported 
too. It is sufficient to copy panogrex.dll and vbe2grad.dll to  os2\dll\  (and 
also, for WPS integration in newer versions -- the 1st System object' bookmark
-- to copy ecolange.dll and wppansys.dll to \os2\dll  and  wppansys.nls --  to
DPATH (\os2\system, for example)). Also, ntfs.ifs is supported (you'll need to
copy untfs.dll and untfsd.dll to os2\dll\ and ntfs.ifs to os2\boot\ and  also,
uncomment all ifs=!:\os2\boot\ntfs.ifs occurrences in config.sys/ramboot.cfg).

     12)  FreeLDR  can  be installed to your hard disk or flash disk. For that
you should first copy the \boot\loader and \boot\sectors directories to needed
partition. Then start \tools\freeinst\freeinst.exe and write a bootblock to it
using  this  tool.  Please  read  the  readme file from its directory. You can
install  osFree  project's  MBR  too,  if  you  need.  If  you  prefer another
bootloader  as  a  main  one, you should start FreeLDR from it. The MBR can be
configured for loading the FreeLDR from any partition (not only a primary ones
but  logicals  too).  For  MBR  setup  you  need  two  parameters: a number of
FreeLDR  hard  disk  and a number of a FreeLDR partition. The hard disk number
can  be  separate  from the number of that hard disk on which MBR is installed
(the  MBR  is  to  be  located on the 1st BIOS hard disk, and it continues the
booting  from any other hard disk). The partition can be a primary one, if you
choose  1..4, or a logical one, if you choose 5,6,... For bootblock setup, you
should only choose its drive letter. (Note: start  freeinst from  the  logical
disk, different from that you are installing  FreeLDR  to -- simply  copy  the
fi-os2.exe file to another drive. There is fi-w32.exe file too -- the freeinst 
build for Win32. You could use it for installing FreeLDR  from  Windows).  The 
Linux and DOS DPMI32 versions are not working at this moment.

     13)  You can copy the contents of this CD to the flash disk and boot from
there.  For  that,  you should first copy the disk contents as is to the flash
root directory, then, as described in a previous note, install the MBR and the
boot  block  onto  that  flash  partition  (the flash disks partitioned as big
floppies  were  tested too, but you should better partition your flash disk as
PRM  (partitionable  removable  media,  in  IBM's terminology, i.e., the flash
disks with a partition table)). Then you should ensure that FreeLDR boots from
the  flash  and  it  shows  the  menu.  If it's so, then you should change the
following  in  all config.sys copies in \boot\ directory (the files with *.cfg
extension):  1)  change  a  cdfs.ifs  line  to fat32.ifs/hpfs.ifs/jfs.ifs line
depending  on  the  filesystem  on  your  flash (you can choose any from these
three,  but note that jfs chkdsk will rewrite a bootblock to its own each time
when booting), and move a cdfs.ifs line to be loaded later in config.sys. Also
2)  you  should add a key /I13 to usbd.sys command line for USB stack to pause
overtaking the host adapter support over BIOS (needed for booting from USB MSD
devices),  and  also  3) it is needed to comment-out DASD32.DMD and OS2LVM.DMD
and  uncomment  DANIDASD.DMD.  This  is also needed for booting from removable
flash disks. - The problem is that OS2DASD.DMD can't assign a drive letter for
removable  devices  at  early  boot  stage.  This is applicable for ATAPI/SCSI
devices  too, and not only USB MSD devices (and, as was mentioned already, for
CDROM  devices  too  :-().  And 4) you should add a line '--pt=0x35,0x83,0x27'
into bootos2.mdl command line in boot.cfg, and also a {D2=auto} variant to the
beginning of a 'toggle set c' statement. The '--pt=' string must correspond to
the  '/AT:'  string  from  danidasd.dmd  command  line.  Both these keys (from
bootos2.mdl  and  from danidasd.dmd) specify the list of known partition types
on  disk.  {D2=auto} is needed for bootos2.mdl to have '--drv=auto' setting by
default.  This  automatically  chooses  a  removable device drive letter to be
immediately  after  all  the drive letters for fixed drives (the limitation of
danidasd.dmd).  Now  no need to know how many partitions has each machine. The
bootos2.mdl will parse the partition tables itself and count a number of drive
letters  before  the  flash  disk  and will pass it to DANIDASD.DMD (thus, you
should  not  by hand insert this drive letter into /BD: key for DANIDASD). You
should  notice  too,  that  if you have a hard disk (or a flash with plenty of
partitions),  then  the 1st partition must be the bootable one. Others will be
inaccessible  from  the  OS/2  system  booted  from  that disk (a DANIDASD.DMD
limitation :-().

     14)  All  the  variables set in current FreeLDR config file, are shown on
the  black field under the main menu. A todo: to make a hint about the keys to
activate toggles.

     15)   The  config.sys  files  have  commented  lines.  For  example,  for
multimedia  support,  it  is needed to add a \mmos2 directory to the disk, and
also  uncomment  all  the lines in config.sys, related to mmos2. For tonigy or
RSJ  CD  Writer  support it is needed to uncomment needed lines in config.sys,
copy  the  directory  with  RSJ  CD  Writer  to  \tools\cdwfs,  and  also edit
\tools\bld.cmd,  adding  a rsj.rc file into the line calling xmakeini (located
in  \tools\rc  directory;  the  .rc files for generating WPS objects for other
useful programs are located in the same place).

Additions from 2010-08-29:

     16)  Now  the  BootCD contains a new FreeLDR version, supporting a config
file  preprocessor.  Now  it supports a !ifeq   ... !else ...
!endif construct, where  is taken from the boot.cfg variables. Also,
a  !include    construct  is supported, it allows to include a file into
another file. The path to the included file must be absolute, so far only path
with  forward  slashes  are working. Using these constructs, the four separate
config.sys  versions for PM/tshell and ACPI/without ACPI were removed, and the
MODE  and ACPI variables were introduced. The first has its possible values to
be pm/tshell, and the second can have values "-noacpi"/"".

     17)  Now  the  possibility  to change a locale is added, it can be chosen
from  the  main  menu  (pressing  the  "l" key). Then the COUNTRY and CODEPAGE
values are set in config.sys, also the corresponding ini.rc version is choosen
depending  on  the  locale,  then  the  english/russian/etc.  captions for WPS
objects are choosen.

     18)  Added  several  additional DLL's with WPS classes; now in the System
setup  folder  the  configuration  applets  are  appeared. For the moment, the
Spooler  object  is  located  in  a  DLL  taken from russian OS/2 version, and
because  of  that the text in opened Spooler object is unreadable when english
locale  is  choosen.  This  will be fixed in next versions. Also, the Hardware
manager object shows some unreadable strings when choosing the english locale.

     19) Added several programs: DN/2 (which is not starting for the moment ;)
The  cause is not yet clear. The program silently terminates and don't leave a
record  in  popuplog.os2.  We  will  be thankful to everybody who can show the
possible cause.), miniterm, regedit/2.

     20)  Added  the additions support for VirtualPC. It can be activated when
pressing  the "v" key in the main FreeLDR menu. It is switched off by default;
when  activated,  it  switches  on  the  mouse  cursor  integration, clipboard
integration and host OS didks mounting support (aka Shared folders).

     21)  Now  the  startup.cmd  file  contains SysIni calls, which set a more
convenient VIO-sessions font.

Additions from 2010-09-03:

     22)   Now   it  becomes  possible  to  change  a  reserved  drive  letter
(RESERVEDRIVELETTER  in  config.sys).  For  that, it is needed to press 'R' (a
case is important) several times in the main menu. Changing RESERVEDRIVELETTER
automatically causes a secondary drive letter (CD/flash/HDD) to change.

     23) The default color scheme is changed to "Space". Now it becomes active
immediately after system boots.

     24)  Added  mouse pointers choice, now they can be changed from the Mouse
object, 'Pointers' tab.

     25)  The  video  driver  choice  is now added. Now you can choose between
GENGRADD/SNAP/Panorama/VPC GRADD/Cirrus Logic CL-GD 5436, as an example of non-GRADD
driver. By default, GENGRADD is chosen, also you can
choose SNAP for supported video cards. SNAP is included into this CD contents,
but  Panorama  was  removed  for known reasons. You can easily add Panorama to
this  CD,  if  you  are  a  legal  owner  of  eCS,  for  that  you should copy
panogrex.dll  and vbe2grad.dll into os2\dll\ directory and rebuild the CD. (it
is sufficient to start rambootcd.cmd). Plus, if you want, you can add wppansys.dll
for Panorama settings on the 1st tab of "System" object. It also requires
ecolange.dll for NLS support (and wppansys.nls for language resources, put it
on DPATH, for example, in \os2\system directory). All needed prerequisites are
 present on the  CD  (except  these  two  DLL's).  You don't need to modify
config.sys and scripts for that.

     26)  Also,  as  many people asked ;-) the FreeLDR author added a hint for
needed keys at the screen with variables under the main menu.

Additions from 2012-02-17:

     27)  Made DN/2 working. What was needed is to add a minimal TCP/IP stack
(a null NDIS driver for now).

     28)  Made OS/2 Warp registry editor working -- it paused when starting because
there was no windows registry. Now the minimal registry is added, so, no pause.

     29)  Added programs: Theseus4, QT4 with kchmviewer and qtweb web browser, Object
recreator, SysInfo/2, Links, and the following programs: MiniLVM, RSJ CD Writer, Tonigy,
Netdrive (those are non-registered shareware ones).

     30)  Now TVFS is working, the needed thing was to start it properly (before that, it
was started detached, so, there was a hang during shutdown)

Additions from 2014-02-07:

     31)  Support of QSINIT as a loader added. (when pressing "m" in the loop,
choose LDR=dix)

     32)  Using the "i" key, you can choose a program started as "SET RUNWORKPLACE=..."
(pmshell, cmd, ecsinst (a wrapper script for eCS installer.
Note. At the moment the eCS installer does not work properly from flash drive
and it even, could damage your OS and data, which are on your hard disk
and each time changes the flash drive geometry to 63 heads, 32 sectors per track
instead of 255 heads and 63 sectors per track (standard HDD geometry), rewrites the MBR
and DLAT table, which makes the flash drive unbootable (at least, on my machine).
and touches my hard disk, changing the BIOS type from 07 to 35 on one of my partitions,
without, asking for my agreement to do this. So, be warned. This is an experimental
feature and it does not properly working.

     33) WinOS/2 is now working both from flash disk/USB harddisk/CDROM.
Now MMOS/2 is working too. So, you can play *.wav's, *.avi's using the MMOS/2
codecs. For WinOS/2 sound support, vwinaud driver is installed. Also, for MIDI-sequencer
emulation, the TimidityMCD is installed, so, you can play MIDI files via MMOS/2.

     34) Now Lucide doesn't crash on DJVU files, and reading of PDF, as well as
DJVU ones, is working.

     35) Added the new means of determining the drive letter of flash/CD,
using the locatecd.sys driver from Veit Kannegieser. Now when you specify D2=*:
(pressing the "c" key in the loop). Originally, the ramdisk is the boot drive,
from OS/2 point of view (z:, by default), then the locatecd.sys driver is loading.
It is searching for the drive with specified label ("OS2BOOT" in our case),
having the specified file on it (\tools\os2boot.flg in our case).
This means that you must assign your flash/CD/HDD the volume label "OS2BOOT",
or any other you prefer, but then you should change the driver load string
accordingly in ramboot.cfg (config.sys). Using these two cases, the driver
determines the boot media drive letter. Then it changes the "@" letter in
global environment variables, and also, changes the drive letter of ramdisk
to the drive letter of 'real' boot media (CD/flash/USB HDD) in the OS/2
system tables. And now the CD/flash turns into real boot device. This method
works for any kind of boot (removable) media, not only flash disks.
Note. For locatecd.sys the '@' letter plays the role of a macro for boot media.
But from our bootos2 point of view, this is a bit different.
'@' is a primary boot device (ramdisk) and '!' is a secondary one (CD/flash).
So, for locatecd.sys to be properly working, we must, before the system began
booting, in bootos2.mdl code, decide if we see that D2=*, then change '@' to
ramdisk drive letter, and '!' change to '@'. When locatecd.sys is loading,
it will see '@' and it will change it to flash/CD drive letter.

Additions from 2014-03-18:

     36) Added the network support and network card autodetection (the first two NIC's are
supported). For that, the \tools\gennic.cmd REXX script, and three awk helper scripts are used.
The gennic.cmd runs pci.exe, and parses its output for PCI adapters of the specified PCI device
class (in this case, the 'Network' class), using the scanpci.awk helper script. Then it parses
the genproto.slo list for the driver name and its .nif file, and runs genproto.exe, passing it
these files' names through the environment variables, called DETECT_OS2_1, DETECT_NIF_1, ... , DETECT_OS2_N,
DETECT_NIF_N. Using these data, genproto.exe (for which, we should thank Veit Kannegieser) generates
the protocol.ini file. Then the gennic.cmd script copies the drivers to the ramdisk, renamed to
nic1.os2, nic2.os2. If the NIC driver is not found, then the nullndis.os2 is used (renamed to
nicX.os2 (a fake driver, doing nothing). (if a driver is not found for two or more NIC's,
then it will be the two copies of nullndis.os2 in protocol.ini, but the nullndis.os2 supports
not more than one copy of itself, so the subsequent copies will fail to load. -- it is a known
problem.)

     37) The NIC autodetection supports wi-fi, for which, a copy of GenMac is included into our disk.
Two GenMac copies should work as well. Usually, the first NIC is lan0, the second is lan1, whereas
the wifi is usually the 2-nd one, the wired ethernet goes the first. For choosing the primary LAN
card (through which the most traffic, and the "default route" goes) there is a NIC option in the
bootloader menu. The default setting is NIC=lan0. The default can be changed, by editing the boot.cfg
file (toggle set n ... -- changing the blocks in the curly brackets order).

     38) For wi-fi support, wpa_supplicant.exe (started as "wpasuppl lanN") is added, with
%etc%\wpa_supplicant.conf config file (which is packed into \tools\misc.zip and will be unpacked
into %etc% on the ramdisk). . Also ISC DHCP client (started as "dhcli lanN" or, for
older OS/2 DHCP client compatibility, as "dhcpstrt -i lanN") is added. With DHCP server, or,
optionally , wi-fi, availability, IP address, subnet mask, default route, and so on,
set up automatically. It should also work with majority of VM's (like VPC and qemu).
Also, to automate wi-fi parameters setup, wpa_gui (QT4-based) and wpa_cli were added.

     39) QTWeb changed to Arora

Additions from 2014-08-17:

     40) The windows drivers collection, officially supported by GenMac, (since this disk version), is packed
into the \genmac\driver\genmac.zip archive. Also, the GenMU collection of unofficially supported drivers,
in genmu.zip archive, is lying along with the 1st one in the same directory. These archives contain a set of
subdirectories with names like wrapper_VID_PID. They contain a windoze driver with a registry branch exported,
in a *.reg or *.inf file, and, optionally, a patch in the IBM OS/2 patch.exe format (a standard utility for
applying fixes in the form of binary patches). Then, windoze driver is copied to the ramdisk to \genmac\driver\... 
where are the unpacked directory wrapper_VID_PID, genmac heper helperw.exe, and its log file. GenMac is copied
to \ibmcom\macs on the ramdisk, like any other OS/2 network driver, then patched (if there is a patch file) 
and renamed to ndisN.os2. Inside the genm32w.os2 (genmac) driver, there is a table of supported  windows
drivers with needed parameters. Except from GenMac, there are much other drivers like rtgnda.os2 (Realtek 
tl8169/rtl8168/ etc.) which check a NIC against a hardcoded list of VID:PID. To add a new NIC into the
harcoded list (as a new VID:PID pair), a new patch file wrapper_VID_PID\patch.dat is written (it is not a GenMac,
but any other OS/2 NIC driver, so, this directory contains only a patch file, and no driver/.inf file).
All such directories, with patches like wrapper_VID_PID\patch.dat, are put in a single directory and packed
into a zip file named \genmac\driver\misc.zip. The zip's name list (without an extension), with drviers and/or
patches is in the \tools\gennic.cmd script as a word list like this:

DriverPacks = 'genmac genmu misc'

The advantage of such an approach is that during the boot is added only one VID:PID pair, needed for this boot,
and not all ones, that could be needed in principle. Otherwise, all needed ID's would not fit in the limited 
table of correct ID's.

     41) The NETWORK parameter from the main FreeLDR menu now takes 4 values. NETWORK=none disables scanning
for network cards, and the network at all (on some machines pci.exe PCI scanner hangs on scanning the bus) and
loading the network drivers. NETWORK=null loads the nullndis.os2 driver (a dummy NIC drier, doing nothing).
NETWORK=auto makes the full automated detection of NIC's and network drivers and their autoconfiguration 
(when DHCP server is available). NETWORK=user allows for manual setting of some NIC parameters (like 10/100/1000
speed, etc.) after NIC autodetection. But, after such choice (and generally, after each interactive query/choice,
like Y/N) the keyboard becomes non-working. This is a known, and, at the moment, unsolved problem.

     42) Disabling MMOS/2 (yes/no in the main FreeLDR menu) now is working. Before that, when starting WPS and 
WPS objects generation, when MMOS/2 is switched off, the second pmshell.exe copy did hanged (all threads blocked,
accorrding to WatchCat). It appears that, the problem is that !:\mmos2\dll remained to be in LIBPATH, and it tried 
to load something from there, and that caused the WPS thread blocking. (This occurs often if there is an error in
.rc files, but in this case, there were no such errors).

     43) FreeType IFI (Inteligent Font Interface) font driver is added, thanks to Alex Taylor.

     44) rc files. Serve for generation of Desktop objects and class registration. Beside that, they allow
to write the ordinary key into an ini file. Some keys, added such a way, serve as a scripts, executed by WPS,
performing such actions like registration/deregistration of classes, creation/deletion/refreshing objects,
replacing one class to another etc. RC files collection is packed into \tools\rc.zip, and is unpacked to a ramdisk
during the boot. Also, its copy is located in \tools\rc\... on the boot flash/CD for convenience of editing.
The given collection allows to generate on the fly the different desktops. For working with .rc files, the 
xmakeini from Ulrich Moeller (the author of XWP) is used. Because the drive letters on different machines 
can be different, and program directories can be changed, to suit the user preferences, the xmakeini author
provided the set of substituted variables. The variables are written into the %bootdrv%\var\tmp\paths.sed
file, with records like this:

s/@variable@/value/

for example:

s/@VIDEODRIVER@/GRE2VMAN/
s/@:/Z:/
s/!:/K:/
s/#:/r:/
....

the paths.sed path is specified in "-s" parameter of xmakeini. For convenioence, the \tools\bin\mkini.cmd wrapper
for xmakeini is used. The wrapper script has \tools\rc.cfg config file. It contains the lines like:

rc.filename = 'yes' (or 'no')

This config file is interpreted by REXX using the interpret instruction line by line, resulting in the "rc."
stem imported into minin.cmd, which contains the information, whether to apply this .rc file to an ini file,
or disable it. (If rc.filename = 'yes', then filename.rc is applied to a given ,ini file). Mkini.cmd calls are
inserted into \tools\bld.cmd, where they can be enabled/disabled too, according to the environment variables
(for example, if mmos2=no, then the mkini.cmd calls for multimedia .rc's, are skipped via an conditional statement.).

     45) pst.cmd is a wrapper script for patch.exe (renamed to os2patch.exe, to avoid conflicts with GNU patch). 
It serves for applying (binary) patches to drivers during the boot process. This script takes a path to a directory,
where patch.dat is located. And, optionally, the 2nd parameter can specify the driver name (Driver) to patch. If 
the 2nd parameter is non-empty, then inside the patch.dat file the line "FILE file.os2" is searched, and file.os2
is changed to "Driver". On this disk, all loaded NDIS drivers are renamed to ndisX.os2 first, and secondly, they 
are appiled the patch to. For that, the "FILE ..." line in the patch file is used. For simplicity, there are three
lines in config.sys:

device=@:\ibmcom\macs\ndis1.os2
device=@:\ibmcom\macs\ndis2.os2
device=@:\ibmcom\macs\ndis3.os2

And, in config,.sys they remain unchanged, but instead, all the drivers are copied to a ramdisk into \ibmcom\macs\...
and are renamed to ndisX.os2.

     46) Just in case someone did not yet noticed, for a relatively long time, WPLaunchPad was changed to BubblePad
from Chris Wohlgemuth. It is looking more aesthetically, takes less place on the screen, and contains several new
settings. Also, there is the tooltips support, hence the name (from bubble help). This disk contains one more enhancer,
from Lars Erdmann. In this case, the Hardware Manager is enhanced. The class is called HWMan.

     47) Desktop and Nowhere directories are moved from the boot disk (ramdisk) root, to z:\var\wps

     48) The QupZilla web browser support is added (it is sufficient to copy the directory wit it to \tools and
to enable dtopt.rc in \tools\rc.cfg. You can comment-out the missing programs in dtopt.rc, by using the standard
REXX/C comment sign /* ... */)

     49) XWP is updated to version 1.0.9. By default, the "IP Monitor", "Sentinel ,memory watcher", "Extended SysTray"
widgets are added to XCenter. The custom XButton picture is added ;) Also, depending from the chosen NIC, it is made 
the curreent one in IP Monitor (See the Setup string for XCenter in %lang%\xwp.rc).

     50) os2ahci.add can be added from the betazone, or the Community Edition from Hobbes. For that, you need to
uncomment its line in ramboot.cfg, and copy the driver to \os2\boot. Unfortunately, Community driver is a bit old :(

     51) Also, for a relatively long time, the different utilities from Programs\Utilities folder can be started. 1-2 
releases ago, was made (but not documented) working the standard IBM games. I didn't want to copy completely to a ram
disk all the game folders (as it is done in eCS Demo disk, where Pixel and Firefox were unpacked to a ramdisk -- from my
point of view, a very bad decision, which takes much RAM). These games store their settings in binary INI files in 
\os2\apps directory, like the games itself. Because our disk is intended for booting from the CD (not flash only), which
is readonly, then storing the changeable data in the program directory is very bad and sad. Because of this, we suggested
three solutions:

a) Use tvfs and create the search path, putting the search path of two directories to a single tfvs directory. One of 
them is residing on the ram disk, the secoond one is on the CD/flash media. And, ramdisk is the 1st in the search path 
and has priority. As a result, if there is no file in CD/flash, then it gets created on the ramdisk. I.e., there are two
file "layers", the upper one being writable, and the lower one being read only. Thus was solved the problem with WinOS/2
-- the WinOS/2 itself on a CD/flasj, and .ini/.grp files on the ramdisk. But, the tvfs solution is bad in that it requires 
PM (tvfs pulls the PM DLL's). So, it won't work under tshell :(

b) The following solution was used with IBM's games from \os2\apps. This time, .ini files were copied to a ramdisk, got
patched, and the game was started from a flash/CD, having the current directory to be the directory with .ini files in it.
One more problem is the drive letters inside the ini files. For Klondike and Mahjongg, these drive letters are in filenames
(sound ones), as a string key in ini file. For Chess case, there is a single binary structure (or, more exactly, the binary
key in .ini file, which contains the array of structures with unknown format). But here the paths are located at the offsets,
whose steps were equal to the structure size. Hence, for Klondike and Mahjongg the question was solved by generation of
.ini's from .rc files, but in case of Chess we needed to take an .ini and patch it. :(

c) The programs which were ported from UNIX/Linux, store their user settings in %home%. So, setting %home% to
%bootdrv%\var\home\default (on the ramdisk), we get the same result. For example, Arora stores, by default, its
user profile, together with bookmarks and browser cache, in %home%. But QtWeb was ported some strange way, so all
these files are located in a subdirectory of the main program directory. As a result, we couldn't "tame" the program
at the moment. QupZilla behaves similar to Arora, so, we haven't problems with it too.

Additions from 2014-12-15:

     52) Similar to windoze drivers for GenMac, OS/2 drivers from %sysdrv%\ibmcom\macs (CD/flash) are packed into .zip-archive
drv.zip, to take less place. Now they are extracted to the ramdisk (%bootdrv%\ibmcom\macs). Together with NIC autodetection
and windoze drivers extraction, this is done in \tools\gennic.cmd script (Which, in turn, is called from \tools\bld.cmd).

     53) The GNU coreutils were added to \tools\klibc, new gcc runtimes and klibc versions -- to \tools\dll. Also,
the "Klibc paths rewriters" object was added to "System setup" folder (To configure substitutions like "/etc" to %etc%,
/tmp to ramdisk, etc. hardcoded unixoid paths).

     54) When it became known about opensourcing the Styler/2 (aka Smart Windows) under GPL v.3 by Alessandro Cantatore,
we had included this PM/WPS enhancer to our disk. (if needed, it could be disabled via \tools\rc.cfg, by changing
rc.styler2 = "yes" to "no").

     55) It were noticed taht TCP/IP in DOS window (and WinOS/2) works, if its components are loaded from the flash
disk or HDD, but doesn't work ("TCPIP for DOS is probably not running..." if trying to ping something, even 127.0.0.1)
when loading vdostcp.vdd (VDD) and vdosctl.exe (daemon) from CD, but vdosctl.sys (a DOS driver, loaded from inside the
VDM) from ramdisk. At the same time, we can see that the 1st two components seem to be successfully loaded (looking at
the info from WatchCat). It appeared that (surprise!) all three components are intended to be loaded from the RAM disk,
then everything is working.

     56) Additionally to VPC additions, now VBox additions are added (selected by pressing the "a" key -- none/VPC/VBox).
Now VBox video driver, mouse driver, clipboard integration are working, but an IFS for shared folders is missing at the
moment.

     57) Selection of mouse driver is added: AMouse/IBM mouse. Mouse driers from VPC and VBox additions are selected
separately when choosing VPC/VBox additions.

     58) For saving HWP Hook (XPager, hotkeys etc.) configurations, there is now a dumpkey.cmd REXX script. It generates
another script for restoring the configuration during the new boot, writing it to the stdout. Then the generated script 
can be called when starting the system ("call xwphook" in \tools\startup.cmd). For example, XPager has a big size and 3x2
of big screen previews, by default. After that, \tools\bin\xwphook.cmd is started, and it sets the XPager geometry to 8x3,
and other HWP Hook settings, like sliding focus, hotkeys etc. So, we customize the needed configuration first, via the 
objects from "System setup" folder, and then save it:

[n:\tools\bin] dumpkey.cmd >xwphook.cmd

(previously backing up xwphook.cmd)

     59) For booting from danidasd.dmd case (which is needed usually for booting from the flash disk), we have 
added the partfilt.flt filter driver, which converts the real hard disk partitions to virtual hard disks with a
single partition on them. Now, all partitions on the hard drives can be seen, including the case with seeral 
primary partitions. (DOS, OS/2 versions before 4.0, Windows 9x see only their own primary partition. Now all
partitions can be seen.)

Addition from 2015.02.07:

     60) Now TVFS under t-shell is working (it uses two Win* functions, working with the message queues). For that,
PMWIN.DLL (a stub DLL from zuko. TVFS binaries were patched using renmodul.exe (can be downloaded from Hobbes). The 
resulted DLL was renamed to FMWIN.DLL and all references to it from TFS were patched, using that name.)
     
     61) Now network, and wi-fi, (in particular, wpa_supplicant and ISC DHCP client) are working under t-shell, i.e.,
the network is now working everywhere. (Though, these two programs have PMWIN references, but they doesn't get called,
so we had nothing to patch).

     62) Using TVFS we were able to start Win-OS/2 under t-shell (having the read only files on a CD/flash, and writable
ones on a ramdisk).

     63) For Win-OS/2, the installation of GRADD/SVGA256 VESA video drivers was implemented, depending on the environment:
PM or t-shell.

     64) The keyboard layout switcher applet from "System setup" folder was repaired. For that, it appeared to be
sufficient to add to the \os2 directory the missing "user.dic" and "ibmdict.dic" files. Who could imagine... (Before that,
when double clicking on the applet, the desktop was freezed for some time, and the beeps on speaker were heard).

     65) In XWP, "xwp\bin\xfldr007.dll" and "xwp\help\*.007.*" were added. As a result, when choosing LANG=ru_RU in the
FreeLDR menu, a menu is partly russificated, and russian help/user guide is choosen (which is translated partly, too).

Addition from 2016.01.06:

     66) Desktop creation is moved to a separate script crdesk.cmd, and mkini.cmd is cahnged to an internal
procedure, for effectiveness. Before that, the list of all .rc's was hardcoded in scripts. Now the list of all 
user .rc's is remade as the list of strings, containing the .rc file names, without extensions. The string
list is contained in rc.cfg and is splitted to several lines, to overcome the string length limitation. Now rc.cfg
contains the list of all .rc's and flags for each .rc (disabled/enabled or yes/no). The program paths are contained 
in paths.sed. For each program, the @someprog@ variable is specified in its .rc file. The same variable must be
in paths.sed as 's/@someprog@/program-path/', i.e., all occurrences of this variable in .rc file are changed
to "program-path". Thus, if you need to add some program's .rc file, it is sufficient to add it to rc.cfg (add it
to the string list and add the rc.someprog = 'yes', where someprog.rc is a program .rc file name) and add the 
program path to paths.sed.

     67) Now this disk contains the UNIX ports infrastructure, based on yum/rpm. Qt4, KLibc and other utilities
now are not mixed with OS/2 utilities in \tools, but are moved in the separate \usr, \var and \etc subtrees.

     68) Netscape 4.0.4 / 4.6 can be used as a lightweight web browser. Also, Arora is present in this disk
distribution. Both browsers could be set up as a default web browser, for that, you need to uncomment / comment
out the corresponding lines in paths.sed. Paths.sed can now contain comment signs (semicolon) or spaces / empty
lines.

     69) Added new .rc files for Mesa2, Peer, Lotus SmartSuite, HomePage Publisher, DragText, FFST/2, HobLink X11,
PMX, IPSpool, lSwitcher, Z!, QuPlayer/2, SpeedSoft Sibyl, etc.

     70) Added Doodle screensaver.

     71) Updated: Lucide, XWP, HWMAN

     72) Separated the "core" utilities of the distribution, located in \tools, and user additions in \apps

     .... Sorry, not all changes are described, to be continued (and translated to english)...

Sincerelly yours,
Team BOOT/2,
2010-08-22

Credits:
IBM corp for OS/2,
Daniela Engert for DaniS506, DaniATAPI and DaniDASD,
VicTor Smirnoff and Alexey Timoshenko - our predecessors ;)
Karl Olsen and Andrew Belov - for ramfs.ifs,
Veit Kannegieser for plenty of useful programs,
Phoenix project (OS/4) team for the new kernel,
dixie for QS_INIT (aka Tetris),
osFree team for FreeLDR and new boot method,
Yoda for FreeInst ;-),
Knut St. Osmundsen (aka bird) for os2bird.asm (finding a specified entry point
in specified module; the bootos2.mdl authors extended it, adding
a possibility to search entry points in NE modules; the original
version had support for LX only),
Paul Smedley and other porters for WPA supplicant, ISC DHCP client,
and also, a lot of QT and, in general, UNIX applications,
GRUB authors for multiboot specification and adopted
pieces of code,
Adam Lackorzynski for GRUB patch, which was successfully
ported to FreeLDR,
and authors of many other
programs on this disk.

Disclaimer: All programs used in this disk are
a property of their legal owners.
This disk could be legally used by legal owners of
licenses of IBM OS/2 or eComStation. If you doesn't have such
a license, then use it on your own risk.
We do not pretend on rights of "fighters for copyright"
and are not responsible for problems arising
during the use of this disk,
all programs were got from different file archives
and are presented according established "as is" practice,
all these are supplied for personal use only,
for fun and do not pretend on getting any profit ;-)

PS: All programs on this disk are free (GNU GPL (as FreeLDR is),
freeware, public domain), shareware trial (FC/2), or abandonware
(as GTU40 or Watchcat are).

Download CD Image release 2012.26.11

if you need this disk but newer go to irc-channel #os2russian.

How to boot from USB: copy contents to usbflash/hdd, and then modify bootsector and MBR using \tools\freeinst. To restore the image to Flash, you can use DFSee disk, partition and filesystem tool.

Please do not ask me about these images. I will not provide any support for them. Support for these boot images available on #os2russian irc channel, f.e. irc://irc.inet.tele.dk/os2russian - or http://chat.efnet.org:9090/?nick=bootuser&channels=%23os2russian&Login=Login. You may ask in english or if your write in russian, make sure that in your irc chat program encoding set to koi8-r.


Contacts


E-Mail: bearwindows_at_operamail_dot_com | Last update: December 1th 2017