2007-03-07 09:35:01 +01:00
; <Lrz> 07.03.2007 <20> <> <EFBFBD> <EFBFBD> ᠫ <20> <> ࠢ<EFBFBD> <E0A0A2> <EFBFBD> <EFBFBD> <EFBFBD> <20> shift home + end <20> <> <EFBFBD> ࠢ<EFBFBD> <E0A0A2> <20> <> <EFBFBD> 쪮 <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
2007-03-06 14:53:45 +01:00
; <Lrz> 06.03.2007 <20> <> ९<EFBFBD> ᠫ <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ࠢ<EFBFBD> <E0A0A2> <EFBFBD> <EFBFBD> <EFBFBD> shift
2007-02-15 08:44:55 +01:00
; <Lrz> 15.02.2007 <20> <> <EFBFBD> <EFBFBD> 襭<EFBFBD> <E8A5AD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> 뤥<EFBFBD> <EBA4A5> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ᮢ<EFBFBD> <E1AEA2> <20> <> <EFBFBD> 頥<EFBFBD> <E9A0A5> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ⥫쭮 <20> <> <EFBFBD> <EFBFBD> ⭥<EFBFBD> ࠡ<> ⠥<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
; <Lrz> 13.02.2007 <20> <> ࠫ <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> 栭<EFBFBD> <E6A0AD> , <20> <> <EFBFBD> <EFBFBD> 襭<EFBFBD> <20> <> ࠡ<EFBFBD> ⪠ <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ᮢ<EFBFBD> <E1AEA2> 䮭<>
; <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> ᥭ<EFBFBD> <E1A5AD> 0<> 0 <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ed_size <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> Maxxx32 <20> 뫨 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 몮<EFBFBD> <EBAAAE> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> . <20> <> <EFBFBD> 稭<EFBFBD> <20> ⮬, <20> <> <EFBFBD> <20> <> ⨬<EFBFBD> <E2A8AC> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> 뫠 ᢥ<> <E1A2A5> <EFBFBD> <EFBFBD> <20> ⮬<> , <20> <> <EFBFBD> <20> <20> <> <20> <> <EFBFBD> ⨫ ᨬ<> <E1A8AC> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <20> <> <EFBFBD> <EFBFBD> <EFBFBD> 㤠<> <E3A4A0> <EFBFBD> , <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <20> 뢮<EFBFBD> <EBA2AE> <EFBFBD> , <20> <20> <> ⮬, <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> ᨫ<EFBFBD> <E1A8AB> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ᨬ<> <E1A8AC> <EFBFBD> , <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ࠫ 㦥 <20> <> <EFBFBD> <EFBFBD> 騩<EFBFBD> <E9A8A9> . <20> <20> <> , <20> ணࠬ<E0AEA3> <E0A0AC> <20> <> ࠡ<EFBFBD> <E0A0A1> 뢠<EFBFBD> <EBA2A0> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ப<EFBFBD> <20> <> ed_size, <20> <EFBFBD> <E0AEA1> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> . <20> <> ᥩ<> <E1A5A9> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ⮪ <20> <> <EFBFBD> ࠢ<EFBFBD> <E0A0A2> <EFBFBD> .
2007-02-01 08:20:59 +01:00
; <Lrz> 01.02.2007 <20> <> ࠡ<EFBFBD> ⪠ edit_box, <20> <> <EFBFBD> ࠢ<EFBFBD> <E0A0A2> <20> <> <EFBFBD> <EFBFBD> .
2007-01-26 12:20:00 +01:00
; <Lrz> 26.01.2007 <20> <> ଠ <EFBFBD> 쭠<EFBFBD> ࠡ<> <E0A0A1> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> ࠢ<EFBFBD> <E0A0A2> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> .check_offset
; <Lrz> 24.01.2007 <20> <> 䨪ᥫ <20> <> <EFBFBD> <EFBFBD> <20> 맢<EFBFBD> <EBA7A2> <EFBFBD> <EFBFBD> <20> <> <20> ࠢ<EFBFBD> <E0A0A2> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> )).
2007-01-22 14:50:18 +01:00
; <Lrz> 22.01.2007 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <20> <> <EFBFBD> ࠡ<> <E0A0A1> <EFBFBD> <20> <20> 뤥<EFBFBD> <EBA4A5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> 㤠<> <E3A4A0> <EFBFBD> <EFBFBD> <EFBFBD> , <20> <> <EFBFBD> ४⭠<E0A5AA> ࠡ<> <E0A0A1> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> 襩 del & backspase
; <Lrz> 20.01.2007 ॠ<> <E0A5A0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> 뤥<EFBFBD> <EBA4A5> <EFBFBD> <EFBFBD> <EFBFBD> ⥪<> <E2A5AA> <EFBFBD> <20> <> shift
2006-12-13 06:18:25 +01:00
; <Lrz> 12.12.2006 ॠ<> <E0A5A0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> প<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> insert <20> ᥣ<> <E1A5A3> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ࠡ<> ⠥<EFBFBD> !!!!
; <Lrz> 07.12.2006 <20> த<EFBFBD> <E0AEA4> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ࠡ<> <E0A0A1> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ࠡ<EFBFBD> ⪮<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ,<2C> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ࣫<EFBFBD> <E0A3AB> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> 㭪樨, <20> <> <EFBFBD> <EFBFBD> ࠡ<EFBFBD> ⠭ <20> 뢮<EFBFBD> ⥪<> <E2A5AA> <EFBFBD> , <20> ⠪<> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> ᥭ<EFBFBD> <E1A5AD> ᨬ<> <E1A8AC> <EFBFBD> <EFBFBD> <EFBFBD> .
; <Lrz> 03.09.2006 <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> ⪠<EFBFBD> <E2AAA0> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> 16 <20> <> ⭮<EFBFBD> <20> <> <EFBFBD> 䬥⨪<E4ACA5> , <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
; <Lrz> 09.08.2006 <20> ந<EFBFBD> <E0AEA8> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ⨬<EFBFBD> <E2A8AC> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ࠡ<> <E0A0A1> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> DEL <20> Backspace, 㬥<> <E3ACA5> 襭 ࠧ<> <E0A0A7> <EFBFBD> <20> 믮<EFBFBD> <EBAFAE> 塞<EFBFBD> <EFA5AC> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> .
; <Lrz> 21.07.2006 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> 㭪<EFBFBD> <E3ADAA> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Del, ⥯<> <E2A5AF> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> 㤠<> <E3A4A0> <EFBFBD> <EFBFBD> ᨬ<> <E1A8AC> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
; <20> <> <EFBFBD> <EFBFBD> <EFBFBD> : <20> <> <EFBFBD> <EFBFBD> 客 <20> <> <EFBFBD> ᨬ (Maxxxx32) email: maxxxxm@mail.ru
; <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <E1ABA5> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> : 13.06.06 10:40
; <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> 室<EFBFBD> <E5AEA4> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <> <E1A2AE> <20> ணࠬ<E0AEA3> <E0A0AC> use_edit_box,
; <20> <> <EFBFBD> <20> <> ⠢<EFBFBD> <E2A0A2> <20> <> <EFBFBD> <EFBFBD> 室<EFBFBD> <E5AEA4> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> 楤<EFBFBD> <E6A5A4> <EFBFBD> <20> <20> <> <EFBFBD> <20> <> 襩 <20> ணࠬ<E0AEA3> <E0A0AC> .
; <20> <> <EFBFBD> 楤<EFBFBD> <E6A5A4> <EFBFBD> :
; edit_box.draw - <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ᮢ<EFBFBD> <E1AEA2> ;
; edit_box.key - <20> <> ࠡ<EFBFBD> ⪠ <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ;
; edit_box.mouse - <20> <> ࠡ<EFBFBD> ⪠ <20> <> <EFBFBD> <EFBFBD> ;
; edit_box.focus - <20> <> ⠭<EFBFBD> <E2A0AD> <EFBFBD> <EFBFBD> 䮪<> <E4AEAA> <EFBFBD> ;
; edit_box.blur - <20> <> <EFBFBD> ࠧ<> 뢠<EFBFBD> <EBA2A0> <EFBFBD> ;
; edit_box.get_n - <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ⢮ <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ᮢ뢠<E1AEA2> <EBA2A0> <EFBFBD> <EFBFBD> ᨬ<> <E1A8AC> <EFBFBD> <EFBFBD> <EFBFBD> .
; <20> <> <EFBFBD> <20> 맮<EFBFBD> <EBA7AE> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> 楤<EFBFBD> <E6A5A4> <20> ॣ<> <E0A5A3> <EFBFBD> <EFBFBD> <EFBFBD> edi <> <E1ABA5> <EFBFBD> <EFBFBD>
; <20> <> ⠢<EFBFBD> <E2A0A2> <EFBFBD> 㪠<> <E3AAA0> ⥫<EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> .
; <20> ਬ<EFBFBD> <E0A8AC> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> :
; some_edit edit_box 100,10,30,0x00ffffff,0,0x00aaaaaa,0,255,some_edit_text
; <20> <> <EFBFBD> <EFBFBD> <EFBFBD> , <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <20> <> <EFBFBD> <EFBFBD> , 梥<> 䮭<> , 梥<> ࠬ<> <E0A0AC> , <20> <20> <> <EFBFBD> ࠭,
; 梥<> ࠬ<> <E0A0AC> , <20> <20> <> <20> <> <EFBFBD> ࠭, <20> <> <EFBFBD> ᨬ<EFBFBD> <E1A8AC> 쭮<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ⢮ ᨬ<> <E1A8AC> <EFBFBD> <EFBFBD> <EFBFBD> ,
; 㪠<> <E3AAA0> ⥫<EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> , <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> ࠭<EFBFBD> <E0A0AD> <EFBFBD> <EFBFBD> ᨬ<> <E1A8AC> <EFBFBD> <EFBFBD> . <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
; <20> <> <EFBFBD> <EFBFBD> 稢<EFBFBD> <E7A8A2> <EFBFBD> <EFBFBD> <EFBFBD> <20> 㫥<EFBFBD> , <20> <> <EFBFBD> ਬ<EFBFBD> <E0A8AC> <20> <20> <> <EFBFBD> ᨬ<EFBFBD> <E1A8AC> 쭮<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ⢮ 255:
; some_edit_text:
; rb 256 ;255+1
; <20> ਬ<EFBFBD> <E0A8AC> <20> 맮<EFBFBD> <EBA7AE> <20> <> <EFBFBD> 楤<EFBFBD> <E6A5A4> <EFBFBD> :
; mov edi,some_edit
; call edit_box.draw
; <20> <> <EFBFBD> <20> 맮<EFBFBD> <EBA7AE> <20> <> <EFBFBD> 楤<EFBFBD> <E6A5A4> <EFBFBD> edit_box.key <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
; <20> <> 室<EFBFBD> <E5AEA4> <EFBFBD> <EFBFBD> <20> ah, <20> <> <20> <> <EFBFBD> <EFBFBD> <20> <> । <20> 맮<EFBFBD> <EBA7AE> <EFBFBD> <20> ⮩ <20> <> <EFBFBD> 楤<EFBFBD> <E6A5A4> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> 맢<EFBFBD> <EBA7A2> <EFBFBD>
; 2-<2D> <> <20> <> ᥬ<EFBFBD> <E1A5AC> <EFBFBD> <20> 㭪<EFBFBD> <E3ADAA> <EFBFBD> , <20> <> <EFBFBD> ਬ<EFBFBD> <E0A8AC> :
; mov eax,2
; int 0x40
; mov edi,some_edit1
; call edit_box.key
; mov edi,some_edit2
; call edit_box.key
; <20> <> । <20> 맮<EFBFBD> <EBA7AE> <EFBFBD> <20> <> ࠡ<EFBFBD> <E0A0A1> 稪<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <> <E1ABA5> <EFBFBD> <EFBFBD> <20> <EFBFBD> <E0AEA2> <EFBFBD> <EFBFBD> <EFBFBD> , <> <EFA2AB> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD>
; <20> <> ⨢<EFBFBD> <E2A8A2> <EFBFBD> .
; <20> 饫箪 <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> ன<EFBFBD> <E0AEA9> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> ।<EFBFBD> <E0A5A4> <EFBFBD> <EFBFBD> <EFBFBD> edit box
; 䮪<> <E4AEAA> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> .
macro use_edit_box
{
edit_box:
ed_width equ [edi] ;<3B> <> ਭ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
ed_left equ [edi+4] ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <20>
ed_top equ [edi+8] ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <20>
ed_color equ [edi+12] ;梥<> 䮭<> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
ed_focus_border_color equ [edi+16] ;梥<> ࠬ<> <E0A0AC> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
ed_blur_border_color equ [edi+20] ;梥<> <20> <> <20> <> ⨢<EFBFBD> <E2A8A2> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
ed_text_color equ [edi+24] ;梥<> ⥪<> <E2A5AA> <EFBFBD>
2007-01-19 15:36:00 +01:00
ed_max equ [edi+28] ;<3B> <> <EFBFBD> -<2D> <> ᨬ<> <E1A8AC> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> ᨬ<EFBFBD> <E1A8AC> 쭮 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
ed_text equ [edi+32] ;㪠<> <E3AAA0> ⥫<EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
ed_flags equ [edi+36] ;䫠<> <E4ABA0>
ed_size equ [edi+38] ;<3B> <> <EFBFBD> -<2D> <> ᨬ<> <E1A8AC> <EFBFBD> <EFBFBD> <EFBFBD>
ed_pos equ [edi+42] ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
ed_offset equ [edi+46] ;ᬥ饭<E1ACA5> <E9A5AD>
cl_curs_x equ [edi+50] ;<3B> ।<EFBFBD> <E0A5A4> <EFBFBD> 饥 <20> <> <EFBFBD> न<EFBFBD> <E0A4A8> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20>
cl_curs_y equ [edi+54] ;<3B> ।<EFBFBD> <E0A5A4> <EFBFBD> 饥 <20> <> <EFBFBD> न<EFBFBD> <E0A4A8> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20>
2007-03-07 09:35:01 +01:00
ed_shift_pos equ [edi+58] ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
ed_shift_pos_old equ [edi+62] ;<3B> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2006-12-13 06:18:25 +01:00
;==========================================================
;=== <20> <> <EFBFBD> 楤<EFBFBD> <E6A5A4> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ᮢ<EFBFBD> <E1AEA2> =================================
;==========================================================
.draw:
pusha
;--- <20> <> <EFBFBD> 㥬 ࠬ<> <E0A0AC> ---
call .draw_border ; <20> 㭪<EFBFBD> <E3ADAA> <EFBFBD> <20> ⠡<EFBFBD> <E2A0A1> 쭠
.draw_bg_cursor_text:
;--- <20> <> <EFBFBD> <EFBFBD> <EFBFBD> 塞 ᬥ饭<E1ACA5> <E9A5AD> , <20> <20> <> <EFBFBD> <EFBFBD> ---
call .check_offset ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <E1ABA5> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> 樨 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> ⠡<EFBFBD> <E2A0A1> 쭠
;--- <20> <> <EFBFBD> 㥬 <20> <> <EFBFBD> <EFBFBD> ७<EFBFBD> <E0A5AD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ---
call .draw_bg ;<3B> <> <EFBFBD> <EFBFBD> ᮢ<EFBFBD> <E1AEA2> <EFBFBD> <20> <> אַ㣮<EFACAE> 쭨<EFBFBD> ࠡ<> 祩 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
.draw_cursor_text:
;--- <20> <> <EFBFBD> 㥬 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ---
;--- <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <20> <> ᮢ<EFBFBD> <E1AEA2> <EFBFBD> ----
2007-01-19 15:36:00 +01:00
test word ed_flags,ed_focus
2006-12-13 06:18:25 +01:00
je @f
call .draw_cursor
@@:
call .draw_text
popa
ret
;----------------------------------------------------------
;--- <20> <> <EFBFBD> 楤<EFBFBD> <E6A5A4> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ᮢ<EFBFBD> <E1AEA2> ⥪<> <E2A5AA> <EFBFBD> --------------------------
;----------------------------------------------------------
.draw_text:
;--- <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 塞, <> 쪮 <20> <> <EFBFBD> <EFBFBD> 頥<EFBFBD> <E9A0A5> <EFBFBD> ᨬ<> <E1A8AC> <EFBFBD> <EFBFBD> <EFBFBD> ---
;--- <20> ⮡<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> ᮢ<EFBFBD> <E1AEA2> <EFBFBD> ---
call .get_n
mov esi,ed_size
mov ebx,ed_offset
sub esi,ebx
cmp eax,esi
jae @F
mov esi,eax ;<3B> ⮡<EFBFBD> <20> <> <20> <> 室<EFBFBD> <E5AEA4> <EFBFBD> <20> <> <20> ।<EFBFBD> <E0A5A4> <EFBFBD> <20> <> ࠭<EFBFBD>
;--- <20> <> <EFBFBD> 㥬 ⥪<> <E2A5AA> ---
@@: mov eax,4
mov ebx,ed_left
2007-02-01 08:20:59 +01:00
mov edx,ed_offset
2006-12-13 06:18:25 +01:00
add ebx,2
shl ebx,16
mov bx,ed_top
add ebx,4
mov ecx,ed_text_color
add edx,ed_text
int 0x40
ret
;----------------------------------------------------------
;--- <20> <> <EFBFBD> 楤<EFBFBD> <E6A5A4> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ᮢ<EFBFBD> <E1AEA2> 䮭<> ----------------------------
;<3B> 室<EFBFBD> <E5AEA4> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
;eax
2007-01-24 11:00:37 +01:00
;edx - color
2006-12-13 06:18:25 +01:00
;----------------------------------------------------------
2007-02-13 11:09:13 +01:00
;<3B> 室 ⮫쪮 梥<> edx
2006-12-13 06:18:25 +01:00
.draw_bg:
mov ebx,ed_left
add ebx,1
shl ebx,16
mov bx,ed_width
sub ebx,1
2007-03-06 14:53:45 +01:00
mov edx,ed_color
.draw_bg_eax:
2006-12-13 06:18:25 +01:00
mov ecx,ed_top
2007-02-01 08:20:59 +01:00
mov eax,13
2006-12-13 06:18:25 +01:00
add ecx,1
shl ecx,16
mov cx,ed_height
2007-03-06 14:53:45 +01:00
dec ecx
2007-02-01 08:20:59 +01:00
int 0x40
2006-12-13 06:18:25 +01:00
ret
;----------------------------------------------------------
;--- <20> <> <EFBFBD> 楤<EFBFBD> <E6A5A4> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> 祭<EFBFBD> <E7A5AD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ⢠ ᨬ<> <E1A8AC> <EFBFBD> <EFBFBD> <EFBFBD> <20> ⥪<> 饩 <20> <> ਭ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> --------------
;----------------------------------------------------------
.get_n:
mov eax,ed_width ;<3B> <> <EFBFBD> <EFBFBD> 祬 <20> <> ਭ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2007-02-01 08:20:59 +01:00
xor edx,edx ;१<> <E0A5A7> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ᯮ<EFBFBD> <E1AFAE> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> edx:eax <20> eax - <20> <> <EFBFBD> <EFBFBD> ⮪
2006-12-13 06:18:25 +01:00
sub eax,4 ;<3B> <> <EFBFBD> ⨬ 4
mov ebx,6 ;<3B> <> <EFBFBD> <EFBFBD> 㧬<EFBFBD> <20> <> <EFBFBD> <EFBFBD> ⥫<EFBFBD>
div ebx ;ࠧ<> <E0A0A7> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> 6
ret
;----------------------------------------------------------
;--- <20> <> <EFBFBD> 楤<EFBFBD> <E6A5A4> <EFBFBD> <20> <> ᮢ<EFBFBD> <E1AEA2> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> --------------------------
;----------------------------------------------------------
2007-03-06 14:53:45 +01:00
;<3B> 室<EFBFBD> <E5AEA4> <EFBFBD> ebp- 梥<>
2006-12-13 06:18:25 +01:00
.clear_cursor:
2007-03-06 14:53:45 +01:00
mov edx,ebp
2006-12-13 06:18:25 +01:00
mov ebx,cl_curs_x
mov ecx,cl_curs_y
jmp .draw_curs
.draw_cursor:
mov edx,ed_text_color
mov ebx,ed_pos
mov ecx,ed_offset
sub ebx,ecx
lea ebx,[ebx*2+ebx]
shl ebx,1
;imul ebx,6
add bx,ed_left
2007-02-01 08:20:59 +01:00
mov ecx,ed_top
2006-12-13 06:18:25 +01:00
inc ebx
2007-02-01 08:20:59 +01:00
add ecx,2
2006-12-13 06:18:25 +01:00
mov ebp,ebx
shl ebx,16
mov bx,bp
mov ebp,ecx
shl ecx,16
mov cx,bp
add cx,ed_height-4
mov cl_curs_x,ebx
mov cl_curs_y,ecx
.draw_curs:
mov eax,38
int 0x40
ret
;----------------------------------------------------------
;--- <20> <> <EFBFBD> 楤<EFBFBD> <E6A5A4> <EFBFBD> <20> <> ᮢ<EFBFBD> <E1AEA2> <EFBFBD> <EFBFBD> ࠬ<> <E0A0AC> ----------------------------
;----------------------------------------------------------
.draw_border:
;--- 梥<> ࠬ<> <E0A0AC> ---
2007-03-07 09:35:01 +01:00
test word ed_flags,ed_focus
2006-12-13 06:18:25 +01:00
mov edx,ed_focus_border_color
jne @f
mov edx,ed_blur_border_color
@@:
;--- ᢥ<> <E1A2A5> <EFBFBD> ---
mov eax,38
mov ebx,ed_left
mov ecx,ebx
shl ebx,16
mov bx,cx
add bx,ed_width
mov ecx, ed_top
mov esi,ecx
shl ecx,16
mov cx,si
int 0x40
;--- ᭨<> <E1ADA8> ---
mov esi,ecx
add ecx,ed_height
mov ebp,ecx
shl ecx,16
mov cx,bp
int 0x40
;--- <> <E1ABA5> ---
mov cx,si
mov ebp,ebx
sub bx,ed_width
int 0x40
;--- <20> <> ࠢ<EFBFBD> ---
mov ebx,ebp
shl ebx,16
mov bx,bp
int 0x40
ret
;----------------------------------------------------------
;--- <20> <EFBFBD> ઠ, <20> <> 襫 <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> ࠭<EFBFBD> <E0A0AD> <EFBFBD> <20> , <20> <20> <> <EFBFBD> <EFBFBD> , ---
;--- <20> <> <EFBFBD> <EFBFBD> <EFBFBD> 塞 ᬥ饭<E1ACA5> <E9A5AD> ------------------------------------
2007-01-26 14:03:48 +01:00
;--- eax = -1, <20> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> eax = 0, <20>
2006-12-13 06:18:25 +01:00
; <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
;----------------------------------------------------------
.check_offset:
2007-02-15 14:54:30 +01:00
pusha
2007-01-26 12:20:00 +01:00
mov ecx,ed_pos
mov ebx,ed_offset
cmp ebx,ecx
ja .sub_8
push ebx
2006-12-13 06:18:25 +01:00
call .get_n ;<3B> <> <EFBFBD> <EFBFBD> 稬 <20> <> <EFBFBD> -<2D> <> ᨬ<> <E1A8AC> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> ॣ<> <E0A5A3> <EFBFBD> edx:eax
pop ebx
2007-01-26 12:20:00 +01:00
mov edx,ebx
add edx,eax ;ed_offset+width editbox
cmp edx,ecx
ja @f
mov edx,ed_size
2007-01-26 14:03:48 +01:00
cmp edx,ecx
je .add_end
sub edx,ecx
2007-01-26 12:20:00 +01:00
cmp edx,8
jbe .add_8
2007-01-26 14:03:48 +01:00
add ebx,8
2007-01-26 12:20:00 +01:00
jmp .chk_d
.sub_8: cmp ecx,0
je .sub_min
cmp ebx,8
jbe .sub_min
sub ebx,8 ;ebx=ed_offset
jmp .chk_d
.sub_min:
xor ebx,ebx
jmp .chk_d
2007-01-26 14:03:48 +01:00
.add_end:sub edx,eax
mov ebx,edx
jmp .chk_d
.add_8: add ebx,edx
2007-01-26 12:20:00 +01:00
.chk_d: mov ed_offset,ebx
call .draw_bg
2007-03-07 09:35:01 +01:00
and word ed_flags,ed_offset_cl
2007-02-15 14:54:30 +01:00
popa
2007-01-26 12:20:00 +01:00
ret
@@:
2007-03-07 09:35:01 +01:00
or word ed_flags,ed_offset_fl
2007-02-15 14:54:30 +01:00
popa
2007-01-26 12:20:00 +01:00
ret
;==========================================================
;=== <20> <> ࠡ<EFBFBD> ⪠ <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> =================================
;==========================================================
.key:
pusha
test word ed_flags,ed_focus ; <20> <20> <> <20> 䮪<> <E4AEAA> <EFBFBD> , <20> <> 室<EFBFBD> <E5AEA4>
2007-02-15 14:54:30 +01:00
je @b
2007-02-13 11:09:13 +01:00
;<3B> <EFBFBD> ઠ <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> shift
2007-01-24 11:00:37 +01:00
xor ecx,ecx
2007-01-19 15:36:00 +01:00
push eax
2007-01-24 11:00:37 +01:00
inc ecx
2007-01-19 15:36:00 +01:00
mov eax,66
mov ebx,3
int 0x40
test al,0x03
je @f
2007-02-13 11:09:13 +01:00
or word ed_flags,ed_shift ;<3B> <> ⠭<EFBFBD> <E2A0AD> <EFBFBD> <EFBFBD> 䫠<>
@@: pop eax ;<3B> <> <EFBFBD> <EFBFBD> ⠭<EFBFBD> <E2A0AD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> ⠭<EFBFBD> <E2A0AD> ᨬ<> <E1A8AC> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2006-12-13 06:18:25 +01:00
;----------------------------------------------------------
;--- <20> <EFBFBD> <E0AEA2> 塞, <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> --------------------------------
;----------------------------------------------------------
cmp ah,8
jz .backspace
cmp ah,0xb6
jz .delete
cmp ah,176
jz .left
cmp ah,179
jz .right
cmp ah,180
jz .home
cmp ah,181
jz .end
cmp ah,185 ;insert
jz .insert
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> 誠 <20> <> <20> <> ࠡ<EFBFBD> <E0A0A1> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD>
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
cmp ah,177
jz .no_figure
cmp ah,178
jz .no_figure
cmp ah,27 ;ESC - <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ))
jz .no_figure
;--- <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> 㣠<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ---
test word ed_flags,ed_figure_only ; ⮫쪮 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ?
jz @f
cmp ah,'0'
jb .no_figure
cmp ah,'9'
ja .no_figure
2007-01-24 11:00:37 +01:00
;<3B> <EFBFBD> ઠ <20> <> shift
2007-02-01 08:20:59 +01:00
@@: test word ed_flags,ed_shift_on
2007-01-24 11:00:37 +01:00
je @f
;<3B> 室<EFBFBD> <E5AEA4> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> edx=ed_size;ecx=ed_pos
push eax
mov edx,ed_size
mov ecx,ed_pos
2007-02-15 14:54:30 +01:00
pusha
2007-02-13 11:09:13 +01:00
;clear
2007-03-06 14:53:45 +01:00
mov ebp,edx ;ed_size
2007-02-15 14:54:30 +01:00
call .clear_bg
2007-03-06 14:53:45 +01:00
mov ebp,ed_color
2007-03-07 09:35:01 +01:00
mov ebx,dword ed_shift_pos
2007-03-06 14:53:45 +01:00
call .sh_cl_
2007-02-15 14:54:30 +01:00
2007-03-06 14:53:45 +01:00
.sh_nxt:popa
2007-02-15 14:54:30 +01:00
call .del_char
2007-01-24 11:00:37 +01:00
;;;;
2007-03-06 14:53:45 +01:00
mov eax,dword ed_shift_pos
2007-01-24 11:00:37 +01:00
mov ebx,ed_size
sub ebx,eax
mov ed_size,ebx
pop eax
; <20> <EFBFBD> <E0AEA2> 塞, <20> <> 室<EFBFBD> <E5AEA4> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
@@: mov ecx,ed_size
2006-12-13 06:18:25 +01:00
mov edx, ed_max
2007-02-13 11:09:13 +01:00
test word ed_flags,ed_insert
jne @f
2007-01-22 14:50:18 +01:00
cmp ecx,edx
jae .no_figure
2007-02-13 11:09:13 +01:00
@@: mov ebx, ed_pos
2006-12-13 06:18:25 +01:00
cmp ebx,edx
jl @f ; <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> ࠢ<> <E0A0A2>
.no_figure:
popa
ret
2007-01-24 11:00:37 +01:00
.insert: test word ed_flags,ed_insert ;not word ed_insert
je .insert_1
and word ed_flags,ed_insert_cl
jmp .no_figure
.insert_1:
or word ed_flags,ed_insert
2006-12-13 06:18:25 +01:00
jmp .no_figure
2007-01-24 11:00:37 +01:00
.ins_v:
2007-02-01 08:20:59 +01:00
dec dword [ebp+38];ed_size ;processing is insert
2006-12-13 06:18:25 +01:00
sub esi,ecx
add esi,ebx
mov edi,esi
2007-02-13 11:09:13 +01:00
;clear
pusha
mov edi,ebp
mov ebp,ed_pos
call .clear_bg
popa
2006-12-13 06:18:25 +01:00
jmp .In_k
@@: ; ᤢ<> <E1A4A2> <EFBFBD> <EFBFBD> <EFBFBD> ᨬ<> <E1A8AC> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ࠢ<EFBFBD>
mov ecx,ed_size
push edi eax
2007-01-24 11:00:37 +01:00
mov ebp,edi
2006-12-13 06:18:25 +01:00
mov esi,ed_text ; <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ⥫<EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
;<3B> 㤥<EFBFBD> ࠡ<> <E0A0A1> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> ப<EFBFBD> <E0AEAA>
add esi,ecx ;add ed_size <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> max size
mov edi,esi
cmp ecx,ebx ;<3B> <20> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> = ⥪<> 饬<EFBFBD> ࠧ<> <E0A0A7> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ⠭<EFBFBD> <E2A0AD> <EFBFBD> ᨬ<> <E1A8AC> <EFBFBD> <EFBFBD> <EFBFBD> <20> .<2E> . <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> ⮨<EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
je .In_k
2007-01-24 11:00:37 +01:00
test word [ebp+36],ed_insert ;IF insert is enable <20> .<2E> . edi <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> 㥬 <20> <> १ ebp
jne .ins_v
2007-02-13 11:09:13 +01:00
;clear
pusha
mov edi,ebp
mov ebp,ed_size
call .clear_bg
popa
2006-12-13 06:18:25 +01:00
sub ecx,ebx ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> -<2D> <> ᨬ<> <E1A8AC> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <> ।<EFBFBD> <E0A5A4> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> .
inc edi ;<3B> <> <EFBFBD> <EFBFBD> ⨬ <20> <> <EFBFBD> <EFBFBD> ᨬ<> <E1A8AC> <EFBFBD> <EFBFBD> <20> <20> ࠢ<EFBFBD>
std
inc ecx
@@:
;--------
lodsb
stosb
;--------
loop @b
.In_k: cld
pop eax
mov al,ah
stosb
pop edi
; <20> <> ⠢<EFBFBD> 塞 <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> 㤠, <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
; 㢥<> <E3A2A5> 稢<EFBFBD> <E7A8A2> <EFBFBD> <20> <> <EFBFBD> 祭<EFBFBD> <E7A5AD> ࠧ<> <E0A0A7> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> 樨
inc dword ed_size
inc dword ed_pos
2007-01-26 12:20:00 +01:00
call .draw_all2
jmp .shift;.draw_cursor_text
2006-12-13 06:18:25 +01:00
.delete:
mov edx,ed_size
mov ecx,ed_pos
cmp edx,ecx
2007-01-24 11:00:37 +01:00
jg .bac_del
2007-01-22 14:50:18 +01:00
test word ed_flags,ed_shift_on
jne .del_bac
2006-12-13 06:18:25 +01:00
popa
ret
2007-01-22 14:50:18 +01:00
.bac_del:
2007-01-24 11:00:37 +01:00
call .del_char
2006-12-13 06:18:25 +01:00
jmp .draw_all
;--- <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> backspace ---
.backspace:
; <20> <EFBFBD> <E0AEA2> 塞, <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ?
mov edx,ed_size
mov ecx,ed_pos
test ecx,ecx
2007-01-24 11:00:37 +01:00
jnz .del_bac
2007-01-22 14:50:18 +01:00
test word ed_flags,ed_shift_on
jne .bac_del
2006-12-13 06:18:25 +01:00
popa
ret
2007-01-22 14:50:18 +01:00
.del_bac:
2007-01-24 11:00:37 +01:00
cmp edx,ecx ;if ed_pos=ed_size
2006-12-13 06:18:25 +01:00
je @f
dec ecx
call .del_char
2007-01-22 14:50:18 +01:00
@@: test word ed_flags,ed_shift_on
jne .bac_del
2006-12-13 06:18:25 +01:00
dec dword ed_pos
.draw_all:
2007-02-13 11:09:13 +01:00
push .shift;.draw_cursor_text;eax
2007-01-22 14:50:18 +01:00
test word ed_flags,ed_shift_on
je @f
2007-03-06 14:53:45 +01:00
mov eax,dword ed_shift_pos
2007-01-22 14:50:18 +01:00
mov ebx,ed_size
sub ebx,eax
mov ed_size,ebx
2007-02-13 11:09:13 +01:00
2007-03-06 14:53:45 +01:00
mov ebp,ed_color
2007-02-13 11:09:13 +01:00
call .clear_cursor
call .check_offset
call .draw_bg
ret
2007-01-22 14:50:18 +01:00
@@: dec dword ed_size
2006-12-13 06:18:25 +01:00
.draw_all2:
2007-01-23 06:35:15 +01:00
and word ed_flags,ed_shift_cl
2007-03-06 14:53:45 +01:00
mov ebp,ed_color
2006-12-13 06:18:25 +01:00
call .clear_cursor
call .check_offset
2007-02-13 11:09:13 +01:00
mov ebp,ed_size
call .clear_bg
2007-01-26 12:20:00 +01:00
ret
2006-12-13 06:18:25 +01:00
;--- <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> left ---
2007-03-06 14:53:45 +01:00
.left: mov ebx,ed_pos
2006-12-13 06:18:25 +01:00
test ebx,ebx
2007-03-06 14:53:45 +01:00
jz .sh_st_of
or word ed_flags,ed_left_fl
call .sh_first_sh
2006-12-13 06:18:25 +01:00
dec dword ed_pos
2007-03-06 14:53:45 +01:00
call .sh_enable
jmp .draw_cursor_text
2006-12-13 06:18:25 +01:00
;--- <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> right ---
2007-03-06 14:53:45 +01:00
.right: mov ebx,ed_pos
2006-12-13 06:18:25 +01:00
cmp ebx,ed_size
2007-03-06 14:53:45 +01:00
je .sh_st_of
and word ed_flags,ed_right_fl
call .sh_first_sh
2006-12-13 06:18:25 +01:00
inc dword ed_pos
2007-03-06 14:53:45 +01:00
call .sh_enable
jmp .draw_cursor_text
.home:
2007-01-22 14:50:18 +01:00
mov ebx,ed_pos
2006-12-13 06:18:25 +01:00
test ebx,ebx
2007-03-06 14:53:45 +01:00
jz .sh_st_of
call .sh_first_sh
2006-12-13 06:18:25 +01:00
xor eax,eax
mov ed_pos,eax
2007-03-06 14:53:45 +01:00
call .sh_home_end
jmp .draw_cursor_text
.end:
2007-01-22 14:50:18 +01:00
mov ebx,ed_pos
2006-12-13 06:18:25 +01:00
cmp ebx,dword ed_size
2007-03-06 14:53:45 +01:00
je .sh_st_of
2007-03-07 09:35:01 +01:00
call .sh_first_sh
2006-12-13 06:18:25 +01:00
mov eax,ed_size
mov ed_pos,eax
2007-03-06 14:53:45 +01:00
call .sh_home_end
jmp .draw_cursor_text
;<3B> <> ࠡ<EFBFBD> ⪠ Shift <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> 뤥<EFBFBD> <EBA4A5> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ⭮<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2007-01-19 15:36:00 +01:00
.shift: ;;;;;;;SHIFT
2007-03-06 14:53:45 +01:00
test word ed_flags,ed_shift
2007-01-19 15:36:00 +01:00
je .f_exit
2007-02-15 08:44:55 +01:00
2007-03-06 14:53:45 +01:00
@@: mov ebp,shift_color
or word ed_flags,ed_shift_bac ;<3B> <> ⠭<EFBFBD> <E2A0AD> <EFBFBD> <EFBFBD> 䫠<> <E4ABA0> , <20> 뤥<EFBFBD> <EBA4A5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2007-03-07 09:35:01 +01:00
mov ebx,dword ed_shift_pos
2007-02-15 08:44:55 +01:00
call .sh_cl_
jmp .draw_cursor_text
;;;;;;;;;;;;;;;;;;;;;
2007-03-06 14:53:45 +01:00
.f_exit:call .check_offset
2007-03-07 09:35:01 +01:00
and word ed_flags,ed_shift_cl
2007-02-15 08:44:55 +01:00
call .enable_null
jmp .draw_cursor_text
.sh_cl_:
2007-01-19 15:36:00 +01:00
;;;;;;SHIFT end
2007-03-06 14:53:45 +01:00
;<3B> <> ࠡ<EFBFBD> ⪠ <20> <> <EFBFBD> <EFBFBD> ⪨, <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> - <20> ࠢ<EFBFBD> <E0A0A2> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> 뤥<EFBFBD> <EBA4A5> <EFBFBD> <EFBFBD> <EFBFBD>
2007-02-15 08:44:55 +01:00
;<3B> <> <EFBFBD> <20> <> ࠡ<EFBFBD> ⪨ <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> 뤥<EFBFBD> <EBA4A5> <EFBFBD> <EFBFBD> <EFBFBD>
2007-03-07 09:35:01 +01:00
;<3B> 室<EFBFBD> <E5AEA4> <EFBFBD> <20> <> ࠬ<EFBFBD> <E0A0AC> <EFBFBD> <EFBFBD> ebp=color ebx=ed_shift_pos
2007-01-19 15:36:00 +01:00
mov eax,dword ed_pos
2007-03-07 09:35:01 +01:00
; mov ebx,dword ed_shift_pos
2007-01-19 15:36:00 +01:00
cmp eax,ebx
jae .sh_n
push eax ;<3B> <> <EFBFBD> <EFBFBD> 襥 <20> eax
push ebx ;<3B> <> <EFBFBD> <EFBFBD> 襥
jmp .sh_n1
;<3B> <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
.sh_n: push ebx
push eax
.sh_n1:
call .check_offset
call .get_n
mov edx,eax ;size of ed_box
mov ecx,ed_offset
add eax,ecx ;eax = w_off= ed_offset+width
2007-02-15 08:44:55 +01:00
mov edx,eax ;save
2007-01-19 15:36:00 +01:00
pop ebx ;<3B> <> <EFBFBD> <EFBFBD> 襥
pop eax ;<3B> <> <EFBFBD> <EFBFBD> 襥
cmp eax,ecx ;<3B> ࠢ<EFBFBD> <E0A0A2> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> 襣<EFBFBD> <20> offset.
jae .f_f ;<3B> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
xor eax,eax
2007-02-15 08:44:55 +01:00
cmp edx,ebx ;cࠢ<63> <E0A0A2> <EFBFBD> ࠧ<> <E0A0A7> <EFBFBD> w_off <20> <20> <> <EFBFBD> <EFBFBD> 訬
2007-01-19 15:36:00 +01:00
jb @f
sub ebx,ecx
jmp .nxt_f
2007-02-15 08:44:55 +01:00
@@: mov ebx,edx
2007-01-19 15:36:00 +01:00
sub ebx,ecx
jmp .nxt_f
.f_f:
sub eax,ecx
2007-02-15 08:44:55 +01:00
cmp edx,ebx ;cࠢ<63> <E0A0A2> <EFBFBD> ࠧ<> <E0A0A7> <EFBFBD> w_off <20> <20> <> <EFBFBD> <EFBFBD> 訬
2007-01-19 15:36:00 +01:00
jle @f
sub ebx,ecx
sub ebx,eax
jmp .nxt_f
@@:
2007-02-15 08:44:55 +01:00
mov ebx,edx
2007-01-19 15:36:00 +01:00
sub ebx,ecx
sub ebx,eax
.nxt_f:
2007-01-22 14:50:18 +01:00
mov edx,ebx
2007-01-19 15:36:00 +01:00
lea ebx,[eax*2+eax]
shl ebx,1
add ebx,ed_left
inc ebx
shl ebx,16
lea ecx,[edx*2+edx]
shl ecx,1
mov bx,cx
2007-03-06 14:53:45 +01:00
inc ebx
2007-02-15 08:44:55 +01:00
mov edx,ebp;shift_color
2007-01-19 15:36:00 +01:00
call .draw_bg_eax
2007-03-07 09:35:01 +01:00
@@: call .enable_null
2007-02-15 08:44:55 +01:00
ret
2007-03-06 14:53:45 +01:00
;;;;;;;;;;;;;;;;;;;;;
;<3B> <> ⠭<EFBFBD> <E2A0AD> <EFBFBD> <EFBFBD> - <20> <> <EFBFBD> ⨥ <20> 뤥<EFBFBD> <EBA4A5> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> ᨬ<> <E1A8AC> <EFBFBD>
;;;;;;;;;;;;;;;;;;;;;
.drw_sim:
mov eax,dword ed_pos
call .draw_rectangle ;<3B> <> <EFBFBD> <EFBFBD> ᮢ<EFBFBD> <E1AEA2> <EFBFBD> <20> <> אַ㣮<EFACAE> 쭨<EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 梥⮬
jmp @b
;;;;;;;;;;;;;;;;;;;;;
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ⠭<EFBFBD> <E2A0AD> <EFBFBD> <EFBFBD> <20> 뤥<EFBFBD> <EBA4A5> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> ࠢ<EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> ⨨ shift
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> :
;;;;;;;;;;
.draw_wigwag:
;<3B> 㭪<EFBFBD> <E3ADAA> <EFBFBD> <20> <> ⠭<EFBFBD> <E2A0AD> <EFBFBD> <EFBFBD> <20> <> ६<EFBFBD> <E0A5AC> <EFBFBD> <EFBFBD> <EFBFBD>
mov ebp,shift_color
call .clear_cursor
2007-01-22 14:50:18 +01:00
2007-03-06 14:53:45 +01:00
or word ed_flags,ed_shift_bac ;<3B> <> ⠭<EFBFBD> <E2A0AD> <EFBFBD> <EFBFBD> 䫠<> <E4ABA0> , <20> 뤥<EFBFBD> <EBA4A5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
mov ebp,shift_color
mov eax,dword ed_pos
test word ed_flags,ed_left_fl
jz .low
jmp @f
;;;;;;;;;;
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 㤠<> <E3A4A0> <EFBFBD> <EFBFBD> <EFBFBD> <20> 뤥<EFBFBD> <EBA4A5> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> ࠢ<EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> ⨨ shift
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> :
;;;;;;;;;;
.draw_wigwag_cl:
;<3B> 㭪<EFBFBD> <E3ADAA> <EFBFBD> <20> <> ⠭<EFBFBD> <E2A0AD> <EFBFBD> <EFBFBD> <20> <> ६<EFBFBD> <E0A5AC> <EFBFBD> <EFBFBD> <EFBFBD>
mov ebp,ed_color
call .clear_cursor
mov ebp,ed_color
mov eax,dword ed_pos
test word ed_flags,ed_left_fl
jz .low
;dec eax
@@: call .draw_rectangle ;<3B> <> <EFBFBD> <EFBFBD> ᮢ<EFBFBD> <E1AEA2> <EFBFBD> <20> <> אַ㣮<EFACAE> 쭨<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> 訢<EFBFBD> <E8A8A2> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
ret
.low: dec eax
jmp @b
;<3B> 室<EFBFBD> <E5AEA4> <EFBFBD> <20> <> ࠬ<EFBFBD> <E0A0AC> <EFBFBD> ebx - ed_pos
.sh_first_sh:
2007-01-22 14:50:18 +01:00
test word ed_flags,ed_shift
je @f
2007-03-06 14:53:45 +01:00
mov dword ed_shift_pos_old,ebx
2007-01-22 14:50:18 +01:00
test word ed_flags,ed_shift_on
2007-03-06 14:53:45 +01:00
jne @f
mov dword ed_shift_pos,ebx
or word ed_flags,ed_shift_on
@@: ret
;<3B> <> ࠡ<EFBFBD> ⪠ <20> ࠩ<EFBFBD> <E0A0A9> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> editbox <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ⮬ shift
;<3B> ந<EFBFBD> <E0AEA8> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> ⨥ <20> 뤥<EFBFBD> <EBA4A5> <EFBFBD> <EFBFBD> <EFBFBD> , <20> <20> <> <EFBFBD> shift
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> 室<EFBFBD> <E5AEA4>
.sh_st_of:
test word ed_flags,ed_shift
jne @f
test word ed_flags,ed_shift_bac
je @f
mov ebp,ed_color
2007-03-07 09:35:01 +01:00
mov ebx,dword ed_shift_pos
2007-03-06 14:53:45 +01:00
call .sh_cl_ ;<3B> <> <EFBFBD> <EFBFBD> ⪠ <20> 뤥<EFBFBD> <EBA4A5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> ࠣ<EFBFBD> <E0A0A3> <EFBFBD> <EFBFBD> <EFBFBD>
and word ed_flags,ed_shift_cl ; <20> <> <EFBFBD> <EFBFBD> ⪠ <20> <> ⮣<> <20> <> <EFBFBD> <20> <> ࠫ<EFBFBD> <20> 뤥<EFBFBD> <EBA4A5> <EFBFBD> <EFBFBD> <EFBFBD>
jmp .draw_cursor_text
@@:
and word ed_flags,ed_shift_off
popa
ret
;<3B> <EFBFBD> ઠ <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ﭨ<EFBFBD> shift <20> <> <EFBFBD> <20> <> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ࠭<> <E0A0AD> <EFBFBD> ?
.sh_enable:
test word ed_flags,ed_shift
jne .sh_ext_en ;<3B> <> <EFBFBD> <EFBFBD> ᮢ<EFBFBD> <E1AEA2> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> 襭<EFBFBD> <E8A5AD> <20> <> אַ㣮<EFACAE> 쭨<EFBFBD>
2007-01-24 11:00:37 +01:00
2007-03-06 14:53:45 +01:00
test word ed_flags,ed_shift_bac
2007-02-15 08:44:55 +01:00
je @f
2007-03-06 14:53:45 +01:00
call .check_offset
2007-02-15 08:44:55 +01:00
mov ebp,ed_color
2007-03-07 09:35:01 +01:00
mov ebx,dword ed_shift_pos
2007-02-15 08:44:55 +01:00
call .sh_cl_ ;<3B> <> <EFBFBD> <EFBFBD> ⪠ <20> 뤥<EFBFBD> <EBA4A5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> ࠣ<EFBFBD> <E0A0A3> <EFBFBD> <EFBFBD> <EFBFBD>
2007-03-06 14:53:45 +01:00
call .draw_wigwag_cl
and word ed_flags,ed_shift_cl ; 1<> <31> <EFBFBD> <20> <> <20> 㦭<EFBFBD>
ret
@@: mov ebp,ed_color
call .clear_cursor
call .check_offset
ret
2007-02-15 08:44:55 +01:00
.sh_ext_en:
2007-03-06 14:53:45 +01:00
call .check_offset
2007-03-07 09:35:01 +01:00
test word ed_flags,ed_offset_fl
jne @f
2007-03-06 14:53:45 +01:00
;<3B> <> ᮢ<EFBFBD> <E1AEA2> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> 襭<EFBFBD> <E8A5AD> <20> <> אַ㣮<EFACAE> 쭨<EFBFBD> <ECADA8> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> ⪠ <20> <>
mov eax,dword ed_shift_pos
mov ebx,dword ed_pos
mov ecx,dword ed_shift_pos_old
;<3B> <EFBFBD> ઠ <20> <20> <> ᮢ<EFBFBD> <E1AEA2> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> 襭<EFBFBD> <E8A5AD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ⥩
cmp eax,ecx
je .1_shem
jb .smaller
cmp ecx,ebx
ja .1_shem
call .draw_wigwag_cl ;clear
jmp .sh_e_end
.smaller:
cmp ecx,ebx
jb .1_shem
call .draw_wigwag_cl ;clear
jmp .sh_e_end
;alike =
.1_shem: call .draw_wigwag
.sh_e_end: and word ed_flags,ed_shift_off
ret
@@: mov ebp,shift_color
2007-03-07 09:35:01 +01:00
mov ebx,dword ed_shift_pos
2007-03-06 14:53:45 +01:00
call .sh_cl_
jmp .sh_e_end
;<3B> 㭪<EFBFBD> <E3ADAA> <EFBFBD> <20> <> <EFBFBD> <20> <> ࠡ<EFBFBD> ⪨ shift <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ⨨ home and end
.sh_home_end:
mov ebp,ed_color
call .clear_cursor
test word ed_flags,ed_shift_bac
je @f
mov ebp,ed_color
2007-03-07 09:35:01 +01:00
mov ebx,dword ed_shift_pos_old
2007-03-06 14:53:45 +01:00
call .sh_cl_
@@: test word ed_flags,ed_shift
je .sh_exit_ ;<3B> <> <EFBFBD> <EFBFBD> ᮢ<EFBFBD> <E1AEA2> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> 襭<EFBFBD> <E8A5AD> <20> <> אַ㣮<EFACAE> 쭨<EFBFBD> (<28> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> )
mov ebp,shift_color
2007-03-07 09:35:01 +01:00
mov ebx,dword ed_shift_pos
2007-03-06 14:53:45 +01:00
call .sh_cl_
or word ed_flags,ed_shift_bac ;<3B> <> ⠭<EFBFBD> <E2A0AD> <EFBFBD> <EFBFBD> 䫠<> <E4ABA0> , <20> 뤥<EFBFBD> <EBA4A5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
jmp .sh_e_end
2007-03-07 09:35:01 +01:00
.sh_exit_: call .check_offset
ret
2007-02-13 11:09:13 +01:00
;<3B> 㭪<EFBFBD> <E3ADAA> <EFBFBD> <20> <> <EFBFBD> ᥭ<EFBFBD> <E1A5AD> 0 <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ed_size+1
.enable_null:
pusha
mov eax,ed_size
mov ebx,ed_text
add eax,ebx
inc eax
xor ebx,ebx
mov [eax],bl
popa
ret
2007-03-07 09:35:01 +01:00
;- 㤠<> <E3A4A0> <EFBFBD> <EFBFBD> <EFBFBD> ᨬ<> <E1A8AC> <EFBFBD> <EFBFBD>
;<3B> 室<EFBFBD> <E5AEA4> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> edx=ed_size;ecx=ed_pos
2006-12-13 06:18:25 +01:00
.del_char:
mov esi,ed_text
2007-01-22 14:50:18 +01:00
test word ed_flags,ed_shift_on
je @f
mov eax,dword ed_shift_pos
mov ebx,esi
cmp eax,ecx
jae .dh_n
mov ed_pos,eax ;<3B> <> <EFBFBD> <20> <> <20> <> <20> 뫮 㡥<> <E3A1A5> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
mov ebp,ecx
sub ebp,eax
add ebx,eax ;eax <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
sub edx,ecx
2006-12-13 06:18:25 +01:00
add esi,ecx
2007-03-06 14:53:45 +01:00
mov dword ed_shift_pos,ebp
2007-01-22 14:50:18 +01:00
jmp .del_ch_sh
;<3B> <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
.dh_n:
mov ebp,eax
sub ebp,ecx
add ebx,ecx
sub edx,eax
add esi,eax
2007-03-06 14:53:45 +01:00
mov dword ed_shift_pos,ebp
2007-01-22 14:50:18 +01:00
jmp .del_ch_sh
@@: add esi,ecx ;㪠<> <E3AAA0> ⥫<EFBFBD> + ᬥ饭<E1ACA5> <E9A5AD> <20> ॠ<> 쭮<EFBFBD> <ECADAE> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2006-12-13 06:18:25 +01:00
mov ebx,esi
inc esi
cld
sub edx,ecx
2007-01-22 14:50:18 +01:00
.del_ch_sh:
2006-12-13 06:18:25 +01:00
push edi
mov edi,ebx
@@:
lodsb
stosb
2007-01-22 14:50:18 +01:00
dec edx
2006-12-13 06:18:25 +01:00
jns @b
pop edi
ret
2007-02-13 11:09:13 +01:00
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <E1ABA8> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> 訢<EFBFBD> <E8A8A2> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
;ᮣ<> <E1AEA3> 襭<EFBFBD> <E8A5AD> <20> ebp - <20> <> ।<EFBFBD> <E0A5A4> <EFBFBD> <EFBFBD> <EFBFBD> ed_size
.clear_bg:
call .get_n ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ࠧ<> <E0A0A7> <EFBFBD> <20> ᨬ<> <E1A8AC> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ਭ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
push eax
mov ebx,ed_offset
add eax,ebx ;eax = w_off= ed_offset+width
mov ebx,ebp ;ed_size
cmp eax,ebx
jb @f
mov eax,ed_pos
sub ebx,eax
mov ecx,ed_offset
sub eax,ecx
jmp .nxt
@@: mov ebx,ed_pos
push ebx
sub eax,ebx
mov ebx,eax ;It is don't optimal
pop eax ;ed_pos
mov ecx,ed_offset
sub eax,ecx
.nxt:
mov ebp,eax ;<3B> <EFBFBD> ઠ <20> <> <20> <> 室 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> 訢<EFBFBD> <E8A8A2> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> ।<EFBFBD> <E0A5A4> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
add ebp,ebx
pop edx
cmp ebp,edx
je @f
inc ebx
@@: mov edx,ebx
lea ebx,[eax*2+eax]
shl ebx,1
add ebx,ed_left
inc ebx
shl ebx,16
lea ecx,[edx*2+edx]
shl ecx,1
mov bx,cx
mov edx,ed_color
call .draw_bg_eax
ret
2007-03-06 14:53:45 +01:00
;;;;;;;;;;;;;;;;;;;
;;; <20> <> ࠡ<EFBFBD> ⪠ <20> ਬ<EFBFBD> ⨢<EFBFBD> <E2A8A2>
;;;;;;;;;;;;;;;;;;;;
;<3B> <> <EFBFBD> <EFBFBD> ᮢ<EFBFBD> <E1AEA2> <EFBFBD> <20> <> אַ㣮<EFACAE> 쭨<EFBFBD> , 梥<> <20> <> ।<EFBFBD> <E0A5A4> <EFBFBD> <EFBFBD> <EFBFBD> <20> ebp
;<3B> 室<EFBFBD> <E5AEA4> <EFBFBD> <20> <> ࠬ<EFBFBD> <E0A0AC> <EFBFBD> <EFBFBD> :
;eax=dword ed_pos
;ebp=-梥<> ed_color or shift_color
.draw_rectangle:
mov ecx,dword ed_offset
sub eax,ecx
lea ebx,[eax*2+eax]
shl ebx,1
inc ebx
add ebx,ed_left
shl ebx,16
mov bx,6
mov edx,ebp
call .draw_bg_eax
ret
2006-12-13 06:18:25 +01:00
;==========================================================
;=== <20> <> ࠡ<EFBFBD> ⪠ <20> <> <EFBFBD> <EFBFBD> =======================================
;==========================================================
.mouse:
pusha
;----------------------------------------------------------
;--- <20> <> <EFBFBD> <EFBFBD> 砥<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ﭨ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> -----------------------
;----------------------------------------------------------
mov eax,37
mov ebx,2
int 0x40
;----------------------------------------------------------
;--- <20> <EFBFBD> <E0AEA2> 塞 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ﭨ<EFBFBD> ----------------------------------
;----------------------------------------------------------
test eax,1
jnz .mouse_left_button
2007-02-15 08:44:55 +01:00
popa
2006-12-13 06:18:25 +01:00
ret
.mouse_left_button:
;----------------------------------------------------------
;--- <20> <> <EFBFBD> <EFBFBD> 砥<EFBFBD> <20> <> <EFBFBD> न<EFBFBD> <E0A4A8> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> -----------------------------
;----------------------------------------------------------
mov eax,37
xor ebx,ebx
inc ebx
int 0x40
;----------------------------------------------------------
;--- <20> <EFBFBD> <E0AEA2> 塞, <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> edit box -------------
;----------------------------------------------------------
mov ebx,ed_top
cmp ax,bx
jl ._blur;.mouse_end_no_focus
add bx,ed_height
cmp ax,bx
jg ._blur;.mouse_end_no_focus
shr eax,16
mov bx,ed_left
cmp ax,bx
jl ._blur;.mouse_end_no_focus
add bx,ed_width
cmp ax,bx
jg ._blur;.mouse_end_no_focus
;--- <20> <> <EFBFBD> <EFBFBD> <EFBFBD> 塞 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ---
push eax
2007-03-06 14:53:45 +01:00
mov ebp,ed_color
2006-12-13 06:18:25 +01:00
call .clear_cursor
pop eax
xor dx,dx
sub ax,ed_left
add ax,2
mov bx,6
div bx
add ax,ed_offset
cmp ax,ed_size
jna @f
mov ax,ed_size
@@:
mov ed_pos,ax
call .check_offset
call .draw_cursor
2007-01-24 11:00:37 +01:00
;----------------------------------------------------------
;--- <20> <> <EFBFBD> 楤<EFBFBD> <E6A5A4> <EFBFBD> <20> <> ⠭<EFBFBD> <E2A0AD> <EFBFBD> <EFBFBD> 䮪<> <E4AEAA> <EFBFBD> ---------------------------
;----------------------------------------------------------
bts word ed_flags,1
2007-02-15 08:44:55 +01:00
jc @f
2007-01-24 11:00:37 +01:00
call .draw_cursor
2007-02-15 08:44:55 +01:00
jmp .drc
2006-12-13 06:18:25 +01:00
._blur:
2007-02-01 08:20:59 +01:00
test word ed_flags,ed_always_focus
jne @f
2007-01-24 11:00:37 +01:00
btr word ed_flags,1 ; <20> <20> <> <20> 䮪<> <E4AEAA> <EFBFBD> , <20> <> 室<EFBFBD> <E5AEA4>
jnc @f
2007-03-06 14:53:45 +01:00
mov ebp,ed_color
2006-12-13 06:18:25 +01:00
call .clear_cursor
2007-02-15 08:44:55 +01:00
.drc: call .draw_border
2006-12-13 06:18:25 +01:00
@@:
popa
ret
;----------------------------------------------------------
;--- <20> <> <EFBFBD> 楤<EFBFBD> <E6A5A4> <EFBFBD> ࠧ<> 뢠<EFBFBD> <EBA2A0> <EFBFBD> 䮪<> <E4AEAA> <EFBFBD> --------------------------
;----------------------------------------------------------
;.blur:
;pusha
;._blur:
;btr ed_flags,1
;jnc @f
;call .draw_border
;call .clear_cursor
;@@:
;popa
;ret
}
2007-03-07 09:35:01 +01:00
ed_figure_only= 1000000000000000b ;<3B> <> <EFBFBD> <EFBFBD> ᨬ<> <E1A8AC> <EFBFBD> <EFBFBD>
2007-03-06 14:53:45 +01:00
ed_always_focus= 100000000000000b
2007-03-07 09:35:01 +01:00
ed_focus= 10b ;䮪<> <E4AEAA> <20> ਫ<EFBFBD> <E0A8AB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2007-03-06 14:53:45 +01:00
ed_shift_on= 1000b ;<3B> <20> <> <20> <> ⠭<EFBFBD> <E2A0AD> <EFBFBD> <EFBFBD> <EFBFBD> -<2D> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> shift,<2C> <20> <> <EFBFBD> <20> <> ⠭<EFBFBD> <E2A0AD> <EFBFBD> <EFBFBD> <EFBFBD> , <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> 㦥 <20> <> <EFBFBD> - <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 㤥ন<E3A4A5> <E0A6A8> <EFBFBD> shift
ed_shift= 100b ;<3B> <> <EFBFBD> <EFBFBD> 砥<EFBFBD> <E7A0A5> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ⨨ <20> <> shift <20> .<2E> . <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
ed_shift_off= 1111111111111011b
ed_shift_bac= 10000b ;<3B> <> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ⪨ <20> 뤥<EFBFBD> <EBA4A5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> shift <20> .<2E> . <20> <> <EFBFBD> <20> <> ⠭<EFBFBD> <E2A0AD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> 뤥<EFBFBD> <EBA4A5> <EFBFBD> <EFBFBD> <EFBFBD>
ed_shift_cl= 1111111111100011b
ed_left_fl= 100000b
ed_right_fl= 1111111111011111b
2007-03-07 09:35:01 +01:00
ed_offset_fl= 1000000b
ed_offset_cl= 1111111110111111b
2007-03-06 14:53:45 +01:00
ed_insert= 10000000b
ed_insert_cl= 1111111101111111b
ed_height=14 ; <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
shift_color=0x6a9480
2006-12-13 06:18:25 +01:00
macro draw_edit_boxes start,end
{
mov edi,start
mov ecx,((end-start)/ed_struc_size)
@@:
call edit_box.draw
add edi,ed_struc_size
loop @b
}
macro mouse_edit_boxes start,end
{
mov edi,start
mov ecx,((end-start)/ed_struc_size)
@@:
call edit_box.mouse
add edi,ed_struc_size
loop @b
}
macro key_edit_boxes start,end
{
mov edi,start
mov ecx,((end-start)/ed_struc_size)
@@:
2007-03-07 09:35:01 +01:00
; push eax
2006-12-13 06:18:25 +01:00
call edit_box.key
2007-03-07 09:35:01 +01:00
; pop eax
2006-12-13 06:18:25 +01:00
add edi,ed_struc_size
loop @b
}
2007-03-06 14:53:45 +01:00
ed_struc_size=66
2006-12-13 06:18:25 +01:00
struc edit_box width,left,top,color,focus_border_color,\
2007-03-07 09:35:01 +01:00
blur_border_color,text_color,max,text,flags
2006-12-13 06:18:25 +01:00
{
.width dd width
.left dd left
.top dd top
.color dd color
.focus_border_color dd focus_border_color
.blur_border_color dd blur_border_color
.text_color dd text_color
.max dd max
2007-01-19 15:36:00 +01:00
.text dd text
.flags dw flags+0
2007-03-07 09:35:01 +01:00
.size dd 0
2006-12-13 06:18:25 +01:00
.pos dd 0
.offset dd 0
.cl_curs_x dd 0
.cl_curs_y dd 0
2007-03-06 14:53:45 +01:00
.shift dd 0
.shift_old dd 0
2006-12-13 06:18:25 +01:00
}
macro edit_boxes_set_sys_color start,end,color_table
{
mov edi,start
mov ecx,((end-start)/ed_struc_size)
mov esi,color_table
@@:
mov eax,[esi+36]
mov ebx,[esi+20]
mov ed_focus_border_color,eax
shr bh,1
shr bl,1
shr ah,1
shr al,1
add ah,bh
add al,bl
ror eax,16
ror ebx,16
shr bl,1
shr al,1
add al,bl
ror eax,16
mov ed_blur_border_color,eax
add edi,ed_struc_size
loop @b
2007-02-01 08:20:59 +01:00
}
macro draw_edit_box ed_ptr
{
mov edi,ed_ptr
call edit_box.draw
}
macro mouse_edit_box ed_ptr
{
mov edi,ed_ptr
call edit_box.mouse
}
macro key_edit_box ed_ptr
{
mov edi,ed_ptr
call edit_box.key
2006-12-13 06:18:25 +01:00
}