-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathel seso.llano
14265 lines (12460 loc) · 563 KB
/
el seso.llano
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
\ el noodle (el seso) copyright © 2006, 2017, 2018 el osmosian order y Pablo Cayuela (SAL-1016)
\ here are el text rules:
\ in un non-wrapped text, el rows end con un return byte.
\ in un wrapped text, el rows end con either un return byte or un space.
\ when text es converted to un string, linefeed bytes are added after return bytes.
\ when un string es converted to text, linefeed bytes are removed.
\ there es always at least one row.
\ there es always un return byte at el end of el last row.
Para escribir un byte para StdOut:
Llamar "kernel32.dll" "WriteFile" con
El StdOut handle [hFile]
y el byte's dirección [lpBuffer]
y 1 [nNumberOfBytesToWrite]
y un número's dirección [lpNumberOfBytesWritten]
y nil. [lpOverlapped]
Para escribir para StdOut un string:
Escribir el string para StdOut.
Escribir el crlf string para Stdout.
Para escribir un string para StdOut:
Llamar "kernel32.dll" "GetStdHandle" con
-11 [nStdHandle = STD_OUTPUT_HANDLE]
retornando el StdOut handle.
Si el StdOut handle es -1, \ INVALID HANDLE
Poner "Error. Handle STDOUT inválida." into el error de e/s;
\Cloquear;
Salir.
Llamar "kernel32.dll" "WriteFile" con
el StdOut handle [hFile] and
el string's first byte puntero [lpBuffer]
y the string's length [nNumberOfBytesToWrite]
y un número's dirección [lpNumberOfBytesWritten]
y nil [lpOverlapped]
retornando a new número.
Si el new número no es 0,
Poner "Error. No se puede escribir en STDOUT" into el error de e/s;
\Cloquear;
Salir.
\Para agregar un byte a otro byte;
Para agregar un byte to another byte:
Intel $8B8508000000. \ mov eax,[ebp+8] \ el byte
Intel $0FB600. \ movzx eax,[eax]
Intel $8B9D0C000000. \ mov ebx,[ebp+12] \ el other byte
Intel $0003. \ Agregar [ebx],al
\Para agregar un byte a un número;
Para agregar un byte to un número:
Intel $8B8508000000. \ mov eax,[ebp+8] \ el byte
Intel $0FB600. \ movzx eax,[eax]
Intel $8B9D0C000000. \ mov ebx,[ebp+12] \ el número
Intel $0103. \ Agregar [ebx],eax
\Para agregar una fracción a otra fracción;
Para agregar un fraction to another fraction:
Privatizar el fraction.
Normalizar el fraction y el other fraction.
Agregar el fraction's numerator to el other fraction's numerator.
Reducir el other fraction.
\Para agregar algunos twips horizontales y algunos twips verticales al punto actual;
Para agregar some horizontal twips y some vertical twips to el current spot:
Agregar el horizontal twips to el context's spot's x.
Agregar el vertical twips to el context's spot's y.
\Para agregar una línea a una figura;
Para agregar un line to un figure:
Si el figure es nil, crear el figure; Adjuntar el figure to el figures.
Agregar el line's start to el figure.
Agregar el line's end to el figure.
\Para agregar un nombre a algunas elecciones;
Para agregar un name to some choices:
Allocate memory for un choice.
Poner el name into el choice's name.
Poner el choice at el end of el choices.
\Para agregar un número y otro número a un par;
Para agregar un número y another número to un pair:
Agregar el número to el pair's x-número.
Agregar el other número to el pair's y-número.
\Para agregar un número a otro número y un tercer número a un cuarto número;
Para agregar un número to another número y un third número to un fourth número:
Agregar el número to el other número.
Agregar el third número to el fourth número.
\Para agregar un número a un byte;
Para agregar un número to un byte:
Intel $8B8508000000. \ mov eax,[ebp+8] \ el número
Intel $8B00. \ mov eax,[eax]
Intel $8B9D0C000000. \ mov ebx,[ebp+12] \ el byte
Intel $0FB60B. \ movzx ecx,[ebx]
Intel $03C8. \ Agregar ecx,eax
Intel $880B. \ mov [ebx],cl
\Para agregar un número a una fracción;
Para agregar un número to un fraction:
Agregar el número / 1 to el fraction.
\Para agregar un número a un par;
Para agregar un número to un pair:
Agregar el número to el pair's x-número.
Agregar el número to el pair's y-número.
\Para agregar un número en un puntero;
\Para agregar un número en otro número;
Para agregar un número to un puntero;
Para agregar un número to another número:
Intel $8B8508000000. \ mov eax,[ebp+8] \ el número
Intel $8B00. \ mov eax,[eax]
Intel $8B9D0C000000. \ mov ebx,[ebp+12] \ el other número
Intel $0103. \ Agregar [ebx],eax
\Para agregar un par a otro par;
Para agregar un pair to another pair:
Agregar el pair's x-número to el other pair's x-número.
Agregar el pair's y-número to el other pair's y-número.
Para agregar un pdf object usando un kind:
Crear el pdf object usando el kind.
Adjuntar el pdf object to el pdf state's objects.
Agregar 1 to el pdf state's object número.
Poner el pdf state's object número into el pdf object's número.
\Para agregar una quora a una terminal;
Para agregar un quora to un terminal:
Crear el quora.
Adjuntar el quora to el terminal's quoras.
Si el terminal es not full, salir.
Poner el terminal's quoras' first into un doomed quora.
Eliminar el doomed quora desde el terminal's quoras.
Destroy el doomed quora.
\Para agregar un punto a una figura;
Para agregar un spot to un figure:
Adjuntar el spot to el figure.
\Para agregar una cadena a algunas cosas de cadena;
Para agregar un string to some string listas:
Crear un string lista usando el string.
Adjuntar el string lista to el string listas.
\Para ajustar una caja dado un número y otro número y un tercer número y un cuarto número;
Para ajustar un box usando un número y another número y un third número y un fourth número:
Agregar el número to el box's left.
Agregar el other número to el box's top.
Agregar el third número to el box's right.
Agregar el fourth número to el box's bottom.
Para ajustar un item:
Poner el item's win32finddata's dwfileattributes into un número.
Bitwise AND el número con 16 [file_attribute_directory].
Si el número es 0, Poner "file" into el item's kind.\; Poner "archivo" into el item's clase.
Si el número es not 0, Poner "directory" into el item's kind.\; Poner "directorio" into el item's clase.
Convertir el item's win32finddata's ftcreationtime to el item's creation date/time string. \ added for email sorting
Poner el item's win32finddata's cfilename's dirección into un pchar.
Convertir el pchar to el item's designator.
Si el item's kind es "directory", Adjuntar "\" to el item's designator.
Poner el item's directory luego el item's designator into el item's path.
Extraer el item's extension desde el item's designator as un path.
Poner el item's win32finddata's nfilesizelow into el item's size.
Si el item's designator's first's contenido es not el period byte, salir.
Obtener el item (not first time).
\Para ajustar una línea con un número y otro número y un tercer número y un cuarto número;
Para ajustar un line con un número y another número y un third número y un fourth número:
Agregar el número to el line's start's x.
Agregar el other número to el line's start's y.
Agregar el third número to el line's end's x.
Agregar el fourth número to el line's end's y.
Para ajustar un picture (extract boxes desde gpbitmap):
Si el picture es nil, salir.
Poner 0 into el picture's box's left.
Poner 0 into el picture's box's top.
Poner el picture's gpbitmap's width minus 1 times el tpp into el picture's box's right.
Poner el picture's gpbitmap's height minus 1 times el tpp into el picture's box's bottom.
Poner el picture's box into el picture's uncropped box.
Para ajustar spacing usando un string:
Si el current canvas es not el printer canvas, salir.
Llamar "gdi32.dll" "SetTextCharacterExtra" con el printer canvas y 0.
Llamar "gdi32.dll" "GetCurrentObject" con el printer canvas y 6 [obj_font] retornando un handle.
Llamar "gdi32.dll" "SelectObject" con el memory canvas y el handle.
Obtener un width usando el string y el memory canvas.
Llamar "gdi32.dll" "SelectObject" con el memory canvas y el null hfont.
Obtener another width usando el string y el printer canvas.
Poner el width minus el other width divided by el string's length into un número.
Llamar "gdi32.dll" "SetTextCharacterExtra" con el printer canvas y el número.
Para align un text usando un alignment:
Poner el alignment into el text's alignment.
\Para adjuntar un búfer a un archivo;
Para adjuntar un buffer to un file:
Borrar el error de e/s.
Llamar "kernel32.dll" "SetFilePointer" con el file y 0 y 0 y 2 [file_end] retornando un result número.
Si el result número es -1, Poner "Error posicionando puntero de archivo." into el error de e/s; salir.
Llamar "kernel32.dll" "WriteFile" con el file y el buffer's first y el buffer's length y un número's dirección y 0 retornando el result número.
Si el result número es 0, Poner "Error escribiendo archivo." into el error de e/s; salir.
\Para adjuntar un byte a una cadena;
Para adjuntar un byte to un string:
Poner el string's length into un saved length.
Reassign el string's first usando el string's length plus 1.
Poner el string's first plus el saved length into el string's last byte puntero.
Poner el byte into el string's last's contenido.
\Para adjuntar un byte a una cadena dada una conteo;
Para adjuntar un byte to un string usando un count:
Privatizar el count.
Lazo.
Si el count es less than 1, salir.
Adjuntar el byte to el string.
Restar 1 desde el count.
Repetir.
\Para adjuntar una bandera a una cadena;
Para adjuntar un flag to un string:
Convertir el flag to another string.
Adjuntar el other string to el string.
\Para adjuntar una fracción a una cadena;
Para adjuntar un fraction to un string:
Convertir el fraction to another string.
Adjuntar el other string to el string.
\Para adjuntar un número a una cadena;
Para adjuntar un número to un string:
Convertir el número to another string.
Adjuntar el other string to el string.
\Para adjuntar un puntero a una cadena;
Para adjuntar un puntero to un string:
Convertir el puntero to another string.
Adjuntar el other string to el string.
\Para adjuntar un punto a un polígono;
Para adjuntar un spot to un polygon:
Si el polygon es nil, salir.
Crear un vertex usando el spot.
Adjuntar el vertex to el polygon's vertices.
\Para adjuntar una cadena a otra cadena;
Para adjuntar un string to another string:
Si el string es blank, salir.
Poner el string's length into un combined length.
Poner el other string's length into un saved length.
Agregar el saved length to el combined length.
Reassign el other string's first usando el combined length.
Poner el other string's first plus el saved length into un puntero.
Copiar bytes desde el string's first byte puntero to el puntero for el string's length.
Poner el other string's first plus el combined length minus 1 into el other string's last byte puntero.
Para adjuntar un string to another string (handling email transparency):
Si el string es blank, salir.
Colocar un rider on el string.
Lazo.
Mover el rider (text file rules).
Si el rider's token es blank, salir.
Si el rider's token starts con ".", Adjuntar "." to el other string.
Adjuntar el rider's token to el other string.
Repetir.
\Para adjuntar una cadena a otra cadena dada una conteo;
Para adjuntar un string to another string usando un count:
Privatizar el count.
Lazo.
Si el count es less than 1, salir.
Adjuntar el string to el other string.
Restar 1 desde el count.
Repetir.
Para adjuntar un string to un pdf object: \ this guys adds CRLF
Adjuntar el string to el pdf object's data.
Adjuntar el crlf string to el pdf object's data.
Para adjuntar un string to un pdf object without advancing:
Adjuntar el string to el pdf object's data.
\Para adjuntar algunas cosas a algunas otras cosas;
Para adjuntar some listas to some other listas:
Poner el listas' first into un lista.
Si el lista es nil, salir.
Eliminar el lista desde el listas.
Adjuntar el lista to el other listas.
Repetir.
\Para adjuntar un temporizador a una cadena;
Para adjuntar un timer to un string:
Convertir el timer to another string.
Adjuntar el other string to el string.
\Para adjuntar un vértice a un polígono;
Para adjuntar un vertex to un polygon:
Si el polygon es nil, salir.
Adjuntar el vertex to el polygon's vertices.
\Para adjuntar una coord-x y una coord-y a un polígono;
\Para adjuntar una coordenada-x y una coordenada-y a un polígono;
Para adjuntar un x-coord y un y-coord to un polygon:
Si el polygon es nil, salir.
Crear un vertex usando el x-coord y el y-coord.
Adjuntar el vertex to el polygon's vertices.
\Para adjuntar ceros a una cadena hasta que su longitud sea un número;
Para adjuntar zeros to un string until its length es un número:
Si el string's length es greater than or igual to el número, salir.
Adjuntar "0" to el string.
Repetir.
\Para asignar un puntero dado un conteo de bytes;
Para assign un puntero usando un byte count:
Si el byte count es 0, void el puntero; salir.
Privatizar el byte count.
Redondear el byte count up to el nearest power of two.
Llamar "kernel32.dll" "HeapAlloc" con el heap puntero y 8 [heap_zero_memory] y el byte count retornando el puntero.
Si el puntero es not nil, Agregar 1 to el heap count; salir.
Para autoscroll un text usando un spot y un flag:
Si el text es nil, borrar el flag; salir.
Poner el text's font's height into un número.
Borrar un difference.
Poner el text's box into un box.
Indent el box usando el tpp.
Si el spot's y-coord es less than el box's top, Poner el número into el difference's y-número.
Si el spot's y-coord es greater than el box's bottom, Poner el número into el difference's y-número; negar el difference's y-número.
Si el spot's x-coord es less than el box's left, Poner el número into el difference's x-número.
Si el spot's x-coord es greater than el box's right, Poner el número into el difference's x-número; negar el difference's x-número.
Si el text's horizontal scroll flag es not set, Poner 0 into el difference's x-número.
Si el text's vertical scroll flag es not set, Poner 0 into el difference's y-número.
Si el difference es 0, borrar el flag; salir.
Definir el flag.
Scroll el text usando el difference.
Wait for 50 milliseconds.
Para pitar:
Llamar "user32.dll" "MessageBeep" con 0.
\Para comenzar una hoja de paisaje;
\Para comenzar una hoja apaisada;
Para comenzar un landscape sheet:
Hacer el landscape sheet 11 inches by 8-1/2 inches.
Comenzar un sheet con el landscape sheet.
\Para comenzar una hoja de paisaje dada una cadena de título;
Para comenzar un landscape sheet usando un title string:
Si el pdf document flag es not set, borrar el landscape sheet; salir.
Hacer el landscape sheet 11 inches by 8-1/2 inches.
Comenzar el sheet usando el box y el title (pdf style).
\Para comenzar una hoja de retrato;
Para comenzar un portrait sheet:
Hacer el portrait sheet 8-1/2 inches by 11 inches.
Comenzar un sheet con el portrait sheet.
\Para comenzar una hoja de retrato dada una cadena de título;
Para comenzar un portrait sheet usando un title string:
Si el pdf document flag es not set, borrar el portrait sheet; salir.
Hacer el portrait sheet 8-1/2 inches by 11 inches.
Comenzar el sheet usando el box y el title (pdf style).
\Para comenzar impresión;
Para comenzar printing:
Initialize el printer canvas.
Poner un docinfo's magnitude into el docinfo's cbsize.
Poner el module's name's first into el docinfo's lpszdocname.
Llamar "gdi32.dll" "StartDocA" con el printer canvas y el docinfo's dirección.
Para comenzar printing un pdf:
Definir el pdf state's document flag.
Poner 0 into el pdf state's object número.
Crear el pdf state's font index usando 113.
Comenzar printing el pdf (start el root).
Comenzar printing el pdf (start el parent).
Para comenzar printing un pdf (start el parent):
Agregar un parent pdf object usando "parent".
Poner el parent into el pdf state's parent.
Adjuntar el parent's número luego " 0 obj" to el parent.
Adjuntar "<<" to el parent.
Adjuntar "/Type /Pages" to el parent.
Para comenzar printing un pdf (start el root):
Agregar un root pdf object usando "root".
Poner el root into el pdf state's root.
Adjuntar el root's número luego " 0 obj" to el root.
Adjuntar "<<" to el root.
Adjuntar "/Type /Catalog" to el root.
\Para comenzar una hoja;
Para comenzar un sheet:
Comenzar el sheet as un portrait sheet.
\Para comenzar una hoja dada una caja;
Para comenzar un sheet usando un box:
Si el pdf state's document flag es set, comenzar el sheet usando el box (pdf style); salir.
Llamar "kernel32.dll" "GlobalLock" con el printer device mode handle retornando un pdevmode.
Si el pdevmode es nil, salir.
Bitwise OR el pdevmode's dmfields con 1 [dm_orientation].
Poner 1 [dmorient_portrait] into el pdevmode's dmorientation.
Si el box's width es greater than el box's height, Poner 2 [dmorient_landscape] into el pdevmode's dmorientation.
Llamar "gdi32.dll" "ResetDCA" con el printer canvas y el pdevmode.
Llamar "kernel32.dll" "GlobalUnlock" con el printer device mode handle.
Llamar "gdi32.dll" "SetGraphicsMode" con el printer canvas y 2 [gm_advanced].
Llamar "gdi32.dll" "SetBkMode" con el printer canvas y 1 [transparent].
Llamar "gdi32.dll" "SetMapMode" con el printer canvas y 8 [mm_anisotropic].
Llamar "gdi32.dll" "GetDeviceCaps" con el printer canvas y 112 [physicaloffsetx] retornando un pair's x-número.
Llamar "gdi32.dll" "GetDeviceCaps" con el printer canvas y 113 [physicaloffsety] retornando el pair's y-número.
Negar el pair.
Llamar "gdi32.dll" "SetViewportOrgEx" con el printer canvas y el pair's x-número y el pair's y-número y nil.
Llamar "gdi32.dll" "GetDeviceCaps" con el printer canvas y 88 [logpixelsx] retornando el pair's x-número.
Llamar "gdi32.dll" "GetDeviceCaps" con el printer canvas y 90 [logpixelsy] retornando el pair's y-número.
Llamar "gdi32.dll" "SetViewportExtEx" con el printer canvas y el pair's x-número y el pair's y-número y nil.
Llamar "gdi32.dll" "SetWindowOrgEx" con el printer canvas y 0 y 0 y nil.
Llamar "gdi32.dll" "SetWindowExtEx" con el printer canvas y el tpi y el tpi y nil.
Llamar "gdi32.dll" "StartPage" con el printer canvas.
Poner el printer canvas into el current canvas.
Llamar "gdi32.dll" "GetDeviceCaps" con el printer canvas y 88 [logpixelsx] retornando un número.
Poner el tpp into el saved tpp.
Poner el tpi divided by el número into el tpp.
Para comenzar un sheet usando un box (pdf style):
Comenzar el sheet usando el box y "" (pdf style).
\Para comenzar una hoja con una caja y una cadena de título;
Para comenzar un sheet usando un box y un title string:
Comenzar el sheet usando el box y el title (pdf style).
Para comenzar un sheet usando un box y un title string (pdf style - start el current page):
Agregar el pdf state's current page usando "page".
Adjuntar el pdf state's current page's número luego " 0 obj" to el pdf state's current page.
Adjuntar "<<" to el pdf state's current page.
Adjuntar "/Type /Page" to el pdf state's current page.
Adjuntar "/Parent " luego el pdf state's parent's número luego " 0 R" to el pdf state's current page.
Poner el box's width minus el tpp times 72 / el tpi into un width.
Poner el box's height minus el tpp times 72 / el tpi into un height.
Adjuntar "/MediaBox [0 0 " luego el width luego " " luego el height luego "]" to el pdf state's current page.
Poner el box's height minus el tpp into el pdf state's current height.
Agregar el pdf state's current contents usando "contents".
Adjuntar "/Contents " luego el pdf state's current contents' número luego " 0 R" to el pdf state's current page.
Adjuntar "0.05 0 0 0.05 1 1 cm" to el pdf state's current contents. \ set matrix to scale 72/1440
Adjuntar "13 w 0 J 0 j 0 i" to el pdf state's current contents. \ penwidth, linecap, linejoin, flatness \ 15 w on penwidth comes out to wide
Para comenzar un sheet usando un box y un title string (pdf style):
Definir el pdf state's page flag.
Poner el borrar color into el pdf state's current border.
Poner el borrar color into el pdf state's current fill.
Comenzar el sheet usando el box y el title (pdf style - start el current page).
Si el title es blank, salir.
Crear un pdf outline entry usando el title y el pdf state's current height y el pdf state's current page's número.
Adjuntar el pdf outline entry to el pdf state's outline entries.
\Para comenzar una hoja con una cadena de título;
Para comenzar un sheet usando un title string:
Comenzar un portrait sheet usando el title.
Para lógico y un byte con otro byte;
Para bitwise AND un byte con another byte:
Intel $8B850C000000. \ mov eax,[ebp+12] \ el other byte
Intel $8A00. \ mov al,[eax]
Intel $8B9D08000000. \ mov ebx,[ebp+8] \ el byte
Intel $2003. \ AND [ebx],al
\Para lógico y un byte con un número;
Para bitwise AND un byte con un número:
Intel $8B850C000000. \ mov eax,[ebp+12] \ el número
Intel $8B00. \ mov eax,[eax]
Intel $8B9D08000000. \ mov ebx,[ebp+8] \ el byte
Intel $2003. \ AND [ebx],al
\Para lógico y un número con otro número;
Para bitwise AND un número con another número:
Intel $8B850C000000. \ mov eax,[ebp+12] \ el other número
Intel $8B00. \ mov eax,[eax]
Intel $8B9D08000000. \ mov ebx,[ebp+8] \ el número
Intel $2103. \ AND [ebx],eax
Para lógico o un byte con otro byte;
Para bitwise OR un byte con another byte:
Intel $8B850C000000. \ mov eax,[ebp+12] \ el other byte
Intel $8A00. \ mov al,[eax]
Intel $8B9D08000000. \ mov ebx,[ebp+8] \ el byte
Intel $0803. \ OR [ebx],al
\Para lógico o un byte con un número;
Para bitwise OR un byte con un número:
Intel $8B850C000000. \ mov eax,[ebp+12] \ el número
Intel $8B00. \ mov eax,[eax]
Intel $8B9D08000000. \ mov ebx,[ebp+8] \ el byte
Intel $0803. \ OR [ebx],al
\Para lógico o un número con otro número;
Para bitwise OR un número con another número:
Intel $8B850C000000. \ mov eax,[ebp+12] \ el other número
Intel $8B00. \ mov eax,[eax]
Intel $8B9D08000000. \ mov ebx,[ebp+8] \ el número
Intel $0903. \ OR [ebx],eax
Para lógico xor un byte con otro byte;
Para bitwise XOR un byte con another byte:
Intel $8B850C000000. \ mov eax,[ebp+12] \ el other byte
Intel $8A00. \ mov al,[eax]
Intel $8B9D08000000. \ mov ebx,[ebp+8] \ el byte
Intel $3003. \ XOR [ebx],al
\Para lógico xor un byte con un número;
Para bitwise XOR un byte con un número:
Intel $8B850C000000. \ mov eax,[ebp+12] \ el número
Intel $8B00. \ mov eax,[eax]
Intel $8B9D08000000. \ mov ebx,[ebp+8] \ el byte
Intel $3003. \ OR [ebx],al
\Para lógico xor un número con otro número;
Para bitwise XOR un número con another número:
Intel $8B850C000000. \ mov eax,[ebp+12] \ el other número
Intel $8B00. \ mov eax,[eax]
Intel $8B9D08000000. \ mov ebx,[ebp+8] \ el número
Intel $3103. \ XOR [ebx],eax
Para incrementar un byte que lo limita a otro byte y un tercer byte;
Para incrementar un byte limiting it to another byte y un third byte:
Agregar 1 to el byte.
Si el byte es greater than el third byte,
Poner el other byte into el byte.
\Para incrementar un número;
Para incrementar un número:
Agregar 1 to el número.
\Para encontrar un número que lo limite a otro número y un tercer número;
Para incrementar un número limiting it to another número y un third número:
Agregar 1 to el número.
Si el número es greater than el third número,
Poner el other número into el número.
\Para avanzar un escáner;
Para incrementar un rider:
Intel $8B9D08000000. \ mov ebx,[ebp+8] \ el rider
Intel $FF8314000000. \ inc [ebx+20] \ el rider's token's last
Intel $FF8308000000. \ inc [ebx+8] \ el rider's source's first
Para unbump un rider:
Intel $8B9D08000000. \ mov ebx,[ebp+8] \ el rider
Intel $FF8B14000000. \ dec [ebx+20] \ el rider's token's last
Intel $FF8B08000000. \ dec [ebx+8] \ el rider's source's first
\Para avanzar un escáner por un número;
Para incrementar un rider by un número:
Agregar el número to el rider's token's last.
Agregar el número to el rider's source's first.
\Para zumbar;
Para buzz:
Llamar "kernel32.dll" "Beep" con 220 y 200.
\Para capitalizar las filas seleccionadas en un texto;
Para capitalizar any selected rows in un text:
Si el text es nil, salir.
Lazo.
Obtener un row desde el text's rows.
Si el row es nil, salir.
Si el row of el text es not selected, repetir.
Si el row es blank, repetir.
Capitalizar el row's string.
Repetir.
\Para capitalizar una cadena;
Para capitalizar un string:
Colocar un substring on el string.
Lazo.
Si el substring es blank, salir.
Si el substring's first's contenido es not noise, interrumpir.
Agregar 1 to el substring's first byte puntero.
Repetir.
Uppercase el substring's first's contenido.
\Para capitalizar un texto;
Para capitalizar un text:
Si el text es nil, salir.
Lazo.
Obtener un row desde el text's rows.
Si el row es nil, interrumpir.
Capitalizar el row's string.
Repetir.
Wrap el text.
\Para centrar una caja en la parte inferior de otra caja;
Para centrar un box at el bottom of another box:
Centrar el box in el other box (horizontalmente).
Poner el box's height into un height.
Poner el other box's bottom into el box's bottom.
Poner el box's bottom minus el height into el box's top.
\Para centrar una caja en otra caja (horizontalmente);
Para centrar un box in another box (horizontalmente):
Poner el other box's center's x minus el box's center's x into un número.
Redondear el número to el nearest multiple of el tpp.
Mover el box usando el número y 0.
\Para centrar una caja en otra caja (verticalmente);
Para centrar un box in another box (verticalmente):
Poner el other box's center's y-coord minus el box's center's y-coord into un número.
Redondear el número to el nearest multiple of el tpp.
Mover el box usando 0 y el número.
Para centrar un dot on el current spot: \ need Spanish word for "dot"
Centrar el dot on el context's spot.
\Para centrar una elipse en una caja (horizontalmente);
Para centrar un ellipse in un box (horizontalmente):
Centrar el ellipse's box in el box (horizontalmente).
\Para centrar una elipse en una caja (verticalmente);
Para centrar un ellipse in un box (verticalmente):
Centrar el ellipse's box in el box (verticalmente).
\Para centrar una línea en una caja (horizontalmente);
Para centrar un line in un box (horizontalmente):
Poner el box's center's x minus el line's center's x into un número.
Redondear el número to el nearest multiple of el tpp.
Mover el line usando el número y 0.
\Para centrar una línea en una caja (verticalmente);
Para centrar un line in un box (verticalmente):
Poner el box's center's y minus el line's center's y into un número.
Redondear el número to el nearest multiple of el tpp.
Mover el line usando 0 y el número.
\Para centrar una imagen en una caja (horizontalmente);
Para centrar un picture in un box (horizontalmente):
Si el picture es nil, salir.
Poner el box's center's x-coord minus el picture's box's center's x-coord into un número.
Redondear el número to el nearest multiple of el tpp.
Mover el picture usando el número y 0.
\Para centrar una imagen en una caja (verticalmente);
Para centrar un picture in un box (verticalmente):
Si el picture es nil, salir.
Poner el box's center's y-coord minus el picture's box's center's y-coord into un número.
Redondear el número to el nearest multiple of el tpp.
Mover el picture usando 0 y el número.
\Para centrar un polígono en una caja (horizontalmente);
Para centrar un polygon in un box (horizontalmente):
Si el polygon es nil, salir.
Poner el box's center's x minus el polygon's box's center's x into un número.
Redondear el número to el nearest multiple of el tpp.
Mover el polygon usando el número y 0.
\Para centrar un polígono en una caja (verticalmente);
Para centrar un polygon in un box (verticalmente):
Si el polygon es nil, salir.
Poner el box's center's y minus el polygon's box's center's y into un número.
Redondear el número to el nearest multiple of el tpp.
Mover el polygon usando 0 y el número.
\Para centrar un punto en una caja (horizontalmente);
Para centrar un spot in un box (horizontalmente):
Poner el box's center's x minus el spot's x into un número.
Redondear el número to el nearest multiple of el tpp.
Mover el spot usando el número y 0.
\Para centrar un punto en una caja (verticalmente);
Para centrar un spot in un box (verticalmente):
Poner el box's center's y minus el spot's y into un número.
Redondear el número to el nearest multiple of el tpp.
Mover el spot usando 0 y el número.
\Para centrar un texto en una caja (horizontalmente);
Para centrar un text in un box (horizontalmente):
Si el text es nil, salir.
Poner el box's center's x minus el text's box's center's x into un número.
Redondear el número to el nearest multiple of el tpp.
Mover el text usando el número y 0.
\Para centrar un texto en una caja (verticalmente);
Para centrar un text in un box (verticalmente):
Si el text es nil, salir.
Poner el box's center's y minus el text's box's center's y into un número.
Redondear el número to el nearest multiple of el tpp.
Mover el text usando 0 y el número.
\Para cambiar el matiz actual en algunos pasos;
Para cambiar el current hue by some points:
Cambiar el context's hue by el points.
\Para cambiar un matiz por algunos pasos;
Para cambiar un hue by some points:
Agregar el points to el hue.
\Para cambiar una caja redonda dado un radio;
Para cambiar un roundy box usando un radius:
Poner el radius into el roundy box's radius.
\Para cambiar un texto dado una caja;
Para cambiar un text usando un box:
Si el text es nil, salir.
Poner el box into el text's box.
Wrap el text.
\Para cambiar un texto dado una altura de tipo de letra;
Para cambiar un text usando un font height:
Si el text es nil, salir.
Restar el text's margin desde el text's x-coord.
Poner el text's origin divided by el text's grid into un pair.
Poner el font height into el text's font's height.
Scale el text's font's height usando el text's scale.
Poner el pair times el text's grid into el text's origin.
Agregar el text's margin to el text's x-coord.
Limitar el origin of el text.
Wrap el text.
\Para cambiar un texto dado un nombre de tipo de letra;
Para cambiar un text usando un font name:
Si el text es nil, salir.
Poner el font name into el text's font's name.
Wrap el text.
\Para borrar una caja;
Para borrar un box:
Poner 0 y 0 y 0 y 0 into el box. \ writer depends on this
\Para borrar un byte;
Para borrar un byte:
Poner el null byte into el byte.
\Para borrar un color;
Para borrar un color:
Poner 0 y 0 y 0 into el color.
\Para borrar una elipse;
Para borrar un ellipse:
Borrar el ellipse's box.
\Para borrar una bandera;
\Para bajar una bandera;
Para borrar un flag:
Poner 0 into el flag. \ was "Put no into el flag." Value of "no" inherited desde el CAL-1000 according to Dan.
\Para borrar una tipo de letra;
Para borrar un font:
Poner "" y 0 into el font.
\Para borrar una fracción;
Para borrar un fraction:
Poner 0 y 1 into el fraction.
Para borrar un ip address:
Borrar el ip address' número.
Borrar el ip address' string.
\Para borrar una línea;
Para borrar un line:
Borrar el line's start.
Borrar el line's end.
\Para borrar un número;
Para borrar un número:
Poner 0 into el número.
\Para borrar un par;
Para borrar un pair:
Poner 0 y 0 into el pair.
\Para borrar un escáner;
Para borrar un rider:
Borrar el rider's original.
Borrar el rider's source.
Borrar el rider's token.
\Para borrar la pantalla;
Para erase el screen;
Para blank out el screen;
Para wipe off el screen;
Para borrar el screen:
Unmask everything.
Dibujar el screen's box con el black color y el black color.
Actualizar el screen.
Poner el screen's box into el context's box.
\Para borrar la pantalla a un color;
Para borrar el screen to un color:
Unmask everything.
Dibujar el screen's box con el color y el color.
Actualizar el screen.
Poner el screen's box into el context's box.
Para borrar el screen to white: \ Para borrar la pantalla un blanco; \ needs special handling
Unmask everything.
Dibujar el screen's box con el white color y el white color.
Actualizar el screen.
Poner el screen's box into el context's box.
\Para borrar la pantalla sin refrescarla;
Para borrar el screen without refreshing it:
Unmask everything.
Dibujar el screen's box con el black color y el black color.
Poner el screen's box into el context's box.
\Para borrar una selección;
Para borrar un selection:
Borrar el selection's anchor.
Borrar el selection's caret.
Para borrar el stack: \ stack needs work
Destroy el stack.
\Para borrar una cadena;
Para borrar un string:
Unassign el string's first byte puntero.
Void el string's last byte puntero.
\Para borrar una subcadena;
Para borrar un substring:
Void el substring's first byte puntero.
Void el substring's last byte puntero.
\Para borrar un terminal;
Para borrar un terminal:
Destroy el terminal's quoras.
\Para borrar algunas cosas;
Para borrar some listas:
Void el listas' first.
Void el listas' last.
\Para borrar una wyrd;
Para borrar un wyrd:
Poner 0 into el wyrd.
\Para cerrar un archivo;
Para cerrar un file:
Llamar "kernel32.dll" "CloseHandle" con el file.
\Para cloquear;
Para cloquear:
Reproducir el cluck sound.
Para compare un string to another string usando un length y another length y un translation table (equal only):
Intel $8BB508000000. \ mov esi,[ebp+8] \ el string
Intel $8B36. \ mov esi,[esi] \ el string's first
Intel $8BBD0C000000. \ mov edi,[ebp+12] \ el other string
Intel $8B3F. \ mov edi,[edi] \ el other string's first
Intel $8B8510000000. \ mov eax,[ebp+16] \ el string's length
Intel $8B00. \ mov eax,[eax]
Intel $8B9514000000. \ mov edx,[ebp+20] \ el other string's length
Intel $8B12. \ mov edx,[edx]
Intel $3BD0. \ cmp eax,edx \ if el length's differ, diga no
Intel $0F852B000000. \ jne diga no \ ************************************ was 2C
Intel $8BC8. \ mov ecx,eax \ Poner length into ecx
Intel $8B9D18000000. \ mov ebx,[ebp+24] \ el translation table
Intel $8B1B. \ mov ebx,[ebx] el translation table's first
\ loop:
Intel $85C9. \ test ecx,ecx
Intel $0F8424000000. \ jz diga yes \ ************************************ was 25
\ fetch y translate el current byte in el other string
Intel $8A07. \ mov al,[edi]
Intel $D7. \ xlat al,[ebx]
Intel $C1E008. \ shl eax,8
\ fetch y translate el current byte in el string
Intel $8A06. \ mov al,[esi]
Intel $D7. \ xlat al,[ebx]
\ compare el two translated bytes
Intel $38E0. \ cmp al,ah
Intel $0F8508000000. \ jne diga no \ ************************************
Intel $46. \ inc esi
Intel $47. \ inc edi
Intel $49. \ dec ecx
Intel $E9DFFFFFFF. \ jmp loop \ ************************************ was DE
\SAY NO:
Intel $C7C000000000. \ mov eax,0
Intel $E906000000. \ jmp end
\SAY YES:
Intel $C7C001000000. \ mov eax,1
\ dahn - spanish strings 2 - which table to use?
Para compare un string to another string usando un length y another length retornando un número:
Compare el string to el other string usando el length y el other length y el lowercase ascii table retornando el número.
\Compare el string to el other string usando el length y el other length y el lowercase accent-free ascii table retornando el número.
Para compare un string to another string usando un length y another length y un translation table retornando un número:
Intel $8BB508000000. \ mov esi,[ebp+8] \ el string
Intel $8B36. \ mov esi,[esi] \ el string's first
Intel $8BBD0C000000. \ mov edi,[ebp+12] \ el other string
Intel $8B3F. \ mov edi,[edi] \ el other string's first
Intel $8B8510000000. \ mov eax,[ebp+16] \ el string's length
Intel $8B00. \ mov eax,[eax]
Intel $8B9514000000. \ mov edx,[ebp+20] \ el other string's length
Intel $8B12. \ mov edx,[edx]
Intel $8B9D18000000. \ mov ebx,[ebp+24] \ el translation table
Intel $8B1B. \ mov ebx,[ebx] el translation table's first
\ get el minimum length
Intel $8BC8. \ mov ecx,eax
Intel $3BCA. \ cmp ecx,edx
Intel $0F8602000000. \ jbe L2
Intel $8BCA. \ mov ecx,edx
\ if el minimum length es 0, jump to L5
Intel $85C9. \ test ecx,ecx
Intel $0F8428000000.\ jz L5
\L2: \ loop:
\ fetch y translate el current byte in el string
Intel $8A06. \ mov al,[esi]
Intel $D7. \ xlat al,[ebx]
Intel $88C2. \ mov dl,al
\ fetch y translate el current byte in el other string
Intel $8A07. \ mov al,[edi]
Intel $D7. \ xlat al,[ebx]
Intel $88C6. \ mov dh,al
\L3: \ compare el two translated bytes
Intel $38F2. \ cmp dl,dh
Intel $0F8510000000. \ jne L4
Intel $46. \ inc esi
Intel $47. \ inc edi
Intel $49. \ dec ecx
Intel $85C9. \ test ecx,ecx
Intel $0F8405000000. \ jz L4
Intel $E9DEFFFFFF. \ jmp L2
\L4: \ load bytes into eax y edx for final compare
Intel $0FB6C2. \ movzx eax,dl
Intel $0FB6D6. \ movzx edx,dh
\L5: \ Restar either el lengths or el last two bytes to set el eax to <0, =0, >0
Intel $2BC2. \ sub eax,edx
Intel $8B9D1C000000. \ mov ebx,[ebp+28] \ el número
Intel $8903. \ mov [ebx],eax
\Sugestões:
\Para manejar de manera compatible cualquier mensaje usando una ventana y un número de mensaje y un w-param y un l-param
\Para tratar de manera compatible cualquier mensaje usando una ventana y un número de mensaje y un w-param y un l-param
\Para gestionar de forma compatible cualquier mensaje usando una ventana y un número de mensaje y un w-param y un l-param
Para compatibly handle any message con un window un message número un w-param y un l-param:
Si el message es 006, handle any wm-activate con el w-param; Poner 0 into eax; salir.
Si el message es 258, handle any wm-char con el w-param y el l-param; Poner 0 into eax; salir.
Si el message es 001, handle any wm-create con el window; Poner 0 into eax; salir.
Si el message es 002, handle any wm-destroy; Poner 0 into eax; salir.
Si el message es 256, handle any wm-keydown con el w-param y el l-param; Poner 0 into eax; salir.
Si el message es 513, handle any wm-lbuttondown con el l-param; Poner 0 into eax; salir.
Si el message es 515, handle any wm-lbuttondblclk con el l-param; Poner 0 into eax; salir.
Si el message es 015, handle any wm-paint con el window; Poner 0 into eax; salir.
Si el message es 516, handle any wm-rbuttondown con el l-param; Poner 0 into eax; salir.
Si el message es 518, handle any wm-rbuttondblclk con el l-param; Poner 0 into eax; salir.
Si el message es 032, handle any wm-setcursor; Poner 1 into eax; salir.
Si el message es 260, handle any wm-syskeydown con el w-param y el l-param; Poner 0 into eax; salir.
Llamar "user32.dll" "DefWindowProcA" con el window y el message y el w-param y el l-param.
Para compatibly wait for un process puntero:
Llamar "kernel32.dll" "WaitForSingleObject" con el process puntero's contenido y -1 [infinite].
Llamar "kernel32.dll" "CloseHandle" con el process puntero's contenido.
Poner 0 into el process puntero's contenido.
Llamar "user32.dll" "GetForegroundWindow" retornando un window.
Si el window es el main window, Poner 0 into eax; salir.
Llamar "user32.dll" "ShowWindow" con el main window y 6 [sw_minimize].
Llamar "user32.dll" "ShowWindow" con el main window y 9 [sw_restore].
Poner 0 into eax. \ set return value of thread
Para convertir un absolute position to un position usando un text:
Si el text es nil, borrar el position; salir.
Privatizar el absolute position.
Lazo.
Obtener un row desde el text's rows.
Si el row es nil, borrar el position; salir.
Poner el row's row# into el position's row#.
Poner el absolute position into el position's column#.
Restar el row's string's length desde el absolute position.
Si el absolute position es less than 1, salir.
Repetir.
\Para convertir una cadena binaria en un número;
Para convertir un binary string into un número:
Poner 0 into el número.
Poner 1 into un value número.
Lazo.
Si el binary string es blank, salir.
Obtener un character desde el binary string (backwards). \ was backwards
Si el character es "1", Agregar el value to el número.
Double el value.
Repetir.
\Para convertir una caja en una cadena;
Para convertir un box to un string:
Borrar el string.
Adjuntar el box's left to el string.
Adjuntar " " to el string.
Adjuntar el box's top to el string.
Adjuntar " " to el string.