/programs/develop/tinypad/trunk/tp-locale.inc |
---|
File deleted |
/programs/develop/tinypad/trunk/tp-defines.inc |
---|
File deleted |
/programs/develop/tinypad/trunk/data/tp-defines.inc |
---|
0,0 → 1,38 |
define mm.File.New key.ctrl_n |
define mm.File.Open key.ctrl_o |
define mm.File.Save key.ctrl_s |
define mm.File.SaveAs key.shift_ctrl_s |
define mm.File.Close key.ctrl_f4 |
define mm.File.Exit key.alt_x |
define mm.Edit.Cut key.ctrl_x |
define mm.Edit.Copy key.ctrl_c |
define mm.Edit.Insert key.ctrl_v |
define mm.Edit.Delete key.del |
define mm.Edit.SelAll key.ctrl_a |
define mm.Search.Position key.ctrl_g |
define mm.Search.Find key.ctrl_f |
define mm.Search.FindNext key.f3 |
define mm.Search.Replace key.ctrl_h |
define mm.Run.Run key.f9 |
define mm.Run.Compile key.ctrl_f9 |
define mm.Run.DbgBoard open_debug_board |
define mm.Run.SysFuncs open_sysfuncs_txt |
define mm.Encoding.CP866.CP1251 recode.866.1251 |
define mm.Encoding.CP1251.CP866 recode.1251.866 |
define mm.Encoding.CP866.KOI8R recode.866.koi |
define mm.Encoding.KOI8R.CP866 recode.koi.866 |
define mm.Encoding.CP1251.KOI8R recode.1251.koi |
define mm.Encoding.KOI8R.CP1251 recode.koi.1251 |
define mm.Options.Appearance set_opt.dialog |
define mm.Options.SecureSel set_opt.secure_sel |
define mm.Options.AutoBrackets set_opt.auto_braces |
define mm.Options.AutoIndents set_opt.auto_indents |
define mm.Options.SmartTabs 0 |
define mm.Options.OptimalFill set_opt.optimal_fill |
define mm.Options.LineNumbers set_opt.line_numbers |
/programs/develop/tinypad/trunk/data/tp-idata.inc |
---|
0,0 → 1,86 |
vscrl_capt dd -1 |
hscrl_capt dd -1 |
body_capt dd -1 |
s_status dd 0 |
sz app_fasm ,'/RD/1/DEVELOP/FASM',0 |
sz app_board ,'/RD/1/BOARD',0 |
sz app_tinypad ,'/RD/1/TINYPAD',0 |
sz app_docpak ,'/RD/1/DOCPAK',0 |
sz sysfuncs_param,'g',0 |
include 'tp-tables.inc' |
include 'tp-locale.inc' |
;// options dialog data [ |
label optsdlg_editor at $-EDITOR.Bounds |
; rb PATHL ; FilePath db PATHL dup(?) |
; dd 0 ; FileName dd ? |
dd ?,?,?,? ; Bounds RECT |
dd @f ; Lines dd ? |
dd ? ; Lines.Size dd ? |
dd 9 ; Lines.Count dd ? |
dd 21 ; Columns.Count dd ? |
dd 0,4 ; Caret POINT |
dd 100,4 ; SelStart POINT |
dd 0,0 ; TopLeft POINT |
dd 0,0 ; VScroll SCROLLBAR |
dd 0,0 ; HScroll SCROLLBAR |
dd 0 ; Gutter.Width dd ? |
db 0 ; Gutter.Visible db ? |
db 1 ; AsmMode db ? |
db 0 ; Modified db ? |
@@: |
dd 0x00000000+1 |
db ' ' |
dd 0x00010000+9 |
db ' org 100h' |
dd 0x00000000+1 |
db ' ' |
dd 0x00000000+20 |
db ' mov ah,09h ; write' |
dd 0x00000000+12 |
db ' mov dx,text' |
dd 0x00000000+8 |
db ' int 21h' |
dd 0x00030000+8 |
db ' int 20h' |
dd 0x00000000+1 |
db ' ' |
dd 0x00000000+21 |
db ' text db "Hello!",24h' |
dd 0 |
optsdlg_editor_parts: ; left,top,right,bottom,type |
db 0, 12, 13, 29, 22 |
db 0, 12, 33, 47, 42 |
db 0, 12, 53, 29, 72 |
db 0, 12, 83, 53, 92 |
db 2, 12, 43, 77, 52 |
db 3, 4, 43,148, 52 |
db 4, 48, 33, 53, 42 |
db 4,108, 83,113, 92 |
db 5, 36, 13, 59, 22 |
db 5, 54, 33, 71, 42 |
db 5, 36, 53, 53, 72 |
db 5,114, 83,131, 92 |
db 6, 60, 83,107, 92 |
db 7, 84, 33,125, 42 |
db 8, 1, 13, 5, 22 |
db 9, 1, 63, 5, 72 |
db 1, 1, 1,148,105 |
db -1 |
;// ] |
sz symbols_ex,';?.%"',"'" |
sz symbols ,'#&*\:/<>|{}()[]=+-, ' |
sz ini_sec_window ,'Window',0 |
sz ini_window_top ,'Top',0 |
sz ini_window_left ,'Left',0 |
sz ini_window_right ,'Right',0 |
sz ini_window_bottom,'Bottom',0 |
/programs/develop/tinypad/trunk/data/tp-locale.inc |
---|
0,0 → 1,309 |
sz htext,'TINYPAD ',APP_VERSION |
menubar_res main_menu,\ |
ru,' ©«' ,mm.File ,onshow.file ,\ |
ru,'à ¢ª ' ,mm.Edit ,onshow.edit ,\ |
ru,'®¨áª' ,mm.Search ,onshow.search ,\ |
ru,' ¯ãáª' ,mm.Run ,onshow.run ,\ |
ru,'®¤¨à®¢ª ',mm.Encoding,onshow.recode ,\ |
ru,'¯æ¨¨' ,mm.Options ,onshow.options,\ |
\ |
en,'File' ,mm.File ,onshow.file ,\ |
en,'Edit' ,mm.Edit ,onshow.edit ,\ |
en,'Search' ,mm.Search ,onshow.search ,\ |
en,'Run' ,mm.Run ,onshow.run ,\ |
en,'Encoding',mm.Encoding,onshow.recode ,\ |
en,'Options' ,mm.Options ,onshow.options,\ |
\ |
et,'Fail' ,mm.File ,onshow.file ,\ |
et,'Muuda' ,mm.Edit ,onshow.edit ,\ |
et,'Otsi' ,mm.Search ,onshow.search ,\ |
et,'Käivita' ,mm.Run ,onshow.run ,\ |
et,'Kodeering',mm.Encoding,onshow.recode ,\ |
et,'Seaded' ,mm.Options ,onshow.options |
popup_res mm.File,\ |
ru,'®¢ë©' ,'Ctrl+N' ,New ,\ |
ru,'âªàëâì...' ,'Ctrl+O' ,Open ,\ |
ru,'®åà ¨âì' ,'Ctrl+S' ,Save ,\ |
ru,'®åà ¨âì ª ª...','Ctrl+Shift+S',SaveAs,\ |
ru,'-' ,'' , ,\ |
ru,' ªàëâì' ,'Ctrl+F4' ,Close ,\ |
ru,'-' ,'' , ,\ |
ru,'ë室' ,'Alt+X' ,Exit ,\ |
\ |
en,'New' ,'Ctrl+N' ,New ,\ |
en,'Open...' ,'Ctrl+O' ,Open ,\ |
en,'Save' ,'Ctrl+S' ,Save ,\ |
en,'Save as...','Ctrl+Shift+S',SaveAs,\ |
en,'-' ,'' , ,\ |
en,'Close' ,'Ctrl+F4' ,Close ,\ |
en,'-' ,'' , ,\ |
en,'Exit' ,'Alt+X' ,Exit,\ |
\ |
et,'Uus' ,'Ctrl+N' ,New ,\ |
et,'Ava...' ,'Ctrl+O' ,Open ,\ |
et,'Salvesta' ,'Ctrl+S' ,Save ,\ |
et,'Salvesta nimega...','Ctrl+Shift+S',SaveAs,\ |
et,'-' ,'' , ,\ |
et,'Sulge' ,'Ctrl+F4' ,Close ,\ |
et,'-' ,'' , ,\ |
et,'Välju' ,'Alt+X' ,Exit |
popup_res mm.Edit,\ |
ru,'ë१ âì' ,'Ctrl+X',Cut ,\ |
ru,'®¯¨à®¢ âì' ,'Ctrl+C',Copy ,\ |
ru,'áâ ¢¨âì' ,'Ctrl+V',Insert,\ |
ru,'¤ «¨âì' ,'' ,Delete,\ |
ru,'-' ,'' , ,\ |
ru,'뤥«¨âì ¢áñ','Ctrl+A',SelAll,\ |
\ |
en,'Cut' ,'Ctrl+X',Cut ,\ |
en,'Copy' ,'Ctrl+C',Copy ,\ |
en,'Paste' ,'Ctrl+V',Insert,\ |
en,'Delete' ,'' ,Delete,\ |
en,'-' ,'' , ,\ |
en,'Select all','Ctrl+A',SelAll,\ |
\ |
et,'Lõika' ,'Ctrl+X',Cut ,\ |
et,'Kopeeri' ,'Ctrl+C',Copy ,\ |
et,'Kleebi' ,'Ctrl+V',Insert,\ |
et,'Kustuta' ,'' ,Delete,\ |
et,'-' ,'' , ,\ |
et,'Vali kõik' ,'Ctrl+A',SelAll |
popup_res mm.Search,\ |
ru,'¥à¥©â¨...' ,'Ctrl+G',Position,\ |
ru,'-' ,'' , ,\ |
ru,' ©â¨...' ,'Ctrl+F',Find ,\ |
ru,' ©â¨ ¤ «¥¥','F3' ,FindNext,\ |
ru,' ¬¥¨âì...','Ctrl+H',Replace ,\ |
\ |
en,'Position...','Ctrl+G',Position,\ |
en,'-' ,'' , ,\ |
en,'Find...' ,'Ctrl+F',Find ,\ |
en,'Find next' ,'F3' ,FindNext,\ |
en,'Replace...' ,'Ctrl+H',Replace ,\ |
\ |
et,'Positsioon...','Ctrl+G',Position,\ |
et,'-' ,'' , ,\ |
et,'Leia...' ,'Ctrl+F',Find ,\ |
et,'Leia järgmine','F3' ,FindNext,\ |
et,'Asenda...' ,'Ctrl+H',Replace |
popup_res mm.Run,\ |
ru,' ¯ãáâ¨âì' ,'F9' ,Run ,\ |
ru,'®¬¯¨«¨à®¢ âì' ,'Ctrl+F9',Compile ,\ |
ru,'-' ,'' , ,\ |
ru,'®áª ®â« ¤ª¨' ,'' ,DbgBoard,\ |
ru,'¨áâ¥¬ë¥ äãªæ¨¨','' ,SysFuncs,\ |
\ |
en,'Run' ,'F9' ,Run ,\ |
en,'Compile' ,'Ctrl+F9',Compile ,\ |
en,'-' ,'' , ,\ |
en,'Debug board' ,'' ,DbgBoard,\ |
en,'System functions' ,'' ,SysFuncs,\ |
\ |
et,'Käivita' ,'F9' ,Run ,\ |
et,'Kompileeri' ,'Ctrl+F9',Compile ,\ |
et,'-' ,'' , ,\ |
et,'Debug board' ,'' ,DbgBoard,\ |
et,'Süsteemi funktsioonid' ,'' ,SysFuncs |
popup_res mm.Encoding,\ |
@!,<'CP866 ',0x1A,' CP1251'>,'',CP866.CP1251,\ |
@!,<'CP1251 ',0x1A,' CP866' >,'',CP1251.CP866,\ |
@!,<'-' >,'', ,\ |
@!,<'CP866 ',0x1A,' KOI8-R'>,'',CP866.KOI8R ,\ |
@!,<'KOI8-R ',0x1A,' CP866' >,'',KOI8R.CP866 ,\ |
@!,<'-' >,'', ,\ |
@!,<'CP1251 ',0x1A,' KOI8-R'>,'',CP1251.KOI8R,\ |
@!,<'KOI8-R ',0x1A,' CP1251'>,'',KOI8R.CP1251 |
popup_res mm.Options,\ |
ru,'¥è¨© ¢¨¤...' ,'',Appearance ,\ |
ru,'-' ,'', ,\ |
ru,'¥§®¯ ᮥ ¢ë¤¥«¥¨¥' ,'',SecureSel ,\ |
ru,'¢â®¬ â¨ç¥áª¨¥ ᪮¡ª¨' ,'',AutoBrackets,\ |
ru,'¢â®¬ â¨ç¥áª¨© ®âáâã¯' ,'',AutoIndents ,\ |
ru,'¬ ï â ¡ã«ïæ¨ï' ,'',SmartTabs ,\ |
ru,'¯â¨¬ «ì®¥ á®åà ¥¨¥','',OptimalFill ,\ |
ru,'-' ,'', ,\ |
ru,'®¬¥à áâப' ,'',LineNumbers ,\ |
\ |
en,'Appearance...' ,'',Appearance ,\ |
en,'-' ,'', ,\ |
en,'Secure selection' ,'',SecureSel ,\ |
en,'Automatic brackets' ,'',AutoBrackets,\ |
en,'Automatic indents' ,'',AutoIndents ,\ |
en,'Smart tabulation' ,'',SmartTabs ,\ |
en,'Optimal fill on saving','',OptimalFill ,\ |
en,'-' ,'', ,\ |
en,'Line numbers' ,'',LineNumbers ,\ |
\ |
et,'Välimus...' ,'',Appearance ,\ |
et,'-' ,'', ,\ |
et,'Secure selection' ,'',SecureSel ,\ |
et,'Automaatsed sulud' ,'',AutoBrackets,\ |
et,'Automaatsed taandread' ,'',AutoIndents ,\ |
et,'Tark tabulatsioon' ,'',SmartTabs ,\ |
et,'Optimaalne täitmine salvestamisel','',OptimalFill ,\ |
et,'-' ,'', ,\ |
et,'Rea numbrid' ,'',LineNumbers |
lsz s_defname,\ |
en,<'Untitled',0>,\ |
ru,<'¥§ë¬ïë©',0>,\ |
et,<'Nimetu',0> |
lsz s_modified,\ |
ru,'§¬¥¥®',\ |
en,'Modified',\ |
et,'Muudetud' |
lsz s_2filename,\ |
ru,'¬ï ä ©« :',\ |
en,'Filename:',\ |
et,'Faili nimi:' |
lsz s_2open,\ |
ru,'âªàëâì',\ |
en,'Open',\ |
et,'Ava' |
lsz s_2save,\ |
ru,'®åà ¨âì',\ |
en,'Save',\ |
et,'Salvesta' |
lsz s_2save_no,\ |
ru,'¥â',\ |
en,'No',\ |
et,'Ei' |
lsz s_2find,\ |
ru,' ©â¨',\ |
en,'Find',\ |
et,'Leia' |
db ':' |
lsz s_2replace,\ |
ru,' ¬¥¨âì',\ |
en,'Replace',\ |
et,'Asenda' |
db ':' |
lsz s_2cancel,\ |
ru,'⬥ ',\ |
en,'Cancel',\ |
et,'Tühista' |
lsz s_color,\ |
ru,'¢¥â: 0x',\ |
en,'Color: 0x',\ |
et,'Värv: 0x' |
lsz s_tabpos,\ |
ru,' ᯮ«®¦¥¨¥ § ª« ¤®ª',\ |
en,'Tabs placement',\ |
et,'Saki asetus' |
lsz s_enter_filename,\ |
ru,<'¢¥¤¨â¥ ¨¬ï ä ©« ',0>,\ |
en,<'Enter filename',0>,\ |
et,<'Sisesta faili nimi',0> |
lsz s_ask_save,\ |
ru,<'¥« ¥â¥ á®åà ¨âì?',0>,\ |
en,<'Would you like to save?',0>,\ |
et,<'Kas soovite salvestada?',0> ; Now correct |
lsz s_enter_text_to_find,\ |
ru,<'¢¥¤¨â¥ ⥪áâ ¤«ï ¯®¨áª ',0>,\ |
en,<'Enter text to find',0>,\ |
et,<'Sisesta otsitav tekst',0> |
lsz s_enter_text_to_replace,\ |
ru,<'¢¥¤¨â¥ ⥪áâ ¤«ï § ¬¥ë',0>,\ |
en,<'Enter text to replace',0>,\ |
et,<'Sisesta asendatav tekst',0> |
lsz s_text_not_found,\ |
ru,<'®á⨣ãâ ª®¥æ ä ©« , ⥪áâ ¥ ©¤¥',0>,\ |
en,<'Reached end of file, text not found',0>,\ |
et,<'Faili lõpp, teksti ei leitud',0> |
lszc s_fs_error,b,\ |
ru,<'¯¥à æ¨ï § ¢¥àè¥ ãá¯¥è® (0)',0>,\ |
ru,<'',0>,\ |
ru,<'ãªæ¨ï ¥ ¯®¤¤¥à¦¨¢ ¥âáï ¤«ï ¤ ®© ä ©«®¢®© á¨á⥬ë (2)',0>,\ |
ru,<'¥¨§¢¥áâ ï ä ©«®¢ ï á¨á⥬ (3)',0>,\ |
ru,<'',0>,\ |
ru,<'¥¢®§¬®¦® ®âªàëâì ä ©« (5)',0>,\ |
ru,<'¯¥à æ¨ï § ¢¥àè¥ ãá¯¥è® (6)',0>,\ |
ru,<'¤à¥á 室¨âáï § £à ¨æ ¬¨ ¯ ¬ï⨠¯à®£à ¬¬ë (7)',0>,\ |
ru,<' ¤¨áª¥ ¥â ᢮¡®¤®£® ¬¥áâ (8)',0>,\ |
ru,<' ¡«¨æ FAT ã¨ç⮦¥ (9)',0>,\ |
ru,<'®áâ㯠§ ¯à¥éñ (10)',0>,\ |
ru,<'訡ª ãáâனá⢠(11)',0>,\ |
\ |
en,<'Operation executed successfully (0)',0>,\ |
en,<'',0>,\ |
en,<'Function is not supported for the given filesystem (2)',0>,\ |
en,<'Unknown filesystem (3)',0>,\ |
en,<'',0>,\ |
en,<'Unable to open file (5)',0>,\ |
en,<'Operation executed successfully (6)',0>,\ |
en,<'Pointer lies outside of application memory (7)',0>,\ |
en,<'Disk is full (8)',0>,\ |
en,<'FAT table is destroyed (9)',0>,\ |
en,<'Access denied (10)',0>,\ |
en,<'Device error (11)',0>,\ |
\ |
et,<'Operatsioon käivitati edukalt (0)',0>,\ |
et,<'',0>,\ |
et,<'Failisüsteem ei toeta funktsiooni (2)',0>,\ |
et,<'Tundmatu failisüsteem (3)',0>,\ |
et,<'',0>,\ |
et,<'Faili ei suudetud avada (5)',0>,\ |
et,<'Operatsioon käivitatud edukalt (6)',0>,\ |
et,<'Viit on väljaspool programmi mälu (7)',0>,\ |
et,<'Ketas täis (8)',0>,\ |
et,<'FAT tabel hävitatud (9)',0>,\ |
et,<'Juurdepääs keelatud (10)',0>,\ |
et,<'Seadme viga (11)',0> |
lszc s_appearance,b,\ |
ru,'¥ªáâ',\ |
ru,'®',\ |
ru,'¥ªá⠢뤥«¥¨ï',\ |
ru,'® ¢ë¤¥«¥¨ï',\ |
ru,'¨¬¢®«ë',\ |
ru,'¨á« ',\ |
ru,'âப¨',\ |
ru,'®¬¬¥â ਨ',\ |
ru,'§¬¥ñë¥ áâப¨',\ |
ru,'®åà ñë¥ áâப¨',\ |
\ |
en,'Text',\ |
en,'Background',\ |
en,'Selection text',\ |
en,'Selection background',\ |
en,'Symbols',\ |
en,'Numbers',\ |
en,'Strings',\ |
en,'Comments',\ |
en,'Modified lines',\ |
en,'Saved lines',\ |
\ |
et,'Tekst',\ |
et,'Taust',\ |
et,'Valitud tekst',\ |
et,'Valitud taust',\ |
et,'Sümbolid',\ |
et,'Numbrid',\ |
et,'Stringid',\ |
et,'Kommentaarid',\ |
et,'Muudetud read',\ |
et,'Salvestatud read' |
lsz sysfuncs_filename,\ |
ru,<'SYSFUNCR.TXT',0>,\ |
en,<'SYSFUNCS.TXT',0>,\ |
et,<'SYSFUNCET.TXT',0> |
sz s_example,'EXAMPLE.ASM' |
sz s_still ,'still' |
/programs/develop/tinypad/trunk/data/tp-tables.inc |
---|
0,0 → 1,189 |
align 4 |
key0 db \ |
0x00,0x00,0x02,0x03,0x04,0x05,0x06,0x07,\ |
0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x00,0x00,\ |
0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,\ |
0x18,0x19,0x1A,0x1B,0x00,0x00,0x1E,0x1F,\ |
0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,\ |
0x28,0x29,0x00,0x2B,0x2C,0x2D,0x2E,0x2F,\ |
0x30,0x31,0x32,0x33,0x34,0x35,0x00,0x00,\ |
0x00,0x39,0x00,0x00,0x00,0x00,0x00,0x00 |
times 12*16 db 0x00 |
align 4 |
accel_table_main dd \ |
0x0000000E,key.bkspace ,\ ; BackSpace |
0x0000000F,key.tab ,\ ; Tab |
0x0000001C,key.return ,\ ; Return |
0x0000003D,key.f3 ,\ ; F3 |
0x00000043,key.f9 ,\ ; F9 |
0x00000147,key.home ,\ ; Home |
0x00000148,key.up ,\ ; Up |
0x00000149,key.pgup ,\ ; PageUp |
0x0000014B,key.left ,\ ; Left |
0x0000014D,key.right ,\ ; Right |
0x0000014F,key.end ,\ ; End |
0x00000150,key.down ,\ ; Down |
0x00000151,key.pgdn ,\ ; PageDown |
0x00000152,key.ins ,\ ; Insert |
0x00000153,key.del ,\ ; Delete |
0x00010043,key.shift_f9 ,\ ; Shift+F9 |
0x00010147,key.shift_home ,\ ; Shift+Home |
0x00010148,key.shift_up ,\ ; Shift+Up |
0x00010149,key.shift_pgup ,\ ; Shift+PageUp |
0x0001014B,key.shift_left ,\ ; Shift+Left |
0x0001014D,key.shift_right ,\ ; Shift+Right |
0x0001014F,key.shift_end ,\ ; Shift+End |
0x00010150,key.shift_down ,\ ; Shift+Down |
0x00010151,key.shift_pgdn ,\ ; Shift+PageDown |
0x00010153,key.del ,\ ; Shift+Delete |
0x0002000F,key.ctrl_tab ,\ ; Ctrl+Tab |
0x00020015,key.ctrl_y ,\ ; Ctrl+Y |
0x00020018,key.ctrl_o ,\ ; Ctrl+O |
0x0002001E,key.ctrl_a ,\ ; Ctrl+A |
0x0002001F,key.ctrl_s ,\ ; Ctrl+S |
0x00020020,key.ctrl_d ,\ ; Ctrl+D |
0x00020021,key.ctrl_f ,\ ; Ctrl+F |
0x00020022,key.ctrl_g ,\ ; Ctrl+G |
0x00020023,key.ctrl_h ,\ ; Ctrl+H |
\;0x00020026,key.ctrl_l ,\ ; Ctrl+L |
0x0002002D,key.ctrl_x ,\ ; Ctrl+X |
0x0002002E,key.ctrl_c ,\ ; Ctrl+C |
0x0002002F,key.ctrl_v ,\ ; Ctrl+V |
0x00020031,key.ctrl_n ,\ ; Ctrl+N |
0x0002003E,key.ctrl_f4 ,\ ; Ctrl+F4 |
0x00020043,key.ctrl_f9 ,\ ; Ctrl+F9 |
0x00020147,key.ctrl_home ,\ ; Ctrl+Home |
\;0x00020148,key.ctrl_up ,\ ; Ctrl+Up |
0x00020149,key.ctrl_pgup ,\ ; Ctrl+PageUp |
0x0002014B,key.ctrl_left ,\ ; Ctrl+Left |
0x0002014D,key.ctrl_right ,\ ; Ctrl+Right |
0x0002014F,key.ctrl_end ,\ ; Ctrl+End |
\;0x00020150,key.ctrl_down ,\ ; Ctrl+Down |
0x00020151,key.ctrl_pgdn ,\ ; Ctrl+PageDown |
0x00020153,key.del ,\ ; Ctrl+Del |
0x0003000F,key.shift_ctrl_tab ,\ ; Shift+Ctrl+Tab |
0x0003001F,key.shift_ctrl_s ,\ ; Shift+Ctrl+S |
0x00030147,key.shift_ctrl_home ,\ ; Shift+Ctrl+Home |
\;0x00030148,key.shift_ctrl_up ,\ ; Shift+Ctrl+Up |
0x00030149,key.shift_ctrl_pgup ,\ ; Shift+Ctrl+PageUp |
0x0003014B,key.shift_ctrl_left ,\ ; Shift+Ctrl+Left |
0x0003014D,key.shift_ctrl_right ,\ ; Shift+Ctrl+Right |
0x0003014F,key.shift_ctrl_end ,\ ; Shift+Ctrl+End |
\;0x00030150,key.shift_ctrl_down ,\ ; Shift+Ctrl+Down |
0x00030151,key.shift_ctrl_pgdn ,\ ; Shift+Ctrl+PageDown |
0x0004002D,key.alt_x ,\ ; Alt+X |
0 |
align 4 |
accel_table_textbox dd \ |
\;0x00000001,key.tb.escape ,\ ; Escape |
0x0000000E,key.tb.bkspace ,\ ; BackSpace |
\;0x0000000F,key.tb.tab ,\ ; Tab |
\;0x0000001C,key.tb.return ,\ ; Return |
0x00000147,key.tb.home ,\ ; Home |
0x0000014B,key.tb.left ,\ ; Left |
0x0000014D,key.tb.right ,\ ; Right |
0x0000014F,key.tb.end ,\ ; End |
0x00000153,key.tb.del ,\ ; Delete |
0x00010147,key.tb.shift_home ,\ ; Shift+Home |
0x0001014B,key.tb.shift_left ,\ ; Shift+Left |
0x0001014D,key.tb.shift_right ,\ ; Shift+Right |
0x0001014F,key.tb.shift_end ,\ ; Shift+End |
0x00010153,key.tb.del ,\ ; Shift+Del |
0 |
align 4 |
accel_table2 dd \ |
1 ,key.alt_x ,\ |
'VSL',btn.vscroll_up ,\ |
'VSG',btn.vscroll_down ,\ |
'HSL',btn.hscroll_up ,\ |
'HSG',btn.hscroll_down ,\ |
'TBL',btn.tabctl_right ,\ |
'TBG',btn.tabctl_left ,\ |
0 |
align 4 |
accel_table2_botdlg dd \ |
1 ,key.alt_x ,\ |
20001,btn.bot.cancel ,\ |
20002,btn.bot.opensave ,\ |
20003,btn.bot.find ,\ |
20004,btn.bot.appearance,\ |
21001,btn.bot.tabpos ,\ |
0 |
align 4 |
add_table: |
times $1A db -$20 |
times $25 db -$00 |
times $10 db -$20 |
times $30 db -$00 |
times $10 db -$50 |
times $04 db -$00,-$01 |
times $08 db -$00 |
align 4 |
table.866.1251 db \ |
$C0,$C1,$C2,$C3,$C4,$C5,$C6,$C7 , $C8,$C9,$CA,$CB,$CC,$CD,$CE,$CF,\ |
$D0,$D1,$D2,$D3,$D4,$D5,$D6,$D7 , $D8,$D9,$DA,$DB,$DC,$DD,$DE,$DF,\ |
$E0,$E1,$E2,$E3,$E4,$E5,$E6,$E7 , $E8,$E9,$EA,$EB,$EC,$ED,$EE,$EF,\ |
$00,$00,$00,$00,$00,$00,$00,$00 , $00,$00,$00,$00,$00,$00,$00,$00,\ |
$00,$00,$00,$00,$00,$00,$00,$00 , $00,$00,$00,$00,$00,$00,$00,$00,\ |
$00,$00,$00,$00,$00,$00,$00,$00 , $00,$00,$00,$00,$00,$00,$00,$00,\ |
$F0,$F1,$F2,$F3,$F4,$F5,$F6,$F7 , $F8,$F9,$FA,$FB,$FC,$FD,$FE,$FF,\ |
$A8,$B8,$AA,$BA,$AF,$BF,$A1,$A2 , $B0,$95,$B7,$00,$B9,$A4,$00,$00 |
table.1251.866 db \ |
$00,$00,$00,$00,$00,$00,$00,$00 , $00,$00,$00,$00,$00,$00,$00,$00,\ |
$00,$00,$00,$00,$00,$F9,$00,$00 , $00,$00,$00,$00,$00,$00,$00,$00,\ |
$00,$F6,$F7,$00,$FD,$00,$00,$00 , $F0,$00,$F2,$00,$00,$00,$00,$F4,\ |
$F8,$00,$00,$00,$00,$00,$00,$FA , $F1,$FC,$F3,$00,$00,$00,$00,$F5,\ |
$80,$81,$82,$83,$84,$85,$86,$87 , $88,$89,$8A,$8B,$8C,$8D,$8E,$8F,\ |
$90,$91,$92,$93,$94,$95,$96,$97 , $98,$99,$9A,$9B,$9C,$9D,$9E,$9F,\ |
$A0,$A1,$A2,$A3,$A4,$A5,$A6,$A7 , $A8,$A9,$AA,$AB,$AC,$AD,$AE,$AF,\ |
$E0,$E1,$E2,$E3,$E4,$E5,$E6,$E7 , $E8,$E9,$EA,$EB,$EC,$ED,$EE,$EF |
table.866.koi db \ |
$E1,$E2,$F7,$E7,$E4,$E5,$F6,$FA , $E9,$EA,$EB,$EC,$ED,$EE,$EF,$F0,\ |
$F2,$F3,$F4,$F5,$E6,$E8,$E3,$FE , $FB,$FD,$FF,$F9,$F8,$FC,$E0,$F1,\ |
$C1,$C2,$D7,$C7,$C4,$C5,$D6,$DA , $C9,$CA,$CB,$CC,$CD,$CE,$CF,$D0,\ |
$90,$00,$00,$81,$87,$00,$00,$00 , $00,$00,$00,$00,$00,$00,$00,$83,\ |
$84,$89,$88,$86,$80,$8A,$00,$00 , $00,$00,$00,$00,$00,$00,$00,$00,\ |
$00,$00,$00,$00,$00,$00,$00,$00 , $00,$85,$82,$8D,$8C,$8E,$8F,$8B,\ |
$D2,$D3,$D4,$D5,$C6,$C8,$C3,$DE , $DB,$DD,$DF,$D9,$D8,$DC,$C0,$D1,\ |
$B3,$A3,$B4,$A4,$B7,$A7,$BE,$AE , $00,$95,$9E,$00,$B0,$9F,$00,$A0 |
table.koi.866 db \ |
$C4,$B3,$DA,$BF,$C0,$D9,$C3,$B4 , $C2,$C1,$C5,$DF,$DC,$DB,$DD,$DE,\ |
$B0,$00,$00,$00,$00,$F9,$00,$00 , $00,$00,$00,$00,$00,$00,$FA,$FD,\ |
$FF,$00,$00,$F1,$F3,$00,$00,$F5 , $00,$00,$00,$00,$00,$00,$F7,$00,\ |
$FC,$00,$00,$F0,$F2,$00,$00,$F4 , $00,$00,$00,$00,$00,$00,$F6,$00,\ |
$EE,$A0,$A1,$E6,$A4,$A5,$E4,$A3 , $E5,$A8,$A9,$AA,$AB,$AC,$AD,$AE,\ |
$AF,$EF,$E0,$E1,$E2,$E3,$A6,$A2 , $EC,$EB,$A7,$E8,$ED,$E9,$E7,$EA,\ |
$9E,$80,$81,$96,$84,$85,$94,$83 , $95,$88,$89,$8A,$8B,$8C,$8D,$8E,\ |
$8F,$9F,$90,$91,$92,$93,$86,$82 , $9C,$9B,$87,$98,$9D,$99,$97,$9A |
table.1251.koi db \ |
$B1,$B2,$00,$A2,$00,$00,$00,$00 , $00,$00,$B9,$00,$BA,$BC,$BB,$BF,\ |
$A1,$91,$92,$93,$94,$95,$96,$97 , $00,$99,$A9,$00,$AA,$AC,$AB,$AF,\ |
$A0,$BE,$AE,$B8,$9F,$BD,$00,$00 , $B3,$98,$B4,$9D,$00,$00,$9C,$B7,\ |
$00,$00,$B6,$A6,$AD,$00,$00,$9E , $A3,$B0,$A4,$9B,$A8,$B5,$A5,$A7,\ |
$E1,$E2,$F7,$E7,$E4,$E5,$F6,$FA , $E9,$EA,$EB,$EC,$ED,$EE,$EF,$F0,\ |
$F2,$F3,$F4,$F5,$E6,$E8,$E3,$FE , $FB,$FD,$FF,$F9,$F8,$FC,$E0,$F1,\ |
$C1,$C2,$D7,$C7,$C4,$C5,$D6,$DA , $C9,$CA,$CB,$CC,$CD,$CE,$CF,$D0,\ |
$D2,$D3,$D4,$D5,$C6,$C8,$C3,$DE , $DB,$DD,$DF,$D9,$D8,$DC,$C0,$D1 |
table.koi.1251 db \ |
$00,$00,$00,$00,$00,$00,$00,$00 , $00,$00,$00,$00,$00,$00,$00,$00,\ |
$00,$91,$92,$93,$94,$95,$96,$97 , $00,$99,$00,$BB,$AE,$AB,$B7,$A4,\ |
$A0,$90,$83,$B8,$BA,$BE,$B3,$BF , $BC,$9A,$9C,$9E,$9D,$B4,$A2,$9F,\ |
$B9,$80,$81,$A8,$AA,$BD,$B2,$AF , $A3,$8A,$8C,$8E,$8D,$A5,$A1,$8F,\ |
$FE,$E0,$E1,$F6,$E4,$E5,$F4,$E3 , $F5,$E8,$E9,$EA,$EB,$EC,$ED,$EE,\ |
$EF,$FF,$F0,$F1,$F2,$F3,$E6,$E2 , $FC,$FB,$E7,$F8,$FD,$F9,$F7,$FA,\ |
$DE,$C0,$C1,$D6,$C4,$C5,$D4,$C3 , $D5,$C8,$C9,$CA,$CB,$CC,$CD,$CE,\ |
$CF,$DF,$D0,$D1,$D2,$D3,$C6,$C2 , $DC,$DB,$C7,$D8,$DD,$D9,$D7,$DA |
/programs/develop/tinypad/trunk/data/tp-udata.inc |
---|
0,0 → 1,105 |
self_path rb PATHL |
app_start: |
dd ?,? |
.params dd ? |
dd ?,? |
db ? |
.filename dd ? |
f_info.length dd ? |
f_info.path: |
times PATHL+1 db ? |
f_info70 rd 7 |
file_info FILEINFO |
checker_ed EDITOR |
checker_ed_ll dd ? |
tab_bar TABCTL |
virtual at tab_bar.Current |
cur_tab TABITEM |
end virtual |
virtual at tab_bar.Current.Editor |
cur_editor EDITOR |
end virtual |
ctx dd ? |
lines.scr dd ? ; number of lines on the screen |
columns.scr dd ? ; number of columns on the screen |
top_ofs dd ? ; height occupied by top buttons |
bot_ofs dd ? ; height occupied by bottom buttons |
dw ? |
left_ofs dd ? ; |
__rc dd ?,?,?,? |
copy_count dd ? ; number of lines for copying (Ctrl+E) |
copy_size dd ? ; size of data to copy |
s_title.size dd ? ; caption length |
cur_line_len dd ? |
h_popup dd ? |
bot_dlg_handler dd ? |
sel.begin.x dd ? |
sel.begin.y dd ? |
sel.end.x dd ? |
sel.end.y dd ? |
sel.selected db ? |
in_sel db ? |
do_not_draw db ? ; draw top and bottom buttons? |
main_closed db ? ; main window closed? |
tb_casesen db ? ; focused textbox is case-sensitive? |
draw_blines db ? |
align 4 |
s_fname.size dd ? |
s_fname rb PATHL+1 |
align 4 |
s_search.size dd ? |
s_search rb PATHL+1 |
s_title rb PATHL+11 ; window caption |
chr db ? |
ext db ? |
shi dd ? |
align 4 |
cl_3d_normal dd ? |
cl_3d_pushed dd ? |
cl_3d_outset dd ? |
cl_3d_inset dd ? |
cl_3d_grayed dd ? |
tb_color TBOX |
tb_opensave TBOX |
tb_find TBOX |
tb_replace TBOX |
tb_gotorow TBOX |
tb_gotocol TBOX |
focused_tb dd ? |
key1 rb 256 |
mst rd 2 |
mst2 rd 2 |
mev db ? |
mouse_captured db ? |
just_from_popup db ? |
bot_mode db ? |
align 4 |
bot_dlg_height dd ? |
bot_dlg_mode2 db ? |
temp_buf dd ? |
copy_buf dd ? |
/programs/develop/tinypad/trunk/external/dll.inc |
---|
0,0 → 1,92 |
proc dll.Load, import_table:dword |
mov esi,[import_table] |
.next_lib: mov edx,[esi] |
or edx,edx |
jz .exit |
push esi |
mov esi,[esi+4] |
mov edi,s_libdir.fname |
@@: lodsb |
stosb |
or al,al |
jnz @b |
mcall 68,19,s_libdir |
or eax,eax |
jz .fail |
stdcall dll.Link,eax,edx |
or eax,eax |
jz .fail |
stdcall dll.Init,[eax+4] |
pop esi |
add esi,8 |
jmp .next_lib |
.exit: xor eax,eax |
ret |
.fail: add esp,4 |
xor eax,eax |
inc eax |
ret |
endp |
proc dll.Link, exp:dword,imp:dword |
push eax |
mov esi,[imp] |
test esi,esi |
jz .done |
.next: lodsd |
test eax,eax |
jz .done |
stdcall dll.GetProcAddress,[exp],eax |
or eax,eax |
jz @f |
mov [esi-4],eax |
jmp .next |
@@: mov dword[esp],0 |
.done: pop eax |
ret |
endp |
proc dll.Init, dllentry:dword |
pushad |
mov eax,mem.Alloc |
mov ebx,mem.Free |
mov ecx,mem.ReAlloc |
mov edx,dll.Load |
stdcall [dllentry] |
popad |
ret |
endp |
proc dll.GetProcAddress, exp:dword,sz_name:dword |
mov edx,[exp] |
.next: xor eax,eax |
test edx,edx |
jz .end |
stdcall strcmp,[edx],[sz_name] |
test eax,eax |
jz .ok |
add edx,8 |
jmp .next |
.ok: mov eax,[edx+4] |
.end: ret |
endp |
proc strcmp, str1:dword,str2:dword |
push esi edi |
mov esi,[str1] |
mov edi,[str2] |
xor eax,eax |
@@: lodsb |
scasb |
jne .fail |
or al,al |
jnz @b |
jmp .ok |
.fail: or eax,-1 |
.ok: pop edi esi |
ret |
endp |
s_libdir db '/rd/1/lib/' |
s_libdir.fname rb 32 |
/programs/develop/tinypad/trunk/external/libio.inc |
---|
0,0 → 1,91 |
;----------------------------------------------------------------------------- |
; Copyright (c) 2006-2007, mike.dld |
;----------------------------------------------------------------------------- |
; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
; IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
; FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
; AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
; LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
; FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
; DEALINGS IN THE SOFTWARE. |
;----------------------------------------------------------------------------- |
O_READ = 00000001b |
O_WRITE = 00000010b |
O_CREATE = 00000100b |
O_SHARE = 00001000b |
SEEK_SET = 0 |
SEEK_CUR = 1 |
SEEK_END = 2 |
struct DateTime |
union |
time dd ? |
struct |
sec db ? |
min db ? |
hour db ? |
ends |
ends |
union |
date dd ? |
struct |
day db ? |
month db ? |
year dw ? |
ends |
ends |
ends |
struct FileInfoBlock |
Function dd ? |
Position dd ? |
Flags dd ? |
Count dd ? |
Buffer dd ? |
db ? |
FileName dd ? |
ends |
struct FileInfoHeader |
Version dd ? |
FilesRead dd ? |
FilesCount dd ? |
rd 5 |
ends |
struct FileInfoA |
Attributes dd ? |
Flags dd ? |
DateCreate DateTime |
DateAccess DateTime |
DateModify DateTime |
FileSize dd ? |
FileSizeHigh dd ? |
FileName rb 264 |
ends |
struct FileInfoW |
Attributes dd ? |
Flags dd ? |
DateCreate DateTime |
DateAccess DateTime |
DateModify DateTime |
FileSize dd ? |
FileSizeHigh dd ? |
FileName rw 260 |
ends |
virtual at 0 |
FileInfo FileInfoA |
FileInfo fix FileInfoA |
sizeof.FileInfo fix sizeof.FileInfoA |
end virtual |
FA_READONLY = 00000001b |
FA_HIDDEN = 00000010b |
FA_SYSTEM = 00000100b |
FA_LABEL = 00001000b |
FA_FOLDER = 00010000b |
FA_ARCHIVED = 00100000b |
/programs/develop/tinypad/trunk/history.txt |
---|
0,0 → 1,159 |
HISTORY: |
4.0.5 (Rus, mike.dld) |
bug-fixes: |
- new tab is created when opening a file from Tinypad's home folder |
(was opening in current tab if there was a new file, even modified) |
- show "save file" dialog for new files or files from Tinypad's home folder |
new features: |
- prompt to save modified file before closing |
- button to close current tab |
- mouse scroll wheel support |
4.0.4 (mike.dld) |
bug-fixes: |
- statusbar contained hint after dialog operation cancelled |
- small drawing fix for gutter and line saved/modified markers |
(incorrect calculations) |
- incorrect lines marking on Ctrl+V |
- put filename of current tab into open/save dialog (noticed by Maxxxx32) |
changes: |
- editor and other modifications to ease parts placement changing, |
including changes in look |
- modified/saved colors now match those in MSVS |
- function 70 for *all* file operations (including diamond's fixes) |
- use memory manager instead of statically allocated region |
- case-insensitive filenames input, to be able to open/save files with |
non-latin chars in name (russian etc.) |
- reduced flickering (changes checker) |
- overall code cleanup |
new features: |
- recode tables between CP866, CP1251 and KOI8-R (suggested by Victor) |
- tabbed interface, ability to open several files in one app instance |
(thanks IRC guys for ideas and testing) |
- make any tab default to compile it disregarding currently active tab |
- configuration dialog (colors, tabs positioning) |
4.0.3 (mike.dld) |
bug-fixes: |
- 1-char selection if pressing <BS> out of real line length |
- fault in `writepos`, added call to function 9 |
- main menu items weren't highlighted if popup opened and cursor |
isn't in main menu item's area |
- statusbar and textboxes drawing fixes (wrong colors) |
- perform no redraw while pressing Shift, Ctrl, Alt keys |
- data length from DOCPAK in string representation (fixed by diamond) |
- compare file extension case-insensitively (fixed by diamond) |
changes: |
- function 70 instead of 58 for files loading/saving |
- clientarea-relative drawing (less code) |
- every line's dword is now splitted into 2 words; |
low word - line block length, so max line length is 65535 now |
high word - various flags. for now, only 2 of 16 bits are used: |
if bit #0 is set, line was modified since file open |
if bit #1 is set, line was saved after last modification |
high word could also be further used for code collapsing and different |
line marking features (breakpoints, errors, bookmarks, etc.) |
new features: |
- line markers for modified and saved lines |
- status messages for various actions |
4.0.2 (mike.dld) |
bug-fixes: |
- program terminates if started with parameters (fine for DOCPAK) |
4.0.1 (mike.dld) |
bug-fixes: |
- unable to run program after exiting from main menu (Alt+X) |
new features: |
- integration with DOCPAK |
4.0 (mike.dld) |
bug-fixes: |
- main menu popups' "on show" was called only for first shown popup |
- clear selection on left/right arrow keys |
new features: |
- "replace" dialog (w/o "skip", "replace all") |
- line numbers display |
- options (except "appearance" and "smart tabulation") |
- options saving (colors, window position, "Options" popup triggers) |
4.0 beta 2 (mike.dld) |
bug-fixes: |
- unable to start if /rd/1/example.asm is missing (from Halyavin) |
- clicking on menu items draws main window in popup (from Rohan) |
- passed parameters aren't taken into account (from Mario79) |
- background isn't erased if text lines < screen lines after |
selection deletion (from Rohan) |
4.0 beta 1 (mike.dld) |
menu bar and popup menu; |
removed buttons from the top and input fields from the bottom since |
now they're accesible through main/popup menu; |
improved keyboard handling (using 66th function); |
support for almost all FASMW keyboard shourtcuts; |
added text selection ability, standard selection operations |
(copy,cut,paste); |
new integrated dialogs (open, save, find) |
fix to collapse SPACEs into TABs only for *.asm and *.inc files |
3.78a (mike.dld) |
fixed termination while typing in x positions higher than (line_length+10); |
improved drawing on small heights |
don't draw window while its height = 0 (Kolibri "minimize" support) |
3.78 (mike.dld) |
now lines may be of ANY length; |
optimized memory usage (less memory for internal file representation) |
after loading file, it's internal size equals to its real size |
plus 14 bytes for each line (4 bytes for line length |
and 10 spaced to the end - to reduce data relocations count); |
completely rewritten keyboard handling; |
added horizontal scrollbar; |
all line feed formats are supported: WIN(CRLF),*NIX(LF),MAC(CR); |
etc. |
3.77 (mike.dld) |
changed save_string to collapse SPACEs into TABs; |
rewrote drawfile from scratch (speed++) |
through some drawing improvements needed |
(some checkups to reduce flickering); |
writepos (size--); |
fixed drawing window while height < 100px, and for non-asm files; |
several small fixes; speed/size optimizations |
3.76 (mike.dld) |
changed loadfile/loadhdfile to expand TABs into SPACEs; |
changed TAB,ENTER,DELETE,BSPACE keys behaviour (rewritten from scratch); |
vertical scrollbar; |
extra window resizing capabilities (added a couple of constants); |
completely new text cursor management & moving text cursor with mouse; |
improved search function, moving cursor to beginning of text found; |
adjustable max line width (change LINE_WIDTH & recompile) // (obsolet) |
3.75a |
fixed converting char to upper case in read_string |
3.75 |
rewrote save_file from scratch; bugfix in loadfile; |
3.74 |
optimisation |
3.73 |
completly new load_file function |
3.72 |
speed++ |
3.71 |
error beep |
3.6,3.7: |
many bugs fixed |
simple toolbar |
compile, run applications from TINYPAD, all fasm output is in debug board |
TAB button |
auto-indent |
Ctrl+L - insert comment string |
/programs/develop/tinypad/trunk/tinypad.asm |
---|
4,7 → 4,7 |
; memory to compile: 3.0/9.0 MBytes (without/with size optimizations) |
; version: 4.0.4 |
; last update: 2007-02-08 (Feb 08, 2007) |
; minimal kernel: revision #270 (svn://kolibrios.org/kernel) |
; minimal kernel: revision #270 (svn://kolibrios.org/kernel/trunk) |
;----------------------------------------------------------------------------- |
; originally by: Ville Michael Turjanmaa >> villemt@aton.co.jyu.fi |
; maintained by: Mike Semenyako >> mike.dld@gmail.com |
11,156 → 11,25 |
; Ivan Poddubny >> ivan-yar@bk.ru |
;----------------------------------------------------------------------------- |
; TODO (4.1.0): |
; - optimize drawing (reduce flickering) |
; - add vertical selection, undo, goto position, overwrite mode |
; - add vertical selection, undo, goto position, overwrite mode, smart tabulation |
; - improve window drawing with small dimensions |
; - save settings to ini file, not to executable |
; - add prompt to save file before closing/opening |
; - save/load settings to/from ini file, not executable |
; - path autocompletion for open/save dialogs |
; - other bug-fixes and speed/size optimizations |
; |
; HISTORY: |
; 4.0.5 (mike.dld and Rus) |
; bug-fixes: |
; - a new tab is created when opening a file from folder of tinypad |
; - correct call save-dialog for saving new files or files from folder of tinypad |
; new features: |
; - added prompt to save file before closing |
; - added close tab button |
; 4.0.4 (mike.dld) |
; bug-fixes: |
; - statusbar contained hint after dialog operation cancelled |
; - small drawing fix for gutter and line saved/modified markers |
; (incorrect calculations) |
; - incorrect lines marking on Ctrl+V |
; - put filename of current tab into open/save dialog (noticed by Maxxxx32) |
; changes: |
; - editor and other modifications to ease parts placement changing, |
; including changes in look |
; - modified/saved colors now match those in MSVS |
; - function 70 for *all* file operations (including diamond's fixes) |
; - use memory manager instead of statically allocated region |
; - case-insensitive filenames input, to be able to open/save files with |
; non-latin chars in name (russian etc.) |
; - reduced flickering (changes checker) |
; - overall code cleanup |
; new features: |
; - recode tables between CP866, CP1251 and KOI8-R (suggested by Victor) |
; - tabbed interface, ability to open several files in one app instance |
; (thanks IRC guys for ideas and testing) |
; - make any tab default to compile it disregarding currently active tab |
; - configuration dialog (colors, tabs positioning) |
; 4.0.3 (mike.dld) |
; bug-fixes: |
; - 1-char selection if pressing <BS> out of real line length |
; - fault in `writepos`, added call to function 9 |
; - main menu items weren't highlighted if popup opened and cursor |
; isn't in main menu item's area |
; - statusbar and textboxes drawing fixes (wrong colors) |
; - perform no redraw while pressing Shift, Ctrl, Alt keys |
; - data length from DOCPAK in string representation (fixed by diamond) |
; - compare file extension case-insensitively (fixed by diamond) |
; changes: |
; - function 70 instead of 58 for files loading/saving |
; - clientarea-relative drawing (less code) |
; - every line's dword is now splitted into 2 words; |
; low word - line block length, so max line length is 65535 now |
; high word - various flags. for now, only 2 of 16 bits are used: |
; if bit #0 is set, line was modified since file open |
; if bit #1 is set, line was saved after last modification |
; high word could also be further used for code collapsing and different |
; line marking features (breakpoints, errors, bookmarks, etc.) |
; new features: |
; - line markers for modified and saved lines |
; - status messages for various actions |
; 4.0.2 (mike.dld) |
; bug-fixes: |
; - program terminates if started with parameters (fine for DOCPAK) |
; 4.0.1 (mike.dld) |
; bug-fixes: |
; - unable to run program after exiting from main menu (Alt+X) |
; new features: |
; - integration with DOCPAK |
; 4.0 (mike.dld) |
; bug-fixes: |
; - main menu popups' "on show" was called only for first shown popup |
; - clear selection on left/right arrow keys |
; new features: |
; - "replace" dialog (w/o "skip", "replace all") |
; - line numbers display |
; - options (except "appearance" and "smart tabulation") |
; - options saving (colors, window position, "Options" popup triggers) |
; 4.0 beta 2 (mike.dld) |
; bug-fixes: |
; - unable to start if /rd/1/example.asm is missing (from Halyavin) |
; - clicking on menu items draws main window in popup (from Rohan) |
; - passed parameters aren't taken into account (from Mario79) |
; - background isn't erased if text lines < screen lines after |
; selection deletion (from Rohan) |
; 4.0 beta 1 (mike.dld) |
; menu bar and popup menu; |
; removed buttons from the top and input fields from the bottom since |
; now they're accesible through main/popup menu; |
; improved keyboard handling (using 66th function); |
; support for almost all FASMW keyboard shourtcuts; |
; added text selection ability, standard selection operations |
; (copy,cut,paste); |
; new integrated dialogs (open, save, find) |
; fix to collapse SPACEs into TABs only for *.asm and *.inc files |
; 3.78a (mike.dld) |
; fixed termination while typing in x positions higher than (line_length+10); |
; improved drawing on small heights |
; don't draw window while its height = 0 (Kolibri "minimize" support) |
; 3.78 (mike.dld) |
; now lines may be of ANY length; |
; optimized memory usage (less memory for internal file representation) |
; after loading file, it's internal size equals to its real size |
; plus 14 bytes for each line (4 bytes for line length |
; and 10 spaced to the end - to reduce data relocations count); |
; completely rewritten keyboard handling; |
; added horizontal scrollbar; |
; all line feed formats are supported: WIN(CRLF),*NIX(LF),MAC(CR); |
; etc. |
; 3.77 (mike.dld) |
; changed save_string to collapse SPACEs into TABs; |
; rewrote drawfile from scratch (speed++) |
; through some drawing improvements needed |
; (some checkups to reduce flickering); |
; writepos (size--); |
; fixed drawing window while height < 100px, and for non-asm files; |
; several small fixes; speed/size optimizations |
; 3.76 (mike.dld) |
; changed loadfile/loadhdfile to expand TABs into SPACEs; |
; changed TAB,ENTER,DELETE,BSPACE keys behaviour (rewritten from scratch); |
; vertical scrollbar; |
; extra window resizing capabilities (added a couple of constants); |
; completely new text cursor management & moving text cursor with mouse; |
; improved search function, moving cursor to beginning of text found; |
; adjustable max line width (change LINE_WIDTH & recompile) // (obsolet) |
; 3.75a |
; fixed converting char to upper case in read_string |
; 3.75 |
; rewrote save_file from scratch; bugfix in loadfile; |
; 3.74 |
; optimisation |
; 3.73 |
; completly new load_file function |
; 3.72 |
; speed++ |
; 3.71 |
; error beep |
; 3.6,3.7: |
; many bugs fixed |
; simple toolbar |
; compile, run applications from TINYPAD, all fasm output is in debug board |
; TAB button |
; auto-indent |
; Ctrl+L - insert comment string |
;----------------------------------------------------------------------------- |
; See history.txt for complete changelog |
;----------------------------------------------------------------------------- |
include 'lang.inc' |
include '..\..\..\macros.inc' ; useful stuff |
;include 'proc32.inc' |
include '../../../macros.inc' ; useful stuff |
include '../../../struct.inc' |
include '../../../proc32.inc' |
include 'external/libio.inc' |
include 'tinypad.inc' |
;purge mov,add,sub ; SPEED |
header '01',1,@CODE,TINYPAD_END,STATIC_MEM_END,MAIN_STACK,@PARAMS,self_path |
167,6 → 36,9 |
APP_VERSION equ '4.0.4' |
TRUE = 1 |
FALSE = 0 |
;include 'debug.inc' |
;define __DEBUG__ 1 |
;define __DEBUG_LEVEL__ 1 |
241,8 → 113,11 |
or eax,eax |
jz key.alt_x.close |
mov eax,65536 |
call mem.Alloc |
stdcall dll.Load,@IMPORT |
or eax,eax |
jnz key.alt_x.close |
stdcall mem.Alloc,65536 |
mov [temp_buf],eax |
inc [do_not_draw] |
285,8 → 160,7 |
add edx,20 |
mov eax,edx |
call mem.Alloc |
stdcall mem.Alloc,edx |
mov ebp,eax |
push eax |
307,8 → 181,7 |
call load_from_memory |
pop ebp |
mov eax,ebp |
call mem.Free |
stdcall mem.Free,ebp |
jmp @f |
.noipc: |
361,8 → 234,71 |
jmp still.skip_write |
;----------------------------------------------------------------------------- |
func start_fasm ;///////////////////////////////////////////////////////////// |
proc get_event ctx ;////////////////////////////////////////////////////////// |
;----------------------------------------------------------------------------- |
mcall 10 |
dec eax ; redraw ? |
jz .redraw |
dec eax ; key ? |
jz .key |
dec eax ; button ? |
jz .button |
sub eax,2 ; background ? |
jz .background |
dec eax ; mouse ? |
jz .mouse |
dec eax ; ipc ? |
jz .ipc |
dec eax ; network ? |
jz .network |
dec eax ; debug ? |
jz .debug |
sub eax,7 ; irq ? |
js .nothing |
cmp eax,15 |
jg .nothing |
jmp .irq |
.nothing: |
mov eax,EV_IDLE |
ret |
.redraw: |
mov eax,EV_REDRAW |
ret |
.key: |
mov eax,EV_KEY |
ret |
.button: |
mov eax,EV_BUTTON |
ret |
.background: |
mov eax,EV_BACKGROUND |
ret |
.mouse: |
mov eax,EV_MOUSE |
ret |
.ipc: |
mov eax,EV_IPC |
ret |
.network: |
mov eax,EV_NETWORK |
ret |
.debug: |
mov eax,EV_DEBUG |
ret |
endp |
;----------------------------------------------------------------------------- |
proc start_fasm ;///////////////////////////////////////////////////////////// |
;----------------------------------------------------------------------------- |
; BL = run after compile |
;----------------------------------------------------------------------------- |
; FASM infile,outfile,/path/to/files[,run] |
426,18 → 362,18 |
start_ret: |
mcall 70,app_start |
ret |
endf |
endp |
;----------------------------------------------------------------------------- |
func open_debug_board ;/////////////////////////////////////////////////////// |
proc open_debug_board ;/////////////////////////////////////////////////////// |
;----------------------------------------------------------------------------- |
mov [app_start.filename],app_board |
mov [app_start.params],0 |
jmp start_ret |
endf |
endp |
;----------------------------------------------------------------------------- |
func open_sysfuncs_txt ;////////////////////////////////////////////////////// |
proc open_sysfuncs_txt ;////////////////////////////////////////////////////// |
;----------------------------------------------------------------------------- |
mov [app_start.filename],app_docpak |
mov [app_start.params],sysfuncs_param |
448,7 → 384,7 |
mov [app_start.params],sysfuncs_filename |
call start_ret |
@@: ret |
endf |
endp |
set_opt: |
492,7 → 428,7 |
;----------------------------------------------------------------------------- |
include 'tp-defines.inc' |
include 'data/tp-defines.inc' |
include 'tp-draw.asm' |
include 'tp-key.asm' |
507,359 → 443,71 |
include 'tp-editor.asm' |
include 'tp-recode.asm' |
;include 'lib-ini.asm' |
include 'external/dll.inc' |
;----------------------------------------------------------------------------- |
section @DATA ;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: |
;----------------------------------------------------------------------------- |
vscrl_capt dd -1 |
hscrl_capt dd -1 |
body_capt dd -1 |
include 'data/tp-idata.inc' |
key0 db \ |
0x00,0x00,0x02,0x03,0x04,0x05,0x06,0x07,\ |
0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x00,0x00,\ |
0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,\ |
0x18,0x19,0x1A,0x1B,0x00,0x00,0x1E,0x1F,\ |
0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,\ |
0x28,0x29,0x00,0x2B,0x2C,0x2D,0x2E,0x2F,\ |
0x30,0x31,0x32,0x33,0x34,0x35,0x00,0x00,\ |
0x00,0x39,0x00,0x00,0x00,0x00,0x00,0x00 |
times 12*16 db 0x00 |
;----------------------------------------------------------------------------- |
section @IMPORT ;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: |
;----------------------------------------------------------------------------- |
;align 16 |
;@IMPORT: |
accel_table_main dd \ |
0x0000000E,key.bkspace ,\ ; BackSpace |
0x0000000F,key.tab ,\ ; Tab |
0x0000001C,key.return ,\ ; Return |
0x0000003D,key.f3 ,\ ; F3 |
0x00000043,key.f9 ,\ ; F9 |
0x00000147,key.home ,\ ; Home |
0x00000148,key.up ,\ ; Up |
0x00000149,key.pgup ,\ ; PageUp |
0x0000014B,key.left ,\ ; Left |
0x0000014D,key.right ,\ ; Right |
0x0000014F,key.end ,\ ; End |
0x00000150,key.down ,\ ; Down |
0x00000151,key.pgdn ,\ ; PageDown |
0x00000152,key.ins ,\ ; Insert |
0x00000153,key.del ,\ ; Delete |
0x00010043,key.shift_f9 ,\ ; Shift+F9 |
0x00010147,key.shift_home ,\ ; Shift+Home |
0x00010148,key.shift_up ,\ ; Shift+Up |
0x00010149,key.shift_pgup ,\ ; Shift+PageUp |
0x0001014B,key.shift_left ,\ ; Shift+Left |
0x0001014D,key.shift_right ,\ ; Shift+Right |
0x0001014F,key.shift_end ,\ ; Shift+End |
0x00010150,key.shift_down ,\ ; Shift+Down |
0x00010151,key.shift_pgdn ,\ ; Shift+PageDown |
0x00010153,key.del ,\ ; Shift+Delete |
0x0002000F,key.ctrl_tab ,\ ; Ctrl+Tab |
0x00020015,key.ctrl_y ,\ ; Ctrl+Y |
0x00020018,key.ctrl_o ,\ ; Ctrl+O |
0x0002001E,key.ctrl_a ,\ ; Ctrl+A |
0x0002001F,key.ctrl_s ,\ ; Ctrl+S |
0x00020020,key.ctrl_d ,\ ; Ctrl+D |
0x00020021,key.ctrl_f ,\ ; Ctrl+F |
0x00020022,key.ctrl_g ,\ ; Ctrl+G |
0x00020023,key.ctrl_h ,\ ; Ctrl+H |
\;0x00020026,key.ctrl_l ,\ ; Ctrl+L |
0x0002002D,key.ctrl_x ,\ ; Ctrl+X |
0x0002002E,key.ctrl_c ,\ ; Ctrl+C |
0x0002002F,key.ctrl_v ,\ ; Ctrl+V |
0x00020031,key.ctrl_n ,\ ; Ctrl+N |
0x0002003E,key.ctrl_f4 ,\ ; Ctrl+F4 |
0x00020043,key.ctrl_f9 ,\ ; Ctrl+F9 |
0x00020147,key.ctrl_home ,\ ; Ctrl+Home |
\;0x00020148,key.ctrl_up ,\ ; Ctrl+Up |
0x00020149,key.ctrl_pgup ,\ ; Ctrl+PageUp |
0x0002014B,key.ctrl_left ,\ ; Ctrl+Left |
0x0002014D,key.ctrl_right ,\ ; Ctrl+Right |
0x0002014F,key.ctrl_end ,\ ; Ctrl+End |
\;0x00020150,key.ctrl_down ,\ ; Ctrl+Down |
0x00020151,key.ctrl_pgdn ,\ ; Ctrl+PageDown |
0x00020153,key.del ,\ ; Ctrl+Del |
0x0003000F,key.shift_ctrl_tab ,\ ; Shift+Ctrl+Tab |
0x0003001F,key.shift_ctrl_s ,\ ; Shift+Ctrl+S |
0x00030147,key.shift_ctrl_home ,\ ; Shift+Ctrl+Home |
\;0x00030148,key.shift_ctrl_up ,\ ; Shift+Ctrl+Up |
0x00030149,key.shift_ctrl_pgup ,\ ; Shift+Ctrl+PageUp |
0x0003014B,key.shift_ctrl_left ,\ ; Shift+Ctrl+Left |
0x0003014D,key.shift_ctrl_right ,\ ; Shift+Ctrl+Right |
0x0003014F,key.shift_ctrl_end ,\ ; Shift+Ctrl+End |
\;0x00030150,key.shift_ctrl_down ,\ ; Shift+Ctrl+Down |
0x00030151,key.shift_ctrl_pgdn ,\ ; Shift+Ctrl+PageDown |
0x0004002D,key.alt_x ,\ ; Alt+X |
0 |
library \ |
libini,'libini.obj',\ |
libio,'libio.obj',\ |
libgfx,'libgfx.obj' |
accel_table_textbox dd \ |
\;0x00000001,key.tb.escape ,\ ; Escape |
0x0000000E,key.tb.bkspace ,\ ; BackSpace |
\;0x0000000F,key.tb.tab ,\ ; Tab |
\;0x0000001C,key.tb.return ,\ ; Return |
0x00000147,key.tb.home ,\ ; Home |
0x0000014B,key.tb.left ,\ ; Left |
0x0000014D,key.tb.right ,\ ; Right |
0x0000014F,key.tb.end ,\ ; End |
0x00000153,key.tb.del ,\ ; Delete |
0x00010147,key.tb.shift_home ,\ ; Shift+Home |
0x0001014B,key.tb.shift_left ,\ ; Shift+Left |
0x0001014D,key.tb.shift_right ,\ ; Shift+Right |
0x0001014F,key.tb.shift_end ,\ ; Shift+End |
0x00010153,key.tb.del ,\ ; Shift+Del |
0 |
import libini, \ |
ini.get_str,'ini.get_str',\ |
ini.set_str,'ini.set_str',\ |
ini.get_int,'ini.get_int',\ |
ini.set_int,'ini.set_int' |
accel_table2 dd \ |
1 ,key.alt_x ,\ |
'VSL',btn.vscroll_up ,\ |
'VSG',btn.vscroll_down ,\ |
'HSL',btn.hscroll_up ,\ |
'HSG',btn.hscroll_down ,\ |
'TBL',btn.tabctl_right ,\ |
'TBG',btn.tabctl_left ,\ |
177 , key.ctrl_f4 ,\ ; close current tab button |
0 |
import libio, \ |
file.find_first,'file.find_first',\ |
file.find_next ,'file.find_next',\ |
file.find_close,'file.find_close',\ |
file.size ,'file.size',\ |
file.open ,'file.open',\ |
file.read ,'file.read',\ |
file.write ,'file.write',\ |
file.seek ,'file.seek',\ |
file.tell ,'file.tell',\ |
file.eof? ,'file.eof?',\ |
file.truncate ,'file.truncate',\ |
file.close ,'file.close' |
accel_table2_botdlg dd \ |
1 ,key.alt_x ,\ |
20001,btn.bot.cancel ,\ |
20002,btn.bot.opensave ,\ |
20003,btn.bot.find ,\ |
20004,btn.bot.appearance,\ |
20007, btn.bot.no ,\ |
21001,btn.bot.tabpos ,\ |
0 |
import libgfx, \ |
gfx.open ,'gfx.open',\ |
gfx.close ,'gfx.close',\ |
gfx.pen.color ,'gfx.pen.color',\ |
gfx.brush.color ,'gfx.brush.color',\ |
gfx.pixel ,'gfx.pixel',\ |
gfx.move.to ,'gfx.move.to',\ |
gfx.line.to ,'gfx.line.to',\ |
gfx.line ,'gfx.line',\ |
gfx.polyline ,'gfx.polyline',\ |
gfx.polyline.to ,'gfx.polyline.to',\ |
gfx.fillrect ,'gfx.fillrect',\ |
gfx.fillrect.ex ,'gfx.fillrect.ex',\ |
gfx.framerect ,'gfx.framerect',\ |
gfx.framerect.ex,'gfx.framerect.ex',\ |
gfx.rectangle ,'gfx.rectangle',\ |
gfx.rectangle.ex,'gfx.rectangle.ex' |
add_table: |
times $1A db -$20 |
times $25 db -$00 |
times $10 db -$20 |
times $30 db -$00 |
times $10 db -$50 |
times $04 db -$00,-$01 |
times $08 db -$00 |
s_status dd 0 |
@^ |
fasm_start: |
dd 7 |
dd 0 |
dd fasm_parameters |
dd 0 |
dd 0 |
db '/sys/DEVELOP/FASM',0 |
board_start: |
dd 7 |
dd 0 |
dd 0 |
dd 0 |
dd 0 |
db '/sys/DEVELOP/BOARD',0 |
tinypad_start: |
dd 7 |
dd 0 |
dd ? |
dd 0 |
dd 0 |
db '/sys/TINYPAD',0 |
docpak_start: |
dd 7 |
dd 0 |
dd sysfuncs_param |
dd 0 |
dd 0 |
db '/sys/DOCPAK',0 |
^@ |
sz app_fasm ,'/sys/DEVELOP/FASM',0 |
sz app_board ,'/sys/DEVELOP/BOARD',0 |
sz app_tinypad ,'/sys/TINYPAD',0 |
sz app_docpak ,'/sys/DOCPAK',0 |
sz sysfuncs_param,'g',0 |
include 'tp-locale.inc' |
;// options dialog data [ |
label optsdlg_editor at $-EDITOR.Bounds |
; rb PATHL ; FilePath db PATHL dup(?) |
; dd 0 ; FileName dd ? |
dd ?,?,?,? ; Bounds RECT |
dd @f ; Lines dd ? |
dd ? ; Lines.Size dd ? |
dd 9 ; Lines.Count dd ? |
dd 21 ; Columns.Count dd ? |
dd 0,4 ; Caret POINT |
dd 100,4 ; SelStart POINT |
dd 0,0 ; TopLeft POINT |
dd 0,0 ; VScroll SCROLLBAR |
dd 0,0 ; HScroll SCROLLBAR |
dd 0 ; Gutter.Width dd ? |
db 0 ; Gutter.Visible db ? |
db 1 ; AsmMode db ? |
db 0 ; Modified db ? |
@@: |
dd 0x00000000+1 |
db ' ' |
dd 0x00010000+9 |
db ' org 100h' |
dd 0x00000000+1 |
db ' ' |
dd 0x00000000+20 |
db ' mov ah,09h ; write' |
dd 0x00000000+12 |
db ' mov dx,text' |
dd 0x00000000+8 |
db ' int 21h' |
dd 0x00030000+8 |
db ' int 20h' |
dd 0x00000000+1 |
db ' ' |
dd 0x00000000+21 |
db ' text db "Hello!",24h' |
dd 0 |
optsdlg_editor_parts: ; left,top,right,bottom,type |
db 0, 12, 13, 29, 22 |
db 0, 12, 33, 47, 42 |
db 0, 12, 53, 29, 72 |
db 0, 12, 83, 53, 92 |
db 2, 12, 43, 77, 52 |
db 3, 4, 43,148, 52 |
db 4, 48, 33, 53, 42 |
db 4,108, 83,113, 92 |
db 5, 36, 13, 59, 22 |
db 5, 54, 33, 71, 42 |
db 5, 36, 53, 53, 72 |
db 5,114, 83,131, 92 |
db 6, 60, 83,107, 92 |
db 7, 84, 33,125, 42 |
db 8, 1, 13, 5, 22 |
db 9, 1, 63, 5, 72 |
db 1, 1, 1,148,105 |
db -1 |
;// ] |
sz symbols_ex,';?.%"',"'" |
sz symbols ,'#&*\:/<>|{}()[]=+-, ' |
sz ini_sec_window ,'Window',0 |
sz ini_window_top ,'Top',0 |
sz ini_window_left ,'Left',0 |
sz ini_window_right ,'Right',0 |
sz ini_window_bottom,'Bottom',0 |
TINYPAD_END: ; end of file |
self_path rb PATHL |
;----------------------------------------------------------------------------- |
section @UDATA ;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: |
;----------------------------------------------------------------------------- |
app_start: |
dd ?,? |
.params dd ? |
dd ?,? |
db ? |
.filename dd ? |
include 'data/tp-udata.inc' |
f_info.length dd ? |
f_info.path: |
times PATHL+1 db ? |
f_info70 rd 7 |
file_info FILEINFO |
checker_ed EDITOR |
checker_ed_ll dd ? |
tab_bar TABCTL |
virtual at tab_bar.Current |
cur_tab TABITEM |
end virtual |
virtual at tab_bar.Current.Editor |
cur_editor EDITOR |
end virtual |
lines.scr dd ? ; number of lines on the screen |
columns.scr dd ? ; number of columns on the screen |
top_ofs dd ? ; height occupied by top buttons |
bot_ofs dd ? ; height occupied by bottom buttons |
dw ? |
left_ofs dd ? ; |
__rc dd ?,?,?,? |
copy_count dd ? ; number of lines for copying (Ctrl+E) |
copy_size dd ? ; size of data to copy |
s_title.size dd ? ; caption length |
cur_line_len dd ? |
h_popup dd ? |
bot_dlg_handler dd ? |
sel.begin.x dd ? |
sel.begin.y dd ? |
sel.end.x dd ? |
sel.end.y dd ? |
sel.selected db ? |
in_sel db ? |
do_not_draw db ? ; draw top and bottom buttons? |
main_closed db ? ; main window closed? |
tb_casesen db ? ; focused textbox is case-sensitive? |
draw_blines db ? |
align 4 |
s_fname.size dd ? |
s_fname rb PATHL+1 |
align 4 |
s_search.size dd ? |
s_search rb PATHL+1 |
s_title rb PATHL+11 ; window caption |
chr db ? |
ext db ? |
shi dd ? |
align 4 |
cl_3d_normal dd ? |
cl_3d_pushed dd ? |
cl_3d_outset dd ? |
cl_3d_inset dd ? |
cl_3d_grayed dd ? |
tb_color TBOX |
tb_opensave TBOX |
tb_find TBOX |
tb_replace TBOX |
tb_gotorow TBOX |
tb_gotocol TBOX |
focused_tb dd ? |
key1 rb 256 |
mst db ? |
mst2 db ? |
mev db ? |
mouse_captured db ? |
just_from_popup db ? |
bot_mode db ? |
align 4 |
bot_dlg_height dd ? |
bot_dlg_mode2 db ? |
temp_buf dd ? |
copy_buf dd ? |
;----------------------------------------------------------------------------- |
section @PARAMS ;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: |
;----------------------------------------------------------------------------- |
/programs/develop/tinypad/trunk/tinypad.inc |
---|
150,7 → 150,7 |
m2 = -2 |
end if |
store word (m1*6+m2*6+6*8) at _name+POPUP.width |
store word (c1*POP_IHEIGHT+c2*4+4) at _name+POPUP.height |
store word (c1*POP_IHEIGHT+c2*POP_SHEIGHT+3) at _name+POPUP.height |
store dword (((m1+2)*6-1)*65536) at _name+POPUP.acc_ofs |
end if |
} |
216,7 → 216,8 |
MEV_LUP = 2 |
MEV_RDOWN = 3 |
MEV_RUP = 4 |
MEV_MOVE = 5 |
MEV_WHEEL = 5 |
MEV_MOVE = 6 |
;// KEY MODIFIERS |
/programs/develop/tinypad/trunk/tp-button.asm |
---|
101,7 → 101,7 |
call open_sysfuncs_txt |
ret |
func search |
proc search |
cld |
mov ecx,[cur_editor.Caret.Y] |
mov edx,ecx |
179,4 → 179,4 |
mov [s_status],s_text_not_found |
stc |
ret |
endf |
endp |
/programs/develop/tinypad/trunk/tp-common.asm |
---|
1,5 → 1,5 |
;----------------------------------------------------------------------------- |
func clear_selection ;//////////////////////////////////////////////////////// |
proc clear_selection ;//////////////////////////////////////////////////////// |
;----------------------------------------------------------------------------- |
push eax ebx |
mov eax,[cur_editor.SelStart.Y] |
11,10 → 11,10 |
pop [cur_editor.SelStart.Y] [cur_editor.SelStart.X] |
pop ebx eax |
ret |
endf |
endp |
;----------------------------------------------------------------------------- |
func pt_in_rect ;///////////////////////////////////////////////////////////// |
proc pt_in_rect ;///////////////////////////////////////////////////////////// |
;----------------------------------------------------------------------------- |
cmp eax,[ecx+0x0] |
jl @f |
28,14 → 28,18 |
ret |
@@: clc |
ret |
endf |
endp |
;----------------------------------------------------------------------------- |
func check_bottom_right ;///////////////////////////////////////////////////// |
proc check_bottom_right ;///////////////////////////////////////////////////// |
;----------------------------------------------------------------------------- |
push eax |
mov eax,[cur_editor.TopLeft.Y] |
add eax,[lines.scr] |
or eax,eax |
jns @f |
xor eax,eax |
mov [cur_editor.TopLeft.Y],eax |
@@: add eax,[lines.scr] |
cmp eax,[cur_editor.Lines.Count] |
jbe .lp1 |
mov eax,[cur_editor.Lines.Count] |
44,7 → 48,11 |
xor eax,eax |
@@: mov [cur_editor.TopLeft.Y],eax |
.lp1: mov eax,[cur_editor.TopLeft.X] |
add eax,[columns.scr] |
or eax,eax |
jns @f |
xor eax,eax |
mov [cur_editor.TopLeft.X],eax |
@@: add eax,[columns.scr] |
cmp eax,[cur_editor.Columns.Count] |
jbe .exit |
mov eax,[cur_editor.Columns.Count] |
55,10 → 63,10 |
.exit: |
pop eax |
ret |
endf |
endp |
;----------------------------------------------------------------------------- |
func get_real_length ;//////////////////////////////////////////////////////// |
proc get_real_length ;//////////////////////////////////////////////////////// |
;----------------------------------------------------------------------------- |
movzx eax,word[esi] |
@@: cmp byte[esi+eax+4-1],' ' |
66,10 → 74,10 |
dec eax |
jnz @b |
@@: ret |
endf |
endp |
;----------------------------------------------------------------------------- |
func get_line_offset ;//////////////////////////////////////////////////////// |
proc get_line_offset ;//////////////////////////////////////////////////////// |
;----------------------------------------------------------------------------- |
; Input: |
; ECX = line number |
86,10 → 94,10 |
.exit: |
pop ecx eax |
ret |
endf |
endp |
;----------------------------------------------------------------------------- |
func init_sel_vars ;////////////////////////////////////////////////////////// |
proc init_sel_vars ;////////////////////////////////////////////////////////// |
;----------------------------------------------------------------------------- |
pushad |
mov [sel.selected],1 |
113,10 → 121,10 |
mov [sel.end.y],edx |
popad |
ret |
endf |
endp |
;----------------------------------------------------------------------------- |
func get_scroll_vars ;//////////////////////////////////////////////////////// |
proc get_scroll_vars ;//////////////////////////////////////////////////////// |
;----------------------------------------------------------------------------- |
; Input: |
; EAX = maximum data size (units) |
159,10 → 167,10 |
mov dword[esp+4],0 |
mov dword[esp+8],0 |
jmp @b |
endf |
endp |
;----------------------------------------------------------------------------- |
func uint2strz ;////////////////////////////////////////////////////////////// |
proc uint2strz ;////////////////////////////////////////////////////////////// |
;----------------------------------------------------------------------------- |
dec ebx |
jz @f |
176,10 → 184,10 |
das |
stosb |
ret |
endf |
endp |
;----------------------------------------------------------------------------- |
func uint2str ;/////////////////////////////////////////////////////////////// |
proc uint2str ;/////////////////////////////////////////////////////////////// |
;----------------------------------------------------------------------------- |
cmp eax,ecx |
jb @f |
193,10 → 201,10 |
das |
stosb |
ret |
endf |
endp |
;----------------------------------------------------------------------------- |
func strlen ;///////////////////////////////////////////////////////////////// |
proc strlen ;///////////////////////////////////////////////////////////////// |
;----------------------------------------------------------------------------- |
push ebx |
mov ebx,eax |
207,10 → 215,10 |
jmp @b |
@@: pop ebx |
ret |
endf |
endp |
;----------------------------------------------------------------------------- |
func rgb_to_gray ;//////////////////////////////////////////////////////////// |
proc rgb_to_gray ;//////////////////////////////////////////////////////////// |
;----------------------------------------------------------------------------- |
push 0 eax |
and dword[esp],0x000000FF |
235,7 → 243,7 |
pop eax |
add esp,4 |
ret |
endf |
endp |
;float_gray_r dd 0.30f |
;float_gray_g dd 0.59f |
242,7 → 250,7 |
;float_gray_b dd 0.11f |
;----------------------------------------------------------------------------- |
func get_active_menu_item ;/////////////////////////////////////////////////// |
proc get_active_menu_item ;/////////////////////////////////////////////////// |
;----------------------------------------------------------------------------- |
pushad |
mov [mi_cur],0 |
276,10 → 284,10 |
or [mi_cur],-1 |
@@: popad |
ret |
endf |
endp |
;----------------------------------------------------------------------------- |
func get_active_popup_item ;////////////////////////////////////////////////// |
proc get_active_popup_item ;////////////////////////////////////////////////// |
;----------------------------------------------------------------------------- |
pushad |
mov [pi_cur],0 |
296,9 → 304,9 |
call pt_in_rect |
jnc .outside_window |
inc dword[ecx+0x0] |
mov dword[ecx+0x4],3 |
mov dword[ecx+0x4],2 |
dec dword[ecx+0x8] |
mov dword[ecx+0xC],3+POP_IHEIGHT-1 |
mov dword[ecx+0xC],2+POP_IHEIGHT-1 |
mov edx,[ebp+POPUP.data] |
@@: inc [pi_cur] |
inc edx |
306,12 → 314,12 |
cmp byte[edx],'-' |
jne .lp1 |
pushd [ecx+0xC] |
sub dword[ecx+0xC],POP_IHEIGHT-4 |
sub dword[ecx+0xC],POP_IHEIGHT-POP_SHEIGHT |
call pt_in_rect |
popd [ecx+0xC] |
jc .separator |
add dword[ecx+0x4],4 |
add dword[ecx+0xC],4 |
add dword[ecx+0x4],POP_SHEIGHT |
add dword[ecx+0xC],POP_SHEIGHT |
jmp .lp3 |
.lp1: call pt_in_rect |
jnc .lp2 |
335,10 → 343,10 |
.outside_window: |
or [pi_cur],-1 |
jmp .exit |
endf |
endp |
;----------------------------------------------------------------------------- |
func line_add_spaces ;//////////////////////////////////////////////////////// |
proc line_add_spaces ;//////////////////////////////////////////////////////// |
;----------------------------------------------------------------------------- |
; Input: |
; ESI = line offset |
378,10 → 386,10 |
.exit: |
popad |
ret |
endf |
endp |
;----------------------------------------------------------------------------- |
func delete_selection ;/////////////////////////////////////////////////////// |
proc delete_selection ;/////////////////////////////////////////////////////// |
;----------------------------------------------------------------------------- |
; call init_sel_vars |
470,10 → 478,10 |
.exit.2: |
stc |
ret |
endf |
endp |
;----------------------------------------------------------------------------- |
func get_selection_size ;///////////////////////////////////////////////////// |
proc get_selection_size ;///////////////////////////////////////////////////// |
;----------------------------------------------------------------------------- |
push ecx esi |
mov ecx,[sel.end.y] |
485,10 → 493,10 |
sub eax,esi |
pop esi ecx |
ret |
endf |
endp |
;----------------------------------------------------------------------------- |
func get_lines_in_file ;////////////////////////////////////////////////////// |
proc get_lines_in_file ;////////////////////////////////////////////////////// |
;----------------------------------------------------------------------------- |
; Input: |
; ESI = data pointer |
528,10 → 536,10 |
sub [esp],edx |
xor edx,edx |
jmp .lp1 |
endf |
endp |
;----------------------------------------------------------------------------- |
func update_caption ;///////////////////////////////////////////////////////// |
proc update_caption ;///////////////////////////////////////////////////////// |
;----------------------------------------------------------------------------- |
lea esi,[cur_editor.FilePath] |
mov edi,s_title |
572,12 → 580,13 |
add esp,4 |
clc |
ret |
endf |
endp |
;----------------------------------------------------------------------------- |
func mem.Alloc ;////////////////////////////////////////////////////////////// |
proc mem.Alloc,size ;///////////////////////////////////////////////////////// |
;----------------------------------------------------------------------------- |
push ebx ecx |
mov eax,[size] |
lea ecx,[eax+4+4095] |
and ecx,not 4095 |
mcall 68,12 |
586,12 → 595,20 |
add eax,4 |
pop ecx ebx |
ret |
endf |
@^ |
push ebx ecx |
mcall 68,12,[size] |
pop ecx ebx |
ret |
^@ |
endp |
;----------------------------------------------------------------------------- |
func mem.ReAlloc ;//////////////////////////////////////////////////////////// |
proc mem.ReAlloc,mptr,size ;////////////////////////////////////////////////// |
;----------------------------------------------------------------------------- |
push ebx ecx esi edi eax |
mov eax,[mptr] |
mov ebx,[size] |
or eax,eax |
jz @f |
lea ecx,[ebx+4+4095] |
599,8 → 616,7 |
add ecx,-4 |
cmp ecx,[eax-4] |
je .exit |
@@: mov eax,ebx |
call mem.Alloc |
@@: stdcall mem.Alloc,ebx |
xchg eax,[esp] |
or eax,eax |
jz .exit |
616,18 → 632,31 |
cld |
rep movsd |
xchg eax,[esp] |
call mem.Free |
stdcall mem.Free,eax |
.exit: |
pop eax edi esi ecx ebx |
ret |
endf |
@^ |
push ebx ecx edx |
mcall 68,20,[size],[mptr] |
pop edx ecx ebx |
ret |
^@ |
endp |
;----------------------------------------------------------------------------- |
func mem.Free ;/////////////////////////////////////////////////////////////// |
proc mem.Free,mptr ;////////////////////////////////////////////////////////// |
;----------------------------------------------------------------------------- |
push ebx ecx |
mov eax,[mptr] |
lea ecx,[eax-4] |
mcall 68,13 |
pop ecx ebx |
ret |
endf |
@^ |
push ebx ecx |
mcall 68,13,[mptr] |
pop ecx ebx |
ret |
^@ |
endp |
/programs/develop/tinypad/trunk/tp-dialog.asm |
---|
1,5 → 1,5 |
;----------------------------------------------------------------------------- |
func define_3d_button ;/////////////////////////////////////////////////////// |
proc define_3d_button ;/////////////////////////////////////////////////////// |
;----------------------------------------------------------------------------- |
; ebx = <x,width> |
; ecx = <y,height> |
26,7 → 26,7 |
mcall 4,,[sc.work_text],[esp+4*8+4*2],[esp+4*8+4*1] |
popad |
ret 4*3 |
endf |
endp |
finddlg_handler: |
cmp al,1 |
641,7 → 641,7 |
movzx eax,[tb_replace.length] |
add eax,10 |
call mem.Alloc |
stdcall mem.Alloc,eax |
mov [copy_buf],eax |
movzx eax,[tb_replace.length] |
661,8 → 661,7 |
call key.ctrl_v |
pop [cur_editor.SelStart.X] |
mov eax,[copy_buf] |
call mem.Free |
stdcall mem.Free,[copy_buf] |
pop [copy_buf] [copy_count] [copy_size] |
/programs/develop/tinypad/trunk/tp-draw.asm |
---|
1,5 → 1,5 |
;----------------------------------------------------------------------------- |
func drawwindow ;///// DRAW WINDOW /////////////////////////////////////////// |
proc drawwindow ;///// DRAW WINDOW /////////////////////////////////////////// |
;----------------------------------------------------------------------------- |
cmp [just_from_popup],1 |
10,9 → 10,11 |
mcall 48,3,sc,sizeof.system_colors |
call calc_3d_colors |
mcall 12,1 |
;mcall 12,1 |
invoke gfx.open,TRUE |
mov [ctx],eax |
m2m [sc.work],dword[color_tbl.back] |
;m2m [sc.work],dword[color_tbl.back] |
mov edx,[sc.work] |
add edx,0x73000000 |
110,29 → 112,39 |
call draw_editor |
call draw_tabctl |
.exit.2: |
mcall 12,2 |
;mcall 12,2 |
invoke gfx.close,[ctx] |
ret |
endf |
endp |
;----------------------------------------------------------------------------- |
func draw_bottom_dialog ;///////////////////////////////////////////////////// |
proc draw_bottom_dialog ;///////////////////////////////////////////////////// |
;----------------------------------------------------------------------------- |
cmp [bot_dlg_height],0 |
je .exit |
pushad |
mov ebx,[p_info.client_box.width] |
invoke gfx.pen.color,[ctx],[cl_3d_inset] |
mov ecx,[bot_ofs] |
dec ecx |
push cx |
shl ecx,16 |
pop cx |
mcall 38,,,[cl_3d_inset] |
mov ecx,[bot_ofs-2] |
mov cx,word[bot_dlg_height] |
dec ecx |
mov ebx,[p_info.client_box.width] |
inc ebx |
mcall 13,,,[cl_3d_normal] |
invoke gfx.line,[ctx],0,ecx,[p_info.client_box.width],ecx |
invoke gfx.brush.color,[ctx],[cl_3d_normal] |
inc ecx |
mov eax,ecx |
add eax,[bot_dlg_height] |
invoke gfx.fillrect,[ctx],0,ecx,[p_info.client_box.width],eax |
;mov ebx,[p_info.client_box.width] |
;mov ecx,[bot_ofs] |
;dec ecx |
;push cx |
;shl ecx,16 |
;pop cx |
;mcall 38,,,[cl_3d_inset] |
;mov ecx,[bot_ofs-2] |
;mov cx,word[bot_dlg_height] |
;dec ecx |
;mov ebx,[p_info.client_box.width] |
;inc ebx |
;mcall 13,,,[cl_3d_normal] |
mov al,1 |
call [bot_dlg_handler] |
popad |
139,13 → 151,13 |
.exit: |
ret |
endf |
endp |
mi_sel dd ? |
mi_cur dd -1 |
;----------------------------------------------------------------------------- |
func draw_main_menu ;///////////////////////////////////////////////////////// |
proc draw_main_menu ;///////////////////////////////////////////////////////// |
;----------------------------------------------------------------------------- |
mov ebx,[p_info.client_box.width] |
inc ebx |
221,10 → 233,10 |
cross: |
db 'X' |
endf |
endp |
;----------------------------------------------------------------------------- |
func draw_statusbar ;///// DRAW POSITION, MODIFIED STATE, HINT /////////////// |
proc draw_statusbar ;///// DRAW POSITION, MODIFIED STATE, HINT /////////////// |
;----------------------------------------------------------------------------- |
cmp [do_not_draw],1 ; return if drawing is not permitted |
jae .exit |
298,9 → 310,9 |
.exit: |
ret |
endf |
endp |
func draw_fillrect ; ebx,ecx,edx |
proc draw_fillrect ; ebx,ecx,edx |
; ebx = <left,width> |
; ecx = <top,height> |
push ebx ecx edx |
310,9 → 322,9 |
mcall 13,,,esi |
pop edx ecx ebx |
ret |
endf |
endp |
func draw_framerect ; ebx,ecx,edx |
proc draw_framerect ; ebx,ecx,edx |
; ebx = <left,width> |
; ecx = <top,height> |
push ebx ecx |
341,9 → 353,9 |
pop ecx ebx |
ret |
endf |
endp |
func draw_check |
proc draw_check |
push bx |
shl ebx,16 |
pop bx |
361,9 → 373,9 |
sub ecx,0x00010001 |
mcall |
ret |
endf |
endp |
func calc_middle |
proc calc_middle |
shr eax,1 |
shr ebx,1 |
and eax,0x007F7F7F |
370,9 → 382,9 |
and ebx,0x007F7F7F |
add eax,ebx |
ret |
endf |
endp |
func calc_3d_colors |
proc calc_3d_colors |
pushad |
m2m [cl_3d_normal],[sc.work] |
m2m [cl_3d_inset],[sc.work_graph] |
399,9 → 411,9 |
mov [cl_3d_grayed],eax |
popad |
ret |
endf |
endp |
func draw_3d_panel ; x,y,w,h |
proc draw_3d_panel ; x,y,w,h |
push eax ebx ecx edx |
cmp dword[esp+16+8],4 |
jl .exit |
447,4 → 459,4 |
.exit: |
pop edx ecx ebx eax |
ret 4*4 |
endf |
endp |
/programs/develop/tinypad/trunk/tp-editor.asm |
---|
1,6 → 1,6 |
;----------------------------------------------------------------------------- |
func draw_editor ;///// DRAW EDITOR ////////////////////////////////////////// |
proc draw_editor ;///// DRAW EDITOR ////////////////////////////////////////// |
;----------------------------------------------------------------------------- |
mov ebx,[cur_editor.Bounds.Left-2] |
61,10 → 61,10 |
.exit: |
ret |
endf |
endp |
;----------------------------------------------------------------------------- |
func draw_editor_gutter ;///// DRAW EDITOR GUTTER (LEFT PANEL) /////////////// |
proc draw_editor_gutter ;///// DRAW EDITOR GUTTER (LEFT PANEL) /////////////// |
;----------------------------------------------------------------------------- |
cmp [cur_editor.Gutter.Visible],0 |
je .exit |
121,10 → 121,10 |
.exit: |
ret |
endf |
endp |
;----------------------------------------------------------------------------- |
func draw_editor_vscroll ;///// DRAW EDITOR VERTICAL SCROLL BAR ////////////// |
proc draw_editor_vscroll ;///// DRAW EDITOR VERTICAL SCROLL BAR ////////////// |
;----------------------------------------------------------------------------- |
mov ebx,[cur_editor.Bounds.Right] |
shl ebx,16 |
230,10 → 230,10 |
mcall 38,,,[cl_3d_inset] |
ret |
endf |
endp |
;----------------------------------------------------------------------------- |
func draw_editor_hscroll ;///// DRAW EDITOR HORIZONTAL SCROLL BAR //////////// |
proc draw_editor_hscroll ;///// DRAW EDITOR HORIZONTAL SCROLL BAR //////////// |
;----------------------------------------------------------------------------- |
mov ebx,[cur_editor.Bounds.Left-2] |
mov bx,SCRLW |
338,10 → 338,10 |
mcall 38,,,[cl_3d_inset] |
ret |
endf |
endp |
;----------------------------------------------------------------------------- |
func draw_editor_text.part ;///// DRAW EDITOR TEXT (PARTLY) ////////////////// |
proc draw_editor_text.part ;///// DRAW EDITOR TEXT (PARTLY) ////////////////// |
;----------------------------------------------------------------------------- |
; EAX = start line |
; EBX = end line |
414,10 → 414,10 |
.exit: |
popad |
ret |
endf |
endp |
;----------------------------------------------------------------------------- |
func draw_editor_text ;///// DRAW EDITOR TEXT //////////////////////////////// |
proc draw_editor_text ;///// DRAW EDITOR TEXT //////////////////////////////// |
;----------------------------------------------------------------------------- |
cmp [cur_editor.Lines],0 |
jne @f |
808,10 → 808,10 |
popad |
add esp,4 |
ret |
endf |
endp |
;----------------------------------------------------------------------------- |
func draw_editor_text.get_next_part ;///////////////////////////////////////// |
proc draw_editor_text.get_next_part ;///////////////////////////////////////// |
;----------------------------------------------------------------------------- |
; Input: |
; ECX = current letter |
926,10 → 926,10 |
mov ecx,[cur_line_len] |
mov eax,[color_tbl.text] |
ret |
endf |
endp |
;----------------------------------------------------------------------------- |
func draw_editor_caret ;///// DRAW EDITOR TEXT CARET ///////////////////////// |
proc draw_editor_caret ;///// DRAW EDITOR TEXT CARET ///////////////////////// |
;----------------------------------------------------------------------------- |
cmp [bot_mode],0 |
jne @f |
966,10 → 966,10 |
loop .lp8 |
@@: |
ret |
endf |
endp |
;----------------------------------------------------------------------------- |
func editor_realloc_lines ;///// ADD $DELTA$ TO LINES SIZE /////////////////// |
proc editor_realloc_lines ;///// ADD $DELTA$ TO LINES SIZE /////////////////// |
;----------------------------------------------------------------------------- |
; EAX = delta |
;----------------------------------------------------------------------------- |
979,12 → 979,12 |
mov eax,[cur_editor.Lines] |
mov [cur_editor.Lines.Size],ebx |
mov ecx,eax |
call mem.ReAlloc |
stdcall mem.ReAlloc,eax,ebx |
mov [cur_editor.Lines],eax |
sub eax,ecx |
pop ecx ebx |
ret |
endf |
endp |
REDRAW_TEXT = 00000001b |
REDRAW_HSCROLL = 00000010b |
993,7 → 993,7 |
REDRAW_TWOLINES = 00010000b |
;----------------------------------------------------------------------------- |
func editor_check_for_changes ;///// EDITOR CHANGES CHECKER ////////////////// |
proc editor_check_for_changes ;///// EDITOR CHANGES CHECKER ////////////////// |
;----------------------------------------------------------------------------- |
call .check_cursor_visibility |
.direct: |
1181,4 → 1181,4 |
pop [cur_editor.SelStart.Y] [cur_editor.SelStart.X] |
@@: pop ebx eax |
ret |
endf |
endp |
/programs/develop/tinypad/trunk/tp-files.asm |
---|
1,5 → 1,5 |
;----------------------------------------------------------------------------- |
func save_file ;////////////////////////////////////////////////////////////// |
proc save_file ;////////////////////////////////////////////////////////////// |
;----------------------------------------------------------------------------- |
mov esi,tb_opensave.text |
mov edi,f_info.path |
21,7 → 21,7 |
mov eax,[cur_editor.Lines.Count] |
shl eax,1 |
lea eax,[eax+ebx+1024] |
call mem.Alloc |
stdcall mem.Alloc,eax |
push eax |
mov esi,[cur_editor.Lines] |
mov edi,eax |
55,10 → 55,10 |
.exit.2: |
stc |
ret |
endf |
endp |
;----------------------------------------------------------------------------- |
func save_string ;//////////////////////////////////////////////////////////// |
proc save_string ;//////////////////////////////////////////////////////////// |
;----------------------------------------------------------------------------- |
movzx ecx,word[esi] |
test dword[esi],0x00010000 |
126,9 → 126,9 |
movzx eax,word[esi-4] |
add esi,eax;[esi-4] |
ret |
endf |
endp |
func set_status_fs_error |
proc set_status_fs_error |
push eax |
mov esi,s_fs_error |
@@: dec eax |
141,10 → 141,10 |
pop eax |
call draw_statusbar |
ret |
endf |
endp |
;----------------------------------------------------------------------------- |
func load_file ;////////////////////////////////////////////////////////////// |
proc load_file ;////////////////////////////////////////////////////////////// |
;----------------------------------------------------------------------------- |
cmp [tb_opensave.length],0 |
jne @f |
171,7 → 171,7 |
mov [f_info70+0],0 |
mov eax,dword[file_info.Size] |
mov [f_info70+12],eax |
call mem.Alloc |
stdcall mem.Alloc,eax |
mov [f_info70+16],eax |
mcall 70,f_info70 |
185,8 → 185,7 |
cmp ebx,6 ;// ATV driver fix (6 instead of 5) |
je .file_found |
mov eax,[f_info70+16] |
call mem.Free |
stdcall mem.Free,[f_info70+16] |
stc |
ret |
221,8 → 220,7 |
call flush_cur_tab |
pop edi esi ecx |
call load_from_memory |
mov eax,[f_info70+16] |
call mem.Free |
stdcall mem.Free,[f_info70+16] |
xor eax,eax |
mov [cur_editor.TopLeft.Y],eax |
251,10 → 249,10 |
clc |
ret |
endf |
endp |
;----------------------------------------------------------------------------- |
func load_from_memory ;/////////////////////////////////////////////////////// |
proc load_from_memory ;/////////////////////////////////////////////////////// |
;----------------------------------------------------------------------------- |
; ECX = data length |
; ESI = data pointer |
265,9 → 263,8 |
lea edx,[ebx+ecx] |
imul ebx,eax,14 |
add ebx,edx |
mov eax,[ebp+EDITOR.Lines] |
mov [ebp+EDITOR.Lines.Size],ebx |
call mem.ReAlloc |
stdcall mem.ReAlloc,[ebp+EDITOR.Lines],ebx |
mov [ebp+EDITOR.Lines],eax |
mov [ebp+EDITOR.Columns.Count],0 |
335,4 → 332,4 |
mov al,' ' |
rep stosb |
jmp .next_char |
endf |
endp |
/programs/develop/tinypad/trunk/tp-key.asm |
---|
109,7 → 109,7 |
jmp key.tab.direct |
;----------------------------------------------------------------------------- |
func key.ctrl_a ;///// SELECT ALL DOCUMENT /////////////////////////////////// |
proc key.ctrl_a ;///// SELECT ALL DOCUMENT /////////////////////////////////// |
;----------------------------------------------------------------------------- |
xor eax,eax |
mov [cur_editor.SelStart.X],eax |
122,10 → 122,10 |
mov [cur_editor.Caret.X],eax |
call draw_editor |
ret |
endf |
endp |
;----------------------------------------------------------------------------- |
func key.ctrl_o ;///// ENTER OPEN FILENAME /////////////////////////////////// |
proc key.ctrl_o ;///// ENTER OPEN FILENAME /////////////////////////////////// |
;----------------------------------------------------------------------------- |
mov [bot_dlg_mode2],0 |
149,10 → 149,10 |
mov [tb_casesen],0;1 |
call drawwindow |
ret |
endf |
endp |
;----------------------------------------------------------------------------- |
func key.ctrl_s ;///// ENTER SAVE FILENAME /////////////////////////////////// |
proc key.ctrl_s ;///// ENTER SAVE FILENAME /////////////////////////////////// |
;----------------------------------------------------------------------------- |
cmp [cur_editor.FilePath], 0 |
je key.shift_ctrl_s |
166,17 → 166,17 |
key.shift_ctrl_s: |
mov [bot_dlg_mode2],1 |
jmp key.ctrl_o.direct |
endf |
endp |
;----------------------------------------------------------------------------- |
func key.ctrl_n ;///// CREATE NEW FILE (TAB) ///////////////////////////////// |
proc key.ctrl_n ;///// CREATE NEW FILE (TAB) ///////////////////////////////// |
;----------------------------------------------------------------------------- |
call create_tab |
ret |
endf |
endp |
;----------------------------------------------------------------------------- |
func key.ctrl_f ;///// ENTER KEYWORD TO FIND ///////////////////////////////// |
proc key.ctrl_f ;///// ENTER KEYWORD TO FIND ///////////////////////////////// |
;----------------------------------------------------------------------------- |
mov [bot_dlg_mode2],0 |
mov [bot_dlg_height],16*2+4*2-1 |
202,9 → 202,9 |
mov [tb_casesen],0 |
call drawwindow |
ret |
endf |
endp |
func key.ctrl_h |
proc key.ctrl_h |
mov [bot_dlg_mode2],1 |
mov [bot_dlg_height],16*3+4*2+1 |
211,9 → 211,9 |
mov [s_status],s_enter_text_to_replace |
jmp key.ctrl_f.direct |
endf |
endp |
func key.ctrl_g |
proc key.ctrl_g |
ret |
@^ |
mov [bot_dlg_mode2],0 |
230,10 → 230,10 |
call drawwindow |
ret |
^@ |
endf |
endp |
;----------------------------------------------------------------------------- |
func key.ctrl_left ;///// GO TO PREVIOUS WORD //////////////////////////////// |
proc key.ctrl_left ;///// GO TO PREVIOUS WORD //////////////////////////////// |
;----------------------------------------------------------------------------- |
call clear_selection |
323,10 → 323,10 |
call editor_check_for_changes |
.exit.2: |
ret |
endf |
endp |
;----------------------------------------------------------------------------- |
func key.ctrl_right ;///// GO TO NEXT WORD /////////////////////////////////// |
proc key.ctrl_right ;///// GO TO NEXT WORD /////////////////////////////////// |
;----------------------------------------------------------------------------- |
call clear_selection |
412,10 → 412,10 |
call editor_check_for_changes |
.exit.2: |
ret |
endf |
endp |
;----------------------------------------------------------------------------- |
func key.ctrl_x |
proc key.ctrl_x |
cmp [sel.selected],0 |
je @f |
call key.ctrl_c |
422,18 → 422,16 |
call key.del |
mov [cur_editor.Modified],1 |
@@: ret |
endf |
endp |
;----------------------------------------------------------------------------- |
func key.ctrl_c |
proc key.ctrl_c |
mov [copy_size],0 |
cmp [sel.selected],0 |
je .exit |
call get_selection_size |
mov ebx,eax |
mov eax,[copy_buf] |
call mem.ReAlloc |
stdcall mem.ReAlloc,[copy_buf],eax |
mov [copy_buf],eax |
cld |
518,10 → 516,10 |
jecxz @b |
rep stosb |
jmp @b |
endf |
endp |
;----------------------------------------------------------------------------- |
func key.ctrl_v |
proc key.ctrl_v |
cmp [copy_size],0 |
je .exit |
530,11 → 528,10 |
mov eax,[copy_size] |
call editor_realloc_lines |
mov eax,[cur_editor.Lines] |
mov ebx,[cur_editor.Lines.Size] |
add ebx,[copy_size] |
mov [cur_editor.Lines.Size],ebx |
call mem.ReAlloc |
stdcall mem.ReAlloc,[cur_editor.Lines],ebx |
mov [cur_editor.Lines],eax |
mov ecx,[cur_editor.Caret.Y] |
635,10 → 632,10 |
mov [cur_editor.Columns.Count],eax |
@@: pop eax |
ret |
endf |
endp |
;----------------------------------------------------------------------------- |
func key.ctrl_d ;///// INSERT SEPARATOR ////////////////////////////////////// |
proc key.ctrl_d ;///// INSERT SEPARATOR ////////////////////////////////////// |
;----------------------------------------------------------------------------- |
mov eax,94 |
call editor_realloc_lines |
674,10 → 671,10 |
.exit: |
ret |
endf |
endp |
;----------------------------------------------------------------------------- |
func key.ctrl_y ;///// DELETE CURRENT LINE /////////////////////////////////// |
proc key.ctrl_y ;///// DELETE CURRENT LINE /////////////////////////////////// |
;----------------------------------------------------------------------------- |
mov eax,[cur_editor.Caret.Y] |
inc eax |
712,10 → 709,10 |
.exit: |
ret |
endf |
endp |
;----------------------------------------------------------------------------- |
func key.up ;///// GO TO PREVIOUS LINE /////////////////////////////////////// |
proc key.up ;///// GO TO PREVIOUS LINE /////////////////////////////////////// |
;----------------------------------------------------------------------------- |
call clear_selection |
740,10 → 737,10 |
.exit: |
ret |
endf |
endp |
;----------------------------------------------------------------------------- |
func key.down ;///// GO TO NEXT LINE ///////////////////////////////////////// |
proc key.down ;///// GO TO NEXT LINE ///////////////////////////////////////// |
;----------------------------------------------------------------------------- |
call clear_selection |
770,10 → 767,10 |
.exit: |
ret |
endf |
endp |
;----------------------------------------------------------------------------- |
func key.left ;///// GO TO PREVIOUS CHAR ///////////////////////////////////// |
proc key.left ;///// GO TO PREVIOUS CHAR ///////////////////////////////////// |
;----------------------------------------------------------------------------- |
call clear_selection |
791,10 → 788,10 |
.exit: |
ret |
endf |
endp |
;----------------------------------------------------------------------------- |
func key.right ;///// GO TO NEXT CHAR //////////////////////////////////////// |
proc key.right ;///// GO TO NEXT CHAR //////////////////////////////////////// |
;----------------------------------------------------------------------------- |
call clear_selection |
813,10 → 810,10 |
.exit: |
ret |
endf |
endp |
;----------------------------------------------------------------------------- |
func key.pgup ;///// GO TO PREVIOUS PAGE ///////////////////////////////////// |
proc key.pgup ;///// GO TO PREVIOUS PAGE ///////////////////////////////////// |
;----------------------------------------------------------------------------- |
call clear_selection |
841,10 → 838,10 |
.exit: |
ret |
endf |
endp |
;----------------------------------------------------------------------------- |
func key.pgdn ;///// GO TO NEXT PAGE ///////////////////////////////////////// |
proc key.pgdn ;///// GO TO NEXT PAGE ///////////////////////////////////////// |
;----------------------------------------------------------------------------- |
call clear_selection |
869,10 → 866,10 |
.exit: |
ret |
endf |
endp |
;----------------------------------------------------------------------------- |
func key.home ;///// GO TO LINE START //////////////////////////////////////// |
proc key.home ;///// GO TO LINE START //////////////////////////////////////// |
;----------------------------------------------------------------------------- |
call clear_selection |
887,10 → 884,10 |
.exit: |
ret |
endf |
endp |
;----------------------------------------------------------------------------- |
func key.end ;///// GO TO LINE END /////////////////////////////////////////// |
proc key.end ;///// GO TO LINE END /////////////////////////////////////////// |
;----------------------------------------------------------------------------- |
call clear_selection |
908,10 → 905,10 |
.exit: |
ret |
endf |
endp |
;----------------------------------------------------------------------------- |
func key.ctrl_home ;///// GO TO PAGE START /////////////////////////////////// |
proc key.ctrl_home ;///// GO TO PAGE START /////////////////////////////////// |
;----------------------------------------------------------------------------- |
call clear_selection |
928,10 → 925,10 |
.exit: |
ret |
endf |
endp |
;----------------------------------------------------------------------------- |
func key.ctrl_end ;///// GO TO PAGE END ////////////////////////////////////// |
proc key.ctrl_end ;///// GO TO PAGE END ////////////////////////////////////// |
;----------------------------------------------------------------------------- |
call clear_selection |
953,10 → 950,10 |
.exit: |
ret |
endf |
endp |
;----------------------------------------------------------------------------- |
func key.ctrl_pgup ;///// GO TO DOCUMENT START /////////////////////////////// |
proc key.ctrl_pgup ;///// GO TO DOCUMENT START /////////////////////////////// |
;----------------------------------------------------------------------------- |
call clear_selection |
973,10 → 970,10 |
.exit: |
ret |
endf |
endp |
;----------------------------------------------------------------------------- |
func key.ctrl_pgdn ;///// GO TO DOCUMENT END ///////////////////////////////// |
proc key.ctrl_pgdn ;///// GO TO DOCUMENT END ///////////////////////////////// |
;----------------------------------------------------------------------------- |
call clear_selection |
997,10 → 994,10 |
.exit: |
ret |
endf |
endp |
;----------------------------------------------------------------------------- |
func key.del ;///// DELETE NEXT CHAR OR SELECTION //////////////////////////// |
proc key.del ;///// DELETE NEXT CHAR OR SELECTION //////////////////////////// |
;----------------------------------------------------------------------------- |
call delete_selection |
jnc .exit |
1139,11 → 1136,11 |
.exit: |
ret |
endf |
endp |
;----------------------------------------------------------------------------- |
key.ins: |
;// ... toggle insert/overwrite mode here ... |
proc key.ins ;///// TOGGLE INSERT/OVERWRITE MODE ///////////////////////////// |
;----------------------------------------------------------------------------- |
xor [ins_mode],1 |
mov eax,[cur_editor.Caret.Y] |
mov ebx,eax |
1150,9 → 1147,10 |
call draw_editor_text.part |
call draw_editor_caret |
ret |
endp |
;----------------------------------------------------------------------------- |
func key.bkspace ;///// DELETE PREVIOUS CHAR OR SELECTION //////////////////// |
proc key.bkspace ;///// DELETE PREVIOUS CHAR OR SELECTION //////////////////// |
;----------------------------------------------------------------------------- |
call delete_selection |
jnc key.del.exit |
1212,10 → 1210,10 |
dec [cur_editor.Caret.Y] |
cld |
jmp key.del.line_up |
endf |
endp |
;----------------------------------------------------------------------------- |
func key.tab ;///// TABULATE ///////////////////////////////////////////////// |
proc key.tab ;///// TABULATE ///////////////////////////////////////////////// |
;----------------------------------------------------------------------------- |
call delete_selection |
mov eax,[cur_editor.Caret.X] |
1297,10 → 1295,10 |
.exit: |
ret |
endf |
endp |
;----------------------------------------------------------------------------- |
func key.return ;///// CARRIAGE RETURN /////////////////////////////////////// |
proc key.return ;///// CARRIAGE RETURN /////////////////////////////////////// |
;----------------------------------------------------------------------------- |
call delete_selection |
1432,10 → 1430,10 |
.exit: |
ret |
endf |
endp |
;----------------------------------------------------------------------------- |
func key.ctrl_tab ;///// SWITCH TO NEXT TAB ////////////////////////////////// |
proc key.ctrl_tab ;///// SWITCH TO NEXT TAB ////////////////////////////////// |
;----------------------------------------------------------------------------- |
cmp [tab_bar.Items.Count],1 |
je .exit |
1459,10 → 1457,10 |
call update_caption |
.exit: |
ret |
endf |
endp |
;----------------------------------------------------------------------------- |
func key.shift_ctrl_tab ;///// SWITCH TO PREVIOUS TAB //////////////////////// |
proc key.shift_ctrl_tab ;///// SWITCH TO PREVIOUS TAB //////////////////////// |
;----------------------------------------------------------------------------- |
cmp [tab_bar.Items.Count],1 |
je .exit |
1487,10 → 1485,10 |
call update_caption |
.exit: |
ret |
endf |
endp |
;----------------------------------------------------------------------------- |
func key.ctrl_f4 ;///// CLOSE CURRENT TAB //////////////////////////////////// |
proc key.ctrl_f4 ;///// CLOSE CURRENT TAB //////////////////////////////////// |
;----------------------------------------------------------------------------- |
cmp [cur_editor.Modified], 0 |
je .close |
1511,10 → 1509,10 |
call draw_tabctl |
call draw_statusbar |
ret |
endf |
endp |
;----------------------------------------------------------------------------- |
func key.shift_f9 ;///// SET DEFAULT TAB ///////////////////////////////////// |
proc key.shift_f9 ;///// SET DEFAULT TAB ///////////////////////////////////// |
;----------------------------------------------------------------------------- |
mov eax,[tab_bar.Current.Ptr] |
cmp eax,[tab_bar.Default.Ptr] |
1529,34 → 1527,34 |
call draw_editor |
@@: call draw_tabctl |
ret |
endf |
endp |
;----------------------------------------------------------------------------- |
func key.f3 ;///// FIND NEXT MATCH /////////////////////////////////////////// |
proc key.f3 ;///// FIND NEXT MATCH /////////////////////////////////////////// |
;----------------------------------------------------------------------------- |
call search |
jc @f |
@@: ret |
endf |
endp |
;----------------------------------------------------------------------------- |
func key.f9 ;///// COMPILE AND RUN /////////////////////////////////////////// |
proc key.f9 ;///// COMPILE AND RUN /////////////////////////////////////////// |
;----------------------------------------------------------------------------- |
mov bl,1 |
call start_fasm |
ret |
endf |
endp |
;----------------------------------------------------------------------------- |
func key.ctrl_f9 ;///// COMPILE ////////////////////////////////////////////// |
proc key.ctrl_f9 ;///// COMPILE ////////////////////////////////////////////// |
;----------------------------------------------------------------------------- |
mov bl,0 |
call start_fasm |
ret |
endf |
endp |
;----------------------------------------------------------------------------- |
func key.alt_x ;///// EXIT PROGRAM /////////////////////////////////////////// |
proc key.alt_x ;///// EXIT PROGRAM /////////////////////////////////////////// |
;----------------------------------------------------------------------------- |
mov esi,self_path |
mov byte[esi+PATHL-1],0 |
1583,4 → 1581,4 |
jne .bgn_rp |
mov [main_closed],1 |
mcall -1 |
endf |
endp |
/programs/develop/tinypad/trunk/tp-mouse.asm |
---|
1,4 → 1,4 |
func check_mouse_in_edit_area |
proc check_mouse_in_edit_area |
mcall 37,1 |
mov ebx,eax |
and ebx,0x0000FFFF |
16,9 → 16,9 |
mov ecx,__rc |
call pt_in_rect |
ret |
endf |
endp |
func get_mouse_event |
proc get_mouse_event |
mcall 37,2 |
and al,3 |
mov bl,[ecx] |
25,8 → 25,16 |
cmp [ecx],al |
mov [ecx],al |
jne @f |
mov eax,MEV_MOVE |
mcall 37,7 |
or eax,eax |
jz .mv |
add [ecx+6],ax |
shr eax,16 |
add [ecx+4],ax |
mov eax,MEV_WHEEL |
ret |
.mv: mov eax,MEV_MOVE |
ret |
@@: mov bh,al |
and ebx,0x0101 |
cmp bl,bh |
43,9 → 51,9 |
ret |
@@: mov eax,MEV_RUP |
ret |
endf |
endp |
mouse_ev dd mouse.l_down,mouse.l_up,mouse.r_down,mouse.r_up,mouse.move |
mouse_ev dd mouse.l_down,mouse.l_up,mouse.r_down,mouse.r_up,mouse.wheel,mouse.move |
mouse: |
mov ecx,mst |
76,6 → 84,19 |
@@: mov [mev],al |
jmp [mouse_ev+eax*4-4] |
.wheel: |
movsx eax,word[mst+4] |
lea eax,[eax*3] |
add [cur_editor.TopLeft.X],eax |
movsx eax,word[mst+6] |
lea eax,[eax*3] |
add [cur_editor.TopLeft.Y],eax |
xor eax,eax |
mov [mst+4],eax |
call check_bottom_right |
call draw_editor |
jmp still.skip_write |
.move: |
mcall 37,1 |
movsx ebx,ax |
/programs/develop/tinypad/trunk/tp-popup.asm |
---|
1,6 → 1,7 |
;POP_WIDTH = (popup_text.max_title+popup_text.max_accel+6)*6 |
POP_IHEIGHT = 16 |
POP_SHEIGHT = 3 |
;POP_HEIGHT = popup_text.cnt_item*POP_IHEIGHT+popup_text.cnt_sep*4+4 |
popup_thread_start: |
/programs/develop/tinypad/trunk/tp-recode.asm |
---|
37,58 → 37,4 |
jmp @b |
.exit: |
ret |
table.866.1251 db \ |
$C0,$C1,$C2,$C3,$C4,$C5,$C6,$C7 , $C8,$C9,$CA,$CB,$CC,$CD,$CE,$CF,\ |
$D0,$D1,$D2,$D3,$D4,$D5,$D6,$D7 , $D8,$D9,$DA,$DB,$DC,$DD,$DE,$DF,\ |
$E0,$E1,$E2,$E3,$E4,$E5,$E6,$E7 , $E8,$E9,$EA,$EB,$EC,$ED,$EE,$EF,\ |
$00,$00,$00,$00,$00,$00,$00,$00 , $00,$00,$00,$00,$00,$00,$00,$00,\ |
$00,$00,$00,$00,$00,$00,$00,$00 , $00,$00,$00,$00,$00,$00,$00,$00,\ |
$00,$00,$00,$00,$00,$00,$00,$00 , $00,$00,$00,$00,$00,$00,$00,$00,\ |
$F0,$F1,$F2,$F3,$F4,$F5,$F6,$F7 , $F8,$F9,$FA,$FB,$FC,$FD,$FE,$FF,\ |
$A8,$B8,$AA,$BA,$AF,$BF,$A1,$A2 , $B0,$95,$B7,$00,$B9,$A4,$00,$00 |
table.1251.866 db \ |
$00,$00,$00,$00,$00,$00,$00,$00 , $00,$00,$00,$00,$00,$00,$00,$00,\ |
$00,$00,$00,$00,$00,$F9,$00,$00 , $00,$00,$00,$00,$00,$00,$00,$00,\ |
$00,$F6,$F7,$00,$FD,$00,$00,$00 , $F0,$00,$F2,$00,$00,$00,$00,$F4,\ |
$F8,$00,$00,$00,$00,$00,$00,$FA , $F1,$FC,$F3,$00,$00,$00,$00,$F5,\ |
$80,$81,$82,$83,$84,$85,$86,$87 , $88,$89,$8A,$8B,$8C,$8D,$8E,$8F,\ |
$90,$91,$92,$93,$94,$95,$96,$97 , $98,$99,$9A,$9B,$9C,$9D,$9E,$9F,\ |
$A0,$A1,$A2,$A3,$A4,$A5,$A6,$A7 , $A8,$A9,$AA,$AB,$AC,$AD,$AE,$AF,\ |
$E0,$E1,$E2,$E3,$E4,$E5,$E6,$E7 , $E8,$E9,$EA,$EB,$EC,$ED,$EE,$EF |
table.866.koi db \ |
$E1,$E2,$F7,$E7,$E4,$E5,$F6,$FA , $E9,$EA,$EB,$EC,$ED,$EE,$EF,$F0,\ |
$F2,$F3,$F4,$F5,$E6,$E8,$E3,$FE , $FB,$FD,$FF,$F9,$F8,$FC,$E0,$F1,\ |
$C1,$C2,$D7,$C7,$C4,$C5,$D6,$DA , $C9,$CA,$CB,$CC,$CD,$CE,$CF,$D0,\ |
$90,$00,$00,$81,$87,$00,$00,$00 , $00,$00,$00,$00,$00,$00,$00,$83,\ |
$84,$89,$88,$86,$80,$8A,$00,$00 , $00,$00,$00,$00,$00,$00,$00,$00,\ |
$00,$00,$00,$00,$00,$00,$00,$00 , $00,$85,$82,$8D,$8C,$8E,$8F,$8B,\ |
$D2,$D3,$D4,$D5,$C6,$C8,$C3,$DE , $DB,$DD,$DF,$D9,$D8,$DC,$C0,$D1,\ |
$B3,$A3,$B4,$A4,$B7,$A7,$BE,$AE , $00,$95,$9E,$00,$B0,$9F,$00,$A0 |
table.koi.866 db \ |
$C4,$B3,$DA,$BF,$C0,$D9,$C3,$B4 , $C2,$C1,$C5,$DF,$DC,$DB,$DD,$DE,\ |
$B0,$00,$00,$00,$00,$F9,$00,$00 , $00,$00,$00,$00,$00,$00,$FA,$FD,\ |
$FF,$00,$00,$F1,$F3,$00,$00,$F5 , $00,$00,$00,$00,$00,$00,$F7,$00,\ |
$FC,$00,$00,$F0,$F2,$00,$00,$F4 , $00,$00,$00,$00,$00,$00,$F6,$00,\ |
$EE,$A0,$A1,$E6,$A4,$A5,$E4,$A3 , $E5,$A8,$A9,$AA,$AB,$AC,$AD,$AE,\ |
$AF,$EF,$E0,$E1,$E2,$E3,$A6,$A2 , $EC,$EB,$A7,$E8,$ED,$E9,$E7,$EA,\ |
$9E,$80,$81,$96,$84,$85,$94,$83 , $95,$88,$89,$8A,$8B,$8C,$8D,$8E,\ |
$8F,$9F,$90,$91,$92,$93,$86,$82 , $9C,$9B,$87,$98,$9D,$99,$97,$9A |
table.1251.koi db \ |
$B1,$B2,$00,$A2,$00,$00,$00,$00 , $00,$00,$B9,$00,$BA,$BC,$BB,$BF,\ |
$A1,$91,$92,$93,$94,$95,$96,$97 , $00,$99,$A9,$00,$AA,$AC,$AB,$AF,\ |
$A0,$BE,$AE,$B8,$9F,$BD,$00,$00 , $B3,$98,$B4,$9D,$00,$00,$9C,$B7,\ |
$00,$00,$B6,$A6,$AD,$00,$00,$9E , $A3,$B0,$A4,$9B,$A8,$B5,$A5,$A7,\ |
$E1,$E2,$F7,$E7,$E4,$E5,$F6,$FA , $E9,$EA,$EB,$EC,$ED,$EE,$EF,$F0,\ |
$F2,$F3,$F4,$F5,$E6,$E8,$E3,$FE , $FB,$FD,$FF,$F9,$F8,$FC,$E0,$F1,\ |
$C1,$C2,$D7,$C7,$C4,$C5,$D6,$DA , $C9,$CA,$CB,$CC,$CD,$CE,$CF,$D0,\ |
$D2,$D3,$D4,$D5,$C6,$C8,$C3,$DE , $DB,$DD,$DF,$D9,$D8,$DC,$C0,$D1 |
table.koi.1251 db \ |
$00,$00,$00,$00,$00,$00,$00,$00 , $00,$00,$00,$00,$00,$00,$00,$00,\ |
$00,$91,$92,$93,$94,$95,$96,$97 , $00,$99,$00,$BB,$AE,$AB,$B7,$A4,\ |
$A0,$90,$83,$B8,$BA,$BE,$B3,$BF , $BC,$9A,$9C,$9E,$9D,$B4,$A2,$9F,\ |
$B9,$80,$81,$A8,$AA,$BD,$B2,$AF , $A3,$8A,$8C,$8E,$8D,$A5,$A1,$8F,\ |
$FE,$E0,$E1,$F6,$E4,$E5,$F4,$E3 , $F5,$E8,$E9,$EA,$EB,$EC,$ED,$EE,\ |
$EF,$FF,$F0,$F1,$F2,$F3,$E6,$E2 , $FC,$FB,$E7,$F8,$FD,$F9,$F7,$FA,\ |
$DE,$C0,$C1,$D6,$C4,$C5,$D4,$C3 , $D5,$C8,$C9,$CA,$CB,$CC,$CD,$CE,\ |
$CF,$DF,$D0,$D1,$D2,$D3,$C6,$C2 , $DC,$DB,$C7,$D8,$DD,$D9,$D7,$DA |
/programs/develop/tinypad/trunk/tp-tabctl.asm |
---|
1,5 → 1,5 |
;----------------------------------------------------------------------------- |
func flush_cur_tab ;///// SAVE CURRENT TAB DATA TO CONTROL /////////////////// |
proc flush_cur_tab ;///// SAVE CURRENT TAB DATA TO CONTROL /////////////////// |
;----------------------------------------------------------------------------- |
; EBP = TABITEM* |
;----------------------------------------------------------------------------- |
11,10 → 11,10 |
rep movsd |
pop edi esi ecx |
ret |
endf |
endp |
;----------------------------------------------------------------------------- |
func set_cur_tab ;///// SET SPECIFIED TAB CURRENT (FOCUS IT) ///////////////// |
proc set_cur_tab ;///// SET SPECIFIED TAB CURRENT (FOCUS IT) ///////////////// |
;----------------------------------------------------------------------------- |
; EBP = TABITEM* |
;----------------------------------------------------------------------------- |
30,10 → 30,10 |
; call update_caption |
pop edi esi ecx |
ret |
endf |
endp |
;----------------------------------------------------------------------------- |
func make_tab_visible ;///// MAKE SPECIFIED TAB VISIBLE IF IT'S OFFSCREEN //// |
proc make_tab_visible ;///// MAKE SPECIFIED TAB VISIBLE IF IT'S OFFSCREEN //// |
;----------------------------------------------------------------------------- |
call flush_cur_tab |
imul eax,[tab_bar.Items.Left],sizeof.TABITEM |
64,10 → 64,10 |
div ebx |
@@: mov [tab_bar.Items.Left],eax |
ret |
endf |
endp |
;----------------------------------------------------------------------------- |
func create_tab ;///// ADD TAB TO THE END //////////////////////////////////// |
proc create_tab ;///// ADD TAB TO THE END //////////////////////////////////// |
;----------------------------------------------------------------------------- |
push eax ecx esi edi |
75,7 → 75,7 |
imul ebx,[tab_bar.Items.Count],sizeof.TABITEM |
mov eax,[tab_bar.Items] |
mov ecx,eax |
call mem.ReAlloc |
stdcall mem.ReAlloc,eax,ebx |
mov [tab_bar.Items],eax |
sub ecx,eax |
sub [tab_bar.Current.Ptr],ecx |
87,7 → 87,7 |
mov eax,1024 |
mov [cur_editor.Lines.Size],eax |
call mem.Alloc |
stdcall mem.Alloc,eax |
mov [cur_editor.Lines],eax |
mov [cur_editor.Lines.Count],1 |
mov [cur_editor.Columns.Count],1 |
131,10 → 131,10 |
mov ebp,cur_tab |
pop edi esi ecx eax |
ret |
endf |
endp |
;----------------------------------------------------------------------------- |
func delete_tab ;///// DELETE SPECIFIED TAB ////////////////////////////////// |
proc delete_tab ;///// DELETE SPECIFIED TAB ////////////////////////////////// |
;----------------------------------------------------------------------------- |
cmp [tab_bar.Default.Ptr],0 |
je @f |
146,8 → 146,7 |
.lp1: |
mov [tab_bar.Default.Ptr],0 |
@@: mov eax,[ebp+TABITEM.Editor.Lines] |
call mem.Free |
@@: stdcall mem.Free,[ebp+TABITEM.Editor.Lines] |
imul ecx,[tab_bar.Items.Count],sizeof.TABITEM |
add ecx,[tab_bar.Items] |
sub ecx,ebp |
164,7 → 163,7 |
push ebx |
mov eax,[tab_bar.Items] |
mov ecx,eax |
call mem.ReAlloc |
stdcall mem.ReAlloc,eax,ebx |
mov [tab_bar.Items],eax |
sub ecx,eax |
sub ebp,ecx |
188,17 → 187,16 |
ret |
.no_tabs: |
mov eax,[tab_bar.Items] |
call mem.Free |
stdcall mem.Free,[tab_bar.Items] |
xor eax,eax |
mov [tab_bar.Items],eax |
mov [tab_bar.Current.Ptr],eax |
mov [tab_bar.Default.Ptr],eax |
ret |
endf |
endp |
;----------------------------------------------------------------------------- |
func draw_tabctl ;///// DRAW TAB CONTROL ///////////////////////////////////// |
proc draw_tabctl ;///// DRAW TAB CONTROL ///////////////////////////////////// |
;----------------------------------------------------------------------------- |
dec [tab_bar.Items.Left] |
374,7 → 372,7 |
call dword[esp+(8+4)+8+8] |
mcall 13,,,[sc.work] |
pop ecx ebx |
mov edx,[color_tbl.text] |
mov edx,[sc.work_text];[color_tbl.text] |
.draw_tabs.inactive: |
cmp ebp,[tab_bar.Default.Ptr] |
562,10 → 560,10 |
movzx ecx,cx |
lea edi,[edi+ecx+1] |
ret |
endf |
endp |
;----------------------------------------------------------------------------- |
func get_tab_size ;///// GET TAB WIDTH /////////////////////////////////////// |
proc get_tab_size ;///// GET TAB WIDTH /////////////////////////////////////// |
;----------------------------------------------------------------------------- |
; EBP = TABITEM* |
;----------------------------------------------------------------------------- |
586,10 → 584,10 |
.lp2: mov ecx,TBARH-1 |
pop eax |
ret |
endf |
endp |
;----------------------------------------------------------------------------- |
func get_max_tab_width ;///// GET WIDTH OF LONGEST TAB /////////////////////// |
proc get_max_tab_width ;///// GET WIDTH OF LONGEST TAB /////////////////////// |
;----------------------------------------------------------------------------- |
push ebx ecx ebp |
mov ecx,[tab_bar.Items.Count] |
618,10 → 616,10 |
add eax,13 |
@@: pop ebp ecx ebx |
ret |
endf |
endp |
;----------------------------------------------------------------------------- |
func get_hidden_tabitems_number ;///////////////////////////////////////////// |
proc get_hidden_tabitems_number ;///////////////////////////////////////////// |
;----------------------------------------------------------------------------- |
mov al,[tab_bar.Style] |
dec al |
676,10 → 674,10 |
@@: pop ecx |
mov eax,ecx |
ret 8 |
endf |
endp |
;----------------------------------------------------------------------------- |
func align_editor_in_tab ;///// ADJUST EDITOR POSITION TO FIT IN TAB ///////// |
proc align_editor_in_tab ;///// ADJUST EDITOR POSITION TO FIT IN TAB ///////// |
;----------------------------------------------------------------------------- |
m2m [cur_editor.Bounds.Left],[tab_bar.Bounds.Left] |
m2m [cur_editor.Bounds.Top],[tab_bar.Bounds.Top] |
720,4 → 718,4 |
.tabs_on_right: |
sub [cur_editor.Bounds.Right],ebx |
ret |
endf |
endp |
/programs/develop/tinypad/trunk/tp-tbox.asm |
---|
6,7 → 6,7 |
tb.sel.x db ? |
tb.sel.selected db ? |
func textbox.get_width |
proc textbox.get_width |
push ebx edx |
movzx eax,[tbox.width] |
add eax,-6 |
19,9 → 19,9 |
mov eax,ebx |
@@: pop edx ebx |
ret |
endf |
endp |
func textbox.delete_selection |
proc textbox.delete_selection |
cmp [tb.sel.selected],0 |
je .exit.2 |
pushad |
49,9 → 49,9 |
.exit.2: |
stc |
ret |
endf |
endp |
func textbox.draw ; TBOX* ebp |
proc textbox.draw ; TBOX* ebp |
call textbox.get_width |
movzx ebx,[tbox.pos.x] |
sub bl,[tbox.ofs.x] |
196,9 → 196,9 |
add ebx,0x00010001 |
mcall |
ret |
endf |
endp |
func textbox.key |
proc textbox.key |
mov ebp,[focused_tb] |
mov esi,accel_table_textbox |
.acc: cmp ebx,[esi] |
243,12 → 243,12 |
call textbox.draw |
.exit: |
ret |
endf |
endp |
textbox.mouse: |
ret |
func key.tb.bkspace |
proc key.tb.bkspace |
call textbox.delete_selection |
jnc @f |
258,17 → 258,17 |
jmp key.tb.del.direct |
@@: ret |
endf |
endp |
func key.tb.home |
proc key.tb.home |
xor al,al |
mov [tbox.pos.x],al |
mov [tbox.sel.x],al |
mov [tbox.ofs.x],al |
ret |
endf |
endp |
func key.tb.left |
proc key.tb.left |
mov al,[tbox.pos.x] |
mov [tbox.sel.x],al |
dec al |
281,9 → 281,9 |
jge @f |
mov [tbox.ofs.x],0 |
@@: ret |
endf |
endp |
func key.tb.right |
proc key.tb.right |
call textbox.get_width |
mov bl,[tbox.pos.x] |
mov [tbox.sel.x],bl |
297,9 → 297,9 |
jbe @f |
inc [tbox.ofs.x] |
@@: ret |
endf |
endp |
func key.tb.end |
proc key.tb.end |
call textbox.get_width |
movzx ebx,[tbox.length] |
mov [tbox.pos.x],bl |
309,9 → 309,9 |
xor bl,bl |
@@: mov [tbox.ofs.x],bl |
ret |
endf |
endp |
func key.tb.del |
proc key.tb.del |
call textbox.delete_selection |
jnc @f |
.direct: |
327,16 → 327,16 |
rep movsb |
@@: ret |
endf |
endp |
func key.tb.shift_home |
proc key.tb.shift_home |
xor al,al |
mov [tbox.pos.x],al |
mov [tbox.ofs.x],al |
ret |
endf |
endp |
func key.tb.shift_left |
proc key.tb.shift_left |
mov al,[tbox.pos.x] |
dec al |
js @f |
347,9 → 347,9 |
jge @f |
mov [tbox.ofs.x],0 |
@@: ret |
endf |
endp |
func key.tb.shift_right |
proc key.tb.shift_right |
call textbox.get_width |
mov bl,[tbox.pos.x] |
inc bl |
361,9 → 361,9 |
jbe @f |
inc [tbox.ofs.x] |
@@: ret |
endf |
endp |
func key.tb.shift_end |
proc key.tb.shift_end |
call textbox.get_width |
movzx ebx,[tbox.length] |
mov [tbox.pos.x],bl |
372,4 → 372,4 |
xor bl,bl |
@@: mov [tbox.ofs.x],bl |
ret |
endf |
endp |
/programs/macros.inc |
---|
1,6 → 1,47 |
@^ fix macro comment { |
^@ fix } |
; ------------------------- |
macro library [lname,fname] |
{ |
forward |
dd __#lname#_library_table__,__#lname#_library_name__ |
common |
dd 0 |
forward |
align 4 |
__#lname#_library_name__ db fname,0 |
} |
macro import lname,[name,sname] |
{ |
common |
align 4 |
__#lname#_library_table__: |
forward |
if used name |
name dd __#name#_import_name__ |
end if |
common |
dd 0 |
forward |
if used name |
align 4 |
__#name#_import_name__ db sname,0 |
end if |
} |
macro export [name,sname] |
{ |
forward |
dd __#name#_export_name__,name |
common |
dd 0 |
forward |
align 4 |
__#name#_export_name__ db sname,0 |
} |
; ------------------------- |
macro m2m dest,src { |
push src |
499,4 → 540,4 |
EVM_BACKGROUND = 10000b |
EVM_MOUSE = 100000b |
EVM_IPC = 1000000b |
EVM_STACK = 10000000b |
EVM_STACK = 10000000b |
/programs/proc32.inc |
---|
0,0 → 1,270 |
; Macroinstructions for defining and calling procedures |
macro stdcall proc,[arg] ; directly call STDCALL procedure |
{ common |
if ~ arg eq |
reverse |
pushd arg |
common |
end if |
call proc } |
macro invoke proc,[arg] ; indirectly call STDCALL procedure |
{ common |
if ~ arg eq |
reverse |
pushd arg |
common |
end if |
call [proc] } |
macro ccall proc,[arg] ; directly call CDECL procedure |
{ common |
size@ccall = 0 |
if ~ arg eq |
reverse |
pushd arg |
size@ccall = size@ccall+4 |
common |
end if |
call proc |
if size@ccall |
add esp,size@ccall |
end if } |
macro cinvoke proc,[arg] ; indirectly call CDECL procedure |
{ common |
size@ccall = 0 |
if ~ arg eq |
reverse |
pushd arg |
size@ccall = size@ccall+4 |
common |
end if |
call [proc] |
if size@ccall |
add esp,size@ccall |
end if } |
macro proc [args] ; define procedure |
{ common |
match name params, args> |
\{ define@proc name,<params \} } |
prologue@proc equ prologuedef |
macro prologuedef procname,flag,parmbytes,localbytes,reglist |
{ if parmbytes | localbytes |
push ebp |
mov ebp,esp |
if localbytes |
sub esp,localbytes |
end if |
end if |
irps reg, reglist \{ push reg \} } |
epilogue@proc equ epiloguedef |
macro epiloguedef procname,flag,parmbytes,localbytes,reglist |
{ irps reg, reglist \{ reverse pop reg \} |
if parmbytes | localbytes |
leave |
end if |
if flag and 10000b |
retn |
else |
retn parmbytes |
end if } |
macro define@proc name,statement |
{ local params,flag,regs,parmbytes,localbytes,current |
if used name |
name: |
match =stdcall args, statement \{ params equ args |
flag = 11b \} |
match =stdcall, statement \{ params equ |
flag = 11b \} |
match =c args, statement \{ params equ args |
flag = 10001b \} |
match =c, statement \{ params equ |
flag = 10001b \} |
match =params, params \{ params equ statement |
flag = 0 \} |
virtual at ebp+8 |
match =uses reglist=,args, params \{ regs equ reglist |
params equ args \} |
match =regs =uses reglist, regs params \{ regs equ reglist |
params equ \} |
match =regs, regs \{ regs equ \} |
match =,args, params \{ defargs@proc args \} |
match =args@proc args, args@proc params \{ defargs@proc args \} |
parmbytes = $ - (ebp+8) |
end virtual |
name # % = parmbytes/4 |
all@vars equ |
current = 0 |
match prologue:reglist, prologue@proc:<regs> \{ prologue name,flag,parmbytes,localbytes,reglist \} |
macro locals |
\{ virtual at ebp-localbytes+current |
macro label def \\{ match . type,def> \\\{ deflocal@proc .,label,<type \\\} \\} |
struc db [val] \\{ \common deflocal@proc .,db,val \\} |
struc du [val] \\{ \common deflocal@proc .,du,val \\} |
struc dw [val] \\{ \common deflocal@proc .,dw,val \\} |
struc dp [val] \\{ \common deflocal@proc .,dp,val \\} |
struc dd [val] \\{ \common deflocal@proc .,dd,val \\} |
struc dt [val] \\{ \common deflocal@proc .,dt,val \\} |
struc dq [val] \\{ \common deflocal@proc .,dq,val \\} |
struc rb cnt \\{ deflocal@proc .,rb cnt, \\} |
struc rw cnt \\{ deflocal@proc .,rw cnt, \\} |
struc rp cnt \\{ deflocal@proc .,rp cnt, \\} |
struc rd cnt \\{ deflocal@proc .,rd cnt, \\} |
struc rt cnt \\{ deflocal@proc .,rt cnt, \\} |
struc rq cnt \\{ deflocal@proc .,rq cnt, \\} \} |
macro endl |
\{ purge label |
restruc db,du,dw,dp,dd,dt,dq |
restruc rb,rw,rp,rd,rt,rq |
current = $-(ebp-localbytes) |
end virtual \} |
macro ret operand |
\{ match any, operand \\{ retn operand \\} |
match , operand \\{ match epilogue:reglist, epilogue@proc:<regs> |
\\\{ epilogue name,flag,parmbytes,localbytes,reglist \\\} \\} \} |
macro finish@proc \{ localbytes = (((current-1) shr 2)+1) shl 2 |
end if \} } |
macro defargs@proc [arg] |
{ common |
if ~ arg eq |
forward |
local ..arg,current@arg |
match argname:type, arg |
\{ current@arg equ argname |
label ..arg type |
argname equ ..arg |
if dqword eq type |
dd ?,?,?,? |
else if tbyte eq type |
dd ?,?,? |
else if qword eq type | pword eq type |
dd ?,? |
else |
dd ? |
end if \} |
match =current@arg,current@arg |
\{ current@arg equ arg |
arg equ ..arg |
..arg dd ? \} |
common |
args@proc equ current@arg |
forward |
restore current@arg |
common |
end if } |
macro deflocal@proc name,def,[val] |
{ common |
match vars, all@vars \{ all@vars equ all@vars, \} |
all@vars equ all@vars name |
forward |
local ..var,..tmp |
match =label,def \{ ..tmp equ \} |
match tmp,..tmp \{ ..var def val \} |
match ,..tmp \{ label ..var val \} |
match =?, val \{ ..tmp equ \} |
match any =dup (=?), val \{ ..tmp equ \} |
match tmp : value, ..tmp : val |
\{ tmp: end virtual |
initlocal@proc ..var,def value |
virtual at tmp\} |
common |
match first rest, ..var, \{ name equ first \} } |
macro initlocal@proc name,def |
{ virtual at name |
def |
size@initlocal = $ - name |
end virtual |
position@initlocal = 0 |
while size@initlocal > position@initlocal |
virtual at name |
def |
if size@initlocal - position@initlocal < 2 |
current@initlocal = 1 |
load byte@initlocal byte from name+position@initlocal |
else if size@initlocal - position@initlocal < 4 |
current@initlocal = 2 |
load word@initlocal word from name+position@initlocal |
else |
current@initlocal = 4 |
load dword@initlocal dword from name+position@initlocal |
end if |
end virtual |
if current@initlocal = 1 |
mov byte [name+position@initlocal],byte@initlocal |
else if current@initlocal = 2 |
mov word [name+position@initlocal],word@initlocal |
else |
mov dword [name+position@initlocal],dword@initlocal |
end if |
position@initlocal = position@initlocal + current@initlocal |
end while } |
macro endp |
{ purge ret,locals,endl |
finish@proc |
purge finish@proc |
restore regs@proc |
match all,args@proc \{ restore all \} |
restore args@proc |
match all,all@vars \{ restore all \} } |
macro local [var] |
{ common |
locals |
forward done@local equ |
match varname[count]:vartype, var |
\{ match =BYTE, vartype \\{ varname rb count |
restore done@local \\} |
match =WORD, vartype \\{ varname rw count |
restore done@local \\} |
match =DWORD, vartype \\{ varname rd count |
restore done@local \\} |
match =PWORD, vartype \\{ varname rp count |
restore done@local \\} |
match =QWORD, vartype \\{ varname rq count |
restore done@local \\} |
match =TBYTE, vartype \\{ varname rt count |
restore done@local \\} |
match =DQWORD, vartype \\{ label varname dqword |
rq count+count |
restore done@local \\} |
match , done@local \\{ virtual |
varname vartype |
end virtual |
rb count*sizeof.\#vartype |
restore done@local \\} \} |
match :varname:vartype, done@local:var |
\{ match =BYTE, vartype \\{ varname db ? |
restore done@local \\} |
match =WORD, vartype \\{ varname dw ? |
restore done@local \\} |
match =DWORD, vartype \\{ varname dd ? |
restore done@local \\} |
match =PWORD, vartype \\{ varname dp ? |
restore done@local \\} |
match =QWORD, vartype \\{ varname dq ? |
restore done@local \\} |
match =TBYTE, vartype \\{ varname dt ? |
restore done@local \\} |
match =DQWORD, vartype \\{ label varname dqword |
dq ?,? |
restore done@local \\} |
match , done@local \\{ varname vartype |
restore done@local \\} \} |
match ,done@local |
\{ var |
restore done@local \} |
common |
endl } |