home *** CD-ROM | disk | FTP | other *** search
/ Dave Lowe: Assempro 1987.07.12 / Lowe_Assempro_1987_07_12.img / DEMO / TEST.S < prev    next >
Encoding:
Text File  |  1985-11-20  |  4.7 KB  |  250 lines

  1.  ILABEL TOS\TOS.L
  2.  GEM_INIT
  3.  V_HIDE_C GR_HANDLE
  4.  WIND_GET #0,4,D3,MAXARRAY
  5.  LEA MAXARRAY,A3
  6.  LEA XPOS,A4
  7.  MOVE.L (A3)+,(A4)+
  8.  MOVE.L (A3),(A4)
  9.  WIND_CREATE #63,XPOS,D3
  10.  LEA WIHANDLE,A3
  11.  MOVE.W D3,(A3)
  12.  WIND_SET  WIHANDLE,2,FENSTERNAME,D0
  13.  WIND_SET  WIHANDLE,3,INFOZEILE,D0
  14.  LEA BREITE,A3
  15.  LSR.W (A3)+
  16.  LSR.W (A3)
  17.  WIND_CALC #1,#63,XPOS,D3,WORKARRAY+2
  18.  LEA CLIPARRAY,A4
  19.  LEA WORKARRAY+2,A3
  20.  MOVE (A3)+,D3
  21.  MOVE (A3)+,D4
  22.  MOVE D3,(A4)+
  23.  MOVE D4,(A4)+
  24.  ADD (A3)+,D3
  25.  SUBQ #1,D3
  26.  MOVE D3,(A4)+
  27.  ADD (A3),D4
  28.  SUBQ #1,D4
  29.  MOVE D4,(A4)
  30.  WIND_OPEN WIHANDLE,XPOS,D3
  31.  VS_CLIP GR_HANDLE,#1,CLIPARRAY
  32.  BSR CLEAR_SCREEN
  33.  BSR PRINT_TEXT
  34.  VS_CLIP GR_HANDLE,#0,CLIPARRAY
  35.  V_SHOW_C GR_HANDLE,#0
  36.  GRAF_MOUSE #0,ADDROUT,D3
  37.  LEA WORKARRAY,A3
  38.  CLR (A3)
  39. LOOP:
  40.  EVNT_MULTI #%10111,#1,#2,#2,WORKARRAY,WORKARRAY+2,#0,BUF,#0,MBUF,D7,XM,D0,D1
  41.  BTST #0,D7
  42.  BNE ENDE
  43.  BTST #2,D7
  44.  BEQ MF
  45.  MOVE D7,-(A7)
  46.  LEA WORKARRAY+1,A3
  47.  BCHG #0,(A3)
  48.  MOVE.B (A3),D7
  49.  ANDI #1,D7
  50.  MULU #7,D7
  51.  GRAF_MOUSE D7,ADDROUT,D3
  52.  MOVE (A7)+,D7
  53. MF:
  54.  BTST #1,D7
  55.  BNE ENDE
  56.  BTST #4,D7
  57.  BEQ LOOP
  58.  ;MESSAGE EVENT
  59.  LEA MBUF,A6
  60.  CMPI #WM_CLOSED,(A6)
  61.  BEQ ENDE
  62.  CMPI #WM_FULLED,(A6)
  63.  BNE N_FULLED
  64.   LEA XPOS,A3
  65.   LEA MAXARRAY,A4
  66.   MOVEM.L (A3)+,D0-D1
  67.   MOVEM.L (A4)+,D2-D3
  68.   MOVEM.L D0-D1,-(A4)
  69.   MOVEM.L D2-D3,-(A3)
  70. REDRAW:
  71.   V_HIDE_C GR_HANDLE
  72.   WIND_UPDATE #1,D0
  73.   WIND_SET WIHANDLE,WF_CURRXYWH,XPOS,D3
  74.   WIND_CALC #1,#63,XPOS,D3,WORKARRAY+2
  75.   LEA CLIPARRAY,A4
  76.   LEA WORKARRAY+2,A3
  77.   MOVE (A3)+,D3
  78.   MOVE (A3)+,D4
  79.   MOVE D3,(A4)+
  80.   MOVE D4,(A4)+
  81.   ADD (A3)+,D3
  82.   SUBQ #1,D3
  83.   MOVE D3,(A4)+
  84.   ADD (A3),D4
  85.   SUBQ #1,D4
  86.   MOVE D4,(A4)
  87.   WIND_UPDATE #0,D0
  88.   V_SHOW_C GR_HANDLE,#0
  89.   BRA LOOP
  90. N_FULLED:CMPI #WM_SIZED,(A6)
  91.  BNE.S N_SIZED
  92.   LEA XPOS,A3
  93.   ADDQ.L #8,A6
  94.   MOVE.L (A6)+,(A3)+
  95.   MOVE.L (A6),(A3)
  96.   BRA REDRAW
  97. N_SIZED:CMPI #WM_MOVED,(A6)
  98.  BNE N_MOVED
  99.   LEA XPOS,A3
  100.   ADDQ.L #8,A6
  101.   MOVE.L (A6)+,(A3)+
  102.   MOVE.L (A6),(A3)
  103.   BRA REDRAW
  104. N_MOVED:CMPI #WM_REDRAW,(A6)
  105.  BNE LOOP
  106.   MOVE WIHANDLE,D0
  107.   CMP 6(A6),D0
  108.   BNE LOOP
  109.   V_HIDE_C GR_HANDLE
  110.   WIND_UPDATE #1,D0
  111.   WIND_GET WIHANDLE,WF_FIRSTXYWH,D0,WBUF
  112. \LOOP:LEA WBUF,A0
  113.   MOVE 4(A0),D0
  114.   OR 6(A0),D0
  115.   BEQ \FERTIG
  116.   LEA WORKARRAY+2,A1
  117.   LEA 8(A0),A2
  118.   BSR SCHNITTFLĂ„CHE
  119.   BMI \WEITER
  120.   VS_CLIP GR_HANDLE,#1,WBUF+8
  121.   BSR CLEAR_SCREEN
  122.   BSR PRINT_TEXT
  123.   VS_CLIP GR_HANDLE,#0,WBUF
  124. \WEITER:
  125.   WIND_GET WIHANDLE,WF_NEXTXYWH,D0,WBUF
  126.   BRA \LOOP
  127. \FERTIG:
  128.   WIND_UPDATE #0,D0
  129.   V_SHOW_C GR_HANDLE,#0
  130.   BRA LOOP
  131. SCHNITTFLĂ„CHE;A0 ^ rectangle (x,y,w,h), A1 ^ window size (x,y,w,h)
  132. ; A2 ^ intersection rectangle (Xlo,Ylo,Xru,Yru)
  133. ;Zeroflag : EQ <=> intersection, NE <=> no intersection
  134.  MOVE (A0)+,D0
  135.  CMP (A1)+,D0
  136.  BHS.S \X
  137.  MOVE -2(A1),D0
  138. \X:MOVE D0,(A2)+
  139.  MOVE (A0)+,D0
  140.  CMP (A1)+,D0
  141.  BHS.S \Y
  142.  MOVE -2(A1),D0
  143. \Y:MOVE D0,(A2)+
  144.  MOVE (A0)+,D0
  145.  ADD -6(A0),D0
  146.  MOVE (A1)+,D1
  147.  ADD -6(A1),D1
  148.  CMP D1,D0
  149.  BLS.S \W
  150.  MOVE D1,D0
  151. \W:SUBQ #1,D0
  152.  MOVE D0,(A2)+
  153.  CMP -6(A2),D0 ;X1 > X2
  154.  BMI.S \R
  155.  MOVE (A0),D0
  156.  ADD -4(A0),D0
  157.  MOVE (A1),D1
  158.  ADD -4(A1),D1
  159.  CMP D1,D0
  160.  BLS.S \H
  161.  MOVE D1,D0
  162. \H:SUBQ #1,D0
  163.  MOVE D0,(A2)
  164.  CMP -4(A2),D0
  165.  BMI.S \R
  166.  MOVEQ #0,D0 ;intersection
  167. \R:RTS ;no intersection
  168. ENDE:WIND_CLOSE WIHANDLE,D3
  169.  WIND_DELETE WIHANDLE,D3
  170.  GRAF_MOUSE #0,ADDROUT,D3
  171.  GEM_EXIT
  172. PRINT_TEXT:
  173.  VSWR_MODE GR_HANDLE,#1,D3
  174.  MOVEQ #3,D7
  175.  LEA S_WCHAR,A6
  176.  MOVE #S_HBOX-S_WBOX,D6
  177. PRINTLP:
  178.  MOVEM.L D6-D7/A6,-(A7)
  179.  LEA 19(A6),A3
  180.  MOVEQ #4,D4
  181.  SUB   D7,D4
  182.  LSL   #1,D4
  183.  LEA GR_HANDLE,A4
  184.  MOVE 0(A4,D4.W),D3
  185.  BSR DEZ_CONV
  186.  MOVE.L 8(A7),A6
  187.  MOVEQ #4,D7
  188.  SUB.L 4(A7),D7
  189.  MULU GR_HHCHAR,D7
  190.  ADD WORKARRAY+4,D7
  191.  V_GTEXT GR_HANDLE,WORKARRAY+2,D7,(A6)
  192.  MOVEM.L (A7)+,D6-D7/A6
  193.  ADDA D6,A6
  194.  DBRA D7,PRINTLP
  195.  VSWR_MODE GR_HANDLE,#3,D3
  196.  RTS
  197. CLEAR_SCREEN:
  198.  VSWR_MODE GR_HANDLE,#1,D3
  199.  VSF_COLOR GR_HANDLE,#0,D3
  200.  VR_RECFL GR_HANDLE,CLIPARRAY
  201.  VSF_COLOR GR_HANDLE,#1,D3
  202.  VSWR_MODE GR_HANDLE,#3,D3
  203.  RTS
  204. DEZ_CONV:;A3=STRING,D3=ZAHL
  205.  MOVEQ #32,D4
  206.  MOVEQ #1,D5
  207.  MOVE.L #100,D6
  208. CLOOP:ANDI.L #$FFFF,D3
  209.  DIVU D6,D3
  210.  BEQ.S LZERO
  211.  MOVEQ #48,D4
  212. LZERO:ADD.B D4,D3
  213.  MOVE.B D3,(A3)+
  214.  SWAP D3
  215.  DIVU #10,D6
  216.  DBRA D5,CLOOP
  217.  ADD.B #'0',D3
  218.  MOVE.B D3,(A3)+
  219.  RTS
  220.  DATA
  221. FENSTERNAME DC.B "TEST",0,0
  222. CLS_ARRAY:DC.W 0,18,640,400
  223.  BSS
  224. NUMMER:DC.W 0
  225. XM:DC.W 0
  226. YM:DC.W 0
  227. STATUS:DC.W 0,0,0,0
  228. CLIPARRAY:DC.W 0,0,0,0
  229. WORKARRAY:DC.W 0,0,0,0,0
  230. MAXARRAY:DC.W 0,0,0,0
  231.  DATA
  232. MAX_GR:DC.W 1000
  233. XPOS DC.W 0
  234. YPOS DC.W 0
  235. BREITE DC.W 640
  236. HOEHE DC.W 400
  237. WIHANDLE DC.W 0
  238. INFOZEILE:DC.B "This is the Info line",0,0
  239.  ALIGN
  240. S_WCHAR:DC.B "Width char       :    ",0
  241. S_HCHAR:DC.B "Height char      :    ",0
  242. S_WBOX: DC.B "Width box        :    ",0
  243. S_HBOX: DC.B "Height box       :    ",0
  244.  ALIGN
  245.  BSS
  246. WBUF:DS.W 8
  247. MBUF:DS.B 16
  248. BUF:DS.B 256
  249.  END