Translating desktop to spanish

git-svn-id: svn://kolibrios.org@3415 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
esevece 2013-03-26 02:12:02 +00:00
parent 0320d81f8f
commit a3a6f17e0b
78 changed files with 13720 additions and 4 deletions

BIN
data/sp/3d/cubeline Normal file

Binary file not shown.

BIN
data/sp/3d/cubetext Normal file

Binary file not shown.

BIN
data/sp/3d/gears Normal file

Binary file not shown.

BIN
data/sp/3d/house.3ds Normal file

Binary file not shown.

BIN
data/sp/3d/logio.bmp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

View File

@ -0,0 +1,59 @@
[Associations]
asm=TinyPad
inc=TinyPad
ini=TinyPad
txt=TinyPad
gif=/sys/media/kiv
bmp=/sys/media/kiv
png=/sys/media/kiv
tga=/sys/media/kiv
jpg=/sys/media/kiv
jpeg=/sys/media/kiv
ico=/sys/media/kiv
cur=/sys/media/kiv
pcx=/sys/media/kiv
xcf=/sys/media/kiv
pbm=/sys/media/kiv
pgm=/sys/media/kiv
pnm=/sys/media/kiv
tif=/sys/media/kiv
tiff=/sys/media/kiv
wbmp=/sys/media/kiv
3ds=/sys/3d/view3ds
lif=/sys/demos/life2
skn=/sys/desktop
htm=/sys/HTMLv
html=/sys/HTMLv
mht=/sys/HTMLv
fb2=/sys/HTMLv
rtf=/sys/RtfRead
obj=/sys/develop/cObj
nes=/sys/games/fceu
xm=/sys/media/AC97SND
wav=/sys/media/AC97SND
mp3=/sys/media/AC97SND
mid=/sys/media/MIDAMP
m3u=/sys/media/listplay
lap=/sys/media/listplay
asf=/sys/media/listplay
kla=/sys/games/klavisha
avi=/bd0/4/fplay
mkv=/bd0/4/fplay
vob=/bd0/4/fplay
flv=/bd0/4/fplay
mp4=/bd0/4/fplay
mpg=/bd0/4/fplay
mpeg=/bd0/4/fplay
smc=/bd0/4/zsnes
pdf=/bd0/4/updf
mcr=/bd0/4/psx4all
[Config]
SelectionColor=94AECE
LineHeight=18
ShowDeviceName=1
[UserDirectories]
;ïàïêè äëÿ áûñòðîãî ïåðåõîäà - ïîêà ÷òî íå ðàáîòàåò
/bd0/4/kolibri/

View File

@ -0,0 +1,143 @@
asm=4
inc=4
txt=3
rtf=3
ini=3
log=3
dic=3
doc=3
exc=3
wtx=3
inf=3
xml=3
odt=3
jpg=6
jpe=6
jpeg=6
jif=6
jfif=6
jp2=6
jpx=6
jpk=6
j2k=6
jpc=6
j2c=6
bmp=6
dib=6
rle=6
pbm=6
pgm=6
pnm=6
wbm=6
wbmp=6
xbm=6
xpm=6
gif=6
png=6
ico=6
cur=6
ani=6
tif=6
tiff=6
xif=6
tga=6
pcx=6
xcf=6
dcx=6
ppm=6
psd=6
psp=6
raw=6
raf=6
x3f=6
orf=6
nef=6
mrw=6
dcr=6
crw=6
cr2=6
ras=6
pix=6
pict=6
pct=6
pic=6
pef=6
pcd=6
iff=6
lbm=6
ilbm=6
fpx=6
djv=6
djvu=6
iw4=6
wav=7
mp3=7
xm=7
mid=7
midi=7
aif=7
aifc=7
aiff=7
au=7
snd=7
wma=7
wm=7
avi=11
mpg=11
mpe=11
mpeg=11
flv=11
3gp=11
mkv=11
wmv=11
mov=11
mp4=11
img=5
ima=5
imz=5
bwz=5
dsk=5
vfd=5
wil=5
wlz=5
exe=8
com=8
bat=8
7z=9
rar=9
zip=9
cab=9
arj=9
lha=9
lzh=9
tar=9
taz=9
tbz=9
tbz2=9
bz=9
bz2=9
ice=9
gz=9
tgz=9
uue=9
uu=9
xxe=9
z=9
dat=10
ttf=12
ttc=12
chr=12
mt=12
htm=13
html=13
mht=13
eml=13
lif=14
3ds=15
kex=16
skn=17
obj=18
dll=18
ocx=18
so=18
drv=18

View File

@ -0,0 +1,79 @@
[Associations]
asm=/sys/TinyPad; AsmMenu1,AsmMenu2
inc=/sys/TinyPad
ini=/sys/TinyPad
txt=/sys/TinyPad
jpg=/sys/media/kiv
jpeg=/sys/media/kiv
jpe=/sys/media/kiv
gif=/sys/media/kiv; ViewGraph,MenuAnimage
ico=/sys/media/kiv
bmp=/sys/media/kiv; ViewGraph,MenuAnimage
png=/sys/media/kiv
cur=/sys/media/kiv
pcx=/sys/media/kiv
pbm=/sys/media/kiv
pgm=/sys/media/kiv
pnm=/sys/media/kiv
tif=/sys/media/kiv
tiff=/sys/media/kiv
wbmp=/sys/media/kiv
xcf=/sys/media/kiv
rtf=/sys/RtfRead
3ds=/sys/3d/view3ds
lif=/sys/demos/life2
skn=/sys/desktop
m3u=/sys/media/listplay
lap=/sys/media/listplay
asf=/sys/media/listplay
wav=/sys/media/AC97SND
mp3=/sys/media/AC97SND
xm=/sys/media/AC97SND
mid=/sys/media/MIDAMP
cvs=/sys/graph
obj=/sys/develop/cObj
htm=/sys/HTMLv
html=/sys/HTMLv
fb2=/sys/HTMLv
mht=/sys/HTMLv
kla=/sys/games/klavisha
[Menu]
AsmMenu1=&Edit,/sys/TinyPad
AsmMenu2=&Compile,/sys/develop/fasm
ViewGraph=&View,/sys/media/kiv
MenuAnimage=&Edit,/sys/media/animage
[Panels]
; View modes for files on panels
; values correspond to digits for LCtrl+<1-4>
LeftViewMode=2
RightViewMode=2
; Sort modes for files on panels
; values are 2 * N + M, where
; M = 0 - normal sorting, M = 1 - reverse sorting
; N = 0-6 correspond to sort mode for Ctrl+F<3-9>
LeftSortMode=0
RightSortMode=0
[Editor]
; Symbols for end-of-line, which will be added by kfar editor
; when new line will be created:
; DOS - like in DOS/Win (0D 0A), Unix - like in Unix (0A),
; Mac - like in Mac (0D)
EOLStyle=Unix
[FolderShortcuts]
; You can define up to 10 links to folders Shortcut0...Shortcut9,
; the quick jump to such folders can be done with RCtrl+<digit>
Shortcut0=/rd/1
[Confirmations]
Delete=1
DeleteIncomplete=0
[Plugins]
; On left of the equal sign any sensical or nonsensical name can appear;
; on right - path to plugin.
; If path is not absolute, it is counted from the folder with kfar binary.
ArchiveReader=/sys/lib/archiver.obj

View File

@ -0,0 +1,209 @@
start
<>icons_associations
asm 0004
inc 0004
mac 0004
txt 0003
rtf 0003
ini 0003
log 0003
dic 0003
doc 0003
exc 0003
wtx 0003
inf 0003
jpg 0006
jpe 0006
jpeg 0006
jif 0006
jfif 0006
jp2 0006
jpx 0006
jpk 0006
j2k 0006
jpc 0006
j2c 0006
bmp 0006
dib 0006
rle 0006
pbm 0006
wbm 0006
wbmp 0006
xbm 0006
xpm 0006
gif 0006
png 0006
ico 0006
cur 0006
ani 0006
tif 0006
tiff 0006
xif 0006
tga 0006
pcx 0006
pbm 0006
pgm 0006
pnm 0006
xcf 0006
dcx 0006
ppm 0006
psd 0006
psp 0006
raw 0006
raf 0006
x3f 0006
orf 0006
nef 0006
mrw 0006
dcr 0006
crw 0006
cr2 0006
ras 0006
pix 0006
pict 0006
pct 0006
pic 0006
pgm 0006
pef 0006
pcd 0006
iff 0006
lbm 0006
ilbm 0006
fpx 0006
djv 0006
djvu 0006
iw4 0006
wav 0007
mp3 0007
xm 0007
mid 0007
midi 0007
aif 0007
aifc 0007
aiff 0007
au 0007
snd 0007
wma 0007
wm 0007
avi 0011
mpg 0011
mov 0011
flv 0011
wmv 0011
vob 0011
mkv 0011
mp4 0011
mpeg 0011
3gp 0011
img 0005
ima 0005
imz 0005
bwz 0005
dsk 0005
vfd 0005
wil 0005
wlz 0005
exe 0008
com 0008
bat 0008
sh 0008
7z 0009
rar 0009
zip 0009
cab 0009
arj 0009
lha 0009
lzh 0009
tar 0009
taz 0009
tbz 0009
tbz2 0009
bz 0009
bz2 0009
ice 0009
gz 0009
tgz 0009
uue 0009
uu 0009
xxe 0009
z 0009
dat 0010
dbg 0010
mgb 0010
ttf 0012
ttc 0012
chr 0012
mt 0012
htm 0013
html 0013
lif 0014
3ds 0015
kex 0016
skn 0017
<>end
<>files_associations
asm /sys/tinypad
inc /sys/tinypad
mac /sys/tinypad
dbg /sys/tinypad
txt /sys/tinypad
ini /sys/tinypad
log /sys/tinypad
dat /sys/tinypad
inf /sys/tinypad
bat /sys/tinypad
sh /sys/tinypad
jpg /sys/media/kiv
jpeg /sys/media/kiv
jpe /sys/media/kiv
gif /sys/media/kiv
bmp /sys/media/kiv
png /sys/media/kiv
ico /sys/media/kiv
cur /sys/media/kiv
pcx /sys/media/kiv
xcf /sys/media/kiv
pbm /sys/media/kiv
pgm /sys/media/kiv
pnm /sys/media/kiv
tif /sys/media/kiv
tiff /sys/media/kiv
wbmp /sys/media/kiv
wav /sys/media/ac97snd
mp3 /sys/media/ac97snd
xm /sys/media/ac97snd
mid /sys/media/midamp
rtf /sys/rtfread
3ds /sys/3d/view3ds
lif /sys/demos/life2
skn /sys/desktop
avi /hd0/1/fplay.kex
mpg /hd0/1/fplay.kex
mov /hd0/1/fplay.kex
flv /hd0/1/fplay.kex
wmv /hd0/1/fplay.kex
vob /hd0/1/fplay.kex
mkv /hd0/1/fplay.kex
mp4 /hd0/1/fplay.kex
mpeg /hd0/1/fplay.kex
3gp /hd0/1/fplay.kex
m3u /sys/media/listplay
lap /sys/media/listplay
asf /sys/media/listplay
cvs /sys/graph
obj /sys/develop/cObj
htm /sys/HTMLv
html /sys/HTMLv
mht /sys/HTMLv
fb2 /sys/HTMLv
kla /sys/games/klavisha
bin /sys/develop/heed
mgb /sys/develop/heed
<>end
<>files_association1
bmp /sys/media/animage
<>end
end

668
data/sp/Makefile Normal file
View File

@ -0,0 +1,668 @@
# General rule for naming: variables with CAPITALIZED names hold settings,
# you can - and are expected - to modify it; variables with lowercase names
# are intermediate variables and macroses not to be modified unless you
# know what you're doing.
# Define directories for destination, source repository, sources of kernel, sources of programs.
BUILD_DIR:=build
REPOSITORY:=../..
KERNEL:=$(REPOSITORY)/kernel/trunk
PROGS:=$(REPOSITORY)/programs
# The main goal: build kolibri.img, kolibri.iso and list for creating a distribution kit
all: $(BUILD_DIR)/kolibri.img $(BUILD_DIR)/kolibri.iso $(BUILD_DIR)/distr.lst
# Docpak requires some documents; we place them
# into 'docs' subdir and communicate with FASM
# through environment var DOCDIR.
DOCDIR:=docs/
export DOCDIR
# Because most programs are written in FASM and have
# the common structure of one main .asm file possibly including
# several .inc files, we handle this case separately.
# Namely, we organize one big list of such programs
# (FASM_PROGRAMS, see below) containing name of local binary file,
# name of file inside kolibri.img and name of the source file.
# This list is maintained by hand, and the rest is done with some macroses...
# well, slightly complicated macroses - however, you do not need to
# understand them in order to maintain the list.
# To add a FASM program with one .asm file, just
# add the corresponding item to the list and enjoy
# the power of GNU make.
# The list of all FASM programs with one main FASM file.
# Every item consists of three parts, separated by ':'.
# First part is the real name of binary file in $(BUILD_DIR)
# as it should be produced by make.
# Second part is the name of a file inside kolibri.img,
# usually uppercased version of first part - to save space
# for FAT filesystem.
# Third part is the name of the source file.
# Spaces separate items, so spaces in names should be
# represented as '|'.
FASM_PROGRAMS:=\
@clip:@CLIP:$(PROGS)/system/clip/trunk/@clip.ASM \
@menu:@MENU:$(PROGS)/system/menu/trunk/menu.asm \
@panel:@PANEL:$(PROGS)/system/panel/trunk/@PANEL.ASM \
@ss:@SS:$(PROGS)/system/ss/trunk/@ss.asm\
refrscrn:REFRSCRN:$(PROGS)/system/refrscrn/refrscrn.asm \
asciivju:ASCIIVJU:$(PROGS)/develop/asciivju/trunk/asciivju.asm \
calc:CALC:$(PROGS)/other/calc/trunk/calc.asm \
calendar:CALENDAR:$(PROGS)/system/calendar/trunk/calendar.asm \
commouse:COMMOUSE:$(PROGS)/system/commouse/trunk/commouse.asm \
cpu:CPU:$(PROGS)/system/cpu/trunk/cpu.asm \
cpuid:CPUID:$(PROGS)/system/cpuid/trunk/CPUID.ASM \
desktop:DESKTOP:$(PROGS)/system/desktop/trunk/desktop.asm \
disptest:DISPTEST:$(PROGS)/system/disptest/trunk/disptest.ASM \
docpack:DOCPACK:$(PROGS)/system/docpack/trunk/docpack.asm \
end:END:$(PROGS)/system/end/light/end.asm \
gmon:GMON:$(PROGS)/system/gmon/gmon.asm \
hdd_info:HDD_INFO:$(PROGS)/system/hdd_info/trunk/hdd_info.asm \
icon:ICON:$(PROGS)/system/icon/trunk/icon.asm \
cropflat:CROPFLAT:$(PROGS)/system/cropflat/cropflat.asm \
kbd:KBD:$(PROGS)/system/kbd/trunk/kbd.ASM \
kpack:KPACK:$(PROGS)/other/kpack/trunk/kpack.asm \
launcher:LAUNCHER:$(PROGS)/system/launcher/trunk/launcher.asm \
magnify:MAGNIFY:$(PROGS)/demos/magnify/trunk/magnify.asm \
mgb:MGB:$(PROGS)/system/mgb/trunk/mgb.asm \
mousemul:MOUSEMUL:$(PROGS)/system/mousemul/trunk/mousemul.asm \
madmouse:MADMOUSE:$(PROGS)/other/madmouse/madmouse.asm \
mykey:MYKEY:$(PROGS)/system/MyKey/trunk/MyKey.asm \
pcidev:PCIDEV:$(PROGS)/system/pcidev/trunk/PCIDEV.ASM \
rdsave:RDSAVE:$(PROGS)/system/rdsave/trunk/rdsave.asm \
rtfread:RTFREAD:$(PROGS)/other/rtfread/trunk/rtfread.asm \
run:RUN:$(PROGS)/system/run/trunk/run.asm \
scrshoot:SCRSHOOT:$(PROGS)/media/scrshoot/scrshoot.asm \
setup:SETUP:$(PROGS)/system/setup/trunk/setup.asm \
test:TEST:$(PROGS)/system/test/trunk/test.asm \
tinypad:TINYPAD:$(PROGS)/develop/tinypad/trunk/tinypad.asm \
zkey:ZKEY:$(PROGS)/system/zkey/trunk/ZKEY.ASM \
3d/3dsheart:3D/3DSHEART:$(PROGS)/demos/3dsheart/trunk/3dsheart.asm \
3d/3dwav:3D/3DWAV:$(PROGS)/demos/3dwav/trunk/3dwav.asm \
3d/crownscr:3D/CROWNSCR:$(PROGS)/demos/crownscr/trunk/crownscr.asm \
3d/free3d04:3D/FREE3D04:$(PROGS)/demos/free3d04/trunk/free3d04.asm \
3d/view3ds:3D/VIEW3DS:$(PROGS)/demos/3DS/VIEW3DS.ASM \
demos/bcdclk:DEMOS/BCDCLK:$(PROGS)/demos/bcdclk/trunk/bcdclk.asm \
demos/circle:DEMOS/CIRCLE:$(PROGS)/develop/examples/circle/trunk/circle.asm \
demos/colorref:DEMOS/COLORREF:$(PROGS)/demos/colorref/trunk/colorref.asm \
demos/cslide:DEMOS/CSLIDE:$(PROGS)/demos/cslide/trunk/cslide.asm \
demos/eyes:DEMOS/EYES:$(PROGS)/demos/eyes/trunk/eyes.asm \
demos/firework:DEMOS/FIREWORK:$(PROGS)/demos/firework/trunk/firework.asm \
demos/movback:DEMOS/MOVBACK:$(PROGS)/demos/movback/trunk/movback.asm \
demos/plasma:DEMOS/PLASMA:$(PROGS)/demos/plasma/trunk/plasma.asm \
demos/timer:DEMOS/TIMER:$(PROGS)/demos/timer/trunk/timer.asm \
demos/tinyfrac:DEMOS/TINYFRAC:$(PROGS)/demos/tinyfrac/trunk/tinyfrac.asm \
demos/trantest:DEMOS/TRANTEST:$(PROGS)/demos/trantest/trunk/trantest.asm \
demos/tube:DEMOS/TUBE:$(PROGS)/demos/tube/trunk/tube.asm \
demos/unvwater:DEMOS/UNVWATER:$(PROGS)/demos/unvwater/trunk/unvwater.asm \
demos/web:DEMOS/WEB:$(PROGS)/demos/web/trunk/web.asm \
develop/board:DEVELOP/BOARD:$(PROGS)/system/board/trunk/board.asm \
develop/cObj:DEVELOP/cObj:$(PROGS)/develop/cObj/trunk/cObj.asm \
develop/fasm:DEVELOP/FASM:$(PROGS)/develop/fasm/trunk/fasm.asm \
develop/h2d2b:DEVELOP/H2D2B:$(PROGS)/develop/h2d2b/trunk/h2d2b.asm \
develop/heed:DEVELOP/HEED:$(PROGS)/develop/heed/trunk/heed.asm \
develop/ipc:DEVELOP/IPC:$(PROGS)/network/ipc/trunk/ipc.asm \
develop/keyascii:DEVELOP/KEYASCII:$(PROGS)/develop/keyascii/trunk/keyascii.asm \
develop/mtdbg:DEVELOP/MTDBG:$(PROGS)/develop/mtdbg/mtdbg.asm \
develop/scancode:DEVELOP/SCANCODE:$(PROGS)/develop/scancode/trunk/scancode.asm \
develop/t_edit:DEVELOP/T_EDIT:$(PROGS)/other/t_edit/t_edit.asm \
develop/test_gets:DEVELOP/test_gets:$(PROGS)/develop/libraries/console/examples/test_gets.asm \
develop/testcon2:DEVELOP/TESTCON2:$(PROGS)/develop/libraries/console/examples/testcon2.asm \
develop/thread:DEVELOP/THREAD:$(PROGS)/develop/examples/thread/trunk/thread.asm \
develop/info/asm.syn:DEVELOP/INFO/ASM.SYN:$(PROGS)/other/t_edit/info/asm_syn.asm \
develop/info/cpp_kol_cla.syn:DEVELOP/INFO/CPP_KOL_CLA.SYN:$(PROGS)/other/t_edit/info/cpp_kol_cla_syn.asm \
develop/info/cpp_kol_dar.syn:DEVELOP/INFO/CPP_KOL_DAR.SYN:$(PROGS)/other/t_edit/info/cpp_kol_dar_syn.asm \
develop/info/cpp_kol_def.syn:DEVELOP/INFO/CPP_KOL_DEF.SYN:$(PROGS)/other/t_edit/info/cpp_kol_def_syn.asm \
develop/info/default.syn:DEVELOP/INFO/DEFAULT.SYN:$(PROGS)/other/t_edit/info/default_syn.asm \
develop/info/html.syn:DEVELOP/INFO/HTML.SYN:$(PROGS)/other/t_edit/info/html_syn.asm \
develop/info/ini_files.syn:DEVELOP/INFO/INI_FILES.SYN:$(PROGS)/other/t_edit/info/ini_files_syn.asm \
develop/info/win_const.syn:DEVELOP/INFO/WIN_CONST.SYN:$(PROGS)/other/t_edit/info/win_const_syn.asm \
drivers/com_mouse.obj:DRIVERS/COM_MOUSE.OBJ:$(KERNEL)/drivers/com_mouse.asm \
drivers/emu10k1x.obj:DRIVERS/EMU10K1X.OBJ:$(KERNEL)/drivers/emu10k1x.asm \
drivers/fm801.obj:DRIVERS/FM801.OBJ:$(KERNEL)/drivers/fm801.asm \
drivers/infinity.obj:DRIVERS/INFINITY.OBJ:$(KERNEL)/drivers/infinity.asm \
drivers/intel_hda.obj:DRIVERS/intel_hda.obj:$(REPOSITORY)/drivers/audio/intel_hda/intel_hda.asm \
drivers/ps2mouse.obj:DRIVERS/PS2MOUSE.OBJ:$(REPOSITORY)/drivers/mouse/ps2mouse4d/trunk/ps2mouse.asm \
drivers/sb16.obj:DRIVERS/SB16.OBJ:$(KERNEL)/drivers/sb16/sb16.asm \
drivers/sound.obj:DRIVERS/SOUND.OBJ:$(KERNEL)/drivers/sound.asm \
drivers/intelac97.obj:DRIVERS/INTELAC97.OBJ:$(KERNEL)/drivers/intelac97.asm \
drivers/tmpdisk.obj:DRIVERS/TMPDISK.OBJ:$(KERNEL)/drivers/tmpdisk.asm \
drivers/vt823x.obj:DRIVERS/VT823X.OBJ:$(KERNEL)/drivers/vt823x.asm \
File|Managers/kfar:File|Managers/KFAR:$(PROGS)/fs/kfar/trunk/kfar.asm \
File|Managers/kfm:File|Managers/KFM:$(PROGS)/fs/kfm/trunk/kfm.asm \
File|Managers/opendial:File|Managers/OPENDIAL:$(PROGS)/fs/opendial/opendial.asm \
games/15:GAMES/15:$(PROGS)/games/15/trunk/15.ASM \
games/arcanii:GAMES/ARCANII:$(PROGS)/games/arcanii/trunk/arcanii.asm \
games/freecell:GAMES/FREECELL:$(PROGS)/games/freecell/freecell.asm \
games/gomoku:GAMES/GOMOKU:$(PROGS)/games/gomoku/trunk/gomoku.asm \
games/invaders:GAMES/INVADERS:$(PROGS)/games/invaders/invaders.asm \
games/klavisha:GAMES/KLAVISHA:$(PROGS)/games/klavisha/trunk/klavisha.asm \
games/lines:GAMES/LINES:$(PROGS)/games/lines/lines.asm \
games/mblocks:GAMES/MBLOCKS:$(PROGS)/games/mblocks/trunk/mblocks.asm \
games/msquare:GAMES/MSQUARE:$(PROGS)/games/MSquare/trunk/MSquare.asm \
games/phenix:GAMES/PHENIX:$(PROGS)/games/phenix/trunk/phenix.asm \
games/pipes:GAMES/PIPES:$(PROGS)/games/pipes/pipes.asm \
games/pong:GAMES/PONG:$(PROGS)/games/pong/trunk/pong.asm \
games/pong3:GAMES/PONG3:$(PROGS)/games/pong3/trunk/pong3.asm \
games/rsquare:GAMES/RSQUARE:$(PROGS)/games/rsquare/trunk/rsquare.asm \
games/soko:GAMES/SOKO:$(PROGS)/games/soko/trunk/SOKO.ASM \
games/snake:GAMES/SNAKE:$(PROGS)/games/snake/trunk/snake.asm \
games/sq_game:GAMES/SQ_GAME:$(PROGS)/games/sq_game/trunk/SQ_GAME.ASM \
games/sudoku:GAMES/SUDOKU:$(PROGS)/games/sudoku/trunk/sudoku.asm \
games/sw:GAMES/SW:$(PROGS)/games/sw/trunk/sw.asm \
games/tanks:GAMES/TANKS:$(PROGS)/games/tanks/trunk/tanks.asm \
games/tetris:GAMES/TETRIS:$(PROGS)/games/tetris/trunk/tetris.asm \
lib/archiver.obj:LIB/ARCHIVER.OBJ:$(PROGS)/fs/kfar/trunk/kfar_arc/kfar_arc.asm \
lib/box_lib.obj:LIB/BOX_LIB.OBJ:$(PROGS)/develop/libraries/box_lib/trunk/box_lib.asm \
lib/buf2d.obj:LIB/BUF2D.OBJ:$(PROGS)/develop/libraries/buf2d/trunk/buf2d.asm \
lib/console.obj:LIB/CONSOLE.OBJ:$(PROGS)/develop/libraries/console/console.asm \
lib/libgfx.obj:LIB/LIBGFX.OBJ:$(PROGS)/develop/libraries/libs-dev/libgfx/libgfx.asm \
lib/libimg.obj:LIB/LIBIMG.OBJ:$(PROGS)/develop/libraries/libs-dev/libimg/libimg.asm \
lib/libini.obj:LIB/LIBINI.OBJ:$(PROGS)/develop/libraries/libs-dev/libini/libini.asm \
lib/libio.obj:LIB/LIBIO.OBJ:$(PROGS)/develop/libraries/libs-dev/libio/libio.asm \
lib/network.obj:LIB/NETWORK.OBJ:$(PROGS)/develop/libraries/network/network.asm \
lib/proc_lib.obj:LIB/PROC_LIB.OBJ:$(PROGS)/develop/libraries/proc_lib/trunk/proc_lib.asm \
lib/cnv_png.obj:LIB/CNV_PNG.OBJ:$(PROGS)/media/zsea/plugins/png/cnv_png.asm \
media/animage:MEDIA/ANIMAGE:$(PROGS)/media/animage/trunk/animage.asm \
media/cdp:MEDIA/CDP:$(PROGS)/media/cdp/trunk/cdp.asm \
media/kiv:MEDIA/KIV:$(PROGS)/media/kiv/trunk/kiv.asm \
media/listplay:MEDIA/LISTPLAY:$(PROGS)/media/listplay/trunk/listplay.asm \
media/midamp:MEDIA/MIDAMP:$(PROGS)/media/midamp/trunk/midamp.asm \
media/palitra:MEDIA/PALITRA:$(PROGS)/media/palitra/trunk/palitra.asm \
media/startmus:MEDIA/STARTMUS:$(PROGS)/media/startmus/trunk/STARTMUS.ASM \
network/airc:NETWORK/AIRC:$(PROGS)/network/airc/trunk/airc.asm \
network/arpstat:NETWORK/ARPSTAT:$(PROGS)/network/arpstat/trunk/arpstat.asm \
network/chess:NETWORK/CHESS:$(PROGS)/network/chess/trunk/chess.asm \
network/downloader:NETWORK/DOWNLOADER:$(PROGS)/network/downloader/trunk/downloader.asm \
network/ethstat:NETWORK/ETHSTAT:$(PROGS)/network/ethstat/trunk/ethstat.asm \
network/ftps:NETWORK/FTPS:$(PROGS)/network/ftps/trunk/FTPS.ASM \
network/https:NETWORK/HTTPS:$(PROGS)/network/https/trunk/https.asm \
network/nntpc:NETWORK/NNTPC:$(PROGS)/network/nntpc/trunk/nntpc.asm \
network/nslookup:NETWORK/NSLOOKUP:$(PROGS)/develop/libraries/network/examples/nslookup.asm \
network/popc:NETWORK/POPC:$(PROGS)/network/popc/trunk/popc.asm \
network/smtps:NETWORK/SMTPS:$(PROGS)/network/smtps/trunk/smtps.asm \
network/stackcfg:NETWORK/STACKCFG:$(PROGS)/network/stackcfg/trunk/stackcfg.asm \
network/telnet:NETWORK/TELNET:$(PROGS)/network/telnet/trunk/telnet.asm \
network/tftpc:NETWORK/TFTPC:$(PROGS)/network/tftpc/trunk/tftpc.asm \
network/VNCclient:NETWORK/VNCclient:$(PROGS)/network/VNCclient/VNCclient.asm \
network/ym:NETWORK/YM:$(PROGS)/network/ym/trunk/ym.asm \
network/zeroconf:NETWORK/ZEROCONF:$(PROGS)/network/zeroconf/trunk/zeroconf.asm \
# end of list
# The list of all FASM programs with one main FASM file for CD image.
# Format of an item is exactly the same as in the previous list.
FASM_PROGRAMS_CD:=\
drivers/atikms:DRIVERS/ATIKMS:$(REPOSITORY)/drivers/video/drm/radeon/atikms.asm \
# end of list
# The list of all FASM programs which needs to be compiled without KPACKing.
FASM_NOKPACK_PROGRAMS:=\
distr_data/9x2klbr.exe:-:$(PROGS)/hd_load/9x2klbr/9x2klbr.asm \
distr_data/MeOSload.com:-:$(PROGS)/hd_load/meosload/MeOSload.asm \
distr_data/mtldr:-:$(PROGS)/hd_load/mtldr/mtldr.asm \
mtldr_for_installer:-:$(PROGS)/hd_load/mtldr_install/mtldr_code/mtldr.asm \
distr_data/mtldr_install.exe:-:$(PROGS)/hd_load/mtldr_install/mtldr_install.asm \
distr_data/MeOSload_for_usb_boot_old.com:-:$(PROGS)/hd_load/usb_boot_old/MeOSload.asm \
distr_data/enable_for_usb_boot_old.exe:-:$(PROGS)/hd_load/usb_boot_old/enable.asm \
distr_data/BOOT_F32.BIN:-:$(PROGS)/hd_load/usb_boot/BOOT_F32.ASM \
distr_data/MTLD_F32:-:$(PROGS)/hd_load/usb_boot/mtldr.asm \
distr_data/inst.exe:-:$(PROGS)/hd_load/usb_boot/inst.asm \
distr_data/setmbr.exe:-:$(PROGS)/hd_load/usb_boot/setmbr.asm \
#end of list
# The list of all NASM programs with one main NASM file.
# Format of an item is exactly the same as in the previous list.
NASM_PROGRAMS:=\
demos/aclock:DEMOS/ACLOCK:$(PROGS)/demos/aclock/trunk/aclock.asm \
games/c4:GAMES/C4:$(PROGS)/games/c4/trunk/c4.asm \
# end of list
# The list of files which should be copied from somewhere.
# Format of an item is exactly the same as in the previous list.
COPY_FILES:=\
macros.inc:MACROS.INC:$(PROGS)/macros.inc \
config.inc:CONFIG.INC:$(PROGS)/config.inc \
struct.inc:STRUCT.INC:$(PROGS)/struct.inc \
develop/te_icon.png:DEVELOP/TE_ICON.PNG:$(PROGS)/other/t_edit/te_icon.png \
develop/tl_nod_16.png:DEVELOP/TL_NOD_16.PNG:$(PROGS)/other/t_edit/tl_nod_16.png \
develop/tl_sys_16.png:DEVELOP/TL_SYS_16.PNG:$(PROGS)/media/log_el/trunk/tl_sys_16.png \
develop/t_edit.ini:DEVELOP/T_EDIT.INI:$(PROGS)/other/t_edit/t_edit.ini \
File|Managers/z_icons.png:File|Managers/Z_ICONS.PNG:$(PROGS)/fs/opendial/z_icons.png \
File|Managers/kfm_keys.txt:File|Managers/KFM_KEYS.TXT:$(PROGS)/fs/kfm/trunk/docs/english/kfm_keys.txt \
File|Managers/buttons.bmp:File|Managers/BUTTONS.BMP:$(PROGS)/fs/kfm/trunk/buttons.bmp \
File|Managers/icons.bmp:File|Managers/ICONS.BMP:$(PROGS)/fs/kfm/trunk/icons.bmp \
fonts/litt.chr:FONTS/LITT.CHR:$(PROGS)/demos/bgitest/trunk/FONTS/LITT.CHR \
games/snake.ini:GAMES/SNAKE.INI:$(PROGS)/games/snake/trunk/snake.ini \
games/skin.raw:GAMES/SKIN.RAW:$(PROGS)/games/soko/trunk/SKIN.RAW \
games/soko-4.lev:GAMES/SOKO-4.LEV:$(PROGS)/games/soko/trunk/SOKO-4.LEV \
games/soko-5.lev:GAMES/SOKO-5.LEV:$(PROGS)/games/soko/trunk/SOKO-5.LEV \
games/soko-6.lev:GAMES/SOKO-6.LEV:$(PROGS)/games/soko/trunk/SOKO-6.LEV \
games/soko-7.lev:GAMES/SOKO-7.LEV:$(PROGS)/games/soko/trunk/SOKO-7.LEV \
games/soko-8.lev:GAMES/SOKO-8.LEV:$(PROGS)/games/soko/trunk/SOKO-8.LEV \
games/soko-9.lev:GAMES/SOKO-9.LEV:$(PROGS)/games/soko/trunk/SOKO-9.LEV \
media/kiv.ini:MEDIA/KIV.INI:$(PROGS)/media/kiv/trunk/kiv.ini \
.shell:.shell:$(PROGS)/system/shell/bin/eng/.shell \
mykey.ini:MYKEY.INI:$(PROGS)/system/MyKey/trunk/mykey.ini \
# end of list
# The list of all C-- programs with one main C-- file.
# Format of an item is exactly the same as in the previous list,
# except that there can be fourth field with parameters for a compiler.
CMM_PROGRAMS:=\
File|Managers/eolite:File|Managers/EOLITE:$(PROGS)/cmm/eolite/Eolite.c \
games/clicks:GAMES/CLICKS:$(PROGS)/games/clicks/trunk/clicks.c \
games/FindNumbers:GAMES/FindNumbers:$(PROGS)/games/FindNumbers/trunk/FindNumbers.c-- \
games/flood-it:GAMES/flood-it:$(PROGS)/games/flood-it/trunk/flood-it.c \
games/mine:GAMES/MINE:$(PROGS)/games/mine/trunk/mine.c--:/MEOS \
HTMLv:HTMLv:$(PROGS)/cmm/browser/HTMLv.c \
tmpdisk:tmpdisk:$(PROGS)/cmm/tmpdisk/tmpdisk.c \
@notify:@notify:$(PROGS)/cmm/notify/notify.c \
@rb:@rb:$(PROGS)/cmm/rb/rb.c \
#develop/c--:DEVELOP/C--:$(PROGS)/develop/c--/trunk/32.c-- \
# end of list
# List of other files to be included in the image file.
# Some of them are auto-built with special rules, some just exist before build.
# Each item is of the form <local name>:<name inside image>.
# Spaces should be represented as |.
OTHER_FILES:=autorun.dat:AUTORUN.DAT \
default.skn:DEFAULT.SKN \
graph:GRAPH hdread:HDREAD \
icons.dat:ICONS.DAT iconstrp.png:ICONSTRP.PNG index_htm:INDEX.HTM \
kernel.mnt:KERNEL.MNT kerpack:KERPACK keymap.key:KEYMAP.KEY \
kuzkina.mid:KUZKINA.MID lang.inc:LANG.INC lang.ini:LANG.INI \
menu.dat:MENU.DAT \
panel.ini:PANEL.INI setup.dat:SETUP.DAT \
shell:SHELL table:TABLE \
vmode:VMODE 3d/3dsheart:3D/3DSHEART \
3d/cubeline:3D/CUBELINE 3d/gears:3D/GEARS 3d/house.3ds:3D/HOUSE.3DS \
demos/ak47.lif:DEMOS/AK47.LIF \
demos/relay.lif:DEMOS/RELAY.LIF demos/rpento.lif:DEMOS/RPENTO.LIF \
demos/use_mb:DEMOS/USE_MB \
File|Managers/eolite.ini:File|Managers/EOLITE.INI \
File|Managers/icons.ini:File|Managers/ICONS.INI \
File|Managers/kfar.ini:File|Managers/KFAR.INI \
File|Managers/kfm.ini:File|Managers/KFM.INI \
games/checkers:GAMES/CHECKERS \
games/reversi:GAMES/REVERSI games/rforces:GAMES/RFORCES \
games/xonix:GAMES/XONIX games/megamaze:GAMES/MEGAMAZE \
games/kosilka:GAMES/KOSILKA \
lib/msgbox.obj:LIB/MSGBOX.OBJ \
lib/pixlib.obj:LIB/PIXLIB.OBJ lib/sort.obj:LIB/SORT.OBJ \
media/ac97snd:MEDIA/AC97SND \
media/ImgF/ImgF:MEDIA/ImgF/ImgF \
media/ImgF/cEdg.obj:MEDIA/ImgF/cEdg.obj \
media/ImgF/dither.obj:MEDIA/ImgF/dither.obj \
media/ImgF/invSol.obj:MEDIA/ImgF/invSol.obj \
network/jmail:NETWORK/JMAIL network/zeroconf.ini:NETWORK/ZEROCONF.INI \
#end of list
# Generate skins list understandable by gnu make
Makefile.skins: $(REPOSITORY)/skins/authors.txt $(REPOSITORY)/data/generate_makefile_skins.sh
cut -f1 $< | $(SHELL) $(REPOSITORY)/data/generate_makefile_skins.sh > $@
include Makefile.skins
# Extra targets for the distribution kit and LiveCD image in the syntax of mkisofs
EXTRA:=\
emu/e80/e80=e80 \
emu/dosbox/=$(PROGS)/emulator/DosBox/dosbox \
emu/dosbox/=$(PROGS)/emulator/DosBox/dosbox.conf \
emu/dosbox/=$(PROGS)/emulator/DosBox/readme.txt \
/=distr_data/autorun.inf \
/=distr_data/KolibriOS_icon.ico \
Skins/=$(REPOSITORY)/skins/authors.txt \
Docs/config.txt=docs/CONFIG.TXT \
Docs/copying.txt=docs/COPYING.TXT \
Docs/hot_keys.txt=docs/HOT_KEYS.TXT \
Docs/install.txt=docs/INSTALL.TXT \
Docs/readme.txt=docs/README.TXT \
Docs/stack.txt=docs/STACK.TXT \
Docs/sysfuncs.txt=docs/SYSFUNCS.TXT \
HD_Load/9x2klbr/=distr_data/9x2klbr.exe \
HD_Load/9x2klbr/=../common/HD_load/9x2klbr/LDKLBR.VXD \
HD_Load/9x2klbr/=$(PROGS)/hd_load/9x2klbr/readme.txt \
HD_Load/MeOSLoad/=distr_data/MeOSload.com \
HD_Load/MeOSLoad/=$(PROGS)/hd_load/meosload/AUTOEXEC.BAT \
HD_Load/MeOSLoad/=$(PROGS)/hd_load/meosload/CONFIG.SYS \
HD_Load/MeOSLoad/=$(PROGS)/hd_load/meosload/L_readme.txt \
HD_Load/MeOSLoad/=$(PROGS)/hd_load/meosload/L_readme_Win.txt \
HD_Load/mtldr/=distr_data/mtldr \
HD_Load/mtldr/install.txt=$(PROGS)/hd_load/mtldr/install_eng.txt \
HD_Load/mtldr/=$(PROGS)/hd_load/mtldr/vista_install.bat \
HD_Load/mtldr/=$(PROGS)/hd_load/mtldr/vista_remove.bat \
HD_Load/=distr_data/mtldr_install.exe \
HD_Load/memdisk=../common/HD_load/memdisk \
HD_Load/USB_Boot/=distr_data/BOOT_F32.BIN \
HD_Load/USB_Boot/=distr_data/MTLD_F32 \
HD_Load/USB_Boot/=distr_data/inst.exe \
HD_Load/USB_Boot/=distr_data/setmbr.exe \
HD_Load/USB_Boot/readme.txt=$(PROGS)/hd_load/usb_boot/readme_eng.txt \
HD_Load/USB_boot_old/=$(PROGS)/hd_load/usb_boot_old/usb_boot.rtf \
HD_Load/USB_boot_old/=$(PROGS)/hd_load/usb_boot_old/usb_boot_866.txt \
HD_Load/USB_boot_old/=$(PROGS)/hd_load/usb_boot_old/usb_boot_1251.txt \
HD_Load/USB_boot_old/MeOSload.com=distr_data/MeOSload_for_usb_boot_old.com \
HD_Load/USB_boot_old/enable.exe=distr_data/enable_for_usb_boot_old.exe \
games/=../common/games \
games/fara=games/fara \
games/soko/soko=games/soko \
#end of list
DISTRIBUTION_EXTRA:=\
$(EXTRA) \
/readme.txt=distr_data/readme_distr.txt \
#end of list
MKISOFS_EXTRA:=\
$(EXTRA) \
/=distr_data/readme.txt \
#end of list
# Some macro for convenient work.
# Macros for replacing '|' to escaped space '\ '.
space:=\ #plus space
respace=$(subst |,$(space),$(1))
# Macro for selecting different parts of ':'-separated items.
binarypart=$(word 1,$(subst :, ,$(1)))
imagepart=$(word 2,$(subst :, ,$(1)))
sourcepart=$(word 3,$(subst :, ,$(1)))
parampart=$(word 4,$(subst :, ,$(1)))
# Get file names, possibly with spaces inside, from an item.
# Here $(f) is an item - in fact, macro argument.
fbinary=$(call respace,$(call binarypart,$(f)))
fimage=$(call respace,$(call imagepart,$(f)))
fsource=$(call respace,$(call sourcepart,$(f)))
fparam=$(call respace,$(call parampart,$(f)))
# Define targets for image file.
# Join all the lists above.
targets_full:=$(COPY_FILES) $(FASM_PROGRAMS) $(NASM_PROGRAMS) $(OTHER_FILES) $(CMM_PROGRAMS)
# For each item in the united list call fbinary.
targets:=$(foreach f,$(targets_full),$(fbinary))
# Define a command for copying a file inside the image.
# mcopy_command is a macro with two parameters,
# local file name $(1) and image file name $(2).
# Note that spaces in these have to be escaped with backslashes.
mcopy_command=mcopy -moi $(BUILD_DIR)/kolibri.img $(1) ::$(2)
# Specialize a previous command for an item $(f) in one of lists.
mcopy_item_command=$(call mcopy_command,$(fbinary),$(fimage))
# Join all $(mcopy_item_command) for all items,
# append newline after each item.
# The first newline character after "define" line and
# the last newline character before "endef" line get away
# with define/endef, so we make three newline characters,
# that is two empty lines, in order to get one in $(newline).
define newline
endef
mcopy_all_items:=$(foreach f,$(targets_full),$(mcopy_item_command)$(newline))
# add skins to MKISOFS_EXTRA and DISTRIBUTION_EXTRA
allskins:=$(foreach f,$(SKIN_SOURCES),$(call imagepart,$(f))=$(call binarypart,$(f)))
MKISOFS_EXTRA:=$(MKISOFS_EXTRA) $(allskins)
DISTRIBUTION_EXTRA:=$(DISTRIBUTION_EXTRA) $(allskins)
# dependencies of MKISOFS_EXTRA; we iterate through $(MKISOFS_EXTRA),
# substitute "=" with space, get the 2nd word and join all results
mkisofs_extra_targets:=$(call respace,$(foreach f,$(MKISOFS_EXTRA),$(word 2,$(subst =, ,$(f)))))
distribution_extra_targets:=$(call respace,$(foreach f,$(DISTRIBUTION_EXTRA),$(word 2,$(subst =, ,$(f)))))
# Define a command for creating a symlink for an item in DISTRIBUTION_EXTRA.
makelink_item_command=ln -sr $(word 2,$(subst =, ,$(f))) distribution_kit/$(word 1,$(subst =, ,$(f)))
# Join all $(makelink_command) for all items from DISTRIBUTION_EXTRA.
make_distribution_links:=$(foreach f,$(DISTRIBUTION_EXTRA),$(makelink_item_command)$(newline))
# Define a command for creating all directories for DISTRIBUTION_EXTRA.
# Note that $(sort) removes duplicate entries.
distribution_dirs:=$(sort $(foreach f,$(DISTRIBUTION_EXTRA),$(dir distribution_kit/$(word 1,$(subst =, ,$(f))))))
make_distribution_dirs:=$(foreach f,$(distribution_dirs),mkdir -p $(f)$(newline))
# The first goal: floppy image.
$(BUILD_DIR)/kolibri.img: $(BUILD_DIR)/.dir \
Makefile \
$(BUILD_DIR)/boot_fat12.bin \
$(targets)
# SYSXTREE
str=`date -u +"[auto-build %d %b %Y %R, r$(REV)]"`; \
echo -n $$str|dd of=kernel.mnt bs=1 seek=`expr 279 - length "$$str"` conv=notrunc 2>/dev/null
dd if=/dev/zero of=$(BUILD_DIR)/kolibri.img count=2880 bs=512 2>&1
mformat -f 1440 -i $(BUILD_DIR)/kolibri.img ::
dd if=$(BUILD_DIR)/boot_fat12.bin of=$(BUILD_DIR)/kolibri.img count=1 bs=512 conv=notrunc 2>&1
mmd -i $(BUILD_DIR)/kolibri.img ::3D
mmd -i $(BUILD_DIR)/kolibri.img ::DEMOS
mmd -i $(BUILD_DIR)/kolibri.img ::DEVELOP
mmd -i $(BUILD_DIR)/kolibri.img ::DEVELOP/INFO
mmd -i $(BUILD_DIR)/kolibri.img ::DRIVERS
mmd -i $(BUILD_DIR)/kolibri.img ::File\ Managers
mmd -i $(BUILD_DIR)/kolibri.img ::FONTS
mmd -i $(BUILD_DIR)/kolibri.img ::GAMES
mmd -i $(BUILD_DIR)/kolibri.img ::LIB
mmd -i $(BUILD_DIR)/kolibri.img ::MEDIA
mmd -i $(BUILD_DIR)/kolibri.img ::MEDIA/ImgF
mmd -i $(BUILD_DIR)/kolibri.img ::NETWORK
$(mcopy_all_items)
# The second goal: LiveCD image.
$(BUILD_DIR)/kolibri.iso: $(BUILD_DIR)/kolibri.img $(mkisofs_extra_targets)
mkisofs -U -J -pad -b kolibri.img -c boot.catalog -hide-joliet boot.catalog -graft-points \
-A "KolibriOS AutoBuilder" -p "CleverMouse" -publisher "KolibriOS Team" -V "KolibriOS r$(REV)" -sysid "KOLIBRI" \
-iso-level 3 -o $(BUILD_DIR)/kolibri.iso $(BUILD_DIR)/kolibri.img $(call respace,$(MKISOFS_EXTRA)) 2>&1
# The third goal: distribution list.
$(BUILD_DIR)/distr.lst: $(BUILD_DIR)/kolibri.img $(distribution_extra_targets)
rm -rf distribution_kit
$(call respace,$(make_distribution_dirs))
ln -sr $(BUILD_DIR)/kolibri.img distribution_kit/kolibri.img
$(call respace,$(make_distribution_links))
touch $(BUILD_DIR)/distr.lst
# Special targets to modify behaviour of make.
.DELETE_ON_ERROR:
.SUFFIXES: # delete all predefined rules
# The floppy bootsector.
$(BUILD_DIR)/boot_fat12.bin: $(KERNEL)/bootloader/boot_fat12.asm $(KERNEL)/bootloader/floppy1440.inc
fasm $(KERNEL)/bootloader/boot_fat12.asm $(BUILD_DIR)/boot_fat12.bin
$(BUILD_DIR)/.dir 3d/.dir demos/.dir develop/.dir develop/info/.dir drivers/.dir fonts/.dir \
games/.dir lib/.dir media/.dir network/.dir allskins/.dir distr_data/.dir .deps/.dir:
mkdir -p $(dir $@)
touch $@
develop/info/.dir: develop/.dir
File\ Managers/.dir:
mkdir -p "File Managers"
touch "File Managers/.dir"
# extra dependency for mtldr_install.exe
distr_data/mtldr_install.exe: mtldr_for_installer
# FASM black magic goes to Makefile.fasm.
include Makefile.fasm
# Similar for NASM.
include Makefile.nasm
# Similar for copying files.
include Makefile.copy
# Special rules for copying sysfuncs.txt - it isn't directly included in the image.
docpack: $(DOCDIR)SYSFUNCS.TXT
$(DOCDIR)SYSFUNCS.TXT: $(KERNEL)/docs/sysfuncs.txt
cp $(KERNEL)/docs/sysfuncs.txt $(DOCDIR)SYSFUNCS.TXT
# Similar for C--.
include Makefile.cmm
# Sorry, even black magic seems to be insufficient for
# auto-handling all subtle effects. So we just define
# command lines for compiling and linking, and
# maintain the list of sources and objects by hand.
include Makefile.msvc
# Rules for table
table: .obj.table/table.exe
$(msvc_final)
TABLE_OBJECTS:=.obj.table/calc.obj .obj.table/func.obj .obj.table/hello.obj \
.obj.table/KosFile.obj .obj.table/kosSyst.obj .obj.table/math2.obj \
.obj.table/mcsmemm.obj .obj.table/parser.obj
TABLE_H_FILES:=$(wildcard $(PROGS)/other/table/*.h)
.obj.table/table.exe: $(TABLE_OBJECTS)
$(msvc_link)
$(TABLE_OBJECTS): .obj.table/%.obj: $(PROGS)/other/table/%.cpp $(TABLE_H_FILES) Makefile.msvc | .obj.table
$(msvc_compile)
.obj.table:
mkdir -p .obj.table
# Rules for graph
graph: .obj.graph/graph.exe
$(msvc_final)
GRAPH_CPP_OBJECTS:=.obj.graph/func.obj .obj.graph/hello.obj .obj.graph/kolibri.obj \
.obj.graph/KosFile.obj .obj.graph/kosSyst.obj .obj.graph/math2.obj \
.obj.graph/mcsmemm.obj .obj.graph/parser.obj
GRAPH_C_OBJECTS:=.obj.graph/string.obj
GRAPH_H_FILES:=$(wildcard $(PROGS)/other/graph/*.h)
GRAPH_FASM_OBJECTS:=.obj.graph/memcpy.obj .obj.graph/memset.obj
.obj.graph/graph.exe: $(GRAPH_CPP_OBJECTS) $(GRAPH_C_OBJECTS) $(GRAPH_FASM_OBJECTS)
$(msvc_link)
$(GRAPH_CPP_OBJECTS): .obj.graph/%.obj: $(PROGS)/other/graph/%.cpp $(GRAPH_H_FILES) Makefile.msvc | .obj.graph
$(msvc_compile)
$(GRAPH_C_OBJECTS): .obj.graph/%.obj: $(PROGS)/other/graph/%.c $(GRAPH_H_FILES) Makefile.msvc | .obj.graph
$(msvc_compile)
$(GRAPH_FASM_OBJECTS): .obj.graph/%.obj: $(PROGS)/other/graph/%.asm Makefile.msvc | .obj.graph
fasm $< $@
.obj.graph:
mkdir -p .obj.graph
# Rules for kosilka
games/kosilka: .obj.kosilka/kosilka.exe
$(msvc_final)
KOSILKA_OBJECTS:=.obj.kosilka/kosilka.obj .obj.kosilka/KosFile.obj .obj.kosilka/kosSyst.obj .obj.kosilka/mcsmemm.obj
KOSILKA_H_FILES:=$(PROGS)/games/kosilka/*.h
.obj.kosilka/kosilka.exe: $(KOSILKA_OBJECTS)
$(msvc_link)
$(KOSILKA_OBJECTS): .obj.kosilka/%.obj: $(PROGS)/games/kosilka/%.cpp $(KOSILKA_H_FILES) Makefile.msvc | .obj.kosilka
$(msvc_compile)
.obj.kosilka:
mkdir -p .obj.kosilka
include Makefile.gcc
# Rules for shell
shell: .obj.shell/start.o .obj.shell/shell.o .obj.shell/kolibri.o .obj.shell/stdlib.o .obj.shell/string.o .obj.shell/ctype.o \
$(PROGS)/system/shell/kolibri.ld
$(call gcc_link,$(PROGS)/system/shell/kolibri.ld)
.obj.shell/shell.o: $(PROGS)/system/shell/shell.c \
$(PROGS)/system/shell/all.h \
$(PROGS)/system/shell/system/*.h \
$(PROGS)/system/shell/cmd/*.c \
$(PROGS)/system/shell/modules/*.c \
$(PROGS)/system/shell/locale/rus/globals.h \
Makefile.gcc | .obj.shell
$(gcc_compile)
.obj.shell/kolibri.o .obj.shell/stdlib.o .obj.shell/string.o .obj.shell/ctype.o: .obj.shell/%.o: \
$(PROGS)/system/shell/system/%.c $(PROGS)/system/shell/system/*.h \
Makefile.gcc | .obj.shell
$(gcc_compile)
win32-gcc -c -Os -o $@ $<
.obj.shell/start.o: $(PROGS)/system/shell/start.asm | .obj.shell
fasm $< $@
.obj.shell:
mkdir -p .obj.shell
# Rules for e80
E80DIR=$(PROGS)/emulator/e80/trunk
e80: .obj.e80/start.o .obj.e80/kolibri.o .obj.e80/stdlib.o .obj.e80/string.o .obj.e80/z80.o .obj.e80/e80.o
$(call gcc_link,$(E80DIR)/kolibri.ld)
.obj.e80/e80.o: $(E80DIR)/e80.c $(E80DIR)/48.h \
$(E80DIR)/system/*.h $(E80DIR)/system/msgbox.c \
$(E80DIR)/z80/z80.h Makefile.gcc | .obj.e80
$(gcc_compile)
.obj.e80/kolibri.o .obj.e80/stdlib.o .obj.e80/string.o: .obj.e80/%.o: \
$(E80DIR)/system/%.c $(E80DIR)/system/*.h Makefile.gcc | .obj.e80
$(gcc_compile)
.obj.e80/z80.o: $(E80DIR)/z80/z80.c $(E80DIR)/z80/*
$(gcc_compile)
.obj.e80/start.o: $(E80DIR)/asm_code.asm | .obj.e80
fasm $< $@
.obj.e80:
mkdir -p .obj.e80
# Rules for sdk/sound, used by media/ac97snd
SOUNDDIR=$(PROGS)/develop/sdk/trunk/sound/src
SOUND_OBJECTS:=$(patsubst $(SOUNDDIR)/%.asm,.sdk/%.obj,$(wildcard $(SOUNDDIR)/*.asm))
SOUND_INC_FILES:=$(wildcard $(SOUNDDIR)/*.inc)
.sdk/sound.lib: $(SOUND_OBJECTS)
win32-link /lib /out:$@ $^
$(SOUND_OBJECTS): .sdk/%.obj: $(SOUNDDIR)/%.asm $(SOUND_INC_FILES) | .sdk
fasm $< $@
.sdk:
mkdir -p .sdk
# Rules for media/ac97snd
AC97DIR=$(PROGS)/media/ac97snd
media/ac97snd: .obj.ac97snd/ac97snd.exe
$(msvc_final)
.obj.ac97snd/ac97snd.exe: .obj.ac97snd/ac97wav.obj .obj.ac97snd/crt.obj .obj.ac97snd/k_lib.obj \
.obj.ac97snd/mpg.lib .sdk/sound.lib .obj.ac97snd/ufmod.obj
$(msvc_link)
.obj.ac97snd/ac97wav.obj: $(AC97DIR)/ac97snd/ac97wav.c \
$(AC97DIR)/kolibri.h $(AC97DIR)/ac97snd/ac97wav.h $(AC97DIR)/mpg/mpg123.h \
$(AC97DIR)/sound.h $(AC97DIR)/ufmod-codec.h Makefile.msvc | .obj.ac97snd
$(msvc_compile)
.obj.ac97snd/crt.obj: $(AC97DIR)/ac97snd/crt.c $(AC97DIR)/ac97snd/crt.h Makefile.msvc | .obj.ac97snd
$(msvc_compile)
.obj.ac97snd/k_lib.obj: $(AC97DIR)/ac97snd/k_lib.asm $(AC97DIR)/ac97snd/proc32.inc | .obj.ac97snd
fasm $< $@
.obj.ac97snd/ufmod.obj: $(AC97DIR)/ufmod-config.asm | .obj.ac97snd
fasm $< $@ -s .deps/ac97snd-ufmod.fas
prepsrc .deps/ac97snd-ufmod.fas /dev/stdout | \
perl -n -e 's|\\|/|g;s| |\\ |g;push @a,$$1 if/^;include\\ \x27(.*?)\x27/;' \
-e 'END{$$a=join " \\\n ",@a;print "$@: $$a\n$$a:\n"}' > .deps/ac97snd-ufmod.Po
-include .deps/ac97snd-ufmod.Po
AC97SND_MPG_C_FILES:=$(wildcard $(AC97DIR)/mpg/*.c)
AC97SND_MPG_H_FILES:=$(wildcard $(AC97DIR)/mpg/*.h)
AC97SND_MPG_C_OBJECTS:=$(patsubst $(AC97DIR)/mpg/%.c,.obj.ac97snd/%.o,$(AC97SND_MPG_C_FILES))
.obj.ac97snd/mpg.lib: $(AC97SND_MPG_C_OBJECTS) .obj.ac97snd/pow.obj
win32-link /lib /ltcg /out:$@ $^
$(AC97SND_MPG_C_OBJECTS): .obj.ac97snd/%.o: $(AC97DIR)/mpg/%.c $(AC97SND_MPG_H_FILES) Makefile.msvc | .obj.ac97snd
$(msvc_compile)
.obj.ac97snd/pow.obj: $(AC97DIR)/mpg/pow.asm $(AC97DIR)/mpg/proc32.inc | .obj.ac97snd
fasm $< $@
.obj.ac97snd:
mkdir -p .obj.ac97snd
# Rules for atikms.dll
# Use Makefile from $(REPOSITORY)/drivers/ddk and $(REPOSITORY)/drivers/video/drm/radeon
# However, dependencies must be duplicated - I don't know how to avoid this
# without need to rebuild kolibri.img at every iteration...
# Note that we are going to write in the directory shared
# between all Makefiles, so we need locked operations.
drivers/atikms.dll: $(REPOSITORY)/drivers/video/drm/radeon/atikms.dll drivers/.dir
kpack --nologo $< $@
$(REPOSITORY)/drivers/video/drm/radeon/atikms.dll: $(REPOSITORY)/drivers/video/drm/radeon/Makefile.lto
flock $(REPOSITORY)/drivers/video/drm/radeon/.lock \
$(MAKE) CC=win32-gcc45 AS=win32-as LD=win32-ld AR=win32-ar FASM=fasm -C $(REPOSITORY)/drivers/video/drm/radeon -f Makefile.lto
$(REPOSITORY)/drivers/ddk/libddk.a: $(REPOSITORY)/drivers/ddk/Makefile
flock $(REPOSITORY)/drivers/ddk/.lock \
$(MAKE) CC=win32-gcc45 AS=win32-as LD=win32-ld AR=win32-ar FASM=fasm -C $(REPOSITORY)/drivers/ddk libddk.a
$(REPOSITORY)/drivers/ddk/libcore.a: $(REPOSITORY)/drivers/ddk/Makefile
flock $(REPOSITORY)/drivers/ddk/.lock \
$(MAKE) CC=win32-gcc45 AS=win32-as LD=win32-ld AR=win32-ar FASM=fasm -C $(REPOSITORY)/drivers/ddk libcore.a
# dependencies
$(REPOSITORY)/drivers/video/drm/radeon/atikms.dll: \
$(REPOSITORY)/drivers/video/drm/radeon/atikms.lds \
$(REPOSITORY)/drivers/ddk/libddk.a \
$(REPOSITORY)/drivers/ddk/libcore.a \
$(REPOSITORY)/drivers/video/drm/radeon/*.[Sch] \
$(REPOSITORY)/drivers/video/drm/radeon/*.asm \
$(REPOSITORY)/drivers/video/drm/radeon/Makefile \
$(REPOSITORY)/drivers/video/drm/radeon/firmware/*.bin \
$(REPOSITORY)/drivers/include/*.h \
$(REPOSITORY)/drivers/include/*/*.h \
$(REPOSITORY)/drivers/include/*/*/*.h \
$(REPOSITORY)/drivers/include/*/*/*/*.h
$(REPOSITORY)/drivers/ddk/libddk.a: \
$(REPOSITORY)/drivers/ddk/*/* \
$(REPOSITORY)/drivers/include/*.h \
$(REPOSITORY)/drivers/include/*/*.h \
$(REPOSITORY)/drivers/include/*/*/*.h \
$(REPOSITORY)/drivers/include/*/*/*/*.h
$(REPOSITORY)/drivers/ddk/libcore.a: \
$(REPOSITORY)/drivers/ddk/core.S

15
data/sp/Makefile.cmm Normal file
View File

@ -0,0 +1,15 @@
# This is similar to Makefile.fasm, look there for comments.
# No dependency tracking, so force dependencies on all files
# in dir/* and dir/*/*
# Also, we cannot set output file name and need to guess
# whether c-- has created .com file or no-extension file.
define cmm_meta_rule
$(1): $(2) Makefile.cmm $$(call respace,$$(addsuffix .dir,$(3))) \
$$(wildcard $$(dir $(2))*) $$(wildcard $$(dir $(2))*/*)
flock $$(dir $(2)).lock -c '\
(cd "$$(dir $(2))" && win32-c-- /D=AUTOBUILD /D=LANG_ENG $(5) $$(notdir $(2)) >&2) && \
if [ -e $$(basename $$<) ]; then f=$$(basename $$<); else f=$$(basename $$<).com; fi && \
kpack --nologo $$$$f "$$@" && rm $$$$f'
endef
$(foreach f,$(CMM_PROGRAMS),$(eval $(call cmm_meta_rule,$(fbinary),$(fsource),$(binarydir),$(progname),$(fparam))))

6
data/sp/Makefile.copy Normal file
View File

@ -0,0 +1,6 @@
# This is similar to Makefile.fasm, look there for comments.
define copy_meta_rule
$(1): $(2) Makefile.copy $$(call respace,$$(addsuffix .dir,$(3)))
cp $$< "$$@"
endef
$(foreach f,$(COPY_FILES),$(eval $(call copy_meta_rule,$(fbinary),$(fsource),$(binarydir))))

60
data/sp/Makefile.fasm Normal file
View File

@ -0,0 +1,60 @@
# This is not a independent Makefile; it is auxiliary file
# included from main Makefile.
# It depends on the following variables and macro:
# $(FASM_PROGRAMS) is a list of all programs to build with FASM rule;
# $(binarypart) is a macro which converts from $(1)=item of $(FASM_PROGRAMS)
# to space-escaped full name of binary, $(respace) unescapes spaces;
# $(fbinary) and $(fsource) gives space-unescaped full name of binary
# and source (respectively) of $(f)=item of $(FASM_PROGRAMS).
# Define the rule for all FASM programs.
# Yes, this looks like a black magic.
# But it is not so scary as it seems.
# First, we define "meta-rule" as a rule which is
# macro depending on $(fasmprog).
# Second, the construction foreach+eval creates
# usual rules, one for each $(fasmprog) in $(FASM_PROGRAMS).
# Note that meta-rule is double-expanded, first
# time as the arg of eval - it is the place where $(fasmprog)
# gets expanded - and second time as the rule;
# so all $ which are expected to expand at the second time should be escaped.
# And all $ which are expected to be expanded by the shell should be escaped
# twice, so they become $$$$.
# The arguments of macro fasm_meta_rule:
# $(1) = name of binary file,
# $(2) = name of main source file.
# $(3) = folder of binary file - without spaces.
# $(4) = name of program - without path and extension,
define fasm_meta_rule
$(1): $(2) Makefile.fasm .deps/.dir $$(call respace,$$(addsuffix .dir,$(3)))
tmpfile=`mktemp --tmpdir build.XXXXXXXX` && \
(fasm -m 65536 "$$<" "$$@" -s $$$$tmpfile && \
fasmdep -e $$$$tmpfile > .deps/$(4).Po && \
rm $$$$tmpfile) || (rm $$$$tmpfile; false)
kpack --nologo "$$@"
-include .deps/$(4).Po
endef
define fasm_nokpack_meta_rule
$(1): $(2) Makefile.fasm .deps/.dir $$(call respace,$$(addsuffix .dir,$(3)))
tmpfile=`mktemp --tmpdir build.XXXXXXXX` && \
(fasm -m 65536 "$$<" "$$@" -s $$$$tmpfile && \
fasmdep -e $$$$tmpfile > .deps/$(4).Po && \
rm $$$$tmpfile) || (rm $$$$tmpfile; false)
-include .deps/$(4).Po
endef
progname=$(call respace,$(basename $(notdir $(call binarypart,$(f)))))
binarydir=$(subst ./,,$(dir $(call binarypart,$(f))))
$(foreach f,$(FASM_PROGRAMS) $(FASM_PROGRAMS_CD) $(SKIN_SOURCES),$(eval $(call fasm_meta_rule,$(fbinary),$(fsource),$(binarydir),$(progname))))
$(foreach f,$(FASM_NOKPACK_PROGRAMS),$(eval $(call fasm_nokpack_meta_rule,$(fbinary),$(fsource),$(binarydir),$(progname))))
# Rule for the kernel differs: it uses kerpack instead of kpack.
kernel.mnt: $(KERNEL)/kernel.asm Makefile.fasm .deps/.dir
tmpfile=`mktemp --tmpdir build.XXXXXXXX` && \
(fasm -m 65536 "$<" "$@" -s $$tmpfile && \
fasmdep -e $$tmpfile > .deps/kernel.Po && \
rm $$tmpfile) || (rm $$tmpfile; false)
kerpack "$@"
-include .deps/kernel.Po

8
data/sp/Makefile.gcc Normal file
View File

@ -0,0 +1,8 @@
define gcc_compile
win32-gcc -c -Os -DAUTOBUILD -DLANG_ENG=1 -o $@ $<
endef
define gcc_link
win32-ld -nostdlib -T $(1) -o "$@" $^
win32-objcopy "$@" -O binary
kpack --nologo "$@"
endef

13
data/sp/Makefile.msvc Normal file
View File

@ -0,0 +1,13 @@
define msvc_compile
win32-cl /c /O2 /Os /Oy /GF /GS- /GR- /EHs-c- /fp:fast /GL /QIfist /Gr /DAUTOBUILD /Fo$@ Z:$< >&2
endef
define msvc_link
win32-link /section:.bss,E /fixed:no /subsystem:native \
/merge:.data=.text /merge:.rdata=.text /merge:.1seg=.text \
/entry:crtStartUp /out:$@ /ltcg /nodefaultlib \
$(addprefix Z:,$^) >&2
endef
define msvc_final
EXENAME=$< fasm doexe2.asm "$@"
kpack --nologo "$@"
endef

16
data/sp/Makefile.nasm Normal file
View File

@ -0,0 +1,16 @@
# This is similar to Makefile.fasm, look there for comments.
define nasm_meta_rule
.deps/$(4).Po: $(2) Makefile.nasm .deps/.dir
nasm -I$$(dir $(2)) -o "$(1)" -M $$< > .deps/$(4).Tpo 2>/dev/null; \
if [ $$$$? -eq 0 ]; then perl -ln -e 'next unless $$$$_;' \
-e 'm/((.*): )?(.*)/;$$$$a=$$$$2 if $$$$2;push @b,$$$$3;' \
-e 'END{$$$$b=join "\n",@b;print "$$$$a .deps/$(4).Po: $$$$b\n$$$$b:"}' \
.deps/$(4).Tpo > .deps/$(4).Po; fi
rm -f .deps/$(4).Tpo
$(1): $(2) Makefile.nasm $$(call respace,$$(addsuffix .dir,$(3)))
nasm -I$$(dir $(2)) -o "$$@" $$<
kpack --nologo "$$@"
-include .deps/$(4).Po
endef
$(foreach f,$(NASM_PROGRAMS),$(eval $(call nasm_meta_rule,$(fbinary),$(fsource),$(binarydir),$(progname))))

18
data/sp/autorun.dat Normal file
View File

@ -0,0 +1,18 @@
# Syntaxis is: <Program_Name> <Parameter(s)> <Delay_Time>
# Use "parameter value" for parameters with spaces. Use "" if no parameter is required.
# Delay time means how much the system should wait, before running the next line. It is measured in 1/100 seconds.
# If delay is negative, wait for termination of the spawned process. Otherwise, simply wait
#
#/RD/1/CROPFLAT "XS800 YS480" 1 # set limits of screen
#/RD/1/COMMOUSE "" 1 # COM mice detector
#/RD/1/DEVELOP/BOARD "" 1 # Load DEBUG board
#/RD/1/refrscrn "" 1 # Refresh screen
/RD/1/NETWORK/ZEROCONF "" 1 # Network configuration
/RD/1/MEDIA/PALITRA "H 007DCEDF 003C427F" 1 #SET BG
/RD/1/@PANEL "" 1 # Start panel
/RD/1/SETUP BOOT 1 # Load device settings
/RD/1/ICON BOOT 1 # Multithread icon
/RD/1/@RB "" 1 # Desktop right-click menu
/RD/1/@SS ASSM 1 # Screensaver
/RD/1/TMPDISK A1 1 # Add virtual RAM disk /tmp1/1
### Hello, ASM World! ###

BIN
data/sp/background.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 365 B

BIN
data/sp/default.skn Normal file

Binary file not shown.

71
data/sp/demos/ak47.lif Normal file
View File

@ -0,0 +1,71 @@
#Life 1.05
#D AK47, a gun at 47 gens/shot.
#D The AK47 reaction (middle)
#D by Richard Schroeppel was
#D known for years before
#D stabilizers were found by
#D Paul Callahan in July 1994.
#D See also P94S.
#N
#P -23 -11
...**
..*..*
.*.*..*
.*.*...*
**.*.******
...*..*.*
...***.*..*
.**...*.*.*
*..*.**.*
.**...*.**
...**....*
...*.*...*
**.*.....**
.*.*.**
.*.*..*
..*..*
...**
#P -6 -12
**.......*
**.....***
......*
......**
.
...***
..*...*
.*.....*
.*.....*
.*.....*
..*...*
...***
.
.
.
.
.
.
.
.
.
....**
.....*
..***.....**
..*.......**
#P 12 -5
......**
.....*..*
....*.**.*
.*...*.*.*
.*...*.*.**
*......*
..*..***
..*.....**
..*.**.*..*
.**.*...**
**...***
.**....*
**..**.*.**
....**.*.*
....*..*.*
.....*..*
......**

406
data/sp/demos/barge.lif Normal file
View File

@ -0,0 +1,406 @@
#Life 1.05
#D c/3 spaceship extensible in 2 dimensions
#D Hartmut Holzwart, David Bell
#N
#P -32 -50
...*
..*.*
.**
..*
.*.*
.*
*
*.*
*.*
.****
...*.*
...*.*
..*
..***
*
***
.***.*
...*
...*
...**
#P -29 -29
**
*..*
*.**
.***
.**
...*
.**
..*.*
...*
.
...*
..*.*
.**
...*
.**
.***
*.**
*..*
**
.
**
*..*
*.**
.***
.**
...*
.**
..*.*
...*
.
...*
..*.*
.**
...*
.**
.***
*.**
*..*
**
.
**
*..*
*.**
.***
.**
...*
.**
..*.*
...*
.
...*
..*.*
.**
...*
.**
.***
*.**
*..*
**
#P -32 31
...**
...*
...*
.***.*
***
*
..***
..*
...*.*
...*.*
.****
*.*
*.*
*
.*
.*.*
..*
.**
..*.*
...*
#P -24 -29
..**.*.*.*
.*...*..**
*.....*
.*......*.*
...**..**.*
..*...*
..*.***...*
..*
...********
.
...********
..*
..*.***...*
..*...*
...**..**.*
.*......*.*
*.....*
.*...*..**
..**.*.*.*
.
..**.*.*.*
.*...*..**
*.....*
.*......*.*
...**..**.*
..*...*
..*.***...*
..*
...********
.
...********
..*
..*.***...*
..*...*
...**..**.*
.*......*.*
*.....*
.*...*..**
..**.*.*.*
.
..**.*.*.*
.*...*..**
*.....*
.*......*.*
...**..**.*
..*...*
..*.***...*
..*
...********
.
...********
..*
..*.***...*
..*...*
...**..**.*
.*......*.*
*.....*
.*...*..**
..**.*.*.*
#P -12 -29
..**.*.*.*
.*...*..**
*.....*
.*......*.*
...**..**.*
..*...*
..*.***...*
..*
...********
.
...********
..*
..*.***...*
..*...*
...**..**.*
.*......*.*
*.....*
.*...*..**
..**.*.*.*
.
..**.*.*.*
.*...*..**
*.....*
.*......*.*
...**..**.*
..*...*
..*.***...*
..*
...********
.
...********
..*
..*.***...*
..*...*
...**..**.*
.*......*.*
*.....*
.*...*..**
..**.*.*.*
.
..**.*.*.*
.*...*..**
*.....*
.*......*.*
...**..**.*
..*...*
..*.***...*
..*
...********
.
...********
..*
..*.***...*
..*...*
...**..**.*
.*......*.*
*.....*
.*...*..**
..**.*.*.*
#P 0 -29
..**.*.*.*
.*...*..**
*.....*
.*......*.*
...**..**.*
..*...*
..*.***...*
..*
...********
.
...********
..*
..*.***...*
..*...*
...**..**.*
.*......*.*
*.....*
.*...*..**
..**.*.*.*
.
..**.*.*.*
.*...*..**
*.....*
.*......*.*
...**..**.*
..*...*
..*.***...*
..*
...********
.
...********
..*
..*.***...*
..*...*
...**..**.*
.*......*.*
*.....*
.*...*..**
..**.*.*.*
.
..**.*.*.*
.*...*..**
*.....*
.*......*.*
...**..**.*
..*...*
..*.***...*
..*
...********
.
...********
..*
..*.***...*
..*...*
...**..**.*
.*......*.*
*.....*
.*...*..**
..**.*.*.*
#P 12 -29
..**.*.*.*
.*...*..**
*.....*
.*......*.*
...**..**.*
..*...*
..*.***...*
..*
...********
.
...********
..*
..*.***...*
..*...*
...**..**.*
.*......*.*
*.....*
.*...*..**
..**.*.*.*
.
..**.*.*.*
.*...*..**
*.....*
.*......*.*
...**..**.*
..*...*
..*.***...*
..*
...********
.
...********
..*
..*.***...*
..*...*
...**..**.*
.*......*.*
*.....*
.*...*..**
..**.*.*.*
.
..**.*.*.*
.*...*..**
*.....*
.*......*.*
...**..**.*
..*...*
..*.***...*
..*
...********
.
...********
..*
..*.***...*
..*...*
...**..**.*
.*......*.*
*.....*
.*...*..**
..**.*.*.*
#P 24 -29
..**.*.*.*
.*...*..**
*.....*
.*......*.*
...**..**.*
..*...*
..*.***...*
..*
...********
.
...********
..*
..*.***...*
..*...*
...**..**.*
.*......*.*
*.....*
.*...*..**
..**.*.*.*
.
..**.*.*.*
.*...*..**
*.....*
.*......*.*
...**..**.*
..*...*
..*.***...*
..*
...********
.
...********
..*
..*.***...*
..*...*
...**..**.*
.*......*.*
*.....*
.*...*..**
..**.*.*.*
.
..**.*.*.*
.*...*..**
*.....*
.*......*.*
...**..**.*
..*...*
..*.***...*
..*
...********
.
...********
..*
..*.***...*
..*...*
...**..**.*
.*......*.*
*.....*
.*...*..**
..**.*.*.*

BIN
data/sp/demos/life2 Normal file

Binary file not shown.

12
data/sp/demos/relay.lif Normal file
View File

@ -0,0 +1,12 @@
#Life 1.05
#D Relay between two pentadecathlons
#D Well known.
#N
#P -17 -2
**********
#P -1 0
*
.**
**
#P 8 2
**********

13
data/sp/demos/rpento.lif Normal file
View File

@ -0,0 +1,13 @@
#Life 1.05
#D r-pentomino
#D A small, vigorous, common pattern.
#D
#D When the Game of Life was first
#D introduced around 1970, this was
#D proposed as the smallest pattern
#D for which the outcome was unknown.
#N
#P 3 3
.**
**
.*

BIN
data/sp/demos/use_mb Normal file

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

View File

@ -0,0 +1,3 @@
[AutoRun]
icon=KolibriOS_icon.ico
shellexecute=readme.txt

View File

@ -0,0 +1,12 @@
Kolibri OS 0.7.7.0+ night build, LiveCD-version.
This is a bootable CD-Rom. To see the system in action, reboot and point to
BIOS either in boot menu (if it can be called) or in settings booting from CD.
Changes and revisions compared with Kolibri 0.7.7.0 are described in file
readme.txt, which is placed in Docs folder. And also in OS in the application
docpak.
Instructions for install to other information mediums and minimal system
requirements can be found in file install.txt.
Instructions for configuring can be found in file config.txt.

View File

@ -0,0 +1,9 @@
Kolibri OS 0.7.7.0+ night build.
Changes and revisions compared with Kolibri 0.7.7.0 are described in file
readme.txt, which is placed in Docs folder. And also in OS in the application
docpak.
Instructions for install to other information mediums and minimal system
requirements can be found in file install.txt.
Instructions for configuring can be found in file config.txt.

98
data/sp/docs/CONFIG.TXT Normal file
View File

@ -0,0 +1,98 @@
KolibriOS allows some configures for user requirements. This file describes
such settings.
For this it is required to change files on ramdisk. If you boot from floppy,
there is no problem - change files on floppy. If you use floppy image
kolibri.img - either use program which can work with images (for example,
WinImage or DiskExplorer) or make changes from Kolibri and do not forget to
save ramdisk (with the application rdsave).
1. Desktop background.
a) Replace in the file autorun.dat (it is text file) the parameter for
the program kiv ("\S__background.jpg") the name of file to the full
Kolibri-path to JPEG-, BMP-, GIF- or PNG-image which you like. It will be
new background. background.jpg now can be deleted.
b) Replace in the file autorun.dat "/RD/1/KIV \S__background.jpg" to
"/rd/1/PIC4" (spaces are ignored by the loader program). You can delete
BACKGROUND.JPG. New background will be nice texture.
For programmers: you can change texture and color, for this in file
pic4.asm from distributive sources change:
* to change texture: value of variable usearray (string 585)
from ptarray to any of ptarray2,ptarray3, ..., ptarray9.
* to change color: in procedure check_parameters find string with
the appropriate comment (string 127) and add to 0x40000 1 or 2.
After changes recompile pic4, by request pack with kpack (in
distributive is so), inject to ramdisk.
c) Two previous points sets background for a long time (until next
reinstall). It is possible also after Kolibri boot to set background
until next reboot in programs kiv, iconedit, pic4, tinyfrac.
2. Configure system menu.
Data for system menu are placed in text file menu.dat. It can be edited
in any editor keeping format. If you use Kolibri TINYPAD, you
must disable option "optimal fill on saving".
3. Configure autorun.
The list of programs, loading when system boots, is read out from
text file autorun.dat. It can be changed in any editor keeping format.
For example, you can add as first item start of application startmus
(delay 1, without arguments) to hear distinctive melody each time at
booting.
For programmers: you can change melody, for this edit file startmus.asm
from distributive sources: there you can choose melody from three existing
or add your own - format of melody is explained in documentation on
subfunction 55 of function 55.
4. Icons list.
The list of desktop icons is kept in text file icons.dat, but to
change the list it is recommended to use icon manager icon (which can
be run from desktop context menu). Images for icons are kept in file
iconstrp.gif, which must be edited by external graphics editor.
5. Skin.
The skin can be viewed and changed dynamically with the application
desktop; after you choose most likely for you skin, you can make it
permanent by replace file default.skn, from which system loads skin at
booting. Standard skin is included to ramdisk, some alternative skins can
be found in distributive in the folder Skins. You can also create your own
skin, for detailed comments look at distributive sources.
6. Sound.
Driver sound.obj, which is located on ramdisk by default, is intended for
south bridges Intel ICH, ICH0, ICH2, ICH3, ICH4, ICH5, ICH6, ICH7 and
NVidia NForce, NForce 2, NForce 3, NForce 4. If you have SB16-compatible
sound card, remove sound.obj and rename sb16.obj from the folder 'drivers'
to sound.obj. If you have controller sis7012, rename sis.obj from root
folder in distributive to sound.obj and copy it to floppy or image to
the folder 'drivers' (replacing old). The driver fm801.obj can be useful
for ForceMedia FM801 controller, the driver vt8235.obj - for VIA chipsets,
the driver emu10k1x.obj - for EMU10K1X audioprocessor, all are intended to
similar with previous case use: copy it to the folder 'drivers' as
'sound.obj', replacing the old file.
7. Bus Disconnect.
The application KBD (Kolibri Bus Disconnect) allows to disconnect processor
bus in order to decrease its temperature, a side effect is noise in AC97
codecs. The application can be loaded automatically at system boot, to do
this add to autorun (file autorun.dat, see 3) a line of the form
"/RD/1/KBD BOOT 20 # Enable Bus Disconnect for AMD K7 processors".
8. Network settings.
Initial network configuration is read at boot from the ini file
/rd/1/network/zeroconf.ini. You can set automatic detection with DHCP
("type=zeroconf") or fixed IP addresses ("type=static").
9. Configuration of videomode for ATI videocards.
The driver for ATI can set required screen resolution with refresh rate
at system startup, if they are supported. The list of supported modes
can be obtained with the utility VMODE, it allows also manual mode setting.
To set the mode at startup one must pass to the loader ATIKMS, described
in AUTORUN.DAT, the argument -m<width>x<height>x<refresh>, e.g.
/RD/1/DRIVERS/ATIKMS -m1024x768x60 -1
Pay attention that the format of autorun.dat does not allow spaces in
command line, so there must be no other arguments.
Also one can disable ability to change videomodes and all linked actions
at startup by passing the argument -n. The driver will still support
hardware cursor. To fully disable the driver, one can simply delete
the line with ATIKMS from autorun.dat.

347
data/sp/docs/COPYING.TXT Normal file
View File

@ -0,0 +1,347 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
675 Mass Ave, Cambridge, MA 02139, USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
Appendix: How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) 19yy <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) 19yy name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
Public License instead of this License.

48
data/sp/docs/FARA.TXT Normal file
View File

@ -0,0 +1,48 @@
PHARAOH TOMB
The purpose of the game is to open passage by moving hieroglyphs on entrance
in the next room of the pharaoh tomb (8X8). You can exchange two hieroglyphs
located near each other on vertical or horizontal if after such transposition
a combination of three or more identical pictures abreast is generated. Such
lines are disappeared immediately, and free place is filled by hieroglyphs
which "falled" from top. Missing hieroglyphs are generated randomly. For
disappearing hieroglyphs points are added. For combination of hieroglyphs
number of points is calculated by formula L+(L+1)^(N-3), but no more than
20*L*N, where N is number of hieroglyphs in combination, and L is level number.
To pass to the next level it is required to remove certain number of
hieroglyphs (different on each level). From below of panel with hieroglyphs is
located field which indicates how many is passed and how many is remained.
1st level - 500
2nd level - 450
3rd level - 400
4th level - 350
5th level - 300
6th level and further - 50*(L+1)
On the first level combinations are composed from 6 states of hieroglyphs.
With each new level one new hieroglyph is involved, but no more than 10
(i.e. starting from 5th level and further 10 different hieroglyphs are
involved, not counting special ones).
Starting from 2nd level for each combination from 4 and more hieroglyphs,
and also for passing each fourth of level the player gets "free" hieroglyph -
it is usual hieroglyph (generated randomly), which keeps "in pocket" of player
and can be necessarily inserted by player to any place and replace thus
located there hieroglyph.
Starting from 3rd level for each combination from 5 and more hieroglyphs,
and also for passing each third of level the player gets "universal key",
which matches to any combination of hieroglyphs and to several different
combination simultaneously.
Starting from 4th level for each combination from 6 and more hieroglyphs,
and also for passing a half of level the player gets "space crooker",
which allows, when is used, to make 3 moves (not obligatory successive) at
diagonal.
The player can not have simultaneously more than 1 extra hieroglyph of each
type (1 usual, 1 joker and 1 crooker).
The game is ended, if the player can not make any combination with existing
hieroglyphs.

4723
data/sp/docs/FASM.TXT Normal file

File diff suppressed because it is too large Load Diff

16
data/sp/docs/HOT_KEYS.TXT Normal file
View File

@ -0,0 +1,16 @@
The following "hot" shortcut keys are used in the system:
(Indexing on time of appearance in the system)
1) Ctrl + Alt + Del start of the application CPU (the manager of processes), is a sole combination maintained on a level of a kernel, all rest "hot" key is realized at the expense of the application @PANEL.
2) Ctrl + Shift - switching of keyboard layout.
3) Win - start of the application MENU.
4) Alt + Ctrl + F12 - start of the application END.
5) Alt + F4 - terminate the active application.
6) Alt + Tab - switch to the next (in the window stack) window
7) Alt + Shift + Tab - switch to the previous (in the window stack) window
8) Alt + Shift + NumLock - start of the application MOUSEMUL, which emulates mouse with numpad, when NumLock is on.
9) Alt + 1...7 - fast switching to the selected keyboard layout (even if absent for Ctrl + Shift)
10) Win + D - minimize/restore all windows (cleaning of desktop)
11) Win + R - start of the application RUN
12) Alt + Ctrl + ArrowLeft - to scroll back a list of the taskbar
13) Alt + Ctrl + ArrowRight - to scroll forward a list of the taskbar
14) PrintScreen - start of the application SCRSHOOT. Just do a screen shot and the user is offered to specify (with OpenDialog) where to save the BMP image.

25
data/sp/docs/INI.TXT Normal file
View File

@ -0,0 +1,25 @@
Ini-files are text files of special contents:
[name of first section]
Key1=value1
Key2=value2
;comment
[name of second section]
Key3=value3
All lines beginning with ';' are considered as comments and ignored.
Keyboard shortcuts are described as follows:
any number of modificators Ctrl/Alt/Shift/LCtrl/LAlt/LShift/RCtrl/RAlt/RShift,
followed by latin letter, digit or key name. The following keys have a name:
F1 - F12
Home; End; PgUp; PgDn; Ins, equivalently, Insert; Del, equivalently, Delete;
Tab; Plus; Esc; Enter; Backspace; Space;
Left (left arrow); Right (right arrow); Up (up arrow); Down (down arrow).
The string for shortcut is case-insensitive. Parts of the string
can be written without delimiters or with '+' between parts. Examples:
Ctrl+Alt+Backspace
RCtrl+RShift
ShiftA
f10
shiftalt5

109
data/sp/docs/INSTALL.TXT Normal file
View File

@ -0,0 +1,109 @@
Minimal system requirements for Kolibri 0.7.x.0:
* CPU: Pentium, AMD 5x86 or Cyrix 5x86 without MMX with frequency 100 MHz
* RAM: 8 Mb
* Videocard: supporting VGA (640*480*16 mode) or Vesa
* Keyboard: AT
* Mouse: COM or PS/2
The system can boot from any of following devices:
- Floppy 3.5
- IDE HDD LBA
- CD/DVD
- USB Flash
I. Install to floppy.
1) Insert clean floppy without bad sectors to drive.
2) Write to it kolibri.img image with any available methods:
a) (if you have already loaded Kolibri by any method) run the program
rdsave and select the variant corresponding to floppy
b) (for DOS and Windows) run subjoined install.bat
c) with program WinImage or its analogue (e.g. DiskExplorer)
d) (for Linux) set "executable" attribute to subjoined script install.sh
and run it
Now you can boot from floppy (keep it in drive, reboot, set in BIOS option
of floppy booting).
II. Install to hard disk.
There exists several loaders from hard disk. All are oriented on DOS and
Windows users. Also standard Linux-loader GRUB can be used. All methods work
with file kolibri.img. If you already have old version of Kolibri installed,
simply replace kolibri.img to new. If you have booted from LiveCD, which
does not contain the file kolibri.img, Kolibri can create it independently,
to do this, run the program rdsave, enter the file name for saving and select
the corresponding variant. Of course, in this case Kolibri must be able to
write to file system of selected partitions, currently this means that
only FAT volumes are ok.
1) Most of all features has the loader mtldr (author - Diamond) - works with
DOS/Win95/98/NT/2k/XP/Vista, supports FAT32 and NTFS, has installator, can
be installed to any folder on disk.
To install, simply run file HD_load\mtldr_install.exe and select image file.
Apropos, by this way you can install several images. There is also
variant of install by hand - for those who want to know what installator
does: directions in HD_load\mtldr
2) There is also the loader MeOSLoad (author - Trans, expanded by Mario79) -
works with DOS/Win95/98, supports FAT32, it is placed with the instruction
to the folder HD_load\MeOSLoad.
3) Moreover, there exist a program which allow load Kolibri directly from
Windows 95/98/Me (of course, unloading it) - 9x2klbr (author - Diamond),
supports FAT32 and NTFS.
4) Usage of the loader GRUB. The way of using file 'memdisk' to load Kolibri
has been described by derPENGUIN on english forum
(http://meos32.7.forumer.com/viewtopic.php?t=110).
The suggested method (described by Alver) is based on that description
and was checked on grub-0.97-19mdv2007.0.
1. Kolibri can write only on FAT filesystem, so if image file is placed not
to FAT volume, the system can not save settings. Therefore if you have
FAT32 partition, place 'kolibri.img' there.
2. This method requires the file 'memdisk' from the package 'syslinux'
(http://syslinux.zytor.com). You may install the whole package or only
extract the mentioned file. Only the file 'memdisk' is needed. (After
package install it will be in '/usr/lib/syslinux').
3. Place the file 'memdisk' to the folder 'boot' or to the partition used
for Kolibri.
4. Add to the configuration file 'menu.lst' ('grub.conf') lines as follow:
title KolibriOS
kernel (hd[Hard disk number],[partition number])[path]/memdisk
initrd (hd[Hard disk number],[partition number])[path]/kolibri.img
(Remember that numeration of partitions in GRUB starts from 0.)
Example:
title KolibriOS
kernel (hd0,0)/boot/memdisk
initrd (hd0,3)/kolibri/kolibri.img
The initial variant was:
label KolibriOS
root (hd[Hard disk number],[partition number])
kernel [path]/memdisk
initrd [path]/kolibri.img
Here 'memdisk' and 'kolibri.img' must be placed on the same partition.
Example:
label KolibriOS
root (hd0,0)
kernel /boot/memdisk
initrd /boot/kolibri.img
This example is the variant described on english forum, with install to
Linux boot partition (of course, without FAT partition).
5) The previous method could not work as is in GRUB2 (tested by Apocalypse_dn),
the commands "linux16" and "initrd16" should be used instead of "kernel"
and "initrd" (suggested by vkos).
III. Install to USB-Flash-drive.
The special loader for FAT32-volumes has been written, it and its installer
to flash drive can be found in the folder HD_load\USB_Boot.
For not-FAT32 drives you may use article placed in the folder
HD_load\USB_Boot_old.
IV. Install to CD and DVD.
There exists special LiveCD-version of Kolibri, which contains
in addition to standard things some "heavy" (in Kolibri standards) programs:
the ported emulator DosBox, games "Fixed Rate Pig" and "sokoban".
You can also create bootable CD or DVD on the base of kolibri.img, adding
anything what you want, in the mode of floppy emulation.
The appropriate actions are determined by used CD/DVD write program
(focus on words such as "boot floppy emulation").

View File

@ -0,0 +1,94 @@
Control keys in KFar.
For panels:
arrows, Home, End - move cursor on active panel
Tab - change active panel
Enter - enter to folder or run program under cursor
F3 - view file under cursor
F5 - copy selected items or item under cursor to another panel
Shift+F5 - copy selected items or item under cursor to the same panel
(of course, you must specify another file name)
F7 - create folder
F8 - delete selected elements or element under cursor
F10 - exit
Alt+F1/Alt+F2 - change drive on left/right panel
Alt+F9 - resize window to maximum possible size and restore initial size
Ctrl+F3 - sort file/folders on active panel by name
Ctrl+F4 - sort by extension
Ctrl+F5 - sort by date/time of last modification
Ctrl+F6 - sort by size
Ctrl+F7 - don't sort (display in order as on disk)
Ctrl+F8 - sort by date/time of creation
Ctrl+F9 - sort by date/time of last access
F12 - display screens menu
Ctrl+R - refresh active panel
Menu - display context menu for file under cursor
LeftCtrl+1/2/3/4 - select panel mode (brief/medium/full/wide)
RightCtrl+0..9 - go to folder specified in the section [FolderShortcuts]
of ini-file as Shortcut0..9 accordingly
Insert - select/deselect current element
Grey[+] - select files and folders with mask
Grey[-] - deselect files and folders with mask
The mask is like "*.asm,*.inc|template.asm" (which selects all files with
extensions ASM and INC except for template.asm): one or more elementary
including masks with standard mean of '*' and '?', delimited by ',' or ';',
optionally followed by '|' and one or more elementary excluding masks.
The mask "*.*" specifies all files having '.' in name (i.e. files with
any non-empty extension); to specify all files use "*".
Grey[*] - invert selection
Alt+<letter or digit> - position cursor on name of file/folder,
beginning from selected letter or digit; it shows fast find window,
in which one can enter subsequent symbols of file/folder name to more precise
selection, and also Ctrl+Enter/Shift+Ctrl+Enter to move to the next/previous
panel item, whose name starts with specified letters
For viewer:
Esc = F3 = F10 = Numpad5 - exit
Down - line down
PgDn - page down
Up - line up
PgUp - page up
Home - to begin of file
End - to end of file
Left - character left
Right - character right
Ctrl+Left - in Text-mode 20 characters left;
in Hex-mode 1 byte left
Ctrl+Right - in Text-mode 20 characters right;
in Hex-mode 1 byte right
Ctrl+Shift+Left - start of lines on the screen
Ctrl+Shift+Right - end of lines on the screen
F2 - toggle line wrap
F4 - toggle Text <-> Hex mode
F8 - toggle encoding cp866 (DOS) <-> cp1251 (Win)
Shift+F8 - encoding tables menu
F12 - display screens menu
F7 - search a string from the current position in the file
(the string and settings are set in the following dialog)
Shift+F7 - continue to search a string
(use the string and settings from last search by F7)
Alt+F9 - resize window to maximum possible size and restore initial size
For editor:
Esc = F10 - exit; if the file was modified, the question about save necessity
will follow
Shift+F10 - save and exit
F2 - save the file
Down - move cursor down to one line
PgDn - move cursor down to one page
Up - move cursor up to one line
PgUp - move cursor up to one page
Left - move cursor left to one symbol
Right - move cursor right to one symbol
Home - move cursor to the beginning of the current line
End - move cursor to the end of the current line
Backspace - delete the symbol before the cursor
Del - delete the symbol under the cursor
Ins - toggle insert/replace mode when entering symbols
F12 - display screens menu
Alt+F9 - resize window to maximum possible size and restore initial size
F7 - search a string starting from the position next to the cursor
(the string and search settings are prompted in the following dialog)
Shift+F7 - continue to search a string (same as F7 without settings dialog)
diamond
mailto:diamondz@land.ru

212
data/sp/docs/MTDBG.TXT Normal file
View File

@ -0,0 +1,212 @@
Introduction.
mtdbg is a debugger for Kolibri operating system. This documentation describes
debugger features and work with it. Feel free to ask on our board (mostly
in Russian, but has an English forum) -- board.kolibrios.org.
General description.
In each moment of time mtdbg can debug only one program. I will call it
loaded program. If no program is loaded, overwhelming majority of debugging
actions is disabled.
mtdbg is controlled by command line, entering from keyboard. Command line
is drawn in the bottom part of debugger window. Debugger handles standard
input keys Backspace,Delete,Home,End,left/right arrows.
Commands are case-insensitive. Delimiter is arbitrary nonzero number of spaces.
At any moment mtdbg can be terminated by command "quit" (without arguments).
You can also simply press to close button in the right upper corner of window.
When debugger is started without command string parameters, no program is
loaded. Also mtdbg can be started with command string, in this case it tries
to load program with the name pointed to in first parameter in command string
and parameters pointed to following (if present).
If no program is loaded, you can load a program with the command
load <full name of executable file> [<parameters>]
Examples:
load /rd/1/example
LOAD /rd/1/aclock w200 h200
LoaD /hd0/1/menuetos/dosbox/dosbox
All that stays after first space after executable file name, is exactly passed
to program as command string.
The command "load" reports result in the messages window (a little higher
than command line window). If program was loaded successfully, there will
be the appropriate message; otherwise the message will contain error reason.
Most probable error is "file not found" if wrong file name is given.
The debugger can load files with information on symbols in the program
(labels, global variables) - text files, each line of which has format
0x<hex_value_of_addr> <name>
(lines, which do not have such format, are ignored). Such file can be created
by hand or generated automatically by fasm. Evident load can be done by command
load-symbols <full name of symbols file>
Furthermore, when the debugger executes the command "load", it checks for
presence of file with name as of loading binary and extension '.dbg'
(/rd/1/example.dbg in the first of examples above), and if such file exists,
the debugger loads it automatically (with the message "Symbols loaded", if
all is OK).
It can happen so that loaded program is packed. General principle of
program packing is following: at first input file is packed (by some
pack algorithm), then is appended small code which gets control at program
start, unpacks input code in the memory and then passes control to it.
If program is packed, it "real" code is not visible and for debugging it is
needed previously to pass through unpacker code.
mtdbg determines most of existing packers (mxp,mxp_lzo,mxp_nrv,mtappack)
and in this case suggests to automatically go to "real" code. It is recommended
to accept (press 'y' or <Enter>), but you can refuse too. At refusal and if
program is packed by something unknown the command "unpack" (without arguments)
can be used. Call it only in the case when you are sure that program is packed
and control has not already went to main code! [Starting from Kolibri 0.6.5.0,
this paragraph is no more actual, because one can pack applications as all
binary files with kpack and the unpacker code in this case is located in the
kernel and is transparent for debug.]
Loaded program can be terminated by the command "terminate" (without
arguments). The command "detach" (without arguments) detaches from program,
after that program continues execution normally, as if there was no debugger.
After both this commands program stops to be debugged.
It is possible to anew load program for debugging by the command "reload"
(without arguments). If there is already loaded program, it is terminated
and new instance is started (from the beginning) (with the same command
string), in this case the command is similar to the commands
terminate
load <last program name> <last program arguments>
Otherwise is loaded anew latest program, which was debugged (in the current
seance of work with mtdbg) (with the same command string), i.e. is similar to
load <last program name> <last program arguments>,
but the command "reload" in both cases is shorter and more convenient;
moreover, "load" thinks that new program is loaded and moves data window
(see below) to zero address, and "reload" keeps current address.
The command "help", which can be shorten to "h", is always available.
All commands are divided on groups.
"help" without arguments displays the list of command groups.
"help" with group name displays the list of commands in this group with short
comments.
"help" with command name displays information about given command.
Examples:
help
help control
h LoaD
The debugger window consists from the following items enumerated from up
to down:
- status string. If there is loaded program, shows its name and state
("Running/Paused"), otherwise reports "No program loaded".
- registers window - shows values of general-purpose registers, register eip
and states of single flags: CF,PF,AF,ZF,SF,DF,OF: if flag is cleared, then
is displayed lower-case letter, if flag is set, then upper-case one.
Registers which are changed from previous moment are highlighted in green.
- data window (dump window) - shows memory contains of loaded program
- code window (disassembler window) - shows program code as disassembled
instructions
- messages window
- command line window
Dump window can display data starting from any address, to this serves
the command
d <expression>
The command "d" without arguments flicks dump window down.
The same is for code window and the command
u <expression>
or simply "u".
Examples:
d esi - displays data at address esi (e.g. is useful before execution of
instruction rep movsb)
d esp - displays stack
u eip - disassembles instruction starting from the current
Expressions in mtdbg can include
- hexadecimal constants
- names of all general-purpose registers (8 32-bits, 8 16-bits and
8 8-bits) and register eip; values of 16- and 8-bits registers are padded
with zeroes to 32 bits
- four arithmetic operations +,-,*,/ (with standard priorities) and
brackets
- [if symbols information was loaded] names, loaded from dbg-file
All calculations are realized modulo 2^32.
Examples of expressions:
eax
eip+2
ecx-esi-1F
al+AH*bl
ax + 2* bH*(eip+a73)
3*esi*di/EAX
The command
? <expression>
calculates value of specified expression.
Values of registers in loaded program can be changed by the command "r", which
has two absolutely equivalent forms:
r <register> <expression>
r <register>=<expression>
(in both cases you can place spaces as you want). Register can be any of
above-mentioned - 24 general-purpose registers and eip.
Let us assume that the command "load" was successfully load program for
debugging.
Immediately after loading program is suspended and does not execute.
Press Ctrl+F7 (command-line analog is the command "s") to make one step
in loaded program, after that control returns to debugger which displays
new contains of registers and memory. The system call "int 40h" is considered
as one step.
Pressing Ctrl+F8 (command-line analog is the command "p") also makes step in
loaded program, but procedure calls, string operations with prefix
rep/repz/repnz and 'loop' cycles are executed as one step.
The one-step commands are used usually on single program sections,
when it is needed, for example, to regularly trace registers value and/or
some variables in memory.
The command
g <expression>
resumes program execution and waits until control goes to eip=given address,
and in this moment suspends program. The command "g" without arguments
simply resumes execution.
To suspend program use the command "stop" (without arguments).
In the typical situation it is required that program is executed normally,
but when some conditions are satisfied, program suspends and debugger receives
control. The corresponding conditions are called breakpoints or simply breaks.
Primary type of breakpoints is to concrete address, i.e. stop execution at
eip=<given value>. Such breakpoints are set by the command
bp <expression>
Note that if there is only one such breakpoint, there is more convenient to use
the command "g" with argument instead.
Other type of breakpoints is on access to given memory area. Maximum
numbers of such breakpoints is 4 (because hardware features of x86 processors
are used and they allows only 4).
bpm <expression> - breaks at any access to byte at given address
bpm w <expression> - breaks at write to byte at given address
bpmb,bpmw,bpmd <expression> - breaks to access correspondingly to byte, word
or dword at given address. bpm ¨ bpmb are synonyms. When bpmw,bpmd are used,
address must be aligned according to correspondingly word bound (i.e. be even)
or dword bound (i.e. be divisible by 4).
bpmb,bpmw,bpmd w <expression> - similar to break on write.
To see the list of set breakpoints use the command "bl", to obtain information
on concrete breakpoint use "bl <number>". Unnecessary breakpoints can be
deleted with the command "bc <number>", temporarily unnecessary can be
disabled by the command "bd <number>", when they will be needed again,
use the command "be <number>".
Remarks.
1. When debugging your own programs you can put in code instructions
int3 (pay attention to absence of space!). Such instruction causes
exception at normal run, which leads to process termination, but
at work under debugger it is simply activated (with the message
"int3 command at xxx"). This feature allows to not think about addresses
to use in the commands g and/or bp.
2. All output and all input is oriented on hexadecimal scale of notation.
3. When program is executed, registers and data window shows information
regarding to moment before resume; you can not set registers value in this
mode. Nevertheless the command "d" in this mode shows information that
was true in the moment of command delivery.
diamond

268
data/sp/docs/README.TXT Normal file
View File

@ -0,0 +1,268 @@
************************
* Kolibri OS 0.7.7.0+ *
* February 2010 *
************************
The latest release of the OS is available on the official site:
http://kolibrios.org
If you have questions - look for support on our forum:
http://board.kolibrios.org (rus+eng)
***********************************
* What is new in this release? *
***********************************
The following changes, revisions, fixes in the kernel have been made:
From Evgeny Grechnikov (Diamond) - Russian Federation
1) Improvement of drives detection using BIOS service (V86)
2) Kernel bugfixes.
From Sergey Semyonov (Serge) - Russian Federation
1) Driver for ATI videocards updated.
2) Linux-like kernel mutexes
From Mihail Semenyako (mike.dld) - Republic of Belarus
1) Refactoring of window subsystem.
From <Lrz>
1) Processing API functions in order to completely remove the shift-register-call
2) Refactoring, optimization, bugfixes of some places in the kernel.
From A.Jerdev (art_zh) - United Kingdom
1) Memory-mapped I/O (MMIO) access from the userworld.
2) PCIe Extended configuration space access (auto-adjust for AMD-NPT since Athlon64).
From turbanoff
1) Read from ext2fs/ext3fs.
From Marat Zakiyanov (Mario79) - Russian Federation
1) Improvements in the processing of mouse clicks.
From hidnplayr
1) Rewriting of the entire network subsystem.
From Asper
1) Drivers for the sound cards VT823(X) and EMU10K1X.
From tsdima
1) Driver for the sound card ForteMedia fm801.
From Maxis
1) changes in free memory checks.
The following changes, revisions, fixes in applications have been made:
* New versions of applications and new applications:
FTPS - tsdima, some improvements
VIEW3DS - macgub, version 0.054
FASM - Pavel Rymovski (Heavyiron), updated to version 1.69.11
IgorA, use the library box_lib, russification,
Marat Zakiyanov (Mario79) fix bugs encountered
Evgeny Grechnikov (Diamond), fix of window wrapping
PCIDEV - art_zh, MMIO sample dumps added; vendors database
trimmed to reduce the distro size.
BOARD - Evgeny Grechnikov (Diamond), do not throw out existing
messages at the program start
UNVWATER - Asper, demo ported from OctaOS
(the author is Octavio Vega Fernandez).
HEED - staper, version 0.14: use the library box_lib;
Ctrl+C/X/V, Ctrl+B to select a block
Marat Zakiyanov (Mario79), using of OpenDialog component,
little optimization of the code
SHELL - Albom, version 0.4.2
CPU - Evgeny Grechnikov (Diamond) at the suggestion of
Kirill Lipatov (Leency), do not show system processes
by default
HTMLV - Kirill Lipatov (Leency), version 0.62a
EOLITE - Kirill Lipatov (Leency), version 0.98.7a
RTFREAD - Sorcerer, cosmetic fix
dunkaist, menu_bar and scroll_bar from box_lib, 'end' hotkey
E80 - Albom, version 0.5.1
KIV - Evgeny Grechnikov (Diamond), file name in the window
title, configurable keyboard shortcuts for next/prev
images in the current folder
SUDOKU - staper, port of Sudoku game - that is a puzzle with digits, where you
have to fill free cells with digits from 1 to 9 so that every row,
every column and every small square 3x3 contain each digit just one time.
There are 9 levels in the game.
REVERSI - staper, port of strategy game Reversi (Othello)
MSQUARE - staper, math puzzle "magic square": sum of the numbers in rows, columns
(less often in diagonals) should be equal
FINDN-S - Artemonische, a simple game in which you have to collect all the numbers
in the order of 10 to 90
PANEL - Evgeny Grechnikov (Diamond), a little change in the panel clock
and reanimation of backlight on the Alt+[Shift+]Tab press.
AC97SND - Asper, support of playlists in m3u format.
@NOTIFY - SoUrcerer, program for popup text messages
DOSBOX - Evgeny Grechnikov (Diamond), version 0.74
ASCIIVJU - Konstantin Dutkevich (Nazarus), program shows ASCII table
PIPETKA - Rock_maniak_forever, program to get color of a pixel on the screen
SNAKE - dunkaist, yet another implementation of classic game
* New versions of dynamic libraries and new dynamic libraries:
libini - Evgeny Grechnikov (Diamond), added function to read
keyboard shortcuts
box_lib - IgorA, update component tree_list, new component
text_editor, documentation on the library
Marat Zakiyanov (Mario79) refinement of ŽpenDialog component, rewriting
of some applications to use it, new component PathShow
/-----------------------------------------------\
* Dates of publication of the distribution kits *
\-----------------------------------------------/
RE N1 30.08.2003
RE N2 07.10.2003
RE N3 26.11.2003
RE N4 23.12.2003
RE N5 15.02.2004
RE N6 27.03.2004
KOLIBRI N1 16.05.2004
RE N7 11.06.2004
KOLIBRI N2 28.08.2004
RE N8 01.12.2004
KOLIBRI N3 22.02.2005
Beta 2: 20.03.2005
KOLIBRI N4 07.06.2005
KOLIBRI 0.5.0.0 04.10.2005
0.5.1.0 12.10.2005
0.5.2.0 02.12.2005
0.5.3.0 18.03.2006
0.5.8.0 09.07.2006
0.5.8.1 25.07.2006
0.6.0.0 04.09.2006
0.6.3.0 31.10.2006
0.6.5.0 14.02.2007
0.7.0.0 07.06.2007
0.7.1.0 23.09.2007
0.7.5.0 31.01.2009
0.7.7.0 13.12.2009
/----------------\
* KolibriOS TEAM *
\----------------/
This list contains all, who has actively helped to creation and development
of KolibriOS, whoever possible.
(people are enumerated in the order by time of participation in the project,
from bottom to top - from past to future, through present)
* Trans \
* VaStaNi |
* Ivan Poddubny |
* Marat Zakiyanov (Mario79) |
* Mihail Semenyako (mike.dld) | system programming
* Sergey Kuzmin (Wildwest) |
* Andrey Halyavin (halyavin) | loaders,
* Mihail Lisovin (Mihasik) | kernel improvements and so on
* Andrey Ignatiev (andrew_programmer) |
* NoName |
* Evgeny Grechnikov (Diamond) |
* Iliya Mihailov (Ghost) |
* Sergey Semyonov (Serge) |
* Johnny_B |
* kasTIgar |
* SPraid |
* Rus |
* Alver |
* Maxis |
* Galkov |
* CleverMouse |
* tsdima |
* turbanoff |
* Asper |
* art_zh /
* Mihail Lisovin (Mihasik) \
* Andrey Ivushkin (Willow) |
* Mihail Semenyako (mike.dld) |
* Pavlushin Evgeny (Exis) |
* Ivan Poddubny | application programming
* Marat Zakiyanov (Mario79) |
* Sergey Kuzmin (Wildwest) |
* Andrey Halyavin (halyavin) | creation of new,
* Hex | port of existing
* Andrey Ignatiev (andrew_programmer) | or revisions of old
* ealex | applications for Kolibri
* Olaf |
* Evgeny Grechnikov (Diamond) |
* Navanax |
* Johnny_B |
* Pavel Rymovski (Heavyiron) |
* Vitaly Bendik (mistifi(ator) |
* Iliya Mihailov (Ghost) |
* Maxim Evtihov (Maxxxx32) |
* Vladimir Zaitsev (Rabid Rabbit) |
* vectoroc |
* Alexey Teplov (<Lrz>) |
* Sergey Semyonov (Serge) |
* YELLOW |
* iadn |
* Maciej Guba (macgub) |
* Mario Birkner (cYfleXX) |
* hidden player (hidnplayr) |
* trolly |
* nilgui |
* kaitz |
* DedOk |
* SPraid |
* Rus |
* Alver |
* Dron2004 |
* Gluk |
* Aleksandr Bogomaz (Albom) |
* Kirill Lipatov (Leency) |
* Vasiliy Kosenko (vkos) |
* IgorA |
* staper |
* chaykin |
* Alexander Meshcheryakov |
(Self-Perfection) |
* CleverMouse |
* tsdima |
* art_zh |
* Asper |
* Pterox |
* Artemonische |
* dunkaist /
* Hex \
* Diamond / documentation
* CodeWorld \ forum http://meos.sysbin.com
* mike.dld / site http://kolibrios.org; svn-server
* Alexey Teplov (<Lrz>) \ (KolibriOS logo)
* goglus | design (KolibriOS background)
* Kirill Lipatov (Leency) / (KolibriOS icons)
* Pavel Rymovski (Heavyiron) \
* Vitaly Bendik (mistifi(ator) |
* vectoroc |
* Veliant | testing,
* AqwAS | countenance
* Mike |
* camper |
* Dmitry the Sorcerer |
* Ataualpa |
* Maxis |
* Galkov |
* ChE /
and others...
KolibriOS team

387
data/sp/docs/STACK.TXT Normal file
View File

@ -0,0 +1,387 @@
What is implemented
===================
The following features are present in the TCP/IP stack code:
IP layer.
ICMP.
TCP layer.
UDP layer.
local loopback.
Realtek 8029 PCI ethernet interface.
Realtek 8139 PCI ethernet interface.
Intel i8255x PCI ethernet interface.
Dynamic ARP table.
PPP dialer
And the following internet applcations are implemented
HTTP Server
Telnet
POP Client
DNS Name resolver
MP3 Server
TFTP Client
IRC Client
There are also a number of experimental applications for streaming music
and performing interprocess communication via sockets. A Web broswer is in
development
What is not implemented
=======================
The IP layer does not process header options.
The IP layer does not support routing.
Packet fragmentation is not supported.
How to configure Kolibri for PPP
===============================
See ppp.txt
How to configure Kolibri for Ethernet
====================================
First, you need to have a supported ethernet card fitted, or present
on your motherboard. If you are uncertain what type of hardware you
have, try to configue the stack. If you have supported hardware it
will be found, and enabled.
Setting Up the ARP Table
------------------------
Kolibri's ARP table is dynamically created and maintained; You can see what
hosts Kolibri has communicated with by running the ARPSTAT application.
Enabling Ethernet
-----------------
Boot Kolibri, then select STACKCFG from the NET menu.
Press the 'Read' Button, then select 'Packet Driver'.
Press 'Change' next to the IP address, and enter the IP address you want
to use. Make sure it is on the same sub-net as the LAN to which you are
connected.
Press 'Apply' to action the changes.
Close the program.
The stack is now running, which you can test by pinging Kolibri from a
remote host.
The simplest way to connect two PC's together is using a 'Null Modem'
Ethernet cable. These simply cross certain wires over. They can be
purchased from PC stores, but are simple to make. Details can be found
on the web. Look on google for 'ethernet cross over cable' or similar.
How to use TCP/IP locally, with no Network
==========================================
Kolibri supports a form of local loopback that means applications on the
same PC can communicate with each other via sockets as though they
were on separate hosts. To connect to an application on the same machine,
specify the local IP address as the destination address. You do not even
need to configure the stack for ethernet; local loopback will work without
any network hardware. It's great for development and testing.
Application Programming Interface
=================================
The developer can access the stack through interrupt 0x40, function 53.
The file TFTPC.ASM gives a good example of how to use the programming
interface ( at least, for UDP), but as network communication is complex
I'll give an overview.
Sockets
=======
Applications connect to each other and pass information between themselves
through a mechanism called a 'socket'. Sockets are end-points for
communication; You need one at each application to communicate.
Using sockets is a little like using files on an OS; You open them, read
and write to them, then close them. The only thing that makes life slightly
more complicated is that unlike with a file, you have something intelligent
at the other end ( which for example may not want to close when you do! )
Lets deal with the terminology before we go any further.
socket A unique identifier used by the application for communication.
local port A number that identifies this application on the local host.
Ports are a way to allow multiple applications to communicate
with other hosts without the data becoming mixed up. ( The
technical term is 'multiplex' ). Port numbers are 16 bit.
remote port A number that identifies the application on the remote host
to which we are communicating with. To the remote host, this is
it's 'local port'. Port numbers are 16 bit.
IP Address A 32 bit number that identifies the remote host PC that we are
communicating with.
Passive Refers to the mode by which a socket is opened; When opening in
passive mode, the local PC is awaiting an incoming connection.
Active Refers to the mode by which a socket is opened; When opening in
active mode, the local PC will attempt to connect to a remote
PC.
When you connect to a socket on a remote PC, you need to specify more than
just the IP address, otherwise the remote stack will not know to which
application it should send your data. You must fully qualify the address,
which means you specify the IP address and the port number. This would be
written like this
192.168.1.10:80 ; Connect to port 80 on the machine 192.168.1.10
Port numbers are important. Some are 'well known' and provide access to
common applications. For example port 80 is used by HTTP servers; That
way I can connect to a webserver on a host without having to find out
what port number the application is listening on.
This brings me to the way in which you open a socket; As I said earlier,
there are two modes, Passive and Active. A webserver would open a passive
socket, as it is waiting for incoming connection requests. A web browser
would open an active socket because it is attempting to connect to a
specified remote host.
Access to programming interface
===============================
The developer accesses the stack functions through interrupt 0x40,
function 53. Some functions may be accessed through function 52, but these
are mainly for stack configuration.
Here is a summary of the functions that you may use and the parameter
definitions.
Get Local IP Address
--------------------
eax = 52
ebx = 1
IP address returned in eax ( in internet byte order )
Write to stack input queue
--------------------------
eax = 52
ebx = 6
edx = number of bytes to write
esi = pointer to data ( in application space )
On return, eax holds 0 for OK, or 0xFFFFFFFF for error.
This interface is for slow network drivers only ( PPP, SLIP )
Read data from network output queue
-----------------------------------
eax = 52
ebx = 8
esi = pointer to data ( in application space )
On return, eax holds number of bytes transferred.
This interface is for slow network drivers only ( PPP, SLIP )
Open a UDP socket
-----------------
eax = 53
ebx = 0
ecx = local port
edx = remote port
esi = remote ip address ( in internet byte order )
The socket number allocated is returned in eax.
A return value of 0xFFFFFFFF means no socket could be opened.
Open a TCP socket
-----------------
eax = 53
ebx = 5
ecx = local port
edx = remote port
esi = remote ip address ( in internet byte order )
edi = mode : SOCKET_PASSIVE or SOCKET_ACTIVE ( defined in stack.inc )
The socket number allocated is returned in eax.
A return value of 0xFFFFFFFF means no socket could be opened.
Close a socket (UDP Only )
--------------------------
eax = 53
ebx = 1
ecx = socket number
On return, eax holds 0 for OK, or 0xFFFFFFFF for error.
Close a socket (TCP Only )
--------------------------
eax = 53
ebx = 8
ecx = socket number
On return, eax holds 0 for OK, or 0xFFFFFFFF for error.
Poll socket
-----------
eax = 53
ebx = 2
ecx = socket number
On return, eax holds the number of bytes in the receive buffer.
Read socket data
----------------
eax = 53
ebx = 3
ecx = socket number
On return, eax holds the number of bytes remaining, bl holds a data byte.
Write to socket ( UDP only )
----------------------------
eax = 53
ebx = 4
ecx = socket number
edx = number of bytes to write
esi = pointer to data ( in application space )
On return, eax holds 0 for OK, or 0xFFFFFFFF for error.
Return socket status ( TCP only )
---------------------------------
eax = 53
ebx = 6
ecx = socket number
On return, eax holds the sockets TCP status.
This function can be used to determine when a socket has actually connected
to another socket - data cannot be written to a socket until the connection
is established (TCB_ESTABLISHED). The states a socket can be in are defined
in stack.inc as TCB_
Write to socket ( TCP only )
----------------------------
eax = 53
ebx = 7
ecx = socket number
edx = number of bytes to write
esi = pointer to data ( in application space )
On return, eax holds 0 for OK, or 0xFFFFFFFF for error.
Check port number
-----------------
eax = 53
ebx = 9
ecx = port number
This function is used to determine if a port number
is in use by any sockets as a local port number. Local
port numbers are normally unique.
On return, eax is 1 for port number not in use, 0 otherwise.
Opening a TCP socket in Kolibri
===============================
There are two ways to open a socket - Passive or Active.
In a Passive connection your application 'listens' for incoming
requests from remote applications. Typically this will be done when
you are implementing a server application that allows any other
application to connect to it. You would specify a 'known' local
port number, such as 80 for a web server. You would leave the
remote IP and remote port number as 0, which indicates any
remote application may connect.
Once the socket has been opened you would wait for an incoming
connection before doing anything. This can be by either checking
the socket status for TCB_ESTABLISHED, or waiting for data in the
receive buffer.
In an Active connection, you are making a connection to a specified
remote port. The remote IP and remote port parameters must be filled
in with non-zero values ( otherwise, what are you connecting to? ).
You also specify a unique local port number so the remote application
can uniquely identify you - after all, there may be several applications
on your machine connected to the same remote host. See below for finding
a unique port number.
How to find an unused local port number
=======================================
Typically when you are creating an active connection to a remote
socket you will want to choose a unique local port number. Local
port numbers normally start from 1000; The following code may
be used to obtain an unused port number prior to making the
open socket call.
mov ecx, 1000 ; local port starting at 1000
getlp:
inc ecx
push ecx
mov eax, 53
mov ebx, 9
int 0x40
pop ecx
cmp eax, 0 ; is this local port in use?
jz getlp ; yes - so try next
; ecx contains a free local port number
Writing data to a socket
========================
There are two functions available depending on whether the socket
was opened for TCP or UDP protocol; The call parameters are the
same however. When the socket is being opened for TCP, use the
status function to poll for a connection - data cannot be written
to a socket until another socket has connected to it, and the
state of the socket is TCB_ESTABLISHED.
When you write data, the call results in a single IP packet being
created and transmitted. Thus the user application is responsible for
the size of transmitted packets. Keep the packet sizes under 768 bytes.
If you are writing a terminal program like telnet, you may want to send
a packet for each keystroke ( inefficient ) or use a timer to send data
periodically ( say, every second ).
Reading data from a socket
==========================
There is one function to read data from a sockets receive buffer. This
function retrieves one byte at a time. You can use the poll function to
test the receive buffer for data.
Closing a socket
================
Simply call the appropriate function - there is one for TCP, and another
for UDP. When closing a TCP socket, don't forget that the other end
may continue to send data, so the socket may remain active for a
few seconds after your call.
If you have any questions or have suggestions for improving this
document please contact me at mikeh@oceanfree.net.

68
data/sp/doexe2.asm Normal file
View File

@ -0,0 +1,68 @@
filename equ '%EXENAME%'
virtual at 0
file filename:3Ch,4
load pehea dword from 0
file filename:pehea,0F8h+28h*3
load NumberOfSections word from 4+6
load SizeOfOptionalHeader word from 4+14h
if NumberOfSections<>3
error Expected three sections, .text, .bss and .reloc
end if
if SizeOfOptionalHeader<>0E0h
error Nonstandard PE header
end if
load RelocsRVA dword from 4+0A0h
load RelocsSize dword from 4+0A4h
load ImageBase dword from 4+34h
load TextRVA dword from 4+0F8h+0Ch
load TextSize dword from 4+0F8h+8
load TextOffs dword from 4+0F8h+14h
load BSSSize dword from 4+0F8h+28h+10h
load RelocRVA dword from 4+0F8h+28h*2+0Ch
load RelocOffs dword from 4+0F8h+28h*2+14h
if BSSSize
error Second section expected to be .bss
end if
if RelocRVA<>RelocsRVA
error Third section expected to be .reloc
end if
;file 'test.exe':pehea+0F8h,28h
;load physofs dword from 4+14h
;load mem dword from 4+8
;file 'test.exe':physofs+16,4
;load sz dword from $-4
end virtual
file filename:TextOffs,TextSize
while RelocsSize>8
virtual at 0
file filename:RelocOffs,8
load CurRelocPage dword from 0
load CurRelocChunkSize dword from 4
end virtual
RelocsSize=RelocsSize-CurRelocChunkSize
CurRelocChunkSize = CurRelocChunkSize-8
RelocOffs=RelocOffs+8
while CurRelocChunkSize
virtual at 0
file filename:RelocOffs,2
RelocOffs=RelocOffs+2
CurRelocChunkSize=CurRelocChunkSize-2
load s word from 0
end virtual
CurRelocType = s shr 12
RelocItem = CurRelocPage + (s and 0xFFF)
if CurRelocType=0
else if CurRelocType=3
load z dword from RelocItem-TextRVA
store dword z-(TextRVA+ImageBase) at RelocItem-TextRVA
else
error Unexpected relocation type
end if
end while
end while
store dword TextSize at 10h
store dword RelocRVA-TextRVA at 14h

BIN
data/sp/games/checkers Normal file

Binary file not shown.

BIN
data/sp/games/fara Normal file

Binary file not shown.

BIN
data/sp/games/megamaze Normal file

Binary file not shown.

BIN
data/sp/games/reversi Normal file

Binary file not shown.

BIN
data/sp/games/rforces Normal file

Binary file not shown.

BIN
data/sp/games/soko Normal file

Binary file not shown.

BIN
data/sp/games/xonix Normal file

Binary file not shown.

BIN
data/sp/hdread Normal file

Binary file not shown.

28
data/sp/icons.dat Normal file
View File

@ -0,0 +1,28 @@
AA-KFM -005-/SYS/FILE MANAGERS/KFM - *
AB-TINYPAD -009-/SYS/TINYPAD - *
BA-EOLITE -002-/SYS/FILE MANAGERS/EOLITE - *
CA-SHELL -020-/SYS/SHELL - *
BB-KFAR -016-/SYS/FILE MANAGERS/KFAR - *
AC-RDSAVE -017-/SYS/RDSAVE - *
BC-CALC -004-/SYS/CALC - *
CB-ANIMAGE -015-/SYS/MEDIA/ANIMAGE - *
JA-KPACK -010-/SYS/KPACK - *
IH-SNAKE -003-/SYS/GAMES/SNAKE - *
JI-MINE -014-/SYS/GAMES/MINE - *
II-LIFE2 -013-/SYS/DEMOS/LIFE2 - *
JH-MBLOCKS -011-/SYS/GAMES/MBLOCKS - *
HI-PONG -012-/SYS/GAMES/PONG3 - *
GI-15 -000-/SYS/GAMES/15 - *
HH-CLICKS -018-/SYS/GAMES/CLICKS - *
JB-DOCPACK -008-/SYS/DOCPACK - *
IA-BOARD -019-/SYS/DEVELOP/BOARD - *
JC-HEXEDIT -022-/SYS/DEVELOP/HEED - *
HA-MTDBG -006-/SYS/DEVELOP/MTDBG - *
AH-PIPES -026-/SYS/GAMES/PIPES - *
AI-SUDOKU -025-/SYS/GAMES/SUDOKU - *
BI-GOMOKU -024-/SYS/GAMES/GOMOKU - *
BH-XONIX -021-/SYS/GAMES/XONIX - *
GH-CHECKERS-001-/SYS/GAMES/CHECKERS - *
CI-KOSILKA -023-/SYS/GAMES/KOSILKA - *
CH-FLOOD-IT-027-/SYS/GAMES/FLOOD-IT - *
IB-FASM -010-/RD/1/DEVELOP/FASM - *

BIN
data/sp/iconstrp.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

30
data/sp/index_htm Normal file
View File

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >
<head>
<title>KolibriOS web server - default message</title>
</head>
<body>
<h1>Welcome to KolibriOS server</h1>
<p>
If you can read this with an external html-browser then Kolibri
networking is correctly set up.
<br /><br />This file: /rd/1/index.htm
</p>
<ul>
<li><a href="/TinyStat">TinyStat</a></li>
<li><a href="/TinyBoard">TinyBoard</a></li>
</ul>
</body>
</html>

BIN
data/sp/kerpack Normal file

Binary file not shown.

BIN
data/sp/keymap.key Normal file

Binary file not shown.

BIN
data/sp/kuzkina.mid Normal file

Binary file not shown.

1
data/sp/lang.inc Normal file
View File

@ -0,0 +1 @@
lang fix sp

28
data/sp/lang.ini Normal file
View File

@ -0,0 +1,28 @@
[start]
startlng = 1
[comkey]
ccomkey1 = 1
ccomkey2 = 4
ccomkey3 = 7
[altkey]
altkey1 = 1
altkey2 = 4
altkey3 = 7
altkey4 = 3
altkey5 = 5
altkey6 = 6
altkey7 = 2
altkey8 = 0
altkey9 = 0
altkey0 = 0
[langs]
1 = En
2 = Fi
3 = Ge
4 = Ru
5 = Fr
6 = Et
7 = Ua

BIN
data/sp/lib/msgbox.obj Normal file

Binary file not shown.

BIN
data/sp/lib/pixlib.obj Normal file

Binary file not shown.

BIN
data/sp/lib/sort.obj Normal file

Binary file not shown.

BIN
data/sp/media/ImgF/ImgF Normal file

Binary file not shown.

BIN
data/sp/media/ImgF/cEdg.obj Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

166
data/sp/menu.dat Normal file
View File

@ -0,0 +1,166 @@
#0 **** MAIN ****
Juegos > /@1
Demos > /@4
Gr ficos > /@6
M£sica y sonido > /@7
Desarrollo > /@8
Sistema > /@10
Proceso de datos > /@14
Red > /@15
Otros > /@18
Ayuda /rd/1/docpack
Ejecutar aplicaci¢n /rd/1/run
Apagar /rd/1/end
#1 **** JUEGOS ****
Logical games > /@2
Arcades > /@3
Memory Blocks /rd/1/games/mblocks
FreeCell /rd/1/games/freecell
Pipes /rd/1/games/pipes
Kosilka /rd/1/games/kosilka
RockeT ForceS /rd/1/games/rforces
Find Numbers /rd/1/games/FindNumbers
#2 **** LOGICAL GAMES ****
C4 /rd/1/games/c4
15 /rd/1/games/15
Mine /rd/1/games/mine
Just Clicks /rd/1/games/clicks
Checkers /rd/1/games/checkers
SQ_GAME /rd/1/games/sq_game
Color Lines /rd/1/games/lines
Flood-it! /rd/1/games/flood-it
MegaMaze /rd/1/games/megamaze
Sea Fight /rd/1/games/sw
Sudoku /rd/1/games/sudoku
Go-moku /rd/1/games/gomoku
Reversi /rd/1/games/reversi
#3 **** ARCADES ****
Tetris /rd/1/games/tetris
Pong /rd/1/games/pong
New Pong /rd/1/games/pong3
Red Square /rd/1/games/rsquare
Xonix /rd/1/games/xonix
ArcanII /rd/1/games/arcanii
Phenix /rd/1/games/phenix
Snake /rd/1/games/snake
#4 **** DEMOS ****
3D > /@5
Circle /rd/1/demos/circle
Fractal /rd/1/demos/tinyfrac
Color demo /rd/1/demos/colorref
Eyes /rd/1/demos/eyes
Tube /rd/1/demos/tube
Plasma /rd/1/demos/plasma
Moveback /rd/1/demos/movback
Life /rd/1/demos/life2
TranTest /rd/1/demos/trantest
WEB /rd/1/demos/web
FireWork /rd/1/demos/firework
UnvWater /rd/1/demos/unvwater
#5 **** 3D demos ****
ScreenSaver /rd/1/3d/crownscr
3D-labyrinth /rd/1/3d/free3d04
Heart /rd/1/3d/3dsheart
View3DS /rd/1/3d/view3ds
CubeLine /rd/1/3d/cubeline
Gears /rd/1/3d/gears
3D-waved area /rd/1/3d/3dwav
#6 **** GRµFICOS ****
Image viewer /rd/1/media/kiv
Animage /rd/1/media/animage
Image Filtering /rd/1/media/imgf/imgf
Palitra /rd/1/media/palitra
#7 **** AUDIO ****
MidAMP /rd/1/media/midamp
CD player /rd/1/media/cdp
#8 **** PROGRAMMING ****
Ejemplos > /@9
Archiver KPack /rd/1/kpack
Flat Assembler /rd/1/develop/fasm
Debug Board /rd/1/develop/board
Debugger /rd/1/develop/mtdbg
Hex2Dec2Bin /rd/1/develop/h2d2b
ASCII-codes /rd/1/develop/keyascii
SCAN-codes /rd/1/develop/scancode
#9 **** EXAMPLES ****
Threads /rd/1/develop/thread
IPC /rd/1/develop/ipc
Color slider /rd/1/demos/cslide
Console example 1 /rd/1/develop/testcon2
Console example 2 /rd/1/develop/test_gets
Message Boxes example /rd/1/demos/use_mb
#10 **** SISTEMA ****
Configuraci¢n > /@11
Sensores > /@12
Archivos > /@13
Testing > /@19
Accessibility opt. > /@20
Debug board /rd/1/develop/board
#11 **** CONFIGURACIàN ****
Dispositivos /rd/1/setup
Background generator /rd/1/pic4
Colores y Apariencia /rd/1/desktop
Icons manager /rd/1/icon
MyKey /rd/1/mykey
Modo de video para ATI /rd/1/vmode
#12 **** SENSORES ****
Process manager /rd/1/cpu
PCI devices /rd/1/pcidev
Test graphics speed /rd/1/mgb
CPUID /rd/1/cpuid
Ghost Monitor /rd/1/gmon
K. Bus disconnected /rd/1/kbd
HDD informer /rd/1/hdd_info
Read HDD /rd/1/hdread
#13 **** ARCHIVOS ****
KFAR /rd/1/File Managers/kfar
KFM /rd/1/File Managers/kfm
Eolite /rd/1/File Managers/Eolite
SHELL console /rd/1/shell
Save RD image /rd/1/rdsave
#14 **** DATA PROCESSING ****
Calculator /rd/1/calc
Tinypad /rd/1/tinypad
TextEdit /rd/1/develop/t_edit
Table Processor /rd/1/table
Graph builder /rd/1/graph
Hex-Editor /rd/1/develop/heed
#15 **** RED ****
Servidores > /@16
Clientes > /@17
Configuraci¢n /rd/1/network/stackcfg
Zero-Config /rd/1/network/zeroconf
Network status /rd/1/network/ethstat
ARP status /rd/1/network/arpstat
#16 **** SERVERS ****
SMTPS /rd/1/network/smtps
HTTPS /rd/1/network/https
FTPS /rd/1/network/ftps
#17 **** CLIENTS ****
Cliente TFTP /rd/1/network/tftpc
Internet-chess /rd/1/network/chess
Internet downloader /rd/1/network/downloader
Text-based browser /rd/1/htmlv
NNTP-NewsGroups /rd/1/network/nntpc
TELNET /rd/1/network/telnet
POP - MAIL /rd/1/network/popc
Cliente IRC /rd/1/network/airc
YAHOO messenger (demo) /rd/1/network/ym
JMail /rd/1/network/jmail
Cliente VNC /rd/1/network/vncclient
DNS resolver /rd/1/network/nslookup
#18 **** OTROS ****
Analogue clock /rd/1/demos/aclock
Binary clock /rd/1/demos/bcdclk
Timer /rd/1/demos/timer
ScrShoot /rd/1/scrshoot
Calendario /rd/1/calendar
Lector de RTF /rd/1/rtfread
#19 **** SYSTEM TESTS ****
Protection test /rd/1/test
Monitor test /rd/1/disptest
#20 **** SYSTEM SPECIAL ****
Screen magnifier /rd/1/magnify
Screen keyboard /rd/1/zkey
Character table /rd/1/ASCIIVju
##

BIN
data/sp/network/jmail Normal file

Binary file not shown.

View File

@ -0,0 +1,19 @@
[ipconfig]
; type should be static or zeroconf
; zeroconf means the service first tries to contact a DHCP server
; If dhcp is not available, it switches to link-local
type = zeroconf
ip = 10.0.2.15
gateway = 10.0.2.2
dns = 10.0.2.2
subnet = 255.255.255.0
[proxy]
; If Internet connection requires HTTP proxy, set it here
; and uncomment following lines:
;proxy = <set your proxy IP-addr or domain name here>
;port = <set your proxy port here>
; If proxy requires authentification, uncomment following lines too
; (otherwise, leave them commented):
;user = <set username here>
;password= <set password here>

40
data/sp/panel.ini Normal file
View File

@ -0,0 +1,40 @@
[Variables]
PanelHeight=24
PanelWidth=0
SoftenHeight=4
ButtonTopOffset=2
ButtonBottOffset=2
[Flags]
SoftenUp=1
SoftenDown=1
MinLeftButton=1
MinRightButton=0
MenuButton=1
RunApplButtons=1
ClnDesktButton=1
Clock=1
CpuUsage=1
ChangeLang=1
Attachment=1
ButtonsStyle=0
[Colors]
MenuButton=0,100,0
ClnDesktButton=0,128,255
Clock=0,128,255
CpuUsage=0,100,0
CpuUsageBckgr=255,0,0
ChangeLang=0,128,255
PageList=255,255,255
Text=255,255,255
AltTab=255,128,0
[ApplicationsPaths]
End=/sys/END
Menu=/sys/@MENU
Run=/sys/RUN
PrnScr=/sys/SCRSHOOT
Clock=/sys/CALENDAR
CpuUsage=/sys/GMON
MouseEmul=/sys/MOUSEMUL

BIN
data/sp/setup.dat Normal file

Binary file not shown.

BIN
data/sp/vmode Normal file

Binary file not shown.

Binary file not shown.

BIN
kernel/trunk/gui/char_sp.mt Normal file

Binary file not shown.

View File

@ -7,6 +7,8 @@
$Revision$
include "../lang.inc"
;------------------------------------------------------------------------------
align 4
dtext_asciiz_esi: ; for skins title out
@ -231,9 +233,17 @@ draw_text_to_user_area:
;------------------------------------------------------------------------------
align 4
FONT_I:
if lang eq sp
file 'char_sp.mt'
else
file 'char.mt'
end if
;------------------------------------------------------------------------------
align 4
FONT_II:
if lang eq sp
file 'char2_sp.mt'
else
file 'char2.mt'
end if
;------------------------------------------------------------------------------

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,57 @@
/*
Copyright 2011 dunkaist <dunkaist@gmail.com>
Distributed under the terms of the GNU General Public License v3.
See http://www.gnu.org/licenses/gpl.txt for the full license text.
*/
#include <stdio.h>
#define FONT_HEIGHT 9
#define FONT_WIDTH_MONO 5
#define FONT_WIDTH_VAR 7 /* max symbol width */
short int char_num, row, col;
char ch, data;
int do_symbol(short int font_width)
{
for(row=FONT_HEIGHT; row; row--)
{
data = 0;
for(col=0; col<font_width; col++)
{
data |= getchar()==' '? 0 : 1<<col;
}
putchar(data);
fseek(stdin, 3, SEEK_CUR);
}
return 0;
}
int main()
{
freopen("char_sp.txt", "rt", stdin);
freopen("char_sp.mt", "wb", stdout);
for(char_num=256; char_num; char_num--)
{
fseek(stdin, 8, SEEK_CUR);
do_symbol(FONT_WIDTH_MONO);
}
freopen("char2_sp.txt", "rt", stdin);
freopen("char2_sp.mt", "wb", stdout);
for(char_num=256; char_num; char_num--)
{
fseek(stdin, 6, SEEK_CUR);
ch = getchar();
putchar(ch==' '? 0x08 : ch-47);
fseek(stdin, 3, SEEK_CUR);
do_symbol(FONT_WIDTH_VAR);
}
return 0;
}

View File

@ -1,5 +1,7 @@
;------------------------------------------------------------------------------
align 4
; DATA
stripe:
dd -0x010101
@ -21,11 +23,11 @@ m_icon:
dd 0x000000
dd 0xffffff
lsz m_text,\
ru, "Œ…<EFBFBD>ž",\
en, "MENU",\
et, "MEN--"
et, "MEN--",\
sp, "MENé"
mi_text db 'WAVETETRBGRDGPL '