Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. ZZ=D4 (
  2.  
  3. )
  4.  
  5. Code    SYS1 ;( n -- n1 )
  6.  
  7. 59E2C9  E0 E2 59 00  00 04 53 59  53 31 AE E2  59 00 00 00 àâY...SYS1®âY...
  8. 59E2D9  00 00 00 00  00 00 00 .......
  9.  
  10.         INT 40H
  11.  
  12. 59E2E0  CD 40 Í@
  13.  
  14.         RET
  15.  
  16. 59E2E2  C3 Ã
  17.  
  18. EndCode
  19.  
  20. Code    SYS2 ;( n n1 -- n2 )
  21.  
  22. 59E2E3  00 E3 59 00  00 04 53 59  53 32 CE E2  59 00 00 00 .ãY...SYS2ÎâY...
  23. 59E2F3  00 00 00 00  00 00 00 00  00 00 00 00  00 .............
  24.  
  25.         MOV EBX, [EBP]
  26.  
  27. 59E300  8B 5D 00 ‹].
  28.  
  29.         INT 40H
  30.  
  31. 59E303  CD 40 Í@
  32.  
  33.         LEA EBP, [EBP+4]
  34.  
  35. 59E305  8D 6D 04 m.
  36.  
  37.         RET
  38.  
  39. 59E308  C3 Ã
  40.  
  41. EndCode
  42.  
  43. Code    SYS3 ;( n n1 n2 -- n3 )
  44.  
  45. 59E309  20 E3 59 00  00 04 53 59  53 33 E8 E2  59 00 00 00  ãY...SYS3èâY...
  46. 59E319  00 00 00 00  00 00 00 .......
  47.  
  48.         MOV ECX, [EBP+4]
  49.  
  50. 59E320  8B 4D 04 ‹M.
  51.  
  52.         MOV EBX, [EBP]
  53.  
  54. 59E323  8B 5D 00 ‹].
  55.  
  56.         INT 40H
  57.  
  58. 59E326  CD 40 Í@
  59.  
  60.         LEA EBP, [EBP+8]
  61.  
  62. 59E328  8D 6D 08 m.
  63.  
  64.         RET
  65.  
  66. 59E32B  C3 Ã
  67.  
  68. EndCode
  69.  
  70. Code    SYS4 ;( n n1 n2 n3 -- n4 )
  71.  
  72. 59E32C  40 E3 59 00  00 04 53 59  53 34 0E E3  59 00 00 00 @ãY...SYS4.ãY...
  73. 59E33C  00 00 00 00 ....
  74.  
  75.         MOV EDX, [EBP+8]
  76.  
  77. 59E340  8B 55 08 ‹U.
  78.  
  79.         MOV ECX, [EBP+4]
  80.  
  81. 59E343  8B 4D 04 ‹M.
  82.  
  83.         MOV EBX, [EBP]
  84.  
  85. 59E346  8B 5D 00 ‹].
  86.  
  87.         INT 40H
  88.  
  89. 59E349  CD 40 Í@
  90.  
  91.         LEA EBP, [EBP+0CH]
  92.  
  93. 59E34B  8D 6D 0C m.
  94.  
  95.         RET
  96.  
  97. 59E34E  C3 Ã
  98.  
  99. EndCode
  100.  
  101. Code    SYS5 ;( n n1 n2 n3 n4 -- n5 )
  102.  
  103. 59E34F  60 E3 59 00  00 04 53 59  53 35 31 E3  59 00 00 00 `ãY...SYS51ãY...
  104. 59E35F  00 .
  105.  
  106.         MOV ESI, [EBP+0CH]
  107.  
  108. 59E360  8B 75 0C ‹u.
  109.  
  110.         MOV EDX, [EBP+8]
  111.  
  112. 59E363  8B 55 08 ‹U.
  113.  
  114.         MOV ECX, [EBP+4]
  115.  
  116. 59E366  8B 4D 04 ‹M.
  117.  
  118.         MOV EBX, [EBP]
  119.  
  120. 59E369  8B 5D 00 ‹].
  121.  
  122.         INT 40H
  123.  
  124. 59E36C  CD 40 Í@
  125.  
  126.         LEA EBP, [EBP+10H]
  127.  
  128. 59E36E  8D 6D 10 m.
  129.  
  130.         RET
  131.  
  132. 59E371  C3 Ã
  133.  
  134. EndCode
  135.  
  136. Code    SYS6 ;( n n1 n2 n3 n4 n5 -- n6 )
  137.  
  138. 59E372  80 E3 59 00  00 04 53 59  53 36 54 E3  59 00 €ãY...SYS6TãY.
  139.  
  140.         PUSH EDI
  141.  
  142. 59E380  57 W
  143.  
  144.         MOV EDI, [EBP+10H]
  145.  
  146. 59E381  8B 7D 10 ‹}.
  147.  
  148.         MOV ESI, [EBP+0CH]
  149.  
  150. 59E384  8B 75 0C ‹u.
  151.  
  152.         MOV EDX, [EBP+8]
  153.  
  154. 59E387  8B 55 08 ‹U.
  155.  
  156.         MOV ECX, [EBP+4]
  157.  
  158. 59E38A  8B 4D 04 ‹M.
  159.  
  160.         MOV EBX, [EBP]
  161.  
  162. 59E38D  8B 5D 00 ‹].
  163.  
  164.         INT 40H
  165.  
  166. 59E390  CD 40 Í@
  167.  
  168.         LEA EBP, [EBP+14H]
  169.  
  170. 59E392  8D 6D 14 m.
  171.  
  172.         POP EDI
  173.  
  174. 59E395  5F _
  175.  
  176.         RET
  177.  
  178. 59E396  C3 Ã
  179.  
  180. EndCode
  181.  
  182. VARIABLE reg_struc
  183.  
  184. 59E397  AB E3 59 00  00 09 72 65  67 5F 73 74  72 75 63 77 «ãY...reg_strucw
  185. 59E3A7  E3 59 00 00  E8 6C 3C FA  FF 00 00 00  00 ãY..èl<úÿ....
  186.  
  187.  
  188. Code    SYSV ;(  -- n )
  189.  
  190. 59E3B4  D0 E3 59 00  00 04 53 59  53 56 9C E3  59 00 00 00 ÐãY...SYSVœãY...
  191. 59E3C4  00 00 00 00  00 00 00 00  00 00 00 00 ............
  192.  
  193.         LEA EBP,  [EBP-4]
  194.  
  195. 59E3D0  8D 6D FC mü
  196.  
  197.         MOV [EBP], EAX
  198.  
  199. 59E3D3  89 45 00 ‰E.
  200.  
  201.         MOV EAX, { ' reg_struc }
  202.  
  203. 59E3D6  B8 AB E3 59  00 ¸«ãY.
  204.  
  205.         PUSH EDI
  206.  
  207. 59E3DB  57 W
  208.  
  209.         MOV EDI, [EAX+14H]
  210.  
  211. 59E3DC  8B 78 14 ‹x.
  212.  
  213.         MOV ESI, [EAX+10H]
  214.  
  215. 59E3DF  8B 70 10 ‹p.
  216.  
  217.         MOV EDX, [EAX+0CH]
  218.  
  219. 59E3E2  8B 50 0C ‹P.
  220.  
  221.         MOV ECX, [EAX+8]
  222.  
  223. 59E3E5  8B 48 08 ‹H.
  224.  
  225.         MOV EBX, [EAX+4]
  226.  
  227. 59E3E8  8B 58 04 ‹X.
  228.  
  229.         MOV EAX, [EAX]
  230.  
  231. 59E3EB  8B 00 ‹.
  232.  
  233.         INT 40H
  234.  
  235. 59E3ED  CD 40 Í@
  236.  
  237.         POP EDI
  238.  
  239. 59E3EF  5F _
  240.  
  241.         RET
  242.  
  243. 59E3F0  C3 Ã
  244.  
  245. EndCode
  246.  
  247.  
  248.  
  249. 80 VALUE SCR_WIDTH
  250.  
  251. 59E3F1  10 E4 59 00  00 09 53 43  52 5F 57 49  44 54 48 B9 .äY...SCR_WIDTH¹
  252. 59E401  E3 59 00 00  00 00 00 00  00 00 00 00  00 00 00 E8 ãY.............è
  253. 59E411  27 3C FA FF  50 00 00 00  E8 E6 3C FA  FF '<úÿP...èæ<úÿ
  254.  
  255. 60 VALUE SCR_WIDTH-S
  256.  
  257. 59E41E  40 E4 59 00  00 0B 53 43  52 5F 57 49  44 54 48 2D @äY...SCR_WIDTH-
  258. 59E42E  53 F6 E3 59  00 00 00 00  00 00 00 00  00 00 00 00 SöãY............
  259. 59E43E  00 00 E8 F7  3B FA FF 3C  00 00 00 E8  B6 3C FA FF ..è÷;úÿ<...è¶<úÿ
  260.  
  261. 25 VALUE SCR_HEIGHT
  262.  
  263. 59E44E  70 E4 59 00  00 0A 53 43  52 5F 48 45  49 47 48 54 päY...SCR_HEIGHT
  264. 59E45E  23 E4 59 00  00 00 00 00  00 00 00 00  00 00 00 00 #äY.............
  265. 59E46E  00 00 E8 C7  3B FA FF 19  00 00 00 E8  86 3C FA FF ..èÇ;úÿ....è†<úÿ
  266.  
  267.  
  268.  
  269. CREATE &AT-XY 0 , 0 ,
  270.  
  271. 59E47E  8F E4 59 00  00 06 26 41  54 2D 58 59  53 E4 59 00 äY...&AT-XYSäY.
  272. 59E48E  00 E8 88 3B  FA FF 00 00  00 00 00 00  00 00 .èˆ;úÿ........
  273.  
  274. CREATE &KEY 0 ,
  275.  
  276. 59E49C  AB E4 59 00  00 04 26 4B  45 59 83 E4  59 00 00 E8 «äY...&KEYƒäY..è
  277. 59E4AC  6C 3B FA FF  00 00 00 00 l;úÿ....
  278.  
  279. CREATE &ATRIB 0x0000FFFF ,
  280.  
  281. 59E4B4  C7 E4 59 00  00 06 26 41  54 52 49 42  A1 E4 59 00 ÇäY...&ATRIB¡äY.
  282. 59E4C4  00 00 00 E8  50 3B FA FF  FF FF 00 00 ...èP;úÿÿÿ..
  283.  
  284.  
  285. 0x0011000D VALUE >PIC
  286.  
  287. 59E4D0  E0 E4 59 00  00 04 3E 50  49 43 B9 E4  59 00 00 00 àäY...>PIC¹äY...
  288. 59E4E0  E8 57 3B FA  FF 0D 00 11  00 E8 16 3C  FA FF èW;úÿ....è.<úÿ
  289.  
  290.  
  291. CREATE SCR_BUF SCR_WIDTH SCR_HEIGHT 1+ * ALLOT
  292.  
  293. 59E4EE   FF E4 59 00  00 07 53 43  52 5F 42 55  46 D5 E4 59 ÿäY...SCR_BUFÕäY
  294. 59E4FE   00 E8 18 3B  FA FF 00 00  00 00 00 00  00 00 00 00 .è.;úÿ..........
  295. 59E50E   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00 ................
  296. 59E51E   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00 ................
  297. 59E52E   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00 ................
  298. 59ED24 7E6 bytes
  299.  
  300. : AT-XY ( X Y -- )
  301.  
  302. 59ED24  40 ED 59 00  00 05 41 54  2D 58 59 F3  E4 59 00 00 @íY...AT-XYóäY..
  303. 59ED34  00 00 00 00  00 00 00 00  00 00 00 00 ............
  304.  
  305.  SWAP 16 LSHIFT + &AT-XY ! ;
  306.                 MOV     EDX , [EBP ]
  307.                 MOV     [EBP ], EAX
  308.                 MOV     [EBP -4], EDX
  309.                 MOV     EAX , $10
  310.                 MOV     ECX , EAX
  311.                 MOV     EAX , [EBP -4]
  312.                 SHL     EAX , CL
  313.                 ADD     EAX , [EBP ]
  314.                 LEA     EBP , [EBP +4]
  315.                 CALL    @@&AT-XY
  316.                 MOV     EDX , [EBP ]
  317.                 MOV     [EAX ], EDX
  318.                 MOV     EAX , [EBP +4]
  319.                 LEA     EBP , [EBP +8]
  320.                 RET
  321.  
  322. : AT-XY? ( -- X Y )
  323.  
  324. 59ED6C  80 ED 59 00  00 06 41 54  2D 58 59 3F  29 ED 59 00 €íY...AT-XY?)íY.
  325. 59ED7C  00 00 00 00 ....
  326.  
  327.  &AT-XY 2+ W@ &AT-XY W@ ;
  328.                 CALL    @@&AT-XY
  329.                 LEA     EAX , [EAX +2]
  330.                 MOVZX   EAX , WORD PTR [EAX ]
  331.                 CALL    @@&AT-XY
  332.                 MOVZX   EAX , WORD PTR [EAX ]
  333.                 RET
  334.  
  335. : __PAGE-UP
  336.  
  337. 59ED94  B0 ED 59 00  00 09 5F 5F  50 41 47 45  2D 55 50 71 °íY...__PAGE-UPq
  338. 59EDA4  ED 59 00 00  00 00 00 00  00 00 00 00 íY..........
  339.  
  340.   SCR_BUF SCR_WIDTH + SCR_BUF SCR_WIDTH SCR_HEIGHT * CMOVE
  341.                 CALL    @@SCR_BUF
  342.                 CALL    @@SCR_WIDTH
  343.                 ADD     EAX , [EBP ]
  344.                 LEA     EBP , [EBP +4]
  345.                 CALL    @@SCR_BUF
  346.                 CALL    @@SCR_WIDTH
  347.                 CALL    @@SCR_HEIGHT
  348.                 IMUL    [EBP ]
  349.                 LEA     EBP , [EBP +4]
  350.                 CALL    @@CMOVE
  351.   SCR_BUF SCR_WIDTH SCR_HEIGHT 1- * + SCR_WIDTH  BLANK
  352.                 CALL    @@SCR_BUF
  353.                 CALL    @@SCR_WIDTH
  354.                 CALL    @@SCR_HEIGHT
  355.                 LEA     EAX , [EAX -1]
  356.                 IMUL    [EBP ]
  357.                 ADD     EAX , [EBP +4]
  358.                 LEA     EBP , [EBP +8]
  359.                 CALL    @@SCR_WIDTH
  360.                 CALL    @@BLANK
  361.   AT-XY? 1- 0 MAX AT-XY ;
  362.                 CALL    @@AT-XY?
  363.                 LEA     EAX , [EAX -1]
  364.                 MOV     [EBP -4], EAX
  365.                 XOR     EAX , EAX
  366.                 LEA     EBP , [EBP -4]
  367.                 CALL    @@MAX
  368.                 CALL    @@AT-XY
  369.                 RET
  370.  
  371. VECT PAGE-UP
  372.  
  373. 59EE1A  30 EE 59 00  00 07 50 41  47 45 2D 55  50 99 ED 59 0îY...PAGE-UP™íY
  374. 59EE2A  00 00 00 00  00 00 E8 B3  32 FA FF 60  F0 59 00 E8 ......è³2úÿ`ðY.è
  375. 59EE3A  C6 32 FA FF Æ2úÿ
  376.  
  377.  
  378. : ?PAGE-UP ( n -- )
  379.  
  380. 59EE3E  50 EE 59 00  00 08 3F 50  41 47 45 2D  55 50 1F EE PîY...?PAGE-UP.î
  381. 59EE4E  59 00 Y.
  382.  
  383.  
  384.  &AT-XY 2+      W@ + SCR_WIDTH  /MOD SWAP &AT-XY 2+     W!
  385.                 CALL    @@&AT-XY
  386.                 LEA     EAX , [EAX +2]
  387.                 MOVZX   EAX , WORD PTR [EAX ]
  388.                 ADD     EAX , [EBP ]
  389.                 LEA     EBP , [EBP +4]
  390.                 CALL    @@SCR_WIDTH
  391.                 MOV     ECX , EAX
  392.                 MOV     EAX , [EBP ]
  393.                 CDQ
  394.                 IDIV    ECX
  395.                 MOV     [EBP ], EDX
  396.                 MOV     EDX , [EBP ]
  397.                 MOV     [EBP ], EAX
  398.                 MOV     EAX , EDX
  399.                 CALL    @@&AT-XY
  400.                 LEA     EAX , [EAX +2]
  401.                 CALL    @@W!
  402.  &AT-XY         W@ + SCR_HEIGHT /MOD
  403.                 CALL    @@&AT-XY
  404.                 MOVZX   EAX , WORD PTR [EAX ]
  405.                 ADD     EAX , [EBP ]
  406.                 LEA     EBP , [EBP +4]
  407.                 CALL    @@SCR_HEIGHT
  408.                 MOV     ECX , EAX
  409.                 MOV     EAX , [EBP ]
  410.                 CDQ
  411.                 IDIV    ECX
  412.                 MOV     [EBP ], EDX
  413.  IF PAGE-UP DROP SCR_HEIGHT 1- THEN  &AT-XY     W! ;
  414.                 OR      EAX , EAX
  415.                 MOV     EAX , [EBP ]
  416.                 LEA     EBP , [EBP +4]
  417.                 JE      [OFFSET ?PAGE-UP]
  418.                 CALL    @@PAGE-UP
  419.                 MOV     EAX , [EBP ]
  420.                 LEA     EBP , [EBP +4]
  421.                 CALL    @@SCR_HEIGHT
  422.                 LEA     EAX , [EAX -1]
  423. @59EEC1:                CALL    @@&AT-XY
  424.                 CALL    @@W!
  425.                 RET
  426.  
  427. : SCR_CR
  428.  
  429. 59EECC  E0 EE 59 00  00 06 53 43  52 5F 43 52  43 EE 59 00 àîY...SCR_CRCîY.
  430. 59EEDC  00 00 00 00 ....
  431.  
  432.  &AT-XY @ 0xFFFF AND 1+ &AT-XY ! 0 ?PAGE-UP ;
  433.                 CALL    @@&AT-XY
  434.                 MOV     EAX , [EAX ]
  435.                 MOV     [EBP -4], EAX
  436.                 MOV     EAX , $FFFF
  437.                 AND     EAX , [EBP -4]
  438.                 LEA     EAX , [EAX +1]
  439.                 CALL    @@&AT-XY
  440.                 MOV     EDX , [EBP ]
  441.                 MOV     [EAX ], EDX
  442.                 XOR     EAX , EAX
  443.                 LEA     EBP , [EBP +4]
  444.                 CALL    @@?PAGE-UP
  445.                 RET
  446.  
  447. : SCR_TYPE ( addr len -- )
  448.  
  449. 59EF0A  20 EF 59 00  00 08 53 43  52 5F 54 59  50 45 D1 EE  ïY...SCR_TYPEÑî
  450. 59EF1A  59 00 00 00  00 00 Y.....
  451.  
  452.         TUCK SWAP
  453.                 MOV     EDX , [EBP ]
  454.                 MOV     [EBP -4], EDX
  455.                 MOV     [EBP ], EAX
  456.                 MOV     EDX , [EBP -4]
  457.                 MOV     [EBP -4], EAX
  458.                 MOV     EAX , EDX
  459.                 LEA     EBP , [EBP -4]
  460.   &ATRIB @
  461.                 CALL    @@&ATRIB
  462.                 MOV     EAX , [EAX ]
  463.   &AT-XY 2+     W@  0x60000 *
  464.                 CALL    @@&AT-XY
  465.                 MOVZX   EAX , WORD PTR [EAX +2]
  466.                 MOV     [EBP -4], EAX
  467.                 MOV     EAX , $60000
  468.                 IMUL    [EBP -4]
  469.   &AT-XY        W@  0xD * +
  470.                 CALL    @@&AT-XY
  471.                 MOVZX   EAX , WORD PTR [EAX ]
  472.                 MOV     [EBP -4], EAX
  473.                 MOV     EAX , $D
  474.                 IMUL    [EBP -4]
  475.                 ADD     EAX , [EBP ]
  476.                 LEA     EAX , [$60018][EAX ]
  477.  0x00060018 +
  478.                 MOV     [EBP ], EAX
  479.                 MOV     EAX , $4
  480.  4 SYS5 DROP
  481.                 CALL    @@SYS5
  482.                 MOV     EAX , [EBP ]
  483.                 LEA     EBP , [EBP +4]
  484. \  &AT-XY 2+ +!
  485.   ?PAGE-UP
  486.                 CALL    @@?PAGE-UP
  487. ;
  488.                 RET
  489.  
  490. : DRAW_LINS
  491.  
  492. 59EF84  A0 EF 59 00  00 09 44 52  41 57 5F 4C  49 4E 53 0F  ïY...DRAW_LINS.
  493. 59EF94  EF 59 00 00  00 00 00 00  00 00 00 00 ïY..........
  494.  
  495.         ['] PAGE-UP >BODY @
  496.                 MOV     [EBP -4], EAX
  497.                 MOV     EAX , $59EE30
  498.                 MOV     EAX , [EAX +5]
  499.                 MOV     [EBP -8], EAX
  500.                 MOV     EAX , $59D240
  501.         ['] NOOP TO PAGE-UP
  502.                 LEA     EBP , [EBP -8]
  503.                 CALL    [OFFSET PAGE-UP]
  504.         AT-XY?
  505.                 CALL    @@AT-XY?
  506.         0 0 AT-XY
  507.                 MOV     [EBP -4], EAX
  508.                 MOV     [EBP -8], $0
  509.                 XOR     EAX , EAX
  510.                 LEA     EBP , [EBP -8]
  511.                 CALL    @@AT-XY
  512.         SCR_BUF SCR_WIDTH SCR_HEIGHT * BOUNDS
  513.                 CALL    @@SCR_BUF
  514.                 CALL    @@SCR_WIDTH
  515.                 CALL    @@SCR_HEIGHT
  516.                 IMUL    [EBP ]
  517.                 ADD     EAX , [EBP +4]
  518.                 MOV     EDX , [EBP +4]
  519.                 MOV     [EBP +4], EAX
  520.                 MOV     EAX , EDX
  521.                 MOV     EDX , $80000000
  522.         DO I SCR_WIDTH SCR_TYPE \ SCR_CR
  523.                 SUB     EDX , [EBP +4]
  524.                 LEA     EBX , [EDX ][EAX ]
  525.                 MOV     EAX , [EBP +8]
  526.                 LEA     EBP , [EBP +12]
  527.                 PUSH    , $59F037
  528.                 PUSH    EDX
  529.                 PUSH    EBX
  530.                 XCHG     EAX, EAX
  531.                 XCHG     EAX, EAX
  532.                 XCHG     EAX, EAX
  533.                 MOV     [EBP -4]EAX
  534.                 MOV     EAX , [ESP ]
  535.                 SUB     EAX , [ESP +4]
  536.                 LEA     EBP , [EBP -4]
  537.                 CALL    @@SCR_WIDTH
  538.                 CALL    @@SCR_TYPE
  539.  SCR_WIDTH
  540.                 CALL    @@SCR_WIDTH
  541.         +LOOP
  542.                 ADD     [ESP ], EAX
  543.                 MOV     EAX , [EBP ]
  544.                 LEA     EBP , [EBP +4]
  545.                 JNO     [OFFSET DRAW_LINS]
  546.                 LEA     ESP , [ESP +12]
  547.         AT-XY
  548.                 CALL    @@AT-XY
  549.         TO PAGE-UP ;
  550.                 CALL    [OFFSET PAGE-UP]
  551.                 RET
  552.  
  553. : _PAGE-UP
  554.  
  555. 59F042  60 F0 59 00  00 08 5F 50  41 47 45 2D  55 50 89 EF `ðY..._PAGE-UP‰ï
  556. 59F052  59 00 00 00  00 00 00 00  00 00 00 00  00 00 Y.............
  557.  
  558. draw_window __PAGE-UP
  559.                 CALL    @@draw_window
  560.                 CALL    @@__PAGE-UP
  561. DRAW_LINS
  562.                 CALL    @@DRAW_LINS
  563. ;
  564.                 RET
  565.  
  566. ' _PAGE-UP TO PAGE-UP
  567.  
  568. CREATE LAST_CUR 0 , 0 ,
  569.  
  570. 59F070  83 F0 59 00  00 08 4C 41  53 54 5F 43  55 52 47 F0 ƒðY...LAST_CURGð
  571. 59F080  59 00 00 E8  94 2F FA FF  00 00 00 00  00 00 00 00 Y..è”/úÿ........
  572.  
  573.  
  574. : CORSOR_DROW
  575.  
  576. 59F090  B0 F0 59 00  00 0B 43 4F  52 53 4F 52  5F 44 52 4F °ðY...CORSOR_DRO
  577. 59F0A0  57 75 F0 59  00 00 00 00  00 00 00 00  00 00 00 00 WuðY............
  578.  
  579.   0  LAST_CUR 2@ 38 SYS4 DROP
  580.                 MOV     [EBP -4], EAX
  581.                 XOR     EAX , EAX
  582.                 LEA     EBP , [EBP -4]
  583.                 CALL    @@LAST_CUR
  584.                 MOV     EDX , [EAX +4]
  585.                 MOV     [EBP -4], EDX
  586.                 MOV     EAX , [EAX ]
  587.                 MOV     [EBP -8], EAX
  588.                 MOV     EAX , $26
  589.                 MOV     EDX , [EBP ]
  590.                 MOV     ECX , [EBP -4]
  591.                 MOV     EBX , [EBP -8]
  592.                 INT     $40
  593.                 MOV     EAX , $FF00FF
  594.                 LEA     EBP , [EBP +4]
  595.   0x00FF00FF
  596.   &AT-XY        W@ 0xD * 0x21   + DUP     16 LSHIFT +
  597.                 CALL    @@&AT-XY
  598.                 MOVZX   EAX , WORD PTR [EAX ]
  599.                 MOV     [EBP -4], EAX
  600.                 MOV     EAX , $D
  601.                 IMUL    [EBP -4]
  602.                 MOV     [EBP -4], EAX
  603.                 MOV     EAX , $21
  604.                 ADD     EAX , [EBP -4]
  605.                 MOV     [EBP -4], EAX
  606.                 MOV     [EBP -8], EAX
  607.                 MOV     EAX , $10
  608.                 MOV     ECX , EAX
  609.                 MOV     EAX , [EBP -8]
  610.                 SHL     EAX , CL
  611.                 ADD     EAX , [EBP -4]
  612.   &AT-XY 2+     W@ 0x6 * 6      + DUP 6 + 16 LSHIFT +
  613.                 CALL    @@&AT-XY
  614.                 MOVZX   EAX , WORD PTR [EAX +2]
  615.                 MOV     [EBP -4], EAX
  616.                 MOV     EAX , $6
  617.                 IMUL    [EBP -4]
  618.                 MOV     [EBP -4], EAX
  619.                 MOV     EAX , $6
  620.                 ADD     EAX , [EBP -4]
  621.                 MOV     [EBP -4], EAX
  622.                 LEA     EAX , [EAX +6]
  623.                 MOV     [EBP -8], EAX
  624.                 MOV     EAX , $10
  625.                 MOV     ECX , EAX
  626.                 MOV     EAX , [EBP -8]
  627.                 SHL     EAX , CL
  628.                 ADD     EAX , [EBP -4]
  629.  2DUP LAST_CUR 2!
  630.                 MOV     EDX , [EBP ]
  631.                 MOV     [EBP -4], EAX
  632.                 MOV     [EBP -8], EDX
  633.                 LEA     EBP , [EBP -8]
  634.                 CALL    @@LAST_CUR
  635.                 CALL    @@2!
  636.   38 SYS4 DROP
  637.                 MOV     [EBP -4], EAX
  638.                 MOV     EAX , $26
  639.                 MOV     EDX , [EBP +4]
  640.                 MOV     ECX , [EBP ]
  641.                 MOV     EBX , [EBP -4]
  642.                 INT     $40
  643.                 MOV     EAX , [EBP +8]
  644.                 LEA     EBP , [EBP +12]
  645. ;
  646.                 RET
  647. : REDRAW
  648.  
  649. 59F17A  90 F1 59 00  00 06 52 45  44 52 41 57  95 F0 59 00 ñY...REDRAW•ðY.
  650. 59F18A  00 00 00 00  00 00 ......
  651.  
  652.         draw_window
  653.                 CALL    @@draw_window
  654.         DRAW_LINS CORSOR_DROW ;
  655.                 CALL    @@DRAW_LINS
  656.                 CALL    @@CORSOR_DROW
  657.                 RET
  658.  
  659. : EVENT-CASE
  660.  
  661. 59F1A0  C0 F1 59 00  00 0A 45 56  45 4E 54 2D  43 41 53 45 ÀñY...EVENT-CASE
  662. 59F1B0  7F F1 59 00  00 00 00 00  00 00 00 00  00 00 00 00 ñY.............
  663.  
  664.      11 SYS1
  665.                 MOV     [EBP -4], EAX
  666.                 MOV     EAX , $B
  667.                 INT     $40
  668.                 MOV     [EBP -8], EAX
  669.         DUP     1 = IF DROP REDRAW      EXIT    THEN
  670.                 CMP     EAX , $1
  671.                 MOV     EAX , [EBP -8]
  672.                 LEA     EBP , [EBP -4]
  673.                 JNE     [OFFSET EVENT-CASE]
  674.                 MOV     EAX , [EBP ]
  675.                 LEA     EBP , [EBP +4]
  676.                 CALL    @@REDRAW
  677.                 RET
  678.         DUP     2 = IF DROP 2 SYS1 8 RSHIFT &KEY C! EXIT        THEN
  679. @59F1E6:                MOV     [EBP -4], EAX  
  680.                 CMP     EAX , $2
  681.                 MOV     EAX , [EBP -4]
  682.                 JNE     [OFFSET EVENT-CASE]
  683.                 MOV     EAX , $2
  684.                 INT     $40
  685.                 MOV     [EBP -4], EAX
  686.                 MOV     EAX , $8
  687.                 MOV     ECX , EAX
  688.                 MOV     EAX , [EBP -4]
  689.                 SHR     EAX , CL
  690.                 CALL    @@&KEY
  691.                 MOV     EDX , [EBP ]
  692.                 MOV     [EAX ], DL
  693.                 MOV     EAX , [EBP +4]
  694.                 LEA     EBP , [EBP +8]
  695.                 RET
  696.                 3 = IF -1 SYS1  EXIT    THEN ;
  697. @59F21A:                CMP     EAX , $3
  698.                 MOV     EAX , [EBP ]
  699.                 LEA     EBP , [EBP +4]
  700.                 JNE     [OFFSET EVENT-CASE]
  701.                 MOV     [EBP -4], EAX
  702.                 MOV     EAX , $FFFFFFFF
  703.                 INT     $40
  704.                 LEA     EBP , [EBP -4]
  705.                 RET
  706. @59F235:                RET
  707.  
  708.  
  709. 0
  710.   CELL  FIELD .CODE
  711.  
  712. 59F236  50 F2 59 00  00 05 2E 43  4F 44 45 A5  F1 59 00 00 PòY....CODE¥ñY..
  713. 59F246  00 00 00 00  00 00 00 00  00 00 C3 ..........Ã
  714.  
  715. 2 CELLS FIELD .FIRST \ ¯®§¨æ¨ï ¢ ä ©«¥ (¢ ¡ ©â å)
  716.  
  717. 59F251  70 F2 59 00  00 06 2E 46  49 52 53 54  3B F2 59 00 pòY....FIRST;òY.
  718. 59F261  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 89 ...............‰
  719. 59F271  45 FC B8 04  00 00 00 03  45 FC C3 Eü¸.....EüÃ
  720.  
  721.   CELL  FIELD .SIZE  \ ᪮«ìª® ¡ ©â R/W
  722.  
  723. 59F27C  90 F2 59 00  00 05 2E 53  49 5A 45 56  F2 59 00 00 òY....SIZEVòY..
  724. 59F28C  00 00 00 00  89 45 FC B8  0C 00 00 00  03 45 FC C3 ....‰Eü¸.....EüÃ
  725.  
  726.   CELL  FIELD .DATA  \ 㪠§ â¥«ì ­  ¤ ­­ë¥
  727.  
  728. 59F29C  B0 F2 59 00  00 05 2E 44  41 54 41 81  F2 59 00 00 °òY....DATAòY..
  729. 59F2AC  00 00 00 00  89 45 FC B8  10 00 00 00  03 45 FC C3 ....‰Eü¸.....EüÃ
  730.  
  731.   222   FIELD .NAME  \ ASCIIZ-¨¬ï ä ©« 
  732.  
  733. 59F2BC  D0 F2 59 00  00 05 2E 4E  41 4D 45 A1  F2 59 00 00 ÐòY....NAME¡òY..
  734. 59F2CC  00 00 00 00  89 45 FC B8  14 00 00 00  03 45 FC C3 ....‰Eü¸.....EüÃ
  735.  
  736. CONSTANT FILE_STR
  737.  
  738. 59F2DC  F0 F2 59 00  00 08 46 49  4C 45 5F 53  54 52 C1 F2 ðòY...FILE_STRÁò
  739. 59F2EC  59 00 00 00  E8 47 2D FA  FF F2 00 00  00 Y...èG-úÿò...
  740.  
  741.  
  742. : WINDOW
  743.  
  744. 59F2F9  10 F3 59 00  00 06 57 49  4E 44 4F 57  E1 F2 59 00 .óY...WINDOWáòY.
  745. 59F309  00 00 00 00  00 00 00 .......
  746.  
  747.  draw_window CC_LINES ;
  748.                 CALL    @@draw_window
  749.                 CALL    @@CC_LINES
  750.                 RET
  751.  
  752. ZZ=D4