mv, gifview, jpegview: modified to use function 70

tinypad2: modified for new sysxtree
kernel, mv, board, calendar, cmd, copy2, cpu, end, icon, mhc, pcidev:
        german translation from derPENGUIN

git-svn-id: svn://kolibrios.org@135 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Evgeny Grechnikov (Diamond) 2006-08-25 13:06:57 +00:00
parent dde2612191
commit 65cbed8f0d
32 changed files with 1008 additions and 548 deletions

View File

@ -0,0 +1,139 @@
;======================================================================
;
; BOOT DATA
;
;======================================================================
macro line_full_top {
db 201
times 78 db 205
db 187
}
macro line_full_bottom {
db 200
times 78 db 205
db 188
}
macro line_half {
db 186,' '
times 76 db 0xc4
db ' ',186
}
macro line_space {
db 186
times 78 db 32
db 186
}
d80x25_top:
line_full_top
space_msg: line_space
verstr:
; line_space
; version string
db 186,32
repeat 78
load a byte from version+%-1
if a = 13
break
end if
db a
end repeat
repeat 78 - ($-verstr)
db ' '
end repeat
db 32,186
line_half
d80x25_top_num = 4
d80x25_bottom:
; db 186,' KolibriOS based on MenuetOS and comes with ABSOLUTELY '
; db 'NO WARRANTY ',186
; db 186,' See file COPYING for details '
; db ' ',186
db 186,' KolibriOS basiert auf MenuetOS und wird ohne jegliche '
db ' Garantie vertrieben ',186
db 186,' Details stehen in der Datei COPYING '
db ' ',186
line_full_bottom
d80x25_bottom_num = 3
novesa db "Anzeige: EGA/CGA ",13,10,0
vervesa db "Vesa-Version: Vesa ",13,10,0
vervesa_off=22
msg_apm db " APM x.x ", 0
gr_mode db 186," Vesa 2.0+ 16 M LFB: [1] 640x480, [2] 800x600, "
db "[3] 1024x768, [4] 1280x1024",13,10
db 186," Vesa 1.2 16 M Bnk: [5] 640x480, [6] 800x600, "
db "[7] 1024x768, [8] 1280x1024",13,10
db 186," EGA/CGA 256 Farben: [9] 320x200, "
db "VGA 16 Farben: [0] 640x480",13,10
db 186," Waehle Modus: ",0
bt24 db "Bits Per Pixel: 24",13,10,0
bt32 db "Bits Per Pixel: 32",13,10,0
vrrmprint db "VRR verwenden? (Monitorfrequenz groesser als 60Hz"
db " only for transfers:",13,10
db 186," 1024*768->800*600 und 800*600->640*480) [1-ja,2-nein]:",0
;askmouse db " Maus angeschlossen an:"
; db " [1] PS/2 (USB), [2] Com1, [3] Com2."
; db " Waehle Port [1-3]: ",0
;no_com1 db 13,10,186, " Keine COM1 Maus",0
;no_com2 db 13,10,186, " Keine COM2 Maus",0
gr_acc db "Vesa 2.0+ : MTRR Grafikbeschleunigung "
db "[1-ja/2-nein] ? ",0
;gr_direct db 186," Benutze direct LFB? "
; db "[1-ja/2-nein] ? ",0
;mem_model db 13,10,186," Hauptspeicher [1-16 Mb / 2-32 Mb / "
; db "3-64Mb / 4-128 Mb / 5-256 Mb] ? ",0
;bootlog db 13,10,186," After bootlog display [1-continue/2-pause] ? ",0
bdev db "Lade die Ramdisk von [1-Diskette; 2-C:\menuet.img (FAT32);"
db 13,10,186," "
db "3-benutze ein bereits geladenes Kernel image]: ",0
probetext db 13,10,13,10,186," Nutze Standardgrafikmodi? [1-ja, "
db "2-BIOS Test (Vesa 3.0)]: ",0
;memokz256 db 13,10,186," RAM 256 Mb",0
;memokz128 db 13,10,186," RAM 128 Mb",0
;memokz64 db 13,10,186," RAM 64 Mb",0
;memokz32 db 13,10,186," RAM 32 Mb",0
;memokz16 db 13,10,186," RAM 16 Mb",0
prnotfnd db "Fatal - Videomodus nicht gefunden.",0
;modena db "Fatal - VBE 0x112+ required.",0
not386 db "Fatal - CPU 386+ benoetigt.",0
btns db "Fatal - konnte Farbtiefe nicht erkennen.",0
fatalsel db "Fatal - Grafikmodus nicht unterstuetzt.",0
badsect db 13,10,186," Fatal - Sektorfehler, Andere Diskette neutzen.",0
memmovefailed db 13,10,186," Fatal - Int 0x15 Fehler.",0
okt db " ... OK"
linef db 13,10,0
diskload db "Lade Diskette: 00 %",8,8,8,8,0
pros db "00"
backspace2 db 8,8,0
boot_dev db 0 ; 0=floppy, 1=hd
start_msg db "Druecke [abcd], um die Einstellungen zu aendern , druecke [Enter] zum starten",13,10,0
time_msg db " oder warte "
time_str db " 5 Sekunden"
db " bis zum automatischen Start",13,10,0
current_cfg_msg db "Aktuelle Einstellungen:",13,10,0
curvideo_msg db " [a] Videomodus: ",0
mode1 db "640x480",0
mode2 db "800x600",0
mode3 db "1024x768",0
mode4 db "1280x1024",0
modes_msg dw mode4-0x10000,mode1-0x10000,mode2-0x10000,mode3-0x10000
modevesa20 db " mit LFB",0
modevesa12 db ", VESA 1.2 Bnk",0
mode9 db "320x200, EGA/CGA 256 colors",0
mode10 db "640x480, VGA 16 colors",0
probeno_msg db " (Standard Modus)",0
probeok_msg db " (teste nicht-standard Modi)",0
mtrr_msg db " [b] Nutze MTRR fuer Graphibeschleunigung:",0
on_msg db " an",13,10,0
off_msg db " aus",13,10,0
vrrm_msg db " [c] Nutze VRR:",0
preboot_device_msg db " [d] Diskettenimage: ",0
preboot_device_msgs dw 0,pdm1-0x10000,pdm2-0x10000,pdm3-0x10000
pdm1 db "Echte Diskette",13,10,0
pdm2 db "C:\menuet.img (FAT32)",13,10,0
pdm3 db "Nutze bereits geladenes Image",13,10,0
loading_msg db "Lade KolibriOS...",0
save_quest db "Aktuelle Einstellungen speichern? [y/n]: ",0
loader_block_error db "Bootloader Daten ungueltig, Kann nicht fortfahren. Angehalten.",0

View File

@ -0,0 +1,4 @@
@erase lang.inc
@echo lang fix ge >lang.inc
@fasm kernel.asm kernel.mnt
@pause

View File

@ -18,8 +18,10 @@
;!!! ;!!!
if lang eq en if lang eq en
include "boot/booteng.inc" ; english system boot messages include "boot/booteng.inc" ; english system boot messages
else else if lang eq ru
include "boot/bootru.inc" ; russian system boot messages include "boot/bootru.inc" ; russian system boot messages
else
include "boot/bootge.inc" ; german system boot messages
;!!! ;!!!
end if end if
include "boot/ru.inc" ; Russian font include "boot/ru.inc" ; Russian font

View File

@ -1,4 +1,4 @@
@erase lang.inc @erase lang.inc
@echo lang fix ru >lang.inc @echo lang fix de >lang.inc
@fasm cmd.asm cmd @fasm cmd.asm cmd
@pause @pause

View File

@ -19,7 +19,7 @@ use32
dd 0x0 dd 0x0
include "macros.inc" include "macros.inc"
include "lang.inc"
START: START:
call cmdexist call cmdexist
@ -300,7 +300,7 @@ draw:
mov eax,0 mov eax,0
mov ebx,100*65536+492 mov ebx,100*65536+492
mov ecx,100*65536+280 mov ecx,100*65536+280
mov edx,0 mov edx,0x3000000
mov esi,0x805080d0 mov esi,0x805080d0
mov edi,0x005080d0 mov edi,0x005080d0
int 0x40 int 0x40
@ -312,12 +312,12 @@ draw:
mov esi,title_end-title mov esi,title_end-title
int 0x40 int 0x40
mov eax,8 ; mov eax,8
mov ebx,(492-19)*65536+12 ; mov ebx,(492-19)*65536+12
mov ecx,5*65536+12 ; mov ecx,5*65536+12
mov edx,1 ; mov edx,1
mov esi,0x6688dd ; mov esi,0x6688dd
int 0x40 ; int 0x40
mov eax,12 mov eax,12
mov ebx,2 mov ebx,2
@ -977,7 +977,7 @@ err:
shl ebx,16 shl ebx,16
add ebx,[xpos] add ebx,[xpos]
mov ecx,0x00ddeeff mov ecx,0x00ddeeff
mov esi,27 mov esi,33
int 0x40 int 0x40
cld cld
@ -2836,7 +2836,50 @@ title_end:
smb_cursor db '|' smb_cursor db '|'
prompt db 'CMD>>' prompt db 'CMD>>'
if lang eq de
h1 db ' CMD - Command line interpreter version 0.26 '
h2 db ' copyleft Chemist - dmitry_gt@tut.by '
h3 db ' Verfuegbare Kommandos: '
h4 db ' HELP - Zeoigt diesen Text LS - Zeigt Dateien'
h5 db ' EXIT - Programmende CP - Kopiert Datei'
h6 db ' CLS - Loescht Bildschirm PS - Processinfo '
h7 db ' KILL - Process beenden RN - File umnennen'
h8 db ' VER - Zeigt Programmversion '
h9 db ' DEL - Loescht Datei von Ramdisk '
h10 db ' SHUTDOWN - KolibriOS beenden '
h11 db ' PAUSE - Auf Taste warten '
h12 db ' ECHO - Schreibt Text auf Ausgabe '
h13 db ' ENDS - Scriptende '
h14 db ' /[filename] - Script starten '
h15 db ' Parameter mit "&" angeben: '
h16 db ' tinypad&cmd.asm - oeffnet cmd.asm '
about db 'Command Line Interpreter version 0.26 '
err1 db 'Kommando oder Dateiname unbekannt'
proc_head db ' PID Name Start Laenge Proc_NUMB '
proc_hd11 db '-------------------------------------------- '
mess1 db 'Taste druecken fuer weiter (ESC - abbrechen)..'
mess2 db 'Bitte 4 Byte Prozessnummer angeben (nicht PID)'
mess3 db 'Prozess mit angegebenere Nummer erfolgreich '
mess4 db 'beendet. '
mess5 db 'Verwendung: del [Dateiname] '
mess6 db 'Angegebene Datei erfolgreich geloescht. '
mess7 db 'Datei nicht gefunden! '
mess8 db 'Prozess nicht gefunden! '
mess9 db 'Verwendung: cp [Quelle+Ziel] '
mess0 db 'Verwendung: rn [Quelle+Ziel] '
mess11 db 'Datei erfolgreich kopiert '
mess12 db 'ERROR: Kann Datei nicht kopieren! '
mess13 db 'ERROR: Datei existiert bereits! '
mess14 db 'Datei erfolgreich umbenannt '
mess15 db 'ERROR: Kann Datei nicht umbenennen! '
mess16 db 'Scriptname erwartet! '
mess17 db 'Dieses Kommando ist nur in Scripts zulaessig! '
else
h1 db ' CMD - Command line interpreter version 0.26 ' h1 db ' CMD - Command line interpreter version 0.26 '
h2 db ' copyleft Chemist - dmitry_gt@tut.by ' h2 db ' copyleft Chemist - dmitry_gt@tut.by '
h3 db ' Available commands: ' h3 db ' Available commands: '
@ -2856,7 +2899,7 @@ h16 db ' tinypad&cmd.asm - open cmd.asm '
about db 'Command Line Interpreter version 0.26 ' about db 'Command Line Interpreter version 0.26 '
err1 db 'Unknown command or filename' err1 db 'Unknown command or filename '
proc_head db ' PID Name Start Length Proc_NUMB ' proc_head db ' PID Name Start Length Proc_NUMB '
proc_hd11 db '-------------------------------------------- ' proc_hd11 db '-------------------------------------------- '
@ -2879,7 +2922,7 @@ mess14 db 'File successfully renamed '
mess15 db 'ERROR: Can not rename file! ' mess15 db 'ERROR: Can not rename file! '
mess16 db 'You must specify a command script filename! ' mess16 db 'You must specify a command script filename! '
mess17 db 'This command is available only in scripts! ' mess17 db 'This command is available only in scripts! '
end if
linen dd 2000 linen dd 2000
lpress dd 1 lpress dd 1

View File

@ -0,0 +1,4 @@
@erase lang.inc
@echo lang fix de >lang.inc
@fasm copy2.asm copy2
@pause

View File

@ -362,6 +362,11 @@ lsz text,\
en, 'DESTINATION: | Poddubny Ivan, ivan-yar@bk.ru ',\ en, 'DESTINATION: | Poddubny Ivan, ivan-yar@bk.ru ',\
en, ' COPY SOURCE -> DESTINATION ',\ en, ' COPY SOURCE -> DESTINATION ',\
en, 'x',\ ; <- END MARKER, DONT DELETE en, 'x',\ ; <- END MARKER, DONT DELETE
\
de, 'QUELLE: | Russia, Yaroslavl ',\
de, 'ZIEL: | Poddubny Ivan, ivan-yar@bk.ru ',\
de, ' KOPIERE QUELLE -> ZIEL ',\
de, 'x',\ ; <- END MARKER, DONT DELETE
\ \
fr, 'SOURCE: | ',\ fr, 'SOURCE: | ',\
fr, 'DESTINATION: | ',\ fr, 'DESTINATION: | ',\
@ -372,6 +377,7 @@ lsz text,\
lsz header,\ lsz header,\
ru, 'ŠŽ<C5A0>ˆ<EFBFBD>Žœ ”€‰‹',\ ru, 'ŠŽ<C5A0>ˆ<EFBFBD>Žœ ”€‰‹',\
en, 'SYSTREE FILE COPIER',\ en, 'SYSTREE FILE COPIER',\
de, 'SYSTREE DATEIKOPIERER',\
fr, 'COPIER LE FICHIER' fr, 'COPIER LE FICHIER'
@ -405,7 +411,7 @@ strtbl errors,\
"?",\ "?",\
"(§ ¯¨áì) ä ©« ­¥ ­ ©¤¥­",\ "(§ ¯¨áì) ä ©« ­¥ ­ ©¤¥­",\
"(§ ¯¨áì) ­¥¨§¢¥áâ­ ï ®è¨¡ª " "(§ ¯¨áì) ­¥¨§¢¥áâ­ ï ®è¨¡ª "
else else if lang eq en
strtbl errors,\ strtbl errors,\
"Success!",\ "Success!",\
"(read) no hd base or partition defined",\ "(read) no hd base or partition defined",\
@ -422,6 +428,23 @@ strtbl errors,\
"?",\ "?",\
"(write) end of file",\ "(write) end of file",\
"(write) unknown error" "(write) unknown error"
else
strtbl errors,\
"Erfolgreich!",\
"(lesen) Keine Festplatte oder Partition definiert",\
"(lesen) Dateisystem nicht unterstuetzt",\
"(lesen) Unbekanntes Dateisystem",\
"(lesen) Keine Partition definiert",\
"Zu wenig Speicher",\
"(lesen) Dateiende erreicht",\
"(lesen) Unbekanner Fehler",\
"(schreiben) Keine Festplatte oder Partition definiert",\
"(schreiben) Dateisystem nicht unterstuetzt",\
"(schreiben) Unbekanntes Dateisystem",\
"(schreiben) Keine Partition definiert",\
"?",\
"(schreiben) Dateiende erreicht",\
"(schreiben) Unbekanner Fehler"
end if end if
I_END: I_END:

View File

@ -4,7 +4,7 @@
; This include file will contain functions to handle GIF image format ; This include file will contain functions to handle GIF image format
; ;
; Created: August 15, 2004 ; Created: August 15, 2004
; Last changed: September 9, 2004 ; Last changed: August 25, 2006
; Change COLOR_ORDER in your program ; Change COLOR_ORDER in your program
; if colors are displayed improperly ; if colors are displayed improperly
@ -88,7 +88,7 @@ ReadGIF:
mov [.img_count],eax mov [.img_count],eax
inc eax inc eax
cmp dword[esi],'GIF8' cmp dword[esi],'GIF8'
jne .er ; signature jne .ex ; signature
mov ecx,[esi+0xa] mov ecx,[esi+0xa]
inc eax inc eax
add esi,0xd add esi,0xd
@ -123,7 +123,7 @@ ReadGIF:
jmp .block_skip jmp .block_skip
.noextblock: .noextblock:
cmp byte[edi],0x2c ; image beginning cmp byte[edi],0x2c ; image beginning
jne .er jne .ex
inc [.img_count] inc [.img_count]
inc edi inc edi
mov esi,[.cur_info] mov esi,[.cur_info]
@ -211,9 +211,6 @@ ReadGIF:
call .Gif_output call .Gif_output
pop ebx eax pop ebx eax
jmp .add jmp .add
.er:
pop edi
jmp .ex
.end: .end:
mov eax,[.cur_info] mov eax,[.cur_info]
mov [eax],edi mov [eax],edi

View File

@ -4,7 +4,7 @@
; Uses GIF_LITE 2.0 ; Uses GIF_LITE 2.0
; ;
; Created: August 31, 2004 ; Created: August 31, 2004
; Last changed: September 9, 2004 ; Last changed: August 25, 2006
; ;
; COMPILE WITH FASM ; COMPILE WITH FASM
@ -50,9 +50,9 @@ openfile:
mov edi,filename mov edi,filename
mov ecx,[inp_pos] mov ecx,[inp_pos]
rep movsb rep movsb
mov byte[edi],al stosb
openfile2: openfile2:
mov eax,58 mov eax,70
mov ebx,file_info mov ebx,file_info
int 0x40 int 0x40
cmp eax,6 cmp eax,6
@ -60,19 +60,19 @@ openfile2:
test eax,eax test eax,eax
jnz ok2 jnz ok2
temp: temp:
cmp ebx,64 ; cmp ebx,64
jbe ok2 ; jbe ok2
and [entered],0 and [entered],0
xor eax,eax xor eax,eax
mov [imgcount],eax mov [imgcount],eax
mov esi,filename mov esi,filename
mov edi,fn_input mov edi,fn_input
mov ecx,256 ;[filename_len] mov ecx,256/4 ;[filename_len]
rep movsb rep movsd
mov edi,fn_input mov edi,fn_input
mov ecx,50 mov ecx,256
xor eax,eax xor eax,eax
repne scasb repne scasb
sub edi,fn_input sub edi,fn_input
@ -101,16 +101,22 @@ red:
call draw_window call draw_window
still: still:
cmp [imgcount], 1
jnz .delay
mov eax, 10
int 0x40
jmp @f
.delay:
mov ebx,DELAY mov ebx,DELAY
mov eax,23 mov eax,23
int 0x40 int 0x40
@@:
cmp eax,1 dec eax
je red jz red
cmp eax,2 dec eax
je key jz key
cmp eax,3 dec eax
je button jz button
mov eax,[imgcount] mov eax,[imgcount]
cmp eax,1 cmp eax,1
je still je still
@ -167,7 +173,7 @@ still:
jz wait_input jz wait_input
dec [inp_pos] dec [inp_pos]
jmp wait_input jmp wait_input
jmp still ; jmp still
;**************************************** ;****************************************
;******* DRAW CONTENTS OF INPUT LINE **** ;******* DRAW CONTENTS OF INPUT LINE ****
@ -290,9 +296,9 @@ inp_end:
file_info: file_info:
dd 0 dd 0
dd 0 dd 0
dd 0x100000/512;0x200000 dd 0
dd workarea dd 0x100000;0x200000
dd Image;0x100000 dd workarea;0x100000
I_END: ; ª®­¥æ ¯à®£à ¬¬ë I_END: ; ª®­¥æ ¯à®£à ¬¬ë
filename: filename:
; db '/hd/1/gif/smileys/sm112000.gif',0 ; db '/hd/1/gif/smileys/sm112000.gif',0
@ -300,7 +306,7 @@ filename:
; db '/hd/1/gif/explode1.gif',0 ; db '/hd/1/gif/explode1.gif',0
; db '/hd/1/gif/tapeta.gif',0 ; db '/hd/1/gif/tapeta.gif',0
; db '/hd/1/gif/meos.gif',0 ; db '/hd/1/gif/meos.gif',0
rb 256 rb 257
;filename_len dd 0 ;filename_len dd 0
entered rd 1 entered rd 1

View File

@ -123,8 +123,10 @@ macro mpack dest, hsrc, lsrc
end if end if
} }
macro __mov reg,a { ; mike.dld macro __mov reg,a,b { ; mike.dld
if ~a eq if (~a eq)&(~b eq)
mpack reg,a,b
else if (~a eq)&(b eq)
mov reg,a mov reg,a
end if end if
} }
@ -141,10 +143,6 @@ macro mcall a,b,c,d,e,f { ; mike.dld
; optimize the code for size ; optimize the code for size
__regs fix <eax,ebx,ecx,edx,esi,edi,ebp,esp> __regs fix <eax,ebx,ecx,edx,esi,edi,ebp,esp>
@ -176,7 +174,7 @@ macro sub arg1,arg2
macro mov arg1,arg2 macro mov arg1,arg2
{ {
if (arg1 in __regs) & (arg2 eqtype 0) if (arg1 in __regs) & ((arg2 eqtype 0) | (arg2 eqtype '0'))
if (arg2) = 0 if (arg2) = 0
xor arg1,arg1 xor arg1,arg1
else if (arg2) = 1 else if (arg2) = 1

View File

@ -1,51 +1,45 @@
file_handler: file_handler:
.position=0 .operation=0
.size=4 .position=4
.bufer_block=8 .reserved=8
.operation=12 .n_bytes=12
.first_block=16 .bufer=16
.n_blocks=20 .name=20
.bufer=24 .st_size=20+1024
.work_area=28
.name=32
.st_size=32+128
open: ;esi=name_string open: ;esi=name_string
;retorna eax ;retorna eax
pushad pushad
push dword [work_area]
mov ecx,512 ;bufer
call malloc
push edi
mov ecx,file_handler.st_size mov ecx,file_handler.st_size
call mallocz call mallocz
pop dword[edi+file_handler.bufer]
pop dword[edi+file_handler.work_area]
mov [esp+28],edi mov [esp+28],edi
mov ecx,100 push edi
mov ecx,1024
add edi,file_handler.name add edi,file_handler.name
call movedata call movedata
mov edi,[esp+28]
mov byte[edi+file_handler.n_blocks],1
mov eax,58
lea ebx,[edi+file_handler.operation]
push edi
int 0x40
pop edi pop edi
; test if file exists
lea ebx,[edi+file_handler.operation]
mov byte[ebx],5
mov dword[ebx+16],fileattr
mov eax,70
int 0x40
cmp eax,2
jz .virtual
test eax,eax test eax,eax
jnz close.b jnz close.b
mov [edi+file_handler.size],ebx @@:
clc clc
popad popad
ret ret
.virtual:
mov byte [fileattr], 0x10
jmp @b
close: close:
pushad pushad
.b: .b:
mov eax,[esp+28] mov edi,[esp+28]
mov edi,[eax+file_handler.bufer]
call free
mov edi,eax
call free call free
popad popad
xor eax,eax xor eax,eax
@ -55,88 +49,20 @@ close:
read: ;(f,bufer,nbytes) eax,edi,ecx ncr read: ;(f,bufer,nbytes) eax,edi,ecx ncr
;retorna bytes leidos en ecx ;retorna bytes leidos en ecx
pushad pushad
mov edx,[eax+file_handler.size] lea ebx, [eax+file_handler.operation]
sub edx,[eax+file_handler.position] mov byte [ebx], 0
cmp edx,ecx mov [ebx+12], ecx
jnc .nb_ok mov [ebx+16], edi
mov ecx,edx mov eax, 70
mov [esp+24],edx int 0x40
.nb_ok: cmp ebx, -1
jecxz .final sbb ebx, -1
mov byte[eax+file_handler.operation],0 mov eax, [esp+28]
test dword[eax+file_handler.position],511 add [eax+file_handler.position], ebx
jz .l1 mov [esp+24], ebx
call .bufer
.l1:
mov edx,ecx
shr edx,9
jz .l2
mov [eax+file_handler.n_blocks],edx
mov edx,[eax+file_handler.position]
shr edx,9
mov [eax+file_handler.first_block],edx
xchg edi,[eax+file_handler.bufer]
pushad
lea ebx,[eax+file_handler.operation]
mov eax,58
int 40h
cmp eax,0ffffff00h
jnc .error
popad
xchg edi,[eax+file_handler.bufer]
mov edx,ecx
and edx,0fffffe00h
add [eax+file_handler.position],edx
add edi,edx
.l2:
and ecx,511
jz .final
call .bufer
.final:
popad popad
ret ret
.bufer:
pushad
mov ebx,[eax+file_handler.position]
shr ebx,9
cmp ebx,[eax+file_handler.bufer_block]
je .l3
mov [eax+file_handler.first_block],ebx
mov [eax+file_handler.bufer_block],ebx
mov dword[eax+file_handler.n_blocks],1
lea ebx,[eax+file_handler.operation]
mov eax,58
int 40h
cmp eax,0ffffff00h
jnc .error
.l3:
mov eax,[esp+28]
mov edx,[eax+file_handler.position]
mov esi,[eax+file_handler.bufer]
and edx,511
add esi,edx
neg edx
add edx,512
cmp ecx,edx
jc .l4
mov ecx,edx
.l4:
add [eax+file_handler.position],ecx
sub [esp+24],ecx
pop edi
call movedata
push edi
popad
ret
.error:
popad
popad
xor ecx,ecx
stc
ret
ftell: mov edx,[eax+file_handler.position] ftell: mov edx,[eax+file_handler.position]
ret ret
lseek: ;eax=file edx=pos lseek: ;eax=file edx=pos

View File

@ -99,6 +99,8 @@ jpeg_info: ;fichero en eax
eoi: eoi:
mov esp,[ebp] mov esp,[ebp]
; do not close file - this will be done by caller
and dword [ebp+fichero], 0
call jpeg_close call jpeg_close
popad popad
xor ebp,ebp xor ebp,ebp

View File

@ -18,7 +18,10 @@
; unos retoques ; unos retoques
; version 0.14 10th August 2004 ; version 0.14 10th August 2004
; Mike Hibbett Added setting default colours ; Mike Hibbett Added setting default colours
; version 0.15 24th August 2006
; diamond (rewritten to function 70)
; ;
memsize=20000h memsize=20000h
org 0 org 0
PARAMS = memsize - 1024 PARAMS = memsize - 1024
@ -33,7 +36,6 @@ use32
dd memsize - 1024 ; esp dd memsize - 1024 ; esp
dd PARAMS , 0x0 ; I_Param , I_Icon dd PARAMS , 0x0 ; I_Param , I_Icon
include 'lang.inc'
stack_size=4096 + 1024 stack_size=4096 + 1024
include 'macros.inc' include 'macros.inc'
@ -50,10 +52,6 @@ START: ; start of execution
mov edi,fin mov edi,fin
call add_mem call add_mem
; Get some memory
mov ecx,16384
call malloc
mov [work_area],edi
call colorprecalc ;inicializa tablas usadas para pasar de ybr a bgr call colorprecalc ;inicializa tablas usadas para pasar de ybr a bgr
call draw_window call draw_window
call read_string.rs_done call read_string.rs_done
@ -148,10 +146,6 @@ boot_set_background:
mov ecx,memsize-fin-stack_size ; size mov ecx,memsize-fin-stack_size ; size
mov edi,fin ; pointer mov edi,fin ; pointer
call add_mem ; mark memory from fin to 0x100000-1024 as free call add_mem ; mark memory from fin to 0x100000-1024 as free
; Get some memory
mov ecx,16384 ; get 16 Kb of memory
call malloc ; returns pointer in edi
mov [work_area],edi ; save it
call colorprecalc ; calculate colors call colorprecalc ; calculate colors
mov esi,name_string mov esi,name_string
call open call open
@ -244,15 +238,12 @@ draw_window:
; Draw the window to the appropriate size - it may have ; Draw the window to the appropriate size - it may have
; been resized by the user ; been resized by the user
mov eax, 0 cmp [winxs], 0
cmp [winxs], ax
jne dw_001 jne dw_001
; Give the screen some inital defaults ; Give the screen some inital defaults
mov ax, 400 mov [winxs], 400
mov [winxs], ax mov [winys], 300
mov ax, 300
mov [winys], ax
mov ax, 100 mov ax, 100
mov [winxo], ax mov [winxo], ax
mov [winyo], ax mov [winyo], ax
@ -273,16 +264,12 @@ dw_001:
mov [winys], ax mov [winys], ax
dw_002: dw_002:
mov bx, [winxo] mov ebx, dword [winxo-2]
shl ebx, 16 mov bx, [winxs]
mov bx, [winxs] mov ecx, dword [winyo-2]
mov cx, [winys]
mov cx, [winyo] xor eax,eax ; DRAW WINDOW
shl ecx, 16
mov cx, [winys]
mov eax,0 ; DRAW WINDOW
mov edx,[wcolor] mov edx,[wcolor]
add edx,0x02000000 add edx,0x02000000
mov esi,0x80557799 mov esi,0x80557799
@ -461,84 +448,59 @@ print_strings:
ret ret
slideshow: slideshow:
test dword[file_dir],-1 cmp [file_dir], 0
jnz .exit jnz .exit
test dword[jpeg_st],-1 cmp [jpeg_st], 0
jz .exit jz .exit
mov esi,name_string mov esi, name_string
movzx ecx,byte[name_string.cursor] movzx ecx, byte [name_string.cursor]
.l1: .l1:
cmp byte[esi+ecx],'/' cmp byte [esi+ecx], '/'
je .l2 jz .l2
loop .l1 loop .l1
.exit: .exit:
ret ret
.l2: .l2:
mov byte[esi+ecx],0 mov byte [esi+ecx], 0
call open call open
mov byte[esi+ecx],'/' mov byte [esi+ecx], '/'
test eax,eax test eax, eax
jz .exit jz .exit
test byte [fileattr], 0x10
mov dword[eax+file_handler.size],-1 ;directory size is always 0 jz .exit
mov [file_dir],eax mov [file_dir], eax
inc cl inc ecx
mov [name_string.cursor],cl mov [name_string.cursor], cl
display_next: display_next:
mov eax,[file_dir] mov ebx, [file_dir]
test eax,eax test ebx, ebx
jnz .l1 jnz @f
ret ret
.l1: @@:
mov ecx,32 mov byte [ebx], 1
sub esp,ecx mov byte [ebx+12], 1
mov edi,esp mov dword [ebx+16], dirinfo
call read mov eax, 70
cmp ecx,32 int 0x40
jnc .l11 mov eax, [file_dir]
.l10: inc dword [eax+4]
add esp,32 cmp ebx, 1
mov eax,dword[file_dir] jz @f
mov dword[file_dir],0 mov eax, [file_dir]
jmp close and [file_dir], 0
.l11: jmp close
mov esi,esp @@:
movzx edi,byte[name_string.cursor] movzx edi, byte [name_string.cursor]
add edi,name_string add edi, name_string
lodsb lea esi, [dirinfo+32+40]
cmp al,0 @@:
je .l10 lodsb
cmp al,229 stosb
jne .l0 test al, al
add esp,32 jnz @b
jmp display_next mov ecx, name_string.end
.l0: sub ecx, edi
stosb rep stosb
mov cl,7
.l2:
lodsb
cmp al,32
jna .l3
stosb
loop .l2
.l3:
lea esi,[esp+8]
mov al,'.'
stosb
mov cl,3
.l4:
lodsb
cmp al,32
jna .l5
stosb
loop .l4
.l5:
mov al,0
stosb
cmp edi,name_string.end
jc .l5
add esp,32
call print_strings call print_strings
mov esi,name_string mov esi,name_string
call open call open
@ -558,7 +520,6 @@ display_next:
jmp jpeg_display jmp jpeg_display
include 'filelib.asm' include 'filelib.asm'
include 'memlib.asm' include 'memlib.asm'
include 'jpeglib.asm' include 'jpeglib.asm'
@ -567,7 +528,7 @@ include 'jpeglib.asm'
; DATA AREA ; DATA AREA
wcolor dd 0x000000 wcolor dd 0x000000
labelt db 'Jpegview v0.14' labelt db 'Jpegview v0.15'
labellen: labellen:
setname db 'SLIDESHOW' setname db 'SLIDESHOW'
setnamelen: setnamelen:
@ -580,18 +541,16 @@ x_offset dd 0
x_numofbytes dd 0 x_numofbytes dd 0
x_numofb2 dd 0 x_numofb2 dd 0
x_counter dd 0 x_counter dd 0
winxo: dw 0 winxo dw 0
winyo: dw 0 winyo dw 0
winxs: dw 0 winxs dw 0
winys: dw 0 winys dw 0
jpeg_st: dd 0 jpeg_st dd 0
file_dir: dd 0 file_dir dd 0
work_area: dd 0
tcolor dd 0x000000 tcolor dd 0x000000
btcolor dd 0x224466+0x808080 btcolor dd 0x224466+0x808080
name_string: db '/rd/1/jpegview.jpg',0 name_string: db '/rd/1/jpegview.jpg',0
rb 256
rb 100
.end: .end:
.cursor: db 19 .cursor: db 19
.cursor2: db 0 .cursor2: db 0
@ -612,5 +571,5 @@ iniciomemoria:
fin: fin:
I_END: I_END:
fileattr: rb 40
dirinfo: rb 32+304

View File

@ -0,0 +1,268 @@
; new application structure
macro meos_app_start
{
use32
org 0x0
db 'MENUET01'
dd 0x01
dd __start
dd __end
dd __memory
dd __stack
if used __params & ~defined __params
dd __params
else
dd 0x0
end if
dd 0x0
}
MEOS_APP_START fix meos_app_start
macro code
{
__start:
}
CODE fix code
macro data
{
__data:
}
DATA fix data
macro udata
{
if used __params & ~defined __params
__params:
db 0
__end:
rb 255
else
__end:
end if
__udata:
}
UDATA fix udata
macro meos_app_end
{
align 32
rb 2048
__stack:
__memory:
}
MEOS_APP_END fix meos_app_end
; macro for defining multiline text data
struc mstr [sstring]
{
forward
local ssize
virtual at 0
db sstring
ssize = $
end virtual
dd ssize
db sstring
common
dd -1
}
; strings
macro sz name,[data] { ; from MFAR [mike.dld]
common
if used name
label name
end if
forward
if used name
db data
end if
common
if used name
.size = $-name
end if
}
macro lsz name,[lng,data] { ; from MFAR [mike.dld]
common
if used name
label name
end if
forward
if (used name)&(lang eq lng)
db data
end if
common
if used name
.size = $-name
end if
}
; easy system call macro
macro mpack dest, hsrc, lsrc
{
if (hsrc eqtype 0) & (lsrc eqtype 0)
mov dest, (hsrc) shl 16 + lsrc
else
if (hsrc eqtype 0) & (~lsrc eqtype 0)
mov dest, (hsrc) shl 16
add dest, lsrc
else
mov dest, hsrc
shl dest, 16
add dest, lsrc
end if
end if
}
macro __mov reg,a,b { ; mike.dld
if (~a eq)&(~b eq)
mpack reg,a,b
else if (~a eq)&(b eq)
mov reg,a
end if
}
macro mcall a,b,c,d,e,f { ; mike.dld
__mov eax,a
__mov ebx,b
__mov ecx,c
__mov edx,d
__mov esi,e
__mov edi,f
int 0x40
}
; language for programs
lang fix ru ; ru en fr ge fi
; optimize the code for size
__regs fix <eax,ebx,ecx,edx,esi,edi,ebp,esp>
macro add arg1,arg2
{
if (arg2 eqtype 0)
if (arg2) = 1
inc arg1
else
add arg1,arg2
end if
else
add arg1,arg2
end if
}
macro sub arg1,arg2
{
if (arg2 eqtype 0)
if (arg2) = 1
dec arg1
else
sub arg1,arg2
end if
else
sub arg1,arg2
end if
}
macro mov arg1,arg2
{
if (arg1 in __regs) & (arg2 eqtype 0)
if (arg2) = 0
xor arg1,arg1
else if (arg2) = 1
xor arg1,arg1
inc arg1
else if (arg2) = -1
or arg1,-1
else if (arg2) > -128 & (arg2) < 128
push arg2
pop arg1
else
mov arg1,arg2
end if
else
mov arg1,arg2
end if
}
macro struct name
{
virtual at 0
name name
sizeof.#name = $ - name
end virtual
}
; structures used in MeOS
struc process_information
{
.cpu_usage dd ? ; +0
.window_stack_position dw ? ; +4
.window_stack_value dw ? ; +6
.not_used1 dw ? ; +8
.process_name rb 12 ; +10
.memory_start dd ? ; +22
.used_memory dd ? ; +26
.PID dd ? ; +30
.x_start dd ? ; +34
.y_start dd ? ; +38
.x_size dd ? ; +42
.y_size dd ? ; +46
.slot_state dw ? ; +50
rb (1024-52)
}
struct process_information
struc system_colors
{
.frame dd ?
.grab dd ?
.grab_button dd ?
.grab_button_text dd ?
.grab_text dd ?
.work dd ?
.work_button dd ?
.work_button_text dd ?
.work_text dd ?
.work_graph dd ?
}
struct system_colors
; constants
; events
EV_IDLE = 0
EV_TIMER = 0
EV_REDRAW = 1
EV_KEY = 2
EV_BUTTON = 3
EV_EXIT = 4
EV_BACKGROUND = 5
EV_MOUSE = 6
EV_IPC = 7
EV_STACK = 8
; event mask bits for function 40
EVM_REDRAW = 1b
EVM_KEY = 10b
EVM_BUTTON = 100b
EVM_EXIT = 1000b
EVM_BACKGROUND = 10000b
EVM_MOUSE = 100000b
EVM_IPC = 1000000b
EVM_STACK = 10000000b

View File

@ -32,20 +32,16 @@ START: ; start of execution
cmp byte [temp_area],0 cmp byte [temp_area],0
jz .no_param jz .no_param
mov edi,string ; clear string mov edi,string ; clear string
mov ecx,43*3 ; length of a string mov ecx,256/4 ; length of a string
xor eax,eax ; symbol <0> xor eax,eax ; symbol <0>
add al,14h rep stosd
cld
rep stosb
mov edi,temp_area ; look for <0> in temp_area mov edi,temp_area ; look for <0> in temp_area
mov ecx,43*3+1 ; strlen mov esi,edi
mov ecx,257 ; strlen
repne scasb repne scasb
add edi,-temp_area ; get length of the string lea ecx, [edi-temp_area]
dec edi
mov ecx,edi
mov esi,temp_area
mov edi,string mov edi,string
rep movsb ; copy string from temp_area to "string" (filename) rep movsb ; copy string from temp_area to "string" (filename)
@ -72,6 +68,7 @@ START: ; start of execution
; ⥯¥àì ¢ ecx ­®¬¥à ¯à®æ¥áá  ; ⥯¥àì ¢ ecx ­®¬¥à ¯à®æ¥áá 
mov [process],ecx mov [process],ecx
draw_still:
call draw_window call draw_window
still: still:
@ -79,39 +76,34 @@ still:
mov eax,10 ; wait here for event mov eax,10 ; wait here for event
int 0x40 int 0x40
cmp eax,1 ; redraw request ? dec eax
je red jz red
cmp eax,2 ; key in buffer ? dec eax
je key jnz button
cmp eax,3 ; button in buffer ?
je button
key: ; key
mov al,2
int 0x40
mov al,ah
cmp al,6
je kfile
cmp al,15
je kopen
cmp al,9
je kinfo
cmp al,2
je kbgrd
jmp still jmp still
red: red:
bt [status],2 test byte [status], 4
jnc @f jz draw_still
mov eax,18 mov al, 18
mov ebx,3 mov ebx, 3
mov ecx,[process] mov ecx, [process]
int 0x40 int 0x40
btr [status],2 and byte [status], not 4
jmp still jmp still
@@:
call draw_window
jmp still
key: ; key
int 0x40
cmp ah,6
je kfile
cmp ah,15
je kopen
cmp ah,9
je kinfo
cmp ah,2
je kbgrd
jmp still
button: ; button button: ; button
mov eax,17 ; get id mov eax,17 ; get id
@ -126,9 +118,9 @@ still:
cmp ah,2 cmp ah,2
jne nofile jne nofile
kfile: kfile:
bt dword [status],0 test byte [status], 1
jc still jnz still
bts dword [status],0 or byte [status], 1
mov eax,51 mov eax,51
mov ebx,1 mov ebx,1
mov ecx,thread1 mov ecx,thread1
@ -163,9 +155,9 @@ still:
cmp ah,4 cmp ah,4
jne noinfo jne noinfo
kinfo: kinfo:
bt dword [status],1 test byte [status], 2
jc still jnz still
bts dword [status],1 or byte [status], 2
mov eax,51 mov eax,51
mov ebx,1 mov ebx,1
mov ecx,thread2 mov ecx,thread2
@ -178,9 +170,9 @@ still:
cmp ah,5 cmp ah,5
jne still jne still
kbgrd: kbgrd:
bt dword [status],3 test byte [status], 8
jc still jnz still
bts dword [status],3 or byte [status], 8
mov eax,51 mov eax,51
mov ebx,1 mov ebx,1
mov ecx,thread3 mov ecx,thread3
@ -197,21 +189,9 @@ still:
load_image: load_image:
mov dword [fileinfo+8],1 ; how many blocks to read (1) mov eax, 70
mov eax,58 mov ebx, fileinfo
mov ebx,fileinfo int 0x40
int 0x40
cmp [I_END+2],dword 512 ; à §¬¥à ä ©«  (file size)
jbe @f
mov eax,[I_END+2]
shr eax,9 ; ¯®¤¥«¨¬ ­  512 ¨ ¯à¨¡ ¢¨¬ 1 - ¯®«ã稬 ç¨á«® ¡«®ª®¢
inc eax
mov dword [fileinfo+8],eax
mov eax,58
mov ebx,fileinfo
int 0x40
@@:
mov eax,[I_END+18] mov eax,[I_END+18]
mov ebx,[I_END+22] mov ebx,[I_END+22]
add eax,20 add eax,20
@ -263,7 +243,7 @@ load_image:
mov esi, ecx mov esi, ecx
imul esi, edx imul esi, edx
imul esi, 3 lea esi, [esi+esi*2]
mov ebx,5 mov ebx,5
mov ecx,[soi] mov ecx,[soi]
xor edx,edx xor edx,edx
@ -282,12 +262,14 @@ load_image:
convert: convert:
movzx eax,word [I_END+28] movzx eax,word [I_END+28]
mul dword [I_END+18] mul dword [I_END+18]
mov ebx,32 ; mov ebx,32
div ebx ; div ebx
test edx,edx ; test edx,edx
je noaddword ; je noaddword
inc eax ; inc eax
noaddword: ; noaddword:
add eax, 31
shr eax, 5
mov [dwps],eax ;dwps-doublewords per string mov [dwps],eax ;dwps-doublewords per string
shl eax,2 shl eax,2
mov [bps],eax ;bps-bytes per string mov [bps],eax ;bps-bytes per string
@ -462,7 +444,8 @@ labelt:
lsz buttext,\ lsz buttext,\
en, ' FILE OPEN INFO BGRD',\ en, ' FILE OPEN INFO BGRD',\
ru, ' ”€‰‹ ŽŠ<E28099> ˆ<>”Ž ”Ž<E2809D> ' ru, ' ”€‰‹ ŽŠ<E28099> ˆ<>”Ž ”Ž<E2809D> ',\
de, 'DATEI OEFNEN INFO HGRD'
status dd 0 ;bit0=1 if file thread is created status dd 0 ;bit0=1 if file thread is created
bps dd 0 bps dd 0
@ -634,7 +617,7 @@ draw_window1:
mov ebx,8*65536+8 ; [x start] *65536 + [y start] mov ebx,8*65536+8 ; [x start] *65536 + [y start]
mov ecx,0x10ddeeff ; font 1 & color ( 0xF0RRGGBB ) mov ecx,0x10ddeeff ; font 1 & color ( 0xF0RRGGBB )
mov edx,labelt1 ; pointer to text beginning mov edx,labelt1 ; pointer to text beginning
mov esi,4 ; text length mov esi,labelt1.size ; text length
int 0x40 int 0x40
call drawstring call drawstring
@ -679,21 +662,8 @@ draw_window1:
lsz labelt1,\ lsz labelt1,\
en, 'File',\ en, 'File',\
ru, '” ©«' ru, '” ©«',\
de, 'Datei'
pos: dd 6
fileinfo:
dd 0
dd 0
dd 1 ;number of blocks of 512 bytes
dd I_END
dd temp_area
string:
; db '/HARDDISK/FIRST/1/DICK.BMP '
; db '/hd/1/menuet/pics/new.bmp '
db '/rd/1/bgr.bmp '
db ' '
db ' '
thread2: ; start of info thread thread2: ; start of info thread
@ -823,7 +793,8 @@ draw_window2:
lsz labelt2,\ lsz labelt2,\
en, 'File info',\ en, 'File info',\
ru, 'ˆ­ä®à¬ æ¨ï ® ä ©«¥' ru, 'ˆ­ä®à¬ æ¨ï ® ä ©«¥',\
de, 'Dateiinfo'
lsz fitext,\ lsz fitext,\
en, 'FILE SIZE ',\ en, 'FILE SIZE ',\
@ -834,7 +805,12 @@ lsz fitext,\
ru, '<27> §¬¥à ä ©«  ',\ ru, '<27> §¬¥à ä ©«  ',\
ru, '˜¨à¨­  ',\ ru, '˜¨à¨­  ',\
ru, '‚ëá®â  ',\ ru, '‚ëá®â  ',\
ru, '<27>¨â ­  ¯¨ªá¥« ' ru, '<27>¨â ­  ¯¨ªá¥« ',\
\
de, 'FATEIGROESSE ',\
de, 'X GROESSE ',\
de, 'Y GROESSE ',\
de, 'BITS PER PIXEL'
thread3: ; start of bgrd thread thread3: ; start of bgrd thread
@ -939,7 +915,7 @@ draw_window3:
mov ebx,8*65536+8 ; [x start] *65536 + [y start] mov ebx,8*65536+8 ; [x start] *65536 + [y start]
mov ecx,0x10ddeeff ; font 1 & color ( 0xF0RRGGBB ) mov ecx,0x10ddeeff ; font 1 & color ( 0xF0RRGGBB )
mov edx,labelt3 ; pointer to text beginning mov edx,labelt3 ; pointer to text beginning
mov esi,14 ; text length mov esi,labelt3.size ; text length
int 0x40 int 0x40
add ebx,38*65536+20 add ebx,38*65536+20
mov ecx,0xddeeff mov ecx,0xddeeff
@ -999,27 +975,42 @@ wnd_height dd 53
lsz labelt3,\ lsz labelt3,\
en, 'Background set',\ en, 'Background set',\
ru, "“áâ ­®¢ª  ä®­ " ru, "“áâ ­®¢ª  ä®­ ",\
de, 'Hintergrund gesetzt'
lsz bgrdtext,\ lsz bgrdtext,\
en, 'SET AS BACKGROUND:',\ en, 'SET AS BACKGROUND:',\
ru, '’¨¯ ®¡®¥¢:' ru, '’¨¯ ®¡®¥¢:',\
de, 'ALS HINTERGRUND'
lsz tiled,\ lsz tiled,\
en, 'TILED',\ en, 'TILED',\
ru, '§ ¬®áâ¨âì' ru, '§ ¬®áâ¨âì',\
de, 'GEKACHELT'
lsz stretch,\ lsz stretch,\
en, 'STRETCH',\ en, 'STRETCH',\
ru, 'à áâï­ãâì' ru, 'à áâï­ãâì',\
de, 'GESTRECKT'
lsz ok_btn,\ lsz ok_btn,\
en, 'Ok',\ en, 'Ok',\
ru, 'Ok' ru, 'Ok',\
de, 'Ok'
pos: dd 6
fileinfo:
dd 0
dd 0
dd 0
dd 0x290000-I_END
dd I_END
string:
db '/rd/1/bgr.bmp',0
IM_END: IM_END:
rb string+257-$
process_info: process_info:
temp_area: temp_area:
rb 0x10000 rb 0x10000

View File

@ -1,4 +1,4 @@
@erase lang.inc @erase lang.inc
@echo lang fix ru >lang.inc @echo lang fix ge >lang.inc
@fasm mhc.asm mhc @fasm mhc.asm mhc
@pause @pause

View File

@ -207,7 +207,7 @@ ENTRANCE:
xor eax,eax ; Define window xor eax,eax ; Define window
mov ebx,100*65536+240 mov ebx,100*65536+240
mov ecx,100*65536+130 mov ecx,100*65536+130
mov edx,0x02AAAAAA mov edx,0x03AAAAAA
mov esi,0x80777777 mov esi,0x80777777
mov edi,0x00777777 mov edi,0x00777777
int 0x40 int 0x40
@ -232,16 +232,17 @@ ENTRANCE:
pusha pusha
mov eax,8 ; Buttons ; mov eax,8 ; Buttons
mov ebx,222*65536+10 ; mov ebx,222*65536+10
mov ecx,6*65536+10 ; mov ecx,6*65536+10
mov edx,1 ; mov edx,1
mov esi,0x555555 ; mov esi,0x555555
int 0x40 ; int 0x40
mov eax,8
mov ebx,15*65536+100 mov ebx,15*65536+100
mov ecx,70*65536+13 mov ecx,70*65536+13
inc edx mov edx,2
int 0x40 int 0x40
inc edx inc edx
@ -346,6 +347,25 @@ ENTRANCE:
; interface data ; interface data
if lang eq de
keylab db " PACKEN ENTPACKEN"
dellab db " LOESCHE I/O LOESCHE *.MHC"
title db "MHC 0.09"
arclab db "GEOACJTE DATEI:"
unplab db "EIN/AUSGABE DATEI:"
fin_text:
cmfile db "FILENAME.MHC"
iofile db "FILENAME.XYZ"
msgtable:
db "PACKE... "
db "ENTPACKE... "
db "KEIN I/O! "
db "KEINE *.MHC! "
db "FALSCHE METHODe!"
else
keylab db " COMPRESS DECOMPRESS" keylab db " COMPRESS DECOMPRESS"
dellab db " DELETE I/O DELETE *.MHC" dellab db " DELETE I/O DELETE *.MHC"
title db "MHC 0.09" title db "MHC 0.09"
@ -356,10 +376,6 @@ ENTRANCE:
cmfile db "FILENAME.MHC" cmfile db "FILENAME.MHC"
iofile db "FILENAME.XYZ" iofile db "FILENAME.XYZ"
editstate db 0
editpos db 0
msgid db 0
msgtable: msgtable:
db "COMPRESSING... " db "COMPRESSING... "
db "DECOMPRESSING..." db "DECOMPRESSING..."
@ -367,6 +383,14 @@ ENTRANCE:
db "*.MHC NOT FOUND!" db "*.MHC NOT FOUND!"
db "INVALID METHOD! " db "INVALID METHOD! "
end if
editstate db 0
editpos db 0
msgid db 0
; ======== compression/decompression engine ======== ; ======== compression/decompression engine ========
; Adresses declaration ; Adresses declaration

View File

@ -1,5 +1,3 @@
lang equ ru ; ru en fr ge fi
; ;
; Assembler ; Assembler
; SMALL ; SMALL
@ -220,9 +218,9 @@ local dlg_is_work, ready, procinfo
cld cld
;; mov esi,path ;; mov esi,path
mov edi,path mov edi,path
mov eax,0 xor eax,eax
mov ecx,200 mov ecx,(1024+16)/4
rep stosb rep stosd
;mov [get_loops],0 ;mov [get_loops],0
mov [dlg_pid_get],0 mov [dlg_pid_get],0
@ -264,7 +262,7 @@ new_d:
mov eax,60 mov eax,60
mov ebx,1 ; define IPC mov ebx,1 ; define IPC
mov ecx,path ; offset of area mov ecx,path ; offset of area
mov edx,150 ; size 150 bytes mov edx,1024+16 ; size
int 0x40 int 0x40
; change wanted events list 7-bit IPC event ; change wanted events list 7-bit IPC event
@ -276,7 +274,7 @@ new_d:
; STEP 3 run SYSTEM XTREE with parameters ; STEP 3 run SYSTEM XTREE with parameters
; ;
mov eax,58 mov eax,70
mov ebx,run_fileinfo mov ebx,run_fileinfo
int 0x40 int 0x40
@ -287,15 +285,14 @@ getmesloop:
mov eax,23 mov eax,23
mov ebx,50 ;0.5 sec mov ebx,50 ;0.5 sec
int 0x40 int 0x40
dec eax
cmp eax,1 jz mred
je mred dec eax
cmp eax,2 jz mkey
je mkey dec eax
cmp eax,3 jz mbutton
je mbutton cmp al, 7-3
cmp eax,7 jz mgetmes
je mgetmes
; Get number of procces ; Get number of procces
mov ebx,procinfo mov ebx,procinfo
@ -388,8 +385,8 @@ ready:
cld cld
mov esi,path+16 mov esi,path+16
mov edi,path mov edi,path
mov ecx,200 mov ecx,1024/4
rep movsb rep movsd
mov [edi],byte 0 mov [edi],byte 0
jmp openoff jmp openoff
@ -405,11 +402,11 @@ param:
dd 0,0 ; Type of dialog dd 0,0 ; Type of dialog
run_fileinfo: run_fileinfo:
dd 16 dd 7
dd 0 dd 0
dd param dd param
dd 0 dd 0
dd procinfo ; 0x10000 dd 0
;run_filepath ;run_filepath
db '/RD/1/SYSXTREE',0 db '/RD/1/SYSXTREE',0
@ -432,9 +429,9 @@ local dlg_is_work, ready, procinfo
cld cld
;; mov esi,path ;; mov esi,path
mov edi,path mov edi,path
mov eax,0 xor eax,eax
mov ecx,200 mov ecx,(1024+16)/4
rep stosb rep stosd
;mov [get_loops],0 ;mov [get_loops],0
mov [dlg_pid_get],0 mov [dlg_pid_get],0
@ -475,8 +472,8 @@ new_d:
; define IPC memory ; define IPC memory
mov eax,60 mov eax,60
mov ebx,1 ; define IPC mov ebx,1 ; define IPC
mov ecx,path ; offset of area mov ecx,path ; offset of area
mov edx,150 ; size 150 bytes mov edx,1024+16 ; size
int 0x40 int 0x40
; change wanted events list 7-bit IPC event ; change wanted events list 7-bit IPC event
@ -488,7 +485,7 @@ new_d:
; STEP 3 run SYSTEM XTREE with parameters ; STEP 3 run SYSTEM XTREE with parameters
; ;
mov eax,58 mov eax,70
mov ebx,run_fileinfo mov ebx,run_fileinfo
int 0x40 int 0x40
@ -499,15 +496,14 @@ getmesloop:
mov eax,23 mov eax,23
mov ebx,50 ;0.5 sec mov ebx,50 ;0.5 sec
int 0x40 int 0x40
dec eax
cmp eax,1 jz mred
je mred dec eax
cmp eax,2 jz mkey
je mkey dec eax
cmp eax,3 jz mbutton
je mbutton cmp al, 7-3
cmp eax,7 jz mgetmes
je mgetmes
; Get number of procces ; Get number of procces
mov ebx,procinfo mov ebx,procinfo
@ -600,8 +596,8 @@ ready:
cld cld
mov esi,path+16 mov esi,path+16
mov edi,path mov edi,path
mov ecx,200 mov ecx,1024/4
rep movsb rep movsd
mov [edi],byte 0 mov [edi],byte 0
jmp openoff jmp openoff
@ -617,11 +613,11 @@ param:
dd 0,0 ; Type of dialog dd 0,0 ; Type of dialog
run_fileinfo: run_fileinfo:
dd 16 dd 7
dd 0 dd 0
dd param dd param
dd 0 dd 0
dd procinfo dd 0
;run_filepath: ;run_filepath:
db '/RD/1/SYSXTREE',0 db '/RD/1/SYSXTREE',0

View File

@ -4066,7 +4066,7 @@ end virtual
pos00 dd 0 pos00 dd 0
newdoc db ? newdoc db ?
mypath: mypath:
times 258 db 0 times 1024+16 db 0
real_posy dd 0 real_posy dd 0
vscroll_size dd 0 vscroll_size dd 0
vscroll_pos dd 0 vscroll_pos dd 0

View File

@ -525,10 +525,14 @@ if lang eq ru
header: header:
db '„Ž‘Š€ Ž’‹€„Šˆ ˆ ŽŽ<C5BD>™…<E284A2>ˆ‰' db '„Ž‘Š€ Ž’‹€„Šˆ ˆ ŽŽ<C5BD>™…<E284A2>ˆ‰'
.len = $ - header .len = $ - header
else else if lang eq en
header: header:
db 'GENERAL DEBUG & MESSAGE BOARD' db 'GENERAL DEBUG & MESSAGE BOARD'
.len = $ - header .len = $ - header
else
header:
db 'ALLGEMEINES DEBUG- & NACHRICHTENBOARD'
.len = $ - header
end if end if
krnl_cnt dd 0 krnl_cnt dd 0
vmode dd 0 vmode dd 0

View File

@ -0,0 +1,4 @@
@erase lang.inc
@echo lang fix ge >lang.inc
@fasm board.asm board
@pause

View File

@ -0,0 +1,4 @@
@erase lang.inc
@echo lang fix de >lang.inc
@fasm calendar.asm calendar
@pause

View File

@ -10,25 +10,25 @@
WIN_X equ (150 shl 16+270) WIN_X equ (150 shl 16+270)
WIN_Y equ (100 shl 16+300) WIN_Y equ (100 shl 16+300)
LINE1 equ 27 shl 16+16 LINE1 equ 27 shl 16+16
B_MONTH_X equ 10 shl 16+158 B_MONTH_X equ 10 shl 16+158
B_Y equ LINE1 B_Y equ LINE1
B_MONTH equ 63 shl 16+32 B_MONTH equ 63 shl 16+32
B_WBAR_X equ 10 shl 16+250 B_WBAR_X equ 10 shl 16+250
B_WBAR_Y equ 64 shl 16+20 B_WBAR_Y equ 64 shl 16+20
B_WEEK equ 30 shl 16+70 B_WEEK equ 30 shl 16+70
B_WX_SHIFT equ 32 shl 16 B_WX_SHIFT equ 32 shl 16
B_DBAR_X equ B_WBAR_X B_DBAR_X equ B_WBAR_X
B_DBAR_Y equ 85 shl 16+190 B_DBAR_Y equ 85 shl 16+190
B_DROP equ B_MONTH+16 B_DROP equ B_MONTH+16
B_DAYS_Y equ 100 B_DAYS_Y equ 100
B_DAYS_SHIFT equ 30 B_DAYS_SHIFT equ 30
B_YEAR_X equ 173 shl 16+58 B_YEAR_X equ 173 shl 16+58
B_YEAR equ 188 shl 16+32 B_YEAR equ 188 shl 16+32
B_TODAY_X equ 25 shl 16 B_TODAY_X equ 25 shl 16
B_TODAY_Y equ 48 shl 16+10 B_TODAY_Y equ 48 shl 16+10
@ -36,33 +36,33 @@ B_TODAY equ 30 shl 16+50
B_SPIN_WIDTH equ 13 B_SPIN_WIDTH equ 13
B_SPIN_X equ 234 shl 16+B_SPIN_WIDTH B_SPIN_X equ 234 shl 16+B_SPIN_WIDTH
B_SPIN equ 238 shl 16+32 B_SPIN equ 238 shl 16+32
B_DATE_X equ 26 shl 16+60 B_DATE_X equ 26 shl 16+60
B_DATE_Y equ 275 shl 16+16 B_DATE_Y equ 275 shl 16+16
B_DATE_BSHIFT equ 80 shl 16 B_DATE_BSHIFT equ 80 shl 16
B_DATE equ 32 shl 16+280 B_DATE equ 32 shl 16+280
B_DATE_SHIFT equ 80 shl 16 B_DATE_SHIFT equ 80 shl 16
B_NS_X equ 185 shl 16+75 B_NS_X equ 185 shl 16+75
B_NS_Y equ 48 shl 16+10 B_NS_Y equ 48 shl 16+10
B_NS equ 190 shl 16+50 B_NS equ 190 shl 16+50
FOCUSABLE equ 5 FOCUSABLE equ 5
SKIP equ 1 SKIP equ 1
use32 ; ¢ª«îç¨âì 32-¡¨â­ë© ०¨¬  áᥬ¡«¥à  use32 ; ¢ª«îç¨âì 32-¡¨â­ë© ०¨¬  áᥬ¡«¥à 
org 0x0 ;  ¤à¥á æ¨ï á ­ã«ï org 0x0 ;  ¤à¥á æ¨ï á ­ã«ï
db 'MENUET01' ; 8-¡ ©â­ë© ¨¤¥­â¨ä¨ª â®à MenuetOS db 'MENUET01' ; 8-¡ ©â­ë© ¨¤¥­â¨ä¨ª â®à MenuetOS
dd 0x01 ; ¢¥àá¨ï § £®«®¢ª  (¢á¥£¤  1) dd 0x01 ; ¢¥àá¨ï § £®«®¢ª  (¢á¥£¤  1)
dd start ;  ¤à¥á ¬¥âª¨, á ª®â®à®© ­ ç¨­ ¥âáï ¢ë¯®«­¥­¨¥ ¯à®£à ¬¬ dd start ;  ¤à¥á ¬¥âª¨, á ª®â®à®© ­ ç¨­ ¥âáï ¢ë¯®«­¥­¨¥ ¯à®£à ¬¬
dd I_END ; à §¬¥à ¯à®£à ¬¬ë dd I_END ; à §¬¥à ¯à®£à ¬¬ë
dd 0x1000 ; ª®«¨ç¥á⢮ ¯ ¬ï⨠dd 0x1000 ; ª®«¨ç¥á⢮ ¯ ¬ïâ¨
dd 0x1000 ;  ¤à¥á ¢¥à設ë áâíª  dd 0x1000 ;  ¤à¥á ¢¥à設ë áâíª 
dd 0x0 ;  ¤à¥á ¡ãä¥à  ¤«ï áâப¨ ¯ à ¬¥â஢ (­¥ ¨á¯®«ì§ã¥âáï) dd 0x0 ;  ¤à¥á ¡ãä¥à  ¤«ï áâப¨ ¯ à ¬¥â஢ (­¥ ¨á¯®«ì§ã¥âáï)
dd 0x0 ; § à¥§¥à¢¨à®¢ ­® dd 0x0 ; § à¥§¥à¢¨à®¢ ­®
include 'lang.inc' include 'lang.inc'
include 'macros.inc' ; 㬥­ìè ¥â à §¬¥à ¯à®£à ¬¬ë include 'macros.inc' ; 㬥­ìè ¥â à §¬¥à ¯à®£à ¬¬ë
;include 'debug.inc' ;include 'debug.inc'
@ -103,7 +103,7 @@ if lang eq ru
db 'Žªâï¡àì ' db 'Žªâï¡àì '
db '<27>®ï¡àì ' db '<27>®ï¡àì '
db '„¥ª ¡àì ' db '„¥ª ¡àì '
else if lang eq ge else if lang eq de
db 9 db 9
db 'Januar ' db 'Januar '
db 'Februar ' db 'Februar '
@ -172,7 +172,7 @@ if lang eq ru
db '<27>â' db '<27>â'
db '‘¡' db '‘¡'
db '‚á' db '‚á'
else if lang eq ge else if lang eq de
db 2 db 2
db 7 db 7
db 'So' db 'So'
@ -240,34 +240,34 @@ start:
jnz .no2000 jnz .no2000
add [Year],100 add [Year],100
.no2000: .no2000:
jmp upd ; §¤¥áì ­ ç¨­ ¥âáï ¢ë¯®«­¥­¨¥ ¯à®£à ¬¬ë jmp upd ; §¤¥áì ­ ç¨­ ¥âáï ¢ë¯®«­¥­¨¥ ¯à®£à ¬¬ë
red: ; ¯¥à¥à¨á®¢ âì ®ª­® red: ; ¯¥à¥à¨á®¢ âì ®ª­®
call draw_window ; ¢ë§ë¢ ¥¬ ¯à®æ¥¤ãàã ®âà¨á®¢ª¨ ®ª­  call draw_window ; ¢ë§ë¢ ¥¬ ¯à®æ¥¤ãàã ®âà¨á®¢ª¨ ®ª­ 
still: ; ƒ<E282AC>‰ –ˆŠ‹ <20><>Žƒ<C5BD>€ŒŒ still: ; ƒ<E282AC>‰ –ˆŠ‹ <20><>Žƒ<C5BD>€ŒŒ
mov eax,10 ; äã­ªæ¨ï 10 - ¦¤ âì ᮡëâ¨ï mov eax,10 ; äã­ªæ¨ï 10 - ¦¤ âì ᮡëâ¨ï
int 0x40 ; ¢ë§ë¢ ¥¬ á¨á⥬ã int 0x40 ; ¢ë§ë¢ ¥¬ á¨á⥬ã
.evt: .evt:
mov ebp,[focus] mov ebp,[focus]
cmp eax,1 ; ¯¥à¥à¨á®¢ âì ®ª­® ? cmp eax,1 ; ¯¥à¥à¨á®¢ âì ®ª­® ?
je red ; ¥á«¨ ¤  - ­  ¬¥âªã red je red ; ¥á«¨ ¤  - ­  ¬¥âªã red
cmp eax,2 ; ­ ¦ â  ª« ¢¨è  ? cmp eax,2 ; ­ ¦ â  ª« ¢¨è  ?
je key ; ¥á«¨ ¤  - ­  key je key ; ¥á«¨ ¤  - ­  key
cmp eax,3 ; ­ ¦ â  ª­®¯ª  ? cmp eax,3 ; ­ ¦ â  ª­®¯ª  ?
je button ; ¥á«¨ ¤  - ­  button je button ; ¥á«¨ ¤  - ­  button
jmp still ; ¥á«¨ ¤à㣮¥ ᮡë⨥ - ¢ ­ ç «® 横«  jmp still ; ¥á«¨ ¤à㣮¥ ᮡë⨥ - ¢ ­ ç «® 横« 
key: ; ­ ¦ â  ª« ¢¨è  ­  ª« ¢¨ âãॠkey: ; ­ ¦ â  ª« ¢¨è  ­  ª« ¢¨ âãà¥
mov eax,2 ; äã­ªæ¨ï 2 - áç¨â âì ª®¤ ᨬ¢®«  mov eax,2 ; äã­ªæ¨ï 2 - áç¨â âì ª®¤ ᨬ¢®« 
int 0x40 ; ¢ë§®¢ á¨á⥬ë int 0x40 ; ¢ë§®¢ á¨á⥬ë
cmp ah,9 cmp ah,9
jne no_tab jne no_tab
.tab: .tab:
cmp ebp,FOCUSABLE cmp ebp,FOCUSABLE
je foc_cycle je foc_cycle
inc [focus] inc [focus]
upd: upd:
call calculate call calculate
@ -290,38 +290,38 @@ still: ;
cmp ebp,4 cmp ebp,4
jne no_spinner jne no_spinner
cmp ah,176 cmp ah,176
je year_dec je year_dec
cmp ah,179 cmp ah,179
je year_inc je year_inc
no_spinner: no_spinner:
cmp ebp,2 cmp ebp,2
jne .nomonth jne .nomonth
cmp ah,177 cmp ah,177
je noclose.drop je noclose.drop
jmp still jmp still
.nomonth: .nomonth:
cmp ebp,3 cmp ebp,3
je noy_up.year_evt je noy_up.year_evt
cmp ebp,5 cmp ebp,5
jne still jne still
mov ebx,[day_sel] mov ebx,[day_sel]
cmp ah,176 ; left arrow cmp ah,176 ; left arrow
jb still jb still
cmp ah,179 cmp ah,179
ja still ja still
shr eax,8 shr eax,8
sub eax,176 sub eax,176
movsx ecx,byte[day_bounds+eax*2] movsx ecx,byte[day_bounds+eax*2]
movzx eax,byte[day_bounds+eax*2+1] movzx eax,byte[day_bounds+eax*2+1]
add ecx,ebx add ecx,ebx
test eax,eax test eax,eax
jz .chk0 jz .chk0
cmp ecx,eax cmp ecx,eax
ja still ja still
.ok: .ok:
mov [day_sel],ecx mov [day_sel],ecx
call draw_days call draw_days
jmp still ; ¢¥à­ãâìáï ª ­ ç «ã 横«  jmp still ; ¢¥à­ãâìáï ª ­ ç «ã 横« 
.chk0: .chk0:
cmp ecx,eax cmp ecx,eax
jle still jle still
@ -329,9 +329,9 @@ still: ;
day_bounds db -1,0,7,0,-7,0,1,0 ; left,down,up,right day_bounds db -1,0,7,0,-7,0,1,0 ; left,down,up,right
button: ; ­ ¦ â  ª­®¯ª  ¢ ®ª­¥ ¯à®£à ¬¬ë button: ; ­ ¦ â  ª­®¯ª  ¢ ®ª­¥ ¯à®£à ¬¬ë
mov eax,17 ; 17 - ¯®«ãç¨âì ¨¤¥­â¨ä¨ª â®à ­ ¦ â®© ª­®¯ª¨ mov eax,17 ; 17 - ¯®«ãç¨âì ¨¤¥­â¨ä¨ª â®à ­ ¦ â®© ª­®¯ª¨
int 0x40 ; ¢ë§®¢ á¨á⥬ë int 0x40 ; ¢ë§®¢ á¨á⥬ë
movzx ebx,ah movzx ebx,ah
cmp ah,200 cmp ah,200
jbe nodayselect jbe nodayselect
@ -346,24 +346,24 @@ day_bounds db -1,0,7,0,-7,0,1,0 ; left,down,up,right
jmp red jmp red
nodayselect: nodayselect:
cmp ah,100 cmp ah,100
jb no_list jb no_list
sub ah,100 sub ah,100
mov byte[Month],ah mov byte[Month],ah
mov [focus],2 mov [focus],2
jmp upd jmp upd
no_list: no_list:
cmp ah,1 ; ¨¤¥­â¨ä¨ª â®à == 1 ? cmp ah,1 ; ¨¤¥­â¨ä¨ª â®à == 1 ?
jne noclose ; ¥á«¨ ­¥â - ¨¤¨ ¢¯¥àñ¤ ­  noclose jne noclose ; ¥á«¨ ­¥â - ¨¤¨ ¢¯¥àñ¤ ­  noclose
close: close:
or eax,-1 ; ¢ë室 ¨§ ¯à®£à ¬¬ë or eax,-1 ; ¢ë室 ¨§ ¯à®£à ¬¬ë
int 0x40 ; ¢ë§®¢ á¨á⥬ë int 0x40 ; ¢ë§®¢ á¨á⥬ë
noclose: noclose:
cmp ah,2 ; drop down list cmp ah,2 ; drop down list
jne no_dropdn jne no_dropdn
.drop: .drop:
mov [focus],2 mov [focus],2
cmp [dropped],al ; ==0 cmp [dropped],al ; ==0
jne red jne red
call draw_window call draw_window
mov edx,1 shl 31+231 mov edx,1 shl 31+231
@ -376,14 +376,14 @@ day_bounds db -1,0,7,0,-7,0,1,0 ; left,down,up,right
call draw_dropdown call draw_dropdown
jmp still jmp still
no_dropdn: no_dropdn:
cmp ah,3 ; year -1 cmp ah,3 ; year -1
jne noy_dn jne noy_dn
year_dec: year_dec:
dec [Year] dec [Year]
mov [focus],4 mov [focus],4
jmp upd jmp upd
noy_dn: noy_dn:
cmp ah,4 ; year+1 cmp ah,4 ; year+1
jne noy_up jne noy_up
year_inc: year_inc:
inc [Year] inc [Year]
@ -402,8 +402,8 @@ day_bounds db -1,0,7,0,-7,0,1,0 ; left,down,up,right
.year_evt: .year_evt:
mov ebx,10 mov ebx,10
cmp ah,9 cmp ah,9
je key.tab je key.tab
cmp ah,8 ; backspace cmp ah,8 ; backspace
jne .nobsp jne .nobsp
mov eax,[Year] mov eax,[Year]
xor edx,edx xor edx,edx
@ -413,17 +413,17 @@ day_bounds db -1,0,7,0,-7,0,1,0 ; left,down,up,right
call draw_year call draw_year
jmp .still jmp .still
.nobsp: .nobsp:
cmp ah,13 ; enter cmp ah,13 ; enter
je upd je upd
cmp ah,182 cmp ah,182
jne .noclear ; del jne .noclear ; del
xor eax,eax xor eax,eax
jmp .ch_year jmp .ch_year
.noclear: .noclear:
cmp ah,48 cmp ah,48
jb .still jb .still
cmp ah,57 cmp ah,57
ja .still ja .still
cmp [Year],1000 cmp [Year],1000
jae .still jae .still
shr eax,8 shr eax,8
@ -445,20 +445,20 @@ day_bounds db -1,0,7,0,-7,0,1,0 ; left,down,up,right
draw_window: draw_window:
mov eax,12 ; äã­ªæ¨ï 12: á®®¡é¨âì Ž‘ ®¡ ®âà¨á®¢ª¥ ®ª­  mov eax,12 ; äã­ªæ¨ï 12: á®®¡é¨âì Ž‘ ®¡ ®âà¨á®¢ª¥ ®ª­ 
mov ebx,1 ; 1 - ­ ç¨­ ¥¬ à¨á®¢ âì mov ebx,1 ; 1 - ­ ç¨­ ¥¬ à¨á®¢ âì
int 0x40 int 0x40
; ‘Ž‡„€ðŒ ŽŠ<C5BD>Ž ; ‘Ž‡„€ðŒ ŽŠ<C5BD>Ž
xor eax,eax ; äã­ªæ¨ï 0 : ®¯à¥¤¥«¨âì ¨ ®âà¨á®¢ âì ®ª­® xor eax,eax ; äã­ªæ¨ï 0 : ®¯à¥¤¥«¨âì ¨ ®âà¨á®¢ âì ®ª­®
mov ebx,WIN_X mov ebx,WIN_X
if SKIP eq 0 if SKIP eq 0
mov ecx,WIN_Y mov ecx,WIN_Y
else else
mov ecx,WIN_Y-15 mov ecx,WIN_Y-15
end if end if
mov edx,0x03aabbcc ; 梥â à ¡®ç¥© ®¡« á⨠RRGGBB,8->color gl mov edx,0x03aabbcc ; 梥â à ¡®ç¥© ®¡« á⨠RRGGBB,8->color gl
mov esi,0x805080d0 ; 梥⠯®«®áë § £®«®¢ª  RRGGBB,8->color gl mov esi,0x805080d0 ; 梥⠯®«®áë § £®«®¢ª  RRGGBB,8->color gl
mov edi,0x005080d0 ; 梥â à ¬ª¨ RRGGBB mov edi,0x005080d0 ; 梥â à ¬ª¨ RRGGBB
int 0x40 int 0x40
call draw_week call draw_week
@ -476,7 +476,7 @@ draw_window:
else else
mov edx,10 mov edx,10
end if end if
or edx,1 shl 29+1 shl 30 or edx,1 shl 29+1 shl 30
mov ebx,B_NS_X mov ebx,B_NS_X
mov ecx,B_NS_Y mov ecx,B_NS_Y
int 0x40 int 0x40
@ -496,11 +496,11 @@ draw_window:
int 0x40 int 0x40
call draw_days call draw_days
; ‡€ƒŽ‹Ž‚ŽŠ ŽŠ<C5BD> ; ‡€ƒŽ‹Ž‚ŽŠ ŽŠ<C5BD>
mov eax,4 ; äã­ªæ¨ï 4 : ­ ¯¨á âì ¢ ®ª­¥ ⥪áâ mov eax,4 ; äã­ªæ¨ï 4 : ­ ¯¨á âì ¢ ®ª­¥ ⥪áâ
mov ebx,8*65536+8 ; [x] *65536 + [y] mov ebx,8*65536+8 ; [x] *65536 + [y]
mov ecx,0x10ddeeff ; èà¨äâ 1 ¨ 梥â ( 0xF0RRGGBB ) mov ecx,0x10ddeeff ; èà¨äâ 1 ¨ 梥â ( 0xF0RRGGBB )
mov edx,zagolovok ;  ¤à¥á áâப¨ mov edx,zagolovok ;  ¤à¥á áâப¨
mov esi,zag_konets-zagolovok ; ¨ ¥ñ ¤«¨­  mov esi,zag_konets-zagolovok ; ¨ ¥ñ ¤«¨­ 
int 0x40 int 0x40
@ -518,7 +518,7 @@ draw_window:
mov esi,ns_end-n_style mov esi,ns_end-n_style
mov ebx,B_NS mov ebx,B_NS
cmp [new_style],1 cmp [new_style],1
je .high je .high
mov ecx,0xa0a0a0 mov ecx,0xa0a0a0
jmp .int jmp .int
.high: .high:
@ -548,10 +548,10 @@ draw_window:
call draw_year call draw_year
mov [dropped],0 mov [dropped],0
mov eax,12 ; äã­ªæ¨ï 12: á®®¡é¨âì Ž‘ ®¡ ®âà¨á®¢ª¥ ®ª­  mov eax,12 ; äã­ªæ¨ï 12: á®®¡é¨âì Ž‘ ®¡ ®âà¨á®¢ª¥ ®ª­ 
mov ebx,2 ; 2, § ª®­ç¨«¨ à¨á®¢ âì mov ebx,2 ; 2, § ª®­ç¨«¨ à¨á®¢ âì
int 0x40 int 0x40
ret ; ¢ë室¨¬ ¨§ ¯à®æ¥¤ãàë ret ; ¢ë室¨¬ ¨§ ¯à®æ¥¤ãàë
draw_year: draw_year:
mcall 8,B_YEAR_X,B_Y,5,0x05080d0 mcall 8,B_YEAR_X,B_Y,5,0x05080d0
@ -608,7 +608,7 @@ draw_week:
.week: .week:
push ecx push ecx
cmp ecx,edi cmp ecx,edi
je .holiday je .holiday
mov ecx,0x10000000 mov ecx,0x10000000
jmp .noholiday jmp .noholiday
.holiday: .holiday:
@ -646,7 +646,7 @@ draw_days:
mov ecx,edi mov ecx,edi
add cl,[week_days+1] add cl,[week_days+1]
cmp ecx,7 cmp ecx,7
je .holiday je .holiday
mov esi,0x10000000 mov esi,0x10000000
jmp .noholiday jmp .noholiday
.holiday: .holiday:
@ -663,7 +663,7 @@ draw_days:
sub ecx,7 shl 16 sub ecx,7 shl 16
mov edx,[number] mov edx,[number]
cmp edx,[day_sel] cmp edx,[day_sel]
je .draw_sel je .draw_sel
mov esi,0xe0e0e0 mov esi,0xe0e0e0
jmp .draw_but jmp .draw_but
.draw_sel: .draw_sel:
@ -711,10 +711,10 @@ is_leap_year:
mov [leap_year],0 mov [leap_year],0
mov eax,[Year] mov eax,[Year]
mov bl,100 mov bl,100
div bl ; ah=Year mod 100, al=Year%100 div bl ; ah=Year mod 100, al=Year%100
test ah,ah test ah,ah
jz .century jz .century
shr ax,8 ; ax - last 2 digits shr ax,8 ; ax - last 2 digits
.century: .century:
test al,11b test al,11b
jnz .noleap jnz .noleap
@ -745,7 +745,7 @@ calculate:
add eax,ecx add eax,ecx
dec eax dec eax
cmp [new_style],0 cmp [new_style],0
je .nonew je .nonew
add eax,2 add eax,2
xchg eax,ebx xchg eax,ebx
mov ecx,100 mov ecx,100
@ -770,9 +770,9 @@ calculate:
; ¨­â¥àä¥©á ¯à®£à ¬¬ë ¤¢ãï§ëç­ë© - § ¤ ©â¥ ï§ëª ¢ macros.inc ; ¨­â¥àä¥©á ¯à®£à ¬¬ë ¤¢ãï§ëç­ë© - § ¤ ©â¥ ï§ëª ¢ macros.inc
day_count db 3,0,3,2,3,2,3,3,2,3,2,3 day_count db 3,0,3,2,3,2,3,3,2,3,2,3
Fkeys db 210,211,212,213,214,215,216,217,208,209,228,159 Fkeys db 210,211,212,213,214,215,216,217,208,209,228,159
zagolovok: ; áâப  § £®«®¢ª  zagolovok: ; áâப  § £®«®¢ª 
if lang eq ru if lang eq ru
db 'Š€<E280B9>„€<E2809E>œ' db 'Š€<E280B9>„€<E2809E>œ'
else if lang eq ge else if lang eq ge
@ -782,7 +782,7 @@ else if lang eq fr
else else
db 'CALENDAR' db 'CALENDAR'
end if end if
zag_konets: ; ¨ ¥ñ ª®­¥æ zag_konets: ; ¨ ¥ñ ª®­¥æ
if SKIP eq 0 if SKIP eq 0
datebut: datebut:
if lang eq ru if lang eq ru
@ -802,8 +802,8 @@ end if
n_style: n_style:
if lang eq ru if lang eq ru
db '<27>®¢ë© á⨫ì' db '<27>®¢ë© á⨫ì'
else if lang eq ge else if lang eq de
db 'Neustil' db 'Neuer Stil'
else if lang eq fr else if lang eq fr
db 'Nouveau' db 'Nouveau'
else else
@ -825,7 +825,7 @@ focus dd 3
new_style dd 1 new_style dd 1
dropped db 0 dropped db 0
I_END: ; ª®­¥æ ¯à®£à ¬¬ë I_END: ; ª®­¥æ ¯à®£à ¬¬ë
firstday dd ? firstday dd ?
Year dd ? Year dd ?
Month dd ? Month dd ?
@ -834,5 +834,5 @@ all_days dd ?
datestr dd ? datestr dd ?
leap_year dd ? leap_year dd ?
number dd ? number dd ?
year_input dd ? year_input dd ?

View File

@ -1,4 +1,4 @@
@erase lang.inc @erase lang.inc
@echo lang fix ru >lang.inc @echo lang fix de >lang.inc
@fasm cpu.asm cpu @fasm cpu.asm cpu
@pause @pause

View File

@ -589,6 +589,7 @@ file_start: dd 16
start_application: db '/RD/1/LAUNCHER',0 start_application: db '/RD/1/LAUNCHER',0
times 60 db 32 times 60 db 32
if lang eq en
text: text:
db ' NAME/TERMINATE PID CPU-USAGE % ' db ' NAME/TERMINATE PID CPU-USAGE % '
db 'MEMORY START/USAGE W-STACK W-SIZE' db 'MEMORY START/USAGE W-STACK W-SIZE'
@ -602,6 +603,21 @@ tbte_2:
labelt: labelt:
db 'Processes - Ctrl/Alt/Del' db 'Processes - Ctrl/Alt/Del'
labellen: labellen:
else
text:
db ' NAME/BEENDEN PID CPU-LAST % '
db 'SPEICHER START/NUTZUNG W-STACK W-SIZE'
tbts: db 'SEITE ZURUECK SEITE VOR REBOOT SYSTEM'
tbte:
tbts_2 db '>'
tbts_3 db 'START'
tbte_2:
labelt:
db 'Prozesse - Ctrl/Alt/Del'
labellen:
end if
I_END: I_END:

View File

@ -0,0 +1,4 @@
@erase lang.inc
@echo lang fix ge >lang.inc
@fasm end.asm end
@pause

View File

@ -172,15 +172,7 @@ if lang eq ru
db '<27><EFBFBD>…‡€<E280A1>Š ŽŒ…<C592>€' db '<27><EFBFBD>…‡€<E280A1>Š ŽŒ…<C592>€'
label3_len = $ - label3 label3_len = $ - label3
label4: else if lang eq en
db '(End) (Home)'
label4_len = $ - label4
label5:
db '(Enter) (Esc)'
label5_len = $ - label5
else
label1: label1:
db ' SELECT:' db ' SELECT:'
@ -194,6 +186,22 @@ else
db ' RESTART CANCEL' db ' RESTART CANCEL'
label3_len = $ - label3 label3_len = $ - label3
else
label1:
db 'WAEHLEN:'
label1_len = $ - label1
label2:
db ' BEENDEN KERNEL'
label2_len = $ - label2
label3:
db ' NEUSTART ABBRECHEN'
label3_len = $ - label3
end if
label4: label4:
db '(End) (Home)' db '(End) (Home)'
label4_len = $ - label4 label4_len = $ - label4
@ -202,8 +210,6 @@ else
db '(Enter) (Esc)' db '(Enter) (Esc)'
label5_len = $ - label5 label5_len = $ - label5
end if
udata udata
sc system_colors sc system_colors

View File

@ -0,0 +1,4 @@
@erase lang.inc
@echo lang fix ge >lang.inc
@fasm icon.asm icon
@pause

View File

@ -26,8 +26,8 @@ ICON_STRIP equ '/RD/1/ICONSTRP.GIF'
dd icon_data+0x30000 ; memory for app dd icon_data+0x30000 ; memory for app
dd icon_data+0x30000 ; esp dd icon_data+0x30000 ; esp
dd I_Param , 0x0 ; I_Param , I_Icon dd I_Param , 0x0 ; I_Param , I_Icon
include 'lang.inc'
include 'macros.inc' include 'macros.inc'
include 'lang.inc'
COLOR_ORDER equ MENUETOS COLOR_ORDER equ MENUETOS
include 'gif_lite.inc' include 'gif_lite.inc'
;include 'debug.inc' ;include 'debug.inc'
@ -790,40 +790,53 @@ if lang eq ru
db 255,255,255,0, ' „Ž<E2809E>ˆœ “„€‹ˆ’œ ' db 255,255,255,0, ' „Ž<E2809E>ˆœ “„€‹ˆ’œ '
db 0,0,0,0, '<27>€†Œˆ<20><20>Ž‡ˆˆž ˆŠŽ<C5A0>Šˆ „‹Ÿ <20>…„€Šˆ<E28099>Ž<E2809A>ˆŸ ' db 0,0,0,0, '<27>€†Œˆ<20><20>Ž‡ˆˆž ˆŠŽ<C5A0>Šˆ „‹Ÿ <20>…„€Šˆ<E28099>Ž<E2809A>ˆŸ '
db 'x' ; <- END MARKER, DONT DELETE db 'x' ; <- END MARKER, DONT DELETE
add_text db '<27>€†Œˆ<20><20>Ž‡ˆˆž <20>ˆ<CB86>Žœ‡“…ŒŽ‰ ˆŠŽ<C5A0>Šˆ'
add_text_len:
rem_text db '<27>€†Œˆ<20><20>Ž‡ˆˆž ˆ<CB86>Žœ‡“…ŒŽ‰ ˆŠŽ<C5A0>Šˆ'
rem_text_len:
labelt: labelt:
db '<27> áâனª  à ¡®ç¥£® á⮫ ' db '<27> áâனª  à ¡®ç¥£® á⮫ '
labellen: labellen:
else else if lang eq en
text: text:
db 255,255,255,0, ' TITLE ' db 255,255,255,0, ' TITLE '
db 255,255,255,0, ' APP NAME ' db 255,255,255,0, ' APP NAME '
db 255,255,255,0, ' PARAMETERS ' db 255,255,255,0, ' PARAMETERS '
db 255,255,255,0, ' APPLY CHANGES ' db 255,255,255,0, ' APPLY CHANGES '
db 255,255,255,0, ' ADD ICON REMOVE ICON ' db 255,255,255,0, ' ADD ICON REMOVE ICON '
db 0,0,0,0, ' PRESS ON POSITION OF ICON TO EDIT ' db 0,0,0,0, 'CLICK BUTTON ON ICON POSITION FOR EDIT '
db 'x' ; <- END MARKER, DONT DELETE db 'x' ; <- END MARKER, DONT DELETE
add_text db 'CLICK ON A NOT USED POSITION'
add_text_len:
rem_text db 'CLICK ICON POSITION; YOU WANT TO DELETE'
rem_text_len:
labelt: labelt:
db 'Icon Manager' db 'Icon Manager'
labellen: labellen:
else
text:
db 255,255,255,0, ' TITLE '
db 255,255,255,0, ' APP NAME '
db 255,255,255,0, ' PARAMETER '
db 255,255,255,0, ' ANWENDEN '
db 255,255,255,0, ' HINZUFUEGEN ENTFERNEN '
db 0,0,0,0, 'AUF BUTTON KLICKEN, UM ICON ZU EDITIEREN '
db 'x' ; <- END MARKER, DONT DELETE
add_text db 'AUF UNBENUTZTE ICONPOSITION KLICKEN'
add_text_len:
rem_text db 'ICON ANKLICKEN; DAS GELOESCHT WERDEN SOLL'
rem_text_len:
labelt:
db 'Icon Manager'
labellen:
end if end if
;ya dd 0 ;ya dd 0
if lang eq ru
add_text db '<27>€†Œˆ<20><20>Ž‡ˆˆž <20>ˆ<CB86>Žœ‡“…ŒŽ‰ ˆŠŽ<C5A0>Šˆ'
add_text_len:
rem_text db '<27>€†Œˆ<20><20>Ž‡ˆˆž ˆ<CB86>Žœ‡“…ŒŽ‰ ˆŠŽ<C5A0>Šˆ'
rem_text_len:
else
add_text db 'PRESS ON POSITION OF UNUSED ICON'
add_text_len:
rem_text db 'PRESS ON POSITION OF USED ICON'
rem_text_len:
end if
arrows db '</>' arrows db '</>'
iconname: iconname:
db ICON_APP,0 db ICON_APP,0

View File

@ -117,7 +117,8 @@ use32
include 'macros.inc' include 'macros.inc'
include 'VENDORS.INC' include 'vendors.inc'
include 'lang.inc'
START: ; start of execution START: ; start of execution
call draw_window call draw_window
@ -473,6 +474,26 @@ labelt:
db 'PCI Device Enumeration v 1.31 by J. Delozier, S. Kuzmin and V. Hanla' db 'PCI Device Enumeration v 1.31 by J. Delozier, S. Kuzmin and V. Hanla'
labellen: labellen:
if lang eq de
PCIWin:
db 'Im Einstellungsmenue muss der PCI Zugriff eingeschaltet sein. '
db ' '
db ' '
db ' '
db 'PCI Version = '
db ' '
db 'Letzter PCI Bus = '
db ' '
db 'Anzahl von Geraeten = '
db ' '
db ' '
db ' '
db 'VenID DevID Bus# Dev# Fnc Rev Class Subclass Herste'
db 'ller Beschreibung '
db '----- ----- ---- ---- --- --- ----- -------- --------------------'
db '---------------------- ----------------'
db 'x'
else
PCIWin: PCIWin:
db 'Please remember to enable PCI Access to Applications in Setup Menu.' db 'Please remember to enable PCI Access to Applications in Setup Menu.'
db ' ' db ' '
@ -482,7 +503,7 @@ db 'PCI Version = '
db ' ' db ' '
db 'Last PCI Bus = ' db 'Last PCI Bus = '
db ' ' db ' '
db 'Quantity of devices = ' db 'Number of devices = '
db ' ' db ' '
db ' ' db ' '
db ' ' db ' '
@ -491,6 +512,8 @@ db 'any Description '
db '----- ----- ---- ---- --- --- ----- -------- --------------------' db '----- ----- ---- ---- --- --- ----- -------- --------------------'
db '---------------------- ----------------' db '---------------------- ----------------'
db 'x' db 'x'
end if
total db 0 total db 0
V_Bus db 0 V_Bus db 0

View File

@ -1,4 +1,4 @@
@erase lang.inc @erase lang.inc
@echo lang fix ru >lang.inc @echo lang fix ge >lang.inc
@fasm pcidev.asm pcidev @fasm pcidev.asm pcidev
@pause @pause