Merge new network stack with trunk: attempt #8 (fix spanish and italian builds)

git-svn-id: svn://kolibrios.org@3553 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
hidnplayr 2013-05-28 18:35:28 +00:00
parent 0fb19e3e39
commit 597bf18f73
59 changed files with 95 additions and 7425 deletions

Binary file not shown.

View File

@ -1,19 +0,0 @@
[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>

View File

@ -103,7 +103,6 @@ FASM_PROGRAMS:=\
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 \
@ -133,6 +132,19 @@ FASM_PROGRAMS:=\
drivers/usbstor.obj:DRIVERS/USBSTOR.OBJ:$(KERNEL)/drivers/usbstor.asm \
drivers/vt823x.obj:DRIVERS/VT823X.OBJ:$(KERNEL)/drivers/vt823x.asm \
drivers/vidintel.obj:DRIVERS/VIDINTEL.OBJ:$(KERNEL)/drivers/vidintel.asm \
drivers/3c59x.obj:DRIVERS/3C59X.obj:$(REPOSITORY)/drivers/ethernet/3c59x.asm \
drivers/dec21x4x.obj:DRIVERS/DEC21X4X.obj:$(REPOSITORY)/drivers/ethernet/dec21x4x.asm \
drivers/forcedeth.obj:DRIVERS/FORCEDETH.obj:$(REPOSITORY)/drivers/ethernet/forcedeth.asm \
drivers/i8254x.obj:DRIVERS/I8254X.obj:$(REPOSITORY)/drivers/ethernet/i8254x.asm \
drivers/i8255x.obj:DRIVERS/I8255X.obj:$(REPOSITORY)/drivers/ethernet/i8255x.asm \
drivers/mtd80x.obj:DRIVERS/MTD80X.obj:$(REPOSITORY)/drivers/ethernet/mtd80x.asm \
drivers/pcnet32.obj:DRIVERS/PCNET32.obj:$(REPOSITORY)/drivers/ethernet/pcnet32.asm \
drivers/r6040.obj:DRIVERS/R6040.obj:$(REPOSITORY)/drivers/ethernet/R6040.asm \
drivers/rhine.obj:DRIVERS/RHINE.obj:$(REPOSITORY)/drivers/ethernet/rhine.asm \
drivers/rtl8029.obj:DRIVERS/RTL8029.obj:$(REPOSITORY)/drivers/ethernet/RTL8029.asm \
drivers/rtl8139.obj:DRIVERS/RTL8139.obj:$(REPOSITORY)/drivers/ethernet/RTL8139.asm \
drivers/rtl8169.obj:DRIVERS/RTL8169.obj:$(REPOSITORY)/drivers/ethernet/RTL8169.asm \
drivers/sis900.obj:DRIVERS/SIS900.obj:$(REPOSITORY)/drivers/ethernet/sis900.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 \
@ -175,23 +187,18 @@ FASM_PROGRAMS:=\
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 \
network/arpcfg:NETWORK/ARPCFG:$(PROGS)/network/arpcfg/arpcfg.asm \
network/ping:NETWORK/PING:$(PROGS)/network/icmp/ping.asm \
network/netcfg:NETWORK/NETCFG:$(PROGS)/network/netcfg/netcfg.asm \
network/netstat:NETWORK/NETSTAT:$(PROGS)/network/netstat/netstat.asm \
network/nslookup:NETWORK/NSLOOKUP:$(PROGS)/network/nslookup/nslookup.asm \
network/synergyc:NETWORK/SYNERGYC:$(PROGS)/network/synergyc/synergyc.asm \
network/tcpserv:NETWORK/TCPSERV:$(PROGS)/network/tcpserv/tcpserv.asm \
network/telnet:NETWORK/TELNET:$(PROGS)/network/telnet/telnet.asm \
network/zeroconf:NETWORK/ZEROCONF:$(PROGS)/network/zeroconf/zeroconf.asm \
network/ftpd:NETWORK/FTPD:$(PROGS)/network/ftpd/ftpd.asm \
network/tftpc:NETWORK/TFTPC:$(PROGS)/network/tftpc/tftpc.asm \
network/ircc:NETWORK/IRCC:$(PROGS)/network/ircc/ircc.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.
@ -298,7 +305,7 @@ OTHER_FILES:=autorun.dat:AUTORUN.DAT \
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 \
network.ini:NETWORK.INI \
#end of list
# Generate skins list understandable by gnu make

View File

@ -7,6 +7,7 @@
#/RD/1/COMMOUSE "" 1 # COM mice detector
#/RD/1/DEVELOP/BOARD "" 1 # Load DEBUG board
#/RD/1/refrscrn "" 1 # Refresh screen
/RD/1/NETWORK/NETCFG A 1 #
/RD/1/NETWORK/ZEROCONF "" 1 # Network configuration
/RD/1/MEDIA/PALITRA "H 007DCEDF 003C427F" 1 #SET BG
/RD/1/@PANEL "" 1 # Start panel

View File

@ -1,4 +1,4 @@
#0 **** MAIN ****
#0 **** MAIN ****
Giochi > /@1
Demo > /@4
Grafica > /@6
@ -127,27 +127,19 @@ Hex-Editor /rd/1/develop/heed
#15 **** NET ****
Servers > /@16
Clients > /@17
Configurazione /rd/1/network/stackcfg
Zero-Config /rd/1/network/zeroconf
Network status /rd/1/network/ethstat
ARP status /rd/1/network/arpstat
Zero-Config /sys/network/zeroconf
network Config /sys/network/netcfg
Network status /sys/network/netstat
ARP status /sys/network/arpcfg
#16 **** SERVERS ****
SMTPS /rd/1/network/smtps
HTTPS /rd/1/network/https
FTPS /rd/1/network/ftps
FTP daemon /sys/network/ftpd
#17 **** CLIENTS ****
TFTP client /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
Client IRC /rd/1/network/airc
YAHOO messenger (demo) /rd/1/network/ym
JMail /rd/1/network/jmail
VNC client /rd/1/network/vncclient
DNS resolver /rd/1/network/nslookup
IRC client /sys/network/ircc
TFTP client /sys/network/tftpc
Ping /sys/network/ping
Telnet client /sys/network/telnet
Synergy client /sys/network/synergyc
DNS lookup /sys/network/nslookup
#18 **** OTHER ****
Orologio analogico /rd/1/demos/aclock
Orologio binario /rd/1/demos/bcdclk

9
data/it/network.ini Normal file
View File

@ -0,0 +1,9 @@
[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 = 192.168.1.150
gateway = 192.168.1.1
dns = 192.168.1.1
subnet = 255.255.255.0

Binary file not shown.

View File

@ -1,19 +0,0 @@
[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>

View File

@ -1,60 +0,0 @@
[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
sna=/sys/e80
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

@ -1,143 +0,0 @@
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

@ -1,79 +0,0 @@
[Associations]
asm=/sys/TinyPad; AsmMenu1,AsmMenu2
inc=/sys/TinyPad
ini=/sys/TinyPad
txt=/sys/TinyPad
jpg=/sys/media/kiv
jpeg=/sys/media/kiv
gif=/sys/media/kiv; ViewGraph,MenuAnimage
wav=/sys/media/AC97SND
mp3=/sys/media/AC97SND
xm=/sys/media/AC97SND
mid=/sys/media/MIDAMP
bmp=/sys/media/kiv; ViewGraph,MenuAnimage
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
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
cvs=/sys/graph
obj=/sys/develop/cObj
nes=/sys/fceu
sna=/sys/e80
htm=/sys/HTMLv
html=/sys/HTMLv
fb2=/sys/HTMLv
[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

@ -1,199 +0,0 @@
start
<>icons_associations
asm 0004
inc 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
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
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
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
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
txt /sys/tinypad
ini /sys/tinypad
log /sys/tinypad
dat /sys/tinypad
inf /sys/tinypad
bat /sys/tinypad
jpg /sys/media/kiv
jpeg /sys/media/kiv
jpe /sys/media/kiv
gif /sys/media/kiv
wav /sys/media/ac97snd
mp3 /sys/media/ac97snd
xm /sys/media/ac97snd
mid /sys/media/midamp
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
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
nes /sys/fceu
sna /sys/e80
htm /sys/HTMLv
html /sys/HTMLv
fb2 /sys/HTMLv
kla /sys/games/klavisha
<>end
<>files_association1
bmp /sys/media/animage
<>end
end

View File

@ -1,392 +0,0 @@
# 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/branches/net
TRUNKKERNEL:=$(REPOSITORY)/kernel/trunk
PROGS:=$(REPOSITORY)/programs
NETPROGS:=$(REPOSITORY)/kernel/branches/net/applications
# 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:=\
@panel:@PANEL:$(PROGS)/system/panel/trunk/@PANEL.ASM \
@clip:@CLIP:$(PROGS)/system/clip/trunk/@clip.ASM \
@menu:@MENU:$(PROGS)/system/menu/trunk/menu.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 \
colrdial:COLRDIAL:$(PROGS)/system/colrdial/color_dialog.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 \
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 \
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 \
drivers/com_mouse.obj:DRIVERS/COM_MOUSE.OBJ:$(TRUNKKERNEL)/drivers/com_mouse.asm \
drivers/emu10k1x.obj:DRIVERS/EMU10K1X.OBJ:$(TRUNKKERNEL)/drivers/emu10k1x.asm \
drivers/fm801.obj:DRIVERS/FM801.OBJ:$(TRUNKKERNEL)/drivers/fm801.asm \
drivers/infinity.obj:DRIVERS/INFINITY.OBJ:$(TRUNKKERNEL)/drivers/infinity.asm \
drivers/ps2mouse.obj:DRIVERS/PS2MOUSE.OBJ:$(REPOSITORY)/drivers/mouse/ps2mouse4d/trunk/ps2mouse.asm \
drivers/sb16.obj:DRIVERS/SB16.OBJ:$(TRUNKKERNEL)/drivers/sb16/sb16.asm \
drivers/sound.obj:DRIVERS/SOUND.OBJ:$(TRUNKKERNEL)/drivers/sound.asm \
drivers/intelac97.obj:DRIVERS/INTELAC97.OBJ:$(TRUNKKERNEL)/drivers/intelac97.asm \
drivers/vt823x.obj:DRIVERS/VT823X.OBJ:$(TRUNKKERNEL)/drivers/vt823x.asm \
drivers/tmpdisk.obj:DRIVERS/TMPDISK.OBJ:$(TRUNKKERNEL)/drivers/tmpdisk.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 \
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 \
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/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/arpcfg:NETWORK/ARPCFG:$(NETPROGS)/arpcfg/arpcfg.asm \
network/ping:NETWORK/PING:$(NETPROGS)/icmp/ping.asm \
network/netcfg:NETWORK/NETCFG:$(NETPROGS)/netcfg/netcfg.asm \
network/netstat:NETWORK/NETSTAT:$(NETPROGS)/netstat/netstat.asm \
network/nslookup:NETWORK/NSLOOKUP:$(NETPROGS)/nslookup/nslookup.asm \
network/synergyc:NETWORK/SYNERGYC:$(NETPROGS)/synergyc/synergyc.asm \
network/tcpserv:NETWORK/TCPSERV:$(NETPROGS)/tcpserv/tcpserv.asm \
network/telnet:NETWORK/TELNET:$(NETPROGS)/telnet/telnet.asm \
network/zeroconf:NETWORK/ZEROCONF:$(NETPROGS)/zeroconf/zeroconf.asm \
network/ftpd:NETWORK/FTPD:$(NETPROGS)/ftpd/ftpd.asm \
network/tftpc:NETWORK/TFTPC:$(NETPROGS)/tftpc/tftpc.asm \
network/ircc:NETWORK/IRCC:$(NETPROGS)/ircc/ircc.asm \
lib/network.obj:LIB/NETWORK.OBJ:$(NETPROGS)/libraries/network/network.asm \
drivers/3c59x.obj:DRIVERS/3C59X.OBJ:$(KERNEL)/drivers/3c59x.asm \
drivers/dec21x4x.obj:DRIVERS/DEC21X4X.OBJ:$(KERNEL)/drivers/dec21x4x.asm \
drivers/i8255x.obj:DRIVERS/I8255X.OBJ:$(KERNEL)/drivers/i8255x.asm \
drivers/mtd80x.obj:DRIVERS/MTD80X.OBJ:$(KERNEL)/drivers/mtd80x.asm \
drivers/pcnet32.obj:DRIVERS/PCNET32.OBJ:$(KERNEL)/drivers/pcnet32.asm \
drivers/r6040.obj:DRIVERS/R6040.OBJ:$(KERNEL)/drivers/R6040.asm \
drivers/rtl8029.obj:DRIVERS/RTL8029.OBJ:$(KERNEL)/drivers/RTL8029.asm \
drivers/rtl8139.obj:DRIVERS/RTL8139.OBJ:$(KERNEL)/drivers/RTL8139.asm \
drivers/rtl8169.obj:DRIVERS/RTL8169.OBJ:$(KERNEL)/drivers/RTL8169.asm \
drivers/sis900.obj:DRIVERS/SIS900.OBJ:$(KERNEL)/drivers/sis900.asm \
drivers/i8254x.obj:DRIVERS/I8254X.OBJ:$(KERNEL)/drivers/i8254x.asm \
drivers/rhine.obj:DRIVERS/RHINE.OBJ:$(KERNEL)/drivers/rhine.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 \
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 \
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 \
background.png:background.png default.skn:DEFAULT.SKN \
icons.dat:ICONS.DAT iconstrp.png:ICONSTRP.PNG index_htm:INDEX.HTM \
kernel.mnt:KERNEL.MNT kerpack:KERPACK keymap.key:KEYMAP.KEY \
lang.inc:LANG.INC lang.ini:LANG.INI \
menu.dat:MENU.DAT \
panel.ini:PANEL.INI setup.dat:SETUP.DAT \
shell:SHELL \
vmode:VMODE \
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 \
fonts/char2.mt:FONTS/CHAR2.MT \
fonts/char.mt:FONTS/CHAR.MT \
lib/msgbox.obj:LIB/MSGBOX.OBJ \
lib/pixlib.obj:LIB/PIXLIB.OBJ lib/sort.obj:LIB/SORT.OBJ \
media/ac97snd:MEDIA/AC97SND \
network.ini:NETWORK.INI \
network/ftpd.ini:NETWORK/FTPD.INI \
network/users.ini:NETWORK/USERS.INI \
#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))
# dependencies of MKISOFS_EXTRA; we iterate through $(MKISOFS_EXTRA),
# substitute "=" with space, get the 2nd word and join all results
mkisofs_extra_targets:=$(foreach f,$(MKISOFS_EXTRA),$(word 2,$(subst =, ,$(f))))
# The main goal: build kolibri.img and kolibri.iso
all: $(BUILD_DIR)/kolibri.img
# The first goal: floppy image.
$(BUILD_DIR)/kolibri.img: $(BUILD_DIR)/.dir \
Makefile \
$(BUILD_DIR)/boot_fat12.bin \
$(targets)
# SYSXTREE
# 3d/CUBETEXT
# 3d/LOGIO.BMP
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 ::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 ::LIB
mmd -i $(BUILD_DIR)/kolibri.img ::MEDIA
mmd -i $(BUILD_DIR)/kolibri.img ::NETWORK
$(mcopy_all_items)
# Special targets to modify behaviour of make.
.DELETE_ON_ERROR:
.SUFFIXES: # delete all predefined rules
# The floppy bootsector.
$(BUILD_DIR)/boot_fat12.bin: $(TRUNKKERNEL)/bootloader/boot_fat12.asm $(TRUNKKERNEL)/bootloader/floppy1440.inc
fasm $(TRUNKKERNEL)/bootloader/boot_fat12.asm $(BUILD_DIR)/boot_fat12.bin
$(BUILD_DIR)/.dir develop/.dir develop/info/.dir drivers/.dir fonts/.dir \
lib/.dir media/.dir network/.dir .deps/.dir:
mkdir -p $(dir $@)
touch $@
develop/info/.dir: develop/.dir
File\ Managers/.dir:
mkdir -p "File Managers"
touch "File Managers/.dir"
# 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: $(TRUNKKERNEL)/docs/sysfuncs.txt
cp $(TRUNKKERNEL)/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
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 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

View File

@ -1,15 +0,0 @@
# 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))))

View File

@ -1,6 +0,0 @@
# 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))))

View File

@ -1,60 +0,0 @@
# 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

View File

@ -1,8 +0,0 @@
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

View File

@ -1,13 +0,0 @@
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

View File

@ -1,16 +0,0 @@
# 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))))

View File

@ -1,19 +0,0 @@
# 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/refrscrn "" 1 # Refresh screen
/RD/1/COMMOUSE "" 1 # COM mice detector
/RD/1/MEDIA/KIV \T__background.png -1 # Desktop background image
/RD/1/@CLIP "" 1 # Clipboard
/RD/1/@RB "" 1 # Desktop right-click menu
/RD/1/@SS "" 1 # Screensaver
/RD/1/@PANEL "" 1 # Start panel
/RD/1/SETUP BOOT 1 # Load device settings
/RD/1/ICON BOOT 1 # Multithread icon
/RD/1/DEVELOP/BOARD "" 1 # Load DEBUG board
/RD/1/NETWORK/NETCFG A 1 #
/RD/1/NETWORK/ZEROCONF "" 1000 # Network configuration
/RD/1/TMPDISK A1 1 # Add virtual RAM disk /tmp1/1
### Hello, ASM World! ###

Binary file not shown.

Before

Width:  |  Height:  |  Size: 365 B

Binary file not shown.

View File

@ -1,347 +0,0 @@
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.

View File

@ -1,48 +0,0 @@
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.

File diff suppressed because it is too large Load Diff

View File

@ -1,16 +0,0 @@
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.

View File

@ -1,25 +0,0 @@
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

View File

@ -1,94 +0,0 @@
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

View File

@ -1,212 +0,0 @@
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

View File

@ -1,268 +0,0 @@
************************
* 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

View File

@ -1,203 +0,0 @@
eax = 74 - Work directly with network interface
ebx = -1 (Get number of active network devices)
out:
eax = number of active network devices
bh = device number, for all following functions !
bl = 0 (Get device type)
out:
eax = device type number
bl = 1 (Get device name)
in:
ecx = pointer to 64 byte buffer
out:
name is copied into the buffer
eax = -1 on error
bl = 2 (Reset the device)
in
none
out
eax = -1 on error
bl = 3 (Stop device)
in
none
out
eax = -1 on error
TO BE FIGURED OUT
eax = 75 - Work with Sockets
These functions work like the ones found in UNIX (and windows)
for more info, please read http://beej.us/guide/bgnet/
bl = 0 (Open Socket)
in:
ecx = domain
edx = type
esi = protocol
out:
eax = socket number, -1 on error
bl = 1 (Close Socket)
in:
ecx = socket number
out:
eax = -1 on error
bl = 2 (Bind)
in:
ecx = socket number
edx = pointer to sockaddr structure
esi = length of sockaddr structure
out:
eax = -1 on error
bl = 3 (Listen)
in:
ecx = socket number
edx = backlog
out:
eax = -1 on error
bl = 4 (connect)
in:
ecx = socket number
edx = pointer to sockaddr structure
esi = length of sockaddr structure
out:
eax = -1 on error
bl = 5 (accept)
in:
ecx = socket number
edx = pointer to sockaddr structure
esi = length of sockaddr structure
out:
eax = socket number, -1 on error
bl = 6 (send)
in:
ecx = socket number
edx = pointer to buffer
esi = length of buffer
edi = flags
out:
eax = -1 on error
bl = 7 (receive)
in:
ecx = socket number
edx = pointer to buffer
esi = length of buffer
edi = flags
out:
eax = number of bytes copied, -1 on error
bl = 8 (set socket options)
in:
ecx = socket number
edx = level
esi = optionname
edi = ptr to buffer
The buffer's first dword is the length of the buffer, minus the first dword offcourse
out:
eax = -1 on error
bl = 9 (get socket options
in:
ecx = socket number
edx = level
esi = optionname
edi = ptr to buffer
The buffer's first dword is the length of the buffer, minus the first dword offcourse
out:
eax = -1 on error, socket option otherwise
TIP
when you import 'network.inc' and 'macros.inc' into your source code, you can use the following syntax to work with sockets:
for example, to open a socket
mcall socket, AF_INET, SOCK_DGRAM,0
mov [socketnum], eax
then to connect to a server
mcall connect, [socketnum], sockaddr, 18
eax = 76 - Work with protocols
high half of ebx = protocol number (for all subfunctions!)
bh = device number (for all subfunctions!)
bl = subfunction number, depends on protocol type
For Ethernet protocol
0 - Read # Packets send
1 - Read # Packets received
2 - Read # Bytes send
3 - Read # Bytes received
4 - Read MAC
5 - Write MAC
6 - Read IN-QUEUE size
7 - Read OUT-QUEUE size
For IPv4 protocol
0 - Read # IP packets send
1 - Read # IP packets received
2 - Read IP
3 - Write IP
4 - Read DNS
5 - Write DNS
6 - Read subnet
7 - Write subnet
8 - Read gateway
9 - Write gateway
For ARP protocol
0 - Read # ARP packets send
1 - Read # ARP packets received
2 - Get # ARP entry's
3 - Read ARP entry
4 - Add static ARP entry
5 - Remove ARP entry (-1 = remove all)
For ICMP protocol
0 - Read # ICMP packets send
1 - Read # ICMP packets received
3 - enable/disable ICMP echo reply
For UDP protocol
0 - Read # UDP packets send
1 - Read # UDP packets received
For TCP protocol
0 - Read # TCP packets send
1 - Read # TCP packets received

View File

@ -1,68 +0,0 @@
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

Binary file not shown.

Binary file not shown.

View File

@ -1,13 +0,0 @@
AA-FASM -010-/SYS/DEVELOP/FASM - *
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-KFM -005-/SYS/File Managers/KFM - *
JA-HEXEDIT -010-/SYS/DEVELOP/HEED - *
IA-BOARD -019-/SYS/DEVELOP/BOARD - *
JC-DOCPACK -008-/SYS/DOCPACK - *
HA-MTDBG -006-/SYS/DEVELOP/MTDBG - *
IB-KPACK -010-/RD/1/KPACK - *

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.4 KiB

View File

@ -1,30 +0,0 @@
<?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>

Binary file not shown.

Binary file not shown.

View File

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

View File

@ -1,28 +0,0 @@
[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

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,99 +0,0 @@
#0 **** MAIN ****
Graphics > /@1
Sound and music > /@2
Development > /@3
System > /@5
Data processing > /@9
Network > /@10
Other > /@13
Help /rd/1/docpack
Run application /rd/1/run
Shutdown /rd/1/end
#1 **** GRAPHICS ****
Image viewer /rd/1/media/kiv
Animage /rd/1/media/animage
#2 **** AUDIO ****
MidAMP /rd/1/media/midamp
CD player /rd/1/media/cdp
#3 **** PROGRAMMING ****
Examples > /@4
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
#4 **** 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
#5 **** SYSTEM ****
Settings > /@6
System sensors > /@7
Work with files > /@8
Testing > /@14
Accessibility opt. > /@15
Debug board /rd/1/develop/board
#6 **** SETTINGS ****
Devices /rd/1/setup
Background generator /rd/1/pic4
Colors & Skin /rd/1/desktop
Icons manager /rd/1/icon
MyKey /rd/1/mykey
Video mode for ATI /rd/1/vmode
#7 **** SYSTEM SENSORS ****
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
#8 **** WORK WITH FILES ****
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
#9 **** 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
#10 **** NET ****
Servers > /@11
Clients > /@12
Zero-Config /sys/network/zeroconf
network Config /sys/network/netcfg
Network status /sys/network/netstat
ARP status /sys/network/arpcfg
#11 **** SERVERS ****
FTP daemon /sys/network/ftpd
#12 **** CLIENTS ****
TFTP client /sys/network/tftpc
Ping /sys/network/ping
Telnet /sys/network/telnet
Synergy client /sys/network/synergyc
DNS lookup /sys/network/nslookup
#13 **** OTHER ****
Analogue clock /rd/1/demos/aclock
Binary clock /rd/1/demos/bcdclk
Timer /rd/1/demos/timer
ScrShoot /rd/1/scrshoot
Calendar /rd/1/calendar
RTF reader /rd/1/rtfread
#14 **** SYSTEM TESTS ****
Protection test /rd/1/test
Monitor test /rd/1/disptest
#15 **** SYSTEM SPECIAL ****
Screen magnifier /rd/1/magnify
Screen keyboard /rd/1/zkey
Character table /rd/1/ASCIIVju
##

View File

@ -1,19 +0,0 @@
[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>

View File

@ -1,8 +0,0 @@
[ftpd]
port=21
conn=10
ip=127.0.0.1
[pasv]
start=2000
end=5000

View File

@ -1,20 +0,0 @@
; Access modes
;
; List = 1
; Read = 2
; Write = 4
; Delete = 8
; Change directory = 16
[anonymous]
; leavy pass empty to disable it
pass=
home=/rd/1/
mode=3
[test]
pass=1234
home=/rd/1/
mode=31

View File

@ -1,40 +0,0 @@
[Variables]
PanelHeight=24
PanelWidth=0
SoftenHeight=5
ButtonTopOffset=4
ButtonBottOffset=2
[Flags]
SoftenUp=1
SoftenDown=0
MinLeftButton=1
MinRightButton=1
MenuButton=1
RunApplButtons=1
ClnDesktButton=1
Clock=1
CpuUsage=1
ChangeLang=1
Attachment=1
ButtonsStyle=1
[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

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,19 +0,0 @@
[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>

View File

@ -103,7 +103,6 @@ FASM_PROGRAMS:=\
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 \
@ -133,6 +132,19 @@ FASM_PROGRAMS:=\
drivers/usbstor.obj:DRIVERS/USBSTOR.OBJ:$(KERNEL)/drivers/usbstor.asm \
drivers/vt823x.obj:DRIVERS/VT823X.OBJ:$(KERNEL)/drivers/vt823x.asm \
drivers/vidintel.obj:DRIVERS/VIDINTEL.OBJ:$(KERNEL)/drivers/vidintel.asm \
drivers/3c59x.obj:DRIVERS/3C59X.obj:$(REPOSITORY)/drivers/ethernet/3c59x.asm \
drivers/dec21x4x.obj:DRIVERS/DEC21X4X.obj:$(REPOSITORY)/drivers/ethernet/dec21x4x.asm \
drivers/forcedeth.obj:DRIVERS/FORCEDETH.obj:$(REPOSITORY)/drivers/ethernet/forcedeth.asm \
drivers/i8254x.obj:DRIVERS/I8254X.obj:$(REPOSITORY)/drivers/ethernet/i8254x.asm \
drivers/i8255x.obj:DRIVERS/I8255X.obj:$(REPOSITORY)/drivers/ethernet/i8255x.asm \
drivers/mtd80x.obj:DRIVERS/MTD80X.obj:$(REPOSITORY)/drivers/ethernet/mtd80x.asm \
drivers/pcnet32.obj:DRIVERS/PCNET32.obj:$(REPOSITORY)/drivers/ethernet/pcnet32.asm \
drivers/r6040.obj:DRIVERS/R6040.obj:$(REPOSITORY)/drivers/ethernet/R6040.asm \
drivers/rhine.obj:DRIVERS/RHINE.obj:$(REPOSITORY)/drivers/ethernet/rhine.asm \
drivers/rtl8029.obj:DRIVERS/RTL8029.obj:$(REPOSITORY)/drivers/ethernet/RTL8029.asm \
drivers/rtl8139.obj:DRIVERS/RTL8139.obj:$(REPOSITORY)/drivers/ethernet/RTL8139.asm \
drivers/rtl8169.obj:DRIVERS/RTL8169.obj:$(REPOSITORY)/drivers/ethernet/RTL8169.asm \
drivers/sis900.obj:DRIVERS/SIS900.obj:$(REPOSITORY)/drivers/ethernet/sis900.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 \
@ -175,23 +187,18 @@ FASM_PROGRAMS:=\
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 \
network/arpcfg:NETWORK/ARPCFG:$(PROGS)/network/arpcfg/arpcfg.asm \
network/ping:NETWORK/PING:$(PROGS)/network/icmp/ping.asm \
network/netcfg:NETWORK/NETCFG:$(PROGS)/network/netcfg/netcfg.asm \
network/netstat:NETWORK/NETSTAT:$(PROGS)/network/netstat/netstat.asm \
network/nslookup:NETWORK/NSLOOKUP:$(PROGS)/network/nslookup/nslookup.asm \
network/synergyc:NETWORK/SYNERGYC:$(PROGS)/network/synergyc/synergyc.asm \
network/tcpserv:NETWORK/TCPSERV:$(PROGS)/network/tcpserv/tcpserv.asm \
network/telnet:NETWORK/TELNET:$(PROGS)/network/telnet/telnet.asm \
network/zeroconf:NETWORK/ZEROCONF:$(PROGS)/network/zeroconf/zeroconf.asm \
network/ftpd:NETWORK/FTPD:$(PROGS)/network/ftpd/ftpd.asm \
network/tftpc:NETWORK/TFTPC:$(PROGS)/network/tftpc/tftpc.asm \
network/ircc:NETWORK/IRCC:$(PROGS)/network/ircc/ircc.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.
@ -298,7 +305,7 @@ OTHER_FILES:=autorun.dat:AUTORUN.DAT \
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 \
network.ini:NETWORK.INI \
#end of list
# Generate skins list understandable by gnu make

View File

@ -7,6 +7,7 @@
#/RD/1/COMMOUSE "" 1 # COM mice detector
#/RD/1/DEVELOP/BOARD "" 1 # Load DEBUG board
#/RD/1/refrscrn "" 1 # Refresh screen
/RD/1/NETWORK/NETCFG A 1 #
/RD/1/NETWORK/ZEROCONF "" 1 # Network configuration
/RD/1/MEDIA/PALITRA "H 007DCEDF 003C427F" 1 #SET BG
/RD/1/@PANEL "" 1 # Start panel

View File

@ -128,27 +128,19 @@ Hex-Editor /rd/1/develop/heed
#15 **** RED ****
Servidores > /@16
Clientes > /@17
Configuraci¢n /rd/1/network/stackcfg
Zero-Config /rd/1/network/zeroconf
Estado /rd/1/network/ethstat
Estado de ARP /rd/1/network/arpstat
Zero-Config /sys/network/zeroconf
network Config /sys/network/netcfg
Network status /sys/network/netstat
ARP status /sys/network/arpcfg
#16 **** SERVIDORES ****
SMTPS /rd/1/network/smtps
HTTPS /rd/1/network/https
FTPS /rd/1/network/ftps
FTP daemon /sys/network/ftpd
#17 **** CLIENTES ****
Cliente TFTP /rd/1/network/tftpc
Ajedrz /rd/1/network/chess
Cliente de descarga /rd/1/network/downloader
Navegador (modo texto) /rd/1/htmlv
Grupos de noticias NNTP /rd/1/network/nntpc
TELNET /rd/1/network/telnet
Correo POP /rd/1/network/popc
IRC /rd/1/network/airc
YAHOO messenger (demo) /rd/1/network/ym
JMail /rd/1/network/jmail
Cliente VNC /rd/1/network/vncclient
Resoluci¢n de nombres /rd/1/network/nslookup
IRC client /sys/network/ircc
TFTP client /sys/network/tftpc
Ping /sys/network/ping
Telnet client /sys/network/telnet
Synergy client /sys/network/synergyc
DNS lookup /sys/network/nslookup
#18 **** OTROS ****
Reloj anal¢gico /rd/1/demos/aclock
Reloj binario /rd/1/demos/bcdclk

9
data/sp/network.ini Normal file
View File

@ -0,0 +1,9 @@
[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 = 192.168.1.150
gateway = 192.168.1.1
dns = 192.168.1.1
subnet = 255.255.255.0

Binary file not shown.

View File

@ -1,19 +0,0 @@
[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>