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
include "boot/booteng.inc" ; english system boot messages
else
else if lang eq ru
include "boot/bootru.inc" ; russian system boot messages
else
include "boot/bootge.inc" ; german system boot messages
;!!!
end if
include "boot/ru.inc" ; Russian font

View File

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

View File

@ -19,7 +19,7 @@ use32
dd 0x0
include "macros.inc"
include "lang.inc"
START:
call cmdexist
@ -300,7 +300,7 @@ draw:
mov eax,0
mov ebx,100*65536+492
mov ecx,100*65536+280
mov edx,0
mov edx,0x3000000
mov esi,0x805080d0
mov edi,0x005080d0
int 0x40
@ -312,12 +312,12 @@ draw:
mov esi,title_end-title
int 0x40
mov eax,8
mov ebx,(492-19)*65536+12
mov ecx,5*65536+12
mov edx,1
mov esi,0x6688dd
int 0x40
; mov eax,8
; mov ebx,(492-19)*65536+12
; mov ecx,5*65536+12
; mov edx,1
; mov esi,0x6688dd
; int 0x40
mov eax,12
mov ebx,2
@ -977,7 +977,7 @@ err:
shl ebx,16
add ebx,[xpos]
mov ecx,0x00ddeeff
mov esi,27
mov esi,33
int 0x40
cld
@ -2836,7 +2836,50 @@ title_end:
smb_cursor db '|'
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 '
h2 db ' copyleft Chemist - dmitry_gt@tut.by '
h3 db ' Available commands: '
@ -2856,7 +2899,7 @@ h16 db ' tinypad&cmd.asm - open cmd.asm '
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_hd11 db '-------------------------------------------- '
@ -2879,7 +2922,7 @@ mess14 db 'File successfully renamed '
mess15 db 'ERROR: Can not rename file! '
mess16 db 'You must specify a command script filename! '
mess17 db 'This command is available only in scripts! '
end if
linen dd 2000
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, ' COPY SOURCE -> DESTINATION ',\
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, 'DESTINATION: | ',\
@ -372,6 +377,7 @@ lsz text,\
lsz header,\
ru, 'ŠŽ<C5A0>ˆ<EFBFBD>Žœ ”€‰‹',\
en, 'SYSTREE FILE COPIER',\
de, 'SYSTREE DATEIKOPIERER',\
fr, 'COPIER LE FICHIER'
@ -405,7 +411,7 @@ strtbl errors,\
"?",\
"(§ ¯¨áì) ä ©« ­¥ ­ ©¤¥­",\
"(§ ¯¨áì) ­¥¨§¢¥áâ­ ï ®è¨¡ª "
else
else if lang eq en
strtbl errors,\
"Success!",\
"(read) no hd base or partition defined",\
@ -422,6 +428,23 @@ strtbl errors,\
"?",\
"(write) end of file",\
"(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
I_END:

View File

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

View File

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

View File

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

View File

@ -1,51 +1,45 @@
file_handler:
.position=0
.size=4
.bufer_block=8
.operation=12
.first_block=16
.n_blocks=20
.bufer=24
.work_area=28
.name=32
.st_size=32+128
.operation=0
.position=4
.reserved=8
.n_bytes=12
.bufer=16
.name=20
.st_size=20+1024
open: ;esi=name_string
;retorna eax
pushad
push dword [work_area]
mov ecx,512 ;bufer
call malloc
push edi
mov ecx,file_handler.st_size
call mallocz
pop dword[edi+file_handler.bufer]
pop dword[edi+file_handler.work_area]
mov [esp+28],edi
mov ecx,100
push edi
mov ecx,1024
add edi,file_handler.name
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
; 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
jnz close.b
mov [edi+file_handler.size],ebx
@@:
clc
popad
ret
.virtual:
mov byte [fileattr], 0x10
jmp @b
close:
pushad
.b:
mov eax,[esp+28]
mov edi,[eax+file_handler.bufer]
call free
mov edi,eax
mov edi,[esp+28]
call free
popad
xor eax,eax
@ -55,88 +49,20 @@ close:
read: ;(f,bufer,nbytes) eax,edi,ecx ncr
;retorna bytes leidos en ecx
pushad
mov edx,[eax+file_handler.size]
sub edx,[eax+file_handler.position]
cmp edx,ecx
jnc .nb_ok
mov ecx,edx
mov [esp+24],edx
.nb_ok:
jecxz .final
mov byte[eax+file_handler.operation],0
test dword[eax+file_handler.position],511
jz .l1
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:
lea ebx, [eax+file_handler.operation]
mov byte [ebx], 0
mov [ebx+12], ecx
mov [ebx+16], edi
mov eax, 70
int 0x40
cmp ebx, -1
sbb ebx, -1
mov eax, [esp+28]
add [eax+file_handler.position], ebx
mov [esp+24], ebx
popad
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]
ret
lseek: ;eax=file edx=pos

View File

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

View File

@ -18,7 +18,10 @@
; unos retoques
; version 0.14 10th August 2004
; Mike Hibbett Added setting default colours
; version 0.15 24th August 2006
; diamond (rewritten to function 70)
;
memsize=20000h
org 0
PARAMS = memsize - 1024
@ -33,7 +36,6 @@ use32
dd memsize - 1024 ; esp
dd PARAMS , 0x0 ; I_Param , I_Icon
include 'lang.inc'
stack_size=4096 + 1024
include 'macros.inc'
@ -50,10 +52,6 @@ START: ; start of execution
mov edi,fin
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 draw_window
call read_string.rs_done
@ -148,10 +146,6 @@ boot_set_background:
mov ecx,memsize-fin-stack_size ; size
mov edi,fin ; pointer
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
mov esi,name_string
call open
@ -244,15 +238,12 @@ draw_window:
; Draw the window to the appropriate size - it may have
; been resized by the user
mov eax, 0
cmp [winxs], ax
cmp [winxs], 0
jne dw_001
; Give the screen some inital defaults
mov ax, 400
mov [winxs], ax
mov ax, 300
mov [winys], ax
mov [winxs], 400
mov [winys], 300
mov ax, 100
mov [winxo], ax
mov [winyo], ax
@ -273,16 +264,12 @@ dw_001:
mov [winys], ax
dw_002:
mov bx, [winxo]
shl ebx, 16
mov bx, [winxs]
mov ebx, dword [winxo-2]
mov bx, [winxs]
mov ecx, dword [winyo-2]
mov cx, [winys]
mov cx, [winyo]
shl ecx, 16
mov cx, [winys]
mov eax,0 ; DRAW WINDOW
xor eax,eax ; DRAW WINDOW
mov edx,[wcolor]
add edx,0x02000000
mov esi,0x80557799
@ -461,84 +448,59 @@ print_strings:
ret
slideshow:
test dword[file_dir],-1
jnz .exit
test dword[jpeg_st],-1
jz .exit
mov esi,name_string
movzx ecx,byte[name_string.cursor]
.l1:
cmp byte[esi+ecx],'/'
je .l2
loop .l1
.exit:
ret
.l2:
mov byte[esi+ecx],0
call open
mov byte[esi+ecx],'/'
test eax,eax
jz .exit
mov dword[eax+file_handler.size],-1 ;directory size is always 0
mov [file_dir],eax
inc cl
mov [name_string.cursor],cl
cmp [file_dir], 0
jnz .exit
cmp [jpeg_st], 0
jz .exit
mov esi, name_string
movzx ecx, byte [name_string.cursor]
.l1:
cmp byte [esi+ecx], '/'
jz .l2
loop .l1
.exit:
ret
.l2:
mov byte [esi+ecx], 0
call open
mov byte [esi+ecx], '/'
test eax, eax
jz .exit
test byte [fileattr], 0x10
jz .exit
mov [file_dir], eax
inc ecx
mov [name_string.cursor], cl
display_next:
mov eax,[file_dir]
test eax,eax
jnz .l1
ret
.l1:
mov ecx,32
sub esp,ecx
mov edi,esp
call read
cmp ecx,32
jnc .l11
.l10:
add esp,32
mov eax,dword[file_dir]
mov dword[file_dir],0
jmp close
.l11:
mov esi,esp
movzx edi,byte[name_string.cursor]
add edi,name_string
lodsb
cmp al,0
je .l10
cmp al,229
jne .l0
add esp,32
jmp display_next
.l0:
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
mov ebx, [file_dir]
test ebx, ebx
jnz @f
ret
@@:
mov byte [ebx], 1
mov byte [ebx+12], 1
mov dword [ebx+16], dirinfo
mov eax, 70
int 0x40
mov eax, [file_dir]
inc dword [eax+4]
cmp ebx, 1
jz @f
mov eax, [file_dir]
and [file_dir], 0
jmp close
@@:
movzx edi, byte [name_string.cursor]
add edi, name_string
lea esi, [dirinfo+32+40]
@@:
lodsb
stosb
test al, al
jnz @b
mov ecx, name_string.end
sub ecx, edi
rep stosb
call print_strings
mov esi,name_string
call open
@ -558,7 +520,6 @@ display_next:
jmp jpeg_display
include 'filelib.asm'
include 'memlib.asm'
include 'jpeglib.asm'
@ -567,7 +528,7 @@ include 'jpeglib.asm'
; DATA AREA
wcolor dd 0x000000
labelt db 'Jpegview v0.14'
labelt db 'Jpegview v0.15'
labellen:
setname db 'SLIDESHOW'
setnamelen:
@ -580,18 +541,16 @@ x_offset dd 0
x_numofbytes dd 0
x_numofb2 dd 0
x_counter dd 0
winxo: dw 0
winyo: dw 0
winxs: dw 0
winys: dw 0
jpeg_st: dd 0
file_dir: dd 0
work_area: dd 0
winxo dw 0
winyo dw 0
winxs dw 0
winys dw 0
jpeg_st dd 0
file_dir dd 0
tcolor dd 0x000000
btcolor dd 0x224466+0x808080
name_string: db '/rd/1/jpegview.jpg',0
rb 100
rb 256
.end:
.cursor: db 19
.cursor2: db 0
@ -612,5 +571,5 @@ iniciomemoria:
fin:
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
jz .no_param
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>
add al,14h
cld
rep stosb
rep stosd
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
add edi,-temp_area ; get length of the string
dec edi
lea ecx, [edi-temp_area]
mov ecx,edi
mov esi,temp_area
mov edi,string
rep movsb ; copy string from temp_area to "string" (filename)
@ -72,6 +68,7 @@ START: ; start of execution
; ⥯¥àì ¢ ecx ­®¬¥à ¯à®æ¥áá 
mov [process],ecx
draw_still:
call draw_window
still:
@ -79,39 +76,34 @@ still:
mov eax,10 ; wait here for event
int 0x40
cmp eax,1 ; redraw request ?
je red
cmp eax,2 ; key in buffer ?
je key
cmp eax,3 ; button in buffer ?
je button
dec eax
jz red
dec eax
jnz 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
red:
bt [status],2
jnc @f
mov eax,18
mov ebx,3
mov ecx,[process]
int 0x40
btr [status],2
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
test byte [status], 4
jz draw_still
mov al, 18
mov ebx, 3
mov ecx, [process]
int 0x40
and byte [status], not 4
jmp still
button: ; button
mov eax,17 ; get id
@ -126,9 +118,9 @@ still:
cmp ah,2
jne nofile
kfile:
bt dword [status],0
jc still
bts dword [status],0
test byte [status], 1
jnz still
or byte [status], 1
mov eax,51
mov ebx,1
mov ecx,thread1
@ -163,9 +155,9 @@ still:
cmp ah,4
jne noinfo
kinfo:
bt dword [status],1
jc still
bts dword [status],1
test byte [status], 2
jnz still
or byte [status], 2
mov eax,51
mov ebx,1
mov ecx,thread2
@ -178,9 +170,9 @@ still:
cmp ah,5
jne still
kbgrd:
bt dword [status],3
jc still
bts dword [status],3
test byte [status], 8
jnz still
or byte [status], 8
mov eax,51
mov ebx,1
mov ecx,thread3
@ -197,21 +189,9 @@ still:
load_image:
mov dword [fileinfo+8],1 ; how many blocks to read (1)
mov eax,58
mov ebx,fileinfo
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, 70
mov ebx, fileinfo
int 0x40
mov eax,[I_END+18]
mov ebx,[I_END+22]
add eax,20
@ -263,7 +243,7 @@ load_image:
mov esi, ecx
imul esi, edx
imul esi, 3
lea esi, [esi+esi*2]
mov ebx,5
mov ecx,[soi]
xor edx,edx
@ -282,12 +262,14 @@ load_image:
convert:
movzx eax,word [I_END+28]
mul dword [I_END+18]
mov ebx,32
div ebx
test edx,edx
je noaddword
inc eax
noaddword:
; mov ebx,32
; div ebx
; test edx,edx
; je noaddword
; inc eax
; noaddword:
add eax, 31
shr eax, 5
mov [dwps],eax ;dwps-doublewords per string
shl eax,2
mov [bps],eax ;bps-bytes per string
@ -462,7 +444,8 @@ labelt:
lsz buttext,\
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
bps dd 0
@ -634,7 +617,7 @@ draw_window1:
mov ebx,8*65536+8 ; [x start] *65536 + [y start]
mov ecx,0x10ddeeff ; font 1 & color ( 0xF0RRGGBB )
mov edx,labelt1 ; pointer to text beginning
mov esi,4 ; text length
mov esi,labelt1.size ; text length
int 0x40
call drawstring
@ -679,21 +662,8 @@ draw_window1:
lsz labelt1,\
en, 'File',\
ru, '” ©«'
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 ' '
ru, '” ©«',\
de, 'Datei'
thread2: ; start of info thread
@ -823,7 +793,8 @@ draw_window2:
lsz labelt2,\
en, 'File info',\
ru, 'ˆ­ä®à¬ æ¨ï ® ä ©«¥'
ru, 'ˆ­ä®à¬ æ¨ï ® ä ©«¥',\
de, 'Dateiinfo'
lsz fitext,\
en, 'FILE SIZE ',\
@ -834,7 +805,12 @@ lsz fitext,\
ru, '<27> §¬¥à ä ©«  ',\
ru, '˜¨à¨­  ',\
ru, '‚ëá®â  ',\
ru, '<27>¨â ­  ¯¨ªá¥« '
ru, '<27>¨â ­  ¯¨ªá¥« ',\
\
de, 'FATEIGROESSE ',\
de, 'X GROESSE ',\
de, 'Y GROESSE ',\
de, 'BITS PER PIXEL'
thread3: ; start of bgrd thread
@ -939,7 +915,7 @@ draw_window3:
mov ebx,8*65536+8 ; [x start] *65536 + [y start]
mov ecx,0x10ddeeff ; font 1 & color ( 0xF0RRGGBB )
mov edx,labelt3 ; pointer to text beginning
mov esi,14 ; text length
mov esi,labelt3.size ; text length
int 0x40
add ebx,38*65536+20
mov ecx,0xddeeff
@ -999,27 +975,42 @@ wnd_height dd 53
lsz labelt3,\
en, 'Background set',\
ru, "“áâ ­®¢ª  ä®­ "
ru, "“áâ ­®¢ª  ä®­ ",\
de, 'Hintergrund gesetzt'
lsz bgrdtext,\
en, 'SET AS BACKGROUND:',\
ru, '’¨¯ ®¡®¥¢:'
ru, '’¨¯ ®¡®¥¢:',\
de, 'ALS HINTERGRUND'
lsz tiled,\
en, 'TILED',\
ru, '§ ¬®áâ¨âì'
ru, '§ ¬®áâ¨âì',\
de, 'GEKACHELT'
lsz stretch,\
en, 'STRETCH',\
ru, 'à áâï­ãâì'
ru, 'à áâï­ãâì',\
de, 'GESTRECKT'
lsz ok_btn,\
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:
rb string+257-$
process_info:
temp_area:
rb 0x10000

View File

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

View File

@ -207,7 +207,7 @@ ENTRANCE:
xor eax,eax ; Define window
mov ebx,100*65536+240
mov ecx,100*65536+130
mov edx,0x02AAAAAA
mov edx,0x03AAAAAA
mov esi,0x80777777
mov edi,0x00777777
int 0x40
@ -232,16 +232,17 @@ ENTRANCE:
pusha
mov eax,8 ; Buttons
mov ebx,222*65536+10
mov ecx,6*65536+10
mov edx,1
mov esi,0x555555
int 0x40
; mov eax,8 ; Buttons
; mov ebx,222*65536+10
; mov ecx,6*65536+10
; mov edx,1
; mov esi,0x555555
; int 0x40
mov eax,8
mov ebx,15*65536+100
mov ecx,70*65536+13
inc edx
mov edx,2
int 0x40
inc edx
@ -346,6 +347,25 @@ ENTRANCE:
; 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"
dellab db " DELETE I/O DELETE *.MHC"
title db "MHC 0.09"
@ -356,10 +376,6 @@ ENTRANCE:
cmfile db "FILENAME.MHC"
iofile db "FILENAME.XYZ"
editstate db 0
editpos db 0
msgid db 0
msgtable:
db "COMPRESSING... "
db "DECOMPRESSING..."
@ -367,6 +383,14 @@ ENTRANCE:
db "*.MHC NOT FOUND!"
db "INVALID METHOD! "
end if
editstate db 0
editpos db 0
msgid db 0
; ======== compression/decompression engine ========
; Adresses declaration

View File

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

View File

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

View File

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

View File

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

View File

@ -589,6 +589,7 @@ file_start: dd 16
start_application: db '/RD/1/LAUNCHER',0
times 60 db 32
if lang eq en
text:
db ' NAME/TERMINATE PID CPU-USAGE % '
db 'MEMORY START/USAGE W-STACK W-SIZE'
@ -602,6 +603,21 @@ tbte_2:
labelt:
db 'Processes - Ctrl/Alt/Del'
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:

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>€'
label3_len = $ - label3
label4:
db '(End) (Home)'
label4_len = $ - label4
label5:
db '(Enter) (Esc)'
label5_len = $ - label5
else
else if lang eq en
label1:
db ' SELECT:'
@ -194,6 +186,22 @@ else
db ' RESTART CANCEL'
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:
db '(End) (Home)'
label4_len = $ - label4
@ -202,8 +210,6 @@ else
db '(Enter) (Esc)'
label5_len = $ - label5
end if
udata
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 ; esp
dd I_Param , 0x0 ; I_Param , I_Icon
include 'lang.inc'
include 'macros.inc'
include 'lang.inc'
COLOR_ORDER equ MENUETOS
include 'gif_lite.inc'
;include 'debug.inc'
@ -790,40 +790,53 @@ if lang eq ru
db 255,255,255,0, ' „Ž<E2809E>ˆœ “„€‹ˆ’œ '
db 0,0,0,0, '<27>€†Œˆ<20><20>Ž‡ˆˆž ˆŠŽ<C5A0>Šˆ „‹Ÿ <20>…„€Šˆ<E28099>Ž<E2809A>ˆŸ '
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:
db '<27> áâனª  à ¡®ç¥£® á⮫ '
labellen:
else
else if lang eq en
text:
db 255,255,255,0, ' TITLE '
db 255,255,255,0, ' APP NAME '
db 255,255,255,0, ' PARAMETERS '
db 255,255,255,0, ' APPLY CHANGES '
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
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:
db 'Icon Manager'
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
;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 '</>'
iconname:
db ICON_APP,0

View File

@ -117,7 +117,8 @@ use32
include 'macros.inc'
include 'VENDORS.INC'
include 'vendors.inc'
include 'lang.inc'
START: ; start of execution
call draw_window
@ -473,6 +474,26 @@ labelt:
db 'PCI Device Enumeration v 1.31 by J. Delozier, S. Kuzmin and V. Hanla'
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:
db 'Please remember to enable PCI Access to Applications in Setup Menu.'
db ' '
@ -482,7 +503,7 @@ db 'PCI Version = '
db ' '
db 'Last PCI Bus = '
db ' '
db 'Quantity of devices = '
db 'Number of devices = '
db ' '
db ' '
db ' '
@ -491,6 +512,8 @@ db 'any Description '
db '----- ----- ---- ---- --- --- ----- -------- --------------------'
db '---------------------- ----------------'
db 'x'
end if
total db 0
V_Bus db 0

View File

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