Compare commits
44 Commits
improvemen
...
e04ecfe211
Author | SHA1 | Date | |
---|---|---|---|
e04ecfe211 | |||
784b02b4a4 | |||
|
7a2e48bed2 | ||
31ca1c76bb | |||
99ddd88ff8 | |||
4f1a8ef9a1 | |||
93f12c7673 | |||
|
3eb02af5fd | ||
|
83d8146ad1 | ||
|
1974f45c50 | ||
36ce6f0b74 | |||
4701a15222 | |||
61277f8822 | |||
abb7442055 | |||
81b15607dc | |||
30d8d45326 | |||
9a23c001e1 | |||
64b7372624 | |||
d04420295a | |||
2935b29fd8 | |||
505f741fbd | |||
5a852ebdfb | |||
026d2aba40 | |||
|
9b08b20cc3 | ||
38fdd13e0c | |||
d9679f5f81 | |||
92ea2a97eb | |||
98cccc438c | |||
79d9f42085 | |||
b39150ecea | |||
1a40899780 | |||
25b79ca6d1 | |||
2e3548d92a | |||
ed8e4ecf33 | |||
6a9608c7a4 | |||
d8c6274d19 | |||
1df7b2fd4c | |||
9001dbc1b4 | |||
c11c7922bd | |||
739facfeca | |||
8c9a971e2c | |||
5aa17d5823 | |||
4d6ef342e1 | |||
8e5b315fd4 |
213
.gitea/workflows/build.yaml
Normal file
@@ -0,0 +1,213 @@
|
|||||||
|
# SPDX-License-Identifier: GPL-2.0-only
|
||||||
|
# SPDX-FileCopyrightText: 2025 KolibriOS team
|
||||||
|
|
||||||
|
name: 'Build system'
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- 'main'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
codestyle:
|
||||||
|
name: "Check kernel codestyle"
|
||||||
|
runs-on: kolibri-toolchain
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Check codestyle
|
||||||
|
run: |
|
||||||
|
find kernel/trunk -iname '*.asm' -or -iname '*.inc' -exec bash -c "echo {}; cat {} | perl .gitea/workflows/checker.pl" \;
|
||||||
|
|
||||||
|
build:
|
||||||
|
name: 'Build'
|
||||||
|
runs-on: kolibri-toolchain
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Get describe
|
||||||
|
id: vars
|
||||||
|
run: echo "sha_short=$(git rev-parse --short HEAD)" >> $GITEA_OUTPUT
|
||||||
|
|
||||||
|
- name: Get toolchain hash
|
||||||
|
id: toolchain-hash
|
||||||
|
run: |
|
||||||
|
a=$(find ${{ gitea.workspace }}/programs/develop/cmm/ -type f -print0 | sort -z | xargs -0 sha1sum)
|
||||||
|
b=$(sha1sum ${{ gitea.workspace }}/programs/develop/ktcc/trunk/bin/kos32-tcc)
|
||||||
|
c=$(find ${{ gitea.workspace }}/programs/develop/objconv/ -type f -print0 | sort -z | xargs -0 sha1sum)
|
||||||
|
d=$(find ${{ gitea.workspace }}/programs/other/kpack/kerpack_linux/ -type f -print0 | sort -z | xargs -0 sha1sum)
|
||||||
|
e=$(find ${{ gitea.workspace }}/programs/other/kpack/linux/ -type f -print0 | sort -z | xargs -0 sha1sum)
|
||||||
|
f=$(find ${{ gitea.workspace }}/programs/develop/clink/ -type f -print0 | sort -z | xargs -0 sha1sum)
|
||||||
|
echo hash=$(echo $a $b $c $d $e $f | sha1sum | awk '{print $1}') >> $GITEA_OUTPUT
|
||||||
|
|
||||||
|
- name: Restore toolchain
|
||||||
|
id: cache-toolchain
|
||||||
|
uses: actions/cache/restore@v4
|
||||||
|
with:
|
||||||
|
path: /home/autobuild
|
||||||
|
key: kolibri-toolchain-${{ steps.toolchain-hash.outputs.hash }}
|
||||||
|
|
||||||
|
- name: Build and install C--
|
||||||
|
if: steps.cache-toolchain.outputs.cache-hit != 'true'
|
||||||
|
run: |
|
||||||
|
cd ${{ gitea.workspace }}/programs/develop/cmm/
|
||||||
|
make -f Makefile.lin32
|
||||||
|
chmod +x c--
|
||||||
|
mv c-- /home/autobuild/tools/win32/bin/c--
|
||||||
|
cp ${{ gitea.workspace }}/programs/cmm/c--/c--.ini /home/autobuild/tools/win32/bin/c--.ini
|
||||||
|
make -f Makefile.lin32 clean
|
||||||
|
|
||||||
|
- name: Install TCC
|
||||||
|
if: steps.cache-toolchain.outputs.cache-hit != 'true'
|
||||||
|
run: |
|
||||||
|
cp ${{ gitea.workspace }}/programs/develop/ktcc/trunk/bin/kos32-tcc /home/autobuild/tools/win32/bin/kos32-tcc
|
||||||
|
chmod +x /home/autobuild/tools/win32/bin/kos32-tcc
|
||||||
|
|
||||||
|
- name: Build and install objconv
|
||||||
|
if: steps.cache-toolchain.outputs.cache-hit != 'true'
|
||||||
|
run: |
|
||||||
|
cd ${{ gitea.workspace }}/programs/develop/objconv/
|
||||||
|
g++ -o /home/autobuild/tools/win32/bin/objconv -O2 *.cpp
|
||||||
|
chmod +x /home/autobuild/tools/win32/bin/objconv
|
||||||
|
|
||||||
|
- name: Build and install kerpack
|
||||||
|
if: steps.cache-toolchain.outputs.cache-hit != 'true'
|
||||||
|
run: |
|
||||||
|
cd ${{ gitea.workspace }}/programs/other/kpack/kerpack_linux/
|
||||||
|
make
|
||||||
|
chmod +x kerpack
|
||||||
|
mv kerpack /home/autobuild/tools/win32/bin/.
|
||||||
|
|
||||||
|
- name: Build and install kpack
|
||||||
|
if: steps.cache-toolchain.outputs.cache-hit != 'true'
|
||||||
|
run: |
|
||||||
|
cd ${{ gitea.workspace }}/programs/other/kpack/linux/
|
||||||
|
bash build.sh
|
||||||
|
chmod +x kpack
|
||||||
|
mv kpack /home/autobuild/tools/win32/bin/.
|
||||||
|
|
||||||
|
- name: Build and install clink
|
||||||
|
if: steps.cache-toolchain.outputs.cache-hit != 'true'
|
||||||
|
run: |
|
||||||
|
cd ${{ gitea.workspace }}/programs/develop/clink
|
||||||
|
gcc main.c -o clink
|
||||||
|
chmod a+x clink
|
||||||
|
mv clink /home/autobuild/tools/win32/bin/clink
|
||||||
|
|
||||||
|
- name: Prepare cache folder
|
||||||
|
run: |
|
||||||
|
rm /home/autobuild
|
||||||
|
mv /root/autobuild /home/autobuild
|
||||||
|
if: steps.cache-toolchain.outputs.cache-hit != 'true'
|
||||||
|
|
||||||
|
- name: Save toolchain
|
||||||
|
if: steps.cache-toolchain.outputs.cache-hit != 'true'
|
||||||
|
uses: actions/cache/save@v4
|
||||||
|
with:
|
||||||
|
path: /home/autobuild
|
||||||
|
key: kolibri-toolchain-${{ steps.toolchain-hash.outputs.hash }}
|
||||||
|
|
||||||
|
- name: Configure tup
|
||||||
|
run: |
|
||||||
|
cd ${{ gitea.workspace }}
|
||||||
|
|
||||||
|
export ROOT=${{ gitea.workspace }}
|
||||||
|
echo "CONFIG_KPACK_CMD= && kpack --nologo %o" | tee en_US.config ru_RU.config es_ES.config
|
||||||
|
echo "CONFIG_KERPACK_CMD= && kerpack %o" | tee -a en_US.config ru_RU.config es_ES.config
|
||||||
|
echo "CONFIG_PESTRIP_CMD= && EXENAME=%o fasm $ROOT/data/common/pestrip.asm %o" | tee -a en_US.config ru_RU.config es_ES.config
|
||||||
|
echo "CONFIG_NO_MSVC=full" | tee -a en_US.config ru_RU.config es_ES.config
|
||||||
|
echo "CONFIG_INSERT_REVISION_ID=1" | tee -a en_US.config ru_RU.config es_ES.config
|
||||||
|
|
||||||
|
tup -v
|
||||||
|
tup init
|
||||||
|
|
||||||
|
# Configure en_US
|
||||||
|
echo "CONFIG_LANG=en_US" >> en_US.config
|
||||||
|
echo "CONFIG_BUILD_TYPE=en_US" >> en_US.config
|
||||||
|
tup variant en_US.config
|
||||||
|
|
||||||
|
# Configure ru_RU
|
||||||
|
echo "CONFIG_LANG=ru_RU" >> ru_RU.config
|
||||||
|
echo "CONFIG_BUILD_TYPE=ru_RU" >> ru_RU.config
|
||||||
|
tup variant ru_RU.config
|
||||||
|
|
||||||
|
# Configure es_ES
|
||||||
|
echo "CONFIG_LANG=es_ES" >> es_ES.config
|
||||||
|
echo "CONFIG_BUILD_TYPE=es_ES" >> es_ES.config
|
||||||
|
tup variant es_ES.config
|
||||||
|
|
||||||
|
# -------------------------- Build en_US ------------------------- #
|
||||||
|
- name: (en_US) Build KolibriOS
|
||||||
|
run: |
|
||||||
|
export PATH=/home/autobuild/tools/win32/bin:$PATH
|
||||||
|
tup build-en_US
|
||||||
|
|
||||||
|
- name: (en_US) Upload floppy image
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: kolibrios-en_US-${{ steps.vars.outputs.sha_short }}.img
|
||||||
|
path: build-en_US/data/kolibri.img
|
||||||
|
|
||||||
|
- name: (en_US) Upload CD image
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: kolibrios-en_US-${{ steps.vars.outputs.sha_short }}.iso
|
||||||
|
path: build-en_US/data/kolibri.iso
|
||||||
|
|
||||||
|
- name: (en_US) Upload raw image
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: kolibrios-en_US-${{ steps.vars.outputs.sha_short }}.raw
|
||||||
|
path: build-en_US/data/kolibri.raw
|
||||||
|
|
||||||
|
# -------------------------- Build ru_RU ------------------------- #
|
||||||
|
- name: (ru_RU) Build KolibriOS
|
||||||
|
run: |
|
||||||
|
export PATH=/home/autobuild/tools/win32/bin:$PATH
|
||||||
|
tup build-ru_RU
|
||||||
|
|
||||||
|
- name: (ru_RU) Upload floppy image
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: kolibrios-ru_RU-${{ steps.vars.outputs.sha_short }}.img
|
||||||
|
path: build-ru_RU/data/kolibri.img
|
||||||
|
|
||||||
|
- name: (ru_RU) Upload CD image
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: kolibrios-ru_RU-${{ steps.vars.outputs.sha_short }}.iso
|
||||||
|
path: build-ru_RU/data/kolibri.iso
|
||||||
|
|
||||||
|
- name: (ru_RU) Upload raw image
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: kolibrios-ru_RU-${{ steps.vars.outputs.sha_short }}.raw
|
||||||
|
path: build-ru_RU/data/kolibri.raw
|
||||||
|
|
||||||
|
# -------------------------- Build es_ES ------------------------- #
|
||||||
|
- name: (es_ES) Build KolibriOS
|
||||||
|
run: |
|
||||||
|
export PATH=/home/autobuild/tools/win32/bin:$PATH
|
||||||
|
tup build-es_ES
|
||||||
|
|
||||||
|
- name: (es_ES) Upload floppy image
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: kolibrios-es_ES-${{ steps.vars.outputs.sha_short }}.img
|
||||||
|
path: build-es_ES/data/kolibri.img
|
||||||
|
|
||||||
|
- name: (es_ES) Upload CD image
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: kolibrios-es_ES-${{ steps.vars.outputs.sha_short }}.iso
|
||||||
|
path: build-es_ES/data/kolibri.iso
|
||||||
|
|
||||||
|
- name: (es_ES) Upload raw image
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: kolibrios-es_ES-${{ steps.vars.outputs.sha_short }}.raw
|
||||||
|
path: build-es_ES/data/kolibri.raw
|
54
.gitea/workflows/checker.pl
Normal file
82
.gitea/workflows/install_kgcc
Normal file
@@ -0,0 +1,82 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# SPDX-License-Identifier: GPL-2.0-only
|
||||||
|
# SPDX-FileCopyrightText: 2025 KolibriOS Team
|
||||||
|
|
||||||
|
# Written by mxlgv (Maxim Logaev)
|
||||||
|
# Installation steps described by maxcodehack (Maxim Kuzmitsky)
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
print_msg(){
|
||||||
|
echo -e "\e[34m$1\e[0m"
|
||||||
|
}
|
||||||
|
|
||||||
|
print_ok(){
|
||||||
|
echo -e "\e[32m$1\e[0m"
|
||||||
|
}
|
||||||
|
|
||||||
|
print_err(){
|
||||||
|
echo -e "\e[31m$1\e[0m"
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
|
||||||
|
check_utils(){
|
||||||
|
printf "%s: " $1
|
||||||
|
if command -v $1 &> /dev/null
|
||||||
|
then
|
||||||
|
print_ok "ok\r"
|
||||||
|
else
|
||||||
|
print_err "no\r"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
print_msg "Checking utilities..."
|
||||||
|
|
||||||
|
check_utils wget
|
||||||
|
check_utils 7z
|
||||||
|
|
||||||
|
print_msg "Create the /home/autobuild folder..."
|
||||||
|
sudo rm -rf ~/autobuild /home/autobuild
|
||||||
|
mkdir -p ~/autobuild/tools
|
||||||
|
sudo ln -sf ~/autobuild /home/autobuild
|
||||||
|
print_ok "Successfully!"
|
||||||
|
|
||||||
|
print_msg "Download the kos32-gcc toolchain..."
|
||||||
|
wget http://ftp.kolibrios.org/users/Serge/new/Toolchain/x86_64-linux-kos32-5.4.0.7z -O ~/autobuild/tools/kos32-toolchain.7z
|
||||||
|
print_ok "Successfully!"
|
||||||
|
|
||||||
|
print_msg "Extracting files ..."
|
||||||
|
cd ~/autobuild/tools/
|
||||||
|
7z x -y kos32-toolchain.7z
|
||||||
|
rm -rf kos32-toolchain.7z
|
||||||
|
print_ok "Successfully!"
|
||||||
|
|
||||||
|
print_msg "Downloading libisl..."
|
||||||
|
cd /tmp
|
||||||
|
sudo wget http://board.kolibrios.org/download/file.php?id=8301libisl.so.10.2.2.7z -O /tmp/libisl.so.10.2.2.7z
|
||||||
|
sudo 7z x -y libisl.so.10.2.2.7z
|
||||||
|
|
||||||
|
if ! [ -d /usr/lib/x86_64-linux-gnu/ ]; then
|
||||||
|
sudo mkdir -p /usr/lib/x86_64-linux-gnu/
|
||||||
|
fi
|
||||||
|
|
||||||
|
print_msg "Fixing libisl..."
|
||||||
|
sudo mv /tmp/libisl.so.10.2.2 /usr/lib/x86_64-linux-gnu/libisl.so.10.2.2
|
||||||
|
sudo ln -sf /usr/lib/x86_64-linux-gnu/libisl.so.10.2.2 /usr/lib/x86_64-linux-gnu/libisl.so.10
|
||||||
|
sudo ln -sf /usr/lib/x86_64-linux-gnu/libisl.so.10.2.2 /usr/lib/libisl.so.10
|
||||||
|
sudo chmod go-w /usr/lib/x86_64-linux-gnu/libisl.so.10
|
||||||
|
sudo chmod go-w /usr/lib/x86_64-linux-gnu/libisl.so.10.2.2
|
||||||
|
print_ok "Successfully!"
|
||||||
|
|
||||||
|
print_msg "Fixing libmpfr..."
|
||||||
|
sudo ln -sf /usr/lib/x86_64-linux-gnu/libmpfr.so.6 /usr/lib/x86_64-linux-gnu/libmpfr.so.4
|
||||||
|
sudo ln -sf /usr/lib/libmpfr.so.6 /usr/lib/libmpfr.so.4
|
||||||
|
print_ok "Successfully!"
|
||||||
|
|
||||||
|
if ! grep -q 'export PATH=$PATH:/home/autobuild/tools/win32/bin' ~/.bashrc; then
|
||||||
|
export PATH=$PATH:/home/autobuild/tools/win32/bin
|
||||||
|
print_msg "Adding '/home/autobuild/tools/win32/bin' to '~/.bashrc'"
|
||||||
|
echo 'export PATH=$PATH:/home/autobuild/tools/win32/bin' >> ~/.bashrc
|
||||||
|
fi
|
||||||
|
print_ok "Installation was successful!"
|
@@ -407,6 +407,7 @@ tup.append_table(img_files, {
|
|||||||
{"@SS", VAR_PROGS .. "/system/scrsaver/scrsaver"},
|
{"@SS", VAR_PROGS .. "/system/scrsaver/scrsaver"},
|
||||||
{"@VOLUME", VAR_PROGS .. "/media/volume/volume"},
|
{"@VOLUME", VAR_PROGS .. "/media/volume/volume"},
|
||||||
{"HACONFIG", VAR_PROGS .. "/other/ha/HACONFIG"},
|
{"HACONFIG", VAR_PROGS .. "/other/ha/HACONFIG"},
|
||||||
|
{"ACLOCK", VAR_PROGS .. "/demos/aclock/aclock"},
|
||||||
{"APM", VAR_PROGS .. "/system/apm/apm"},
|
{"APM", VAR_PROGS .. "/system/apm/apm"},
|
||||||
{"CALC", VAR_PROGS .. "/other/calc/trunk/calc"},
|
{"CALC", VAR_PROGS .. "/other/calc/trunk/calc"},
|
||||||
{"CALENDAR", VAR_PROGS .. "/system/calendar/trunk/calendar"},
|
{"CALENDAR", VAR_PROGS .. "/system/calendar/trunk/calendar"},
|
||||||
@@ -441,6 +442,8 @@ tup.append_table(img_files, {
|
|||||||
{"TERMINAL", VAR_PROGS .. "/system/terminal/terminal"},
|
{"TERMINAL", VAR_PROGS .. "/system/terminal/terminal"},
|
||||||
{"TEST", VAR_PROGS .. "/testing/protection/trunk/test"},
|
{"TEST", VAR_PROGS .. "/testing/protection/trunk/test"},
|
||||||
{"TINYPAD", VAR_PROGS .. "/develop/tinypad/trunk/tinypad"},
|
{"TINYPAD", VAR_PROGS .. "/develop/tinypad/trunk/tinypad"},
|
||||||
|
{"TINFO", VAR_PROGS .. "/system/tinfo/tinfo"},
|
||||||
|
{"TIMER", VAR_PROGS .. "/other/Timer/Timer"},
|
||||||
{"UNZ", VAR_PROGS .. "/fs/unz/unz"},
|
{"UNZ", VAR_PROGS .. "/fs/unz/unz"},
|
||||||
{"ZKEY", VAR_PROGS .. "/system/zkey/trunk/ZKEY"},
|
{"ZKEY", VAR_PROGS .. "/system/zkey/trunk/ZKEY"},
|
||||||
{"3D/3DWAV", VAR_PROGS .. "/demos/3dwav/trunk/3dwav"},
|
{"3D/3DWAV", VAR_PROGS .. "/demos/3dwav/trunk/3dwav"},
|
||||||
@@ -459,31 +462,32 @@ tup.append_table(img_files, {
|
|||||||
{"DEMOS/SPIRAL", VAR_PROGS .. "/demos/spiral/spiral"},
|
{"DEMOS/SPIRAL", VAR_PROGS .. "/demos/spiral/spiral"},
|
||||||
{"DEMOS/TINYFRAC", VAR_PROGS .. "/demos/tinyfrac/trunk/tinyfrac"},
|
{"DEMOS/TINYFRAC", VAR_PROGS .. "/demos/tinyfrac/trunk/tinyfrac"},
|
||||||
{"DEMOS/TRANTEST", VAR_PROGS .. "/demos/trantest/trunk/trantest"},
|
{"DEMOS/TRANTEST", VAR_PROGS .. "/demos/trantest/trunk/trantest"},
|
||||||
{"DEMOS/TUBE", VAR_PROGS .. "/demos/tube/trunk/tube"},
|
{"DEMOS/TUBE", VAR_PROGS .. "/demos/tube/tube"},
|
||||||
{"DEMOS/UNVWATER", VAR_PROGS .. "/demos/unvwater/trunk/unvwater"},
|
{"DEMOS/UNVWATER", VAR_PROGS .. "/demos/unvwater/unvwater"},
|
||||||
{"DEMOS/WEB", VAR_PROGS .. "/demos/web/trunk/web"},
|
{"DEMOS/WEB", VAR_PROGS .. "/demos/web/trunk/web"},
|
||||||
{"DEMOS/ZEROLINE", VAR_PROGS .. "/demos/zeroline/trunk/zeroline"},
|
{"DEMOS/ZEROLINE", VAR_PROGS .. "/demos/zeroline/trunk/zeroline"},
|
||||||
{"DEVELOP/ASCIIVJU", VAR_PROGS .. "/develop/asciivju/trunk/asciivju"},
|
|
||||||
{"DEVELOP/BOARD", VAR_PROGS .. "/system/board/trunk/board"},
|
{"DEVELOP/BOARD", VAR_PROGS .. "/system/board/trunk/board"},
|
||||||
|
{"DEVELOP/DBGBOARD", VAR_PROGS .. "/system/dbgboard/dbgboard"},
|
||||||
{"DEVELOP/CEDIT", SRC_PROGS .. "/develop/cedit/CEDIT"},
|
{"DEVELOP/CEDIT", SRC_PROGS .. "/develop/cedit/CEDIT"},
|
||||||
|
{"DEVELOP/CHARSETS", VAR_PROGS .. "/develop/charsets/charsets"},
|
||||||
{"DEVELOP/COBJ", VAR_PROGS .. "/develop/cObj/trunk/cObj"},
|
{"DEVELOP/COBJ", VAR_PROGS .. "/develop/cObj/trunk/cObj"},
|
||||||
{"DEVELOP/ENTROPYV", VAR_PROGS .. "/develop/entropyview/entropyview"},
|
{"DEVELOP/ENTROPYV", VAR_PROGS .. "/develop/entropyview/entropyview"},
|
||||||
{"DEVELOP/FASM", VAR_PROGS .. "/develop/fasm/1.73/fasm"},
|
{"DEVELOP/FASM", VAR_PROGS .. "/develop/fasm/1.73/fasm"},
|
||||||
|
{"DEVELOP/GENFILES", VAR_PROGS .. "/testing/genfiles/GenFiles"},
|
||||||
{"DEVELOP/H2D2B", VAR_PROGS .. "/develop/h2d2b/trunk/h2d2b"},
|
{"DEVELOP/H2D2B", VAR_PROGS .. "/develop/h2d2b/trunk/h2d2b"},
|
||||||
{"DEVELOP/HEED", VAR_PROGS .. "/develop/heed/trunk/heed"},
|
{"DEVELOP/HEED", VAR_PROGS .. "/develop/heed/trunk/heed"},
|
||||||
{"DEVELOP/KEYASCII", VAR_PROGS .. "/develop/keyascii/trunk/keyascii"},
|
|
||||||
{"DEVELOP/MTDBG", VAR_PROGS .. "/develop/mtdbg/mtdbg"},
|
{"DEVELOP/MTDBG", VAR_PROGS .. "/develop/mtdbg/mtdbg"},
|
||||||
|
{"DEVELOP/MSTATE", VAR_PROGS .. "/develop/mstate/mstate"},
|
||||||
{"DEVELOP/SCANCODE", VAR_PROGS .. "/develop/scancode/trunk/scancode"},
|
{"DEVELOP/SCANCODE", VAR_PROGS .. "/develop/scancode/trunk/scancode"},
|
||||||
{"DEVELOP/EXAMPLES/CIRCLE", VAR_PROGS .. "/develop/examples/circle/trunk/circle"},
|
{"DEVELOP/EXAMPLES/CIRCLE", VAR_PROGS .. "/develop/examples/circle/trunk/circle"},
|
||||||
{"DEVELOP/EXAMPLES/COLORREF", VAR_PROGS .. "/demos/colorref/trunk/colorref"},
|
{"DEVELOP/EXAMPLES/COLORREF", VAR_PROGS .. "/demos/colorref/trunk/colorref"},
|
||||||
{"DEVELOP/EXAMPLES/CONGET", VAR_PROGS .. "/develop/libraries/console_coff/examples/test_gets"},
|
{"DEVELOP/EXAMPLES/CONGET", VAR_PROGS .. "/develop/libraries/console_coff/examples/test_gets"},
|
||||||
{"DEVELOP/EXAMPLES/CSLIDE", VAR_PROGS .. "/demos/cslide/trunk/cslide"},
|
{"DEVELOP/EXAMPLES/CSLIDE", VAR_PROGS .. "/demos/cslide/trunk/cslide"},
|
||||||
{"DEVELOP/EXAMPLES/THREAD", VAR_PROGS .. "/develop/examples/thread/trunk/thread"},
|
{"DEVELOP/EXAMPLES/THREAD", VAR_PROGS .. "/develop/examples/thread/trunk/thread"},
|
||||||
{"DEVELOP/EXAMPLES/USE_MB", VAR_PROGS .. "/demos/use_mb/use_mb"},
|
|
||||||
{"File Managers/KFAR", VAR_PROGS .. "/fs/kfar/trunk/kfar"},
|
{"File Managers/KFAR", VAR_PROGS .. "/fs/kfar/trunk/kfar"},
|
||||||
{"File Managers/OPENDIAL", VAR_PROGS .. "/fs/opendial/opendial"},
|
{"File Managers/OPENDIAL", VAR_PROGS .. "/fs/opendial/opendial"},
|
||||||
|
{"LOD", VAR_PROGS .. "/fs/lod/lod"},
|
||||||
{"GAMES/15", VAR_PROGS .. "/games/15/15"},
|
{"GAMES/15", VAR_PROGS .. "/games/15/15"},
|
||||||
{"GAMES/DINO", VAR_PROGS .. "/games/dino/dino"},
|
|
||||||
{"GAMES/FREECELL", VAR_PROGS .. "/games/freecell/freecell"},
|
{"GAMES/FREECELL", VAR_PROGS .. "/games/freecell/freecell"},
|
||||||
{"GAMES/GOMOKU", VAR_PROGS .. "/games/gomoku/gomoku"},
|
{"GAMES/GOMOKU", VAR_PROGS .. "/games/gomoku/gomoku"},
|
||||||
{"GAMES/LIGHTS", VAR_PROGS .. "/games/sq_game/SQ_GAME"},
|
{"GAMES/LIGHTS", VAR_PROGS .. "/games/sq_game/SQ_GAME"},
|
||||||
@@ -498,6 +502,7 @@ tup.append_table(img_files, {
|
|||||||
{"GAMES/SW", VAR_PROGS .. "/games/sw/sw"},
|
{"GAMES/SW", VAR_PROGS .. "/games/sw/sw"},
|
||||||
{"GAMES/TANKS", VAR_PROGS .. "/games/tanks/tanks"},
|
{"GAMES/TANKS", VAR_PROGS .. "/games/tanks/tanks"},
|
||||||
{"GAMES/TETRIS", VAR_PROGS .. "/games/tetris/tetris"},
|
{"GAMES/TETRIS", VAR_PROGS .. "/games/tetris/tetris"},
|
||||||
|
{"GAMES/C4", VAR_PROGS .. "/games/c4/c4"},
|
||||||
{"LIB/ARCHIVER.OBJ", VAR_PROGS .. "/fs/kfar/trunk/kfar_arc/kfar_arc.obj"},
|
{"LIB/ARCHIVER.OBJ", VAR_PROGS .. "/fs/kfar/trunk/kfar_arc/kfar_arc.obj"},
|
||||||
{"LIB/BOX_LIB.OBJ", VAR_PROGS .. "/develop/libraries/box_lib/trunk/box_lib.obj"},
|
{"LIB/BOX_LIB.OBJ", VAR_PROGS .. "/develop/libraries/box_lib/trunk/box_lib.obj"},
|
||||||
{"LIB/BUF2D.OBJ", VAR_PROGS .. "/develop/libraries/buf2d/trunk/buf2d.obj"},
|
{"LIB/BUF2D.OBJ", VAR_PROGS .. "/develop/libraries/buf2d/trunk/buf2d.obj"},
|
||||||
@@ -517,6 +522,7 @@ tup.append_table(img_files, {
|
|||||||
{"LIB/SORT.OBJ", VAR_PROGS .. "/develop/libraries/sorter/sort.obj"},
|
{"LIB/SORT.OBJ", VAR_PROGS .. "/develop/libraries/sorter/sort.obj"},
|
||||||
{"LIB/TINYGL.OBJ", VAR_PROGS .. "/develop/libraries/TinyGL/asm_fork/tinygl.obj"},
|
{"LIB/TINYGL.OBJ", VAR_PROGS .. "/develop/libraries/TinyGL/asm_fork/tinygl.obj"},
|
||||||
{"MEDIA/ANIMAGE", VAR_PROGS .. "/media/animage/trunk/animage"},
|
{"MEDIA/ANIMAGE", VAR_PROGS .. "/media/animage/trunk/animage"},
|
||||||
|
{"MEDIA/FILLSCR", VAR_PROGS .. "/media/FillScr/fillscr"},
|
||||||
{"MEDIA/KIV", VAR_PROGS .. "/media/kiv/trunk/kiv"},
|
{"MEDIA/KIV", VAR_PROGS .. "/media/kiv/trunk/kiv"},
|
||||||
{"MEDIA/LISTPLAY", VAR_PROGS .. "/media/listplay/trunk/listplay"},
|
{"MEDIA/LISTPLAY", VAR_PROGS .. "/media/listplay/trunk/listplay"},
|
||||||
{"MEDIA/MIDAMP", VAR_PROGS .. "/media/midamp/trunk/midamp"},
|
{"MEDIA/MIDAMP", VAR_PROGS .. "/media/midamp/trunk/midamp"},
|
||||||
@@ -599,7 +605,6 @@ tup.append_table(extra_files, {
|
|||||||
{"kolibrios/demos/life3", VAR_PROGS .. "/games/life3/life3"},
|
{"kolibrios/demos/life3", VAR_PROGS .. "/games/life3/life3"},
|
||||||
{"kolibrios/demos/qjulia", VAR_PROGS .. "/demos/qjulia/trunk/qjulia"},
|
{"kolibrios/demos/qjulia", VAR_PROGS .. "/demos/qjulia/trunk/qjulia"},
|
||||||
{"kolibrios/develop/koldbg", VAR_PROGS .. "/develop/koldbg/koldbg"},
|
{"kolibrios/develop/koldbg", VAR_PROGS .. "/develop/koldbg/koldbg"},
|
||||||
{"kolibrios/develop/utils/charset_checker", VAR_PROGS .. "/other/charset_checker/charchck"},
|
|
||||||
{"kolibrios/games/Almaz", VAR_PROGS .. "/games/almaz/almaz"},
|
{"kolibrios/games/Almaz", VAR_PROGS .. "/games/almaz/almaz"},
|
||||||
{"kolibrios/games/arcanii", VAR_PROGS .. "/games/arcanii/arcanii"},
|
{"kolibrios/games/arcanii", VAR_PROGS .. "/games/arcanii/arcanii"},
|
||||||
{"kolibrios/games/bomber/bomber", VAR_PROGS .. "/games/bomber/bomber"},
|
{"kolibrios/games/bomber/bomber", VAR_PROGS .. "/games/bomber/bomber"},
|
||||||
@@ -630,7 +635,7 @@ if build_type == "ru_RU" then tup.append_table(img_files, {
|
|||||||
{"GAMES/KLAVISHA", VAR_PROGS .. "/games/klavisha/klavisha"},
|
{"GAMES/KLAVISHA", VAR_PROGS .. "/games/klavisha/klavisha"},
|
||||||
{"DEVELOP/EXAMPLES/TESTCON2", VAR_PROGS .. "/develop/libraries/console_coff/examples/testcon2_rus"},
|
{"DEVELOP/EXAMPLES/TESTCON2", VAR_PROGS .. "/develop/libraries/console_coff/examples/testcon2_rus"},
|
||||||
}) else tup.append_table(img_files, {
|
}) else tup.append_table(img_files, {
|
||||||
{"DEVELOP/TESTCON2", VAR_PROGS .. "/develop/libraries/console_coff/examples/testcon2_eng"},
|
{"DEVELOP/EXAMPLES/TESTCON2", VAR_PROGS .. "/develop/libraries/console_coff/examples/testcon2_eng"},
|
||||||
}) end
|
}) end
|
||||||
|
|
||||||
if build_type == "ru_RU" then tup.append_table(extra_files, {
|
if build_type == "ru_RU" then tup.append_table(extra_files, {
|
||||||
@@ -639,22 +644,6 @@ if build_type == "ru_RU" then tup.append_table(extra_files, {
|
|||||||
|
|
||||||
end -- tup.getconfig('NO_FASM') ~= 'full'
|
end -- tup.getconfig('NO_FASM') ~= 'full'
|
||||||
|
|
||||||
-- Programs that require NASM to compile.
|
|
||||||
if tup.getconfig('NO_NASM') ~= 'full' then
|
|
||||||
tup.append_table(img_files, {
|
|
||||||
{"ACLOCK", VAR_PROGS .. "/demos/aclock/trunk/aclock"},
|
|
||||||
{"LOD", VAR_PROGS .. "/fs/lod/lod"},
|
|
||||||
{"TIMER", VAR_PROGS .. "/other/Timer/timer"},
|
|
||||||
{"TINFO", VAR_PROGS .. "/system/tinfo/tinfo"},
|
|
||||||
{"DEVELOP/MSTATE", VAR_PROGS .. "/develop/mstate/mstate"},
|
|
||||||
{"DEVELOP/GENFILES", VAR_PROGS .. "/testing/genfiles/GenFiles"},
|
|
||||||
{"GAMES/C4", VAR_PROGS .. "/games/c4/c4"},
|
|
||||||
{"MEDIA/FILLSCR", VAR_PROGS .. "/media/FillScr/fillscr"},
|
|
||||||
})
|
|
||||||
tup.append_table(extra_files, {
|
|
||||||
})
|
|
||||||
end -- tup.getconfig('NO_NASM') ~= 'full'
|
|
||||||
|
|
||||||
-- Programs that require JWASM to compile.
|
-- Programs that require JWASM to compile.
|
||||||
if tup.getconfig('NO_JWASM') ~= 'full' then
|
if tup.getconfig('NO_JWASM') ~= 'full' then
|
||||||
tup.append_table(img_files, {
|
tup.append_table(img_files, {
|
||||||
@@ -683,7 +672,6 @@ tup.append_table(img_files, {
|
|||||||
{"DEVELOP/PIPET", VAR_PROGS .. "/cmm/misc/pipet.com"},
|
{"DEVELOP/PIPET", VAR_PROGS .. "/cmm/misc/pipet.com"},
|
||||||
{"File Managers/EOLITE", VAR_PROGS .. "/cmm/eolite/Eolite.com"},
|
{"File Managers/EOLITE", VAR_PROGS .. "/cmm/eolite/Eolite.com"},
|
||||||
{"File Managers/KFM2", VAR_PROGS .. "/cmm/misc/kfm2.com"},
|
{"File Managers/KFM2", VAR_PROGS .. "/cmm/misc/kfm2.com"},
|
||||||
{"KF_VIEW", VAR_PROGS .. "/cmm/kf_font_viewer/font_viewer.com"},
|
|
||||||
{"DEVELOP/DIFF", VAR_PROGS .. "/cmm/diff/diff.com"},
|
{"DEVELOP/DIFF", VAR_PROGS .. "/cmm/diff/diff.com"},
|
||||||
{"GAMES/CLICKS", VAR_PROGS .. "/games/clicks/clicks.com"},
|
{"GAMES/CLICKS", VAR_PROGS .. "/games/clicks/clicks.com"},
|
||||||
{"GAMES/MBLOCKS", VAR_PROGS .. "/cmm/misc/mblocks.com"},
|
{"GAMES/MBLOCKS", VAR_PROGS .. "/cmm/misc/mblocks.com"},
|
||||||
@@ -730,6 +718,7 @@ if tup.getconfig('NO_TCC') ~= 'full' then
|
|||||||
tup.append_table(img_files, {
|
tup.append_table(img_files, {
|
||||||
{"NETWORK/WHOIS", VAR_PROGS .. "/network/whois/whois"},
|
{"NETWORK/WHOIS", VAR_PROGS .. "/network/whois/whois"},
|
||||||
{"SHELL", VAR_PROGS .. "/system/shell/shell"},
|
{"SHELL", VAR_PROGS .. "/system/shell/shell"},
|
||||||
|
{"GAMES/DINO", VAR_PROGS .. "/games/dino/dino"},
|
||||||
})
|
})
|
||||||
tup.append_table(extra_files, {
|
tup.append_table(extra_files, {
|
||||||
{"kolibrios/utils/thashview", VAR_PROGS .. "/other/TinyHashView/thashview"},
|
{"kolibrios/utils/thashview", VAR_PROGS .. "/other/TinyHashView/thashview"},
|
||||||
|
Before Width: | Height: | Size: 44 KiB After Width: | Height: | Size: 44 KiB |
Before Width: | Height: | Size: 720 B After Width: | Height: | Size: 700 B |
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 809 B |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 19 KiB |
@@ -79,7 +79,7 @@ next=$TextEditor
|
|||||||
[Assoc]
|
[Assoc]
|
||||||
/=/sys/file managers/eolite
|
/=/sys/file managers/eolite
|
||||||
|
|
||||||
kf=/sys/KF_VIEW
|
kf=/sys/syspanel
|
||||||
|
|
||||||
txt=$CodeEdit
|
txt=$CodeEdit
|
||||||
log=$CodeEdit
|
log=$CodeEdit
|
||||||
|
@@ -1,14 +1,16 @@
|
|||||||
The following "hot" shortcut keys are used in the system:
|
The following "hot" shortcut keys are used in the system:
|
||||||
(Indexing on time of appearance 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 @TASKBAR.
|
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 @TASKBAR.
|
||||||
2) Ctrl + Shift - switching of keyboard layout.
|
2) Ctrl + Shift - switching of keyboard layout
|
||||||
3) Win - start of the application MENU.
|
3) Win - start of the application MENU
|
||||||
4) Alt + Ctrl + F12 - start of the application END.
|
4) Alt + Ctrl + F12 - start of the application END
|
||||||
5) Alt + F4 - terminate the active application.
|
5) Alt + F4 - terminate the active application
|
||||||
6) Alt + Tab - switch to the next (in the window stack) window
|
6) Alt + Tab - switch to the next window
|
||||||
7) Alt + Shift + Tab - switch to the previous (in the window stack) window
|
7) Alt + Shift + Tab - switch to the previous window
|
||||||
8) Alt + Shift + NumLock - start of the application MOUSEMUL, which emulates mouse with numpad, when NumLock is on.
|
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)
|
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)
|
10) Win + D - minimize/restore all windows
|
||||||
11) Win + R - start of the application RUN
|
11) Win + R - start of the application RUN
|
||||||
12) Ctrl + 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.
|
12) Ctrl + PrintScreen - start of the application SCRSHOOT
|
||||||
|
13) Ctrl + Alt + Left / Right - change sound volume
|
||||||
|
Ctrl + Alt + Up / Down - mute and unmute sound
|
||||||
|
@@ -116,8 +116,8 @@ ico=8
|
|||||||
x=-67
|
x=-67
|
||||||
y=68
|
y=68
|
||||||
[10]
|
[10]
|
||||||
name=BOARD
|
name=DBGBOARD
|
||||||
path=/SYS/DEVELOP/BOARD
|
path=/SYS/DEVELOP/DBGBOARD
|
||||||
param=
|
param=
|
||||||
ico=19
|
ico=19
|
||||||
x=-135
|
x=-135
|
||||||
|
@@ -57,8 +57,7 @@
|
|||||||
20 Diff Tool |develop/diff
|
20 Diff Tool |develop/diff
|
||||||
52 Shared resources |/sys/@reshare
|
52 Shared resources |/sys/@reshare
|
||||||
34 Base Converter |develop/h2d2b
|
34 Base Converter |develop/h2d2b
|
||||||
59 Character table |develop/ASCIIVju
|
59 Charsets Viewer |develop/CHARSETS
|
||||||
59 Key ASCII-codes |develop/keyascii
|
|
||||||
59 Key SCAN-codes |develop/scancode
|
59 Key SCAN-codes |develop/scancode
|
||||||
#6 **** EMUL
|
#6 **** EMUL
|
||||||
24 DOSBox * |/kolibrios/emul/DosBox/dosbox
|
24 DOSBox * |/kolibrios/emul/DosBox/dosbox
|
||||||
|
@@ -1,14 +1,16 @@
|
|||||||
The following "hot" shortcut keys are used in the system:
|
The following "hot" shortcut keys are used in the system:
|
||||||
(Indexing on time of appearance 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 @TASKBAR.
|
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 @TASKBAR.
|
||||||
2) Ctrl + Shift - switching of keyboard layout.
|
2) Ctrl + Shift - switching of keyboard layout
|
||||||
3) Win - start of the application MENU.
|
3) Win - start of the application MENU
|
||||||
4) Alt + Ctrl + F12 - start of the application END.
|
4) Alt + Ctrl + F12 - start of the application END
|
||||||
5) Alt + F4 - terminate the active application.
|
5) Alt + F4 - terminate the active application
|
||||||
6) Alt + Tab - switch to the next (in the window stack) window
|
6) Alt + Tab - switch to the next window
|
||||||
7) Alt + Shift + Tab - switch to the previous (in the window stack) window
|
7) Alt + Shift + Tab - switch to the previous window
|
||||||
8) Alt + Shift + NumLock - start of the application MOUSEMUL, which emulates mouse with numpad, when NumLock is on.
|
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)
|
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)
|
10) Win + D - minimize/restore all windows
|
||||||
11) Win + R - start of the application RUN
|
11) Win + R - start of the application RUN
|
||||||
12) Ctrl + 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.
|
12) Ctrl + PrintScreen - start of the application SCRSHOOT
|
||||||
|
13) Ctrl + Alt + Left / Right - change sound volume
|
||||||
|
Ctrl + Alt + Up / Down - mute and unmute sound
|
@@ -116,8 +116,8 @@ ico=8
|
|||||||
x=-67
|
x=-67
|
||||||
y=68
|
y=68
|
||||||
[10]
|
[10]
|
||||||
name=BOARD
|
name=DBGBOARD
|
||||||
path=/SYS/DEVELOP/BOARD
|
path=/SYS/DEVELOP/DBGBOARD
|
||||||
param=
|
param=
|
||||||
ico=19
|
ico=19
|
||||||
x=-135
|
x=-135
|
||||||
|
@@ -56,8 +56,7 @@
|
|||||||
49 Debugger mtdbg |develop/mtdbg
|
49 Debugger mtdbg |develop/mtdbg
|
||||||
49 Debugger koldbg * |/kolibrios/develop/koldbg
|
49 Debugger koldbg * |/kolibrios/develop/koldbg
|
||||||
16 Hex2Dec2Bin |develop/h2d2b
|
16 Hex2Dec2Bin |develop/h2d2b
|
||||||
16 Tabla de caracteres |ASCIIVju
|
16 Tabla de caracteres |develop/CHARSETS
|
||||||
16 C<>digos ASCII |develop/keyascii
|
|
||||||
16 C<>digos SCAN |develop/scancode
|
16 C<>digos SCAN |develop/scancode
|
||||||
#6 **** EMULATORS
|
#6 **** EMULATORS
|
||||||
24 DOSBox * |/kolibrios/emul/DosBox/dosbox
|
24 DOSBox * |/kolibrios/emul/DosBox/dosbox
|
||||||
|
@@ -116,8 +116,8 @@ ico=8
|
|||||||
x=-67
|
x=-67
|
||||||
y=68
|
y=68
|
||||||
[10]
|
[10]
|
||||||
name=BOARD
|
name=DBGBOARD
|
||||||
path=/SYS/DEVELOP/BOARD
|
path=/SYS/DEVELOP/DBGBOARD
|
||||||
param=
|
param=
|
||||||
ico=19
|
ico=19
|
||||||
x=-135
|
x=-135
|
||||||
|
@@ -116,8 +116,8 @@ ico=8
|
|||||||
x=-67
|
x=-67
|
||||||
y=68
|
y=68
|
||||||
[10]
|
[10]
|
||||||
name=BOARD
|
name=DBGBOARD
|
||||||
path=/SYS/DEVELOP/BOARD
|
path=/SYS/DEVELOP/DBGBOARD
|
||||||
param=
|
param=
|
||||||
ico=19
|
ico=19
|
||||||
x=-135
|
x=-135
|
||||||
|
@@ -1,14 +1,16 @@
|
|||||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>騥 "<22><><EFBFBD><EFBFBD>稥" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>樨 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ᯮ<EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>⥬<EFBFBD>:
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>騥 "<22><><EFBFBD><EFBFBD>稥" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>樨 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ᯮ<EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>⥬<EFBFBD>:
|
||||||
(<28>㬥<EFBFBD><E3ACA5><EFBFBD><EFBFBD><EFBFBD> <20><> <20>६<EFBFBD><E0A5AC><EFBFBD> <20><><EFBFBD><EFA2AB><EFBFBD><EFBFBD> <20> <20><><EFBFBD>⥬<EFBFBD>)
|
(<28>㬥<EFBFBD><E3ACA5><EFBFBD><EFBFBD><EFBFBD> <20><> <20>६<EFBFBD><E0A5AC><EFBFBD> <20><><EFBFBD><EFA2AB><EFBFBD><EFBFBD> <20> <20><><EFBFBD>⥬<EFBFBD>)
|
||||||
1) Ctrl + Alt + Del <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ਫ<EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CPU (<28><>ᯥ<EFBFBD><E1AFA5><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᮢ), <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>⢥<EFBFBD><E2A2A5><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ঠ<EFBFBD><E0A6A0><EFBFBD><EFBFBD> <20><> <20><EFBFBD><E0AEA2> <20><><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><>⠫쭮<E2A0AB> ॠ<><E0A5A0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20>ਫ<EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> @TASKBAR.
|
1) Ctrl + Alt + Del <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ਫ<EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CPU (<28><>ᯥ<EFBFBD><E1AFA5><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᮢ), <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>⢥<EFBFBD><E2A2A5><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ঠ<EFBFBD><E0A6A0><EFBFBD><EFBFBD> <20><> <20><EFBFBD><E0AEA2> <20><><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><>⠫쭮<E2A0AB> ॠ<><E0A5A0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20>ਫ<EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> @TASKBAR.
|
||||||
2) Ctrl + Shift - <20><>४<EFBFBD><E0A5AA>祭<EFBFBD><E7A5AD> <20><>᪫<EFBFBD><E1AAAB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
2) Ctrl + Shift - <20><>४<EFBFBD><E0A5AA>祭<EFBFBD><E7A5AD> <20><>᪫<EFBFBD><E1AAAB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
3) Win - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ਫ<EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MENU.
|
3) Win - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ਫ<EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MENU
|
||||||
4) Alt + Ctrl + F12 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ਫ<EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> END.
|
4) Alt + Ctrl + F12 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ਫ<EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> END
|
||||||
5) Alt + F4 - <20><><EFBFBD><EFBFBD><EFBFBD>襭<EFBFBD><E8A5AD> <20><>⨢<EFBFBD><E2A8A2><EFBFBD><EFBFBD> <20>ਫ<EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
5) Alt + F4 - <20><><EFBFBD><EFBFBD><EFBFBD>襭<EFBFBD><E8A5AD> <20><>⨢<EFBFBD><E2A8A2><EFBFBD><EFBFBD> <20>ਫ<EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
6) Alt + Tab - <20><>४<EFBFBD><E0A5AA>祭<EFBFBD><E7A5AD> <20><> <><E1ABA5><EFBFBD>饥 (<28> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>⥪<EFBFBD>) <20><><EFBFBD><EFBFBD>
|
6) Alt + Tab - <20><>४<EFBFBD><E0A5AA>祭<EFBFBD><E7A5AD> <20><> <><E1ABA5><EFBFBD>饥 <20><><EFBFBD><EFBFBD>
|
||||||
7) Alt + Shift + Tab - <20><>४<EFBFBD><E0A5AA>祭<EFBFBD><E7A5AD> <20><> <20>।<EFBFBD><E0A5A4><EFBFBD>饥 (<28> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>⥪<EFBFBD>) <20><><EFBFBD><EFBFBD>
|
7) Alt + Shift + Tab - <20><>४<EFBFBD><E0A5AA>祭<EFBFBD><E7A5AD> <20><> <20>।<EFBFBD><E0A5A4><EFBFBD>饥 <20><><EFBFBD><EFBFBD>
|
||||||
8) Alt + Shift + NumLock - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ਫ<EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MOUSEMUL, <20><>㫨<EFBFBD><E3ABA8><EFBFBD>饣<EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> NumLock <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>蠬<EFBFBD> <20>㬯<EFBFBD><E3ACAF><EFBFBD>
|
8) Alt + Shift + NumLock - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ਫ<EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MOUSEMUL, <20><>㫨<EFBFBD><E3ABA8><EFBFBD>饣<EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> NumLock <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>蠬<EFBFBD> <20>㬯<EFBFBD><E3ACAF><EFBFBD>
|
||||||
9) Alt + 1...7 - <20><><EFBFBD><EFBFBD> <20><>४<EFBFBD><E0A5AA>祭<EFBFBD><E7A5AD> <20><> <20><><EFBFBD>࠭<EFBFBD><E0A0AD><EFBFBD> <20><>᪫<EFBFBD><E1AAAB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> Ctrl + Shift)
|
9) Alt + 1...7 - <20><><EFBFBD><EFBFBD> <20><>४<EFBFBD><E0A5AA>祭<EFBFBD><E7A5AD> <20><> <20><><EFBFBD>࠭<EFBFBD><E0A0AD><EFBFBD> <20><>᪫<EFBFBD><E1AAAB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> Ctrl + Shift)
|
||||||
10) Win + D - ᢥ<><E1A2A5><EFBFBD><EFBFBD><EFBFBD>/ࠧ<><E0A0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>⪠ ࠡ<>祣<EFBFBD> <20>⮫<EFBFBD>)
|
10) Win + D - ᢥ<><E1A2A5><EFBFBD><EFBFBD><EFBFBD>/ࠧ<><E0A0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||||
11) Win + R - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ਫ<EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> RUN
|
11) Win + R - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ਫ<EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> RUN
|
||||||
12) Ctrl + PrintScreen - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ਫ<EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> SCRSHOOT. <20>ࠧ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᭨<><E1ADA8><EFBFBD> <20><>࠭<EFBFBD> <20> <20><><EFBFBD>짮<EFBFBD><ECA7AE>⥫<EFBFBD> <20>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 㪠<><E3AAA0><EFBFBD><EFBFBD>, <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> OpenDialog, <20>㤠 <20><><EFBFBD>࠭<EFBFBD><E0A0AD><EFBFBD> ᭨<><E1ADA8><EFBFBD> <20> <20><>ଠ<EFBFBD><E0ACA0> BMP.
|
12) Ctrl + PrintScreen - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ਫ<EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> SCRSHOOT
|
||||||
|
13) Ctrl + Alt + Left / Right - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E0AEAC><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
Ctrl + Alt + Up / Down - <20>몫<EFBFBD><EBAAAB><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||||
|
@@ -116,8 +116,8 @@ ico=8
|
|||||||
x=-67
|
x=-67
|
||||||
y=68
|
y=68
|
||||||
[10]
|
[10]
|
||||||
name=BOARD
|
name=DBGBOARD
|
||||||
path=/SYS/DEVELOP/BOARD
|
path=/SYS/DEVELOP/DBGBOARD
|
||||||
param=
|
param=
|
||||||
ico=19
|
ico=19
|
||||||
x=-135
|
x=-135
|
||||||
|
@@ -58,8 +58,7 @@
|
|||||||
20 Diff tool |develop/diff
|
20 Diff tool |develop/diff
|
||||||
52 Shared resources |/sys/@reshare
|
52 Shared resources |/sys/@reshare
|
||||||
34 Hex2Dec2Bin |develop/h2d2b
|
34 Hex2Dec2Bin |develop/h2d2b
|
||||||
59 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᨬ<><E1A8AC><EFBFBD><EFBFBD><EFBFBD> |develop/ASCIIVju
|
59 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᨬ<><E1A8AC><EFBFBD><EFBFBD><EFBFBD> |develop/CHARSETS
|
||||||
59 ASCII-<2D><><EFBFBD><EFBFBD> |develop/keyascii
|
|
||||||
59 SCAN-<2D><><EFBFBD><EFBFBD> |develop/scancode
|
59 SCAN-<2D><><EFBFBD><EFBFBD> |develop/scancode
|
||||||
#6 **** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
#6 **** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
24 DOSBox * |/kolibrios/emul/DosBox/dosbox
|
24 DOSBox * |/kolibrios/emul/DosBox/dosbox
|
||||||
|
BIN
programs/cmm/barscfg/bars_8b.raw
Normal file
@@ -55,9 +55,15 @@ _ini taskbar_vars_ini = { #taskbar_ini_path, "Variables" };
|
|||||||
|
|
||||||
_ini docky_ini = { "/sys/settings/docky.ini", "@" };
|
_ini docky_ini = { "/sys/settings/docky.ini", "@" };
|
||||||
|
|
||||||
unsigned char panels_img_data[] = FROM "bars.raw";
|
|
||||||
#define PIMG_W 37
|
#define PIMG_W 37
|
||||||
#define PIMG_H 27 //27*5
|
#define PIMG_H 27 //27*5
|
||||||
|
unsigned char panels_img_data[] = FROM "bars_8b.raw";
|
||||||
|
dword panels_img_pal[] = {
|
||||||
|
0x00405D74,0x0084FC84,0x00FAFAFA,0x0000B400,
|
||||||
|
0x00E4E4E4,0x008C9B9C,0x000212FD,0x00D8DEDF,
|
||||||
|
0x00585C5D,0x0085B7E0,0x009EC6E7,0x0094C0E5,
|
||||||
|
0x00CB8800,0x00CE3D9E,0x00D20404,0x00485966
|
||||||
|
};
|
||||||
|
|
||||||
proc_info Form;
|
proc_info Form;
|
||||||
|
|
||||||
@@ -137,7 +143,7 @@ void main()
|
|||||||
|
|
||||||
void DrawPanelsImage(dword y, n)
|
void DrawPanelsImage(dword y, n)
|
||||||
{
|
{
|
||||||
PutImage(22, y, PIMG_W, PIMG_H, n * PIMG_W * PIMG_H * 3 + #panels_img_data);
|
PutPaletteImage(n * PIMG_W * PIMG_H + #panels_img_data, PIMG_W, PIMG_H, 22, y, 8, #panels_img_pal);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetDisabledMode()
|
void SetDisabledMode()
|
||||||
|
@@ -101,13 +101,16 @@ void TWebBrowser::SetPageDefaults()
|
|||||||
img_url.drop();
|
img_url.drop();
|
||||||
text_colors.drop();
|
text_colors.drop();
|
||||||
text_colors.add(0);
|
text_colors.add(0);
|
||||||
|
if (secondrun) {
|
||||||
|
canvas.Init(list.x, list.y, list.w, math.max(list.visible, list.count));
|
||||||
|
canvas.Fill(0, bg_colors.get(0));
|
||||||
|
}
|
||||||
bg_colors.drop();
|
bg_colors.drop();
|
||||||
bg_colors.add(DEFAULT_BG_COL);
|
bg_colors.add(DEFAULT_BG_COL);
|
||||||
canvas.Fill(0, DEFAULT_BG_COL);
|
|
||||||
header = NULL;
|
header = NULL;
|
||||||
draw_y = BODY_MARGIN;
|
draw_y = BODY_MARGIN;
|
||||||
draw_x = left_gap = BODY_MARGIN;
|
draw_x = left_gap = BODY_MARGIN;
|
||||||
draw_w = list.w - BODY_MARGIN;
|
draw_w = list.w - BODY_MARGIN - BODY_MARGIN;
|
||||||
linebuf = 0;
|
linebuf = 0;
|
||||||
redirect = '\0';
|
redirect = '\0';
|
||||||
list.SetFont(8, 14, 10011000b);
|
list.SetFont(8, 14, 10011000b);
|
||||||
@@ -133,8 +136,6 @@ void TWebBrowser::ParseHtml(dword _bufpointer, _bufsize){
|
|||||||
dword bufpos;
|
dword bufpos;
|
||||||
bufsize = _bufsize;
|
bufsize = _bufsize;
|
||||||
|
|
||||||
if (list.w!=canvas.bufw) canvas.Init(list.x, list.y, list.w, 400*20);
|
|
||||||
|
|
||||||
if (bufpointer == _bufpointer) {
|
if (bufpointer == _bufpointer) {
|
||||||
custom_encoding = cur_encoding;
|
custom_encoding = cur_encoding;
|
||||||
} else {
|
} else {
|
||||||
@@ -153,7 +154,6 @@ void TWebBrowser::ParseHtml(dword _bufpointer, _bufsize){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
table.cols.drop();
|
table.cols.drop();
|
||||||
secondrun = false;
|
secondrun = false;
|
||||||
|
|
||||||
@@ -216,19 +216,15 @@ void TWebBrowser::ParseHtml(dword _bufpointer, _bufsize){
|
|||||||
AddCharToTheLine(ESBYTE[bufpos]);
|
AddCharToTheLine(ESBYTE[bufpos]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
RenderTextbuf();
|
||||||
|
list.count = draw_y + style.cur_line_h;
|
||||||
|
list.CheckDoesValuesOkey();
|
||||||
|
anchors.current = NULL;
|
||||||
|
|
||||||
if (!secondrun) {
|
if (!secondrun) {
|
||||||
secondrun = true;
|
secondrun = true;
|
||||||
goto _PARSE_START_;
|
goto _PARSE_START_;
|
||||||
}
|
}
|
||||||
|
|
||||||
RenderTextbuf();
|
|
||||||
list.count = draw_y + style.cur_line_h;
|
|
||||||
|
|
||||||
canvas.bufh = math.max(list.visible, list.count);
|
|
||||||
buf_data = realloc(buf_data, canvas.bufh * canvas.bufw * 4 + 8);
|
|
||||||
|
|
||||||
list.CheckDoesValuesOkey();
|
|
||||||
anchors.current = NULL;
|
|
||||||
if (!header) {
|
if (!header) {
|
||||||
strncpy(#header, #version, sizeof(TWebBrowser.header)-1);
|
strncpy(#header, #version, sizeof(TWebBrowser.header)-1);
|
||||||
DrawTitle(#header);
|
DrawTitle(#header);
|
||||||
|
@@ -45,9 +45,10 @@ void PAGE_LINKS::clear()
|
|||||||
w.drop();
|
w.drop();
|
||||||
h.drop();
|
h.drop();
|
||||||
underline_h.drop();
|
underline_h.drop();
|
||||||
|
id.drop();
|
||||||
|
|
||||||
element_links.drop();
|
element_links.drop();
|
||||||
unic_links.drop();
|
unic_links.drop();
|
||||||
id.drop();
|
|
||||||
|
|
||||||
active = -1;
|
active = -1;
|
||||||
active_url = 0;
|
active_url = 0;
|
||||||
|
@@ -112,6 +112,7 @@ dword _tag::get_next_param(dword ps, pe)
|
|||||||
// "pe" - param end
|
// "pe" - param end
|
||||||
// "q" - quote char
|
// "q" - quote char
|
||||||
char q = NULL;
|
char q = NULL;
|
||||||
|
dword initial_pe = pe;
|
||||||
dword fixeq;
|
dword fixeq;
|
||||||
dword val;
|
dword val;
|
||||||
dword attr;
|
dword attr;
|
||||||
@@ -145,6 +146,14 @@ dword _tag::get_next_param(dword ps, pe)
|
|||||||
//already have ATTR end
|
//already have ATTR end
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (pe > ps) pe--;
|
||||||
|
|
||||||
|
//Fix case: "src ="
|
||||||
|
while (pe>ps) && (__isWhite(ESBYTE[pe])) {
|
||||||
|
ESBYTE[pe] = '\0';
|
||||||
|
pe--;
|
||||||
|
}
|
||||||
|
|
||||||
//find ATTR start and copy
|
//find ATTR start and copy
|
||||||
while (pe>ps) && (!__isWhite(ESBYTE[pe])) pe--;
|
while (pe>ps) && (!__isWhite(ESBYTE[pe])) pe--;
|
||||||
attr = pe + 1;
|
attr = pe + 1;
|
||||||
@@ -161,6 +170,8 @@ dword _tag::get_next_param(dword ps, pe)
|
|||||||
}
|
}
|
||||||
strlwr(attr);
|
strlwr(attr);
|
||||||
strrtrim(val);
|
strrtrim(val);
|
||||||
|
//Fix case: " img.png"
|
||||||
|
while(__isWhite(ESBYTE[val])) && (val<initial_pe) val++;
|
||||||
|
|
||||||
attributes.add(attr);
|
attributes.add(attr);
|
||||||
values.add(val);
|
values.add(val);
|
||||||
|
@@ -10,11 +10,9 @@ void TWebBrowser::RenderLine(dword _line)
|
|||||||
if (style.title)
|
if (style.title)
|
||||||
{
|
{
|
||||||
strncpy(#header, _line, sizeof(TWebBrowser.header)-1);
|
strncpy(#header, _line, sizeof(TWebBrowser.header)-1);
|
||||||
if (!application_mode) {
|
|
||||||
strncat(#header, " - ", sizeof(TWebBrowser.header)-1);
|
strncat(#header, " - ", sizeof(TWebBrowser.header)-1);
|
||||||
strncat(#header, #version, sizeof(TWebBrowser.header)-1);
|
strncat(#header, #version, sizeof(TWebBrowser.header)-1);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
else if (t_html) && (!t_body) {
|
else if (t_html) && (!t_body) {
|
||||||
//
|
//
|
||||||
}
|
}
|
||||||
@@ -24,9 +22,8 @@ void TWebBrowser::RenderLine(dword _line)
|
|||||||
zoom = list.font_w / BASIC_CHAR_W;
|
zoom = list.font_w / BASIC_CHAR_W;
|
||||||
|
|
||||||
//there is some shit happens!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
//there is some shit happens!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||||
if (pw > draw_w) {
|
if (pw > draw_w + BODY_MARGIN) {
|
||||||
//draw_w = pw;
|
//debugln("shit");
|
||||||
NewLine();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (debug_mode) {
|
if (debug_mode) {
|
||||||
@@ -85,12 +82,13 @@ void TWebBrowser::RenderTextbuf()
|
|||||||
|
|
||||||
//debugln(" \\n");
|
//debugln(" \\n");
|
||||||
|
|
||||||
//Is a new line fits in the current line?
|
//Is a new line fits in the maximum line width?
|
||||||
if (br * list.font_w + draw_x - left_gap >= draw_w) {
|
if (br * list.font_w + draw_x - left_gap >= draw_w) {
|
||||||
br = draw_w - draw_x + left_gap /list.font_w;
|
br = draw_w - draw_x + left_gap /list.font_w;
|
||||||
|
if (br < 0) br = 0;
|
||||||
while(br) {
|
while(br) {
|
||||||
if (ESBYTE[lbp + br]==' ') {
|
if (ESBYTE[lbp + br]==' ') {
|
||||||
br++;
|
if (br < len) br++;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
br--;
|
br--;
|
||||||
@@ -98,7 +96,16 @@ void TWebBrowser::RenderTextbuf()
|
|||||||
}
|
}
|
||||||
//Maybe a new line is too big for the whole new line? Then we have to split it
|
//Maybe a new line is too big for the whole new line? Then we have to split it
|
||||||
if (!br) && (len * list.font_w >= draw_w) {
|
if (!br) && (len * list.font_w >= draw_w) {
|
||||||
|
//debugln("bigbr");
|
||||||
|
//debugval("draw_x", draw_x);
|
||||||
|
//debugval("draw_w", draw_w);
|
||||||
br = draw_w - draw_x / list.font_w;
|
br = draw_w - draw_x / list.font_w;
|
||||||
|
//debugval("cut into 1", br * list.font_w);
|
||||||
|
if (br < 0) {
|
||||||
|
NewLine();
|
||||||
|
br = draw_w - draw_x / list.font_w;
|
||||||
|
//debugval("cut into 2", br * list.font_w);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (br) {
|
if (br) {
|
||||||
@@ -124,7 +131,11 @@ void TWebBrowser::NewLine()
|
|||||||
if (t_html) && (!t_body) return;
|
if (t_html) && (!t_body) return;
|
||||||
|
|
||||||
if (draw_x == style.tag_list.level * 5 * list.font_w + left_gap) {
|
if (draw_x == style.tag_list.level * 5 * list.font_w + left_gap) {
|
||||||
if (!empty_line) empty_line=true; else return;
|
if (!empty_line) {
|
||||||
|
empty_line=true;
|
||||||
|
} else {
|
||||||
|
return;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
empty_line = false;
|
empty_line = false;
|
||||||
}
|
}
|
||||||
|
@@ -56,15 +56,12 @@ void TWebBrowser::SetStyle()
|
|||||||
if (tag.is("tr")) { tag_table(); return; }
|
if (tag.is("tr")) { tag_table(); return; }
|
||||||
if (tag.is("th")) { tag_table(); return; }
|
if (tag.is("th")) { tag_table(); return; }
|
||||||
if (tag.is("td")) { tag_table(); return; }
|
if (tag.is("td")) { tag_table(); return; }
|
||||||
|
|
||||||
if (application_mode) {
|
|
||||||
if (tag.is("exit")) { ExitProcess(); return; }
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void TWebBrowser::tag_p()
|
void TWebBrowser::tag_p()
|
||||||
{
|
{
|
||||||
IF (tag.prior[0] == 'h') || (streq(#tag.prior,"td")) || (streq(#tag.prior,"p")) return;
|
IF (tag.prior[0] == 'h') || (streq(#tag.prior,"td")) return;
|
||||||
|
IF (!tag.opened) && (streq(#tag.prior,"p")) return;
|
||||||
NewLine();
|
NewLine();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -122,6 +119,7 @@ void TWebBrowser::tag_iframe()
|
|||||||
|
|
||||||
void TWebBrowser::tag_a()
|
void TWebBrowser::tag_a()
|
||||||
{
|
{
|
||||||
|
if (!secondrun) return;
|
||||||
if (tag.opened)
|
if (tag.opened)
|
||||||
{
|
{
|
||||||
if (tag.get_value_of("href")) && (!strstr(tag.value,"javascript:"))
|
if (tag.get_value_of("href")) && (!strstr(tag.value,"javascript:"))
|
||||||
@@ -136,6 +134,7 @@ void TWebBrowser::tag_a()
|
|||||||
|
|
||||||
void TWebBrowser::tag_meta_xml()
|
void TWebBrowser::tag_meta_xml()
|
||||||
{
|
{
|
||||||
|
if (secondrun) return;
|
||||||
if (custom_encoding == -1) if (tag.get_value_of("charset"))
|
if (custom_encoding == -1) if (tag.get_value_of("charset"))
|
||||||
|| (tag.get_value_of("content")) || (tag.get_value_of("encoding"))
|
|| (tag.get_value_of("content")) || (tag.get_value_of("encoding"))
|
||||||
{
|
{
|
||||||
@@ -148,22 +147,6 @@ void TWebBrowser::tag_meta_xml()
|
|||||||
if (streq(tag.get_value_of("http-equiv"), "refresh")) && (tag.get_value_of("content")) {
|
if (streq(tag.get_value_of("http-equiv"), "refresh")) && (tag.get_value_of("content")) {
|
||||||
if (tag.value = strstri(tag.value, "url")) strcpy(#redirect, tag.value);
|
if (tag.value = strstri(tag.value, "url")) strcpy(#redirect, tag.value);
|
||||||
}
|
}
|
||||||
if (streq(tag.get_value_of("name"), "application")) {
|
|
||||||
if (application_mode) {
|
|
||||||
if (tag.get_number_of("left")) {
|
|
||||||
MoveSize(tag.number,-1,-1,-1);
|
|
||||||
}
|
|
||||||
if (tag.get_number_of("top")) {
|
|
||||||
MoveSize(-1,tag.number,-1,-1);
|
|
||||||
}
|
|
||||||
if (tag.get_number_of("width")) {
|
|
||||||
MoveSize(-1,-1,tag.number,-1);
|
|
||||||
}
|
|
||||||
if (tag.get_number_of("height")) {
|
|
||||||
MoveSize(-1,-1,-1,tag.number);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
signed int get_encoding_type_by_name(dword name)
|
signed int get_encoding_type_by_name(dword name)
|
||||||
@@ -206,7 +189,7 @@ void TWebBrowser::tag_ol_ul_dt()
|
|||||||
|
|
||||||
void TWebBrowser::tag_li()
|
void TWebBrowser::tag_li()
|
||||||
{
|
{
|
||||||
if (style.nav) return;
|
//if (style.nav) return;
|
||||||
if (tag.opened) {
|
if (tag.opened) {
|
||||||
if (!style.tag_list.level) style.tag_list.upd_level(1, 'u');
|
if (!style.tag_list.level) style.tag_list.upd_level(1, 'u');
|
||||||
if (!style.pre) NewLine();
|
if (!style.pre) NewLine();
|
||||||
@@ -238,10 +221,7 @@ void TWebBrowser::tag_body()
|
|||||||
if (tag.get_value_of("link")) link_color_default = GetColor(tag.value);
|
if (tag.get_value_of("link")) link_color_default = GetColor(tag.value);
|
||||||
if (tag.get_value_of("alink")) link_color_active = GetColor(tag.value);
|
if (tag.get_value_of("alink")) link_color_active = GetColor(tag.value);
|
||||||
if (tag.get_value_of("text")) text_colors.set(0, GetColor(tag.value));
|
if (tag.get_value_of("text")) text_colors.set(0, GetColor(tag.value));
|
||||||
if (tag.get_value_of("bgcolor")) {
|
if (tag.get_value_of("bgcolor")) bg_colors.set(0, GetColor(tag.value));
|
||||||
bg_colors.set(0, GetColor(tag.value));
|
|
||||||
canvas.Fill(0, bg_colors.get(0));
|
|
||||||
}
|
|
||||||
// Autodetecting encoding if no encoding was set
|
// Autodetecting encoding if no encoding was set
|
||||||
if (tag.opened) && (custom_encoding==-1) && (cur_encoding == CH_CP866) {
|
if (tag.opened) && (custom_encoding==-1) && (cur_encoding == CH_CP866) {
|
||||||
if (strstr(bufpointer, "\208\190")) ChangeEncoding(CH_UTF8);
|
if (strstr(bufpointer, "\208\190")) ChangeEncoding(CH_UTF8);
|
||||||
@@ -264,11 +244,19 @@ void TWebBrowser::tag_h1234_caption()
|
|||||||
} else {
|
} else {
|
||||||
style.h = tag.opened;
|
style.h = tag.opened;
|
||||||
if (tag.opened) {
|
if (tag.opened) {
|
||||||
if (!style.pre) NewLine();
|
if (!style.pre) {
|
||||||
draw_y += 10;
|
NewLine();
|
||||||
list.SetFont(BASIC_CHAR_W*2, 14*2, 10011001b);
|
NewLine();
|
||||||
list.item_h = BASIC_LINE_H * 2 - 2;
|
}
|
||||||
if (tag.is("h1")) style.b = true;
|
if (tag.is("h1")) {
|
||||||
|
list.SetFont(BASIC_CHAR_W*2, 14+14, 10011001b);
|
||||||
|
style.b = true;
|
||||||
|
} else if (tag.is("h2")) {
|
||||||
|
list.SetFont(BASIC_CHAR_W*2, 14+14, 10011001b);
|
||||||
|
} else {
|
||||||
|
list.SetFont(6*2, 9+7, 10001001b);
|
||||||
|
}
|
||||||
|
style.cur_line_h = list.item_h = list.font_h + 2;
|
||||||
} else {
|
} else {
|
||||||
if (tag.is("h1")) style.b = false;
|
if (tag.is("h1")) style.b = false;
|
||||||
NewLine();
|
NewLine();
|
||||||
@@ -305,7 +293,7 @@ void TWebBrowser::tag_img()
|
|||||||
if (!strcmp(tag.value + strrchr(tag.value, '.'), "webp")) goto NOIMG;
|
if (!strcmp(tag.value + strrchr(tag.value, '.'), "webp")) goto NOIMG;
|
||||||
|
|
||||||
strlcpy(#img_path, tag.value, sizeof(img_path)-1);
|
strlcpy(#img_path, tag.value, sizeof(img_path)-1);
|
||||||
replace_char(#img_path, ' ', '\0', sizeof(img_path));
|
replace_char(#img_path, ' ', '\0', sizeof(img_path)-1);
|
||||||
get_absolute_url(#img_path, history.current());
|
get_absolute_url(#img_path, history.current());
|
||||||
|
|
||||||
if (check_is_the_adress_local(#img_path)) {
|
if (check_is_the_adress_local(#img_path)) {
|
||||||
@@ -342,31 +330,28 @@ NOIMG:
|
|||||||
text_colors.pop();
|
text_colors.pop();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
struct TABLE {
|
struct TABLE {
|
||||||
int count;
|
|
||||||
int depth;
|
int depth;
|
||||||
int margin;
|
int margin;
|
||||||
collection_int cols;
|
collection_int cols;
|
||||||
collection_int width;
|
|
||||||
} table;
|
} table;
|
||||||
|
|
||||||
|
unsigned table_id;
|
||||||
int tr_pos, td_pos;
|
unsigned colcount;
|
||||||
int row_start_y;
|
unsigned tr_pos;
|
||||||
int colcount;
|
unsigned td_pos;
|
||||||
dword tallest_cell_in_row;
|
unsigned row_start_y;
|
||||||
|
unsigned tallest_cell_in_row;
|
||||||
|
unsigned cur_cell_w;
|
||||||
|
|
||||||
void TWebBrowser::tag_table_reset()
|
void TWebBrowser::tag_table_reset()
|
||||||
{
|
{
|
||||||
table.depth = 0;
|
table_id = 0;
|
||||||
table.count = 0;
|
|
||||||
colcount = 0;
|
colcount = 0;
|
||||||
tr_pos = 0;
|
tr_pos = 0;
|
||||||
td_pos = 0;
|
td_pos = 0;
|
||||||
|
table.depth = 0;
|
||||||
|
cur_cell_w = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TWebBrowser::tag_table()
|
void TWebBrowser::tag_table()
|
||||||
@@ -380,15 +365,15 @@ void TWebBrowser::tag_table()
|
|||||||
if(tag.opened) {
|
if(tag.opened) {
|
||||||
table.depth++;
|
table.depth++;
|
||||||
if (table.depth==1) {
|
if (table.depth==1) {
|
||||||
table.count++;
|
table_id++;
|
||||||
colcount = 0;
|
colcount = 0;
|
||||||
td_pos = 0;
|
td_pos = 0;
|
||||||
row_start_y = draw_y;
|
row_start_y = draw_y;
|
||||||
if (tag.get_number_of("width")) {
|
if (tag.get_number_of("width")) {
|
||||||
if (strchr(tag.value, '%')) tag.number = list.w * tag.number / 100;
|
if (strchr(tag.value, '%')) tag.number = list.w * tag.number / 100;
|
||||||
table.width.set(table.count, math.min(tag.number,list.w));
|
cur_cell_w = math.min(tag.number,list.w);
|
||||||
} else {
|
} else {
|
||||||
table.width.set(table.count, list.w);
|
cur_cell_w = list.w;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@@ -447,26 +432,17 @@ void TWebBrowser::tag_table()
|
|||||||
|
|
||||||
if (!tr_pos) goto _TR_FIX;
|
if (!tr_pos) goto _TR_FIX;
|
||||||
|
|
||||||
/*
|
tallest_cell_in_row = math.max(draw_y+style.cur_line_h-list.item_h+1, tallest_cell_in_row);
|
||||||
if (tag.opened) {
|
|
||||||
if (tag.get_value_of("bgcolor")) {
|
|
||||||
bg_colors.add(GetColor(tag.value));
|
|
||||||
} else {
|
|
||||||
bg_colors.add(bg_colors.get(0));
|
|
||||||
}
|
|
||||||
} */
|
|
||||||
|
|
||||||
tallest_cell_in_row = math.max(draw_y+style.cur_line_h-list.item_h, tallest_cell_in_row);
|
|
||||||
style.cur_line_h = list.item_h;
|
style.cur_line_h = list.item_h;
|
||||||
if (tag.opened) {
|
if (tag.opened)
|
||||||
|
{
|
||||||
if (!td_pos) {
|
if (!td_pos) {
|
||||||
table.margin = list.w - table.width.get(table.count) / 2 + BODY_MARGIN;
|
table.margin = list.w - cur_cell_w / 2 + BODY_MARGIN;
|
||||||
draw_x = left_gap = table.margin;
|
draw_x = left_gap = table.margin;
|
||||||
draw_w = table.width.get(table.count) - BODY_MARGIN;
|
draw_w = cur_cell_w - BODY_MARGIN;
|
||||||
} else {
|
} else {
|
||||||
draw_x = left_gap = left_gap + draw_w;
|
draw_x = left_gap = left_gap + draw_w;
|
||||||
draw_w = table.width.get(table.count) - left_gap + table.margin - BODY_MARGIN;
|
draw_w = cur_cell_w - left_gap + table.margin - BODY_MARGIN;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (EAX = table.cols.get(tr_pos-1)-td_pos) {
|
if (EAX = table.cols.get(tr_pos-1)-td_pos) {
|
||||||
@@ -477,20 +453,18 @@ void TWebBrowser::tag_table()
|
|||||||
}
|
}
|
||||||
if (table.cols.get(tr_pos-1)-td_pos>1) && (tag.get_number_of("width")) {
|
if (table.cols.get(tr_pos-1)-td_pos>1) && (tag.get_number_of("width")) {
|
||||||
if (strchr(tag.value, '%')) {
|
if (strchr(tag.value, '%')) {
|
||||||
tag.number = table.width.get(table.count) - table.margin - 23 - left_gap * tag.number / 100;
|
tag.number = cur_cell_w - table.margin - 23 - left_gap * tag.number / 100;
|
||||||
}
|
}
|
||||||
if (tag.number < draw_w) draw_w = tag.number;
|
if (tag.number < draw_w) draw_w = tag.number;
|
||||||
}
|
}
|
||||||
draw_y = row_start_y;
|
draw_y = row_start_y;
|
||||||
//canvas.WriteText(draw_x, draw_y, 10001001b, 0x0000FE, itoa(draw_x), NULL);
|
|
||||||
//canvas.WriteText(draw_x, draw_y+20, 10001001b, 0xFF0000, itoa(draw_w), NULL);
|
|
||||||
td_pos++;
|
td_pos++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (draw_x > table.width.get(table.count)) {
|
if (draw_x > cur_cell_w) {
|
||||||
draw_x = left_gap = table.margin;
|
draw_x = left_gap = table.margin;
|
||||||
draw_w = table.width.get(table.count) - table.margin - 23 - left_gap;
|
draw_w = cur_cell_w - table.margin - 23 - left_gap;
|
||||||
table.depth = 0;
|
table.depth = 0;
|
||||||
NewLine();
|
NewLine();
|
||||||
if (debug_mode) {
|
if (debug_mode) {
|
||||||
@@ -498,11 +472,8 @@ void TWebBrowser::tag_table()
|
|||||||
canvas.DrawBar(0, draw_y, 20, 20, 0xFF0000);
|
canvas.DrawBar(0, draw_y, 20, 20, 0xFF0000);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/*
|
//if (left_gap + draw_w > list.w) {
|
||||||
if (left_gap + draw_w > list.w) {
|
// draw_w = list.w - left_gap;
|
||||||
draw_w = list.w - left_gap;
|
// if (debug_mode) debugln("anomaly draw_W");
|
||||||
if (debug_mode) debugln("anomaly draw_W");
|
//}
|
||||||
}
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -65,6 +65,8 @@ char *unicode_symbols[]={
|
|||||||
"times", "x",
|
"times", "x",
|
||||||
"lowast","*",
|
"lowast","*",
|
||||||
|
|
||||||
|
"#128154","<3",
|
||||||
|
|
||||||
0};
|
0};
|
||||||
|
|
||||||
|
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
//Copyright 2007-2021 by Veliant & Leency
|
//Copyright 2007-2025 by Veliant & Leency
|
||||||
//Asper, lev, Lrz, Barsuk, Nable, hidnplayr...
|
//Asper, lev, Lrz, Barsuk, Nable, hidnplayr...
|
||||||
|
|
||||||
//BUGS
|
//BUGS
|
||||||
@@ -45,7 +45,6 @@
|
|||||||
bool debug_mode = false;
|
bool debug_mode = false;
|
||||||
bool show_images = true;
|
bool show_images = true;
|
||||||
bool source_mode = false;
|
bool source_mode = false;
|
||||||
bool application_mode = false;
|
|
||||||
|
|
||||||
_history history;
|
_history history;
|
||||||
|
|
||||||
@@ -110,9 +109,6 @@ void HandleParam()
|
|||||||
history.add(#param + 8);
|
history.add(#param + 8);
|
||||||
} else if (!strncmp(#param, "-new ", 5)) {
|
} else if (!strncmp(#param, "-new ", 5)) {
|
||||||
history.add(#param + 5);
|
history.add(#param + 5);
|
||||||
} else if (!strncmp(#param, "-app ", 5)) {
|
|
||||||
history.add(#param + 5);
|
|
||||||
application_mode = true;
|
|
||||||
} else {
|
} else {
|
||||||
if (GetProcessesCount("WEBVIEW") == 1) {
|
if (GetProcessesCount("WEBVIEW") == 1) {
|
||||||
history.add(#param);
|
history.add(#param);
|
||||||
@@ -136,14 +132,6 @@ void main()
|
|||||||
LoadLibraries();
|
LoadLibraries();
|
||||||
HandleParam();
|
HandleParam();
|
||||||
|
|
||||||
if (application_mode) {
|
|
||||||
TOOLBAR_H = 0;
|
|
||||||
PADDING = 0;
|
|
||||||
TSZE = 0;
|
|
||||||
STATUSBAR_H = 0;
|
|
||||||
TAB_H = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
omnibox_edit.left = PADDING+TSZE*2+PADDING+6;
|
omnibox_edit.left = PADDING+TSZE*2+PADDING+6;
|
||||||
omnibox_edit.top = PADDING+3;
|
omnibox_edit.top = PADDING+3;
|
||||||
|
|
||||||
@@ -221,15 +209,6 @@ void main()
|
|||||||
if (http.transfer <= 0) break;
|
if (http.transfer <= 0) break;
|
||||||
http.receive();
|
http.receive();
|
||||||
|
|
||||||
if (http_get_type==PAGE) {
|
|
||||||
CheckContentType();
|
|
||||||
prbar.max = http.content_length;
|
|
||||||
if (prbar.value != http.content_received) {
|
|
||||||
prbar.value = http.content_received;
|
|
||||||
DrawProgress();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (http.receive_result != 0) break;
|
if (http.receive_result != 0) break;
|
||||||
if (debug_mode) {
|
if (debug_mode) {
|
||||||
EAX = http.transfer;
|
EAX = http.transfer;
|
||||||
@@ -248,6 +227,15 @@ void main()
|
|||||||
notify("'Too many redirects.' -E");
|
notify("'Too many redirects.' -E");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
if (http_get_type==PAGE) {
|
||||||
|
CheckContentType();
|
||||||
|
prbar.max = http.content_length;
|
||||||
|
if (prbar.value != http.content_received) {
|
||||||
|
prbar.value = http.content_received;
|
||||||
|
DrawProgress();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Loading the page is complete, free resources
|
// Loading the page is complete, free resources
|
||||||
redirect_count = 0;
|
redirect_count = 0;
|
||||||
if (http_get_type==PAGE) {
|
if (http_get_type==PAGE) {
|
||||||
@@ -324,7 +312,7 @@ void ProcessKeyEvent()
|
|||||||
if (key_modifier&KEY_LSHIFT) || (key_modifier&KEY_RSHIFT)
|
if (key_modifier&KEY_LSHIFT) || (key_modifier&KEY_RSHIFT)
|
||||||
{
|
{
|
||||||
if (key_scancode == SCAN_CODE_TAB) {EventActivatePreviousTab();return;}
|
if (key_scancode == SCAN_CODE_TAB) {EventActivatePreviousTab();return;}
|
||||||
if (key_scancode == SCAN_CODE_KEY_T) {EventOpenNewTab(URL_SERVICE_TEST);return;}
|
if (key_scancode == SCAN_CODE_BS) {EventOpenNewTab(URL_SERVICE_TEST);return;}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (key_modifier&KEY_LCTRL) || (key_modifier&KEY_RCTRL) switch(key_scancode)
|
if (key_modifier&KEY_LCTRL) || (key_modifier&KEY_RCTRL) switch(key_scancode)
|
||||||
@@ -349,6 +337,7 @@ void ProcessKeyEvent()
|
|||||||
{
|
{
|
||||||
case SCAN_CODE_UP: EventScrollUpAndDown(SCAN_CODE_UP); return;
|
case SCAN_CODE_UP: EventScrollUpAndDown(SCAN_CODE_UP); return;
|
||||||
case SCAN_CODE_DOWN: EventScrollUpAndDown(SCAN_CODE_DOWN); return;
|
case SCAN_CODE_DOWN: EventScrollUpAndDown(SCAN_CODE_DOWN); return;
|
||||||
|
case SCAN_CODE_F2: EventEditSource(); return;
|
||||||
case SCAN_CODE_F6: {omnibox_edit.flags=ed_focus; DrawOmnibox();} return;
|
case SCAN_CODE_F6: {omnibox_edit.flags=ed_focus; DrawOmnibox();} return;
|
||||||
case SCAN_CODE_F5: EventRefreshPage(); return;
|
case SCAN_CODE_F5: EventRefreshPage(); return;
|
||||||
case SCAN_CODE_ENTER: if (omnibox_edit.flags & ed_focus) EventSubmitOmnibox(); return;
|
case SCAN_CODE_ENTER: if (omnibox_edit.flags & ed_focus) EventSubmitOmnibox(); return;
|
||||||
@@ -382,7 +371,6 @@ void draw_window()
|
|||||||
|
|
||||||
SetElementSizes();
|
SetElementSizes();
|
||||||
|
|
||||||
if (!application_mode) {
|
|
||||||
DrawBar(0,0, Form.cwidth,PADDING, sc.work);
|
DrawBar(0,0, Form.cwidth,PADDING, sc.work);
|
||||||
DrawBar(0,PADDING+TSZE+1, Form.cwidth,PADDING-1, sc.work);
|
DrawBar(0,PADDING+TSZE+1, Form.cwidth,PADDING-1, sc.work);
|
||||||
DrawBar(0,TOOLBAR_H-2, Form.cwidth,1, MixColors(sc.dark, sc.work, 180));
|
DrawBar(0,TOOLBAR_H-2, Form.cwidth,1, MixColors(sc.dark, sc.work, 180));
|
||||||
@@ -398,7 +386,6 @@ void draw_window()
|
|||||||
|
|
||||||
DrawRectangle(WB1.list.x + WB1.list.w, WB1.list.y, scroll_wv.size_x,
|
DrawRectangle(WB1.list.x + WB1.list.w, WB1.list.y, scroll_wv.size_x,
|
||||||
WB1.list.h-1, scroll_wv.bckg_col);
|
WB1.list.h-1, scroll_wv.bckg_col);
|
||||||
}
|
|
||||||
|
|
||||||
if (!canvas.bufw) {
|
if (!canvas.bufw) {
|
||||||
EventOpenFirstPage();
|
EventOpenFirstPage();
|
||||||
@@ -406,12 +393,9 @@ void draw_window()
|
|||||||
WB1.DrawPage();
|
WB1.DrawPage();
|
||||||
DrawOmnibox();
|
DrawOmnibox();
|
||||||
}
|
}
|
||||||
if (!application_mode) {
|
|
||||||
DrawProgress();
|
DrawProgress();
|
||||||
DrawStatusBar(NULL);
|
DrawStatusBar(NULL);
|
||||||
DrawTabsBar();
|
DrawTabsBar();
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void EventOpenFirstPage()
|
void EventOpenFirstPage()
|
||||||
@@ -588,7 +572,6 @@ void OpenPage(dword _open_URL)
|
|||||||
history.add(#new_url);
|
history.add(#new_url);
|
||||||
WB1.custom_encoding = -1;
|
WB1.custom_encoding = -1;
|
||||||
if (streq(#new_url, URL_SERVICE_HOMEPAGE)) LoadInternalPage(#buildin_page_home, sizeof(buildin_page_home));
|
if (streq(#new_url, URL_SERVICE_HOMEPAGE)) LoadInternalPage(#buildin_page_home, sizeof(buildin_page_home));
|
||||||
else if (streq(#new_url, URL_SERVICE_HELP)) LoadInternalPage(#buildin_page_help, sizeof(buildin_page_help));
|
|
||||||
else if (streq(#new_url, URL_SERVICE_TEST)) LoadInternalPage(#buildin_page_test, sizeof(buildin_page_test));
|
else if (streq(#new_url, URL_SERVICE_TEST)) LoadInternalPage(#buildin_page_test, sizeof(buildin_page_test));
|
||||||
else if (streq(#new_url, URL_SERVICE_HISTORY)) ShowHistory();
|
else if (streq(#new_url, URL_SERVICE_HISTORY)) ShowHistory();
|
||||||
else LoadInternalPage(#buildin_page_error, sizeof(buildin_page_error));
|
else LoadInternalPage(#buildin_page_error, sizeof(buildin_page_error));
|
||||||
@@ -757,7 +740,12 @@ void LoadInternalPage(dword _bufdata, _in_bufsize){
|
|||||||
WB1.DrawPage();
|
WB1.DrawPage();
|
||||||
}
|
}
|
||||||
http.hfree();
|
http.hfree();
|
||||||
if (WB1.img_url.count) { GetImg(true); DrawOmnibox(); }
|
if (WB1.img_url.count) {
|
||||||
|
GetImg(true);
|
||||||
|
DrawOmnibox();
|
||||||
|
} else {
|
||||||
|
PageLoaded();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -770,7 +758,6 @@ bool UrlExtIs(dword base, ext)
|
|||||||
void DrawProgress()
|
void DrawProgress()
|
||||||
{
|
{
|
||||||
dword pct;
|
dword pct;
|
||||||
if (application_mode) return;
|
|
||||||
if (!http.transfer) return;
|
if (!http.transfer) return;
|
||||||
if (http_get_type==PAGE) && (prbar.max) pct = prbar.value*30/prbar.max; else pct = 10;
|
if (http_get_type==PAGE) && (prbar.max) pct = prbar.value*30/prbar.max; else pct = 10;
|
||||||
if (http_get_type==IMG) pct = prbar.value * 70 / prbar.max + 30;
|
if (http_get_type==IMG) pct = prbar.value * 70 / prbar.max + 30;
|
||||||
@@ -779,21 +766,18 @@ void DrawProgress()
|
|||||||
|
|
||||||
void EventShowPageMenu()
|
void EventShowPageMenu()
|
||||||
{
|
{
|
||||||
if (application_mode) return;
|
|
||||||
open_lmenu(mouse.x, mouse.y, MENU_TOP_LEFT, NULL, #rmb_menu);
|
open_lmenu(mouse.x, mouse.y, MENU_TOP_LEFT, NULL, #rmb_menu);
|
||||||
menu_id = VIEW_SOURCE;
|
menu_id = BACK_BUTTON;
|
||||||
}
|
}
|
||||||
|
|
||||||
void EventShowLinkMenu()
|
void EventShowLinkMenu()
|
||||||
{
|
{
|
||||||
if (application_mode) return;
|
|
||||||
open_lmenu(mouse.x, mouse.y, MENU_TOP_LEFT, NULL, #link_menu);
|
open_lmenu(mouse.x, mouse.y, MENU_TOP_LEFT, NULL, #link_menu);
|
||||||
menu_id = IN_NEW_TAB;
|
menu_id = IN_NEW_TAB;
|
||||||
}
|
}
|
||||||
|
|
||||||
void EventShowMainMenu()
|
void EventShowMainMenu()
|
||||||
{
|
{
|
||||||
if (application_mode) return;
|
|
||||||
open_lmenu(Form.cwidth - PADDING -4, PADDING + TSZE + 3,
|
open_lmenu(Form.cwidth - PADDING -4, PADDING + TSZE + 3,
|
||||||
MENU_TOP_RIGHT, NULL, #main_menu);
|
MENU_TOP_RIGHT, NULL, #main_menu);
|
||||||
menu_id = OPEN_FILE;
|
menu_id = OPEN_FILE;
|
||||||
@@ -801,7 +785,6 @@ void EventShowMainMenu()
|
|||||||
|
|
||||||
void EventShowEncodingsList()
|
void EventShowEncodingsList()
|
||||||
{
|
{
|
||||||
if (application_mode) return;
|
|
||||||
open_lmenu(Form.cwidth-4, Form.cheight - STATUSBAR_H + 12,
|
open_lmenu(Form.cwidth-4, Form.cheight - STATUSBAR_H + 12,
|
||||||
MENU_BOT_RIGHT, WB1.cur_encoding + 1,
|
MENU_BOT_RIGHT, WB1.cur_encoding + 1,
|
||||||
"UTF-8\nKOI8-RU\nCP1251\nCP1252\nISO8859-5\nCP866");
|
"UTF-8\nKOI8-RU\nCP1251\nCP1252\nISO8859-5\nCP866");
|
||||||
@@ -824,7 +807,8 @@ void EventSeachWeb()
|
|||||||
{
|
{
|
||||||
char new_url[URL_SIZE+1];
|
char new_url[URL_SIZE+1];
|
||||||
replace_char(#editURL, ' ', '+', URL_SIZE);
|
replace_char(#editURL, ' ', '+', URL_SIZE);
|
||||||
strcpy(#new_url, "https://www.google.com/search?q=");
|
//strcpy(#new_url, "https://html.duckduckgo.com/html/?q=");
|
||||||
|
strcpy(#new_url, "http://bing.com/search?q=");
|
||||||
strncat(#new_url, #editURL, URL_SIZE);
|
strncat(#new_url, #editURL, URL_SIZE);
|
||||||
OpenPage(#new_url);
|
OpenPage(#new_url);
|
||||||
}
|
}
|
||||||
@@ -886,7 +870,6 @@ void DrawStatusBar(dword _msg)
|
|||||||
{
|
{
|
||||||
dword status_y = Form.cheight - STATUSBAR_H + 4;
|
dword status_y = Form.cheight - STATUSBAR_H + 4;
|
||||||
dword status_w = Form.cwidth - 90;
|
dword status_w = Form.cwidth - 90;
|
||||||
if (application_mode) return;
|
|
||||||
if (Form.status_window>2) return;
|
if (Form.status_window>2) return;
|
||||||
DrawBar(0,Form.cheight - STATUSBAR_H+1, Form.cwidth,STATUSBAR_H-1, sc.work);
|
DrawBar(0,Form.cheight - STATUSBAR_H+1, Form.cwidth,STATUSBAR_H-1, sc.work);
|
||||||
if (_msg) {
|
if (_msg) {
|
||||||
@@ -900,7 +883,6 @@ void DrawStatusBar(dword _msg)
|
|||||||
void DrawOmnibox()
|
void DrawOmnibox()
|
||||||
{
|
{
|
||||||
int imgxoff;
|
int imgxoff;
|
||||||
if (application_mode) return;
|
|
||||||
DrawOvalBorder(omnibox_edit.left-2, omnibox_edit.top-3, omnibox_edit.width+18, 24, sc.line,
|
DrawOvalBorder(omnibox_edit.left-2, omnibox_edit.top-3, omnibox_edit.width+18, 24, sc.line,
|
||||||
sc.line, sc.line, sc.dark);
|
sc.line, sc.line, sc.dark);
|
||||||
DrawBar(omnibox_edit.left-1, omnibox_edit.top-2, omnibox_edit.width+18, 1, 0xD8DCD8);
|
DrawBar(omnibox_edit.left-1, omnibox_edit.top-2, omnibox_edit.width+18, 1, 0xD8DCD8);
|
||||||
@@ -919,7 +901,6 @@ void DrawOmnibox()
|
|||||||
|
|
||||||
void SetOmniboxText(dword _text)
|
void SetOmniboxText(dword _text)
|
||||||
{
|
{
|
||||||
if (application_mode) return;
|
|
||||||
edit_box_set_text stdcall (#omnibox_edit, _text);
|
edit_box_set_text stdcall (#omnibox_edit, _text);
|
||||||
omnibox_edit.pos = omnibox_edit.flags = 0;
|
omnibox_edit.pos = omnibox_edit.flags = 0;
|
||||||
DrawOmnibox();
|
DrawOmnibox();
|
||||||
@@ -1000,8 +981,13 @@ dword GetImg(bool _new)
|
|||||||
DrawStatusBar(T_RENDERING);
|
DrawStatusBar(T_RENDERING);
|
||||||
WB1.Reparse();
|
WB1.Reparse();
|
||||||
WB1.DrawPage();
|
WB1.DrawPage();
|
||||||
debugln(sprintf(#param, T_DONE_IN_SEC, GetStartTime()-render_start_time/100));
|
PageLoaded();
|
||||||
DrawStatusBar(NULL);
|
}
|
||||||
|
|
||||||
|
void PageLoaded()
|
||||||
|
{
|
||||||
|
DrawStatusBar(sprintf(#param, T_DONE_IN_SEC, GetStartTime()-render_start_time/100,
|
||||||
|
GetStartTime()-render_start_time*10));
|
||||||
}
|
}
|
||||||
|
|
||||||
stop:
|
stop:
|
||||||
|
@@ -16,7 +16,7 @@ struct _cache
|
|||||||
void add();
|
void add();
|
||||||
bool has();
|
bool has();
|
||||||
void clear();
|
void clear();
|
||||||
} cache=0;
|
} cache;
|
||||||
|
|
||||||
void _cache::add(dword _url, _data, _size, _type, _charset)
|
void _cache::add(dword _url, _data, _size, _type, _charset)
|
||||||
{
|
{
|
||||||
@@ -37,6 +37,7 @@ void _cache::add(dword _url, _data, _size, _type, _charset)
|
|||||||
bool _cache::has(dword _link)
|
bool _cache::has(dword _link)
|
||||||
{
|
{
|
||||||
int pos;
|
int pos;
|
||||||
|
if (!url.count) return false;
|
||||||
pos = url.get_pos_by_name(_link);
|
pos = url.get_pos_by_name(_link);
|
||||||
if (pos != -1) {
|
if (pos != -1) {
|
||||||
current_buf = data.get(pos);
|
current_buf = data.get(pos);
|
||||||
|
@@ -9,8 +9,11 @@ char buildin_page_home[] = FROM "res/homepage_ru.htm";
|
|||||||
char buildin_page_help[] = FROM "res/help_ru.htm";
|
char buildin_page_help[] = FROM "res/help_ru.htm";
|
||||||
char accept_language[]= "Accept-Language: ru\n";
|
char accept_language[]= "Accept-Language: ru\n";
|
||||||
char rmb_menu[] =
|
char rmb_menu[] =
|
||||||
"<EFBFBD><EFBFBD>ᬮ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>室<EFBFBD><E5AEA4><EFBFBD>|Ctrl+U
|
"Back|Ctrl+<
|
||||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>室<EFBFBD><EFBFBD><EFBFBD>";
|
Forward|Ctrl+>
|
||||||
|
-
|
||||||
|
<EFBFBD><EFBFBD>ᬮ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>室<EFBFBD><EFBFBD><EFBFBD>|Ctrl+U
|
||||||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>室<EFBFBD><EFBFBD><EFBFBD>|F2";
|
||||||
char main_menu[] =
|
char main_menu[] =
|
||||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 䠩<>...|Ctrl+O
|
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 䠩<>...|Ctrl+O
|
||||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>|Ctrl+N
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>|Ctrl+N
|
||||||
@@ -27,14 +30,14 @@ char link_menu[] =
|
|||||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᮤ<EFBFBD>ন<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>뫪<EFBFBD>";
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᮤ<EFBFBD>ন<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>뫪<EFBFBD>";
|
||||||
char loading_text[] = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>㧪<EFBFBD>...";
|
char loading_text[] = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>㧪<EFBFBD>...";
|
||||||
|
|
||||||
char update_param[] = "-e http://builds.kolibrios.org/rus/data/programs/cmm/browser/WebView.com";
|
char update_param[] = "-e http://builds.kolibrios.org/ru_RU/data/programs/cmm/browser/WebView.com";
|
||||||
char update_download_error[] = "'WebView\n<EFBFBD>訡<EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>祭<EFBFBD><E7A5AD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!' -tE";
|
char update_download_error[] = "'WebView\n<EFBFBD>訡<EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>祭<EFBFBD><E7A5AD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!' -tE";
|
||||||
char update_ok[] = "'WebView\n<EFBFBD><EFBFBD><EFBFBD>㧥<EFBFBD> <20><><EFBFBD> <20>ᯥ譮 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!' -tO";
|
char update_ok[] = "'WebView\n<EFBFBD><EFBFBD><EFBFBD>㧥<EFBFBD> <20><><EFBFBD> <20>ᯥ譮 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!' -tO";
|
||||||
char update_is_current[] = "'WebView\n<EFBFBD><EFBFBD> 㦥 <20>ᯮ<EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E1ABA5><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.' -tI";
|
char update_is_current[] = "'WebView\n<EFBFBD><EFBFBD> 㦥 <20>ᯮ<EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E1ABA5><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.' -tI";
|
||||||
char update_can_not_copy[] = "'WebView\n<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>६<EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> Downloads <20><> Ramdisk. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>筮 <20><><EFBFBD><EFBFBD><EFBFBD>.' -tE";
|
char update_can_not_copy[] = "'WebView\n<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>६<EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> Downloads <20><> Ramdisk. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>筮 <20><><EFBFBD><EFBFBD><EFBFBD>.' -tE";
|
||||||
char clear_cache_ok[] = "'WebView\n<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>饭.' -tI";
|
char clear_cache_ok[] = "'WebView\n<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>饭.' -tI";
|
||||||
#define T_RENDERING "<22><><EFBFBD><EFBFBD><EFBFBD>ਭ<EFBFBD> <20><>࠭<EFBFBD><E0A0AD><EFBFBD>..."
|
#define T_RENDERING "<22><><EFBFBD><EFBFBD><EFBFBD>ਭ<EFBFBD> <20><>࠭<EFBFBD><E0A0AD><EFBFBD>..."
|
||||||
#define T_DONE_IN_SEC "<22><>⮢<EFBFBD>: %i ᥪ"
|
#define T_DONE_IN_SEC "<22><>⮢<EFBFBD>: %i ᥪ (%i <20><><EFBFBD><EFBFBD>ᥪ)"
|
||||||
#else
|
#else
|
||||||
//===================================================//
|
//===================================================//
|
||||||
// //
|
// //
|
||||||
@@ -46,8 +49,11 @@ char buildin_page_home[] = FROM "res/homepage_en.htm";
|
|||||||
char buildin_page_help[] = FROM "res/help_en.htm";
|
char buildin_page_help[] = FROM "res/help_en.htm";
|
||||||
char accept_language[]= "Accept-Language: en\n";
|
char accept_language[]= "Accept-Language: en\n";
|
||||||
char rmb_menu[] =
|
char rmb_menu[] =
|
||||||
"View source|Ctrl+U
|
"Back|Ctrl+<
|
||||||
Edit source";
|
Forward|Ctrl+>
|
||||||
|
-
|
||||||
|
View source|Ctrl+U
|
||||||
|
Edit source|F2";
|
||||||
char main_menu[] =
|
char main_menu[] =
|
||||||
"Open local file...|Ctrl+O
|
"Open local file...|Ctrl+O
|
||||||
New window|Ctrl+N
|
New window|Ctrl+N
|
||||||
@@ -63,14 +69,14 @@ Open in new window
|
|||||||
Copy link
|
Copy link
|
||||||
Download link contents";
|
Download link contents";
|
||||||
char loading_text[] = "Loading...";
|
char loading_text[] = "Loading...";
|
||||||
char update_param[] = "-e http://builds.kolibrios.org/eng/data/programs/cmm/browser/WebView.com";
|
char update_param[] = "-e http://builds.kolibrios.org/en_US/data/programs/cmm/browser/WebView.com";
|
||||||
char update_download_error[] = "'WebView\nError receiving an up to date information!' -tE";
|
char update_download_error[] = "'WebView\nError receiving an up to date information!' -tE";
|
||||||
char update_ok[] = "'WebView\nThe browser has been updated!' -tO";
|
char update_ok[] = "'WebView\nThe browser has been updated!' -tO";
|
||||||
char update_is_current[] = "'WebView\nThe browser is up to date.' -tI";
|
char update_is_current[] = "'WebView\nThe browser is up to date.' -tI";
|
||||||
char update_can_not_copy[] = "'WebView\nError copying a new version from Downloads folder!\nProbably too litle space on Ramdisk.' -tE";
|
char update_can_not_copy[] = "'WebView\nError copying a new version from Downloads folder!\nProbably too litle space on Ramdisk.' -tE";
|
||||||
char clear_cache_ok[] = "'WebView\nThe cache has been cleared.' -tI";
|
char clear_cache_ok[] = "'WebView\nThe cache has been cleared.' -tI";
|
||||||
#define T_RENDERING "Rendering..."
|
#define T_RENDERING "Rendering..."
|
||||||
#define T_DONE_IN_SEC "Done in %i sec"
|
#define T_DONE_IN_SEC "Done in %i sec (%i milisec)"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//===================================================//
|
//===================================================//
|
||||||
@@ -83,7 +89,6 @@ char buildin_page_test[] = FROM "res/test.htm";
|
|||||||
|
|
||||||
#define URL_SERVICE_HISTORY "WebView:history"
|
#define URL_SERVICE_HISTORY "WebView:history"
|
||||||
#define URL_SERVICE_HOMEPAGE "WebView:home"
|
#define URL_SERVICE_HOMEPAGE "WebView:home"
|
||||||
#define URL_SERVICE_HELP "WebView:help"
|
|
||||||
#define URL_SERVICE_TEST "WebView:test"
|
#define URL_SERVICE_TEST "WebView:test"
|
||||||
|
|
||||||
char webview_shared[] = "WEBVIEW";
|
char webview_shared[] = "WEBVIEW";
|
||||||
@@ -91,12 +96,12 @@ char webview_shared[] = "WEBVIEW";
|
|||||||
enum {
|
enum {
|
||||||
NEW_TAB=600,
|
NEW_TAB=600,
|
||||||
ENCODINGS=700,
|
ENCODINGS=700,
|
||||||
BACK_BUTTON=800,
|
BACK_BUTTON=800, FORWARD_BUTTON, VIEW_SOURCE, EDIT_SOURCE,
|
||||||
FORWARD_BUTTON, REFRESH_BUTTON, GOTOURL_BUTTON, CHANGE_ENCODING,
|
REFRESH_BUTTON, GOTOURL_BUTTON, CHANGE_ENCODING,
|
||||||
SANDWICH_BUTTON, VIEW_SOURCE, EDIT_SOURCE, OPEN_FILE,
|
SANDWICH_BUTTON,
|
||||||
NEW_WINDOW, VIEW_HISTORY, DOWNLOAD_MANAGER, CLEAR_CACHE,
|
OPEN_FILE, NEW_WINDOW, VIEW_HISTORY, DOWNLOAD_MANAGER,
|
||||||
UPDATE_BROWSER, IN_NEW_TAB, IN_NEW_WINDOW, COPY_LINK_URL,
|
CLEAR_CACHE, UPDATE_BROWSER, IN_NEW_TAB, IN_NEW_WINDOW,
|
||||||
DOWNLOAD_LINK_CT, TAB_ID,
|
COPY_LINK_URL, DOWNLOAD_LINK_CT, TAB_ID,
|
||||||
TAB_CLOSE_ID = 900
|
TAB_CLOSE_ID = 900
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -107,4 +112,4 @@ char editbox_icons[] = FROM "res/editbox_icons.raw";
|
|||||||
|
|
||||||
#define DEFAULT_URL URL_SERVICE_HOMEPAGE
|
#define DEFAULT_URL URL_SERVICE_HOMEPAGE
|
||||||
|
|
||||||
char version[]="WebView 3.66-3";
|
char version[]="WebView 3.82";
|
@@ -2,15 +2,16 @@
|
|||||||
<head>
|
<head>
|
||||||
<title>Homepage</title>
|
<title>Homepage</title>
|
||||||
</head>
|
</head>
|
||||||
<body><pre>Bookmarks:
|
<body><pre>Welcome to WebView a Text-Based Browser.
|
||||||
1. <a href=//kolibrios.org>KolibriOS homepage</a>
|
|
||||||
2. <a href=//kolibri-n.org>KolibriN homepage</a>
|
KolibriOS Bookmarks:
|
||||||
3. <a href="//builds.kolibrios.org">Night-builds</a>
|
1. <a href=//kolibrios.org>Homepage</a>
|
||||||
4. <a href="//store.kolibri-n.org">Kolibri Stuff</a>
|
2. <a href="//builds.kolibrios.org">Night-builds</a>
|
||||||
|
3. <a href="//ftp.kolibrios.org">FTP Server</a>
|
||||||
|
|
||||||
<font bg=#F8F15B>By the way,</font>
|
<font bg=#F8F15B>By the way,</font>
|
||||||
<font color="#555555">• You can check for browser updates from the main menu.
|
<font color="#555555">• You can check for browser updates from the main menu.
|
||||||
• To run a web search, type a text in the adress box and press Ctrl+Enter.
|
• To run a web search, type a text in the adress box and press Ctrl+Enter.
|
||||||
• You can also use other <a href=WebView:help><font color=555555>Hotkeys</font></a>.
|
• Pressing F6 moves a text cursor to the omnibox.
|
||||||
• Click on a label in the bottom right corner to change the encoding of a page.
|
• Click on a label in the bottom right corner to change the encoding of a page.
|
||||||
</font>
|
</font>
|
||||||
|
@@ -1,17 +1,15 @@
|
|||||||
<html>
|
<html><head><meta charset="cp-866">
|
||||||
<head>
|
<title><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>࠭<EFBFBD><E0A0AD><EFBFBD></title></head>
|
||||||
<meta charset="cp-866">
|
<body><pre><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⥪<>⮢<EFBFBD><E2AEA2> <20><><EFBFBD>㧥<EFBFBD> WebView!
|
||||||
<title><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>࠭<EFBFBD><E0A0AD><EFBFBD></title>
|
|
||||||
</head>
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> KolibriOS:<ol>
|
||||||
<body><pre><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
<li><a href=//kolibrios.org><EFBFBD><EFBFBD><EFBFBD>樠<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᠩ<></a>
|
||||||
1. <a href=//kolibrios.org><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>࠭<EFBFBD><E0A0AD><EFBFBD> KolibriOS</a>
|
<li><a href="//builds.kolibrios.org"><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᡮન</a>
|
||||||
2. <a href=//kolibri-n.org>KolibriN10</a>
|
<li><a href="//ftp.kolibrios.org">FTP <20><>ࢥ<EFBFBD></a></ol>
|
||||||
3. <a href="//builds.kolibrios.org"><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᡮન</a>
|
|
||||||
4. <a href="//store.kolibri-n.org">Kolibri Store</a>
|
|
||||||
|
|
||||||
<font bg=#F8F15B><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,</font>
|
<font bg=#F8F15B><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,</font>
|
||||||
<font color="#555555">• <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E0AEA2><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>稥 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
<font color="#555555">• <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E0AEA2><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>稥 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
• <20><><EFBFBD> <20><><EFBFBD>᪠ <20> Google <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>᭮<EFBFBD> <20><>ப<EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ctrl+Enter
|
• <20><><EFBFBD> <20><><EFBFBD>᪠ <20> Google <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>᭮<EFBFBD> <20><>ப<EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ctrl+Enter
|
||||||
• <20><><EFBFBD><EFBFBD> ⠪<><E2A0AA> <20><>㣨<EFBFBD> <a href=WebView:help><font color=555555><EFBFBD><EFBFBD><EFBFBD><EFBFBD>稥 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></font></a>.
|
• <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> F6 <20><>६<EFBFBD>頥<EFBFBD> ⥪<>⮢<EFBFBD><E2AEA2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||||
• <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0AEA2> <20><>࠭<EFBFBD><E0A0AD><EFBFBD>, <20><><EFBFBD> <20>⮣<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20>ࠢ<EFBFBD><E0A0A2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 㣫<> <20><><EFBFBD><EFBFBD>.
|
• <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0AEA2> <20><>࠭<EFBFBD><E0A0AD><EFBFBD>, <20><><EFBFBD> <20>⮣<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20>ࠢ<EFBFBD><E0A0A2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 㣫<> <20><><EFBFBD><EFBFBD>.
|
||||||
</font>
|
|
||||||
|
@@ -2,23 +2,22 @@
|
|||||||
<title>TEST</title>
|
<title>TEST</title>
|
||||||
<style>a {display:block;font-size:130%;margin:5px 40px 5px 0;}</style>
|
<style>a {display:block;font-size:130%;margin:5px 40px 5px 0;}</style>
|
||||||
<body>
|
<body>
|
||||||
<pre>
|
<pre><a href=//wiby.org>wiby.org</a>
|
||||||
<a href=//kolibrios.org>KolibriOS</a>
|
<a href=//www.xlr8yourmac.com/OSX/os_x_network_cards.html>OSX network cards</a>
|
||||||
<a href=//kolibri-n.org>KolibriN10</a>
|
<a href=//macintoshgarden.org/>Macintosh Garden</a>
|
||||||
<a href=//store.kolibri-n.org>Kolibri Store</a>
|
|
||||||
|
|
||||||
<table><tr><td>Simplest:
|
<table><tr><td>Simplest:
|
||||||
<a href=//nostalgy.net.ru/>nostalgy.net.ru</a>
|
<a href=//nostalgy.net.ru/>nostalgy.net.ru</a>
|
||||||
<a href=//pci-ids.ucw.cz>pci.ids</a>
|
<a href=//pci-ids.ucw.cz>pci.ids</a>
|
||||||
<a href=//dgmag.in>dgmag.in</a>
|
<a href=//dgmag.in>dgmag.in</a>
|
||||||
<a href=//bash.im>bash.im</a>
|
<a href=//web.archive.org/web/https://bash.im>bash.im</a>
|
||||||
<a href=//opennet.ru>opennet</a>
|
<a href=//web.archive.org/web/https://opennet.ru>opennet</a>
|
||||||
<a href=//linux.org.ru>LOR</a>
|
<a href=//linux.org.ru>LOR</a>
|
||||||
<a href=//baravy.by/me/b.html>baravy.by/me/b.html</a>
|
<a href=//web.archive.org/web/https://samlib.ru/b>samlib.ru/b</a>
|
||||||
<a href=//samlib.ru/b>samlib.ru/b</a>
|
<a href=//web.archive.org/web/https://mirrors.pdp-11.ru>mirrors.pdp-11.ru</a>
|
||||||
<a href=//mirrors.pdp-11.ru>mirrors.pdp-11.ru</a>
|
<a href=//web.archive.org/web/http://gona.mactar.hu/ATI_Mac/>ATI drivers for Mac</a>
|
||||||
<td>Simple:
|
<td>Simple:
|
||||||
<a href=//lionovsky.us>lionovsky.us</a>
|
<a href=//web.archive.org/web/http://lionovsky.us>lionovsky.us</a>
|
||||||
<a href=//os-menuet.narod.ru>os-menuet.narod.ru</a>
|
<a href=//os-menuet.narod.ru>os-menuet.narod.ru</a>
|
||||||
<a href=//mestack.narod.ru/index.html>mestack.narod.ru</a>
|
<a href=//mestack.narod.ru/index.html>mestack.narod.ru</a>
|
||||||
<a href=//coolthemes.narod.ru/indexold.html>coolthemes.narod.ru</a>
|
<a href=//coolthemes.narod.ru/indexold.html>coolthemes.narod.ru</a>
|
||||||
@@ -34,8 +33,7 @@ Moderate:
|
|||||||
<a href=//www.weitek.com/textual/support/driver.html>weitek</a>
|
<a href=//www.weitek.com/textual/support/driver.html>weitek</a>
|
||||||
<a href=//www.abandonwarering.com/?Page=Listing>abandonware</a>
|
<a href=//www.abandonwarering.com/?Page=Listing>abandonware</a>
|
||||||
<td>Complex:
|
<td>Complex:
|
||||||
<a href=//artcon.ru>artcon.ru</a>
|
<a href=//web.archive.org/web/https://artcon.ru>artcon.ru</a>
|
||||||
<a href=//nubo.ru>nubo.ru</a>
|
<a href=//nubo.ru>nubo.ru</a>
|
||||||
<a href=//salinc.ru>salinc.ru</a>
|
|
||||||
<a href=//electromyne.de>electromyne.de</a>
|
<a href=//electromyne.de>electromyne.de</a>
|
||||||
<a href=//www.thg.ru/graphic/25year_ati_history>tom's hardware</a>
|
<a href=//web.archive.org/web/20190403215447//www.thg.ru/>thg</a>
|
@@ -7,8 +7,8 @@
|
|||||||
|
|
||||||
#define TABS_MAX 5
|
#define TABS_MAX 5
|
||||||
|
|
||||||
TWebBrowser tabdata[TABS_MAX+1]=0;
|
TWebBrowser tabdata[TABS_MAX+1];
|
||||||
_history tabstory[TABS_MAX+1]=0;
|
_history tabstory[TABS_MAX+1];
|
||||||
|
|
||||||
struct TAB
|
struct TAB
|
||||||
{
|
{
|
||||||
|
@@ -17,8 +17,10 @@
|
|||||||
#define T_STATUS_DL_P2 " M<> <20><><EFBFBD><EFBFBD>祭<EFBFBD> ("
|
#define T_STATUS_DL_P2 " M<> <20><><EFBFBD><EFBFBD>祭<EFBFBD> ("
|
||||||
#define T_STATUS_DL_P3 " K<>/<EFBFBD>) "
|
#define T_STATUS_DL_P3 " K<>/<EFBFBD>) "
|
||||||
|
|
||||||
#define FILE_SAVED_AS "'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>㧮<EFBFBD>\n<><6E><EFBFBD><EFBFBD> <20><><EFBFBD>࠭<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> %s' -Dt"
|
#define T_ERROR_TOO_MANY_REDIRECTS "'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>㧮<EFBFBD>\n<><6E><EFBFBD>誮<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> ।<EFBFBD>४⮢ (HTTP 3XX)' -Et"
|
||||||
#define FILE_NOT_SAVED "'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>㧮<EFBFBD>\n<>訡<EFBFBD><E8A8A1>! <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>࠭<EFBFBD><E0A0AD> <20><><EFBFBD>\n%s' -Et"
|
|
||||||
|
#define T_FILE_SAVED_AS "'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>㧮<EFBFBD>\n<><6E><EFBFBD><EFBFBD> <20><><EFBFBD>࠭<EFBFBD><E0A0AD> <20><><EFBFBD> %s' -Dt"
|
||||||
|
#define T_FILE_NOT_SAVED "'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>㧮<EFBFBD>\n<>訡<EFBFBD><E8A8A1>! <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>࠭<EFBFBD><E0A0AD> <20><><EFBFBD>\n%s' -Et"
|
||||||
#define T_ERROR_STARTING_DOWNLOAD "'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᪠稢<E1AAA0><E7A8A2><EFBFBD><EFBFBD>.\n<><EFBFBD><E0AEA2><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> ᮥ<><E1AEA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>⮬.' -E"
|
#define T_ERROR_STARTING_DOWNLOAD "'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᪠稢<E1AAA0><E7A8A2><EFBFBD><EFBFBD>.\n<><EFBFBD><E0AEA2><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> ᮥ<><E1AEA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>⮬.' -E"
|
||||||
char accept_language[]= "Accept-Language: ru\n";
|
char accept_language[]= "Accept-Language: ru\n";
|
||||||
#else
|
#else
|
||||||
@@ -38,8 +40,10 @@
|
|||||||
#define T_STATUS_DL_P2 " MB received ("
|
#define T_STATUS_DL_P2 " MB received ("
|
||||||
#define T_STATUS_DL_P3 " KB/s) "
|
#define T_STATUS_DL_P3 " KB/s) "
|
||||||
|
|
||||||
#define FILE_SAVED_AS "'Download manager\nFile saved as %s' -Dt"
|
#define T_ERROR_TOO_MANY_REDIRECTS "'Download manager\nToo many redirects' -Et"
|
||||||
#define FILE_NOT_SAVED "'Download manager\nError! Can\96t save file as %s' -Et"
|
|
||||||
|
#define T_FILE_SAVED_AS "'Download manager\nFile saved as %s' -Dt"
|
||||||
|
#define T_FILE_NOT_SAVED "'Download manager\nError! Can\96t save file as %s' -Et"
|
||||||
#define T_ERROR_STARTING_DOWNLOAD "'Error while starting download process.\nCheck entered path and Internet connection.' -E"
|
#define T_ERROR_STARTING_DOWNLOAD "'Error while starting download process.\nCheck entered path and Internet connection.' -E"
|
||||||
char accept_language[]= "Accept-Language: en\n";
|
char accept_language[]= "Accept-Language: en\n";
|
||||||
#endif
|
#endif
|
||||||
|
@@ -11,6 +11,8 @@ bool open_file = false;
|
|||||||
|
|
||||||
dword speed;
|
dword speed;
|
||||||
|
|
||||||
|
int redirect_count;
|
||||||
|
|
||||||
_http http;
|
_http http;
|
||||||
|
|
||||||
checkbox autoclose = { T_AUTOCLOSE, false };
|
checkbox autoclose = { T_AUTOCLOSE, false };
|
||||||
@@ -228,6 +230,7 @@ void InitDownload()
|
|||||||
pb.progress_color = PB_COL_PROGRESS;
|
pb.progress_color = PB_COL_PROGRESS;
|
||||||
filepath = '\0';
|
filepath = '\0';
|
||||||
active_status = T_STATUS_READY;
|
active_status = T_STATUS_READY;
|
||||||
|
redirect_count = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void MonitorProgress()
|
void MonitorProgress()
|
||||||
@@ -241,6 +244,13 @@ void MonitorProgress()
|
|||||||
DrawDownloadingProgress();
|
DrawDownloadingProgress();
|
||||||
} else {
|
} else {
|
||||||
if (http.status_code >= 300) && (http.status_code < 400) {
|
if (http.status_code >= 300) && (http.status_code < 400) {
|
||||||
|
redirect_count++;
|
||||||
|
if (redirect_count >= 5) {
|
||||||
|
notify(T_ERROR_TOO_MANY_REDIRECTS);
|
||||||
|
ProcessButtonClick(BTN_STOP);
|
||||||
|
EditBox_UpdateText(#ed, ed_focus + ed_always_focus);
|
||||||
|
return;
|
||||||
|
}
|
||||||
http.header_field("location", #redirect_url, URL_SIZE);
|
http.header_field("location", #redirect_url, URL_SIZE);
|
||||||
get_absolute_url(#redirect_url, #uEdit);
|
get_absolute_url(#redirect_url, #uEdit);
|
||||||
edit_box_set_text stdcall (#ed, #redirect_url);
|
edit_box_set_text stdcall (#ed, #redirect_url);
|
||||||
@@ -307,9 +317,9 @@ void SaveFile(int attempt)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (CreateFile(http.content_received, http.content_pointer, #filepath)==0) {
|
if (CreateFile(http.content_received, http.content_pointer, #filepath)==0) {
|
||||||
miniprintf(#notify_message, FILE_SAVED_AS, #filepath);
|
miniprintf(#notify_message, T_FILE_SAVED_AS, #filepath);
|
||||||
} else {
|
} else {
|
||||||
miniprintf(#notify_message, FILE_NOT_SAVED, #filepath);
|
miniprintf(#notify_message, T_FILE_NOT_SAVED, #filepath);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!autoclose.checked) notify(#notify_message);
|
if (!autoclose.checked) notify(#notify_message);
|
||||||
|
@@ -11,9 +11,9 @@ TODO:
|
|||||||
http://board.kolibrios.org/viewtopic.php?f=23&t=4521&p=77334#p77334
|
http://board.kolibrios.org/viewtopic.php?f=23&t=4521&p=77334#p77334
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define ABOUT_TITLE "EOLITE 5.26a"
|
#define ABOUT_TITLE "EOLITE 5.28"
|
||||||
#define TITLE_EOLITE "Eolite File Manager 5.26a"
|
#define TITLE_EOLITE "Eolite File Manager 5.28"
|
||||||
#define TITLE_KFM "Kolibri File Manager 2.26a";
|
#define TITLE_KFM "Kolibri File Manager 2.28";
|
||||||
|
|
||||||
#define MEMSIZE 1024 * 250
|
#define MEMSIZE 1024 * 250
|
||||||
#include "../lib/clipboard.h"
|
#include "../lib/clipboard.h"
|
||||||
@@ -239,6 +239,7 @@ void main()
|
|||||||
if (key_modifier&KEY_LSHIFT) || (key_modifier&KEY_RSHIFT) {
|
if (key_modifier&KEY_LSHIFT) || (key_modifier&KEY_RSHIFT) {
|
||||||
EventChooseFilesRange(old_cur_y, files.cur_y);
|
EventChooseFilesRange(old_cur_y, files.cur_y);
|
||||||
} else if (key_modifier&KEY_LCTRL) || (key_modifier&KEY_RCTRL) {
|
} else if (key_modifier&KEY_LCTRL) || (key_modifier&KEY_RCTRL) {
|
||||||
|
if (!getSelectedCount()) EventChooseFile(old_cur_y);
|
||||||
EventChooseFile(files.cur_y);
|
EventChooseFile(files.cur_y);
|
||||||
DrawStatusBar();
|
DrawStatusBar();
|
||||||
List_ReDraw();
|
List_ReDraw();
|
||||||
@@ -539,16 +540,13 @@ void draw_window()
|
|||||||
incn x;
|
incn x;
|
||||||
dword title;
|
dword title;
|
||||||
static int rand_n;
|
static int rand_n;
|
||||||
if (!rand_n) rand_n = random(80);
|
if (!rand_n) && (Form.width + 1 != screen.w) rand_n = random(80);
|
||||||
|
|
||||||
if (show_status_bar.checked) {
|
|
||||||
#define STBAR_EOLITE_H 16
|
#define STBAR_EOLITE_H 16
|
||||||
#define STBAR_KFM_H 21
|
#define STBAR_KFM_H 21
|
||||||
if (efm) status_bar_h = STBAR_KFM_H;
|
if (efm) status_bar_h = STBAR_KFM_H;
|
||||||
else status_bar_h = STBAR_EOLITE_H;
|
else status_bar_h = STBAR_EOLITE_H;
|
||||||
} else {
|
|
||||||
status_bar_h = 0;
|
|
||||||
}
|
|
||||||
if (efm) title = TITLE_KFM; else title = TITLE_EOLITE;
|
if (efm) title = TITLE_KFM; else title = TITLE_EOLITE;
|
||||||
DefineAndDrawWindow(Form.left+rand_n,Form.top+rand_n,Form.width,Form.height,0x73,NULL,title,0);
|
DefineAndDrawWindow(Form.left+rand_n,Form.top+rand_n,Form.width,Form.height,0x73,NULL,title,0);
|
||||||
GetProcessInfo(#Form, SelfInfo);
|
GetProcessInfo(#Form, SelfInfo);
|
||||||
@@ -596,7 +594,7 @@ void draw_window()
|
|||||||
}
|
}
|
||||||
//main rectangles
|
//main rectangles
|
||||||
DrawRectangle(1,40,Form.cwidth-3,Form.cheight - 42-status_bar_h,sc.line);
|
DrawRectangle(1,40,Form.cwidth-3,Form.cheight - 42-status_bar_h,sc.line);
|
||||||
DrawBar(0,39,1,-show_status_bar.checked*status_bar_h + Form.cheight - 40, sc.work);
|
DrawBar(0,39,1,-status_bar_h + Form.cheight - 40, sc.work);
|
||||||
EBX = Form.cwidth-1 * 65536 + 1;
|
EBX = Form.cwidth-1 * 65536 + 1;
|
||||||
$int 64
|
$int 64
|
||||||
for (i=0; i<6; i++) DrawBar(0, 34+i, Form.cwidth, 1, MixColors(sc.dark, sc.work, i*10));
|
for (i=0; i<6; i++) DrawBar(0, 34+i, Form.cwidth, 1, MixColors(sc.dark, sc.work, i*10));
|
||||||
@@ -651,17 +649,13 @@ void DrawStatusBar()
|
|||||||
{
|
{
|
||||||
char status_bar_str[80];
|
char status_bar_str[80];
|
||||||
int go_up_folder_exists=0;
|
int go_up_folder_exists=0;
|
||||||
dword topcolor;
|
DrawBar(0, Form.cheight - status_bar_h-1, Form.cwidth, 1, sc.light);
|
||||||
|
|
||||||
if (show_status_bar.checked) topcolor=sc.light; else topcolor=sc.work;
|
|
||||||
DrawBar(0, Form.cheight - status_bar_h-1, Form.cwidth, 1, topcolor);
|
|
||||||
|
|
||||||
if (efm) {
|
if (efm) {
|
||||||
DrawBar(0, Form.cheight - status_bar_h, Form.cwidth, 2, sc.work);
|
DrawBar(0, Form.cheight - status_bar_h, Form.cwidth, 2, sc.work);
|
||||||
DrawBar(0, Form.cheight - 2, Form.cwidth, 2, EDX);
|
DrawBar(0, Form.cheight - 2, Form.cwidth, 2, EDX);
|
||||||
DrawBar(Form.cwidth-1, Form.cheight - 19, 1, 17, EDX);
|
DrawBar(Form.cwidth-1, Form.cheight - 19, 1, 17, EDX);
|
||||||
DrawFuncButtonsInKfm();
|
DrawFuncButtonsInKfm();
|
||||||
} else if (show_status_bar.checked) {
|
} else {
|
||||||
if (files.count>0) && (streq(items.get(0)*304+buf+72,"..")) go_up_folder_exists=1;
|
if (files.count>0) && (streq(items.get(0)*304+buf+72,"..")) go_up_folder_exists=1;
|
||||||
DrawBar(0, Form.cheight - status_bar_h, Form.cwidth, status_bar_h, sc.work);
|
DrawBar(0, Form.cheight - status_bar_h, Form.cwidth, status_bar_h, sc.work);
|
||||||
sprintf(#status_bar_str, T_STATUS_EVEMENTS, folder_count-go_up_folder_exists, files.count-folder_count);
|
sprintf(#status_bar_str, T_STATUS_EVEMENTS, folder_count-go_up_folder_exists, files.count-folder_count);
|
||||||
@@ -1115,7 +1109,6 @@ void EventClosePopinForm()
|
|||||||
void ShowPopinForm(byte _popin_type)
|
void ShowPopinForm(byte _popin_type)
|
||||||
{
|
{
|
||||||
int popinx;
|
int popinx;
|
||||||
popin_string[0] = -1;
|
|
||||||
switch(_popin_type) {
|
switch(_popin_type) {
|
||||||
case POPIN_PATH:
|
case POPIN_PATH:
|
||||||
edit_box_set_text stdcall (#popin_text, path);
|
edit_box_set_text stdcall (#popin_text, path);
|
||||||
@@ -1130,6 +1123,7 @@ void ShowPopinForm(byte _popin_type)
|
|||||||
DrawEolitePopup(T_CREATE, T_CANCEL);
|
DrawEolitePopup(T_CREATE, T_CANCEL);
|
||||||
break;
|
break;
|
||||||
case POPIN_RENAME:
|
case POPIN_RENAME:
|
||||||
|
if (itdir) && (streq(#file_name,"..")) return;
|
||||||
edit_box_set_text stdcall (#popin_text, #file_name);
|
edit_box_set_text stdcall (#popin_text, #file_name);
|
||||||
DrawEolitePopup(T_RENAME, T_CANCEL);
|
DrawEolitePopup(T_RENAME, T_CANCEL);
|
||||||
break;
|
break;
|
||||||
@@ -1187,7 +1181,7 @@ void FnProcess(byte N)
|
|||||||
if (files.count) ShowPopinForm(POPIN_RENAME);
|
if (files.count) ShowPopinForm(POPIN_RENAME);
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
if (files.count) && (!itdir) RunProgram("/kolibrios/utils/quark", #file_path);
|
if (files.count) && (!itdir) RunProgram("/sys/develop/heed", #file_path);
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
if (files.count) && (!itdir) RunProgram("/sys/develop/cedit", #file_path);
|
if (files.count) && (!itdir) RunProgram("/sys/develop/cedit", #file_path);
|
||||||
|
@@ -42,7 +42,7 @@ void about_dialog()
|
|||||||
about_x = -strlen(ABOUT_TITLE)*18+about_form.cwidth/2;
|
about_x = -strlen(ABOUT_TITLE)*18+about_form.cwidth/2;
|
||||||
WriteTextB(about_x+2,107,0x82,0xD49CD2,ABOUT_TITLE);
|
WriteTextB(about_x+2,107,0x82,0xD49CD2,ABOUT_TITLE);
|
||||||
WriteTextB(about_x,105,0x82,0x9D129D,ABOUT_TITLE);
|
WriteTextB(about_x,105,0x82,0x9D129D,ABOUT_TITLE);
|
||||||
WriteTextLines(73,163,0x90,sc.work_text," By Leency\nand KolibriOS Team\n 2008-2021",20);
|
WriteTextLines(73,163,0x90,sc.work_text," By Leency\nand KolibriOS Team\n 2008-2025",20);
|
||||||
#ifdef LANG_RUS
|
#ifdef LANG_RUS
|
||||||
DrawStandartCaptButton(60,about_form.cheight-38,11,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ࠧࠡ<E0A0A7>⪨");
|
DrawStandartCaptButton(60,about_form.cheight-38,11,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ࠧࠡ<E0A0A7>⪨");
|
||||||
#endif
|
#endif
|
||||||
|
@@ -38,7 +38,7 @@
|
|||||||
char *kfm_func = {
|
char *kfm_func = {
|
||||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
|
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
|
||||||
"<EFBFBD><EFBFBD>२<EFBFBD><EFBFBD><EFBFBD>.",
|
"<EFBFBD><EFBFBD>२<EFBFBD><EFBFBD><EFBFBD>.",
|
||||||
"<EFBFBD><EFBFBD><EFBFBD>ᬮ<EFBFBD><EFBFBD>",
|
"HEX-<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.",
|
||||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.",
|
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.",
|
||||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
|
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
|
||||||
"<EFBFBD><EFBFBD>६<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
|
"<EFBFBD><EFBFBD>६<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
|
||||||
@@ -86,9 +86,9 @@ char *actions[] = {
|
|||||||
|
|
||||||
#define TITLE_SETT "<22><><EFBFBD><EFBFBD>ன<EFBFBD><E0AEA9>"
|
#define TITLE_SETT "<22><><EFBFBD><EFBFBD>ன<EFBFBD><E0AEA9>"
|
||||||
#define SHOW_DEVICE_CLASS "<22>뢮<EFBFBD><EBA2AE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ன<EFBFBD><E0AEA9><EFBFBD>"
|
#define SHOW_DEVICE_CLASS "<22>뢮<EFBFBD><EBA2AE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ன<EFBFBD><E0AEA9><EFBFBD>"
|
||||||
#define SHOW_STATUS_BAR "<22><><EFBFBD><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>"
|
|
||||||
#define BIG_ICONS "<22>ᯮ<EFBFBD>짮<EFBFBD><ECA7AE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>訥 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
#define BIG_ICONS "<22>ᯮ<EFBFBD>짮<EFBFBD><ECA7AE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>訥 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||||
#define COLORED_LINES "<22><><EFBFBD>ᢥ稢<E1A2A5><E7A8A2><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> ᯨ᪥"
|
#define COLORED_LINES "<22><><EFBFBD>ᢥ稢<E1A2A5><E7A8A2><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> ᯨ᪥"
|
||||||
|
#define FONT_BOLD "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>"
|
||||||
#define FONT_SIZE_LABEL "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
#define FONT_SIZE_LABEL "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||||
#define LIST_LINE_HEIGHT "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ப<EFBFBD> <20> ᯨ᪥"
|
#define LIST_LINE_HEIGHT "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ப<EFBFBD> <20> ᯨ᪥"
|
||||||
#define SAVE_PATH_AS_DEFAULT "<22><><EFBFBD><EFBFBD>騩 <20><><EFBFBD><EFBFBD>"
|
#define SAVE_PATH_AS_DEFAULT "<22><><EFBFBD><EFBFBD>騩 <20><><EFBFBD><EFBFBD>"
|
||||||
@@ -137,7 +137,7 @@ char *actions[] = {
|
|||||||
char *kfm_func = {
|
char *kfm_func = {
|
||||||
"Info",
|
"Info",
|
||||||
"Rename",
|
"Rename",
|
||||||
"View",
|
"HEX View",
|
||||||
"Edit",
|
"Edit",
|
||||||
"Copy",
|
"Copy",
|
||||||
"Move",
|
"Move",
|
||||||
@@ -185,9 +185,9 @@ char *actions[] = {
|
|||||||
|
|
||||||
#define TITLE_SETT "Settings"
|
#define TITLE_SETT "Settings"
|
||||||
#define SHOW_DEVICE_CLASS "Show device class name"
|
#define SHOW_DEVICE_CLASS "Show device class name"
|
||||||
#define SHOW_STATUS_BAR "Show status bar"
|
|
||||||
#define BIG_ICONS "Big icons in list"
|
#define BIG_ICONS "Big icons in list"
|
||||||
#define COLORED_LINES "Highlight even lines in list"
|
#define COLORED_LINES "Highlight even lines in list"
|
||||||
|
#define FONT_BOLD "Bold font"
|
||||||
#define FONT_SIZE_LABEL "Font size"
|
#define FONT_SIZE_LABEL "Font size"
|
||||||
#define LIST_LINE_HEIGHT "List line height"
|
#define LIST_LINE_HEIGHT "List line height"
|
||||||
#define SAVE_PATH_AS_DEFAULT "Current path"
|
#define SAVE_PATH_AS_DEFAULT "Current path"
|
||||||
|
@@ -158,25 +158,27 @@ void _SystemDiscs::DrawOptions(int draw_x)
|
|||||||
SystemDiscs.Get();
|
SystemDiscs.Get();
|
||||||
|
|
||||||
DrawPopup(draw_x, optionsy, DDW, list.count*KFM2_DEVH, 1, -1, sc.line);
|
DrawPopup(draw_x, optionsy, DDW, list.count*KFM2_DEVH, 1, -1, sc.line);
|
||||||
|
EAX = kfont.bold;
|
||||||
|
$push eax
|
||||||
|
|
||||||
for (i=0;i<list.count;i++) {
|
for (i=0;i<list.count;i++) {
|
||||||
strcpy(#dev_name, list.get(i));
|
strcpy(#dev_name, list.get(i));
|
||||||
GetDiskIconAndName(#dev_name, #dev_icon, #disc_name);
|
GetDiskIconAndName(#dev_name, #dev_icon, #disc_name);
|
||||||
if (strstr(path, #dev_name)!=0) is_active=true; else is_active=false;
|
if (strstr(path, #dev_name)!=0) kfont.bold=true; else kfont.bold=false;
|
||||||
|
|
||||||
DrawBar(draw_x, optionsy, DDW, KFM2_DEVH, 0xFFFFFF);
|
DrawBar(draw_x, optionsy, DDW, KFM2_DEVH, 0xFFFFFF);
|
||||||
DefineButton(draw_x, optionsy, DDW, KFM2_DEVH-1, 100+i+BT_HIDE,0xFFFFFF);
|
DefineButton(draw_x, optionsy, DDW, KFM2_DEVH-1, 100+i+BT_HIDE,0xFFFFFF);
|
||||||
PutImage(draw_x + 5, optionsy+2, 18,17, is_active*7+dev_icon*17*18*3+#devices);
|
PutImage(draw_x + 5, optionsy+2, 18,17, kfont.bold*7+dev_icon*17*18*3+#devices);
|
||||||
if (is_active) kfont.bold = true;
|
|
||||||
//strncpy(#volume_label, GetVolumeLabel(#dev_name), sizeof(volume_label));
|
//strncpy(#volume_label, GetVolumeLabel(#dev_name), sizeof(volume_label));
|
||||||
strcpy(#label_file_name, #dev_name);
|
strcpy(#label_file_name, #dev_name);
|
||||||
//if (dev_name[1]!='k') && (dev_name[2]!='y') {
|
//if (dev_name[1]!='k') && (dev_name[2]!='y') {
|
||||||
// if (volume_label) sprintf(#label_file_name, "%s [%s]", #dev_name, #volume_label);
|
// if (volume_label) sprintf(#label_file_name, "%s [%s]", #dev_name, #volume_label);
|
||||||
//}
|
//}
|
||||||
kfont.WriteIntoWindow(draw_x + 24, optionsy+2, 0xFFFfff, 0x000000, kfont.size.pt, #label_file_name+1);
|
kfont.WriteIntoWindow(draw_x + 24, optionsy+2, 0xFFFfff, 0x000000, kfont.size.pt, #label_file_name+1);
|
||||||
kfont.bold = false;
|
|
||||||
optionsy += KFM2_DEVH;
|
optionsy += KFM2_DEVH;
|
||||||
}
|
}
|
||||||
|
$pop eax
|
||||||
|
kfont.bold = EAX;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@@ -9,9 +9,9 @@ edit_box path_start_ed = {290,50,57,0xffffff,0x94AECE,0xffffff,0xffffff,0x100000
|
|||||||
more_less_box font_size = { NULL, 9, 22, FONT_SIZE_LABEL };
|
more_less_box font_size = { NULL, 9, 22, FONT_SIZE_LABEL };
|
||||||
more_less_box line_height = { NULL, 16, 64, LIST_LINE_HEIGHT };
|
more_less_box line_height = { NULL, 16, 64, LIST_LINE_HEIGHT };
|
||||||
checkbox show_dev_name = { SHOW_DEVICE_CLASS };
|
checkbox show_dev_name = { SHOW_DEVICE_CLASS };
|
||||||
checkbox show_status_bar = { SHOW_STATUS_BAR };
|
|
||||||
checkbox big_icons = { BIG_ICONS };
|
checkbox big_icons = { BIG_ICONS };
|
||||||
checkbox colored_lines = { COLORED_LINES };
|
checkbox colored_lines = { COLORED_LINES };
|
||||||
|
checkbox bold_font = { FONT_BOLD };
|
||||||
|
|
||||||
|
|
||||||
void settings_dialog()
|
void settings_dialog()
|
||||||
@@ -51,8 +51,10 @@ void settings_dialog()
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
show_dev_name.click(id);
|
show_dev_name.click(id);
|
||||||
show_status_bar.click(id);
|
|
||||||
colored_lines.click(id);
|
colored_lines.click(id);
|
||||||
|
if (bold_font.click(id)) {
|
||||||
|
kfont.bold^=1;
|
||||||
|
}
|
||||||
if (font_size.click(id)) {
|
if (font_size.click(id)) {
|
||||||
kfont.size.pt = font_size.value;
|
kfont.size.pt = font_size.value;
|
||||||
kfont.changeSIZE();
|
kfont.changeSIZE();
|
||||||
@@ -72,7 +74,7 @@ void settings_dialog()
|
|||||||
|
|
||||||
case evReDraw:
|
case evReDraw:
|
||||||
DefineAndDrawWindow(Form.cwidth-300/2+Form.left, Form.cheight-292/2+Form.top, 400,
|
DefineAndDrawWindow(Form.cwidth-300/2+Form.left, Form.cheight-292/2+Form.top, 400,
|
||||||
-efm*42+345+skin_h,0x34,sc.work,TITLE_SETT,0);
|
345+skin_h,0x34,sc.work,TITLE_SETT,0);
|
||||||
GetProcessInfo(#Settings, SelfInfo);
|
GetProcessInfo(#Settings, SelfInfo);
|
||||||
DrawSettingsCheckBoxes();
|
DrawSettingsCheckBoxes();
|
||||||
}
|
}
|
||||||
@@ -96,10 +98,10 @@ void DrawSettingsCheckBoxes()
|
|||||||
y.n = 0;
|
y.n = 0;
|
||||||
if (!efm) {
|
if (!efm) {
|
||||||
show_dev_name.draw(XXX, y.inc(14));
|
show_dev_name.draw(XXX, y.inc(14));
|
||||||
show_status_bar.draw(XXX, y.inc(25));
|
|
||||||
}
|
}
|
||||||
big_icons.draw(XXX, y.inc(25));
|
big_icons.draw(XXX, y.inc(25));
|
||||||
colored_lines.draw(XXX, y.inc(25));
|
colored_lines.draw(XXX, y.inc(25));
|
||||||
|
bold_font.draw(XXX, y.inc(25));
|
||||||
font_size.draw(XXX, y.inc(31));
|
font_size.draw(XXX, y.inc(31));
|
||||||
line_height.draw(XXX, y.inc(31));
|
line_height.draw(XXX, y.inc(31));
|
||||||
|
|
||||||
@@ -121,7 +123,7 @@ void LoadIniSettings()
|
|||||||
|
|
||||||
files.SetFont(6, 9, 10000000b);
|
files.SetFont(6, 9, 10000000b);
|
||||||
show_dev_name.checked = ini.GetInt("ShowDeviceName", true);
|
show_dev_name.checked = ini.GetInt("ShowDeviceName", true);
|
||||||
show_status_bar.checked = ini.GetInt("ShowStatusBar", true);
|
kfont.bold = bold_font.checked = ini.GetInt("BoldFont", false);
|
||||||
big_icons.checked = ini.GetInt("BigIcons", false); BigIconsSwitch();
|
big_icons.checked = ini.GetInt("BigIcons", false); BigIconsSwitch();
|
||||||
colored_lines.checked = ini.GetInt("ColoredLines", true);
|
colored_lines.checked = ini.GetInt("ColoredLines", true);
|
||||||
kfont.size.pt = ini.GetInt("FontSize", 13);
|
kfont.size.pt = ini.GetInt("FontSize", 13);
|
||||||
@@ -141,7 +143,7 @@ void LoadIniSettings()
|
|||||||
void SaveIniSettings()
|
void SaveIniSettings()
|
||||||
{
|
{
|
||||||
ini.SetInt("ShowDeviceName", show_dev_name.checked);
|
ini.SetInt("ShowDeviceName", show_dev_name.checked);
|
||||||
ini.SetInt("ShowStatusBar", show_status_bar.checked);
|
ini.SetInt("BoldFont", bold_font.checked);
|
||||||
ini.SetInt("BigIcons", big_icons.checked);
|
ini.SetInt("BigIcons", big_icons.checked);
|
||||||
ini.SetInt("ColoredLines", colored_lines.checked);
|
ini.SetInt("ColoredLines", colored_lines.checked);
|
||||||
ini.SetInt("FontSize", kfont.size.pt);
|
ini.SetInt("FontSize", kfont.size.pt);
|
||||||
|
@@ -1,6 +0,0 @@
|
|||||||
if tup.getconfig("NO_CMM") ~= "" then return end
|
|
||||||
if tup.getconfig("LANG") == "ru_RU"
|
|
||||||
then C_LANG = "LANG_RUS"
|
|
||||||
else C_LANG = "LANG_ENG" -- this includes default case without config
|
|
||||||
end
|
|
||||||
tup.rule("font_viewer.c", "c-- /D=$(C_LANG) /OPATH=%o %f" .. tup.getconfig("KPACK_CMD"), "font_viewer.com")
|
|
@@ -1,4 +0,0 @@
|
|||||||
@del kf_view
|
|
||||||
@C-- font_viewer.c
|
|
||||||
@rename font_viewer.com kf_view
|
|
||||||
if not exist kf_view ( @pause )
|
|
@@ -13,7 +13,6 @@ struct collection_int
|
|||||||
dword buf;
|
dword buf;
|
||||||
dword buf_size;
|
dword buf_size;
|
||||||
unsigned count;
|
unsigned count;
|
||||||
void alloc();
|
|
||||||
void add();
|
void add();
|
||||||
dword get();
|
dword get();
|
||||||
dword set();
|
dword set();
|
||||||
@@ -22,34 +21,35 @@ struct collection_int
|
|||||||
dword get_last();
|
dword get_last();
|
||||||
void pop();
|
void pop();
|
||||||
void drop();
|
void drop();
|
||||||
|
#define DWSIZE4 4
|
||||||
};
|
};
|
||||||
|
|
||||||
:void collection_int::alloc() {
|
|
||||||
if (!buf) {
|
|
||||||
buf_size = 4096;
|
|
||||||
buf = malloc(4096);
|
|
||||||
} else {
|
|
||||||
buf_size += 4096;
|
|
||||||
buf = realloc(buf, buf_size);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
:void collection_int::add(dword _in) {
|
:void collection_int::add(dword _in) {
|
||||||
if (!buf) || (count * sizeof(dword) >= buf_size) alloc();
|
unsigned i;
|
||||||
EAX = count * sizeof(dword) + buf;
|
if (!buf) {
|
||||||
ESDWORD[EAX] = _in;
|
//if (buf_size) notify("'buf_size on empty buf' -A");
|
||||||
|
buf_size = 4096 * 5;
|
||||||
|
buf = malloc(4096 * 5);
|
||||||
|
//if (!buf) notify("'malloc error' -E");
|
||||||
|
} else if (count + 1 * DWSIZE4 >= buf_size) {
|
||||||
|
buf_size += 4096 * 5;
|
||||||
|
buf = realloc(buf, buf_size);
|
||||||
|
//if (!buf) notify("'realloc error' -E");
|
||||||
|
}
|
||||||
|
i = count * DWSIZE4 + buf;
|
||||||
|
ESDWORD[i] = _in;
|
||||||
count++;
|
count++;
|
||||||
}
|
}
|
||||||
|
|
||||||
:dword collection_int::get(dword pos) {
|
:dword collection_int::get(dword pos) {
|
||||||
if (pos<0) || (pos>=count) return 0;
|
if (!buf) || (pos<0) || (pos>=count) return 0;
|
||||||
return ESDWORD[pos * sizeof(dword) + buf];
|
return ESDWORD[pos * DWSIZE4 + buf];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
:dword collection_int::set(dword pos, _in) {
|
:dword collection_int::set(dword pos, _in) {
|
||||||
while (pos >= count) add(0);
|
while (pos >= count) add(0);
|
||||||
EAX = pos * sizeof(dword) + buf;
|
EAX = pos * DWSIZE4 + buf;
|
||||||
ESDWORD[EAX] = _in;
|
ESDWORD[EAX] = _in;
|
||||||
return ESDWORD[EAX];
|
return ESDWORD[EAX];
|
||||||
}
|
}
|
||||||
@@ -57,8 +57,8 @@ struct collection_int
|
|||||||
:void collection_int::swap(dword pos1, pos2) {
|
:void collection_int::swap(dword pos1, pos2) {
|
||||||
while (pos1 >= count) add(0);
|
while (pos1 >= count) add(0);
|
||||||
while (pos2 >= count) add(0);
|
while (pos2 >= count) add(0);
|
||||||
EAX = pos1 * sizeof(dword) + buf;
|
EAX = pos1 * DWSIZE4 + buf;
|
||||||
EBX = pos2 * sizeof(dword) + buf;
|
EBX = pos2 * DWSIZE4 + buf;
|
||||||
ESDWORD[EAX] >< ESDWORD[EBX];
|
ESDWORD[EAX] >< ESDWORD[EBX];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -77,6 +77,8 @@ struct collection_int
|
|||||||
|
|
||||||
:void collection_int::drop() {
|
:void collection_int::drop() {
|
||||||
count = 0;
|
count = 0;
|
||||||
|
if (buf) buf = free(buf);
|
||||||
|
buf_size = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*========================================================
|
/*========================================================
|
||||||
@@ -87,12 +89,11 @@ struct collection_int
|
|||||||
|
|
||||||
struct collection
|
struct collection
|
||||||
{
|
{
|
||||||
int realloc_size, count;
|
unsigned int realloc_size, count;
|
||||||
dword data_start;
|
dword data_start;
|
||||||
dword data_size;
|
dword data_size;
|
||||||
collection_int offset;
|
collection_int offset;
|
||||||
int add();
|
dword add();
|
||||||
int addn();
|
|
||||||
dword get(); //get_name_by_pos
|
dword get(); //get_name_by_pos
|
||||||
dword get_pos_by_name();
|
dword get_pos_by_name();
|
||||||
void drop();
|
void drop();
|
||||||
@@ -105,28 +106,22 @@ struct collection
|
|||||||
if (realloc_size<4096) realloc_size = 4096;
|
if (realloc_size<4096) realloc_size = 4096;
|
||||||
if (!data_size) {
|
if (!data_size) {
|
||||||
data_size = realloc_size;
|
data_size = realloc_size;
|
||||||
data_start = malloc(realloc_size);
|
data_start = malloc(data_size);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
data_size = data_size + realloc_size;
|
data_size = data_size + realloc_size;
|
||||||
data_start = realloc(data_start, data_size);
|
data_start = realloc(data_start, data_size);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
:int collection::add(dword in) {
|
:dword collection::add(dword in) {
|
||||||
return addn(in, strlen(in));
|
dword len = strlen(in);
|
||||||
}
|
while (offset.get(count) + len + 4 > data_size) {
|
||||||
|
|
||||||
:int collection::addn(dword in, len) {
|
|
||||||
if (offset.get(count)+len+2 > data_size) {
|
|
||||||
increase_data_size();
|
increase_data_size();
|
||||||
addn(in, len);
|
|
||||||
return 1;
|
|
||||||
}
|
}
|
||||||
strncpy(data_start+offset.get(count), in, len);
|
strncpy(data_start+offset.get(count), in, len);
|
||||||
count++;
|
count++;
|
||||||
offset.set(count, offset.get(count-1) + len + 1);
|
offset.set(count, offset.get(count-1) + len + 1);
|
||||||
return 1;
|
return data_start+offset.get(count-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
:dword collection::get(dword pos) {
|
:dword collection::get(dword pos) {
|
||||||
@@ -141,7 +136,9 @@ struct collection
|
|||||||
:dword collection::get_pos_by_name(dword name) {
|
:dword collection::get_pos_by_name(dword name) {
|
||||||
dword i;
|
dword i;
|
||||||
for (i=0; i<count; i++) {
|
for (i=0; i<count; i++) {
|
||||||
if (strcmp(data_start + offset.get(i), name)==0) return i;
|
if (streq(data_start + offset.get(i), name)) {
|
||||||
|
return i;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
@@ -57,8 +57,8 @@ inline fastcall void utf8rutodos( ESI)
|
|||||||
while (BL=ESBYTE[ESI])
|
while (BL=ESBYTE[ESI])
|
||||||
{
|
{
|
||||||
if (BL == 0xD0) || (BL == 0xD1) EDI--;
|
if (BL == 0xD0) || (BL == 0xD1) EDI--;
|
||||||
else if (BL == 0x81) && (ESBYTE[ESI-1]==0xD0) ESBYTE[EDI] = 0xF0; //<EFBFBD>
|
else if (BL == 0x81) && (ESBYTE[ESI-1]==0xD0) ESBYTE[EDI] = 0xF0; //I urk
|
||||||
else if (BL == 0x91) && (ESBYTE[ESI-1]==0xD1) ESBYTE[EDI] = 0xF1; //<EFBFBD>
|
else if (BL == 0x91) && (ESBYTE[ESI-1]==0xD1) ESBYTE[EDI] = 0xF1; //i urk
|
||||||
//0xE2 0x80 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
//0xE2 0x80 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
else if (BL == 0xE2) && (ESBYTE[ESI+1]==0x80)
|
else if (BL == 0xE2) && (ESBYTE[ESI+1]==0x80)
|
||||||
switch (ESBYTE[ESI+2])
|
switch (ESBYTE[ESI+2])
|
||||||
|
@@ -66,10 +66,11 @@ int kfont_char_width[255];
|
|||||||
:bool KFONT::init(dword font_path)
|
:bool KFONT::init(dword font_path)
|
||||||
{
|
{
|
||||||
dword fsize_notused;
|
dword fsize_notused;
|
||||||
if(font)free(font);
|
if(font) font = free(font);
|
||||||
read_file(font_path, #font_begin, #fsize_notused);
|
read_file(font_path, #font_begin, #fsize_notused);
|
||||||
if(!EAX) {
|
if(!EAX) {
|
||||||
RunProgram("/sys/@notify", "'Error: KFONT is not loaded.' -E");
|
RunProgram("/sys/@notify", "'Error: KFONT is not loaded' -E");
|
||||||
|
kfont.height = 14;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
changeSIZE();
|
changeSIZE();
|
||||||
@@ -99,6 +100,10 @@ int kfont_char_width[255];
|
|||||||
|
|
||||||
:dword KFONT::getsize(byte font_size, dword text1)
|
:dword KFONT::getsize(byte font_size, dword text1)
|
||||||
{
|
{
|
||||||
|
if (!font) {
|
||||||
|
size.width = strlen(text1) * 8;
|
||||||
|
return size.width;
|
||||||
|
}
|
||||||
size.height = size.width = 0;
|
size.height = size.width = 0;
|
||||||
size.offset_x = size.offset_y = -1;
|
size.offset_x = size.offset_y = -1;
|
||||||
if (size.pt != font_size) {
|
if (size.pt != font_size) {
|
||||||
@@ -275,6 +280,11 @@ inline fastcall dword b32(EAX) { return DSDWORD[EAX]; }
|
|||||||
{
|
{
|
||||||
if(!text1)return 0;
|
if(!text1)return 0;
|
||||||
getsize(font_size, text1);
|
getsize(font_size, text1);
|
||||||
|
if (!font) {
|
||||||
|
EDI = _background;
|
||||||
|
WriteText(x, y, 0xD0, _color, text1);
|
||||||
|
return size.width;
|
||||||
|
}
|
||||||
raw_size = NULL;
|
raw_size = NULL;
|
||||||
WriteIntoBuffer(0, -size.offset_y, size.width-size.offset_x,
|
WriteIntoBuffer(0, -size.offset_y, size.width-size.offset_x,
|
||||||
size.height-size.offset_y, _background, _color, font_size, text1);
|
size.height-size.offset_y, _background, _color, font_size, text1);
|
||||||
|
@@ -202,7 +202,7 @@ struct proc_info
|
|||||||
byte reserved[1024-71];
|
byte reserved[1024-71];
|
||||||
};
|
};
|
||||||
|
|
||||||
:void GetProcessInfo(dword _process_struct_pointer, _process_id)
|
:int GetProcessInfo(dword _process_struct_pointer, _process_id)
|
||||||
{
|
{
|
||||||
EAX = 9;
|
EAX = 9;
|
||||||
EBX = _process_struct_pointer;
|
EBX = _process_struct_pointer;
|
||||||
|
@@ -70,17 +70,17 @@ char aURIunescape[] = "unescape";
|
|||||||
#define FLAG_TRANSFER_FAILED 1 << 20
|
#define FLAG_TRANSFER_FAILED 1 << 20
|
||||||
|
|
||||||
struct http_msg{
|
struct http_msg{
|
||||||
dword socket;
|
dword socket; //socket on which the actual transfer happens
|
||||||
dword flags;
|
dword flags; //flags, reflects status of the transfer using bitflags
|
||||||
dword write_ptr;
|
dword write_ptr; //internal use only (where to write new data in buffer)
|
||||||
dword buffer_length;
|
dword buffer_length; //internal use only (number of available bytes in buffer)
|
||||||
dword chunk_ptr;
|
dword chunk_ptr; //internal use only (where the next chunk begins)
|
||||||
dword timestamp;
|
dword timestamp; //internal use only (when last data was received)
|
||||||
dword status;
|
dword status; //HTTP status
|
||||||
dword header_length;
|
dword header_length; //length of HTTP header
|
||||||
dword content_ptr;
|
dword content_ptr; //ptr to content
|
||||||
dword content_length;
|
dword content_length; //total length of HTTP content
|
||||||
dword content_received;
|
dword content_received; //number of currently received content bytes
|
||||||
char http_header;
|
char http_header;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -30,8 +30,7 @@ enum {
|
|||||||
proc_info Process;
|
proc_info Process;
|
||||||
for (i=0; i<MAX_PROCESS_COUNT; i++)
|
for (i=0; i<MAX_PROCESS_COUNT; i++)
|
||||||
{
|
{
|
||||||
GetProcessInfo(#Process, i);
|
if (i > GetProcessInfo(#Process, i)) break;
|
||||||
if (EAX+1 >= i) break;
|
|
||||||
if (Process.status_slot != TSTATE_FREE)
|
if (Process.status_slot != TSTATE_FREE)
|
||||||
&& (strcmpi(#Process.name, proc_name)==0)
|
&& (strcmpi(#Process.name, proc_name)==0)
|
||||||
{
|
{
|
||||||
@@ -46,8 +45,7 @@ enum {
|
|||||||
proc_info Process;
|
proc_info Process;
|
||||||
for (i=0; i<MAX_PROCESS_COUNT; i++)
|
for (i=0; i<MAX_PROCESS_COUNT; i++)
|
||||||
{
|
{
|
||||||
GetProcessInfo(#Process, i);
|
if (i > GetProcessInfo(#Process, i)) break;
|
||||||
if (EAX+1 >= i) break;
|
|
||||||
if (Process.status_slot != TSTATE_FREE)
|
if (Process.status_slot != TSTATE_FREE)
|
||||||
&& (strcmpi(#Process.name, proc_name)==0)
|
&& (strcmpi(#Process.name, proc_name)==0)
|
||||||
count++;
|
count++;
|
||||||
@@ -66,8 +64,7 @@ enum {
|
|||||||
GetProcessInfo(#Self, -1);
|
GetProcessInfo(#Self, -1);
|
||||||
for (i=0; i<MAX_PROCESS_COUNT; i++)
|
for (i=0; i<MAX_PROCESS_COUNT; i++)
|
||||||
{
|
{
|
||||||
GetProcessInfo(#Process, i);
|
if (i > GetProcessInfo(#Process, i)) break;
|
||||||
if (EAX+1 >= i) break;
|
|
||||||
if (Process.name)
|
if (Process.name)
|
||||||
&& (Process.ID != Self.ID)
|
&& (Process.ID != Self.ID)
|
||||||
KillProcess(Process.ID);
|
KillProcess(Process.ID);
|
||||||
|
@@ -1,8 +1,4 @@
|
|||||||
#define MEMSIZE 1024*30
|
|
||||||
#define ENTRY_POINT #main
|
|
||||||
|
|
||||||
#include "../lib/kfont.h"
|
|
||||||
#include "../lib/gui.h"
|
|
||||||
|
|
||||||
#define BARH 28
|
#define BARH 28
|
||||||
#define WINW 528
|
#define WINW 528
|
||||||
@@ -12,11 +8,8 @@ char active_tab = 0;
|
|||||||
char colored = true;
|
char colored = true;
|
||||||
dword checkbox_flag;
|
dword checkbox_flag;
|
||||||
|
|
||||||
void main()
|
void main_kfont()
|
||||||
{
|
{
|
||||||
proc_info Form;
|
|
||||||
|
|
||||||
mem_init();
|
|
||||||
checkbox_flag = memopen("CHECKBOX", NULL, SHM_READ);
|
checkbox_flag = memopen("CHECKBOX", NULL, SHM_READ);
|
||||||
|
|
||||||
if (!param) strcpy(#param, DEFAULT_FONT);
|
if (!param) strcpy(#param, DEFAULT_FONT);
|
||||||
@@ -48,7 +41,7 @@ void main()
|
|||||||
|
|
||||||
case evReDraw:
|
case evReDraw:
|
||||||
sc.get();
|
sc.get();
|
||||||
DefineAndDrawWindow(215,100,WINW+9,WINH+GetSkinHeight()+4,0x74,0xFFFFFF,#title,0);
|
DefineAndDrawWindow(215,100,WINW+9,WINH+skin_h+4,0x74,0xFFFFFF,#title,0);
|
||||||
GetProcessInfo(#Form, SelfInfo);
|
GetProcessInfo(#Form, SelfInfo);
|
||||||
if (Form.status_window&ROLLED_UP) break;
|
if (Form.status_window&ROLLED_UP) break;
|
||||||
_DRAW_WINDOW_CONTENT:
|
_DRAW_WINDOW_CONTENT:
|
@@ -10,11 +10,13 @@ SOFTWARE CENTER v2.87
|
|||||||
#include "..\lib\obj\libini.h"
|
#include "..\lib\obj\libini.h"
|
||||||
#include "..\lib\kfont.h"
|
#include "..\lib\kfont.h"
|
||||||
#include "..\lib\list_box.h"
|
#include "..\lib\list_box.h"
|
||||||
#include "..\lib\collection.h"
|
|
||||||
|
|
||||||
proc_info Form;
|
proc_info Form;
|
||||||
|
|
||||||
|
#include "font_viewer.h"
|
||||||
|
|
||||||
llist list;
|
llist list;
|
||||||
collection app_path_collection=0;
|
dword app_path_collection;
|
||||||
bool kolibrios_mounted;
|
bool kolibrios_mounted;
|
||||||
|
|
||||||
int window_width,
|
int window_width,
|
||||||
@@ -30,17 +32,11 @@ char window_title[128],
|
|||||||
|
|
||||||
bool small_screen = false;
|
bool small_screen = false;
|
||||||
|
|
||||||
struct SW_COLORS
|
|
||||||
{
|
|
||||||
dword list_bg;
|
|
||||||
dword text;
|
|
||||||
dword graph;
|
|
||||||
dword dark;
|
|
||||||
dword light;
|
|
||||||
} swc;
|
|
||||||
|
|
||||||
block selection[128];
|
block selection[128];
|
||||||
|
|
||||||
|
#define MAX_ITEMS 75
|
||||||
|
#define MAX_FPATH 1024
|
||||||
|
|
||||||
void load_ini_config(dword _ini_path)
|
void load_ini_config(dword _ini_path)
|
||||||
{
|
{
|
||||||
_ini ini;
|
_ini ini;
|
||||||
@@ -57,11 +53,10 @@ void main()
|
|||||||
{
|
{
|
||||||
dword id;
|
dword id;
|
||||||
kfont.init(DEFAULT_FONT);
|
kfont.init(DEFAULT_FONT);
|
||||||
load_dll(libini, #lib_init,1);
|
|
||||||
|
|
||||||
kolibrios_mounted = dir_exists("/kolibrios");
|
if (streq(#param + strlen(#param) - 3, ".kf")) {
|
||||||
|
main_kfont();
|
||||||
if (param) {
|
} else if (param) {
|
||||||
strcpy(#settings_ini_path, #param);
|
strcpy(#settings_ini_path, #param);
|
||||||
} else {
|
} else {
|
||||||
strcpy(#settings_ini_path, "/sys/settings/");
|
strcpy(#settings_ini_path, "/sys/settings/");
|
||||||
@@ -69,6 +64,11 @@ void main()
|
|||||||
strcat(#settings_ini_path, ".ini");
|
strcat(#settings_ini_path, ".ini");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
load_dll(libini, #lib_init,1);
|
||||||
|
kolibrios_mounted = dir_exists("/kolibrios");
|
||||||
|
|
||||||
|
app_path_collection = malloc(MAX_FPATH*MAX_ITEMS);
|
||||||
|
|
||||||
load_ini_config(#settings_ini_path);
|
load_ini_config(#settings_ini_path);
|
||||||
list.cur_y = -1;
|
list.cur_y = -1;
|
||||||
list.y = 32;
|
list.y = 32;
|
||||||
@@ -99,8 +99,8 @@ void main()
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case evReDraw:
|
case evReDraw:
|
||||||
SetAppColors();
|
|
||||||
DefineAndDrawWindow(screen.w-window_width/2,screen.h-window_height/2,window_width,window_height,0x74,0,"",0);
|
DefineAndDrawWindow(screen.w-window_width/2,screen.h-window_height/2,window_width,window_height,0x74,0,"",0);
|
||||||
|
sc.get();
|
||||||
GetProcessInfo(#Form, SelfInfo);
|
GetProcessInfo(#Form, SelfInfo);
|
||||||
if (Form.status_window&ROLLED_UP) {
|
if (Form.status_window&ROLLED_UP) {
|
||||||
DrawTitle(#window_title);
|
DrawTitle(#window_title);
|
||||||
@@ -114,37 +114,14 @@ void main()
|
|||||||
DrawTopBar();
|
DrawTopBar();
|
||||||
}
|
}
|
||||||
DrawList();
|
DrawList();
|
||||||
DrawBar(0, row +1 * list.item_h + list_pos, Form.cwidth, -row - 1 * list.item_h - list_pos + Form.cheight, swc.list_bg);
|
DrawBar(0, row +1 * list.item_h + list_pos, Form.cwidth, -row - 1 * list.item_h - list_pos + Form.cheight, sc.light);
|
||||||
DrawSelection();
|
DrawSelection();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetAppColors()
|
|
||||||
{
|
|
||||||
dword bg_col, old_list_bg_color;
|
|
||||||
sc.get();
|
|
||||||
old_list_bg_color = swc.list_bg;
|
|
||||||
bg_col = sc.work;
|
|
||||||
if (skin_is_dark())
|
|
||||||
{
|
|
||||||
//dark colors
|
|
||||||
swc.list_bg = sc.work;
|
|
||||||
swc.text = sc.work_text;
|
|
||||||
swc.dark = sc.dark;
|
|
||||||
swc.light = sc.light;
|
|
||||||
} else {
|
|
||||||
//light colors
|
|
||||||
swc.list_bg = 0xF3F3F3;
|
|
||||||
swc.text = 0x000000;
|
|
||||||
swc.dark = 0xDCDCDC;
|
|
||||||
swc.light = 0xFCFCFC;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void DrawList() {
|
void DrawList() {
|
||||||
list.count = 0;
|
list.count = 0;
|
||||||
row = -1;
|
row = -1;
|
||||||
app_path_collection.drop();
|
|
||||||
list_pos = list.y;
|
list_pos = list.y;
|
||||||
list.column_max = window_width - 10 / list.item_w;
|
list.column_max = window_width - 10 / list.item_w;
|
||||||
ini_enum_sections stdcall (#settings_ini_path, #process_sections);
|
ini_enum_sections stdcall (#settings_ini_path, #process_sections);
|
||||||
@@ -168,7 +145,7 @@ byte draw_icons_from_section(dword key_value, key_name, sec_name, f_name)
|
|||||||
col=0;
|
col=0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (col==0) DrawBar(0, row * list.item_h + list_pos, Form.cwidth, list.item_h, swc.list_bg);
|
if (col==0) DrawBar(0, row * list.item_h + list_pos, Form.cwidth, list.item_h, sc.light);
|
||||||
DefineButton(col*list.item_w+6, row*list.item_h + list_pos,list.item_w,list.item_h-3,list.count + 100 + BT_HIDE,0);
|
DefineButton(col*list.item_w+6, row*list.item_h + list_pos,list.item_w,list.item_h-3,list.count + 100 + BT_HIDE,0);
|
||||||
|
|
||||||
icon_char_pos = strchr(key_value, ',');
|
icon_char_pos = strchr(key_value, ',');
|
||||||
@@ -177,20 +154,21 @@ byte draw_icons_from_section(dword key_value, key_name, sec_name, f_name)
|
|||||||
selection[list.count].x = icon_x-2;
|
selection[list.count].x = icon_x-2;
|
||||||
selection[list.count].y = icon_y-2;
|
selection[list.count].y = icon_y-2;
|
||||||
if (icon_char_pos) ESBYTE[icon_char_pos] = '\0'; //delete icon from string
|
if (icon_char_pos) ESBYTE[icon_char_pos] = '\0'; //delete icon from string
|
||||||
app_path_collection.add(key_value);
|
|
||||||
|
strncpy(list.count * MAX_FPATH + app_path_collection, key_value, MAX_FPATH);
|
||||||
|
|
||||||
text_x = col*list.item_w+5;
|
text_x = col*list.item_w+5;
|
||||||
text_y = list.item_h - 40 / 2;
|
text_y = list.item_h - 40 / 2;
|
||||||
if (!strchr(key_name, ' ')) {//|| (kfont.getsize(key_name)+30<list.item_w) <== too slow
|
if (!strchr(key_name, ' ')) {//|| (kfont.getsize(key_name)+30<list.item_w) <== too slow
|
||||||
kfont.WriteIntoWindowCenter(text_x, row*list.item_h+46 + list_pos, list.item_w,0, swc.list_bg, swc.text, 12, key_name);
|
kfont.WriteIntoWindowCenter(text_x, row*list.item_h+46 + list_pos, list.item_w,0, sc.light, sc.work_text, 12, key_name);
|
||||||
} else {
|
} else {
|
||||||
space_pos = strrchr(key_name, ' ');
|
space_pos = strrchr(key_name, ' ');
|
||||||
ESBYTE[key_name+space_pos-1] = '\0';
|
ESBYTE[key_name+space_pos-1] = '\0';
|
||||||
kfont.WriteIntoWindowCenter(text_x, row*list.item_h+46 + list_pos - 2, list.item_w,0, swc.list_bg, swc.text, 12, key_name);
|
kfont.WriteIntoWindowCenter(text_x, row*list.item_h+46 + list_pos - 2, list.item_w,0, sc.light, sc.work_text, 12, key_name);
|
||||||
kfont.WriteIntoWindowCenter(text_x, row*list.item_h+46 + list_pos + 13, list.item_w,0, swc.list_bg, swc.text, 12, key_name+space_pos);
|
kfont.WriteIntoWindowCenter(text_x, row*list.item_h+46 + list_pos + 13, list.item_w,0, sc.light, sc.work_text, 12, key_name+space_pos);
|
||||||
}
|
}
|
||||||
if (icon_char_pos) icon_id = atoi(icon_char_pos+1);
|
if (icon_char_pos) icon_id = atoi(icon_char_pos+1);
|
||||||
if (Form.cwidth) draw_icon_32(icon_x, icon_y, swc.list_bg, icon_id);
|
if (Form.cwidth) draw_icon_32(icon_x, icon_y, sc.light, icon_id);
|
||||||
list.count++;
|
list.count++;
|
||||||
col++;
|
col++;
|
||||||
return true;
|
return true;
|
||||||
@@ -212,10 +190,9 @@ byte process_sections(dword sec_name, f_name)
|
|||||||
old_row = row;
|
old_row = row;
|
||||||
|
|
||||||
if (!small_screen) {
|
if (!small_screen) {
|
||||||
DrawBar(0, row * list.item_h + list_pos, Form.cwidth , 29, swc.list_bg);
|
DrawBar(0, row * list.item_h + list_pos, Form.cwidth , 29, sc.light);
|
||||||
text_len = kfont.WriteIntoWindow(10, row * list.item_h + 10 + list_pos, swc.list_bg, swc.text, 15, sec_name);
|
text_len = kfont.WriteIntoWindow(10, row * list.item_h + 10 + list_pos, sc.light, sc.work_text, 15, sec_name);
|
||||||
DrawBar(text_len+20, row * list.item_h + list_pos + 20, Form.cwidth-text_len-20, 1, swc.dark);
|
DrawBar(text_len+20, row * list.item_h + list_pos + 20, Form.cwidth-text_len-20, 2, sc.work);
|
||||||
DrawBar(text_len+20, row * list.item_h + list_pos + 21, Form.cwidth-text_len-20, 1, swc.light);
|
|
||||||
list_pos += 29;
|
list_pos += 29;
|
||||||
}
|
}
|
||||||
ini_enum_keys stdcall (f_name, sec_name, #draw_icons_from_section);
|
ini_enum_keys stdcall (f_name, sec_name, #draw_icons_from_section);
|
||||||
@@ -233,7 +210,7 @@ void DrawTopBar()
|
|||||||
void EventIconClick(dword appid)
|
void EventIconClick(dword appid)
|
||||||
{
|
{
|
||||||
char run_app_path[4096];
|
char run_app_path[4096];
|
||||||
dword app_path = app_path_collection.get(appid);
|
dword app_path = MAX_FPATH * appid + app_path_collection;
|
||||||
dword param_pos = strchr(app_path, '|');
|
dword param_pos = strchr(app_path, '|');
|
||||||
if (param_pos) {
|
if (param_pos) {
|
||||||
ESBYTE[param_pos] = NULL;
|
ESBYTE[param_pos] = NULL;
|
||||||
@@ -273,7 +250,7 @@ void DrawSelection()
|
|||||||
int i;
|
int i;
|
||||||
dword col;
|
dword col;
|
||||||
for (i=0; i<list.count; i++) {
|
for (i=0; i<list.count; i++) {
|
||||||
if (i==list.cur_y) col=0x0080FF; else col=swc.list_bg;
|
if (i==list.cur_y) col=0x0080FF; else col=sc.light;
|
||||||
DrawWideRectangle(selection[i].x, selection[i].y, 36, 36, 2, col);
|
DrawWideRectangle(selection[i].x, selection[i].y, 36, 36, 2, col);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -23,11 +23,8 @@ MAX_TRIANGLES equ 12
|
|||||||
SCREEN_X equ 320
|
SCREEN_X equ 320
|
||||||
SCREEN_Y equ 200
|
SCREEN_Y equ 200
|
||||||
|
|
||||||
include 'lang.inc'
|
|
||||||
include '..\..\..\macros.inc'
|
include '..\..\..\macros.inc'
|
||||||
;purge mov
|
;purge mov
|
||||||
include 'ascl.inc'
|
|
||||||
include 'ascgl.inc'
|
|
||||||
|
|
||||||
START:
|
START:
|
||||||
init_sin_cos:
|
init_sin_cos:
|
||||||
@@ -65,7 +62,47 @@ still:
|
|||||||
; cmp eax,3 ; button in buffer ?
|
; cmp eax,3 ; button in buffer ?
|
||||||
jz button
|
jz button
|
||||||
|
|
||||||
fps 220,8,cl_White,cl_Black
|
|
||||||
|
; FPS - Set Frame Per Second Display
|
||||||
|
fps_show_frequency=40
|
||||||
|
macro fps x,y,color,delcolor
|
||||||
|
{
|
||||||
|
local spdat,savetime,new_time,fps,fps_cntr,out_fps,new_time,ttt
|
||||||
|
local no_out_fps
|
||||||
|
jmp spdat
|
||||||
|
savetime dd 0
|
||||||
|
fps_cntr dd 0
|
||||||
|
fps dd 0
|
||||||
|
ttt dd 0
|
||||||
|
spdat:
|
||||||
|
get_time:
|
||||||
|
mov eax,3
|
||||||
|
mcall
|
||||||
|
cmp eax,[savetime]
|
||||||
|
jne new_time
|
||||||
|
inc [fps_cntr]
|
||||||
|
cmp dword [ttt],0
|
||||||
|
je out_fps
|
||||||
|
dec dword [ttt]
|
||||||
|
jmp no_out_fps
|
||||||
|
new_time:
|
||||||
|
mov [savetime],eax
|
||||||
|
mov ebx,[fps_cntr]
|
||||||
|
mov [fps],ebx
|
||||||
|
mov [fps_cntr],0
|
||||||
|
out_fps:
|
||||||
|
mov dword [ttt],fps_show_frequency
|
||||||
|
mov eax,47
|
||||||
|
mov ebx,5*65536
|
||||||
|
mov edx,(x+1)*65536+y
|
||||||
|
mov esi,color+0xD0000000
|
||||||
|
mov edi,delcolor
|
||||||
|
mov ecx,[fps]
|
||||||
|
mcall
|
||||||
|
no_out_fps:
|
||||||
|
}
|
||||||
|
|
||||||
|
fps 220,5,0x00FFFfff,0x00000000
|
||||||
|
|
||||||
main_loop:
|
main_loop:
|
||||||
|
|
||||||
@@ -114,8 +151,8 @@ draw_window:
|
|||||||
|
|
||||||
mcall 48, 4
|
mcall 48, 4
|
||||||
|
|
||||||
lea ecx, [100*65536+SCREEN_Y+4+eax]; [y start] *65536 + [y size] + [skin_height]
|
lea ecx,[100*65536+SCREEN_Y+4+eax]; [y start] *65536 + [y size] + [skin_height]
|
||||||
xor eax, eax ;Draw window
|
xor eax,eax ;Draw window
|
||||||
mov ebx,100*65536+(SCREEN_X+9) ;x start*65536+x size
|
mov ebx,100*65536+(SCREEN_X+9) ;x start*65536+x size
|
||||||
mov edx,0x54000000 ;0x03 use skinned window
|
mov edx,0x54000000 ;0x03 use skinned window
|
||||||
mov edi,title
|
mov edi,title
|
||||||
|
@@ -3,5 +3,4 @@ HELPERDIR = (tup.getconfig("HELPERDIR") == "") and "../../.." or tup.getconfig("
|
|||||||
tup.include(HELPERDIR .. "/use_fasm.lua")
|
tup.include(HELPERDIR .. "/use_fasm.lua")
|
||||||
add_include(tup.getvariantdir())
|
add_include(tup.getvariantdir())
|
||||||
|
|
||||||
tup.rule("echo lang fix " .. ((tup.getconfig("LANG") == "") and "en_US" or tup.getconfig("LANG")) .. " > %o", {"lang.inc"})
|
tup.rule({"3DCUBE2.ASM"}, "fasm %f %o " .. tup.getconfig("KPACK_CMD"), "3DCUBE2")
|
||||||
tup.rule({"3DCUBE2.ASM", extra_inputs = {"lang.inc"}}, FASM .. " %f %o " .. tup.getconfig("KPACK_CMD"), "3DCUBE2")
|
|
||||||
|
@@ -1,624 +0,0 @@
|
|||||||
lang equ ru_RU
|
|
||||||
|
|
||||||
;
|
|
||||||
; Assembler
|
|
||||||
; SMALL
|
|
||||||
; CODE
|
|
||||||
; Graphics
|
|
||||||
; Libary
|
|
||||||
;
|
|
||||||
; Ver 0.10 By Pavlushin Evgeni (RUSSIA)
|
|
||||||
; www.waptap@mail.ru
|
|
||||||
|
|
||||||
;InfoList
|
|
||||||
;0.01 LoadImage
|
|
||||||
;0.02 SetBmp
|
|
||||||
;0.03 Bmptoimg, Setimg ~01.03.2004
|
|
||||||
;0.04 Bug deleted, copyimg ~03.05.2004
|
|
||||||
;0.05 fullimg, collimg ~05.05.2004
|
|
||||||
;0.06 getimg ~09.05.2004
|
|
||||||
;0.07 convbmp ~13.05.2004
|
|
||||||
;0.08 fps ~14.05.2004
|
|
||||||
;0.09 drawfbox ~03.06.2004
|
|
||||||
;0.10 all macros optimized by halyavin, add at ~07.06.2004
|
|
||||||
|
|
||||||
;DrawBox
|
|
||||||
macro drawfbox x,y,xs,ys,color
|
|
||||||
{
|
|
||||||
mov ecx,y
|
|
||||||
mov ebx,x
|
|
||||||
shl ebx,16
|
|
||||||
add ebx,xs
|
|
||||||
shl ecx,16
|
|
||||||
add ecx,ys
|
|
||||||
mov edx,color
|
|
||||||
mov eax,13
|
|
||||||
mcall
|
|
||||||
}
|
|
||||||
|
|
||||||
; FPS - Set Frame Per Second Display
|
|
||||||
fps_show_frequency=40
|
|
||||||
macro fps x,y,color,delcolor
|
|
||||||
{
|
|
||||||
local spdat,savetime,new_time,fps,fps_cntr,out_fps,new_time,ttt
|
|
||||||
local no_out_fps
|
|
||||||
jmp spdat
|
|
||||||
savetime dd 0
|
|
||||||
fps_cntr dd 0
|
|
||||||
fps dd 0
|
|
||||||
ttt dd 0
|
|
||||||
spdat:
|
|
||||||
get_time:
|
|
||||||
mov eax,3
|
|
||||||
mcall
|
|
||||||
cmp eax,[savetime]
|
|
||||||
jne new_time
|
|
||||||
inc [fps_cntr]
|
|
||||||
cmp dword [ttt],0
|
|
||||||
je out_fps
|
|
||||||
dec dword [ttt]
|
|
||||||
jmp no_out_fps
|
|
||||||
new_time:
|
|
||||||
mov [savetime],eax
|
|
||||||
mov ebx,[fps_cntr]
|
|
||||||
mov [fps],ebx
|
|
||||||
mov [fps_cntr],0
|
|
||||||
out_fps:
|
|
||||||
if ~(delcolor eq )
|
|
||||||
mov ebx,x*65536+30
|
|
||||||
mov ecx,y*65536+7
|
|
||||||
mov edx,delcolor
|
|
||||||
mov eax,13
|
|
||||||
mcall
|
|
||||||
end if
|
|
||||||
mov dword [ttt],fps_show_frequency
|
|
||||||
mov eax,47
|
|
||||||
mov ebx,5*65536
|
|
||||||
; mov bl,0
|
|
||||||
mov edx,x*65536+y
|
|
||||||
mov esi,color
|
|
||||||
mov ecx,[fps]
|
|
||||||
mcall
|
|
||||||
no_out_fps:
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
; COLLIMG - Collusion image's
|
|
||||||
_ldbounce_count=0;
|
|
||||||
macro collimg img1_off,x1,y1,img2_off,x2,y2,otv
|
|
||||||
{
|
|
||||||
local bounce,exit,_1dbounce,anot,bc,nbc
|
|
||||||
mov esi,[img1_off] ;xs1
|
|
||||||
mov edi,[img2_off] ;ys2
|
|
||||||
mov eax,x1 ;
|
|
||||||
mov ebx,x2 ;
|
|
||||||
call _1dbounce
|
|
||||||
mov edx,ecx
|
|
||||||
mov esi,[img1_off+4] ;ys1
|
|
||||||
mov edi,[img2_off+4] ;ys2
|
|
||||||
mov eax,y1 ;
|
|
||||||
mov ebx,y2 ;
|
|
||||||
call _1dbounce
|
|
||||||
add edx,ecx
|
|
||||||
cmp edx,2
|
|
||||||
je bounce
|
|
||||||
mov otv,0
|
|
||||||
jmp exit
|
|
||||||
_ldbounce_count=_ldbounce_count+1
|
|
||||||
if (_ldbounce_count = 1)
|
|
||||||
_1dbounce:
|
|
||||||
cmp ebx,eax
|
|
||||||
jnae anot
|
|
||||||
add eax,esi
|
|
||||||
cmp eax,ebx
|
|
||||||
jna nbc
|
|
||||||
jmp bc
|
|
||||||
anot:
|
|
||||||
add ebx,edi
|
|
||||||
cmp ebx,eax
|
|
||||||
jna nbc
|
|
||||||
bc:
|
|
||||||
mov ecx,1
|
|
||||||
ret
|
|
||||||
nbc:
|
|
||||||
mov ecx,0
|
|
||||||
ret
|
|
||||||
end if
|
|
||||||
bounce:
|
|
||||||
mov otv,1
|
|
||||||
exit:
|
|
||||||
}
|
|
||||||
|
|
||||||
; SETBMP - Set bmp to window
|
|
||||||
; (SYNTAX) SETBMP dd xstart ,dd ystart ,BMP_offset,dd soi
|
|
||||||
; (SAMPLE) SETBMP dword [xt],dword [yt],I_END,dword [tsoi]
|
|
||||||
; SETBMP 15,10,I_END,dword [tsoi]
|
|
||||||
; ( NOTE ) SOI - Start of image
|
|
||||||
|
|
||||||
macro setbmp arg1,arg2,arg3,arg4
|
|
||||||
{
|
|
||||||
local nodi
|
|
||||||
cmp word [arg3],word 'BM'
|
|
||||||
jne nodi
|
|
||||||
mov eax,7
|
|
||||||
mov ebx,arg4 ;[soi]
|
|
||||||
mov ecx,dword [arg3+18]
|
|
||||||
shl ecx,16
|
|
||||||
add ecx,dword [arg3+22]
|
|
||||||
if (arg1 eqtype 0) & (arg2 eqtype 0)
|
|
||||||
mov edx,arg1*65536+arg2
|
|
||||||
else
|
|
||||||
mov edx,arg1
|
|
||||||
shl edx,16
|
|
||||||
add edx,arg2
|
|
||||||
end if
|
|
||||||
mcall
|
|
||||||
nodi:
|
|
||||||
}
|
|
||||||
|
|
||||||
macro setimg arg1,arg2,arg3
|
|
||||||
{
|
|
||||||
local nodi
|
|
||||||
mov eax,7
|
|
||||||
mov ebx,arg3
|
|
||||||
add ebx,8
|
|
||||||
mov ecx,dword [arg3]
|
|
||||||
shl ecx,16
|
|
||||||
add ecx,dword [arg3+4]
|
|
||||||
if (arg1 eqtype 0) & (arg2 eqtype 0)
|
|
||||||
mov edx,arg1*65536+arg2
|
|
||||||
else
|
|
||||||
mov edx,arg1
|
|
||||||
shl edx,16
|
|
||||||
add edx,arg2
|
|
||||||
end if
|
|
||||||
mcall
|
|
||||||
}
|
|
||||||
|
|
||||||
;Not optimiz
|
|
||||||
macro getimg imgsrc,x,y,xs,ys,imgdest
|
|
||||||
{
|
|
||||||
local cyc
|
|
||||||
mov eax,xs
|
|
||||||
mov dword [imgdest],eax
|
|
||||||
mov eax,ys
|
|
||||||
mov dword [imgdest+4],eax
|
|
||||||
|
|
||||||
mov eax,dword [imgsrc] ;getx size
|
|
||||||
mov edi,eax
|
|
||||||
mov ebx,y
|
|
||||||
mul ebx
|
|
||||||
add eax,x
|
|
||||||
mov ebx,3
|
|
||||||
mul ebx ;eax=offset on imsrc
|
|
||||||
|
|
||||||
mov ecx,0
|
|
||||||
mov ebx,0
|
|
||||||
mov ebp,eax
|
|
||||||
mov esi,0
|
|
||||||
|
|
||||||
add esi,8
|
|
||||||
add ebp,8
|
|
||||||
|
|
||||||
cyc:
|
|
||||||
mov al,byte [imgsrc+ebp]
|
|
||||||
mov [imgdest+esi],al
|
|
||||||
mov al,byte [imgsrc+ebp+1]
|
|
||||||
mov [imgdest+esi+1],al
|
|
||||||
mov al,byte [imgsrc+ebp+2]
|
|
||||||
mov [imgdest+esi+2],al
|
|
||||||
add esi,3
|
|
||||||
add ebp,3
|
|
||||||
inc ecx
|
|
||||||
cmp ecx,xs
|
|
||||||
jne cyc
|
|
||||||
add ebp,edi
|
|
||||||
add ebp,edi
|
|
||||||
add ebp,edi
|
|
||||||
sub ebp,xs
|
|
||||||
sub ebp,xs
|
|
||||||
sub ebp,xs
|
|
||||||
mov ecx,0
|
|
||||||
inc ebx
|
|
||||||
cmp ebx,ys
|
|
||||||
jne cyc
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
;
|
|
||||||
macro bmptoimg bmp_off,soi,img_off
|
|
||||||
{
|
|
||||||
local nodix,conv
|
|
||||||
cmp word [bmp_off],word 'BM'
|
|
||||||
jne nodix
|
|
||||||
mov eax,dword [bmp_off+18]
|
|
||||||
mov ebx,dword [bmp_off+22]
|
|
||||||
mov dword [img_off],eax
|
|
||||||
mov dword [img_off+4],ebx
|
|
||||||
mul ebx
|
|
||||||
lea ecx,[eax+2*eax]
|
|
||||||
lea edi,[img_off+8]
|
|
||||||
mov esi,dword [soi]
|
|
||||||
cld
|
|
||||||
rep movsb
|
|
||||||
nodix:
|
|
||||||
}
|
|
||||||
|
|
||||||
macro copyimg img2_off,img1_off
|
|
||||||
{
|
|
||||||
local cop
|
|
||||||
mov eax,dword [img1_off]
|
|
||||||
mov ebx,dword [img1_off+4]
|
|
||||||
mul ebx
|
|
||||||
lea ecx,[eax+2*eax]
|
|
||||||
lea esi,[img1_off+8]
|
|
||||||
lea edi,[img2_off+8]
|
|
||||||
cld
|
|
||||||
rep movsb
|
|
||||||
}
|
|
||||||
|
|
||||||
macro fullimg img_off,xs,ys,color
|
|
||||||
{
|
|
||||||
local cop
|
|
||||||
mov eax,xs
|
|
||||||
mov ebx,ys
|
|
||||||
mov dword [img_off],eax
|
|
||||||
mov dword [img_off+4],ebx
|
|
||||||
mul ebx
|
|
||||||
lea ebp,[eax+2*eax]
|
|
||||||
mov esi,color
|
|
||||||
if color eqtype 0
|
|
||||||
mov ecx,color/65536
|
|
||||||
else
|
|
||||||
mov ecx,esi
|
|
||||||
shr ecx,16
|
|
||||||
end if
|
|
||||||
xor edi,edi
|
|
||||||
cop:
|
|
||||||
mov word [img_off+8+edi],si
|
|
||||||
add edi,2
|
|
||||||
mov byte [img_off+8+edi],cl
|
|
||||||
inc edi
|
|
||||||
cmp edi,ebp
|
|
||||||
jne cop
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
macro convbmp bmp_load_area,bmp_soi
|
|
||||||
{
|
|
||||||
local status,bps,dwps,soi,sop,eop,eos,process,fileinfo,string,end_bmp
|
|
||||||
local converttable,noaddelem,nextbit,convert1bpp,convert4bpp,convert2
|
|
||||||
local nextelem,convertno32,nomorestring,convert1,nextstring,yespicsize
|
|
||||||
local noaddword
|
|
||||||
;local qwe,bmpfn
|
|
||||||
|
|
||||||
; convert:
|
|
||||||
movzx eax,word [bmp_load_area+28]
|
|
||||||
mul dword [bmp_load_area+18]
|
|
||||||
mov ebx,32
|
|
||||||
div ebx
|
|
||||||
test edx,edx
|
|
||||||
je noaddword
|
|
||||||
inc eax
|
|
||||||
noaddword:
|
|
||||||
mov dword [dwps],eax ;dwps-doublewords per string
|
|
||||||
shl eax,2
|
|
||||||
mov dword [bps],eax ;bps-bytes per string
|
|
||||||
|
|
||||||
cmp dword [bmp_load_area+34],0
|
|
||||||
jne yespicsize ;if picture size is defined
|
|
||||||
mul dword [bmp_load_area+22]
|
|
||||||
mov dword [bmp_load_area+34],eax
|
|
||||||
|
|
||||||
yespicsize:
|
|
||||||
mov eax,bmp_load_area
|
|
||||||
mov ebx,eax
|
|
||||||
add ebx, [bmp_load_area+2];file size
|
|
||||||
inc ebx
|
|
||||||
mov dword [bmp_soi],ebx ;soi-start of image area for drawing
|
|
||||||
add eax, [bmp_load_area+10]
|
|
||||||
mov dword [sop],eax ;sop-start of picture in file
|
|
||||||
add eax, [bmp_load_area+34]
|
|
||||||
mov dword [eop],eax ;eop-end of picture in file
|
|
||||||
mov eax, [bmp_load_area+18]
|
|
||||||
lea eax,[eax+2*eax] ;3x pixels in eax
|
|
||||||
|
|
||||||
mov edi,dword [bmp_soi] ;initializing
|
|
||||||
mov esi,dword [eop]
|
|
||||||
sub esi,dword [bps]
|
|
||||||
|
|
||||||
|
|
||||||
nextstring:
|
|
||||||
push edi
|
|
||||||
cmp word [bmp_load_area+28],24
|
|
||||||
jne convertno32
|
|
||||||
|
|
||||||
mov ecx,[dwps]
|
|
||||||
cld
|
|
||||||
rep movsd
|
|
||||||
convert1:
|
|
||||||
pop edi
|
|
||||||
sub esi,dword [bps]
|
|
||||||
sub esi,dword [bps]
|
|
||||||
cmp esi,dword [sop]
|
|
||||||
jb end_bmp;nomorestring
|
|
||||||
add edi,eax
|
|
||||||
jmp nextstring
|
|
||||||
|
|
||||||
; nomorestring:
|
|
||||||
; jmp end_bmp
|
|
||||||
|
|
||||||
convertno32:
|
|
||||||
mov ebx,bmp_load_area
|
|
||||||
add ebx, [bmp_load_area+14]
|
|
||||||
add ebx,14 ;start of color table
|
|
||||||
push esi
|
|
||||||
add esi,dword [bps]
|
|
||||||
mov dword [eos],esi
|
|
||||||
pop esi
|
|
||||||
nextelem:
|
|
||||||
push eax
|
|
||||||
movzx eax,byte [esi]
|
|
||||||
cmp word [bmp_load_area+28],4
|
|
||||||
je convert4bpp
|
|
||||||
cmp word [bmp_load_area+28],1
|
|
||||||
je convert1bpp
|
|
||||||
call converttable
|
|
||||||
convert2:
|
|
||||||
pop eax
|
|
||||||
inc esi
|
|
||||||
cmp esi,dword [eos]
|
|
||||||
jae convert1
|
|
||||||
add edi,3
|
|
||||||
jmp nextelem
|
|
||||||
|
|
||||||
convert4bpp:
|
|
||||||
shl ax,4
|
|
||||||
shr al,4
|
|
||||||
push ax
|
|
||||||
movzx eax,ah
|
|
||||||
call converttable
|
|
||||||
add edi,3
|
|
||||||
pop ax
|
|
||||||
movzx eax,al
|
|
||||||
call converttable
|
|
||||||
jmp convert2
|
|
||||||
|
|
||||||
convert1bpp:
|
|
||||||
mov ecx,eax
|
|
||||||
mov edx,7
|
|
||||||
nextbit:
|
|
||||||
xor eax,eax
|
|
||||||
bt ecx,edx
|
|
||||||
jnc noaddelem
|
|
||||||
inc eax
|
|
||||||
noaddelem:
|
|
||||||
push edx
|
|
||||||
call converttable
|
|
||||||
pop edx
|
|
||||||
dec edx
|
|
||||||
cmp edx,0xffffffff
|
|
||||||
je convert2
|
|
||||||
add edi,3
|
|
||||||
jmp nextbit
|
|
||||||
|
|
||||||
converttable:
|
|
||||||
shl eax,2
|
|
||||||
add eax,ebx
|
|
||||||
mov edx, dword [eax]
|
|
||||||
mov dword [edi],edx
|
|
||||||
ret
|
|
||||||
|
|
||||||
|
|
||||||
; DATA AREA
|
|
||||||
|
|
||||||
;status dd 0 ;bit0=1 if file thread is created
|
|
||||||
bps dd 0
|
|
||||||
dwps dd 0
|
|
||||||
;soi dd 0
|
|
||||||
sop dd 0
|
|
||||||
eop dd 0
|
|
||||||
eos dd 0
|
|
||||||
;process dd 0
|
|
||||||
|
|
||||||
end_bmp:
|
|
||||||
; mov eax,dword [soi]
|
|
||||||
; mov dword [bmp_soi],eax
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
; LOADBMP - Load bmp image from file
|
|
||||||
; (SYNTAX) LOADBMP 'file_path',temp_area(rb 0x10000),load_area,dd soi
|
|
||||||
; (SAMPLE) LOADBMP '/sys/menuet.bmp',temp_area,I_END,tsoi
|
|
||||||
; ( NOTE ) Macros create on Base of
|
|
||||||
; Picture browser by lisovin@26.ru & Ivan Poddubny
|
|
||||||
; SOI - Start of image
|
|
||||||
|
|
||||||
macro loadbmp bmp_file_name,bmp_temp_area,bmp_load_area,bmp_soi
|
|
||||||
{
|
|
||||||
local status,bps,dwps,soi,sop,eop,eos,process,fileinfo,string,end_bmp
|
|
||||||
local converttable,noaddelem,nextbit,convert1bpp,convert4bpp,convert2
|
|
||||||
local nextelem,convertno32,nomorestring,convert1,nextstring,yespicsize
|
|
||||||
local noaddword
|
|
||||||
;local qwe,bmpfn
|
|
||||||
|
|
||||||
mov dword [fileinfo+8],1 ; how many blocks to read (1)
|
|
||||||
mov eax,58
|
|
||||||
mov ebx,fileinfo
|
|
||||||
mcall
|
|
||||||
mov eax,[bmp_load_area+2]
|
|
||||||
shr eax,9 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> 512 <20> <20>ਡ<EFBFBD><E0A8A1><EFBFBD><EFBFBD> 1 - <20><><EFBFBD><EFBFBD>稬 <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
||||||
inc eax
|
|
||||||
mov dword [fileinfo+8],eax
|
|
||||||
mov eax,58
|
|
||||||
mov ebx,fileinfo
|
|
||||||
mcall
|
|
||||||
|
|
||||||
; jmp qwe
|
|
||||||
;bmpfn db bmp_file_name
|
|
||||||
;qwe:
|
|
||||||
; mov eax,6
|
|
||||||
; mov ebx,bmpfn
|
|
||||||
; mov ecx,0
|
|
||||||
; mov edx,0xFFFFFF
|
|
||||||
; mov esi,bmp_load_area
|
|
||||||
; mov edi,0
|
|
||||||
; mcall
|
|
||||||
|
|
||||||
; convert:
|
|
||||||
movzx eax,word [bmp_load_area+28]
|
|
||||||
mul dword [bmp_load_area+18]
|
|
||||||
mov ebx,32
|
|
||||||
div ebx
|
|
||||||
test edx,edx
|
|
||||||
je noaddword
|
|
||||||
inc eax
|
|
||||||
noaddword:
|
|
||||||
mov dword [dwps],eax ;dwps-doublewords per string
|
|
||||||
shl eax,2
|
|
||||||
mov dword [bps],eax ;bps-bytes per string
|
|
||||||
|
|
||||||
cmp dword [bmp_load_area+34],0
|
|
||||||
jne yespicsize ;if picture size is defined
|
|
||||||
mul dword [bmp_load_area+22]
|
|
||||||
mov dword [bmp_load_area+34],eax
|
|
||||||
|
|
||||||
yespicsize:
|
|
||||||
mov eax,bmp_load_area
|
|
||||||
push eax
|
|
||||||
add eax, [bmp_load_area+2];file size
|
|
||||||
inc eax
|
|
||||||
mov dword [soi],eax ;soi-start of image area for drawing
|
|
||||||
pop eax
|
|
||||||
add eax, [bmp_load_area+10]
|
|
||||||
mov dword [sop],eax ;sop-start of picture in file
|
|
||||||
add eax, [bmp_load_area+34]
|
|
||||||
mov dword [eop],eax ;eop-end of picture in file
|
|
||||||
mov eax, [bmp_load_area+18]
|
|
||||||
mov ebx,3
|
|
||||||
mul ebx ;3x pixels in eax
|
|
||||||
|
|
||||||
mov edi,dword [soi] ;initializing
|
|
||||||
mov esi,dword [eop]
|
|
||||||
sub esi,dword [bps]
|
|
||||||
|
|
||||||
|
|
||||||
nextstring:
|
|
||||||
push edi
|
|
||||||
cmp word [bmp_load_area+28],24
|
|
||||||
jne convertno32
|
|
||||||
|
|
||||||
mov ecx,[dwps]
|
|
||||||
cld
|
|
||||||
rep movsd
|
|
||||||
convert1:
|
|
||||||
pop edi
|
|
||||||
sub esi,dword [bps]
|
|
||||||
sub esi,dword [bps]
|
|
||||||
cmp esi,dword [sop]
|
|
||||||
jb nomorestring
|
|
||||||
add edi,eax
|
|
||||||
jmp nextstring
|
|
||||||
|
|
||||||
nomorestring:
|
|
||||||
jmp end_bmp
|
|
||||||
|
|
||||||
convertno32:
|
|
||||||
mov ebx,bmp_load_area
|
|
||||||
add ebx, [bmp_load_area+14]
|
|
||||||
add ebx,14 ;start of color table
|
|
||||||
push esi
|
|
||||||
add esi,dword [bps]
|
|
||||||
mov dword [eos],esi
|
|
||||||
pop esi
|
|
||||||
nextelem:
|
|
||||||
push eax
|
|
||||||
movzx eax,byte [esi]
|
|
||||||
cmp word [bmp_load_area+28],4
|
|
||||||
je convert4bpp
|
|
||||||
cmp word [bmp_load_area+28],1
|
|
||||||
je convert1bpp
|
|
||||||
call converttable
|
|
||||||
convert2:
|
|
||||||
pop eax
|
|
||||||
inc esi
|
|
||||||
cmp esi,dword [eos]
|
|
||||||
jae convert1
|
|
||||||
add edi,3
|
|
||||||
jmp nextelem
|
|
||||||
|
|
||||||
convert4bpp:
|
|
||||||
shl ax,4
|
|
||||||
shr al,4
|
|
||||||
push ax
|
|
||||||
movzx eax,ah
|
|
||||||
call converttable
|
|
||||||
add edi,3
|
|
||||||
pop ax
|
|
||||||
movzx eax,al
|
|
||||||
call converttable
|
|
||||||
jmp convert2
|
|
||||||
|
|
||||||
convert1bpp:
|
|
||||||
mov ecx,eax
|
|
||||||
mov edx,7
|
|
||||||
nextbit:
|
|
||||||
xor eax,eax
|
|
||||||
bt ecx,edx
|
|
||||||
jnc noaddelem
|
|
||||||
inc eax
|
|
||||||
noaddelem:
|
|
||||||
push edx
|
|
||||||
call converttable
|
|
||||||
pop edx
|
|
||||||
dec edx
|
|
||||||
cmp edx,0xffffffff
|
|
||||||
je convert2
|
|
||||||
add edi,3
|
|
||||||
jmp nextbit
|
|
||||||
|
|
||||||
converttable:
|
|
||||||
shl eax,2
|
|
||||||
add eax,ebx
|
|
||||||
mov edx, dword [eax]
|
|
||||||
mov dword [edi],edx
|
|
||||||
ret
|
|
||||||
|
|
||||||
|
|
||||||
; DATA AREA
|
|
||||||
|
|
||||||
;status dd 0 ;bit0=1 if file thread is created
|
|
||||||
bps dd 0
|
|
||||||
dwps dd 0
|
|
||||||
soi dd 0
|
|
||||||
sop dd 0
|
|
||||||
eop dd 0
|
|
||||||
eos dd 0
|
|
||||||
;process dd 0
|
|
||||||
|
|
||||||
; DATA AREA
|
|
||||||
fileinfo:
|
|
||||||
dd 0
|
|
||||||
dd 0
|
|
||||||
dd 1 ;number of blocks of 512 bytes
|
|
||||||
dd bmp_load_area
|
|
||||||
dd bmp_temp_area
|
|
||||||
string:
|
|
||||||
db bmp_file_name,0
|
|
||||||
db ' '
|
|
||||||
db ' '
|
|
||||||
db ' '
|
|
||||||
db ' ',0
|
|
||||||
|
|
||||||
|
|
||||||
end_bmp:
|
|
||||||
mov eax,dword [soi]
|
|
||||||
mov dword [bmp_soi],eax
|
|
||||||
|
|
||||||
}
|
|
@@ -1,499 +0,0 @@
|
|||||||
lang equ ru_RU ; ru_RU en_US fr_FR de_DE fi_FI
|
|
||||||
|
|
||||||
;
|
|
||||||
; Assembler
|
|
||||||
; SMALL
|
|
||||||
; CODE
|
|
||||||
; Libary
|
|
||||||
;
|
|
||||||
; Ver 0.09 By Pavlushin Evgeni (RUSSIA)
|
|
||||||
; www.waptap@mail.ru
|
|
||||||
|
|
||||||
;InfoList
|
|
||||||
;0.01 scank,putpix,puttxt
|
|
||||||
;0.02 label,random,colors
|
|
||||||
;0.03 window,startwd,endwd,attributes
|
|
||||||
;0.04 close,delay,scevent ~30.04.2004
|
|
||||||
;0.05 small random, ~04.05.2004
|
|
||||||
;0.06 wtevent ~09.05.2004
|
|
||||||
;0.07 timeevent ~23.05.2004
|
|
||||||
;0.08 txtput ~14.06.2004
|
|
||||||
;0.09 opendialog,savedialog ~20.06.2004
|
|
||||||
|
|
||||||
macro opendialog redproc,openoff,erroff,path,testtime
|
|
||||||
{
|
|
||||||
local still, dlg_file, clip_file, redwait
|
|
||||||
local button, key, red, zzz, still, zzz2, incf, file_is_open, zzz3
|
|
||||||
|
|
||||||
mov ecx,200
|
|
||||||
zzz3:
|
|
||||||
mov byte [path+ecx-1],0
|
|
||||||
loop zzz3
|
|
||||||
|
|
||||||
dec byte [clip_file+7]
|
|
||||||
incf:
|
|
||||||
inc byte [clip_file+7]
|
|
||||||
mov eax,6
|
|
||||||
mov ebx,clip_file
|
|
||||||
mov ecx,0
|
|
||||||
or edx,-1
|
|
||||||
mov esi,path
|
|
||||||
mcall
|
|
||||||
cmp byte [clip_file+7],'Z'
|
|
||||||
je erroff
|
|
||||||
cmp eax,0xffffffff
|
|
||||||
jne incf
|
|
||||||
|
|
||||||
mov ecx,200
|
|
||||||
zzz2:
|
|
||||||
mov byte [path+ecx],0
|
|
||||||
loop zzz2
|
|
||||||
|
|
||||||
mov ebx,clip_file
|
|
||||||
mov ecx,path
|
|
||||||
mov edx,100
|
|
||||||
mov esi,0
|
|
||||||
mov eax,33
|
|
||||||
mcall
|
|
||||||
|
|
||||||
mov ebx,dlg_file
|
|
||||||
mov ecx,clip_file
|
|
||||||
mov eax,19
|
|
||||||
mcall
|
|
||||||
|
|
||||||
still:
|
|
||||||
scevent red,key,button
|
|
||||||
cmp byte [path],0
|
|
||||||
jne file_is_open
|
|
||||||
cmp dword [redwait],testtime ;20
|
|
||||||
jnae zzz
|
|
||||||
mov eax,6
|
|
||||||
mov ebx,clip_file
|
|
||||||
mov ecx,0
|
|
||||||
mov edx,-1
|
|
||||||
mov esi,path
|
|
||||||
mcall
|
|
||||||
cmp eax,0xffffffff
|
|
||||||
je erroff ;errexit
|
|
||||||
mov dword [redwait],0
|
|
||||||
zzz:
|
|
||||||
delay 5
|
|
||||||
inc dword [redwait]
|
|
||||||
jmp still
|
|
||||||
|
|
||||||
file_is_open:
|
|
||||||
mov eax,32
|
|
||||||
mov ebx,clip_file
|
|
||||||
mcall
|
|
||||||
jmp openoff
|
|
||||||
|
|
||||||
key: ; key
|
|
||||||
mcall ; read (eax=2)
|
|
||||||
jmp still
|
|
||||||
button: ; button
|
|
||||||
mov eax,17 ; get id
|
|
||||||
mcall
|
|
||||||
cmp ah,1 ; button id=1 ?
|
|
||||||
jne still
|
|
||||||
mov eax,-1 ; close this program
|
|
||||||
mcall
|
|
||||||
|
|
||||||
red:
|
|
||||||
call redproc
|
|
||||||
jmp still
|
|
||||||
|
|
||||||
dlg_file db 'SYSXTREE '
|
|
||||||
clip_file db 'OPENCLPACLP'
|
|
||||||
db 'O' ;Dialog type O-open S-save
|
|
||||||
db 0 ;Marker
|
|
||||||
redwait dd 0
|
|
||||||
}
|
|
||||||
|
|
||||||
macro savedialog redproc,openoff,erroff,path,testtime
|
|
||||||
{
|
|
||||||
local still, dlg_file, clip_file, redwait, zzz3
|
|
||||||
local button, key, red, zzz, still, zzz2, incf, file_is_open
|
|
||||||
|
|
||||||
mov ecx,200
|
|
||||||
zzz3:
|
|
||||||
mov byte [path+ecx-1],0
|
|
||||||
loop zzz3
|
|
||||||
|
|
||||||
dec byte [clip_file+7]
|
|
||||||
incf:
|
|
||||||
inc byte [clip_file+7]
|
|
||||||
mov eax,6
|
|
||||||
mov ebx,clip_file
|
|
||||||
mov ecx,0
|
|
||||||
mov edx,-1
|
|
||||||
mov esi,path
|
|
||||||
mcall
|
|
||||||
cmp byte [clip_file+7],'Z'
|
|
||||||
je erroff
|
|
||||||
cmp eax,0xffffffff
|
|
||||||
jne incf
|
|
||||||
|
|
||||||
mov ecx,200
|
|
||||||
zzz2:
|
|
||||||
mov byte [path+ecx],0
|
|
||||||
loop zzz2
|
|
||||||
|
|
||||||
mov ebx,clip_file
|
|
||||||
mov ecx,path
|
|
||||||
mov edx,100
|
|
||||||
mov esi,0
|
|
||||||
mov eax,33
|
|
||||||
mcall
|
|
||||||
|
|
||||||
mov ebx,dlg_file
|
|
||||||
mov ecx,clip_file
|
|
||||||
mov eax,19
|
|
||||||
mcall
|
|
||||||
|
|
||||||
still:
|
|
||||||
scevent red,key,button
|
|
||||||
cmp byte [path],0
|
|
||||||
jne file_is_open
|
|
||||||
cmp dword [redwait],testtime ;20
|
|
||||||
jnae zzz
|
|
||||||
mov eax,6
|
|
||||||
mov ebx,clip_file
|
|
||||||
mov ecx,0
|
|
||||||
mov edx,-1
|
|
||||||
mov esi,path
|
|
||||||
mcall
|
|
||||||
cmp eax,0xffffffff
|
|
||||||
je erroff ;errexit
|
|
||||||
mov dword [redwait],0
|
|
||||||
zzz:
|
|
||||||
delay 5
|
|
||||||
inc dword [redwait]
|
|
||||||
jmp still
|
|
||||||
|
|
||||||
file_is_open:
|
|
||||||
mov eax,32
|
|
||||||
mov ebx,clip_file
|
|
||||||
mcall
|
|
||||||
jmp openoff
|
|
||||||
|
|
||||||
key: ; key
|
|
||||||
mcall ; read (eax=2)
|
|
||||||
jmp still
|
|
||||||
button: ; button
|
|
||||||
mov eax,17 ; get id
|
|
||||||
mcall
|
|
||||||
cmp ah,1 ; button id=1 ?
|
|
||||||
jne still
|
|
||||||
mov eax,-1 ; close this program
|
|
||||||
mcall
|
|
||||||
|
|
||||||
red:
|
|
||||||
call redproc
|
|
||||||
jmp still
|
|
||||||
|
|
||||||
dlg_file db 'SYSXTREE '
|
|
||||||
clip_file db 'SAVECLPACLP'
|
|
||||||
db 'S' ;Dialog type O-open S-save
|
|
||||||
db 0 ;Marker
|
|
||||||
redwait dd 0
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
; RANDOM - generate random count (small)
|
|
||||||
; (SYNTAX) RANDOM MaxCount,OutArgument
|
|
||||||
; (SAMPLE) RANDOM 10000,eax
|
|
||||||
; ( NOTE ) Maxint<65536 ; use random 65536,eax for more combinations
|
|
||||||
|
|
||||||
randomuse = 0
|
|
||||||
|
|
||||||
macro random arg1,arg2
|
|
||||||
{
|
|
||||||
local rxproc
|
|
||||||
randomuse = randomuse + 1
|
|
||||||
|
|
||||||
jmp rxproc
|
|
||||||
|
|
||||||
if defined randomuse & randomuse = 1
|
|
||||||
randomproc:
|
|
||||||
jmp rnj
|
|
||||||
rsx1 dw 0x4321
|
|
||||||
rsx2 dw 0x1234
|
|
||||||
rnj:
|
|
||||||
; mov eax,arg1
|
|
||||||
push bx
|
|
||||||
push cx
|
|
||||||
push dx
|
|
||||||
push si
|
|
||||||
push di
|
|
||||||
mov cx,ax
|
|
||||||
mov ax,word ptr rsx1
|
|
||||||
mov bx,word ptr rsx2
|
|
||||||
mov si,ax
|
|
||||||
mov di,bx
|
|
||||||
mov dl,ah
|
|
||||||
mov ah,al
|
|
||||||
mov al,bh
|
|
||||||
mov bh,bl
|
|
||||||
xor bl,bl
|
|
||||||
rcr dl,1
|
|
||||||
rcr ax,1
|
|
||||||
rcr bx,1
|
|
||||||
add bx,di
|
|
||||||
adc ax,si
|
|
||||||
add bx,0x62e9
|
|
||||||
adc ax,0x3619
|
|
||||||
mov word ptr rsx1,bx
|
|
||||||
mov word ptr rsx2,ax
|
|
||||||
xor dx,dx
|
|
||||||
cmp ax,0
|
|
||||||
je nodiv
|
|
||||||
cmp cx,0
|
|
||||||
je nodiv
|
|
||||||
div cx
|
|
||||||
nodiv:
|
|
||||||
mov ax,dx
|
|
||||||
pop di
|
|
||||||
pop si
|
|
||||||
pop dx
|
|
||||||
pop cx
|
|
||||||
pop bx
|
|
||||||
; mov arg2,0
|
|
||||||
; mov arg2,eax
|
|
||||||
ret
|
|
||||||
end if
|
|
||||||
|
|
||||||
rxproc:
|
|
||||||
mov eax,arg1
|
|
||||||
call randomproc
|
|
||||||
mov arg2,0
|
|
||||||
mov arg2,eax
|
|
||||||
}
|
|
||||||
|
|
||||||
macro scank
|
|
||||||
{
|
|
||||||
mov eax,10
|
|
||||||
mcall
|
|
||||||
}
|
|
||||||
|
|
||||||
macro putpix x,y,color
|
|
||||||
{
|
|
||||||
mov ebx,x
|
|
||||||
mov ecx,y
|
|
||||||
mov edx,color
|
|
||||||
mov eax,1
|
|
||||||
mcall
|
|
||||||
}
|
|
||||||
|
|
||||||
macro puttxt x,y,offs,size,color
|
|
||||||
{
|
|
||||||
mov ebx,x
|
|
||||||
shl ebx,16
|
|
||||||
add ebx,y
|
|
||||||
mov ecx,color
|
|
||||||
mov edx,offs
|
|
||||||
mov esi,size
|
|
||||||
mov eax,4
|
|
||||||
mcall
|
|
||||||
}
|
|
||||||
|
|
||||||
;_ equ '____'
|
|
||||||
|
|
||||||
;macro libtest x,y,color
|
|
||||||
;{
|
|
||||||
;if x = as dword
|
|
||||||
; mov ebx,x
|
|
||||||
;end if
|
|
||||||
; mov ecx,y
|
|
||||||
; mov edx,color
|
|
||||||
; mov eax,1
|
|
||||||
; mcall
|
|
||||||
;}
|
|
||||||
|
|
||||||
|
|
||||||
macro outcount data, x, y, color, numtype
|
|
||||||
{
|
|
||||||
mov ecx,data
|
|
||||||
mov ebx,numtype
|
|
||||||
mov bl,0
|
|
||||||
mov edx,x*65536+y
|
|
||||||
mov esi,color
|
|
||||||
mov eax,47
|
|
||||||
mcall
|
|
||||||
}
|
|
||||||
|
|
||||||
; SCEVENT - Scan event
|
|
||||||
|
|
||||||
macro scevent red,key,but
|
|
||||||
{
|
|
||||||
mov eax,11
|
|
||||||
mcall
|
|
||||||
dec eax
|
|
||||||
jz red
|
|
||||||
dec eax
|
|
||||||
jz key
|
|
||||||
dec eax
|
|
||||||
jz but
|
|
||||||
}
|
|
||||||
|
|
||||||
; WTEVENT - Wait event
|
|
||||||
|
|
||||||
macro wtevent red,key,but
|
|
||||||
{
|
|
||||||
mov eax,10
|
|
||||||
mcall
|
|
||||||
dec eax
|
|
||||||
jz red
|
|
||||||
dec eax
|
|
||||||
jz key
|
|
||||||
dec eax
|
|
||||||
jz but
|
|
||||||
}
|
|
||||||
|
|
||||||
; TIMEEVENT - Wite for event with timeout
|
|
||||||
|
|
||||||
macro timeevent xfps,noevent,red,key,but
|
|
||||||
{
|
|
||||||
mov eax,23
|
|
||||||
mov ebx,xfps
|
|
||||||
mcall
|
|
||||||
cmp eax,0
|
|
||||||
je noevent
|
|
||||||
dec eax
|
|
||||||
jz red
|
|
||||||
dec eax
|
|
||||||
jz key
|
|
||||||
dec eax
|
|
||||||
jz but
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
; CLOSE - Close program
|
|
||||||
|
|
||||||
macro close
|
|
||||||
{
|
|
||||||
mov eax,-1
|
|
||||||
mcall
|
|
||||||
}
|
|
||||||
|
|
||||||
; DELAY - Create delay 1/100 sec
|
|
||||||
; (SYNTAX) Delay time
|
|
||||||
; (SAMPLE) Delay 100 ;delay 2 sec 1/100*200=2 sec
|
|
||||||
|
|
||||||
macro delay arg1
|
|
||||||
{
|
|
||||||
mov eax,5
|
|
||||||
mov ebx,arg1
|
|
||||||
mcall
|
|
||||||
}
|
|
||||||
|
|
||||||
; WINDOW - Draw window
|
|
||||||
; (SYNTAX) WINDOW Xstart,Ystart,'Text',Color
|
|
||||||
; (SAMPLE) WINDOW 10,10,640+8,480+24,window_Skinned
|
|
||||||
|
|
||||||
macro window arg1,arg2,arg3,arg4,arg5
|
|
||||||
{
|
|
||||||
mov ebx,arg1*65536+arg3
|
|
||||||
mov ecx,arg2*65536+arg4
|
|
||||||
mov edx,arg5
|
|
||||||
mov eax,0
|
|
||||||
mcall
|
|
||||||
}
|
|
||||||
|
|
||||||
macro colorwindow arg1,arg2,arg3,arg4,arg5,arg6,arg7
|
|
||||||
{
|
|
||||||
mov ebx,arg1*65536+arg3
|
|
||||||
mov ecx,arg2*65536+arg4
|
|
||||||
mov edx,arg5
|
|
||||||
mov esi,arg6
|
|
||||||
mov edi,arg7
|
|
||||||
mov eax,0
|
|
||||||
mcall
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
; STARTWD - Start of window draw
|
|
||||||
|
|
||||||
macro startwd
|
|
||||||
{
|
|
||||||
mov eax,12
|
|
||||||
mov ebx,1
|
|
||||||
mcall
|
|
||||||
}
|
|
||||||
|
|
||||||
; ENDWD - End window draw
|
|
||||||
|
|
||||||
macro endwd
|
|
||||||
{
|
|
||||||
mov eax,12
|
|
||||||
mov ebx,2
|
|
||||||
mcall
|
|
||||||
}
|
|
||||||
|
|
||||||
; LABEL - Put text to frame
|
|
||||||
; (SYNTAX) LABEL Xstart,Ystart,'Text',Color
|
|
||||||
; (SAMPLE) LABEL 10,12,'Hello World!',cl_Green+font_Big
|
|
||||||
|
|
||||||
macro label arg1,arg2,arg3,arg4
|
|
||||||
{
|
|
||||||
local asd,lab
|
|
||||||
jmp asd
|
|
||||||
lab db arg3 ;arg label
|
|
||||||
asd:
|
|
||||||
mov ebx,arg1 ;arg1=y arg2=x
|
|
||||||
shl ebx,16
|
|
||||||
add ebx,arg2
|
|
||||||
mov ecx,arg4 ;arg4 color
|
|
||||||
mov edx,lab
|
|
||||||
mov esi,asd-lab ;calc size
|
|
||||||
mov eax,4
|
|
||||||
mcall
|
|
||||||
}
|
|
||||||
|
|
||||||
;Key's
|
|
||||||
key_Up equ 178
|
|
||||||
key_Down equ 177
|
|
||||||
key_Right equ 179
|
|
||||||
key_Left equ 176
|
|
||||||
key_Esc equ 27
|
|
||||||
key_Space equ 32
|
|
||||||
key_Enter equ 13
|
|
||||||
key_Bspace equ 8
|
|
||||||
key_F1 equ 50
|
|
||||||
key_F2 equ 51
|
|
||||||
key_F3 equ 52
|
|
||||||
key_F4 equ 53
|
|
||||||
key_F5 equ 54
|
|
||||||
key_F6 equ 55
|
|
||||||
key_F7 equ 56
|
|
||||||
key_F8 equ 57
|
|
||||||
key_F9 equ 48
|
|
||||||
key_F10 equ 49
|
|
||||||
key_F11 equ 68
|
|
||||||
key_F12 equ 255
|
|
||||||
key_Home equ 180
|
|
||||||
key_End equ 181
|
|
||||||
key_PgUp equ 184
|
|
||||||
key_PgDown equ 183
|
|
||||||
|
|
||||||
;Attributes
|
|
||||||
|
|
||||||
;Window Attributes
|
|
||||||
window_Skinned equ 0x03000000
|
|
||||||
window_Type2 equ 0x02000000
|
|
||||||
window_Type1 equ 0x00000000
|
|
||||||
window_Reserve equ 0x01000000
|
|
||||||
|
|
||||||
;Font Attributes
|
|
||||||
font_Big equ 0x10000000
|
|
||||||
|
|
||||||
;Colors
|
|
||||||
cl_White equ 0x00ffffff
|
|
||||||
cl_Black equ 0x00000000
|
|
||||||
cl_Grey equ 0x00888888
|
|
||||||
cl_Red equ 0x00ff0000
|
|
||||||
cl_Lime equ 0x0000ff00
|
|
||||||
cl_Green equ 0x0000af00
|
|
||||||
cl_Blue equ 0x000000ff
|
|
||||||
cl_Purple equ 0x008080ff
|
|
||||||
cl_Violet equ 0x008040ff
|
|
||||||
cl_Cyan equ 0x0040e0ff
|
|
3
programs/demos/3dcube2/trunk/build.bat
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
@fasm 3dcube2.asm 3dcube2
|
||||||
|
@kpack 3dcube2
|
||||||
|
if not exist 3dcube2 ( @pause )
|
@@ -1,6 +0,0 @@
|
|||||||
@erase lang.inc
|
|
||||||
@echo lang fix en_US >lang.inc
|
|
||||||
@fasm 3dcube2.asm 3dcube2
|
|
||||||
@erase lang.inc
|
|
||||||
@kpack 3dcube2
|
|
||||||
@pause
|
|
@@ -1,6 +0,0 @@
|
|||||||
@erase lang.inc
|
|
||||||
@echo lang fix ru_RU >lang.inc
|
|
||||||
@fasm 3dcube2.asm 3dcube2
|
|
||||||
@erase lang.inc
|
|
||||||
@kpack 3dcube2
|
|
||||||
@pause
|
|
2
programs/demos/aclock/Tupfile.lua
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
if tup.getconfig("NO_FASM") ~= "" then return end
|
||||||
|
tup.rule("aclock.asm", "fasm %f %o " .. tup.getconfig("KPACK_CMD"), "aclock")
|
@@ -16,44 +16,42 @@
|
|||||||
; along with this program; if not, write to the Free Software
|
; along with this program; if not, write to the Free Software
|
||||||
; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
|
||||||
bits 32
|
use32
|
||||||
%include 'mos.inc'
|
org 0
|
||||||
section .text
|
db 'MENUET01'
|
||||||
|
dd 1,main,image_end,memory_end,stacktop,cmdLine,0
|
||||||
|
|
||||||
|
include '../../macros.inc'
|
||||||
|
include '../../proc32.inc'
|
||||||
|
include '../../KOSfuncs.inc'
|
||||||
|
|
||||||
|
|
||||||
;********************************************************************
|
;********************************************************************
|
||||||
; configuration stuff
|
; configuration stuff
|
||||||
;********************************************************************
|
;********************************************************************
|
||||||
|
; skinned window borders
|
||||||
%define APPNAME "Clock"
|
MOS_WND_SKIN_BORDER_LEFT = 5
|
||||||
%define STACKSIZE 1024
|
MOS_WND_SKIN_BORDER_RIGHT = 5
|
||||||
|
MOS_WND_SKIN_BORDER_BOTTOM = 5
|
||||||
|
|
||||||
; default window position/dimensions (work area)
|
; default window position/dimensions (work area)
|
||||||
%define DEFAULT_XPOS -20
|
DEFAULT_XPOS =-20
|
||||||
%define DEFAULT_YPOS 20
|
DEFAULT_YPOS =20
|
||||||
%define DEFAULT_WIDTH 110
|
DEFAULT_WIDTH =110
|
||||||
%define DEFAULT_HEIGHT 110
|
DEFAULT_HEIGHT =110
|
||||||
|
|
||||||
; minimal size (horizontal and vertical) of work area
|
; minimal size (horizontal and vertical) of work area
|
||||||
%define MIN_WIDTH 100
|
MIN_WIDTH =100
|
||||||
%define MIN_HEIGHT 100
|
MIN_HEIGHT =100
|
||||||
|
|
||||||
|
|
||||||
;********************************************************************
|
|
||||||
; header
|
|
||||||
;********************************************************************
|
|
||||||
|
|
||||||
MOS_HEADER01 main,image_end,memory_end,stacktop-4,cmdLine,0
|
|
||||||
|
|
||||||
; these includes introduce code and thus mustn't stand
|
; these includes introduce code and thus mustn't stand
|
||||||
; before the menuet header =)
|
; before the menuet header =)
|
||||||
%include 'dbgboard.inc'
|
include 'dbgboard.inc'
|
||||||
%include 'strlen.inc'
|
include 'strfunct.inc'
|
||||||
%include 'str2dwrd.inc'
|
include 'cmdline.inc'
|
||||||
%include 'strtok.inc'
|
include 'adjstwnd.inc'
|
||||||
%include 'cmdline.inc'
|
include 'draw.inc'
|
||||||
%include 'adjstwnd.inc'
|
|
||||||
%include 'draw.inc'
|
|
||||||
|
|
||||||
;********************************************************************
|
;********************************************************************
|
||||||
; main program
|
; main program
|
||||||
@@ -89,20 +87,18 @@ main:
|
|||||||
; call drawClock
|
; call drawClock
|
||||||
|
|
||||||
; wait up to a second for next event
|
; wait up to a second for next event
|
||||||
mov eax,MOS_SC_WAITEVENTTIMEOUT
|
mcall SF_WAIT_EVENT_TIMEOUT,100
|
||||||
mov ebx,100
|
|
||||||
int 0x40
|
|
||||||
|
|
||||||
test eax,eax
|
test eax,eax
|
||||||
jne .event_occured
|
jne .event_occured
|
||||||
call drawClock
|
call drawClock
|
||||||
|
|
||||||
.event_occured:
|
.event_occured:
|
||||||
cmp eax,MOS_EVT_REDRAW
|
cmp eax,EV_REDRAW
|
||||||
je .redraw
|
je .redraw
|
||||||
cmp eax,MOS_EVT_KEY
|
cmp eax,EV_KEY
|
||||||
je .key
|
je .key
|
||||||
cmp eax,MOS_EVT_BUTTON
|
cmp eax,EV_BUTTON
|
||||||
je .button
|
je .button
|
||||||
jmp .msgpump
|
jmp .msgpump
|
||||||
|
|
||||||
@@ -110,12 +106,10 @@ main:
|
|||||||
call drawWindow
|
call drawWindow
|
||||||
jmp .msgpump
|
jmp .msgpump
|
||||||
.key:
|
.key:
|
||||||
mov eax,MOS_SC_GETKEY
|
mcall SF_GET_KEY
|
||||||
int 0x40
|
|
||||||
jmp .msgpump
|
jmp .msgpump
|
||||||
.button:
|
.button:
|
||||||
mov eax,MOS_SC_EXIT
|
mcall SF_TERMINATE_PROCESS
|
||||||
int 0x40
|
|
||||||
jmp .msgpump
|
jmp .msgpump
|
||||||
|
|
||||||
|
|
||||||
@@ -128,11 +122,7 @@ main:
|
|||||||
getDefaultWindowColors:
|
getDefaultWindowColors:
|
||||||
pushad
|
pushad
|
||||||
pushfd
|
pushfd
|
||||||
mov eax,MOS_SC_WINDOWPROPERTIES
|
mcall SF_STYLE_SETTINGS,SSF_GET_COLORS,wndColors,sizeof.system_colors
|
||||||
mov ebx,3
|
|
||||||
mov ecx,wndColors
|
|
||||||
mov edx,MOS_WNDCOLORS_size
|
|
||||||
int 0x40
|
|
||||||
popfd
|
popfd
|
||||||
popad
|
popad
|
||||||
ret
|
ret
|
||||||
@@ -149,29 +139,24 @@ drawWindow:
|
|||||||
pusha
|
pusha
|
||||||
|
|
||||||
; start window redraw
|
; start window redraw
|
||||||
mov eax,MOS_SC_REDRAWSTATUS
|
mcall SF_REDRAW,SSF_BEGIN_DRAW
|
||||||
mov ebx,1
|
|
||||||
int 0x40
|
|
||||||
|
|
||||||
; create window
|
; create window
|
||||||
mov eax,MOS_SC_DEFINEWINDOW
|
|
||||||
mov ebx,[wndXPos]
|
mov ebx,[wndXPos]
|
||||||
shl ebx,16
|
shl ebx,16
|
||||||
or ebx,[wndWidth]
|
or ebx,[wndWidth]
|
||||||
mov ecx,[wndYPos]
|
mov ecx,[wndYPos]
|
||||||
shl ecx,16
|
shl ecx,16
|
||||||
or ecx,[wndHeight]
|
or ecx,[wndHeight]
|
||||||
mov edx,[wndColors+MOS_WNDCOLORS.work]
|
mov edx,[wndColors.work]
|
||||||
or edx,0x53000000
|
or edx,0x53000000
|
||||||
mov edi,label
|
mov edi,w_label
|
||||||
int 0x40
|
mcall SF_CREATE_WINDOW
|
||||||
|
|
||||||
call drawClock
|
call drawClock
|
||||||
|
|
||||||
; end window redraw
|
; end window redraw
|
||||||
mov eax,MOS_SC_REDRAWSTATUS
|
mcall SF_REDRAW,SSF_END_DRAW
|
||||||
mov ebx,2
|
|
||||||
int 0x40
|
|
||||||
popa
|
popa
|
||||||
ret
|
ret
|
||||||
|
|
||||||
@@ -188,32 +173,29 @@ wndWidth dd DEFAULT_WIDTH
|
|||||||
wndHeight dd DEFAULT_HEIGHT
|
wndHeight dd DEFAULT_HEIGHT
|
||||||
|
|
||||||
; window label
|
; window label
|
||||||
label db APPNAME,0
|
w_label: db "Clock",0
|
||||||
LABEL_LEN equ ($-label-1)
|
.end:
|
||||||
|
LABEL_LEN equ (w_label.end-w_label-1)
|
||||||
|
|
||||||
; token delimiter list for command line
|
; token delimiter list for command line
|
||||||
delimiters db 9,10,11,12,13,32,0
|
delimiters db 9,10,11,12,13,32,0
|
||||||
|
|
||||||
; don't insert anything after this label
|
|
||||||
image_end:
|
image_end:
|
||||||
|
|
||||||
|
|
||||||
;********************************************************************
|
;********************************************************************
|
||||||
; uninitialized data
|
; uninitialized data
|
||||||
;********************************************************************
|
;********************************************************************
|
||||||
section .bss align=4
|
align 4
|
||||||
|
wndColors system_colors
|
||||||
wndColors resb MOS_WNDCOLORS_size
|
procInfo process_information
|
||||||
procInfo resb MOS_PROCESSINFO_size
|
|
||||||
|
|
||||||
; space for command line. at the end we have an additional
|
; space for command line. at the end we have an additional
|
||||||
; byte for a terminating zero, just to be sure...
|
; byte for a terminating zero, just to be sure...
|
||||||
cmdLine resb 257
|
cmdLine rb 257
|
||||||
|
|
||||||
alignb 4
|
align 4
|
||||||
stack resb STACKSIZE
|
rb 1024
|
||||||
stacktop:
|
stacktop:
|
||||||
|
|
||||||
; don't insert anything after this label
|
|
||||||
memory_end:
|
memory_end:
|
||||||
|
|
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 3.1 KiB |
@@ -20,8 +20,6 @@
|
|||||||
; along with this program; if not, write to the Free Software
|
; along with this program; if not, write to the Free Software
|
||||||
; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
;
|
;
|
||||||
%ifndef _ADJSTWND_INC
|
|
||||||
%define _ADJSTWND_INC
|
|
||||||
|
|
||||||
|
|
||||||
;window types
|
;window types
|
||||||
@@ -72,8 +70,7 @@ adjustWindowDimensions:
|
|||||||
|
|
||||||
; clamp window dimensions
|
; clamp window dimensions
|
||||||
.clamp:
|
.clamp:
|
||||||
mov eax,MOS_SC_GETSCREENMAX ; get screen dimensions
|
mcall SF_GET_SCREEN_SIZE ; get screen dimensions
|
||||||
int 0x40
|
|
||||||
mov edi,eax ; edi = screen width
|
mov edi,eax ; edi = screen width
|
||||||
shr edi,16
|
shr edi,16
|
||||||
mov ebp,eax ; ebp = screen height
|
mov ebp,eax ; ebp = screen height
|
||||||
@@ -136,12 +133,10 @@ adjustWindowDimensions:
|
|||||||
add edx,MOS_WND_SKIN_BORDER_LEFT+MOS_WND_SKIN_BORDER_RIGHT
|
add edx,MOS_WND_SKIN_BORDER_LEFT+MOS_WND_SKIN_BORDER_RIGHT
|
||||||
; adjust height (esi). we need the skin height to do this.
|
; adjust height (esi). we need the skin height to do this.
|
||||||
push ebx
|
push ebx
|
||||||
mov eax,MOS_SC_WINDOWPROPERTIES
|
mcall SF_STYLE_SETTINGS,SSF_GET_SKIN_HEIGHT
|
||||||
mov ebx,4
|
|
||||||
int 0x40
|
|
||||||
lea esi,[esi+eax+MOS_WND_SKIN_BORDER_BOTTOM]
|
lea esi,[esi+eax+MOS_WND_SKIN_BORDER_BOTTOM]
|
||||||
pop ebx
|
pop ebx
|
||||||
jmp .clamp
|
jmp .clamp
|
||||||
|
|
||||||
%endif
|
|
||||||
|
|
3
programs/demos/aclock/build.bat
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
@fasm.exe -m 16384 aclock.asm aclock.kex
|
||||||
|
@kpack aclock.kex
|
||||||
|
pause
|
@@ -17,8 +17,6 @@
|
|||||||
; along with this program; if not, write to the Free Software
|
; along with this program; if not, write to the Free Software
|
||||||
; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
;
|
;
|
||||||
%ifndef _CMDLINE_INC
|
|
||||||
%define _CMDLINE_INC
|
|
||||||
|
|
||||||
|
|
||||||
;********************************************************************
|
;********************************************************************
|
||||||
@@ -105,8 +103,7 @@ parseCommandLine:
|
|||||||
; output : eax contains position
|
; output : eax contains position
|
||||||
; destroys : nothing
|
; destroys : nothing
|
||||||
parsePositionParam:
|
parsePositionParam:
|
||||||
push ebx
|
push ebx esi
|
||||||
push esi
|
|
||||||
pushfd
|
pushfd
|
||||||
|
|
||||||
; is the second char of the parameter a '-' ?
|
; is the second char of the parameter a '-' ?
|
||||||
@@ -129,8 +126,7 @@ parsePositionParam:
|
|||||||
.rotationshyperboloid:
|
.rotationshyperboloid:
|
||||||
|
|
||||||
popfd
|
popfd
|
||||||
pop esi
|
pop esi ebx
|
||||||
pop ebx
|
|
||||||
ret
|
ret
|
||||||
|
|
||||||
; parse dimension parameter
|
; parse dimension parameter
|
||||||
@@ -147,5 +143,4 @@ parseSizeParam:
|
|||||||
ret
|
ret
|
||||||
|
|
||||||
|
|
||||||
%endif
|
|
||||||
|
|
@@ -19,20 +19,34 @@
|
|||||||
; along with this program; if not, write to the Free Software
|
; along with this program; if not, write to the Free Software
|
||||||
; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
;
|
;
|
||||||
%ifndef _DBGBOARD_INC
|
|
||||||
%define _DBGBOARD_INC
|
|
||||||
|
|
||||||
|
|
||||||
%ifdef DEBUG
|
if DEBUG eq
|
||||||
|
|
||||||
|
macro DBG_BOARD_PRINTNEWLINE {
|
||||||
|
}
|
||||||
|
|
||||||
|
macro DBG_BOARD_PRINTCHAR c1 {
|
||||||
|
}
|
||||||
|
|
||||||
|
macro DBG_BOARD_PRINTDWORD w1 {
|
||||||
|
}
|
||||||
|
|
||||||
|
macro DBG_BOARD_PRINTSTRINGLITERAL p1 {
|
||||||
|
}
|
||||||
|
|
||||||
|
macro DBG_BOARD_PRINTSTRING s1 {
|
||||||
|
}
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
;********************************************************************
|
;********************************************************************
|
||||||
; print newline
|
; print newline
|
||||||
; no input
|
; no input
|
||||||
;********************************************************************
|
;********************************************************************
|
||||||
%macro DBG_BOARD_PRINTNEWLINE 0
|
macro DBG_BOARD_PRINTNEWLINE {
|
||||||
call dbg_board_printnewline
|
call dbg_board_printnewline
|
||||||
%endm
|
}
|
||||||
|
|
||||||
|
|
||||||
;********************************************************************
|
;********************************************************************
|
||||||
@@ -44,12 +58,12 @@
|
|||||||
; DBG_BOARD_PRINTCHAR [esi]
|
; DBG_BOARD_PRINTCHAR [esi]
|
||||||
; DBG_BOARD_PRINTCHAR [somevariable]
|
; DBG_BOARD_PRINTCHAR [somevariable]
|
||||||
;********************************************************************
|
;********************************************************************
|
||||||
%macro DBG_BOARD_PRINTCHAR 1
|
macro DBG_BOARD_PRINTCHAR c1 {
|
||||||
push ecx
|
push ecx
|
||||||
mov cl,byte %1
|
mov cl,byte c1
|
||||||
call dbg_board_printchar
|
call dbg_board_printchar
|
||||||
pop ecx
|
pop ecx
|
||||||
%endm
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -60,10 +74,10 @@
|
|||||||
; DBG_BOARD_PRINTDWORD 0xdeadbeef
|
; DBG_BOARD_PRINTDWORD 0xdeadbeef
|
||||||
; DBG_BOARD_PRINTDWORD [somevariable]
|
; DBG_BOARD_PRINTDWORD [somevariable]
|
||||||
;********************************************************************
|
;********************************************************************
|
||||||
%macro DBG_BOARD_PRINTDWORD 1
|
macro DBG_BOARD_PRINTDWORD w1 {
|
||||||
push dword %1
|
push dword w1
|
||||||
call dbg_board_printdword
|
call dbg_board_printdword
|
||||||
%endm
|
}
|
||||||
|
|
||||||
|
|
||||||
;********************************************************************
|
;********************************************************************
|
||||||
@@ -73,13 +87,14 @@
|
|||||||
; examples DBG_BOARD_PRINTSTRINGLITERAL "foo",0
|
; examples DBG_BOARD_PRINTSTRINGLITERAL "foo",0
|
||||||
; DBG_BOARD_PRINTSTRINGLITERAL "bar",10,13,0
|
; DBG_BOARD_PRINTSTRINGLITERAL "bar",10,13,0
|
||||||
;********************************************************************
|
;********************************************************************
|
||||||
%macro DBG_BOARD_PRINTSTRINGLITERAL 1+
|
macro DBG_BOARD_PRINTSTRINGLITERAL p1 {
|
||||||
jmp %%bar
|
local .foo
|
||||||
%%foo db %1, 0 ; terminate string, just to be sure
|
jmp @f
|
||||||
%%bar:
|
.foo db p1, 0 ; terminate string, just to be sure
|
||||||
push dword %%foo
|
@@:
|
||||||
|
push dword .foo
|
||||||
call dbg_board_printstring
|
call dbg_board_printstring
|
||||||
%endm
|
}
|
||||||
|
|
||||||
|
|
||||||
;********************************************************************
|
;********************************************************************
|
||||||
@@ -89,22 +104,18 @@
|
|||||||
; DBG_BOARD_PRINTSTRING esi
|
; DBG_BOARD_PRINTSTRING esi
|
||||||
; DBG_BOARD_PRINTSTRING [ebx]
|
; DBG_BOARD_PRINTSTRING [ebx]
|
||||||
;********************************************************************
|
;********************************************************************
|
||||||
%macro DBG_BOARD_PRINTSTRING 1
|
macro DBG_BOARD_PRINTSTRING s1 {
|
||||||
push dword %1
|
push dword s1
|
||||||
call dbg_board_printstring
|
call dbg_board_printstring
|
||||||
%endm
|
}
|
||||||
|
|
||||||
|
|
||||||
; no input
|
; no input
|
||||||
dbg_board_printnewline:
|
dbg_board_printnewline:
|
||||||
pushad
|
pushad
|
||||||
pushfd
|
pushfd
|
||||||
mov eax,MOS_SC_DEBUGBOARD
|
mcall SF_BOARD,SSF_DEBUG_WRITE,10
|
||||||
mov ebx,1
|
mcall ,,13
|
||||||
mov ecx,10
|
|
||||||
int 0x40
|
|
||||||
mov ecx,13
|
|
||||||
int 0x40
|
|
||||||
popfd
|
popfd
|
||||||
popad
|
popad
|
||||||
ret
|
ret
|
||||||
@@ -114,10 +125,8 @@ dbg_board_printnewline:
|
|||||||
dbg_board_printchar:
|
dbg_board_printchar:
|
||||||
pushad
|
pushad
|
||||||
pushfd
|
pushfd
|
||||||
mov eax,MOS_SC_DEBUGBOARD
|
|
||||||
mov ebx,1
|
|
||||||
and ecx,0xff
|
and ecx,0xff
|
||||||
int 0x40
|
mcall SF_BOARD,SSF_DEBUG_WRITE
|
||||||
popfd
|
popfd
|
||||||
popad
|
popad
|
||||||
ret
|
ret
|
||||||
@@ -128,19 +137,16 @@ dbg_board_printdword:
|
|||||||
enter 0,0
|
enter 0,0
|
||||||
pushad
|
pushad
|
||||||
pushfd
|
pushfd
|
||||||
mov eax,MOS_SC_DEBUGBOARD
|
; print 0x prefix
|
||||||
mov ebx,1
|
mcall SF_BOARD,SSF_DEBUG_WRITE,'0'
|
||||||
mov ecx,'0' ; print 0x prefix
|
mcall ,,'x'
|
||||||
int 0x40
|
|
||||||
mov ecx,'x'
|
|
||||||
int 0x40
|
|
||||||
mov edx,[ebp + 8] ; get dword to print
|
mov edx,[ebp + 8] ; get dword to print
|
||||||
mov esi,8 ; iterate through all nibbles
|
mov esi,8 ; iterate through all nibbles
|
||||||
.loop:
|
.loop:
|
||||||
mov ecx,edx ; display hex digit
|
mov ecx,edx ; display hex digit
|
||||||
shr ecx,28
|
shr ecx,28
|
||||||
movzx ecx,byte [dbg_board_printdword_digits + ecx]
|
movzx ecx,byte [dbg_board_printdword_digits + ecx]
|
||||||
int 0x40
|
mcall
|
||||||
shl edx,4 ; next nibble
|
shl edx,4 ; next nibble
|
||||||
dec esi
|
dec esi
|
||||||
jnz .loop
|
jnz .loop
|
||||||
@@ -166,8 +172,7 @@ dbg_board_printstring:
|
|||||||
or al,al ; zero ?
|
or al,al ; zero ?
|
||||||
je .done ; yeah -> get outta here
|
je .done ; yeah -> get outta here
|
||||||
movzx ecx,al ; nope -> display character
|
movzx ecx,al ; nope -> display character
|
||||||
mov eax,MOS_SC_DEBUGBOARD
|
mcall SF_BOARD
|
||||||
int 0x40
|
|
||||||
jmp .loop
|
jmp .loop
|
||||||
.done:
|
.done:
|
||||||
popfd
|
popfd
|
||||||
@@ -175,26 +180,5 @@ dbg_board_printstring:
|
|||||||
leave
|
leave
|
||||||
ret 4
|
ret 4
|
||||||
|
|
||||||
%else
|
end if
|
||||||
|
|
||||||
|
|
||||||
%macro DBG_BOARD_PRINTNEWLINE 0
|
|
||||||
%endm
|
|
||||||
|
|
||||||
%macro DBG_BOARD_PRINTCHAR 1
|
|
||||||
%endm
|
|
||||||
|
|
||||||
%macro DBG_BOARD_PRINTDWORD 1
|
|
||||||
%endm
|
|
||||||
|
|
||||||
%macro DBG_BOARD_PRINTSTRINGLITERAL 1+
|
|
||||||
%endm
|
|
||||||
|
|
||||||
%macro DBG_BOARD_PRINTSTRING 1
|
|
||||||
%endm
|
|
||||||
|
|
||||||
%endif
|
|
||||||
|
|
||||||
|
|
||||||
%endif
|
|
||||||
|
|
@@ -17,8 +17,6 @@
|
|||||||
; along with this program; if not, write to the Free Software
|
; along with this program; if not, write to the Free Software
|
||||||
; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
;
|
;
|
||||||
%ifndef _DRAW_INC
|
|
||||||
%define _DRAW_INC
|
|
||||||
|
|
||||||
|
|
||||||
TMR1_FACTOR dd 0.45
|
TMR1_FACTOR dd 0.45
|
||||||
@@ -50,45 +48,36 @@ monthNames:
|
|||||||
; output : nothing
|
; output : nothing
|
||||||
; destroys : nothing
|
; destroys : nothing
|
||||||
;********************************************************************
|
;********************************************************************
|
||||||
drawClock:
|
proc drawClock
|
||||||
%push drawClock_context
|
locals
|
||||||
%stacksize flat
|
i dd ?
|
||||||
%assign %$localsize 0
|
TMR1X dd ?
|
||||||
|
TMR1Y dd ?
|
||||||
%local i:dword, \
|
TMR2X dd ?
|
||||||
TMR1X:dword, \
|
TMR2Y dd ?
|
||||||
TMR1Y:dword, \
|
SECRX dd ?
|
||||||
TMR2X:dword, \
|
SECRY dd ?
|
||||||
TMR2Y:dword, \
|
MINRX dd ?
|
||||||
SECRX:dword, \
|
MINRY dd ?
|
||||||
SECRY:dword, \
|
HOURRX dd ?
|
||||||
MINRX:dword, \
|
HOURRY dd ?
|
||||||
MINRY:dword, \
|
workwidth dd ?
|
||||||
HOURRX:dword, \
|
workheight dd ?
|
||||||
HOURRY:dword, \
|
foo dd ?
|
||||||
workwidth:dword, \
|
endl
|
||||||
workheight:dword, \
|
|
||||||
foo:dword
|
|
||||||
|
|
||||||
enter %$localsize,0
|
|
||||||
pushad
|
pushad
|
||||||
pushfd
|
pushfd
|
||||||
|
|
||||||
; get window dimensions
|
; get window dimensions
|
||||||
mov eax,MOS_SC_GETPROCESSINFO
|
mcall SF_THREAD_INFO,procInfo,-1
|
||||||
mov ebx,procInfo
|
|
||||||
mov ecx,-1
|
|
||||||
int 0x40
|
|
||||||
|
|
||||||
; calculate work area size (width/height = ecx/edx)
|
; calculate work area size (width/height = ecx/edx)
|
||||||
; if the work area is too small (maybe the window is shaded)
|
; if the work area is too small (maybe the window is shaded)
|
||||||
; we don't draw anything.
|
; we don't draw anything.
|
||||||
mov eax,MOS_SC_WINDOWPROPERTIES
|
mcall SF_STYLE_SETTINGS,SSF_GET_SKIN_HEIGHT ; get skin height (eax)
|
||||||
mov ebx,4 ; get skin height (eax)
|
mov ecx,[procInfo.box.width]
|
||||||
int 0x40
|
|
||||||
mov ecx,[procInfo + MOS_PROCESSINFO.wndWidth]
|
|
||||||
sub ecx,MOS_WND_SKIN_BORDER_LEFT+MOS_WND_SKIN_BORDER_RIGHT
|
sub ecx,MOS_WND_SKIN_BORDER_LEFT+MOS_WND_SKIN_BORDER_RIGHT
|
||||||
mov edx,[procInfo + MOS_PROCESSINFO.wndHeight]
|
mov edx,[procInfo.box.height]
|
||||||
sub edx,eax
|
sub edx,eax
|
||||||
sub edx,MOS_WND_SKIN_BORDER_BOTTOM
|
sub edx,MOS_WND_SKIN_BORDER_BOTTOM
|
||||||
cmp ecx,0 ; width too small ?
|
cmp ecx,0 ; width too small ?
|
||||||
@@ -102,9 +91,9 @@ drawClock:
|
|||||||
mov [workheight],edx
|
mov [workheight],edx
|
||||||
|
|
||||||
; calculate center of clock (x/y = esi/edi)
|
; calculate center of clock (x/y = esi/edi)
|
||||||
mov esi,[procInfo + MOS_PROCESSINFO.wndWidth]
|
mov esi,[procInfo.box.width]
|
||||||
shr esi,1
|
shr esi,1
|
||||||
mov edi,[procInfo + MOS_PROCESSINFO.wndHeight]
|
mov edi,[procInfo.box.height]
|
||||||
sub edi,MOS_WND_SKIN_BORDER_BOTTOM
|
sub edi,MOS_WND_SKIN_BORDER_BOTTOM
|
||||||
sub edi,eax
|
sub edi,eax
|
||||||
shr edi,1
|
shr edi,1
|
||||||
@@ -119,9 +108,8 @@ drawClock:
|
|||||||
shl ecx,16 ; (=skin height)
|
shl ecx,16 ; (=skin height)
|
||||||
or ecx,edx ; height
|
or ecx,edx ; height
|
||||||
inc ecx
|
inc ecx
|
||||||
mov edx,[wndColors + MOS_WNDCOLORS.work]
|
mov edx,[wndColors.work]
|
||||||
mov eax,MOS_SC_DRAWBAR
|
mcall SF_DRAW_RECT
|
||||||
int 0x40
|
|
||||||
popad
|
popad
|
||||||
|
|
||||||
; calculate second hand radii
|
; calculate second hand radii
|
||||||
@@ -163,8 +151,7 @@ drawClock:
|
|||||||
fstp dword [TMR2Y]
|
fstp dword [TMR2Y]
|
||||||
|
|
||||||
; get system clock (edx)
|
; get system clock (edx)
|
||||||
mov eax,MOS_SC_GETSYSCLOCK
|
mcall SF_GET_SYS_TIME
|
||||||
int 0x40
|
|
||||||
mov edx,eax
|
mov edx,eax
|
||||||
|
|
||||||
; draw second hand
|
; draw second hand
|
||||||
@@ -173,21 +160,14 @@ drawClock:
|
|||||||
shr eax,16
|
shr eax,16
|
||||||
call bcdbin
|
call bcdbin
|
||||||
mov ecx,eax ; save seconds for later
|
mov ecx,eax ; save seconds for later
|
||||||
push ecx
|
; 2*pi/60
|
||||||
push eax
|
stdcall getHandCoords,edi,esi,[SECRY],[SECRX],0.104719755,eax,ecx
|
||||||
fpush32 0.104719755 ; 2*pi/60
|
|
||||||
push dword [SECRX]
|
|
||||||
push dword [SECRY]
|
|
||||||
push esi
|
|
||||||
push edi
|
|
||||||
call getHandCoords
|
|
||||||
mov eax,MOS_SC_DRAWLINE
|
|
||||||
shl ebx,16
|
shl ebx,16
|
||||||
or ebx,esi
|
or ebx,esi
|
||||||
shl ecx,16
|
shl ecx,16
|
||||||
or ecx,edi
|
or ecx,edi
|
||||||
mov edx,[wndColors + MOS_WNDCOLORS.workText]
|
mov edx,[wndColors.work_text]
|
||||||
int 0x40
|
mcall SF_DRAW_LINE
|
||||||
pop ecx
|
pop ecx
|
||||||
pop edx
|
pop edx
|
||||||
|
|
||||||
@@ -200,21 +180,14 @@ drawClock:
|
|||||||
mul edx
|
mul edx
|
||||||
add eax,ecx
|
add eax,ecx
|
||||||
mov ecx,eax ; save for later
|
mov ecx,eax ; save for later
|
||||||
push ecx
|
; 2*pi/60/60
|
||||||
push eax
|
stdcall getHandCoords,edi,esi,[MINRY],[MINRX],0.001745329,eax,ecx
|
||||||
fpush32 0.001745329 ; 2*pi/60/60
|
|
||||||
push dword [MINRX]
|
|
||||||
push dword [MINRY]
|
|
||||||
push esi
|
|
||||||
push edi
|
|
||||||
call getHandCoords
|
|
||||||
mov eax,MOS_SC_DRAWLINE
|
|
||||||
shl ebx,16
|
shl ebx,16
|
||||||
or ebx,esi
|
or ebx,esi
|
||||||
shl ecx,16
|
shl ecx,16
|
||||||
or ecx,edi
|
or ecx,edi
|
||||||
mov edx,[wndColors + MOS_WNDCOLORS.workText]
|
mov edx,[wndColors.work_text]
|
||||||
int 0x40
|
mcall SF_DRAW_LINE
|
||||||
pop ecx
|
pop ecx
|
||||||
pop edx
|
pop edx
|
||||||
|
|
||||||
@@ -229,55 +202,39 @@ drawClock:
|
|||||||
mov edx,60*60
|
mov edx,60*60
|
||||||
mul edx
|
mul edx
|
||||||
add eax,ecx
|
add eax,ecx
|
||||||
push eax
|
; 2*pi/60/60/12
|
||||||
fpush32 0.000145444 ; 2*pi/60/60/12
|
stdcall getHandCoords,edi,esi,[HOURRY],[HOURRX],0.000145444,eax
|
||||||
push dword [HOURRX]
|
|
||||||
push dword [HOURRY]
|
|
||||||
push esi
|
|
||||||
push edi
|
|
||||||
call getHandCoords
|
|
||||||
mov eax,MOS_SC_DRAWLINE
|
|
||||||
shl ebx,16
|
shl ebx,16
|
||||||
or ebx,esi
|
or ebx,esi
|
||||||
shl ecx,16
|
shl ecx,16
|
||||||
or ecx,edi
|
or ecx,edi
|
||||||
mov edx,[wndColors + MOS_WNDCOLORS.workText]
|
mov edx,[wndColors.work_text]
|
||||||
int 0x40
|
mcall SF_DRAW_LINE
|
||||||
pop edx
|
pop edx
|
||||||
|
|
||||||
; draw tick marks
|
; draw tick marks
|
||||||
mov dword [i],11 ; draw 12 marks
|
mov dword [i],11 ; draw 12 marks
|
||||||
.drawtickmarks:
|
.drawtickmarks:
|
||||||
push dword [i] ; calculate start point
|
; calculate start point
|
||||||
fpush32 0.523598776 ; 2*pi/12
|
; 2*pi/12
|
||||||
push dword [TMR1X]
|
stdcall getHandCoords,edi,esi,[TMR1Y],[TMR1X],0.523598776,[i]
|
||||||
push dword [TMR1Y]
|
|
||||||
push esi
|
|
||||||
push edi
|
|
||||||
call getHandCoords
|
|
||||||
mov eax,ebx ; save in eax and edx
|
mov eax,ebx ; save in eax and edx
|
||||||
mov edx,ecx
|
mov edx,ecx
|
||||||
push dword [i]
|
; 2*pi/12
|
||||||
fpush32 0.523598776 ; 2*pi/12
|
stdcall getHandCoords,edi,esi,[TMR2Y],[TMR2X],0.523598776,[i]
|
||||||
push dword [TMR2X]
|
|
||||||
push dword [TMR2Y]
|
|
||||||
push esi
|
|
||||||
push edi
|
|
||||||
call getHandCoords
|
|
||||||
shl eax,16
|
shl eax,16
|
||||||
shl edx,16
|
shl edx,16
|
||||||
or ebx,eax ; ebx = x start and end
|
or ebx,eax ; ebx = x start and end
|
||||||
or ecx,edx ; ecx = y start and end
|
or ecx,edx ; ecx = y start and end
|
||||||
mov edx,[wndColors + MOS_WNDCOLORS.workText]
|
mov edx,[wndColors.work_text]
|
||||||
mov eax,MOS_SC_DRAWLINE
|
mcall SF_DRAW_LINE
|
||||||
int 0x40
|
|
||||||
dec dword [i]
|
dec dword [i]
|
||||||
jns .drawtickmarks
|
jns .drawtickmarks
|
||||||
|
|
||||||
%define DATE_WIDTH 48
|
DATE_WIDTH =48
|
||||||
|
|
||||||
; calculate text start position
|
; calculate text start position
|
||||||
mov eax,[procInfo+MOS_PROCESSINFO.wndWidth]
|
mov eax,[procInfo.box.width]
|
||||||
sub eax,DATE_WIDTH ; x = (wndwidth-textwidth)/2
|
sub eax,DATE_WIDTH ; x = (wndwidth-textwidth)/2
|
||||||
shr eax,1 ; eax = x
|
shr eax,1 ; eax = x
|
||||||
fild dword [workheight] ; y = DATE_FACTOR*workheight...
|
fild dword [workheight] ; y = DATE_FACTOR*workheight...
|
||||||
@@ -292,7 +249,7 @@ drawClock:
|
|||||||
jb .goodbye
|
jb .goodbye
|
||||||
mov ecx,ebx ; text too high ?
|
mov ecx,ebx ; text too high ?
|
||||||
add ecx,10-1
|
add ecx,10-1
|
||||||
mov edx,[procInfo+MOS_PROCESSINFO.wndHeight]
|
mov edx,[procInfo.box.height]
|
||||||
sub edx,MOS_WND_SKIN_BORDER_BOTTOM
|
sub edx,MOS_WND_SKIN_BORDER_BOTTOM
|
||||||
cmp ecx,edx
|
cmp ecx,edx
|
||||||
jnae .yousuck
|
jnae .yousuck
|
||||||
@@ -306,8 +263,7 @@ drawClock:
|
|||||||
or ebx,eax
|
or ebx,eax
|
||||||
|
|
||||||
; get date (edi)
|
; get date (edi)
|
||||||
mov eax,MOS_SC_GETDATE
|
mcall SF_GET_SYS_DATE
|
||||||
int 0x40
|
|
||||||
mov edi,eax
|
mov edi,eax
|
||||||
|
|
||||||
; display month
|
; display month
|
||||||
@@ -315,44 +271,41 @@ drawClock:
|
|||||||
shr eax,8
|
shr eax,8
|
||||||
call bcdbin
|
call bcdbin
|
||||||
; ebx contains already position
|
; ebx contains already position
|
||||||
mov ecx,[wndColors+MOS_WNDCOLORS.workText]
|
mov ecx,[wndColors.work_text]
|
||||||
lea edx,[monthNames-3+eax*2+eax]; -3 because eax = 1..12 =]
|
lea edx,[monthNames-3+eax*2+eax]; -3 because eax = 1..12 =]
|
||||||
mov esi,3 ; text length
|
mov esi,3 ; text length
|
||||||
mov eax,MOS_SC_WRITETEXT
|
mcall SF_DRAW_TEXT
|
||||||
int 0x40
|
|
||||||
|
|
||||||
; display date
|
; display date
|
||||||
add ebx,MOS_DWORD(3*6+3,0)
|
add ebx,(3*6+3) shl 16
|
||||||
mov eax,edi ; get date
|
mov eax,edi ; get date
|
||||||
shr eax,16
|
shr eax,16
|
||||||
call bcdbin
|
call bcdbin
|
||||||
mov edx,ebx ; position must be in edx
|
mov edx,ebx ; position must be in edx
|
||||||
mov ebx,0x00020000 ; number, display two digits
|
mov ebx,0x00020000 ; number, display two digits
|
||||||
mov ecx,eax ; number to display
|
mov ecx,eax ; number to display
|
||||||
mov esi,[wndColors+MOS_WNDCOLORS.workText]
|
mov esi,[wndColors.work_text]
|
||||||
mov eax,MOS_SC_WRITENUMBER
|
mcall SF_DRAW_NUMBER
|
||||||
int 0x40
|
|
||||||
|
|
||||||
; display year. the way we avoid the y2k bug is even
|
; display year. the way we avoid the y2k bug is even
|
||||||
; simpler, yet much better than in the last version:
|
; simpler, yet much better than in the last version:
|
||||||
; now we simply display the last two digits and let the
|
; now we simply display the last two digits and let the
|
||||||
; user decide wether it's the year 1903 or 2003 =]
|
; user decide wether it's the year 1903 or 2003 =]
|
||||||
add edx,MOS_DWORD(2*6+3,0)
|
add edx,(2*6+3) shl 16
|
||||||
mov eax,edi ; get year
|
mov eax,edi ; get year
|
||||||
call bcdbin
|
call bcdbin
|
||||||
mov ebx,0x00020000 ; number, display two digits
|
mov ebx,0x00020000 ; number, display two digits
|
||||||
mov ecx,eax ; number to display
|
mov ecx,eax ; number to display
|
||||||
; edx contains already position
|
; edx contains already position
|
||||||
mov esi,[wndColors+MOS_WNDCOLORS.workText]
|
mov esi,[wndColors.work_text]
|
||||||
mov eax,MOS_SC_WRITENUMBER
|
mcall SF_DRAW_NUMBER
|
||||||
int 0x40
|
|
||||||
|
|
||||||
.byebye:
|
.byebye:
|
||||||
popfd
|
popfd
|
||||||
popad
|
popad
|
||||||
leave
|
;leave
|
||||||
ret
|
ret
|
||||||
%pop
|
endp
|
||||||
|
|
||||||
|
|
||||||
;**********************************************************
|
;**********************************************************
|
||||||
@@ -397,36 +350,26 @@ bcdbin:
|
|||||||
; destroys:
|
; destroys:
|
||||||
; nothing
|
; nothing
|
||||||
;********************************************************************
|
;********************************************************************
|
||||||
getHandCoords:
|
proc getHandCoords CENTERY:dword, CENTERX:dword, RADIUSY:dword, RADIUSX:dword, DEG2RAD:dword, ANGLE:dword
|
||||||
|
|
||||||
ANGLE equ 28
|
|
||||||
DEG2RAD equ 24
|
|
||||||
RADIUSX equ 20
|
|
||||||
RADIUSY equ 16
|
|
||||||
CENTERX equ 12
|
|
||||||
CENTERY equ 8
|
|
||||||
|
|
||||||
enter 0,0
|
|
||||||
pushfd
|
pushfd
|
||||||
|
|
||||||
fild dword [ebp+ANGLE] ; get angle
|
fild dword [ANGLE] ; get angle
|
||||||
fmul dword [ebp+DEG2RAD] ; convert to radians
|
fmul dword [DEG2RAD] ; convert to radians
|
||||||
fsincos
|
fsincos
|
||||||
fmul dword [ebp+RADIUSY] ; -y * radius + clockcy
|
fmul dword [RADIUSY] ; -y * radius + clockcy
|
||||||
fchs
|
fchs
|
||||||
fiadd dword [ebp+CENTERY]
|
fiadd dword [CENTERY]
|
||||||
fistp dword [ebp+CENTERY]
|
fistp dword [CENTERY]
|
||||||
fmul dword [ebp+RADIUSX] ; x * radius + clockcx
|
fmul dword [RADIUSX] ; x * radius + clockcx
|
||||||
fiadd dword [ebp+CENTERX]
|
fiadd dword [CENTERX]
|
||||||
fistp dword [ebp+CENTERX]
|
fistp dword [CENTERX]
|
||||||
|
|
||||||
mov ebx,[ebp+CENTERX]
|
mov ebx,[CENTERX]
|
||||||
mov ecx,[ebp+CENTERY]
|
mov ecx,[CENTERY]
|
||||||
|
|
||||||
popfd
|
popfd
|
||||||
leave
|
;leave
|
||||||
ret 4*6
|
ret
|
||||||
|
endp
|
||||||
|
|
||||||
|
|
||||||
%endif
|
|
||||||
|
|
@@ -1,5 +1,3 @@
|
|||||||
; some strtok-like function
|
|
||||||
;
|
|
||||||
; Copyright (c) 2003 Thomas Mathys
|
; Copyright (c) 2003 Thomas Mathys
|
||||||
; killer@vantage.ch
|
; killer@vantage.ch
|
||||||
;
|
;
|
||||||
@@ -17,8 +15,94 @@
|
|||||||
; along with this program; if not, write to the Free Software
|
; along with this program; if not, write to the Free Software
|
||||||
; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
;
|
;
|
||||||
%ifndef _STRTOK_INC
|
|
||||||
%define _STRTOK_INC
|
|
||||||
|
;********************************************************************
|
||||||
|
; returns the length of an asciiz string
|
||||||
|
; input : esi = pointer to string
|
||||||
|
; output : eax = string length
|
||||||
|
; destroys : nothing
|
||||||
|
;********************************************************************
|
||||||
|
strlen:
|
||||||
|
push ecx edi
|
||||||
|
pushfd
|
||||||
|
cld ; !
|
||||||
|
mov ecx,-1
|
||||||
|
mov edi,esi ; find terminating zero
|
||||||
|
xor al,al
|
||||||
|
repne scasb
|
||||||
|
mov eax,edi ; calculate string length
|
||||||
|
sub eax,esi
|
||||||
|
dec eax
|
||||||
|
popfd
|
||||||
|
pop edi ecx
|
||||||
|
ret
|
||||||
|
|
||||||
|
|
||||||
|
;********************************************************************
|
||||||
|
; converts an asciiz string into an unsigned doubleword.
|
||||||
|
; (base 10 is assumed)
|
||||||
|
;
|
||||||
|
; - first, leading whitespaces are skipped
|
||||||
|
; - then the function converts the string, until it
|
||||||
|
; finds the terminating zero, another character it
|
||||||
|
; cannot convert or the number becomes too large.
|
||||||
|
;
|
||||||
|
; input : esi = pointer to string
|
||||||
|
; output : eax = unsigned doubleword
|
||||||
|
; the function tries to convert as
|
||||||
|
; many digits as possible, before it
|
||||||
|
; stops. if the value of the dword
|
||||||
|
; becomes too large, 0xffffffff is
|
||||||
|
; returned.
|
||||||
|
; destroys : nothing
|
||||||
|
;********************************************************************
|
||||||
|
string2dword:
|
||||||
|
push ebx ecx edx esi
|
||||||
|
pushfd
|
||||||
|
|
||||||
|
xor ebx,ebx ; ebx : dword
|
||||||
|
|
||||||
|
; skip leading whitespaces
|
||||||
|
.skipspaces:
|
||||||
|
lodsb
|
||||||
|
cmp al,32 ; space
|
||||||
|
je .skipspaces
|
||||||
|
cmp al,12 ; ff
|
||||||
|
je .skipspaces
|
||||||
|
cmp al,10 ; lf
|
||||||
|
je .skipspaces
|
||||||
|
cmp al,13 ; cr
|
||||||
|
je .skipspaces
|
||||||
|
cmp al,9 ; ht
|
||||||
|
je .skipspaces
|
||||||
|
cmp al,11 ; vt
|
||||||
|
je .skipspaces
|
||||||
|
|
||||||
|
; convert string
|
||||||
|
dec esi ; esi -> 1st non-whitespace
|
||||||
|
.convert:
|
||||||
|
xor eax,eax ; get character
|
||||||
|
lodsb
|
||||||
|
sub al,'0' ; convert to digit
|
||||||
|
cmp al,9 ; is digit in range [0,9] ?
|
||||||
|
ja .done ; nope -> stop conversion
|
||||||
|
mov ecx,eax ; save new digit
|
||||||
|
mov eax,10 ; dword = dword * 10
|
||||||
|
mul ebx
|
||||||
|
jc .overflow
|
||||||
|
add eax,ecx ; + new digit
|
||||||
|
jc .overflow
|
||||||
|
mov ebx,eax
|
||||||
|
jmp .convert
|
||||||
|
|
||||||
|
.overflow:
|
||||||
|
mov ebx,0xffffffff
|
||||||
|
.done:
|
||||||
|
mov eax,ebx
|
||||||
|
popfd
|
||||||
|
pop esi edx ecx ebx
|
||||||
|
ret
|
||||||
|
|
||||||
|
|
||||||
;********************************************************************
|
;********************************************************************
|
||||||
@@ -121,5 +205,3 @@ strtok:
|
|||||||
ret
|
ret
|
||||||
.adx dd 0
|
.adx dd 0
|
||||||
|
|
||||||
%endif
|
|
||||||
|
|
@@ -1,2 +0,0 @@
|
|||||||
if tup.getconfig("NO_NASM") ~= "" then return end
|
|
||||||
tup.rule("aclock.asm", "nasm -f bin -o %o %f " .. tup.getconfig("KPACK_CMD"), "aclock")
|
|
@@ -1,3 +0,0 @@
|
|||||||
@rem nasm -t -f bin -o aclock -l aclock.lst aclock.asm -DDEBUG
|
|
||||||
nasmw -t -f bin -o aclock aclock.asm
|
|
||||||
@pause
|
|
@@ -1,334 +0,0 @@
|
|||||||
; mos.inc 0.03
|
|
||||||
; Copyright (c) 2002 Thomas Mathys
|
|
||||||
; killer@vantage.ch
|
|
||||||
;
|
|
||||||
; 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
||||||
;
|
|
||||||
%ifndef _MOS_INC
|
|
||||||
%define _MOS_INC
|
|
||||||
|
|
||||||
|
|
||||||
;**********************************************************
|
|
||||||
; generates a menuetos 01 header
|
|
||||||
; takes 6 parameters:
|
|
||||||
;
|
|
||||||
; MOS_HEADER01 start, end, appmem, esp, i_param, i_icon
|
|
||||||
;**********************************************************
|
|
||||||
|
|
||||||
%macro MOS_HEADER01 6
|
|
||||||
org 0x0
|
|
||||||
db 'MENUET01' ; 8 byte id
|
|
||||||
dd 0x01 ; header version
|
|
||||||
dd %1 ; start of code
|
|
||||||
dd %2 ; image size
|
|
||||||
dd %3 ; application memory
|
|
||||||
dd %4 ; esp
|
|
||||||
dd %5 ; i_param
|
|
||||||
dd %6 ; i_icon
|
|
||||||
%endmacro
|
|
||||||
|
|
||||||
|
|
||||||
;**********************************************************
|
|
||||||
; MOS_DWORD
|
|
||||||
; packs 2 words into a double word
|
|
||||||
;**********************************************************
|
|
||||||
|
|
||||||
%define MOS_DWORD(hi,lo) ((((hi) & 0xffff) << 16) + ((lo) & 0xffff))
|
|
||||||
|
|
||||||
|
|
||||||
;**********************************************************
|
|
||||||
; MOS_RGB
|
|
||||||
; creates a menuet os compatible color (0x00RRGGBB)
|
|
||||||
;**********************************************************
|
|
||||||
|
|
||||||
%define MOS_RGB(r,g,b) ((((r) & 255) << 16) + (((g) & 255) << 8) + ((b) & 255))
|
|
||||||
|
|
||||||
|
|
||||||
;**********************************************************
|
|
||||||
; window stuff
|
|
||||||
;**********************************************************
|
|
||||||
|
|
||||||
; default window colors
|
|
||||||
struc MOS_WNDCOLORS
|
|
||||||
.frame: resd 1
|
|
||||||
.grab: resd 1
|
|
||||||
.grabButton: resd 1
|
|
||||||
.grabButtonText: resd 1
|
|
||||||
.grabText: resd 1
|
|
||||||
.work: resd 1
|
|
||||||
.workButton: resd 1
|
|
||||||
.workButtonText: resd 1
|
|
||||||
.workText: resd 1
|
|
||||||
.workGraphics: resd 1
|
|
||||||
endstruc
|
|
||||||
|
|
||||||
; skinned window borders
|
|
||||||
MOS_WND_SKIN_BORDER_LEFT equ 5
|
|
||||||
MOS_WND_SKIN_BORDER_RIGHT equ 5
|
|
||||||
MOS_WND_SKIN_BORDER_BOTTOM equ 5
|
|
||||||
|
|
||||||
|
|
||||||
;**********************************************************
|
|
||||||
; process info structure
|
|
||||||
;**********************************************************
|
|
||||||
|
|
||||||
struc MOS_PROCESSINFO
|
|
||||||
.CPUUsage: resd 1
|
|
||||||
.windowStackPos: resw 1
|
|
||||||
.windowStackVal: resw 1
|
|
||||||
.reserved1: resw 1
|
|
||||||
.processName: resb 12
|
|
||||||
.memStart: resd 1
|
|
||||||
.memUsed: resd 1
|
|
||||||
.pid: resd 1
|
|
||||||
.wndXPos resd 1
|
|
||||||
.wndYPos resd 1
|
|
||||||
.wndWidth resd 1
|
|
||||||
.wndHeight resd 1
|
|
||||||
.reserved2: resb (1024 - 50)
|
|
||||||
endstruc
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
;**********************************************************
|
|
||||||
; system call numbers
|
|
||||||
;**********************************************************
|
|
||||||
|
|
||||||
MOS_SC_EXIT equ -1
|
|
||||||
MOS_SC_DEFINEWINDOW equ 0
|
|
||||||
MOS_SC_PUTPIXEL equ 1
|
|
||||||
MOS_SC_GETKEY equ 2
|
|
||||||
MOS_SC_GETSYSCLOCK equ 3
|
|
||||||
MOS_SC_WRITETEXT equ 4
|
|
||||||
MOS_SC_DELAY equ 5
|
|
||||||
MOS_SC_OPENFILEFLOPPY equ 6 ; obsolete
|
|
||||||
MOS_SC_PUTIMAGE equ 7
|
|
||||||
MOS_SC_DEFINEBUTTON equ 8
|
|
||||||
MOS_SC_GETPROCESSINFO equ 9
|
|
||||||
MOS_SC_WAITEVENT equ 10
|
|
||||||
MOS_SC_CHECKEVENT equ 11
|
|
||||||
MOS_SC_REDRAWSTATUS equ 12
|
|
||||||
MOS_SC_DRAWBAR equ 13
|
|
||||||
MOS_SC_GETSCREENMAX equ 14
|
|
||||||
MOS_SC_SETBACKGROUND equ 15
|
|
||||||
MOS_SC_GETPRESSEDBUTTON equ 17
|
|
||||||
MOS_SC_SYSTEMSERVICE equ 18
|
|
||||||
MOS_SC_STARTPROGRAM equ 19 ; obsolete
|
|
||||||
MOS_SC_MIDIINTERFACE equ 20
|
|
||||||
MOS_SC_DEVICESETUP equ 21
|
|
||||||
MOS_SC_WAITEVENTTIMEOUT equ 23
|
|
||||||
MOS_SC_CDAUDIO equ 24
|
|
||||||
MOS_SC_SB16MIXER1 equ 25
|
|
||||||
MOS_SC_GETDEVICESETUP equ 26
|
|
||||||
MOS_SC_WSS equ 27
|
|
||||||
MOS_SC_SB16MIXER2 equ 28
|
|
||||||
MOS_SC_GETDATE equ 29
|
|
||||||
MOS_SC_READHD equ 30 ; obsolete
|
|
||||||
MOS_SC_STARTPROGRAMHD equ 31 ; obsolete
|
|
||||||
MOS_SC_DELETEFILEFLOPPY equ 32
|
|
||||||
MOS_SC_SAVEFILERAMDISK equ 33 ; obsolete
|
|
||||||
MOS_SC_READDIRRAMDISK equ 34 ; obsolete
|
|
||||||
MOS_SC_GETSCREENPIXEL equ 35
|
|
||||||
MOS_SC_GETMOUSEPOSITION equ 37
|
|
||||||
MOS_SC_DRAWLINE equ 38
|
|
||||||
MOS_SC_GETBACKGROUND equ 39
|
|
||||||
MOS_SC_SETEVENTMASK equ 40
|
|
||||||
MOS_SC_GETIRQOWNER equ 41
|
|
||||||
MOS_SC_GETDATAREADBYIRQ equ 42
|
|
||||||
MOS_SC_SENDDATATODEVICE equ 43
|
|
||||||
MOS_SC_PROGRAMIRQS equ 44
|
|
||||||
MOS_SC_RESERVEFREEIRQ equ 45
|
|
||||||
MOS_SC_RESERVEFREEPORTS equ 46
|
|
||||||
MOS_SC_WRITENUMBER equ 47
|
|
||||||
MOS_SC_WINDOWPROPERTIES equ 48
|
|
||||||
MOS_SC_SHAPEDWINDOWS equ 50
|
|
||||||
MOS_SC_CREATETHREAD equ 51
|
|
||||||
MOS_SC_STACKDRIVERSTATE equ 52
|
|
||||||
MOS_SC_SOCKETINTERFACE equ 53
|
|
||||||
MOS_SC_SOUNDINTERFACE equ 55
|
|
||||||
MOS_SC_WRITEFILEHD equ 56 ; obsolete
|
|
||||||
MOS_SC_DELETEFILEHD equ 57
|
|
||||||
MOS_SC_SYSTREEACCESS equ 58
|
|
||||||
MOS_SC_SYSCALLTRACE equ 59
|
|
||||||
MOS_SC_IPC equ 60
|
|
||||||
MOS_SC_DIRECTGRAPHICS equ 61
|
|
||||||
MOS_SC_PCI equ 62
|
|
||||||
MOS_SC_DEBUGBOARD equ 63
|
|
||||||
|
|
||||||
|
|
||||||
;**********************************************************
|
|
||||||
; event numbers
|
|
||||||
;**********************************************************
|
|
||||||
|
|
||||||
MOS_EVT_NONE equ 0
|
|
||||||
MOS_EVT_REDRAW equ 1
|
|
||||||
MOS_EVT_KEY equ 2
|
|
||||||
MOS_EVT_BUTTON equ 3
|
|
||||||
|
|
||||||
|
|
||||||
;**********************************************************
|
|
||||||
; event bits
|
|
||||||
;**********************************************************
|
|
||||||
|
|
||||||
MOS_EVTBIT_REDRAW equ (1 << 0)
|
|
||||||
MOS_EVTBIT_KEY equ (1 << 1)
|
|
||||||
MOS_EVTBIT_BUTTON equ (1 << 2)
|
|
||||||
MOS_EVTBIT_ENDREQUEST equ (1 << 3)
|
|
||||||
MOS_EVTBIT_BGDRAW equ (1 << 4)
|
|
||||||
MOS_EVTBIT_MOUSECHANGE equ (1 << 5)
|
|
||||||
MOS_EVTBIT_IPCEVENT equ (1 << 6)
|
|
||||||
MOS_EVTBIT_IRQ0 equ (1 << 16)
|
|
||||||
MOS_EVTBIT_IRQ1 equ (1 << 17)
|
|
||||||
MOS_EVTBIT_IRQ2 equ (1 << 18)
|
|
||||||
MOS_EVTBIT_IRQ3 equ (1 << 19)
|
|
||||||
MOS_EVTBIT_IRQ4 equ (1 << 20)
|
|
||||||
MOS_EVTBIT_IRQ5 equ (1 << 21)
|
|
||||||
MOS_EVTBIT_IRQ6 equ (1 << 22)
|
|
||||||
MOS_EVTBIT_IRQ7 equ (1 << 23)
|
|
||||||
MOS_EVTBIT_IRQ8 equ (1 << 24)
|
|
||||||
MOS_EVTBIT_IRQ9 equ (1 << 25)
|
|
||||||
MOS_EVTBIT_IRQ10 equ (1 << 26)
|
|
||||||
MOS_EVTBIT_IRQ11 equ (1 << 27)
|
|
||||||
MOS_EVTBIT_IRQ12 equ (1 << 28)
|
|
||||||
MOS_EVTBIT_IRQ13 equ (1 << 29)
|
|
||||||
MOS_EVTBIT_IRQ14 equ (1 << 30)
|
|
||||||
MOS_EVTBIT_IRQ15 equ (1 << 31)
|
|
||||||
|
|
||||||
|
|
||||||
;**********************************************************
|
|
||||||
; exit application (syscall -1)
|
|
||||||
;**********************************************************
|
|
||||||
|
|
||||||
; exit application
|
|
||||||
%macro MOS_EXIT 0
|
|
||||||
mov eax,MOS_SC_EXIT
|
|
||||||
int 0x40
|
|
||||||
%endmacro
|
|
||||||
|
|
||||||
; exit application, smaller version
|
|
||||||
%macro MOS_EXIT_S 0
|
|
||||||
xor eax,eax
|
|
||||||
dec eax
|
|
||||||
int 0x40
|
|
||||||
%endmacro
|
|
||||||
|
|
||||||
|
|
||||||
;**********************************************************
|
|
||||||
; wait event stuff
|
|
||||||
; (MOS_SC_WAITEVENT, syscall 10)
|
|
||||||
;**********************************************************
|
|
||||||
|
|
||||||
; wait for event
|
|
||||||
; destroys : nothing
|
|
||||||
; returns : eax = event type
|
|
||||||
%macro MOS_WAITEVENT 0
|
|
||||||
mov eax,MOS_SC_WAITEVENT
|
|
||||||
int 0x40
|
|
||||||
%endmacro
|
|
||||||
|
|
||||||
; wait for event, smaller version
|
|
||||||
; destroys : flags
|
|
||||||
; returns : eax = event type
|
|
||||||
%macro MOS_WAITEVENT_S 0
|
|
||||||
xor eax,eax
|
|
||||||
mov al,MOS_SC_WAITEVENT
|
|
||||||
int 0x40
|
|
||||||
%endmacro
|
|
||||||
|
|
||||||
|
|
||||||
;**********************************************************
|
|
||||||
; window redraw status stuff
|
|
||||||
; (MOS_SC_REDRAWSTATUS, syscall 12)
|
|
||||||
;**********************************************************
|
|
||||||
|
|
||||||
MOS_RS_STARTREDRAW equ 1
|
|
||||||
MOS_RS_ENDREDRAW equ 2
|
|
||||||
|
|
||||||
; start window redraw
|
|
||||||
; destroys: eax,ebx
|
|
||||||
%macro MOS_STARTREDRAW 0
|
|
||||||
mov ebx,MOS_RS_STARTREDRAW
|
|
||||||
mov eax,MOS_SC_REDRAWSTATUS
|
|
||||||
int 0x40
|
|
||||||
%endmacro
|
|
||||||
|
|
||||||
; start window redraw, smaller version
|
|
||||||
; destroys: eax,ebx,flags
|
|
||||||
%macro MOS_STARTREDRAW_S 0
|
|
||||||
xor ebx,ebx
|
|
||||||
inc ebx
|
|
||||||
xor eax,eax
|
|
||||||
mov al,MOS_SC_REDRAWSTATUS
|
|
||||||
int 0x40
|
|
||||||
%endmacro
|
|
||||||
|
|
||||||
; end window redraw
|
|
||||||
; destroys: eax,ebx
|
|
||||||
%macro MOS_ENDREDRAW 0
|
|
||||||
mov ebx,MOS_RS_ENDREDRAW
|
|
||||||
mov eax,MOS_SC_REDRAWSTATUS
|
|
||||||
int 0x40
|
|
||||||
%endmacro
|
|
||||||
|
|
||||||
; end window redraw, smaller version
|
|
||||||
; destroys: eax,ebx,flags
|
|
||||||
%macro MOS_ENDREDRAW_S 0
|
|
||||||
xor ebx,ebx
|
|
||||||
mov bl,MOS_RS_ENDREDRAW
|
|
||||||
xor eax,eax
|
|
||||||
mov al,MOS_SC_REDRAWSTATUS
|
|
||||||
int 0x40
|
|
||||||
%endmacro
|
|
||||||
|
|
||||||
|
|
||||||
;**********************************************************
|
|
||||||
; get screen max stuff (syscall 14)
|
|
||||||
;**********************************************************
|
|
||||||
|
|
||||||
; get screen dimensions in eax
|
|
||||||
; destroys: nothing
|
|
||||||
%macro MOS_GETSCREENMAX 0
|
|
||||||
mov eax,MOS_SC_GETSCREENMAX
|
|
||||||
int 0x40
|
|
||||||
%endmacro
|
|
||||||
|
|
||||||
; get screen dimensions in eax, smaller version
|
|
||||||
; destroys: flags
|
|
||||||
%macro MOS_GETSCREENMAX_S 0
|
|
||||||
xor eax,eax
|
|
||||||
mov al,MOS_SC_GETSCREENMAX
|
|
||||||
int 0x40
|
|
||||||
%endmacro
|
|
||||||
|
|
||||||
|
|
||||||
;********************************************************************
|
|
||||||
; opcode hacks
|
|
||||||
;********************************************************************
|
|
||||||
|
|
||||||
; nasm refuses to assemble stuff like
|
|
||||||
; push dword 4.44
|
|
||||||
; with the following macro this becomes possible:
|
|
||||||
; fpush32 9.81
|
|
||||||
; don't forget to use a decimal point. things like
|
|
||||||
; fpush32 1
|
|
||||||
; will probably not do what you expect. instead, write:
|
|
||||||
; fpush32 1.0
|
|
||||||
%macro fpush32 1
|
|
||||||
db 0x68 ; push imm32
|
|
||||||
dd %1
|
|
||||||
%endm
|
|
||||||
|
|
||||||
%endif
|
|
||||||
|
|
@@ -1,92 +0,0 @@
|
|||||||
; string2dword - a useless string to double word conversion routine
|
|
||||||
;
|
|
||||||
; Copyright (c) 2003 Thomas Mathys
|
|
||||||
; killer@vantage.ch
|
|
||||||
;
|
|
||||||
; 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
||||||
;
|
|
||||||
|
|
||||||
|
|
||||||
;********************************************************************
|
|
||||||
; converts an asciiz string into an unsigned doubleword.
|
|
||||||
; (base 10 is assumed)
|
|
||||||
;
|
|
||||||
; - first, leading whitespaces are skipped
|
|
||||||
; - then the function converts the string, until it
|
|
||||||
; finds the terminating zero, another character it
|
|
||||||
; cannot convert or the number becomes too large.
|
|
||||||
;
|
|
||||||
; input : esi = pointer to string
|
|
||||||
; output : eax = unsigned doubleword
|
|
||||||
; the function tries to convert as
|
|
||||||
; many digits as possible, before it
|
|
||||||
; stops. if the value of the dword
|
|
||||||
; becomes too large, 0xffffffff is
|
|
||||||
; returned.
|
|
||||||
; destroys : nothing
|
|
||||||
;********************************************************************
|
|
||||||
string2dword:
|
|
||||||
push ebx
|
|
||||||
push ecx
|
|
||||||
push edx
|
|
||||||
push esi
|
|
||||||
pushfd
|
|
||||||
|
|
||||||
xor ebx,ebx ; ebx : dword
|
|
||||||
|
|
||||||
; skip leading whitespaces
|
|
||||||
.skipspaces:
|
|
||||||
lodsb
|
|
||||||
cmp al,32 ; space
|
|
||||||
je .skipspaces
|
|
||||||
cmp al,12 ; ff
|
|
||||||
je .skipspaces
|
|
||||||
cmp al,10 ; lf
|
|
||||||
je .skipspaces
|
|
||||||
cmp al,13 ; cr
|
|
||||||
je .skipspaces
|
|
||||||
cmp al,9 ; ht
|
|
||||||
je .skipspaces
|
|
||||||
cmp al,11 ; vt
|
|
||||||
je .skipspaces
|
|
||||||
|
|
||||||
; convert string
|
|
||||||
dec esi ; esi -> 1st non-whitespace
|
|
||||||
.convert:
|
|
||||||
xor eax,eax ; get character
|
|
||||||
lodsb
|
|
||||||
sub al,'0' ; convert to digit
|
|
||||||
cmp al,9 ; is digit in range [0,9] ?
|
|
||||||
ja .done ; nope -> stop conversion
|
|
||||||
mov ecx,eax ; save new digit
|
|
||||||
mov eax,10 ; dword = dword * 10
|
|
||||||
mul ebx
|
|
||||||
jc .overflow
|
|
||||||
add eax,ecx ; + new digit
|
|
||||||
jc .overflow
|
|
||||||
mov ebx,eax
|
|
||||||
jmp .convert
|
|
||||||
|
|
||||||
.overflow:
|
|
||||||
mov ebx,0xffffffff
|
|
||||||
.done:
|
|
||||||
mov eax,ebx
|
|
||||||
popfd
|
|
||||||
pop esi
|
|
||||||
pop edx
|
|
||||||
pop ecx
|
|
||||||
pop ebx
|
|
||||||
ret
|
|
||||||
|
|
@@ -1,49 +0,0 @@
|
|||||||
; strlen function
|
|
||||||
;
|
|
||||||
; Copyright (c) 2003 Thomas Mathys
|
|
||||||
; killer@vantage.ch
|
|
||||||
;
|
|
||||||
; 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
||||||
;
|
|
||||||
%ifndef _STRLEN_INC
|
|
||||||
%define _STRLEN_INC
|
|
||||||
|
|
||||||
|
|
||||||
;********************************************************************
|
|
||||||
; returns the length of an asciiz string
|
|
||||||
; input : esi = pointer to string
|
|
||||||
; output : eax = string length
|
|
||||||
; destroys : nothing
|
|
||||||
;********************************************************************
|
|
||||||
strlen:
|
|
||||||
push ecx
|
|
||||||
push edi
|
|
||||||
pushfd
|
|
||||||
cld ; !
|
|
||||||
mov ecx,-1
|
|
||||||
mov edi,esi ; find terminating zero
|
|
||||||
xor al,al
|
|
||||||
repne scasb
|
|
||||||
mov eax,edi ; calculate string length
|
|
||||||
sub eax,esi
|
|
||||||
dec eax
|
|
||||||
popfd
|
|
||||||
pop edi
|
|
||||||
pop ecx
|
|
||||||
ret
|
|
||||||
|
|
||||||
|
|
||||||
%endif
|
|
||||||
|
|