 .MachineCode          X     Init         X     Plt         X     Plt3D         X     Calc3D         X     CalcY         X     CalcList         X     SortList         X     PltList         X     Distance         X     PltWay           ; Init(PunktFeld) ;       a1  Init:         ~.l  a1,Points         ~.l  d0,Width         z     RotMat(pc),a0            ; Plt3D(BitMap,X,Y,Z) ;         a0  d0 d1 d2  Plt3D:         .l d0-d2,-(a7)         Y     Calc3D         .l   d0         O     Exit1         Y     Plt Exit1:  .l (a7)+,d0-d2            ; PltWay(BitMap,Z1,Z2) ;          a0    d0 d1  PltWay:         .l d0-d7/a1,-(a7)         ~.l  d0,d3         ~.l  d1,d7         @.l  #1,d1             ##cds,d1             Width+2(pc),d1         ~.l  Points(pc),a1         =.l   d1,a1  LoopZ1: ~.l  Width(pc),d6         .l  #1,d6 LoopX1: .l  #2,a1   ; Farbkennwert berspringen         ~    -(a1),d2         ~    -(a1),d1         ~    -(a1),d0         Y     Plt3D          n     d6,LoopX1         .l  #1,d7         \.l   d3,d7         I     LoopZ1          .l (a7)+,d0-d7/a1            ; Plt(BitMap,X,Y,Color) ;      a0   d0 d1 d2  Plt:         .l d0-d7/a0-a6,-(a7)              d0         O     Exit3              d1         O     Exit3         \     XSize(pc),d0         Q     Exit3         \     YSize(pc),d1         Q     Exit3          v.l   d0         ~    (a0),d3             d1,d3         ~.l  d0,d4         E.l   #3,d4         =.l   d4,d3   ; Offset          ~    d0,d4         B.l   #7,d4         s.l   #7,d4   ; Bit          ~.b  5(a0),d5         v.w   d5         D.w   #2,d5         z     4(a0,d5.w),a1          ~.b  5(a0),d7         v.w   d7             #1,d7  Loop1:  ~.l  (a1),a2         =.l   d3,a2          W    d7,d2         P     Set1          U    d4,(a2)         X     Conti1  Set1:   V    d4,(a2)  Conti1:     #4,a1         n     d7,Loop1  Exit3:  .l (a7)+,d0-d7/a0-a6            ClipPlotCoord:              d0         Q     NoClip1         [     d0 NoClip1:     d1         Q     NoClip2         [     d1 NoClip2:\     XSize(pc),d0         N     NoClip3         ~    XSize(pc),d0             #1,d0 NoClip3:\     YSize(pc),d1         N     NoClip4         ~    YSize(pc),d1             #1,d1 NoClip4:B     #$1F,d2           ; LineBB(X,Y,Color) ;       d0 d1 d2 LineBB:         .l d0-d7/a0-a6,-(a7)         Y     ClipPlotCoord           d0,LX.w           d1,LY.w           d2,LC.w              LX,LY,LC          .l (a7)+,d0-d7/a0-a6           ; PlotBB(X,Y,Color) ;       d0 d1 d2 PlotBB:         .l d0-d7/a0-a6,-(a7)         Y     ClipPlotCoord           d0,LX.w           d1,LY.w           d2,LC.w              LX,LY,LX,LY,LC          .l (a7)+,d0-d7/a0-a6           .BlitterSubs  dx: %.w 0 dy: %.w 0 adx:%.w 0 ady:%.w 0 okt:%.b 0 dif:%.w 0 lastx:%.w 0 lasty:%.w 0 lastdy:%.w 0 minx: %.w 320-1 maxx: %.w 0 miny: %.w 256-1 maxy: %.w 0 sign:   %.w 0 bltsize:%.w 0 dep:    %.w 0 bmwid:  %.w 0 bmhei:  %.w 0 plane1: %.l 0 plane2: %.l 0 startb: %.l 0 bufferbm:%.l 0 destbm:  %.l 0 bltcon0:%.w 0 bltcon1:%.w 0 maskfw: %.w 0 masklw: %.w 0  WaitBlit:         W #14,$DFF002         P WaitBlit           ; DrawAreaLine{x.w,y.w} DrawAreaLine:         .l d0-d4,-(a7)         Y ClipPlotCoord          \ minx,d0         I NoMinX         ~ d0,minx NoMinX: \ maxx,d0         L NoMaxX         ~ d0,maxx NoMaxX: \ miny,d1         I NoMinY         ~ d1,miny NoMinY: \ maxy,d1         L NoMaxY         ~ d1,maxy NoMaxY:         ~ lastx,d2         ~ lasty,d3         ~ d0,lastx         ~ d1,lasty         \ d1,d3         J DownLine         u d0,d2         u d1,d3 DownLine:         y BlitAreaLine         .l (a7)+,d0-d4            ; BlitAreaLine{x1.w,y1.w,x2.w,y2.w} BlitAreaLine:         .l d0-d7/a0-a6,-(a7)          ~ dy,lastdy         ~ d2,dx          d0,dx         ~ d3,dy          d1,dy         ~ dx,adx         Q NoNeg00          adx NoNeg00:~ dy,ady         Q NoNeg01          ady NoNeg01:~ dx,d7          dy,d7         H NoLine1          ~ adx,d7          ady,d7          ady,d7         ~ d7,lastdy          [ okt          dx         O NoOkt0         V #0,okt+1 NoOkt0:  dy         O NoOkt1         V #1,okt+1 NoOkt1: ~ adx,d7         \ ady,d7         N NoOkt2         V #2,okt+1         ~ ady,d7         ~ adx,ady         ~ d7,adx NoOkt2: [ sign         D #1,d7         \ ady,d7         I NoSign         ~ #$40,sign NoSign:         ~ ady,d6         D #6,d6         @ #2,d6         ~ d6,bltsize          ~.l bufferbm,a0         ~ 0(a0),bmwid         ~ 2(a0),bmhei         ~ 4(a0),dep         ~.l 8(a0),plane1         ~.l 12(a0),plane2          ~ d1,d7          bmwid,d7         ~ d0,d6         E #3,d6         = d6,d7         v.l d7         ~.l d7,startb          Y WaitBlit          ~ adx,d7         D #1,d7         ~ d7,$DFF062          ady,d7         ~ d7,$DFF052          ady,d7         ~ d7,$DFF064          ~ bmwid,$DFF060         ~ bmwid,$DFF066         ~ #$8000,$DFF074         ~ #$FFFF,$DFF072         ~ #$FFFF,$DFF044         ~ #$FFFF,$DFF046         [ $DFF070         [.l $DFF04C          ~.l plane1,d7         =.l startb,d7         ~.l d7,$DFF048         ~.l d7,$DFF054          ~ d0,d7         | #8,d7         | #4,d7         ~ d7,bltcon0          #$B4A,d7         ~ d7,$DFF040         ~ okt,d7         ~.l #OktaData+10*#debug,a1         ~.b 0(a1,d7),d7         v.w d7         | #2,d7          sign,d7         @ #3,d7 ;Linienmodus+SingleMode         ~ d7,bltcon1         ~ d7,$DFF042         ~ bltsize,$DFF058         ~ #$8440,$DFF096   ; DMA freigeben          Y WaitBlit           lastdy         O NoCorrect         ~ d3,d7          bmwid,d7         ~ d2,d6         E #3,d6         = d6,d7         v.l d7         =.l plane1,d7         ~.l d7,a1         ~ d2,d7          d7         B #7,d7         T d7,(a1) NoCorrect:         ~ #$40,$DFF096         ~.l plane2,d7         =.l startb,d7         ~.l d7,$DFF048         ~.l d7,$DFF054          ~ bltcon0,d7          #$BCA,d7         ~ d7,$DFF040         ~ bltcon1,d7          #2,d7 ;SingleMode off         ~ d7,$DFF042         ~ bltsize,$DFF058         ~ #$8440,$DFF096 NoLine1:         .l (a7)+,d0-d7/a0-a6           OktaData:         %.b  3,1,2,0,7,6,5,4   ; BlitFill{} BlitFill:         .l d0-d7/a0-a6,-(a7)          ~ minx,d0         ~ miny,d1         ~ maxx,d2         ~ maxy,d3         E #3,d0         E #3,d2         U #0,d0         U #0,d2         @ #1,d2         ~ d2,dx          d0,dx         ~ d3,dy          d1,dy          ~.l bufferbm,a0         ~ 0(a0),bmwid         ~ 2(a0),bmhei         ~ 4(a0),dep         ~.l 8(a0),plane1         ~.l 12(a0),plane2         ~ d1,d6          (a0),d6         v.l d2         =.l d2,d6         =.l d6,plane1         =.l d6,plane2          ~ dx,d6         E #1,d6         ~ dy,d5         D #6,d5         = d5,d6         = #%1000001,d6         ~ d6,bltsize          Y WaitBlit          ~ bmwid,d6         = dx,d6          d6         [ $DFF060         [ $DFF062         ~ d6,$DFF064         ~ d6,$DFF066          ~ #%100111110000,$DFF040         ~ #%10010,$DFF042         ~ #$FFFF,$DFF044         ~ #$FFFF,$DFF046         [ $DFF070         [ $DFF072         [ $DFF074         [.l $DFF048         [.l $DFF04C         ~.l plane1,$DFF050         ~.l plane1,$DFF054         ~ #$8440,$DFF096         ~ bltsize,$DFF058          .l (a7)+,d0-d7/a0-a6            ; BlitMerge{} BlitMerge:         .l d0-d7/a0-a6,-(a7)          ~ minx,d0         ~ miny,d1         ~ maxx,d2         ~ maxy,d3         E #3,d0         E #3,d2         U #0,d0         U #0,d2         @ #1,d2         ~ d2,dx          d0,dx         ~ d3,dy          d1,dy          ~.l bufferbm,a0         ~ 0(a0),bmwid         ~ 2(a0),bmhei         ~ 4(a0),dep         ~.l 8(a0),plane1         ~.l 12(a0),plane2         ~ d1,d6          (a0),d6         v.l d0         =.l d0,d6         =.l d6,plane1         =.l d6,plane2          ~ dx,d6         E #1,d6         ~ dy,d5         D #6,d5         = d5,d6         = #%1000001,d6         ~ d6,bltsize          Y WaitBlit          ~ bmwid,d6          dx,d6         [ $DFF060         ~ d6,$DFF062         ~ d6,$DFF064         ~ d6,$DFF066          ~ #%110111111100,$DFF040         ~ #0,$DFF042         ~ #$FFFF,$DFF044         ~ #$FFFF,$DFF046         [ $DFF070         [ $DFF072         [ $DFF074         [.l $DFF048         ~.l plane1,$DFF050         ~.l plane2,$DFF04C         ~.l plane1,$DFF054         ~ #$8440,$DFF096         ~ bltsize,$DFF058          .l (a7)+,d0-d7/a0-a6           BlitClear:         .l d0-d7/a0-a6,-(a7)          ~ minx,d0         ~ miny,d1         ~ maxx,d2         ~ maxy,d3         E #3,d0         E #3,d2         U #0,d0         U #0,d2         @ #1,d2         ~ d2,dx          d0,dx         ~ d3,dy          d1,dy          ~.l bufferbm,a0         ~ 0(a0),bmwid         ~ 2(a0),bmhei         ~ 4(a0),dep         ~.l 8(a0),plane1         ~.l 12(a0),plane2         ~ d1,d6          (a0),d6         v.l d0         =.l d0,d6         =.l d6,plane1         =.l d6,plane2          ~ dx,d6         E #1,d6         ~ dy,d5         D #6,d5         = d5,d6         = #%1000001,d6         ~ d6,bltsize          Y WaitBlit          ~ bmwid,d6          dx,d6         [ $DFF060         [ $DFF062         [ $DFF064         ~ d6,$DFF066          ~ #$100,$DFF040         ~ #0,$DFF042         ~ #$FFFF,$DFF044         ~ #$FFFF,$DFF046         [.l $DFF048         [.l $DFF04C         [.l $DFF050         ~.l plane1,$DFF054         ~ #$8440,$DFF096         ~ bltsize,$DFF058          Y WaitBlit          ~.l plane2,$DFF054         ~ #$8440,$DFF096         ~ bltsize,$DFF058          .l (a7)+,d0-d7/a0-a6            ; BlitColor{color.w} BlitColor:         .l d0-d7/a0-a6,-(a7)          ~ minx,d0         ~ miny,d1         ~ maxx,d2         ~ maxy,d3         E #3,d0         E #3,d2         U #0,d0         U #0,d2         @ #1,d2         ~ d2,dx          d0,dx         ~ d3,dy          d1,dy          ~.l bufferbm,a0         ~ 0(a0),bmwid         ~ 2(a0),bmhei         ~.l 8(a0),plane1         ~ d1,d6          (a0),d6         v.l d0         =.l d0,d6         =.l d6,plane1         ~.l d6,plane2          ~.l destbm,a1         ~ 4(a1),dep         =.l #8,a1          ~ dx,d6         E #1,d6         ~ dy,d5         D #6,d5         = d5,d6         = #%1000001,d6         ~ d6,bltsize          [ d7  BlitNextPlane:         Y WaitBlit          ~ bmwid,d6          dx,d6         [ $DFF060         ~ d6,$DFF062         ~ d6,$DFF064         ~ d6,$DFF066          ~ #%110100001100,d6         W d7,d4         H ClearForm          #$F0,d6 ClearForm:         ~ d6,$DFF040         ~ #0,$DFF042         ~ #$FFFF,$DFF044         ~ #$FFFF,$DFF046         [ $DFF070         [ $DFF072         [ $DFF074         [.l $DFF048         ~.l (a1),a2         =.l plane2,a2         ~.l plane1,$DFF050         ~.l a2,$DFF04C         ~.l a2,$DFF054         ~ #$8440,$DFF096         ~ bltsize,$DFF058          @ #4,a1         @ #1,d7         \ dep,d7         N BlitNextPlane          .l (a7)+,d0-d7/a0-a6            ; BlitBar(BBBitmap,x1,x2,y1,height,mask) ;          a0      d0 d1 d2  d3     d4 BlitBar:         .l d0-d7/a0-a6,-(a7)          \     d0,d1         H     NoBlitBar         J     BarL2R         u     d0,d1 BarL2R:         ~.l  #$FFFF,d7         ~    d0,d6         B     #15,d6         .l   d6,d7         ~    d7,maskfw          .l #-1,d7         [     d7         ~    d1,d6         B     #15,d6         .l   d6,d7         ~    d7,masklw          E #3,d0         E #3,d1         U #0,d0         U #0,d1         @ #1,d1         ~ d1,dx          d0,dx         @ #1,dx          ~ 0(a0),bmwid         ~ 2(a0),bmhei         ~ 4(a0),dep         ~.l 28(a0),plane1         ~ d2,d6          (a0),d6         v.l d0         =.l d0,d6         =.l d6,plane1         =.l d6,plane2          ~ dx,d6         E #1,d6         ~ d3,d5         D #6,d5         = d5,d6         ~ d6,bltsize          Y WaitBlit          ~ bmwid,d6          dx,d6         [ $DFF060         ~ d6,$DFF062         ~ d6,$DFF064         ~ d6,$DFF066          ~ #%010100111100,$DFF040         ~ #0,$DFF042         ~ maskfw,$DFF044         ~ masklw,$DFF046         [ $DFF070         [ $DFF072         ~ d4,$DFF074         ~.l plane1,$DFF04C         ~.l plane1,$DFF054         ~ bltsize,$DFF058         ~ #$8440,$DFF096  NoBlitBar:         .l (a7)+,d0-d7/a0-a6            ; Points = CalcList(Z1) ;  d0               d0  CalcList:         .l d1-d7/a1-a3,-(a7)              SearchVisible         Q     NoSV         ~    d0,d1             Width+2(pc),d1         ~.l  Width(pc),d2         E     #1,d2         @    #1,d2         =     d2,d1             #cds,d1         ~.l  Points(pc),a1         =.l   d1,a1          ~    LastField(pc),d3              d0,d3             #1,d3         ~    d0,d4              LineBP(pc),a1             #1,d4 SearchV:         =     LineBP(pc),a1         @    #1,d4         ~    0(a1),d0         ~    2(a1),d1         ~    4(a1),d2         Y     CalcY         \     Bottom(pc),d0         f    d3,SearchV         ~    d4,d0  NoSV:        AlignMode         Q     NoAlign         ~    d0,d7         v.l   d7         r    GridDistB(pc),d7             d7         ~.l  d7,d6         [.w   d6         }.l   #1,d6         ~    d6,FirstColor              d7,d0 ;an Raster ausrichten  NoAlign:             ##cds,d0             Width+2(pc),d0         ~.l  Points(pc),a1         =.l   d0,a1          ~.l  SList(pc),a2         z.l   {DefaultLTag+#debug*10}(pc),a3         ~.l  #3*#sts/2-1,d0 Copy1:  ~    (a3)+,(a2)+         n     d0,Copy1         ~.l  SList(pc),d0         ~.l  SList(pc),a3         =.l   d0,(a3)         =.l   d0,1*#sts(a3)         =.l   d0,2*#sts(a3)          ~    NumB(pc),d7         [     d5 LoopZ3: ~    NumA(pc),d6         [     d4         ~    FirstColor,AlterColor LoopX3:      d4         H     CaPo              d5         P     NoPoint CaPo:   Y     Calc3DTag              d6         P     ContX3         =     ##cds,a1         =     ##sts,a2         X     AbortX3  NoPoint: ContX3: =     DistAP(pc),a1         =     ##sts,a2         @    #1,d4         \     GridA(pc),d4         N     NoModA         =     #$8000,AlterColor         [     d4 NoModA: n     d6,LoopX3  AbortX3:         =     DistBP(pc),a1         @    #1,d5         \     GridB(pc),d5         N     NoModB         =     #$8000,FirstColor         ~    FirstColor,AlterColor         [     d5 NoModB: n     d7,LoopZ3          .l (a7)+,d1-d7/a1-a3            SortList: ; RealPoints=SortList() ;      d0          .l d1-d7/a1-a3,-(a7)         ~    NumSortPoints(pc),d1             #1,d1         [.l   d0         ~.l  SList(pc),a1         =.l   #2*#sts,a1 NextTag: Unvisi: =.l   ##sts,a1         W    #0,8(a1)         b    d1,Unvisi               d1         O     ExitSortList          ~    d0,d2         @.l  #1,d0         ~.l  SList(pc),a2  0   .l d0-d7/a0-a6,RegBuffer    a1,tagadr    .b(tagadr+8)&6=0     x1.f=.l(tagadr+20)     x2.f=.l(tagadr+20-incb)     x3.f=.l(tagadr+20-inca)     x4.f=.l(tagadr+20-inca-incb)     y1.f=.l(tagadr+24)     y2.f=.l(tagadr+24-incb)     y3.f=.l(tagadr+24-inca)     y4.f=.l(tagadr+24-inca-incb)     z1.f=.l(tagadr+28)     z2.f=.l(tagadr+28-incb)     z3.f=.l(tagadr+28-inca)     z4.f=.l(tagadr+28-inca-incb)    0     xy12.f=y1*x2-y2*x1     xy34.f=y3*x4-y4*x3     div.f=(x2-x1)*xy34-(x4-x3)*xy12      div       c.f=((z1*x2-z2*x1)*xy34-(z3*x4-z4*x3)*xy12)/div     "       c.f=$7E000000             0     c=z1      z2<c ! c=z2      z3<c ! c=z3      z4<c ! c=z4         c=(z1+z2+z3+z4)/4         .l tagadr+4,c      .l RegBuffer,d0-d7/a0-a6           ~.l  28(a1),d3          ~.b  8(a1),d5         B.b   #6,d5         P     FindPos          E.l   #2,d3         ~    FSizeA(pc),d5              d5         ~.l  28(a1,d5),d4         E.l   #2,d4         =.l   d4,d3              FSizeB(pc),d5         ~.l  28(a1,d5),d4         E.l   #2,d4         =.l   d4,d3         =     FSizeA(pc),d5         ~.l  28(a1,d5),d4         E.l   #2,d4         =.l   d4,d3         ~.l  d3,4(a1)  FindPos:         ~.l  a2,a3         ~.l  (a2),a2         \.l   4(a2),d3         c    d2,FindPos  Insert:         ~.l  a1,(a3)         ~.l  a2,(a1)          n     d1,NextTag ExitSortList:         .l  #1,d0         .l (a7)+,d1-d7/a1-a3           .DisplayField PltList: ; Plt(BitMap,RealPoints) ;      a0     d0          .l d7/a1,-(a7)         ~.l  SList(pc),a1         ~.l  (a1),a1         ~    d0,d7         L     BlitPltSort PltSortBG:         Y     PltStrip         ~.l  (a1),a1         .l   4(a1)         i    d7,PltSortBG  BlitPltSort:         .l d0/d7/a0-a1,RegBuffer          1,ballxp,ballyp         .l RegBuffer,d0/d7/a0-a1          X     PltSortLoopEnd PltSortFG:         Y     PltStrip         ~.l  (a1),a1 PltSortLoopEnd:         n     d7,PltSortFG  ExitPltSort:         .l (a7)+,d7/a1            PltStrip: ; Plt(BitMap,PointTag) ;      a0     a1          .l d0-d2/d7/a2,-(a7)          ~    10(a1),d0         ~    12(a1),d1         ~    14(a1),d2         Y     Plt          ~    GridA(pc),d7             #2,d7         O     PltVStrip         W    #2,8(a1)         P     PltVStrip         ~.l  a1,a2 PlotHoriz:              ##sts,a2         ~    10(a2),d0         ~    12(a2),d1         ~    14(a2),d2         Y     Plt         n     d7,PlotHoriz  PltVStrip:         ~    GridB(pc),d7             #2,d7         O     ExitPS         W    #1,8(a1)         P     ExitPS         ~.l  a1,a2 PlotVerti:              GridBS(pc),a2         ~    10(a2),d0         ~    12(a2),d1         ~    14(a2),d2         Y     Plt         n     d7,PlotVerti  ExitPS: .l (a7)+,d0-d2/d7/a2            LineList: ; Line(BitMap,RealPoints) ;      a0     d0          .l d7/a1,-(a7)         ~.l  SList(pc),a1         ~.l  (a1),a1         ~    d0,d7         L     BlitLineSort LineSortBG:         Y     LineStrip         ~.l  (a1),a1         .l   4(a1)         i    d7,LineSortBG  BlitLineSort:         .l d0/d7/a0-a1,RegBuffer          1,ballxp,ballyp         .l RegBuffer,d0/d7/a0-a1          X     LineSortLoopEnd LineSortFG:         Y     LineStrip         ~.l  (a1),a1 LineSortLoopEnd:         n     d7,LineSortFG  ExitLineSort:         .l (a7)+,d7/a1            LineStrip: ; Line(BitMap,PointTag) ;      a0     a1          .l d0-d2/d7/a2,-(a7)          ~    GridA(pc),d7             #1,d7         O     LineVStrip         W    #2,8(a1)         P     LineVStrip          ~    10(a1),d0         ~    12(a1),d1         ~    14(a1),d2         Y     PlotBB         ~.l  a1,a2 LineHoriz:              ##sts,a2         ~    10(a2),d0         ~    12(a2),d1         ~    14(a2),d2         Y     LineBB         n     d7,LineHoriz  LineVStrip:         ~    GridB(pc),d7             #1,d7         O     ExitLS         W    #1,8(a1)         P     ExitLS          ~    10(a1),d0         ~    12(a1),d1         ~    14(a1),d2         Y     PlotBB         ~.l  a1,a2 LineVerti:              GridBS(pc),a2         ~    10(a2),d0         ~    12(a2),d1         ~    14(a2),d2         Y     LineBB         n     d7,LineVerti  ExitLS: .l (a7)+,d0-d2/d7/a2           .CurrentCom AreaList: ; Area(BitMap,RealPoints) ;      a0     d0          .l d7/a1,-(a7)         ~    $DFF01C,ints         ~    #$1FFF,$DFF09A          ~.l  SList(pc),a1         ~.l  (a1),a1         ~    d0,d7         L     BlitAreaSort AreaSortBG:         Y     AreaStrip         ~.l  (a1),a1         .l   4(a1)         i    d7,AreaSortBG  BlitAreaSort:         .l d0/d7/a0-a1,RegBuffer          1,ballxp,ballyp         .l RegBuffer,d0/d7/a0-a1          X     AreaSortLoopEnd AreaSortFG:         Y     AreaStrip         ~.l  (a1),a1 AreaSortLoopEnd:         n     d7,AreaSortFG  ExitAreaSort:         .l (a7)+,d7/a1         Y     WaitBlit         V    #7,ints         ~    ints,$DFF09A            AreaStrip: ; Area(BitMap,PointTag) ;      a0     a1          .l d0-d2/d4/d7/a1-a2,-(a7)          W    #1,8(a1)         P     ExitAS         W    #2,8(a1)         P     ExitAS          ~    #319,minx         ~    #255,miny         ~    #0,maxx         ~    #0,maxy          ~    GridB(pc),d7             #1,d7         O     ExitAS         ~    GridA(pc),d7             #1,d7         O     ExitAS          ~    10(a1),d0         ~    12(a1),d1         Y     ClipPlotCoord         ~    d0,lastx         ~    d1,lasty         ~.l  a1,a2 AreaTop:              ##sts,a2         ~    10(a2),d0         ~    12(a2),d1         Y     DrawAreaLine         n     d7,AreaTop          ~    GridB(pc),d7             #1,d7 AreaRight:              GridBS(pc),a2         ~    10(a2),d0         ~    12(a2),d1         Y     DrawAreaLine         n     d7,AreaRight          ~    GridA(pc),d7             #1,d7 AreaBottom:         =     ##sts,a2         ~    10(a2),d0         ~    12(a2),d1         Y     DrawAreaLine         n     d7,AreaBottom          ~    GridB(pc),d7             #1,d7 AreaLeft:         =     GridBS(pc),a2         ~    10(a2),d0         ~    12(a2),d1         Y     DrawAreaLine         n     d7,AreaLeft          y     BlitFill         y     BlitMerge         ~    14(a1),d4         y     BlitColor         y     BlitClear  ExitAS: .l (a7)+,d0-d2/d4/d7/a1-a2            ; Xp,Yp,Color,Zp = Calc3D(X,Y,Z) ; d0 d1  d2   d3         d0 d1 d2  Calc3D: 0         .l d4-d7/a0-a6,-(a7)         ~    d3,FieldColor          z     RotMat(pc),a1         =     6(a1),d0         =     14(a1),d1         =     22(a1),d2          [.l   d3         ~    0(a1),d7             d0,d7         =.l   d7,d3         ~    2(a1),d7             d1,d7         =.l   d7,d3         ~    4(a1),d7             d2,d7         =.l   d7,d3          [.l   d4         ~    8(a1),d7             d0,d7         =.l   d7,d4         ~    10(a1),d7             d1,d7         =.l   d7,d4         ~    12(a1),d7             d2,d7         =.l   d7,d4          [.l   d5         ~    16(a1),d7             d0,d7         =.l   d7,d5         ~    18(a1),d7             d1,d7         =.l   d7,d5         ~    20(a1),d7             d2,d7         =.l   d7,d5         ~.l  d5,d6 ; Frs Ende aufheben         D.l   #2,d5              d5         v.l   d5         =.l   #200,d5 ; Koordinatenursprung nach hinten verschieben         L     Error1         ~.l  d5,d2         E.l   #4,d2         ~    FieldColor,d7         B     AlterMode,d7         Q     NoHB         @.l  #4,d2 NoHB:   .l   #40,d2         .l   d2          \.l   #32,d2         N     NoCut1         .l #31,d2 NoCut1: \.l   #16,d2  ; Nach Verlassen der Farbpalette ist Schluss         J     NoCut2         .l #16,d2 NoCut2:         E.l   #6,d3   ; 30 Bit : 6 Bit = 24 Bit         ~.l  d3,d0         q    d5,d0   ; 24 Bit : ?         S     Error1         E.l   #6,d4         ~.l  d4,d1         q    d5,d1         S     Error1         0         \     #159,d0         J     Error1         \     #-160,d0         N     Error1         \     #128,d1         J     Error1         \     #-127,d1         N     Error1                 =     #160,d0              #128,d1              d1          ~.l  d6,d3          .l (a7)+,d4-d7/a0-a6           Error1: ~.l  #160,d0         ~.l  #128,d1         .l #0,d2         ~.l  d6,d3         .l (a7)+,d4-d7/a0-a6             ; Calc3DTag(Pointmem,Tag) ;             a1      a2  Calc3DTag:         .l d4-d7/a0-a6,-(a7)          z     RotMat(pc),a3         ~    0(a1),d0         ~    2(a1),d1         ~    4(a1),d2         =      6(a3),d0         =     14(a3),d1         =     22(a3),d2          [.l   d3         ~    0(a3),d7             d0,d7         =.l   d7,d3         ~    2(a3),d7             d1,d7         =.l   d7,d3         ~    4(a3),d7             d2,d7         =.l   d7,d3         ~.l  d3,20(a2)          [.l   d4         ~    8(a3),d7             d0,d7         =.l   d7,d4         ~    10(a3),d7             d1,d7         =.l   d7,d4         ~    12(a3),d7             d2,d7         =.l   d7,d4         ~.l  d4,24(a2)          [.l   d5         ~    16(a3),d7             d0,d7         =.l   d7,d5         ~    18(a3),d7             d1,d7         =.l   d7,d5         ~    20(a3),d7             d2,d7         =.l   d7,d5         ~.l  d5,4(a2)         ~.l  d5,28(a2)         D.l   #2,d5              d5         v.l   d5         =.l   #256,d5 ; Koordinatenursprung nach hinten verschieben         L     ErrorCalc3D         ~.l  d5,d2         E.l   #5,d2 ;        MOVE    6(a1),d7 ;Feldfarbe         ~    AlterColor(pc),d7         B     AlterMode(pc),d7         O     NoHB         E.l   #1,d2 NoHB:   .l   #2,d2         \.l   #8,d2         N     NoCut1         .l #7,d2 NoCut1: \.l   #0,d2  ; Nach Verlassen der Farbpalette ist Schluss         I     NoCut2         .l #0,d2 NoCut2: W    #2,d2         H     NoEHBC         s     #32+4,d2 NoEHBC: =.l   #16,d2          E.l   #6,d3   ; 30 Bit : 6 Bit = 24 Bit         ~.l  d3,d0         q    d5,d0   ; 24 Bit : ?         R     NoErrorCX         .l   d0         O     Less0X         ~    XSize(pc),d0             #1,d0         X     NoErrorCX Less0X: [     d0 NoErrorCX:         E.l   #6,d4         ~.l  d4,d1         q    d5,d1         R     NoErrorCY         .l   d1         O     Less0Y         ~    YSize(pc),d1             #1,d1         X     NoErrorCY Less0Y: [     d1 NoErrorCY:          ~    d0,d3             d3,d3         ~    d1,d4             d4,d4         =.l   d3,d4         ~.l  d4,16(a2)          =     XCentre(pc),d0              YCentre(pc),d1              d1          ~    d0,10(a2)         ~    d1,12(a2)         ~    d2,14(a2)          .l (a7)+,d4-d7/a0-a6           ErrorCalc3D:         ~    XCentre(pc),10(a2)         ~    YCentre(pc),12(a2)         [     14(a2)         [.l   16(a2)         .l (a7)+,d4-d7/a0-a6            ; Y = CalcY(X, Y, Z) ; d0        d0 d1 d2   CalcY:         .l d3-d7/a1,-(a7)          z     RotMat(pc),a1         =     6(a1),d0         =     14(a1),d1         =     22(a1),d2          [.l   d4         ~    8(a1),d7             d0,d7         =.l   d7,d4         ~    10(a1),d7             d1,d7         =.l   d7,d4         ~    12(a1),d7             d2,d7         =.l   d7,d4          [.l   d5         ~    16(a1),d7             d0,d7         =.l   d7,d5         ~    18(a1),d7             d1,d7         =.l   d7,d5         ~    20(a1),d7             d2,d7         =.l   d7,d5          D.l   #2,d5             d5         v.l   d5         =.l   #200,d5         L     CalcYEr         E.l   #6,d4         ~.l  d4,d0         q    d5,d0         R     CalcYOk CalcYEr:~    YSize(pc),d0 CalcYOk:     YCentre(pc),d0              d0         .l (a7)+,d3-d7/a1            ; Distance(z1,z2,X,Y,Z) ;          d0 d1 d2d3d4  Distance:         .l d3-d7/a0-a6,-(a7) ;       CLR.l   MinX ;       CLR.l   MinZ         ~.l  #$7fffffff,MinDist          ~.l  Points(pc),a1         ~.l  d1,d7         @.l  #1,d1             ##cds,d1             Width+2(pc),d1         =.l   d1,a1         ~.l  d0,a2  LoopZ2: ~.l  Width(pc),d6         .l  #1,d6 LoopX2: [.l   d0         .l  #2,a1         ~    -(a1),d5              d4,d5             d5,d5         =.l   d5,d0          ~    -(a1),d5              d3,d5             d5,d5         =.l   d5,d0          ~    -(a1),d5              d2,d5             d5,d5         =.l   d5,d0          \.l   MinDist(pc),d0         I     NoMin1         ~.l  d0,MinDist         ~.l  d6,MinX         ~.l  d7,MinZ NoMin1:         n     d6,LoopX2         .l  #1,d7         \.l   a2,d7         I     LoopZ2          ~.l  MinX(pc),d0         ~.l  MinZ(pc),d1         ~.l  MinDist(pc),d2 ; d0 - x Koordinate im Punktefeld ; d1 - y Koordinate im Punktefeld ; d2 - Abstand zum Quadrat          .l (a7)+,d3-d7/a0-a6            .MCData  RotMat: %.w    $4000,0,0,0         %.w    0,$4000,0,0         %.w    0,0,$4000,0  DefaultLTag:         %.l    #sts,$7FFF0000         %.w    0,0,0,0         %.l    0,0,0,0         %.l    #sts,-$7FFF0000         %.w    0,0,0,0         %.l    0,0,0,0         %.l    0,-$7FFFFFFF         %.w    0,0,0,0         %.l    0,0,0,0          ; 0.l - NextListTag (relative)         ; 4.l - Sortierkennzahl (spezielle Z-Koordinate)         ; 8.b - Flags:         ;        Bit0 - Punkt wird nicht mitsortiert         ;        Bit1 - vorderer Rand         ;        Bit2 - linker Rand         ;        Bit3 - alternative Farbe bei Flchendarstellung         ;10.w - Xp-Coord         ;12.w - Yp-Coord         ;14.w - Color (<0 wenn Punkt nicht zeichenbar)         ;16.l - Abstand Bildpunkt von Koordinatenursprung         ;20.l - X (rotiert)         ;24.l - Y (rotiert)         ;28.l - Z (rotiert)  RegBuffer:         &.l    16  XCentre:%.w    0 YCentre:%.w    0 XSize:  %.w    0 YSize:  %.w    0 Bottom: %.w    0  DistAP: %.w    0 DistBP: %.w    0 GridBS: %.w    0 GridA:  %.w    0 GridB:  %.w    0 FSizeA: %.w    0 FSizeB: %.w    0 NumA:   %.w    0 NumB:   %.w    0 GridDistB:%.w  0 LineBP: %.w    0 BytesPerLine: %.w 0 NumSortPoints:%.w 0 DispLen:   %.w 0 LastField: %.w 0 SearchVisible:%.w 0 AlignMode: %.w 0 AlterMode: %.w 0 AlterColor:%.w 0 FieldColor:%.w 0 FirstColor:%.w 0  ints:   %.w    0  Points: %.l    0       ; Zeiger auf Punktfeld SList:  %.l    0       ; Zeiger auf sortierte Punktliste Width:  %.l    0       ; Spielfeldbreite MinX:   %.l    0 MinZ:   %.l    0 MinDist:%.l    0   