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
35 changed files with 1017 additions and 557 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

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

View File

@ -1,4 +0,0 @@
@erase lang.inc
@echo lang fix ru >lang.inc
@fasm cmd.asm cmd
@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, [winyo]
shl ecx, 16
mov cx, [winys] mov cx, [winys]
xor eax,eax ; DRAW WINDOW
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]
and [file_dir], 0
jmp close jmp close
.l11: @@:
mov esi,esp movzx edi, byte [name_string.cursor]
movzx edi,byte[name_string.cursor] add edi, name_string
add edi,name_string lea esi, [dirinfo+32+40]
@@:
lodsb lodsb
cmp al,0
je .l10
cmp al,229
jne .l0
add esp,32
jmp display_next
.l0:
stosb stosb
mov cl,7 test al, al
.l2: jnz @b
lodsb mov ecx, name_string.end
cmp al,32 sub ecx, edi
jna .l3 rep stosb
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,38 +76,33 @@ 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
@@:
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 jmp still
button: ; button button: ; button
@ -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

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

View File

@ -1,4 +0,0 @@
@erase lang.inc
@echo lang fix ru >lang.inc
@fasm mhc.asm mhc
@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
@ -476,7 +473,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
@ -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

@ -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'
@ -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

View File

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

View File

@ -1,4 +0,0 @@
@erase lang.inc
@echo lang fix ru >lang.inc
@fasm cpu.asm cpu
@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