home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / World_Of_Computer_Software-02-385-Vol-1of3.iso / w / wdasm12.zip / HELLO2.ASM < prev    next >
Assembly Source File  |  1992-10-23  |  22KB  |  1,295 lines

  1.         TITLE    WDASM Example Program
  2.         .286
  3.         .MODEL    SMALL
  4.  
  5.         EXTRN        DEFWINDOWPROC:FAR
  6.         EXTRN        GETMESSAGE:FAR
  7.         EXTRN        TRANSLATEMESSAGE:FAR
  8.         EXTRN        FATALEXIT:FAR
  9.         EXTRN        DISPATCHMESSAGE:FAR
  10.         EXTRN        GETVERSION:FAR
  11.         EXTRN        GETDOSENVIRONMENT:FAR
  12.         EXTRN        LOCALALLOC:FAR
  13.         EXTRN        LOCALREALLOC:FAR
  14.         EXTRN        LOCALFREE:FAR
  15.         EXTRN        FATALAPPEXIT:FAR
  16.         EXTRN        LOCALSIZE:FAR
  17.         EXTRN        UPDATEWINDOW:FAR
  18.         EXTRN        GLOBALREALLOC:FAR
  19.         EXTRN        GLOBALSIZE:FAR
  20.         EXTRN        INITAPP:FAR
  21.         EXTRN        POSTQUITMESSAGE:FAR
  22.         EXTRN        LOCKSEGMENT:FAR
  23.         EXTRN        UNLOCKSEGMENT:FAR
  24.         EXTRN        WAITEVENT:FAR
  25.         EXTRN        GETCLIENTRECT:FAR
  26.         EXTRN        GETMODULEFILENAME:FAR
  27.         EXTRN        BEGINPAINT:FAR
  28.         EXTRN        ENDPAINT:FAR
  29.         EXTRN        CREATEWINDOW:FAR
  30.         EXTRN        SHOWWINDOW:FAR
  31.         EXTRN        LOADCURSOR:FAR
  32.         EXTRN        LOADICON:FAR
  33.         EXTRN        REGISTERCLASS:FAR
  34.         EXTRN        INITTASK:FAR
  35.         EXTRN        GETSTOCKOBJECT:FAR
  36.         EXTRN        DRAWTEXT:FAR
  37.         EXTRN        DOS3CALL:FAR
  38.  
  39.         EXTRN        __WINFLAGS:FAR
  40.  
  41.         .CODE
  42.         ADD    BYTE PTR [BX+SI], AL
  43.         ADD    BYTE PTR [BX+SI], AL
  44.         ADD    BYTE PTR [BX+SI], AL
  45.         ADD    BYTE PTR [BX+SI], AL
  46.         ADD    BYTE PTR [BX+SI], AL
  47.         ADD    BYTE PTR [BX+SI], AL
  48.         ADD    BYTE PTR [BX+SI], AL
  49.         ADD    BYTE PTR [BX+SI], AL
  50. L0010H:        ENTER    002EH, 0
  51.         CMP    WORD PTR [BP+10], 0
  52.         JZ     L001DH
  53.         JMP    L0085H
  54. L001DH:        MOV    WORD PTR [BP-46], 0003H
  55.         MOV    WORD PTR [BP-44], OFFSET WndProc
  56.         MOV    WORD PTR [BP-42], SEG WndProc
  57.         MOV    WORD PTR [BP-40], 0000H
  58.         MOV    WORD PTR [BP-38], 0000H
  59.         MOV    AX, WORD PTR [BP+12]
  60.         MOV    WORD PTR [BP-36], AX
  61.         PUSH    0
  62.         PUSH    0
  63.         PUSH    7F00H
  64.         CALL    LOADICON
  65.         MOV    WORD PTR [BP-34], AX
  66.         PUSH    0
  67.         PUSH    0
  68.         PUSH    7F00H
  69.         CALL    LOADCURSOR
  70.         MOV    WORD PTR [BP-32], AX
  71.         PUSH    0
  72.         CALL    GETSTOCKOBJECT
  73.         MOV    WORD PTR [BP-30], AX
  74.         MOV    WORD PTR [BP-28], 0000H
  75.         MOV    WORD PTR [BP-26], 0000H
  76.         MOV    AX, 0010H
  77.         MOV    DX, DS
  78.         MOV    WORD PTR [BP-24], AX
  79.         MOV    WORD PTR [BP-22], DX
  80.         LEA    AX, WORD PTR [BP-46]
  81.         MOV    DX, SS
  82.         PUSH    DX
  83.         PUSH    AX
  84.         CALL    REGISTERCLASS
  85. L0085H:        MOV    AX, 0010H
  86.         MOV    DX, DS
  87.         PUSH    DX
  88.         PUSH    AX
  89.         MOV    AX, 00B0H
  90.         MOV    DX, DS
  91.         PUSH    DX
  92.         PUSH    AX
  93.         PUSH    00CFH
  94.         PUSH    0
  95.         PUSH    8000H
  96.         PUSH    8000H
  97.         PUSH    8000H
  98.         PUSH    8000H
  99.         PUSH    0
  100.         PUSH    0
  101.         PUSH    WORD PTR [BP+12]
  102.         PUSH    0
  103.         PUSH    0
  104.         CALL    CREATEWINDOW
  105.         MOV    WORD PTR [BP-2], AX
  106.         PUSH    AX
  107.         PUSH    WORD PTR [BP+4]
  108.         CALL    SHOWWINDOW
  109.         PUSH    WORD PTR [BP-2]
  110.         CALL    UPDATEWINDOW
  111. L00C8H:        LEA    AX, WORD PTR [BP-20]
  112.         MOV    DX, SS
  113.         PUSH    DX
  114.         PUSH    AX
  115.         PUSH    0
  116.         PUSH    0
  117.         PUSH    0
  118.         CALL    GETMESSAGE
  119.         AND    AX, AX
  120.         JZ     L00F8H
  121.         LEA    AX, WORD PTR [BP-20]
  122.         MOV    DX, SS
  123.         PUSH    DX
  124.         PUSH    AX
  125.         CALL    TRANSLATEMESSAGE
  126.         LEA    AX, WORD PTR [BP-20]
  127.         MOV    DX, SS
  128.         PUSH    DX
  129.         PUSH    AX
  130.         CALL    DISPATCHMESSAGE
  131.         JMP    L00C8H
  132. L00F8H:        MOV    AX, WORD PTR [BP-16]
  133.         LEAVE
  134.         RET    000AH
  135.         NOP
  136.  
  137. WndProc        PROC    FAR PUBLIC
  138.         PUSH    DS
  139.         POP    AX
  140.         NOP
  141.         INC    BP
  142.         PUSH    BP
  143.         MOV    BP, SP
  144.         PUSH    DS
  145.         MOV    DS, AX
  146.         SUB    SP, 002CH
  147.         PUSH    SI
  148.         PUSH    DI
  149.         MOV    SI, WORD PTR [BP+14]
  150.         MOV    AX, WORD PTR [BP+12]
  151.         JMP    L0172H
  152.         NOP
  153. L011AH:        PUSH    SI
  154.         LEA    AX, WORD PTR [BP-36]
  155.         MOV    DX, SS
  156.         PUSH    DX
  157.         PUSH    AX
  158.         CALL    BEGINPAINT
  159.         MOV    DI, AX
  160.         PUSH    SI
  161.         LEA    AX, WORD PTR [BP-44]
  162.         MOV    DX, SS
  163.         PUSH    DX
  164.         PUSH    AX
  165.         CALL    GETCLIENTRECT
  166.         PUSH    DI
  167.         MOV    AX, 00BEH
  168.         MOV    DX, DS
  169.         PUSH    DX
  170.         PUSH    AX
  171.         PUSH    -1
  172.         LEA    AX, WORD PTR [BP-44]
  173.         MOV    DX, SS
  174.         PUSH    DX
  175.         PUSH    AX
  176.         PUSH    37
  177.         CALL    DRAWTEXT
  178.         PUSH    SI
  179.         LEA    AX, WORD PTR [BP-36]
  180.         MOV    DX, SS
  181.         PUSH    DX
  182.         PUSH    AX
  183.         CALL    ENDPAINT
  184.         XOR    AX, AX
  185.         XOR    DX, DX
  186.         JMP    L0197H
  187.         NOP
  188. L0162H:        PUSH    0
  189.         CALL    POSTQUITMESSAGE
  190.         XOR    AX, AX
  191.         XOR    DX, DX
  192.         JMP    L0197H
  193.         NOP
  194.         JMP    L017FH
  195. L0172H:        CMP    AX, 0002H
  196.         JZ     L0162H
  197.         CMP    AX, 000FH
  198.         JNZ    L017FH
  199.         JMP    L011AH
  200. L017FH:        PUSH    SI
  201.         PUSH    WORD PTR [BP+12]
  202.         PUSH    WORD PTR [BP+10]
  203.         PUSH    WORD PTR [BP+8]
  204.         PUSH    WORD PTR [BP+6]
  205.         CALL    DEFWINDOWPROC
  206.         JMP    L0197H
  207.         NOP
  208.         MOV    WORD PTR [BP+14], SI
  209. L0197H:        POP    DI
  210.         POP    SI
  211.         SUB    BP, 2
  212.         MOV    SP, BP
  213.         POP    DS
  214.         POP    BP
  215.         DEC    BP
  216.         RETF    000AH
  217. WndProc        ENDP
  218.  
  219. L01A4H        DW    OFFSET __WINFLAGS
  220. L01A6H:        MOV    AL, -1
  221.         PUSH    AX
  222.         CALL    L0346H
  223. START:        XOR    BP, BP
  224.         PUSH    BP
  225.         CALL    INITTASK
  226.         OR    AX, AX
  227.         JZ     L01A6H
  228.         MOV    WORD PTR D0054H, ES
  229.         ADD    CX, 0100H
  230.         JB     L01A6H
  231.         MOV    WORD PTR D001EH, CX
  232.         MOV    WORD PTR D0020H, SI
  233.         MOV    WORD PTR D0022H, DI
  234.         MOV    WORD PTR D0024H, BX
  235.         MOV    WORD PTR D0026H, ES
  236.         MOV    WORD PTR D0028H, DX
  237.         CALL    GETVERSION
  238.         MOV    WORD PTR D0056H, AX
  239.         MOV    AH, 48
  240.         TEST    WORD PTR CS:L01A4H, 0001H
  241.         JZ     L01F4H
  242.         CALL    DOS3CALL
  243.         JMP    L01F6H
  244. L01F4H:        INT    0021H
  245. L01F6H:        MOV    WORD PTR D0058H, AX
  246.         TEST    WORD PTR CS:L01A4H, 0001H
  247.         JNZ    L0207H
  248.         MOV    AL, 0
  249.         MOV    BYTE PTR D005BH, AL
  250. L0207H:        XOR    AX, AX
  251.         PUSH    AX
  252.         CALL    WAITEVENT
  253.         PUSH    WORD PTR D0022H
  254.         CALL    INITAPP
  255.         OR    AX, AX
  256.         JZ     L01A6H
  257.         CALL    L0260H
  258.         CALL    L0422H
  259.         CALL    L05A0H
  260.         CALL    L0800H
  261.         PUSH    WORD PTR D0090H
  262.         PUSH    WORD PTR D008EH
  263.         PUSH    WORD PTR D008CH
  264.         CALL    L0244H
  265.         ADD    SP, 6
  266.         PUSH    AX
  267.         CALL    L033FH
  268.         MOV    AX, 0015H
  269.         JMP    L0627H
  270. L0244H:        PUSH    BP
  271.         MOV    BP, SP
  272.         PUSH    WORD PTR D0022H
  273.         PUSH    WORD PTR D0020H
  274.         PUSH    WORD PTR D0026H
  275.         PUSH    WORD PTR D0024H
  276.         PUSH    WORD PTR D0028H
  277.         CALL    L0010H
  278.         POP    BP
  279.         RET
  280. L0260H:        MOV    AX, 3500H
  281.         TEST    WORD PTR CS:L01A4H, 0001H
  282.         JZ     L0273H
  283.         CALL    DOS3CALL
  284.         JMP    L0275H
  285. L0273H:        INT    0021H
  286. L0275H:        MOV    WORD PTR D0040H, BX
  287.         MOV    WORD PTR D0042H, ES
  288.         PUSH    CS
  289.         POP    DS
  290.         MOV    AX, 2500H
  291.         MOV    DX, 0622H
  292.         TEST    WORD PTR CS:L01A4H, 0001H
  293.         JZ     L0295H
  294.         CALL    DOS3CALL
  295.         JMP    L0297H
  296. L0295H:        INT    0021H
  297. L0297H:        PUSH    SS
  298.         POP    DS
  299.         MOV    CX, WORD PTR D00A6H
  300.         JCXZ    L02C8H
  301.         MOV    ES, WORD PTR D0054H
  302.         MOV    SI, WORD PTR ES:D002CH
  303.         MOV    AX, WORD PTR D00A8H
  304.         MOV    DX, WORD PTR D00AAH
  305.         XOR    BX, BX
  306.         CALL    DWORD PTR D00A4H
  307.         JAE    L02BAH
  308.         JMP    L041CH
  309. L02BAH:        MOV    AX, WORD PTR D00ACH
  310.         MOV    DX, WORD PTR D00AEH
  311.         MOV    BX, 0003H
  312.         CALL    DWORD PTR D00A4H
  313. L02C8H:        MOV    ES, WORD PTR D0054H
  314.         MOV    CX, WORD PTR ES:D002CH
  315.         JCXZ    L0311H
  316.         MOV    ES, CX
  317.         XOR    DI, DI
  318. L02D7H:        CMP    BYTE PTR ES:[DI], 0
  319.         JZ     L0311H
  320.         MOV    CX, 000DH
  321.         MOV    SI, 0032H
  322.         REPE CMPSB
  323.         JZ     L02F2H
  324.         MOV    CX, 7FFFH
  325.         XOR    AX, AX
  326.         REPNE SCASB
  327.         JNZ    L0311H
  328.         JMP    L02D7H
  329. L02F2H:        PUSH    ES
  330.         PUSH    DS
  331.         POP    ES
  332.         POP    DS
  333.         MOV    SI, DI
  334.         MOV    DI, 0064H
  335.         MOV    CL, 4
  336. L02FDH:        LODSB
  337.         SUB    AL, 65
  338.         JB     L030FH
  339.         SHL    AL, CL
  340.         XCHG    DX, AX
  341.         LODSB
  342.         SUB    AL, 65
  343.         JB     L030FH
  344.         OR    AL, DL
  345.         STOSB
  346.         JMP    L02FDH
  347. L030FH:        PUSH    SS
  348.         POP    DS
  349. L0311H:        MOV    SI, 00B0H
  350.         MOV    DI, 00B0H
  351.         CALL    L03E3H
  352.         MOV    SI, 00B0H
  353.         MOV    DI, 00B0H
  354.         CALL    L03F2H
  355.         MOV    SI, 00B0H
  356.         MOV    DI, 00B0H
  357.         CALL    L03E3H
  358.         MOV    SI, 00B0H
  359.         MOV    DI, 00B0H
  360.         CALL    L03E3H
  361.         MOV    SI, 00B0H
  362.         MOV    DI, 00B0H
  363.         CALL    L03F2H
  364.         RET
  365. L033FH:        PUSH    BP
  366.         MOV    BP, SP
  367.         XOR    CX, CX
  368.         JMP    L0360H
  369. L0346H:        PUSH    BP
  370.         MOV    BP, SP
  371.         MOV    CX, 0001H
  372.         JMP    L0360H
  373.         PUSH    BP
  374.         MOV    BP, SP
  375.         PUSH    SI
  376.         PUSH    DI
  377.         MOV    CX, 0100H
  378.         JMP    L0360H
  379.         PUSH    BP
  380.         MOV    BP, SP
  381.         PUSH    SI
  382.         PUSH    DI
  383.         MOV    CX, 0101H
  384. L0360H:        MOV    BYTE PTR D0099H, CH
  385.         PUSH    CX
  386.         OR    CL, CL
  387.         JNZ    L0385H
  388.         MOV    SI, 022CH
  389.         MOV    DI, 022CH
  390.         CALL    L03E3H
  391.         MOV    SI, 00B0H
  392.         MOV    DI, 00B0H
  393.         CALL    L03E3H
  394.         MOV    SI, WORD PTR [BP+4]
  395.         PUSH    SI
  396.         CALL    L0800H
  397.         ADD    SP, 2
  398. L0385H:        MOV    SI, 00B0H
  399.         MOV    DI, 00B0H
  400.         CALL    L03E3H
  401.         MOV    SI, 00B0H
  402.         MOV    DI, 00B0H
  403.         CALL    L03F2H
  404.         CALL    L03BAH
  405.         POP    AX
  406.         OR    AH, AH
  407.         JNZ    L03B6H
  408.         MOV    AX, WORD PTR [BP+4]
  409.         MOV    AH, 76
  410.         TEST    WORD PTR CS:L01A4H, 0001H
  411.         JZ     L03B4H
  412.         CALL    DOS3CALL
  413.         JMP    L03B6H
  414. L03B4H:        INT    0021H
  415. L03B6H:        POP    DI
  416.         POP    SI
  417.         POP    BP
  418.         RET
  419. L03BAH:        MOV    CX, WORD PTR D00A6H
  420.         JCXZ    L03C7H
  421.         MOV    BX, 0002H
  422.         CALL    DWORD PTR D00A4H
  423. L03C7H:        PUSH    DS
  424.         LDS    DX, DWORD PTR D0040H
  425.         MOV    AX, 2500H
  426.         TEST    WORD PTR CS:L01A4H, 0001H
  427.         JZ     L03DFH
  428.         CALL    DOS3CALL
  429.         JMP    L03E1H
  430. L03DFH:        INT    0021H
  431. L03E1H:        POP    DS
  432.         RET
  433. L03E3H:        CMP    SI, DI
  434.         JAE    L03F1H
  435.         DEC    DI
  436.         DEC    DI
  437.         MOV    CX, WORD PTR [DI]
  438.         JCXZ    L03E3H
  439.         CALL    CX
  440.         JMP    L03E3H
  441. L03F1H:        RET
  442. L03F2H:        CMP    SI, DI
  443.         JAE    L0404H
  444.         SUB    DI, 4
  445.         MOV    AX, WORD PTR [DI]
  446.         OR    AX, WORD PTR [DI+2]
  447.         JZ     L03F2H
  448.         CALL    DWORD PTR [DI]
  449.         JMP    L03F2H
  450. L0404H:        RET
  451. L0405H        DB    0000H
  452. L0406H:        PUSH    BP
  453.         MOV    BP, SP
  454.         MOV    AX, 00FCH
  455.         PUSH    AX
  456.         CALL    L0691H
  457.         MOV    AX, 00FFH
  458.         PUSH    AX
  459.         CALL    L0691H
  460.         MOV    SP, BP
  461.         POP    BP
  462.         RET
  463. L041BH        DB    0000H
  464. L041CH:        MOV    AX, 0002H
  465.         JMP    L0627H
  466. L0422H:        POP    WORD PTR D009CH
  467.         MOV    AX, 0104H
  468.         MOV    CX, 0008H
  469.         CALL    L06C2H
  470.         MOV    WORD PTR D0094H, DX
  471.         MOV    WORD PTR D0092H, AX
  472.         PUSH    DX
  473.         PUSH    AX
  474.         PUSH    WORD PTR D0022H
  475.         PUSH    DX
  476.         PUSH    AX
  477.         MOV    AX, 0104H
  478.         PUSH    AX
  479.         CALL    GETMODULEFILENAME
  480.         POP    BX
  481.         POP    ES
  482.         ADD    BX, AX
  483.         MOV    BYTE PTR ES:[BX], 0
  484.         MOV    DX, 0001H
  485.         MOV    DI, 0001H
  486.         MOV    SI, 0081H
  487.         MOV    DS, WORD PTR D0054H
  488. L045CH:        LODSB
  489.         CMP    AL, 32
  490.         JZ     L045CH
  491.         CMP    AL, 9
  492.         JZ     L045CH
  493.         CMP    AL, 13
  494.         JZ     L04D8H
  495.         OR    AL, AL
  496.         JZ     L04D8H
  497.         INC    DI
  498. L046EH:        DEC    SI
  499. L046FH:        LODSB
  500.         CMP    AL, 32
  501.         JZ     L045CH
  502.         CMP    AL, 9
  503.         JZ     L045CH
  504.         CMP    AL, 13
  505.         JZ     L04D8H
  506.         OR    AL, AL
  507.         JZ     L04D8H
  508.         CMP    AL, 34
  509.         JZ     L04A8H
  510.         CMP    AL, 92
  511.         JZ     L048BH
  512.         INC    DX
  513.         JMP    L046FH
  514. L048BH:        XOR    CX, CX
  515. L048DH:        INC    CX
  516.         LODSB
  517.         CMP    AL, 92
  518.         JZ     L048DH
  519.         CMP    AL, 34
  520.         JZ     L049BH
  521.         ADD    DX, CX
  522.         JMP    L046EH
  523. L049BH:        MOV    AX, CX
  524.         SHR    CX, 1
  525.         ADC    DX, CX
  526.         TEST    AL, 1
  527.         JNZ    L046FH
  528.         JMP    L04A8H
  529. L04A7H:        DEC    SI
  530. L04A8H:        LODSB
  531.         CMP    AL, 13
  532.         JZ     L04D8H
  533.         OR    AL, AL
  534.         JZ     L04D8H
  535.         CMP    AL, 34
  536.         JZ     L046FH
  537.         CMP    AL, 92
  538.         JZ     L04BCH
  539.         INC    DX
  540.         JMP    L04A8H
  541. L04BCH:        XOR    CX, CX
  542. L04BEH:        INC    CX
  543.         LODSB
  544.         CMP    AL, 92
  545.         JZ     L04BEH
  546.         CMP    AL, 34
  547.         JZ     L04CCH
  548.         ADD    DX, CX
  549.         JMP    L04A7H
  550. L04CCH:        MOV    AX, CX
  551.         SHR    CX, 1
  552.         ADC    DX, CX
  553.         TEST    AL, 1
  554.         JNZ    L04A8H
  555.         JMP    L046FH
  556. L04D8H:        PUSH    SS
  557.         POP    DS
  558.         MOV    WORD PTR D008CH, DI
  559.         ADD    DX, DI
  560.         INC    DI
  561.         SHL    DI, 1
  562.         ADD    DX, DI
  563.         INC    DX
  564.         AND    DL, -2
  565.         SUB    SP, DX
  566.         MOV    AX, SP
  567.         MOV    WORD PTR D008EH, AX
  568.         MOV    BX, AX
  569.         ADD    DI, BX
  570.         PUSH    SS
  571.         POP    ES
  572.         LDS    SI, DWORD PTR D0092H
  573.         MOV    WORD PTR SS:[BX], SI
  574.         INC    BX
  575.         INC    BX
  576.         MOV    DS, WORD PTR SS:D0054H
  577.         MOV    SI, 0081H
  578.         JMP    L050CH
  579. L0509H:        XOR    AX, AX
  580.         STOSB
  581. L050CH:        LODSB
  582.         CMP    AL, 32
  583.         JZ     L050CH
  584.         CMP    AL, 9
  585.         JZ     L050CH
  586.         CMP    AL, 13
  587.         JZ     L0595H
  588.         OR    AL, AL
  589.         JZ     L0595H
  590.         MOV    WORD PTR SS:[BX], DI
  591.         INC    BX
  592.         INC    BX
  593. L0522H:        DEC    SI
  594. L0523H:        LODSB
  595.         CMP    AL, 32
  596.         JZ     L0509H
  597.         CMP    AL, 9
  598.         JZ     L0509H
  599.         CMP    AL, 13
  600.         JZ     L0592H
  601.         OR    AL, AL
  602.         JZ     L0592H
  603.         CMP    AL, 34
  604.         JZ     L055FH
  605.         CMP    AL, 92
  606.         JZ     L053FH
  607.         STOSB
  608.         JMP    L0523H
  609. L053FH:        XOR    CX, CX
  610. L0541H:        INC    CX
  611.         LODSB
  612.         CMP    AL, 92
  613.         JZ     L0541H
  614.         CMP    AL, 34
  615.         JZ     L0551H
  616.         MOV    AL, 92
  617.         REP STOSB
  618.         JMP    L0522H
  619. L0551H:        MOV    AL, 92
  620.         SHR    CX, 1
  621.         REP STOSB
  622.         JAE    L055FH
  623.         MOV    AL, 34
  624.         STOSB
  625.         JMP    L0523H
  626. L055EH:        DEC    SI
  627. L055FH:        LODSB
  628.         CMP    AL, 13
  629.         JZ     L0592H
  630.         OR    AL, AL
  631.         JZ     L0592H
  632.         CMP    AL, 34
  633.         JZ     L0523H
  634.         CMP    AL, 92
  635.         JZ     L0573H
  636.         STOSB
  637.         JMP    L055FH
  638. L0573H:        XOR    CX, CX
  639. L0575H:        INC    CX
  640.         LODSB
  641.         CMP    AL, 92
  642.         JZ     L0575H
  643.         CMP    AL, 34
  644.         JZ     L0585H
  645.         MOV    AL, 92
  646.         REP STOSB
  647.         JMP    L055EH
  648. L0585H:        MOV    AL, 92
  649.         SHR    CX, 1
  650.         REP STOSB
  651.         JAE    L0523H
  652.         MOV    AL, 34
  653.         STOSB
  654.         JMP    L055FH
  655. L0592H:        XOR    AX, AX
  656.         STOSB
  657. L0595H:        PUSH    SS
  658.         POP    DS
  659.         MOV    WORD PTR [BX], 0000H
  660.         JMP    WORD PTR D009CH
  661. L059FH        DB    0000H
  662. L05A0H:        PUSH    BP
  663.         MOV    BP, SP
  664.         PUSH    DS
  665.         CALL    GETDOSENVIRONMENT
  666.         OR    AX, AX
  667.         JZ     L05AFH
  668.         MOV    DX, AX
  669. L05AFH:        MOV    BX, DX
  670.         MOV    ES, DX
  671.         XOR    AX, AX
  672.         XOR    SI, SI
  673.         XOR    DI, DI
  674.         MOV    CX, 0FFFFH
  675.         OR    BX, BX
  676.         JZ     L05CEH
  677.         CMP    BYTE PTR ES:D0000H, 0
  678.         JZ     L05CEH
  679. L05C8H:        REPNE SCASB
  680.         INC    SI
  681.         SCASB
  682.         JNZ    L05C8H
  683. L05CEH:        MOV    AX, DI
  684.         INC    AX
  685.         AND    AL, -2
  686.         INC    SI
  687.         MOV    DI, SI
  688.         SHL    SI, 1
  689.         MOV    CX, 0009H
  690.         CALL    L06C2H
  691.         PUSH    AX
  692.         MOV    AX, SI
  693.         CALL    L06C2H
  694.         MOV    WORD PTR D0090H, AX
  695.         PUSH    ES
  696.         PUSH    DS
  697.         POP    ES
  698.         POP    DS
  699.         MOV    CX, DI
  700.         MOV    BX, AX
  701.         XOR    SI, SI
  702.         POP    DI
  703.         DEC    CX
  704.         JCXZ    L061BH
  705. L05F5H:        MOV    AX, WORD PTR [SI]
  706.         CMP    AX, WORD PTR SS:D0032H
  707.         JNZ    L060EH
  708.         PUSH    CX
  709.         PUSH    SI
  710.         PUSH    DI
  711.         MOV    DI, 0032H
  712.         MOV    CX, 0006H
  713.         REPE CMPSW
  714.         POP    DI
  715.         POP    SI
  716.         POP    CX
  717.         JZ     L0613H
  718. L060EH:        MOV    WORD PTR ES:[BX], DI
  719.         INC    BX
  720.         INC    BX
  721. L0613H:        LODSB
  722.         STOSB
  723.         OR    AL, AL
  724.         JNZ    L0613H
  725.         LOOP    L05F5H
  726. L061BH:        MOV    WORD PTR ES:[BX], CX
  727.         POP    DS
  728.         POP    BP
  729.         RET
  730. L0621H        DB    0000H
  731.         PUSH    SS
  732.         POP    DS
  733.         MOV    AX, 0003H
  734. L0627H:        PUSH    AX
  735.         PUSH    AX
  736.         CALL    L0406H
  737.         CALL    L0691H
  738.         CALL    L0666H
  739.         XOR    BX, BX
  740.         OR    AX, AX
  741.         JZ     L0655H
  742.         MOV    DI, AX
  743.         MOV    AX, 0009H
  744.         CMP    BYTE PTR [DI], 77
  745.         JNZ    L0645H
  746.         MOV    AX, 000FH
  747. L0645H:        ADD    DI, AX
  748.         PUSH    DI
  749.         PUSH    DS
  750.         POP    ES
  751.         MOV    AL, 13
  752.         MOV    CX, 0022H
  753.         REPNE SCASB
  754.         MOV    BYTE PTR [DI-1], BL
  755.         POP    AX
  756. L0655H:        PUSH    BX
  757.         PUSH    DS
  758.         PUSH    AX
  759.         CALL    FATALAPPEXIT
  760.         MOV    AX, 00FFH
  761.         PUSH    AX
  762.         CALL    FATALEXIT
  763. L0666H:        PUSH    BP
  764.         MOV    BP, SP
  765.         PUSH    SI
  766.         PUSH    DI
  767.         PUSH    DS
  768.         POP    ES
  769.         MOV    DX, WORD PTR [BP+4]
  770.         MOV    SI, 00E2H
  771. L0673H:        LODSW
  772.         CMP    AX, DX
  773.         JZ     L0688H
  774.         INC    AX
  775.         XCHG    SI, AX
  776.         JZ     L0688H
  777.         XCHG    DI, AX
  778.         XOR    AX, AX
  779.         MOV    CX, 0FFFFH
  780.         REPNE SCASB
  781.         MOV    SI, DI
  782.         JMP    L0673H
  783. L0688H:        XCHG    SI, AX
  784.         POP    DI
  785.         POP    SI
  786.         MOV    SP, BP
  787.         POP    BP
  788.         RET    0002H
  789. L0691H:        PUSH    BP
  790.         MOV    BP, SP
  791.         PUSH    DI
  792.         CMP    WORD PTR D00A0H, 0
  793.         JZ     L06BAH
  794.         PUSH    WORD PTR [BP+4]
  795.         CALL    L0666H
  796.         OR    AX, AX
  797.         JZ     L06BAH
  798.         XCHG    DX, AX
  799.         MOV    DI, DX
  800.         XOR    AX, AX
  801.         MOV    CX, 0FFFFH
  802.         REPNE SCASB
  803.         NOT    CX
  804.         DEC    CX
  805.         MOV    BX, WORD PTR D005EH
  806.         CALL    L0805H
  807. L06BAH:        POP    DI
  808.         MOV    SP, BP
  809.         POP    BP
  810.         RET    0002H
  811. L06C1H        DB    0000H
  812. L06C2H:        PUSH    BP
  813.         MOV    BP, SP
  814.         PUSH    BX
  815.         PUSH    ES
  816.         PUSH    CX
  817.         MOV    CX, 1000H
  818.         XCHG    CX, WORD PTR D009EH
  819.         PUSH    CX
  820.         PUSH    AX
  821.         CALL    L080CH
  822.         POP    BX
  823.         POP    WORD PTR D009EH
  824.         POP    CX
  825.         MOV    DX, DS
  826.         OR    AX, AX
  827.         JZ     L06E4H
  828.         POP    ES
  829.         POP    BX
  830.         JMP    L06E9H
  831. L06E4H:        MOV    AX, CX
  832.         JMP    L0627H
  833. L06E9H:        MOV    SP, BP
  834.         POP    BP
  835.         RET
  836. L06EDH        DB    0000H
  837.         PUSH    CX
  838.         PUSH    DI
  839.         TEST    BYTE PTR [BX+2], 1
  840.         JZ     L0759H
  841.         CALL    L07E0H
  842.         MOV    DI, SI
  843.         MOV    AX, WORD PTR [SI]
  844.         TEST    AL, 1
  845.         JZ     L0704H
  846.         SUB    CX, AX
  847.         DEC    CX
  848. L0704H:        INC    CX
  849.         INC    CX
  850.         MOV    SI, WORD PTR [BX+4]
  851.         OR    SI, SI
  852.         JZ     L0759H
  853.         ADD    CX, SI
  854.         JAE    L071AH
  855.         XOR    AX, AX
  856.         MOV    DX, 0FFF0H
  857.         JCXZ    L0748H
  858.         JMP    L0759H
  859. L071AH:        PUSH    SS
  860.         POP    ES
  861.         MOV    AX, WORD PTR D009EH
  862.         CMP    AX, 1000H
  863.         JZ     L073BH
  864.         MOV    DX, 8000H
  865. L0728H:        CMP    DX, AX
  866.         JB     L0732H
  867.         SHR    DX, 1
  868.         JNZ    L0728H
  869.         JMP    L0754H
  870. L0732H:        CMP    DX, 8
  871.         JB     L0754H
  872.         SHL    DX, 1
  873.         MOV    AX, DX
  874. L073BH:        DEC    AX
  875.         MOV    DX, AX
  876.         ADD    AX, CX
  877.         JAE    L0744H
  878.         XOR    AX, AX
  879. L0744H:        NOT    DX
  880.         AND    AX, DX
  881. L0748H:        PUSH    DX
  882.         CALL    L077AH
  883.         POP    DX
  884.         JAE    L075CH
  885.         CMP    DX, -16
  886.         JZ     L0759H
  887. L0754H:        MOV    AX, 0010H
  888.         JMP    L073BH
  889. L0759H:        STC
  890.         JMP    L0777H
  891. L075CH:        MOV    DX, AX
  892.         SUB    DX, WORD PTR ES:[BX+4]
  893.         MOV    WORD PTR [BX+4], AX
  894.         MOV    WORD PTR [BX+10], DI
  895.         MOV    SI, WORD PTR [BX+12]
  896.         DEC    DX
  897.         MOV    WORD PTR [SI], DX
  898.         INC    DX
  899.         ADD    SI, DX
  900.         MOV    WORD PTR [SI], 0FFFEH
  901.         MOV    WORD PTR [BX+12], SI
  902. L0777H:        POP    DI
  903.         POP    CX
  904.         RET
  905. L077AH:        MOV    DX, AX
  906.         TEST    BYTE PTR [BX+2], 4
  907.         JZ     L0784H
  908.         JMP    L07D5H
  909. L0784H:        PUSH    DX
  910.         PUSH    CX
  911.         PUSH    BX
  912.         MOV    SI, WORD PTR [BX+6]
  913.         MOV    BX, WORD PTR CS:L01A4H
  914.         XOR    CX, CX
  915.         OR    DX, DX
  916.         JNZ    L079CH
  917.         TEST    BX, 0010H
  918.         JNZ    L07DBH
  919.         INC    CX
  920. L079CH:        MOV    AX, 0022H
  921.         TEST    BX, 0001H
  922.         JNZ    L07A8H
  923.         MOV    AX, 0020H
  924. L07A8H:        PUSH    SI
  925.         PUSH    CX
  926.         PUSH    DX
  927.         PUSH    AX
  928.         CALL    GLOBALREALLOC
  929.         OR    AX, AX
  930.         JZ     L07DBH
  931.         CMP    AX, SI
  932.         JNZ    L07D5H
  933.         PUSH    SI
  934.         CALL    GLOBALSIZE
  935.         OR    DX, AX
  936.         JZ     L07D5H
  937.         POP    BX
  938.         POP    CX
  939.         POP    DX
  940.         MOV    AX, DX
  941.         TEST    BYTE PTR [BX+2], 4
  942.         JZ     L07D2H
  943.         DEC    DX
  944.         MOV    WORD PTR [BX-2], DX
  945. L07D2H:        CLC
  946.         JMP    L07DFH
  947. L07D5H:        MOV    AX, 0012H
  948.         JMP    L0627H
  949. L07DBH:        POP    BX
  950.         POP    CX
  951.         POP    DX
  952.         STC
  953. L07DFH:        RET
  954. L07E0H:        PUSH    DI
  955.         MOV    SI, WORD PTR [BX+10]
  956.         CMP    SI, WORD PTR [BX+12]
  957.         JNZ    L07ECH
  958.         MOV    SI, WORD PTR [BX+8]
  959. L07ECH:        LODSW
  960.         CMP    AX, -2
  961.         JZ     L07FAH
  962.         MOV    DI, SI
  963.         AND    AL, -2
  964.         ADD    SI, AX
  965.         JMP    L07ECH
  966. L07FAH:        DEC    DI
  967.         DEC    DI
  968.         MOV    SI, DI
  969.         POP    DI
  970.         RET
  971. L0800H:        PUSH    BP
  972.         MOV    BP, SP
  973.         POP    BP
  974.         RET
  975. L0805H:        MOV    AX, 0014H
  976.         JMP    L0627H
  977. L080BH        DB    0000H
  978. L080CH:        PUSH    BP
  979.         MOV    BP, SP
  980.         SUB    SP, 4
  981.         MOV    AX, 0FFFFH
  982.         PUSH    AX
  983.         CALL    LOCKSEGMENT
  984.         MOV    AX, 0020H
  985.         PUSH    AX
  986.         CMP    WORD PTR [BP+4], 0
  987.         JZ     L082AH
  988.         MOV    AX, WORD PTR [BP+4]
  989.         JMP    L082DH
  990. L082AH:        MOV    AX, 0001H
  991. L082DH:        PUSH    AX
  992.         CALL    LOCALALLOC
  993.         MOV    WORD PTR [BP-2], AX
  994.         MOV    AX, 0FFFFH
  995.         PUSH    AX
  996.         CALL    UNLOCKSEGMENT
  997.         MOV    AX, WORD PTR [BP-2]
  998.         MOV    SP, BP
  999.         POP    BP
  1000.         RET
  1001.         PUSH    BP
  1002.         MOV    BP, SP
  1003.         PUSH    WORD PTR [BP+4]
  1004.         CALL    LOCALFREE
  1005.         MOV    SP, BP
  1006.         POP    BP
  1007.         RET
  1008.         NOP
  1009.         PUSH    BP
  1010.         MOV    BP, SP
  1011.         SUB    SP, 4
  1012.         CMP    WORD PTR [BP+4], 0
  1013.         JNZ    L086EH
  1014.         PUSH    WORD PTR [BP+6]
  1015.         CALL    L080CH
  1016.         ADD    SP, 2
  1017.         JMP    L08A2H
  1018.         NOP
  1019. L086EH:        MOV    AX, 0FFFFH
  1020.         PUSH    AX
  1021.         CALL    LOCKSEGMENT
  1022.         PUSH    WORD PTR [BP+4]
  1023.         CMP    WORD PTR [BP+6], 0
  1024.         JZ     L0886H
  1025.         MOV    AX, WORD PTR [BP+6]
  1026.         JMP    L0889H
  1027.         NOP
  1028. L0886H:        MOV    AX, 0001H
  1029. L0889H:        PUSH    AX
  1030.         MOV    AX, 0062H
  1031.         PUSH    AX
  1032.         CALL    LOCALREALLOC
  1033.         MOV    WORD PTR [BP-2], AX
  1034.         MOV    AX, 0FFFFH
  1035.         PUSH    AX
  1036.         CALL    UNLOCKSEGMENT
  1037.         MOV    AX, WORD PTR [BP-2]
  1038. L08A2H:        MOV    SP, BP
  1039.         POP    BP
  1040.         RET
  1041.         PUSH    BP
  1042.         MOV    BP, SP
  1043.         PUSH    WORD PTR [BP+4]
  1044.         CALL    LOCALSIZE
  1045.         MOV    SP, BP
  1046.         POP    BP
  1047.         RET
  1048.         NOP
  1049.  
  1050.         .DATA
  1051. D0000H        DB    0000H
  1052. D0001H        DB    0000H
  1053. D0002H        DB    0000H
  1054. D0003H        DB    0000H
  1055. D0004H        DB    0005H
  1056. D0005H        DB    0000H
  1057. D0006H        DB    0000H
  1058. D0007H        DB    0000H
  1059. D0008H        DB    0000H
  1060. D0009H        DB    0000H
  1061. D000AH        DB    0000H
  1062. D000BH        DB    0000H
  1063. D000CH        DB    0000H
  1064. D000DH        DB    0000H
  1065. D000EH        DB    0000H
  1066. D000FH        DB    0000H
  1067. D0010H        DB    "WDASM Example"
  1068. D001DH        DB    0000H
  1069. D001EH        DB    0000H
  1070. D001FH        DB    0000H
  1071. D0020H        DB    0000H
  1072. D0021H        DB    0000H
  1073. D0022H        DB    0000H
  1074. D0023H        DB    0000H
  1075. D0024H        DB    0000H
  1076. D0025H        DB    0000H
  1077. D0026H        DB    0000H
  1078. D0027H        DB    0000H
  1079. D0028H        DB    0000H
  1080. D0029H        DB    0000H
  1081. D002AH        DB    0001H
  1082. D002BH        DB    0000H
  1083. D002CH        DB    00FFH
  1084. D002DH        DB    00FFH
  1085. D002EH        DB    0000H
  1086. D002FH        DB    0000H
  1087. D0030H        DB    0000H
  1088. D0031H        DB    0000H
  1089. D0032H        DB    "_C_FILE_INFO="
  1090. D003FH        DB    0000H
  1091. D0040H        DB    0000H
  1092. D0041H        DB    0000H
  1093. D0042H        DB    0000H
  1094. D0043H        DB    0000H
  1095. D0044H        DB    0000H
  1096. D0045H        DB    0000H
  1097. D0046H        DB    0000H
  1098. D0047H        DB    0000H
  1099. D0048H        DB    0000H
  1100. D0049H        DB    0000H
  1101. D004AH        DB    0000H
  1102. D004BH        DB    0000H
  1103. D004CH        DB    0000H
  1104. D004DH        DB    0000H
  1105. D004EH        DB    0000H
  1106. D004FH        DB    0000H
  1107. D0050H        DB    0000H
  1108. D0051H        DB    0000H
  1109. D0052H        DB    0000H
  1110. D0053H        DB    0000H
  1111. D0054H        DB    0000H
  1112. D0055H        DB    0000H
  1113. D0056H        DB    0000H
  1114. D0057H        DB    0000H
  1115. D0058H        DB    0000H
  1116. D0059H        DB    0000H
  1117. D005AH        DB    0002H
  1118. D005BH        DB    0001H
  1119. D005CH        DB    0000H
  1120. D005DH        DB    0000H
  1121. D005EH        DB    0014H
  1122. D005FH        DB    0000H
  1123. D0060H        DB    0014H
  1124. D0061H        DB    0000H
  1125. D0062H        DB    0028H
  1126. D0063H        DB    0000H
  1127. D0064H        DB    0000H
  1128. D0065H        DB    0000H
  1129. D0066H        DB    0000H
  1130. D0067H        DB    0000H
  1131. D0068H        DB    0000H
  1132. D0069H        DB    0000H
  1133. D006AH        DB    0000H
  1134. D006BH        DB    0000H
  1135. D006CH        DB    0000H
  1136. D006DH        DB    0000H
  1137. D006EH        DB    0000H
  1138. D006FH        DB    0000H
  1139. D0070H        DB    0000H
  1140. D0071H        DB    0000H
  1141. D0072H        DB    0000H
  1142. D0073H        DB    0000H
  1143. D0074H        DB    0000H
  1144. D0075H        DB    0000H
  1145. D0076H        DB    0000H
  1146. D0077H        DB    0000H
  1147. D0078H        DB    00C1H
  1148. D0079H        DB    0000H
  1149. D007AH        DB    0000H
  1150. D007BH        DB    0000H
  1151. D007CH        DB    0000H
  1152. D007DH        DB    0000H
  1153. D007EH        DB    0000H
  1154. D007FH        DB    0000H
  1155. D0080H        DB    0000H
  1156. D0081H        DB    0000H
  1157. D0082H        DB    0000H
  1158. D0083H        DB    0000H
  1159. D0084H        DB    0000H
  1160. D0085H        DB    0000H
  1161. D0086H        DB    0000H
  1162. D0087H        DB    0000H
  1163. D0088H        DB    0000H
  1164. D0089H        DB    0000H
  1165. D008AH        DB    0000H
  1166. D008BH        DB    0000H
  1167. D008CH        DB    0000H
  1168. D008DH        DB    0000H
  1169. D008EH        DB    0000H
  1170. D008FH        DB    0000H
  1171. D0090H        DB    0000H
  1172. D0091H        DB    0000H
  1173. D0092H        DB    0096H
  1174. D0093H        DB    0000H
  1175. D0094H        DB    0000H
  1176. D0095H        DB    0000H
  1177. D0096H        DB    0000H
  1178. D0097H        DB    0000H
  1179. D0098H        DB    0000H
  1180. D0099H        DB    0000H
  1181. D009AH        DB    0000H
  1182. D009BH        DB    0000H
  1183. D009CH        DB    0000H
  1184. D009DH        DB    0000H
  1185. D009EH        DB    0000H
  1186. D009FH        DB    0010H
  1187. D00A0H        DB    0000H
  1188. D00A1H        DB    0000H
  1189. D00A2H        DB    0000H
  1190. D00A3H        DB    0000H
  1191. D00A4H        DB    0000H
  1192. D00A5H        DB    0000H
  1193. D00A6H        DB    0000H
  1194. D00A7H        DB    0000H
  1195. D00A8H        DB    0000H
  1196. D00A9H        DB    0000H
  1197. D00AAH        DB    0000H
  1198. D00ABH        DB    0000H
  1199. D00ACH        DB    0000H
  1200. D00ADH        DB    0000H
  1201. D00AEH        DB    0000H
  1202. D00AFH        DB    0000H
  1203. D00B0H        DB    "WDASM Example"
  1204. D00BDH        DB    0000H
  1205. D00BEH        DB    "Congratulations, it works!"
  1206. D00D8H        DB    0000H
  1207. D00D9H        DB    0000H
  1208. D00DAH        DB    "<<NMSG>>"
  1209. D00E2H        DB    0000H
  1210. D00E3H        DB    0000H
  1211. D00E4H        DB    "R6000"
  1212. D00E9H        DB    000DH
  1213. D00EAH        DB    000AH
  1214. D00EBH        DB    "- stack overflow"
  1215. D00FBH        DB    000DH
  1216. D00FCH        DB    000AH
  1217. D00FDH        DB    0000H
  1218. D00FEH        DB    0003H
  1219. D00FFH        DB    0000H
  1220. D0100H        DB    "R6003"
  1221. D0105H        DB    000DH
  1222. D0106H        DB    000AH
  1223. D0107H        DB    "- integer divide by 0"
  1224. D011CH        DB    000DH
  1225. D011DH        DB    000AH
  1226. D011EH        DB    0000H
  1227. D011FH        DB    0009H
  1228. D0120H        DB    0000H
  1229. D0121H        DB    "R6009"
  1230. D0126H        DB    000DH
  1231. D0127H        DB    000AH
  1232. D0128H        DB    "- not enough space for environment"
  1233. D014AH        DB    000DH
  1234. D014BH        DB    000AH
  1235. D014CH        DB    0000H
  1236. D014DH        DB    0012H
  1237. D014EH        DB    0000H
  1238. D014FH        DB    "R6018"
  1239. D0154H        DB    000DH
  1240. D0155H        DB    000AH
  1241. D0156H        DB    "- unexpected heap error"
  1242. D016DH        DB    000DH
  1243. D016EH        DB    000AH
  1244. D016FH        DB    0000H
  1245. D0170H        DB    0014H
  1246. D0171H        DB    0000H
  1247. D0172H        DB    "R6020"
  1248. D0177H        DB    000DH
  1249. D0178H        DB    000AH
  1250. D0179H        DB    "- unexpected QuickWin error"
  1251. D0194H        DB    000DH
  1252. D0195H        DB    000AH
  1253. D0196H        DB    0000H
  1254. D0197H        DB    0008H
  1255. D0198H        DB    0000H
  1256. D0199H        DB    "R6008"
  1257. D019EH        DB    000DH
  1258. D019FH        DB    000AH
  1259. D01A0H        DB    "- not enough space for arguments"
  1260. D01C0H        DB    000DH
  1261. D01C1H        DB    000AH
  1262. D01C2H        DB    0000H
  1263. D01C3H        DB    0015H
  1264. D01C4H        DB    0000H
  1265. D01C5H        DB    "R6021"
  1266. D01CAH        DB    000DH
  1267. D01CBH        DB    000AH
  1268. D01CCH        DB    "- no main procedure"
  1269. D01DFH        DB    000DH
  1270. D01E0H        DB    000AH
  1271. D01E1H        DB    0000H
  1272. D01E2H        DB    00FCH
  1273. D01E3H        DB    0000H
  1274. D01E4H        DB    000DH
  1275. D01E5H        DB    000AH
  1276. D01E6H        DB    0000H
  1277. D01E7H        DB    00FFH
  1278. D01E8H        DB    0000H
  1279. D01E9H        DB    "run-time error "
  1280. D01F8H        DB    0000H
  1281. D01F9H        DB    0002H
  1282. D01FAH        DB    0000H
  1283. D01FBH        DB    "R6002"
  1284. D0200H        DB    000DH
  1285. D0201H        DB    000AH
  1286. D0202H        DB    "- floating-point support not loaded"
  1287. D0225H        DB    000DH
  1288. D0226H        DB    000AH
  1289. D0227H        DB    0000H
  1290. D0228H        DB    00FFH
  1291. D0229H        DB    00FFH
  1292. D022AH        DB    00FFH
  1293. D022BH        DB    0000H
  1294.  
  1295.         END    START