home *** CD-ROM | disk | FTP | other *** search
/ Gold Fish 2 / goldfish_vol2_cd1.bin / files / dev / lang / struct / speedtests / struct_test_asms < prev    next >
Text File  |  1993-08-24  |  15KB  |  807 lines

  1. TEST1:
  2.  
  3.     SECTION Struct,CODE
  4.     JMP StructMCP
  5. StructPDENDYBARStart:
  6.     MOVE.L StructPDENDYBARvarA(A2),D1
  7.     MOVE.L StructPDENDYBARvarZ(A2),D2
  8.     MOVE.L #0,D1
  9.     MOVE.L #1,D2
  10.     MOVE.L #16000000,StructFor1To(A2)
  11. StructFor1Start:
  12.     ADD.L #7,D1
  13.     ADD.L #1,D2
  14.     CMP.L StructFor1To(A2),D2
  15.     BLE StructFor1Start
  16. StructFor1End:
  17.     MOVE.L D1,StructPDENDYBARvarA(A2)
  18.     MOVE.L D2,StructPDENDYBARvarZ(A2)
  19.     RTS
  20. StructPDENDYBARvarZ EQU 0
  21. StructPDENDYBARvarA EQU 4
  22.     RTS
  23. StructGlobalvarCOMMANDPOINTER EQU 8
  24. StructGlobalvarCOMMANDLENGTH EQU 12
  25. StructFor1To EQU 14
  26. StructFor1Step EQU 18
  27. StructFor1Sign EQU 22
  28. StructTempHolder EQU 24
  29. StructMCP:
  30.     MOVE.L A0,-(A7)
  31.     MOVE.W D0,-(A7)
  32.     MOVE.L 4,A6
  33.     MOVE.L #28,D0
  34.     CLR.L D1
  35.     JSR -198(A6)
  36.     CMP.L #0,D0
  37.     BNE StructMCPSkip
  38.     MOVE.L #StructErrorName,A1
  39.     CLR.L D0
  40.     JSR -552(A6)
  41.     MOVE.L D0,A6
  42.     JSR -60(A6)
  43.     MOVE.L D0,D1
  44.     MOVE.L #StructMemoryError,D2
  45.     MOVE.L #27,D3
  46.     JSR -48(A6)
  47.     ADD.L #6,A7
  48.     RTS
  49. StructMCPSkip:
  50.     MOVE.L D0,A2
  51.     MOVE.W (A7)+,StructGlobalvarCOMMANDLENGTH(A2)
  52.     MOVE.L (A7)+,StructGlobalvarCOMMANDPOINTER(A2)
  53.     JSR StructPDENDYBARStart
  54.     MOVE.L 4,A6
  55.     MOVE.L A2,A1
  56.     MOVE.L #28,D0
  57.     JSR -210(A6)
  58.     RTS
  59. StructLibraryOpener:
  60.     MOVE.L A1,A3
  61.     CLR.L D0
  62.     JSR -552(A6)
  63.     CMP #0,D0
  64.     BNE StructLOSkip
  65.     MOVE.L #StructErrorName,A1
  66.     CLR.L D0
  67.     JSR -552(A6)
  68.     MOVE.L D0,A6
  69.     JSR -60(A6)
  70.     MOVE.L D0,A4
  71.     MOVE.L A4,D1
  72.     MOVE.L #StructLibraryError,D2
  73.     MOVE.L #14,D3
  74.     JSR -48(A6)
  75.     MOVE.L A4,D1
  76.     MOVE.L A3,D2
  77. StructLOLoop:
  78.     CMP.B #0,(A3)+
  79.     BNE StructLOLoop
  80.     MOVE.L A3,D3
  81.     SUB.L D2,D3
  82.     SUB.L #1,D3
  83.     JSR -48(A6)
  84.     MOVE.L A4,D1
  85.     MOVE.L #StructLibraryError+14,D2
  86.     MOVE.L #1,D3
  87.     JSR -48(A6)
  88.     ADD.L #4,A7
  89. StructLOSkip:
  90.     RTS
  91. StructMemoryError: DC.B "Couldn't allocate 28 bytes",10
  92. StructLibraryError: DC.B "Couldn't open ",10
  93. StructErrorName: DC.B "dos.library",0
  94.     DC.B "STRUCT0.95"
  95.     END
  96.  
  97. TEST2:
  98.  
  99.     SECTION Struct,CODE
  100.     JMP StructMCP
  101. StructPDENDYBARStart:
  102.     MOVE.L StructPDENDYBARvarZ(A2),D1
  103.     MOVE.L StructPDENDYBARvarA(A2),D2
  104.     MOVE.L StructPDENDYBARvarY(A2),D3
  105.     MOVE.L #0,D2
  106.     MOVE.L #2000,D3
  107. StructPDENDYBARZeroloop1Start:
  108.     MOVE.L #20000,D1
  109. StructPDENDYBARZeroloop2Start:
  110.     ADD.L #7,D2
  111.     DBRA D1,StructPDENDYBARZeroloop2Start
  112. StructPDENDYBARZeroloop2End:
  113.     DBRA D3,StructPDENDYBARZeroloop1Start
  114. StructPDENDYBARZeroloop1End:
  115.     MOVE.L D1,StructPDENDYBARvarZ(A2)
  116.     MOVE.L D2,StructPDENDYBARvarA(A2)
  117.     MOVE.L D3,StructPDENDYBARvarY(A2)
  118.     RTS
  119. StructPDENDYBARvarZ EQU 0
  120. StructPDENDYBARvarA EQU 4
  121. StructPDENDYBARvarY EQU 8
  122.     RTS
  123. StructGlobalvarCOMMANDPOINTER EQU 12
  124. StructGlobalvarCOMMANDLENGTH EQU 16
  125. StructTempHolder EQU 18
  126. StructMCP:
  127.     MOVE.L A0,-(A7)
  128.     MOVE.W D0,-(A7)
  129.     MOVE.L 4,A6
  130.     MOVE.L #22,D0
  131.     CLR.L D1
  132.     JSR -198(A6)
  133.     CMP.L #0,D0
  134.     BNE StructMCPSkip
  135.     MOVE.L #StructErrorName,A1
  136.     CLR.L D0
  137.     JSR -552(A6)
  138.     MOVE.L D0,A6
  139.     JSR -60(A6)
  140.     MOVE.L D0,D1
  141.     MOVE.L #StructMemoryError,D2
  142.     MOVE.L #27,D3
  143.     JSR -48(A6)
  144.     ADD.L #6,A7
  145.     RTS
  146. StructMCPSkip:
  147.     MOVE.L D0,A2
  148.     MOVE.W (A7)+,StructGlobalvarCOMMANDLENGTH(A2)
  149.     MOVE.L (A7)+,StructGlobalvarCOMMANDPOINTER(A2)
  150.     JSR StructPDENDYBARStart
  151.     MOVE.L 4,A6
  152.     MOVE.L A2,A1
  153.     MOVE.L #22,D0
  154.     JSR -210(A6)
  155.     RTS
  156. StructLibraryOpener:
  157.     MOVE.L A1,A3
  158.     CLR.L D0
  159.     JSR -552(A6)
  160.     CMP #0,D0
  161.     BNE StructLOSkip
  162.     MOVE.L #StructErrorName,A1
  163.     CLR.L D0
  164.     JSR -552(A6)
  165.     MOVE.L D0,A6
  166.     JSR -60(A6)
  167.     MOVE.L D0,A4
  168.     MOVE.L A4,D1
  169.     MOVE.L #StructLibraryError,D2
  170.     MOVE.L #14,D3
  171.     JSR -48(A6)
  172.     MOVE.L A4,D1
  173.     MOVE.L A3,D2
  174. StructLOLoop:
  175.     CMP.B #0,(A3)+
  176.     BNE StructLOLoop
  177.     MOVE.L A3,D3
  178.     SUB.L D2,D3
  179.     SUB.L #1,D3
  180.     JSR -48(A6)
  181.     MOVE.L A4,D1
  182.     MOVE.L #StructLibraryError+14,D2
  183.     MOVE.L #1,D3
  184.     JSR -48(A6)
  185.     ADD.L #4,A7
  186. StructLOSkip:
  187.     RTS
  188. StructMemoryError: DC.B "Couldn't allocate 22 bytes",10
  189. StructLibraryError: DC.B "Couldn't open ",10
  190. StructErrorName: DC.B "dos.library",0
  191.     DC.B "STRUCT0.95"
  192.     END
  193.  
  194. TEST3:
  195.  
  196.     SECTION Struct,CODE
  197.     JMP StructMCP
  198. StructPDENDYBARStart:
  199.     MOVE.L StructPDENDYBARvarZ(A2),D1
  200.     MOVE.L StructPDENDYBARvarA(A2),D2
  201.     MOVE.W StructPDENDYBARvarK(A2),D3
  202.     MOVE.L #0,D2
  203.     MOVE.L #1,D1
  204.     MOVE.L #6000000,StructFor1To(A2)
  205. StructFor1Start:
  206.     MOVE.L D1,A0
  207.     MOVE.L A0,D0
  208.     DIVS.W #2,D0
  209.     MOVE.W D0,A0
  210.     MOVE.W A0,D3
  211.     SWAP.W D0
  212.     MOVE.W D0,D3
  213. StructPDENDYBARIf1Start:
  214.     CMP.W #0,D3
  215.     BNE StructPDENDYBARIf1Resolve1
  216. StructBranch1End:
  217.     ADD.L #7,D2
  218.     BRA StructPDENDYBARIf1Resolve2
  219. StructPDENDYBARIf1Resolve1:
  220.     ADD.L #15,D2
  221. StructPDENDYBARIf1Resolve2:
  222.     ADD.L #1,D1
  223.     CMP.L StructFor1To(A2),D1
  224.     BLE StructFor1Start
  225. StructFor1End:
  226.     MOVE.L D1,StructPDENDYBARvarZ(A2)
  227.     MOVE.L D2,StructPDENDYBARvarA(A2)
  228.     MOVE.W D3,StructPDENDYBARvarK(A2)
  229.     RTS
  230. StructPDENDYBARvarZ EQU 0
  231. StructPDENDYBARvarA EQU 4
  232. StructPDENDYBARvarK EQU 8
  233.     RTS
  234. StructGlobalvarCOMMANDPOINTER EQU 10
  235. StructGlobalvarCOMMANDLENGTH EQU 14
  236. StructFor1To EQU 16
  237. StructFor1Step EQU 20
  238. StructFor1Sign EQU 24
  239. StructTempHolder EQU 26
  240. StructMCP:
  241.     MOVE.L A0,-(A7)
  242.     MOVE.W D0,-(A7)
  243.     MOVE.L 4,A6
  244.     MOVE.L #30,D0
  245.     CLR.L D1
  246.     JSR -198(A6)
  247.     CMP.L #0,D0
  248.     BNE StructMCPSkip
  249.     MOVE.L #StructErrorName,A1
  250.     CLR.L D0
  251.     JSR -552(A6)
  252.     MOVE.L D0,A6
  253.     JSR -60(A6)
  254.     MOVE.L D0,D1
  255.     MOVE.L #StructMemoryError,D2
  256.     MOVE.L #27,D3
  257.     JSR -48(A6)
  258.     ADD.L #6,A7
  259.     RTS
  260. StructMCPSkip:
  261.     MOVE.L D0,A2
  262.     MOVE.W (A7)+,StructGlobalvarCOMMANDLENGTH(A2)
  263.     MOVE.L (A7)+,StructGlobalvarCOMMANDPOINTER(A2)
  264.     JSR StructPDENDYBARStart
  265.     MOVE.L 4,A6
  266.     MOVE.L A2,A1
  267.     MOVE.L #30,D0
  268.     JSR -210(A6)
  269.     RTS
  270. StructLibraryOpener:
  271.     MOVE.L A1,A3
  272.     CLR.L D0
  273.     JSR -552(A6)
  274.     CMP #0,D0
  275.     BNE StructLOSkip
  276.     MOVE.L #StructErrorName,A1
  277.     CLR.L D0
  278.     JSR -552(A6)
  279.     MOVE.L D0,A6
  280.     JSR -60(A6)
  281.     MOVE.L D0,A4
  282.     MOVE.L A4,D1
  283.     MOVE.L #StructLibraryError,D2
  284.     MOVE.L #14,D3
  285.     JSR -48(A6)
  286.     MOVE.L A4,D1
  287.     MOVE.L A3,D2
  288. StructLOLoop:
  289.     CMP.B #0,(A3)+
  290.     BNE StructLOLoop
  291.     MOVE.L A3,D3
  292.     SUB.L D2,D3
  293.     SUB.L #1,D3
  294.     JSR -48(A6)
  295.     MOVE.L A4,D1
  296.     MOVE.L #StructLibraryError+14,D2
  297.     MOVE.L #1,D3
  298.     JSR -48(A6)
  299.     ADD.L #4,A7
  300. StructLOSkip:
  301.     RTS
  302. StructMemoryError: DC.B "Couldn't allocate 30 bytes",10
  303. StructLibraryError: DC.B "Couldn't open ",10
  304. StructErrorName: DC.B "dos.library",0
  305.     DC.B "STRUCT0.95"
  306.     END
  307.  
  308. TEST4:
  309.  
  310.     SECTION Struct,CODE
  311.     JMP StructMCP
  312. StructPDENDYBARStart:
  313.     MOVE.L StructPDENDYBARvarZ(A2),D1
  314.     MOVE.L StructPDENDYBARvarA(A2),D2
  315.     MOVE.L #0,D2
  316.     MOVE.L #0,D1
  317. StructPDENDYBARRepeat1Start:
  318.     ADD.L #7,D2
  319.     ADD.L #1,D1
  320.     CMP.L #20000000,D1
  321.     BNE StructPDENDYBARRepeat1Start
  322. StructBranch1End:
  323. StructPDENDYBARRepeat1End:
  324.     MOVE.L D1,StructPDENDYBARvarZ(A2)
  325.     MOVE.L D2,StructPDENDYBARvarA(A2)
  326.     RTS
  327. StructPDENDYBARvarZ EQU 0
  328. StructPDENDYBARvarA EQU 4
  329.     RTS
  330. StructGlobalvarCOMMANDPOINTER EQU 8
  331. StructGlobalvarCOMMANDLENGTH EQU 12
  332. StructTempHolder EQU 14
  333. StructMCP:
  334.     MOVE.L A0,-(A7)
  335.     MOVE.W D0,-(A7)
  336.     MOVE.L 4,A6
  337.     MOVE.L #18,D0
  338.     CLR.L D1
  339.     JSR -198(A6)
  340.     CMP.L #0,D0
  341.     BNE StructMCPSkip
  342.     MOVE.L #StructErrorName,A1
  343.     CLR.L D0
  344.     JSR -552(A6)
  345.     MOVE.L D0,A6
  346.     JSR -60(A6)
  347.     MOVE.L D0,D1
  348.     MOVE.L #StructMemoryError,D2
  349.     MOVE.L #27,D3
  350.     JSR -48(A6)
  351.     ADD.L #6,A7
  352.     RTS
  353. StructMCPSkip:
  354.     MOVE.L D0,A2
  355.     MOVE.W (A7)+,StructGlobalvarCOMMANDLENGTH(A2)
  356.     MOVE.L (A7)+,StructGlobalvarCOMMANDPOINTER(A2)
  357.     JSR StructPDENDYBARStart
  358.     MOVE.L 4,A6
  359.     MOVE.L A2,A1
  360.     MOVE.L #18,D0
  361.     JSR -210(A6)
  362.     RTS
  363. StructLibraryOpener:
  364.     MOVE.L A1,A3
  365.     CLR.L D0
  366.     JSR -552(A6)
  367.     CMP #0,D0
  368.     BNE StructLOSkip
  369.     MOVE.L #StructErrorName,A1
  370.     CLR.L D0
  371.     JSR -552(A6)
  372.     MOVE.L D0,A6
  373.     JSR -60(A6)
  374.     MOVE.L D0,A4
  375.     MOVE.L A4,D1
  376.     MOVE.L #StructLibraryError,D2
  377.     MOVE.L #14,D3
  378.     JSR -48(A6)
  379.     MOVE.L A4,D1
  380.     MOVE.L A3,D2
  381. StructLOLoop:
  382.     CMP.B #0,(A3)+
  383.     BNE StructLOLoop
  384.     MOVE.L A3,D3
  385.     SUB.L D2,D3
  386.     SUB.L #1,D3
  387.     JSR -48(A6)
  388.     MOVE.L A4,D1
  389.     MOVE.L #StructLibraryError+14,D2
  390.     MOVE.L #1,D3
  391.     JSR -48(A6)
  392.     ADD.L #4,A7
  393. StructLOSkip:
  394.     RTS
  395. StructMemoryError: DC.B "Couldn't allocate 18 bytes",10
  396. StructLibraryError: DC.B "Couldn't open ",10
  397. StructErrorName: DC.B "dos.library",0
  398.     DC.B "STRUCT0.95"
  399.     END
  400.  
  401. TEST5:
  402.  
  403.     SECTION Struct,CODE
  404.     JMP StructMCP
  405. StructPDENDYBARStart:
  406.     MOVE.L StructPDENDYBARvarZ(A2),D1
  407.     MOVE.L StructPDENDYBARvarA(A2),D2
  408.     MOVE.L #0,D2
  409.     MOVE.L #0,D1
  410. StructPDENDYBARWhile1Start:
  411.     CMP.L #16000000,D1
  412.     BGE StructPDENDYBARWhile1End
  413. StructBranch1End:
  414.     ADD.L #7,D2
  415.     ADD.L #1,D1
  416.     BRA StructPDENDYBARWhile1Start
  417. StructPDENDYBARWhile1End:
  418.     MOVE.L D1,StructPDENDYBARvarZ(A2)
  419.     MOVE.L D2,StructPDENDYBARvarA(A2)
  420.     RTS
  421. StructPDENDYBARvarZ EQU 0
  422. StructPDENDYBARvarA EQU 4
  423.     RTS
  424. StructGlobalvarCOMMANDPOINTER EQU 8
  425. StructGlobalvarCOMMANDLENGTH EQU 12
  426. StructTempHolder EQU 14
  427. StructMCP:
  428.     MOVE.L A0,-(A7)
  429.     MOVE.W D0,-(A7)
  430.     MOVE.L 4,A6
  431.     MOVE.L #18,D0
  432.     CLR.L D1
  433.     JSR -198(A6)
  434.     CMP.L #0,D0
  435.     BNE StructMCPSkip
  436.     MOVE.L #StructErrorName,A1
  437.     CLR.L D0
  438.     JSR -552(A6)
  439.     MOVE.L D0,A6
  440.     JSR -60(A6)
  441.     MOVE.L D0,D1
  442.     MOVE.L #StructMemoryError,D2
  443.     MOVE.L #27,D3
  444.     JSR -48(A6)
  445.     ADD.L #6,A7
  446.     RTS
  447. StructMCPSkip:
  448.     MOVE.L D0,A2
  449.     MOVE.W (A7)+,StructGlobalvarCOMMANDLENGTH(A2)
  450.     MOVE.L (A7)+,StructGlobalvarCOMMANDPOINTER(A2)
  451.     JSR StructPDENDYBARStart
  452.     MOVE.L 4,A6
  453.     MOVE.L A2,A1
  454.     MOVE.L #18,D0
  455.     JSR -210(A6)
  456.     RTS
  457. StructLibraryOpener:
  458.     MOVE.L A1,A3
  459.     CLR.L D0
  460.     JSR -552(A6)
  461.     CMP #0,D0
  462.     BNE StructLOSkip
  463.     MOVE.L #StructErrorName,A1
  464.     CLR.L D0
  465.     JSR -552(A6)
  466.     MOVE.L D0,A6
  467.     JSR -60(A6)
  468.     MOVE.L D0,A4
  469.     MOVE.L A4,D1
  470.     MOVE.L #StructLibraryError,D2
  471.     MOVE.L #14,D3
  472.     JSR -48(A6)
  473.     MOVE.L A4,D1
  474.     MOVE.L A3,D2
  475. StructLOLoop:
  476.     CMP.B #0,(A3)+
  477.     BNE StructLOLoop
  478.     MOVE.L A3,D3
  479.     SUB.L D2,D3
  480.     SUB.L #1,D3
  481.     JSR -48(A6)
  482.     MOVE.L A4,D1
  483.     MOVE.L #StructLibraryError+14,D2
  484.     MOVE.L #1,D3
  485.     JSR -48(A6)
  486.     ADD.L #4,A7
  487. StructLOSkip:
  488.     RTS
  489. StructMemoryError: DC.B "Couldn't allocate 18 bytes",10
  490. StructLibraryError: DC.B "Couldn't open ",10
  491. StructErrorName: DC.B "dos.library",0
  492.     DC.B "STRUCT0.95"
  493.     END
  494.  
  495. TEST6:
  496.  
  497.     SECTION Struct,CODE
  498.     JMP StructMCP
  499. StructPDENDYBARStart:
  500.     MOVE.L StructPDENDYBARvarZ(A2),D1
  501.     MOVE.L StructPDENDYBARvarA(A2),D2
  502.     MOVE.L #0,D2
  503.     MOVE.L #0,D1
  504. StructPDENDYBARLoop1Start:
  505.     ADD.L #7,D2
  506.     ADD.L #1,D1
  507.     CMP.L #16000000,D1
  508.     BLT StructPDENDYBARLoop1Start
  509. StructBranch1End:
  510. StructPDENDYBARLoop1End:
  511.     MOVE.L D1,StructPDENDYBARvarZ(A2)
  512.     MOVE.L D2,StructPDENDYBARvarA(A2)
  513.     RTS
  514. StructPDENDYBARvarZ EQU 0
  515. StructPDENDYBARvarA EQU 4
  516.     RTS
  517. StructGlobalvarCOMMANDPOINTER EQU 8
  518. StructGlobalvarCOMMANDLENGTH EQU 12
  519. StructTempHolder EQU 14
  520. StructMCP:
  521.     MOVE.L A0,-(A7)
  522.     MOVE.W D0,-(A7)
  523.     MOVE.L 4,A6
  524.     MOVE.L #18,D0
  525.     CLR.L D1
  526.     JSR -198(A6)
  527.     CMP.L #0,D0
  528.     BNE StructMCPSkip
  529.     MOVE.L #StructErrorName,A1
  530.     CLR.L D0
  531.     JSR -552(A6)
  532.     MOVE.L D0,A6
  533.     JSR -60(A6)
  534.     MOVE.L D0,D1
  535.     MOVE.L #StructMemoryError,D2
  536.     MOVE.L #27,D3
  537.     JSR -48(A6)
  538.     ADD.L #6,A7
  539.     RTS
  540. StructMCPSkip:
  541.     MOVE.L D0,A2
  542.     MOVE.W (A7)+,StructGlobalvarCOMMANDLENGTH(A2)
  543.     MOVE.L (A7)+,StructGlobalvarCOMMANDPOINTER(A2)
  544.     JSR StructPDENDYBARStart
  545.     MOVE.L 4,A6
  546.     MOVE.L A2,A1
  547.     MOVE.L #18,D0
  548.     JSR -210(A6)
  549.     RTS
  550. StructLibraryOpener:
  551.     MOVE.L A1,A3
  552.     CLR.L D0
  553.     JSR -552(A6)
  554.     CMP #0,D0
  555.     BNE StructLOSkip
  556.     MOVE.L #StructErrorName,A1
  557.     CLR.L D0
  558.     JSR -552(A6)
  559.     MOVE.L D0,A6
  560.     JSR -60(A6)
  561.     MOVE.L D0,A4
  562.     MOVE.L A4,D1
  563.     MOVE.L #StructLibraryError,D2
  564.     MOVE.L #14,D3
  565.     JSR -48(A6)
  566.     MOVE.L A4,D1
  567.     MOVE.L A3,D2
  568. StructLOLoop:
  569.     CMP.B #0,(A3)+
  570.     BNE StructLOLoop
  571.     MOVE.L A3,D3
  572.     SUB.L D2,D3
  573.     SUB.L #1,D3
  574.     JSR -48(A6)
  575.     MOVE.L A4,D1
  576.     MOVE.L #StructLibraryError+14,D2
  577.     MOVE.L #1,D3
  578.     JSR -48(A6)
  579.     ADD.L #4,A7
  580. StructLOSkip:
  581.     RTS
  582. StructMemoryError: DC.B "Couldn't allocate 18 bytes",10
  583. StructLibraryError: DC.B "Couldn't open ",10
  584. StructErrorName: DC.B "dos.library",0
  585.     DC.B "STRUCT0.95"
  586.     END
  587.  
  588. TEST7:
  589.  
  590.     SECTION Struct,CODE
  591.     JMP StructMCP
  592. StructPDENDYBARStart:
  593.     MOVE.L StructPDENDYBARvarZ(A2),D1
  594.     MOVE.L StructPDENDYBARvarA(A2),D2
  595.     MOVE.L StructPDENDYBARvarB(A2),D3
  596.     MOVE.L #0,D2
  597.     MOVE.L #0,D3
  598.     MOVE.L #1,D1
  599.     MOVE.L #8000000,StructFor1To(A2)
  600. StructFor1Start:
  601. StructPDENDYBARIf1Start:
  602.     MOVE.L D3,A1
  603.     ADD.W #203,A1
  604.     MOVE.L D2,A0
  605.     ADD.W #203,A0
  606.     CMP.L A1,A0
  607.     BGE StructPDENDYBARIf1Resolve1
  608. StructBranch1End:
  609.     ADD.L #1,D2
  610.     BRA StructPDENDYBARIf1Resolve2
  611. StructPDENDYBARIf1Resolve1:
  612.     ADD.L #1,D3
  613. StructPDENDYBARIf1Resolve2:
  614.     ADD.L #1,D1
  615.     CMP.L StructFor1To(A2),D1
  616.     BLE StructFor1Start
  617. StructFor1End:
  618.     MOVE.L D1,StructPDENDYBARvarZ(A2)
  619.     MOVE.L D2,StructPDENDYBARvarA(A2)
  620.     MOVE.L D3,StructPDENDYBARvarB(A2)
  621.     RTS
  622. StructPDENDYBARvarZ EQU 0
  623. StructPDENDYBARvarA EQU 4
  624. StructPDENDYBARvarB EQU 8
  625.     RTS
  626. StructGlobalvarCOMMANDPOINTER EQU 12
  627. StructGlobalvarCOMMANDLENGTH EQU 16
  628. StructFor1To EQU 18
  629. StructFor1Step EQU 22
  630. StructFor1Sign EQU 26
  631. StructTempHolder EQU 28
  632. StructMCP:
  633.     MOVE.L A0,-(A7)
  634.     MOVE.W D0,-(A7)
  635.     MOVE.L 4,A6
  636.     MOVE.L #32,D0
  637.     CLR.L D1
  638.     JSR -198(A6)
  639.     CMP.L #0,D0
  640.     BNE StructMCPSkip
  641.     MOVE.L #StructErrorName,A1
  642.     CLR.L D0
  643.     JSR -552(A6)
  644.     MOVE.L D0,A6
  645.     JSR -60(A6)
  646.     MOVE.L D0,D1
  647.     MOVE.L #StructMemoryError,D2
  648.     MOVE.L #27,D3
  649.     JSR -48(A6)
  650.     ADD.L #6,A7
  651.     RTS
  652. StructMCPSkip:
  653.     MOVE.L D0,A2
  654.     MOVE.W (A7)+,StructGlobalvarCOMMANDLENGTH(A2)
  655.     MOVE.L (A7)+,StructGlobalvarCOMMANDPOINTER(A2)
  656.     JSR StructPDENDYBARStart
  657.     MOVE.L 4,A6
  658.     MOVE.L A2,A1
  659.     MOVE.L #32,D0
  660.     JSR -210(A6)
  661.     RTS
  662. StructLibraryOpener:
  663.     MOVE.L A1,A3
  664.     CLR.L D0
  665.     JSR -552(A6)
  666.     CMP #0,D0
  667.     BNE StructLOSkip
  668.     MOVE.L #StructErrorName,A1
  669.     CLR.L D0
  670.     JSR -552(A6)
  671.     MOVE.L D0,A6
  672.     JSR -60(A6)
  673.     MOVE.L D0,A4
  674.     MOVE.L A4,D1
  675.     MOVE.L #StructLibraryError,D2
  676.     MOVE.L #14,D3
  677.     JSR -48(A6)
  678.     MOVE.L A4,D1
  679.     MOVE.L A3,D2
  680. StructLOLoop:
  681.     CMP.B #0,(A3)+
  682.     BNE StructLOLoop
  683.     MOVE.L A3,D3
  684.     SUB.L D2,D3
  685.     SUB.L #1,D3
  686.     JSR -48(A6)
  687.     MOVE.L A4,D1
  688.     MOVE.L #StructLibraryError+14,D2
  689.     MOVE.L #1,D3
  690.     JSR -48(A6)
  691.     ADD.L #4,A7
  692. StructLOSkip:
  693.     RTS
  694. StructMemoryError: DC.B "Couldn't allocate 32 bytes",10
  695. StructLibraryError: DC.B "Couldn't open ",10
  696. StructErrorName: DC.B "dos.library",0
  697.     DC.B "STRUCT0.95"
  698.     END
  699.  
  700. TEST8:
  701.  
  702.     SECTION Struct,CODE
  703.     JMP StructMCP
  704. StructPDENDYBARStart:
  705.     MOVE.B StructPDENDYBARvarZ(A2),D1
  706.     MOVE.W StructPDENDYBARvarA(A2),D2
  707.     MOVE.L StructPDENDYBARvarB(A2),A3
  708.     MOVE.W #1,D2
  709.     MOVE.W #20,StructFor1To(A2)
  710. StructFor1Start:
  711.     MOVE.L #1,A3
  712.     MOVE.L #500000,StructFor2To(A2)
  713. StructFor2Start:
  714.     MOVE.B 120(A3,D2.W),D1
  715.     ADD.L #1,A3
  716.     CMP.L StructFor2To(A2),A3
  717.     BLE StructFor2Start
  718. StructFor2End:
  719.     ADD.W #1,D2
  720.     CMP.W StructFor1To(A2),D2
  721.     BLE StructFor1Start
  722. StructFor1End:
  723.     MOVE.B D1,StructPDENDYBARvarZ(A2)
  724.     MOVE.W D2,StructPDENDYBARvarA(A2)
  725.     MOVE.L A3,StructPDENDYBARvarB(A2)
  726.     RTS
  727. StructPDENDYBARvarA EQU 0
  728. StructPDENDYBARvarB EQU 2
  729. StructPDENDYBARvarZ EQU 6
  730.     RTS
  731. StructGlobalvarCOMMANDPOINTER EQU 8
  732. StructGlobalvarCOMMANDLENGTH EQU 12
  733. StructFor1To EQU 14
  734. StructFor1Step EQU 18
  735. StructFor2To EQU 22
  736. StructFor2Step EQU 26
  737. StructFor1Sign EQU 30
  738. StructFor2Sign EQU 31
  739. StructTempHolder EQU 32
  740. StructMCP:
  741.     MOVE.L A0,-(A7)
  742.     MOVE.W D0,-(A7)
  743.     MOVE.L 4,A6
  744.     MOVE.L #36,D0
  745.     CLR.L D1
  746.     JSR -198(A6)
  747.     CMP.L #0,D0
  748.     BNE StructMCPSkip
  749.     MOVE.L #StructErrorName,A1
  750.     CLR.L D0
  751.     JSR -552(A6)
  752.     MOVE.L D0,A6
  753.     JSR -60(A6)
  754.     MOVE.L D0,D1
  755.     MOVE.L #StructMemoryError,D2
  756.     MOVE.L #27,D3
  757.     JSR -48(A6)
  758.     ADD.L #6,A7
  759.     RTS
  760. StructMCPSkip:
  761.     MOVE.L D0,A2
  762.     MOVE.W (A7)+,StructGlobalvarCOMMANDLENGTH(A2)
  763.     MOVE.L (A7)+,StructGlobalvarCOMMANDPOINTER(A2)
  764.     JSR StructPDENDYBARStart
  765.     MOVE.L 4,A6
  766.     MOVE.L A2,A1
  767.     MOVE.L #36,D0
  768.     JSR -210(A6)
  769.     RTS
  770. StructLibraryOpener:
  771.     MOVE.L A1,A3
  772.     CLR.L D0
  773.     JSR -552(A6)
  774.     CMP #0,D0
  775.     BNE StructLOSkip
  776.     MOVE.L #StructErrorName,A1
  777.     CLR.L D0
  778.     JSR -552(A6)
  779.     MOVE.L D0,A6
  780.     JSR -60(A6)
  781.     MOVE.L D0,A4
  782.     MOVE.L A4,D1
  783.     MOVE.L #StructLibraryError,D2
  784.     MOVE.L #14,D3
  785.     JSR -48(A6)
  786.     MOVE.L A4,D1
  787.     MOVE.L A3,D2
  788. StructLOLoop:
  789.     CMP.B #0,(A3)+
  790.     BNE StructLOLoop
  791.     MOVE.L A3,D3
  792.     SUB.L D2,D3
  793.     SUB.L #1,D3
  794.     JSR -48(A6)
  795.     MOVE.L A4,D1
  796.     MOVE.L #StructLibraryError+14,D2
  797.     MOVE.L #1,D3
  798.     JSR -48(A6)
  799.     ADD.L #4,A7
  800. StructLOSkip:
  801.     RTS
  802. StructMemoryError: DC.B "Couldn't allocate 36 bytes",10
  803. StructLibraryError: DC.B "Couldn't open ",10
  804. StructErrorName: DC.B "dos.library",0
  805.     DC.B "STRUCT0.95"
  806.     END
  807.