Home » Archimedes archive » Micro User » MU 1992-06.adf » PD » !FunkyDemo/!RunMain

!FunkyDemo/!RunMain

This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.

Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.

Tape/disk: Home » Archimedes archive » Micro User » MU 1992-06.adf » PD
Filename: !FunkyDemo/!RunMain
Read OK:
File size: 1250F bytes
Load address: 0000
Exec address: 0000
File contents
   10REM > !FunkyDemo.!RunMain
   20REM (C) JSG 1992
   30
   40IF FALSE THEN
   50  VOICES 8
   60  MODE12
   70  COLOUR 4,0,0,0
   80  COLOUR 4+128
   90  CLS
  100  *SPEAKER OFF
  110  *KEY 1 " |MTWINO8|M"
  120  VDU 19,0,24,32,32,32
  130ENDIF
  140
  150DIM code 32768
  160DIM sprites 81920
  170DIM plotspriteacode(7,3)
  180DIM rgval(2),bval(2)
  190
  200rgval(0)=0
  210rgval(1)=0.6
  220rgval(2)=1
  230bval(0)=0
  240bval(1)=0.3
  250bval(2)=0.5
  260xorigin=320
  270yorigin=64
  280
  290cos%=32768*COS(0.12)+0.5
  300sin%=32768*SIN(0.12)+0.5
  310
  320PROCassemble
  330
  340OSCLI"LOAD <Funky$Dir>.Sprites "+STR$~sprites
  350SYS"Tracker_TuneInfo" TO A
  360IF A=0 THEN
  370  *RMAFree 300K
  380  SYS"Tracker_Load","<Funky$Dir>.GtRdyFrThs"
  390ENDIF
  400
  410COLOUR 3,255,255,255
  420GCOL 0
  430FOR N%=0 TO 127
  440  A%=startab!(N%<<2)
  450  POINT (A% MOD 320)*4,1023-(A% DIV 320)*4
  460  POINT (A% MOD 320)*4+2,1023-(A% DIV 320)*4
  470NEXT
  480
  490FOR N=0 TO 15
  500  COLOUR 7,192-N*12,192-N*12,192-N*12
  510  COLOUR 0,0,0,N*12
  520  COLOUR 3,192-N*12,192-N*12,192-N*12
  530  *FX 19
  540  *FX 19
  550  *FX 19
  560NEXT N
  570
  580!curplotbank=1
  590COLOUR 0,0,0,192
  600COLOUR 1,192,0,0
  610COLOUR 2,192,96,0
  620COLOUR 3,64,128,48
  630FOR C2%=1 TO 2
  640  COLOUR 12+C2%,127*bval(C2%),127*bval(C2%),255*bval(C2%)
  650NEXT
  660COLOUR 15,255,255,255
  670COLOUR 15
  680PROCsetpalette(B0%,B1%)
  690
  700FOR N%=0 TO 31
  710  SYS"Tracker_ReadSampleTable",N%+1 TO ,,,,,,sampleaddrtab!(N%<<2)
  720NEXT
  730SYS"Tracker_Stereo",1
  740
  750A%=torsotrans:B%=spin1:C%=torsotrans
  760CALL multiply:CALL multiply:CALL multiply
  770CALL multiply
  780A%=torsotrans:B%=spin3:C%=torsotrans
  790CALL multiply:CALL multiply:CALL multiply
  800
  810E%=0
  820COLOUR 15
  830
  840*FX 176,2,0
  850SYS"Tracker_SetPos",0,0
  860SYS"Tracker_Play"
  870
  880REPEAT
  890  CALL changeframe
  900  CALL clearscreen
  910  CALL control
  920  CALL update
  930  CALL drawgraphs
  940  CALL drawperson
  950  IF RND(12)=1 THEN !curcol1=RND(10)-1:!curcol2=RND(10)-1
  960  IF RND(6)=1 THEN graphpostab!(RND(4)*48-48+45)=RND(6)-1
  970  MOUSE X%,Y%,B%
  980  IF B% AND 2 THEN
  990    *PLAYPAUSE
 1000    REPEAT:MOUSE X%,Y%,B%:UNTIL (B% AND 2)=0
 1010    REPEAT:MOUSE X%,Y%,B%:UNTIL (B% AND 2)=2
 1020    REPEAT:MOUSE X%,Y%,B%:UNTIL (B% AND 2)=0
 1030    *PLAYSTART
 1040  ENDIF
 1050UNTIL B% AND 4
 1060
 1070SYS"Tracker_Pause"
 1080MODE0
 1090END
 1100
 1110DEF PROCsetpalette(B0%,B1%)
 1120  FOR C1%=0 TO 2
 1130    FOR C0%=0 TO 2
 1140      BR%=(B0%*rgval(C0%)+B1%*rgval(C1%))/2
 1150      COLOUR 4+3*C1%+C0%,BR%,BR%,BR%
 1160    NEXT
 1170  NEXT
 1180ENDPROC
 1190
 1200DEF FNROUND(A)
 1210=A+0.5*SGN(A)
 1220 
 1230DEF PROCassemble
 1240  FOR pass%=0 TO 2 STEP 2
 1250  P%=code
 1260  [OPT pass%
 1270
 1280  .currepqind
 1290  EQUD    currepq-P%
 1300
 1310  .plotscreenind0
 1320  EQUD    plotscreenbase-P%
 1330
 1340  \ Plot Sprite size a (32*n mode 12) with implicit mask but no clipping
 1350  \ Value 0    -> no plot
 1360  \       1-3  -> (illegal do not use)
 1370  \       4-15 -> plot pixel
 1380  \ R0 = X pos of centre (internal)
 1390  \ R1 = Y pos of centre (internal)
 1400  \ R2 = number of lines in sprite (n)
 1410  \ R3 = address of sprite data (word aligned)
 1420  .plotspritea
 1430  STMFD   R13!,{R0-R12,R14}
 1440
 1450  ADR     R10,currepqind
 1460  LDR     R12,[R10]
 1470  LDR     R10,[R12,R10]
 1480  CMP     R10,#1
 1490  BEQ     psa1
 1500  CMP     R10,#2
 1510  BEQ     psa2
 1520  CMP     R10,#3
 1530  BEQ     psa3
 1540
 1550  MOV     R10,R3              \ R10 = address of sprite data
 1560 
 1570  MOV     R11,R2              \ R11 = number of lines
 1580 
 1590  SUB     R0,R0,#16
 1600  SUB     R1,R1,R11,ASR #1    \ get top left corner
 1610
 1620  CMN     R0,#1
 1630  CMNGT   R1,R11
 1640  LDMLEFD R13!,{R0-R12,PC}^
 1650  CMP     R0,#640-32
 1660  CMPLE   R1,#256-1
 1670  LDMGTFD R13!,{R0-R12,PC}^   \ discard out of range sprites
 1680
 1690  CMP     R1,#0
 1700  ADDLT   R11,R11,R1
 1710  SUBLT   R10,R10,R1,LSL #4
 1720  MOVLT   R1,#0               \ trim top
 1730
 1740  RSB     R4,R1,#256
 1750  CMP     R11,R4
 1760  MOVGT   R11,R4              \ trim bottom
 1770
 1780  ADR     R9,plotscreenind0
 1790  LDR     R12,[R9]
 1800  LDR     R9,[R9,R12]
 1810  ADD     R9,R9,R1,LSL #8
 1820  ADD     R9,R9,R1,LSL #6
 1830  BIC     R1,R0,#7
 1840  ADD     R9,R9,R1,LSR #1     \ R9 = address (in screen) to begin plotting
 1850 
 1860  MOV     R12,#%1000
 1870  ORR     R12,R12,R12,LSL #16
 1880  ORR     R12,R12,R12,LSL #8
 1890  ORR     R12,R12,R12,LSL #4  \ R12 = OR mask to isolate 'no plot' bit
 1900
 1910  AND     R1,R0,#7
 1920  ADR     R0,caselist
 1930  LDR     R0,[R0,R1,LSL #2]   \ R0 = address of code for particular shift case
 1940  ADR     R1,base
 1950  ADD     PC,R0,R1
 1960
 1970  .caselist
 1980  ]
 1990  FOR N%=0 TO 7
 2000    [OPT pass%
 2010    EQUD    plotspriteacode(N%,0)-base
 2020    ]
 2030  NEXT N%
 2040  [OPT pass%
 2050  .base
 2060  ]
 2070  FOR N%=0 TO 7
 2080    shiftleft  = N%*4
 2090    shiftright = 32-N%*4
 2100    [OPT pass%                \ do 8 compilations
 2110 
 2120    .plotspriteacode(N%,0)      \ doubles as loop start
 2130    LDMIA   R10!,{R0-R3}
 2140
 2150    LDMIA   R9,{R4-R8}
 2160
 2170    ]
 2180    FOR M%=0 TO 3
 2190      Rdata = M%
 2200      Rcurword = M%+4
 2210      Rnextword = M%+5
 2220      [OPT pass%              \ for four words...
 2230 
 2240      ORR     R14,Rdata,Rdata,LSL #1
 2250      AND     R14,R12,R14
 2260      ORR     R14,R14,R14,LSR #2
 2270      ORR     R14,R14,R14,LSR #1
 2280      BIC     Rcurword,Rcurword,R14,LSL #shiftleft
 2290      ORR     Rcurword,Rcurword,Rdata,LSL #shiftleft
 2300      BIC     Rnextword,Rnextword,R14,LSR #shiftright
 2310      ORR     Rnextword,Rnextword,Rdata,LSR #shiftright
 2320      ]
 2330    NEXT M%
 2340    [OPT pass%
 2350 
 2360    STMIA   R9,{R4-R8}
 2370    ADD     R9,R9,#320
 2380
 2390    SUBS    R11,R11,#1
 2400    BGT     plotspriteacode(N%,0)
 2410
 2420    LDMFD   R13!,{R0-R12,PC}^
 2430
 2440    ]
 2450  NEXT N%
 2460  [OPT pass%
 2470
 2480  .plotscreenind1
 2490  EQUD    plotscreenbase-P%
 2500 
 2510  .psa1
 2520  MOV     R10,R3              \ R10 = address of sprite data
 2530 
 2540  MOV     R11,R2,ASR #1       \ R11 = number of lines
 2550 
 2560  SUB     R0,R0,#16
 2570  MOV     R1,R1,ASR #1
 2580  SUB     R1,R1,R11,ASR #1    \ get top left corner
 2590
 2600  CMN     R0,#1
 2610  CMNGT   R1,R11
 2620  LDMLEFD R13!,{R0-R12,PC}^
 2630  CMP     R0,#640-32
 2640  CMPLE   R1,#256-1
 2650  LDMGTFD R13!,{R0-R12,PC}^   \ discard out of range sprites
 2660
 2670  CMP     R1,#0
 2680  ADDLT   R11,R11,R1
 2690  SUBLT   R10,R10,R1,LSL #4
 2700  MOVLT   R1,#0               \ trim top
 2710
 2720  RSB     R4,R1,#256
 2730  CMP     R11,R4
 2740  MOVGT   R11,R4              \ trim bottom
 2750
 2760  ADR     R9,plotscreenind1
 2770  LDR     R12,[R9]
 2780  LDR     R9,[R9,R12]
 2790  ADD     R9,R9,R1,LSL #8
 2800  ADD     R9,R9,R1,LSL #6
 2810  BIC     R1,R0,#7
 2820  ADD     R9,R9,R1,LSR #1     \ R9 = address (in screen) to begin plotting
 2830 
 2840  MOV     R12,#%1000
 2850  ORR     R12,R12,R12,LSL #16
 2860  ORR     R12,R12,R12,LSL #8
 2870  ORR     R12,R12,R12,LSL #4  \ R12 = OR mask to isolate 'no plot' bit
 2880
 2890  AND     R1,R0,#7
 2900  ADR     R0,caselist1
 2910  LDR     R0,[R0,R1,LSL #2]   \ R0 = address of code for particular shift case
 2920  ADR     R1,base1
 2930  ADD     PC,R0,R1
 2940
 2950  .caselist1
 2960  ]
 2970  FOR N%=0 TO 7
 2980    [OPT pass%
 2990    EQUD    plotspriteacode(N%,1)-base1
 3000    ]
 3010  NEXT N%
 3020  [OPT pass%
 3030  .base1
 3040  ]
 3050  FOR N%=0 TO 7
 3060    shiftleft  = N%*4
 3070    shiftright = 32-N%*4
 3080    [OPT pass%                \ do 8 compilations
 3090 
 3100    .plotspriteacode(N%,1)    \ doubles as loop start
 3110    LDMIA   R10,{R0-R3}
 3120    ADD     R10,R10,#32
 3130
 3140    LDMIA   R9,{R4-R8}
 3150
 3160    ]
 3170    FOR M%=0 TO 3
 3180      Rdata = M%
 3190      Rcurword = M%+4
 3200      Rnextword = M%+5
 3210      [OPT pass%              \ for four words...
 3220 
 3230      ORR     R14,Rdata,Rdata,LSL #1
 3240      AND     R14,R12,R14
 3250      ORR     R14,R14,R14,LSR #2
 3260      ORR     R14,R14,R14,LSR #1
 3270      BIC     Rcurword,Rcurword,R14,LSL #shiftleft
 3280      ORR     Rcurword,Rcurword,Rdata,LSL #shiftleft
 3290      BIC     Rnextword,Rnextword,R14,LSR #shiftright
 3300      ORR     Rnextword,Rnextword,Rdata,LSR #shiftright
 3310      ]
 3320    NEXT M%
 3330    [OPT pass%
 3340 
 3350    STMIA   R9,{R4-R8}
 3360    ADD     R9,R9,#320
 3370
 3380    SUBS    R11,R11,#1
 3390    BGT     plotspriteacode(N%,1)
 3400
 3410    LDMFD   R13!,{R0-R12,PC}^
 3420
 3430    ]
 3440  NEXT N%
 3450  [OPT pass%
 3460 
 3470  .plotscreenind
 3480  EQUD    plotscreenbase-P%
 3490 
 3500  .psa2
 3510  MOV     R10,R3              \ R10 = address of sprite data
 3520 
 3530  MOV     R11,R2,ASR #2       \ R11 = number of lines
 3540 
 3550  SUB     R0,R0,#16
 3560  SUB     R0,R0,#160
 3570  MOV     R1,R1,ASR #2
 3580  SUB     R1,R1,R11,ASR #1    \ get top left corner
 3590
 3600  CMN     R0,#1
 3610  CMNGT   R1,R11
 3620  LDMLEFD R13!,{R0-R12,PC}^
 3630  CMP     R0,#640-32
 3640  CMPLE   R1,#256-1
 3650  LDMGTFD R13!,{R0-R12,PC}^   \ discard out of range sprites
 3660
 3670  CMP     R1,#0
 3680  ADDLT   R11,R11,R1
 3690  SUBLT   R10,R10,R1,LSL #4
 3700  MOVLT   R1,#0               \ trim top
 3710
 3720  RSB     R4,R1,#256
 3730  CMP     R11,R4
 3740  MOVGT   R11,R4              \ trim bottom
 3750
 3760  ADR     R9,plotscreenind
 3770  LDR     R12,[R9]
 3780  LDR     R9,[R9,R12]
 3790  ADD     R9,R9,R1,LSL #8
 3800  ADD     R9,R9,R1,LSL #6
 3810  BIC     R1,R0,#7
 3820  ADD     R9,R9,R1,LSR #1     \ R9 = address (in screen) to begin plotting
 3830 
 3840  MOV     R12,#%1000
 3850  ORR     R12,R12,R12,LSL #16
 3860  ORR     R12,R12,R12,LSL #8
 3870  ORR     R12,R12,R12,LSL #4  \ R12 = OR mask to isolate 'no plot' bit
 3880
 3890  AND     R1,R0,#7
 3900  ADR     R0,caselist2
 3910  LDR     R0,[R0,R1,LSL #2]   \ R0 = address of code for particular shift case
 3920  ADR     R1,base2
 3930  ADD     PC,R0,R1
 3940
 3950  .caselist2
 3960  ]
 3970  FOR N%=0 TO 7
 3980    [OPT pass%
 3990    EQUD    plotspriteacode(N%,2)-base2
 4000    ]
 4010  NEXT N%
 4020  [OPT pass%
 4030  .base2
 4040  ]
 4050  FOR N%=0 TO 7
 4060    shiftleft  = N%*4
 4070    shiftright = 32-N%*4
 4080    [OPT pass%                \ do 8 compilations
 4090 
 4100    .plotspriteacode(N%,2)    \ doubles as loop start
 4110    LDMIA   R10,{R0-R3}
 4120    ADD     R10,R10,#64
 4130    LDMIA   R9,{R4-R8}
 4140
 4150    ]
 4160    FOR M%=0 TO 3
 4170      Rdata = M%
 4180      Rcurword = M%+4
 4190      Rnextword = M%+5
 4200      [OPT pass%              \ for four words...
 4210 
 4220      ORR     R14,Rdata,Rdata,LSL #1
 4230      AND     R14,R12,R14
 4240      ORR     R14,R14,R14,LSR #2
 4250      ORR     R14,R14,R14,LSR #1
 4260      BIC     Rcurword,Rcurword,R14,LSL #shiftleft
 4270      ORR     Rcurword,Rcurword,Rdata,LSL #shiftleft
 4280      BIC     Rnextword,Rnextword,R14,LSR #shiftright
 4290      ORR     Rnextword,Rnextword,Rdata,LSR #shiftright
 4300      ]
 4310    NEXT M%
 4320    [OPT pass%
 4330 
 4340    STMIA   R9,{R4-R8}
 4350    ADD     R9,R9,#320
 4360
 4370    SUBS    R11,R11,#1
 4380    BGT     plotspriteacode(N%,2)
 4390
 4400    LDMFD   R13!,{R0-R12,PC}^
 4410
 4420    ]
 4430  NEXT N%
 4440  [OPT pass%
 4450 
 4460  .psa3
 4470  MOV     R10,R3              \ R10 = address of sprite data
 4480 
 4490  MOV     R11,R2,ASR #3       \ R11 = number of lines
 4500 
 4510  SUB     R0,R0,#16
 4520  SUB     R0,R0,#160
 4530  MOV     R0,R0,ASR #1
 4540  MOV     R1,R1,ASR #3
 4550  SUB     R1,R1,R11,ASR #1    \ get top left corner
 4560
 4570  CMN     R0,#1
 4580  CMNGT   R1,R11
 4590  LDMLEFD R13!,{R0-R12,PC}^
 4600  CMP     R0,#640-32
 4610  CMPLE   R1,#256-1
 4620  LDMGTFD R13!,{R0-R12,PC}^   \ discard out of range sprites
 4630
 4640  CMP     R1,#0
 4650  ADDLT   R11,R11,R1
 4660  SUBLT   R10,R10,R1,LSL #4
 4670  MOVLT   R1,#0               \ trim top
 4680
 4690  RSB     R4,R1,#256
 4700  CMP     R11,R4
 4710  MOVGT   R11,R4              \ trim bottom
 4720
 4730  LDR     R9,plotscreenbase
 4740  ADD     R9,R9,R1,LSL #8
 4750  ADD     R9,R9,R1,LSL #6
 4760  BIC     R1,R0,#7
 4770  ADD     R9,R9,R1,LSR #1     \ R9 = address (in screen) to begin plotting
 4780 
 4790  MOV     R12,#%1000
 4800  ORR     R12,R12,R12,LSL #16
 4810  ORR     R12,R12,R12,LSL #8
 4820  ORR     R12,R12,R12,LSL #4  \ R12 = OR mask to isolate 'no plot' bit
 4830
 4840  AND     R1,R0,#7
 4850  ADR     R0,caselist3
 4860  LDR     R0,[R0,R1,LSL #2]   \ R0 = address of code for particular shift case
 4870  ADR     R1,base3
 4880  ADD     PC,R0,R1
 4890
 4900  .caselist3
 4910  ]
 4920  FOR N%=0 TO 7
 4930    [OPT pass%
 4940    EQUD    plotspriteacode(N%,3)-base3
 4950    ]
 4960  NEXT N%
 4970  [OPT pass%
 4980  .base3
 4990  ]
 5000  FOR N%=0 TO 7
 5010    shiftleft  = N%*4
 5020    shiftright = 32-N%*4
 5030    [OPT pass%                \ do 8 compilations
 5040 
 5050    .plotspriteacode(N%,3)    \ doubles as loop start
 5060    LDMIA   R10,{R0-R3}
 5070    ADD     R10,R10,#128
 5080    LDMIA   R9,{R4-R8}
 5090
 5100    ]
 5110    FOR M%=0 TO 1
 5120      Rdata = M%*2
 5130      Rcurword = M%+4
 5140      Rnextword = M%+5
 5150      [OPT pass%              \ for four words...
 5160 
 5170      ORR     R14,Rdata,Rdata,LSL #1
 5180      AND     R14,R12,R14
 5190      ORR     R14,R14,R14,LSR #2
 5200      ORR     R14,R14,R14,LSR #1
 5210      BIC     Rcurword,Rcurword,R14,LSL #shiftleft
 5220      ORR     Rcurword,Rcurword,Rdata,LSL #shiftleft
 5230      BIC     Rnextword,Rnextword,R14,LSR #shiftright
 5240      ORR     Rnextword,Rnextword,Rdata,LSR #shiftright
 5250      ]
 5260    NEXT M%
 5270    [OPT pass%
 5280 
 5290    STMIA   R9,{R4-R8}
 5300    ADD     R9,R9,#320
 5310
 5320    SUBS    R11,R11,#1
 5330    BGT     plotspriteacode(N%,3)
 5340
 5350    LDMFD   R13!,{R0-R12,PC}^
 5360
 5370    ]
 5380  NEXT N%
 5390  [OPT pass%
 5400 
 5410  .plotscreenbase
 5420  EQUD    0
 5430
 5440  .spritefilebase
 5450  EQUD    0
 5460
 5470  \ Empty routine for timing test purposes
 5480  .null
 5490  MOV     PC,R14
 5500
 5510 
 5520  \ Fill screen area with colour bands etc
 5530  .clearscreen
 5540  STMFD   R13!,{R0-R3,R14}
 5550
 5560  MOV     R0,#4
 5570  MOV     R1,#0
 5580  LDR     R3,currepq
 5590
 5600  CMP     R3,#0
 5610  MOVEQ   R2,#256
 5620  BLEQ    fillsection
 5630  CMP     R3,#1
 5640  MOVEQ   R2,#128
 5650  BLEQ    fillsection
 5660  CMP     R3,#2
 5670  MOVEQ   R2,#64
 5680  BLEQ    fillsectionhalf
 5690  CMP     R3,#3
 5700  MOVEQ   R2,#32
 5710  BLEQ    fillsectionquarter
 5720
 5730  LDMFD   R13!,{R0-R3,PC}^
 5740
 5750  .currepq
 5760  EQUD    0
 5770
 5780  \ Fill screen area with lots of sprites
 5790  .repeatdata
 5800  STMFD   R13!,{R0-R12,R14}
 5810
 5820  MOV     R0,#4
 5830  MOV     R1,#0
 5840  LDR     R3,currepq
 5850
 5860  CMP     R3,#1
 5870  BEQ     rep1
 5880  CMP     R3,#2
 5890  BEQ     rep2
 5900  CMP     R3,#3
 5910  BEQ     rep3
 5920
 5930  LDMFD   R13!,{R0-R12,PC}^
 5940
 5950
 5960  \ Fill section of screen with given nibble
 5970  \ R0 = Word to insert
 5980  \ R1 = Line to start at
 5990  \ R2 = Number of lines
 6000  .fillsection
 6010  STMFD   R13!,{R0-R12,R14}
 6020  STR     R13,r13sto               \ save R13
 6030 
 6040  MOV     R14,R2
 6050
 6060  LDR     R13,plotscreenbase
 6070  ADD     R13,R13,R1,LSL #8
 6080  ADD     R13,R13,R1,LSL #6        \ address (in screen) to start at
 6090 
 6100  AND     R0,R0,#%1111
 6110  ORR     R0,R0,R0,LSL #4
 6120  ORR     R0,R0,R0,LSL #8
 6130  ORR     R0,R0,R0,LSL #16         \ expand into word
 6140
 6150  MOV     R1,R0
 6160  MOV     R2,R0
 6170  MOV     R3,R0
 6180  MOV     R4,R0
 6190  MOV     R5,R0
 6200  MOV     R6,R0
 6210  MOV     R7,R0
 6220  MOV     R8,R0
 6230  MOV     R9,R0
 6240  MOV     R10,R0
 6250  MOV     R11,R0                   \ set registers for fill
 6260
 6270  .fsloop
 6280    STMIA   R13!,{R0-R11}          \ 48 bytes
 6290    STMIA   R13!,{R0-R11}          \ 48 bytes
 6300    STMIA   R13!,{R0-R11}          \ 48 bytes
 6310    STMIA   R13!,{R0-R11}          \ 48 bytes
 6320    STMIA   R13!,{R0-R11}          \ 48 bytes
 6330    STMIA   R13!,{R0-R11}          \ 48 bytes
 6340    STMIA   R13!,{R0-R7}           \ 32 bytes
 6350
 6360    SUBS    R14,R14,#1
 6370    BGT     fsloop
 6380
 6390  LDR     R13,r13sto               \ recover R13
 6400  LDMFD   R13!,{R0-R12,PC}^
 6410
 6420  \ Fill half section of screen with given nibble
 6430  \ R0 = Word to insert
 6440  \ R1 = Line to start at
 6450  \ R2 = Number of lines
 6460  .fillsectionhalf
 6470  STMFD   R13!,{R0-R12,R14}
 6480  STR     R13,r13sto               \ save R13
 6490 
 6500  MOV     R14,R2
 6510
 6520  LDR     R13,plotscreenbase
 6530  ADD     R13,R13,R1,LSL #8
 6540  ADD     R13,R13,R1,LSL #6        \ address (in screen) to start at
 6550 
 6560  AND     R0,R0,#%1111
 6570  ORR     R0,R0,R0,LSL #4
 6580  ORR     R0,R0,R0,LSL #8
 6590  ORR     R0,R0,R0,LSL #16         \ expand into word
 6600
 6610  MOV     R1,R0
 6620  MOV     R2,R0
 6630  MOV     R3,R0
 6640  MOV     R4,R0
 6650  MOV     R5,R0
 6660  MOV     R6,R0
 6670  MOV     R7,R0
 6680  MOV     R8,R0
 6690  MOV     R9,R0
 6700  MOV     R10,R0
 6710  MOV     R11,R0                   \ set registers for fill
 6720
 6730  .fsloop1
 6740    STMIA   R13!,{R0-R11}          \ 48 bytes
 6750    STMIA   R13!,{R0-R11}          \ 48 bytes
 6760    STMIA   R13!,{R0-R11}          \ 48 bytes
 6770    STMIA   R13!,{R0-R3}           \ 16 bytes
 6780
 6790    ADD     R13,R13,#160
 6800    SUBS    R14,R14,#1
 6810    BGT     fsloop1
 6820
 6830  LDR     R13,r13sto               \ recover R13
 6840  LDMFD   R13!,{R0-R12,PC}^
 6850
 6860  \ Fill quarter section of screen with given nibble
 6870  \ R0 = Word to insert
 6880  \ R1 = Line to start at
 6890  \ R2 = Number of lines
 6900  .fillsectionquarter
 6910  STMFD   R13!,{R0-R12,R14}
 6920  STR     R13,r13sto               \ save R13
 6930 
 6940  MOV     R14,R2
 6950
 6960  LDR     R13,plotscreenbase
 6970  ADD     R13,R13,R1,LSL #8
 6980  ADD     R13,R13,R1,LSL #6        \ address (in screen) to start at
 6990 
 7000  AND     R0,R0,#%1111
 7010  ORR     R0,R0,R0,LSL #4
 7020  ORR     R0,R0,R0,LSL #8
 7030  ORR     R0,R0,R0,LSL #16         \ expand into word
 7040
 7050  MOV     R1,R0
 7060  MOV     R2,R0
 7070  MOV     R3,R0
 7080  MOV     R4,R0
 7090  MOV     R5,R0
 7100  MOV     R6,R0
 7110  MOV     R7,R0
 7120  MOV     R8,R0
 7130  MOV     R9,R0
 7140  MOV     R10,R0
 7150  MOV     R11,R0                   \ set registers for fill
 7160
 7170  .fsloop2
 7180    STMIA   R13!,{R0-R11}          \ 48 bytes
 7190    STMIA   R13!,{R0-R7}           \ 32 bytes
 7200
 7210    ADD     R13,R13,#240
 7220    SUBS    R14,R14,#1
 7230    BGT     fsloop2
 7240
 7250  LDR     R13,r13sto               \ recover R13
 7260  LDMFD   R13!,{R0-R12,PC}^
 7270
 7280  .rep1
 7290  STR     R13,r13sto
 7300
 7310  LDR     R13,plotscreenbase
 7320  ADD     R12,R13,#128*320
 7330  MOV     R14,#128
 7340
 7350  .reploop1
 7360     LDMIA     R13!,{R0-R11}
 7370     STMIA     R12!,{R0-R11}
 7380     LDMIA     R13!,{R0-R11}
 7390     STMIA     R12!,{R0-R11}
 7400     LDMIA     R13!,{R0-R11}
 7410     STMIA     R12!,{R0-R11}
 7420     LDMIA     R13!,{R0-R11}
 7430     STMIA     R12!,{R0-R11}
 7440     LDMIA     R13!,{R0-R11}
 7450     STMIA     R12!,{R0-R11}
 7460     LDMIA     R13!,{R0-R11}
 7470     STMIA     R12!,{R0-R11}
 7480     LDMIA     R13!,{R0-R7}
 7490     STMIA     R12!,{R0-R7}
 7500     SUBS      R14,R14,#1
 7510     BGT       reploop1
 7520
 7530  LDR     R13,r13sto
 7540  LDMFD   R13!,{R0-R12,PC}^
 7550
 7560  .rep2
 7570  STR     R13,r13sto
 7580
 7590  LDR     R13,plotscreenbase
 7600  MOV     R14,#64
 7610
 7620  .reploop2
 7630     LDMIA   R13!,{R0-R11}
 7640     ADD     R12,R13,#160-48
 7650     STMIA   R12,{R0-R11}
 7660     ADD     R12,R12,#320*64
 7670     STMIA   R12,{R0-R11}
 7680     ADD     R12,R12,#320*64
 7690     STMIA   R12,{R0-R11}
 7700     ADD     R12,R12,#320*64
 7710     STMIA   R12,{R0-R11}
 7720     SUB     R12,R12,#160
 7730     STMIA   R12,{R0-R11}
 7740     SUB     R12,R12,#320*64
 7750     STMIA   R12,{R0-R11}
 7760     SUB     R12,R12,#320*64
 7770     STMIA   R12,{R0-R11}
 7780     LDMIA   R13!,{R0-R11}
 7790     ADD     R12,R13,#160-48
 7800     STMIA   R12,{R0-R11}
 7810     ADD     R12,R12,#320*64
 7820     STMIA   R12,{R0-R11}
 7830     ADD     R12,R12,#320*64
 7840     STMIA   R12,{R0-R11}
 7850     ADD     R12,R12,#320*64
 7860     STMIA   R12,{R0-R11}
 7870     SUB     R12,R12,#160
 7880     STMIA   R12,{R0-R11}
 7890     SUB     R12,R12,#320*64
 7900     STMIA   R12,{R0-R11}
 7910     SUB     R12,R12,#320*64
 7920     STMIA   R12,{R0-R11}
 7930     LDMIA   R13!,{R0-R11}
 7940     ADD     R12,R13,#160-48
 7950     STMIA   R12,{R0-R11}
 7960     ADD     R12,R12,#320*64
 7970     STMIA   R12,{R0-R11}
 7980     ADD     R12,R12,#320*64
 7990     STMIA   R12,{R0-R11}
 8000     ADD     R12,R12,#320*64
 8010     STMIA   R12,{R0-R11}
 8020     SUB     R12,R12,#160
 8030     STMIA   R12,{R0-R11}
 8040     SUB     R12,R12,#320*64
 8050     STMIA   R12,{R0-R11}
 8060     SUB     R12,R12,#320*64
 8070     STMIA   R12,{R0-R11}
 8080     LDMIA   R13!,{R0-R3}
 8090     ADD     R12,R13,#160-16
 8100     STMIA   R12,{R0-R3}
 8110     ADD     R12,R12,#320*64
 8120     STMIA   R12,{R0-R3}
 8130     ADD     R12,R12,#320*64
 8140     STMIA   R12,{R0-R3}
 8150     ADD     R12,R12,#320*64
 8160     STMIA   R12,{R0-R3}
 8170     SUB     R12,R12,#160
 8180     STMIA   R12,{R0-R3}
 8190     SUB     R12,R12,#320*64
 8200     STMIA   R12,{R0-R3}
 8210     SUB     R12,R12,#320*64
 8220     STMIA   R12,{R0-R3}
 8230
 8240     ADD     R13,R13,#160
 8250     SUBS    R14,R14,#1
 8260     BGT     reploop2
 8270  LDR     R13,r13sto
 8280  LDMFD   R13!,{R0-R12,PC}^
 8290
 8300  .rep3
 8310  STR     R13,r13sto
 8320
 8330  LDR     R13,plotscreenbase
 8340  MOV     R14,#32
 8350
 8360  .reploop3
 8370     LDMIA   R13!,{R0-R11}
 8380     ADD     R12,R13,#80-48:STMIA   R12,{R0-R11}
 8390     ADD     R12,R12,#80:STMIA   R12,{R0-R11}
 8400     ADD     R12,R12,#80:STMIA   R12,{R0-R11}
 8410     ADD     R12,R12,#320*32:STMIA   R12,{R0-R11}
 8420     SUB     R12,R12,#80:STMIA   R12,{R0-R11}
 8430     SUB     R12,R12,#80:STMIA   R12,{R0-R11}
 8440     SUB     R12,R12,#80:STMIA   R12,{R0-R11}
 8450     ADD     R12,R12,#320*32:STMIA   R12,{R0-R11}
 8460     ADD     R12,R12,#80:STMIA   R12,{R0-R11}
 8470     ADD     R12,R12,#80:STMIA   R12,{R0-R11}
 8480     ADD     R12,R12,#80:STMIA   R12,{R0-R11}
 8490     ADD     R12,R12,#320*32:STMIA   R12,{R0-R11}
 8500     SUB     R12,R12,#80:STMIA   R12,{R0-R11}
 8510     SUB     R12,R12,#80:STMIA   R12,{R0-R11}
 8520     SUB     R12,R12,#80:STMIA   R12,{R0-R11}
 8530     ADD     R12,R12,#320*32:STMIA   R12,{R0-R11}
 8540     ADD     R12,R12,#80:STMIA   R12,{R0-R11}
 8550     ADD     R12,R12,#80:STMIA   R12,{R0-R11}
 8560     ADD     R12,R12,#80:STMIA   R12,{R0-R11}
 8570     ADD     R12,R12,#320*32:STMIA   R12,{R0-R11}
 8580     SUB     R12,R12,#80:STMIA   R12,{R0-R11}
 8590     SUB     R12,R12,#80:STMIA   R12,{R0-R11}
 8600     SUB     R12,R12,#80:STMIA   R12,{R0-R11}
 8610     ADD     R12,R12,#320*32:STMIA   R12,{R0-R11}
 8620     ADD     R12,R12,#80:STMIA   R12,{R0-R11}
 8630     ADD     R12,R12,#80:STMIA   R12,{R0-R11}
 8640     ADD     R12,R12,#80:STMIA   R12,{R0-R11}
 8650     ADD     R12,R12,#320*32:STMIA   R12,{R0-R11}
 8660     SUB     R12,R12,#80:STMIA   R12,{R0-R11}
 8670     SUB     R12,R12,#80:STMIA   R12,{R0-R11}
 8680     SUB     R12,R12,#80:STMIA   R12,{R0-R11}
 8690     LDMIA   R13!,{R0-R7}
 8700     ADD     R12,R13,#80-32:STMIA   R12,{R0-R7}
 8710     ADD     R12,R12,#80:STMIA   R12,{R0-R7}
 8720     ADD     R12,R12,#80:STMIA   R12,{R0-R7}
 8730     ADD     R12,R12,#320*32:STMIA   R12,{R0-R7}
 8740     SUB     R12,R12,#80:STMIA   R12,{R0-R7}
 8750     SUB     R12,R12,#80:STMIA   R12,{R0-R7}
 8760     SUB     R12,R12,#80:STMIA   R12,{R0-R7}
 8770     ADD     R12,R12,#320*32:STMIA   R12,{R0-R7}
 8780     ADD     R12,R12,#80:STMIA   R12,{R0-R7}
 8790     ADD     R12,R12,#80:STMIA   R12,{R0-R7}
 8800     ADD     R12,R12,#80:STMIA   R12,{R0-R7}
 8810     ADD     R12,R12,#320*32:STMIA   R12,{R0-R7}
 8820     SUB     R12,R12,#80:STMIA   R12,{R0-R7}
 8830     SUB     R12,R12,#80:STMIA   R12,{R0-R7}
 8840     SUB     R12,R12,#80:STMIA   R12,{R0-R7}
 8850     ADD     R12,R12,#320*32:STMIA   R12,{R0-R7}
 8860     ADD     R12,R12,#80:STMIA   R12,{R0-R7}
 8870     ADD     R12,R12,#80:STMIA   R12,{R0-R7}
 8880     ADD     R12,R12,#80:STMIA   R12,{R0-R7}
 8890     ADD     R12,R12,#320*32:STMIA   R12,{R0-R7}
 8900     SUB     R12,R12,#80:STMIA   R12,{R0-R7}
 8910     SUB     R12,R12,#80:STMIA   R12,{R0-R7}
 8920     SUB     R12,R12,#80:STMIA   R12,{R0-R7}
 8930     ADD     R12,R12,#320*32:STMIA   R12,{R0-R7}
 8940     ADD     R12,R12,#80:STMIA   R12,{R0-R7}
 8950     ADD     R12,R12,#80:STMIA   R12,{R0-R7}
 8960     ADD     R12,R12,#80:STMIA   R12,{R0-R7}
 8970     ADD     R12,R12,#320*32:STMIA   R12,{R0-R7}
 8980     SUB     R12,R12,#80:STMIA   R12,{R0-R7}
 8990     SUB     R12,R12,#80:STMIA   R12,{R0-R7}
 9000     SUB     R12,R12,#80:STMIA   R12,{R0-R7}
 9010     ADD     R13,R13,#240
 9020     SUBS    R14,R14,#1
 9030     BGT     reploop3
 9040  LDR     R13,r13sto
 9050  LDMFD   R13!,{R0-R12,PC}^
 9060
 9070
 9080  .r13sto
 9090  EQUD    0
 9100
 9110  \ Routine to plot any sphere in normal range
 9120  \ R0 points to pos vector, size (0-13)
 9130  .gensphere
 9140  STMFD   R13!,{R0-R12,R14}
 9150 
 9160  LDMIA   R0,{R0-R3}
 9170 
 9180  CMP     R3,#1
 9190  LDMLEFD R13!,{R0-R12,PC}^
 9200
 9210  MOV     R0,R0,ASR #7
 9220  ADD     R0,R0,#xorigin         \ Translate X
 9230 
 9240  ADD     R1,R1,R1,ASR #3
 9250  MOV     R1,R1,ASR #8
 9260  RSB     R1,R1,#yorigin         \ Translate Y
 9270 
 9280  MOV     R2,#18             \ height 18
 9290 
 9300  LDR     R5,spritefilebase
 9310  MOV     R4,#288
 9320  SUB     R3,R3,#2
 9330  MLA     R3,R4,R3,R5        \ point to appropriate sphere
 9340
 9350  BL      plotspritea        \ plot
 9360 
 9370  LDMFD   R13!,{R0-R12,PC}^
 9380
 9390  \ Routine to plot head
 9400  \ R0 points to pos vector, expression
 9410  .head
 9420  STMFD   R13!,{R0-R12,R14}
 9430 
 9440  LDMIA   R0,{R0-R3}
 9450 
 9460  MOV     R0,R0,ASR #7
 9470  ADD     R0,R0,#xorigin-16      \ Translate X
 9480 
 9490  ADD     R1,R1,R1,ASR #3
 9500  MOV     R1,R1,ASR #8
 9510  RSB     R1,R1,#yorigin         \ Translate Y
 9520 
 9530  MOV     R2,#36             \ height 36
 9540 
 9550  LDR     R5,spritefilebase
 9560  MOV     R4,#288
 9570  ADD     R3,R3,R3,LSL #3
 9580  ADD     R3,R3,#268
 9590  MLA     R3,R4,R3,R5        \ point to appropriate sprite
 9600
 9610  BL      plotspritea        \ plot left
 9620
 9630  ADD     R3,R3,#288*2
 9640  ADD     R0,R0,#32
 9650  BL      plotspritea        \ plot right
 9660
 9670  LDMFD   R13!,{R0-R12,PC}^
 9680
 9690  \ Bungie line routine draws line with a sphere size 10 at far end
 9700  \ R0 points to vector A, vector B, length as in table
 9710  .bungieline
 9720  STMFD   R13!,{R0-R12,R14}
 9730
 9740  MOV     R12,R0
 9750  LDMIA   R0,{R0-R6}
 9760 
 9770  MLA     R0,R3,R6,R0
 9780  MLA     R1,R4,R6,R1
 9790  MLA     R2,R5,R6,R2        \ Go to far end
 9800
 9810  MOV     R0,R0,ASR #7
 9820  ADD     R0,R0,#xorigin         \ Translate X
 9830 
 9840  ADD     R1,R1,R1,ASR #3
 9850  MOV     R1,R1,ASR #8
 9860  RSB     R1,R1,#yorigin         \ Translate Y
 9870 
 9880  MOV     R2,#18             \ height 18
 9890 
 9900  LDR     R5,spritefilebase
 9910  MOV     R4,#288
 9920  MOV     R3,#10-2
 9930  MLA     R3,R4,R3,R5        \ point to appropriate sphere
 9940
 9950  BL      plotspritea        \ plot
 9960
 9970  MOV     R0,R12
 9980  B       linesideentry
 9990
10000  \ Routine to put line stating at A, dir B in 3d
10010  \ R0 points to vector A, vector B, length as in table
10020  .line
10030  STMFD   R13!,{R0-R12,R14}
10040
10050  .linesideentry
10060
10070  LDMIA   R0,{R4-R10}
10080
10090  CMP     R10,#0
10100  LDMEQFD R13!,{R0-R12,PC}^
10110  RSBLT   R7,R7,#0
10120  RSBLT   R8,R8,#0
10130  RSBLT   R9,R9,#0
10140  RSBLT   R10,R10,#0
10150 
10160  CMP     R9,#0
10170  BLE     lineforwards
10180  MLA     R4,R7,R10,R4
10190  MLA     R5,R8,R10,R5
10200  RSB     R7,R7,#0
10210  RSB     R8,R8,#0           \ ensure line goes toward viewer
10220  .lineforwards
10230
10240  ADD     R4,R4,R7,ASR #1
10250  ADD     R5,R5,R8,ASR #1    \ add half a unit to pos
10260
10270  LDR     R1,mulconst
10280
10290  RSB     R11,R7,#2560+160
10300  MUL     R11,R1,R11
10310  MOV     R11,R11,ASR #25   \ column
10320
10330  ADD     R12,R8,#2560+160
10340  MUL     R12,R1,R12
10350  MOV     R12,R12,ASR #25   \ row
10360
10370  ORR     R0,R11,R12
10380  TST     R0,#16
10390  RSBNE   R11,R11,#16
10400  RSBNE   R12,R12,#16     \ if either go above 15 wrap round by inverting BOTH
10410
10420  LDR     R14,linetype
10430  CMP     R14,#0
10440  ADDEQ   R3,R11,#12
10450  ADDEQ   R3,R3,R12,LSL #4
10460  MOVNE   R3,#8
10470  LDR     R0,spritefilebase
10480  MOV     R1,#288
10490  MLA     R3,R1,R3,R0        \ point to appropriate line section
10500  MOV     R2,#18             \ height 18
10510
10520  .lloop
10530    MOV     R0,R4,ASR #7
10540    ADD     R0,R0,#xorigin         \ Translate X
10550 
10560    ADD     R1,R5,R5,ASR #3
10570    MOV     R1,R1,ASR #8
10580    RSB     R1,R1,#yorigin         \ Translate Y
10590 
10600    BL      plotspritea        \ plot
10610
10620    ADD     R4,R4,R7
10630    ADD     R5,R5,R8           \ add unit to pos
10640 
10650    SUBS    R10,R10,#1
10660    BGT     lloop
10670
10680  LDMFD   R13!,{R0-R12,PC}^
10690
10700  .mulconst
10710  EQUD    104858
10720
10730  .plottabqind
10740  EQUD    plottabq
10750
10760  \ Routine to draw funky dancer
10770  .drawperson
10780  STMFD   R13!,{R0-R12,R14}
10790
10800  MOV     R0,#0
10810  LDR     R1,plottabqind
10820  STR     R0,[R1]
10830
10840  ADR     R0,torsopos
10850  ADR     R1,torsotrans
10860  ADR     R2,realpos
10870  BL      transform
10880
10890  ADR     R0,vectemp
10900  ADR     R1,torsotrans
10910  ADR     R2,minusunitvec
10920  BL      transform
10930  ADR     R0,temppos
10940  ADR     R1,vectemp
10950  MOV     R2,#752
10960  ADR     R3,torsopos
10970  BL      vectormla
10980  ADR     R1,vectemp
10990  ADR     R0,temppos
11000  MOV     R2,#1
11010  BL      logline
11020  ADR     R0,temppos
11030  ADR     R1,vectemp
11040  MOV     R2,#1*1024
11050  ADD     R2,R2,#752+1504
11060  ADR     R3,torsopos
11070  BL      vectormla           \ neck
11080
11090  ADR     R0,temppos
11100  MOV     R1,#0
11110  BL      loghead
11120
11130  ADR     R0,vectemp
11140  ADR     R1,torsotrans
11150  ADR     R2,sidewaysvec
11160  BL      transform
11170  ADR     R0,temppos
11180  ADR     R1,vectemp
11190  MVN     R2,#1328
11200  ADR     R3,torsopos
11210  BL      vectormla
11220  ADR     R0,mattemp1
11230  ADR     R1,lshouldertrans
11240  ADR     R2,torsotrans
11250  BL      multiply         \ left shoulder
11260
11270  ADR     R0,vectemp
11280  ADR     R1,mattemp1
11290  ADR     R2,unitvec
11300  BL      transform
11310  ADR     R0,temppos
11320  ADR     R1,vectemp
11330  MOV     R2,#5*1024
11340  ADR     R3,temppos      \ left upper arm
11350  BL      vectormla
11360  ADR     R0,temppos
11370  ADR     R1,vectemp
11380  MVN     R2,#NOT (-5)
11390  BL      logbungieline
11400
11410  ADR     R0,mattemp2
11420  ADR     R1,lelbowtrans
11430  ADR     R2,mattemp1
11440  BL      multiply         \ left elbow
11450
11460  ADR     R0,vectemp
11470  ADR     R1,mattemp2
11480  ADR     R2,unitvec
11490  BL      transform
11500  ADR     R0,temppos
11510  ADR     R1,vectemp
11520  MOV     R2,#5
11530  BL      logbungieline   \ left lower arm
11540
11550  ADR     R0,vectemp
11560  ADR     R1,torsotrans
11570  ADR     R2,sidewaysvec
11580  BL      transform
11590  ADR     R0,temppos
11600  ADR     R1,vectemp
11610  MOV     R2,#1328
11620  ADR     R3,torsopos
11630  BL      vectormla
11640  ADR     R0,mattemp1
11650  ADR     R1,rshouldertrans
11660  ADR     R2,torsotrans
11670  BL      multiply         \ right shoulder
11680
11690  ADR     R0,vectemp
11700  ADR     R1,mattemp1
11710  ADR     R2,unitvec
11720  BL      transform
11730  ADR     R0,temppos
11740  ADR     R1,vectemp
11750  MOV     R2,#5*1024
11760  ADR     R3,temppos      \ right upper arm
11770  BL      vectormla
11780  ADR     R0,temppos
11790  ADR     R1,vectemp
11800  MVN     R2,#NOT (-5)
11810  BL      logbungieline
11820 
11830  ADR     R0,mattemp2
11840  ADR     R1,relbowtrans
11850  ADR     R2,mattemp1
11860  BL      multiply         \ right elbow
11870
11880  ADR     R0,vectemp
11890  ADR     R1,mattemp2
11900  ADR     R2,unitvec
11910  BL      transform
11920  ADR     R0,temppos
11930  ADR     R1,vectemp
11940  MOV     R2,#5
11950  BL      logbungieline    \ right lower arm
11960
11970  ADR     R0,vectemp
11980  ADR     R1,torsotrans
11990  ADR     R2,unitvec
12000  BL      transform
12010  ADR     R0,temppos
12020  ADR     R1,vectemp
12030  MOV     R2,#752
12040  ADR     R3,torsopos
12050  BL      vectormla
12060  ADR     R1,vectemp
12070  ADR     R0,temppos
12080  MOV     R2,#4
12090  BL      logline
12100  ADR     R0,bumpos
12110  ADR     R1,vectemp
12120  MOV     R2,#4*1024
12130  ADD     R2,R2,#2*752
12140  ADR     R3,torsopos
12150  BL      vectormla           \ torso
12160
12170  ADR     R0,vectemp
12180  ADR     R1,torsotrans
12190  ADR     R2,sidewaysvec
12200  BL      transform
12210  ADR     R0,temppos
12220  ADR     R1,vectemp
12230  MVN     R2,#1328
12240  ADR     R3,bumpos
12250  BL      vectormla
12260  ADR     R0,mattemp1
12270  ADR     R1,lhiptrans
12280  ADR     R2,torsotrans
12290  BL      multiply            \ left hip
12300
12310  ADR     R0,vectemp
12320  ADR     R1,mattemp1
12330  ADR     R2,unitvec
12340  BL      transform
12350  ADR     R0,temppos
12360  ADR     R1,vectemp
12370  MOV     R2,#5*1024
12380  ADR     R3,temppos
12390  BL      vectormla          \ left thigh
12400  ADR     R1,vectemp
12410  ADR     R0,temppos
12420  MVN     R2,#NOT (-5)
12430  BL      logbungieline
12440
12450  ADR     R0,mattemp2
12460  ADR     R1,lkneetrans
12470  ADR     R2,mattemp1
12480  BL      multiply            \ left knee
12490
12500  ADR     R0,vectemp
12510  ADR     R1,mattemp2
12520  ADR     R2,unitvec
12530  BL      transform
12540  ADR     R1,vectemp
12550  ADR     R0,temppos
12560  MOV     R2,#5
12570  BL      logbungieline      \ left calf
12580
12590  ADR     R0,vectemp
12600  ADR     R1,torsotrans
12610  ADR     R2,sidewaysvec
12620  BL      transform
12630  ADR     R0,temppos
12640  ADR     R1,vectemp
12650  MOV     R2,#1328
12660  ADR     R3,bumpos
12670  BL      vectormla
12680  ADR     R0,mattemp1
12690  ADR     R1,rhiptrans
12700  ADR     R2,torsotrans
12710  BL      multiply            \ right hip
12720
12730  ADR     R0,vectemp
12740  ADR     R1,mattemp1
12750  ADR     R2,unitvec
12760  BL      transform
12770  ADR     R0,temppos
12780  ADR     R1,vectemp
12790  MOV     R2,#5*1024
12800  ADR     R3,temppos
12810  BL      vectormla           \ right thigh
12820  ADR     R1,vectemp
12830  ADR     R0,temppos
12840  MVN     R2,#NOT (-5)
12850  BL      logbungieline
12860
12870  ADR     R0,mattemp2
12880  ADR     R1,rkneetrans
12890  ADR     R2,mattemp1
12900  BL      multiply            \ right knee
12910
12920  ADR     R0,vectemp
12930  ADR     R1,mattemp2
12940  ADR     R2,unitvec
12950  BL      transform
12960  ADR     R1,vectemp
12970  ADR     R0,temppos
12980  MOV     R2,#5
12990  BL      logbungieline       \ right calf
13000
13010  ADR     R0,torsopos
13020  MOV     R1,#13
13030  BL      logsphere
13040
13050  ADR     R0,bumpos
13060  MOV     R1,#13
13070  BL      logsphere
13080
13090  BL      spinningspheres
13100  BL      display
13110  BL      repeatdata
13120
13130  LDMFD   R13!,{R0-R12,PC}^
13140 
13150  .vectemp
13160  EQUD    0     :EQUD    0     :EQUD    0
13170
13180  .temppos
13190  EQUD    0     :EQUD    0     :EQUD    0
13200
13210  .mattemp1
13220  EQUD    0     :EQUD    0     :EQUD    0
13230  EQUD    0     :EQUD    0     :EQUD    0
13240  EQUD    0     :EQUD    0     :EQUD    0
13250
13260  .mattemp2
13270  EQUD    0     :EQUD    0     :EQUD    0
13280  EQUD    0     :EQUD    0     :EQUD    0
13290  EQUD    0     :EQUD    0     :EQUD    0
13300
13310  .unitvec        \ transform this vector to get direction of line
13320  EQUD    0     :EQUD    2560  :EQUD    0
13330
13340  .minusunitvec   \ transform this vector to get opposite to direction of line
13350  EQUD    0     :EQUD    -2560 :EQUD    0
13360
13370  .sidewaysvec    \ transform this vector to get a sideways directon
13380  EQUD    2560  :EQUD    0     :EQUD    0
13390
13400  .torsopos
13410  EQUD    0     :EQUD    0     :EQUD    0
13420 
13430  .bumpos
13440  EQUD    0     :EQUD    0     :EQUD    0
13450
13460  .changeabledata
13470  .realpos
13480  EQUD    0     :EQUD    0     :EQUD    0      \set
13490
13500  .torsotrans
13510  EQUD    0     :EQUD    -32768:EQUD    0      \set
13520  EQUD    -32768:EQUD    0     :EQUD    0
13530  EQUD    0     :EQUD    0     :EQUD    32768
13540
13550  .lshouldertrans
13560  EQUD    28596 :EQUD    16000 :EQUD    0      \set
13570  EQUD    -16000:EQUD    28596 :EQUD    0
13580  EQUD    0     :EQUD    0     :EQUD    32768
13590
13600  .lelbowtrans
13610  EQUD    31776 :EQUD    -8000 :EQUD    0      \set
13620  EQUD    8000  :EQUD    31776 :EQUD    0
13630  EQUD    0     :EQUD    0     :EQUD    32768
13640
13650  .rshouldertrans
13660  EQUD    28596 :EQUD    -16000:EQUD    0      \set
13670  EQUD    16000 :EQUD    28596 :EQUD    0
13680  EQUD    0     :EQUD    0     :EQUD    32768
13690
13700  .relbowtrans
13710  EQUD    31776 :EQUD    8000  :EQUD    0      \set
13720  EQUD    -8000 :EQUD    31776 :EQUD    0
13730  EQUD    0     :EQUD    0     :EQUD    32768
13740
13750  .lhiptrans
13760  EQUD    31776 :EQUD    8000  :EQUD    0      \set
13770  EQUD    -8000 :EQUD    31776 :EQUD    0
13780  EQUD    0     :EQUD    0     :EQUD    32768
13790
13800  .lkneetrans
13810  EQUD    32768 :EQUD    0     :EQUD    0      \set
13820  EQUD    0     :EQUD    32768 :EQUD    0
13830  EQUD    0     :EQUD    0     :EQUD    32768
13840
13850  .rhiptrans
13860  EQUD    31776 :EQUD    -8000 :EQUD    0      \set
13870  EQUD    8000  :EQUD    31776 :EQUD    0
13880  EQUD    0     :EQUD    0     :EQUD    32768
13890
13900  .rkneetrans
13910  EQUD    32768 :EQUD    0     :EQUD    0      \set
13920  EQUD    0     :EQUD    32768 :EQUD    0
13930  EQUD    0     :EQUD    0     :EQUD    32768
13940
13950  .identity
13960  EQUD    32768 :EQUD    0     :EQUD    0
13970  EQUD    0     :EQUD    32768 :EQUD    0
13980  EQUD    0     :EQUD    0     :EQUD    32768
13990
14000  .spin1
14010  EQUD    cos%  :EQUD    0     :EQUD    -sin%
14020  EQUD    0     :EQUD    32768 :EQUD    0
14030  EQUD    sin%  :EQUD    0     :EQUD    cos%
14040
14050  .spin2
14060  EQUD    cos%  :EQUD    -sin% :EQUD    0
14070  EQUD    sin%  :EQUD    cos%  :EQUD    0
14080  EQUD    0     :EQUD    0     :EQUD    32768
14090
14100  .spin3
14110  EQUD    32768 :EQUD    0     :EQUD    0
14120  EQUD    0     :EQUD    cos%  :EQUD    -sin%
14130  EQUD    0     :EQUD    sin%  :EQUD    cos%
14140
14150  .spin1b
14160  EQUD    cos%  :EQUD    0     :EQUD    sin%
14170  EQUD    0     :EQUD    32768 :EQUD    0
14180  EQUD    -sin% :EQUD    0     :EQUD    cos%
14190
14200  .spin2b
14210  EQUD    cos%  :EQUD    sin%  :EQUD    0
14220  EQUD    -sin% :EQUD    cos%  :EQUD    0
14230  EQUD    0     :EQUD    0     :EQUD    32768
14240
14250  .spin3b
14260  EQUD    32768 :EQUD    0     :EQUD    0
14270  EQUD    0     :EQUD    cos%  :EQUD    sin%
14280  EQUD    0     :EQUD    -sin% :EQUD    cos%
14290
14300  .angletab0            \ normal prone position
14310  EQUB    0   \ sideways
14320  EQUB    0   \ height      realpos
14330  EQUB    10  \ tilt
14340  EQUB    0   \ rot         torsotrans
14350  EQUB    20  \ tilt
14360  EQUB    248 \ rot         lshouldertrans
14370  EQUB    34  \ tilt
14380  EQUB    73  \ rot         lelbowtrans
14390  EQUB    20  \ tilt
14400  EQUB    120 \ rot         rshouldertrans
14410  EQUB    222 \ tilt
14420  EQUB    73  \ rot         relbowtrans
14430  EQUB    24  \ tilt
14440  EQUB    36  \ rot         lhiptrans
14450  EQUB    24  \ tilt
14460  EQUB    128 \ rot         lkneetrans
14470  EQUB    24  \ tilt
14480  EQUB    92  \ rot         rhiptrans
14490  EQUB    24  \ tilt
14500  EQUB    128 \ rot         rkneetrans
14510
14520  .angletab1            \ 'getting down'
14530  EQUB    0   \ sideways
14540  EQUB    84  \ height      realpos
14550  EQUB    10  \ tilt
14560  EQUB    0   \ rot         torsotrans
14570  EQUB    38  \ tilt
14580  EQUB    248 \ rot         lshouldertrans
14590  EQUB    84  \ tilt
14600  EQUB    73  \ rot         lelbowtrans
14610  EQUB    38  \ tilt
14620  EQUB    120 \ rot         rshouldertrans
14630  EQUB    172 \ tilt
14640  EQUB    73  \ rot         relbowtrans
14650  EQUB    52  \ tilt
14660  EQUB    36  \ rot         lhiptrans
14670  EQUB    80  \ tilt
14680  EQUB    128 \ rot         lkneetrans
14690  EQUB    52  \ tilt
14700  EQUB    92  \ rot         rhiptrans
14710  EQUB    80  \ tilt
14720  EQUB    128 \ rot         rkneetrans
14730
14740  .angletab2            \ yeh
14750  EQUB    0   \ sideways
14760  EQUB    84  \ height      realpos
14770  EQUB    10  \ tilt
14780  EQUB    0   \ rot         torsotrans
14790  EQUB    38  \ tilt
14800  EQUB    248 \ rot         lshouldertrans
14810  EQUB    84  \ tilt
14820  EQUB    73  \ rot         lelbowtrans
14830  EQUB    120 \ tilt
14840  EQUB    120 \ rot         rshouldertrans
14850  EQUB    224 \ tilt
14860  EQUB    180 \ rot         relbowtrans
14870  EQUB    52  \ tilt
14880  EQUB    36  \ rot         lhiptrans
14890  EQUB    80  \ tilt
14900  EQUB    128 \ rot         lkneetrans
14910  EQUB    52  \ tilt
14920  EQUB    92  \ rot         rhiptrans
14930  EQUB    80  \ tilt
14940  EQUB    128 \ rot         rkneetrans
14950
14960  .angletab3            \ foot raised
14970  EQUB    0   \ sideways
14980  EQUB    0   \ height      realpos
14990  EQUB    10  \ tilt
15000  EQUB    0   \ rot         torsotrans
15010  EQUB    20  \ tilt
15020  EQUB    248 \ rot         lshouldertrans
15030  EQUB    34  \ tilt
15040  EQUB    73  \ rot         lelbowtrans
15050  EQUB    20  \ tilt
15060  EQUB    120 \ rot         rshouldertrans
15070  EQUB    222 \ tilt
15080  EQUB    73  \ rot         relbowtrans
15090  EQUB    30  \ tilt
15100  EQUB    36  \ rot         lhiptrans
15110  EQUB    36  \ tilt
15120  EQUB    128 \ rot         lkneetrans
15130  EQUB    24  \ tilt
15140  EQUB    92  \ rot         rhiptrans
15150  EQUB    24  \ tilt
15160  EQUB    128 \ rot         rkneetrans
15170
15180  .angletab4            \ foot raised
15190  EQUB    0   \ sideways
15200  EQUB    0   \ height      realpos
15210  EQUB    10  \ tilt
15220  EQUB    0   \ rot         torsotrans
15230  EQUB    38  \ tilt
15240  EQUB    248 \ rot         lshouldertrans
15250  EQUB    84  \ tilt
15260  EQUB    73  \ rot         lelbowtrans
15270  EQUB    38  \ tilt
15280  EQUB    120 \ rot         rshouldertrans
15290  EQUB    172 \ tilt
15300  EQUB    73  \ rot         relbowtrans
15310  EQUB    30  \ tilt
15320  EQUB    36  \ rot         lhiptrans
15330  EQUB    36  \ tilt
15340  EQUB    128 \ rot         lkneetrans
15350  EQUB    24  \ tilt
15360  EQUB    92  \ rot         rhiptrans
15370  EQUB    24  \ tilt
15380  EQUB    128 \ rot         rkneetrans
15390
15400  .angletab5            \ hands in front
15410  EQUB    0   \ sideways
15420  EQUB    0   \ height      realpos
15430  EQUB    10  \ tilt
15440  EQUB    0   \ rot         torsotrans
15450  EQUB    50  \ tilt
15460  EQUB    48  \ rot         lshouldertrans
15470  EQUB    78  \ tilt
15480  EQUB    0   \ rot         lelbowtrans
15490  EQUB    50  \ tilt
15500  EQUB    80  \ rot         rshouldertrans
15510  EQUB    178 \ tilt
15520  EQUB    128 \ rot         relbowtrans
15530  EQUB    24  \ tilt
15540  EQUB    36  \ rot         lhiptrans
15550  EQUB    24  \ tilt
15560  EQUB    128 \ rot         lkneetrans
15570  EQUB    24  \ tilt
15580  EQUB    92  \ rot         rhiptrans
15590  EQUB    24  \ tilt
15600  EQUB    128 \ rot         rkneetrans
15610
15620  .angletab6            \ hands behind
15630  EQUB    0   \ sideways
15640  EQUB    84  \ height      realpos
15650  EQUB    10  \ tilt
15660  EQUB    0   \ rot         torsotrans
15670  EQUB    96  \ tilt
15680  EQUB    48  \ rot         lshouldertrans
15690  EQUB    78  \ tilt
15700  EQUB    0   \ rot         lelbowtrans
15710  EQUB    96  \ tilt
15720  EQUB    80  \ rot         rshouldertrans
15730  EQUB    178 \ tilt
15740  EQUB    128 \ rot         relbowtrans
15750  EQUB    52  \ tilt
15760  EQUB    36  \ rot         lhiptrans
15770  EQUB    80  \ tilt
15780  EQUB    128 \ rot         lkneetrans
15790  EQUB    52  \ tilt
15800  EQUB    92  \ rot         rhiptrans
15810  EQUB    80  \ tilt
15820  EQUB    128 \ rot         rkneetrans
15830
15840  .angletab7            \ hands crossed 1
15850  EQUB    0   \ sideways
15860  EQUB    84  \ height      realpos
15870  EQUB    10  \ tilt
15880  EQUB    0   \ rot         torsotrans
15890  EQUB    50  \ tilt
15900  EQUB    56  \ rot         lshouldertrans
15910  EQUB    62  \ tilt
15920  EQUB    32  \ rot         lelbowtrans
15930  EQUB    50  \ tilt
15940  EQUB    72  \ rot         rshouldertrans
15950  EQUB    162 \ tilt
15960  EQUB    96  \ rot         relbowtrans
15970  EQUB    52  \ tilt
15980  EQUB    36  \ rot         lhiptrans
15990  EQUB    80  \ tilt
16000  EQUB    128 \ rot         lkneetrans
16010  EQUB    52  \ tilt
16020  EQUB    92  \ rot         rhiptrans
16030  EQUB    80  \ tilt
16040  EQUB    128 \ rot         rkneetrans
16050
16060  .angletab8            \ hands crossed 1
16070  EQUB    0   \ sideways
16080  EQUB    84  \ height      realpos
16090  EQUB    10  \ tilt
16100  EQUB    0   \ rot         torsotrans
16110  EQUB    50  \ tilt
16120  EQUB    56  \ rot         lshouldertrans
16130  EQUB    94  \ tilt
16140  EQUB    32  \ rot         lelbowtrans
16150  EQUB    50  \ tilt
16160  EQUB    72  \ rot         rshouldertrans
16170  EQUB    194 \ tilt
16180  EQUB    96  \ rot         relbowtrans
16190  EQUB    52  \ tilt
16200  EQUB    36  \ rot         lhiptrans
16210  EQUB    80  \ tilt
16220  EQUB    128 \ rot         lkneetrans
16230  EQUB    52  \ tilt
16240  EQUB    92  \ rot         rhiptrans
16250  EQUB    80  \ tilt
16260  EQUB    128 \ rot         rkneetrans
16270
16280  .angletab9            \ the splits
16290  EQUB    0   \ sideways
16300  EQUB    150 \ height      realpos
16310  EQUB    10  \ tilt
16320  EQUB    0   \ rot         torsotrans
16330  EQUB    116 \ tilt
16340  EQUB    248 \ rot         lshouldertrans
16350  EQUB    5   \ tilt
16360  EQUB    73  \ rot         lelbowtrans
16370  EQUB    116 \ tilt
16380  EQUB    120 \ rot         rshouldertrans
16390  EQUB    251 \ tilt
16400  EQUB    73  \ rot         relbowtrans
16410  EQUB    80  \ tilt
16420  EQUB    0   \ rot         lhiptrans
16430  EQUB    10  \ tilt
16440  EQUB    128 \ rot         lkneetrans
16450  EQUB    80  \ tilt
16460  EQUB    128 \ rot         rhiptrans
16470  EQUB    10  \ tilt
16480  EQUB    128 \ rot         rkneetrans
16490
16500  .angletabcur
16510  EQUD    0
16520  EQUD    0
16530  EQUD    0
16540  EQUD    0
16550  EQUD    0
16560
16570  .mconst
16580  EQUD    65536/6+0.5
16590
16600  .sincostabind
16610  EQUD    sincostab
16620
16630  .changeabledataind
16640  EQUD    changeabledata
16650
16660  .plotscreeninda
16670  EQUD    plotscreenbase
16680
16690  \ Update movements
16700  .update
16710  STMFD   R13!,{R0-R12,R14}
16720
16730  LDR     R2,mstore
16740  LDR     R1,nstore
16750  LDR     R0,kstore        \ get position in track
16760
16770  ADR     R4,angletab0
16780
16790  CMP     R0,#7
16800  CMPNE   R0,#8
16810  CMPNE   R0,#16
16820  CMPNE   R0,#17
16830  BNE     noyeh
16840  TST     R1,#2
16850  ADRNE   R4,angletab1
16860
16870  MOV     R6,R1,LSR #1
16880  AND     R6,R6,#7
16890  MOV     R7,R1,LSR #4
16900  AND     R7,R7,#3
16910  CMP     R6,#5
16920  ADREQ   R4,angletab2
16930  CMP     R7,#3
16940  BNE     noyeh1
16950    CMP     R6,#3
16960    ADREQ   R4,angletab2
16970  .noyeh1
16980  CMP     R0,#7
16990  CMPNE   R0,#16
17000  BEQ     noyeh
17010  CMP     R6,#1
17020  ADREQ   R4,angletab9
17030  .noyeh
17040
17050  CMP     R0,#10
17060  CMPNE   R0,#11
17070  CMPNE   R0,#12
17080  CMPNE   R0,#13
17090  BNE     nocross
17100  TST     R1,#4
17110  ADRNE   R4,angletab7
17120  ADREQ   R4,angletab8
17130  TST     R1,#2
17140  ADREQ   R4,angletab5
17150  .nocross
17160
17170  CMP     R0,#5
17180  CMPNE   R0,#6
17190  CMPNE   R0,#14
17200  CMPNE   R0,#15
17210  CMPNE   R0,#18
17220  CMPNE   R0,#19
17230  BNE     noother
17240  TST     R1,#2
17250  ADRNE   R4,angletab6
17260  ADREQ   R4,angletab5
17270  .noother
17280
17290  CMP     R0,#2
17300  BNE     nofooty
17310    TST     R1,#2
17320    ADREQ   R4,angletab3
17330  .nofooty
17340
17350  CMP     R0,#3
17360  BNE     nofooty1
17370    TST     R1,#2
17380    ADREQ   R4,angletab4
17390  .nofooty1
17400
17410  LDR     R5,lasttablepos
17420  AND     R6,R1,#1
17430  CMP     R6,#1
17440  CMPEQ   R2,#2
17450  STREQ   R4,lasttablepos
17460  AND     R1,R1,#1
17470  ADD     R2,R2,R1,LSL #0
17480  ADD     R2,R2,R1,LSL #1  \ 0..5
17490  LDR     R6,mconst
17500  MUL     R2,R6,R2         \ 0..65535
17510  RSB     R3,R2,#65536     \ R3+R2=65536
17520
17530  ADR     R14,angletabcur
17540  MOV     R6,#20
17550  .udintloop
17560    LDRB    R0,[R4],#1
17570    LDRB    R1,[R5],#1
17580    MUL     R0,R2,R0
17590    MLA     R0,R3,R1,R0
17600    MOV     R0,R0,ASR #16
17610    STRB    R0,[R14],#1
17620    SUBS    R6,R6,#1
17630    BGT     udintloop
17640
17650  ADR     R14,angletabcur
17660  LDR     R2,mstore
17670  LDR     R1,nstore
17680  LDR     R0,kstore        \ get position in track (again)
17690
17700  CMP     R0,#10
17710  BLT     noturn
17720  CMP     R0,#14
17730  BGE     noturn
17740    ADD     R4,R2,R1,LSL #0
17750    ADD     R4,R4,R1,LSL #1
17760    LDR     R3,mconst
17770    MUL     R4,R3,R4
17780    MOV     R4,R4,ASR #21-8
17790    STRB    R4,[R14,#3]
17800    MOV     R4,#40
17810    STRB    R4,[R14,#2]
17820    CMP     R0,#10
17830    BNE     noturn
17840    CMP     R1,#20
17850    BGE     noturn
17860    ADD     R4,R2,R1,LSL #0
17870    ADD     R4,R4,R1,LSL #1
17880    MOV     R4,R4,ASR #1
17890    ADD     R4,R4,#10
17900    STRB    R4,[R14,#2]
17910  .noturn                  \ turning in musical bit
17920
17930  LDR     R12,changeabledataind
17940  LDR     R10,sincostabind
17950  ADD     R11,R10,#1024
17960  MOV     R9,#0
17970
17980  LDRB    R0,[R14],#1
17990  LDRB    R1,[R14],#1
18000  MOV     R0,R0,LSL #7
18010  MOV     R1,R1,LSL #7
18020  STR     R0,[R12],#4
18030  STR     R1,[R12],#8     \ convert realpos
18040
18050  LDRB    R4,[R14],#1        \ get tilt
18060  LDR     R0,[R10,R4,LSL #2] \ tilt sin  s
18070  LDR     R1,[R11,R4,LSL #2] \ tilt cos  c
18080  LDRB    R4,[R14],#1        \ get rot
18090  LDR     R2,[R10,R4,LSL #2] \ rot sin  S
18100  LDR     R3,[R11,R4,LSL #2] \ rot cos  C
18110
18120  STR     R3,[R12],#4   \ C
18130  STR     R9,[R12],#4   \ 0
18140  SUB     R4,R9,R2
18150  STR     R4,[R12],#4   \ -S
18160  MUL     R4,R0,R2
18170  ADD     R4,R9,R4,ASR #15
18180  STR     R4,[R12],#4   \ Ss
18190  SUB     R4,R9,R1
18200  STR     R4,[R12],#4   \ -c
18210  MUL     R4,R0,R3
18220  ADD     R4,R9,R4,ASR #15
18230  STR     R4,[R12],#4   \ Cs
18240  MUL     R4,R1,R2
18250  ADD     R4,R9,R4,ASR #15
18260  STR     R4,[R12],#4   \ Sc
18270  STR     R0,[R12],#4   \ s
18280  MUL     R4,R1,R3
18290  ADD     R4,R9,R4,ASR #15
18300  STR     R4,[R12],#4   \ Cc
18310
18320  MOV     R8,#8
18330  .udconvertloop
18340 
18350    LDRB    R4,[R14],#1        \ get tilt
18360    LDR     R0,[R10,R4,LSL #2] \ tilt sin  s
18370    LDR     R1,[R11,R4,LSL #2] \ tilt cos  c
18380    LDRB    R4,[R14],#1        \ get rot
18390    LDR     R2,[R10,R4,LSL #2] \ rot sin  S
18400    LDR     R3,[R11,R4,LSL #2] \ rot cos  C
18410
18420    MUL     R4,R1,R3
18430    ADD     R4,R9,R4,ASR #15
18440    STR     R4,[R12],#4   \ Cc
18450    MUL     R4,R0,R3
18460    SUB     R4,R9,R4,ASR #15
18470    STR     R4,[R12],#4   \ -Cs
18480    SUB     R4,R9,R2
18490    STR     R4,[R12],#4   \ -S
18500    STR     R0,[R12],#4   \ s
18510    STR     R1,[R12],#4   \ c
18520    STR     R9,[R12],#4   \ 0
18530    MUL     R4,R1,R2
18540    ADD     R4,R9,R4,ASR #15
18550    STR     R4,[R12],#4   \ Sc
18560    MUL     R4,R0,R2
18570    SUB     R4,R9,R4,ASR #15
18580    STR     R4,[R12],#4   \ -Ss
18590    STR     R3,[R12],#4   \ C
18600
18610    SUBS    R8,R8,#1
18620    BGT     udconvertloop
18630
18640  LDR     R0,counter
18650
18660  CMP     R0,#50
18670  RSBLE   R1,R0,#50
18680  MOVLE   R1,R1,LSL #10
18690  STRLE   R1,realpos+4      \ make him float up at start
18700
18710  ADD     R0,R0,#1
18720  STR     R0,counter
18730
18740  LDR     R0,startabind
18750  LDR     R1,plotscreeninda
18760  LDR     R1,[R1]
18770  MOV     R2,#&00          \ two pixels
18780  MOV     R3,#127
18790 
18800  LDR     R5,curseq
18810  CMP     R5,#0
18820  BEQ     noseq
18830  LDR     R6,staroffset
18840  LDR     R5,[R5,R6,LSL #2]
18850  ADD     R6,R6,#1
18860  CMP     R6,#24
18870  SUBGE   R6,R6,#24
18880  STR     R6,staroffset   \ read offset from table
18890  STR     R5,lastoffset
18900  .noseq
18910  LDR     R5,lastoffset
18920
18930  CMP     R5,#0
18940  ADDLT   R5,R5,#81920
18950  .starloop
18960    LDR     R4,[R0,R3,LSL #2]
18970    SUBS    R4,R4,R5
18980    ADDLT   R4,R4,#81920
18990    STRB    R2,[R1,R4]
19000    SUB     R3,R3,#1
19010    LDR     R4,[R0,R3,LSL #2]
19020    SUBS    R4,R4,R5
19030    ADDLT   R4,R4,#81920
19040    STRB    R2,[R1,R4]
19050    SUBS    R3,R3,#1
19060    BGT     starloop
19070
19080  LDMFD   R13!,{R0-R12,PC}^
19090
19100  .lasttablepos
19110  EQUD    angletab0
19120
19130  .curseq
19140  EQUD    0
19150
19160  .lastoffset
19170  EQUD    0
19180
19190  .staroffset
19200  EQUD    0
19210
19220  .startabind
19230  EQUD    startab
19240
19250  .counter
19260  EQUD    0
19270
19280  .curspin
19290  EQUD    identity
19300
19310  .cctab
19320  EQUD    rgval(0)*256+0.5
19330  EQUD    rgval(1)*256+0.5
19340  EQUD    rgval(2)*256+0.5
19350
19360  \ Set new colour into given light record
19370  \ R2 = base addr of record
19380  \ R3 = colour number
19390  .newcolour
19400  STMFD   R13!,{R0,R1,R14}
19410  ADR     R1,coltemplates
19420  ADD     R1,R1,R3,ASL #0
19430  ADD     R1,R1,R3,ASL #1
19440  LDRB    R0,[R1],#1
19450  STR     R0,[R2,#0]
19460  LDRB    R0,[R1],#1
19470  STR     R0,[R2,#4]
19480  LDRB    R0,[R1],#1
19490  STR     R0,[R2,#8]
19500  LDMFD   R13!,{R0,R1,PC}^
19510
19520  \ Flash given light record
19530  \ R2 = base addr of record
19540  .flash
19550  STMFD   R13!,{R0,R14}
19560  MOV     R0,#65536
19570  STR     R0,[R2,#12]
19580  LDMFD   R13!,{R0,PC}^
19590
19600  \ Turn off all light records
19610  .turnoff
19620  STMFD   R13!,{R0,R1,R14}
19630  MOV     R0,#0
19640  ADR     R1,col1
19650  STR     R0,[R1,#12]
19660  ADR     R1,col2
19670  STR     R0,[R1,#12]
19680  LDMFD   R13!,{R0,R1,PC}^
19690
19700  \ Set dim red glow in record
19710  \ R2 = base addr of record
19720  .dimglow
19730  STMFD   R13!,{R0,R3-R6,R14}
19740  ADR     R0,dimglowtemplate
19750  LDMIA   R0,{R3-R6}
19760  STMIA   R2,{R3-R6}
19770  LDMFD   R13!,{R0,R3-R6,PC}^
19780
19790  .dimglowtemplate
19800  EQUD    112
19810  EQUD    32
19820  EQUD    0
19830  EQUD    65536
19840
19850  .linetype
19860  EQUD    0
19870
19880  .coltemplates
19890  :=255 := 255 := 255   \ white
19900  :=255 := 0   := 32    \ red
19910  :=255 := 128 := 0     \ orange
19920  :=192 := 255 := 0     \ yellow
19930  :=0   := 255 := 0     \ green
19940  :=0   := 208 := 192   \ cyan
19950  :=0   := 32  := 255   \ blue
19960  :=192 := 0   := 255   \ purple
19970  :=255 := 128 := 128   \ pink
19980  :=128 := 128 := 255   \ pale blue
19990
20000  ALIGN
20010
20020  .nstore
20030  EQUD    -1
20040  .kstore
20050  EQUD    0
20060  .mstore
20070  EQUD    0
20080
20090  \ transform a vector through a matrix
20100  \ R0 points to result vector
20110  \ R1 points to matrix
20120  \ R2 points to vector
20130  .transform
20140  STMFD   R13!,{R0-R12,R14}
20150
20160  MOV     R12,R0
20170
20180  LDMIA   R2,{R9-R11}
20190  LDMIA   R1,{R0-R8}
20200
20210  MUL     R0,R9,R0
20220  MLA     R0,R10,R1,R0
20230  MLA     R0,R11,R2,R0
20240  MUL     R1,R9,R3
20250  MLA     R1,R10,R4,R1
20260  MLA     R1,R11,R5,R1
20270  MUL     R2,R9,R6
20280  MLA     R2,R10,R7,R2
20290  MLA     R2,R11,R8,R2
20300 
20310  MOV     R0,R0,ASR #15
20320  MOV     R1,R1,ASR #15
20330  MOV     R2,R2,ASR #15
20340
20350  STMIA   R12,{R0-R2}
20360
20370  LDMFD   R13!,{R0-R12,PC}^
20380
20390  \ multiply two matrices
20400  \ R0 points to result matrix
20410  \ R1 points to pre-transforming matrix
20420  \ R2 points to initial matrix
20430  .multiply
20440  STMFD   R13!,{R0-R12,R14}
20450  STR     R13,r13sto
20460
20470  LDMIA   R2,{R3-R11}
20480  STMIA   R0,{R3-R11}
20490
20500  MOV     R12,R0
20510  LDMIA   R1,{R0-R8}
20520
20530  MOV     R14,#3
20540  .multloop
20550
20560    LDMIA   R12,{R9-R11}
20570 
20580    MUL     R13,R9,R0
20590    MLA     R13,R10,R3,R13
20600    MLA     R13,R11,R6,R13
20610    MOV     R13,R13,ASR #15
20620    STR     R13,[R12],#4
20630 
20640    MUL     R13,R9,R1
20650    MLA     R13,R10,R4,R13
20660    MLA     R13,R11,R7,R13
20670    MOV     R13,R13,ASR #15
20680    STR     R13,[R12],#4
20690
20700    MUL     R13,R9,R2
20710    MLA     R13,R10,R5,R13
20720    MLA     R13,R11,R8,R13
20730    MOV     R13,R13,ASR #15
20740    STR     R13,[R12],#4
20750 
20760    SUBS    R14,R14,#1
20770    BGT     multloop
20780
20790  LDR     R13,r13sto
20800  LDMFD   R13!,{R0-R12,PC}^
20810
20820  \ Vector multiply with accumulate
20830  \ R0 points to output vector
20840  \ R1 points to multiplying vector
20850  \ R2 is multiplying scalar * 1024
20860  \ R3 points to initial vector
20870  .vectormla
20880  STMFD   R13!,{R0-R12,R14}
20890
20900  LDMIA   R3,{R3-R5}
20910  LDMIA   R1,{R6-R8}
20920
20930  MUL     R9,R2,R6
20940  ADD     R3,R3,R9,ASR #10
20950  MUL     R9,R2,R7
20960  ADD     R4,R4,R9,ASR #10
20970  MUL     R9,R2,R8
20980  ADD     R5,R5,R9,ASR #10
20990 
21000  STMIA   R0,{R3-R5}
21010 
21020  LDMFD   R13!,{R0-R12,PC}^
21030
21040  .readvduinput
21050  EQUD    148     \ screen start - vdu drivers
21060  EQUD    -1
21070
21080  .readvduoutput
21090  EQUD    0
21100
21110  .curplotbank
21120  EQUD    0
21130
21140  REM wait for vsync then swap over screens and note new plot address
21150  .changeframe
21160  STMFD   R13!,{R0-R12,R14}
21170
21180  MOV     R0,#&B0
21190  MOV     R1,#0
21200  MOV     R2,#&FF
21210  SWI     "OS_Byte"
21220  CMP     R1,#255-2
21230  BLE     overload
21240
21250  .idleloop
21260    MOV     R0,#&B0
21270    MOV     R1,#0
21280    MOV     R2,#&FF
21290    SWI     "OS_Byte"
21300    CMP     R1,#255-2
21310    BNE     idleloop  \ wait for vsync when counter crosses 255-2 ie 2 frames
21320
21330  .overload
21340
21350  MOV     R0,#&B0
21360  MOV     R1,#255
21370  MOV     R2,#0
21380  SWI     "OS_Byte"
21390
21400  LDR     R3,curplotbank
21410  MOV     R1,R3
21420  MOV     R0,#&71
21430  SWI     "OS_Byte"
21440  RSB     R1,R3,#3
21450  STR     R1,curplotbank
21460  MOV     R0,#&70
21470  SWI     "OS_Byte"   \ swap screens
21480
21490  ADR     R0,readvduinput
21500  ADR     R1,readvduoutput
21510  SWI     "OS_ReadVduVariables"
21520  LDR     R0,readvduoutput
21530  LDR     R1,plotscreenindfs
21540  STR     R0,[R1]     \ get plot address
21550
21560  LDR     R8,colfade
21570  ADR     R14,col1
21580  LDR     R7,[R14,#12]
21590  MUL     R7,R8,R7
21600  MOV     R7,R7,ASR #8
21610  STR     R7,[R14,#12]
21620  MOV     R7,R7,ASR #8
21630  LDMIA   R14,{R1-R3}
21640  MUL     R1,R7,R1
21650  MUL     R2,R7,R2
21660  MUL     R3,R7,R3      \ colour 1
21670 
21680  ADR     R14,col2
21690  LDR     R7,[R14,#12]
21700  MUL     R7,R8,R7
21710  MOV     R7,R7,ASR #8
21720  STR     R7,[R14,#12]
21730  MOV     R7,R7,ASR #8
21740  LDMIA   R14,{R4-R6}
21750  MUL     R4,R7,R4
21760  MUL     R5,R7,R5
21770  MUL     R6,R7,R6      \ colour 2
21780
21790  ADR     R12,cctab
21800  MOV     R11,#5
21810  MOV     R8,#0
21820  .udouter
21830    LDR     R10,[R12,R8,LSL #2]
21840    CMP     R8,#0
21850    MOVNE   R7,#0
21860    MOVEQ   R7,#1
21870    .udinner
21880      LDR     R9,[R12,R7,LSL #2]
21890
21900      SWI     &100+19        \ VDU 19,
21910
21920      MOV     R0,R11
21930      SWI     "OS_WriteC"    \ n,
21940
21950      SWI     &100+16        \ 16,
21960
21970      MUL     R0,R1,R9
21980      MLA     R0,R4,R10,R0
21990      MOV     R0,R0,ASR #16
22000      SWI     "OS_WriteC"    \ red,
22010
22020      MUL     R0,R2,R9
22030      MLA     R0,R5,R10,R0
22040      MOV     R0,R0,ASR #16
22050      SWI     "OS_WriteC"    \ green,
22060
22070      MUL     R0,R3,R9
22080      MLA     R0,R6,R10,R0
22090      MOV     R0,R0,ASR #16
22100      SWI     "OS_WriteC"    \ blue
22110
22120      ADD     R11,R11,#1
22130      ADD     R7,R7,#1
22140      CMP     R7,#3
22150      BLT     udinner
22160    ADD     R8,R8,#1
22170    CMP     R8,#3
22180    BLT     udouter
22190
22200  LDMFD   R13!,{R0-R12,PC}^
22210
22220  .plotscreenindfs
22230  EQUD    plotscreenbase
22240
22250  .colfade
22260  EQUD    256         \ rate of fade*256
22270
22280  .col1
22290  EQUD    0           \ red
22300  EQUD    0           \ green
22310  EQUD    0           \ blue
22320  EQUD    0           \ brightness
22330
22340  .col2
22350  EQUD    0           \ red
22360  EQUD    0           \ green
22370  EQUD    0           \ blue
22380  EQUD    0           \ brightness
22390
22400  \ dancing and lighting control routine
22410  .control
22420  STMFD   R13!,{R0-R12,R14}
22430
22440  LDR     R2,mstore
22450  ADD     R2,R2,#1
22460  STR     R2,mstore
22470
22480  LDR     R3,nstore
22490  SWI     "Tracker_ReadPos"
22500  STR     R1,nstore   \ R0=K, R1=N
22510
22520  CMP     R0,#14
22530  BLEQ    turnoff
22540
22550  CMP     R1,R3
22560  LDMEQFD R13!,{R0-R12,PC}    \ no new event
22570
22580  STR     R0,kstore
22590
22600  MOV     R2,#0
22610  STR     R2,mstore
22620
22630  CMP     R0,#1
22640  CMPEQ   R1,#0
22650  ADREQ   R2,col1
22660  BLEQ    dimglow
22670
22680  CMP     R0,#1
22690  CMPEQ   R1,#56
22700  MOVEQ   R2,#240
22710  STREQ   R2,colfade
22720
22730  CMP     R0,#0
22740  MOVEQ   R2,#256
22750  STREQ   R2,colfade
22760
22770  CMP     R0,#20
22780  MOVEQ   R2,#253
22790  STREQ   R2,colfade
22800
22810  CMP     R0,#2
22820  LDMLTFD R13!,{R0-R12,PC}^   \ K<2
22830
22840  CMP     R0,#5
22850  CMPNE   R0,#6
22860  CMPNE   R0,#14
22870  CMPNE   R0,#15
22880  CMPNE   R0,#18
22890  CMPNE   R0,#19
22900  TSTEQ   R1,#15
22910  ADREQ   R2,sseq2
22920  STREQ   R2,curseq
22930  MOVEQ   R2,#3
22940  STREQ   R2,staroffset      \ circle stars
22950
22960  CMP     R0,#7
22970  CMPNE   R0,#8
22980  CMPNE   R0,#16
22990  CMPNE   R0,#17
23000  TSTEQ   R1,#15
23010  ADREQ   R2,sseq1
23020  STREQ   R2,curseq
23030  MOVEQ   R2,#3
23040  STREQ   R2,staroffset     \ bouncy stars
23050
23060  CMP     R0,#0
23070  CMPNE   R0,#9
23080  CMPNE   R0,#20
23090  TSTEQ   R1,#15
23100  MOVEQ   R2,#0
23110  STREQ   R2,curseq         \ stationary
23120
23130  CMP     R0,#20
23140  LDMEQFD R13!,{R0-R12,PC}^   \ K=20
23150
23160  CMP     R0,#14
23170  BNE     nostrobe
23180    LDR     R6,mstore
23190    MOV     R3,#0
23200    ADR     R2,col1
23210    BL      newcolour
23220    CMP     R6,#0
23230    BLEQ    flash
23240    ADR     R2,col2
23250    BL      newcolour
23260    CMP     R6,#0
23270    BLEQ    flash
23280    B       strobe
23290  .nostrobe
23300 
23310  AND     R2,R1,#3
23320  CMP     R2,#0
23330  ADREQ   R2,col1
23340  LDR     R3,curcol1
23350  BLEQ    newcolour
23360  BLEQ    flash
23370
23380  AND     R2,R1,#3
23390  CMP     R2,#2
23400  ANDNE   R2,R1,#7
23410  CMPNE   R2,#0
23420  ADREQ   R2,col2
23430  LDR     R3,curcol2
23440  BLEQ    newcolour
23450  BLEQ    flash
23460
23470  .strobe
23480
23490  CMP     R0,#11
23500  CMPNE   R0,#13
23510  BNE     norepeat
23520  ADD     R2,R1,#1
23530  TST     R2,#15
23540  BNE     norepeat
23550  MOV     R2,R2,ASR #4
23560  AND     R2,R2,#3
23570  ADR     R3,currepqcind
23580  LDR     R4,[R3]
23590  STR     R2,[R3,R4]
23600  .norepeat                \ multiple images
23610
23620  CMP     R0,#12
23630  CMPNE   R0,#13
23640  MOVNE   R2,#0
23650  MOVEQ   R2,#1
23660  STR     R2,linetype
23670
23680  LDMFD   R13!,{R0-R12,PC}^
23690
23700  .currepqcind
23710  EQUD    currepq-P%
23720
23730  .curcol1
23740  EQUD    0
23750
23760  .curcol2
23770  EQUD    1
23780
23790  .sseq1
23800  EQUD    INT(32*COS(0*PI/12))+INT(24*SIN(0*PI/12))*320
23810  EQUD    INT(32*COS(1*PI/12))+INT(24*SIN(1*PI/12))*320
23820  EQUD    INT(32*COS(2*PI/12))+INT(24*SIN(2*PI/12))*320
23830  EQUD    INT(32*COS(3*PI/12))+INT(24*SIN(3*PI/12))*320
23840  EQUD    INT(32*COS(4*PI/12))+INT(24*SIN(4*PI/12))*320
23850  EQUD    INT(32*COS(5*PI/12))+INT(24*SIN(5*PI/12))*320
23860  EQUD    INT(32*COS(6*PI/12))+INT(24*SIN(6*PI/12))*320
23870  EQUD    INT(32*COS(7*PI/12))+INT(24*SIN(7*PI/12))*320
23880  EQUD    INT(32*COS(8*PI/12))+INT(24*SIN(8*PI/12))*320
23890  EQUD    INT(32*COS(9*PI/12))+INT(24*SIN(9*PI/12))*320
23900  EQUD    INT(32*COS(10*PI/12))+INT(24*SIN(10*PI/12))*320
23910  EQUD    INT(32*COS(11*PI/12))+INT(24*SIN(11*PI/12))*320
23920  EQUD    INT(32*COS(12*PI/12))+INT(24*SIN(12*PI/12))*320
23930  EQUD    INT(32*COS(11*PI/12))+INT(24*SIN(11*PI/12))*320
23940  EQUD    INT(32*COS(10*PI/12))+INT(24*SIN(10*PI/12))*320
23950  EQUD    INT(32*COS(9*PI/12))+INT(24*SIN(9*PI/12))*320
23960  EQUD    INT(32*COS(8*PI/12))+INT(24*SIN(8*PI/12))*320
23970  EQUD    INT(32*COS(7*PI/12))+INT(24*SIN(7*PI/12))*320
23980  EQUD    INT(32*COS(6*PI/12))+INT(24*SIN(6*PI/12))*320
23990  EQUD    INT(32*COS(5*PI/12))+INT(24*SIN(5*PI/12))*320
24000  EQUD    INT(32*COS(4*PI/12))+INT(24*SIN(4*PI/12))*320
24010  EQUD    INT(32*COS(3*PI/12))+INT(24*SIN(3*PI/12))*320
24020  EQUD    INT(32*COS(2*PI/12))+INT(24*SIN(2*PI/12))*320
24030  EQUD    INT(32*COS(1*PI/12))+INT(24*SIN(1*PI/12))*320
24040
24050  .sseq2
24060  EQUD    INT(10*COS(0*PI/6))+INT(11*SIN(0*PI/6))*320
24070  EQUD    INT(10*COS(1*PI/6))+INT(11*SIN(1*PI/6))*320
24080  EQUD    INT(10*COS(2*PI/6))+INT(11*SIN(2*PI/6))*320
24090  EQUD    INT(10*COS(3*PI/6))+INT(11*SIN(3*PI/6))*320
24100  EQUD    INT(10*COS(4*PI/6))+INT(11*SIN(4*PI/6))*320
24110  EQUD    INT(10*COS(5*PI/6))+INT(11*SIN(5*PI/6))*320
24120  EQUD    INT(10*COS(6*PI/6))+INT(11*SIN(6*PI/6))*320
24130  EQUD    INT(10*COS(7*PI/6))+INT(11*SIN(7*PI/6))*320
24140  EQUD    INT(10*COS(8*PI/6))+INT(11*SIN(8*PI/6))*320
24150  EQUD    INT(10*COS(9*PI/6))+INT(11*SIN(9*PI/6))*320
24160  EQUD    INT(10*COS(10*PI/6))+INT(11*SIN(10*PI/6))*320
24170  EQUD    INT(10*COS(11*PI/6))+INT(11*SIN(11*PI/6))*320
24180  EQUD    INT(10*COS(0*PI/6))+INT(11*SIN(0*PI/6))*320
24190  EQUD    INT(10*COS(1*PI/6))+INT(11*SIN(1*PI/6))*320
24200  EQUD    INT(10*COS(2*PI/6))+INT(11*SIN(2*PI/6))*320
24210  EQUD    INT(10*COS(3*PI/6))+INT(11*SIN(3*PI/6))*320
24220  EQUD    INT(10*COS(4*PI/6))+INT(11*SIN(4*PI/6))*320
24230  EQUD    INT(10*COS(5*PI/6))+INT(11*SIN(5*PI/6))*320
24240  EQUD    INT(10*COS(6*PI/6))+INT(11*SIN(6*PI/6))*320
24250  EQUD    INT(10*COS(7*PI/6))+INT(11*SIN(7*PI/6))*320
24260  EQUD    INT(10*COS(8*PI/6))+INT(11*SIN(8*PI/6))*320
24270  EQUD    INT(10*COS(9*PI/6))+INT(11*SIN(9*PI/6))*320
24280  EQUD    INT(10*COS(10*PI/6))+INT(11*SIN(10*PI/6))*320
24290  EQUD    INT(10*COS(11*PI/6))+INT(11*SIN(11*PI/6))*320
24300
24310  .plottabind
24320  EQUD    plottab
24330
24340  \ Log line in the plot list
24350  \ R0 points to A
24360  \ R1 points to direction
24370  \ R2 = length
24380  .logline
24390  STMFD   R13!,{R0-R12,R14}
24400 
24410  LDR     R11,plottabq
24420  LDR     R12,plottabind
24430  ADD     R12,R12,R11,LSL #6 \ get pos in table
24440 
24450  MOV     R3,#0              \ line
24460  LDMIA   R0,{R4-R6}         \ A
24470  LDMIA   R1,{R7-R9}         \ direction
24480  MOV     R10,R2             \ length
24490  MUL     R2,R9,R10
24500  ADD     R2,R6,R2,ASR #1    \ average z
24510  SUB     R2,R2,#1280        \ minus half a unit
24520  STMIA   R12,{R2-R10}       \ store whole lot
24530
24540  ADD     R11,R11,#1
24550  STR     R11,plottabq       \ store new quantity
24560
24570  LDMFD   R13!,{R0-R12,PC}^
24580
24590  \ Log bungie line in the plot list
24600  \ R0 points to A
24610  \ R1 points to direction
24620  \ R2 = length
24630  .logbungieline
24640  STMFD   R13!,{R0-R12,R14}
24650 
24660  LDR     R11,plottabq
24670  LDR     R12,plottabind
24680  ADD     R12,R12,R11,LSL #6 \ get pos in table
24690 
24700  MOV     R3,#2              \ bungie line
24710  LDMIA   R0,{R4-R6}         \ A
24720  LDMIA   R1,{R7-R9}         \ direction
24730  MOV     R10,R2             \ length
24740  MUL     R2,R9,R10
24750  ADD     R2,R6,R2,ASR #1    \ average z
24760  STMIA   R12,{R2-R10}       \ store whole lot
24770
24780  ADD     R11,R11,#1
24790  STR     R11,plottabq       \ store new quantity
24800
24810  LDMFD   R13!,{R0-R12,PC}^
24820
24830  \ Log sphere in the plot list
24840  \ R0 points to position
24850  \ R1 = size (0-13)
24860  .logsphere
24870  STMFD   R13!,{R0-R12,R14}
24880 
24890  LDR     R11,plottabq
24900  LDR     R12,plottabind
24910  ADD     R12,R12,R11,LSL #6 \ get pos in table
24920 
24930  MOV     R3,#1              \ sphere
24940  LDMIA   R0,{R4-R6}         \ position
24950  MOV     R7,R1              \ size
24960  MOV     R2,R6
24970  STMIA   R12,{R2-R7}        \ store whole lot
24980
24990  ADD     R11,R11,#1
25000  STR     R11,plottabq       \ store new quantity
25010
25020  LDMFD   R13!,{R0-R12,PC}^
25030
25040  \ Log head in the plot list
25050  \ R0 points to position
25060  \ R1 = expression
25070  .loghead
25080  STMFD   R13!,{R0-R12,R14}
25090 
25100  LDR     R11,plottabq
25110  LDR     R12,plottabind
25120  ADD     R12,R12,R11,LSL #6 \ get pos in table
25130 
25140  MOV     R3,#3              \ head
25150  LDMIA   R0,{R4-R6}         \ position
25160  MOV     R7,R1              \ expression
25170  MOV     R2,R6
25180  STMIA   R12,{R2-R7}        \ store whole lot
25190
25200  ADD     R11,R11,#1
25210  STR     R11,plottabq       \ store new quantity
25220
25230  LDMFD   R13!,{R0-R12,PC}^
25240
25250  \ display contents of plot list in revese order of distance
25260  .display
25270  STMFD   R13!,{R0-R12,R14}
25280
25290  LDR     R10,plottabq
25300
25310  .douter
25320    LDR     R12,plottabind
25330    LDR     R11,plottabq
25340    MVN     R9,#NOT (-&1000001)
25350
25360    .dinner
25370      LDR     R0,[R12],#64
25380      CMP     R0,R9
25390      MOVGE   R9,R0
25400      SUBGE   R8,R12,#64
25410      SUBS    R11,R11,#1
25420      BGT     dinner         \ loop to find farthest away item
25430
25440    LDR     R9,[R8,#4]
25450    ADD     R0,R8,#8
25460
25470    CMP     R9,#0
25480    BLEQ    line             \ draw line
25490
25500    CMP     R9,#1
25510    BLEQ    gensphere        \ draw sphere
25520 
25530    CMP     R9,#2
25540    BLEQ    bungieline       \ draw line with sphere at end point
25550
25560    CMP     R9,#3
25570    BLEQ    head             \ draw big sphere
25580
25590    MVN     R0,#NOT (-&1000001)
25600    STR     R0,[R8,#0]       \ set big negative value in distance to prevent
25610                             \ item being plotted again
25620    SUBS    R10,R10,#1
25630    BGT     douter
25640
25650  LDMFD   R13!,{R0-R12,PC}^
25660
25670  .plottabq
25680  EQUD    0
25690
25700  .sincostabind
25710  EQUD    sincostab
25720
25730  .spinningspheres
25740  STMFD   R13!,{R14}
25750
25760  LDR     R11,sincostabind
25770  ADD     R12,R11,#1024
25780  ADR     R9,tempvector
25790
25800  LDR     R6,sphereheight+0
25810  LDR     R1,sphereheight+4
25820  ADD     R6,R6,R1
25830  CMP     R6,#32768
25840  MVNGE   R1,R1
25850  CMP     R6,#0
25860  MVNLT   R1,R1
25870  STR     R6,sphereheight+0
25880  STR     R1,sphereheight+4
25890
25900  ADR     R8,spheredata
25910  MOV     R7,#6
25920
25930  .spinningloop
25940    LDR     R10,[R8,#0]
25950    SUB     R10,R10,#1
25960    STR     R10,[R8,#0]
25970    AND     R10,R10,#255
25980    LDR     R0,[R11,R10,LSL #2]
25990    SUB     R0,R0,R0,ASR #2
26000    CMP     R7,#3
26010    MOVGT   R1,R6
26020    RSBLE   R1,R6,#32768
26030    LDR     R2,[R12,R10,LSL #2]
26040    SUB     R2,R2,R2,ASR #2
26050    STMIA   R9,{R0-R2}
26060
26070    MOV     R0,R9
26080    LDR     R1,torsotransind
26090    MOV     R2,R9
26100    BL      transform
26110 
26120    LDR     R1,[R8,#4]
26130    LDR     R2,[R8,#8]
26140    ADD     R1,R1,R2
26150    CMP     R1,#13
26160    MOVEQ   R1,#11
26170    MVNEQ   R2,#NOT -1
26180    CMP     R1,#2
26190    MOVEQ   R1,#4
26200    MOVEQ   R2,#+1
26210    STR     R1,[R8,#4]
26220    STR     R2,[R8,#8]
26230    BL      logsphere
26240
26250    ADD     R8,R8,#12
26260    SUBS    R7,R7,#1
26270    BGT     spinningloop
26280
26290  LDMFD   R13!,{PC}^
26300
26310  .sphereheight
26320  EQUD    0
26330  EQUD    300
26340
26350  .spheredata
26360  EQUD    0           \ angle
26370  EQUD    3           \ size
26380  EQUD    +1          \ increment
26390
26400  EQUD    85          \ angle
26410  EQUD    9           \ size
26420  EQUD    +1          \ increment
26430
26440  EQUD    170         \ angle
26450  EQUD    9           \ size
26460  EQUD    -1          \ increment
26470
26480  EQUD    43          \ angle
26490  EQUD    3           \ size
26500  EQUD    -1          \ increment
26510
26520  EQUD    128         \ angle
26530  EQUD    9           \ size
26540  EQUD    -1          \ increment
26550
26560  EQUD    213         \ angle
26570  EQUD    9           \ size
26580  EQUD    +1          \ increment
26590
26600  .torsotransind
26610  EQUD    torsotrans
26620
26630  .tempvector
26640  EQUD    0
26650  EQUD    0
26660  EQUD    0
26670
26680  .gplotscreenind
26690  EQUD    plotscreenbase
26700
26710  \ Draw digital waveform graph
26720  \ R0 = base address of sample
26730  \ R1 = offset into sample*65536
26740  \ R2 = phase increment*65536
26750  \ R3 = pointer to graph orientation and screen position
26760  .graph
26770  STMFD   R13!,{R0-R12,R14}
26780
26790  MOV     R14,R3
26800  ADD     R0,R0,R1,LSR #16  \ address of data to plot
26810  LDR     R1,[R14,#36]
26820  MOV     R12,R1,LSL #23
26830  LDR     R1,[R14,#40]
26840  SUB     R12,R12,R1,LSL #8    \ position of origin ( -> time axis)
26850  LDR     R5,gplotscreenind
26860  LDR     R5,[R5]            \ address of screen
26870  MOV     R6,#&11            \ byte for axes
26880  MOV     R7,#&22            \ byte for points
26890  LDR     R1,[R14,#0]
26900  MOV     R1,R1,ASR #8
26910  MOV     R8,R1,LSL #16
26920  LDR     R1,[R14,#12]
26930  SUB     R8,R8,R1,ASR #7    \ time axis increment
26940  SUB     R12,R12,R8,LSL #5
26950  SUB     R12,R12,R8,LSL #4
26960  LDR     R1,[R14,#4]
26970  SUB     R1,R1,R1,ASR #2
26980  MOV     R1,R1,ASR #8
26990  MOV     R9,R1,LSL #16
27000  LDR     R1,[R14,#16]
27010  SUB     R9,R9,R1,ASR #7    \ volume axis increment
27020  SUB     R12,R12,R9,LSL #4
27030  SUB     R12,R12,R9,LSL #3
27040  MOV     R11,#96            \ number of points
27050  MOV     R3,#&3F            \ mask for sample bit isolation
27060  MOV     R4,R12
27070
27080  .gloop
27090    LDR     R1,[R0],#4
27100    AND     R2,R4,#&FF00
27110    ADD     R2,R2,R2,LSR #2
27120    ADD     R2,R2,R4,LSR #23
27130    STRB    R6,[R5,R2]
27140    AND     R2,R3,R1,LSR #2
27150    MLA     R10,R9,R2,R4
27160    AND     R2,R10,#&FF00
27170    ADD     R2,R2,R2,LSR #2
27180    ADD     R2,R2,R10,LSR #23
27190    STRB    R7,[R5,R2]
27200    ADD     R4,R4,R8
27210    AND     R2,R4,#&FF00
27220    ADD     R2,R2,R2,LSR #2
27230    ADD     R2,R2,R4,LSR #23
27240    STRB    R6,[R5,R2]
27250    AND     R2,R3,R1,LSR #10
27260    MLA     R10,R9,R2,R4
27270    AND     R2,R10,#&FF00
27280    ADD     R2,R2,R2,LSR #2
27290    ADD     R2,R2,R10,LSR #23
27300    STRB    R7,[R5,R2]
27310    ADD     R4,R4,R8
27320    AND     R2,R4,#&FF00
27330    ADD     R2,R2,R2,LSR #2
27340    ADD     R2,R2,R4,LSR #23
27350    STRB    R6,[R5,R2]
27360    AND     R2,R3,R1,LSR #18
27370    MLA     R10,R9,R2,R4
27380    AND     R2,R10,#&FF00
27390    ADD     R2,R2,R2,LSR #2
27400    ADD     R2,R2,R10,LSR #23
27410    STRB    R7,[R5,R2]
27420    ADD     R4,R4,R8
27430    AND     R2,R4,#&FF00
27440    ADD     R2,R2,R2,LSR #2
27450    ADD     R2,R2,R4,LSR #23
27460    STRB    R6,[R5,R2]
27470    AND     R2,R3,R1,LSR #26
27480    MLA     R10,R9,R2,R4
27490    AND     R2,R10,#&FF00
27500    ADD     R2,R2,R2,LSR #2
27510    ADD     R2,R2,R10,LSR #23
27520    STRB    R7,[R5,R2]
27530    ADD     R4,R4,R8
27540    SUBS    R11,R11,#4
27550    BGT     gloop
27560
27570  MOV     R4,R12             \ position of origin ( -> time axis)
27580  MOV     R11,#64            \ number of points
27590
27600  .gloop0
27610    AND     R2,R4,#&FF00
27620    ADD     R2,R2,R2,LSR #2
27630    ADD     R2,R2,R4,LSR #23
27640    STRB    R6,[R5,R2]
27650    ADD     R4,R4,R9
27660    AND     R2,R4,#&FF00
27670    ADD     R2,R2,R2,LSR #2
27680    ADD     R2,R2,R4,LSR #23
27690    STRB    R6,[R5,R2]
27700    ADD     R4,R4,R9
27710    SUBS    R11,R11,#2
27720    BGT     gloop0
27730
27740
27750  LDMFD   R13!,{R0-R12,PC}^
27760
27770  .drawgraphs
27780  STMFD   R13!,{R0-R12,R14}
27790
27800  LDR     R8,kstore
27810  CMP     R8,#2
27820  LDMLTFD R13!,{R0-R12,PC}^
27830  CMP     R8,#10
27840  BLT     notmusical
27850  CMP     R8,#14
27860  LDMLTFD R13!,{R0-R12,PC}^
27870  .notmusical
27880
27890  ADR     R12,soundinfotab
27900  MOV     R0,R12
27910  SWI     "Tracker_SoundInfo"
27920  MOV     R11,#4
27930  ADR     R3,graphpostab
27940  LDR     R9,sincostabind
27950  ADD     R10,R9,#1024
27960  ADR     R7,spinlist
27970
27980  .dgloop
27990    LDRB    R0,[R3,#44]
28000    LDR     R1,[R9,R0,LSL #2]
28010    MOV     R2,#104
28020    MUL     R1,R2,R1
28030    MOV     R1,R1,ASR #15
28040    ADD     R1,R1,#160
28050    STR     R1,[R3,#36]
28060    LDR     R1,[R10,R0,LSL #2]
28070    MOV     R2,#70
28080    MUL     R1,R2,R1
28090    MOV     R1,R1,ASR #15
28100    ADD     R1,R1,#128
28110    STR     R1,[R3,#40]
28120    ADD     R0,R0,#3
28130    STRB    R0,[R3,#44]
28140
28150    CMP     R8,#5
28160    BLT     nofunkyrot
28170
28180    MOV     R0,R3
28190    LDRB    R1,[R3,#45]
28200    LDR     R1,[R7,R1,LSL #2]
28210    MOV     R2,R3
28220    BL      multiply
28230    .nofunkyrot
28240
28250    CMP     R8,#2
28260    LDREQ   R0,identityind
28270    STMEQFD R13!,{R4-R9}
28280    LDMEQIA R0,{R0-R2,R4-R9}
28290    STMEQIA R3,{R0-R2,R4-R9}
28300    LDMEQFD R13!,{R4-R9}
28310
28320    LDR     R0,[R12,#16]
28330    CMP     R0,#0
28340    BEQ     nullsample
28350    SUB     R0,R0,#1
28360    ADR     R1,sampleaddrtab
28370    LDR     R0,[R1,R0,LSL #2]
28380    LDMIA   R12,{R1,R2}
28390    LDR     R4,[R12,#24]
28400    CMP     R4,#0
28410    BGT     oksample
28420    .nullsample
28430    LDR     R0,nullsampletabind
28440    MOV     R1,#0
28450    MOV     R2,#0
28460    .oksample
28470    BL      graph
28480    ADD     R3,R3,#48
28490    ADD     R12,R12,#32
28500    SUBS    R11,R11,#1
28510    BGT     dgloop
28520
28530  LDMFD   R13!,{R0-R12,PC}^
28540
28550  .spinlist
28560  EQUD    spin1
28570  EQUD    spin2
28580  EQUD    spin3
28590  EQUD    spin1b
28600  EQUD    spin2b
28610  EQUD    spin3b
28620
28630  .nullsampletabind
28640  EQUD    nullsampletab
28650
28660  .identityind
28670  EQUD    identity
28680
28690  .graphpostab
28700  EQUD    32768:EQUD    0:EQUD    0
28710  EQUD    0:EQUD    32768:EQUD    0
28720  EQUD    0:EQUD    0:EQUD    32768
28730  EQUD    160:EQUD    64:EQUB    0
28740  EQUB   0:ALIGN
28750
28760  EQUD    32768:EQUD    0:EQUD    0
28770  EQUD    0:EQUD    32768:EQUD    0
28780  EQUD    0:EQUD    0:EQUD    32768
28790  EQUD    240:EQUD    128:EQUB    64
28800  EQUB    0:ALIGN
28810
28820  EQUD    32768:EQUD    0:EQUD    0
28830  EQUD    0:EQUD    32768:EQUD    0
28840  EQUD    0:EQUD    0:EQUD    32768
28850  EQUD    160:EQUD    192:EQUB    128
28860  EQUB    0:ALIGN
28870
28880  EQUD    32768:EQUD    0:EQUD    0
28890  EQUD    0:EQUD    32768:EQUD    0
28900  EQUD    0:EQUD    0:EQUD    32768
28910  EQUD    80:EQUD    128 :EQUB    192
28920  EQUB    0:ALIGN
28930
28940  ]
28950
28960  sampleaddrtab=P%
28970  P%+=128
28980
28990  soundinfotab=P%
29000  P%+=256
29010
29020  plottab=P%
29030  P%+=2048
29040  REM type      line    sphere   bline     head
29050  REM base+0  = effective average distance for all types
29060  REM base+4  = 0       1        2         3
29070  REM base+8  = xA      x        xA        x
29080  REM base+12 = yA      y        yA        y
29090  REM base+16 = zA      z        zA        z
29100  REM base+20 = xx      size     xx        expr.
29110  REM base+24 = yy               yy
29120  REM base+28 = zz               zz
29130  REM base+32 = length           length
29140
29150  startab=P%
29160  P%+=512
29170
29180  sincostab=P%
29190  P%+=2048
29200
29210  nullsampletab=P%
29220  P%+=128
29230
29240  NEXT pass%
29250
29260  FOR N%=0 TO 511 STEP 4
29270    startab!N%=RND(81920)-1
29280  NEXT
29290
29300  FOR N%=0 TO 1023 STEP 4
29310    sincostab!(N%+0)=32768*SIN(N%*2*PI/1024)
29320    sincostab!(N%+1024)=32768*COS(N%*2*PI/1024)
29330  NEXT
29340
29350  FOR N%=0 TO 127
29360    nullsampletab?N%=128
29370  NEXT
29380
29390  !spritefilebase=sprites
29400ENDPROC
29410

� > !FunkyDemo.!RunMain
� (C) JSG 1992

(	� � �
2
  È  8
<	  �12
F  � 4,0,0,0
P
  � 4+128
Z  �
d  *SPEAKER OFF
n  *KEY 1 " |MTWINO8|M"
x  � 19,0,24,32,32,32
��
�
�� code 32768
�� sprites 81920
�� plotspriteacode(7,3)
�� rgval(2),bval(2)
�
�rgval(0)=0
�rgval(1)=0.6
�rgval(2)=1
�
bval(0)=0
�bval(1)=0.3
�bval(2)=0.5
xorigin=320
yorigin=64

"cos%=32768*�(0.12)+0.5
,sin%=32768*�(0.12)+0.5
6
@
�assemble
J
T*�"LOAD <Funky$Dir>.Sprites "+�~sprites
^ș"Tracker_TuneInfo" � A
h� A=0 �
r  *RMAFree 300K
|/  È™"Tracker_Load","<Funky$Dir>.GtRdyFrThs"
��
�
�� 3,255,255,255
�� 0
�� N%=0 � 127
�  A%=startab!(N%<<2)
�'  Ȓ (A% � 320)*4,1023-(A% � 320)*4
�)  Ȓ (A% � 320)*4+2,1023-(A% � 320)*4
��
�
�� N=0 � 15
�$  � 7,192-N*12,192-N*12,192-N*12
�  � 0,0,0,N*12
$  � 3,192-N*12,192-N*12,192-N*12
  *FX 19
  *FX 19
&  *FX 19
0� N
:
D!curplotbank=1
N� 0,0,0,192
X� 1,192,0,0
b� 2,192,96,0
l� 3,64,128,48
v� C2%=1 � 2
�8  � 12+C2%,127*bval(C2%),127*bval(C2%),255*bval(C2%)
��
�� 15,255,255,255
�� 15
��setpalette(B0%,B1%)
�
�� N%=0 � 31
�D  ș"Tracker_ReadSampleTable",N%+1 � ,,,,,,sampleaddrtab!(N%<<2)
��
�ș"Tracker_Stereo",1
�
�(A%=torsotrans:B%=spin1:C%=torsotrans
�$� multiply:� multiply:� multiply
� multiply
(A%=torsotrans:B%=spin3:C%=torsotrans
$� multiply:� multiply:� multiply
 
*E%=0
4� 15
>
H*FX 176,2,0
RÈ™"Tracker_SetPos",0,0
\È™"Tracker_Play"
f
p�
z  � changeframe
�  � clearscreen
�  � control
�  � update
�  � drawgraphs
�  � drawperson
�3  � �(12)=1 � !curcol1=�(10)-1:!curcol2=�(10)-1
�3  � �(6)=1 � graphpostab!(�(4)*48-48+45)=�(6)-1
�  ȗ X%,Y%,B%
�  � B% � 2 �
�    *PLAYPAUSE
�"    �:ȗ X%,Y%,B%:� (B% � 2)=0
�"    �:ȗ X%,Y%,B%:� (B% � 2)=2
�"    �:ȗ X%,Y%,B%:� (B% � 2)=0
    *PLAYSTART
  �
� B% � 4
$
.È™"Tracker_Pause"
8�0
B�
L
V� �setpalette(B0%,B1%)
`  � C1%=0 � 2
j    � C0%=0 � 2
t/      BR%=(B0%*rgval(C0%)+B1%*rgval(C1%))/2
~#      � 4+3*C1%+C0%,BR%,BR%,BR%
�	    �
�  �
��
�
�� �ROUND(A)
�=A+0.5*�(A)
� 
�� �assemble
�  � pass%=0 � 2 � 2
�
  P%=code
�  [OPT pass%
�
  .currepqind

  EQUD    currepq-P%

  .plotscreenind0
(  EQUD    plotscreenbase-P%
2
<L  \ Plot Sprite size a (32*n mode 12) with implicit mask but no clipping
F  \ Value 0    -> no plot
P*  \       1-3  -> (illegal do not use)
Z   \       4-15 -> plot pixel
d'  \ R0 = X pos of centre (internal)
n'  \ R1 = Y pos of centre (internal)
x*  \ R2 = number of lines in sprite (n)
�2  \ R3 = address of sprite data (word aligned)
�  .plotspritea
�  STMFD   R13!,{R0-R12,R14}
�
�  ADR     R10,currepqind
�  LDR     R12,[R10]
�  LDR     R10,[R12,R10]
�  CMP     R10,#1
�  BEQ     psa1
�  CMP     R10,#2
�  BEQ     psa2
�  CMP     R10,#3
�  BEQ     psa3

@  MOV     R10,R3              \ R10 = address of sprite data
 
"9  MOV     R11,R2              \ R11 = number of lines
, 
6  SUB     R0,R0,#16
@7  SUB     R1,R1,R11,ASR #1    \ get top left corner
J
T  CMN     R0,#1
^  CMNGT   R1,R11
h  LDMLEFD R13!,{R0-R12,PC}^
r  CMP     R0,#640-32
|  CMPLE   R1,#256-1
�@  LDMGTFD R13!,{R0-R12,PC}^   \ discard out of range sprites
�
�  CMP     R1,#0
�  ADDLT   R11,R11,R1
�  SUBLT   R10,R10,R1,LSL #4
�,  MOVLT   R1,#0               \ trim top
�
�  RSB     R4,R1,#256
�  CMP     R11,R4
�/  MOVGT   R11,R4              \ trim bottom
�
�  ADR     R9,plotscreenind0
�  LDR     R12,[R9]
  LDR     R9,[R9,R12]
  ADD     R9,R9,R1,LSL #8
  ADD     R9,R9,R1,LSL #6
&  BIC     R1,R0,#7
0N  ADD     R9,R9,R1,LSR #1     \ R9 = address (in screen) to begin plotting
: 
D  MOV     R12,#%1000
N   �R     R12,R12,R12,LSL #16
X  �R     R12,R12,R12,LSL #8
bH  �R     R12,R12,R12,LSL #4  \ R12 = � mask to isolate 'no plot' bit
l
v  �     R1,R0,#7
�  ADR     R0,caselist
�R  LDR     R0,[R0,R1,LSL #2]   \ R0 = address of code for particular shift case
�  ADR     R1,base
�  ADD     PC,R0,R1
�
�  .caselist
�  ]
�  � N%=0 � 7
�    [OPT pass%
�*    EQUD    plotspriteacode(N%,0)-base
�	    ]
�
  � N%
�  [OPT pass%
  .base
  ]
  � N%=0 � 7
     shiftleft  = N%*4
*    shiftright = 32-N%*4
45    [OPT pass%                \ do 8 compilations
> 
H;    .plotspriteacode(N%,0)      \ doubles as loop start
R    LDMIA   R10!,{R0-R3}
\
f    LDMIA   R9,{R4-R8}
p
z	    ]
�    � M%=0 � 3
�      Rdata = M%
�      Rcurword = M%+4
�      Rnextword = M%+5
�5      [OPT pass%              \ for four words...
� 
�'      �R     R14,Rdata,Rdata,LSL #1
�      �     R14,R12,R14
�#      �R     R14,R14,R14,LSR #2
�#      �R     R14,R14,R14,LSR #1
�6      BIC     Rcurword,Rcurword,R14,LSL #shiftleft
�7      �R     Rcurword,Rcurword,Rdata,LSL #shiftleft
�9      BIC     Rnextword,Rnextword,R14,LSR #shiftright
	:      �R     Rnextword,Rnextword,Rdata,LSR #shiftright
	      ]
	    � M%
	$    [OPT pass%
	. 
	8    STMIA   R9,{R4-R8}
	B    ADD     R9,R9,#320
	L
	V    SUBS    R11,R11,#1
	`%    BGT     plotspriteacode(N%,0)
	j
	t!    LDMFD   R13!,{R0-R12,PC}^
	~
	�	    ]
	�
  � N%
	�  [OPT pass%
	�
	�  .plotscreenind1
	�  EQUD    plotscreenbase-P%
	� 
	�  .psa1
	�@  MOV     R10,R3              \ R10 = address of sprite data
	� 
	�9  MOV     R11,R2,ASR #1       \ R11 = number of lines
	� 
  SUB     R0,R0,#16

  MOV     R1,R1,ASR #1
7  SUB     R1,R1,R11,ASR #1    \ get top left corner

(  CMN     R0,#1
2  CMNGT   R1,R11
<  LDMLEFD R13!,{R0-R12,PC}^
F  CMP     R0,#640-32
P  CMPLE   R1,#256-1
Z@  LDMGTFD R13!,{R0-R12,PC}^   \ discard out of range sprites
d
n  CMP     R1,#0
x  ADDLT   R11,R11,R1
�  SUBLT   R10,R10,R1,LSL #4
�,  MOVLT   R1,#0               \ trim top
�
�  RSB     R4,R1,#256
�  CMP     R11,R4
�/  MOVGT   R11,R4              \ trim bottom
�
�  ADR     R9,plotscreenind1
�  LDR     R12,[R9]
�  LDR     R9,[R9,R12]
�  ADD     R9,R9,R1,LSL #8
�  ADD     R9,R9,R1,LSL #6
�  BIC     R1,R0,#7
N  ADD     R9,R9,R1,LSR #1     \ R9 = address (in screen) to begin plotting
 
  MOV     R12,#%1000
"   �R     R12,R12,R12,LSL #16
,  �R     R12,R12,R12,LSL #8
6H  �R     R12,R12,R12,LSL #4  \ R12 = � mask to isolate 'no plot' bit
@
J  �     R1,R0,#7
T  ADR     R0,caselist1
^R  LDR     R0,[R0,R1,LSL #2]   \ R0 = address of code for particular shift case
h  ADR     R1,base1
r  ADD     PC,R0,R1
|
�  .caselist1
�  ]
�  � N%=0 � 7
�    [OPT pass%
�+    EQUD    plotspriteacode(N%,1)-base1
�	    ]
�
  � N%
�  [OPT pass%
�  .base1
�  ]
�  � N%=0 � 7
�    shiftleft  = N%*4
�    shiftright = 32-N%*4
5    [OPT pass%                \ do 8 compilations
 
9    .plotspriteacode(N%,1)    \ doubles as loop start
&    LDMIA   R10,{R0-R3}
0    ADD     R10,R10,#32
:
D    LDMIA   R9,{R4-R8}
N
X	    ]
b    � M%=0 � 3
l      Rdata = M%
v      Rcurword = M%+4
�      Rnextword = M%+5
�5      [OPT pass%              \ for four words...
� 
�'      �R     R14,Rdata,Rdata,LSL #1
�      �     R14,R12,R14
�#      �R     R14,R14,R14,LSR #2
�#      �R     R14,R14,R14,LSR #1
�6      BIC     Rcurword,Rcurword,R14,LSL #shiftleft
�7      �R     Rcurword,Rcurword,Rdata,LSL #shiftleft
�9      BIC     Rnextword,Rnextword,R14,LSR #shiftright
�:      �R     Rnextword,Rnextword,Rdata,LSR #shiftright
�      ]
�    � M%

    [OPT pass%

 

    STMIA   R9,{R4-R8}

     ADD     R9,R9,#320

*

4    SUBS    R11,R11,#1

>%    BGT     plotspriteacode(N%,1)

H

R!    LDMFD   R13!,{R0-R12,PC}^

\

f	    ]

p
  � N%

z  [OPT pass%

� 

�  .plotscreenind

�  EQUD    plotscreenbase-P%

� 

�  .psa2

�@  MOV     R10,R3              \ R10 = address of sprite data

� 

�9  MOV     R11,R2,ASR #2       \ R11 = number of lines

� 

�  SUB     R0,R0,#16

�  SUB     R0,R0,#160

�  MOV     R1,R1,ASR #2

�7  SUB     R1,R1,R11,ASR #1    \ get top left corner

  CMN     R0,#1
  CMNGT   R1,R11
$  LDMLEFD R13!,{R0-R12,PC}^
.  CMP     R0,#640-32
8  CMPLE   R1,#256-1
B@  LDMGTFD R13!,{R0-R12,PC}^   \ discard out of range sprites
L
V  CMP     R1,#0
`  ADDLT   R11,R11,R1
j  SUBLT   R10,R10,R1,LSL #4
t,  MOVLT   R1,#0               \ trim top
~
�  RSB     R4,R1,#256
�  CMP     R11,R4
�/  MOVGT   R11,R4              \ trim bottom
�
�  ADR     R9,plotscreenind
�  LDR     R12,[R9]
�  LDR     R9,[R9,R12]
�  ADD     R9,R9,R1,LSL #8
�  ADD     R9,R9,R1,LSL #6
�  BIC     R1,R0,#7
�N  ADD     R9,R9,R1,LSR #1     \ R9 = address (in screen) to begin plotting
� 
  MOV     R12,#%1000

   �R     R12,R12,R12,LSL #16
  �R     R12,R12,R12,LSL #8
H  �R     R12,R12,R12,LSL #4  \ R12 = � mask to isolate 'no plot' bit
(
2  �     R1,R0,#7
<  ADR     R0,caselist2
FR  LDR     R0,[R0,R1,LSL #2]   \ R0 = address of code for particular shift case
P  ADR     R1,base2
Z  ADD     PC,R0,R1
d
n  .caselist2
x  ]
�  � N%=0 � 7
�    [OPT pass%
�+    EQUD    plotspriteacode(N%,2)-base2
�	    ]
�
  � N%
�  [OPT pass%
�  .base2
�  ]
�  � N%=0 � 7
�    shiftleft  = N%*4
�    shiftright = 32-N%*4
�5    [OPT pass%                \ do 8 compilations
� 
9    .plotspriteacode(N%,2)    \ doubles as loop start
    LDMIA   R10,{R0-R3}
    ADD     R10,R10,#64
"    LDMIA   R9,{R4-R8}
,
6	    ]
@    � M%=0 � 3
J      Rdata = M%
T      Rcurword = M%+4
^      Rnextword = M%+5
h5      [OPT pass%              \ for four words...
r 
|'      �R     R14,Rdata,Rdata,LSL #1
�      �     R14,R12,R14
�#      �R     R14,R14,R14,LSR #2
�#      �R     R14,R14,R14,LSR #1
�6      BIC     Rcurword,Rcurword,R14,LSL #shiftleft
�7      �R     Rcurword,Rcurword,Rdata,LSL #shiftleft
�9      BIC     Rnextword,Rnextword,R14,LSR #shiftright
�:      �R     Rnextword,Rnextword,Rdata,LSR #shiftright
�      ]
�    � M%
�    [OPT pass%
� 
�    STMIA   R9,{R4-R8}
�    ADD     R9,R9,#320

    SUBS    R11,R11,#1
%    BGT     plotspriteacode(N%,2)
&
0!    LDMFD   R13!,{R0-R12,PC}^
:
D	    ]
N
  � N%
X  [OPT pass%
b 
l  .psa3
v@  MOV     R10,R3              \ R10 = address of sprite data
� 
�9  MOV     R11,R2,ASR #3       \ R11 = number of lines
� 
�  SUB     R0,R0,#16
�  SUB     R0,R0,#160
�  MOV     R0,R0,ASR #1
�  MOV     R1,R1,ASR #3
�7  SUB     R1,R1,R11,ASR #1    \ get top left corner
�
�  CMN     R0,#1
�  CMNGT   R1,R11
�  LDMLEFD R13!,{R0-R12,PC}^
�  CMP     R0,#640-32
  CMPLE   R1,#256-1
@  LDMGTFD R13!,{R0-R12,PC}^   \ discard out of range sprites

   CMP     R1,#0
*  ADDLT   R11,R11,R1
4  SUBLT   R10,R10,R1,LSL #4
>,  MOVLT   R1,#0               \ trim top
H
R  RSB     R4,R1,#256
\  CMP     R11,R4
f/  MOVGT   R11,R4              \ trim bottom
p
z  LDR     R9,plotscreenbase
�  ADD     R9,R9,R1,LSL #8
�  ADD     R9,R9,R1,LSL #6
�  BIC     R1,R0,#7
�N  ADD     R9,R9,R1,LSR #1     \ R9 = address (in screen) to begin plotting
� 
�  MOV     R12,#%1000
�   �R     R12,R12,R12,LSL #16
�  �R     R12,R12,R12,LSL #8
�H  �R     R12,R12,R12,LSL #4  \ R12 = � mask to isolate 'no plot' bit
�
�  �     R1,R0,#7
�  ADR     R0,caselist3
�R  LDR     R0,[R0,R1,LSL #2]   \ R0 = address of code for particular shift case
  ADR     R1,base3
  ADD     PC,R0,R1

$  .caselist3
.  ]
8  � N%=0 � 7
B    [OPT pass%
L+    EQUD    plotspriteacode(N%,3)-base3
V	    ]
`
  � N%
j  [OPT pass%
t  .base3
~  ]
�  � N%=0 � 7
�    shiftleft  = N%*4
�    shiftright = 32-N%*4
�5    [OPT pass%                \ do 8 compilations
� 
�9    .plotspriteacode(N%,3)    \ doubles as loop start
�    LDMIA   R10,{R0-R3}
�    ADD     R10,R10,#128
�    LDMIA   R9,{R4-R8}
�
�	    ]
�    � M%=0 � 1
      Rdata = M%*2

      Rcurword = M%+4
      Rnextword = M%+5
5      [OPT pass%              \ for four words...
( 
2'      �R     R14,Rdata,Rdata,LSL #1
<      �     R14,R12,R14
F#      �R     R14,R14,R14,LSR #2
P#      �R     R14,R14,R14,LSR #1
Z6      BIC     Rcurword,Rcurword,R14,LSL #shiftleft
d7      �R     Rcurword,Rcurword,Rdata,LSL #shiftleft
n9      BIC     Rnextword,Rnextword,R14,LSR #shiftright
x:      �R     Rnextword,Rnextword,Rdata,LSR #shiftright
�      ]
�    � M%
�    [OPT pass%
� 
�    STMIA   R9,{R4-R8}
�    ADD     R9,R9,#320
�
�    SUBS    R11,R11,#1
�%    BGT     plotspriteacode(N%,3)
�
�!    LDMFD   R13!,{R0-R12,PC}^
�
�	    ]

  � N%
  [OPT pass%
 
"  .plotscreenbase
,  EQUD    0
6
@  .spritefilebase
J  EQUD    0
T
^.  \ Empty routine for timing test purposes
h  .null
r  MOV     PC,R14
|
� 
�.  \ Fill screen area with colour bands etc
�  .clearscreen
�  STMFD   R13!,{R0-R3,R14}
�
�  MOV     R0,#4
�  MOV     R1,#0
�  LDR     R3,currepq
�
�  CMP     R3,#0
�  �Q   R2,#256
�  BLEQ    fillsection
�  CMP     R3,#1
  �Q   R2,#128
  BLEQ    fillsection
  CMP     R3,#2
&  �Q   R2,#64
0  BLEQ    fillsectionhalf
:  CMP     R3,#3
D  �Q   R2,#32
N   BLEQ    fillsectionquarter
X
b  LDMFD   R13!,{R0-R3,PC}^
l
v  .currepq
�  EQUD    0
�
�-  \ Fill screen area with lots of sprites
�  .repeatdata
�  STMFD   R13!,{R0-R12,R14}
�
�  MOV     R0,#4
�  MOV     R1,#0
�  LDR     R3,currepq
�
�  CMP     R3,#1
�  BEQ     rep1
�  CMP     R3,#2
  BEQ     rep2
  CMP     R3,#3
  BEQ     rep3
 
*  LDMFD   R13!,{R0-R12,PC}^
4
>
H0  \ Fill section of screen with given nibble
R  \ R0 = Word to insert
\  \ R1 = Line to start at
f  \ R2 = Number of lines
p  .fillsection
z  STMFD   R13!,{R0-R12,R14}
�1  STR     R13,r13sto               \ save R13
� 
�  MOV     R14,R2
�
�   LDR     R13,plotscreenbase
�  ADD     R13,R13,R1,LSL #8
�H  ADD     R13,R13,R1,LSL #6        \ address (in screen) to start at
� 
�  �     R0,R0,#%1111
�  �R     R0,R0,R0,LSL #4
�  �R     R0,R0,R0,LSL #8
�8  �R     R0,R0,R0,LSL #16         \ expand into word
�
  MOV     R1,R0
  MOV     R2,R0
  MOV     R3,R0
$  MOV     R4,R0
.  MOV     R5,R0
8  MOV     R6,R0
B  MOV     R7,R0
L  MOV     R8,R0
V  MOV     R9,R0
`  MOV     R10,R0
j?  MOV     R11,R0                   \ set registers for fill
t
~
  .fsloop
�1    STMIA   R13!,{R0-R11}          \ 48 bytes
�1    STMIA   R13!,{R0-R11}          \ 48 bytes
�1    STMIA   R13!,{R0-R11}          \ 48 bytes
�1    STMIA   R13!,{R0-R11}          \ 48 bytes
�1    STMIA   R13!,{R0-R11}          \ 48 bytes
�1    STMIA   R13!,{R0-R11}          \ 48 bytes
�1    STMIA   R13!,{R0-R7}           \ 32 bytes
�
�    SUBS    R14,R14,#1
�    BGT     fsloop
�
�4  LDR     R13,r13sto               \ recover R13
  LDMFD   R13!,{R0-R12,PC}^


5  \ Fill half section of screen with given nibble
  \ R0 = Word to insert
(  \ R1 = Line to start at
2  \ R2 = Number of lines
<  .fillsectionhalf
F  STMFD   R13!,{R0-R12,R14}
P1  STR     R13,r13sto               \ save R13
Z 
d  MOV     R14,R2
n
x   LDR     R13,plotscreenbase
�  ADD     R13,R13,R1,LSL #8
�H  ADD     R13,R13,R1,LSL #6        \ address (in screen) to start at
� 
�  �     R0,R0,#%1111
�  �R     R0,R0,R0,LSL #4
�  �R     R0,R0,R0,LSL #8
�8  �R     R0,R0,R0,LSL #16         \ expand into word
�
�  MOV     R1,R0
�  MOV     R2,R0
�  MOV     R3,R0
�  MOV     R4,R0
�  MOV     R5,R0
  MOV     R6,R0
  MOV     R7,R0
  MOV     R8,R0
"  MOV     R9,R0
,  MOV     R10,R0
6?  MOV     R11,R0                   \ set registers for fill
@
J  .fsloop1
T1    STMIA   R13!,{R0-R11}          \ 48 bytes
^1    STMIA   R13!,{R0-R11}          \ 48 bytes
h1    STMIA   R13!,{R0-R11}          \ 48 bytes
r1    STMIA   R13!,{R0-R3}           \ 16 bytes
|
�    ADD     R13,R13,#160
�    SUBS    R14,R14,#1
�    BGT     fsloop1
�
�4  LDR     R13,r13sto               \ recover R13
�  LDMFD   R13!,{R0-R12,PC}^
�
�8  \ Fill quarter section of screen with given nibble
�  \ R0 = Word to insert
�  \ R1 = Line to start at
�  \ R2 = Number of lines
�  .fillsectionquarter
�  STMFD   R13!,{R0-R12,R14}
1  STR     R13,r13sto               \ save R13
 
  MOV     R14,R2
&
0   LDR     R13,plotscreenbase
:  ADD     R13,R13,R1,LSL #8
DH  ADD     R13,R13,R1,LSL #6        \ address (in screen) to start at
N 
X  �     R0,R0,#%1111
b  �R     R0,R0,R0,LSL #4
l  �R     R0,R0,R0,LSL #8
v8  �R     R0,R0,R0,LSL #16         \ expand into word
�
�  MOV     R1,R0
�  MOV     R2,R0
�  MOV     R3,R0
�  MOV     R4,R0
�  MOV     R5,R0
�  MOV     R6,R0
�  MOV     R7,R0
�  MOV     R8,R0
�  MOV     R9,R0
�  MOV     R10,R0
�?  MOV     R11,R0                   \ set registers for fill
�
  .fsloop2
1    STMIA   R13!,{R0-R11}          \ 48 bytes
1    STMIA   R13!,{R0-R7}           \ 32 bytes
 
*    ADD     R13,R13,#240
4    SUBS    R14,R14,#1
>    BGT     fsloop2
H
R4  LDR     R13,r13sto               \ recover R13
\  LDMFD   R13!,{R0-R12,PC}^
f
p  .rep1
z  STR     R13,r13sto
�
�   LDR     R13,plotscreenbase
�  ADD     R12,R13,#128*320
�  MOV     R14,#128
�
�  .reploop1
�      LDMIA     R13!,{R0-R11}
�      STMIA     R12!,{R0-R11}
�      LDMIA     R13!,{R0-R11}
�      STMIA     R12!,{R0-R11}
�      LDMIA     R13!,{R0-R11}
�      STMIA     R12!,{R0-R11}
�      LDMIA     R13!,{R0-R11}
      STMIA     R12!,{R0-R11}
      LDMIA     R13!,{R0-R11}
      STMIA     R12!,{R0-R11}
$      LDMIA     R13!,{R0-R11}
.      STMIA     R12!,{R0-R11}
8     LDMIA     R13!,{R0-R7}
B     STMIA     R12!,{R0-R7}
L     SUBS      R14,R14,#1
V     BGT       reploop1
`
j  LDR     R13,r13sto
t  LDMFD   R13!,{R0-R12,PC}^
~
�  .rep2
�  STR     R13,r13sto
�
�   LDR     R13,plotscreenbase
�  MOV     R14,#64
�
�  .reploop2
�     LDMIA   R13!,{R0-R11}
�      ADD     R12,R13,#160-48
�     STMIA   R12,{R0-R11}
�      ADD     R12,R12,#320*64
�     STMIA   R12,{R0-R11}
      ADD     R12,R12,#320*64

     STMIA   R12,{R0-R11}
      ADD     R12,R12,#320*64
     STMIA   R12,{R0-R11}
(     SUB     R12,R12,#160
2     STMIA   R12,{R0-R11}
<      SUB     R12,R12,#320*64
F     STMIA   R12,{R0-R11}
P      SUB     R12,R12,#320*64
Z     STMIA   R12,{R0-R11}
d     LDMIA   R13!,{R0-R11}
n      ADD     R12,R13,#160-48
x     STMIA   R12,{R0-R11}
�      ADD     R12,R12,#320*64
�     STMIA   R12,{R0-R11}
�      ADD     R12,R12,#320*64
�     STMIA   R12,{R0-R11}
�      ADD     R12,R12,#320*64
�     STMIA   R12,{R0-R11}
�     SUB     R12,R12,#160
�     STMIA   R12,{R0-R11}
�      SUB     R12,R12,#320*64
�     STMIA   R12,{R0-R11}
�      SUB     R12,R12,#320*64
�     STMIA   R12,{R0-R11}
�     LDMIA   R13!,{R0-R11}
      ADD     R12,R13,#160-48
     STMIA   R12,{R0-R11}
      ADD     R12,R12,#320*64
"     STMIA   R12,{R0-R11}
,      ADD     R12,R12,#320*64
6     STMIA   R12,{R0-R11}
@      ADD     R12,R12,#320*64
J     STMIA   R12,{R0-R11}
T     SUB     R12,R12,#160
^     STMIA   R12,{R0-R11}
h      SUB     R12,R12,#320*64
r     STMIA   R12,{R0-R11}
|      SUB     R12,R12,#320*64
�     STMIA   R12,{R0-R11}
�     LDMIA   R13!,{R0-R3}
�      ADD     R12,R13,#160-16
�     STMIA   R12,{R0-R3}
�      ADD     R12,R12,#320*64
�     STMIA   R12,{R0-R3}
�      ADD     R12,R12,#320*64
�     STMIA   R12,{R0-R3}
�      ADD     R12,R12,#320*64
�     STMIA   R12,{R0-R3}
�     SUB     R12,R12,#160
�     STMIA   R12,{R0-R3}
�      SUB     R12,R12,#320*64
      STMIA   R12,{R0-R3}
       SUB     R12,R12,#320*64
      STMIA   R12,{R0-R3}
 &
 0     ADD     R13,R13,#160
 :     SUBS    R14,R14,#1
 D     BGT     reploop2
 N  LDR     R13,r13sto
 X  LDMFD   R13!,{R0-R12,PC}^
 b
 l  .rep3
 v  STR     R13,r13sto
 �
 �   LDR     R13,plotscreenbase
 �  MOV     R14,#32
 �
 �  .reploop3
 �     LDMIA   R13!,{R0-R11}
 �4     ADD     R12,R13,#80-48:STMIA   R12,{R0-R11}
 �1     ADD     R12,R12,#80:STMIA   R12,{R0-R11}
 �1     ADD     R12,R12,#80:STMIA   R12,{R0-R11}
 �5     ADD     R12,R12,#320*32:STMIA   R12,{R0-R11}
 �1     SUB     R12,R12,#80:STMIA   R12,{R0-R11}
 �1     SUB     R12,R12,#80:STMIA   R12,{R0-R11}
 �1     SUB     R12,R12,#80:STMIA   R12,{R0-R11}
!5     ADD     R12,R12,#320*32:STMIA   R12,{R0-R11}
!1     ADD     R12,R12,#80:STMIA   R12,{R0-R11}
!1     ADD     R12,R12,#80:STMIA   R12,{R0-R11}
! 1     ADD     R12,R12,#80:STMIA   R12,{R0-R11}
!*5     ADD     R12,R12,#320*32:STMIA   R12,{R0-R11}
!41     SUB     R12,R12,#80:STMIA   R12,{R0-R11}
!>1     SUB     R12,R12,#80:STMIA   R12,{R0-R11}
!H1     SUB     R12,R12,#80:STMIA   R12,{R0-R11}
!R5     ADD     R12,R12,#320*32:STMIA   R12,{R0-R11}
!\1     ADD     R12,R12,#80:STMIA   R12,{R0-R11}
!f1     ADD     R12,R12,#80:STMIA   R12,{R0-R11}
!p1     ADD     R12,R12,#80:STMIA   R12,{R0-R11}
!z5     ADD     R12,R12,#320*32:STMIA   R12,{R0-R11}
!�1     SUB     R12,R12,#80:STMIA   R12,{R0-R11}
!�1     SUB     R12,R12,#80:STMIA   R12,{R0-R11}
!�1     SUB     R12,R12,#80:STMIA   R12,{R0-R11}
!�5     ADD     R12,R12,#320*32:STMIA   R12,{R0-R11}
!�1     ADD     R12,R12,#80:STMIA   R12,{R0-R11}
!�1     ADD     R12,R12,#80:STMIA   R12,{R0-R11}
!�1     ADD     R12,R12,#80:STMIA   R12,{R0-R11}
!�5     ADD     R12,R12,#320*32:STMIA   R12,{R0-R11}
!�1     SUB     R12,R12,#80:STMIA   R12,{R0-R11}
!�1     SUB     R12,R12,#80:STMIA   R12,{R0-R11}
!�1     SUB     R12,R12,#80:STMIA   R12,{R0-R11}
!�     LDMIA   R13!,{R0-R7}
!�3     ADD     R12,R13,#80-32:STMIA   R12,{R0-R7}
"0     ADD     R12,R12,#80:STMIA   R12,{R0-R7}
"0     ADD     R12,R12,#80:STMIA   R12,{R0-R7}
"4     ADD     R12,R12,#320*32:STMIA   R12,{R0-R7}
"$0     SUB     R12,R12,#80:STMIA   R12,{R0-R7}
".0     SUB     R12,R12,#80:STMIA   R12,{R0-R7}
"80     SUB     R12,R12,#80:STMIA   R12,{R0-R7}
"B4     ADD     R12,R12,#320*32:STMIA   R12,{R0-R7}
"L0     ADD     R12,R12,#80:STMIA   R12,{R0-R7}
"V0     ADD     R12,R12,#80:STMIA   R12,{R0-R7}
"`0     ADD     R12,R12,#80:STMIA   R12,{R0-R7}
"j4     ADD     R12,R12,#320*32:STMIA   R12,{R0-R7}
"t0     SUB     R12,R12,#80:STMIA   R12,{R0-R7}
"~0     SUB     R12,R12,#80:STMIA   R12,{R0-R7}
"�0     SUB     R12,R12,#80:STMIA   R12,{R0-R7}
"�4     ADD     R12,R12,#320*32:STMIA   R12,{R0-R7}
"�0     ADD     R12,R12,#80:STMIA   R12,{R0-R7}
"�0     ADD     R12,R12,#80:STMIA   R12,{R0-R7}
"�0     ADD     R12,R12,#80:STMIA   R12,{R0-R7}
"�4     ADD     R12,R12,#320*32:STMIA   R12,{R0-R7}
"�0     SUB     R12,R12,#80:STMIA   R12,{R0-R7}
"�0     SUB     R12,R12,#80:STMIA   R12,{R0-R7}
"�0     SUB     R12,R12,#80:STMIA   R12,{R0-R7}
"�4     ADD     R12,R12,#320*32:STMIA   R12,{R0-R7}
"�0     ADD     R12,R12,#80:STMIA   R12,{R0-R7}
"�0     ADD     R12,R12,#80:STMIA   R12,{R0-R7}
#0     ADD     R12,R12,#80:STMIA   R12,{R0-R7}
#
4     ADD     R12,R12,#320*32:STMIA   R12,{R0-R7}
#0     SUB     R12,R12,#80:STMIA   R12,{R0-R7}
#0     SUB     R12,R12,#80:STMIA   R12,{R0-R7}
#(0     SUB     R12,R12,#80:STMIA   R12,{R0-R7}
#2     ADD     R13,R13,#240
#<     SUBS    R14,R14,#1
#F     BGT     reploop3
#P  LDR     R13,r13sto
#Z  LDMFD   R13!,{R0-R12,PC}^
#d
#n
#x
  .r13sto
#�  EQUD    0
#�
#�2  \ Routine to plot any sphere in normal range
#�,  \ R0 points to pos vector, size (0-13)
#�  .gensphere
#�  STMFD   R13!,{R0-R12,R14}
#� 
#�  LDMIA   R0,{R0-R3}
#� 
#�  CMP     R3,#1
#�  LDMLEFD R13!,{R0-R12,PC}^
#�
#�  MOV     R0,R0,ASR #7
$2  ADD     R0,R0,#xorigin         \ Translate X
$ 
$  ADD     R1,R1,R1,ASR #3
$"  MOV     R1,R1,ASR #8
$,2  RSB     R1,R1,#yorigin         \ Translate Y
$6 
$@,  MOV     R2,#18             \ height 18
$J 
$T  LDR     R5,spritefilebase
$^  MOV     R4,#288
$h  SUB     R3,R3,#2
$r>  MLA     R3,R4,R3,R5        \ point to appropriate sphere
$|
$�'  BL      plotspritea        \ plot
$� 
$�  LDMFD   R13!,{R0-R12,PC}^
$�
$�  \ Routine to plot head
$�+  \ R0 points to pos vector, expression
$�  .head
$�  STMFD   R13!,{R0-R12,R14}
$� 
$�  LDMIA   R0,{R0-R3}
$� 
$�  MOV     R0,R0,ASR #7
$�2  ADD     R0,R0,#xorigin-16      \ Translate X
% 
%  ADD     R1,R1,R1,ASR #3
%  MOV     R1,R1,ASR #8
%&2  RSB     R1,R1,#yorigin         \ Translate Y
%0 
%:,  MOV     R2,#36             \ height 36
%D 
%N  LDR     R5,spritefilebase
%X  MOV     R4,#288
%b  ADD     R3,R3,R3,LSL #3
%l  ADD     R3,R3,#268
%v>  MLA     R3,R4,R3,R5        \ point to appropriate sprite
%�
%�,  BL      plotspritea        \ plot left
%�
%�  ADD     R3,R3,#288*2
%�  ADD     R0,R0,#32
%�-  BL      plotspritea        \ plot right
%�
%�  LDMFD   R13!,{R0-R12,PC}^
%�
%�G  \ Bungie line routine draws line with a sphere size 10 at far end
%�;  \ R0 points to vector A, vector B, length as in table
%�  .bungieline
%�  STMFD   R13!,{R0-R12,R14}
&
&  MOV     R12,R0
&  LDMIA   R0,{R0-R6}
&  
&*  MLA     R0,R3,R6,R0
&4  MLA     R1,R4,R6,R1
&>0  MLA     R2,R5,R6,R2        \ Go to far end
&H
&R  MOV     R0,R0,ASR #7
&\2  ADD     R0,R0,#xorigin         \ Translate X
&f 
&p  ADD     R1,R1,R1,ASR #3
&z  MOV     R1,R1,ASR #8
&�2  RSB     R1,R1,#yorigin         \ Translate Y
&� 
&�,  MOV     R2,#18             \ height 18
&� 
&�  LDR     R5,spritefilebase
&�  MOV     R4,#288
&�  MOV     R3,#10-2
&�>  MLA     R3,R4,R3,R5        \ point to appropriate sphere
&�
&�'  BL      plotspritea        \ plot
&�
&�  MOV     R0,R12
&�  B       linesideentry
'
'5  \ Routine to put line stating at A, dir B in 3d
';  \ R0 points to vector A, vector B, length as in table
'$  .line
'.  STMFD   R13!,{R0-R12,R14}
'8
'B  .linesideentry
'L
'V  LDMIA   R0,{R4-R10}
'`
'j  CMP     R10,#0
't  LDMEQFD R13!,{R0-R12,PC}^
'~  RSBLT   R7,R7,#0
'�  RSBLT   R8,R8,#0
'�  RSBLT   R9,R9,#0
'�  RSBLT   R10,R10,#0
'� 
'�  CMP     R9,#0
'�  BLE     lineforwards
'�  MLA     R4,R7,R10,R4
'�  MLA     R5,R8,R10,R5
'�  RSB     R7,R7,#0
'�A  RSB     R8,R8,#0           \ ensure line goes toward viewer
'�  .lineforwards
'�
(  ADD     R4,R4,R7,ASR #1
(
9  ADD     R5,R5,R8,ASR #1    \ add half a unit to pos
(
(  LDR     R1,mulconst
((
(2  RSB     R11,R7,#2560+160
(<  MUL     R11,R1,R11
(F(  MOV     R11,R11,ASR #25   \ column
(P
(Z  ADD     R12,R8,#2560+160
(d  MUL     R12,R1,R12
(n%  MOV     R12,R12,ASR #25   \ row
(x
(�  �R     R0,R11,R12
(�  TST     R0,#16
(�  RSBNE   R11,R11,#16
(�R  RSBNE   R12,R12,#16     \ if either go above 15 wrap round by inverting BOTH
(�
(�  LDR     R14,linetype
(�  CMP     R14,#0
(�  ADDEQ   R3,R11,#12
(�  ADDEQ   R3,R3,R12,LSL #4
(�  MOVNE   R3,#8
(�  LDR     R0,spritefilebase
(�  MOV     R1,#288
(�D  MLA     R3,R1,R3,R0        \ point to appropriate line section
),  MOV     R2,#18             \ height 18
)
)  .lloop
)"    MOV     R0,R4,ASR #7
),4    ADD     R0,R0,#xorigin         \ Translate X
)6 
)@    ADD     R1,R5,R5,ASR #3
)J    MOV     R1,R1,ASR #8
)T4    RSB     R1,R1,#yorigin         \ Translate Y
)^ 
)h)    BL      plotspritea        \ plot
)r
)|    ADD     R4,R4,R7
)�4    ADD     R5,R5,R8           \ add unit to pos
)� 
)�    SUBS    R10,R10,#1
)�    BGT     lloop
)�
)�  LDMFD   R13!,{R0-R12,PC}^
)�
)�  .mulconst
)�  EQUD    104858
)�
)�  .plottabqind
)�  EQUD    plottabq
)�
*$  \ Routine to draw funky dancer
*  .drawperson
*  STMFD   R13!,{R0-R12,R14}
*&
*0  MOV     R0,#0
*:  LDR     R1,plottabqind
*D  STR     R0,[R1]
*N
*X  ADR     R0,torsopos
*b  ADR     R1,torsotrans
*l  ADR     R2,realpos
*v  BL      transform
*�
*�  ADR     R0,vectemp
*�  ADR     R1,torsotrans
*�  ADR     R2,minusunitvec
*�  BL      transform
*�  ADR     R0,temppos
*�  ADR     R1,vectemp
*�  MOV     R2,#752
*�  ADR     R3,torsopos
*�  BL      vectormla
*�  ADR     R1,vectemp
*�  ADR     R0,temppos
*�  MOV     R2,#1
+  BL      logline
+  ADR     R0,temppos
+  ADR     R1,vectemp
+   MOV     R2,#1*1024
+*  ADD     R2,R2,#752+1504
+4  ADR     R3,torsopos
+>(  BL      vectormla           \ neck
+H
+R  ADR     R0,temppos
+\  MOV     R1,#0
+f  BL      loghead
+p
+z  ADR     R0,vectemp
+�  ADR     R1,torsotrans
+�  ADR     R2,sidewaysvec
+�  BL      transform
+�  ADR     R0,temppos
+�  ADR     R1,vectemp
+�  MVN     R2,#1328
+�  ADR     R3,torsopos
+�  BL      vectormla
+�  ADR     R0,mattemp1
+�  ADR     R1,lshouldertrans
+�  ADR     R2,torsotrans
+�.  BL      multiply         \ left shoulder
+�
,  ADR     R0,vectemp
,  ADR     R1,mattemp1
,  ADR     R2,unitvec
,$  BL      transform
,.  ADR     R0,temppos
,8  ADR     R1,vectemp
,B  MOV     R2,#5*1024
,L.  ADR     R3,temppos      \ left upper arm
,V  BL      vectormla
,`  ADR     R0,temppos
,j  ADR     R1,vectemp
,t  MVN     R2,#� (-5)
,~  BL      logbungieline
,�
,�  ADR     R0,mattemp2
,�  ADR     R1,lelbowtrans
,�  ADR     R2,mattemp1
,�+  BL      multiply         \ left elbow
,�
,�  ADR     R0,vectemp
,�  ADR     R1,mattemp2
,�  ADR     R2,unitvec
,�  BL      transform
,�  ADR     R0,temppos
,�  ADR     R1,vectemp
-  MOV     R2,#5
-
.  BL      logbungieline   \ left lower arm
-
-  ADR     R0,vectemp
-(  ADR     R1,torsotrans
-2  ADR     R2,sidewaysvec
-<  BL      transform
-F  ADR     R0,temppos
-P  ADR     R1,vectemp
-Z  MOV     R2,#1328
-d  ADR     R3,torsopos
-n  BL      vectormla
-x  ADR     R0,mattemp1
-�  ADR     R1,rshouldertrans
-�  ADR     R2,torsotrans
-�/  BL      multiply         \ right shoulder
-�
-�  ADR     R0,vectemp
-�  ADR     R1,mattemp1
-�  ADR     R2,unitvec
-�  BL      transform
-�  ADR     R0,temppos
-�  ADR     R1,vectemp
-�  MOV     R2,#5*1024
-�/  ADR     R3,temppos      \ right upper arm
-�  BL      vectormla
.  ADR     R0,temppos
.  ADR     R1,vectemp
.  MVN     R2,#� (-5)
."  BL      logbungieline
., 
.6  ADR     R0,mattemp2
.@  ADR     R1,relbowtrans
.J  ADR     R2,mattemp1
.T,  BL      multiply         \ right elbow
.^
.h  ADR     R0,vectemp
.r  ADR     R1,mattemp2
.|  ADR     R2,unitvec
.�  BL      transform
.�  ADR     R0,temppos
.�  ADR     R1,vectemp
.�  MOV     R2,#5
.�0  BL      logbungieline    \ right lower arm
.�
.�  ADR     R0,vectemp
.�  ADR     R1,torsotrans
.�  ADR     R2,unitvec
.�  BL      transform
.�  ADR     R0,temppos
.�  ADR     R1,vectemp
.�  MOV     R2,#752
/  ADR     R3,torsopos
/  BL      vectormla
/  ADR     R1,vectemp
/&  ADR     R0,temppos
/0  MOV     R2,#4
/:  BL      logline
/D  ADR     R0,bumpos
/N  ADR     R1,vectemp
/X  MOV     R2,#4*1024
/b  ADD     R2,R2,#2*752
/l  ADR     R3,torsopos
/v)  BL      vectormla           \ torso
/�
/�  ADR     R0,vectemp
/�  ADR     R1,torsotrans
/�  ADR     R2,sidewaysvec
/�  BL      transform
/�  ADR     R0,temppos
/�  ADR     R1,vectemp
/�  MVN     R2,#1328
/�  ADR     R3,bumpos
/�  BL      vectormla
/�  ADR     R0,mattemp1
/�  ADR     R1,lhiptrans
/�  ADR     R2,torsotrans
0,  BL      multiply            \ left hip
0
0  ADR     R0,vectemp
0   ADR     R1,mattemp1
0*  ADR     R2,unitvec
04  BL      transform
0>  ADR     R0,temppos
0H  ADR     R1,vectemp
0R  MOV     R2,#5*1024
0\  ADR     R3,temppos
0f-  BL      vectormla          \ left thigh
0p  ADR     R1,vectemp
0z  ADR     R0,temppos
0�  MVN     R2,#� (-5)
0�  BL      logbungieline
0�
0�  ADR     R0,mattemp2
0�  ADR     R1,lkneetrans
0�  ADR     R2,mattemp1
0�-  BL      multiply            \ left knee
0�
0�  ADR     R0,vectemp
0�  ADR     R1,mattemp2
0�  ADR     R2,unitvec
0�  BL      transform
0�  ADR     R1,vectemp
1  ADR     R0,temppos
1  MOV     R2,#5
1,  BL      logbungieline      \ left calf
1$
1.  ADR     R0,vectemp
18  ADR     R1,torsotrans
1B  ADR     R2,sidewaysvec
1L  BL      transform
1V  ADR     R0,temppos
1`  ADR     R1,vectemp
1j  MOV     R2,#1328
1t  ADR     R3,bumpos
1~  BL      vectormla
1�  ADR     R0,mattemp1
1�  ADR     R1,rhiptrans
1�  ADR     R2,torsotrans
1�-  BL      multiply            \ right hip
1�
1�  ADR     R0,vectemp
1�  ADR     R1,mattemp1
1�  ADR     R2,unitvec
1�  BL      transform
1�  ADR     R0,temppos
1�  ADR     R1,vectemp
1�  MOV     R2,#5*1024
2  ADR     R3,temppos
2
/  BL      vectormla           \ right thigh
2  ADR     R1,vectemp
2  ADR     R0,temppos
2(  MVN     R2,#� (-5)
22  BL      logbungieline
2<
2F  ADR     R0,mattemp2
2P  ADR     R1,rkneetrans
2Z  ADR     R2,mattemp1
2d.  BL      multiply            \ right knee
2n
2x  ADR     R0,vectemp
2�  ADR     R1,mattemp2
2�  ADR     R2,unitvec
2�  BL      transform
2�  ADR     R1,vectemp
2�  ADR     R0,temppos
2�  MOV     R2,#5
2�.  BL      logbungieline       \ right calf
2�
2�  ADR     R0,torsopos
2�  MOV     R1,#13
2�  BL      logsphere
2�
2�  ADR     R0,bumpos
3  MOV     R1,#13
3  BL      logsphere
3
3"  BL      spinningspheres
3,  BL      display
36  BL      repeatdata
3@
3J  LDMFD   R13!,{R0-R12,PC}^
3T 
3^  .vectemp
3h-  EQUD    0     :EQUD    0     :EQUD    0
3r
3|  .temppos
3�-  EQUD    0     :EQUD    0     :EQUD    0
3�
3�  .mattemp1
3�-  EQUD    0     :EQUD    0     :EQUD    0
3�-  EQUD    0     :EQUD    0     :EQUD    0
3�-  EQUD    0     :EQUD    0     :EQUD    0
3�
3�  .mattemp2
3�-  EQUD    0     :EQUD    0     :EQUD    0
3�-  EQUD    0     :EQUD    0     :EQUD    0
3�-  EQUD    0     :EQUD    0     :EQUD    0
3�
3�F  .unitvec        \ transform this vector to get direction of line
4-  EQUD    0     :EQUD    2560  :EQUD    0
4
4R  .minusunitvec   \ transform this vector to get opposite to direction of line
4&-  EQUD    0     :EQUD    -2560 :EQUD    0
40
4:H  .sidewaysvec    \ transform this vector to get a sideways directon
4D-  EQUD    2560  :EQUD    0     :EQUD    0
4N
4X  .torsopos
4b-  EQUD    0     :EQUD    0     :EQUD    0
4l 
4v
  .bumpos
4�-  EQUD    0     :EQUD    0     :EQUD    0
4�
4�  .changeabledata
4�  .realpos
4�7  EQUD    0     :EQUD    0     :EQUD    0      \set
4�
4�  .torsotrans
4�7  EQUD    0     :EQUD    -32768:EQUD    0      \set
4�-  EQUD    -32768:EQUD    0     :EQUD    0
4�1  EQUD    0     :EQUD    0     :EQUD    32768
4�
4�  .lshouldertrans
4�7  EQUD    28596 :EQUD    16000 :EQUD    0      \set
5-  EQUD    -16000:EQUD    28596 :EQUD    0
51  EQUD    0     :EQUD    0     :EQUD    32768
5
5   .lelbowtrans
5*7  EQUD    31776 :EQUD    -8000 :EQUD    0      \set
54-  EQUD    8000  :EQUD    31776 :EQUD    0
5>1  EQUD    0     :EQUD    0     :EQUD    32768
5H
5R  .rshouldertrans
5\7  EQUD    28596 :EQUD    -16000:EQUD    0      \set
5f-  EQUD    16000 :EQUD    28596 :EQUD    0
5p1  EQUD    0     :EQUD    0     :EQUD    32768
5z
5�  .relbowtrans
5�7  EQUD    31776 :EQUD    8000  :EQUD    0      \set
5�-  EQUD    -8000 :EQUD    31776 :EQUD    0
5�1  EQUD    0     :EQUD    0     :EQUD    32768
5�
5�  .lhiptrans
5�7  EQUD    31776 :EQUD    8000  :EQUD    0      \set
5�-  EQUD    -8000 :EQUD    31776 :EQUD    0
5�1  EQUD    0     :EQUD    0     :EQUD    32768
5�
5�  .lkneetrans
5�7  EQUD    32768 :EQUD    0     :EQUD    0      \set
5�-  EQUD    0     :EQUD    32768 :EQUD    0
61  EQUD    0     :EQUD    0     :EQUD    32768
6
6  .rhiptrans
6$7  EQUD    31776 :EQUD    -8000 :EQUD    0      \set
6.-  EQUD    8000  :EQUD    31776 :EQUD    0
681  EQUD    0     :EQUD    0     :EQUD    32768
6B
6L  .rkneetrans
6V7  EQUD    32768 :EQUD    0     :EQUD    0      \set
6`-  EQUD    0     :EQUD    32768 :EQUD    0
6j1  EQUD    0     :EQUD    0     :EQUD    32768
6t
6~  .identity
6�-  EQUD    32768 :EQUD    0     :EQUD    0
6�-  EQUD    0     :EQUD    32768 :EQUD    0
6�1  EQUD    0     :EQUD    0     :EQUD    32768
6�
6�  .spin1
6�1  EQUD    cos%  :EQUD    0     :EQUD    -sin%
6�-  EQUD    0     :EQUD    32768 :EQUD    0
6�0  EQUD    sin%  :EQUD    0     :EQUD    cos%
6�
6�  .spin2
6�-  EQUD    cos%  :EQUD    -sin% :EQUD    0
6�-  EQUD    sin%  :EQUD    cos%  :EQUD    0
71  EQUD    0     :EQUD    0     :EQUD    32768
7

7  .spin3
7-  EQUD    32768 :EQUD    0     :EQUD    0
7(1  EQUD    0     :EQUD    cos%  :EQUD    -sin%
720  EQUD    0     :EQUD    sin%  :EQUD    cos%
7<
7F
  .spin1b
7P0  EQUD    cos%  :EQUD    0     :EQUD    sin%
7Z-  EQUD    0     :EQUD    32768 :EQUD    0
7d0  EQUD    -sin% :EQUD    0     :EQUD    cos%
7n
7x
  .spin2b
7�-  EQUD    cos%  :EQUD    sin%  :EQUD    0
7�-  EQUD    -sin% :EQUD    cos%  :EQUD    0
7�1  EQUD    0     :EQUD    0     :EQUD    32768
7�
7�
  .spin3b
7�-  EQUD    32768 :EQUD    0     :EQUD    0
7�0  EQUD    0     :EQUD    cos%  :EQUD    sin%
7�0  EQUD    0     :EQUD    -sin% :EQUD    cos%
7�
7�3  .angletab0            \ normal prone position
7�  EQUB    0   \ sideways
7�'  EQUB    0   \ height      realpos
7�  EQUB    10  \ tilt
8*  EQUB    0   \ rot         torsotrans
8  EQUB    20  \ tilt
8.  EQUB    248 \ rot         lshouldertrans
8"  EQUB    34  \ tilt
8,+  EQUB    73  \ rot         lelbowtrans
86  EQUB    20  \ tilt
8@.  EQUB    120 \ rot         rshouldertrans
8J  EQUB    222 \ tilt
8T+  EQUB    73  \ rot         relbowtrans
8^  EQUB    24  \ tilt
8h)  EQUB    36  \ rot         lhiptrans
8r  EQUB    24  \ tilt
8|*  EQUB    128 \ rot         lkneetrans
8�  EQUB    24  \ tilt
8�)  EQUB    92  \ rot         rhiptrans
8�  EQUB    24  \ tilt
8�*  EQUB    128 \ rot         rkneetrans
8�
8�,  .angletab1            \ 'getting down'
8�  EQUB    0   \ sideways
8�'  EQUB    84  \ height      realpos
8�  EQUB    10  \ tilt
8�*  EQUB    0   \ rot         torsotrans
8�  EQUB    38  \ tilt
8�.  EQUB    248 \ rot         lshouldertrans
8�  EQUB    84  \ tilt
9+  EQUB    73  \ rot         lelbowtrans
9  EQUB    38  \ tilt
9.  EQUB    120 \ rot         rshouldertrans
9&  EQUB    172 \ tilt
90+  EQUB    73  \ rot         relbowtrans
9:  EQUB    52  \ tilt
9D)  EQUB    36  \ rot         lhiptrans
9N  EQUB    80  \ tilt
9X*  EQUB    128 \ rot         lkneetrans
9b  EQUB    52  \ tilt
9l)  EQUB    92  \ rot         rhiptrans
9v  EQUB    80  \ tilt
9�*  EQUB    128 \ rot         rkneetrans
9�
9�!  .angletab2            \ yeh
9�  EQUB    0   \ sideways
9�'  EQUB    84  \ height      realpos
9�  EQUB    10  \ tilt
9�*  EQUB    0   \ rot         torsotrans
9�  EQUB    38  \ tilt
9�.  EQUB    248 \ rot         lshouldertrans
9�  EQUB    84  \ tilt
9�+  EQUB    73  \ rot         lelbowtrans
9�  EQUB    120 \ tilt
9�.  EQUB    120 \ rot         rshouldertrans
:  EQUB    224 \ tilt
:+  EQUB    180 \ rot         relbowtrans
:  EQUB    52  \ tilt
: )  EQUB    36  \ rot         lhiptrans
:*  EQUB    80  \ tilt
:4*  EQUB    128 \ rot         lkneetrans
:>  EQUB    52  \ tilt
:H)  EQUB    92  \ rot         rhiptrans
:R  EQUB    80  \ tilt
:\*  EQUB    128 \ rot         rkneetrans
:f
:p)  .angletab3            \ foot raised
:z  EQUB    0   \ sideways
:�'  EQUB    0   \ height      realpos
:�  EQUB    10  \ tilt
:�*  EQUB    0   \ rot         torsotrans
:�  EQUB    20  \ tilt
:�.  EQUB    248 \ rot         lshouldertrans
:�  EQUB    34  \ tilt
:�+  EQUB    73  \ rot         lelbowtrans
:�  EQUB    20  \ tilt
:�.  EQUB    120 \ rot         rshouldertrans
:�  EQUB    222 \ tilt
:�+  EQUB    73  \ rot         relbowtrans
:�  EQUB    30  \ tilt
:�)  EQUB    36  \ rot         lhiptrans
;  EQUB    36  \ tilt
;*  EQUB    128 \ rot         lkneetrans
;  EQUB    24  \ tilt
;$)  EQUB    92  \ rot         rhiptrans
;.  EQUB    24  \ tilt
;8*  EQUB    128 \ rot         rkneetrans
;B
;L)  .angletab4            \ foot raised
;V  EQUB    0   \ sideways
;`'  EQUB    0   \ height      realpos
;j  EQUB    10  \ tilt
;t*  EQUB    0   \ rot         torsotrans
;~  EQUB    38  \ tilt
;�.  EQUB    248 \ rot         lshouldertrans
;�  EQUB    84  \ tilt
;�+  EQUB    73  \ rot         lelbowtrans
;�  EQUB    38  \ tilt
;�.  EQUB    120 \ rot         rshouldertrans
;�  EQUB    172 \ tilt
;�+  EQUB    73  \ rot         relbowtrans
;�  EQUB    30  \ tilt
;�)  EQUB    36  \ rot         lhiptrans
;�  EQUB    36  \ tilt
;�*  EQUB    128 \ rot         lkneetrans
;�  EQUB    24  \ tilt
<)  EQUB    92  \ rot         rhiptrans
<
  EQUB    24  \ tilt
<*  EQUB    128 \ rot         rkneetrans
<
<(,  .angletab5            \ hands in front
<2  EQUB    0   \ sideways
<<'  EQUB    0   \ height      realpos
<F  EQUB    10  \ tilt
<P*  EQUB    0   \ rot         torsotrans
<Z  EQUB    50  \ tilt
<d.  EQUB    48  \ rot         lshouldertrans
<n  EQUB    78  \ tilt
<x+  EQUB    0   \ rot         lelbowtrans
<�  EQUB    50  \ tilt
<�.  EQUB    80  \ rot         rshouldertrans
<�  EQUB    178 \ tilt
<�+  EQUB    128 \ rot         relbowtrans
<�  EQUB    24  \ tilt
<�)  EQUB    36  \ rot         lhiptrans
<�  EQUB    24  \ tilt
<�*  EQUB    128 \ rot         lkneetrans
<�  EQUB    24  \ tilt
<�)  EQUB    92  \ rot         rhiptrans
<�  EQUB    24  \ tilt
<�*  EQUB    128 \ rot         rkneetrans
<�
=*  .angletab6            \ hands behind
=  EQUB    0   \ sideways
='  EQUB    84  \ height      realpos
="  EQUB    10  \ tilt
=,*  EQUB    0   \ rot         torsotrans
=6  EQUB    96  \ tilt
=@.  EQUB    48  \ rot         lshouldertrans
=J  EQUB    78  \ tilt
=T+  EQUB    0   \ rot         lelbowtrans
=^  EQUB    96  \ tilt
=h.  EQUB    80  \ rot         rshouldertrans
=r  EQUB    178 \ tilt
=|+  EQUB    128 \ rot         relbowtrans
=�  EQUB    52  \ tilt
=�)  EQUB    36  \ rot         lhiptrans
=�  EQUB    80  \ tilt
=�*  EQUB    128 \ rot         lkneetrans
=�  EQUB    52  \ tilt
=�)  EQUB    92  \ rot         rhiptrans
=�  EQUB    80  \ tilt
=�*  EQUB    128 \ rot         rkneetrans
=�
=�-  .angletab7            \ hands crossed 1
=�  EQUB    0   \ sideways
=�'  EQUB    84  \ height      realpos
=�  EQUB    10  \ tilt
>*  EQUB    0   \ rot         torsotrans
>  EQUB    50  \ tilt
>.  EQUB    56  \ rot         lshouldertrans
>&  EQUB    62  \ tilt
>0+  EQUB    32  \ rot         lelbowtrans
>:  EQUB    50  \ tilt
>D.  EQUB    72  \ rot         rshouldertrans
>N  EQUB    162 \ tilt
>X+  EQUB    96  \ rot         relbowtrans
>b  EQUB    52  \ tilt
>l)  EQUB    36  \ rot         lhiptrans
>v  EQUB    80  \ tilt
>�*  EQUB    128 \ rot         lkneetrans
>�  EQUB    52  \ tilt
>�)  EQUB    92  \ rot         rhiptrans
>�  EQUB    80  \ tilt
>�*  EQUB    128 \ rot         rkneetrans
>�
>�-  .angletab8            \ hands crossed 1
>�  EQUB    0   \ sideways
>�'  EQUB    84  \ height      realpos
>�  EQUB    10  \ tilt
>�*  EQUB    0   \ rot         torsotrans
>�  EQUB    50  \ tilt
>�.  EQUB    56  \ rot         lshouldertrans
?  EQUB    94  \ tilt
?+  EQUB    32  \ rot         lelbowtrans
?  EQUB    50  \ tilt
? .  EQUB    72  \ rot         rshouldertrans
?*  EQUB    194 \ tilt
?4+  EQUB    96  \ rot         relbowtrans
?>  EQUB    52  \ tilt
?H)  EQUB    36  \ rot         lhiptrans
?R  EQUB    80  \ tilt
?\*  EQUB    128 \ rot         lkneetrans
?f  EQUB    52  \ tilt
?p)  EQUB    92  \ rot         rhiptrans
?z  EQUB    80  \ tilt
?�*  EQUB    128 \ rot         rkneetrans
?�
?�(  .angletab9            \ the splits
?�  EQUB    0   \ sideways
?�'  EQUB    150 \ height      realpos
?�  EQUB    10  \ tilt
?�*  EQUB    0   \ rot         torsotrans
?�  EQUB    116 \ tilt
?�.  EQUB    248 \ rot         lshouldertrans
?�  EQUB    5   \ tilt
?�+  EQUB    73  \ rot         lelbowtrans
?�  EQUB    116 \ tilt
?�.  EQUB    120 \ rot         rshouldertrans
@  EQUB    251 \ tilt
@+  EQUB    73  \ rot         relbowtrans
@  EQUB    80  \ tilt
@$)  EQUB    0   \ rot         lhiptrans
@.  EQUB    10  \ tilt
@8*  EQUB    128 \ rot         lkneetrans
@B  EQUB    80  \ tilt
@L)  EQUB    128 \ rot         rhiptrans
@V  EQUB    10  \ tilt
@`*  EQUB    128 \ rot         rkneetrans
@j
@t  .angletabcur
@~  EQUD    0
@�  EQUD    0
@�  EQUD    0
@�  EQUD    0
@�  EQUD    0
@�
@�
  .mconst
@�  EQUD    65536/6+0.5
@�
@�  .sincostabind
@�  EQUD    sincostab
@�
@�  .changeabledataind
A  EQUD    changeabledata
A

A  .plotscreeninda
A  EQUD    plotscreenbase
A(
A2  \ Update movements
A<
  .update
AF  STMFD   R13!,{R0-R12,R14}
AP
AZ  LDR     R2,mstore
Ad  LDR     R1,nstore
An6  LDR     R0,kstore        \ get position in track
Ax
A�  ADR     R4,angletab0
A�
A�  CMP     R0,#7
A�  CMPNE   R0,#8
A�  CMPNE   R0,#16
A�  CMPNE   R0,#17
A�  BNE     noyeh
A�  TST     R1,#2
A�  ADRNE   R4,angletab1
A�
A�  MOV     R6,R1,LSR #1
A�  �     R6,R6,#7
A�  MOV     R7,R1,LSR #4
B  �     R7,R7,#3
B  CMP     R6,#5
B  ADREQ   R4,angletab2
B"  CMP     R7,#3
B,  BNE     noyeh1
B6    CMP     R6,#3
B@    ADREQ   R4,angletab2
BJ
  .noyeh1
BT  CMP     R0,#7
B^  CMPNE   R0,#16
Bh  BEQ     noyeh
Br  CMP     R6,#1
B|  ADREQ   R4,angletab9
B�  .noyeh
B�
B�  CMP     R0,#10
B�  CMPNE   R0,#11
B�  CMPNE   R0,#12
B�  CMPNE   R0,#13
B�  BNE     nocross
B�  TST     R1,#4
B�  ADRNE   R4,angletab7
B�  ADREQ   R4,angletab8
B�  TST     R1,#2
B�  ADREQ   R4,angletab5
B�  .nocross
C
C  CMP     R0,#5
C  CMPNE   R0,#6
C&  CMPNE   R0,#14
C0  CMPNE   R0,#15
C:  CMPNE   R0,#18
CD  CMPNE   R0,#19
CN  BNE     noother
CX  TST     R1,#2
Cb  ADRNE   R4,angletab6
Cl  ADREQ   R4,angletab5
Cv  .noother
C�
C�  CMP     R0,#2
C�  BNE     nofooty
C�    TST     R1,#2
C�    ADREQ   R4,angletab3
C�  .nofooty
C�
C�  CMP     R0,#3
C�  BNE     nofooty1
C�    TST     R1,#2
C�    ADREQ   R4,angletab4
C�  .nofooty1
C�
D  LDR     R5,lasttablepos
D  �     R6,R1,#1
D  CMP     R6,#1
D   CMPEQ   R2,#2
D*  STREQ   R4,lasttablepos
D4  �     R1,R1,#1
D>  ADD     R2,R2,R1,LSL #0
DH%  ADD     R2,R2,R1,LSL #1  \ 0..5
DR  LDR     R6,mconst
D\)  MUL     R2,R6,R2         \ 0..65535
Df,  RSB     R3,R2,#65536     \ R3+R2=65536
Dp
Dz  ADR     R14,angletabcur
D�  MOV     R6,#20
D�  .udintloop
D�    LDRB    R0,[R4],#1
D�    LDRB    R1,[R5],#1
D�    MUL     R0,R2,R0
D�    MLA     R0,R3,R1,R0
D�    MOV     R0,R0,ASR #16
D�    STRB    R0,[R14],#1
D�    SUBS    R6,R6,#1
D�    BGT     udintloop
D�
D�  ADR     R14,angletabcur
D�  LDR     R2,mstore
E  LDR     R1,nstore
E>  LDR     R0,kstore        \ get position in track (again)
E
E$  CMP     R0,#10
E.  BLT     noturn
E8  CMP     R0,#14
EB  BGE     noturn
EL    ADD     R4,R2,R1,LSL #0
EV    ADD     R4,R4,R1,LSL #1
E`    LDR     R3,mconst
Ej    MUL     R4,R3,R4
Et    MOV     R4,R4,ASR #21-8
E~    STRB    R4,[R14,#3]
E�    MOV     R4,#40
E�    STRB    R4,[R14,#2]
E�    CMP     R0,#10
E�    BNE     noturn
E�    CMP     R1,#20
E�    BGE     noturn
E�    ADD     R4,R2,R1,LSL #0
E�    ADD     R4,R4,R1,LSL #1
E�    MOV     R4,R4,ASR #1
E�    ADD     R4,R4,#10
E�    STRB    R4,[R14,#2]
E�7  .noturn                  \ turning in musical bit
F
F
#  LDR     R12,changeabledataind
F  LDR     R10,sincostabind
F  ADD     R11,R10,#1024
F(  MOV     R9,#0
F2
F<  LDRB    R0,[R14],#1
FF  LDRB    R1,[R14],#1
FP  MOV     R0,R0,LSL #7
FZ  MOV     R1,R1,LSL #7
Fd  STR     R0,[R12],#4
Fn/  STR     R1,[R12],#8     \ convert realpos
Fx
F�+  LDRB    R4,[R14],#1        \ get tilt
F�.  LDR     R0,[R10,R4,LSL #2] \ tilt sin  s
F�.  LDR     R1,[R11,R4,LSL #2] \ tilt cos  c
F�*  LDRB    R4,[R14],#1        \ get rot
F�-  LDR     R2,[R10,R4,LSL #2] \ rot sin  S
F�-  LDR     R3,[R11,R4,LSL #2] \ rot cos  C
F�
F�  STR     R3,[R12],#4   \ C
F�  STR     R9,[R12],#4   \ 0
F�  SUB     R4,R9,R2
F�   STR     R4,[R12],#4   \ -S
F�  MUL     R4,R0,R2
F�  ADD     R4,R9,R4,ASR #15
G   STR     R4,[R12],#4   \ Ss
G  SUB     R4,R9,R1
G   STR     R4,[R12],#4   \ -c
G"  MUL     R4,R0,R3
G,  ADD     R4,R9,R4,ASR #15
G6   STR     R4,[R12],#4   \ Cs
G@  MUL     R4,R1,R2
GJ  ADD     R4,R9,R4,ASR #15
GT   STR     R4,[R12],#4   \ Sc
G^  STR     R0,[R12],#4   \ s
Gh  MUL     R4,R1,R3
Gr  ADD     R4,R9,R4,ASR #15
G|   STR     R4,[R12],#4   \ Cc
G�
G�  MOV     R8,#8
G�  .udconvertloop
G� 
G�-    LDRB    R4,[R14],#1        \ get tilt
G�0    LDR     R0,[R10,R4,LSL #2] \ tilt sin  s
G�0    LDR     R1,[R11,R4,LSL #2] \ tilt cos  c
G�,    LDRB    R4,[R14],#1        \ get rot
G�/    LDR     R2,[R10,R4,LSL #2] \ rot sin  S
G�/    LDR     R3,[R11,R4,LSL #2] \ rot cos  C
G�
G�    MUL     R4,R1,R3
G�     ADD     R4,R9,R4,ASR #15
H"    STR     R4,[R12],#4   \ Cc
H    MUL     R4,R0,R3
H     SUB     R4,R9,R4,ASR #15
H&#    STR     R4,[R12],#4   \ -Cs
H0    SUB     R4,R9,R2
H:"    STR     R4,[R12],#4   \ -S
HD!    STR     R0,[R12],#4   \ s
HN!    STR     R1,[R12],#4   \ c
HX!    STR     R9,[R12],#4   \ 0
Hb    MUL     R4,R1,R2
Hl     ADD     R4,R9,R4,ASR #15
Hv"    STR     R4,[R12],#4   \ Sc
H�    MUL     R4,R0,R2
H�     SUB     R4,R9,R4,ASR #15
H�#    STR     R4,[R12],#4   \ -Ss
H�!    STR     R3,[R12],#4   \ C
H�
H�    SUBS    R8,R8,#1
H�    BGT     udconvertloop
H�
H�  LDR     R0,counter
H�
H�  CMP     R0,#50
H�  RSBLE   R1,R0,#50
H�  MOVLE   R1,R1,LSL #10
I<  STRLE   R1,realpos+4      \ make him float up at start
I
I  ADD     R0,R0,#1
I   STR     R0,counter
I*
I4  LDR     R0,startabind
I>  LDR     R1,plotscreeninda
IH  LDR     R1,[R1]
IR+  MOV     R2,#&00          \ two pixels
I\  MOV     R3,#127
If 
Ip  LDR     R5,curseq
Iz  CMP     R5,#0
I�  BEQ     noseq
I�  LDR     R6,staroffset
I�  LDR     R5,[R5,R6,LSL #2]
I�  ADD     R6,R6,#1
I�  CMP     R6,#24
I�  SUBGE   R6,R6,#24
I�6  STR     R6,staroffset   \ read offset from table
I�  STR     R5,lastoffset
I�  .noseq
I�  LDR     R5,lastoffset
I�
I�  CMP     R5,#0
I�  ADDLT   R5,R5,#81920
J  .starloop
J!    LDR     R4,[R0,R3,LSL #2]
J    SUBS    R4,R4,R5
J$    ADDLT   R4,R4,#81920
J.    STRB    R2,[R1,R4]
J8    SUB     R3,R3,#1
JB!    LDR     R4,[R0,R3,LSL #2]
JL    SUBS    R4,R4,R5
JV    ADDLT   R4,R4,#81920
J`    STRB    R2,[R1,R4]
Jj    SUBS    R3,R3,#1
Jt    BGT     starloop
J~
J�  LDMFD   R13!,{R0-R12,PC}^
J�
J�  .lasttablepos
J�  EQUD    angletab0
J�
J�
  .curseq
J�  EQUD    0
J�
J�  .lastoffset
J�  EQUD    0
J�
J�  .staroffset
K  EQUD    0
K

K  .startabind
K  EQUD    startab
K(
K2  .counter
K<  EQUD    0
KF
KP  .curspin
KZ  EQUD    identity
Kd
Kn  .cctab
Kx  EQUD    rgval(0)*256+0.5
K�  EQUD    rgval(1)*256+0.5
K�  EQUD    rgval(2)*256+0.5
K�
K�.  \ Set new colour into given light record
K�   \ R2 = base addr of record
K�  \ R3 = colour number
K�  .newcolour
K�  STMFD   R13!,{R0,R1,R14}
K�  ADR     R1,coltemplates
K�  ADD     R1,R1,R3,ASL #0
K�  ADD     R1,R1,R3,ASL #1
K�  LDRB    R0,[R1],#1
K�  STR     R0,[R2,#0]
L  LDRB    R0,[R1],#1
L  STR     R0,[R2,#4]
L  LDRB    R0,[R1],#1
L"  STR     R0,[R2,#8]
L,  LDMFD   R13!,{R0,R1,PC}^
L6
L@   \ Flash given light record
LJ   \ R2 = base addr of record
LT  .flash
L^  STMFD   R13!,{R0,R14}
Lh  MOV     R0,#65536
Lr  STR     R0,[R2,#12]
L|  LDMFD   R13!,{R0,PC}^
L�
L�"  \ Turn off all light records
L�  .turnoff
L�  STMFD   R13!,{R0,R1,R14}
L�  MOV     R0,#0
L�  ADR     R1,col1
L�  STR     R0,[R1,#12]
L�  ADR     R1,col2
L�  STR     R0,[R1,#12]
L�  LDMFD   R13!,{R0,R1,PC}^
L�
L�"  \ Set dim red glow in record
L�   \ R2 = base addr of record
M  .dimglow
M!  STMFD   R13!,{R0,R3-R6,R14}
M   ADR     R0,dimglowtemplate
M&  LDMIA   R0,{R3-R6}
M0  STMIA   R2,{R3-R6}
M:!  LDMFD   R13!,{R0,R3-R6,PC}^
MD
MN  .dimglowtemplate
MX  EQUD    112
Mb  EQUD    32
Ml  EQUD    0
Mv  EQUD    65536
M�
M�  .linetype
M�  EQUD    0
M�
M�  .coltemplates
M�#  :=255 := 255 := 255   \ white
M�!  :=255 := 0   := 32    \ red
M�$  :=255 := 128 := 0     \ orange
M�$  :=192 := 255 := 0     \ yellow
M�#  :=0   := 255 := 0     \ green
M�"  :=0   := 208 := 192   \ cyan
M�"  :=0   := 32  := 255   \ blue
M�$  :=192 := 0   := 255   \ purple
N"  :=255 := 128 := 128   \ pink
N'  :=128 := 128 := 255   \ pale blue
N
N   ALIGN
N*
N4
  .nstore
N>  EQUD    -1
NH
  .kstore
NR  EQUD    0
N\
  .mstore
Nf  EQUD    0
Np
Nz+  \ transform a vector through a matrix
N�"  \ R0 points to result vector
N�  \ R1 points to matrix
N�  \ R2 points to vector
N�  .transform
N�  STMFD   R13!,{R0-R12,R14}
N�
N�  MOV     R12,R0
N�
N�  LDMIA   R2,{R9-R11}
N�  LDMIA   R1,{R0-R8}
N�
N�  MUL     R0,R9,R0
N�  MLA     R0,R10,R1,R0
O  MLA     R0,R11,R2,R0
O  MUL     R1,R9,R3
O  MLA     R1,R10,R4,R1
O$  MLA     R1,R11,R5,R1
O.  MUL     R2,R9,R6
O8  MLA     R2,R10,R7,R2
OB  MLA     R2,R11,R8,R2
OL 
OV  MOV     R0,R0,ASR #15
O`  MOV     R1,R1,ASR #15
Oj  MOV     R2,R2,ASR #15
Ot
O~  STMIA   R12,{R0-R2}
O�
O�  LDMFD   R13!,{R0-R12,PC}^
O�
O�  \ multiply two matrices
O�"  \ R0 points to result matrix
O�,  \ R1 points to pre-transforming matrix
O�#  \ R2 points to initial matrix
O�  .multiply
O�  STMFD   R13!,{R0-R12,R14}
O�  STR     R13,r13sto
O�
O�  LDMIA   R2,{R3-R11}
P  STMIA   R0,{R3-R11}
P

P  MOV     R12,R0
P  LDMIA   R1,{R0-R8}
P(
P2  MOV     R14,#3
P<  .multloop
PF
PP    LDMIA   R12,{R9-R11}
PZ 
Pd    MUL     R13,R9,R0
Pn    MLA     R13,R10,R3,R13
Px    MLA     R13,R11,R6,R13
P�    MOV     R13,R13,ASR #15
P�    STR     R13,[R12],#4
P� 
P�    MUL     R13,R9,R1
P�    MLA     R13,R10,R4,R13
P�    MLA     R13,R11,R7,R13
P�    MOV     R13,R13,ASR #15
P�    STR     R13,[R12],#4
P�
P�    MUL     R13,R9,R2
P�    MLA     R13,R10,R5,R13
P�    MLA     R13,R11,R8,R13
P�    MOV     R13,R13,ASR #15
Q    STR     R13,[R12],#4
Q 
Q    SUBS    R14,R14,#1
Q"    BGT     multloop
Q,
Q6  LDR     R13,r13sto
Q@  LDMFD   R13!,{R0-R12,PC}^
QJ
QT'  \ Vector multiply with accumulate
Q^"  \ R0 points to output vector
Qh'  \ R1 points to multiplying vector
Qr'  \ R2 is multiplying scalar * 1024
Q|#  \ R3 points to initial vector
Q�  .vectormla
Q�  STMFD   R13!,{R0-R12,R14}
Q�
Q�  LDMIA   R3,{R3-R5}
Q�  LDMIA   R1,{R6-R8}
Q�
Q�  MUL     R9,R2,R6
Q�  ADD     R3,R3,R9,ASR #10
Q�  MUL     R9,R2,R7
Q�  ADD     R4,R4,R9,ASR #10
Q�  MUL     R9,R2,R8
Q�  ADD     R5,R5,R9,ASR #10
Q� 
R  STMIA   R0,{R3-R5}
R 
R  LDMFD   R13!,{R0-R12,PC}^
R&
R0  .readvduinput
R:2  EQUD    148     \ screen start - vdu drivers
RD  EQUD    -1
RN
RX  .readvduoutput
Rb  EQUD    0
Rl
Rv  .curplotbank
R�  EQUD    0
R�
R�G  � wait for vsync then swap over screens and note new plot address
R�  .changeframe
R�  STMFD   R13!,{R0-R12,R14}
R�
R�  MOV     R0,#&B0
R�  MOV     R1,#0
R�  MOV     R2,#&FF
R�  SWI     "OS_Byte"
R�  CMP     R1,#255-2
R�  BLE     overload
R�
S  .idleloop
S    MOV     R0,#&B0
S    MOV     R1,#0
S     MOV     R2,#&FF
S*    SWI     "OS_Byte"
S4    CMP     R1,#255-2
S>Q    BNE     idleloop  \ wait for vsync when counter crosses 255-2 ie 2 frames
SH
SR  .overload
S\
Sf  MOV     R0,#&B0
Sp  MOV     R1,#255
Sz  MOV     R2,#0
S�  SWI     "OS_Byte"
S�
S�  LDR     R3,curplotbank
S�  MOV     R1,R3
S�  MOV     R0,#&71
S�  SWI     "OS_Byte"
S�  RSB     R1,R3,#3
S�  STR     R1,curplotbank
S�  MOV     R0,#&70
S�(  SWI     "OS_Byte"   \ swap screens
S�
S�  ADR     R0,readvduinput
S�  ADR     R1,readvduoutput
T#  SWI     "OS_ReadVduVariables"
T  LDR     R0,readvduoutput
T   LDR     R1,plotscreenindfs
T$,  STR     R0,[R1]     \ get plot address
T.
T8  LDR     R8,colfade
TB  ADR     R14,col1
TL  LDR     R7,[R14,#12]
TV  MUL     R7,R8,R7
T`  MOV     R7,R7,ASR #8
Tj  STR     R7,[R14,#12]
Tt  MOV     R7,R7,ASR #8
T~  LDMIA   R14,{R1-R3}
T�  MUL     R1,R7,R1
T�  MUL     R2,R7,R2
T�&  MUL     R3,R7,R3      \ colour 1
T� 
T�  ADR     R14,col2
T�  LDR     R7,[R14,#12]
T�  MUL     R7,R8,R7
T�  MOV     R7,R7,ASR #8
T�  STR     R7,[R14,#12]
T�  MOV     R7,R7,ASR #8
T�  LDMIA   R14,{R4-R6}
T�  MUL     R4,R7,R4
U  MUL     R5,R7,R5
U
&  MUL     R6,R7,R6      \ colour 2
U
U  ADR     R12,cctab
U(  MOV     R11,#5
U2  MOV     R8,#0
U<  .udouter
UF#    LDR     R10,[R12,R8,LSL #2]
UP    CMP     R8,#0
UZ    MOVNE   R7,#0
Ud    �Q   R7,#1
Un    .udinner
Ux$      LDR     R9,[R12,R7,LSL #2]
U�
U�(      SWI     &100+19        \ � 19,
U�
U�      MOV     R0,R11
U�%      SWI     "OS_WriteC"    \ n,
U�
U�&      SWI     &100+16        \ 16,
U�
U�      MUL     R0,R1,R9
U�      MLA     R0,R4,R10,R0
U�      MOV     R0,R0,ASR #16
U�'      SWI     "OS_WriteC"    \ red,
U�
V      MUL     R0,R2,R9
V      MLA     R0,R5,R10,R0
V      MOV     R0,R0,ASR #16
V")      SWI     "OS_WriteC"    \ green,
V,
V6      MUL     R0,R3,R9
V@      MLA     R0,R6,R10,R0
VJ      MOV     R0,R0,ASR #16
VT'      SWI     "OS_WriteC"    \ blue
V^
Vh      ADD     R11,R11,#1
Vr      ADD     R7,R7,#1
V|      CMP     R7,#3
V�      BLT     udinner
V�    ADD     R8,R8,#1
V�    CMP     R8,#3
V�    BLT     udouter
V�
V�  LDMFD   R13!,{R0-R12,PC}^
V�
V�  .plotscreenindfs
V�  EQUD    plotscreenbase
V�
V�  .colfade
V�,  EQUD    256         \ rate of fade*256
V�
W  .col1
W  EQUD    0           \ red
W!  EQUD    0           \ green
W&   EQUD    0           \ blue
W0&  EQUD    0           \ brightness
W:
WD  .col2
WN  EQUD    0           \ red
WX!  EQUD    0           \ green
Wb   EQUD    0           \ blue
Wl&  EQUD    0           \ brightness
Wv
W�,  \ dancing and lighting control routine
W�  .control
W�  STMFD   R13!,{R0-R12,R14}
W�
W�  LDR     R2,mstore
W�  ADD     R2,R2,#1
W�  STR     R2,mstore
W�
W�  LDR     R3,nstore
W�  SWI     "Tracker_ReadPos"
W�&  STR     R1,nstore   \ R0=K, R1=N
W�
W�  CMP     R0,#14
X  BLEQ    turnoff
X
X  CMP     R1,R3
X 0  LDMEQFD R13!,{R0-R12,PC}    \ no new event
X*
X4  STR     R0,kstore
X>
XH  MOV     R2,#0
XR  STR     R2,mstore
X\
Xf  CMP     R0,#1
Xp  CMPEQ   R1,#0
Xz  ADREQ   R2,col1
X�  BLEQ    dimglow
X�
X�  CMP     R0,#1
X�  CMPEQ   R1,#56
X�  �Q   R2,#240
X�  STREQ   R2,colfade
X�
X�  CMP     R0,#0
X�  �Q   R2,#256
X�  STREQ   R2,colfade
X�
X�  CMP     R0,#20
X�  �Q   R2,#253
Y  STREQ   R2,colfade
Y
Y  CMP     R0,#2
Y$'  LDMLTFD R13!,{R0-R12,PC}^   \ K<2
Y.
Y8  CMP     R0,#5
YB  CMPNE   R0,#6
YL  CMPNE   R0,#14
YV  CMPNE   R0,#15
Y`  CMPNE   R0,#18
Yj  CMPNE   R0,#19
Yt  TSTEQ   R1,#15
Y~  ADREQ   R2,sseq2
Y�  STREQ   R2,curseq
Y�  �Q   R2,#3
Y�/  STREQ   R2,staroffset      \ circle stars
Y�
Y�  CMP     R0,#7
Y�  CMPNE   R0,#8
Y�  CMPNE   R0,#16
Y�  CMPNE   R0,#17
Y�  TSTEQ   R1,#15
Y�  ADREQ   R2,sseq1
Y�  STREQ   R2,curseq
Y�  �Q   R2,#3
Z.  STREQ   R2,staroffset     \ bouncy stars
Z

Z  CMP     R0,#0
Z  CMPNE   R0,#9
Z(  CMPNE   R0,#20
Z2  TSTEQ   R1,#15
Z<  �Q   R2,#0
ZF,  STREQ   R2,curseq         \ stationary
ZP
ZZ  CMP     R0,#20
Zd(  LDMEQFD R13!,{R0-R12,PC}^   \ K=20
Zn
Zx  CMP     R0,#14
Z�  BNE     nostrobe
Z�    LDR     R6,mstore
Z�    MOV     R3,#0
Z�    ADR     R2,col1
Z�    BL      newcolour
Z�    CMP     R6,#0
Z�    BLEQ    flash
Z�    ADR     R2,col2
Z�    BL      newcolour
Z�    CMP     R6,#0
Z�    BLEQ    flash
Z�    B       strobe
Z�  .nostrobe
[ 
[  �     R2,R1,#3
[  CMP     R2,#0
["  ADREQ   R2,col1
[,  LDR     R3,curcol1
[6  BLEQ    newcolour
[@  BLEQ    flash
[J
[T  �     R2,R1,#3
[^  CMP     R2,#2
[h  �NE   R2,R1,#7
[r  CMPNE   R2,#0
[|  ADREQ   R2,col2
[�  LDR     R3,curcol2
[�  BLEQ    newcolour
[�  BLEQ    flash
[�
[�
  .strobe
[�
[�  CMP     R0,#11
[�  CMPNE   R0,#13
[�  BNE     norepeat
[�  ADD     R2,R1,#1
[�  TST     R2,#15
[�  BNE     norepeat
[�  MOV     R2,R2,ASR #4
\  �     R2,R2,#3
\  ADR     R3,currepqcind
\  LDR     R4,[R3]
\&  STR     R2,[R3,R4]
\00  .norepeat                \ multiple images
\:
\D  CMP     R0,#12
\N  CMPNE   R0,#13
\X  MOVNE   R2,#0
\b  �Q   R2,#1
\l  STR     R2,linetype
\v
\�  LDMFD   R13!,{R0-R12,PC}^
\�
\�  .currepqcind
\�  EQUD    currepq-P%
\�
\�  .curcol1
\�  EQUD    0
\�
\�  .curcol2
\�  EQUD    1
\�
\�  .sseq1
\�1  EQUD    �(32*�(0*�/12))+�(24*�(0*�/12))*320
]1  EQUD    �(32*�(1*�/12))+�(24*�(1*�/12))*320
]1  EQUD    �(32*�(2*�/12))+�(24*�(2*�/12))*320
]1  EQUD    �(32*�(3*�/12))+�(24*�(3*�/12))*320
] 1  EQUD    �(32*�(4*�/12))+�(24*�(4*�/12))*320
]*1  EQUD    �(32*�(5*�/12))+�(24*�(5*�/12))*320
]41  EQUD    �(32*�(6*�/12))+�(24*�(6*�/12))*320
]>1  EQUD    �(32*�(7*�/12))+�(24*�(7*�/12))*320
]H1  EQUD    �(32*�(8*�/12))+�(24*�(8*�/12))*320
]R1  EQUD    �(32*�(9*�/12))+�(24*�(9*�/12))*320
]\3  EQUD    �(32*�(10*�/12))+�(24*�(10*�/12))*320
]f3  EQUD    �(32*�(11*�/12))+�(24*�(11*�/12))*320
]p3  EQUD    �(32*�(12*�/12))+�(24*�(12*�/12))*320
]z3  EQUD    �(32*�(11*�/12))+�(24*�(11*�/12))*320
]�3  EQUD    �(32*�(10*�/12))+�(24*�(10*�/12))*320
]�1  EQUD    �(32*�(9*�/12))+�(24*�(9*�/12))*320
]�1  EQUD    �(32*�(8*�/12))+�(24*�(8*�/12))*320
]�1  EQUD    �(32*�(7*�/12))+�(24*�(7*�/12))*320
]�1  EQUD    �(32*�(6*�/12))+�(24*�(6*�/12))*320
]�1  EQUD    �(32*�(5*�/12))+�(24*�(5*�/12))*320
]�1  EQUD    �(32*�(4*�/12))+�(24*�(4*�/12))*320
]�1  EQUD    �(32*�(3*�/12))+�(24*�(3*�/12))*320
]�1  EQUD    �(32*�(2*�/12))+�(24*�(2*�/12))*320
]�1  EQUD    �(32*�(1*�/12))+�(24*�(1*�/12))*320
]�
]�  .sseq2
]�/  EQUD    �(10*�(0*�/6))+�(11*�(0*�/6))*320
^/  EQUD    �(10*�(1*�/6))+�(11*�(1*�/6))*320
^/  EQUD    �(10*�(2*�/6))+�(11*�(2*�/6))*320
^/  EQUD    �(10*�(3*�/6))+�(11*�(3*�/6))*320
^$/  EQUD    �(10*�(4*�/6))+�(11*�(4*�/6))*320
^./  EQUD    �(10*�(5*�/6))+�(11*�(5*�/6))*320
^8/  EQUD    �(10*�(6*�/6))+�(11*�(6*�/6))*320
^B/  EQUD    �(10*�(7*�/6))+�(11*�(7*�/6))*320
^L/  EQUD    �(10*�(8*�/6))+�(11*�(8*�/6))*320
^V/  EQUD    �(10*�(9*�/6))+�(11*�(9*�/6))*320
^`1  EQUD    �(10*�(10*�/6))+�(11*�(10*�/6))*320
^j1  EQUD    �(10*�(11*�/6))+�(11*�(11*�/6))*320
^t/  EQUD    �(10*�(0*�/6))+�(11*�(0*�/6))*320
^~/  EQUD    �(10*�(1*�/6))+�(11*�(1*�/6))*320
^�/  EQUD    �(10*�(2*�/6))+�(11*�(2*�/6))*320
^�/  EQUD    �(10*�(3*�/6))+�(11*�(3*�/6))*320
^�/  EQUD    �(10*�(4*�/6))+�(11*�(4*�/6))*320
^�/  EQUD    �(10*�(5*�/6))+�(11*�(5*�/6))*320
^�/  EQUD    �(10*�(6*�/6))+�(11*�(6*�/6))*320
^�/  EQUD    �(10*�(7*�/6))+�(11*�(7*�/6))*320
^�/  EQUD    �(10*�(8*�/6))+�(11*�(8*�/6))*320
^�/  EQUD    �(10*�(9*�/6))+�(11*�(9*�/6))*320
^�1  EQUD    �(10*�(10*�/6))+�(11*�(10*�/6))*320
^�1  EQUD    �(10*�(11*�/6))+�(11*�(11*�/6))*320
^�
^�  .plottabind
_  EQUD    plottab
_

_!  \ Log line in the plot list
_  \ R0 points to A
_(  \ R1 points to direction
_2  \ R2 = length
_<  .logline
_F  STMFD   R13!,{R0-R12,R14}
_P 
_Z  LDR     R11,plottabq
_d  LDR     R12,plottabind
_n3  ADD     R12,R12,R11,LSL #6 \ get pos in table
_x 
_�'  MOV     R3,#0              \ line
_�$  LDMIA   R0,{R4-R6}         \ A
_�,  LDMIA   R1,{R7-R9}         \ direction
_�)  MOV     R10,R2             \ length
_�  MUL     R2,R9,R10
_�,  ADD     R2,R6,R2,ASR #1    \ average z
_�4  SUB     R2,R2,#1280        \ minus half a unit
_�2  STMIA   R12,{R2-R10}       \ store whole lot
_�
_�  ADD     R11,R11,#1
_�5  STR     R11,plottabq       \ store new quantity
_�
_�  LDMFD   R13!,{R0-R12,PC}^
`
`(  \ Log bungie line in the plot list
`  \ R0 points to A
`"  \ R1 points to direction
`,  \ R2 = length
`6  .logbungieline
`@  STMFD   R13!,{R0-R12,R14}
`J 
`T  LDR     R11,plottabq
`^  LDR     R12,plottabind
`h3  ADD     R12,R12,R11,LSL #6 \ get pos in table
`r 
`|.  MOV     R3,#2              \ bungie line
`�$  LDMIA   R0,{R4-R6}         \ A
`�,  LDMIA   R1,{R7-R9}         \ direction
`�)  MOV     R10,R2             \ length
`�  MUL     R2,R9,R10
`�,  ADD     R2,R6,R2,ASR #1    \ average z
`�2  STMIA   R12,{R2-R10}       \ store whole lot
`�
`�  ADD     R11,R11,#1
`�5  STR     R11,plottabq       \ store new quantity
`�
`�  LDMFD   R13!,{R0-R12,PC}^
`�
`�#  \ Log sphere in the plot list
a  \ R0 points to position
a  \ R1 = size (0-13)
a  .logsphere
a&  STMFD   R13!,{R0-R12,R14}
a0 
a:  LDR     R11,plottabq
aD  LDR     R12,plottabind
aN3  ADD     R12,R12,R11,LSL #6 \ get pos in table
aX 
ab)  MOV     R3,#1              \ sphere
al+  LDMIA   R0,{R4-R6}         \ position
av'  MOV     R7,R1              \ size
a�  MOV     R2,R6
a�2  STMIA   R12,{R2-R7}        \ store whole lot
a�
a�  ADD     R11,R11,#1
a�5  STR     R11,plottabq       \ store new quantity
a�
a�  LDMFD   R13!,{R0-R12,PC}^
a�
a�!  \ Log head in the plot list
a�  \ R0 points to position
a�  \ R1 = expression
a�  .loghead
a�  STMFD   R13!,{R0-R12,R14}
b 
b  LDR     R11,plottabq
b  LDR     R12,plottabind
b 3  ADD     R12,R12,R11,LSL #6 \ get pos in table
b* 
b4'  MOV     R3,#3              \ head
b>+  LDMIA   R0,{R4-R6}         \ position
bH-  MOV     R7,R1              \ expression
bR  MOV     R2,R6
b\2  STMIA   R12,{R2-R7}        \ store whole lot
bf
bp  ADD     R11,R11,#1
bz5  STR     R11,plottabq       \ store new quantity
b�
b�  LDMFD   R13!,{R0-R12,PC}^
b�
b�A  \ display contents of plot list in revese order of distance
b�  .display
b�  STMFD   R13!,{R0-R12,R14}
b�
b�  LDR     R10,plottabq
b�
b�
  .douter
b�    LDR     R12,plottabind
b�    LDR     R11,plottabq
b�!    MVN     R9,#� (-&1000001)
c
c    .dinner
c      LDR     R0,[R12],#64
c$      CMP     R0,R9
c.      MOVGE   R9,R0
c8      SUBGE   R8,R12,#64
cB      SUBS    R11,R11,#1
cLB      BGT     dinner         \ loop to find farthest away item
cV
c`    LDR     R9,[R8,#4]
cj    ADD     R0,R8,#8
ct
c~    CMP     R9,#0
c�,    BLEQ    line             \ draw line
c�
c�    CMP     R9,#1
c�.    BLEQ    gensphere        \ draw sphere
c� 
c�    CMP     R9,#2
c�E    BLEQ    bungieline       \ draw line with sphere at end point
c�
c�    CMP     R9,#3
c�2    BLEQ    head             \ draw big sphere
c�
c�!    MVN     R0,#� (-&1000001)
dP    STR     R0,[R8,#0]       \ set big negative value in distance to prevent
d
;                             \ item being plotted again
d    SUBS    R10,R10,#1
d    BGT     douter
d(
d2  LDMFD   R13!,{R0-R12,PC}^
d<
dF  .plottabq
dP  EQUD    0
dZ
dd  .sincostabind
dn  EQUD    sincostab
dx
d�  .spinningspheres
d�  STMFD   R13!,{R14}
d�
d�  LDR     R11,sincostabind
d�  ADD     R12,R11,#1024
d�  ADR     R9,tempvector
d�
d�  LDR     R6,sphereheight+0
d�  LDR     R1,sphereheight+4
d�  ADD     R6,R6,R1
d�  CMP     R6,#32768
d�  MVNGE   R1,R1
d�  CMP     R6,#0
e  MVNLT   R1,R1
e  STR     R6,sphereheight+0
e  STR     R1,sphereheight+4
e"
e,  ADR     R8,spheredata
e6  MOV     R7,#6
e@
eJ  .spinningloop
eT    LDR     R10,[R8,#0]
e^    SUB     R10,R10,#1
eh    STR     R10,[R8,#0]
er    �     R10,R10,#255
e|#    LDR     R0,[R11,R10,LSL #2]
e�    SUB     R0,R0,R0,ASR #2
e�    CMP     R7,#3
e�    MOVGT   R1,R6
e�    RSBLE   R1,R6,#32768
e�#    LDR     R2,[R12,R10,LSL #2]
e�    SUB     R2,R2,R2,ASR #2
e�    STMIA   R9,{R0-R2}
e�
e�    MOV     R0,R9
e�     LDR     R1,torsotransind
e�    MOV     R2,R9
e�    BL      transform
e� 
f    LDR     R1,[R8,#4]
f    LDR     R2,[R8,#8]
f    ADD     R1,R1,R2
f&    CMP     R1,#13
f0    �Q   R1,#11
f:    MVNEQ   R2,#� -1
fD    CMP     R1,#2
fN    �Q   R1,#4
fX    �Q   R2,#+1
fb    STR     R1,[R8,#4]
fl    STR     R2,[R8,#8]
fv    BL      logsphere
f�
f�    ADD     R8,R8,#12
f�    SUBS    R7,R7,#1
f�    BGT     spinningloop
f�
f�  LDMFD   R13!,{PC}^
f�
f�  .sphereheight
f�  EQUD    0
f�  EQUD    300
f�
f�  .spheredata
f�!  EQUD    0           \ angle
g   EQUD    3           \ size
g%  EQUD    +1          \ increment
g
g !  EQUD    85          \ angle
g*   EQUD    9           \ size
g4%  EQUD    +1          \ increment
g>
gH!  EQUD    170         \ angle
gR   EQUD    9           \ size
g\%  EQUD    -1          \ increment
gf
gp!  EQUD    43          \ angle
gz   EQUD    3           \ size
g�%  EQUD    -1          \ increment
g�
g�!  EQUD    128         \ angle
g�   EQUD    9           \ size
g�%  EQUD    -1          \ increment
g�
g�!  EQUD    213         \ angle
g�   EQUD    9           \ size
g�%  EQUD    +1          \ increment
g�
g�  .torsotransind
g�  EQUD    torsotrans
g�
h  .tempvector
h  EQUD    0
h  EQUD    0
h$  EQUD    0
h.
h8  .gplotscreenind
hB  EQUD    plotscreenbase
hL
hV#  \ Draw digital waveform graph
h`#  \ R0 = base address of sample
hj%  \ R1 = offset into sample*65536
ht"  \ R2 = phase increment*65536
h~=  \ R3 = pointer to graph orientation and screen position
h�  .graph
h�  STMFD   R13!,{R0-R12,R14}
h�
h�  MOV     R14,R3
h�9  ADD     R0,R0,R1,LSR #16  \ address of data to plot
h�  LDR     R1,[R14,#36]
h�  MOV     R12,R1,LSL #23
h�  LDR     R1,[R14,#40]
h�G  SUB     R12,R12,R1,LSL #8    \ position of origin ( -> time axis)
h�  LDR     R5,gplotscreenind
h�4  LDR     R5,[R5]            \ address of screen
h�0  MOV     R6,#&11            \ byte for axes
i2  MOV     R7,#&22            \ byte for points
i
  LDR     R1,[R14,#0]
i  MOV     R1,R1,ASR #8
i  MOV     R8,R1,LSL #16
i(  LDR     R1,[R14,#12]
i26  SUB     R8,R8,R1,ASR #7    \ time axis increment
i<  SUB     R12,R12,R8,LSL #5
iF  SUB     R12,R12,R8,LSL #4
iP  LDR     R1,[R14,#4]
iZ  SUB     R1,R1,R1,ASR #2
id  MOV     R1,R1,ASR #8
in  MOV     R9,R1,LSL #16
ix  LDR     R1,[R14,#16]
i�8  SUB     R9,R9,R1,ASR #7    \ volume axis increment
i�  SUB     R12,R12,R9,LSL #4
i�  SUB     R12,R12,R9,LSL #3
i�3  MOV     R11,#96            \ number of points
i�@  MOV     R3,#&3F            \ mask for sample bit isolation
i�  MOV     R4,R12
i�
i�  .gloop
i�    LDR     R1,[R0],#4
i�    �     R2,R4,#&FF00
i�    ADD     R2,R2,R2,LSR #2
i�     ADD     R2,R2,R4,LSR #23
i�    STRB    R6,[R5,R2]
j    �     R2,R3,R1,LSR #2
j    MLA     R10,R9,R2,R4
j    �     R2,R10,#&FF00
j"    ADD     R2,R2,R2,LSR #2
j,!    ADD     R2,R2,R10,LSR #23
j6    STRB    R7,[R5,R2]
j@    ADD     R4,R4,R8
jJ    �     R2,R4,#&FF00
jT    ADD     R2,R2,R2,LSR #2
j^     ADD     R2,R2,R4,LSR #23
jh    STRB    R6,[R5,R2]
jr    �     R2,R3,R1,LSR #10
j|    MLA     R10,R9,R2,R4
j�    �     R2,R10,#&FF00
j�    ADD     R2,R2,R2,LSR #2
j�!    ADD     R2,R2,R10,LSR #23
j�    STRB    R7,[R5,R2]
j�    ADD     R4,R4,R8
j�    �     R2,R4,#&FF00
j�    ADD     R2,R2,R2,LSR #2
j�     ADD     R2,R2,R4,LSR #23
j�    STRB    R6,[R5,R2]
j�    �     R2,R3,R1,LSR #18
j�    MLA     R10,R9,R2,R4
j�    �     R2,R10,#&FF00
j�    ADD     R2,R2,R2,LSR #2
k!    ADD     R2,R2,R10,LSR #23
k    STRB    R7,[R5,R2]
k    ADD     R4,R4,R8
k&    �     R2,R4,#&FF00
k0    ADD     R2,R2,R2,LSR #2
k:     ADD     R2,R2,R4,LSR #23
kD    STRB    R6,[R5,R2]
kN    �     R2,R3,R1,LSR #26
kX    MLA     R10,R9,R2,R4
kb    �     R2,R10,#&FF00
kl    ADD     R2,R2,R2,LSR #2
kv!    ADD     R2,R2,R10,LSR #23
k�    STRB    R7,[R5,R2]
k�    ADD     R4,R4,R8
k�    SUBS    R11,R11,#4
k�    BGT     gloop
k�
k�E  MOV     R4,R12             \ position of origin ( -> time axis)
k�3  MOV     R11,#64            \ number of points
k�
k�
  .gloop0
k�    �     R2,R4,#&FF00
k�    ADD     R2,R2,R2,LSR #2
k�     ADD     R2,R2,R4,LSR #23
k�    STRB    R6,[R5,R2]
l    ADD     R4,R4,R9
l    �     R2,R4,#&FF00
l    ADD     R2,R2,R2,LSR #2
l      ADD     R2,R2,R4,LSR #23
l*    STRB    R6,[R5,R2]
l4    ADD     R4,R4,R9
l>    SUBS    R11,R11,#2
lH    BGT     gloop0
lR
l\
lf  LDMFD   R13!,{R0-R12,PC}^
lp
lz  .drawgraphs
l�  STMFD   R13!,{R0-R12,R14}
l�
l�  LDR     R8,kstore
l�  CMP     R8,#2
l�  LDMLTFD R13!,{R0-R12,PC}^
l�  CMP     R8,#10
l�  BLT     notmusical
l�  CMP     R8,#14
l�  LDMLTFD R13!,{R0-R12,PC}^
l�  .notmusical
l�
l�  ADR     R12,soundinfotab
l�  MOV     R0,R12
m!  SWI     "Tracker_SoundInfo"
m  MOV     R11,#4
m  ADR     R3,graphpostab
m$  LDR     R9,sincostabind
m.  ADD     R10,R9,#1024
m8  ADR     R7,spinlist
mB
mL
  .dgloop
mV    LDRB    R0,[R3,#44]
m`!    LDR     R1,[R9,R0,LSL #2]
mj    MOV     R2,#104
mt    MUL     R1,R2,R1
m~    MOV     R1,R1,ASR #15
m�    ADD     R1,R1,#160
m�    STR     R1,[R3,#36]
m�"    LDR     R1,[R10,R0,LSL #2]
m�    MOV     R2,#70
m�    MUL     R1,R2,R1
m�    MOV     R1,R1,ASR #15
m�    ADD     R1,R1,#128
m�    STR     R1,[R3,#40]
m�    ADD     R0,R0,#3
m�    STRB    R0,[R3,#44]
m�
m�    CMP     R8,#5
n    BLT     nofunkyrot
n

n    MOV     R0,R3
n    LDRB    R1,[R3,#45]
n(!    LDR     R1,[R7,R1,LSL #2]
n2    MOV     R2,R3
n<    BL      multiply
nF    .nofunkyrot
nP
nZ    CMP     R8,#2
nd    LDREQ   R0,identityind
nn    STMEQFD R13!,{R4-R9}
nx     LDMEQIA R0,{R0-R2,R4-R9}
n�     STMEQIA R3,{R0-R2,R4-R9}
n�    LDMEQFD R13!,{R4-R9}
n�
n�    LDR     R0,[R12,#16]
n�    CMP     R0,#0
n�    BEQ     nullsample
n�    SUB     R0,R0,#1
n�     ADR     R1,sampleaddrtab
n�!    LDR     R0,[R1,R0,LSL #2]
n�    LDMIA   R12,{R1,R2}
n�    LDR     R4,[R12,#24]
n�    CMP     R4,#0
n�    BGT     oksample
o    .nullsample
o#    LDR     R0,nullsampletabind
o    MOV     R1,#0
o"    MOV     R2,#0
o,    .oksample
o6    BL      graph
o@    ADD     R3,R3,#48
oJ    ADD     R12,R12,#32
oT    SUBS    R11,R11,#1
o^    BGT     dgloop
oh
or  LDMFD   R13!,{R0-R12,PC}^
o|
o�  .spinlist
o�  EQUD    spin1
o�  EQUD    spin2
o�  EQUD    spin3
o�  EQUD    spin1b
o�  EQUD    spin2b
o�  EQUD    spin3b
o�
o�  .nullsampletabind
o�  EQUD    nullsampletab
o�
o�  .identityind
o�  EQUD    identity
p
p  .graphpostab
p'  EQUD    32768:EQUD    0:EQUD    0
p&'  EQUD    0:EQUD    32768:EQUD    0
p0'  EQUD    0:EQUD    0:EQUD    32768
p:&  EQUD    160:EQUD    64:EQUB    0
pD  EQUB   0:ALIGN
pN
pX'  EQUD    32768:EQUD    0:EQUD    0
pb'  EQUD    0:EQUD    32768:EQUD    0
pl'  EQUD    0:EQUD    0:EQUD    32768
pv(  EQUD    240:EQUD    128:EQUB    64
p�  EQUB    0:ALIGN
p�
p�'  EQUD    32768:EQUD    0:EQUD    0
p�'  EQUD    0:EQUD    32768:EQUD    0
p�'  EQUD    0:EQUD    0:EQUD    32768
p�)  EQUD    160:EQUD    192:EQUB    128
p�  EQUB    0:ALIGN
p�
p�'  EQUD    32768:EQUD    0:EQUD    0
p�'  EQUD    0:EQUD    32768:EQUD    0
p�'  EQUD    0:EQUD    0:EQUD    32768
p�)  EQUD    80:EQUD    128 :EQUB    192
p�  EQUB    0:ALIGN
q
q  ]
q
q   sampleaddrtab=P%
q*
  P%+=128
q4
q>  soundinfotab=P%
qH
  P%+=256
qR
q\  plottab=P%
qf  P%+=2048
qp1  � type      line    sphere   bline     head
qz:  � base+0  = effective average distance for all types
q�.  � base+4  = 0       1        2         3
q�.  � base+8  = xA      x        xA        x
q�.  � base+12 = yA      y        yA        y
q�.  � base+16 = zA      z        zA        z
q�2  � base+20 = xx      size     xx        expr.
q�%  � base+24 = yy               yy
q�%  � base+28 = zz               zz
q�)  � base+32 = length           length
q�
q�  startab=P%
q�
  P%+=512
q�
q�  sincostab=P%
r  P%+=2048
r
r  nullsampletab=P%
r$
  P%+=128
r.
r8
  � pass%
rB
rL  � N%=0 � 511 � 4
rV    startab!N%=�(81920)-1
r`  �
rj
rt  � N%=0 � 1023 � 4
r~-    sincostab!(N%+0)=32768*�(N%*2*�/1024)
r�0    sincostab!(N%+1024)=32768*�(N%*2*�/1024)
r�  �
r�
r�  � N%=0 � 127
r�    nullsampletab?N%=128
r�  �
r�
r�  !spritefilebase=sprites
r��
r�
�
00000000  0d 00 0a 1b f4 20 3e 20  21 46 75 6e 6b 79 44 65  |..... > !FunkyDe|
00000010  6d 6f 2e 21 52 75 6e 4d  61 69 6e 0d 00 14 12 f4  |mo.!RunMain.....|
00000020  20 28 43 29 20 4a 53 47  20 31 39 39 32 0d 00 1e  | (C) JSG 1992...|
00000030  04 0d 00 28 09 e7 20 a3  20 8c 0d 00 32 0a 20 20  |...(.. . ...2.  |
00000040  c8 a0 20 38 0d 00 3c 09  20 20 eb 31 32 0d 00 46  |.. 8..<.  .12..F|
00000050  0f 20 20 fb 20 34 2c 30  2c 30 2c 30 0d 00 50 0d  |.  . 4,0,0,0..P.|
00000060  20 20 fb 20 34 2b 31 32  38 0d 00 5a 07 20 20 db  |  . 4+128..Z.  .|
00000070  0d 00 64 12 20 20 2a 53  50 45 41 4b 45 52 20 4f  |..d.  *SPEAKER O|
00000080  46 46 0d 00 6e 1a 20 20  2a 4b 45 59 20 31 20 22  |FF..n.  *KEY 1 "|
00000090  20 7c 4d 54 57 49 4e 4f  38 7c 4d 22 0d 00 78 18  | |MTWINO8|M"..x.|
000000a0  20 20 ef 20 31 39 2c 30  2c 32 34 2c 33 32 2c 33  |  . 19,0,24,32,3|
000000b0  32 2c 33 32 0d 00 82 05  cd 0d 00 8c 04 0d 00 96  |2,32............|
000000c0  10 de 20 63 6f 64 65 20  33 32 37 36 38 0d 00 a0  |.. code 32768...|
000000d0  13 de 20 73 70 72 69 74  65 73 20 38 31 39 32 30  |.. sprites 81920|
000000e0  0d 00 aa 1a de 20 70 6c  6f 74 73 70 72 69 74 65  |..... plotsprite|
000000f0  61 63 6f 64 65 28 37 2c  33 29 0d 00 b4 16 de 20  |acode(7,3)..... |
00000100  72 67 76 61 6c 28 32 29  2c 62 76 61 6c 28 32 29  |rgval(2),bval(2)|
00000110  0d 00 be 04 0d 00 c8 0e  72 67 76 61 6c 28 30 29  |........rgval(0)|
00000120  3d 30 0d 00 d2 10 72 67  76 61 6c 28 31 29 3d 30  |=0....rgval(1)=0|
00000130  2e 36 0d 00 dc 0e 72 67  76 61 6c 28 32 29 3d 31  |.6....rgval(2)=1|
00000140  0d 00 e6 0d 62 76 61 6c  28 30 29 3d 30 0d 00 f0  |....bval(0)=0...|
00000150  0f 62 76 61 6c 28 31 29  3d 30 2e 33 0d 00 fa 0f  |.bval(1)=0.3....|
00000160  62 76 61 6c 28 32 29 3d  30 2e 35 0d 01 04 0f 78  |bval(2)=0.5....x|
00000170  6f 72 69 67 69 6e 3d 33  32 30 0d 01 0e 0e 79 6f  |origin=320....yo|
00000180  72 69 67 69 6e 3d 36 34  0d 01 18 04 0d 01 22 1a  |rigin=64......".|
00000190  63 6f 73 25 3d 33 32 37  36 38 2a 9b 28 30 2e 31  |cos%=32768*.(0.1|
000001a0  32 29 2b 30 2e 35 0d 01  2c 1a 73 69 6e 25 3d 33  |2)+0.5..,.sin%=3|
000001b0  32 37 36 38 2a b5 28 30  2e 31 32 29 2b 30 2e 35  |2768*.(0.12)+0.5|
000001c0  0d 01 36 04 0d 01 40 0d  f2 61 73 73 65 6d 62 6c  |..6...@..assembl|
000001d0  65 0d 01 4a 04 0d 01 54  2a ff 22 4c 4f 41 44 20  |e..J...T*."LOAD |
000001e0  3c 46 75 6e 6b 79 24 44  69 72 3e 2e 53 70 72 69  |<Funky$Dir>.Spri|
000001f0  74 65 73 20 22 2b c3 7e  73 70 72 69 74 65 73 0d  |tes "+.~sprites.|
00000200  01 5e 1c c8 99 22 54 72  61 63 6b 65 72 5f 54 75  |.^..."Tracker_Tu|
00000210  6e 65 49 6e 66 6f 22 20  b8 20 41 0d 01 68 0b e7  |neInfo" . A..h..|
00000220  20 41 3d 30 20 8c 0d 01  72 13 20 20 2a 52 4d 41  | A=0 ...r.  *RMA|
00000230  46 72 65 65 20 33 30 30  4b 0d 01 7c 2f 20 20 c8  |Free 300K..|/  .|
00000240  99 22 54 72 61 63 6b 65  72 5f 4c 6f 61 64 22 2c  |."Tracker_Load",|
00000250  22 3c 46 75 6e 6b 79 24  44 69 72 3e 2e 47 74 52  |"<Funky$Dir>.GtR|
00000260  64 79 46 72 54 68 73 22  0d 01 86 05 cd 0d 01 90  |dyFrThs"........|
00000270  04 0d 01 9a 13 fb 20 33  2c 32 35 35 2c 32 35 35  |...... 3,255,255|
00000280  2c 32 35 35 0d 01 a4 07  e6 20 30 0d 01 ae 10 e3  |,255..... 0.....|
00000290  20 4e 25 3d 30 20 b8 20  31 32 37 0d 01 b8 18 20  | N%=0 . 127.... |
000002a0  20 41 25 3d 73 74 61 72  74 61 62 21 28 4e 25 3c  | A%=startab!(N%<|
000002b0  3c 32 29 0d 01 c2 27 20  20 c8 92 20 28 41 25 20  |<2)...'  .. (A% |
000002c0  83 20 33 32 30 29 2a 34  2c 31 30 32 33 2d 28 41  |. 320)*4,1023-(A|
000002d0  25 20 81 20 33 32 30 29  2a 34 0d 01 cc 29 20 20  |% . 320)*4...)  |
000002e0  c8 92 20 28 41 25 20 83  20 33 32 30 29 2a 34 2b  |.. (A% . 320)*4+|
000002f0  32 2c 31 30 32 33 2d 28  41 25 20 81 20 33 32 30  |2,1023-(A% . 320|
00000300  29 2a 34 0d 01 d6 05 ed  0d 01 e0 04 0d 01 ea 0e  |)*4.............|
00000310  e3 20 4e 3d 30 20 b8 20  31 35 0d 01 f4 24 20 20  |. N=0 . 15...$  |
00000320  fb 20 37 2c 31 39 32 2d  4e 2a 31 32 2c 31 39 32  |. 7,192-N*12,192|
00000330  2d 4e 2a 31 32 2c 31 39  32 2d 4e 2a 31 32 0d 01  |-N*12,192-N*12..|
00000340  fe 12 20 20 fb 20 30 2c  30 2c 30 2c 4e 2a 31 32  |..  . 0,0,0,N*12|
00000350  0d 02 08 24 20 20 fb 20  33 2c 31 39 32 2d 4e 2a  |...$  . 3,192-N*|
00000360  31 32 2c 31 39 32 2d 4e  2a 31 32 2c 31 39 32 2d  |12,192-N*12,192-|
00000370  4e 2a 31 32 0d 02 12 0c  20 20 2a 46 58 20 31 39  |N*12....  *FX 19|
00000380  0d 02 1c 0c 20 20 2a 46  58 20 31 39 0d 02 26 0c  |....  *FX 19..&.|
00000390  20 20 2a 46 58 20 31 39  0d 02 30 07 ed 20 4e 0d  |  *FX 19..0.. N.|
000003a0  02 3a 04 0d 02 44 12 21  63 75 72 70 6c 6f 74 62  |.:...D.!curplotb|
000003b0  61 6e 6b 3d 31 0d 02 4e  0f fb 20 30 2c 30 2c 30  |ank=1..N.. 0,0,0|
000003c0  2c 31 39 32 0d 02 58 0f  fb 20 31 2c 31 39 32 2c  |,192..X.. 1,192,|
000003d0  30 2c 30 0d 02 62 10 fb  20 32 2c 31 39 32 2c 39  |0,0..b.. 2,192,9|
000003e0  36 2c 30 0d 02 6c 11 fb  20 33 2c 36 34 2c 31 32  |6,0..l.. 3,64,12|
000003f0  38 2c 34 38 0d 02 76 0f  e3 20 43 32 25 3d 31 20  |8,48..v.. C2%=1 |
00000400  b8 20 32 0d 02 80 38 20  20 fb 20 31 32 2b 43 32  |. 2...8  . 12+C2|
00000410  25 2c 31 32 37 2a 62 76  61 6c 28 43 32 25 29 2c  |%,127*bval(C2%),|
00000420  31 32 37 2a 62 76 61 6c  28 43 32 25 29 2c 32 35  |127*bval(C2%),25|
00000430  35 2a 62 76 61 6c 28 43  32 25 29 0d 02 8a 05 ed  |5*bval(C2%).....|
00000440  0d 02 94 14 fb 20 31 35  2c 32 35 35 2c 32 35 35  |..... 15,255,255|
00000450  2c 32 35 35 0d 02 9e 08  fb 20 31 35 0d 02 a8 18  |,255..... 15....|
00000460  f2 73 65 74 70 61 6c 65  74 74 65 28 42 30 25 2c  |.setpalette(B0%,|
00000470  42 31 25 29 0d 02 b2 04  0d 02 bc 0f e3 20 4e 25  |B1%)......... N%|
00000480  3d 30 20 b8 20 33 31 0d  02 c6 44 20 20 c8 99 22  |=0 . 31...D  .."|
00000490  54 72 61 63 6b 65 72 5f  52 65 61 64 53 61 6d 70  |Tracker_ReadSamp|
000004a0  6c 65 54 61 62 6c 65 22  2c 4e 25 2b 31 20 b8 20  |leTable",N%+1 . |
000004b0  2c 2c 2c 2c 2c 2c 73 61  6d 70 6c 65 61 64 64 72  |,,,,,,sampleaddr|
000004c0  74 61 62 21 28 4e 25 3c  3c 32 29 0d 02 d0 05 ed  |tab!(N%<<2).....|
000004d0  0d 02 da 18 c8 99 22 54  72 61 63 6b 65 72 5f 53  |......"Tracker_S|
000004e0  74 65 72 65 6f 22 2c 31  0d 02 e4 04 0d 02 ee 28  |tereo",1.......(|
000004f0  41 25 3d 74 6f 72 73 6f  74 72 61 6e 73 3a 42 25  |A%=torsotrans:B%|
00000500  3d 73 70 69 6e 31 3a 43  25 3d 74 6f 72 73 6f 74  |=spin1:C%=torsot|
00000510  72 61 6e 73 0d 02 f8 24  d6 20 6d 75 6c 74 69 70  |rans...$. multip|
00000520  6c 79 3a d6 20 6d 75 6c  74 69 70 6c 79 3a d6 20  |ly:. multiply:. |
00000530  6d 75 6c 74 69 70 6c 79  0d 03 02 0e d6 20 6d 75  |multiply..... mu|
00000540  6c 74 69 70 6c 79 0d 03  0c 28 41 25 3d 74 6f 72  |ltiply...(A%=tor|
00000550  73 6f 74 72 61 6e 73 3a  42 25 3d 73 70 69 6e 33  |sotrans:B%=spin3|
00000560  3a 43 25 3d 74 6f 72 73  6f 74 72 61 6e 73 0d 03  |:C%=torsotrans..|
00000570  16 24 d6 20 6d 75 6c 74  69 70 6c 79 3a d6 20 6d  |.$. multiply:. m|
00000580  75 6c 74 69 70 6c 79 3a  d6 20 6d 75 6c 74 69 70  |ultiply:. multip|
00000590  6c 79 0d 03 20 04 0d 03  2a 08 45 25 3d 30 0d 03  |ly.. ...*.E%=0..|
000005a0  34 08 fb 20 31 35 0d 03  3e 04 0d 03 48 0f 2a 46  |4.. 15..>...H.*F|
000005b0  58 20 31 37 36 2c 32 2c  30 0d 03 52 1a c8 99 22  |X 176,2,0..R..."|
000005c0  54 72 61 63 6b 65 72 5f  53 65 74 50 6f 73 22 2c  |Tracker_SetPos",|
000005d0  30 2c 30 0d 03 5c 14 c8  99 22 54 72 61 63 6b 65  |0,0..\..."Tracke|
000005e0  72 5f 50 6c 61 79 22 0d  03 66 04 0d 03 70 05 f5  |r_Play"..f...p..|
000005f0  0d 03 7a 13 20 20 d6 20  63 68 61 6e 67 65 66 72  |..z.  . changefr|
00000600  61 6d 65 0d 03 84 13 20  20 d6 20 63 6c 65 61 72  |ame....  . clear|
00000610  73 63 72 65 65 6e 0d 03  8e 0f 20 20 d6 20 63 6f  |screen....  . co|
00000620  6e 74 72 6f 6c 0d 03 98  0e 20 20 d6 20 75 70 64  |ntrol....  . upd|
00000630  61 74 65 0d 03 a2 12 20  20 d6 20 64 72 61 77 67  |ate....  . drawg|
00000640  72 61 70 68 73 0d 03 ac  12 20 20 d6 20 64 72 61  |raphs....  . dra|
00000650  77 70 65 72 73 6f 6e 0d  03 b6 33 20 20 e7 20 b3  |wperson...3  . .|
00000660  28 31 32 29 3d 31 20 8c  20 21 63 75 72 63 6f 6c  |(12)=1 . !curcol|
00000670  31 3d b3 28 31 30 29 2d  31 3a 21 63 75 72 63 6f  |1=.(10)-1:!curco|
00000680  6c 32 3d b3 28 31 30 29  2d 31 0d 03 c0 33 20 20  |l2=.(10)-1...3  |
00000690  e7 20 b3 28 36 29 3d 31  20 8c 20 67 72 61 70 68  |. .(6)=1 . graph|
000006a0  70 6f 73 74 61 62 21 28  b3 28 34 29 2a 34 38 2d  |postab!(.(4)*48-|
000006b0  34 38 2b 34 35 29 3d b3  28 36 29 2d 31 0d 03 ca  |48+45)=.(6)-1...|
000006c0  11 20 20 c8 97 20 58 25  2c 59 25 2c 42 25 0d 03  |.  .. X%,Y%,B%..|
000006d0  d4 10 20 20 e7 20 42 25  20 80 20 32 20 8c 0d 03  |..  . B% . 2 ...|
000006e0  de 12 20 20 20 20 2a 50  4c 41 59 50 41 55 53 45  |..    *PLAYPAUSE|
000006f0  0d 03 e8 22 20 20 20 20  f5 3a c8 97 20 58 25 2c  |..."    .:.. X%,|
00000700  59 25 2c 42 25 3a fd 20  28 42 25 20 80 20 32 29  |Y%,B%:. (B% . 2)|
00000710  3d 30 0d 03 f2 22 20 20  20 20 f5 3a c8 97 20 58  |=0..."    .:.. X|
00000720  25 2c 59 25 2c 42 25 3a  fd 20 28 42 25 20 80 20  |%,Y%,B%:. (B% . |
00000730  32 29 3d 32 0d 03 fc 22  20 20 20 20 f5 3a c8 97  |2)=2..."    .:..|
00000740  20 58 25 2c 59 25 2c 42  25 3a fd 20 28 42 25 20  | X%,Y%,B%:. (B% |
00000750  80 20 32 29 3d 30 0d 04  06 12 20 20 20 20 2a 50  |. 2)=0....    *P|
00000760  4c 41 59 53 54 41 52 54  0d 04 10 07 20 20 cd 0d  |LAYSTART....  ..|
00000770  04 1a 0c fd 20 42 25 20  80 20 34 0d 04 24 04 0d  |.... B% . 4..$..|
00000780  04 2e 15 c8 99 22 54 72  61 63 6b 65 72 5f 50 61  |....."Tracker_Pa|
00000790  75 73 65 22 0d 04 38 06  eb 30 0d 04 42 05 e0 0d  |use"..8..0..B...|
000007a0  04 4c 04 0d 04 56 1a dd  20 f2 73 65 74 70 61 6c  |.L...V.. .setpal|
000007b0  65 74 74 65 28 42 30 25  2c 42 31 25 29 0d 04 60  |ette(B0%,B1%)..`|
000007c0  11 20 20 e3 20 43 31 25  3d 30 20 b8 20 32 0d 04  |.  . C1%=0 . 2..|
000007d0  6a 13 20 20 20 20 e3 20  43 30 25 3d 30 20 b8 20  |j.    . C0%=0 . |
000007e0  32 0d 04 74 2f 20 20 20  20 20 20 42 52 25 3d 28  |2..t/      BR%=(|
000007f0  42 30 25 2a 72 67 76 61  6c 28 43 30 25 29 2b 42  |B0%*rgval(C0%)+B|
00000800  31 25 2a 72 67 76 61 6c  28 43 31 25 29 29 2f 32  |1%*rgval(C1%))/2|
00000810  0d 04 7e 23 20 20 20 20  20 20 fb 20 34 2b 33 2a  |..~#      . 4+3*|
00000820  43 31 25 2b 43 30 25 2c  42 52 25 2c 42 52 25 2c  |C1%+C0%,BR%,BR%,|
00000830  42 52 25 0d 04 88 09 20  20 20 20 ed 0d 04 92 07  |BR%....    .....|
00000840  20 20 ed 0d 04 9c 05 e1  0d 04 a6 04 0d 04 b0 0f  |  ..............|
00000850  dd 20 a4 52 4f 55 4e 44  28 41 29 0d 04 ba 0f 3d  |. .ROUND(A)....=|
00000860  41 2b 30 2e 35 2a b4 28  41 29 0d 04 c4 05 20 0d  |A+0.5*.(A).... .|
00000870  04 ce 0f dd 20 f2 61 73  73 65 6d 62 6c 65 0d 04  |.... .assemble..|
00000880  d8 17 20 20 e3 20 70 61  73 73 25 3d 30 20 b8 20  |..  . pass%=0 . |
00000890  32 20 88 20 32 0d 04 e2  0d 20 20 50 25 3d 63 6f  |2 . 2....  P%=co|
000008a0  64 65 0d 04 ec 10 20 20  5b 4f 50 54 20 70 61 73  |de....  [OPT pas|
000008b0  73 25 0d 04 f6 04 0d 05  00 11 20 20 2e 63 75 72  |s%........  .cur|
000008c0  72 65 70 71 69 6e 64 0d  05 0a 18 20 20 45 51 55  |repqind....  EQU|
000008d0  44 20 20 20 20 63 75 72  72 65 70 71 2d 50 25 0d  |D    currepq-P%.|
000008e0  05 14 04 0d 05 1e 15 20  20 2e 70 6c 6f 74 73 63  |.......  .plotsc|
000008f0  72 65 65 6e 69 6e 64 30  0d 05 28 1f 20 20 45 51  |reenind0..(.  EQ|
00000900  55 44 20 20 20 20 70 6c  6f 74 73 63 72 65 65 6e  |UD    plotscreen|
00000910  62 61 73 65 2d 50 25 0d  05 32 04 0d 05 3c 4c 20  |base-P%..2...<L |
00000920  20 5c 20 50 6c 6f 74 20  53 70 72 69 74 65 20 73  | \ Plot Sprite s|
00000930  69 7a 65 20 61 20 28 33  32 2a 6e 20 6d 6f 64 65  |ize a (32*n mode|
00000940  20 31 32 29 20 77 69 74  68 20 69 6d 70 6c 69 63  | 12) with implic|
00000950  69 74 20 6d 61 73 6b 20  62 75 74 20 6e 6f 20 63  |it mask but no c|
00000960  6c 69 70 70 69 6e 67 0d  05 46 1d 20 20 5c 20 56  |lipping..F.  \ V|
00000970  61 6c 75 65 20 30 20 20  20 20 2d 3e 20 6e 6f 20  |alue 0    -> no |
00000980  70 6c 6f 74 0d 05 50 2a  20 20 5c 20 20 20 20 20  |plot..P*  \     |
00000990  20 20 31 2d 33 20 20 2d  3e 20 28 69 6c 6c 65 67  |  1-3  -> (illeg|
000009a0  61 6c 20 64 6f 20 6e 6f  74 20 75 73 65 29 0d 05  |al do not use)..|
000009b0  5a 20 20 20 5c 20 20 20  20 20 20 20 34 2d 31 35  |Z   \       4-15|
000009c0  20 2d 3e 20 70 6c 6f 74  20 70 69 78 65 6c 0d 05  | -> plot pixel..|
000009d0  64 27 20 20 5c 20 52 30  20 3d 20 58 20 70 6f 73  |d'  \ R0 = X pos|
000009e0  20 6f 66 20 63 65 6e 74  72 65 20 28 69 6e 74 65  | of centre (inte|
000009f0  72 6e 61 6c 29 0d 05 6e  27 20 20 5c 20 52 31 20  |rnal)..n'  \ R1 |
00000a00  3d 20 59 20 70 6f 73 20  6f 66 20 63 65 6e 74 72  |= Y pos of centr|
00000a10  65 20 28 69 6e 74 65 72  6e 61 6c 29 0d 05 78 2a  |e (internal)..x*|
00000a20  20 20 5c 20 52 32 20 3d  20 6e 75 6d 62 65 72 20  |  \ R2 = number |
00000a30  6f 66 20 6c 69 6e 65 73  20 69 6e 20 73 70 72 69  |of lines in spri|
00000a40  74 65 20 28 6e 29 0d 05  82 32 20 20 5c 20 52 33  |te (n)...2  \ R3|
00000a50  20 3d 20 61 64 64 72 65  73 73 20 6f 66 20 73 70  | = address of sp|
00000a60  72 69 74 65 20 64 61 74  61 20 28 77 6f 72 64 20  |rite data (word |
00000a70  61 6c 69 67 6e 65 64 29  0d 05 8c 12 20 20 2e 70  |aligned)....  .p|
00000a80  6c 6f 74 73 70 72 69 74  65 61 0d 05 96 1f 20 20  |lotspritea....  |
00000a90  53 54 4d 46 44 20 20 20  52 31 33 21 2c 7b 52 30  |STMFD   R13!,{R0|
00000aa0  2d 52 31 32 2c 52 31 34  7d 0d 05 a0 04 0d 05 aa  |-R12,R14}.......|
00000ab0  1c 20 20 41 44 52 20 20  20 20 20 52 31 30 2c 63  |.  ADR     R10,c|
00000ac0  75 72 72 65 70 71 69 6e  64 0d 05 b4 17 20 20 4c  |urrepqind....  L|
00000ad0  44 52 20 20 20 20 20 52  31 32 2c 5b 52 31 30 5d  |DR     R12,[R10]|
00000ae0  0d 05 be 1b 20 20 4c 44  52 20 20 20 20 20 52 31  |....  LDR     R1|
00000af0  30 2c 5b 52 31 32 2c 52  31 30 5d 0d 05 c8 14 20  |0,[R12,R10].... |
00000b00  20 43 4d 50 20 20 20 20  20 52 31 30 2c 23 31 0d  | CMP     R10,#1.|
00000b10  05 d2 12 20 20 42 45 51  20 20 20 20 20 70 73 61  |...  BEQ     psa|
00000b20  31 0d 05 dc 14 20 20 43  4d 50 20 20 20 20 20 52  |1....  CMP     R|
00000b30  31 30 2c 23 32 0d 05 e6  12 20 20 42 45 51 20 20  |10,#2....  BEQ  |
00000b40  20 20 20 70 73 61 32 0d  05 f0 14 20 20 43 4d 50  |   psa2....  CMP|
00000b50  20 20 20 20 20 52 31 30  2c 23 33 0d 05 fa 12 20  |     R10,#3.... |
00000b60  20 42 45 51 20 20 20 20  20 70 73 61 33 0d 06 04  | BEQ     psa3...|
00000b70  04 0d 06 0e 40 20 20 4d  4f 56 20 20 20 20 20 52  |....@  MOV     R|
00000b80  31 30 2c 52 33 20 20 20  20 20 20 20 20 20 20 20  |10,R3           |
00000b90  20 20 20 5c 20 52 31 30  20 3d 20 61 64 64 72 65  |   \ R10 = addre|
00000ba0  73 73 20 6f 66 20 73 70  72 69 74 65 20 64 61 74  |ss of sprite dat|
00000bb0  61 0d 06 18 05 20 0d 06  22 39 20 20 4d 4f 56 20  |a.... .."9  MOV |
00000bc0  20 20 20 20 52 31 31 2c  52 32 20 20 20 20 20 20  |    R11,R2      |
00000bd0  20 20 20 20 20 20 20 20  5c 20 52 31 31 20 3d 20  |        \ R11 = |
00000be0  6e 75 6d 62 65 72 20 6f  66 20 6c 69 6e 65 73 0d  |number of lines.|
00000bf0  06 2c 05 20 0d 06 36 17  20 20 53 55 42 20 20 20  |.,. ..6.  SUB   |
00000c00  20 20 52 30 2c 52 30 2c  23 31 36 0d 06 40 37 20  |  R0,R0,#16..@7 |
00000c10  20 53 55 42 20 20 20 20  20 52 31 2c 52 31 2c 52  | SUB     R1,R1,R|
00000c20  31 31 2c 41 53 52 20 23  31 20 20 20 20 5c 20 67  |11,ASR #1    \ g|
00000c30  65 74 20 74 6f 70 20 6c  65 66 74 20 63 6f 72 6e  |et top left corn|
00000c40  65 72 0d 06 4a 04 0d 06  54 13 20 20 43 4d 4e 20  |er..J...T.  CMN |
00000c50  20 20 20 20 52 30 2c 23  31 0d 06 5e 14 20 20 43  |    R0,#1..^.  C|
00000c60  4d 4e 47 54 20 20 20 52  31 2c 52 31 31 0d 06 68  |MNGT   R1,R11..h|
00000c70  1f 20 20 4c 44 4d 4c 45  46 44 20 52 31 33 21 2c  |.  LDMLEFD R13!,|
00000c80  7b 52 30 2d 52 31 32 2c  50 43 7d 5e 0d 06 72 18  |{R0-R12,PC}^..r.|
00000c90  20 20 43 4d 50 20 20 20  20 20 52 30 2c 23 36 34  |  CMP     R0,#64|
00000ca0  30 2d 33 32 0d 06 7c 17  20 20 43 4d 50 4c 45 20  |0-32..|.  CMPLE |
00000cb0  20 20 52 31 2c 23 32 35  36 2d 31 0d 06 86 40 20  |  R1,#256-1...@ |
00000cc0  20 4c 44 4d 47 54 46 44  20 52 31 33 21 2c 7b 52  | LDMGTFD R13!,{R|
00000cd0  30 2d 52 31 32 2c 50 43  7d 5e 20 20 20 5c 20 64  |0-R12,PC}^   \ d|
00000ce0  69 73 63 61 72 64 20 6f  75 74 20 6f 66 20 72 61  |iscard out of ra|
00000cf0  6e 67 65 20 73 70 72 69  74 65 73 0d 06 90 04 0d  |nge sprites.....|
00000d00  06 9a 13 20 20 43 4d 50  20 20 20 20 20 52 31 2c  |...  CMP     R1,|
00000d10  23 30 0d 06 a4 18 20 20  41 44 44 4c 54 20 20 20  |#0....  ADDLT   |
00000d20  52 31 31 2c 52 31 31 2c  52 31 0d 06 ae 1f 20 20  |R11,R11,R1....  |
00000d30  53 55 42 4c 54 20 20 20  52 31 30 2c 52 31 30 2c  |SUBLT   R10,R10,|
00000d40  52 31 2c 4c 53 4c 20 23  34 0d 06 b8 2c 20 20 4d  |R1,LSL #4...,  M|
00000d50  4f 56 4c 54 20 20 20 52  31 2c 23 30 20 20 20 20  |OVLT   R1,#0    |
00000d60  20 20 20 20 20 20 20 20  20 20 20 5c 20 74 72 69  |           \ tri|
00000d70  6d 20 74 6f 70 0d 06 c2  04 0d 06 cc 18 20 20 52  |m top........  R|
00000d80  53 42 20 20 20 20 20 52  34 2c 52 31 2c 23 32 35  |SB     R4,R1,#25|
00000d90  36 0d 06 d6 14 20 20 43  4d 50 20 20 20 20 20 52  |6....  CMP     R|
00000da0  31 31 2c 52 34 0d 06 e0  2f 20 20 4d 4f 56 47 54  |11,R4.../  MOVGT|
00000db0  20 20 20 52 31 31 2c 52  34 20 20 20 20 20 20 20  |   R11,R4       |
00000dc0  20 20 20 20 20 20 20 5c  20 74 72 69 6d 20 62 6f  |       \ trim bo|
00000dd0  74 74 6f 6d 0d 06 ea 04  0d 06 f4 1f 20 20 41 44  |ttom........  AD|
00000de0  52 20 20 20 20 20 52 39  2c 70 6c 6f 74 73 63 72  |R     R9,plotscr|
00000df0  65 65 6e 69 6e 64 30 0d  06 fe 16 20 20 4c 44 52  |eenind0....  LDR|
00000e00  20 20 20 20 20 52 31 32  2c 5b 52 39 5d 0d 07 08  |     R12,[R9]...|
00000e10  19 20 20 4c 44 52 20 20  20 20 20 52 39 2c 5b 52  |.  LDR     R9,[R|
00000e20  39 2c 52 31 32 5d 0d 07  12 1d 20 20 41 44 44 20  |9,R12]....  ADD |
00000e30  20 20 20 20 52 39 2c 52  39 2c 52 31 2c 4c 53 4c  |    R9,R9,R1,LSL|
00000e40  20 23 38 0d 07 1c 1d 20  20 41 44 44 20 20 20 20  | #8....  ADD    |
00000e50  20 52 39 2c 52 39 2c 52  31 2c 4c 53 4c 20 23 36  | R9,R9,R1,LSL #6|
00000e60  0d 07 26 16 20 20 42 49  43 20 20 20 20 20 52 31  |..&.  BIC     R1|
00000e70  2c 52 30 2c 23 37 0d 07  30 4e 20 20 41 44 44 20  |,R0,#7..0N  ADD |
00000e80  20 20 20 20 52 39 2c 52  39 2c 52 31 2c 4c 53 52  |    R9,R9,R1,LSR|
00000e90  20 23 31 20 20 20 20 20  5c 20 52 39 20 3d 20 61  | #1     \ R9 = a|
00000ea0  64 64 72 65 73 73 20 28  69 6e 20 73 63 72 65 65  |ddress (in scree|
00000eb0  6e 29 20 74 6f 20 62 65  67 69 6e 20 70 6c 6f 74  |n) to begin plot|
00000ec0  74 69 6e 67 0d 07 3a 05  20 0d 07 44 18 20 20 4d  |ting..:. ..D.  M|
00000ed0  4f 56 20 20 20 20 20 52  31 32 2c 23 25 31 30 30  |OV     R12,#%100|
00000ee0  30 0d 07 4e 20 20 20 84  52 20 20 20 20 20 52 31  |0..N   .R     R1|
00000ef0  32 2c 52 31 32 2c 52 31  32 2c 4c 53 4c 20 23 31  |2,R12,R12,LSL #1|
00000f00  36 0d 07 58 1f 20 20 84  52 20 20 20 20 20 52 31  |6..X.  .R     R1|
00000f10  32 2c 52 31 32 2c 52 31  32 2c 4c 53 4c 20 23 38  |2,R12,R12,LSL #8|
00000f20  0d 07 62 48 20 20 84 52  20 20 20 20 20 52 31 32  |..bH  .R     R12|
00000f30  2c 52 31 32 2c 52 31 32  2c 4c 53 4c 20 23 34 20  |,R12,R12,LSL #4 |
00000f40  20 5c 20 52 31 32 20 3d  20 84 20 6d 61 73 6b 20  | \ R12 = . mask |
00000f50  74 6f 20 69 73 6f 6c 61  74 65 20 27 6e 6f 20 70  |to isolate 'no p|
00000f60  6c 6f 74 27 20 62 69 74  0d 07 6c 04 0d 07 76 14  |lot' bit..l...v.|
00000f70  20 20 80 20 20 20 20 20  52 31 2c 52 30 2c 23 37  |  .     R1,R0,#7|
00000f80  0d 07 80 19 20 20 41 44  52 20 20 20 20 20 52 30  |....  ADR     R0|
00000f90  2c 63 61 73 65 6c 69 73  74 0d 07 8a 52 20 20 4c  |,caselist...R  L|
00000fa0  44 52 20 20 20 20 20 52  30 2c 5b 52 30 2c 52 31  |DR     R0,[R0,R1|
00000fb0  2c 4c 53 4c 20 23 32 5d  20 20 20 5c 20 52 30 20  |,LSL #2]   \ R0 |
00000fc0  3d 20 61 64 64 72 65 73  73 20 6f 66 20 63 6f 64  |= address of cod|
00000fd0  65 20 66 6f 72 20 70 61  72 74 69 63 75 6c 61 72  |e for particular|
00000fe0  20 73 68 69 66 74 20 63  61 73 65 0d 07 94 15 20  | shift case.... |
00000ff0  20 41 44 52 20 20 20 20  20 52 31 2c 62 61 73 65  | ADR     R1,base|
00001000  0d 07 9e 16 20 20 41 44  44 20 20 20 20 20 50 43  |....  ADD     PC|
00001010  2c 52 30 2c 52 31 0d 07  a8 04 0d 07 b2 0f 20 20  |,R0,R1........  |
00001020  2e 63 61 73 65 6c 69 73  74 0d 07 bc 07 20 20 5d  |.caselist....  ]|
00001030  0d 07 c6 10 20 20 e3 20  4e 25 3d 30 20 b8 20 37  |....  . N%=0 . 7|
00001040  0d 07 d0 12 20 20 20 20  5b 4f 50 54 20 70 61 73  |....    [OPT pas|
00001050  73 25 0d 07 da 2a 20 20  20 20 45 51 55 44 20 20  |s%...*    EQUD  |
00001060  20 20 70 6c 6f 74 73 70  72 69 74 65 61 63 6f 64  |  plotspriteacod|
00001070  65 28 4e 25 2c 30 29 2d  62 61 73 65 0d 07 e4 09  |e(N%,0)-base....|
00001080  20 20 20 20 5d 0d 07 ee  0a 20 20 ed 20 4e 25 0d  |    ]....  . N%.|
00001090  07 f8 10 20 20 5b 4f 50  54 20 70 61 73 73 25 0d  |...  [OPT pass%.|
000010a0  08 02 0b 20 20 2e 62 61  73 65 0d 08 0c 07 20 20  |...  .base....  |
000010b0  5d 0d 08 16 10 20 20 e3  20 4e 25 3d 30 20 b8 20  |]....  . N%=0 . |
000010c0  37 0d 08 20 19 20 20 20  20 73 68 69 66 74 6c 65  |7.. .    shiftle|
000010d0  66 74 20 20 3d 20 4e 25  2a 34 0d 08 2a 1c 20 20  |ft  = N%*4..*.  |
000010e0  20 20 73 68 69 66 74 72  69 67 68 74 20 3d 20 33  |  shiftright = 3|
000010f0  32 2d 4e 25 2a 34 0d 08  34 35 20 20 20 20 5b 4f  |2-N%*4..45    [O|
00001100  50 54 20 70 61 73 73 25  20 20 20 20 20 20 20 20  |PT pass%        |
00001110  20 20 20 20 20 20 20 20  5c 20 64 6f 20 38 20 63  |        \ do 8 c|
00001120  6f 6d 70 69 6c 61 74 69  6f 6e 73 0d 08 3e 05 20  |ompilations..>. |
00001130  0d 08 48 3b 20 20 20 20  2e 70 6c 6f 74 73 70 72  |..H;    .plotspr|
00001140  69 74 65 61 63 6f 64 65  28 4e 25 2c 30 29 20 20  |iteacode(N%,0)  |
00001150  20 20 20 20 5c 20 64 6f  75 62 6c 65 73 20 61 73  |    \ doubles as|
00001160  20 6c 6f 6f 70 20 73 74  61 72 74 0d 08 52 1c 20  | loop start..R. |
00001170  20 20 20 4c 44 4d 49 41  20 20 20 52 31 30 21 2c  |   LDMIA   R10!,|
00001180  7b 52 30 2d 52 33 7d 0d  08 5c 04 0d 08 66 1a 20  |{R0-R3}..\...f. |
00001190  20 20 20 4c 44 4d 49 41  20 20 20 52 39 2c 7b 52  |   LDMIA   R9,{R|
000011a0  34 2d 52 38 7d 0d 08 70  04 0d 08 7a 09 20 20 20  |4-R8}..p...z.   |
000011b0  20 5d 0d 08 84 12 20 20  20 20 e3 20 4d 25 3d 30  | ]....    . M%=0|
000011c0  20 b8 20 33 0d 08 8e 14  20 20 20 20 20 20 52 64  | . 3....      Rd|
000011d0  61 74 61 20 3d 20 4d 25  0d 08 98 19 20 20 20 20  |ata = M%....    |
000011e0  20 20 52 63 75 72 77 6f  72 64 20 3d 20 4d 25 2b  |  Rcurword = M%+|
000011f0  34 0d 08 a2 1a 20 20 20  20 20 20 52 6e 65 78 74  |4....      Rnext|
00001200  77 6f 72 64 20 3d 20 4d  25 2b 35 0d 08 ac 35 20  |word = M%+5...5 |
00001210  20 20 20 20 20 5b 4f 50  54 20 70 61 73 73 25 20  |     [OPT pass% |
00001220  20 20 20 20 20 20 20 20  20 20 20 20 20 5c 20 66  |             \ f|
00001230  6f 72 20 66 6f 75 72 20  77 6f 72 64 73 2e 2e 2e  |or four words...|
00001240  0d 08 b6 05 20 0d 08 c0  27 20 20 20 20 20 20 84  |.... ...'      .|
00001250  52 20 20 20 20 20 52 31  34 2c 52 64 61 74 61 2c  |R     R14,Rdata,|
00001260  52 64 61 74 61 2c 4c 53  4c 20 23 31 0d 08 ca 1b  |Rdata,LSL #1....|
00001270  20 20 20 20 20 20 80 20  20 20 20 20 52 31 34 2c  |      .     R14,|
00001280  52 31 32 2c 52 31 34 0d  08 d4 23 20 20 20 20 20  |R12,R14...#     |
00001290  20 84 52 20 20 20 20 20  52 31 34 2c 52 31 34 2c  | .R     R14,R14,|
000012a0  52 31 34 2c 4c 53 52 20  23 32 0d 08 de 23 20 20  |R14,LSR #2...#  |
000012b0  20 20 20 20 84 52 20 20  20 20 20 52 31 34 2c 52  |    .R     R14,R|
000012c0  31 34 2c 52 31 34 2c 4c  53 52 20 23 31 0d 08 e8  |14,R14,LSR #1...|
000012d0  36 20 20 20 20 20 20 42  49 43 20 20 20 20 20 52  |6      BIC     R|
000012e0  63 75 72 77 6f 72 64 2c  52 63 75 72 77 6f 72 64  |curword,Rcurword|
000012f0  2c 52 31 34 2c 4c 53 4c  20 23 73 68 69 66 74 6c  |,R14,LSL #shiftl|
00001300  65 66 74 0d 08 f2 37 20  20 20 20 20 20 84 52 20  |eft...7      .R |
00001310  20 20 20 20 52 63 75 72  77 6f 72 64 2c 52 63 75  |    Rcurword,Rcu|
00001320  72 77 6f 72 64 2c 52 64  61 74 61 2c 4c 53 4c 20  |rword,Rdata,LSL |
00001330  23 73 68 69 66 74 6c 65  66 74 0d 08 fc 39 20 20  |#shiftleft...9  |
00001340  20 20 20 20 42 49 43 20  20 20 20 20 52 6e 65 78  |    BIC     Rnex|
00001350  74 77 6f 72 64 2c 52 6e  65 78 74 77 6f 72 64 2c  |tword,Rnextword,|
00001360  52 31 34 2c 4c 53 52 20  23 73 68 69 66 74 72 69  |R14,LSR #shiftri|
00001370  67 68 74 0d 09 06 3a 20  20 20 20 20 20 84 52 20  |ght...:      .R |
00001380  20 20 20 20 52 6e 65 78  74 77 6f 72 64 2c 52 6e  |    Rnextword,Rn|
00001390  65 78 74 77 6f 72 64 2c  52 64 61 74 61 2c 4c 53  |extword,Rdata,LS|
000013a0  52 20 23 73 68 69 66 74  72 69 67 68 74 0d 09 10  |R #shiftright...|
000013b0  0b 20 20 20 20 20 20 5d  0d 09 1a 0c 20 20 20 20  |.      ]....    |
000013c0  ed 20 4d 25 0d 09 24 12  20 20 20 20 5b 4f 50 54  |. M%..$.    [OPT|
000013d0  20 70 61 73 73 25 0d 09  2e 05 20 0d 09 38 1a 20  | pass%.... ..8. |
000013e0  20 20 20 53 54 4d 49 41  20 20 20 52 39 2c 7b 52  |   STMIA   R9,{R|
000013f0  34 2d 52 38 7d 0d 09 42  1a 20 20 20 20 41 44 44  |4-R8}..B.    ADD|
00001400  20 20 20 20 20 52 39 2c  52 39 2c 23 33 32 30 0d  |     R9,R9,#320.|
00001410  09 4c 04 0d 09 56 1a 20  20 20 20 53 55 42 53 20  |.L...V.    SUBS |
00001420  20 20 20 52 31 31 2c 52  31 31 2c 23 31 0d 09 60  |   R11,R11,#1..`|
00001430  25 20 20 20 20 42 47 54  20 20 20 20 20 70 6c 6f  |%    BGT     plo|
00001440  74 73 70 72 69 74 65 61  63 6f 64 65 28 4e 25 2c  |tspriteacode(N%,|
00001450  30 29 0d 09 6a 04 0d 09  74 21 20 20 20 20 4c 44  |0)..j...t!    LD|
00001460  4d 46 44 20 20 20 52 31  33 21 2c 7b 52 30 2d 52  |MFD   R13!,{R0-R|
00001470  31 32 2c 50 43 7d 5e 0d  09 7e 04 0d 09 88 09 20  |12,PC}^..~..... |
00001480  20 20 20 5d 0d 09 92 0a  20 20 ed 20 4e 25 0d 09  |   ]....  . N%..|
00001490  9c 10 20 20 5b 4f 50 54  20 70 61 73 73 25 0d 09  |..  [OPT pass%..|
000014a0  a6 04 0d 09 b0 15 20 20  2e 70 6c 6f 74 73 63 72  |......  .plotscr|
000014b0  65 65 6e 69 6e 64 31 0d  09 ba 1f 20 20 45 51 55  |eenind1....  EQU|
000014c0  44 20 20 20 20 70 6c 6f  74 73 63 72 65 65 6e 62  |D    plotscreenb|
000014d0  61 73 65 2d 50 25 0d 09  c4 05 20 0d 09 ce 0b 20  |ase-P%.... .... |
000014e0  20 2e 70 73 61 31 0d 09  d8 40 20 20 4d 4f 56 20  | .psa1...@  MOV |
000014f0  20 20 20 20 52 31 30 2c  52 33 20 20 20 20 20 20  |    R10,R3      |
00001500  20 20 20 20 20 20 20 20  5c 20 52 31 30 20 3d 20  |        \ R10 = |
00001510  61 64 64 72 65 73 73 20  6f 66 20 73 70 72 69 74  |address of sprit|
00001520  65 20 64 61 74 61 0d 09  e2 05 20 0d 09 ec 39 20  |e data.... ...9 |
00001530  20 4d 4f 56 20 20 20 20  20 52 31 31 2c 52 32 2c  | MOV     R11,R2,|
00001540  41 53 52 20 23 31 20 20  20 20 20 20 20 5c 20 52  |ASR #1       \ R|
00001550  31 31 20 3d 20 6e 75 6d  62 65 72 20 6f 66 20 6c  |11 = number of l|
00001560  69 6e 65 73 0d 09 f6 05  20 0d 0a 00 17 20 20 53  |ines.... ....  S|
00001570  55 42 20 20 20 20 20 52  30 2c 52 30 2c 23 31 36  |UB     R0,R0,#16|
00001580  0d 0a 0a 1a 20 20 4d 4f  56 20 20 20 20 20 52 31  |....  MOV     R1|
00001590  2c 52 31 2c 41 53 52 20  23 31 0d 0a 14 37 20 20  |,R1,ASR #1...7  |
000015a0  53 55 42 20 20 20 20 20  52 31 2c 52 31 2c 52 31  |SUB     R1,R1,R1|
000015b0  31 2c 41 53 52 20 23 31  20 20 20 20 5c 20 67 65  |1,ASR #1    \ ge|
000015c0  74 20 74 6f 70 20 6c 65  66 74 20 63 6f 72 6e 65  |t top left corne|
000015d0  72 0d 0a 1e 04 0d 0a 28  13 20 20 43 4d 4e 20 20  |r......(.  CMN  |
000015e0  20 20 20 52 30 2c 23 31  0d 0a 32 14 20 20 43 4d  |   R0,#1..2.  CM|
000015f0  4e 47 54 20 20 20 52 31  2c 52 31 31 0d 0a 3c 1f  |NGT   R1,R11..<.|
00001600  20 20 4c 44 4d 4c 45 46  44 20 52 31 33 21 2c 7b  |  LDMLEFD R13!,{|
00001610  52 30 2d 52 31 32 2c 50  43 7d 5e 0d 0a 46 18 20  |R0-R12,PC}^..F. |
00001620  20 43 4d 50 20 20 20 20  20 52 30 2c 23 36 34 30  | CMP     R0,#640|
00001630  2d 33 32 0d 0a 50 17 20  20 43 4d 50 4c 45 20 20  |-32..P.  CMPLE  |
00001640  20 52 31 2c 23 32 35 36  2d 31 0d 0a 5a 40 20 20  | R1,#256-1..Z@  |
00001650  4c 44 4d 47 54 46 44 20  52 31 33 21 2c 7b 52 30  |LDMGTFD R13!,{R0|
00001660  2d 52 31 32 2c 50 43 7d  5e 20 20 20 5c 20 64 69  |-R12,PC}^   \ di|
00001670  73 63 61 72 64 20 6f 75  74 20 6f 66 20 72 61 6e  |scard out of ran|
00001680  67 65 20 73 70 72 69 74  65 73 0d 0a 64 04 0d 0a  |ge sprites..d...|
00001690  6e 13 20 20 43 4d 50 20  20 20 20 20 52 31 2c 23  |n.  CMP     R1,#|
000016a0  30 0d 0a 78 18 20 20 41  44 44 4c 54 20 20 20 52  |0..x.  ADDLT   R|
000016b0  31 31 2c 52 31 31 2c 52  31 0d 0a 82 1f 20 20 53  |11,R11,R1....  S|
000016c0  55 42 4c 54 20 20 20 52  31 30 2c 52 31 30 2c 52  |UBLT   R10,R10,R|
000016d0  31 2c 4c 53 4c 20 23 34  0d 0a 8c 2c 20 20 4d 4f  |1,LSL #4...,  MO|
000016e0  56 4c 54 20 20 20 52 31  2c 23 30 20 20 20 20 20  |VLT   R1,#0     |
000016f0  20 20 20 20 20 20 20 20  20 20 5c 20 74 72 69 6d  |          \ trim|
00001700  20 74 6f 70 0d 0a 96 04  0d 0a a0 18 20 20 52 53  | top........  RS|
00001710  42 20 20 20 20 20 52 34  2c 52 31 2c 23 32 35 36  |B     R4,R1,#256|
00001720  0d 0a aa 14 20 20 43 4d  50 20 20 20 20 20 52 31  |....  CMP     R1|
00001730  31 2c 52 34 0d 0a b4 2f  20 20 4d 4f 56 47 54 20  |1,R4.../  MOVGT |
00001740  20 20 52 31 31 2c 52 34  20 20 20 20 20 20 20 20  |  R11,R4        |
00001750  20 20 20 20 20 20 5c 20  74 72 69 6d 20 62 6f 74  |      \ trim bot|
00001760  74 6f 6d 0d 0a be 04 0d  0a c8 1f 20 20 41 44 52  |tom........  ADR|
00001770  20 20 20 20 20 52 39 2c  70 6c 6f 74 73 63 72 65  |     R9,plotscre|
00001780  65 6e 69 6e 64 31 0d 0a  d2 16 20 20 4c 44 52 20  |enind1....  LDR |
00001790  20 20 20 20 52 31 32 2c  5b 52 39 5d 0d 0a dc 19  |    R12,[R9]....|
000017a0  20 20 4c 44 52 20 20 20  20 20 52 39 2c 5b 52 39  |  LDR     R9,[R9|
000017b0  2c 52 31 32 5d 0d 0a e6  1d 20 20 41 44 44 20 20  |,R12]....  ADD  |
000017c0  20 20 20 52 39 2c 52 39  2c 52 31 2c 4c 53 4c 20  |   R9,R9,R1,LSL |
000017d0  23 38 0d 0a f0 1d 20 20  41 44 44 20 20 20 20 20  |#8....  ADD     |
000017e0  52 39 2c 52 39 2c 52 31  2c 4c 53 4c 20 23 36 0d  |R9,R9,R1,LSL #6.|
000017f0  0a fa 16 20 20 42 49 43  20 20 20 20 20 52 31 2c  |...  BIC     R1,|
00001800  52 30 2c 23 37 0d 0b 04  4e 20 20 41 44 44 20 20  |R0,#7...N  ADD  |
00001810  20 20 20 52 39 2c 52 39  2c 52 31 2c 4c 53 52 20  |   R9,R9,R1,LSR |
00001820  23 31 20 20 20 20 20 5c  20 52 39 20 3d 20 61 64  |#1     \ R9 = ad|
00001830  64 72 65 73 73 20 28 69  6e 20 73 63 72 65 65 6e  |dress (in screen|
00001840  29 20 74 6f 20 62 65 67  69 6e 20 70 6c 6f 74 74  |) to begin plott|
00001850  69 6e 67 0d 0b 0e 05 20  0d 0b 18 18 20 20 4d 4f  |ing.... ....  MO|
00001860  56 20 20 20 20 20 52 31  32 2c 23 25 31 30 30 30  |V     R12,#%1000|
00001870  0d 0b 22 20 20 20 84 52  20 20 20 20 20 52 31 32  |.."   .R     R12|
00001880  2c 52 31 32 2c 52 31 32  2c 4c 53 4c 20 23 31 36  |,R12,R12,LSL #16|
00001890  0d 0b 2c 1f 20 20 84 52  20 20 20 20 20 52 31 32  |..,.  .R     R12|
000018a0  2c 52 31 32 2c 52 31 32  2c 4c 53 4c 20 23 38 0d  |,R12,R12,LSL #8.|
000018b0  0b 36 48 20 20 84 52 20  20 20 20 20 52 31 32 2c  |.6H  .R     R12,|
000018c0  52 31 32 2c 52 31 32 2c  4c 53 4c 20 23 34 20 20  |R12,R12,LSL #4  |
000018d0  5c 20 52 31 32 20 3d 20  84 20 6d 61 73 6b 20 74  |\ R12 = . mask t|
000018e0  6f 20 69 73 6f 6c 61 74  65 20 27 6e 6f 20 70 6c  |o isolate 'no pl|
000018f0  6f 74 27 20 62 69 74 0d  0b 40 04 0d 0b 4a 14 20  |ot' bit..@...J. |
00001900  20 80 20 20 20 20 20 52  31 2c 52 30 2c 23 37 0d  | .     R1,R0,#7.|
00001910  0b 54 1a 20 20 41 44 52  20 20 20 20 20 52 30 2c  |.T.  ADR     R0,|
00001920  63 61 73 65 6c 69 73 74  31 0d 0b 5e 52 20 20 4c  |caselist1..^R  L|
00001930  44 52 20 20 20 20 20 52  30 2c 5b 52 30 2c 52 31  |DR     R0,[R0,R1|
00001940  2c 4c 53 4c 20 23 32 5d  20 20 20 5c 20 52 30 20  |,LSL #2]   \ R0 |
00001950  3d 20 61 64 64 72 65 73  73 20 6f 66 20 63 6f 64  |= address of cod|
00001960  65 20 66 6f 72 20 70 61  72 74 69 63 75 6c 61 72  |e for particular|
00001970  20 73 68 69 66 74 20 63  61 73 65 0d 0b 68 16 20  | shift case..h. |
00001980  20 41 44 52 20 20 20 20  20 52 31 2c 62 61 73 65  | ADR     R1,base|
00001990  31 0d 0b 72 16 20 20 41  44 44 20 20 20 20 20 50  |1..r.  ADD     P|
000019a0  43 2c 52 30 2c 52 31 0d  0b 7c 04 0d 0b 86 10 20  |C,R0,R1..|..... |
000019b0  20 2e 63 61 73 65 6c 69  73 74 31 0d 0b 90 07 20  | .caselist1.... |
000019c0  20 5d 0d 0b 9a 10 20 20  e3 20 4e 25 3d 30 20 b8  | ]....  . N%=0 .|
000019d0  20 37 0d 0b a4 12 20 20  20 20 5b 4f 50 54 20 70  | 7....    [OPT p|
000019e0  61 73 73 25 0d 0b ae 2b  20 20 20 20 45 51 55 44  |ass%...+    EQUD|
000019f0  20 20 20 20 70 6c 6f 74  73 70 72 69 74 65 61 63  |    plotspriteac|
00001a00  6f 64 65 28 4e 25 2c 31  29 2d 62 61 73 65 31 0d  |ode(N%,1)-base1.|
00001a10  0b b8 09 20 20 20 20 5d  0d 0b c2 0a 20 20 ed 20  |...    ]....  . |
00001a20  4e 25 0d 0b cc 10 20 20  5b 4f 50 54 20 70 61 73  |N%....  [OPT pas|
00001a30  73 25 0d 0b d6 0c 20 20  2e 62 61 73 65 31 0d 0b  |s%....  .base1..|
00001a40  e0 07 20 20 5d 0d 0b ea  10 20 20 e3 20 4e 25 3d  |..  ]....  . N%=|
00001a50  30 20 b8 20 37 0d 0b f4  19 20 20 20 20 73 68 69  |0 . 7....    shi|
00001a60  66 74 6c 65 66 74 20 20  3d 20 4e 25 2a 34 0d 0b  |ftleft  = N%*4..|
00001a70  fe 1c 20 20 20 20 73 68  69 66 74 72 69 67 68 74  |..    shiftright|
00001a80  20 3d 20 33 32 2d 4e 25  2a 34 0d 0c 08 35 20 20  | = 32-N%*4...5  |
00001a90  20 20 5b 4f 50 54 20 70  61 73 73 25 20 20 20 20  |  [OPT pass%    |
00001aa0  20 20 20 20 20 20 20 20  20 20 20 20 5c 20 64 6f  |            \ do|
00001ab0  20 38 20 63 6f 6d 70 69  6c 61 74 69 6f 6e 73 0d  | 8 compilations.|
00001ac0  0c 12 05 20 0d 0c 1c 39  20 20 20 20 2e 70 6c 6f  |... ...9    .plo|
00001ad0  74 73 70 72 69 74 65 61  63 6f 64 65 28 4e 25 2c  |tspriteacode(N%,|
00001ae0  31 29 20 20 20 20 5c 20  64 6f 75 62 6c 65 73 20  |1)    \ doubles |
00001af0  61 73 20 6c 6f 6f 70 20  73 74 61 72 74 0d 0c 26  |as loop start..&|
00001b00  1b 20 20 20 20 4c 44 4d  49 41 20 20 20 52 31 30  |.    LDMIA   R10|
00001b10  2c 7b 52 30 2d 52 33 7d  0d 0c 30 1b 20 20 20 20  |,{R0-R3}..0.    |
00001b20  41 44 44 20 20 20 20 20  52 31 30 2c 52 31 30 2c  |ADD     R10,R10,|
00001b30  23 33 32 0d 0c 3a 04 0d  0c 44 1a 20 20 20 20 4c  |#32..:...D.    L|
00001b40  44 4d 49 41 20 20 20 52  39 2c 7b 52 34 2d 52 38  |DMIA   R9,{R4-R8|
00001b50  7d 0d 0c 4e 04 0d 0c 58  09 20 20 20 20 5d 0d 0c  |}..N...X.    ]..|
00001b60  62 12 20 20 20 20 e3 20  4d 25 3d 30 20 b8 20 33  |b.    . M%=0 . 3|
00001b70  0d 0c 6c 14 20 20 20 20  20 20 52 64 61 74 61 20  |..l.      Rdata |
00001b80  3d 20 4d 25 0d 0c 76 19  20 20 20 20 20 20 52 63  |= M%..v.      Rc|
00001b90  75 72 77 6f 72 64 20 3d  20 4d 25 2b 34 0d 0c 80  |urword = M%+4...|
00001ba0  1a 20 20 20 20 20 20 52  6e 65 78 74 77 6f 72 64  |.      Rnextword|
00001bb0  20 3d 20 4d 25 2b 35 0d  0c 8a 35 20 20 20 20 20  | = M%+5...5     |
00001bc0  20 5b 4f 50 54 20 70 61  73 73 25 20 20 20 20 20  | [OPT pass%     |
00001bd0  20 20 20 20 20 20 20 20  20 5c 20 66 6f 72 20 66  |         \ for f|
00001be0  6f 75 72 20 77 6f 72 64  73 2e 2e 2e 0d 0c 94 05  |our words.......|
00001bf0  20 0d 0c 9e 27 20 20 20  20 20 20 84 52 20 20 20  | ...'      .R   |
00001c00  20 20 52 31 34 2c 52 64  61 74 61 2c 52 64 61 74  |  R14,Rdata,Rdat|
00001c10  61 2c 4c 53 4c 20 23 31  0d 0c a8 1b 20 20 20 20  |a,LSL #1....    |
00001c20  20 20 80 20 20 20 20 20  52 31 34 2c 52 31 32 2c  |  .     R14,R12,|
00001c30  52 31 34 0d 0c b2 23 20  20 20 20 20 20 84 52 20  |R14...#      .R |
00001c40  20 20 20 20 52 31 34 2c  52 31 34 2c 52 31 34 2c  |    R14,R14,R14,|
00001c50  4c 53 52 20 23 32 0d 0c  bc 23 20 20 20 20 20 20  |LSR #2...#      |
00001c60  84 52 20 20 20 20 20 52  31 34 2c 52 31 34 2c 52  |.R     R14,R14,R|
00001c70  31 34 2c 4c 53 52 20 23  31 0d 0c c6 36 20 20 20  |14,LSR #1...6   |
00001c80  20 20 20 42 49 43 20 20  20 20 20 52 63 75 72 77  |   BIC     Rcurw|
00001c90  6f 72 64 2c 52 63 75 72  77 6f 72 64 2c 52 31 34  |ord,Rcurword,R14|
00001ca0  2c 4c 53 4c 20 23 73 68  69 66 74 6c 65 66 74 0d  |,LSL #shiftleft.|
00001cb0  0c d0 37 20 20 20 20 20  20 84 52 20 20 20 20 20  |..7      .R     |
00001cc0  52 63 75 72 77 6f 72 64  2c 52 63 75 72 77 6f 72  |Rcurword,Rcurwor|
00001cd0  64 2c 52 64 61 74 61 2c  4c 53 4c 20 23 73 68 69  |d,Rdata,LSL #shi|
00001ce0  66 74 6c 65 66 74 0d 0c  da 39 20 20 20 20 20 20  |ftleft...9      |
00001cf0  42 49 43 20 20 20 20 20  52 6e 65 78 74 77 6f 72  |BIC     Rnextwor|
00001d00  64 2c 52 6e 65 78 74 77  6f 72 64 2c 52 31 34 2c  |d,Rnextword,R14,|
00001d10  4c 53 52 20 23 73 68 69  66 74 72 69 67 68 74 0d  |LSR #shiftright.|
00001d20  0c e4 3a 20 20 20 20 20  20 84 52 20 20 20 20 20  |..:      .R     |
00001d30  52 6e 65 78 74 77 6f 72  64 2c 52 6e 65 78 74 77  |Rnextword,Rnextw|
00001d40  6f 72 64 2c 52 64 61 74  61 2c 4c 53 52 20 23 73  |ord,Rdata,LSR #s|
00001d50  68 69 66 74 72 69 67 68  74 0d 0c ee 0b 20 20 20  |hiftright....   |
00001d60  20 20 20 5d 0d 0c f8 0c  20 20 20 20 ed 20 4d 25  |   ]....    . M%|
00001d70  0d 0d 02 12 20 20 20 20  5b 4f 50 54 20 70 61 73  |....    [OPT pas|
00001d80  73 25 0d 0d 0c 05 20 0d  0d 16 1a 20 20 20 20 53  |s%.... ....    S|
00001d90  54 4d 49 41 20 20 20 52  39 2c 7b 52 34 2d 52 38  |TMIA   R9,{R4-R8|
00001da0  7d 0d 0d 20 1a 20 20 20  20 41 44 44 20 20 20 20  |}.. .    ADD    |
00001db0  20 52 39 2c 52 39 2c 23  33 32 30 0d 0d 2a 04 0d  | R9,R9,#320..*..|
00001dc0  0d 34 1a 20 20 20 20 53  55 42 53 20 20 20 20 52  |.4.    SUBS    R|
00001dd0  31 31 2c 52 31 31 2c 23  31 0d 0d 3e 25 20 20 20  |11,R11,#1..>%   |
00001de0  20 42 47 54 20 20 20 20  20 70 6c 6f 74 73 70 72  | BGT     plotspr|
00001df0  69 74 65 61 63 6f 64 65  28 4e 25 2c 31 29 0d 0d  |iteacode(N%,1)..|
00001e00  48 04 0d 0d 52 21 20 20  20 20 4c 44 4d 46 44 20  |H...R!    LDMFD |
00001e10  20 20 52 31 33 21 2c 7b  52 30 2d 52 31 32 2c 50  |  R13!,{R0-R12,P|
00001e20  43 7d 5e 0d 0d 5c 04 0d  0d 66 09 20 20 20 20 5d  |C}^..\...f.    ]|
00001e30  0d 0d 70 0a 20 20 ed 20  4e 25 0d 0d 7a 10 20 20  |..p.  . N%..z.  |
00001e40  5b 4f 50 54 20 70 61 73  73 25 0d 0d 84 05 20 0d  |[OPT pass%.... .|
00001e50  0d 8e 14 20 20 2e 70 6c  6f 74 73 63 72 65 65 6e  |...  .plotscreen|
00001e60  69 6e 64 0d 0d 98 1f 20  20 45 51 55 44 20 20 20  |ind....  EQUD   |
00001e70  20 70 6c 6f 74 73 63 72  65 65 6e 62 61 73 65 2d  | plotscreenbase-|
00001e80  50 25 0d 0d a2 05 20 0d  0d ac 0b 20 20 2e 70 73  |P%.... ....  .ps|
00001e90  61 32 0d 0d b6 40 20 20  4d 4f 56 20 20 20 20 20  |a2...@  MOV     |
00001ea0  52 31 30 2c 52 33 20 20  20 20 20 20 20 20 20 20  |R10,R3          |
00001eb0  20 20 20 20 5c 20 52 31  30 20 3d 20 61 64 64 72  |    \ R10 = addr|
00001ec0  65 73 73 20 6f 66 20 73  70 72 69 74 65 20 64 61  |ess of sprite da|
00001ed0  74 61 0d 0d c0 05 20 0d  0d ca 39 20 20 4d 4f 56  |ta.... ...9  MOV|
00001ee0  20 20 20 20 20 52 31 31  2c 52 32 2c 41 53 52 20  |     R11,R2,ASR |
00001ef0  23 32 20 20 20 20 20 20  20 5c 20 52 31 31 20 3d  |#2       \ R11 =|
00001f00  20 6e 75 6d 62 65 72 20  6f 66 20 6c 69 6e 65 73  | number of lines|
00001f10  0d 0d d4 05 20 0d 0d de  17 20 20 53 55 42 20 20  |.... ....  SUB  |
00001f20  20 20 20 52 30 2c 52 30  2c 23 31 36 0d 0d e8 18  |   R0,R0,#16....|
00001f30  20 20 53 55 42 20 20 20  20 20 52 30 2c 52 30 2c  |  SUB     R0,R0,|
00001f40  23 31 36 30 0d 0d f2 1a  20 20 4d 4f 56 20 20 20  |#160....  MOV   |
00001f50  20 20 52 31 2c 52 31 2c  41 53 52 20 23 32 0d 0d  |  R1,R1,ASR #2..|
00001f60  fc 37 20 20 53 55 42 20  20 20 20 20 52 31 2c 52  |.7  SUB     R1,R|
00001f70  31 2c 52 31 31 2c 41 53  52 20 23 31 20 20 20 20  |1,R11,ASR #1    |
00001f80  5c 20 67 65 74 20 74 6f  70 20 6c 65 66 74 20 63  |\ get top left c|
00001f90  6f 72 6e 65 72 0d 0e 06  04 0d 0e 10 13 20 20 43  |orner........  C|
00001fa0  4d 4e 20 20 20 20 20 52  30 2c 23 31 0d 0e 1a 14  |MN     R0,#1....|
00001fb0  20 20 43 4d 4e 47 54 20  20 20 52 31 2c 52 31 31  |  CMNGT   R1,R11|
00001fc0  0d 0e 24 1f 20 20 4c 44  4d 4c 45 46 44 20 52 31  |..$.  LDMLEFD R1|
00001fd0  33 21 2c 7b 52 30 2d 52  31 32 2c 50 43 7d 5e 0d  |3!,{R0-R12,PC}^.|
00001fe0  0e 2e 18 20 20 43 4d 50  20 20 20 20 20 52 30 2c  |...  CMP     R0,|
00001ff0  23 36 34 30 2d 33 32 0d  0e 38 17 20 20 43 4d 50  |#640-32..8.  CMP|
00002000  4c 45 20 20 20 52 31 2c  23 32 35 36 2d 31 0d 0e  |LE   R1,#256-1..|
00002010  42 40 20 20 4c 44 4d 47  54 46 44 20 52 31 33 21  |B@  LDMGTFD R13!|
00002020  2c 7b 52 30 2d 52 31 32  2c 50 43 7d 5e 20 20 20  |,{R0-R12,PC}^   |
00002030  5c 20 64 69 73 63 61 72  64 20 6f 75 74 20 6f 66  |\ discard out of|
00002040  20 72 61 6e 67 65 20 73  70 72 69 74 65 73 0d 0e  | range sprites..|
00002050  4c 04 0d 0e 56 13 20 20  43 4d 50 20 20 20 20 20  |L...V.  CMP     |
00002060  52 31 2c 23 30 0d 0e 60  18 20 20 41 44 44 4c 54  |R1,#0..`.  ADDLT|
00002070  20 20 20 52 31 31 2c 52  31 31 2c 52 31 0d 0e 6a  |   R11,R11,R1..j|
00002080  1f 20 20 53 55 42 4c 54  20 20 20 52 31 30 2c 52  |.  SUBLT   R10,R|
00002090  31 30 2c 52 31 2c 4c 53  4c 20 23 34 0d 0e 74 2c  |10,R1,LSL #4..t,|
000020a0  20 20 4d 4f 56 4c 54 20  20 20 52 31 2c 23 30 20  |  MOVLT   R1,#0 |
000020b0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 5c 20  |              \ |
000020c0  74 72 69 6d 20 74 6f 70  0d 0e 7e 04 0d 0e 88 18  |trim top..~.....|
000020d0  20 20 52 53 42 20 20 20  20 20 52 34 2c 52 31 2c  |  RSB     R4,R1,|
000020e0  23 32 35 36 0d 0e 92 14  20 20 43 4d 50 20 20 20  |#256....  CMP   |
000020f0  20 20 52 31 31 2c 52 34  0d 0e 9c 2f 20 20 4d 4f  |  R11,R4.../  MO|
00002100  56 47 54 20 20 20 52 31  31 2c 52 34 20 20 20 20  |VGT   R11,R4    |
00002110  20 20 20 20 20 20 20 20  20 20 5c 20 74 72 69 6d  |          \ trim|
00002120  20 62 6f 74 74 6f 6d 0d  0e a6 04 0d 0e b0 1e 20  | bottom........ |
00002130  20 41 44 52 20 20 20 20  20 52 39 2c 70 6c 6f 74  | ADR     R9,plot|
00002140  73 63 72 65 65 6e 69 6e  64 0d 0e ba 16 20 20 4c  |screenind....  L|
00002150  44 52 20 20 20 20 20 52  31 32 2c 5b 52 39 5d 0d  |DR     R12,[R9].|
00002160  0e c4 19 20 20 4c 44 52  20 20 20 20 20 52 39 2c  |...  LDR     R9,|
00002170  5b 52 39 2c 52 31 32 5d  0d 0e ce 1d 20 20 41 44  |[R9,R12]....  AD|
00002180  44 20 20 20 20 20 52 39  2c 52 39 2c 52 31 2c 4c  |D     R9,R9,R1,L|
00002190  53 4c 20 23 38 0d 0e d8  1d 20 20 41 44 44 20 20  |SL #8....  ADD  |
000021a0  20 20 20 52 39 2c 52 39  2c 52 31 2c 4c 53 4c 20  |   R9,R9,R1,LSL |
000021b0  23 36 0d 0e e2 16 20 20  42 49 43 20 20 20 20 20  |#6....  BIC     |
000021c0  52 31 2c 52 30 2c 23 37  0d 0e ec 4e 20 20 41 44  |R1,R0,#7...N  AD|
000021d0  44 20 20 20 20 20 52 39  2c 52 39 2c 52 31 2c 4c  |D     R9,R9,R1,L|
000021e0  53 52 20 23 31 20 20 20  20 20 5c 20 52 39 20 3d  |SR #1     \ R9 =|
000021f0  20 61 64 64 72 65 73 73  20 28 69 6e 20 73 63 72  | address (in scr|
00002200  65 65 6e 29 20 74 6f 20  62 65 67 69 6e 20 70 6c  |een) to begin pl|
00002210  6f 74 74 69 6e 67 0d 0e  f6 05 20 0d 0f 00 18 20  |otting.... .... |
00002220  20 4d 4f 56 20 20 20 20  20 52 31 32 2c 23 25 31  | MOV     R12,#%1|
00002230  30 30 30 0d 0f 0a 20 20  20 84 52 20 20 20 20 20  |000...   .R     |
00002240  52 31 32 2c 52 31 32 2c  52 31 32 2c 4c 53 4c 20  |R12,R12,R12,LSL |
00002250  23 31 36 0d 0f 14 1f 20  20 84 52 20 20 20 20 20  |#16....  .R     |
00002260  52 31 32 2c 52 31 32 2c  52 31 32 2c 4c 53 4c 20  |R12,R12,R12,LSL |
00002270  23 38 0d 0f 1e 48 20 20  84 52 20 20 20 20 20 52  |#8...H  .R     R|
00002280  31 32 2c 52 31 32 2c 52  31 32 2c 4c 53 4c 20 23  |12,R12,R12,LSL #|
00002290  34 20 20 5c 20 52 31 32  20 3d 20 84 20 6d 61 73  |4  \ R12 = . mas|
000022a0  6b 20 74 6f 20 69 73 6f  6c 61 74 65 20 27 6e 6f  |k to isolate 'no|
000022b0  20 70 6c 6f 74 27 20 62  69 74 0d 0f 28 04 0d 0f  | plot' bit..(...|
000022c0  32 14 20 20 80 20 20 20  20 20 52 31 2c 52 30 2c  |2.  .     R1,R0,|
000022d0  23 37 0d 0f 3c 1a 20 20  41 44 52 20 20 20 20 20  |#7..<.  ADR     |
000022e0  52 30 2c 63 61 73 65 6c  69 73 74 32 0d 0f 46 52  |R0,caselist2..FR|
000022f0  20 20 4c 44 52 20 20 20  20 20 52 30 2c 5b 52 30  |  LDR     R0,[R0|
00002300  2c 52 31 2c 4c 53 4c 20  23 32 5d 20 20 20 5c 20  |,R1,LSL #2]   \ |
00002310  52 30 20 3d 20 61 64 64  72 65 73 73 20 6f 66 20  |R0 = address of |
00002320  63 6f 64 65 20 66 6f 72  20 70 61 72 74 69 63 75  |code for particu|
00002330  6c 61 72 20 73 68 69 66  74 20 63 61 73 65 0d 0f  |lar shift case..|
00002340  50 16 20 20 41 44 52 20  20 20 20 20 52 31 2c 62  |P.  ADR     R1,b|
00002350  61 73 65 32 0d 0f 5a 16  20 20 41 44 44 20 20 20  |ase2..Z.  ADD   |
00002360  20 20 50 43 2c 52 30 2c  52 31 0d 0f 64 04 0d 0f  |  PC,R0,R1..d...|
00002370  6e 10 20 20 2e 63 61 73  65 6c 69 73 74 32 0d 0f  |n.  .caselist2..|
00002380  78 07 20 20 5d 0d 0f 82  10 20 20 e3 20 4e 25 3d  |x.  ]....  . N%=|
00002390  30 20 b8 20 37 0d 0f 8c  12 20 20 20 20 5b 4f 50  |0 . 7....    [OP|
000023a0  54 20 70 61 73 73 25 0d  0f 96 2b 20 20 20 20 45  |T pass%...+    E|
000023b0  51 55 44 20 20 20 20 70  6c 6f 74 73 70 72 69 74  |QUD    plotsprit|
000023c0  65 61 63 6f 64 65 28 4e  25 2c 32 29 2d 62 61 73  |eacode(N%,2)-bas|
000023d0  65 32 0d 0f a0 09 20 20  20 20 5d 0d 0f aa 0a 20  |e2....    ].... |
000023e0  20 ed 20 4e 25 0d 0f b4  10 20 20 5b 4f 50 54 20  | . N%....  [OPT |
000023f0  70 61 73 73 25 0d 0f be  0c 20 20 2e 62 61 73 65  |pass%....  .base|
00002400  32 0d 0f c8 07 20 20 5d  0d 0f d2 10 20 20 e3 20  |2....  ]....  . |
00002410  4e 25 3d 30 20 b8 20 37  0d 0f dc 19 20 20 20 20  |N%=0 . 7....    |
00002420  73 68 69 66 74 6c 65 66  74 20 20 3d 20 4e 25 2a  |shiftleft  = N%*|
00002430  34 0d 0f e6 1c 20 20 20  20 73 68 69 66 74 72 69  |4....    shiftri|
00002440  67 68 74 20 3d 20 33 32  2d 4e 25 2a 34 0d 0f f0  |ght = 32-N%*4...|
00002450  35 20 20 20 20 5b 4f 50  54 20 70 61 73 73 25 20  |5    [OPT pass% |
00002460  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 5c  |               \|
00002470  20 64 6f 20 38 20 63 6f  6d 70 69 6c 61 74 69 6f  | do 8 compilatio|
00002480  6e 73 0d 0f fa 05 20 0d  10 04 39 20 20 20 20 2e  |ns.... ...9    .|
00002490  70 6c 6f 74 73 70 72 69  74 65 61 63 6f 64 65 28  |plotspriteacode(|
000024a0  4e 25 2c 32 29 20 20 20  20 5c 20 64 6f 75 62 6c  |N%,2)    \ doubl|
000024b0  65 73 20 61 73 20 6c 6f  6f 70 20 73 74 61 72 74  |es as loop start|
000024c0  0d 10 0e 1b 20 20 20 20  4c 44 4d 49 41 20 20 20  |....    LDMIA   |
000024d0  52 31 30 2c 7b 52 30 2d  52 33 7d 0d 10 18 1b 20  |R10,{R0-R3}.... |
000024e0  20 20 20 41 44 44 20 20  20 20 20 52 31 30 2c 52  |   ADD     R10,R|
000024f0  31 30 2c 23 36 34 0d 10  22 1a 20 20 20 20 4c 44  |10,#64..".    LD|
00002500  4d 49 41 20 20 20 52 39  2c 7b 52 34 2d 52 38 7d  |MIA   R9,{R4-R8}|
00002510  0d 10 2c 04 0d 10 36 09  20 20 20 20 5d 0d 10 40  |..,...6.    ]..@|
00002520  12 20 20 20 20 e3 20 4d  25 3d 30 20 b8 20 33 0d  |.    . M%=0 . 3.|
00002530  10 4a 14 20 20 20 20 20  20 52 64 61 74 61 20 3d  |.J.      Rdata =|
00002540  20 4d 25 0d 10 54 19 20  20 20 20 20 20 52 63 75  | M%..T.      Rcu|
00002550  72 77 6f 72 64 20 3d 20  4d 25 2b 34 0d 10 5e 1a  |rword = M%+4..^.|
00002560  20 20 20 20 20 20 52 6e  65 78 74 77 6f 72 64 20  |      Rnextword |
00002570  3d 20 4d 25 2b 35 0d 10  68 35 20 20 20 20 20 20  |= M%+5..h5      |
00002580  5b 4f 50 54 20 70 61 73  73 25 20 20 20 20 20 20  |[OPT pass%      |
00002590  20 20 20 20 20 20 20 20  5c 20 66 6f 72 20 66 6f  |        \ for fo|
000025a0  75 72 20 77 6f 72 64 73  2e 2e 2e 0d 10 72 05 20  |ur words.....r. |
000025b0  0d 10 7c 27 20 20 20 20  20 20 84 52 20 20 20 20  |..|'      .R    |
000025c0  20 52 31 34 2c 52 64 61  74 61 2c 52 64 61 74 61  | R14,Rdata,Rdata|
000025d0  2c 4c 53 4c 20 23 31 0d  10 86 1b 20 20 20 20 20  |,LSL #1....     |
000025e0  20 80 20 20 20 20 20 52  31 34 2c 52 31 32 2c 52  | .     R14,R12,R|
000025f0  31 34 0d 10 90 23 20 20  20 20 20 20 84 52 20 20  |14...#      .R  |
00002600  20 20 20 52 31 34 2c 52  31 34 2c 52 31 34 2c 4c  |   R14,R14,R14,L|
00002610  53 52 20 23 32 0d 10 9a  23 20 20 20 20 20 20 84  |SR #2...#      .|
00002620  52 20 20 20 20 20 52 31  34 2c 52 31 34 2c 52 31  |R     R14,R14,R1|
00002630  34 2c 4c 53 52 20 23 31  0d 10 a4 36 20 20 20 20  |4,LSR #1...6    |
00002640  20 20 42 49 43 20 20 20  20 20 52 63 75 72 77 6f  |  BIC     Rcurwo|
00002650  72 64 2c 52 63 75 72 77  6f 72 64 2c 52 31 34 2c  |rd,Rcurword,R14,|
00002660  4c 53 4c 20 23 73 68 69  66 74 6c 65 66 74 0d 10  |LSL #shiftleft..|
00002670  ae 37 20 20 20 20 20 20  84 52 20 20 20 20 20 52  |.7      .R     R|
00002680  63 75 72 77 6f 72 64 2c  52 63 75 72 77 6f 72 64  |curword,Rcurword|
00002690  2c 52 64 61 74 61 2c 4c  53 4c 20 23 73 68 69 66  |,Rdata,LSL #shif|
000026a0  74 6c 65 66 74 0d 10 b8  39 20 20 20 20 20 20 42  |tleft...9      B|
000026b0  49 43 20 20 20 20 20 52  6e 65 78 74 77 6f 72 64  |IC     Rnextword|
000026c0  2c 52 6e 65 78 74 77 6f  72 64 2c 52 31 34 2c 4c  |,Rnextword,R14,L|
000026d0  53 52 20 23 73 68 69 66  74 72 69 67 68 74 0d 10  |SR #shiftright..|
000026e0  c2 3a 20 20 20 20 20 20  84 52 20 20 20 20 20 52  |.:      .R     R|
000026f0  6e 65 78 74 77 6f 72 64  2c 52 6e 65 78 74 77 6f  |nextword,Rnextwo|
00002700  72 64 2c 52 64 61 74 61  2c 4c 53 52 20 23 73 68  |rd,Rdata,LSR #sh|
00002710  69 66 74 72 69 67 68 74  0d 10 cc 0b 20 20 20 20  |iftright....    |
00002720  20 20 5d 0d 10 d6 0c 20  20 20 20 ed 20 4d 25 0d  |  ]....    . M%.|
00002730  10 e0 12 20 20 20 20 5b  4f 50 54 20 70 61 73 73  |...    [OPT pass|
00002740  25 0d 10 ea 05 20 0d 10  f4 1a 20 20 20 20 53 54  |%.... ....    ST|
00002750  4d 49 41 20 20 20 52 39  2c 7b 52 34 2d 52 38 7d  |MIA   R9,{R4-R8}|
00002760  0d 10 fe 1a 20 20 20 20  41 44 44 20 20 20 20 20  |....    ADD     |
00002770  52 39 2c 52 39 2c 23 33  32 30 0d 11 08 04 0d 11  |R9,R9,#320......|
00002780  12 1a 20 20 20 20 53 55  42 53 20 20 20 20 52 31  |..    SUBS    R1|
00002790  31 2c 52 31 31 2c 23 31  0d 11 1c 25 20 20 20 20  |1,R11,#1...%    |
000027a0  42 47 54 20 20 20 20 20  70 6c 6f 74 73 70 72 69  |BGT     plotspri|
000027b0  74 65 61 63 6f 64 65 28  4e 25 2c 32 29 0d 11 26  |teacode(N%,2)..&|
000027c0  04 0d 11 30 21 20 20 20  20 4c 44 4d 46 44 20 20  |...0!    LDMFD  |
000027d0  20 52 31 33 21 2c 7b 52  30 2d 52 31 32 2c 50 43  | R13!,{R0-R12,PC|
000027e0  7d 5e 0d 11 3a 04 0d 11  44 09 20 20 20 20 5d 0d  |}^..:...D.    ].|
000027f0  11 4e 0a 20 20 ed 20 4e  25 0d 11 58 10 20 20 5b  |.N.  . N%..X.  [|
00002800  4f 50 54 20 70 61 73 73  25 0d 11 62 05 20 0d 11  |OPT pass%..b. ..|
00002810  6c 0b 20 20 2e 70 73 61  33 0d 11 76 40 20 20 4d  |l.  .psa3..v@  M|
00002820  4f 56 20 20 20 20 20 52  31 30 2c 52 33 20 20 20  |OV     R10,R3   |
00002830  20 20 20 20 20 20 20 20  20 20 20 5c 20 52 31 30  |           \ R10|
00002840  20 3d 20 61 64 64 72 65  73 73 20 6f 66 20 73 70  | = address of sp|
00002850  72 69 74 65 20 64 61 74  61 0d 11 80 05 20 0d 11  |rite data.... ..|
00002860  8a 39 20 20 4d 4f 56 20  20 20 20 20 52 31 31 2c  |.9  MOV     R11,|
00002870  52 32 2c 41 53 52 20 23  33 20 20 20 20 20 20 20  |R2,ASR #3       |
00002880  5c 20 52 31 31 20 3d 20  6e 75 6d 62 65 72 20 6f  |\ R11 = number o|
00002890  66 20 6c 69 6e 65 73 0d  11 94 05 20 0d 11 9e 17  |f lines.... ....|
000028a0  20 20 53 55 42 20 20 20  20 20 52 30 2c 52 30 2c  |  SUB     R0,R0,|
000028b0  23 31 36 0d 11 a8 18 20  20 53 55 42 20 20 20 20  |#16....  SUB    |
000028c0  20 52 30 2c 52 30 2c 23  31 36 30 0d 11 b2 1a 20  | R0,R0,#160.... |
000028d0  20 4d 4f 56 20 20 20 20  20 52 30 2c 52 30 2c 41  | MOV     R0,R0,A|
000028e0  53 52 20 23 31 0d 11 bc  1a 20 20 4d 4f 56 20 20  |SR #1....  MOV  |
000028f0  20 20 20 52 31 2c 52 31  2c 41 53 52 20 23 33 0d  |   R1,R1,ASR #3.|
00002900  11 c6 37 20 20 53 55 42  20 20 20 20 20 52 31 2c  |..7  SUB     R1,|
00002910  52 31 2c 52 31 31 2c 41  53 52 20 23 31 20 20 20  |R1,R11,ASR #1   |
00002920  20 5c 20 67 65 74 20 74  6f 70 20 6c 65 66 74 20  | \ get top left |
00002930  63 6f 72 6e 65 72 0d 11  d0 04 0d 11 da 13 20 20  |corner........  |
00002940  43 4d 4e 20 20 20 20 20  52 30 2c 23 31 0d 11 e4  |CMN     R0,#1...|
00002950  14 20 20 43 4d 4e 47 54  20 20 20 52 31 2c 52 31  |.  CMNGT   R1,R1|
00002960  31 0d 11 ee 1f 20 20 4c  44 4d 4c 45 46 44 20 52  |1....  LDMLEFD R|
00002970  31 33 21 2c 7b 52 30 2d  52 31 32 2c 50 43 7d 5e  |13!,{R0-R12,PC}^|
00002980  0d 11 f8 18 20 20 43 4d  50 20 20 20 20 20 52 30  |....  CMP     R0|
00002990  2c 23 36 34 30 2d 33 32  0d 12 02 17 20 20 43 4d  |,#640-32....  CM|
000029a0  50 4c 45 20 20 20 52 31  2c 23 32 35 36 2d 31 0d  |PLE   R1,#256-1.|
000029b0  12 0c 40 20 20 4c 44 4d  47 54 46 44 20 52 31 33  |..@  LDMGTFD R13|
000029c0  21 2c 7b 52 30 2d 52 31  32 2c 50 43 7d 5e 20 20  |!,{R0-R12,PC}^  |
000029d0  20 5c 20 64 69 73 63 61  72 64 20 6f 75 74 20 6f  | \ discard out o|
000029e0  66 20 72 61 6e 67 65 20  73 70 72 69 74 65 73 0d  |f range sprites.|
000029f0  12 16 04 0d 12 20 13 20  20 43 4d 50 20 20 20 20  |..... .  CMP    |
00002a00  20 52 31 2c 23 30 0d 12  2a 18 20 20 41 44 44 4c  | R1,#0..*.  ADDL|
00002a10  54 20 20 20 52 31 31 2c  52 31 31 2c 52 31 0d 12  |T   R11,R11,R1..|
00002a20  34 1f 20 20 53 55 42 4c  54 20 20 20 52 31 30 2c  |4.  SUBLT   R10,|
00002a30  52 31 30 2c 52 31 2c 4c  53 4c 20 23 34 0d 12 3e  |R10,R1,LSL #4..>|
00002a40  2c 20 20 4d 4f 56 4c 54  20 20 20 52 31 2c 23 30  |,  MOVLT   R1,#0|
00002a50  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 5c  |               \|
00002a60  20 74 72 69 6d 20 74 6f  70 0d 12 48 04 0d 12 52  | trim top..H...R|
00002a70  18 20 20 52 53 42 20 20  20 20 20 52 34 2c 52 31  |.  RSB     R4,R1|
00002a80  2c 23 32 35 36 0d 12 5c  14 20 20 43 4d 50 20 20  |,#256..\.  CMP  |
00002a90  20 20 20 52 31 31 2c 52  34 0d 12 66 2f 20 20 4d  |   R11,R4..f/  M|
00002aa0  4f 56 47 54 20 20 20 52  31 31 2c 52 34 20 20 20  |OVGT   R11,R4   |
00002ab0  20 20 20 20 20 20 20 20  20 20 20 5c 20 74 72 69  |           \ tri|
00002ac0  6d 20 62 6f 74 74 6f 6d  0d 12 70 04 0d 12 7a 1f  |m bottom..p...z.|
00002ad0  20 20 4c 44 52 20 20 20  20 20 52 39 2c 70 6c 6f  |  LDR     R9,plo|
00002ae0  74 73 63 72 65 65 6e 62  61 73 65 0d 12 84 1d 20  |tscreenbase.... |
00002af0  20 41 44 44 20 20 20 20  20 52 39 2c 52 39 2c 52  | ADD     R9,R9,R|
00002b00  31 2c 4c 53 4c 20 23 38  0d 12 8e 1d 20 20 41 44  |1,LSL #8....  AD|
00002b10  44 20 20 20 20 20 52 39  2c 52 39 2c 52 31 2c 4c  |D     R9,R9,R1,L|
00002b20  53 4c 20 23 36 0d 12 98  16 20 20 42 49 43 20 20  |SL #6....  BIC  |
00002b30  20 20 20 52 31 2c 52 30  2c 23 37 0d 12 a2 4e 20  |   R1,R0,#7...N |
00002b40  20 41 44 44 20 20 20 20  20 52 39 2c 52 39 2c 52  | ADD     R9,R9,R|
00002b50  31 2c 4c 53 52 20 23 31  20 20 20 20 20 5c 20 52  |1,LSR #1     \ R|
00002b60  39 20 3d 20 61 64 64 72  65 73 73 20 28 69 6e 20  |9 = address (in |
00002b70  73 63 72 65 65 6e 29 20  74 6f 20 62 65 67 69 6e  |screen) to begin|
00002b80  20 70 6c 6f 74 74 69 6e  67 0d 12 ac 05 20 0d 12  | plotting.... ..|
00002b90  b6 18 20 20 4d 4f 56 20  20 20 20 20 52 31 32 2c  |..  MOV     R12,|
00002ba0  23 25 31 30 30 30 0d 12  c0 20 20 20 84 52 20 20  |#%1000...   .R  |
00002bb0  20 20 20 52 31 32 2c 52  31 32 2c 52 31 32 2c 4c  |   R12,R12,R12,L|
00002bc0  53 4c 20 23 31 36 0d 12  ca 1f 20 20 84 52 20 20  |SL #16....  .R  |
00002bd0  20 20 20 52 31 32 2c 52  31 32 2c 52 31 32 2c 4c  |   R12,R12,R12,L|
00002be0  53 4c 20 23 38 0d 12 d4  48 20 20 84 52 20 20 20  |SL #8...H  .R   |
00002bf0  20 20 52 31 32 2c 52 31  32 2c 52 31 32 2c 4c 53  |  R12,R12,R12,LS|
00002c00  4c 20 23 34 20 20 5c 20  52 31 32 20 3d 20 84 20  |L #4  \ R12 = . |
00002c10  6d 61 73 6b 20 74 6f 20  69 73 6f 6c 61 74 65 20  |mask to isolate |
00002c20  27 6e 6f 20 70 6c 6f 74  27 20 62 69 74 0d 12 de  |'no plot' bit...|
00002c30  04 0d 12 e8 14 20 20 80  20 20 20 20 20 52 31 2c  |.....  .     R1,|
00002c40  52 30 2c 23 37 0d 12 f2  1a 20 20 41 44 52 20 20  |R0,#7....  ADR  |
00002c50  20 20 20 52 30 2c 63 61  73 65 6c 69 73 74 33 0d  |   R0,caselist3.|
00002c60  12 fc 52 20 20 4c 44 52  20 20 20 20 20 52 30 2c  |..R  LDR     R0,|
00002c70  5b 52 30 2c 52 31 2c 4c  53 4c 20 23 32 5d 20 20  |[R0,R1,LSL #2]  |
00002c80  20 5c 20 52 30 20 3d 20  61 64 64 72 65 73 73 20  | \ R0 = address |
00002c90  6f 66 20 63 6f 64 65 20  66 6f 72 20 70 61 72 74  |of code for part|
00002ca0  69 63 75 6c 61 72 20 73  68 69 66 74 20 63 61 73  |icular shift cas|
00002cb0  65 0d 13 06 16 20 20 41  44 52 20 20 20 20 20 52  |e....  ADR     R|
00002cc0  31 2c 62 61 73 65 33 0d  13 10 16 20 20 41 44 44  |1,base3....  ADD|
00002cd0  20 20 20 20 20 50 43 2c  52 30 2c 52 31 0d 13 1a  |     PC,R0,R1...|
00002ce0  04 0d 13 24 10 20 20 2e  63 61 73 65 6c 69 73 74  |...$.  .caselist|
00002cf0  33 0d 13 2e 07 20 20 5d  0d 13 38 10 20 20 e3 20  |3....  ]..8.  . |
00002d00  4e 25 3d 30 20 b8 20 37  0d 13 42 12 20 20 20 20  |N%=0 . 7..B.    |
00002d10  5b 4f 50 54 20 70 61 73  73 25 0d 13 4c 2b 20 20  |[OPT pass%..L+  |
00002d20  20 20 45 51 55 44 20 20  20 20 70 6c 6f 74 73 70  |  EQUD    plotsp|
00002d30  72 69 74 65 61 63 6f 64  65 28 4e 25 2c 33 29 2d  |riteacode(N%,3)-|
00002d40  62 61 73 65 33 0d 13 56  09 20 20 20 20 5d 0d 13  |base3..V.    ]..|
00002d50  60 0a 20 20 ed 20 4e 25  0d 13 6a 10 20 20 5b 4f  |`.  . N%..j.  [O|
00002d60  50 54 20 70 61 73 73 25  0d 13 74 0c 20 20 2e 62  |PT pass%..t.  .b|
00002d70  61 73 65 33 0d 13 7e 07  20 20 5d 0d 13 88 10 20  |ase3..~.  ].... |
00002d80  20 e3 20 4e 25 3d 30 20  b8 20 37 0d 13 92 19 20  | . N%=0 . 7.... |
00002d90  20 20 20 73 68 69 66 74  6c 65 66 74 20 20 3d 20  |   shiftleft  = |
00002da0  4e 25 2a 34 0d 13 9c 1c  20 20 20 20 73 68 69 66  |N%*4....    shif|
00002db0  74 72 69 67 68 74 20 3d  20 33 32 2d 4e 25 2a 34  |tright = 32-N%*4|
00002dc0  0d 13 a6 35 20 20 20 20  5b 4f 50 54 20 70 61 73  |...5    [OPT pas|
00002dd0  73 25 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |s%              |
00002de0  20 20 5c 20 64 6f 20 38  20 63 6f 6d 70 69 6c 61  |  \ do 8 compila|
00002df0  74 69 6f 6e 73 0d 13 b0  05 20 0d 13 ba 39 20 20  |tions.... ...9  |
00002e00  20 20 2e 70 6c 6f 74 73  70 72 69 74 65 61 63 6f  |  .plotspriteaco|
00002e10  64 65 28 4e 25 2c 33 29  20 20 20 20 5c 20 64 6f  |de(N%,3)    \ do|
00002e20  75 62 6c 65 73 20 61 73  20 6c 6f 6f 70 20 73 74  |ubles as loop st|
00002e30  61 72 74 0d 13 c4 1b 20  20 20 20 4c 44 4d 49 41  |art....    LDMIA|
00002e40  20 20 20 52 31 30 2c 7b  52 30 2d 52 33 7d 0d 13  |   R10,{R0-R3}..|
00002e50  ce 1c 20 20 20 20 41 44  44 20 20 20 20 20 52 31  |..    ADD     R1|
00002e60  30 2c 52 31 30 2c 23 31  32 38 0d 13 d8 1a 20 20  |0,R10,#128....  |
00002e70  20 20 4c 44 4d 49 41 20  20 20 52 39 2c 7b 52 34  |  LDMIA   R9,{R4|
00002e80  2d 52 38 7d 0d 13 e2 04  0d 13 ec 09 20 20 20 20  |-R8}........    |
00002e90  5d 0d 13 f6 12 20 20 20  20 e3 20 4d 25 3d 30 20  |]....    . M%=0 |
00002ea0  b8 20 31 0d 14 00 16 20  20 20 20 20 20 52 64 61  |. 1....      Rda|
00002eb0  74 61 20 3d 20 4d 25 2a  32 0d 14 0a 19 20 20 20  |ta = M%*2....   |
00002ec0  20 20 20 52 63 75 72 77  6f 72 64 20 3d 20 4d 25  |   Rcurword = M%|
00002ed0  2b 34 0d 14 14 1a 20 20  20 20 20 20 52 6e 65 78  |+4....      Rnex|
00002ee0  74 77 6f 72 64 20 3d 20  4d 25 2b 35 0d 14 1e 35  |tword = M%+5...5|
00002ef0  20 20 20 20 20 20 5b 4f  50 54 20 70 61 73 73 25  |      [OPT pass%|
00002f00  20 20 20 20 20 20 20 20  20 20 20 20 20 20 5c 20  |              \ |
00002f10  66 6f 72 20 66 6f 75 72  20 77 6f 72 64 73 2e 2e  |for four words..|
00002f20  2e 0d 14 28 05 20 0d 14  32 27 20 20 20 20 20 20  |...(. ..2'      |
00002f30  84 52 20 20 20 20 20 52  31 34 2c 52 64 61 74 61  |.R     R14,Rdata|
00002f40  2c 52 64 61 74 61 2c 4c  53 4c 20 23 31 0d 14 3c  |,Rdata,LSL #1..<|
00002f50  1b 20 20 20 20 20 20 80  20 20 20 20 20 52 31 34  |.      .     R14|
00002f60  2c 52 31 32 2c 52 31 34  0d 14 46 23 20 20 20 20  |,R12,R14..F#    |
00002f70  20 20 84 52 20 20 20 20  20 52 31 34 2c 52 31 34  |  .R     R14,R14|
00002f80  2c 52 31 34 2c 4c 53 52  20 23 32 0d 14 50 23 20  |,R14,LSR #2..P# |
00002f90  20 20 20 20 20 84 52 20  20 20 20 20 52 31 34 2c  |     .R     R14,|
00002fa0  52 31 34 2c 52 31 34 2c  4c 53 52 20 23 31 0d 14  |R14,R14,LSR #1..|
00002fb0  5a 36 20 20 20 20 20 20  42 49 43 20 20 20 20 20  |Z6      BIC     |
00002fc0  52 63 75 72 77 6f 72 64  2c 52 63 75 72 77 6f 72  |Rcurword,Rcurwor|
00002fd0  64 2c 52 31 34 2c 4c 53  4c 20 23 73 68 69 66 74  |d,R14,LSL #shift|
00002fe0  6c 65 66 74 0d 14 64 37  20 20 20 20 20 20 84 52  |left..d7      .R|
00002ff0  20 20 20 20 20 52 63 75  72 77 6f 72 64 2c 52 63  |     Rcurword,Rc|
00003000  75 72 77 6f 72 64 2c 52  64 61 74 61 2c 4c 53 4c  |urword,Rdata,LSL|
00003010  20 23 73 68 69 66 74 6c  65 66 74 0d 14 6e 39 20  | #shiftleft..n9 |
00003020  20 20 20 20 20 42 49 43  20 20 20 20 20 52 6e 65  |     BIC     Rne|
00003030  78 74 77 6f 72 64 2c 52  6e 65 78 74 77 6f 72 64  |xtword,Rnextword|
00003040  2c 52 31 34 2c 4c 53 52  20 23 73 68 69 66 74 72  |,R14,LSR #shiftr|
00003050  69 67 68 74 0d 14 78 3a  20 20 20 20 20 20 84 52  |ight..x:      .R|
00003060  20 20 20 20 20 52 6e 65  78 74 77 6f 72 64 2c 52  |     Rnextword,R|
00003070  6e 65 78 74 77 6f 72 64  2c 52 64 61 74 61 2c 4c  |nextword,Rdata,L|
00003080  53 52 20 23 73 68 69 66  74 72 69 67 68 74 0d 14  |SR #shiftright..|
00003090  82 0b 20 20 20 20 20 20  5d 0d 14 8c 0c 20 20 20  |..      ]....   |
000030a0  20 ed 20 4d 25 0d 14 96  12 20 20 20 20 5b 4f 50  | . M%....    [OP|
000030b0  54 20 70 61 73 73 25 0d  14 a0 05 20 0d 14 aa 1a  |T pass%.... ....|
000030c0  20 20 20 20 53 54 4d 49  41 20 20 20 52 39 2c 7b  |    STMIA   R9,{|
000030d0  52 34 2d 52 38 7d 0d 14  b4 1a 20 20 20 20 41 44  |R4-R8}....    AD|
000030e0  44 20 20 20 20 20 52 39  2c 52 39 2c 23 33 32 30  |D     R9,R9,#320|
000030f0  0d 14 be 04 0d 14 c8 1a  20 20 20 20 53 55 42 53  |........    SUBS|
00003100  20 20 20 20 52 31 31 2c  52 31 31 2c 23 31 0d 14  |    R11,R11,#1..|
00003110  d2 25 20 20 20 20 42 47  54 20 20 20 20 20 70 6c  |.%    BGT     pl|
00003120  6f 74 73 70 72 69 74 65  61 63 6f 64 65 28 4e 25  |otspriteacode(N%|
00003130  2c 33 29 0d 14 dc 04 0d  14 e6 21 20 20 20 20 4c  |,3).......!    L|
00003140  44 4d 46 44 20 20 20 52  31 33 21 2c 7b 52 30 2d  |DMFD   R13!,{R0-|
00003150  52 31 32 2c 50 43 7d 5e  0d 14 f0 04 0d 14 fa 09  |R12,PC}^........|
00003160  20 20 20 20 5d 0d 15 04  0a 20 20 ed 20 4e 25 0d  |    ]....  . N%.|
00003170  15 0e 10 20 20 5b 4f 50  54 20 70 61 73 73 25 0d  |...  [OPT pass%.|
00003180  15 18 05 20 0d 15 22 15  20 20 2e 70 6c 6f 74 73  |... ..".  .plots|
00003190  63 72 65 65 6e 62 61 73  65 0d 15 2c 0f 20 20 45  |creenbase..,.  E|
000031a0  51 55 44 20 20 20 20 30  0d 15 36 04 0d 15 40 15  |QUD    0..6...@.|
000031b0  20 20 2e 73 70 72 69 74  65 66 69 6c 65 62 61 73  |  .spritefilebas|
000031c0  65 0d 15 4a 0f 20 20 45  51 55 44 20 20 20 20 30  |e..J.  EQUD    0|
000031d0  0d 15 54 04 0d 15 5e 2e  20 20 5c 20 45 6d 70 74  |..T...^.  \ Empt|
000031e0  79 20 72 6f 75 74 69 6e  65 20 66 6f 72 20 74 69  |y routine for ti|
000031f0  6d 69 6e 67 20 74 65 73  74 20 70 75 72 70 6f 73  |ming test purpos|
00003200  65 73 0d 15 68 0b 20 20  2e 6e 75 6c 6c 0d 15 72  |es..h.  .null..r|
00003210  14 20 20 4d 4f 56 20 20  20 20 20 50 43 2c 52 31  |.  MOV     PC,R1|
00003220  34 0d 15 7c 04 0d 15 86  05 20 0d 15 90 2e 20 20  |4..|..... ....  |
00003230  5c 20 46 69 6c 6c 20 73  63 72 65 65 6e 20 61 72  |\ Fill screen ar|
00003240  65 61 20 77 69 74 68 20  63 6f 6c 6f 75 72 20 62  |ea with colour b|
00003250  61 6e 64 73 20 65 74 63  0d 15 9a 12 20 20 2e 63  |ands etc....  .c|
00003260  6c 65 61 72 73 63 72 65  65 6e 0d 15 a4 1e 20 20  |learscreen....  |
00003270  53 54 4d 46 44 20 20 20  52 31 33 21 2c 7b 52 30  |STMFD   R13!,{R0|
00003280  2d 52 33 2c 52 31 34 7d  0d 15 ae 04 0d 15 b8 13  |-R3,R14}........|
00003290  20 20 4d 4f 56 20 20 20  20 20 52 30 2c 23 34 0d  |  MOV     R0,#4.|
000032a0  15 c2 13 20 20 4d 4f 56  20 20 20 20 20 52 31 2c  |...  MOV     R1,|
000032b0  23 30 0d 15 cc 18 20 20  4c 44 52 20 20 20 20 20  |#0....  LDR     |
000032c0  52 33 2c 63 75 72 72 65  70 71 0d 15 d6 04 0d 15  |R3,currepq......|
000032d0  e0 13 20 20 43 4d 50 20  20 20 20 20 52 33 2c 23  |..  CMP     R3,#|
000032e0  30 0d 15 ea 12 20 20 ec  51 20 20 20 52 32 2c 23  |0....  .Q   R2,#|
000032f0  32 35 36 0d 15 f4 19 20  20 42 4c 45 51 20 20 20  |256....  BLEQ   |
00003300  20 66 69 6c 6c 73 65 63  74 69 6f 6e 0d 15 fe 13  | fillsection....|
00003310  20 20 43 4d 50 20 20 20  20 20 52 33 2c 23 31 0d  |  CMP     R3,#1.|
00003320  16 08 12 20 20 ec 51 20  20 20 52 32 2c 23 31 32  |...  .Q   R2,#12|
00003330  38 0d 16 12 19 20 20 42  4c 45 51 20 20 20 20 66  |8....  BLEQ    f|
00003340  69 6c 6c 73 65 63 74 69  6f 6e 0d 16 1c 13 20 20  |illsection....  |
00003350  43 4d 50 20 20 20 20 20  52 33 2c 23 32 0d 16 26  |CMP     R3,#2..&|
00003360  11 20 20 ec 51 20 20 20  52 32 2c 23 36 34 0d 16  |.  .Q   R2,#64..|
00003370  30 1d 20 20 42 4c 45 51  20 20 20 20 66 69 6c 6c  |0.  BLEQ    fill|
00003380  73 65 63 74 69 6f 6e 68  61 6c 66 0d 16 3a 13 20  |sectionhalf..:. |
00003390  20 43 4d 50 20 20 20 20  20 52 33 2c 23 33 0d 16  | CMP     R3,#3..|
000033a0  44 11 20 20 ec 51 20 20  20 52 32 2c 23 33 32 0d  |D.  .Q   R2,#32.|
000033b0  16 4e 20 20 20 42 4c 45  51 20 20 20 20 66 69 6c  |.N   BLEQ    fil|
000033c0  6c 73 65 63 74 69 6f 6e  71 75 61 72 74 65 72 0d  |lsectionquarter.|
000033d0  16 58 04 0d 16 62 1e 20  20 4c 44 4d 46 44 20 20  |.X...b.  LDMFD  |
000033e0  20 52 31 33 21 2c 7b 52  30 2d 52 33 2c 50 43 7d  | R13!,{R0-R3,PC}|
000033f0  5e 0d 16 6c 04 0d 16 76  0e 20 20 2e 63 75 72 72  |^..l...v.  .curr|
00003400  65 70 71 0d 16 80 0f 20  20 45 51 55 44 20 20 20  |epq....  EQUD   |
00003410  20 30 0d 16 8a 04 0d 16  94 2d 20 20 5c 20 46 69  | 0.......-  \ Fi|
00003420  6c 6c 20 73 63 72 65 65  6e 20 61 72 65 61 20 77  |ll screen area w|
00003430  69 74 68 20 6c 6f 74 73  20 6f 66 20 73 70 72 69  |ith lots of spri|
00003440  74 65 73 0d 16 9e 11 20  20 2e 72 65 70 65 61 74  |tes....  .repeat|
00003450  64 61 74 61 0d 16 a8 1f  20 20 53 54 4d 46 44 20  |data....  STMFD |
00003460  20 20 52 31 33 21 2c 7b  52 30 2d 52 31 32 2c 52  |  R13!,{R0-R12,R|
00003470  31 34 7d 0d 16 b2 04 0d  16 bc 13 20 20 4d 4f 56  |14}........  MOV|
00003480  20 20 20 20 20 52 30 2c  23 34 0d 16 c6 13 20 20  |     R0,#4....  |
00003490  4d 4f 56 20 20 20 20 20  52 31 2c 23 30 0d 16 d0  |MOV     R1,#0...|
000034a0  18 20 20 4c 44 52 20 20  20 20 20 52 33 2c 63 75  |.  LDR     R3,cu|
000034b0  72 72 65 70 71 0d 16 da  04 0d 16 e4 13 20 20 43  |rrepq........  C|
000034c0  4d 50 20 20 20 20 20 52  33 2c 23 31 0d 16 ee 12  |MP     R3,#1....|
000034d0  20 20 42 45 51 20 20 20  20 20 72 65 70 31 0d 16  |  BEQ     rep1..|
000034e0  f8 13 20 20 43 4d 50 20  20 20 20 20 52 33 2c 23  |..  CMP     R3,#|
000034f0  32 0d 17 02 12 20 20 42  45 51 20 20 20 20 20 72  |2....  BEQ     r|
00003500  65 70 32 0d 17 0c 13 20  20 43 4d 50 20 20 20 20  |ep2....  CMP    |
00003510  20 52 33 2c 23 33 0d 17  16 12 20 20 42 45 51 20  | R3,#3....  BEQ |
00003520  20 20 20 20 72 65 70 33  0d 17 20 04 0d 17 2a 1f  |    rep3.. ...*.|
00003530  20 20 4c 44 4d 46 44 20  20 20 52 31 33 21 2c 7b  |  LDMFD   R13!,{|
00003540  52 30 2d 52 31 32 2c 50  43 7d 5e 0d 17 34 04 0d  |R0-R12,PC}^..4..|
00003550  17 3e 04 0d 17 48 30 20  20 5c 20 46 69 6c 6c 20  |.>...H0  \ Fill |
00003560  73 65 63 74 69 6f 6e 20  6f 66 20 73 63 72 65 65  |section of scree|
00003570  6e 20 77 69 74 68 20 67  69 76 65 6e 20 6e 69 62  |n with given nib|
00003580  62 6c 65 0d 17 52 1b 20  20 5c 20 52 30 20 3d 20  |ble..R.  \ R0 = |
00003590  57 6f 72 64 20 74 6f 20  69 6e 73 65 72 74 0d 17  |Word to insert..|
000035a0  5c 1d 20 20 5c 20 52 31  20 3d 20 4c 69 6e 65 20  |\.  \ R1 = Line |
000035b0  74 6f 20 73 74 61 72 74  20 61 74 0d 17 66 1c 20  |to start at..f. |
000035c0  20 5c 20 52 32 20 3d 20  4e 75 6d 62 65 72 20 6f  | \ R2 = Number o|
000035d0  66 20 6c 69 6e 65 73 0d  17 70 12 20 20 2e 66 69  |f lines..p.  .fi|
000035e0  6c 6c 73 65 63 74 69 6f  6e 0d 17 7a 1f 20 20 53  |llsection..z.  S|
000035f0  54 4d 46 44 20 20 20 52  31 33 21 2c 7b 52 30 2d  |TMFD   R13!,{R0-|
00003600  52 31 32 2c 52 31 34 7d  0d 17 84 31 20 20 53 54  |R12,R14}...1  ST|
00003610  52 20 20 20 20 20 52 31  33 2c 72 31 33 73 74 6f  |R     R13,r13sto|
00003620  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 5c  |               \|
00003630  20 73 61 76 65 20 52 31  33 0d 17 8e 05 20 0d 17  | save R13.... ..|
00003640  98 14 20 20 4d 4f 56 20  20 20 20 20 52 31 34 2c  |..  MOV     R14,|
00003650  52 32 0d 17 a2 04 0d 17  ac 20 20 20 4c 44 52 20  |R2.......   LDR |
00003660  20 20 20 20 52 31 33 2c  70 6c 6f 74 73 63 72 65  |    R13,plotscre|
00003670  65 6e 62 61 73 65 0d 17  b6 1f 20 20 41 44 44 20  |enbase....  ADD |
00003680  20 20 20 20 52 31 33 2c  52 31 33 2c 52 31 2c 4c  |    R13,R13,R1,L|
00003690  53 4c 20 23 38 0d 17 c0  48 20 20 41 44 44 20 20  |SL #8...H  ADD  |
000036a0  20 20 20 52 31 33 2c 52  31 33 2c 52 31 2c 4c 53  |   R13,R13,R1,LS|
000036b0  4c 20 23 36 20 20 20 20  20 20 20 20 5c 20 61 64  |L #6        \ ad|
000036c0  64 72 65 73 73 20 28 69  6e 20 73 63 72 65 65 6e  |dress (in screen|
000036d0  29 20 74 6f 20 73 74 61  72 74 20 61 74 0d 17 ca  |) to start at...|
000036e0  05 20 0d 17 d4 18 20 20  80 20 20 20 20 20 52 30  |. ....  .     R0|
000036f0  2c 52 30 2c 23 25 31 31  31 31 0d 17 de 1c 20 20  |,R0,#%1111....  |
00003700  84 52 20 20 20 20 20 52  30 2c 52 30 2c 52 30 2c  |.R     R0,R0,R0,|
00003710  4c 53 4c 20 23 34 0d 17  e8 1c 20 20 84 52 20 20  |LSL #4....  .R  |
00003720  20 20 20 52 30 2c 52 30  2c 52 30 2c 4c 53 4c 20  |   R0,R0,R0,LSL |
00003730  23 38 0d 17 f2 38 20 20  84 52 20 20 20 20 20 52  |#8...8  .R     R|
00003740  30 2c 52 30 2c 52 30 2c  4c 53 4c 20 23 31 36 20  |0,R0,R0,LSL #16 |
00003750  20 20 20 20 20 20 20 20  5c 20 65 78 70 61 6e 64  |        \ expand|
00003760  20 69 6e 74 6f 20 77 6f  72 64 0d 17 fc 04 0d 18  | into word......|
00003770  06 13 20 20 4d 4f 56 20  20 20 20 20 52 31 2c 52  |..  MOV     R1,R|
00003780  30 0d 18 10 13 20 20 4d  4f 56 20 20 20 20 20 52  |0....  MOV     R|
00003790  32 2c 52 30 0d 18 1a 13  20 20 4d 4f 56 20 20 20  |2,R0....  MOV   |
000037a0  20 20 52 33 2c 52 30 0d  18 24 13 20 20 4d 4f 56  |  R3,R0..$.  MOV|
000037b0  20 20 20 20 20 52 34 2c  52 30 0d 18 2e 13 20 20  |     R4,R0....  |
000037c0  4d 4f 56 20 20 20 20 20  52 35 2c 52 30 0d 18 38  |MOV     R5,R0..8|
000037d0  13 20 20 4d 4f 56 20 20  20 20 20 52 36 2c 52 30  |.  MOV     R6,R0|
000037e0  0d 18 42 13 20 20 4d 4f  56 20 20 20 20 20 52 37  |..B.  MOV     R7|
000037f0  2c 52 30 0d 18 4c 13 20  20 4d 4f 56 20 20 20 20  |,R0..L.  MOV    |
00003800  20 52 38 2c 52 30 0d 18  56 13 20 20 4d 4f 56 20  | R8,R0..V.  MOV |
00003810  20 20 20 20 52 39 2c 52  30 0d 18 60 14 20 20 4d  |    R9,R0..`.  M|
00003820  4f 56 20 20 20 20 20 52  31 30 2c 52 30 0d 18 6a  |OV     R10,R0..j|
00003830  3f 20 20 4d 4f 56 20 20  20 20 20 52 31 31 2c 52  |?  MOV     R11,R|
00003840  30 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |0               |
00003850  20 20 20 20 5c 20 73 65  74 20 72 65 67 69 73 74  |    \ set regist|
00003860  65 72 73 20 66 6f 72 20  66 69 6c 6c 0d 18 74 04  |ers for fill..t.|
00003870  0d 18 7e 0d 20 20 2e 66  73 6c 6f 6f 70 0d 18 88  |..~.  .fsloop...|
00003880  31 20 20 20 20 53 54 4d  49 41 20 20 20 52 31 33  |1    STMIA   R13|
00003890  21 2c 7b 52 30 2d 52 31  31 7d 20 20 20 20 20 20  |!,{R0-R11}      |
000038a0  20 20 20 20 5c 20 34 38  20 62 79 74 65 73 0d 18  |    \ 48 bytes..|
000038b0  92 31 20 20 20 20 53 54  4d 49 41 20 20 20 52 31  |.1    STMIA   R1|
000038c0  33 21 2c 7b 52 30 2d 52  31 31 7d 20 20 20 20 20  |3!,{R0-R11}     |
000038d0  20 20 20 20 20 5c 20 34  38 20 62 79 74 65 73 0d  |     \ 48 bytes.|
000038e0  18 9c 31 20 20 20 20 53  54 4d 49 41 20 20 20 52  |..1    STMIA   R|
000038f0  31 33 21 2c 7b 52 30 2d  52 31 31 7d 20 20 20 20  |13!,{R0-R11}    |
00003900  20 20 20 20 20 20 5c 20  34 38 20 62 79 74 65 73  |      \ 48 bytes|
00003910  0d 18 a6 31 20 20 20 20  53 54 4d 49 41 20 20 20  |...1    STMIA   |
00003920  52 31 33 21 2c 7b 52 30  2d 52 31 31 7d 20 20 20  |R13!,{R0-R11}   |
00003930  20 20 20 20 20 20 20 5c  20 34 38 20 62 79 74 65  |       \ 48 byte|
00003940  73 0d 18 b0 31 20 20 20  20 53 54 4d 49 41 20 20  |s...1    STMIA  |
00003950  20 52 31 33 21 2c 7b 52  30 2d 52 31 31 7d 20 20  | R13!,{R0-R11}  |
00003960  20 20 20 20 20 20 20 20  5c 20 34 38 20 62 79 74  |        \ 48 byt|
00003970  65 73 0d 18 ba 31 20 20  20 20 53 54 4d 49 41 20  |es...1    STMIA |
00003980  20 20 52 31 33 21 2c 7b  52 30 2d 52 31 31 7d 20  |  R13!,{R0-R11} |
00003990  20 20 20 20 20 20 20 20  20 5c 20 34 38 20 62 79  |         \ 48 by|
000039a0  74 65 73 0d 18 c4 31 20  20 20 20 53 54 4d 49 41  |tes...1    STMIA|
000039b0  20 20 20 52 31 33 21 2c  7b 52 30 2d 52 37 7d 20  |   R13!,{R0-R7} |
000039c0  20 20 20 20 20 20 20 20  20 20 5c 20 33 32 20 62  |          \ 32 b|
000039d0  79 74 65 73 0d 18 ce 04  0d 18 d8 1a 20 20 20 20  |ytes........    |
000039e0  53 55 42 53 20 20 20 20  52 31 34 2c 52 31 34 2c  |SUBS    R14,R14,|
000039f0  23 31 0d 18 e2 16 20 20  20 20 42 47 54 20 20 20  |#1....    BGT   |
00003a00  20 20 66 73 6c 6f 6f 70  0d 18 ec 04 0d 18 f6 34  |  fsloop.......4|
00003a10  20 20 4c 44 52 20 20 20  20 20 52 31 33 2c 72 31  |  LDR     R13,r1|
00003a20  33 73 74 6f 20 20 20 20  20 20 20 20 20 20 20 20  |3sto            |
00003a30  20 20 20 5c 20 72 65 63  6f 76 65 72 20 52 31 33  |   \ recover R13|
00003a40  0d 19 00 1f 20 20 4c 44  4d 46 44 20 20 20 52 31  |....  LDMFD   R1|
00003a50  33 21 2c 7b 52 30 2d 52  31 32 2c 50 43 7d 5e 0d  |3!,{R0-R12,PC}^.|
00003a60  19 0a 04 0d 19 14 35 20  20 5c 20 46 69 6c 6c 20  |......5  \ Fill |
00003a70  68 61 6c 66 20 73 65 63  74 69 6f 6e 20 6f 66 20  |half section of |
00003a80  73 63 72 65 65 6e 20 77  69 74 68 20 67 69 76 65  |screen with give|
00003a90  6e 20 6e 69 62 62 6c 65  0d 19 1e 1b 20 20 5c 20  |n nibble....  \ |
00003aa0  52 30 20 3d 20 57 6f 72  64 20 74 6f 20 69 6e 73  |R0 = Word to ins|
00003ab0  65 72 74 0d 19 28 1d 20  20 5c 20 52 31 20 3d 20  |ert..(.  \ R1 = |
00003ac0  4c 69 6e 65 20 74 6f 20  73 74 61 72 74 20 61 74  |Line to start at|
00003ad0  0d 19 32 1c 20 20 5c 20  52 32 20 3d 20 4e 75 6d  |..2.  \ R2 = Num|
00003ae0  62 65 72 20 6f 66 20 6c  69 6e 65 73 0d 19 3c 16  |ber of lines..<.|
00003af0  20 20 2e 66 69 6c 6c 73  65 63 74 69 6f 6e 68 61  |  .fillsectionha|
00003b00  6c 66 0d 19 46 1f 20 20  53 54 4d 46 44 20 20 20  |lf..F.  STMFD   |
00003b10  52 31 33 21 2c 7b 52 30  2d 52 31 32 2c 52 31 34  |R13!,{R0-R12,R14|
00003b20  7d 0d 19 50 31 20 20 53  54 52 20 20 20 20 20 52  |}..P1  STR     R|
00003b30  31 33 2c 72 31 33 73 74  6f 20 20 20 20 20 20 20  |13,r13sto       |
00003b40  20 20 20 20 20 20 20 20  5c 20 73 61 76 65 20 52  |        \ save R|
00003b50  31 33 0d 19 5a 05 20 0d  19 64 14 20 20 4d 4f 56  |13..Z. ..d.  MOV|
00003b60  20 20 20 20 20 52 31 34  2c 52 32 0d 19 6e 04 0d  |     R14,R2..n..|
00003b70  19 78 20 20 20 4c 44 52  20 20 20 20 20 52 31 33  |.x   LDR     R13|
00003b80  2c 70 6c 6f 74 73 63 72  65 65 6e 62 61 73 65 0d  |,plotscreenbase.|
00003b90  19 82 1f 20 20 41 44 44  20 20 20 20 20 52 31 33  |...  ADD     R13|
00003ba0  2c 52 31 33 2c 52 31 2c  4c 53 4c 20 23 38 0d 19  |,R13,R1,LSL #8..|
00003bb0  8c 48 20 20 41 44 44 20  20 20 20 20 52 31 33 2c  |.H  ADD     R13,|
00003bc0  52 31 33 2c 52 31 2c 4c  53 4c 20 23 36 20 20 20  |R13,R1,LSL #6   |
00003bd0  20 20 20 20 20 5c 20 61  64 64 72 65 73 73 20 28  |     \ address (|
00003be0  69 6e 20 73 63 72 65 65  6e 29 20 74 6f 20 73 74  |in screen) to st|
00003bf0  61 72 74 20 61 74 0d 19  96 05 20 0d 19 a0 18 20  |art at.... .... |
00003c00  20 80 20 20 20 20 20 52  30 2c 52 30 2c 23 25 31  | .     R0,R0,#%1|
00003c10  31 31 31 0d 19 aa 1c 20  20 84 52 20 20 20 20 20  |111....  .R     |
00003c20  52 30 2c 52 30 2c 52 30  2c 4c 53 4c 20 23 34 0d  |R0,R0,R0,LSL #4.|
00003c30  19 b4 1c 20 20 84 52 20  20 20 20 20 52 30 2c 52  |...  .R     R0,R|
00003c40  30 2c 52 30 2c 4c 53 4c  20 23 38 0d 19 be 38 20  |0,R0,LSL #8...8 |
00003c50  20 84 52 20 20 20 20 20  52 30 2c 52 30 2c 52 30  | .R     R0,R0,R0|
00003c60  2c 4c 53 4c 20 23 31 36  20 20 20 20 20 20 20 20  |,LSL #16        |
00003c70  20 5c 20 65 78 70 61 6e  64 20 69 6e 74 6f 20 77  | \ expand into w|
00003c80  6f 72 64 0d 19 c8 04 0d  19 d2 13 20 20 4d 4f 56  |ord........  MOV|
00003c90  20 20 20 20 20 52 31 2c  52 30 0d 19 dc 13 20 20  |     R1,R0....  |
00003ca0  4d 4f 56 20 20 20 20 20  52 32 2c 52 30 0d 19 e6  |MOV     R2,R0...|
00003cb0  13 20 20 4d 4f 56 20 20  20 20 20 52 33 2c 52 30  |.  MOV     R3,R0|
00003cc0  0d 19 f0 13 20 20 4d 4f  56 20 20 20 20 20 52 34  |....  MOV     R4|
00003cd0  2c 52 30 0d 19 fa 13 20  20 4d 4f 56 20 20 20 20  |,R0....  MOV    |
00003ce0  20 52 35 2c 52 30 0d 1a  04 13 20 20 4d 4f 56 20  | R5,R0....  MOV |
00003cf0  20 20 20 20 52 36 2c 52  30 0d 1a 0e 13 20 20 4d  |    R6,R0....  M|
00003d00  4f 56 20 20 20 20 20 52  37 2c 52 30 0d 1a 18 13  |OV     R7,R0....|
00003d10  20 20 4d 4f 56 20 20 20  20 20 52 38 2c 52 30 0d  |  MOV     R8,R0.|
00003d20  1a 22 13 20 20 4d 4f 56  20 20 20 20 20 52 39 2c  |.".  MOV     R9,|
00003d30  52 30 0d 1a 2c 14 20 20  4d 4f 56 20 20 20 20 20  |R0..,.  MOV     |
00003d40  52 31 30 2c 52 30 0d 1a  36 3f 20 20 4d 4f 56 20  |R10,R0..6?  MOV |
00003d50  20 20 20 20 52 31 31 2c  52 30 20 20 20 20 20 20  |    R11,R0      |
00003d60  20 20 20 20 20 20 20 20  20 20 20 20 20 5c 20 73  |             \ s|
00003d70  65 74 20 72 65 67 69 73  74 65 72 73 20 66 6f 72  |et registers for|
00003d80  20 66 69 6c 6c 0d 1a 40  04 0d 1a 4a 0e 20 20 2e  | fill..@...J.  .|
00003d90  66 73 6c 6f 6f 70 31 0d  1a 54 31 20 20 20 20 53  |fsloop1..T1    S|
00003da0  54 4d 49 41 20 20 20 52  31 33 21 2c 7b 52 30 2d  |TMIA   R13!,{R0-|
00003db0  52 31 31 7d 20 20 20 20  20 20 20 20 20 20 5c 20  |R11}          \ |
00003dc0  34 38 20 62 79 74 65 73  0d 1a 5e 31 20 20 20 20  |48 bytes..^1    |
00003dd0  53 54 4d 49 41 20 20 20  52 31 33 21 2c 7b 52 30  |STMIA   R13!,{R0|
00003de0  2d 52 31 31 7d 20 20 20  20 20 20 20 20 20 20 5c  |-R11}          \|
00003df0  20 34 38 20 62 79 74 65  73 0d 1a 68 31 20 20 20  | 48 bytes..h1   |
00003e00  20 53 54 4d 49 41 20 20  20 52 31 33 21 2c 7b 52  | STMIA   R13!,{R|
00003e10  30 2d 52 31 31 7d 20 20  20 20 20 20 20 20 20 20  |0-R11}          |
00003e20  5c 20 34 38 20 62 79 74  65 73 0d 1a 72 31 20 20  |\ 48 bytes..r1  |
00003e30  20 20 53 54 4d 49 41 20  20 20 52 31 33 21 2c 7b  |  STMIA   R13!,{|
00003e40  52 30 2d 52 33 7d 20 20  20 20 20 20 20 20 20 20  |R0-R3}          |
00003e50  20 5c 20 31 36 20 62 79  74 65 73 0d 1a 7c 04 0d  | \ 16 bytes..|..|
00003e60  1a 86 1c 20 20 20 20 41  44 44 20 20 20 20 20 52  |...    ADD     R|
00003e70  31 33 2c 52 31 33 2c 23  31 36 30 0d 1a 90 1a 20  |13,R13,#160.... |
00003e80  20 20 20 53 55 42 53 20  20 20 20 52 31 34 2c 52  |   SUBS    R14,R|
00003e90  31 34 2c 23 31 0d 1a 9a  17 20 20 20 20 42 47 54  |14,#1....    BGT|
00003ea0  20 20 20 20 20 66 73 6c  6f 6f 70 31 0d 1a a4 04  |     fsloop1....|
00003eb0  0d 1a ae 34 20 20 4c 44  52 20 20 20 20 20 52 31  |...4  LDR     R1|
00003ec0  33 2c 72 31 33 73 74 6f  20 20 20 20 20 20 20 20  |3,r13sto        |
00003ed0  20 20 20 20 20 20 20 5c  20 72 65 63 6f 76 65 72  |       \ recover|
00003ee0  20 52 31 33 0d 1a b8 1f  20 20 4c 44 4d 46 44 20  | R13....  LDMFD |
00003ef0  20 20 52 31 33 21 2c 7b  52 30 2d 52 31 32 2c 50  |  R13!,{R0-R12,P|
00003f00  43 7d 5e 0d 1a c2 04 0d  1a cc 38 20 20 5c 20 46  |C}^.......8  \ F|
00003f10  69 6c 6c 20 71 75 61 72  74 65 72 20 73 65 63 74  |ill quarter sect|
00003f20  69 6f 6e 20 6f 66 20 73  63 72 65 65 6e 20 77 69  |ion of screen wi|
00003f30  74 68 20 67 69 76 65 6e  20 6e 69 62 62 6c 65 0d  |th given nibble.|
00003f40  1a d6 1b 20 20 5c 20 52  30 20 3d 20 57 6f 72 64  |...  \ R0 = Word|
00003f50  20 74 6f 20 69 6e 73 65  72 74 0d 1a e0 1d 20 20  | to insert....  |
00003f60  5c 20 52 31 20 3d 20 4c  69 6e 65 20 74 6f 20 73  |\ R1 = Line to s|
00003f70  74 61 72 74 20 61 74 0d  1a ea 1c 20 20 5c 20 52  |tart at....  \ R|
00003f80  32 20 3d 20 4e 75 6d 62  65 72 20 6f 66 20 6c 69  |2 = Number of li|
00003f90  6e 65 73 0d 1a f4 19 20  20 2e 66 69 6c 6c 73 65  |nes....  .fillse|
00003fa0  63 74 69 6f 6e 71 75 61  72 74 65 72 0d 1a fe 1f  |ctionquarter....|
00003fb0  20 20 53 54 4d 46 44 20  20 20 52 31 33 21 2c 7b  |  STMFD   R13!,{|
00003fc0  52 30 2d 52 31 32 2c 52  31 34 7d 0d 1b 08 31 20  |R0-R12,R14}...1 |
00003fd0  20 53 54 52 20 20 20 20  20 52 31 33 2c 72 31 33  | STR     R13,r13|
00003fe0  73 74 6f 20 20 20 20 20  20 20 20 20 20 20 20 20  |sto             |
00003ff0  20 20 5c 20 73 61 76 65  20 52 31 33 0d 1b 12 05  |  \ save R13....|
00004000  20 0d 1b 1c 14 20 20 4d  4f 56 20 20 20 20 20 52  | ....  MOV     R|
00004010  31 34 2c 52 32 0d 1b 26  04 0d 1b 30 20 20 20 4c  |14,R2..&...0   L|
00004020  44 52 20 20 20 20 20 52  31 33 2c 70 6c 6f 74 73  |DR     R13,plots|
00004030  63 72 65 65 6e 62 61 73  65 0d 1b 3a 1f 20 20 41  |creenbase..:.  A|
00004040  44 44 20 20 20 20 20 52  31 33 2c 52 31 33 2c 52  |DD     R13,R13,R|
00004050  31 2c 4c 53 4c 20 23 38  0d 1b 44 48 20 20 41 44  |1,LSL #8..DH  AD|
00004060  44 20 20 20 20 20 52 31  33 2c 52 31 33 2c 52 31  |D     R13,R13,R1|
00004070  2c 4c 53 4c 20 23 36 20  20 20 20 20 20 20 20 5c  |,LSL #6        \|
00004080  20 61 64 64 72 65 73 73  20 28 69 6e 20 73 63 72  | address (in scr|
00004090  65 65 6e 29 20 74 6f 20  73 74 61 72 74 20 61 74  |een) to start at|
000040a0  0d 1b 4e 05 20 0d 1b 58  18 20 20 80 20 20 20 20  |..N. ..X.  .    |
000040b0  20 52 30 2c 52 30 2c 23  25 31 31 31 31 0d 1b 62  | R0,R0,#%1111..b|
000040c0  1c 20 20 84 52 20 20 20  20 20 52 30 2c 52 30 2c  |.  .R     R0,R0,|
000040d0  52 30 2c 4c 53 4c 20 23  34 0d 1b 6c 1c 20 20 84  |R0,LSL #4..l.  .|
000040e0  52 20 20 20 20 20 52 30  2c 52 30 2c 52 30 2c 4c  |R     R0,R0,R0,L|
000040f0  53 4c 20 23 38 0d 1b 76  38 20 20 84 52 20 20 20  |SL #8..v8  .R   |
00004100  20 20 52 30 2c 52 30 2c  52 30 2c 4c 53 4c 20 23  |  R0,R0,R0,LSL #|
00004110  31 36 20 20 20 20 20 20  20 20 20 5c 20 65 78 70  |16         \ exp|
00004120  61 6e 64 20 69 6e 74 6f  20 77 6f 72 64 0d 1b 80  |and into word...|
00004130  04 0d 1b 8a 13 20 20 4d  4f 56 20 20 20 20 20 52  |.....  MOV     R|
00004140  31 2c 52 30 0d 1b 94 13  20 20 4d 4f 56 20 20 20  |1,R0....  MOV   |
00004150  20 20 52 32 2c 52 30 0d  1b 9e 13 20 20 4d 4f 56  |  R2,R0....  MOV|
00004160  20 20 20 20 20 52 33 2c  52 30 0d 1b a8 13 20 20  |     R3,R0....  |
00004170  4d 4f 56 20 20 20 20 20  52 34 2c 52 30 0d 1b b2  |MOV     R4,R0...|
00004180  13 20 20 4d 4f 56 20 20  20 20 20 52 35 2c 52 30  |.  MOV     R5,R0|
00004190  0d 1b bc 13 20 20 4d 4f  56 20 20 20 20 20 52 36  |....  MOV     R6|
000041a0  2c 52 30 0d 1b c6 13 20  20 4d 4f 56 20 20 20 20  |,R0....  MOV    |
000041b0  20 52 37 2c 52 30 0d 1b  d0 13 20 20 4d 4f 56 20  | R7,R0....  MOV |
000041c0  20 20 20 20 52 38 2c 52  30 0d 1b da 13 20 20 4d  |    R8,R0....  M|
000041d0  4f 56 20 20 20 20 20 52  39 2c 52 30 0d 1b e4 14  |OV     R9,R0....|
000041e0  20 20 4d 4f 56 20 20 20  20 20 52 31 30 2c 52 30  |  MOV     R10,R0|
000041f0  0d 1b ee 3f 20 20 4d 4f  56 20 20 20 20 20 52 31  |...?  MOV     R1|
00004200  31 2c 52 30 20 20 20 20  20 20 20 20 20 20 20 20  |1,R0            |
00004210  20 20 20 20 20 20 20 5c  20 73 65 74 20 72 65 67  |       \ set reg|
00004220  69 73 74 65 72 73 20 66  6f 72 20 66 69 6c 6c 0d  |isters for fill.|
00004230  1b f8 04 0d 1c 02 0e 20  20 2e 66 73 6c 6f 6f 70  |.......  .fsloop|
00004240  32 0d 1c 0c 31 20 20 20  20 53 54 4d 49 41 20 20  |2...1    STMIA  |
00004250  20 52 31 33 21 2c 7b 52  30 2d 52 31 31 7d 20 20  | R13!,{R0-R11}  |
00004260  20 20 20 20 20 20 20 20  5c 20 34 38 20 62 79 74  |        \ 48 byt|
00004270  65 73 0d 1c 16 31 20 20  20 20 53 54 4d 49 41 20  |es...1    STMIA |
00004280  20 20 52 31 33 21 2c 7b  52 30 2d 52 37 7d 20 20  |  R13!,{R0-R7}  |
00004290  20 20 20 20 20 20 20 20  20 5c 20 33 32 20 62 79  |         \ 32 by|
000042a0  74 65 73 0d 1c 20 04 0d  1c 2a 1c 20 20 20 20 41  |tes.. ...*.    A|
000042b0  44 44 20 20 20 20 20 52  31 33 2c 52 31 33 2c 23  |DD     R13,R13,#|
000042c0  32 34 30 0d 1c 34 1a 20  20 20 20 53 55 42 53 20  |240..4.    SUBS |
000042d0  20 20 20 52 31 34 2c 52  31 34 2c 23 31 0d 1c 3e  |   R14,R14,#1..>|
000042e0  17 20 20 20 20 42 47 54  20 20 20 20 20 66 73 6c  |.    BGT     fsl|
000042f0  6f 6f 70 32 0d 1c 48 04  0d 1c 52 34 20 20 4c 44  |oop2..H...R4  LD|
00004300  52 20 20 20 20 20 52 31  33 2c 72 31 33 73 74 6f  |R     R13,r13sto|
00004310  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 5c  |               \|
00004320  20 72 65 63 6f 76 65 72  20 52 31 33 0d 1c 5c 1f  | recover R13..\.|
00004330  20 20 4c 44 4d 46 44 20  20 20 52 31 33 21 2c 7b  |  LDMFD   R13!,{|
00004340  52 30 2d 52 31 32 2c 50  43 7d 5e 0d 1c 66 04 0d  |R0-R12,PC}^..f..|
00004350  1c 70 0b 20 20 2e 72 65  70 31 0d 1c 7a 18 20 20  |.p.  .rep1..z.  |
00004360  53 54 52 20 20 20 20 20  52 31 33 2c 72 31 33 73  |STR     R13,r13s|
00004370  74 6f 0d 1c 84 04 0d 1c  8e 20 20 20 4c 44 52 20  |to.......   LDR |
00004380  20 20 20 20 52 31 33 2c  70 6c 6f 74 73 63 72 65  |    R13,plotscre|
00004390  65 6e 62 61 73 65 0d 1c  98 1e 20 20 41 44 44 20  |enbase....  ADD |
000043a0  20 20 20 20 52 31 32 2c  52 31 33 2c 23 31 32 38  |    R12,R13,#128|
000043b0  2a 33 32 30 0d 1c a2 16  20 20 4d 4f 56 20 20 20  |*320....  MOV   |
000043c0  20 20 52 31 34 2c 23 31  32 38 0d 1c ac 04 0d 1c  |  R14,#128......|
000043d0  b6 0f 20 20 2e 72 65 70  6c 6f 6f 70 31 0d 1c c0  |..  .reploop1...|
000043e0  20 20 20 20 20 20 4c 44  4d 49 41 20 20 20 20 20  |      LDMIA     |
000043f0  52 31 33 21 2c 7b 52 30  2d 52 31 31 7d 0d 1c ca  |R13!,{R0-R11}...|
00004400  20 20 20 20 20 20 53 54  4d 49 41 20 20 20 20 20  |      STMIA     |
00004410  52 31 32 21 2c 7b 52 30  2d 52 31 31 7d 0d 1c d4  |R12!,{R0-R11}...|
00004420  20 20 20 20 20 20 4c 44  4d 49 41 20 20 20 20 20  |      LDMIA     |
00004430  52 31 33 21 2c 7b 52 30  2d 52 31 31 7d 0d 1c de  |R13!,{R0-R11}...|
00004440  20 20 20 20 20 20 53 54  4d 49 41 20 20 20 20 20  |      STMIA     |
00004450  52 31 32 21 2c 7b 52 30  2d 52 31 31 7d 0d 1c e8  |R12!,{R0-R11}...|
00004460  20 20 20 20 20 20 4c 44  4d 49 41 20 20 20 20 20  |      LDMIA     |
00004470  52 31 33 21 2c 7b 52 30  2d 52 31 31 7d 0d 1c f2  |R13!,{R0-R11}...|
00004480  20 20 20 20 20 20 53 54  4d 49 41 20 20 20 20 20  |      STMIA     |
00004490  52 31 32 21 2c 7b 52 30  2d 52 31 31 7d 0d 1c fc  |R12!,{R0-R11}...|
000044a0  20 20 20 20 20 20 4c 44  4d 49 41 20 20 20 20 20  |      LDMIA     |
000044b0  52 31 33 21 2c 7b 52 30  2d 52 31 31 7d 0d 1d 06  |R13!,{R0-R11}...|
000044c0  20 20 20 20 20 20 53 54  4d 49 41 20 20 20 20 20  |      STMIA     |
000044d0  52 31 32 21 2c 7b 52 30  2d 52 31 31 7d 0d 1d 10  |R12!,{R0-R11}...|
000044e0  20 20 20 20 20 20 4c 44  4d 49 41 20 20 20 20 20  |      LDMIA     |
000044f0  52 31 33 21 2c 7b 52 30  2d 52 31 31 7d 0d 1d 1a  |R13!,{R0-R11}...|
00004500  20 20 20 20 20 20 53 54  4d 49 41 20 20 20 20 20  |      STMIA     |
00004510  52 31 32 21 2c 7b 52 30  2d 52 31 31 7d 0d 1d 24  |R12!,{R0-R11}..$|
00004520  20 20 20 20 20 20 4c 44  4d 49 41 20 20 20 20 20  |      LDMIA     |
00004530  52 31 33 21 2c 7b 52 30  2d 52 31 31 7d 0d 1d 2e  |R13!,{R0-R11}...|
00004540  20 20 20 20 20 20 53 54  4d 49 41 20 20 20 20 20  |      STMIA     |
00004550  52 31 32 21 2c 7b 52 30  2d 52 31 31 7d 0d 1d 38  |R12!,{R0-R11}..8|
00004560  1f 20 20 20 20 20 4c 44  4d 49 41 20 20 20 20 20  |.     LDMIA     |
00004570  52 31 33 21 2c 7b 52 30  2d 52 37 7d 0d 1d 42 1f  |R13!,{R0-R7}..B.|
00004580  20 20 20 20 20 53 54 4d  49 41 20 20 20 20 20 52  |     STMIA     R|
00004590  31 32 21 2c 7b 52 30 2d  52 37 7d 0d 1d 4c 1d 20  |12!,{R0-R7}..L. |
000045a0  20 20 20 20 53 55 42 53  20 20 20 20 20 20 52 31  |    SUBS      R1|
000045b0  34 2c 52 31 34 2c 23 31  0d 1d 56 1b 20 20 20 20  |4,R14,#1..V.    |
000045c0  20 42 47 54 20 20 20 20  20 20 20 72 65 70 6c 6f  | BGT       replo|
000045d0  6f 70 31 0d 1d 60 04 0d  1d 6a 18 20 20 4c 44 52  |op1..`...j.  LDR|
000045e0  20 20 20 20 20 52 31 33  2c 72 31 33 73 74 6f 0d  |     R13,r13sto.|
000045f0  1d 74 1f 20 20 4c 44 4d  46 44 20 20 20 52 31 33  |.t.  LDMFD   R13|
00004600  21 2c 7b 52 30 2d 52 31  32 2c 50 43 7d 5e 0d 1d  |!,{R0-R12,PC}^..|
00004610  7e 04 0d 1d 88 0b 20 20  2e 72 65 70 32 0d 1d 92  |~.....  .rep2...|
00004620  18 20 20 53 54 52 20 20  20 20 20 52 31 33 2c 72  |.  STR     R13,r|
00004630  31 33 73 74 6f 0d 1d 9c  04 0d 1d a6 20 20 20 4c  |13sto.......   L|
00004640  44 52 20 20 20 20 20 52  31 33 2c 70 6c 6f 74 73  |DR     R13,plots|
00004650  63 72 65 65 6e 62 61 73  65 0d 1d b0 15 20 20 4d  |creenbase....  M|
00004660  4f 56 20 20 20 20 20 52  31 34 2c 23 36 34 0d 1d  |OV     R14,#64..|
00004670  ba 04 0d 1d c4 0f 20 20  2e 72 65 70 6c 6f 6f 70  |......  .reploop|
00004680  32 0d 1d ce 1e 20 20 20  20 20 4c 44 4d 49 41 20  |2....     LDMIA |
00004690  20 20 52 31 33 21 2c 7b  52 30 2d 52 31 31 7d 0d  |  R13!,{R0-R11}.|
000046a0  1d d8 20 20 20 20 20 20  41 44 44 20 20 20 20 20  |..      ADD     |
000046b0  52 31 32 2c 52 31 33 2c  23 31 36 30 2d 34 38 0d  |R12,R13,#160-48.|
000046c0  1d e2 1d 20 20 20 20 20  53 54 4d 49 41 20 20 20  |...     STMIA   |
000046d0  52 31 32 2c 7b 52 30 2d  52 31 31 7d 0d 1d ec 20  |R12,{R0-R11}... |
000046e0  20 20 20 20 20 41 44 44  20 20 20 20 20 52 31 32  |     ADD     R12|
000046f0  2c 52 31 32 2c 23 33 32  30 2a 36 34 0d 1d f6 1d  |,R12,#320*64....|
00004700  20 20 20 20 20 53 54 4d  49 41 20 20 20 52 31 32  |     STMIA   R12|
00004710  2c 7b 52 30 2d 52 31 31  7d 0d 1e 00 20 20 20 20  |,{R0-R11}...    |
00004720  20 20 41 44 44 20 20 20  20 20 52 31 32 2c 52 31  |  ADD     R12,R1|
00004730  32 2c 23 33 32 30 2a 36  34 0d 1e 0a 1d 20 20 20  |2,#320*64....   |
00004740  20 20 53 54 4d 49 41 20  20 20 52 31 32 2c 7b 52  |  STMIA   R12,{R|
00004750  30 2d 52 31 31 7d 0d 1e  14 20 20 20 20 20 20 41  |0-R11}...      A|
00004760  44 44 20 20 20 20 20 52  31 32 2c 52 31 32 2c 23  |DD     R12,R12,#|
00004770  33 32 30 2a 36 34 0d 1e  1e 1d 20 20 20 20 20 53  |320*64....     S|
00004780  54 4d 49 41 20 20 20 52  31 32 2c 7b 52 30 2d 52  |TMIA   R12,{R0-R|
00004790  31 31 7d 0d 1e 28 1d 20  20 20 20 20 53 55 42 20  |11}..(.     SUB |
000047a0  20 20 20 20 52 31 32 2c  52 31 32 2c 23 31 36 30  |    R12,R12,#160|
000047b0  0d 1e 32 1d 20 20 20 20  20 53 54 4d 49 41 20 20  |..2.     STMIA  |
000047c0  20 52 31 32 2c 7b 52 30  2d 52 31 31 7d 0d 1e 3c  | R12,{R0-R11}..<|
000047d0  20 20 20 20 20 20 53 55  42 20 20 20 20 20 52 31  |      SUB     R1|
000047e0  32 2c 52 31 32 2c 23 33  32 30 2a 36 34 0d 1e 46  |2,R12,#320*64..F|
000047f0  1d 20 20 20 20 20 53 54  4d 49 41 20 20 20 52 31  |.     STMIA   R1|
00004800  32 2c 7b 52 30 2d 52 31  31 7d 0d 1e 50 20 20 20  |2,{R0-R11}..P   |
00004810  20 20 20 53 55 42 20 20  20 20 20 52 31 32 2c 52  |   SUB     R12,R|
00004820  31 32 2c 23 33 32 30 2a  36 34 0d 1e 5a 1d 20 20  |12,#320*64..Z.  |
00004830  20 20 20 53 54 4d 49 41  20 20 20 52 31 32 2c 7b  |   STMIA   R12,{|
00004840  52 30 2d 52 31 31 7d 0d  1e 64 1e 20 20 20 20 20  |R0-R11}..d.     |
00004850  4c 44 4d 49 41 20 20 20  52 31 33 21 2c 7b 52 30  |LDMIA   R13!,{R0|
00004860  2d 52 31 31 7d 0d 1e 6e  20 20 20 20 20 20 41 44  |-R11}..n      AD|
00004870  44 20 20 20 20 20 52 31  32 2c 52 31 33 2c 23 31  |D     R12,R13,#1|
00004880  36 30 2d 34 38 0d 1e 78  1d 20 20 20 20 20 53 54  |60-48..x.     ST|
00004890  4d 49 41 20 20 20 52 31  32 2c 7b 52 30 2d 52 31  |MIA   R12,{R0-R1|
000048a0  31 7d 0d 1e 82 20 20 20  20 20 20 41 44 44 20 20  |1}...      ADD  |
000048b0  20 20 20 52 31 32 2c 52  31 32 2c 23 33 32 30 2a  |   R12,R12,#320*|
000048c0  36 34 0d 1e 8c 1d 20 20  20 20 20 53 54 4d 49 41  |64....     STMIA|
000048d0  20 20 20 52 31 32 2c 7b  52 30 2d 52 31 31 7d 0d  |   R12,{R0-R11}.|
000048e0  1e 96 20 20 20 20 20 20  41 44 44 20 20 20 20 20  |..      ADD     |
000048f0  52 31 32 2c 52 31 32 2c  23 33 32 30 2a 36 34 0d  |R12,R12,#320*64.|
00004900  1e a0 1d 20 20 20 20 20  53 54 4d 49 41 20 20 20  |...     STMIA   |
00004910  52 31 32 2c 7b 52 30 2d  52 31 31 7d 0d 1e aa 20  |R12,{R0-R11}... |
00004920  20 20 20 20 20 41 44 44  20 20 20 20 20 52 31 32  |     ADD     R12|
00004930  2c 52 31 32 2c 23 33 32  30 2a 36 34 0d 1e b4 1d  |,R12,#320*64....|
00004940  20 20 20 20 20 53 54 4d  49 41 20 20 20 52 31 32  |     STMIA   R12|
00004950  2c 7b 52 30 2d 52 31 31  7d 0d 1e be 1d 20 20 20  |,{R0-R11}....   |
00004960  20 20 53 55 42 20 20 20  20 20 52 31 32 2c 52 31  |  SUB     R12,R1|
00004970  32 2c 23 31 36 30 0d 1e  c8 1d 20 20 20 20 20 53  |2,#160....     S|
00004980  54 4d 49 41 20 20 20 52  31 32 2c 7b 52 30 2d 52  |TMIA   R12,{R0-R|
00004990  31 31 7d 0d 1e d2 20 20  20 20 20 20 53 55 42 20  |11}...      SUB |
000049a0  20 20 20 20 52 31 32 2c  52 31 32 2c 23 33 32 30  |    R12,R12,#320|
000049b0  2a 36 34 0d 1e dc 1d 20  20 20 20 20 53 54 4d 49  |*64....     STMI|
000049c0  41 20 20 20 52 31 32 2c  7b 52 30 2d 52 31 31 7d  |A   R12,{R0-R11}|
000049d0  0d 1e e6 20 20 20 20 20  20 53 55 42 20 20 20 20  |...      SUB    |
000049e0  20 52 31 32 2c 52 31 32  2c 23 33 32 30 2a 36 34  | R12,R12,#320*64|
000049f0  0d 1e f0 1d 20 20 20 20  20 53 54 4d 49 41 20 20  |....     STMIA  |
00004a00  20 52 31 32 2c 7b 52 30  2d 52 31 31 7d 0d 1e fa  | R12,{R0-R11}...|
00004a10  1e 20 20 20 20 20 4c 44  4d 49 41 20 20 20 52 31  |.     LDMIA   R1|
00004a20  33 21 2c 7b 52 30 2d 52  31 31 7d 0d 1f 04 20 20  |3!,{R0-R11}...  |
00004a30  20 20 20 20 41 44 44 20  20 20 20 20 52 31 32 2c  |    ADD     R12,|
00004a40  52 31 33 2c 23 31 36 30  2d 34 38 0d 1f 0e 1d 20  |R13,#160-48.... |
00004a50  20 20 20 20 53 54 4d 49  41 20 20 20 52 31 32 2c  |    STMIA   R12,|
00004a60  7b 52 30 2d 52 31 31 7d  0d 1f 18 20 20 20 20 20  |{R0-R11}...     |
00004a70  20 41 44 44 20 20 20 20  20 52 31 32 2c 52 31 32  | ADD     R12,R12|
00004a80  2c 23 33 32 30 2a 36 34  0d 1f 22 1d 20 20 20 20  |,#320*64..".    |
00004a90  20 53 54 4d 49 41 20 20  20 52 31 32 2c 7b 52 30  | STMIA   R12,{R0|
00004aa0  2d 52 31 31 7d 0d 1f 2c  20 20 20 20 20 20 41 44  |-R11}..,      AD|
00004ab0  44 20 20 20 20 20 52 31  32 2c 52 31 32 2c 23 33  |D     R12,R12,#3|
00004ac0  32 30 2a 36 34 0d 1f 36  1d 20 20 20 20 20 53 54  |20*64..6.     ST|
00004ad0  4d 49 41 20 20 20 52 31  32 2c 7b 52 30 2d 52 31  |MIA   R12,{R0-R1|
00004ae0  31 7d 0d 1f 40 20 20 20  20 20 20 41 44 44 20 20  |1}..@      ADD  |
00004af0  20 20 20 52 31 32 2c 52  31 32 2c 23 33 32 30 2a  |   R12,R12,#320*|
00004b00  36 34 0d 1f 4a 1d 20 20  20 20 20 53 54 4d 49 41  |64..J.     STMIA|
00004b10  20 20 20 52 31 32 2c 7b  52 30 2d 52 31 31 7d 0d  |   R12,{R0-R11}.|
00004b20  1f 54 1d 20 20 20 20 20  53 55 42 20 20 20 20 20  |.T.     SUB     |
00004b30  52 31 32 2c 52 31 32 2c  23 31 36 30 0d 1f 5e 1d  |R12,R12,#160..^.|
00004b40  20 20 20 20 20 53 54 4d  49 41 20 20 20 52 31 32  |     STMIA   R12|
00004b50  2c 7b 52 30 2d 52 31 31  7d 0d 1f 68 20 20 20 20  |,{R0-R11}..h    |
00004b60  20 20 53 55 42 20 20 20  20 20 52 31 32 2c 52 31  |  SUB     R12,R1|
00004b70  32 2c 23 33 32 30 2a 36  34 0d 1f 72 1d 20 20 20  |2,#320*64..r.   |
00004b80  20 20 53 54 4d 49 41 20  20 20 52 31 32 2c 7b 52  |  STMIA   R12,{R|
00004b90  30 2d 52 31 31 7d 0d 1f  7c 20 20 20 20 20 20 53  |0-R11}..|      S|
00004ba0  55 42 20 20 20 20 20 52  31 32 2c 52 31 32 2c 23  |UB     R12,R12,#|
00004bb0  33 32 30 2a 36 34 0d 1f  86 1d 20 20 20 20 20 53  |320*64....     S|
00004bc0  54 4d 49 41 20 20 20 52  31 32 2c 7b 52 30 2d 52  |TMIA   R12,{R0-R|
00004bd0  31 31 7d 0d 1f 90 1d 20  20 20 20 20 4c 44 4d 49  |11}....     LDMI|
00004be0  41 20 20 20 52 31 33 21  2c 7b 52 30 2d 52 33 7d  |A   R13!,{R0-R3}|
00004bf0  0d 1f 9a 20 20 20 20 20  20 41 44 44 20 20 20 20  |...      ADD    |
00004c00  20 52 31 32 2c 52 31 33  2c 23 31 36 30 2d 31 36  | R12,R13,#160-16|
00004c10  0d 1f a4 1c 20 20 20 20  20 53 54 4d 49 41 20 20  |....     STMIA  |
00004c20  20 52 31 32 2c 7b 52 30  2d 52 33 7d 0d 1f ae 20  | R12,{R0-R3}... |
00004c30  20 20 20 20 20 41 44 44  20 20 20 20 20 52 31 32  |     ADD     R12|
00004c40  2c 52 31 32 2c 23 33 32  30 2a 36 34 0d 1f b8 1c  |,R12,#320*64....|
00004c50  20 20 20 20 20 53 54 4d  49 41 20 20 20 52 31 32  |     STMIA   R12|
00004c60  2c 7b 52 30 2d 52 33 7d  0d 1f c2 20 20 20 20 20  |,{R0-R3}...     |
00004c70  20 41 44 44 20 20 20 20  20 52 31 32 2c 52 31 32  | ADD     R12,R12|
00004c80  2c 23 33 32 30 2a 36 34  0d 1f cc 1c 20 20 20 20  |,#320*64....    |
00004c90  20 53 54 4d 49 41 20 20  20 52 31 32 2c 7b 52 30  | STMIA   R12,{R0|
00004ca0  2d 52 33 7d 0d 1f d6 20  20 20 20 20 20 41 44 44  |-R3}...      ADD|
00004cb0  20 20 20 20 20 52 31 32  2c 52 31 32 2c 23 33 32  |     R12,R12,#32|
00004cc0  30 2a 36 34 0d 1f e0 1c  20 20 20 20 20 53 54 4d  |0*64....     STM|
00004cd0  49 41 20 20 20 52 31 32  2c 7b 52 30 2d 52 33 7d  |IA   R12,{R0-R3}|
00004ce0  0d 1f ea 1d 20 20 20 20  20 53 55 42 20 20 20 20  |....     SUB    |
00004cf0  20 52 31 32 2c 52 31 32  2c 23 31 36 30 0d 1f f4  | R12,R12,#160...|
00004d00  1c 20 20 20 20 20 53 54  4d 49 41 20 20 20 52 31  |.     STMIA   R1|
00004d10  32 2c 7b 52 30 2d 52 33  7d 0d 1f fe 20 20 20 20  |2,{R0-R3}...    |
00004d20  20 20 53 55 42 20 20 20  20 20 52 31 32 2c 52 31  |  SUB     R12,R1|
00004d30  32 2c 23 33 32 30 2a 36  34 0d 20 08 1c 20 20 20  |2,#320*64. ..   |
00004d40  20 20 53 54 4d 49 41 20  20 20 52 31 32 2c 7b 52  |  STMIA   R12,{R|
00004d50  30 2d 52 33 7d 0d 20 12  20 20 20 20 20 20 53 55  |0-R3}. .      SU|
00004d60  42 20 20 20 20 20 52 31  32 2c 52 31 32 2c 23 33  |B     R12,R12,#3|
00004d70  32 30 2a 36 34 0d 20 1c  1c 20 20 20 20 20 53 54  |20*64. ..     ST|
00004d80  4d 49 41 20 20 20 52 31  32 2c 7b 52 30 2d 52 33  |MIA   R12,{R0-R3|
00004d90  7d 0d 20 26 04 0d 20 30  1d 20 20 20 20 20 41 44  |}. &.. 0.     AD|
00004da0  44 20 20 20 20 20 52 31  33 2c 52 31 33 2c 23 31  |D     R13,R13,#1|
00004db0  36 30 0d 20 3a 1b 20 20  20 20 20 53 55 42 53 20  |60. :.     SUBS |
00004dc0  20 20 20 52 31 34 2c 52  31 34 2c 23 31 0d 20 44  |   R14,R14,#1. D|
00004dd0  19 20 20 20 20 20 42 47  54 20 20 20 20 20 72 65  |.     BGT     re|
00004de0  70 6c 6f 6f 70 32 0d 20  4e 18 20 20 4c 44 52 20  |ploop2. N.  LDR |
00004df0  20 20 20 20 52 31 33 2c  72 31 33 73 74 6f 0d 20  |    R13,r13sto. |
00004e00  58 1f 20 20 4c 44 4d 46  44 20 20 20 52 31 33 21  |X.  LDMFD   R13!|
00004e10  2c 7b 52 30 2d 52 31 32  2c 50 43 7d 5e 0d 20 62  |,{R0-R12,PC}^. b|
00004e20  04 0d 20 6c 0b 20 20 2e  72 65 70 33 0d 20 76 18  |.. l.  .rep3. v.|
00004e30  20 20 53 54 52 20 20 20  20 20 52 31 33 2c 72 31  |  STR     R13,r1|
00004e40  33 73 74 6f 0d 20 80 04  0d 20 8a 20 20 20 4c 44  |3sto. ... .   LD|
00004e50  52 20 20 20 20 20 52 31  33 2c 70 6c 6f 74 73 63  |R     R13,plotsc|
00004e60  72 65 65 6e 62 61 73 65  0d 20 94 15 20 20 4d 4f  |reenbase. ..  MO|
00004e70  56 20 20 20 20 20 52 31  34 2c 23 33 32 0d 20 9e  |V     R14,#32. .|
00004e80  04 0d 20 a8 0f 20 20 2e  72 65 70 6c 6f 6f 70 33  |.. ..  .reploop3|
00004e90  0d 20 b2 1e 20 20 20 20  20 4c 44 4d 49 41 20 20  |. ..     LDMIA  |
00004ea0  20 52 31 33 21 2c 7b 52  30 2d 52 31 31 7d 0d 20  | R13!,{R0-R11}. |
00004eb0  bc 34 20 20 20 20 20 41  44 44 20 20 20 20 20 52  |.4     ADD     R|
00004ec0  31 32 2c 52 31 33 2c 23  38 30 2d 34 38 3a 53 54  |12,R13,#80-48:ST|
00004ed0  4d 49 41 20 20 20 52 31  32 2c 7b 52 30 2d 52 31  |MIA   R12,{R0-R1|
00004ee0  31 7d 0d 20 c6 31 20 20  20 20 20 41 44 44 20 20  |1}. .1     ADD  |
00004ef0  20 20 20 52 31 32 2c 52  31 32 2c 23 38 30 3a 53  |   R12,R12,#80:S|
00004f00  54 4d 49 41 20 20 20 52  31 32 2c 7b 52 30 2d 52  |TMIA   R12,{R0-R|
00004f10  31 31 7d 0d 20 d0 31 20  20 20 20 20 41 44 44 20  |11}. .1     ADD |
00004f20  20 20 20 20 52 31 32 2c  52 31 32 2c 23 38 30 3a  |    R12,R12,#80:|
00004f30  53 54 4d 49 41 20 20 20  52 31 32 2c 7b 52 30 2d  |STMIA   R12,{R0-|
00004f40  52 31 31 7d 0d 20 da 35  20 20 20 20 20 41 44 44  |R11}. .5     ADD|
00004f50  20 20 20 20 20 52 31 32  2c 52 31 32 2c 23 33 32  |     R12,R12,#32|
00004f60  30 2a 33 32 3a 53 54 4d  49 41 20 20 20 52 31 32  |0*32:STMIA   R12|
00004f70  2c 7b 52 30 2d 52 31 31  7d 0d 20 e4 31 20 20 20  |,{R0-R11}. .1   |
00004f80  20 20 53 55 42 20 20 20  20 20 52 31 32 2c 52 31  |  SUB     R12,R1|
00004f90  32 2c 23 38 30 3a 53 54  4d 49 41 20 20 20 52 31  |2,#80:STMIA   R1|
00004fa0  32 2c 7b 52 30 2d 52 31  31 7d 0d 20 ee 31 20 20  |2,{R0-R11}. .1  |
00004fb0  20 20 20 53 55 42 20 20  20 20 20 52 31 32 2c 52  |   SUB     R12,R|
00004fc0  31 32 2c 23 38 30 3a 53  54 4d 49 41 20 20 20 52  |12,#80:STMIA   R|
00004fd0  31 32 2c 7b 52 30 2d 52  31 31 7d 0d 20 f8 31 20  |12,{R0-R11}. .1 |
00004fe0  20 20 20 20 53 55 42 20  20 20 20 20 52 31 32 2c  |    SUB     R12,|
00004ff0  52 31 32 2c 23 38 30 3a  53 54 4d 49 41 20 20 20  |R12,#80:STMIA   |
00005000  52 31 32 2c 7b 52 30 2d  52 31 31 7d 0d 21 02 35  |R12,{R0-R11}.!.5|
00005010  20 20 20 20 20 41 44 44  20 20 20 20 20 52 31 32  |     ADD     R12|
00005020  2c 52 31 32 2c 23 33 32  30 2a 33 32 3a 53 54 4d  |,R12,#320*32:STM|
00005030  49 41 20 20 20 52 31 32  2c 7b 52 30 2d 52 31 31  |IA   R12,{R0-R11|
00005040  7d 0d 21 0c 31 20 20 20  20 20 41 44 44 20 20 20  |}.!.1     ADD   |
00005050  20 20 52 31 32 2c 52 31  32 2c 23 38 30 3a 53 54  |  R12,R12,#80:ST|
00005060  4d 49 41 20 20 20 52 31  32 2c 7b 52 30 2d 52 31  |MIA   R12,{R0-R1|
00005070  31 7d 0d 21 16 31 20 20  20 20 20 41 44 44 20 20  |1}.!.1     ADD  |
00005080  20 20 20 52 31 32 2c 52  31 32 2c 23 38 30 3a 53  |   R12,R12,#80:S|
00005090  54 4d 49 41 20 20 20 52  31 32 2c 7b 52 30 2d 52  |TMIA   R12,{R0-R|
000050a0  31 31 7d 0d 21 20 31 20  20 20 20 20 41 44 44 20  |11}.! 1     ADD |
000050b0  20 20 20 20 52 31 32 2c  52 31 32 2c 23 38 30 3a  |    R12,R12,#80:|
000050c0  53 54 4d 49 41 20 20 20  52 31 32 2c 7b 52 30 2d  |STMIA   R12,{R0-|
000050d0  52 31 31 7d 0d 21 2a 35  20 20 20 20 20 41 44 44  |R11}.!*5     ADD|
000050e0  20 20 20 20 20 52 31 32  2c 52 31 32 2c 23 33 32  |     R12,R12,#32|
000050f0  30 2a 33 32 3a 53 54 4d  49 41 20 20 20 52 31 32  |0*32:STMIA   R12|
00005100  2c 7b 52 30 2d 52 31 31  7d 0d 21 34 31 20 20 20  |,{R0-R11}.!41   |
00005110  20 20 53 55 42 20 20 20  20 20 52 31 32 2c 52 31  |  SUB     R12,R1|
00005120  32 2c 23 38 30 3a 53 54  4d 49 41 20 20 20 52 31  |2,#80:STMIA   R1|
00005130  32 2c 7b 52 30 2d 52 31  31 7d 0d 21 3e 31 20 20  |2,{R0-R11}.!>1  |
00005140  20 20 20 53 55 42 20 20  20 20 20 52 31 32 2c 52  |   SUB     R12,R|
00005150  31 32 2c 23 38 30 3a 53  54 4d 49 41 20 20 20 52  |12,#80:STMIA   R|
00005160  31 32 2c 7b 52 30 2d 52  31 31 7d 0d 21 48 31 20  |12,{R0-R11}.!H1 |
00005170  20 20 20 20 53 55 42 20  20 20 20 20 52 31 32 2c  |    SUB     R12,|
00005180  52 31 32 2c 23 38 30 3a  53 54 4d 49 41 20 20 20  |R12,#80:STMIA   |
00005190  52 31 32 2c 7b 52 30 2d  52 31 31 7d 0d 21 52 35  |R12,{R0-R11}.!R5|
000051a0  20 20 20 20 20 41 44 44  20 20 20 20 20 52 31 32  |     ADD     R12|
000051b0  2c 52 31 32 2c 23 33 32  30 2a 33 32 3a 53 54 4d  |,R12,#320*32:STM|
000051c0  49 41 20 20 20 52 31 32  2c 7b 52 30 2d 52 31 31  |IA   R12,{R0-R11|
000051d0  7d 0d 21 5c 31 20 20 20  20 20 41 44 44 20 20 20  |}.!\1     ADD   |
000051e0  20 20 52 31 32 2c 52 31  32 2c 23 38 30 3a 53 54  |  R12,R12,#80:ST|
000051f0  4d 49 41 20 20 20 52 31  32 2c 7b 52 30 2d 52 31  |MIA   R12,{R0-R1|
00005200  31 7d 0d 21 66 31 20 20  20 20 20 41 44 44 20 20  |1}.!f1     ADD  |
00005210  20 20 20 52 31 32 2c 52  31 32 2c 23 38 30 3a 53  |   R12,R12,#80:S|
00005220  54 4d 49 41 20 20 20 52  31 32 2c 7b 52 30 2d 52  |TMIA   R12,{R0-R|
00005230  31 31 7d 0d 21 70 31 20  20 20 20 20 41 44 44 20  |11}.!p1     ADD |
00005240  20 20 20 20 52 31 32 2c  52 31 32 2c 23 38 30 3a  |    R12,R12,#80:|
00005250  53 54 4d 49 41 20 20 20  52 31 32 2c 7b 52 30 2d  |STMIA   R12,{R0-|
00005260  52 31 31 7d 0d 21 7a 35  20 20 20 20 20 41 44 44  |R11}.!z5     ADD|
00005270  20 20 20 20 20 52 31 32  2c 52 31 32 2c 23 33 32  |     R12,R12,#32|
00005280  30 2a 33 32 3a 53 54 4d  49 41 20 20 20 52 31 32  |0*32:STMIA   R12|
00005290  2c 7b 52 30 2d 52 31 31  7d 0d 21 84 31 20 20 20  |,{R0-R11}.!.1   |
000052a0  20 20 53 55 42 20 20 20  20 20 52 31 32 2c 52 31  |  SUB     R12,R1|
000052b0  32 2c 23 38 30 3a 53 54  4d 49 41 20 20 20 52 31  |2,#80:STMIA   R1|
000052c0  32 2c 7b 52 30 2d 52 31  31 7d 0d 21 8e 31 20 20  |2,{R0-R11}.!.1  |
000052d0  20 20 20 53 55 42 20 20  20 20 20 52 31 32 2c 52  |   SUB     R12,R|
000052e0  31 32 2c 23 38 30 3a 53  54 4d 49 41 20 20 20 52  |12,#80:STMIA   R|
000052f0  31 32 2c 7b 52 30 2d 52  31 31 7d 0d 21 98 31 20  |12,{R0-R11}.!.1 |
00005300  20 20 20 20 53 55 42 20  20 20 20 20 52 31 32 2c  |    SUB     R12,|
00005310  52 31 32 2c 23 38 30 3a  53 54 4d 49 41 20 20 20  |R12,#80:STMIA   |
00005320  52 31 32 2c 7b 52 30 2d  52 31 31 7d 0d 21 a2 35  |R12,{R0-R11}.!.5|
00005330  20 20 20 20 20 41 44 44  20 20 20 20 20 52 31 32  |     ADD     R12|
00005340  2c 52 31 32 2c 23 33 32  30 2a 33 32 3a 53 54 4d  |,R12,#320*32:STM|
00005350  49 41 20 20 20 52 31 32  2c 7b 52 30 2d 52 31 31  |IA   R12,{R0-R11|
00005360  7d 0d 21 ac 31 20 20 20  20 20 41 44 44 20 20 20  |}.!.1     ADD   |
00005370  20 20 52 31 32 2c 52 31  32 2c 23 38 30 3a 53 54  |  R12,R12,#80:ST|
00005380  4d 49 41 20 20 20 52 31  32 2c 7b 52 30 2d 52 31  |MIA   R12,{R0-R1|
00005390  31 7d 0d 21 b6 31 20 20  20 20 20 41 44 44 20 20  |1}.!.1     ADD  |
000053a0  20 20 20 52 31 32 2c 52  31 32 2c 23 38 30 3a 53  |   R12,R12,#80:S|
000053b0  54 4d 49 41 20 20 20 52  31 32 2c 7b 52 30 2d 52  |TMIA   R12,{R0-R|
000053c0  31 31 7d 0d 21 c0 31 20  20 20 20 20 41 44 44 20  |11}.!.1     ADD |
000053d0  20 20 20 20 52 31 32 2c  52 31 32 2c 23 38 30 3a  |    R12,R12,#80:|
000053e0  53 54 4d 49 41 20 20 20  52 31 32 2c 7b 52 30 2d  |STMIA   R12,{R0-|
000053f0  52 31 31 7d 0d 21 ca 35  20 20 20 20 20 41 44 44  |R11}.!.5     ADD|
00005400  20 20 20 20 20 52 31 32  2c 52 31 32 2c 23 33 32  |     R12,R12,#32|
00005410  30 2a 33 32 3a 53 54 4d  49 41 20 20 20 52 31 32  |0*32:STMIA   R12|
00005420  2c 7b 52 30 2d 52 31 31  7d 0d 21 d4 31 20 20 20  |,{R0-R11}.!.1   |
00005430  20 20 53 55 42 20 20 20  20 20 52 31 32 2c 52 31  |  SUB     R12,R1|
00005440  32 2c 23 38 30 3a 53 54  4d 49 41 20 20 20 52 31  |2,#80:STMIA   R1|
00005450  32 2c 7b 52 30 2d 52 31  31 7d 0d 21 de 31 20 20  |2,{R0-R11}.!.1  |
00005460  20 20 20 53 55 42 20 20  20 20 20 52 31 32 2c 52  |   SUB     R12,R|
00005470  31 32 2c 23 38 30 3a 53  54 4d 49 41 20 20 20 52  |12,#80:STMIA   R|
00005480  31 32 2c 7b 52 30 2d 52  31 31 7d 0d 21 e8 31 20  |12,{R0-R11}.!.1 |
00005490  20 20 20 20 53 55 42 20  20 20 20 20 52 31 32 2c  |    SUB     R12,|
000054a0  52 31 32 2c 23 38 30 3a  53 54 4d 49 41 20 20 20  |R12,#80:STMIA   |
000054b0  52 31 32 2c 7b 52 30 2d  52 31 31 7d 0d 21 f2 1d  |R12,{R0-R11}.!..|
000054c0  20 20 20 20 20 4c 44 4d  49 41 20 20 20 52 31 33  |     LDMIA   R13|
000054d0  21 2c 7b 52 30 2d 52 37  7d 0d 21 fc 33 20 20 20  |!,{R0-R7}.!.3   |
000054e0  20 20 41 44 44 20 20 20  20 20 52 31 32 2c 52 31  |  ADD     R12,R1|
000054f0  33 2c 23 38 30 2d 33 32  3a 53 54 4d 49 41 20 20  |3,#80-32:STMIA  |
00005500  20 52 31 32 2c 7b 52 30  2d 52 37 7d 0d 22 06 30  | R12,{R0-R7}.".0|
00005510  20 20 20 20 20 41 44 44  20 20 20 20 20 52 31 32  |     ADD     R12|
00005520  2c 52 31 32 2c 23 38 30  3a 53 54 4d 49 41 20 20  |,R12,#80:STMIA  |
00005530  20 52 31 32 2c 7b 52 30  2d 52 37 7d 0d 22 10 30  | R12,{R0-R7}.".0|
00005540  20 20 20 20 20 41 44 44  20 20 20 20 20 52 31 32  |     ADD     R12|
00005550  2c 52 31 32 2c 23 38 30  3a 53 54 4d 49 41 20 20  |,R12,#80:STMIA  |
00005560  20 52 31 32 2c 7b 52 30  2d 52 37 7d 0d 22 1a 34  | R12,{R0-R7}.".4|
00005570  20 20 20 20 20 41 44 44  20 20 20 20 20 52 31 32  |     ADD     R12|
00005580  2c 52 31 32 2c 23 33 32  30 2a 33 32 3a 53 54 4d  |,R12,#320*32:STM|
00005590  49 41 20 20 20 52 31 32  2c 7b 52 30 2d 52 37 7d  |IA   R12,{R0-R7}|
000055a0  0d 22 24 30 20 20 20 20  20 53 55 42 20 20 20 20  |."$0     SUB    |
000055b0  20 52 31 32 2c 52 31 32  2c 23 38 30 3a 53 54 4d  | R12,R12,#80:STM|
000055c0  49 41 20 20 20 52 31 32  2c 7b 52 30 2d 52 37 7d  |IA   R12,{R0-R7}|
000055d0  0d 22 2e 30 20 20 20 20  20 53 55 42 20 20 20 20  |.".0     SUB    |
000055e0  20 52 31 32 2c 52 31 32  2c 23 38 30 3a 53 54 4d  | R12,R12,#80:STM|
000055f0  49 41 20 20 20 52 31 32  2c 7b 52 30 2d 52 37 7d  |IA   R12,{R0-R7}|
00005600  0d 22 38 30 20 20 20 20  20 53 55 42 20 20 20 20  |."80     SUB    |
00005610  20 52 31 32 2c 52 31 32  2c 23 38 30 3a 53 54 4d  | R12,R12,#80:STM|
00005620  49 41 20 20 20 52 31 32  2c 7b 52 30 2d 52 37 7d  |IA   R12,{R0-R7}|
00005630  0d 22 42 34 20 20 20 20  20 41 44 44 20 20 20 20  |."B4     ADD    |
00005640  20 52 31 32 2c 52 31 32  2c 23 33 32 30 2a 33 32  | R12,R12,#320*32|
00005650  3a 53 54 4d 49 41 20 20  20 52 31 32 2c 7b 52 30  |:STMIA   R12,{R0|
00005660  2d 52 37 7d 0d 22 4c 30  20 20 20 20 20 41 44 44  |-R7}."L0     ADD|
00005670  20 20 20 20 20 52 31 32  2c 52 31 32 2c 23 38 30  |     R12,R12,#80|
00005680  3a 53 54 4d 49 41 20 20  20 52 31 32 2c 7b 52 30  |:STMIA   R12,{R0|
00005690  2d 52 37 7d 0d 22 56 30  20 20 20 20 20 41 44 44  |-R7}."V0     ADD|
000056a0  20 20 20 20 20 52 31 32  2c 52 31 32 2c 23 38 30  |     R12,R12,#80|
000056b0  3a 53 54 4d 49 41 20 20  20 52 31 32 2c 7b 52 30  |:STMIA   R12,{R0|
000056c0  2d 52 37 7d 0d 22 60 30  20 20 20 20 20 41 44 44  |-R7}."`0     ADD|
000056d0  20 20 20 20 20 52 31 32  2c 52 31 32 2c 23 38 30  |     R12,R12,#80|
000056e0  3a 53 54 4d 49 41 20 20  20 52 31 32 2c 7b 52 30  |:STMIA   R12,{R0|
000056f0  2d 52 37 7d 0d 22 6a 34  20 20 20 20 20 41 44 44  |-R7}."j4     ADD|
00005700  20 20 20 20 20 52 31 32  2c 52 31 32 2c 23 33 32  |     R12,R12,#32|
00005710  30 2a 33 32 3a 53 54 4d  49 41 20 20 20 52 31 32  |0*32:STMIA   R12|
00005720  2c 7b 52 30 2d 52 37 7d  0d 22 74 30 20 20 20 20  |,{R0-R7}."t0    |
00005730  20 53 55 42 20 20 20 20  20 52 31 32 2c 52 31 32  | SUB     R12,R12|
00005740  2c 23 38 30 3a 53 54 4d  49 41 20 20 20 52 31 32  |,#80:STMIA   R12|
00005750  2c 7b 52 30 2d 52 37 7d  0d 22 7e 30 20 20 20 20  |,{R0-R7}."~0    |
00005760  20 53 55 42 20 20 20 20  20 52 31 32 2c 52 31 32  | SUB     R12,R12|
00005770  2c 23 38 30 3a 53 54 4d  49 41 20 20 20 52 31 32  |,#80:STMIA   R12|
00005780  2c 7b 52 30 2d 52 37 7d  0d 22 88 30 20 20 20 20  |,{R0-R7}.".0    |
00005790  20 53 55 42 20 20 20 20  20 52 31 32 2c 52 31 32  | SUB     R12,R12|
000057a0  2c 23 38 30 3a 53 54 4d  49 41 20 20 20 52 31 32  |,#80:STMIA   R12|
000057b0  2c 7b 52 30 2d 52 37 7d  0d 22 92 34 20 20 20 20  |,{R0-R7}.".4    |
000057c0  20 41 44 44 20 20 20 20  20 52 31 32 2c 52 31 32  | ADD     R12,R12|
000057d0  2c 23 33 32 30 2a 33 32  3a 53 54 4d 49 41 20 20  |,#320*32:STMIA  |
000057e0  20 52 31 32 2c 7b 52 30  2d 52 37 7d 0d 22 9c 30  | R12,{R0-R7}.".0|
000057f0  20 20 20 20 20 41 44 44  20 20 20 20 20 52 31 32  |     ADD     R12|
00005800  2c 52 31 32 2c 23 38 30  3a 53 54 4d 49 41 20 20  |,R12,#80:STMIA  |
00005810  20 52 31 32 2c 7b 52 30  2d 52 37 7d 0d 22 a6 30  | R12,{R0-R7}.".0|
00005820  20 20 20 20 20 41 44 44  20 20 20 20 20 52 31 32  |     ADD     R12|
00005830  2c 52 31 32 2c 23 38 30  3a 53 54 4d 49 41 20 20  |,R12,#80:STMIA  |
00005840  20 52 31 32 2c 7b 52 30  2d 52 37 7d 0d 22 b0 30  | R12,{R0-R7}.".0|
00005850  20 20 20 20 20 41 44 44  20 20 20 20 20 52 31 32  |     ADD     R12|
00005860  2c 52 31 32 2c 23 38 30  3a 53 54 4d 49 41 20 20  |,R12,#80:STMIA  |
00005870  20 52 31 32 2c 7b 52 30  2d 52 37 7d 0d 22 ba 34  | R12,{R0-R7}.".4|
00005880  20 20 20 20 20 41 44 44  20 20 20 20 20 52 31 32  |     ADD     R12|
00005890  2c 52 31 32 2c 23 33 32  30 2a 33 32 3a 53 54 4d  |,R12,#320*32:STM|
000058a0  49 41 20 20 20 52 31 32  2c 7b 52 30 2d 52 37 7d  |IA   R12,{R0-R7}|
000058b0  0d 22 c4 30 20 20 20 20  20 53 55 42 20 20 20 20  |.".0     SUB    |
000058c0  20 52 31 32 2c 52 31 32  2c 23 38 30 3a 53 54 4d  | R12,R12,#80:STM|
000058d0  49 41 20 20 20 52 31 32  2c 7b 52 30 2d 52 37 7d  |IA   R12,{R0-R7}|
000058e0  0d 22 ce 30 20 20 20 20  20 53 55 42 20 20 20 20  |.".0     SUB    |
000058f0  20 52 31 32 2c 52 31 32  2c 23 38 30 3a 53 54 4d  | R12,R12,#80:STM|
00005900  49 41 20 20 20 52 31 32  2c 7b 52 30 2d 52 37 7d  |IA   R12,{R0-R7}|
00005910  0d 22 d8 30 20 20 20 20  20 53 55 42 20 20 20 20  |.".0     SUB    |
00005920  20 52 31 32 2c 52 31 32  2c 23 38 30 3a 53 54 4d  | R12,R12,#80:STM|
00005930  49 41 20 20 20 52 31 32  2c 7b 52 30 2d 52 37 7d  |IA   R12,{R0-R7}|
00005940  0d 22 e2 34 20 20 20 20  20 41 44 44 20 20 20 20  |.".4     ADD    |
00005950  20 52 31 32 2c 52 31 32  2c 23 33 32 30 2a 33 32  | R12,R12,#320*32|
00005960  3a 53 54 4d 49 41 20 20  20 52 31 32 2c 7b 52 30  |:STMIA   R12,{R0|
00005970  2d 52 37 7d 0d 22 ec 30  20 20 20 20 20 41 44 44  |-R7}.".0     ADD|
00005980  20 20 20 20 20 52 31 32  2c 52 31 32 2c 23 38 30  |     R12,R12,#80|
00005990  3a 53 54 4d 49 41 20 20  20 52 31 32 2c 7b 52 30  |:STMIA   R12,{R0|
000059a0  2d 52 37 7d 0d 22 f6 30  20 20 20 20 20 41 44 44  |-R7}.".0     ADD|
000059b0  20 20 20 20 20 52 31 32  2c 52 31 32 2c 23 38 30  |     R12,R12,#80|
000059c0  3a 53 54 4d 49 41 20 20  20 52 31 32 2c 7b 52 30  |:STMIA   R12,{R0|
000059d0  2d 52 37 7d 0d 23 00 30  20 20 20 20 20 41 44 44  |-R7}.#.0     ADD|
000059e0  20 20 20 20 20 52 31 32  2c 52 31 32 2c 23 38 30  |     R12,R12,#80|
000059f0  3a 53 54 4d 49 41 20 20  20 52 31 32 2c 7b 52 30  |:STMIA   R12,{R0|
00005a00  2d 52 37 7d 0d 23 0a 34  20 20 20 20 20 41 44 44  |-R7}.#.4     ADD|
00005a10  20 20 20 20 20 52 31 32  2c 52 31 32 2c 23 33 32  |     R12,R12,#32|
00005a20  30 2a 33 32 3a 53 54 4d  49 41 20 20 20 52 31 32  |0*32:STMIA   R12|
00005a30  2c 7b 52 30 2d 52 37 7d  0d 23 14 30 20 20 20 20  |,{R0-R7}.#.0    |
00005a40  20 53 55 42 20 20 20 20  20 52 31 32 2c 52 31 32  | SUB     R12,R12|
00005a50  2c 23 38 30 3a 53 54 4d  49 41 20 20 20 52 31 32  |,#80:STMIA   R12|
00005a60  2c 7b 52 30 2d 52 37 7d  0d 23 1e 30 20 20 20 20  |,{R0-R7}.#.0    |
00005a70  20 53 55 42 20 20 20 20  20 52 31 32 2c 52 31 32  | SUB     R12,R12|
00005a80  2c 23 38 30 3a 53 54 4d  49 41 20 20 20 52 31 32  |,#80:STMIA   R12|
00005a90  2c 7b 52 30 2d 52 37 7d  0d 23 28 30 20 20 20 20  |,{R0-R7}.#(0    |
00005aa0  20 53 55 42 20 20 20 20  20 52 31 32 2c 52 31 32  | SUB     R12,R12|
00005ab0  2c 23 38 30 3a 53 54 4d  49 41 20 20 20 52 31 32  |,#80:STMIA   R12|
00005ac0  2c 7b 52 30 2d 52 37 7d  0d 23 32 1d 20 20 20 20  |,{R0-R7}.#2.    |
00005ad0  20 41 44 44 20 20 20 20  20 52 31 33 2c 52 31 33  | ADD     R13,R13|
00005ae0  2c 23 32 34 30 0d 23 3c  1b 20 20 20 20 20 53 55  |,#240.#<.     SU|
00005af0  42 53 20 20 20 20 52 31  34 2c 52 31 34 2c 23 31  |BS    R14,R14,#1|
00005b00  0d 23 46 19 20 20 20 20  20 42 47 54 20 20 20 20  |.#F.     BGT    |
00005b10  20 72 65 70 6c 6f 6f 70  33 0d 23 50 18 20 20 4c  | reploop3.#P.  L|
00005b20  44 52 20 20 20 20 20 52  31 33 2c 72 31 33 73 74  |DR     R13,r13st|
00005b30  6f 0d 23 5a 1f 20 20 4c  44 4d 46 44 20 20 20 52  |o.#Z.  LDMFD   R|
00005b40  31 33 21 2c 7b 52 30 2d  52 31 32 2c 50 43 7d 5e  |13!,{R0-R12,PC}^|
00005b50  0d 23 64 04 0d 23 6e 04  0d 23 78 0d 20 20 2e 72  |.#d..#n..#x.  .r|
00005b60  31 33 73 74 6f 0d 23 82  0f 20 20 45 51 55 44 20  |13sto.#..  EQUD |
00005b70  20 20 20 30 0d 23 8c 04  0d 23 96 32 20 20 5c 20  |   0.#...#.2  \ |
00005b80  52 6f 75 74 69 6e 65 20  74 6f 20 70 6c 6f 74 20  |Routine to plot |
00005b90  61 6e 79 20 73 70 68 65  72 65 20 69 6e 20 6e 6f  |any sphere in no|
00005ba0  72 6d 61 6c 20 72 61 6e  67 65 0d 23 a0 2c 20 20  |rmal range.#.,  |
00005bb0  5c 20 52 30 20 70 6f 69  6e 74 73 20 74 6f 20 70  |\ R0 points to p|
00005bc0  6f 73 20 76 65 63 74 6f  72 2c 20 73 69 7a 65 20  |os vector, size |
00005bd0  28 30 2d 31 33 29 0d 23  aa 10 20 20 2e 67 65 6e  |(0-13).#..  .gen|
00005be0  73 70 68 65 72 65 0d 23  b4 1f 20 20 53 54 4d 46  |sphere.#..  STMF|
00005bf0  44 20 20 20 52 31 33 21  2c 7b 52 30 2d 52 31 32  |D   R13!,{R0-R12|
00005c00  2c 52 31 34 7d 0d 23 be  05 20 0d 23 c8 18 20 20  |,R14}.#.. .#..  |
00005c10  4c 44 4d 49 41 20 20 20  52 30 2c 7b 52 30 2d 52  |LDMIA   R0,{R0-R|
00005c20  33 7d 0d 23 d2 05 20 0d  23 dc 13 20 20 43 4d 50  |3}.#.. .#..  CMP|
00005c30  20 20 20 20 20 52 33 2c  23 31 0d 23 e6 1f 20 20  |     R3,#1.#..  |
00005c40  4c 44 4d 4c 45 46 44 20  52 31 33 21 2c 7b 52 30  |LDMLEFD R13!,{R0|
00005c50  2d 52 31 32 2c 50 43 7d  5e 0d 23 f0 04 0d 23 fa  |-R12,PC}^.#...#.|
00005c60  1a 20 20 4d 4f 56 20 20  20 20 20 52 30 2c 52 30  |.  MOV     R0,R0|
00005c70  2c 41 53 52 20 23 37 0d  24 04 32 20 20 41 44 44  |,ASR #7.$.2  ADD|
00005c80  20 20 20 20 20 52 30 2c  52 30 2c 23 78 6f 72 69  |     R0,R0,#xori|
00005c90  67 69 6e 20 20 20 20 20  20 20 20 20 5c 20 54 72  |gin         \ Tr|
00005ca0  61 6e 73 6c 61 74 65 20  58 0d 24 0e 05 20 0d 24  |anslate X.$.. .$|
00005cb0  18 1d 20 20 41 44 44 20  20 20 20 20 52 31 2c 52  |..  ADD     R1,R|
00005cc0  31 2c 52 31 2c 41 53 52  20 23 33 0d 24 22 1a 20  |1,R1,ASR #3.$". |
00005cd0  20 4d 4f 56 20 20 20 20  20 52 31 2c 52 31 2c 41  | MOV     R1,R1,A|
00005ce0  53 52 20 23 38 0d 24 2c  32 20 20 52 53 42 20 20  |SR #8.$,2  RSB  |
00005cf0  20 20 20 52 31 2c 52 31  2c 23 79 6f 72 69 67 69  |   R1,R1,#yorigi|
00005d00  6e 20 20 20 20 20 20 20  20 20 5c 20 54 72 61 6e  |n         \ Tran|
00005d10  73 6c 61 74 65 20 59 0d  24 36 05 20 0d 24 40 2c  |slate Y.$6. .$@,|
00005d20  20 20 4d 4f 56 20 20 20  20 20 52 32 2c 23 31 38  |  MOV     R2,#18|
00005d30  20 20 20 20 20 20 20 20  20 20 20 20 20 5c 20 68  |             \ h|
00005d40  65 69 67 68 74 20 31 38  0d 24 4a 05 20 0d 24 54  |eight 18.$J. .$T|
00005d50  1f 20 20 4c 44 52 20 20  20 20 20 52 35 2c 73 70  |.  LDR     R5,sp|
00005d60  72 69 74 65 66 69 6c 65  62 61 73 65 0d 24 5e 15  |ritefilebase.$^.|
00005d70  20 20 4d 4f 56 20 20 20  20 20 52 34 2c 23 32 38  |  MOV     R4,#28|
00005d80  38 0d 24 68 16 20 20 53  55 42 20 20 20 20 20 52  |8.$h.  SUB     R|
00005d90  33 2c 52 33 2c 23 32 0d  24 72 3e 20 20 4d 4c 41  |3,R3,#2.$r>  MLA|
00005da0  20 20 20 20 20 52 33 2c  52 34 2c 52 33 2c 52 35  |     R3,R4,R3,R5|
00005db0  20 20 20 20 20 20 20 20  5c 20 70 6f 69 6e 74 20  |        \ point |
00005dc0  74 6f 20 61 70 70 72 6f  70 72 69 61 74 65 20 73  |to appropriate s|
00005dd0  70 68 65 72 65 0d 24 7c  04 0d 24 86 27 20 20 42  |phere.$|..$.'  B|
00005de0  4c 20 20 20 20 20 20 70  6c 6f 74 73 70 72 69 74  |L      plotsprit|
00005df0  65 61 20 20 20 20 20 20  20 20 5c 20 70 6c 6f 74  |ea        \ plot|
00005e00  0d 24 90 05 20 0d 24 9a  1f 20 20 4c 44 4d 46 44  |.$.. .$..  LDMFD|
00005e10  20 20 20 52 31 33 21 2c  7b 52 30 2d 52 31 32 2c  |   R13!,{R0-R12,|
00005e20  50 43 7d 5e 0d 24 a4 04  0d 24 ae 1c 20 20 5c 20  |PC}^.$...$..  \ |
00005e30  52 6f 75 74 69 6e 65 20  74 6f 20 70 6c 6f 74 20  |Routine to plot |
00005e40  68 65 61 64 0d 24 b8 2b  20 20 5c 20 52 30 20 70  |head.$.+  \ R0 p|
00005e50  6f 69 6e 74 73 20 74 6f  20 70 6f 73 20 76 65 63  |oints to pos vec|
00005e60  74 6f 72 2c 20 65 78 70  72 65 73 73 69 6f 6e 0d  |tor, expression.|
00005e70  24 c2 0b 20 20 2e 68 65  61 64 0d 24 cc 1f 20 20  |$..  .head.$..  |
00005e80  53 54 4d 46 44 20 20 20  52 31 33 21 2c 7b 52 30  |STMFD   R13!,{R0|
00005e90  2d 52 31 32 2c 52 31 34  7d 0d 24 d6 05 20 0d 24  |-R12,R14}.$.. .$|
00005ea0  e0 18 20 20 4c 44 4d 49  41 20 20 20 52 30 2c 7b  |..  LDMIA   R0,{|
00005eb0  52 30 2d 52 33 7d 0d 24  ea 05 20 0d 24 f4 1a 20  |R0-R3}.$.. .$.. |
00005ec0  20 4d 4f 56 20 20 20 20  20 52 30 2c 52 30 2c 41  | MOV     R0,R0,A|
00005ed0  53 52 20 23 37 0d 24 fe  32 20 20 41 44 44 20 20  |SR #7.$.2  ADD  |
00005ee0  20 20 20 52 30 2c 52 30  2c 23 78 6f 72 69 67 69  |   R0,R0,#xorigi|
00005ef0  6e 2d 31 36 20 20 20 20  20 20 5c 20 54 72 61 6e  |n-16      \ Tran|
00005f00  73 6c 61 74 65 20 58 0d  25 08 05 20 0d 25 12 1d  |slate X.%.. .%..|
00005f10  20 20 41 44 44 20 20 20  20 20 52 31 2c 52 31 2c  |  ADD     R1,R1,|
00005f20  52 31 2c 41 53 52 20 23  33 0d 25 1c 1a 20 20 4d  |R1,ASR #3.%..  M|
00005f30  4f 56 20 20 20 20 20 52  31 2c 52 31 2c 41 53 52  |OV     R1,R1,ASR|
00005f40  20 23 38 0d 25 26 32 20  20 52 53 42 20 20 20 20  | #8.%&2  RSB    |
00005f50  20 52 31 2c 52 31 2c 23  79 6f 72 69 67 69 6e 20  | R1,R1,#yorigin |
00005f60  20 20 20 20 20 20 20 20  5c 20 54 72 61 6e 73 6c  |        \ Transl|
00005f70  61 74 65 20 59 0d 25 30  05 20 0d 25 3a 2c 20 20  |ate Y.%0. .%:,  |
00005f80  4d 4f 56 20 20 20 20 20  52 32 2c 23 33 36 20 20  |MOV     R2,#36  |
00005f90  20 20 20 20 20 20 20 20  20 20 20 5c 20 68 65 69  |           \ hei|
00005fa0  67 68 74 20 33 36 0d 25  44 05 20 0d 25 4e 1f 20  |ght 36.%D. .%N. |
00005fb0  20 4c 44 52 20 20 20 20  20 52 35 2c 73 70 72 69  | LDR     R5,spri|
00005fc0  74 65 66 69 6c 65 62 61  73 65 0d 25 58 15 20 20  |tefilebase.%X.  |
00005fd0  4d 4f 56 20 20 20 20 20  52 34 2c 23 32 38 38 0d  |MOV     R4,#288.|
00005fe0  25 62 1d 20 20 41 44 44  20 20 20 20 20 52 33 2c  |%b.  ADD     R3,|
00005ff0  52 33 2c 52 33 2c 4c 53  4c 20 23 33 0d 25 6c 18  |R3,R3,LSL #3.%l.|
00006000  20 20 41 44 44 20 20 20  20 20 52 33 2c 52 33 2c  |  ADD     R3,R3,|
00006010  23 32 36 38 0d 25 76 3e  20 20 4d 4c 41 20 20 20  |#268.%v>  MLA   |
00006020  20 20 52 33 2c 52 34 2c  52 33 2c 52 35 20 20 20  |  R3,R4,R3,R5   |
00006030  20 20 20 20 20 5c 20 70  6f 69 6e 74 20 74 6f 20  |     \ point to |
00006040  61 70 70 72 6f 70 72 69  61 74 65 20 73 70 72 69  |appropriate spri|
00006050  74 65 0d 25 80 04 0d 25  8a 2c 20 20 42 4c 20 20  |te.%...%.,  BL  |
00006060  20 20 20 20 70 6c 6f 74  73 70 72 69 74 65 61 20  |    plotspritea |
00006070  20 20 20 20 20 20 20 5c  20 70 6c 6f 74 20 6c 65  |       \ plot le|
00006080  66 74 0d 25 94 04 0d 25  9e 1a 20 20 41 44 44 20  |ft.%...%..  ADD |
00006090  20 20 20 20 52 33 2c 52  33 2c 23 32 38 38 2a 32  |    R3,R3,#288*2|
000060a0  0d 25 a8 17 20 20 41 44  44 20 20 20 20 20 52 30  |.%..  ADD     R0|
000060b0  2c 52 30 2c 23 33 32 0d  25 b2 2d 20 20 42 4c 20  |,R0,#32.%.-  BL |
000060c0  20 20 20 20 20 70 6c 6f  74 73 70 72 69 74 65 61  |     plotspritea|
000060d0  20 20 20 20 20 20 20 20  5c 20 70 6c 6f 74 20 72  |        \ plot r|
000060e0  69 67 68 74 0d 25 bc 04  0d 25 c6 1f 20 20 4c 44  |ight.%...%..  LD|
000060f0  4d 46 44 20 20 20 52 31  33 21 2c 7b 52 30 2d 52  |MFD   R13!,{R0-R|
00006100  31 32 2c 50 43 7d 5e 0d  25 d0 04 0d 25 da 47 20  |12,PC}^.%...%.G |
00006110  20 5c 20 42 75 6e 67 69  65 20 6c 69 6e 65 20 72  | \ Bungie line r|
00006120  6f 75 74 69 6e 65 20 64  72 61 77 73 20 6c 69 6e  |outine draws lin|
00006130  65 20 77 69 74 68 20 61  20 73 70 68 65 72 65 20  |e with a sphere |
00006140  73 69 7a 65 20 31 30 20  61 74 20 66 61 72 20 65  |size 10 at far e|
00006150  6e 64 0d 25 e4 3b 20 20  5c 20 52 30 20 70 6f 69  |nd.%.;  \ R0 poi|
00006160  6e 74 73 20 74 6f 20 76  65 63 74 6f 72 20 41 2c  |nts to vector A,|
00006170  20 76 65 63 74 6f 72 20  42 2c 20 6c 65 6e 67 74  | vector B, lengt|
00006180  68 20 61 73 20 69 6e 20  74 61 62 6c 65 0d 25 ee  |h as in table.%.|
00006190  11 20 20 2e 62 75 6e 67  69 65 6c 69 6e 65 0d 25  |.  .bungieline.%|
000061a0  f8 1f 20 20 53 54 4d 46  44 20 20 20 52 31 33 21  |..  STMFD   R13!|
000061b0  2c 7b 52 30 2d 52 31 32  2c 52 31 34 7d 0d 26 02  |,{R0-R12,R14}.&.|
000061c0  04 0d 26 0c 14 20 20 4d  4f 56 20 20 20 20 20 52  |..&..  MOV     R|
000061d0  31 32 2c 52 30 0d 26 16  18 20 20 4c 44 4d 49 41  |12,R0.&..  LDMIA|
000061e0  20 20 20 52 30 2c 7b 52  30 2d 52 36 7d 0d 26 20  |   R0,{R0-R6}.& |
000061f0  05 20 0d 26 2a 19 20 20  4d 4c 41 20 20 20 20 20  |. .&*.  MLA     |
00006200  52 30 2c 52 33 2c 52 36  2c 52 30 0d 26 34 19 20  |R0,R3,R6,R0.&4. |
00006210  20 4d 4c 41 20 20 20 20  20 52 31 2c 52 34 2c 52  | MLA     R1,R4,R|
00006220  36 2c 52 31 0d 26 3e 30  20 20 4d 4c 41 20 20 20  |6,R1.&>0  MLA   |
00006230  20 20 52 32 2c 52 35 2c  52 36 2c 52 32 20 20 20  |  R2,R5,R6,R2   |
00006240  20 20 20 20 20 5c 20 47  6f 20 74 6f 20 66 61 72  |     \ Go to far|
00006250  20 65 6e 64 0d 26 48 04  0d 26 52 1a 20 20 4d 4f  | end.&H..&R.  MO|
00006260  56 20 20 20 20 20 52 30  2c 52 30 2c 41 53 52 20  |V     R0,R0,ASR |
00006270  23 37 0d 26 5c 32 20 20  41 44 44 20 20 20 20 20  |#7.&\2  ADD     |
00006280  52 30 2c 52 30 2c 23 78  6f 72 69 67 69 6e 20 20  |R0,R0,#xorigin  |
00006290  20 20 20 20 20 20 20 5c  20 54 72 61 6e 73 6c 61  |       \ Transla|
000062a0  74 65 20 58 0d 26 66 05  20 0d 26 70 1d 20 20 41  |te X.&f. .&p.  A|
000062b0  44 44 20 20 20 20 20 52  31 2c 52 31 2c 52 31 2c  |DD     R1,R1,R1,|
000062c0  41 53 52 20 23 33 0d 26  7a 1a 20 20 4d 4f 56 20  |ASR #3.&z.  MOV |
000062d0  20 20 20 20 52 31 2c 52  31 2c 41 53 52 20 23 38  |    R1,R1,ASR #8|
000062e0  0d 26 84 32 20 20 52 53  42 20 20 20 20 20 52 31  |.&.2  RSB     R1|
000062f0  2c 52 31 2c 23 79 6f 72  69 67 69 6e 20 20 20 20  |,R1,#yorigin    |
00006300  20 20 20 20 20 5c 20 54  72 61 6e 73 6c 61 74 65  |     \ Translate|
00006310  20 59 0d 26 8e 05 20 0d  26 98 2c 20 20 4d 4f 56  | Y.&.. .&.,  MOV|
00006320  20 20 20 20 20 52 32 2c  23 31 38 20 20 20 20 20  |     R2,#18     |
00006330  20 20 20 20 20 20 20 20  5c 20 68 65 69 67 68 74  |        \ height|
00006340  20 31 38 0d 26 a2 05 20  0d 26 ac 1f 20 20 4c 44  | 18.&.. .&..  LD|
00006350  52 20 20 20 20 20 52 35  2c 73 70 72 69 74 65 66  |R     R5,spritef|
00006360  69 6c 65 62 61 73 65 0d  26 b6 15 20 20 4d 4f 56  |ilebase.&..  MOV|
00006370  20 20 20 20 20 52 34 2c  23 32 38 38 0d 26 c0 16  |     R4,#288.&..|
00006380  20 20 4d 4f 56 20 20 20  20 20 52 33 2c 23 31 30  |  MOV     R3,#10|
00006390  2d 32 0d 26 ca 3e 20 20  4d 4c 41 20 20 20 20 20  |-2.&.>  MLA     |
000063a0  52 33 2c 52 34 2c 52 33  2c 52 35 20 20 20 20 20  |R3,R4,R3,R5     |
000063b0  20 20 20 5c 20 70 6f 69  6e 74 20 74 6f 20 61 70  |   \ point to ap|
000063c0  70 72 6f 70 72 69 61 74  65 20 73 70 68 65 72 65  |propriate sphere|
000063d0  0d 26 d4 04 0d 26 de 27  20 20 42 4c 20 20 20 20  |.&...&.'  BL    |
000063e0  20 20 70 6c 6f 74 73 70  72 69 74 65 61 20 20 20  |  plotspritea   |
000063f0  20 20 20 20 20 5c 20 70  6c 6f 74 0d 26 e8 04 0d  |     \ plot.&...|
00006400  26 f2 14 20 20 4d 4f 56  20 20 20 20 20 52 30 2c  |&..  MOV     R0,|
00006410  52 31 32 0d 26 fc 1b 20  20 42 20 20 20 20 20 20  |R12.&..  B      |
00006420  20 6c 69 6e 65 73 69 64  65 65 6e 74 72 79 0d 27  | linesideentry.'|
00006430  06 04 0d 27 10 35 20 20  5c 20 52 6f 75 74 69 6e  |...'.5  \ Routin|
00006440  65 20 74 6f 20 70 75 74  20 6c 69 6e 65 20 73 74  |e to put line st|
00006450  61 74 69 6e 67 20 61 74  20 41 2c 20 64 69 72 20  |ating at A, dir |
00006460  42 20 69 6e 20 33 64 0d  27 1a 3b 20 20 5c 20 52  |B in 3d.'.;  \ R|
00006470  30 20 70 6f 69 6e 74 73  20 74 6f 20 76 65 63 74  |0 points to vect|
00006480  6f 72 20 41 2c 20 76 65  63 74 6f 72 20 42 2c 20  |or A, vector B, |
00006490  6c 65 6e 67 74 68 20 61  73 20 69 6e 20 74 61 62  |length as in tab|
000064a0  6c 65 0d 27 24 0b 20 20  2e 6c 69 6e 65 0d 27 2e  |le.'$.  .line.'.|
000064b0  1f 20 20 53 54 4d 46 44  20 20 20 52 31 33 21 2c  |.  STMFD   R13!,|
000064c0  7b 52 30 2d 52 31 32 2c  52 31 34 7d 0d 27 38 04  |{R0-R12,R14}.'8.|
000064d0  0d 27 42 14 20 20 2e 6c  69 6e 65 73 69 64 65 65  |.'B.  .linesidee|
000064e0  6e 74 72 79 0d 27 4c 04  0d 27 56 19 20 20 4c 44  |ntry.'L..'V.  LD|
000064f0  4d 49 41 20 20 20 52 30  2c 7b 52 34 2d 52 31 30  |MIA   R0,{R4-R10|
00006500  7d 0d 27 60 04 0d 27 6a  14 20 20 43 4d 50 20 20  |}.'`..'j.  CMP  |
00006510  20 20 20 52 31 30 2c 23  30 0d 27 74 1f 20 20 4c  |   R10,#0.'t.  L|
00006520  44 4d 45 51 46 44 20 52  31 33 21 2c 7b 52 30 2d  |DMEQFD R13!,{R0-|
00006530  52 31 32 2c 50 43 7d 5e  0d 27 7e 16 20 20 52 53  |R12,PC}^.'~.  RS|
00006540  42 4c 54 20 20 20 52 37  2c 52 37 2c 23 30 0d 27  |BLT   R7,R7,#0.'|
00006550  88 16 20 20 52 53 42 4c  54 20 20 20 52 38 2c 52  |..  RSBLT   R8,R|
00006560  38 2c 23 30 0d 27 92 16  20 20 52 53 42 4c 54 20  |8,#0.'..  RSBLT |
00006570  20 20 52 39 2c 52 39 2c  23 30 0d 27 9c 18 20 20  |  R9,R9,#0.'..  |
00006580  52 53 42 4c 54 20 20 20  52 31 30 2c 52 31 30 2c  |RSBLT   R10,R10,|
00006590  23 30 0d 27 a6 05 20 0d  27 b0 13 20 20 43 4d 50  |#0.'.. .'..  CMP|
000065a0  20 20 20 20 20 52 39 2c  23 30 0d 27 ba 1a 20 20  |     R9,#0.'..  |
000065b0  42 4c 45 20 20 20 20 20  6c 69 6e 65 66 6f 72 77  |BLE     lineforw|
000065c0  61 72 64 73 0d 27 c4 1a  20 20 4d 4c 41 20 20 20  |ards.'..  MLA   |
000065d0  20 20 52 34 2c 52 37 2c  52 31 30 2c 52 34 0d 27  |  R4,R7,R10,R4.'|
000065e0  ce 1a 20 20 4d 4c 41 20  20 20 20 20 52 35 2c 52  |..  MLA     R5,R|
000065f0  38 2c 52 31 30 2c 52 35  0d 27 d8 16 20 20 52 53  |8,R10,R5.'..  RS|
00006600  42 20 20 20 20 20 52 37  2c 52 37 2c 23 30 0d 27  |B     R7,R7,#0.'|
00006610  e2 41 20 20 52 53 42 20  20 20 20 20 52 38 2c 52  |.A  RSB     R8,R|
00006620  38 2c 23 30 20 20 20 20  20 20 20 20 20 20 20 5c  |8,#0           \|
00006630  20 65 6e 73 75 72 65 20  6c 69 6e 65 20 67 6f 65  | ensure line goe|
00006640  73 20 74 6f 77 61 72 64  20 76 69 65 77 65 72 0d  |s toward viewer.|
00006650  27 ec 13 20 20 2e 6c 69  6e 65 66 6f 72 77 61 72  |'..  .lineforwar|
00006660  64 73 0d 27 f6 04 0d 28  00 1d 20 20 41 44 44 20  |ds.'...(..  ADD |
00006670  20 20 20 20 52 34 2c 52  34 2c 52 37 2c 41 53 52  |    R4,R4,R7,ASR|
00006680  20 23 31 0d 28 0a 39 20  20 41 44 44 20 20 20 20  | #1.(.9  ADD    |
00006690  20 52 35 2c 52 35 2c 52  38 2c 41 53 52 20 23 31  | R5,R5,R8,ASR #1|
000066a0  20 20 20 20 5c 20 61 64  64 20 68 61 6c 66 20 61  |    \ add half a|
000066b0  20 75 6e 69 74 20 74 6f  20 70 6f 73 0d 28 14 04  | unit to pos.(..|
000066c0  0d 28 1e 19 20 20 4c 44  52 20 20 20 20 20 52 31  |.(..  LDR     R1|
000066d0  2c 6d 75 6c 63 6f 6e 73  74 0d 28 28 04 0d 28 32  |,mulconst.((..(2|
000066e0  1e 20 20 52 53 42 20 20  20 20 20 52 31 31 2c 52  |.  RSB     R11,R|
000066f0  37 2c 23 32 35 36 30 2b  31 36 30 0d 28 3c 18 20  |7,#2560+160.(<. |
00006700  20 4d 55 4c 20 20 20 20  20 52 31 31 2c 52 31 2c  | MUL     R11,R1,|
00006710  52 31 31 0d 28 46 28 20  20 4d 4f 56 20 20 20 20  |R11.(F(  MOV    |
00006720  20 52 31 31 2c 52 31 31  2c 41 53 52 20 23 32 35  | R11,R11,ASR #25|
00006730  20 20 20 5c 20 63 6f 6c  75 6d 6e 0d 28 50 04 0d  |   \ column.(P..|
00006740  28 5a 1e 20 20 41 44 44  20 20 20 20 20 52 31 32  |(Z.  ADD     R12|
00006750  2c 52 38 2c 23 32 35 36  30 2b 31 36 30 0d 28 64  |,R8,#2560+160.(d|
00006760  18 20 20 4d 55 4c 20 20  20 20 20 52 31 32 2c 52  |.  MUL     R12,R|
00006770  31 2c 52 31 32 0d 28 6e  25 20 20 4d 4f 56 20 20  |1,R12.(n%  MOV  |
00006780  20 20 20 52 31 32 2c 52  31 32 2c 41 53 52 20 23  |   R12,R12,ASR #|
00006790  32 35 20 20 20 5c 20 72  6f 77 0d 28 78 04 0d 28  |25   \ row.(x..(|
000067a0  82 17 20 20 84 52 20 20  20 20 20 52 30 2c 52 31  |..  .R     R0,R1|
000067b0  31 2c 52 31 32 0d 28 8c  14 20 20 54 53 54 20 20  |1,R12.(..  TST  |
000067c0  20 20 20 52 30 2c 23 31  36 0d 28 96 19 20 20 52  |   R0,#16.(..  R|
000067d0  53 42 4e 45 20 20 20 52  31 31 2c 52 31 31 2c 23  |SBNE   R11,R11,#|
000067e0  31 36 0d 28 a0 52 20 20  52 53 42 4e 45 20 20 20  |16.(.R  RSBNE   |
000067f0  52 31 32 2c 52 31 32 2c  23 31 36 20 20 20 20 20  |R12,R12,#16     |
00006800  5c 20 69 66 20 65 69 74  68 65 72 20 67 6f 20 61  |\ if either go a|
00006810  62 6f 76 65 20 31 35 20  77 72 61 70 20 72 6f 75  |bove 15 wrap rou|
00006820  6e 64 20 62 79 20 69 6e  76 65 72 74 69 6e 67 20  |nd by inverting |
00006830  42 4f 54 48 0d 28 aa 04  0d 28 b4 1a 20 20 4c 44  |BOTH.(...(..  LD|
00006840  52 20 20 20 20 20 52 31  34 2c 6c 69 6e 65 74 79  |R     R14,linety|
00006850  70 65 0d 28 be 14 20 20  43 4d 50 20 20 20 20 20  |pe.(..  CMP     |
00006860  52 31 34 2c 23 30 0d 28  c8 18 20 20 41 44 44 45  |R14,#0.(..  ADDE|
00006870  51 20 20 20 52 33 2c 52  31 31 2c 23 31 32 0d 28  |Q   R3,R11,#12.(|
00006880  d2 1e 20 20 41 44 44 45  51 20 20 20 52 33 2c 52  |..  ADDEQ   R3,R|
00006890  33 2c 52 31 32 2c 4c 53  4c 20 23 34 0d 28 dc 13  |3,R12,LSL #4.(..|
000068a0  20 20 4d 4f 56 4e 45 20  20 20 52 33 2c 23 38 0d  |  MOVNE   R3,#8.|
000068b0  28 e6 1f 20 20 4c 44 52  20 20 20 20 20 52 30 2c  |(..  LDR     R0,|
000068c0  73 70 72 69 74 65 66 69  6c 65 62 61 73 65 0d 28  |spritefilebase.(|
000068d0  f0 15 20 20 4d 4f 56 20  20 20 20 20 52 31 2c 23  |..  MOV     R1,#|
000068e0  32 38 38 0d 28 fa 44 20  20 4d 4c 41 20 20 20 20  |288.(.D  MLA    |
000068f0  20 52 33 2c 52 31 2c 52  33 2c 52 30 20 20 20 20  | R3,R1,R3,R0    |
00006900  20 20 20 20 5c 20 70 6f  69 6e 74 20 74 6f 20 61  |    \ point to a|
00006910  70 70 72 6f 70 72 69 61  74 65 20 6c 69 6e 65 20  |ppropriate line |
00006920  73 65 63 74 69 6f 6e 0d  29 04 2c 20 20 4d 4f 56  |section.).,  MOV|
00006930  20 20 20 20 20 52 32 2c  23 31 38 20 20 20 20 20  |     R2,#18     |
00006940  20 20 20 20 20 20 20 20  5c 20 68 65 69 67 68 74  |        \ height|
00006950  20 31 38 0d 29 0e 04 0d  29 18 0c 20 20 2e 6c 6c  | 18.)...)..  .ll|
00006960  6f 6f 70 0d 29 22 1c 20  20 20 20 4d 4f 56 20 20  |oop.)".    MOV  |
00006970  20 20 20 52 30 2c 52 34  2c 41 53 52 20 23 37 0d  |   R0,R4,ASR #7.|
00006980  29 2c 34 20 20 20 20 41  44 44 20 20 20 20 20 52  |),4    ADD     R|
00006990  30 2c 52 30 2c 23 78 6f  72 69 67 69 6e 20 20 20  |0,R0,#xorigin   |
000069a0  20 20 20 20 20 20 5c 20  54 72 61 6e 73 6c 61 74  |      \ Translat|
000069b0  65 20 58 0d 29 36 05 20  0d 29 40 1f 20 20 20 20  |e X.)6. .)@.    |
000069c0  41 44 44 20 20 20 20 20  52 31 2c 52 35 2c 52 35  |ADD     R1,R5,R5|
000069d0  2c 41 53 52 20 23 33 0d  29 4a 1c 20 20 20 20 4d  |,ASR #3.)J.    M|
000069e0  4f 56 20 20 20 20 20 52  31 2c 52 31 2c 41 53 52  |OV     R1,R1,ASR|
000069f0  20 23 38 0d 29 54 34 20  20 20 20 52 53 42 20 20  | #8.)T4    RSB  |
00006a00  20 20 20 52 31 2c 52 31  2c 23 79 6f 72 69 67 69  |   R1,R1,#yorigi|
00006a10  6e 20 20 20 20 20 20 20  20 20 5c 20 54 72 61 6e  |n         \ Tran|
00006a20  73 6c 61 74 65 20 59 0d  29 5e 05 20 0d 29 68 29  |slate Y.)^. .)h)|
00006a30  20 20 20 20 42 4c 20 20  20 20 20 20 70 6c 6f 74  |    BL      plot|
00006a40  73 70 72 69 74 65 61 20  20 20 20 20 20 20 20 5c  |spritea        \|
00006a50  20 70 6c 6f 74 0d 29 72  04 0d 29 7c 18 20 20 20  | plot.)r..)|.   |
00006a60  20 41 44 44 20 20 20 20  20 52 34 2c 52 34 2c 52  | ADD     R4,R4,R|
00006a70  37 0d 29 86 34 20 20 20  20 41 44 44 20 20 20 20  |7.).4    ADD    |
00006a80  20 52 35 2c 52 35 2c 52  38 20 20 20 20 20 20 20  | R5,R5,R8       |
00006a90  20 20 20 20 5c 20 61 64  64 20 75 6e 69 74 20 74  |    \ add unit t|
00006aa0  6f 20 70 6f 73 0d 29 90  05 20 0d 29 9a 1a 20 20  |o pos.).. .)..  |
00006ab0  20 20 53 55 42 53 20 20  20 20 52 31 30 2c 52 31  |  SUBS    R10,R1|
00006ac0  30 2c 23 31 0d 29 a4 15  20 20 20 20 42 47 54 20  |0,#1.)..    BGT |
00006ad0  20 20 20 20 6c 6c 6f 6f  70 0d 29 ae 04 0d 29 b8  |    lloop.)...).|
00006ae0  1f 20 20 4c 44 4d 46 44  20 20 20 52 31 33 21 2c  |.  LDMFD   R13!,|
00006af0  7b 52 30 2d 52 31 32 2c  50 43 7d 5e 0d 29 c2 04  |{R0-R12,PC}^.)..|
00006b00  0d 29 cc 0f 20 20 2e 6d  75 6c 63 6f 6e 73 74 0d  |.)..  .mulconst.|
00006b10  29 d6 14 20 20 45 51 55  44 20 20 20 20 31 30 34  |)..  EQUD    104|
00006b20  38 35 38 0d 29 e0 04 0d  29 ea 12 20 20 2e 70 6c  |858.)...)..  .pl|
00006b30  6f 74 74 61 62 71 69 6e  64 0d 29 f4 16 20 20 45  |ottabqind.)..  E|
00006b40  51 55 44 20 20 20 20 70  6c 6f 74 74 61 62 71 0d  |QUD    plottabq.|
00006b50  29 fe 04 0d 2a 08 24 20  20 5c 20 52 6f 75 74 69  |)...*.$  \ Routi|
00006b60  6e 65 20 74 6f 20 64 72  61 77 20 66 75 6e 6b 79  |ne to draw funky|
00006b70  20 64 61 6e 63 65 72 0d  2a 12 11 20 20 2e 64 72  | dancer.*..  .dr|
00006b80  61 77 70 65 72 73 6f 6e  0d 2a 1c 1f 20 20 53 54  |awperson.*..  ST|
00006b90  4d 46 44 20 20 20 52 31  33 21 2c 7b 52 30 2d 52  |MFD   R13!,{R0-R|
00006ba0  31 32 2c 52 31 34 7d 0d  2a 26 04 0d 2a 30 13 20  |12,R14}.*&..*0. |
00006bb0  20 4d 4f 56 20 20 20 20  20 52 30 2c 23 30 0d 2a  | MOV     R0,#0.*|
00006bc0  3a 1c 20 20 4c 44 52 20  20 20 20 20 52 31 2c 70  |:.  LDR     R1,p|
00006bd0  6c 6f 74 74 61 62 71 69  6e 64 0d 2a 44 15 20 20  |lottabqind.*D.  |
00006be0  53 54 52 20 20 20 20 20  52 30 2c 5b 52 31 5d 0d  |STR     R0,[R1].|
00006bf0  2a 4e 04 0d 2a 58 19 20  20 41 44 52 20 20 20 20  |*N..*X.  ADR    |
00006c00  20 52 30 2c 74 6f 72 73  6f 70 6f 73 0d 2a 62 1b  | R0,torsopos.*b.|
00006c10  20 20 41 44 52 20 20 20  20 20 52 31 2c 74 6f 72  |  ADR     R1,tor|
00006c20  73 6f 74 72 61 6e 73 0d  2a 6c 18 20 20 41 44 52  |sotrans.*l.  ADR|
00006c30  20 20 20 20 20 52 32 2c  72 65 61 6c 70 6f 73 0d  |     R2,realpos.|
00006c40  2a 76 17 20 20 42 4c 20  20 20 20 20 20 74 72 61  |*v.  BL      tra|
00006c50  6e 73 66 6f 72 6d 0d 2a  80 04 0d 2a 8a 18 20 20  |nsform.*...*..  |
00006c60  41 44 52 20 20 20 20 20  52 30 2c 76 65 63 74 65  |ADR     R0,vecte|
00006c70  6d 70 0d 2a 94 1b 20 20  41 44 52 20 20 20 20 20  |mp.*..  ADR     |
00006c80  52 31 2c 74 6f 72 73 6f  74 72 61 6e 73 0d 2a 9e  |R1,torsotrans.*.|
00006c90  1d 20 20 41 44 52 20 20  20 20 20 52 32 2c 6d 69  |.  ADR     R2,mi|
00006ca0  6e 75 73 75 6e 69 74 76  65 63 0d 2a a8 17 20 20  |nusunitvec.*..  |
00006cb0  42 4c 20 20 20 20 20 20  74 72 61 6e 73 66 6f 72  |BL      transfor|
00006cc0  6d 0d 2a b2 18 20 20 41  44 52 20 20 20 20 20 52  |m.*..  ADR     R|
00006cd0  30 2c 74 65 6d 70 70 6f  73 0d 2a bc 18 20 20 41  |0,temppos.*..  A|
00006ce0  44 52 20 20 20 20 20 52  31 2c 76 65 63 74 65 6d  |DR     R1,vectem|
00006cf0  70 0d 2a c6 15 20 20 4d  4f 56 20 20 20 20 20 52  |p.*..  MOV     R|
00006d00  32 2c 23 37 35 32 0d 2a  d0 19 20 20 41 44 52 20  |2,#752.*..  ADR |
00006d10  20 20 20 20 52 33 2c 74  6f 72 73 6f 70 6f 73 0d  |    R3,torsopos.|
00006d20  2a da 17 20 20 42 4c 20  20 20 20 20 20 76 65 63  |*..  BL      vec|
00006d30  74 6f 72 6d 6c 61 0d 2a  e4 18 20 20 41 44 52 20  |tormla.*..  ADR |
00006d40  20 20 20 20 52 31 2c 76  65 63 74 65 6d 70 0d 2a  |    R1,vectemp.*|
00006d50  ee 18 20 20 41 44 52 20  20 20 20 20 52 30 2c 74  |..  ADR     R0,t|
00006d60  65 6d 70 70 6f 73 0d 2a  f8 13 20 20 4d 4f 56 20  |emppos.*..  MOV |
00006d70  20 20 20 20 52 32 2c 23  31 0d 2b 02 15 20 20 42  |    R2,#1.+..  B|
00006d80  4c 20 20 20 20 20 20 6c  6f 67 6c 69 6e 65 0d 2b  |L      logline.+|
00006d90  0c 18 20 20 41 44 52 20  20 20 20 20 52 30 2c 74  |..  ADR     R0,t|
00006da0  65 6d 70 70 6f 73 0d 2b  16 18 20 20 41 44 52 20  |emppos.+..  ADR |
00006db0  20 20 20 20 52 31 2c 76  65 63 74 65 6d 70 0d 2b  |    R1,vectemp.+|
00006dc0  20 18 20 20 4d 4f 56 20  20 20 20 20 52 32 2c 23  | .  MOV     R2,#|
00006dd0  31 2a 31 30 32 34 0d 2b  2a 1d 20 20 41 44 44 20  |1*1024.+*.  ADD |
00006de0  20 20 20 20 52 32 2c 52  32 2c 23 37 35 32 2b 31  |    R2,R2,#752+1|
00006df0  35 30 34 0d 2b 34 19 20  20 41 44 52 20 20 20 20  |504.+4.  ADR    |
00006e00  20 52 33 2c 74 6f 72 73  6f 70 6f 73 0d 2b 3e 28  | R3,torsopos.+>(|
00006e10  20 20 42 4c 20 20 20 20  20 20 76 65 63 74 6f 72  |  BL      vector|
00006e20  6d 6c 61 20 20 20 20 20  20 20 20 20 20 20 5c 20  |mla           \ |
00006e30  6e 65 63 6b 0d 2b 48 04  0d 2b 52 18 20 20 41 44  |neck.+H..+R.  AD|
00006e40  52 20 20 20 20 20 52 30  2c 74 65 6d 70 70 6f 73  |R     R0,temppos|
00006e50  0d 2b 5c 13 20 20 4d 4f  56 20 20 20 20 20 52 31  |.+\.  MOV     R1|
00006e60  2c 23 30 0d 2b 66 15 20  20 42 4c 20 20 20 20 20  |,#0.+f.  BL     |
00006e70  20 6c 6f 67 68 65 61 64  0d 2b 70 04 0d 2b 7a 18  | loghead.+p..+z.|
00006e80  20 20 41 44 52 20 20 20  20 20 52 30 2c 76 65 63  |  ADR     R0,vec|
00006e90  74 65 6d 70 0d 2b 84 1b  20 20 41 44 52 20 20 20  |temp.+..  ADR   |
00006ea0  20 20 52 31 2c 74 6f 72  73 6f 74 72 61 6e 73 0d  |  R1,torsotrans.|
00006eb0  2b 8e 1c 20 20 41 44 52  20 20 20 20 20 52 32 2c  |+..  ADR     R2,|
00006ec0  73 69 64 65 77 61 79 73  76 65 63 0d 2b 98 17 20  |sidewaysvec.+.. |
00006ed0  20 42 4c 20 20 20 20 20  20 74 72 61 6e 73 66 6f  | BL      transfo|
00006ee0  72 6d 0d 2b a2 18 20 20  41 44 52 20 20 20 20 20  |rm.+..  ADR     |
00006ef0  52 30 2c 74 65 6d 70 70  6f 73 0d 2b ac 18 20 20  |R0,temppos.+..  |
00006f00  41 44 52 20 20 20 20 20  52 31 2c 76 65 63 74 65  |ADR     R1,vecte|
00006f10  6d 70 0d 2b b6 16 20 20  4d 56 4e 20 20 20 20 20  |mp.+..  MVN     |
00006f20  52 32 2c 23 31 33 32 38  0d 2b c0 19 20 20 41 44  |R2,#1328.+..  AD|
00006f30  52 20 20 20 20 20 52 33  2c 74 6f 72 73 6f 70 6f  |R     R3,torsopo|
00006f40  73 0d 2b ca 17 20 20 42  4c 20 20 20 20 20 20 76  |s.+..  BL      v|
00006f50  65 63 74 6f 72 6d 6c 61  0d 2b d4 19 20 20 41 44  |ectormla.+..  AD|
00006f60  52 20 20 20 20 20 52 30  2c 6d 61 74 74 65 6d 70  |R     R0,mattemp|
00006f70  31 0d 2b de 1f 20 20 41  44 52 20 20 20 20 20 52  |1.+..  ADR     R|
00006f80  31 2c 6c 73 68 6f 75 6c  64 65 72 74 72 61 6e 73  |1,lshouldertrans|
00006f90  0d 2b e8 1b 20 20 41 44  52 20 20 20 20 20 52 32  |.+..  ADR     R2|
00006fa0  2c 74 6f 72 73 6f 74 72  61 6e 73 0d 2b f2 2e 20  |,torsotrans.+.. |
00006fb0  20 42 4c 20 20 20 20 20  20 6d 75 6c 74 69 70 6c  | BL      multipl|
00006fc0  79 20 20 20 20 20 20 20  20 20 5c 20 6c 65 66 74  |y         \ left|
00006fd0  20 73 68 6f 75 6c 64 65  72 0d 2b fc 04 0d 2c 06  | shoulder.+...,.|
00006fe0  18 20 20 41 44 52 20 20  20 20 20 52 30 2c 76 65  |.  ADR     R0,ve|
00006ff0  63 74 65 6d 70 0d 2c 10  19 20 20 41 44 52 20 20  |ctemp.,..  ADR  |
00007000  20 20 20 52 31 2c 6d 61  74 74 65 6d 70 31 0d 2c  |   R1,mattemp1.,|
00007010  1a 18 20 20 41 44 52 20  20 20 20 20 52 32 2c 75  |..  ADR     R2,u|
00007020  6e 69 74 76 65 63 0d 2c  24 17 20 20 42 4c 20 20  |nitvec.,$.  BL  |
00007030  20 20 20 20 74 72 61 6e  73 66 6f 72 6d 0d 2c 2e  |    transform.,.|
00007040  18 20 20 41 44 52 20 20  20 20 20 52 30 2c 74 65  |.  ADR     R0,te|
00007050  6d 70 70 6f 73 0d 2c 38  18 20 20 41 44 52 20 20  |mppos.,8.  ADR  |
00007060  20 20 20 52 31 2c 76 65  63 74 65 6d 70 0d 2c 42  |   R1,vectemp.,B|
00007070  18 20 20 4d 4f 56 20 20  20 20 20 52 32 2c 23 35  |.  MOV     R2,#5|
00007080  2a 31 30 32 34 0d 2c 4c  2e 20 20 41 44 52 20 20  |*1024.,L.  ADR  |
00007090  20 20 20 52 33 2c 74 65  6d 70 70 6f 73 20 20 20  |   R3,temppos   |
000070a0  20 20 20 5c 20 6c 65 66  74 20 75 70 70 65 72 20  |   \ left upper |
000070b0  61 72 6d 0d 2c 56 17 20  20 42 4c 20 20 20 20 20  |arm.,V.  BL     |
000070c0  20 76 65 63 74 6f 72 6d  6c 61 0d 2c 60 18 20 20  | vectormla.,`.  |
000070d0  41 44 52 20 20 20 20 20  52 30 2c 74 65 6d 70 70  |ADR     R0,tempp|
000070e0  6f 73 0d 2c 6a 18 20 20  41 44 52 20 20 20 20 20  |os.,j.  ADR     |
000070f0  52 31 2c 76 65 63 74 65  6d 70 0d 2c 74 18 20 20  |R1,vectemp.,t.  |
00007100  4d 56 4e 20 20 20 20 20  52 32 2c 23 ac 20 28 2d  |MVN     R2,#. (-|
00007110  35 29 0d 2c 7e 1b 20 20  42 4c 20 20 20 20 20 20  |5).,~.  BL      |
00007120  6c 6f 67 62 75 6e 67 69  65 6c 69 6e 65 0d 2c 88  |logbungieline.,.|
00007130  04 0d 2c 92 19 20 20 41  44 52 20 20 20 20 20 52  |..,..  ADR     R|
00007140  30 2c 6d 61 74 74 65 6d  70 32 0d 2c 9c 1c 20 20  |0,mattemp2.,..  |
00007150  41 44 52 20 20 20 20 20  52 31 2c 6c 65 6c 62 6f  |ADR     R1,lelbo|
00007160  77 74 72 61 6e 73 0d 2c  a6 19 20 20 41 44 52 20  |wtrans.,..  ADR |
00007170  20 20 20 20 52 32 2c 6d  61 74 74 65 6d 70 31 0d  |    R2,mattemp1.|
00007180  2c b0 2b 20 20 42 4c 20  20 20 20 20 20 6d 75 6c  |,.+  BL      mul|
00007190  74 69 70 6c 79 20 20 20  20 20 20 20 20 20 5c 20  |tiply         \ |
000071a0  6c 65 66 74 20 65 6c 62  6f 77 0d 2c ba 04 0d 2c  |left elbow.,...,|
000071b0  c4 18 20 20 41 44 52 20  20 20 20 20 52 30 2c 76  |..  ADR     R0,v|
000071c0  65 63 74 65 6d 70 0d 2c  ce 19 20 20 41 44 52 20  |ectemp.,..  ADR |
000071d0  20 20 20 20 52 31 2c 6d  61 74 74 65 6d 70 32 0d  |    R1,mattemp2.|
000071e0  2c d8 18 20 20 41 44 52  20 20 20 20 20 52 32 2c  |,..  ADR     R2,|
000071f0  75 6e 69 74 76 65 63 0d  2c e2 17 20 20 42 4c 20  |unitvec.,..  BL |
00007200  20 20 20 20 20 74 72 61  6e 73 66 6f 72 6d 0d 2c  |     transform.,|
00007210  ec 18 20 20 41 44 52 20  20 20 20 20 52 30 2c 74  |..  ADR     R0,t|
00007220  65 6d 70 70 6f 73 0d 2c  f6 18 20 20 41 44 52 20  |emppos.,..  ADR |
00007230  20 20 20 20 52 31 2c 76  65 63 74 65 6d 70 0d 2d  |    R1,vectemp.-|
00007240  00 13 20 20 4d 4f 56 20  20 20 20 20 52 32 2c 23  |..  MOV     R2,#|
00007250  35 0d 2d 0a 2e 20 20 42  4c 20 20 20 20 20 20 6c  |5.-..  BL      l|
00007260  6f 67 62 75 6e 67 69 65  6c 69 6e 65 20 20 20 5c  |ogbungieline   \|
00007270  20 6c 65 66 74 20 6c 6f  77 65 72 20 61 72 6d 0d  | left lower arm.|
00007280  2d 14 04 0d 2d 1e 18 20  20 41 44 52 20 20 20 20  |-...-..  ADR    |
00007290  20 52 30 2c 76 65 63 74  65 6d 70 0d 2d 28 1b 20  | R0,vectemp.-(. |
000072a0  20 41 44 52 20 20 20 20  20 52 31 2c 74 6f 72 73  | ADR     R1,tors|
000072b0  6f 74 72 61 6e 73 0d 2d  32 1c 20 20 41 44 52 20  |otrans.-2.  ADR |
000072c0  20 20 20 20 52 32 2c 73  69 64 65 77 61 79 73 76  |    R2,sidewaysv|
000072d0  65 63 0d 2d 3c 17 20 20  42 4c 20 20 20 20 20 20  |ec.-<.  BL      |
000072e0  74 72 61 6e 73 66 6f 72  6d 0d 2d 46 18 20 20 41  |transform.-F.  A|
000072f0  44 52 20 20 20 20 20 52  30 2c 74 65 6d 70 70 6f  |DR     R0,temppo|
00007300  73 0d 2d 50 18 20 20 41  44 52 20 20 20 20 20 52  |s.-P.  ADR     R|
00007310  31 2c 76 65 63 74 65 6d  70 0d 2d 5a 16 20 20 4d  |1,vectemp.-Z.  M|
00007320  4f 56 20 20 20 20 20 52  32 2c 23 31 33 32 38 0d  |OV     R2,#1328.|
00007330  2d 64 19 20 20 41 44 52  20 20 20 20 20 52 33 2c  |-d.  ADR     R3,|
00007340  74 6f 72 73 6f 70 6f 73  0d 2d 6e 17 20 20 42 4c  |torsopos.-n.  BL|
00007350  20 20 20 20 20 20 76 65  63 74 6f 72 6d 6c 61 0d  |      vectormla.|
00007360  2d 78 19 20 20 41 44 52  20 20 20 20 20 52 30 2c  |-x.  ADR     R0,|
00007370  6d 61 74 74 65 6d 70 31  0d 2d 82 1f 20 20 41 44  |mattemp1.-..  AD|
00007380  52 20 20 20 20 20 52 31  2c 72 73 68 6f 75 6c 64  |R     R1,rshould|
00007390  65 72 74 72 61 6e 73 0d  2d 8c 1b 20 20 41 44 52  |ertrans.-..  ADR|
000073a0  20 20 20 20 20 52 32 2c  74 6f 72 73 6f 74 72 61  |     R2,torsotra|
000073b0  6e 73 0d 2d 96 2f 20 20  42 4c 20 20 20 20 20 20  |ns.-./  BL      |
000073c0  6d 75 6c 74 69 70 6c 79  20 20 20 20 20 20 20 20  |multiply        |
000073d0  20 5c 20 72 69 67 68 74  20 73 68 6f 75 6c 64 65  | \ right shoulde|
000073e0  72 0d 2d a0 04 0d 2d aa  18 20 20 41 44 52 20 20  |r.-...-..  ADR  |
000073f0  20 20 20 52 30 2c 76 65  63 74 65 6d 70 0d 2d b4  |   R0,vectemp.-.|
00007400  19 20 20 41 44 52 20 20  20 20 20 52 31 2c 6d 61  |.  ADR     R1,ma|
00007410  74 74 65 6d 70 31 0d 2d  be 18 20 20 41 44 52 20  |ttemp1.-..  ADR |
00007420  20 20 20 20 52 32 2c 75  6e 69 74 76 65 63 0d 2d  |    R2,unitvec.-|
00007430  c8 17 20 20 42 4c 20 20  20 20 20 20 74 72 61 6e  |..  BL      tran|
00007440  73 66 6f 72 6d 0d 2d d2  18 20 20 41 44 52 20 20  |sform.-..  ADR  |
00007450  20 20 20 52 30 2c 74 65  6d 70 70 6f 73 0d 2d dc  |   R0,temppos.-.|
00007460  18 20 20 41 44 52 20 20  20 20 20 52 31 2c 76 65  |.  ADR     R1,ve|
00007470  63 74 65 6d 70 0d 2d e6  18 20 20 4d 4f 56 20 20  |ctemp.-..  MOV  |
00007480  20 20 20 52 32 2c 23 35  2a 31 30 32 34 0d 2d f0  |   R2,#5*1024.-.|
00007490  2f 20 20 41 44 52 20 20  20 20 20 52 33 2c 74 65  |/  ADR     R3,te|
000074a0  6d 70 70 6f 73 20 20 20  20 20 20 5c 20 72 69 67  |mppos      \ rig|
000074b0  68 74 20 75 70 70 65 72  20 61 72 6d 0d 2d fa 17  |ht upper arm.-..|
000074c0  20 20 42 4c 20 20 20 20  20 20 76 65 63 74 6f 72  |  BL      vector|
000074d0  6d 6c 61 0d 2e 04 18 20  20 41 44 52 20 20 20 20  |mla....  ADR    |
000074e0  20 52 30 2c 74 65 6d 70  70 6f 73 0d 2e 0e 18 20  | R0,temppos.... |
000074f0  20 41 44 52 20 20 20 20  20 52 31 2c 76 65 63 74  | ADR     R1,vect|
00007500  65 6d 70 0d 2e 18 18 20  20 4d 56 4e 20 20 20 20  |emp....  MVN    |
00007510  20 52 32 2c 23 ac 20 28  2d 35 29 0d 2e 22 1b 20  | R2,#. (-5)..". |
00007520  20 42 4c 20 20 20 20 20  20 6c 6f 67 62 75 6e 67  | BL      logbung|
00007530  69 65 6c 69 6e 65 0d 2e  2c 05 20 0d 2e 36 19 20  |ieline..,. ..6. |
00007540  20 41 44 52 20 20 20 20  20 52 30 2c 6d 61 74 74  | ADR     R0,matt|
00007550  65 6d 70 32 0d 2e 40 1c  20 20 41 44 52 20 20 20  |emp2..@.  ADR   |
00007560  20 20 52 31 2c 72 65 6c  62 6f 77 74 72 61 6e 73  |  R1,relbowtrans|
00007570  0d 2e 4a 19 20 20 41 44  52 20 20 20 20 20 52 32  |..J.  ADR     R2|
00007580  2c 6d 61 74 74 65 6d 70  31 0d 2e 54 2c 20 20 42  |,mattemp1..T,  B|
00007590  4c 20 20 20 20 20 20 6d  75 6c 74 69 70 6c 79 20  |L      multiply |
000075a0  20 20 20 20 20 20 20 20  5c 20 72 69 67 68 74 20  |        \ right |
000075b0  65 6c 62 6f 77 0d 2e 5e  04 0d 2e 68 18 20 20 41  |elbow..^...h.  A|
000075c0  44 52 20 20 20 20 20 52  30 2c 76 65 63 74 65 6d  |DR     R0,vectem|
000075d0  70 0d 2e 72 19 20 20 41  44 52 20 20 20 20 20 52  |p..r.  ADR     R|
000075e0  31 2c 6d 61 74 74 65 6d  70 32 0d 2e 7c 18 20 20  |1,mattemp2..|.  |
000075f0  41 44 52 20 20 20 20 20  52 32 2c 75 6e 69 74 76  |ADR     R2,unitv|
00007600  65 63 0d 2e 86 17 20 20  42 4c 20 20 20 20 20 20  |ec....  BL      |
00007610  74 72 61 6e 73 66 6f 72  6d 0d 2e 90 18 20 20 41  |transform....  A|
00007620  44 52 20 20 20 20 20 52  30 2c 74 65 6d 70 70 6f  |DR     R0,temppo|
00007630  73 0d 2e 9a 18 20 20 41  44 52 20 20 20 20 20 52  |s....  ADR     R|
00007640  31 2c 76 65 63 74 65 6d  70 0d 2e a4 13 20 20 4d  |1,vectemp....  M|
00007650  4f 56 20 20 20 20 20 52  32 2c 23 35 0d 2e ae 30  |OV     R2,#5...0|
00007660  20 20 42 4c 20 20 20 20  20 20 6c 6f 67 62 75 6e  |  BL      logbun|
00007670  67 69 65 6c 69 6e 65 20  20 20 20 5c 20 72 69 67  |gieline    \ rig|
00007680  68 74 20 6c 6f 77 65 72  20 61 72 6d 0d 2e b8 04  |ht lower arm....|
00007690  0d 2e c2 18 20 20 41 44  52 20 20 20 20 20 52 30  |....  ADR     R0|
000076a0  2c 76 65 63 74 65 6d 70  0d 2e cc 1b 20 20 41 44  |,vectemp....  AD|
000076b0  52 20 20 20 20 20 52 31  2c 74 6f 72 73 6f 74 72  |R     R1,torsotr|
000076c0  61 6e 73 0d 2e d6 18 20  20 41 44 52 20 20 20 20  |ans....  ADR    |
000076d0  20 52 32 2c 75 6e 69 74  76 65 63 0d 2e e0 17 20  | R2,unitvec.... |
000076e0  20 42 4c 20 20 20 20 20  20 74 72 61 6e 73 66 6f  | BL      transfo|
000076f0  72 6d 0d 2e ea 18 20 20  41 44 52 20 20 20 20 20  |rm....  ADR     |
00007700  52 30 2c 74 65 6d 70 70  6f 73 0d 2e f4 18 20 20  |R0,temppos....  |
00007710  41 44 52 20 20 20 20 20  52 31 2c 76 65 63 74 65  |ADR     R1,vecte|
00007720  6d 70 0d 2e fe 15 20 20  4d 4f 56 20 20 20 20 20  |mp....  MOV     |
00007730  52 32 2c 23 37 35 32 0d  2f 08 19 20 20 41 44 52  |R2,#752./..  ADR|
00007740  20 20 20 20 20 52 33 2c  74 6f 72 73 6f 70 6f 73  |     R3,torsopos|
00007750  0d 2f 12 17 20 20 42 4c  20 20 20 20 20 20 76 65  |./..  BL      ve|
00007760  63 74 6f 72 6d 6c 61 0d  2f 1c 18 20 20 41 44 52  |ctormla./..  ADR|
00007770  20 20 20 20 20 52 31 2c  76 65 63 74 65 6d 70 0d  |     R1,vectemp.|
00007780  2f 26 18 20 20 41 44 52  20 20 20 20 20 52 30 2c  |/&.  ADR     R0,|
00007790  74 65 6d 70 70 6f 73 0d  2f 30 13 20 20 4d 4f 56  |temppos./0.  MOV|
000077a0  20 20 20 20 20 52 32 2c  23 34 0d 2f 3a 15 20 20  |     R2,#4./:.  |
000077b0  42 4c 20 20 20 20 20 20  6c 6f 67 6c 69 6e 65 0d  |BL      logline.|
000077c0  2f 44 17 20 20 41 44 52  20 20 20 20 20 52 30 2c  |/D.  ADR     R0,|
000077d0  62 75 6d 70 6f 73 0d 2f  4e 18 20 20 41 44 52 20  |bumpos./N.  ADR |
000077e0  20 20 20 20 52 31 2c 76  65 63 74 65 6d 70 0d 2f  |    R1,vectemp./|
000077f0  58 18 20 20 4d 4f 56 20  20 20 20 20 52 32 2c 23  |X.  MOV     R2,#|
00007800  34 2a 31 30 32 34 0d 2f  62 1a 20 20 41 44 44 20  |4*1024./b.  ADD |
00007810  20 20 20 20 52 32 2c 52  32 2c 23 32 2a 37 35 32  |    R2,R2,#2*752|
00007820  0d 2f 6c 19 20 20 41 44  52 20 20 20 20 20 52 33  |./l.  ADR     R3|
00007830  2c 74 6f 72 73 6f 70 6f  73 0d 2f 76 29 20 20 42  |,torsopos./v)  B|
00007840  4c 20 20 20 20 20 20 76  65 63 74 6f 72 6d 6c 61  |L      vectormla|
00007850  20 20 20 20 20 20 20 20  20 20 20 5c 20 74 6f 72  |           \ tor|
00007860  73 6f 0d 2f 80 04 0d 2f  8a 18 20 20 41 44 52 20  |so./.../..  ADR |
00007870  20 20 20 20 52 30 2c 76  65 63 74 65 6d 70 0d 2f  |    R0,vectemp./|
00007880  94 1b 20 20 41 44 52 20  20 20 20 20 52 31 2c 74  |..  ADR     R1,t|
00007890  6f 72 73 6f 74 72 61 6e  73 0d 2f 9e 1c 20 20 41  |orsotrans./..  A|
000078a0  44 52 20 20 20 20 20 52  32 2c 73 69 64 65 77 61  |DR     R2,sidewa|
000078b0  79 73 76 65 63 0d 2f a8  17 20 20 42 4c 20 20 20  |ysvec./..  BL   |
000078c0  20 20 20 74 72 61 6e 73  66 6f 72 6d 0d 2f b2 18  |   transform./..|
000078d0  20 20 41 44 52 20 20 20  20 20 52 30 2c 74 65 6d  |  ADR     R0,tem|
000078e0  70 70 6f 73 0d 2f bc 18  20 20 41 44 52 20 20 20  |ppos./..  ADR   |
000078f0  20 20 52 31 2c 76 65 63  74 65 6d 70 0d 2f c6 16  |  R1,vectemp./..|
00007900  20 20 4d 56 4e 20 20 20  20 20 52 32 2c 23 31 33  |  MVN     R2,#13|
00007910  32 38 0d 2f d0 17 20 20  41 44 52 20 20 20 20 20  |28./..  ADR     |
00007920  52 33 2c 62 75 6d 70 6f  73 0d 2f da 17 20 20 42  |R3,bumpos./..  B|
00007930  4c 20 20 20 20 20 20 76  65 63 74 6f 72 6d 6c 61  |L      vectormla|
00007940  0d 2f e4 19 20 20 41 44  52 20 20 20 20 20 52 30  |./..  ADR     R0|
00007950  2c 6d 61 74 74 65 6d 70  31 0d 2f ee 1a 20 20 41  |,mattemp1./..  A|
00007960  44 52 20 20 20 20 20 52  31 2c 6c 68 69 70 74 72  |DR     R1,lhiptr|
00007970  61 6e 73 0d 2f f8 1b 20  20 41 44 52 20 20 20 20  |ans./..  ADR    |
00007980  20 52 32 2c 74 6f 72 73  6f 74 72 61 6e 73 0d 30  | R2,torsotrans.0|
00007990  02 2c 20 20 42 4c 20 20  20 20 20 20 6d 75 6c 74  |.,  BL      mult|
000079a0  69 70 6c 79 20 20 20 20  20 20 20 20 20 20 20 20  |iply            |
000079b0  5c 20 6c 65 66 74 20 68  69 70 0d 30 0c 04 0d 30  |\ left hip.0...0|
000079c0  16 18 20 20 41 44 52 20  20 20 20 20 52 30 2c 76  |..  ADR     R0,v|
000079d0  65 63 74 65 6d 70 0d 30  20 19 20 20 41 44 52 20  |ectemp.0 .  ADR |
000079e0  20 20 20 20 52 31 2c 6d  61 74 74 65 6d 70 31 0d  |    R1,mattemp1.|
000079f0  30 2a 18 20 20 41 44 52  20 20 20 20 20 52 32 2c  |0*.  ADR     R2,|
00007a00  75 6e 69 74 76 65 63 0d  30 34 17 20 20 42 4c 20  |unitvec.04.  BL |
00007a10  20 20 20 20 20 74 72 61  6e 73 66 6f 72 6d 0d 30  |     transform.0|
00007a20  3e 18 20 20 41 44 52 20  20 20 20 20 52 30 2c 74  |>.  ADR     R0,t|
00007a30  65 6d 70 70 6f 73 0d 30  48 18 20 20 41 44 52 20  |emppos.0H.  ADR |
00007a40  20 20 20 20 52 31 2c 76  65 63 74 65 6d 70 0d 30  |    R1,vectemp.0|
00007a50  52 18 20 20 4d 4f 56 20  20 20 20 20 52 32 2c 23  |R.  MOV     R2,#|
00007a60  35 2a 31 30 32 34 0d 30  5c 18 20 20 41 44 52 20  |5*1024.0\.  ADR |
00007a70  20 20 20 20 52 33 2c 74  65 6d 70 70 6f 73 0d 30  |    R3,temppos.0|
00007a80  66 2d 20 20 42 4c 20 20  20 20 20 20 76 65 63 74  |f-  BL      vect|
00007a90  6f 72 6d 6c 61 20 20 20  20 20 20 20 20 20 20 5c  |ormla          \|
00007aa0  20 6c 65 66 74 20 74 68  69 67 68 0d 30 70 18 20  | left thigh.0p. |
00007ab0  20 41 44 52 20 20 20 20  20 52 31 2c 76 65 63 74  | ADR     R1,vect|
00007ac0  65 6d 70 0d 30 7a 18 20  20 41 44 52 20 20 20 20  |emp.0z.  ADR    |
00007ad0  20 52 30 2c 74 65 6d 70  70 6f 73 0d 30 84 18 20  | R0,temppos.0.. |
00007ae0  20 4d 56 4e 20 20 20 20  20 52 32 2c 23 ac 20 28  | MVN     R2,#. (|
00007af0  2d 35 29 0d 30 8e 1b 20  20 42 4c 20 20 20 20 20  |-5).0..  BL     |
00007b00  20 6c 6f 67 62 75 6e 67  69 65 6c 69 6e 65 0d 30  | logbungieline.0|
00007b10  98 04 0d 30 a2 19 20 20  41 44 52 20 20 20 20 20  |...0..  ADR     |
00007b20  52 30 2c 6d 61 74 74 65  6d 70 32 0d 30 ac 1b 20  |R0,mattemp2.0.. |
00007b30  20 41 44 52 20 20 20 20  20 52 31 2c 6c 6b 6e 65  | ADR     R1,lkne|
00007b40  65 74 72 61 6e 73 0d 30  b6 19 20 20 41 44 52 20  |etrans.0..  ADR |
00007b50  20 20 20 20 52 32 2c 6d  61 74 74 65 6d 70 31 0d  |    R2,mattemp1.|
00007b60  30 c0 2d 20 20 42 4c 20  20 20 20 20 20 6d 75 6c  |0.-  BL      mul|
00007b70  74 69 70 6c 79 20 20 20  20 20 20 20 20 20 20 20  |tiply           |
00007b80  20 5c 20 6c 65 66 74 20  6b 6e 65 65 0d 30 ca 04  | \ left knee.0..|
00007b90  0d 30 d4 18 20 20 41 44  52 20 20 20 20 20 52 30  |.0..  ADR     R0|
00007ba0  2c 76 65 63 74 65 6d 70  0d 30 de 19 20 20 41 44  |,vectemp.0..  AD|
00007bb0  52 20 20 20 20 20 52 31  2c 6d 61 74 74 65 6d 70  |R     R1,mattemp|
00007bc0  32 0d 30 e8 18 20 20 41  44 52 20 20 20 20 20 52  |2.0..  ADR     R|
00007bd0  32 2c 75 6e 69 74 76 65  63 0d 30 f2 17 20 20 42  |2,unitvec.0..  B|
00007be0  4c 20 20 20 20 20 20 74  72 61 6e 73 66 6f 72 6d  |L      transform|
00007bf0  0d 30 fc 18 20 20 41 44  52 20 20 20 20 20 52 31  |.0..  ADR     R1|
00007c00  2c 76 65 63 74 65 6d 70  0d 31 06 18 20 20 41 44  |,vectemp.1..  AD|
00007c10  52 20 20 20 20 20 52 30  2c 74 65 6d 70 70 6f 73  |R     R0,temppos|
00007c20  0d 31 10 13 20 20 4d 4f  56 20 20 20 20 20 52 32  |.1..  MOV     R2|
00007c30  2c 23 35 0d 31 1a 2c 20  20 42 4c 20 20 20 20 20  |,#5.1.,  BL     |
00007c40  20 6c 6f 67 62 75 6e 67  69 65 6c 69 6e 65 20 20  | logbungieline  |
00007c50  20 20 20 20 5c 20 6c 65  66 74 20 63 61 6c 66 0d  |    \ left calf.|
00007c60  31 24 04 0d 31 2e 18 20  20 41 44 52 20 20 20 20  |1$..1..  ADR    |
00007c70  20 52 30 2c 76 65 63 74  65 6d 70 0d 31 38 1b 20  | R0,vectemp.18. |
00007c80  20 41 44 52 20 20 20 20  20 52 31 2c 74 6f 72 73  | ADR     R1,tors|
00007c90  6f 74 72 61 6e 73 0d 31  42 1c 20 20 41 44 52 20  |otrans.1B.  ADR |
00007ca0  20 20 20 20 52 32 2c 73  69 64 65 77 61 79 73 76  |    R2,sidewaysv|
00007cb0  65 63 0d 31 4c 17 20 20  42 4c 20 20 20 20 20 20  |ec.1L.  BL      |
00007cc0  74 72 61 6e 73 66 6f 72  6d 0d 31 56 18 20 20 41  |transform.1V.  A|
00007cd0  44 52 20 20 20 20 20 52  30 2c 74 65 6d 70 70 6f  |DR     R0,temppo|
00007ce0  73 0d 31 60 18 20 20 41  44 52 20 20 20 20 20 52  |s.1`.  ADR     R|
00007cf0  31 2c 76 65 63 74 65 6d  70 0d 31 6a 16 20 20 4d  |1,vectemp.1j.  M|
00007d00  4f 56 20 20 20 20 20 52  32 2c 23 31 33 32 38 0d  |OV     R2,#1328.|
00007d10  31 74 17 20 20 41 44 52  20 20 20 20 20 52 33 2c  |1t.  ADR     R3,|
00007d20  62 75 6d 70 6f 73 0d 31  7e 17 20 20 42 4c 20 20  |bumpos.1~.  BL  |
00007d30  20 20 20 20 76 65 63 74  6f 72 6d 6c 61 0d 31 88  |    vectormla.1.|
00007d40  19 20 20 41 44 52 20 20  20 20 20 52 30 2c 6d 61  |.  ADR     R0,ma|
00007d50  74 74 65 6d 70 31 0d 31  92 1a 20 20 41 44 52 20  |ttemp1.1..  ADR |
00007d60  20 20 20 20 52 31 2c 72  68 69 70 74 72 61 6e 73  |    R1,rhiptrans|
00007d70  0d 31 9c 1b 20 20 41 44  52 20 20 20 20 20 52 32  |.1..  ADR     R2|
00007d80  2c 74 6f 72 73 6f 74 72  61 6e 73 0d 31 a6 2d 20  |,torsotrans.1.- |
00007d90  20 42 4c 20 20 20 20 20  20 6d 75 6c 74 69 70 6c  | BL      multipl|
00007da0  79 20 20 20 20 20 20 20  20 20 20 20 20 5c 20 72  |y            \ r|
00007db0  69 67 68 74 20 68 69 70  0d 31 b0 04 0d 31 ba 18  |ight hip.1...1..|
00007dc0  20 20 41 44 52 20 20 20  20 20 52 30 2c 76 65 63  |  ADR     R0,vec|
00007dd0  74 65 6d 70 0d 31 c4 19  20 20 41 44 52 20 20 20  |temp.1..  ADR   |
00007de0  20 20 52 31 2c 6d 61 74  74 65 6d 70 31 0d 31 ce  |  R1,mattemp1.1.|
00007df0  18 20 20 41 44 52 20 20  20 20 20 52 32 2c 75 6e  |.  ADR     R2,un|
00007e00  69 74 76 65 63 0d 31 d8  17 20 20 42 4c 20 20 20  |itvec.1..  BL   |
00007e10  20 20 20 74 72 61 6e 73  66 6f 72 6d 0d 31 e2 18  |   transform.1..|
00007e20  20 20 41 44 52 20 20 20  20 20 52 30 2c 74 65 6d  |  ADR     R0,tem|
00007e30  70 70 6f 73 0d 31 ec 18  20 20 41 44 52 20 20 20  |ppos.1..  ADR   |
00007e40  20 20 52 31 2c 76 65 63  74 65 6d 70 0d 31 f6 18  |  R1,vectemp.1..|
00007e50  20 20 4d 4f 56 20 20 20  20 20 52 32 2c 23 35 2a  |  MOV     R2,#5*|
00007e60  31 30 32 34 0d 32 00 18  20 20 41 44 52 20 20 20  |1024.2..  ADR   |
00007e70  20 20 52 33 2c 74 65 6d  70 70 6f 73 0d 32 0a 2f  |  R3,temppos.2./|
00007e80  20 20 42 4c 20 20 20 20  20 20 76 65 63 74 6f 72  |  BL      vector|
00007e90  6d 6c 61 20 20 20 20 20  20 20 20 20 20 20 5c 20  |mla           \ |
00007ea0  72 69 67 68 74 20 74 68  69 67 68 0d 32 14 18 20  |right thigh.2.. |
00007eb0  20 41 44 52 20 20 20 20  20 52 31 2c 76 65 63 74  | ADR     R1,vect|
00007ec0  65 6d 70 0d 32 1e 18 20  20 41 44 52 20 20 20 20  |emp.2..  ADR    |
00007ed0  20 52 30 2c 74 65 6d 70  70 6f 73 0d 32 28 18 20  | R0,temppos.2(. |
00007ee0  20 4d 56 4e 20 20 20 20  20 52 32 2c 23 ac 20 28  | MVN     R2,#. (|
00007ef0  2d 35 29 0d 32 32 1b 20  20 42 4c 20 20 20 20 20  |-5).22.  BL     |
00007f00  20 6c 6f 67 62 75 6e 67  69 65 6c 69 6e 65 0d 32  | logbungieline.2|
00007f10  3c 04 0d 32 46 19 20 20  41 44 52 20 20 20 20 20  |<..2F.  ADR     |
00007f20  52 30 2c 6d 61 74 74 65  6d 70 32 0d 32 50 1b 20  |R0,mattemp2.2P. |
00007f30  20 41 44 52 20 20 20 20  20 52 31 2c 72 6b 6e 65  | ADR     R1,rkne|
00007f40  65 74 72 61 6e 73 0d 32  5a 19 20 20 41 44 52 20  |etrans.2Z.  ADR |
00007f50  20 20 20 20 52 32 2c 6d  61 74 74 65 6d 70 31 0d  |    R2,mattemp1.|
00007f60  32 64 2e 20 20 42 4c 20  20 20 20 20 20 6d 75 6c  |2d.  BL      mul|
00007f70  74 69 70 6c 79 20 20 20  20 20 20 20 20 20 20 20  |tiply           |
00007f80  20 5c 20 72 69 67 68 74  20 6b 6e 65 65 0d 32 6e  | \ right knee.2n|
00007f90  04 0d 32 78 18 20 20 41  44 52 20 20 20 20 20 52  |..2x.  ADR     R|
00007fa0  30 2c 76 65 63 74 65 6d  70 0d 32 82 19 20 20 41  |0,vectemp.2..  A|
00007fb0  44 52 20 20 20 20 20 52  31 2c 6d 61 74 74 65 6d  |DR     R1,mattem|
00007fc0  70 32 0d 32 8c 18 20 20  41 44 52 20 20 20 20 20  |p2.2..  ADR     |
00007fd0  52 32 2c 75 6e 69 74 76  65 63 0d 32 96 17 20 20  |R2,unitvec.2..  |
00007fe0  42 4c 20 20 20 20 20 20  74 72 61 6e 73 66 6f 72  |BL      transfor|
00007ff0  6d 0d 32 a0 18 20 20 41  44 52 20 20 20 20 20 52  |m.2..  ADR     R|
00008000  31 2c 76 65 63 74 65 6d  70 0d 32 aa 18 20 20 41  |1,vectemp.2..  A|
00008010  44 52 20 20 20 20 20 52  30 2c 74 65 6d 70 70 6f  |DR     R0,temppo|
00008020  73 0d 32 b4 13 20 20 4d  4f 56 20 20 20 20 20 52  |s.2..  MOV     R|
00008030  32 2c 23 35 0d 32 be 2e  20 20 42 4c 20 20 20 20  |2,#5.2..  BL    |
00008040  20 20 6c 6f 67 62 75 6e  67 69 65 6c 69 6e 65 20  |  logbungieline |
00008050  20 20 20 20 20 20 5c 20  72 69 67 68 74 20 63 61  |      \ right ca|
00008060  6c 66 0d 32 c8 04 0d 32  d2 19 20 20 41 44 52 20  |lf.2...2..  ADR |
00008070  20 20 20 20 52 30 2c 74  6f 72 73 6f 70 6f 73 0d  |    R0,torsopos.|
00008080  32 dc 14 20 20 4d 4f 56  20 20 20 20 20 52 31 2c  |2..  MOV     R1,|
00008090  23 31 33 0d 32 e6 17 20  20 42 4c 20 20 20 20 20  |#13.2..  BL     |
000080a0  20 6c 6f 67 73 70 68 65  72 65 0d 32 f0 04 0d 32  | logsphere.2...2|
000080b0  fa 17 20 20 41 44 52 20  20 20 20 20 52 30 2c 62  |..  ADR     R0,b|
000080c0  75 6d 70 6f 73 0d 33 04  14 20 20 4d 4f 56 20 20  |umpos.3..  MOV  |
000080d0  20 20 20 52 31 2c 23 31  33 0d 33 0e 17 20 20 42  |   R1,#13.3..  B|
000080e0  4c 20 20 20 20 20 20 6c  6f 67 73 70 68 65 72 65  |L      logsphere|
000080f0  0d 33 18 04 0d 33 22 1d  20 20 42 4c 20 20 20 20  |.3...3".  BL    |
00008100  20 20 73 70 69 6e 6e 69  6e 67 73 70 68 65 72 65  |  spinningsphere|
00008110  73 0d 33 2c 15 20 20 42  4c 20 20 20 20 20 20 64  |s.3,.  BL      d|
00008120  69 73 70 6c 61 79 0d 33  36 18 20 20 42 4c 20 20  |isplay.36.  BL  |
00008130  20 20 20 20 72 65 70 65  61 74 64 61 74 61 0d 33  |    repeatdata.3|
00008140  40 04 0d 33 4a 1f 20 20  4c 44 4d 46 44 20 20 20  |@..3J.  LDMFD   |
00008150  52 31 33 21 2c 7b 52 30  2d 52 31 32 2c 50 43 7d  |R13!,{R0-R12,PC}|
00008160  5e 0d 33 54 05 20 0d 33  5e 0e 20 20 2e 76 65 63  |^.3T. .3^.  .vec|
00008170  74 65 6d 70 0d 33 68 2d  20 20 45 51 55 44 20 20  |temp.3h-  EQUD  |
00008180  20 20 30 20 20 20 20 20  3a 45 51 55 44 20 20 20  |  0     :EQUD   |
00008190  20 30 20 20 20 20 20 3a  45 51 55 44 20 20 20 20  | 0     :EQUD    |
000081a0  30 0d 33 72 04 0d 33 7c  0e 20 20 2e 74 65 6d 70  |0.3r..3|.  .temp|
000081b0  70 6f 73 0d 33 86 2d 20  20 45 51 55 44 20 20 20  |pos.3.-  EQUD   |
000081c0  20 30 20 20 20 20 20 3a  45 51 55 44 20 20 20 20  | 0     :EQUD    |
000081d0  30 20 20 20 20 20 3a 45  51 55 44 20 20 20 20 30  |0     :EQUD    0|
000081e0  0d 33 90 04 0d 33 9a 0f  20 20 2e 6d 61 74 74 65  |.3...3..  .matte|
000081f0  6d 70 31 0d 33 a4 2d 20  20 45 51 55 44 20 20 20  |mp1.3.-  EQUD   |
00008200  20 30 20 20 20 20 20 3a  45 51 55 44 20 20 20 20  | 0     :EQUD    |
00008210  30 20 20 20 20 20 3a 45  51 55 44 20 20 20 20 30  |0     :EQUD    0|
00008220  0d 33 ae 2d 20 20 45 51  55 44 20 20 20 20 30 20  |.3.-  EQUD    0 |
00008230  20 20 20 20 3a 45 51 55  44 20 20 20 20 30 20 20  |    :EQUD    0  |
00008240  20 20 20 3a 45 51 55 44  20 20 20 20 30 0d 33 b8  |   :EQUD    0.3.|
00008250  2d 20 20 45 51 55 44 20  20 20 20 30 20 20 20 20  |-  EQUD    0    |
00008260  20 3a 45 51 55 44 20 20  20 20 30 20 20 20 20 20  | :EQUD    0     |
00008270  3a 45 51 55 44 20 20 20  20 30 0d 33 c2 04 0d 33  |:EQUD    0.3...3|
00008280  cc 0f 20 20 2e 6d 61 74  74 65 6d 70 32 0d 33 d6  |..  .mattemp2.3.|
00008290  2d 20 20 45 51 55 44 20  20 20 20 30 20 20 20 20  |-  EQUD    0    |
000082a0  20 3a 45 51 55 44 20 20  20 20 30 20 20 20 20 20  | :EQUD    0     |
000082b0  3a 45 51 55 44 20 20 20  20 30 0d 33 e0 2d 20 20  |:EQUD    0.3.-  |
000082c0  45 51 55 44 20 20 20 20  30 20 20 20 20 20 3a 45  |EQUD    0     :E|
000082d0  51 55 44 20 20 20 20 30  20 20 20 20 20 3a 45 51  |QUD    0     :EQ|
000082e0  55 44 20 20 20 20 30 0d  33 ea 2d 20 20 45 51 55  |UD    0.3.-  EQU|
000082f0  44 20 20 20 20 30 20 20  20 20 20 3a 45 51 55 44  |D    0     :EQUD|
00008300  20 20 20 20 30 20 20 20  20 20 3a 45 51 55 44 20  |    0     :EQUD |
00008310  20 20 20 30 0d 33 f4 04  0d 33 fe 46 20 20 2e 75  |   0.3...3.F  .u|
00008320  6e 69 74 76 65 63 20 20  20 20 20 20 20 20 5c 20  |nitvec        \ |
00008330  74 72 61 6e 73 66 6f 72  6d 20 74 68 69 73 20 76  |transform this v|
00008340  65 63 74 6f 72 20 74 6f  20 67 65 74 20 64 69 72  |ector to get dir|
00008350  65 63 74 69 6f 6e 20 6f  66 20 6c 69 6e 65 0d 34  |ection of line.4|
00008360  08 2d 20 20 45 51 55 44  20 20 20 20 30 20 20 20  |.-  EQUD    0   |
00008370  20 20 3a 45 51 55 44 20  20 20 20 32 35 36 30 20  |  :EQUD    2560 |
00008380  20 3a 45 51 55 44 20 20  20 20 30 0d 34 12 04 0d  | :EQUD    0.4...|
00008390  34 1c 52 20 20 2e 6d 69  6e 75 73 75 6e 69 74 76  |4.R  .minusunitv|
000083a0  65 63 20 20 20 5c 20 74  72 61 6e 73 66 6f 72 6d  |ec   \ transform|
000083b0  20 74 68 69 73 20 76 65  63 74 6f 72 20 74 6f 20  | this vector to |
000083c0  67 65 74 20 6f 70 70 6f  73 69 74 65 20 74 6f 20  |get opposite to |
000083d0  64 69 72 65 63 74 69 6f  6e 20 6f 66 20 6c 69 6e  |direction of lin|
000083e0  65 0d 34 26 2d 20 20 45  51 55 44 20 20 20 20 30  |e.4&-  EQUD    0|
000083f0  20 20 20 20 20 3a 45 51  55 44 20 20 20 20 2d 32  |     :EQUD    -2|
00008400  35 36 30 20 3a 45 51 55  44 20 20 20 20 30 0d 34  |560 :EQUD    0.4|
00008410  30 04 0d 34 3a 48 20 20  2e 73 69 64 65 77 61 79  |0..4:H  .sideway|
00008420  73 76 65 63 20 20 20 20  5c 20 74 72 61 6e 73 66  |svec    \ transf|
00008430  6f 72 6d 20 74 68 69 73  20 76 65 63 74 6f 72 20  |orm this vector |
00008440  74 6f 20 67 65 74 20 61  20 73 69 64 65 77 61 79  |to get a sideway|
00008450  73 20 64 69 72 65 63 74  6f 6e 0d 34 44 2d 20 20  |s directon.4D-  |
00008460  45 51 55 44 20 20 20 20  32 35 36 30 20 20 3a 45  |EQUD    2560  :E|
00008470  51 55 44 20 20 20 20 30  20 20 20 20 20 3a 45 51  |QUD    0     :EQ|
00008480  55 44 20 20 20 20 30 0d  34 4e 04 0d 34 58 0f 20  |UD    0.4N..4X. |
00008490  20 2e 74 6f 72 73 6f 70  6f 73 0d 34 62 2d 20 20  | .torsopos.4b-  |
000084a0  45 51 55 44 20 20 20 20  30 20 20 20 20 20 3a 45  |EQUD    0     :E|
000084b0  51 55 44 20 20 20 20 30  20 20 20 20 20 3a 45 51  |QUD    0     :EQ|
000084c0  55 44 20 20 20 20 30 0d  34 6c 05 20 0d 34 76 0d  |UD    0.4l. .4v.|
000084d0  20 20 2e 62 75 6d 70 6f  73 0d 34 80 2d 20 20 45  |  .bumpos.4.-  E|
000084e0  51 55 44 20 20 20 20 30  20 20 20 20 20 3a 45 51  |QUD    0     :EQ|
000084f0  55 44 20 20 20 20 30 20  20 20 20 20 3a 45 51 55  |UD    0     :EQU|
00008500  44 20 20 20 20 30 0d 34  8a 04 0d 34 94 15 20 20  |D    0.4...4..  |
00008510  2e 63 68 61 6e 67 65 61  62 6c 65 64 61 74 61 0d  |.changeabledata.|
00008520  34 9e 0e 20 20 2e 72 65  61 6c 70 6f 73 0d 34 a8  |4..  .realpos.4.|
00008530  37 20 20 45 51 55 44 20  20 20 20 30 20 20 20 20  |7  EQUD    0    |
00008540  20 3a 45 51 55 44 20 20  20 20 30 20 20 20 20 20  | :EQUD    0     |
00008550  3a 45 51 55 44 20 20 20  20 30 20 20 20 20 20 20  |:EQUD    0      |
00008560  5c 73 65 74 0d 34 b2 04  0d 34 bc 11 20 20 2e 74  |\set.4...4..  .t|
00008570  6f 72 73 6f 74 72 61 6e  73 0d 34 c6 37 20 20 45  |orsotrans.4.7  E|
00008580  51 55 44 20 20 20 20 30  20 20 20 20 20 3a 45 51  |QUD    0     :EQ|
00008590  55 44 20 20 20 20 2d 33  32 37 36 38 3a 45 51 55  |UD    -32768:EQU|
000085a0  44 20 20 20 20 30 20 20  20 20 20 20 5c 73 65 74  |D    0      \set|
000085b0  0d 34 d0 2d 20 20 45 51  55 44 20 20 20 20 2d 33  |.4.-  EQUD    -3|
000085c0  32 37 36 38 3a 45 51 55  44 20 20 20 20 30 20 20  |2768:EQUD    0  |
000085d0  20 20 20 3a 45 51 55 44  20 20 20 20 30 0d 34 da  |   :EQUD    0.4.|
000085e0  31 20 20 45 51 55 44 20  20 20 20 30 20 20 20 20  |1  EQUD    0    |
000085f0  20 3a 45 51 55 44 20 20  20 20 30 20 20 20 20 20  | :EQUD    0     |
00008600  3a 45 51 55 44 20 20 20  20 33 32 37 36 38 0d 34  |:EQUD    32768.4|
00008610  e4 04 0d 34 ee 15 20 20  2e 6c 73 68 6f 75 6c 64  |...4..  .lshould|
00008620  65 72 74 72 61 6e 73 0d  34 f8 37 20 20 45 51 55  |ertrans.4.7  EQU|
00008630  44 20 20 20 20 32 38 35  39 36 20 3a 45 51 55 44  |D    28596 :EQUD|
00008640  20 20 20 20 31 36 30 30  30 20 3a 45 51 55 44 20  |    16000 :EQUD |
00008650  20 20 20 30 20 20 20 20  20 20 5c 73 65 74 0d 35  |   0      \set.5|
00008660  02 2d 20 20 45 51 55 44  20 20 20 20 2d 31 36 30  |.-  EQUD    -160|
00008670  30 30 3a 45 51 55 44 20  20 20 20 32 38 35 39 36  |00:EQUD    28596|
00008680  20 3a 45 51 55 44 20 20  20 20 30 0d 35 0c 31 20  | :EQUD    0.5.1 |
00008690  20 45 51 55 44 20 20 20  20 30 20 20 20 20 20 3a  | EQUD    0     :|
000086a0  45 51 55 44 20 20 20 20  30 20 20 20 20 20 3a 45  |EQUD    0     :E|
000086b0  51 55 44 20 20 20 20 33  32 37 36 38 0d 35 16 04  |QUD    32768.5..|
000086c0  0d 35 20 12 20 20 2e 6c  65 6c 62 6f 77 74 72 61  |.5 .  .lelbowtra|
000086d0  6e 73 0d 35 2a 37 20 20  45 51 55 44 20 20 20 20  |ns.5*7  EQUD    |
000086e0  33 31 37 37 36 20 3a 45  51 55 44 20 20 20 20 2d  |31776 :EQUD    -|
000086f0  38 30 30 30 20 3a 45 51  55 44 20 20 20 20 30 20  |8000 :EQUD    0 |
00008700  20 20 20 20 20 5c 73 65  74 0d 35 34 2d 20 20 45  |     \set.54-  E|
00008710  51 55 44 20 20 20 20 38  30 30 30 20 20 3a 45 51  |QUD    8000  :EQ|
00008720  55 44 20 20 20 20 33 31  37 37 36 20 3a 45 51 55  |UD    31776 :EQU|
00008730  44 20 20 20 20 30 0d 35  3e 31 20 20 45 51 55 44  |D    0.5>1  EQUD|
00008740  20 20 20 20 30 20 20 20  20 20 3a 45 51 55 44 20  |    0     :EQUD |
00008750  20 20 20 30 20 20 20 20  20 3a 45 51 55 44 20 20  |   0     :EQUD  |
00008760  20 20 33 32 37 36 38 0d  35 48 04 0d 35 52 15 20  |  32768.5H..5R. |
00008770  20 2e 72 73 68 6f 75 6c  64 65 72 74 72 61 6e 73  | .rshouldertrans|
00008780  0d 35 5c 37 20 20 45 51  55 44 20 20 20 20 32 38  |.5\7  EQUD    28|
00008790  35 39 36 20 3a 45 51 55  44 20 20 20 20 2d 31 36  |596 :EQUD    -16|
000087a0  30 30 30 3a 45 51 55 44  20 20 20 20 30 20 20 20  |000:EQUD    0   |
000087b0  20 20 20 5c 73 65 74 0d  35 66 2d 20 20 45 51 55  |   \set.5f-  EQU|
000087c0  44 20 20 20 20 31 36 30  30 30 20 3a 45 51 55 44  |D    16000 :EQUD|
000087d0  20 20 20 20 32 38 35 39  36 20 3a 45 51 55 44 20  |    28596 :EQUD |
000087e0  20 20 20 30 0d 35 70 31  20 20 45 51 55 44 20 20  |   0.5p1  EQUD  |
000087f0  20 20 30 20 20 20 20 20  3a 45 51 55 44 20 20 20  |  0     :EQUD   |
00008800  20 30 20 20 20 20 20 3a  45 51 55 44 20 20 20 20  | 0     :EQUD    |
00008810  33 32 37 36 38 0d 35 7a  04 0d 35 84 12 20 20 2e  |32768.5z..5..  .|
00008820  72 65 6c 62 6f 77 74 72  61 6e 73 0d 35 8e 37 20  |relbowtrans.5.7 |
00008830  20 45 51 55 44 20 20 20  20 33 31 37 37 36 20 3a  | EQUD    31776 :|
00008840  45 51 55 44 20 20 20 20  38 30 30 30 20 20 3a 45  |EQUD    8000  :E|
00008850  51 55 44 20 20 20 20 30  20 20 20 20 20 20 5c 73  |QUD    0      \s|
00008860  65 74 0d 35 98 2d 20 20  45 51 55 44 20 20 20 20  |et.5.-  EQUD    |
00008870  2d 38 30 30 30 20 3a 45  51 55 44 20 20 20 20 33  |-8000 :EQUD    3|
00008880  31 37 37 36 20 3a 45 51  55 44 20 20 20 20 30 0d  |1776 :EQUD    0.|
00008890  35 a2 31 20 20 45 51 55  44 20 20 20 20 30 20 20  |5.1  EQUD    0  |
000088a0  20 20 20 3a 45 51 55 44  20 20 20 20 30 20 20 20  |   :EQUD    0   |
000088b0  20 20 3a 45 51 55 44 20  20 20 20 33 32 37 36 38  |  :EQUD    32768|
000088c0  0d 35 ac 04 0d 35 b6 10  20 20 2e 6c 68 69 70 74  |.5...5..  .lhipt|
000088d0  72 61 6e 73 0d 35 c0 37  20 20 45 51 55 44 20 20  |rans.5.7  EQUD  |
000088e0  20 20 33 31 37 37 36 20  3a 45 51 55 44 20 20 20  |  31776 :EQUD   |
000088f0  20 38 30 30 30 20 20 3a  45 51 55 44 20 20 20 20  | 8000  :EQUD    |
00008900  30 20 20 20 20 20 20 5c  73 65 74 0d 35 ca 2d 20  |0      \set.5.- |
00008910  20 45 51 55 44 20 20 20  20 2d 38 30 30 30 20 3a  | EQUD    -8000 :|
00008920  45 51 55 44 20 20 20 20  33 31 37 37 36 20 3a 45  |EQUD    31776 :E|
00008930  51 55 44 20 20 20 20 30  0d 35 d4 31 20 20 45 51  |QUD    0.5.1  EQ|
00008940  55 44 20 20 20 20 30 20  20 20 20 20 3a 45 51 55  |UD    0     :EQU|
00008950  44 20 20 20 20 30 20 20  20 20 20 3a 45 51 55 44  |D    0     :EQUD|
00008960  20 20 20 20 33 32 37 36  38 0d 35 de 04 0d 35 e8  |    32768.5...5.|
00008970  11 20 20 2e 6c 6b 6e 65  65 74 72 61 6e 73 0d 35  |.  .lkneetrans.5|
00008980  f2 37 20 20 45 51 55 44  20 20 20 20 33 32 37 36  |.7  EQUD    3276|
00008990  38 20 3a 45 51 55 44 20  20 20 20 30 20 20 20 20  |8 :EQUD    0    |
000089a0  20 3a 45 51 55 44 20 20  20 20 30 20 20 20 20 20  | :EQUD    0     |
000089b0  20 5c 73 65 74 0d 35 fc  2d 20 20 45 51 55 44 20  | \set.5.-  EQUD |
000089c0  20 20 20 30 20 20 20 20  20 3a 45 51 55 44 20 20  |   0     :EQUD  |
000089d0  20 20 33 32 37 36 38 20  3a 45 51 55 44 20 20 20  |  32768 :EQUD   |
000089e0  20 30 0d 36 06 31 20 20  45 51 55 44 20 20 20 20  | 0.6.1  EQUD    |
000089f0  30 20 20 20 20 20 3a 45  51 55 44 20 20 20 20 30  |0     :EQUD    0|
00008a00  20 20 20 20 20 3a 45 51  55 44 20 20 20 20 33 32  |     :EQUD    32|
00008a10  37 36 38 0d 36 10 04 0d  36 1a 10 20 20 2e 72 68  |768.6...6..  .rh|
00008a20  69 70 74 72 61 6e 73 0d  36 24 37 20 20 45 51 55  |iptrans.6$7  EQU|
00008a30  44 20 20 20 20 33 31 37  37 36 20 3a 45 51 55 44  |D    31776 :EQUD|
00008a40  20 20 20 20 2d 38 30 30  30 20 3a 45 51 55 44 20  |    -8000 :EQUD |
00008a50  20 20 20 30 20 20 20 20  20 20 5c 73 65 74 0d 36  |   0      \set.6|
00008a60  2e 2d 20 20 45 51 55 44  20 20 20 20 38 30 30 30  |.-  EQUD    8000|
00008a70  20 20 3a 45 51 55 44 20  20 20 20 33 31 37 37 36  |  :EQUD    31776|
00008a80  20 3a 45 51 55 44 20 20  20 20 30 0d 36 38 31 20  | :EQUD    0.681 |
00008a90  20 45 51 55 44 20 20 20  20 30 20 20 20 20 20 3a  | EQUD    0     :|
00008aa0  45 51 55 44 20 20 20 20  30 20 20 20 20 20 3a 45  |EQUD    0     :E|
00008ab0  51 55 44 20 20 20 20 33  32 37 36 38 0d 36 42 04  |QUD    32768.6B.|
00008ac0  0d 36 4c 11 20 20 2e 72  6b 6e 65 65 74 72 61 6e  |.6L.  .rkneetran|
00008ad0  73 0d 36 56 37 20 20 45  51 55 44 20 20 20 20 33  |s.6V7  EQUD    3|
00008ae0  32 37 36 38 20 3a 45 51  55 44 20 20 20 20 30 20  |2768 :EQUD    0 |
00008af0  20 20 20 20 3a 45 51 55  44 20 20 20 20 30 20 20  |    :EQUD    0  |
00008b00  20 20 20 20 5c 73 65 74  0d 36 60 2d 20 20 45 51  |    \set.6`-  EQ|
00008b10  55 44 20 20 20 20 30 20  20 20 20 20 3a 45 51 55  |UD    0     :EQU|
00008b20  44 20 20 20 20 33 32 37  36 38 20 3a 45 51 55 44  |D    32768 :EQUD|
00008b30  20 20 20 20 30 0d 36 6a  31 20 20 45 51 55 44 20  |    0.6j1  EQUD |
00008b40  20 20 20 30 20 20 20 20  20 3a 45 51 55 44 20 20  |   0     :EQUD  |
00008b50  20 20 30 20 20 20 20 20  3a 45 51 55 44 20 20 20  |  0     :EQUD   |
00008b60  20 33 32 37 36 38 0d 36  74 04 0d 36 7e 0f 20 20  | 32768.6t..6~.  |
00008b70  2e 69 64 65 6e 74 69 74  79 0d 36 88 2d 20 20 45  |.identity.6.-  E|
00008b80  51 55 44 20 20 20 20 33  32 37 36 38 20 3a 45 51  |QUD    32768 :EQ|
00008b90  55 44 20 20 20 20 30 20  20 20 20 20 3a 45 51 55  |UD    0     :EQU|
00008ba0  44 20 20 20 20 30 0d 36  92 2d 20 20 45 51 55 44  |D    0.6.-  EQUD|
00008bb0  20 20 20 20 30 20 20 20  20 20 3a 45 51 55 44 20  |    0     :EQUD |
00008bc0  20 20 20 33 32 37 36 38  20 3a 45 51 55 44 20 20  |   32768 :EQUD  |
00008bd0  20 20 30 0d 36 9c 31 20  20 45 51 55 44 20 20 20  |  0.6.1  EQUD   |
00008be0  20 30 20 20 20 20 20 3a  45 51 55 44 20 20 20 20  | 0     :EQUD    |
00008bf0  30 20 20 20 20 20 3a 45  51 55 44 20 20 20 20 33  |0     :EQUD    3|
00008c00  32 37 36 38 0d 36 a6 04  0d 36 b0 0c 20 20 2e 73  |2768.6...6..  .s|
00008c10  70 69 6e 31 0d 36 ba 31  20 20 45 51 55 44 20 20  |pin1.6.1  EQUD  |
00008c20  20 20 63 6f 73 25 20 20  3a 45 51 55 44 20 20 20  |  cos%  :EQUD   |
00008c30  20 30 20 20 20 20 20 3a  45 51 55 44 20 20 20 20  | 0     :EQUD    |
00008c40  2d 73 69 6e 25 0d 36 c4  2d 20 20 45 51 55 44 20  |-sin%.6.-  EQUD |
00008c50  20 20 20 30 20 20 20 20  20 3a 45 51 55 44 20 20  |   0     :EQUD  |
00008c60  20 20 33 32 37 36 38 20  3a 45 51 55 44 20 20 20  |  32768 :EQUD   |
00008c70  20 30 0d 36 ce 30 20 20  45 51 55 44 20 20 20 20  | 0.6.0  EQUD    |
00008c80  73 69 6e 25 20 20 3a 45  51 55 44 20 20 20 20 30  |sin%  :EQUD    0|
00008c90  20 20 20 20 20 3a 45 51  55 44 20 20 20 20 63 6f  |     :EQUD    co|
00008ca0  73 25 0d 36 d8 04 0d 36  e2 0c 20 20 2e 73 70 69  |s%.6...6..  .spi|
00008cb0  6e 32 0d 36 ec 2d 20 20  45 51 55 44 20 20 20 20  |n2.6.-  EQUD    |
00008cc0  63 6f 73 25 20 20 3a 45  51 55 44 20 20 20 20 2d  |cos%  :EQUD    -|
00008cd0  73 69 6e 25 20 3a 45 51  55 44 20 20 20 20 30 0d  |sin% :EQUD    0.|
00008ce0  36 f6 2d 20 20 45 51 55  44 20 20 20 20 73 69 6e  |6.-  EQUD    sin|
00008cf0  25 20 20 3a 45 51 55 44  20 20 20 20 63 6f 73 25  |%  :EQUD    cos%|
00008d00  20 20 3a 45 51 55 44 20  20 20 20 30 0d 37 00 31  |  :EQUD    0.7.1|
00008d10  20 20 45 51 55 44 20 20  20 20 30 20 20 20 20 20  |  EQUD    0     |
00008d20  3a 45 51 55 44 20 20 20  20 30 20 20 20 20 20 3a  |:EQUD    0     :|
00008d30  45 51 55 44 20 20 20 20  33 32 37 36 38 0d 37 0a  |EQUD    32768.7.|
00008d40  04 0d 37 14 0c 20 20 2e  73 70 69 6e 33 0d 37 1e  |..7..  .spin3.7.|
00008d50  2d 20 20 45 51 55 44 20  20 20 20 33 32 37 36 38  |-  EQUD    32768|
00008d60  20 3a 45 51 55 44 20 20  20 20 30 20 20 20 20 20  | :EQUD    0     |
00008d70  3a 45 51 55 44 20 20 20  20 30 0d 37 28 31 20 20  |:EQUD    0.7(1  |
00008d80  45 51 55 44 20 20 20 20  30 20 20 20 20 20 3a 45  |EQUD    0     :E|
00008d90  51 55 44 20 20 20 20 63  6f 73 25 20 20 3a 45 51  |QUD    cos%  :EQ|
00008da0  55 44 20 20 20 20 2d 73  69 6e 25 0d 37 32 30 20  |UD    -sin%.720 |
00008db0  20 45 51 55 44 20 20 20  20 30 20 20 20 20 20 3a  | EQUD    0     :|
00008dc0  45 51 55 44 20 20 20 20  73 69 6e 25 20 20 3a 45  |EQUD    sin%  :E|
00008dd0  51 55 44 20 20 20 20 63  6f 73 25 0d 37 3c 04 0d  |QUD    cos%.7<..|
00008de0  37 46 0d 20 20 2e 73 70  69 6e 31 62 0d 37 50 30  |7F.  .spin1b.7P0|
00008df0  20 20 45 51 55 44 20 20  20 20 63 6f 73 25 20 20  |  EQUD    cos%  |
00008e00  3a 45 51 55 44 20 20 20  20 30 20 20 20 20 20 3a  |:EQUD    0     :|
00008e10  45 51 55 44 20 20 20 20  73 69 6e 25 0d 37 5a 2d  |EQUD    sin%.7Z-|
00008e20  20 20 45 51 55 44 20 20  20 20 30 20 20 20 20 20  |  EQUD    0     |
00008e30  3a 45 51 55 44 20 20 20  20 33 32 37 36 38 20 3a  |:EQUD    32768 :|
00008e40  45 51 55 44 20 20 20 20  30 0d 37 64 30 20 20 45  |EQUD    0.7d0  E|
00008e50  51 55 44 20 20 20 20 2d  73 69 6e 25 20 3a 45 51  |QUD    -sin% :EQ|
00008e60  55 44 20 20 20 20 30 20  20 20 20 20 3a 45 51 55  |UD    0     :EQU|
00008e70  44 20 20 20 20 63 6f 73  25 0d 37 6e 04 0d 37 78  |D    cos%.7n..7x|
00008e80  0d 20 20 2e 73 70 69 6e  32 62 0d 37 82 2d 20 20  |.  .spin2b.7.-  |
00008e90  45 51 55 44 20 20 20 20  63 6f 73 25 20 20 3a 45  |EQUD    cos%  :E|
00008ea0  51 55 44 20 20 20 20 73  69 6e 25 20 20 3a 45 51  |QUD    sin%  :EQ|
00008eb0  55 44 20 20 20 20 30 0d  37 8c 2d 20 20 45 51 55  |UD    0.7.-  EQU|
00008ec0  44 20 20 20 20 2d 73 69  6e 25 20 3a 45 51 55 44  |D    -sin% :EQUD|
00008ed0  20 20 20 20 63 6f 73 25  20 20 3a 45 51 55 44 20  |    cos%  :EQUD |
00008ee0  20 20 20 30 0d 37 96 31  20 20 45 51 55 44 20 20  |   0.7.1  EQUD  |
00008ef0  20 20 30 20 20 20 20 20  3a 45 51 55 44 20 20 20  |  0     :EQUD   |
00008f00  20 30 20 20 20 20 20 3a  45 51 55 44 20 20 20 20  | 0     :EQUD    |
00008f10  33 32 37 36 38 0d 37 a0  04 0d 37 aa 0d 20 20 2e  |32768.7...7..  .|
00008f20  73 70 69 6e 33 62 0d 37  b4 2d 20 20 45 51 55 44  |spin3b.7.-  EQUD|
00008f30  20 20 20 20 33 32 37 36  38 20 3a 45 51 55 44 20  |    32768 :EQUD |
00008f40  20 20 20 30 20 20 20 20  20 3a 45 51 55 44 20 20  |   0     :EQUD  |
00008f50  20 20 30 0d 37 be 30 20  20 45 51 55 44 20 20 20  |  0.7.0  EQUD   |
00008f60  20 30 20 20 20 20 20 3a  45 51 55 44 20 20 20 20  | 0     :EQUD    |
00008f70  63 6f 73 25 20 20 3a 45  51 55 44 20 20 20 20 73  |cos%  :EQUD    s|
00008f80  69 6e 25 0d 37 c8 30 20  20 45 51 55 44 20 20 20  |in%.7.0  EQUD   |
00008f90  20 30 20 20 20 20 20 3a  45 51 55 44 20 20 20 20  | 0     :EQUD    |
00008fa0  2d 73 69 6e 25 20 3a 45  51 55 44 20 20 20 20 63  |-sin% :EQUD    c|
00008fb0  6f 73 25 0d 37 d2 04 0d  37 dc 33 20 20 2e 61 6e  |os%.7...7.3  .an|
00008fc0  67 6c 65 74 61 62 30 20  20 20 20 20 20 20 20 20  |gletab0         |
00008fd0  20 20 20 5c 20 6e 6f 72  6d 61 6c 20 70 72 6f 6e  |   \ normal pron|
00008fe0  65 20 70 6f 73 69 74 69  6f 6e 0d 37 e6 1c 20 20  |e position.7..  |
00008ff0  45 51 55 42 20 20 20 20  30 20 20 20 5c 20 73 69  |EQUB    0   \ si|
00009000  64 65 77 61 79 73 0d 37  f0 27 20 20 45 51 55 42  |deways.7.'  EQUB|
00009010  20 20 20 20 30 20 20 20  5c 20 68 65 69 67 68 74  |    0   \ height|
00009020  20 20 20 20 20 20 72 65  61 6c 70 6f 73 0d 37 fa  |      realpos.7.|
00009030  18 20 20 45 51 55 42 20  20 20 20 31 30 20 20 5c  |.  EQUB    10  \|
00009040  20 74 69 6c 74 0d 38 04  2a 20 20 45 51 55 42 20  | tilt.8.*  EQUB |
00009050  20 20 20 30 20 20 20 5c  20 72 6f 74 20 20 20 20  |   0   \ rot    |
00009060  20 20 20 20 20 74 6f 72  73 6f 74 72 61 6e 73 0d  |     torsotrans.|
00009070  38 0e 18 20 20 45 51 55  42 20 20 20 20 32 30 20  |8..  EQUB    20 |
00009080  20 5c 20 74 69 6c 74 0d  38 18 2e 20 20 45 51 55  | \ tilt.8..  EQU|
00009090  42 20 20 20 20 32 34 38  20 5c 20 72 6f 74 20 20  |B    248 \ rot  |
000090a0  20 20 20 20 20 20 20 6c  73 68 6f 75 6c 64 65 72  |       lshoulder|
000090b0  74 72 61 6e 73 0d 38 22  18 20 20 45 51 55 42 20  |trans.8".  EQUB |
000090c0  20 20 20 33 34 20 20 5c  20 74 69 6c 74 0d 38 2c  |   34  \ tilt.8,|
000090d0  2b 20 20 45 51 55 42 20  20 20 20 37 33 20 20 5c  |+  EQUB    73  \|
000090e0  20 72 6f 74 20 20 20 20  20 20 20 20 20 6c 65 6c  | rot         lel|
000090f0  62 6f 77 74 72 61 6e 73  0d 38 36 18 20 20 45 51  |bowtrans.86.  EQ|
00009100  55 42 20 20 20 20 32 30  20 20 5c 20 74 69 6c 74  |UB    20  \ tilt|
00009110  0d 38 40 2e 20 20 45 51  55 42 20 20 20 20 31 32  |.8@.  EQUB    12|
00009120  30 20 5c 20 72 6f 74 20  20 20 20 20 20 20 20 20  |0 \ rot         |
00009130  72 73 68 6f 75 6c 64 65  72 74 72 61 6e 73 0d 38  |rshouldertrans.8|
00009140  4a 18 20 20 45 51 55 42  20 20 20 20 32 32 32 20  |J.  EQUB    222 |
00009150  5c 20 74 69 6c 74 0d 38  54 2b 20 20 45 51 55 42  |\ tilt.8T+  EQUB|
00009160  20 20 20 20 37 33 20 20  5c 20 72 6f 74 20 20 20  |    73  \ rot   |
00009170  20 20 20 20 20 20 72 65  6c 62 6f 77 74 72 61 6e  |      relbowtran|
00009180  73 0d 38 5e 18 20 20 45  51 55 42 20 20 20 20 32  |s.8^.  EQUB    2|
00009190  34 20 20 5c 20 74 69 6c  74 0d 38 68 29 20 20 45  |4  \ tilt.8h)  E|
000091a0  51 55 42 20 20 20 20 33  36 20 20 5c 20 72 6f 74  |QUB    36  \ rot|
000091b0  20 20 20 20 20 20 20 20  20 6c 68 69 70 74 72 61  |         lhiptra|
000091c0  6e 73 0d 38 72 18 20 20  45 51 55 42 20 20 20 20  |ns.8r.  EQUB    |
000091d0  32 34 20 20 5c 20 74 69  6c 74 0d 38 7c 2a 20 20  |24  \ tilt.8|*  |
000091e0  45 51 55 42 20 20 20 20  31 32 38 20 5c 20 72 6f  |EQUB    128 \ ro|
000091f0  74 20 20 20 20 20 20 20  20 20 6c 6b 6e 65 65 74  |t         lkneet|
00009200  72 61 6e 73 0d 38 86 18  20 20 45 51 55 42 20 20  |rans.8..  EQUB  |
00009210  20 20 32 34 20 20 5c 20  74 69 6c 74 0d 38 90 29  |  24  \ tilt.8.)|
00009220  20 20 45 51 55 42 20 20  20 20 39 32 20 20 5c 20  |  EQUB    92  \ |
00009230  72 6f 74 20 20 20 20 20  20 20 20 20 72 68 69 70  |rot         rhip|
00009240  74 72 61 6e 73 0d 38 9a  18 20 20 45 51 55 42 20  |trans.8..  EQUB |
00009250  20 20 20 32 34 20 20 5c  20 74 69 6c 74 0d 38 a4  |   24  \ tilt.8.|
00009260  2a 20 20 45 51 55 42 20  20 20 20 31 32 38 20 5c  |*  EQUB    128 \|
00009270  20 72 6f 74 20 20 20 20  20 20 20 20 20 72 6b 6e  | rot         rkn|
00009280  65 65 74 72 61 6e 73 0d  38 ae 04 0d 38 b8 2c 20  |eetrans.8...8., |
00009290  20 2e 61 6e 67 6c 65 74  61 62 31 20 20 20 20 20  | .angletab1     |
000092a0  20 20 20 20 20 20 20 5c  20 27 67 65 74 74 69 6e  |       \ 'gettin|
000092b0  67 20 64 6f 77 6e 27 0d  38 c2 1c 20 20 45 51 55  |g down'.8..  EQU|
000092c0  42 20 20 20 20 30 20 20  20 5c 20 73 69 64 65 77  |B    0   \ sidew|
000092d0  61 79 73 0d 38 cc 27 20  20 45 51 55 42 20 20 20  |ays.8.'  EQUB   |
000092e0  20 38 34 20 20 5c 20 68  65 69 67 68 74 20 20 20  | 84  \ height   |
000092f0  20 20 20 72 65 61 6c 70  6f 73 0d 38 d6 18 20 20  |   realpos.8..  |
00009300  45 51 55 42 20 20 20 20  31 30 20 20 5c 20 74 69  |EQUB    10  \ ti|
00009310  6c 74 0d 38 e0 2a 20 20  45 51 55 42 20 20 20 20  |lt.8.*  EQUB    |
00009320  30 20 20 20 5c 20 72 6f  74 20 20 20 20 20 20 20  |0   \ rot       |
00009330  20 20 74 6f 72 73 6f 74  72 61 6e 73 0d 38 ea 18  |  torsotrans.8..|
00009340  20 20 45 51 55 42 20 20  20 20 33 38 20 20 5c 20  |  EQUB    38  \ |
00009350  74 69 6c 74 0d 38 f4 2e  20 20 45 51 55 42 20 20  |tilt.8..  EQUB  |
00009360  20 20 32 34 38 20 5c 20  72 6f 74 20 20 20 20 20  |  248 \ rot     |
00009370  20 20 20 20 6c 73 68 6f  75 6c 64 65 72 74 72 61  |    lshouldertra|
00009380  6e 73 0d 38 fe 18 20 20  45 51 55 42 20 20 20 20  |ns.8..  EQUB    |
00009390  38 34 20 20 5c 20 74 69  6c 74 0d 39 08 2b 20 20  |84  \ tilt.9.+  |
000093a0  45 51 55 42 20 20 20 20  37 33 20 20 5c 20 72 6f  |EQUB    73  \ ro|
000093b0  74 20 20 20 20 20 20 20  20 20 6c 65 6c 62 6f 77  |t         lelbow|
000093c0  74 72 61 6e 73 0d 39 12  18 20 20 45 51 55 42 20  |trans.9..  EQUB |
000093d0  20 20 20 33 38 20 20 5c  20 74 69 6c 74 0d 39 1c  |   38  \ tilt.9.|
000093e0  2e 20 20 45 51 55 42 20  20 20 20 31 32 30 20 5c  |.  EQUB    120 \|
000093f0  20 72 6f 74 20 20 20 20  20 20 20 20 20 72 73 68  | rot         rsh|
00009400  6f 75 6c 64 65 72 74 72  61 6e 73 0d 39 26 18 20  |ouldertrans.9&. |
00009410  20 45 51 55 42 20 20 20  20 31 37 32 20 5c 20 74  | EQUB    172 \ t|
00009420  69 6c 74 0d 39 30 2b 20  20 45 51 55 42 20 20 20  |ilt.90+  EQUB   |
00009430  20 37 33 20 20 5c 20 72  6f 74 20 20 20 20 20 20  | 73  \ rot      |
00009440  20 20 20 72 65 6c 62 6f  77 74 72 61 6e 73 0d 39  |   relbowtrans.9|
00009450  3a 18 20 20 45 51 55 42  20 20 20 20 35 32 20 20  |:.  EQUB    52  |
00009460  5c 20 74 69 6c 74 0d 39  44 29 20 20 45 51 55 42  |\ tilt.9D)  EQUB|
00009470  20 20 20 20 33 36 20 20  5c 20 72 6f 74 20 20 20  |    36  \ rot   |
00009480  20 20 20 20 20 20 6c 68  69 70 74 72 61 6e 73 0d  |      lhiptrans.|
00009490  39 4e 18 20 20 45 51 55  42 20 20 20 20 38 30 20  |9N.  EQUB    80 |
000094a0  20 5c 20 74 69 6c 74 0d  39 58 2a 20 20 45 51 55  | \ tilt.9X*  EQU|
000094b0  42 20 20 20 20 31 32 38  20 5c 20 72 6f 74 20 20  |B    128 \ rot  |
000094c0  20 20 20 20 20 20 20 6c  6b 6e 65 65 74 72 61 6e  |       lkneetran|
000094d0  73 0d 39 62 18 20 20 45  51 55 42 20 20 20 20 35  |s.9b.  EQUB    5|
000094e0  32 20 20 5c 20 74 69 6c  74 0d 39 6c 29 20 20 45  |2  \ tilt.9l)  E|
000094f0  51 55 42 20 20 20 20 39  32 20 20 5c 20 72 6f 74  |QUB    92  \ rot|
00009500  20 20 20 20 20 20 20 20  20 72 68 69 70 74 72 61  |         rhiptra|
00009510  6e 73 0d 39 76 18 20 20  45 51 55 42 20 20 20 20  |ns.9v.  EQUB    |
00009520  38 30 20 20 5c 20 74 69  6c 74 0d 39 80 2a 20 20  |80  \ tilt.9.*  |
00009530  45 51 55 42 20 20 20 20  31 32 38 20 5c 20 72 6f  |EQUB    128 \ ro|
00009540  74 20 20 20 20 20 20 20  20 20 72 6b 6e 65 65 74  |t         rkneet|
00009550  72 61 6e 73 0d 39 8a 04  0d 39 94 21 20 20 2e 61  |rans.9...9.!  .a|
00009560  6e 67 6c 65 74 61 62 32  20 20 20 20 20 20 20 20  |ngletab2        |
00009570  20 20 20 20 5c 20 79 65  68 0d 39 9e 1c 20 20 45  |    \ yeh.9..  E|
00009580  51 55 42 20 20 20 20 30  20 20 20 5c 20 73 69 64  |QUB    0   \ sid|
00009590  65 77 61 79 73 0d 39 a8  27 20 20 45 51 55 42 20  |eways.9.'  EQUB |
000095a0  20 20 20 38 34 20 20 5c  20 68 65 69 67 68 74 20  |   84  \ height |
000095b0  20 20 20 20 20 72 65 61  6c 70 6f 73 0d 39 b2 18  |     realpos.9..|
000095c0  20 20 45 51 55 42 20 20  20 20 31 30 20 20 5c 20  |  EQUB    10  \ |
000095d0  74 69 6c 74 0d 39 bc 2a  20 20 45 51 55 42 20 20  |tilt.9.*  EQUB  |
000095e0  20 20 30 20 20 20 5c 20  72 6f 74 20 20 20 20 20  |  0   \ rot     |
000095f0  20 20 20 20 74 6f 72 73  6f 74 72 61 6e 73 0d 39  |    torsotrans.9|
00009600  c6 18 20 20 45 51 55 42  20 20 20 20 33 38 20 20  |..  EQUB    38  |
00009610  5c 20 74 69 6c 74 0d 39  d0 2e 20 20 45 51 55 42  |\ tilt.9..  EQUB|
00009620  20 20 20 20 32 34 38 20  5c 20 72 6f 74 20 20 20  |    248 \ rot   |
00009630  20 20 20 20 20 20 6c 73  68 6f 75 6c 64 65 72 74  |      lshouldert|
00009640  72 61 6e 73 0d 39 da 18  20 20 45 51 55 42 20 20  |rans.9..  EQUB  |
00009650  20 20 38 34 20 20 5c 20  74 69 6c 74 0d 39 e4 2b  |  84  \ tilt.9.+|
00009660  20 20 45 51 55 42 20 20  20 20 37 33 20 20 5c 20  |  EQUB    73  \ |
00009670  72 6f 74 20 20 20 20 20  20 20 20 20 6c 65 6c 62  |rot         lelb|
00009680  6f 77 74 72 61 6e 73 0d  39 ee 18 20 20 45 51 55  |owtrans.9..  EQU|
00009690  42 20 20 20 20 31 32 30  20 5c 20 74 69 6c 74 0d  |B    120 \ tilt.|
000096a0  39 f8 2e 20 20 45 51 55  42 20 20 20 20 31 32 30  |9..  EQUB    120|
000096b0  20 5c 20 72 6f 74 20 20  20 20 20 20 20 20 20 72  | \ rot         r|
000096c0  73 68 6f 75 6c 64 65 72  74 72 61 6e 73 0d 3a 02  |shouldertrans.:.|
000096d0  18 20 20 45 51 55 42 20  20 20 20 32 32 34 20 5c  |.  EQUB    224 \|
000096e0  20 74 69 6c 74 0d 3a 0c  2b 20 20 45 51 55 42 20  | tilt.:.+  EQUB |
000096f0  20 20 20 31 38 30 20 5c  20 72 6f 74 20 20 20 20  |   180 \ rot    |
00009700  20 20 20 20 20 72 65 6c  62 6f 77 74 72 61 6e 73  |     relbowtrans|
00009710  0d 3a 16 18 20 20 45 51  55 42 20 20 20 20 35 32  |.:..  EQUB    52|
00009720  20 20 5c 20 74 69 6c 74  0d 3a 20 29 20 20 45 51  |  \ tilt.: )  EQ|
00009730  55 42 20 20 20 20 33 36  20 20 5c 20 72 6f 74 20  |UB    36  \ rot |
00009740  20 20 20 20 20 20 20 20  6c 68 69 70 74 72 61 6e  |        lhiptran|
00009750  73 0d 3a 2a 18 20 20 45  51 55 42 20 20 20 20 38  |s.:*.  EQUB    8|
00009760  30 20 20 5c 20 74 69 6c  74 0d 3a 34 2a 20 20 45  |0  \ tilt.:4*  E|
00009770  51 55 42 20 20 20 20 31  32 38 20 5c 20 72 6f 74  |QUB    128 \ rot|
00009780  20 20 20 20 20 20 20 20  20 6c 6b 6e 65 65 74 72  |         lkneetr|
00009790  61 6e 73 0d 3a 3e 18 20  20 45 51 55 42 20 20 20  |ans.:>.  EQUB   |
000097a0  20 35 32 20 20 5c 20 74  69 6c 74 0d 3a 48 29 20  | 52  \ tilt.:H) |
000097b0  20 45 51 55 42 20 20 20  20 39 32 20 20 5c 20 72  | EQUB    92  \ r|
000097c0  6f 74 20 20 20 20 20 20  20 20 20 72 68 69 70 74  |ot         rhipt|
000097d0  72 61 6e 73 0d 3a 52 18  20 20 45 51 55 42 20 20  |rans.:R.  EQUB  |
000097e0  20 20 38 30 20 20 5c 20  74 69 6c 74 0d 3a 5c 2a  |  80  \ tilt.:\*|
000097f0  20 20 45 51 55 42 20 20  20 20 31 32 38 20 5c 20  |  EQUB    128 \ |
00009800  72 6f 74 20 20 20 20 20  20 20 20 20 72 6b 6e 65  |rot         rkne|
00009810  65 74 72 61 6e 73 0d 3a  66 04 0d 3a 70 29 20 20  |etrans.:f..:p)  |
00009820  2e 61 6e 67 6c 65 74 61  62 33 20 20 20 20 20 20  |.angletab3      |
00009830  20 20 20 20 20 20 5c 20  66 6f 6f 74 20 72 61 69  |      \ foot rai|
00009840  73 65 64 0d 3a 7a 1c 20  20 45 51 55 42 20 20 20  |sed.:z.  EQUB   |
00009850  20 30 20 20 20 5c 20 73  69 64 65 77 61 79 73 0d  | 0   \ sideways.|
00009860  3a 84 27 20 20 45 51 55  42 20 20 20 20 30 20 20  |:.'  EQUB    0  |
00009870  20 5c 20 68 65 69 67 68  74 20 20 20 20 20 20 72  | \ height      r|
00009880  65 61 6c 70 6f 73 0d 3a  8e 18 20 20 45 51 55 42  |ealpos.:..  EQUB|
00009890  20 20 20 20 31 30 20 20  5c 20 74 69 6c 74 0d 3a  |    10  \ tilt.:|
000098a0  98 2a 20 20 45 51 55 42  20 20 20 20 30 20 20 20  |.*  EQUB    0   |
000098b0  5c 20 72 6f 74 20 20 20  20 20 20 20 20 20 74 6f  |\ rot         to|
000098c0  72 73 6f 74 72 61 6e 73  0d 3a a2 18 20 20 45 51  |rsotrans.:..  EQ|
000098d0  55 42 20 20 20 20 32 30  20 20 5c 20 74 69 6c 74  |UB    20  \ tilt|
000098e0  0d 3a ac 2e 20 20 45 51  55 42 20 20 20 20 32 34  |.:..  EQUB    24|
000098f0  38 20 5c 20 72 6f 74 20  20 20 20 20 20 20 20 20  |8 \ rot         |
00009900  6c 73 68 6f 75 6c 64 65  72 74 72 61 6e 73 0d 3a  |lshouldertrans.:|
00009910  b6 18 20 20 45 51 55 42  20 20 20 20 33 34 20 20  |..  EQUB    34  |
00009920  5c 20 74 69 6c 74 0d 3a  c0 2b 20 20 45 51 55 42  |\ tilt.:.+  EQUB|
00009930  20 20 20 20 37 33 20 20  5c 20 72 6f 74 20 20 20  |    73  \ rot   |
00009940  20 20 20 20 20 20 6c 65  6c 62 6f 77 74 72 61 6e  |      lelbowtran|
00009950  73 0d 3a ca 18 20 20 45  51 55 42 20 20 20 20 32  |s.:..  EQUB    2|
00009960  30 20 20 5c 20 74 69 6c  74 0d 3a d4 2e 20 20 45  |0  \ tilt.:..  E|
00009970  51 55 42 20 20 20 20 31  32 30 20 5c 20 72 6f 74  |QUB    120 \ rot|
00009980  20 20 20 20 20 20 20 20  20 72 73 68 6f 75 6c 64  |         rshould|
00009990  65 72 74 72 61 6e 73 0d  3a de 18 20 20 45 51 55  |ertrans.:..  EQU|
000099a0  42 20 20 20 20 32 32 32  20 5c 20 74 69 6c 74 0d  |B    222 \ tilt.|
000099b0  3a e8 2b 20 20 45 51 55  42 20 20 20 20 37 33 20  |:.+  EQUB    73 |
000099c0  20 5c 20 72 6f 74 20 20  20 20 20 20 20 20 20 72  | \ rot         r|
000099d0  65 6c 62 6f 77 74 72 61  6e 73 0d 3a f2 18 20 20  |elbowtrans.:..  |
000099e0  45 51 55 42 20 20 20 20  33 30 20 20 5c 20 74 69  |EQUB    30  \ ti|
000099f0  6c 74 0d 3a fc 29 20 20  45 51 55 42 20 20 20 20  |lt.:.)  EQUB    |
00009a00  33 36 20 20 5c 20 72 6f  74 20 20 20 20 20 20 20  |36  \ rot       |
00009a10  20 20 6c 68 69 70 74 72  61 6e 73 0d 3b 06 18 20  |  lhiptrans.;.. |
00009a20  20 45 51 55 42 20 20 20  20 33 36 20 20 5c 20 74  | EQUB    36  \ t|
00009a30  69 6c 74 0d 3b 10 2a 20  20 45 51 55 42 20 20 20  |ilt.;.*  EQUB   |
00009a40  20 31 32 38 20 5c 20 72  6f 74 20 20 20 20 20 20  | 128 \ rot      |
00009a50  20 20 20 6c 6b 6e 65 65  74 72 61 6e 73 0d 3b 1a  |   lkneetrans.;.|
00009a60  18 20 20 45 51 55 42 20  20 20 20 32 34 20 20 5c  |.  EQUB    24  \|
00009a70  20 74 69 6c 74 0d 3b 24  29 20 20 45 51 55 42 20  | tilt.;$)  EQUB |
00009a80  20 20 20 39 32 20 20 5c  20 72 6f 74 20 20 20 20  |   92  \ rot    |
00009a90  20 20 20 20 20 72 68 69  70 74 72 61 6e 73 0d 3b  |     rhiptrans.;|
00009aa0  2e 18 20 20 45 51 55 42  20 20 20 20 32 34 20 20  |..  EQUB    24  |
00009ab0  5c 20 74 69 6c 74 0d 3b  38 2a 20 20 45 51 55 42  |\ tilt.;8*  EQUB|
00009ac0  20 20 20 20 31 32 38 20  5c 20 72 6f 74 20 20 20  |    128 \ rot   |
00009ad0  20 20 20 20 20 20 72 6b  6e 65 65 74 72 61 6e 73  |      rkneetrans|
00009ae0  0d 3b 42 04 0d 3b 4c 29  20 20 2e 61 6e 67 6c 65  |.;B..;L)  .angle|
00009af0  74 61 62 34 20 20 20 20  20 20 20 20 20 20 20 20  |tab4            |
00009b00  5c 20 66 6f 6f 74 20 72  61 69 73 65 64 0d 3b 56  |\ foot raised.;V|
00009b10  1c 20 20 45 51 55 42 20  20 20 20 30 20 20 20 5c  |.  EQUB    0   \|
00009b20  20 73 69 64 65 77 61 79  73 0d 3b 60 27 20 20 45  | sideways.;`'  E|
00009b30  51 55 42 20 20 20 20 30  20 20 20 5c 20 68 65 69  |QUB    0   \ hei|
00009b40  67 68 74 20 20 20 20 20  20 72 65 61 6c 70 6f 73  |ght      realpos|
00009b50  0d 3b 6a 18 20 20 45 51  55 42 20 20 20 20 31 30  |.;j.  EQUB    10|
00009b60  20 20 5c 20 74 69 6c 74  0d 3b 74 2a 20 20 45 51  |  \ tilt.;t*  EQ|
00009b70  55 42 20 20 20 20 30 20  20 20 5c 20 72 6f 74 20  |UB    0   \ rot |
00009b80  20 20 20 20 20 20 20 20  74 6f 72 73 6f 74 72 61  |        torsotra|
00009b90  6e 73 0d 3b 7e 18 20 20  45 51 55 42 20 20 20 20  |ns.;~.  EQUB    |
00009ba0  33 38 20 20 5c 20 74 69  6c 74 0d 3b 88 2e 20 20  |38  \ tilt.;..  |
00009bb0  45 51 55 42 20 20 20 20  32 34 38 20 5c 20 72 6f  |EQUB    248 \ ro|
00009bc0  74 20 20 20 20 20 20 20  20 20 6c 73 68 6f 75 6c  |t         lshoul|
00009bd0  64 65 72 74 72 61 6e 73  0d 3b 92 18 20 20 45 51  |dertrans.;..  EQ|
00009be0  55 42 20 20 20 20 38 34  20 20 5c 20 74 69 6c 74  |UB    84  \ tilt|
00009bf0  0d 3b 9c 2b 20 20 45 51  55 42 20 20 20 20 37 33  |.;.+  EQUB    73|
00009c00  20 20 5c 20 72 6f 74 20  20 20 20 20 20 20 20 20  |  \ rot         |
00009c10  6c 65 6c 62 6f 77 74 72  61 6e 73 0d 3b a6 18 20  |lelbowtrans.;.. |
00009c20  20 45 51 55 42 20 20 20  20 33 38 20 20 5c 20 74  | EQUB    38  \ t|
00009c30  69 6c 74 0d 3b b0 2e 20  20 45 51 55 42 20 20 20  |ilt.;..  EQUB   |
00009c40  20 31 32 30 20 5c 20 72  6f 74 20 20 20 20 20 20  | 120 \ rot      |
00009c50  20 20 20 72 73 68 6f 75  6c 64 65 72 74 72 61 6e  |   rshouldertran|
00009c60  73 0d 3b ba 18 20 20 45  51 55 42 20 20 20 20 31  |s.;..  EQUB    1|
00009c70  37 32 20 5c 20 74 69 6c  74 0d 3b c4 2b 20 20 45  |72 \ tilt.;.+  E|
00009c80  51 55 42 20 20 20 20 37  33 20 20 5c 20 72 6f 74  |QUB    73  \ rot|
00009c90  20 20 20 20 20 20 20 20  20 72 65 6c 62 6f 77 74  |         relbowt|
00009ca0  72 61 6e 73 0d 3b ce 18  20 20 45 51 55 42 20 20  |rans.;..  EQUB  |
00009cb0  20 20 33 30 20 20 5c 20  74 69 6c 74 0d 3b d8 29  |  30  \ tilt.;.)|
00009cc0  20 20 45 51 55 42 20 20  20 20 33 36 20 20 5c 20  |  EQUB    36  \ |
00009cd0  72 6f 74 20 20 20 20 20  20 20 20 20 6c 68 69 70  |rot         lhip|
00009ce0  74 72 61 6e 73 0d 3b e2  18 20 20 45 51 55 42 20  |trans.;..  EQUB |
00009cf0  20 20 20 33 36 20 20 5c  20 74 69 6c 74 0d 3b ec  |   36  \ tilt.;.|
00009d00  2a 20 20 45 51 55 42 20  20 20 20 31 32 38 20 5c  |*  EQUB    128 \|
00009d10  20 72 6f 74 20 20 20 20  20 20 20 20 20 6c 6b 6e  | rot         lkn|
00009d20  65 65 74 72 61 6e 73 0d  3b f6 18 20 20 45 51 55  |eetrans.;..  EQU|
00009d30  42 20 20 20 20 32 34 20  20 5c 20 74 69 6c 74 0d  |B    24  \ tilt.|
00009d40  3c 00 29 20 20 45 51 55  42 20 20 20 20 39 32 20  |<.)  EQUB    92 |
00009d50  20 5c 20 72 6f 74 20 20  20 20 20 20 20 20 20 72  | \ rot         r|
00009d60  68 69 70 74 72 61 6e 73  0d 3c 0a 18 20 20 45 51  |hiptrans.<..  EQ|
00009d70  55 42 20 20 20 20 32 34  20 20 5c 20 74 69 6c 74  |UB    24  \ tilt|
00009d80  0d 3c 14 2a 20 20 45 51  55 42 20 20 20 20 31 32  |.<.*  EQUB    12|
00009d90  38 20 5c 20 72 6f 74 20  20 20 20 20 20 20 20 20  |8 \ rot         |
00009da0  72 6b 6e 65 65 74 72 61  6e 73 0d 3c 1e 04 0d 3c  |rkneetrans.<...<|
00009db0  28 2c 20 20 2e 61 6e 67  6c 65 74 61 62 35 20 20  |(,  .angletab5  |
00009dc0  20 20 20 20 20 20 20 20  20 20 5c 20 68 61 6e 64  |          \ hand|
00009dd0  73 20 69 6e 20 66 72 6f  6e 74 0d 3c 32 1c 20 20  |s in front.<2.  |
00009de0  45 51 55 42 20 20 20 20  30 20 20 20 5c 20 73 69  |EQUB    0   \ si|
00009df0  64 65 77 61 79 73 0d 3c  3c 27 20 20 45 51 55 42  |deways.<<'  EQUB|
00009e00  20 20 20 20 30 20 20 20  5c 20 68 65 69 67 68 74  |    0   \ height|
00009e10  20 20 20 20 20 20 72 65  61 6c 70 6f 73 0d 3c 46  |      realpos.<F|
00009e20  18 20 20 45 51 55 42 20  20 20 20 31 30 20 20 5c  |.  EQUB    10  \|
00009e30  20 74 69 6c 74 0d 3c 50  2a 20 20 45 51 55 42 20  | tilt.<P*  EQUB |
00009e40  20 20 20 30 20 20 20 5c  20 72 6f 74 20 20 20 20  |   0   \ rot    |
00009e50  20 20 20 20 20 74 6f 72  73 6f 74 72 61 6e 73 0d  |     torsotrans.|
00009e60  3c 5a 18 20 20 45 51 55  42 20 20 20 20 35 30 20  |<Z.  EQUB    50 |
00009e70  20 5c 20 74 69 6c 74 0d  3c 64 2e 20 20 45 51 55  | \ tilt.<d.  EQU|
00009e80  42 20 20 20 20 34 38 20  20 5c 20 72 6f 74 20 20  |B    48  \ rot  |
00009e90  20 20 20 20 20 20 20 6c  73 68 6f 75 6c 64 65 72  |       lshoulder|
00009ea0  74 72 61 6e 73 0d 3c 6e  18 20 20 45 51 55 42 20  |trans.<n.  EQUB |
00009eb0  20 20 20 37 38 20 20 5c  20 74 69 6c 74 0d 3c 78  |   78  \ tilt.<x|
00009ec0  2b 20 20 45 51 55 42 20  20 20 20 30 20 20 20 5c  |+  EQUB    0   \|
00009ed0  20 72 6f 74 20 20 20 20  20 20 20 20 20 6c 65 6c  | rot         lel|
00009ee0  62 6f 77 74 72 61 6e 73  0d 3c 82 18 20 20 45 51  |bowtrans.<..  EQ|
00009ef0  55 42 20 20 20 20 35 30  20 20 5c 20 74 69 6c 74  |UB    50  \ tilt|
00009f00  0d 3c 8c 2e 20 20 45 51  55 42 20 20 20 20 38 30  |.<..  EQUB    80|
00009f10  20 20 5c 20 72 6f 74 20  20 20 20 20 20 20 20 20  |  \ rot         |
00009f20  72 73 68 6f 75 6c 64 65  72 74 72 61 6e 73 0d 3c  |rshouldertrans.<|
00009f30  96 18 20 20 45 51 55 42  20 20 20 20 31 37 38 20  |..  EQUB    178 |
00009f40  5c 20 74 69 6c 74 0d 3c  a0 2b 20 20 45 51 55 42  |\ tilt.<.+  EQUB|
00009f50  20 20 20 20 31 32 38 20  5c 20 72 6f 74 20 20 20  |    128 \ rot   |
00009f60  20 20 20 20 20 20 72 65  6c 62 6f 77 74 72 61 6e  |      relbowtran|
00009f70  73 0d 3c aa 18 20 20 45  51 55 42 20 20 20 20 32  |s.<..  EQUB    2|
00009f80  34 20 20 5c 20 74 69 6c  74 0d 3c b4 29 20 20 45  |4  \ tilt.<.)  E|
00009f90  51 55 42 20 20 20 20 33  36 20 20 5c 20 72 6f 74  |QUB    36  \ rot|
00009fa0  20 20 20 20 20 20 20 20  20 6c 68 69 70 74 72 61  |         lhiptra|
00009fb0  6e 73 0d 3c be 18 20 20  45 51 55 42 20 20 20 20  |ns.<..  EQUB    |
00009fc0  32 34 20 20 5c 20 74 69  6c 74 0d 3c c8 2a 20 20  |24  \ tilt.<.*  |
00009fd0  45 51 55 42 20 20 20 20  31 32 38 20 5c 20 72 6f  |EQUB    128 \ ro|
00009fe0  74 20 20 20 20 20 20 20  20 20 6c 6b 6e 65 65 74  |t         lkneet|
00009ff0  72 61 6e 73 0d 3c d2 18  20 20 45 51 55 42 20 20  |rans.<..  EQUB  |
0000a000  20 20 32 34 20 20 5c 20  74 69 6c 74 0d 3c dc 29  |  24  \ tilt.<.)|
0000a010  20 20 45 51 55 42 20 20  20 20 39 32 20 20 5c 20  |  EQUB    92  \ |
0000a020  72 6f 74 20 20 20 20 20  20 20 20 20 72 68 69 70  |rot         rhip|
0000a030  74 72 61 6e 73 0d 3c e6  18 20 20 45 51 55 42 20  |trans.<..  EQUB |
0000a040  20 20 20 32 34 20 20 5c  20 74 69 6c 74 0d 3c f0  |   24  \ tilt.<.|
0000a050  2a 20 20 45 51 55 42 20  20 20 20 31 32 38 20 5c  |*  EQUB    128 \|
0000a060  20 72 6f 74 20 20 20 20  20 20 20 20 20 72 6b 6e  | rot         rkn|
0000a070  65 65 74 72 61 6e 73 0d  3c fa 04 0d 3d 04 2a 20  |eetrans.<...=.* |
0000a080  20 2e 61 6e 67 6c 65 74  61 62 36 20 20 20 20 20  | .angletab6     |
0000a090  20 20 20 20 20 20 20 5c  20 68 61 6e 64 73 20 62  |       \ hands b|
0000a0a0  65 68 69 6e 64 0d 3d 0e  1c 20 20 45 51 55 42 20  |ehind.=..  EQUB |
0000a0b0  20 20 20 30 20 20 20 5c  20 73 69 64 65 77 61 79  |   0   \ sideway|
0000a0c0  73 0d 3d 18 27 20 20 45  51 55 42 20 20 20 20 38  |s.=.'  EQUB    8|
0000a0d0  34 20 20 5c 20 68 65 69  67 68 74 20 20 20 20 20  |4  \ height     |
0000a0e0  20 72 65 61 6c 70 6f 73  0d 3d 22 18 20 20 45 51  | realpos.=".  EQ|
0000a0f0  55 42 20 20 20 20 31 30  20 20 5c 20 74 69 6c 74  |UB    10  \ tilt|
0000a100  0d 3d 2c 2a 20 20 45 51  55 42 20 20 20 20 30 20  |.=,*  EQUB    0 |
0000a110  20 20 5c 20 72 6f 74 20  20 20 20 20 20 20 20 20  |  \ rot         |
0000a120  74 6f 72 73 6f 74 72 61  6e 73 0d 3d 36 18 20 20  |torsotrans.=6.  |
0000a130  45 51 55 42 20 20 20 20  39 36 20 20 5c 20 74 69  |EQUB    96  \ ti|
0000a140  6c 74 0d 3d 40 2e 20 20  45 51 55 42 20 20 20 20  |lt.=@.  EQUB    |
0000a150  34 38 20 20 5c 20 72 6f  74 20 20 20 20 20 20 20  |48  \ rot       |
0000a160  20 20 6c 73 68 6f 75 6c  64 65 72 74 72 61 6e 73  |  lshouldertrans|
0000a170  0d 3d 4a 18 20 20 45 51  55 42 20 20 20 20 37 38  |.=J.  EQUB    78|
0000a180  20 20 5c 20 74 69 6c 74  0d 3d 54 2b 20 20 45 51  |  \ tilt.=T+  EQ|
0000a190  55 42 20 20 20 20 30 20  20 20 5c 20 72 6f 74 20  |UB    0   \ rot |
0000a1a0  20 20 20 20 20 20 20 20  6c 65 6c 62 6f 77 74 72  |        lelbowtr|
0000a1b0  61 6e 73 0d 3d 5e 18 20  20 45 51 55 42 20 20 20  |ans.=^.  EQUB   |
0000a1c0  20 39 36 20 20 5c 20 74  69 6c 74 0d 3d 68 2e 20  | 96  \ tilt.=h. |
0000a1d0  20 45 51 55 42 20 20 20  20 38 30 20 20 5c 20 72  | EQUB    80  \ r|
0000a1e0  6f 74 20 20 20 20 20 20  20 20 20 72 73 68 6f 75  |ot         rshou|
0000a1f0  6c 64 65 72 74 72 61 6e  73 0d 3d 72 18 20 20 45  |ldertrans.=r.  E|
0000a200  51 55 42 20 20 20 20 31  37 38 20 5c 20 74 69 6c  |QUB    178 \ til|
0000a210  74 0d 3d 7c 2b 20 20 45  51 55 42 20 20 20 20 31  |t.=|+  EQUB    1|
0000a220  32 38 20 5c 20 72 6f 74  20 20 20 20 20 20 20 20  |28 \ rot        |
0000a230  20 72 65 6c 62 6f 77 74  72 61 6e 73 0d 3d 86 18  | relbowtrans.=..|
0000a240  20 20 45 51 55 42 20 20  20 20 35 32 20 20 5c 20  |  EQUB    52  \ |
0000a250  74 69 6c 74 0d 3d 90 29  20 20 45 51 55 42 20 20  |tilt.=.)  EQUB  |
0000a260  20 20 33 36 20 20 5c 20  72 6f 74 20 20 20 20 20  |  36  \ rot     |
0000a270  20 20 20 20 6c 68 69 70  74 72 61 6e 73 0d 3d 9a  |    lhiptrans.=.|
0000a280  18 20 20 45 51 55 42 20  20 20 20 38 30 20 20 5c  |.  EQUB    80  \|
0000a290  20 74 69 6c 74 0d 3d a4  2a 20 20 45 51 55 42 20  | tilt.=.*  EQUB |
0000a2a0  20 20 20 31 32 38 20 5c  20 72 6f 74 20 20 20 20  |   128 \ rot    |
0000a2b0  20 20 20 20 20 6c 6b 6e  65 65 74 72 61 6e 73 0d  |     lkneetrans.|
0000a2c0  3d ae 18 20 20 45 51 55  42 20 20 20 20 35 32 20  |=..  EQUB    52 |
0000a2d0  20 5c 20 74 69 6c 74 0d  3d b8 29 20 20 45 51 55  | \ tilt.=.)  EQU|
0000a2e0  42 20 20 20 20 39 32 20  20 5c 20 72 6f 74 20 20  |B    92  \ rot  |
0000a2f0  20 20 20 20 20 20 20 72  68 69 70 74 72 61 6e 73  |       rhiptrans|
0000a300  0d 3d c2 18 20 20 45 51  55 42 20 20 20 20 38 30  |.=..  EQUB    80|
0000a310  20 20 5c 20 74 69 6c 74  0d 3d cc 2a 20 20 45 51  |  \ tilt.=.*  EQ|
0000a320  55 42 20 20 20 20 31 32  38 20 5c 20 72 6f 74 20  |UB    128 \ rot |
0000a330  20 20 20 20 20 20 20 20  72 6b 6e 65 65 74 72 61  |        rkneetra|
0000a340  6e 73 0d 3d d6 04 0d 3d  e0 2d 20 20 2e 61 6e 67  |ns.=...=.-  .ang|
0000a350  6c 65 74 61 62 37 20 20  20 20 20 20 20 20 20 20  |letab7          |
0000a360  20 20 5c 20 68 61 6e 64  73 20 63 72 6f 73 73 65  |  \ hands crosse|
0000a370  64 20 31 0d 3d ea 1c 20  20 45 51 55 42 20 20 20  |d 1.=..  EQUB   |
0000a380  20 30 20 20 20 5c 20 73  69 64 65 77 61 79 73 0d  | 0   \ sideways.|
0000a390  3d f4 27 20 20 45 51 55  42 20 20 20 20 38 34 20  |=.'  EQUB    84 |
0000a3a0  20 5c 20 68 65 69 67 68  74 20 20 20 20 20 20 72  | \ height      r|
0000a3b0  65 61 6c 70 6f 73 0d 3d  fe 18 20 20 45 51 55 42  |ealpos.=..  EQUB|
0000a3c0  20 20 20 20 31 30 20 20  5c 20 74 69 6c 74 0d 3e  |    10  \ tilt.>|
0000a3d0  08 2a 20 20 45 51 55 42  20 20 20 20 30 20 20 20  |.*  EQUB    0   |
0000a3e0  5c 20 72 6f 74 20 20 20  20 20 20 20 20 20 74 6f  |\ rot         to|
0000a3f0  72 73 6f 74 72 61 6e 73  0d 3e 12 18 20 20 45 51  |rsotrans.>..  EQ|
0000a400  55 42 20 20 20 20 35 30  20 20 5c 20 74 69 6c 74  |UB    50  \ tilt|
0000a410  0d 3e 1c 2e 20 20 45 51  55 42 20 20 20 20 35 36  |.>..  EQUB    56|
0000a420  20 20 5c 20 72 6f 74 20  20 20 20 20 20 20 20 20  |  \ rot         |
0000a430  6c 73 68 6f 75 6c 64 65  72 74 72 61 6e 73 0d 3e  |lshouldertrans.>|
0000a440  26 18 20 20 45 51 55 42  20 20 20 20 36 32 20 20  |&.  EQUB    62  |
0000a450  5c 20 74 69 6c 74 0d 3e  30 2b 20 20 45 51 55 42  |\ tilt.>0+  EQUB|
0000a460  20 20 20 20 33 32 20 20  5c 20 72 6f 74 20 20 20  |    32  \ rot   |
0000a470  20 20 20 20 20 20 6c 65  6c 62 6f 77 74 72 61 6e  |      lelbowtran|
0000a480  73 0d 3e 3a 18 20 20 45  51 55 42 20 20 20 20 35  |s.>:.  EQUB    5|
0000a490  30 20 20 5c 20 74 69 6c  74 0d 3e 44 2e 20 20 45  |0  \ tilt.>D.  E|
0000a4a0  51 55 42 20 20 20 20 37  32 20 20 5c 20 72 6f 74  |QUB    72  \ rot|
0000a4b0  20 20 20 20 20 20 20 20  20 72 73 68 6f 75 6c 64  |         rshould|
0000a4c0  65 72 74 72 61 6e 73 0d  3e 4e 18 20 20 45 51 55  |ertrans.>N.  EQU|
0000a4d0  42 20 20 20 20 31 36 32  20 5c 20 74 69 6c 74 0d  |B    162 \ tilt.|
0000a4e0  3e 58 2b 20 20 45 51 55  42 20 20 20 20 39 36 20  |>X+  EQUB    96 |
0000a4f0  20 5c 20 72 6f 74 20 20  20 20 20 20 20 20 20 72  | \ rot         r|
0000a500  65 6c 62 6f 77 74 72 61  6e 73 0d 3e 62 18 20 20  |elbowtrans.>b.  |
0000a510  45 51 55 42 20 20 20 20  35 32 20 20 5c 20 74 69  |EQUB    52  \ ti|
0000a520  6c 74 0d 3e 6c 29 20 20  45 51 55 42 20 20 20 20  |lt.>l)  EQUB    |
0000a530  33 36 20 20 5c 20 72 6f  74 20 20 20 20 20 20 20  |36  \ rot       |
0000a540  20 20 6c 68 69 70 74 72  61 6e 73 0d 3e 76 18 20  |  lhiptrans.>v. |
0000a550  20 45 51 55 42 20 20 20  20 38 30 20 20 5c 20 74  | EQUB    80  \ t|
0000a560  69 6c 74 0d 3e 80 2a 20  20 45 51 55 42 20 20 20  |ilt.>.*  EQUB   |
0000a570  20 31 32 38 20 5c 20 72  6f 74 20 20 20 20 20 20  | 128 \ rot      |
0000a580  20 20 20 6c 6b 6e 65 65  74 72 61 6e 73 0d 3e 8a  |   lkneetrans.>.|
0000a590  18 20 20 45 51 55 42 20  20 20 20 35 32 20 20 5c  |.  EQUB    52  \|
0000a5a0  20 74 69 6c 74 0d 3e 94  29 20 20 45 51 55 42 20  | tilt.>.)  EQUB |
0000a5b0  20 20 20 39 32 20 20 5c  20 72 6f 74 20 20 20 20  |   92  \ rot    |
0000a5c0  20 20 20 20 20 72 68 69  70 74 72 61 6e 73 0d 3e  |     rhiptrans.>|
0000a5d0  9e 18 20 20 45 51 55 42  20 20 20 20 38 30 20 20  |..  EQUB    80  |
0000a5e0  5c 20 74 69 6c 74 0d 3e  a8 2a 20 20 45 51 55 42  |\ tilt.>.*  EQUB|
0000a5f0  20 20 20 20 31 32 38 20  5c 20 72 6f 74 20 20 20  |    128 \ rot   |
0000a600  20 20 20 20 20 20 72 6b  6e 65 65 74 72 61 6e 73  |      rkneetrans|
0000a610  0d 3e b2 04 0d 3e bc 2d  20 20 2e 61 6e 67 6c 65  |.>...>.-  .angle|
0000a620  74 61 62 38 20 20 20 20  20 20 20 20 20 20 20 20  |tab8            |
0000a630  5c 20 68 61 6e 64 73 20  63 72 6f 73 73 65 64 20  |\ hands crossed |
0000a640  31 0d 3e c6 1c 20 20 45  51 55 42 20 20 20 20 30  |1.>..  EQUB    0|
0000a650  20 20 20 5c 20 73 69 64  65 77 61 79 73 0d 3e d0  |   \ sideways.>.|
0000a660  27 20 20 45 51 55 42 20  20 20 20 38 34 20 20 5c  |'  EQUB    84  \|
0000a670  20 68 65 69 67 68 74 20  20 20 20 20 20 72 65 61  | height      rea|
0000a680  6c 70 6f 73 0d 3e da 18  20 20 45 51 55 42 20 20  |lpos.>..  EQUB  |
0000a690  20 20 31 30 20 20 5c 20  74 69 6c 74 0d 3e e4 2a  |  10  \ tilt.>.*|
0000a6a0  20 20 45 51 55 42 20 20  20 20 30 20 20 20 5c 20  |  EQUB    0   \ |
0000a6b0  72 6f 74 20 20 20 20 20  20 20 20 20 74 6f 72 73  |rot         tors|
0000a6c0  6f 74 72 61 6e 73 0d 3e  ee 18 20 20 45 51 55 42  |otrans.>..  EQUB|
0000a6d0  20 20 20 20 35 30 20 20  5c 20 74 69 6c 74 0d 3e  |    50  \ tilt.>|
0000a6e0  f8 2e 20 20 45 51 55 42  20 20 20 20 35 36 20 20  |..  EQUB    56  |
0000a6f0  5c 20 72 6f 74 20 20 20  20 20 20 20 20 20 6c 73  |\ rot         ls|
0000a700  68 6f 75 6c 64 65 72 74  72 61 6e 73 0d 3f 02 18  |houldertrans.?..|
0000a710  20 20 45 51 55 42 20 20  20 20 39 34 20 20 5c 20  |  EQUB    94  \ |
0000a720  74 69 6c 74 0d 3f 0c 2b  20 20 45 51 55 42 20 20  |tilt.?.+  EQUB  |
0000a730  20 20 33 32 20 20 5c 20  72 6f 74 20 20 20 20 20  |  32  \ rot     |
0000a740  20 20 20 20 6c 65 6c 62  6f 77 74 72 61 6e 73 0d  |    lelbowtrans.|
0000a750  3f 16 18 20 20 45 51 55  42 20 20 20 20 35 30 20  |?..  EQUB    50 |
0000a760  20 5c 20 74 69 6c 74 0d  3f 20 2e 20 20 45 51 55  | \ tilt.? .  EQU|
0000a770  42 20 20 20 20 37 32 20  20 5c 20 72 6f 74 20 20  |B    72  \ rot  |
0000a780  20 20 20 20 20 20 20 72  73 68 6f 75 6c 64 65 72  |       rshoulder|
0000a790  74 72 61 6e 73 0d 3f 2a  18 20 20 45 51 55 42 20  |trans.?*.  EQUB |
0000a7a0  20 20 20 31 39 34 20 5c  20 74 69 6c 74 0d 3f 34  |   194 \ tilt.?4|
0000a7b0  2b 20 20 45 51 55 42 20  20 20 20 39 36 20 20 5c  |+  EQUB    96  \|
0000a7c0  20 72 6f 74 20 20 20 20  20 20 20 20 20 72 65 6c  | rot         rel|
0000a7d0  62 6f 77 74 72 61 6e 73  0d 3f 3e 18 20 20 45 51  |bowtrans.?>.  EQ|
0000a7e0  55 42 20 20 20 20 35 32  20 20 5c 20 74 69 6c 74  |UB    52  \ tilt|
0000a7f0  0d 3f 48 29 20 20 45 51  55 42 20 20 20 20 33 36  |.?H)  EQUB    36|
0000a800  20 20 5c 20 72 6f 74 20  20 20 20 20 20 20 20 20  |  \ rot         |
0000a810  6c 68 69 70 74 72 61 6e  73 0d 3f 52 18 20 20 45  |lhiptrans.?R.  E|
0000a820  51 55 42 20 20 20 20 38  30 20 20 5c 20 74 69 6c  |QUB    80  \ til|
0000a830  74 0d 3f 5c 2a 20 20 45  51 55 42 20 20 20 20 31  |t.?\*  EQUB    1|
0000a840  32 38 20 5c 20 72 6f 74  20 20 20 20 20 20 20 20  |28 \ rot        |
0000a850  20 6c 6b 6e 65 65 74 72  61 6e 73 0d 3f 66 18 20  | lkneetrans.?f. |
0000a860  20 45 51 55 42 20 20 20  20 35 32 20 20 5c 20 74  | EQUB    52  \ t|
0000a870  69 6c 74 0d 3f 70 29 20  20 45 51 55 42 20 20 20  |ilt.?p)  EQUB   |
0000a880  20 39 32 20 20 5c 20 72  6f 74 20 20 20 20 20 20  | 92  \ rot      |
0000a890  20 20 20 72 68 69 70 74  72 61 6e 73 0d 3f 7a 18  |   rhiptrans.?z.|
0000a8a0  20 20 45 51 55 42 20 20  20 20 38 30 20 20 5c 20  |  EQUB    80  \ |
0000a8b0  74 69 6c 74 0d 3f 84 2a  20 20 45 51 55 42 20 20  |tilt.?.*  EQUB  |
0000a8c0  20 20 31 32 38 20 5c 20  72 6f 74 20 20 20 20 20  |  128 \ rot     |
0000a8d0  20 20 20 20 72 6b 6e 65  65 74 72 61 6e 73 0d 3f  |    rkneetrans.?|
0000a8e0  8e 04 0d 3f 98 28 20 20  2e 61 6e 67 6c 65 74 61  |...?.(  .angleta|
0000a8f0  62 39 20 20 20 20 20 20  20 20 20 20 20 20 5c 20  |b9            \ |
0000a900  74 68 65 20 73 70 6c 69  74 73 0d 3f a2 1c 20 20  |the splits.?..  |
0000a910  45 51 55 42 20 20 20 20  30 20 20 20 5c 20 73 69  |EQUB    0   \ si|
0000a920  64 65 77 61 79 73 0d 3f  ac 27 20 20 45 51 55 42  |deways.?.'  EQUB|
0000a930  20 20 20 20 31 35 30 20  5c 20 68 65 69 67 68 74  |    150 \ height|
0000a940  20 20 20 20 20 20 72 65  61 6c 70 6f 73 0d 3f b6  |      realpos.?.|
0000a950  18 20 20 45 51 55 42 20  20 20 20 31 30 20 20 5c  |.  EQUB    10  \|
0000a960  20 74 69 6c 74 0d 3f c0  2a 20 20 45 51 55 42 20  | tilt.?.*  EQUB |
0000a970  20 20 20 30 20 20 20 5c  20 72 6f 74 20 20 20 20  |   0   \ rot    |
0000a980  20 20 20 20 20 74 6f 72  73 6f 74 72 61 6e 73 0d  |     torsotrans.|
0000a990  3f ca 18 20 20 45 51 55  42 20 20 20 20 31 31 36  |?..  EQUB    116|
0000a9a0  20 5c 20 74 69 6c 74 0d  3f d4 2e 20 20 45 51 55  | \ tilt.?..  EQU|
0000a9b0  42 20 20 20 20 32 34 38  20 5c 20 72 6f 74 20 20  |B    248 \ rot  |
0000a9c0  20 20 20 20 20 20 20 6c  73 68 6f 75 6c 64 65 72  |       lshoulder|
0000a9d0  74 72 61 6e 73 0d 3f de  18 20 20 45 51 55 42 20  |trans.?..  EQUB |
0000a9e0  20 20 20 35 20 20 20 5c  20 74 69 6c 74 0d 3f e8  |   5   \ tilt.?.|
0000a9f0  2b 20 20 45 51 55 42 20  20 20 20 37 33 20 20 5c  |+  EQUB    73  \|
0000aa00  20 72 6f 74 20 20 20 20  20 20 20 20 20 6c 65 6c  | rot         lel|
0000aa10  62 6f 77 74 72 61 6e 73  0d 3f f2 18 20 20 45 51  |bowtrans.?..  EQ|
0000aa20  55 42 20 20 20 20 31 31  36 20 5c 20 74 69 6c 74  |UB    116 \ tilt|
0000aa30  0d 3f fc 2e 20 20 45 51  55 42 20 20 20 20 31 32  |.?..  EQUB    12|
0000aa40  30 20 5c 20 72 6f 74 20  20 20 20 20 20 20 20 20  |0 \ rot         |
0000aa50  72 73 68 6f 75 6c 64 65  72 74 72 61 6e 73 0d 40  |rshouldertrans.@|
0000aa60  06 18 20 20 45 51 55 42  20 20 20 20 32 35 31 20  |..  EQUB    251 |
0000aa70  5c 20 74 69 6c 74 0d 40  10 2b 20 20 45 51 55 42  |\ tilt.@.+  EQUB|
0000aa80  20 20 20 20 37 33 20 20  5c 20 72 6f 74 20 20 20  |    73  \ rot   |
0000aa90  20 20 20 20 20 20 72 65  6c 62 6f 77 74 72 61 6e  |      relbowtran|
0000aaa0  73 0d 40 1a 18 20 20 45  51 55 42 20 20 20 20 38  |s.@..  EQUB    8|
0000aab0  30 20 20 5c 20 74 69 6c  74 0d 40 24 29 20 20 45  |0  \ tilt.@$)  E|
0000aac0  51 55 42 20 20 20 20 30  20 20 20 5c 20 72 6f 74  |QUB    0   \ rot|
0000aad0  20 20 20 20 20 20 20 20  20 6c 68 69 70 74 72 61  |         lhiptra|
0000aae0  6e 73 0d 40 2e 18 20 20  45 51 55 42 20 20 20 20  |ns.@..  EQUB    |
0000aaf0  31 30 20 20 5c 20 74 69  6c 74 0d 40 38 2a 20 20  |10  \ tilt.@8*  |
0000ab00  45 51 55 42 20 20 20 20  31 32 38 20 5c 20 72 6f  |EQUB    128 \ ro|
0000ab10  74 20 20 20 20 20 20 20  20 20 6c 6b 6e 65 65 74  |t         lkneet|
0000ab20  72 61 6e 73 0d 40 42 18  20 20 45 51 55 42 20 20  |rans.@B.  EQUB  |
0000ab30  20 20 38 30 20 20 5c 20  74 69 6c 74 0d 40 4c 29  |  80  \ tilt.@L)|
0000ab40  20 20 45 51 55 42 20 20  20 20 31 32 38 20 5c 20  |  EQUB    128 \ |
0000ab50  72 6f 74 20 20 20 20 20  20 20 20 20 72 68 69 70  |rot         rhip|
0000ab60  74 72 61 6e 73 0d 40 56  18 20 20 45 51 55 42 20  |trans.@V.  EQUB |
0000ab70  20 20 20 31 30 20 20 5c  20 74 69 6c 74 0d 40 60  |   10  \ tilt.@`|
0000ab80  2a 20 20 45 51 55 42 20  20 20 20 31 32 38 20 5c  |*  EQUB    128 \|
0000ab90  20 72 6f 74 20 20 20 20  20 20 20 20 20 72 6b 6e  | rot         rkn|
0000aba0  65 65 74 72 61 6e 73 0d  40 6a 04 0d 40 74 12 20  |eetrans.@j..@t. |
0000abb0  20 2e 61 6e 67 6c 65 74  61 62 63 75 72 0d 40 7e  | .angletabcur.@~|
0000abc0  0f 20 20 45 51 55 44 20  20 20 20 30 0d 40 88 0f  |.  EQUD    0.@..|
0000abd0  20 20 45 51 55 44 20 20  20 20 30 0d 40 92 0f 20  |  EQUD    0.@.. |
0000abe0  20 45 51 55 44 20 20 20  20 30 0d 40 9c 0f 20 20  | EQUD    0.@..  |
0000abf0  45 51 55 44 20 20 20 20  30 0d 40 a6 0f 20 20 45  |EQUD    0.@..  E|
0000ac00  51 55 44 20 20 20 20 30  0d 40 b0 04 0d 40 ba 0d  |QUD    0.@...@..|
0000ac10  20 20 2e 6d 63 6f 6e 73  74 0d 40 c4 19 20 20 45  |  .mconst.@..  E|
0000ac20  51 55 44 20 20 20 20 36  35 35 33 36 2f 36 2b 30  |QUD    65536/6+0|
0000ac30  2e 35 0d 40 ce 04 0d 40  d8 13 20 20 2e 73 69 6e  |.5.@...@..  .sin|
0000ac40  63 6f 73 74 61 62 69 6e  64 0d 40 e2 17 20 20 45  |costabind.@..  E|
0000ac50  51 55 44 20 20 20 20 73  69 6e 63 6f 73 74 61 62  |QUD    sincostab|
0000ac60  0d 40 ec 04 0d 40 f6 18  20 20 2e 63 68 61 6e 67  |.@...@..  .chang|
0000ac70  65 61 62 6c 65 64 61 74  61 69 6e 64 0d 41 00 1c  |eabledataind.A..|
0000ac80  20 20 45 51 55 44 20 20  20 20 63 68 61 6e 67 65  |  EQUD    change|
0000ac90  61 62 6c 65 64 61 74 61  0d 41 0a 04 0d 41 14 15  |abledata.A...A..|
0000aca0  20 20 2e 70 6c 6f 74 73  63 72 65 65 6e 69 6e 64  |  .plotscreenind|
0000acb0  61 0d 41 1e 1c 20 20 45  51 55 44 20 20 20 20 70  |a.A..  EQUD    p|
0000acc0  6c 6f 74 73 63 72 65 65  6e 62 61 73 65 0d 41 28  |lotscreenbase.A(|
0000acd0  04 0d 41 32 18 20 20 5c  20 55 70 64 61 74 65 20  |..A2.  \ Update |
0000ace0  6d 6f 76 65 6d 65 6e 74  73 0d 41 3c 0d 20 20 2e  |movements.A<.  .|
0000acf0  75 70 64 61 74 65 0d 41  46 1f 20 20 53 54 4d 46  |update.AF.  STMF|
0000ad00  44 20 20 20 52 31 33 21  2c 7b 52 30 2d 52 31 32  |D   R13!,{R0-R12|
0000ad10  2c 52 31 34 7d 0d 41 50  04 0d 41 5a 17 20 20 4c  |,R14}.AP..AZ.  L|
0000ad20  44 52 20 20 20 20 20 52  32 2c 6d 73 74 6f 72 65  |DR     R2,mstore|
0000ad30  0d 41 64 17 20 20 4c 44  52 20 20 20 20 20 52 31  |.Ad.  LDR     R1|
0000ad40  2c 6e 73 74 6f 72 65 0d  41 6e 36 20 20 4c 44 52  |,nstore.An6  LDR|
0000ad50  20 20 20 20 20 52 30 2c  6b 73 74 6f 72 65 20 20  |     R0,kstore  |
0000ad60  20 20 20 20 20 20 5c 20  67 65 74 20 70 6f 73 69  |      \ get posi|
0000ad70  74 69 6f 6e 20 69 6e 20  74 72 61 63 6b 0d 41 78  |tion in track.Ax|
0000ad80  04 0d 41 82 1a 20 20 41  44 52 20 20 20 20 20 52  |..A..  ADR     R|
0000ad90  34 2c 61 6e 67 6c 65 74  61 62 30 0d 41 8c 04 0d  |4,angletab0.A...|
0000ada0  41 96 13 20 20 43 4d 50  20 20 20 20 20 52 30 2c  |A..  CMP     R0,|
0000adb0  23 37 0d 41 a0 13 20 20  43 4d 50 4e 45 20 20 20  |#7.A..  CMPNE   |
0000adc0  52 30 2c 23 38 0d 41 aa  14 20 20 43 4d 50 4e 45  |R0,#8.A..  CMPNE|
0000add0  20 20 20 52 30 2c 23 31  36 0d 41 b4 14 20 20 43  |   R0,#16.A..  C|
0000ade0  4d 50 4e 45 20 20 20 52  30 2c 23 31 37 0d 41 be  |MPNE   R0,#17.A.|
0000adf0  13 20 20 42 4e 45 20 20  20 20 20 6e 6f 79 65 68  |.  BNE     noyeh|
0000ae00  0d 41 c8 13 20 20 54 53  54 20 20 20 20 20 52 31  |.A..  TST     R1|
0000ae10  2c 23 32 0d 41 d2 1a 20  20 41 44 52 4e 45 20 20  |,#2.A..  ADRNE  |
0000ae20  20 52 34 2c 61 6e 67 6c  65 74 61 62 31 0d 41 dc  | R4,angletab1.A.|
0000ae30  04 0d 41 e6 1a 20 20 4d  4f 56 20 20 20 20 20 52  |..A..  MOV     R|
0000ae40  36 2c 52 31 2c 4c 53 52  20 23 31 0d 41 f0 14 20  |6,R1,LSR #1.A.. |
0000ae50  20 80 20 20 20 20 20 52  36 2c 52 36 2c 23 37 0d  | .     R6,R6,#7.|
0000ae60  41 fa 1a 20 20 4d 4f 56  20 20 20 20 20 52 37 2c  |A..  MOV     R7,|
0000ae70  52 31 2c 4c 53 52 20 23  34 0d 42 04 14 20 20 80  |R1,LSR #4.B..  .|
0000ae80  20 20 20 20 20 52 37 2c  52 37 2c 23 33 0d 42 0e  |     R7,R7,#3.B.|
0000ae90  13 20 20 43 4d 50 20 20  20 20 20 52 36 2c 23 35  |.  CMP     R6,#5|
0000aea0  0d 42 18 1a 20 20 41 44  52 45 51 20 20 20 52 34  |.B..  ADREQ   R4|
0000aeb0  2c 61 6e 67 6c 65 74 61  62 32 0d 42 22 13 20 20  |,angletab2.B".  |
0000aec0  43 4d 50 20 20 20 20 20  52 37 2c 23 33 0d 42 2c  |CMP     R7,#3.B,|
0000aed0  14 20 20 42 4e 45 20 20  20 20 20 6e 6f 79 65 68  |.  BNE     noyeh|
0000aee0  31 0d 42 36 15 20 20 20  20 43 4d 50 20 20 20 20  |1.B6.    CMP    |
0000aef0  20 52 36 2c 23 33 0d 42  40 1c 20 20 20 20 41 44  | R6,#3.B@.    AD|
0000af00  52 45 51 20 20 20 52 34  2c 61 6e 67 6c 65 74 61  |REQ   R4,angleta|
0000af10  62 32 0d 42 4a 0d 20 20  2e 6e 6f 79 65 68 31 0d  |b2.BJ.  .noyeh1.|
0000af20  42 54 13 20 20 43 4d 50  20 20 20 20 20 52 30 2c  |BT.  CMP     R0,|
0000af30  23 37 0d 42 5e 14 20 20  43 4d 50 4e 45 20 20 20  |#7.B^.  CMPNE   |
0000af40  52 30 2c 23 31 36 0d 42  68 13 20 20 42 45 51 20  |R0,#16.Bh.  BEQ |
0000af50  20 20 20 20 6e 6f 79 65  68 0d 42 72 13 20 20 43  |    noyeh.Br.  C|
0000af60  4d 50 20 20 20 20 20 52  36 2c 23 31 0d 42 7c 1a  |MP     R6,#1.B|.|
0000af70  20 20 41 44 52 45 51 20  20 20 52 34 2c 61 6e 67  |  ADREQ   R4,ang|
0000af80  6c 65 74 61 62 39 0d 42  86 0c 20 20 2e 6e 6f 79  |letab9.B..  .noy|
0000af90  65 68 0d 42 90 04 0d 42  9a 14 20 20 43 4d 50 20  |eh.B...B..  CMP |
0000afa0  20 20 20 20 52 30 2c 23  31 30 0d 42 a4 14 20 20  |    R0,#10.B..  |
0000afb0  43 4d 50 4e 45 20 20 20  52 30 2c 23 31 31 0d 42  |CMPNE   R0,#11.B|
0000afc0  ae 14 20 20 43 4d 50 4e  45 20 20 20 52 30 2c 23  |..  CMPNE   R0,#|
0000afd0  31 32 0d 42 b8 14 20 20  43 4d 50 4e 45 20 20 20  |12.B..  CMPNE   |
0000afe0  52 30 2c 23 31 33 0d 42  c2 15 20 20 42 4e 45 20  |R0,#13.B..  BNE |
0000aff0  20 20 20 20 6e 6f 63 72  6f 73 73 0d 42 cc 13 20  |    nocross.B.. |
0000b000  20 54 53 54 20 20 20 20  20 52 31 2c 23 34 0d 42  | TST     R1,#4.B|
0000b010  d6 1a 20 20 41 44 52 4e  45 20 20 20 52 34 2c 61  |..  ADRNE   R4,a|
0000b020  6e 67 6c 65 74 61 62 37  0d 42 e0 1a 20 20 41 44  |ngletab7.B..  AD|
0000b030  52 45 51 20 20 20 52 34  2c 61 6e 67 6c 65 74 61  |REQ   R4,angleta|
0000b040  62 38 0d 42 ea 13 20 20  54 53 54 20 20 20 20 20  |b8.B..  TST     |
0000b050  52 31 2c 23 32 0d 42 f4  1a 20 20 41 44 52 45 51  |R1,#2.B..  ADREQ|
0000b060  20 20 20 52 34 2c 61 6e  67 6c 65 74 61 62 35 0d  |   R4,angletab5.|
0000b070  42 fe 0e 20 20 2e 6e 6f  63 72 6f 73 73 0d 43 08  |B..  .nocross.C.|
0000b080  04 0d 43 12 13 20 20 43  4d 50 20 20 20 20 20 52  |..C..  CMP     R|
0000b090  30 2c 23 35 0d 43 1c 13  20 20 43 4d 50 4e 45 20  |0,#5.C..  CMPNE |
0000b0a0  20 20 52 30 2c 23 36 0d  43 26 14 20 20 43 4d 50  |  R0,#6.C&.  CMP|
0000b0b0  4e 45 20 20 20 52 30 2c  23 31 34 0d 43 30 14 20  |NE   R0,#14.C0. |
0000b0c0  20 43 4d 50 4e 45 20 20  20 52 30 2c 23 31 35 0d  | CMPNE   R0,#15.|
0000b0d0  43 3a 14 20 20 43 4d 50  4e 45 20 20 20 52 30 2c  |C:.  CMPNE   R0,|
0000b0e0  23 31 38 0d 43 44 14 20  20 43 4d 50 4e 45 20 20  |#18.CD.  CMPNE  |
0000b0f0  20 52 30 2c 23 31 39 0d  43 4e 15 20 20 42 4e 45  | R0,#19.CN.  BNE|
0000b100  20 20 20 20 20 6e 6f 6f  74 68 65 72 0d 43 58 13  |     noother.CX.|
0000b110  20 20 54 53 54 20 20 20  20 20 52 31 2c 23 32 0d  |  TST     R1,#2.|
0000b120  43 62 1a 20 20 41 44 52  4e 45 20 20 20 52 34 2c  |Cb.  ADRNE   R4,|
0000b130  61 6e 67 6c 65 74 61 62  36 0d 43 6c 1a 20 20 41  |angletab6.Cl.  A|
0000b140  44 52 45 51 20 20 20 52  34 2c 61 6e 67 6c 65 74  |DREQ   R4,anglet|
0000b150  61 62 35 0d 43 76 0e 20  20 2e 6e 6f 6f 74 68 65  |ab5.Cv.  .noothe|
0000b160  72 0d 43 80 04 0d 43 8a  13 20 20 43 4d 50 20 20  |r.C...C..  CMP  |
0000b170  20 20 20 52 30 2c 23 32  0d 43 94 15 20 20 42 4e  |   R0,#2.C..  BN|
0000b180  45 20 20 20 20 20 6e 6f  66 6f 6f 74 79 0d 43 9e  |E     nofooty.C.|
0000b190  15 20 20 20 20 54 53 54  20 20 20 20 20 52 31 2c  |.    TST     R1,|
0000b1a0  23 32 0d 43 a8 1c 20 20  20 20 41 44 52 45 51 20  |#2.C..    ADREQ |
0000b1b0  20 20 52 34 2c 61 6e 67  6c 65 74 61 62 33 0d 43  |  R4,angletab3.C|
0000b1c0  b2 0e 20 20 2e 6e 6f 66  6f 6f 74 79 0d 43 bc 04  |..  .nofooty.C..|
0000b1d0  0d 43 c6 13 20 20 43 4d  50 20 20 20 20 20 52 30  |.C..  CMP     R0|
0000b1e0  2c 23 33 0d 43 d0 16 20  20 42 4e 45 20 20 20 20  |,#3.C..  BNE    |
0000b1f0  20 6e 6f 66 6f 6f 74 79  31 0d 43 da 15 20 20 20  | nofooty1.C..   |
0000b200  20 54 53 54 20 20 20 20  20 52 31 2c 23 32 0d 43  | TST     R1,#2.C|
0000b210  e4 1c 20 20 20 20 41 44  52 45 51 20 20 20 52 34  |..    ADREQ   R4|
0000b220  2c 61 6e 67 6c 65 74 61  62 34 0d 43 ee 0f 20 20  |,angletab4.C..  |
0000b230  2e 6e 6f 66 6f 6f 74 79  31 0d 43 f8 04 0d 44 02  |.nofooty1.C...D.|
0000b240  1d 20 20 4c 44 52 20 20  20 20 20 52 35 2c 6c 61  |.  LDR     R5,la|
0000b250  73 74 74 61 62 6c 65 70  6f 73 0d 44 0c 14 20 20  |sttablepos.D..  |
0000b260  80 20 20 20 20 20 52 36  2c 52 31 2c 23 31 0d 44  |.     R6,R1,#1.D|
0000b270  16 13 20 20 43 4d 50 20  20 20 20 20 52 36 2c 23  |..  CMP     R6,#|
0000b280  31 0d 44 20 13 20 20 43  4d 50 45 51 20 20 20 52  |1.D .  CMPEQ   R|
0000b290  32 2c 23 32 0d 44 2a 1d  20 20 53 54 52 45 51 20  |2,#2.D*.  STREQ |
0000b2a0  20 20 52 34 2c 6c 61 73  74 74 61 62 6c 65 70 6f  |  R4,lasttablepo|
0000b2b0  73 0d 44 34 14 20 20 80  20 20 20 20 20 52 31 2c  |s.D4.  .     R1,|
0000b2c0  52 31 2c 23 31 0d 44 3e  1d 20 20 41 44 44 20 20  |R1,#1.D>.  ADD  |
0000b2d0  20 20 20 52 32 2c 52 32  2c 52 31 2c 4c 53 4c 20  |   R2,R2,R1,LSL |
0000b2e0  23 30 0d 44 48 25 20 20  41 44 44 20 20 20 20 20  |#0.DH%  ADD     |
0000b2f0  52 32 2c 52 32 2c 52 31  2c 4c 53 4c 20 23 31 20  |R2,R2,R1,LSL #1 |
0000b300  20 5c 20 30 2e 2e 35 0d  44 52 17 20 20 4c 44 52  | \ 0..5.DR.  LDR|
0000b310  20 20 20 20 20 52 36 2c  6d 63 6f 6e 73 74 0d 44  |     R6,mconst.D|
0000b320  5c 29 20 20 4d 55 4c 20  20 20 20 20 52 32 2c 52  |\)  MUL     R2,R|
0000b330  36 2c 52 32 20 20 20 20  20 20 20 20 20 5c 20 30  |6,R2         \ 0|
0000b340  2e 2e 36 35 35 33 35 0d  44 66 2c 20 20 52 53 42  |..65535.Df,  RSB|
0000b350  20 20 20 20 20 52 33 2c  52 32 2c 23 36 35 35 33  |     R3,R2,#6553|
0000b360  36 20 20 20 20 20 5c 20  52 33 2b 52 32 3d 36 35  |6     \ R3+R2=65|
0000b370  35 33 36 0d 44 70 04 0d  44 7a 1d 20 20 41 44 52  |536.Dp..Dz.  ADR|
0000b380  20 20 20 20 20 52 31 34  2c 61 6e 67 6c 65 74 61  |     R14,angleta|
0000b390  62 63 75 72 0d 44 84 14  20 20 4d 4f 56 20 20 20  |bcur.D..  MOV   |
0000b3a0  20 20 52 36 2c 23 32 30  0d 44 8e 10 20 20 2e 75  |  R6,#20.D..  .u|
0000b3b0  64 69 6e 74 6c 6f 6f 70  0d 44 98 1a 20 20 20 20  |dintloop.D..    |
0000b3c0  4c 44 52 42 20 20 20 20  52 30 2c 5b 52 34 5d 2c  |LDRB    R0,[R4],|
0000b3d0  23 31 0d 44 a2 1a 20 20  20 20 4c 44 52 42 20 20  |#1.D..    LDRB  |
0000b3e0  20 20 52 31 2c 5b 52 35  5d 2c 23 31 0d 44 ac 18  |  R1,[R5],#1.D..|
0000b3f0  20 20 20 20 4d 55 4c 20  20 20 20 20 52 30 2c 52  |    MUL     R0,R|
0000b400  32 2c 52 30 0d 44 b6 1b  20 20 20 20 4d 4c 41 20  |2,R0.D..    MLA |
0000b410  20 20 20 20 52 30 2c 52  33 2c 52 31 2c 52 30 0d  |    R0,R3,R1,R0.|
0000b420  44 c0 1d 20 20 20 20 4d  4f 56 20 20 20 20 20 52  |D..    MOV     R|
0000b430  30 2c 52 30 2c 41 53 52  20 23 31 36 0d 44 ca 1b  |0,R0,ASR #16.D..|
0000b440  20 20 20 20 53 54 52 42  20 20 20 20 52 30 2c 5b  |    STRB    R0,[|
0000b450  52 31 34 5d 2c 23 31 0d  44 d4 18 20 20 20 20 53  |R14],#1.D..    S|
0000b460  55 42 53 20 20 20 20 52  36 2c 52 36 2c 23 31 0d  |UBS    R6,R6,#1.|
0000b470  44 de 19 20 20 20 20 42  47 54 20 20 20 20 20 75  |D..    BGT     u|
0000b480  64 69 6e 74 6c 6f 6f 70  0d 44 e8 04 0d 44 f2 1d  |dintloop.D...D..|
0000b490  20 20 41 44 52 20 20 20  20 20 52 31 34 2c 61 6e  |  ADR     R14,an|
0000b4a0  67 6c 65 74 61 62 63 75  72 0d 44 fc 17 20 20 4c  |gletabcur.D..  L|
0000b4b0  44 52 20 20 20 20 20 52  32 2c 6d 73 74 6f 72 65  |DR     R2,mstore|
0000b4c0  0d 45 06 17 20 20 4c 44  52 20 20 20 20 20 52 31  |.E..  LDR     R1|
0000b4d0  2c 6e 73 74 6f 72 65 0d  45 10 3e 20 20 4c 44 52  |,nstore.E.>  LDR|
0000b4e0  20 20 20 20 20 52 30 2c  6b 73 74 6f 72 65 20 20  |     R0,kstore  |
0000b4f0  20 20 20 20 20 20 5c 20  67 65 74 20 70 6f 73 69  |      \ get posi|
0000b500  74 69 6f 6e 20 69 6e 20  74 72 61 63 6b 20 28 61  |tion in track (a|
0000b510  67 61 69 6e 29 0d 45 1a  04 0d 45 24 14 20 20 43  |gain).E...E$.  C|
0000b520  4d 50 20 20 20 20 20 52  30 2c 23 31 30 0d 45 2e  |MP     R0,#10.E.|
0000b530  14 20 20 42 4c 54 20 20  20 20 20 6e 6f 74 75 72  |.  BLT     notur|
0000b540  6e 0d 45 38 14 20 20 43  4d 50 20 20 20 20 20 52  |n.E8.  CMP     R|
0000b550  30 2c 23 31 34 0d 45 42  14 20 20 42 47 45 20 20  |0,#14.EB.  BGE  |
0000b560  20 20 20 6e 6f 74 75 72  6e 0d 45 4c 1f 20 20 20  |   noturn.EL.   |
0000b570  20 41 44 44 20 20 20 20  20 52 34 2c 52 32 2c 52  | ADD     R4,R2,R|
0000b580  31 2c 4c 53 4c 20 23 30  0d 45 56 1f 20 20 20 20  |1,LSL #0.EV.    |
0000b590  41 44 44 20 20 20 20 20  52 34 2c 52 34 2c 52 31  |ADD     R4,R4,R1|
0000b5a0  2c 4c 53 4c 20 23 31 0d  45 60 19 20 20 20 20 4c  |,LSL #1.E`.    L|
0000b5b0  44 52 20 20 20 20 20 52  33 2c 6d 63 6f 6e 73 74  |DR     R3,mconst|
0000b5c0  0d 45 6a 18 20 20 20 20  4d 55 4c 20 20 20 20 20  |.Ej.    MUL     |
0000b5d0  52 34 2c 52 33 2c 52 34  0d 45 74 1f 20 20 20 20  |R4,R3,R4.Et.    |
0000b5e0  4d 4f 56 20 20 20 20 20  52 34 2c 52 34 2c 41 53  |MOV     R4,R4,AS|
0000b5f0  52 20 23 32 31 2d 38 0d  45 7e 1b 20 20 20 20 53  |R #21-8.E~.    S|
0000b600  54 52 42 20 20 20 20 52  34 2c 5b 52 31 34 2c 23  |TRB    R4,[R14,#|
0000b610  33 5d 0d 45 88 16 20 20  20 20 4d 4f 56 20 20 20  |3].E..    MOV   |
0000b620  20 20 52 34 2c 23 34 30  0d 45 92 1b 20 20 20 20  |  R4,#40.E..    |
0000b630  53 54 52 42 20 20 20 20  52 34 2c 5b 52 31 34 2c  |STRB    R4,[R14,|
0000b640  23 32 5d 0d 45 9c 16 20  20 20 20 43 4d 50 20 20  |#2].E..    CMP  |
0000b650  20 20 20 52 30 2c 23 31  30 0d 45 a6 16 20 20 20  |   R0,#10.E..   |
0000b660  20 42 4e 45 20 20 20 20  20 6e 6f 74 75 72 6e 0d  | BNE     noturn.|
0000b670  45 b0 16 20 20 20 20 43  4d 50 20 20 20 20 20 52  |E..    CMP     R|
0000b680  31 2c 23 32 30 0d 45 ba  16 20 20 20 20 42 47 45  |1,#20.E..    BGE|
0000b690  20 20 20 20 20 6e 6f 74  75 72 6e 0d 45 c4 1f 20  |     noturn.E.. |
0000b6a0  20 20 20 41 44 44 20 20  20 20 20 52 34 2c 52 32  |   ADD     R4,R2|
0000b6b0  2c 52 31 2c 4c 53 4c 20  23 30 0d 45 ce 1f 20 20  |,R1,LSL #0.E..  |
0000b6c0  20 20 41 44 44 20 20 20  20 20 52 34 2c 52 34 2c  |  ADD     R4,R4,|
0000b6d0  52 31 2c 4c 53 4c 20 23  31 0d 45 d8 1c 20 20 20  |R1,LSL #1.E..   |
0000b6e0  20 4d 4f 56 20 20 20 20  20 52 34 2c 52 34 2c 41  | MOV     R4,R4,A|
0000b6f0  53 52 20 23 31 0d 45 e2  19 20 20 20 20 41 44 44  |SR #1.E..    ADD|
0000b700  20 20 20 20 20 52 34 2c  52 34 2c 23 31 30 0d 45  |     R4,R4,#10.E|
0000b710  ec 1b 20 20 20 20 53 54  52 42 20 20 20 20 52 34  |..    STRB    R4|
0000b720  2c 5b 52 31 34 2c 23 32  5d 0d 45 f6 37 20 20 2e  |,[R14,#2].E.7  .|
0000b730  6e 6f 74 75 72 6e 20 20  20 20 20 20 20 20 20 20  |noturn          |
0000b740  20 20 20 20 20 20 20 20  5c 20 74 75 72 6e 69 6e  |        \ turnin|
0000b750  67 20 69 6e 20 6d 75 73  69 63 61 6c 20 62 69 74  |g in musical bit|
0000b760  0d 46 00 04 0d 46 0a 23  20 20 4c 44 52 20 20 20  |.F...F.#  LDR   |
0000b770  20 20 52 31 32 2c 63 68  61 6e 67 65 61 62 6c 65  |  R12,changeable|
0000b780  64 61 74 61 69 6e 64 0d  46 14 1e 20 20 4c 44 52  |dataind.F..  LDR|
0000b790  20 20 20 20 20 52 31 30  2c 73 69 6e 63 6f 73 74  |     R10,sincost|
0000b7a0  61 62 69 6e 64 0d 46 1e  1b 20 20 41 44 44 20 20  |abind.F..  ADD  |
0000b7b0  20 20 20 52 31 31 2c 52  31 30 2c 23 31 30 32 34  |   R11,R10,#1024|
0000b7c0  0d 46 28 13 20 20 4d 4f  56 20 20 20 20 20 52 39  |.F(.  MOV     R9|
0000b7d0  2c 23 30 0d 46 32 04 0d  46 3c 19 20 20 4c 44 52  |,#0.F2..F<.  LDR|
0000b7e0  42 20 20 20 20 52 30 2c  5b 52 31 34 5d 2c 23 31  |B    R0,[R14],#1|
0000b7f0  0d 46 46 19 20 20 4c 44  52 42 20 20 20 20 52 31  |.FF.  LDRB    R1|
0000b800  2c 5b 52 31 34 5d 2c 23  31 0d 46 50 1a 20 20 4d  |,[R14],#1.FP.  M|
0000b810  4f 56 20 20 20 20 20 52  30 2c 52 30 2c 4c 53 4c  |OV     R0,R0,LSL|
0000b820  20 23 37 0d 46 5a 1a 20  20 4d 4f 56 20 20 20 20  | #7.FZ.  MOV    |
0000b830  20 52 31 2c 52 31 2c 4c  53 4c 20 23 37 0d 46 64  | R1,R1,LSL #7.Fd|
0000b840  19 20 20 53 54 52 20 20  20 20 20 52 30 2c 5b 52  |.  STR     R0,[R|
0000b850  31 32 5d 2c 23 34 0d 46  6e 2f 20 20 53 54 52 20  |12],#4.Fn/  STR |
0000b860  20 20 20 20 52 31 2c 5b  52 31 32 5d 2c 23 38 20  |    R1,[R12],#8 |
0000b870  20 20 20 20 5c 20 63 6f  6e 76 65 72 74 20 72 65  |    \ convert re|
0000b880  61 6c 70 6f 73 0d 46 78  04 0d 46 82 2b 20 20 4c  |alpos.Fx..F.+  L|
0000b890  44 52 42 20 20 20 20 52  34 2c 5b 52 31 34 5d 2c  |DRB    R4,[R14],|
0000b8a0  23 31 20 20 20 20 20 20  20 20 5c 20 67 65 74 20  |#1        \ get |
0000b8b0  74 69 6c 74 0d 46 8c 2e  20 20 4c 44 52 20 20 20  |tilt.F..  LDR   |
0000b8c0  20 20 52 30 2c 5b 52 31  30 2c 52 34 2c 4c 53 4c  |  R0,[R10,R4,LSL|
0000b8d0  20 23 32 5d 20 5c 20 74  69 6c 74 20 73 69 6e 20  | #2] \ tilt sin |
0000b8e0  20 73 0d 46 96 2e 20 20  4c 44 52 20 20 20 20 20  | s.F..  LDR     |
0000b8f0  52 31 2c 5b 52 31 31 2c  52 34 2c 4c 53 4c 20 23  |R1,[R11,R4,LSL #|
0000b900  32 5d 20 5c 20 74 69 6c  74 20 63 6f 73 20 20 63  |2] \ tilt cos  c|
0000b910  0d 46 a0 2a 20 20 4c 44  52 42 20 20 20 20 52 34  |.F.*  LDRB    R4|
0000b920  2c 5b 52 31 34 5d 2c 23  31 20 20 20 20 20 20 20  |,[R14],#1       |
0000b930  20 5c 20 67 65 74 20 72  6f 74 0d 46 aa 2d 20 20  | \ get rot.F.-  |
0000b940  4c 44 52 20 20 20 20 20  52 32 2c 5b 52 31 30 2c  |LDR     R2,[R10,|
0000b950  52 34 2c 4c 53 4c 20 23  32 5d 20 5c 20 72 6f 74  |R4,LSL #2] \ rot|
0000b960  20 73 69 6e 20 20 53 0d  46 b4 2d 20 20 4c 44 52  | sin  S.F.-  LDR|
0000b970  20 20 20 20 20 52 33 2c  5b 52 31 31 2c 52 34 2c  |     R3,[R11,R4,|
0000b980  4c 53 4c 20 23 32 5d 20  5c 20 72 6f 74 20 63 6f  |LSL #2] \ rot co|
0000b990  73 20 20 43 0d 46 be 04  0d 46 c8 1f 20 20 53 54  |s  C.F...F..  ST|
0000b9a0  52 20 20 20 20 20 52 33  2c 5b 52 31 32 5d 2c 23  |R     R3,[R12],#|
0000b9b0  34 20 20 20 5c 20 43 0d  46 d2 1f 20 20 53 54 52  |4   \ C.F..  STR|
0000b9c0  20 20 20 20 20 52 39 2c  5b 52 31 32 5d 2c 23 34  |     R9,[R12],#4|
0000b9d0  20 20 20 5c 20 30 0d 46  dc 16 20 20 53 55 42 20  |   \ 0.F..  SUB |
0000b9e0  20 20 20 20 52 34 2c 52  39 2c 52 32 0d 46 e6 20  |    R4,R9,R2.F. |
0000b9f0  20 20 53 54 52 20 20 20  20 20 52 34 2c 5b 52 31  |  STR     R4,[R1|
0000ba00  32 5d 2c 23 34 20 20 20  5c 20 2d 53 0d 46 f0 16  |2],#4   \ -S.F..|
0000ba10  20 20 4d 55 4c 20 20 20  20 20 52 34 2c 52 30 2c  |  MUL     R4,R0,|
0000ba20  52 32 0d 46 fa 1e 20 20  41 44 44 20 20 20 20 20  |R2.F..  ADD     |
0000ba30  52 34 2c 52 39 2c 52 34  2c 41 53 52 20 23 31 35  |R4,R9,R4,ASR #15|
0000ba40  0d 47 04 20 20 20 53 54  52 20 20 20 20 20 52 34  |.G.   STR     R4|
0000ba50  2c 5b 52 31 32 5d 2c 23  34 20 20 20 5c 20 53 73  |,[R12],#4   \ Ss|
0000ba60  0d 47 0e 16 20 20 53 55  42 20 20 20 20 20 52 34  |.G..  SUB     R4|
0000ba70  2c 52 39 2c 52 31 0d 47  18 20 20 20 53 54 52 20  |,R9,R1.G.   STR |
0000ba80  20 20 20 20 52 34 2c 5b  52 31 32 5d 2c 23 34 20  |    R4,[R12],#4 |
0000ba90  20 20 5c 20 2d 63 0d 47  22 16 20 20 4d 55 4c 20  |  \ -c.G".  MUL |
0000baa0  20 20 20 20 52 34 2c 52  30 2c 52 33 0d 47 2c 1e  |    R4,R0,R3.G,.|
0000bab0  20 20 41 44 44 20 20 20  20 20 52 34 2c 52 39 2c  |  ADD     R4,R9,|
0000bac0  52 34 2c 41 53 52 20 23  31 35 0d 47 36 20 20 20  |R4,ASR #15.G6   |
0000bad0  53 54 52 20 20 20 20 20  52 34 2c 5b 52 31 32 5d  |STR     R4,[R12]|
0000bae0  2c 23 34 20 20 20 5c 20  43 73 0d 47 40 16 20 20  |,#4   \ Cs.G@.  |
0000baf0  4d 55 4c 20 20 20 20 20  52 34 2c 52 31 2c 52 32  |MUL     R4,R1,R2|
0000bb00  0d 47 4a 1e 20 20 41 44  44 20 20 20 20 20 52 34  |.GJ.  ADD     R4|
0000bb10  2c 52 39 2c 52 34 2c 41  53 52 20 23 31 35 0d 47  |,R9,R4,ASR #15.G|
0000bb20  54 20 20 20 53 54 52 20  20 20 20 20 52 34 2c 5b  |T   STR     R4,[|
0000bb30  52 31 32 5d 2c 23 34 20  20 20 5c 20 53 63 0d 47  |R12],#4   \ Sc.G|
0000bb40  5e 1f 20 20 53 54 52 20  20 20 20 20 52 30 2c 5b  |^.  STR     R0,[|
0000bb50  52 31 32 5d 2c 23 34 20  20 20 5c 20 73 0d 47 68  |R12],#4   \ s.Gh|
0000bb60  16 20 20 4d 55 4c 20 20  20 20 20 52 34 2c 52 31  |.  MUL     R4,R1|
0000bb70  2c 52 33 0d 47 72 1e 20  20 41 44 44 20 20 20 20  |,R3.Gr.  ADD    |
0000bb80  20 52 34 2c 52 39 2c 52  34 2c 41 53 52 20 23 31  | R4,R9,R4,ASR #1|
0000bb90  35 0d 47 7c 20 20 20 53  54 52 20 20 20 20 20 52  |5.G|   STR     R|
0000bba0  34 2c 5b 52 31 32 5d 2c  23 34 20 20 20 5c 20 43  |4,[R12],#4   \ C|
0000bbb0  63 0d 47 86 04 0d 47 90  13 20 20 4d 4f 56 20 20  |c.G...G..  MOV  |
0000bbc0  20 20 20 52 38 2c 23 38  0d 47 9a 14 20 20 2e 75  |   R8,#8.G..  .u|
0000bbd0  64 63 6f 6e 76 65 72 74  6c 6f 6f 70 0d 47 a4 05  |dconvertloop.G..|
0000bbe0  20 0d 47 ae 2d 20 20 20  20 4c 44 52 42 20 20 20  | .G.-    LDRB   |
0000bbf0  20 52 34 2c 5b 52 31 34  5d 2c 23 31 20 20 20 20  | R4,[R14],#1    |
0000bc00  20 20 20 20 5c 20 67 65  74 20 74 69 6c 74 0d 47  |    \ get tilt.G|
0000bc10  b8 30 20 20 20 20 4c 44  52 20 20 20 20 20 52 30  |.0    LDR     R0|
0000bc20  2c 5b 52 31 30 2c 52 34  2c 4c 53 4c 20 23 32 5d  |,[R10,R4,LSL #2]|
0000bc30  20 5c 20 74 69 6c 74 20  73 69 6e 20 20 73 0d 47  | \ tilt sin  s.G|
0000bc40  c2 30 20 20 20 20 4c 44  52 20 20 20 20 20 52 31  |.0    LDR     R1|
0000bc50  2c 5b 52 31 31 2c 52 34  2c 4c 53 4c 20 23 32 5d  |,[R11,R4,LSL #2]|
0000bc60  20 5c 20 74 69 6c 74 20  63 6f 73 20 20 63 0d 47  | \ tilt cos  c.G|
0000bc70  cc 2c 20 20 20 20 4c 44  52 42 20 20 20 20 52 34  |.,    LDRB    R4|
0000bc80  2c 5b 52 31 34 5d 2c 23  31 20 20 20 20 20 20 20  |,[R14],#1       |
0000bc90  20 5c 20 67 65 74 20 72  6f 74 0d 47 d6 2f 20 20  | \ get rot.G./  |
0000bca0  20 20 4c 44 52 20 20 20  20 20 52 32 2c 5b 52 31  |  LDR     R2,[R1|
0000bcb0  30 2c 52 34 2c 4c 53 4c  20 23 32 5d 20 5c 20 72  |0,R4,LSL #2] \ r|
0000bcc0  6f 74 20 73 69 6e 20 20  53 0d 47 e0 2f 20 20 20  |ot sin  S.G./   |
0000bcd0  20 4c 44 52 20 20 20 20  20 52 33 2c 5b 52 31 31  | LDR     R3,[R11|
0000bce0  2c 52 34 2c 4c 53 4c 20  23 32 5d 20 5c 20 72 6f  |,R4,LSL #2] \ ro|
0000bcf0  74 20 63 6f 73 20 20 43  0d 47 ea 04 0d 47 f4 18  |t cos  C.G...G..|
0000bd00  20 20 20 20 4d 55 4c 20  20 20 20 20 52 34 2c 52  |    MUL     R4,R|
0000bd10  31 2c 52 33 0d 47 fe 20  20 20 20 20 41 44 44 20  |1,R3.G.     ADD |
0000bd20  20 20 20 20 52 34 2c 52  39 2c 52 34 2c 41 53 52  |    R4,R9,R4,ASR|
0000bd30  20 23 31 35 0d 48 08 22  20 20 20 20 53 54 52 20  | #15.H."    STR |
0000bd40  20 20 20 20 52 34 2c 5b  52 31 32 5d 2c 23 34 20  |    R4,[R12],#4 |
0000bd50  20 20 5c 20 43 63 0d 48  12 18 20 20 20 20 4d 55  |  \ Cc.H..    MU|
0000bd60  4c 20 20 20 20 20 52 34  2c 52 30 2c 52 33 0d 48  |L     R4,R0,R3.H|
0000bd70  1c 20 20 20 20 20 53 55  42 20 20 20 20 20 52 34  |.     SUB     R4|
0000bd80  2c 52 39 2c 52 34 2c 41  53 52 20 23 31 35 0d 48  |,R9,R4,ASR #15.H|
0000bd90  26 23 20 20 20 20 53 54  52 20 20 20 20 20 52 34  |&#    STR     R4|
0000bda0  2c 5b 52 31 32 5d 2c 23  34 20 20 20 5c 20 2d 43  |,[R12],#4   \ -C|
0000bdb0  73 0d 48 30 18 20 20 20  20 53 55 42 20 20 20 20  |s.H0.    SUB    |
0000bdc0  20 52 34 2c 52 39 2c 52  32 0d 48 3a 22 20 20 20  | R4,R9,R2.H:"   |
0000bdd0  20 53 54 52 20 20 20 20  20 52 34 2c 5b 52 31 32  | STR     R4,[R12|
0000bde0  5d 2c 23 34 20 20 20 5c  20 2d 53 0d 48 44 21 20  |],#4   \ -S.HD! |
0000bdf0  20 20 20 53 54 52 20 20  20 20 20 52 30 2c 5b 52  |   STR     R0,[R|
0000be00  31 32 5d 2c 23 34 20 20  20 5c 20 73 0d 48 4e 21  |12],#4   \ s.HN!|
0000be10  20 20 20 20 53 54 52 20  20 20 20 20 52 31 2c 5b  |    STR     R1,[|
0000be20  52 31 32 5d 2c 23 34 20  20 20 5c 20 63 0d 48 58  |R12],#4   \ c.HX|
0000be30  21 20 20 20 20 53 54 52  20 20 20 20 20 52 39 2c  |!    STR     R9,|
0000be40  5b 52 31 32 5d 2c 23 34  20 20 20 5c 20 30 0d 48  |[R12],#4   \ 0.H|
0000be50  62 18 20 20 20 20 4d 55  4c 20 20 20 20 20 52 34  |b.    MUL     R4|
0000be60  2c 52 31 2c 52 32 0d 48  6c 20 20 20 20 20 41 44  |,R1,R2.Hl     AD|
0000be70  44 20 20 20 20 20 52 34  2c 52 39 2c 52 34 2c 41  |D     R4,R9,R4,A|
0000be80  53 52 20 23 31 35 0d 48  76 22 20 20 20 20 53 54  |SR #15.Hv"    ST|
0000be90  52 20 20 20 20 20 52 34  2c 5b 52 31 32 5d 2c 23  |R     R4,[R12],#|
0000bea0  34 20 20 20 5c 20 53 63  0d 48 80 18 20 20 20 20  |4   \ Sc.H..    |
0000beb0  4d 55 4c 20 20 20 20 20  52 34 2c 52 30 2c 52 32  |MUL     R4,R0,R2|
0000bec0  0d 48 8a 20 20 20 20 20  53 55 42 20 20 20 20 20  |.H.     SUB     |
0000bed0  52 34 2c 52 39 2c 52 34  2c 41 53 52 20 23 31 35  |R4,R9,R4,ASR #15|
0000bee0  0d 48 94 23 20 20 20 20  53 54 52 20 20 20 20 20  |.H.#    STR     |
0000bef0  52 34 2c 5b 52 31 32 5d  2c 23 34 20 20 20 5c 20  |R4,[R12],#4   \ |
0000bf00  2d 53 73 0d 48 9e 21 20  20 20 20 53 54 52 20 20  |-Ss.H.!    STR  |
0000bf10  20 20 20 52 33 2c 5b 52  31 32 5d 2c 23 34 20 20  |   R3,[R12],#4  |
0000bf20  20 5c 20 43 0d 48 a8 04  0d 48 b2 18 20 20 20 20  | \ C.H...H..    |
0000bf30  53 55 42 53 20 20 20 20  52 38 2c 52 38 2c 23 31  |SUBS    R8,R8,#1|
0000bf40  0d 48 bc 1d 20 20 20 20  42 47 54 20 20 20 20 20  |.H..    BGT     |
0000bf50  75 64 63 6f 6e 76 65 72  74 6c 6f 6f 70 0d 48 c6  |udconvertloop.H.|
0000bf60  04 0d 48 d0 18 20 20 4c  44 52 20 20 20 20 20 52  |..H..  LDR     R|
0000bf70  30 2c 63 6f 75 6e 74 65  72 0d 48 da 04 0d 48 e4  |0,counter.H...H.|
0000bf80  14 20 20 43 4d 50 20 20  20 20 20 52 30 2c 23 35  |.  CMP     R0,#5|
0000bf90  30 0d 48 ee 17 20 20 52  53 42 4c 45 20 20 20 52  |0.H..  RSBLE   R|
0000bfa0  31 2c 52 30 2c 23 35 30  0d 48 f8 1b 20 20 4d 4f  |1,R0,#50.H..  MO|
0000bfb0  56 4c 45 20 20 20 52 31  2c 52 31 2c 4c 53 4c 20  |VLE   R1,R1,LSL |
0000bfc0  23 31 30 0d 49 02 3c 20  20 53 54 52 4c 45 20 20  |#10.I.<  STRLE  |
0000bfd0  20 52 31 2c 72 65 61 6c  70 6f 73 2b 34 20 20 20  | R1,realpos+4   |
0000bfe0  20 20 20 5c 20 6d 61 6b  65 20 68 69 6d 20 66 6c  |   \ make him fl|
0000bff0  6f 61 74 20 75 70 20 61  74 20 73 74 61 72 74 0d  |oat up at start.|
0000c000  49 0c 04 0d 49 16 16 20  20 41 44 44 20 20 20 20  |I...I..  ADD    |
0000c010  20 52 30 2c 52 30 2c 23  31 0d 49 20 18 20 20 53  | R0,R0,#1.I .  S|
0000c020  54 52 20 20 20 20 20 52  30 2c 63 6f 75 6e 74 65  |TR     R0,counte|
0000c030  72 0d 49 2a 04 0d 49 34  1b 20 20 4c 44 52 20 20  |r.I*..I4.  LDR  |
0000c040  20 20 20 52 30 2c 73 74  61 72 74 61 62 69 6e 64  |   R0,startabind|
0000c050  0d 49 3e 1f 20 20 4c 44  52 20 20 20 20 20 52 31  |.I>.  LDR     R1|
0000c060  2c 70 6c 6f 74 73 63 72  65 65 6e 69 6e 64 61 0d  |,plotscreeninda.|
0000c070  49 48 15 20 20 4c 44 52  20 20 20 20 20 52 31 2c  |IH.  LDR     R1,|
0000c080  5b 52 31 5d 0d 49 52 2b  20 20 4d 4f 56 20 20 20  |[R1].IR+  MOV   |
0000c090  20 20 52 32 2c 23 26 30  30 20 20 20 20 20 20 20  |  R2,#&00       |
0000c0a0  20 20 20 5c 20 74 77 6f  20 70 69 78 65 6c 73 0d  |   \ two pixels.|
0000c0b0  49 5c 15 20 20 4d 4f 56  20 20 20 20 20 52 33 2c  |I\.  MOV     R3,|
0000c0c0  23 31 32 37 0d 49 66 05  20 0d 49 70 17 20 20 4c  |#127.If. .Ip.  L|
0000c0d0  44 52 20 20 20 20 20 52  35 2c 63 75 72 73 65 71  |DR     R5,curseq|
0000c0e0  0d 49 7a 13 20 20 43 4d  50 20 20 20 20 20 52 35  |.Iz.  CMP     R5|
0000c0f0  2c 23 30 0d 49 84 13 20  20 42 45 51 20 20 20 20  |,#0.I..  BEQ    |
0000c100  20 6e 6f 73 65 71 0d 49  8e 1b 20 20 4c 44 52 20  | noseq.I..  LDR |
0000c110  20 20 20 20 52 36 2c 73  74 61 72 6f 66 66 73 65  |    R6,staroffse|
0000c120  74 0d 49 98 1f 20 20 4c  44 52 20 20 20 20 20 52  |t.I..  LDR     R|
0000c130  35 2c 5b 52 35 2c 52 36  2c 4c 53 4c 20 23 32 5d  |5,[R5,R6,LSL #2]|
0000c140  0d 49 a2 16 20 20 41 44  44 20 20 20 20 20 52 36  |.I..  ADD     R6|
0000c150  2c 52 36 2c 23 31 0d 49  ac 14 20 20 43 4d 50 20  |,R6,#1.I..  CMP |
0000c160  20 20 20 20 52 36 2c 23  32 34 0d 49 b6 17 20 20  |    R6,#24.I..  |
0000c170  53 55 42 47 45 20 20 20  52 36 2c 52 36 2c 23 32  |SUBGE   R6,R6,#2|
0000c180  34 0d 49 c0 36 20 20 53  54 52 20 20 20 20 20 52  |4.I.6  STR     R|
0000c190  36 2c 73 74 61 72 6f 66  66 73 65 74 20 20 20 5c  |6,staroffset   \|
0000c1a0  20 72 65 61 64 20 6f 66  66 73 65 74 20 66 72 6f  | read offset fro|
0000c1b0  6d 20 74 61 62 6c 65 0d  49 ca 1b 20 20 53 54 52  |m table.I..  STR|
0000c1c0  20 20 20 20 20 52 35 2c  6c 61 73 74 6f 66 66 73  |     R5,lastoffs|
0000c1d0  65 74 0d 49 d4 0c 20 20  2e 6e 6f 73 65 71 0d 49  |et.I..  .noseq.I|
0000c1e0  de 1b 20 20 4c 44 52 20  20 20 20 20 52 35 2c 6c  |..  LDR     R5,l|
0000c1f0  61 73 74 6f 66 66 73 65  74 0d 49 e8 04 0d 49 f2  |astoffset.I...I.|
0000c200  13 20 20 43 4d 50 20 20  20 20 20 52 35 2c 23 30  |.  CMP     R5,#0|
0000c210  0d 49 fc 1a 20 20 41 44  44 4c 54 20 20 20 52 35  |.I..  ADDLT   R5|
0000c220  2c 52 35 2c 23 38 31 39  32 30 0d 4a 06 0f 20 20  |,R5,#81920.J..  |
0000c230  2e 73 74 61 72 6c 6f 6f  70 0d 4a 10 21 20 20 20  |.starloop.J.!   |
0000c240  20 4c 44 52 20 20 20 20  20 52 34 2c 5b 52 30 2c  | LDR     R4,[R0,|
0000c250  52 33 2c 4c 53 4c 20 23  32 5d 0d 4a 1a 18 20 20  |R3,LSL #2].J..  |
0000c260  20 20 53 55 42 53 20 20  20 20 52 34 2c 52 34 2c  |  SUBS    R4,R4,|
0000c270  52 35 0d 4a 24 1c 20 20  20 20 41 44 44 4c 54 20  |R5.J$.    ADDLT |
0000c280  20 20 52 34 2c 52 34 2c  23 38 31 39 32 30 0d 4a  |  R4,R4,#81920.J|
0000c290  2e 1a 20 20 20 20 53 54  52 42 20 20 20 20 52 32  |..    STRB    R2|
0000c2a0  2c 5b 52 31 2c 52 34 5d  0d 4a 38 18 20 20 20 20  |,[R1,R4].J8.    |
0000c2b0  53 55 42 20 20 20 20 20  52 33 2c 52 33 2c 23 31  |SUB     R3,R3,#1|
0000c2c0  0d 4a 42 21 20 20 20 20  4c 44 52 20 20 20 20 20  |.JB!    LDR     |
0000c2d0  52 34 2c 5b 52 30 2c 52  33 2c 4c 53 4c 20 23 32  |R4,[R0,R3,LSL #2|
0000c2e0  5d 0d 4a 4c 18 20 20 20  20 53 55 42 53 20 20 20  |].JL.    SUBS   |
0000c2f0  20 52 34 2c 52 34 2c 52  35 0d 4a 56 1c 20 20 20  | R4,R4,R5.JV.   |
0000c300  20 41 44 44 4c 54 20 20  20 52 34 2c 52 34 2c 23  | ADDLT   R4,R4,#|
0000c310  38 31 39 32 30 0d 4a 60  1a 20 20 20 20 53 54 52  |81920.J`.    STR|
0000c320  42 20 20 20 20 52 32 2c  5b 52 31 2c 52 34 5d 0d  |B    R2,[R1,R4].|
0000c330  4a 6a 18 20 20 20 20 53  55 42 53 20 20 20 20 52  |Jj.    SUBS    R|
0000c340  33 2c 52 33 2c 23 31 0d  4a 74 18 20 20 20 20 42  |3,R3,#1.Jt.    B|
0000c350  47 54 20 20 20 20 20 73  74 61 72 6c 6f 6f 70 0d  |GT     starloop.|
0000c360  4a 7e 04 0d 4a 88 1f 20  20 4c 44 4d 46 44 20 20  |J~..J..  LDMFD  |
0000c370  20 52 31 33 21 2c 7b 52  30 2d 52 31 32 2c 50 43  | R13!,{R0-R12,PC|
0000c380  7d 5e 0d 4a 92 04 0d 4a  9c 13 20 20 2e 6c 61 73  |}^.J...J..  .las|
0000c390  74 74 61 62 6c 65 70 6f  73 0d 4a a6 17 20 20 45  |ttablepos.J..  E|
0000c3a0  51 55 44 20 20 20 20 61  6e 67 6c 65 74 61 62 30  |QUD    angletab0|
0000c3b0  0d 4a b0 04 0d 4a ba 0d  20 20 2e 63 75 72 73 65  |.J...J..  .curse|
0000c3c0  71 0d 4a c4 0f 20 20 45  51 55 44 20 20 20 20 30  |q.J..  EQUD    0|
0000c3d0  0d 4a ce 04 0d 4a d8 11  20 20 2e 6c 61 73 74 6f  |.J...J..  .lasto|
0000c3e0  66 66 73 65 74 0d 4a e2  0f 20 20 45 51 55 44 20  |ffset.J..  EQUD |
0000c3f0  20 20 20 30 0d 4a ec 04  0d 4a f6 11 20 20 2e 73  |   0.J...J..  .s|
0000c400  74 61 72 6f 66 66 73 65  74 0d 4b 00 0f 20 20 45  |taroffset.K..  E|
0000c410  51 55 44 20 20 20 20 30  0d 4b 0a 04 0d 4b 14 11  |QUD    0.K...K..|
0000c420  20 20 2e 73 74 61 72 74  61 62 69 6e 64 0d 4b 1e  |  .startabind.K.|
0000c430  15 20 20 45 51 55 44 20  20 20 20 73 74 61 72 74  |.  EQUD    start|
0000c440  61 62 0d 4b 28 04 0d 4b  32 0e 20 20 2e 63 6f 75  |ab.K(..K2.  .cou|
0000c450  6e 74 65 72 0d 4b 3c 0f  20 20 45 51 55 44 20 20  |nter.K<.  EQUD  |
0000c460  20 20 30 0d 4b 46 04 0d  4b 50 0e 20 20 2e 63 75  |  0.KF..KP.  .cu|
0000c470  72 73 70 69 6e 0d 4b 5a  16 20 20 45 51 55 44 20  |rspin.KZ.  EQUD |
0000c480  20 20 20 69 64 65 6e 74  69 74 79 0d 4b 64 04 0d  |   identity.Kd..|
0000c490  4b 6e 0c 20 20 2e 63 63  74 61 62 0d 4b 78 1e 20  |Kn.  .cctab.Kx. |
0000c4a0  20 45 51 55 44 20 20 20  20 72 67 76 61 6c 28 30  | EQUD    rgval(0|
0000c4b0  29 2a 32 35 36 2b 30 2e  35 0d 4b 82 1e 20 20 45  |)*256+0.5.K..  E|
0000c4c0  51 55 44 20 20 20 20 72  67 76 61 6c 28 31 29 2a  |QUD    rgval(1)*|
0000c4d0  32 35 36 2b 30 2e 35 0d  4b 8c 1e 20 20 45 51 55  |256+0.5.K..  EQU|
0000c4e0  44 20 20 20 20 72 67 76  61 6c 28 32 29 2a 32 35  |D    rgval(2)*25|
0000c4f0  36 2b 30 2e 35 0d 4b 96  04 0d 4b a0 2e 20 20 5c  |6+0.5.K...K..  \|
0000c500  20 53 65 74 20 6e 65 77  20 63 6f 6c 6f 75 72 20  | Set new colour |
0000c510  69 6e 74 6f 20 67 69 76  65 6e 20 6c 69 67 68 74  |into given light|
0000c520  20 72 65 63 6f 72 64 0d  4b aa 20 20 20 5c 20 52  | record.K.   \ R|
0000c530  32 20 3d 20 62 61 73 65  20 61 64 64 72 20 6f 66  |2 = base addr of|
0000c540  20 72 65 63 6f 72 64 0d  4b b4 1a 20 20 5c 20 52  | record.K..  \ R|
0000c550  33 20 3d 20 63 6f 6c 6f  75 72 20 6e 75 6d 62 65  |3 = colour numbe|
0000c560  72 0d 4b be 10 20 20 2e  6e 65 77 63 6f 6c 6f 75  |r.K..  .newcolou|
0000c570  72 0d 4b c8 1e 20 20 53  54 4d 46 44 20 20 20 52  |r.K..  STMFD   R|
0000c580  31 33 21 2c 7b 52 30 2c  52 31 2c 52 31 34 7d 0d  |13!,{R0,R1,R14}.|
0000c590  4b d2 1d 20 20 41 44 52  20 20 20 20 20 52 31 2c  |K..  ADR     R1,|
0000c5a0  63 6f 6c 74 65 6d 70 6c  61 74 65 73 0d 4b dc 1d  |coltemplates.K..|
0000c5b0  20 20 41 44 44 20 20 20  20 20 52 31 2c 52 31 2c  |  ADD     R1,R1,|
0000c5c0  52 33 2c 41 53 4c 20 23  30 0d 4b e6 1d 20 20 41  |R3,ASL #0.K..  A|
0000c5d0  44 44 20 20 20 20 20 52  31 2c 52 31 2c 52 33 2c  |DD     R1,R1,R3,|
0000c5e0  41 53 4c 20 23 31 0d 4b  f0 18 20 20 4c 44 52 42  |ASL #1.K..  LDRB|
0000c5f0  20 20 20 20 52 30 2c 5b  52 31 5d 2c 23 31 0d 4b  |    R0,[R1],#1.K|
0000c600  fa 18 20 20 53 54 52 20  20 20 20 20 52 30 2c 5b  |..  STR     R0,[|
0000c610  52 32 2c 23 30 5d 0d 4c  04 18 20 20 4c 44 52 42  |R2,#0].L..  LDRB|
0000c620  20 20 20 20 52 30 2c 5b  52 31 5d 2c 23 31 0d 4c  |    R0,[R1],#1.L|
0000c630  0e 18 20 20 53 54 52 20  20 20 20 20 52 30 2c 5b  |..  STR     R0,[|
0000c640  52 32 2c 23 34 5d 0d 4c  18 18 20 20 4c 44 52 42  |R2,#4].L..  LDRB|
0000c650  20 20 20 20 52 30 2c 5b  52 31 5d 2c 23 31 0d 4c  |    R0,[R1],#1.L|
0000c660  22 18 20 20 53 54 52 20  20 20 20 20 52 30 2c 5b  |".  STR     R0,[|
0000c670  52 32 2c 23 38 5d 0d 4c  2c 1e 20 20 4c 44 4d 46  |R2,#8].L,.  LDMF|
0000c680  44 20 20 20 52 31 33 21  2c 7b 52 30 2c 52 31 2c  |D   R13!,{R0,R1,|
0000c690  50 43 7d 5e 0d 4c 36 04  0d 4c 40 20 20 20 5c 20  |PC}^.L6..L@   \ |
0000c6a0  46 6c 61 73 68 20 67 69  76 65 6e 20 6c 69 67 68  |Flash given ligh|
0000c6b0  74 20 72 65 63 6f 72 64  0d 4c 4a 20 20 20 5c 20  |t record.LJ   \ |
0000c6c0  52 32 20 3d 20 62 61 73  65 20 61 64 64 72 20 6f  |R2 = base addr o|
0000c6d0  66 20 72 65 63 6f 72 64  0d 4c 54 0c 20 20 2e 66  |f record.LT.  .f|
0000c6e0  6c 61 73 68 0d 4c 5e 1b  20 20 53 54 4d 46 44 20  |lash.L^.  STMFD |
0000c6f0  20 20 52 31 33 21 2c 7b  52 30 2c 52 31 34 7d 0d  |  R13!,{R0,R14}.|
0000c700  4c 68 17 20 20 4d 4f 56  20 20 20 20 20 52 30 2c  |Lh.  MOV     R0,|
0000c710  23 36 35 35 33 36 0d 4c  72 19 20 20 53 54 52 20  |#65536.Lr.  STR |
0000c720  20 20 20 20 52 30 2c 5b  52 32 2c 23 31 32 5d 0d  |    R0,[R2,#12].|
0000c730  4c 7c 1b 20 20 4c 44 4d  46 44 20 20 20 52 31 33  |L|.  LDMFD   R13|
0000c740  21 2c 7b 52 30 2c 50 43  7d 5e 0d 4c 86 04 0d 4c  |!,{R0,PC}^.L...L|
0000c750  90 22 20 20 5c 20 54 75  72 6e 20 6f 66 66 20 61  |."  \ Turn off a|
0000c760  6c 6c 20 6c 69 67 68 74  20 72 65 63 6f 72 64 73  |ll light records|
0000c770  0d 4c 9a 0e 20 20 2e 74  75 72 6e 6f 66 66 0d 4c  |.L..  .turnoff.L|
0000c780  a4 1e 20 20 53 54 4d 46  44 20 20 20 52 31 33 21  |..  STMFD   R13!|
0000c790  2c 7b 52 30 2c 52 31 2c  52 31 34 7d 0d 4c ae 13  |,{R0,R1,R14}.L..|
0000c7a0  20 20 4d 4f 56 20 20 20  20 20 52 30 2c 23 30 0d  |  MOV     R0,#0.|
0000c7b0  4c b8 15 20 20 41 44 52  20 20 20 20 20 52 31 2c  |L..  ADR     R1,|
0000c7c0  63 6f 6c 31 0d 4c c2 19  20 20 53 54 52 20 20 20  |col1.L..  STR   |
0000c7d0  20 20 52 30 2c 5b 52 31  2c 23 31 32 5d 0d 4c cc  |  R0,[R1,#12].L.|
0000c7e0  15 20 20 41 44 52 20 20  20 20 20 52 31 2c 63 6f  |.  ADR     R1,co|
0000c7f0  6c 32 0d 4c d6 19 20 20  53 54 52 20 20 20 20 20  |l2.L..  STR     |
0000c800  52 30 2c 5b 52 31 2c 23  31 32 5d 0d 4c e0 1e 20  |R0,[R1,#12].L.. |
0000c810  20 4c 44 4d 46 44 20 20  20 52 31 33 21 2c 7b 52  | LDMFD   R13!,{R|
0000c820  30 2c 52 31 2c 50 43 7d  5e 0d 4c ea 04 0d 4c f4  |0,R1,PC}^.L...L.|
0000c830  22 20 20 5c 20 53 65 74  20 64 69 6d 20 72 65 64  |"  \ Set dim red|
0000c840  20 67 6c 6f 77 20 69 6e  20 72 65 63 6f 72 64 0d  | glow in record.|
0000c850  4c fe 20 20 20 5c 20 52  32 20 3d 20 62 61 73 65  |L.   \ R2 = base|
0000c860  20 61 64 64 72 20 6f 66  20 72 65 63 6f 72 64 0d  | addr of record.|
0000c870  4d 08 0e 20 20 2e 64 69  6d 67 6c 6f 77 0d 4d 12  |M..  .dimglow.M.|
0000c880  21 20 20 53 54 4d 46 44  20 20 20 52 31 33 21 2c  |!  STMFD   R13!,|
0000c890  7b 52 30 2c 52 33 2d 52  36 2c 52 31 34 7d 0d 4d  |{R0,R3-R6,R14}.M|
0000c8a0  1c 20 20 20 41 44 52 20  20 20 20 20 52 30 2c 64  |.   ADR     R0,d|
0000c8b0  69 6d 67 6c 6f 77 74 65  6d 70 6c 61 74 65 0d 4d  |imglowtemplate.M|
0000c8c0  26 18 20 20 4c 44 4d 49  41 20 20 20 52 30 2c 7b  |&.  LDMIA   R0,{|
0000c8d0  52 33 2d 52 36 7d 0d 4d  30 18 20 20 53 54 4d 49  |R3-R6}.M0.  STMI|
0000c8e0  41 20 20 20 52 32 2c 7b  52 33 2d 52 36 7d 0d 4d  |A   R2,{R3-R6}.M|
0000c8f0  3a 21 20 20 4c 44 4d 46  44 20 20 20 52 31 33 21  |:!  LDMFD   R13!|
0000c900  2c 7b 52 30 2c 52 33 2d  52 36 2c 50 43 7d 5e 0d  |,{R0,R3-R6,PC}^.|
0000c910  4d 44 04 0d 4d 4e 16 20  20 2e 64 69 6d 67 6c 6f  |MD..MN.  .dimglo|
0000c920  77 74 65 6d 70 6c 61 74  65 0d 4d 58 11 20 20 45  |wtemplate.MX.  E|
0000c930  51 55 44 20 20 20 20 31  31 32 0d 4d 62 10 20 20  |QUD    112.Mb.  |
0000c940  45 51 55 44 20 20 20 20  33 32 0d 4d 6c 0f 20 20  |EQUD    32.Ml.  |
0000c950  45 51 55 44 20 20 20 20  30 0d 4d 76 13 20 20 45  |EQUD    0.Mv.  E|
0000c960  51 55 44 20 20 20 20 36  35 35 33 36 0d 4d 80 04  |QUD    65536.M..|
0000c970  0d 4d 8a 0f 20 20 2e 6c  69 6e 65 74 79 70 65 0d  |.M..  .linetype.|
0000c980  4d 94 0f 20 20 45 51 55  44 20 20 20 20 30 0d 4d  |M..  EQUD    0.M|
0000c990  9e 04 0d 4d a8 13 20 20  2e 63 6f 6c 74 65 6d 70  |...M..  .coltemp|
0000c9a0  6c 61 74 65 73 0d 4d b2  23 20 20 3a 3d 32 35 35  |lates.M.#  :=255|
0000c9b0  20 3a 3d 20 32 35 35 20  3a 3d 20 32 35 35 20 20  | := 255 := 255  |
0000c9c0  20 5c 20 77 68 69 74 65  0d 4d bc 21 20 20 3a 3d  | \ white.M.!  :=|
0000c9d0  32 35 35 20 3a 3d 20 30  20 20 20 3a 3d 20 33 32  |255 := 0   := 32|
0000c9e0  20 20 20 20 5c 20 72 65  64 0d 4d c6 24 20 20 3a  |    \ red.M.$  :|
0000c9f0  3d 32 35 35 20 3a 3d 20  31 32 38 20 3a 3d 20 30  |=255 := 128 := 0|
0000ca00  20 20 20 20 20 5c 20 6f  72 61 6e 67 65 0d 4d d0  |     \ orange.M.|
0000ca10  24 20 20 3a 3d 31 39 32  20 3a 3d 20 32 35 35 20  |$  :=192 := 255 |
0000ca20  3a 3d 20 30 20 20 20 20  20 5c 20 79 65 6c 6c 6f  |:= 0     \ yello|
0000ca30  77 0d 4d da 23 20 20 3a  3d 30 20 20 20 3a 3d 20  |w.M.#  :=0   := |
0000ca40  32 35 35 20 3a 3d 20 30  20 20 20 20 20 5c 20 67  |255 := 0     \ g|
0000ca50  72 65 65 6e 0d 4d e4 22  20 20 3a 3d 30 20 20 20  |reen.M."  :=0   |
0000ca60  3a 3d 20 32 30 38 20 3a  3d 20 31 39 32 20 20 20  |:= 208 := 192   |
0000ca70  5c 20 63 79 61 6e 0d 4d  ee 22 20 20 3a 3d 30 20  |\ cyan.M."  :=0 |
0000ca80  20 20 3a 3d 20 33 32 20  20 3a 3d 20 32 35 35 20  |  := 32  := 255 |
0000ca90  20 20 5c 20 62 6c 75 65  0d 4d f8 24 20 20 3a 3d  |  \ blue.M.$  :=|
0000caa0  31 39 32 20 3a 3d 20 30  20 20 20 3a 3d 20 32 35  |192 := 0   := 25|
0000cab0  35 20 20 20 5c 20 70 75  72 70 6c 65 0d 4e 02 22  |5   \ purple.N."|
0000cac0  20 20 3a 3d 32 35 35 20  3a 3d 20 31 32 38 20 3a  |  :=255 := 128 :|
0000cad0  3d 20 31 32 38 20 20 20  5c 20 70 69 6e 6b 0d 4e  |= 128   \ pink.N|
0000cae0  0c 27 20 20 3a 3d 31 32  38 20 3a 3d 20 31 32 38  |.'  :=128 := 128|
0000caf0  20 3a 3d 20 32 35 35 20  20 20 5c 20 70 61 6c 65  | := 255   \ pale|
0000cb00  20 62 6c 75 65 0d 4e 16  04 0d 4e 20 0b 20 20 41  | blue.N...N .  A|
0000cb10  4c 49 47 4e 0d 4e 2a 04  0d 4e 34 0d 20 20 2e 6e  |LIGN.N*..N4.  .n|
0000cb20  73 74 6f 72 65 0d 4e 3e  10 20 20 45 51 55 44 20  |store.N>.  EQUD |
0000cb30  20 20 20 2d 31 0d 4e 48  0d 20 20 2e 6b 73 74 6f  |   -1.NH.  .ksto|
0000cb40  72 65 0d 4e 52 0f 20 20  45 51 55 44 20 20 20 20  |re.NR.  EQUD    |
0000cb50  30 0d 4e 5c 0d 20 20 2e  6d 73 74 6f 72 65 0d 4e  |0.N\.  .mstore.N|
0000cb60  66 0f 20 20 45 51 55 44  20 20 20 20 30 0d 4e 70  |f.  EQUD    0.Np|
0000cb70  04 0d 4e 7a 2b 20 20 5c  20 74 72 61 6e 73 66 6f  |..Nz+  \ transfo|
0000cb80  72 6d 20 61 20 76 65 63  74 6f 72 20 74 68 72 6f  |rm a vector thro|
0000cb90  75 67 68 20 61 20 6d 61  74 72 69 78 0d 4e 84 22  |ugh a matrix.N."|
0000cba0  20 20 5c 20 52 30 20 70  6f 69 6e 74 73 20 74 6f  |  \ R0 points to|
0000cbb0  20 72 65 73 75 6c 74 20  76 65 63 74 6f 72 0d 4e  | result vector.N|
0000cbc0  8e 1b 20 20 5c 20 52 31  20 70 6f 69 6e 74 73 20  |..  \ R1 points |
0000cbd0  74 6f 20 6d 61 74 72 69  78 0d 4e 98 1b 20 20 5c  |to matrix.N..  \|
0000cbe0  20 52 32 20 70 6f 69 6e  74 73 20 74 6f 20 76 65  | R2 points to ve|
0000cbf0  63 74 6f 72 0d 4e a2 10  20 20 2e 74 72 61 6e 73  |ctor.N..  .trans|
0000cc00  66 6f 72 6d 0d 4e ac 1f  20 20 53 54 4d 46 44 20  |form.N..  STMFD |
0000cc10  20 20 52 31 33 21 2c 7b  52 30 2d 52 31 32 2c 52  |  R13!,{R0-R12,R|
0000cc20  31 34 7d 0d 4e b6 04 0d  4e c0 14 20 20 4d 4f 56  |14}.N...N..  MOV|
0000cc30  20 20 20 20 20 52 31 32  2c 52 30 0d 4e ca 04 0d  |     R12,R0.N...|
0000cc40  4e d4 19 20 20 4c 44 4d  49 41 20 20 20 52 32 2c  |N..  LDMIA   R2,|
0000cc50  7b 52 39 2d 52 31 31 7d  0d 4e de 18 20 20 4c 44  |{R9-R11}.N..  LD|
0000cc60  4d 49 41 20 20 20 52 31  2c 7b 52 30 2d 52 38 7d  |MIA   R1,{R0-R8}|
0000cc70  0d 4e e8 04 0d 4e f2 16  20 20 4d 55 4c 20 20 20  |.N...N..  MUL   |
0000cc80  20 20 52 30 2c 52 39 2c  52 30 0d 4e fc 1a 20 20  |  R0,R9,R0.N..  |
0000cc90  4d 4c 41 20 20 20 20 20  52 30 2c 52 31 30 2c 52  |MLA     R0,R10,R|
0000cca0  31 2c 52 30 0d 4f 06 1a  20 20 4d 4c 41 20 20 20  |1,R0.O..  MLA   |
0000ccb0  20 20 52 30 2c 52 31 31  2c 52 32 2c 52 30 0d 4f  |  R0,R11,R2,R0.O|
0000ccc0  10 16 20 20 4d 55 4c 20  20 20 20 20 52 31 2c 52  |..  MUL     R1,R|
0000ccd0  39 2c 52 33 0d 4f 1a 1a  20 20 4d 4c 41 20 20 20  |9,R3.O..  MLA   |
0000cce0  20 20 52 31 2c 52 31 30  2c 52 34 2c 52 31 0d 4f  |  R1,R10,R4,R1.O|
0000ccf0  24 1a 20 20 4d 4c 41 20  20 20 20 20 52 31 2c 52  |$.  MLA     R1,R|
0000cd00  31 31 2c 52 35 2c 52 31  0d 4f 2e 16 20 20 4d 55  |11,R5,R1.O..  MU|
0000cd10  4c 20 20 20 20 20 52 32  2c 52 39 2c 52 36 0d 4f  |L     R2,R9,R6.O|
0000cd20  38 1a 20 20 4d 4c 41 20  20 20 20 20 52 32 2c 52  |8.  MLA     R2,R|
0000cd30  31 30 2c 52 37 2c 52 32  0d 4f 42 1a 20 20 4d 4c  |10,R7,R2.OB.  ML|
0000cd40  41 20 20 20 20 20 52 32  2c 52 31 31 2c 52 38 2c  |A     R2,R11,R8,|
0000cd50  52 32 0d 4f 4c 05 20 0d  4f 56 1b 20 20 4d 4f 56  |R2.OL. .OV.  MOV|
0000cd60  20 20 20 20 20 52 30 2c  52 30 2c 41 53 52 20 23  |     R0,R0,ASR #|
0000cd70  31 35 0d 4f 60 1b 20 20  4d 4f 56 20 20 20 20 20  |15.O`.  MOV     |
0000cd80  52 31 2c 52 31 2c 41 53  52 20 23 31 35 0d 4f 6a  |R1,R1,ASR #15.Oj|
0000cd90  1b 20 20 4d 4f 56 20 20  20 20 20 52 32 2c 52 32  |.  MOV     R2,R2|
0000cda0  2c 41 53 52 20 23 31 35  0d 4f 74 04 0d 4f 7e 19  |,ASR #15.Ot..O~.|
0000cdb0  20 20 53 54 4d 49 41 20  20 20 52 31 32 2c 7b 52  |  STMIA   R12,{R|
0000cdc0  30 2d 52 32 7d 0d 4f 88  04 0d 4f 92 1f 20 20 4c  |0-R2}.O...O..  L|
0000cdd0  44 4d 46 44 20 20 20 52  31 33 21 2c 7b 52 30 2d  |DMFD   R13!,{R0-|
0000cde0  52 31 32 2c 50 43 7d 5e  0d 4f 9c 04 0d 4f a6 1d  |R12,PC}^.O...O..|
0000cdf0  20 20 5c 20 6d 75 6c 74  69 70 6c 79 20 74 77 6f  |  \ multiply two|
0000ce00  20 6d 61 74 72 69 63 65  73 0d 4f b0 22 20 20 5c  | matrices.O."  \|
0000ce10  20 52 30 20 70 6f 69 6e  74 73 20 74 6f 20 72 65  | R0 points to re|
0000ce20  73 75 6c 74 20 6d 61 74  72 69 78 0d 4f ba 2c 20  |sult matrix.O., |
0000ce30  20 5c 20 52 31 20 70 6f  69 6e 74 73 20 74 6f 20  | \ R1 points to |
0000ce40  70 72 65 2d 74 72 61 6e  73 66 6f 72 6d 69 6e 67  |pre-transforming|
0000ce50  20 6d 61 74 72 69 78 0d  4f c4 23 20 20 5c 20 52  | matrix.O.#  \ R|
0000ce60  32 20 70 6f 69 6e 74 73  20 74 6f 20 69 6e 69 74  |2 points to init|
0000ce70  69 61 6c 20 6d 61 74 72  69 78 0d 4f ce 0f 20 20  |ial matrix.O..  |
0000ce80  2e 6d 75 6c 74 69 70 6c  79 0d 4f d8 1f 20 20 53  |.multiply.O..  S|
0000ce90  54 4d 46 44 20 20 20 52  31 33 21 2c 7b 52 30 2d  |TMFD   R13!,{R0-|
0000cea0  52 31 32 2c 52 31 34 7d  0d 4f e2 18 20 20 53 54  |R12,R14}.O..  ST|
0000ceb0  52 20 20 20 20 20 52 31  33 2c 72 31 33 73 74 6f  |R     R13,r13sto|
0000cec0  0d 4f ec 04 0d 4f f6 19  20 20 4c 44 4d 49 41 20  |.O...O..  LDMIA |
0000ced0  20 20 52 32 2c 7b 52 33  2d 52 31 31 7d 0d 50 00  |  R2,{R3-R11}.P.|
0000cee0  19 20 20 53 54 4d 49 41  20 20 20 52 30 2c 7b 52  |.  STMIA   R0,{R|
0000cef0  33 2d 52 31 31 7d 0d 50  0a 04 0d 50 14 14 20 20  |3-R11}.P...P..  |
0000cf00  4d 4f 56 20 20 20 20 20  52 31 32 2c 52 30 0d 50  |MOV     R12,R0.P|
0000cf10  1e 18 20 20 4c 44 4d 49  41 20 20 20 52 31 2c 7b  |..  LDMIA   R1,{|
0000cf20  52 30 2d 52 38 7d 0d 50  28 04 0d 50 32 14 20 20  |R0-R8}.P(..P2.  |
0000cf30  4d 4f 56 20 20 20 20 20  52 31 34 2c 23 33 0d 50  |MOV     R14,#3.P|
0000cf40  3c 0f 20 20 2e 6d 75 6c  74 6c 6f 6f 70 0d 50 46  |<.  .multloop.PF|
0000cf50  04 0d 50 50 1c 20 20 20  20 4c 44 4d 49 41 20 20  |..PP.    LDMIA  |
0000cf60  20 52 31 32 2c 7b 52 39  2d 52 31 31 7d 0d 50 5a  | R12,{R9-R11}.PZ|
0000cf70  05 20 0d 50 64 19 20 20  20 20 4d 55 4c 20 20 20  |. .Pd.    MUL   |
0000cf80  20 20 52 31 33 2c 52 39  2c 52 30 0d 50 6e 1e 20  |  R13,R9,R0.Pn. |
0000cf90  20 20 20 4d 4c 41 20 20  20 20 20 52 31 33 2c 52  |   MLA     R13,R|
0000cfa0  31 30 2c 52 33 2c 52 31  33 0d 50 78 1e 20 20 20  |10,R3,R13.Px.   |
0000cfb0  20 4d 4c 41 20 20 20 20  20 52 31 33 2c 52 31 31  | MLA     R13,R11|
0000cfc0  2c 52 36 2c 52 31 33 0d  50 82 1f 20 20 20 20 4d  |,R6,R13.P..    M|
0000cfd0  4f 56 20 20 20 20 20 52  31 33 2c 52 31 33 2c 41  |OV     R13,R13,A|
0000cfe0  53 52 20 23 31 35 0d 50  8c 1c 20 20 20 20 53 54  |SR #15.P..    ST|
0000cff0  52 20 20 20 20 20 52 31  33 2c 5b 52 31 32 5d 2c  |R     R13,[R12],|
0000d000  23 34 0d 50 96 05 20 0d  50 a0 19 20 20 20 20 4d  |#4.P.. .P..    M|
0000d010  55 4c 20 20 20 20 20 52  31 33 2c 52 39 2c 52 31  |UL     R13,R9,R1|
0000d020  0d 50 aa 1e 20 20 20 20  4d 4c 41 20 20 20 20 20  |.P..    MLA     |
0000d030  52 31 33 2c 52 31 30 2c  52 34 2c 52 31 33 0d 50  |R13,R10,R4,R13.P|
0000d040  b4 1e 20 20 20 20 4d 4c  41 20 20 20 20 20 52 31  |..    MLA     R1|
0000d050  33 2c 52 31 31 2c 52 37  2c 52 31 33 0d 50 be 1f  |3,R11,R7,R13.P..|
0000d060  20 20 20 20 4d 4f 56 20  20 20 20 20 52 31 33 2c  |    MOV     R13,|
0000d070  52 31 33 2c 41 53 52 20  23 31 35 0d 50 c8 1c 20  |R13,ASR #15.P.. |
0000d080  20 20 20 53 54 52 20 20  20 20 20 52 31 33 2c 5b  |   STR     R13,[|
0000d090  52 31 32 5d 2c 23 34 0d  50 d2 04 0d 50 dc 19 20  |R12],#4.P...P.. |
0000d0a0  20 20 20 4d 55 4c 20 20  20 20 20 52 31 33 2c 52  |   MUL     R13,R|
0000d0b0  39 2c 52 32 0d 50 e6 1e  20 20 20 20 4d 4c 41 20  |9,R2.P..    MLA |
0000d0c0  20 20 20 20 52 31 33 2c  52 31 30 2c 52 35 2c 52  |    R13,R10,R5,R|
0000d0d0  31 33 0d 50 f0 1e 20 20  20 20 4d 4c 41 20 20 20  |13.P..    MLA   |
0000d0e0  20 20 52 31 33 2c 52 31  31 2c 52 38 2c 52 31 33  |  R13,R11,R8,R13|
0000d0f0  0d 50 fa 1f 20 20 20 20  4d 4f 56 20 20 20 20 20  |.P..    MOV     |
0000d100  52 31 33 2c 52 31 33 2c  41 53 52 20 23 31 35 0d  |R13,R13,ASR #15.|
0000d110  51 04 1c 20 20 20 20 53  54 52 20 20 20 20 20 52  |Q..    STR     R|
0000d120  31 33 2c 5b 52 31 32 5d  2c 23 34 0d 51 0e 05 20  |13,[R12],#4.Q.. |
0000d130  0d 51 18 1a 20 20 20 20  53 55 42 53 20 20 20 20  |.Q..    SUBS    |
0000d140  52 31 34 2c 52 31 34 2c  23 31 0d 51 22 18 20 20  |R14,R14,#1.Q".  |
0000d150  20 20 42 47 54 20 20 20  20 20 6d 75 6c 74 6c 6f  |  BGT     multlo|
0000d160  6f 70 0d 51 2c 04 0d 51  36 18 20 20 4c 44 52 20  |op.Q,..Q6.  LDR |
0000d170  20 20 20 20 52 31 33 2c  72 31 33 73 74 6f 0d 51  |    R13,r13sto.Q|
0000d180  40 1f 20 20 4c 44 4d 46  44 20 20 20 52 31 33 21  |@.  LDMFD   R13!|
0000d190  2c 7b 52 30 2d 52 31 32  2c 50 43 7d 5e 0d 51 4a  |,{R0-R12,PC}^.QJ|
0000d1a0  04 0d 51 54 27 20 20 5c  20 56 65 63 74 6f 72 20  |..QT'  \ Vector |
0000d1b0  6d 75 6c 74 69 70 6c 79  20 77 69 74 68 20 61 63  |multiply with ac|
0000d1c0  63 75 6d 75 6c 61 74 65  0d 51 5e 22 20 20 5c 20  |cumulate.Q^"  \ |
0000d1d0  52 30 20 70 6f 69 6e 74  73 20 74 6f 20 6f 75 74  |R0 points to out|
0000d1e0  70 75 74 20 76 65 63 74  6f 72 0d 51 68 27 20 20  |put vector.Qh'  |
0000d1f0  5c 20 52 31 20 70 6f 69  6e 74 73 20 74 6f 20 6d  |\ R1 points to m|
0000d200  75 6c 74 69 70 6c 79 69  6e 67 20 76 65 63 74 6f  |ultiplying vecto|
0000d210  72 0d 51 72 27 20 20 5c  20 52 32 20 69 73 20 6d  |r.Qr'  \ R2 is m|
0000d220  75 6c 74 69 70 6c 79 69  6e 67 20 73 63 61 6c 61  |ultiplying scala|
0000d230  72 20 2a 20 31 30 32 34  0d 51 7c 23 20 20 5c 20  |r * 1024.Q|#  \ |
0000d240  52 33 20 70 6f 69 6e 74  73 20 74 6f 20 69 6e 69  |R3 points to ini|
0000d250  74 69 61 6c 20 76 65 63  74 6f 72 0d 51 86 10 20  |tial vector.Q.. |
0000d260  20 2e 76 65 63 74 6f 72  6d 6c 61 0d 51 90 1f 20  | .vectormla.Q.. |
0000d270  20 53 54 4d 46 44 20 20  20 52 31 33 21 2c 7b 52  | STMFD   R13!,{R|
0000d280  30 2d 52 31 32 2c 52 31  34 7d 0d 51 9a 04 0d 51  |0-R12,R14}.Q...Q|
0000d290  a4 18 20 20 4c 44 4d 49  41 20 20 20 52 33 2c 7b  |..  LDMIA   R3,{|
0000d2a0  52 33 2d 52 35 7d 0d 51  ae 18 20 20 4c 44 4d 49  |R3-R5}.Q..  LDMI|
0000d2b0  41 20 20 20 52 31 2c 7b  52 36 2d 52 38 7d 0d 51  |A   R1,{R6-R8}.Q|
0000d2c0  b8 04 0d 51 c2 16 20 20  4d 55 4c 20 20 20 20 20  |...Q..  MUL     |
0000d2d0  52 39 2c 52 32 2c 52 36  0d 51 cc 1e 20 20 41 44  |R9,R2,R6.Q..  AD|
0000d2e0  44 20 20 20 20 20 52 33  2c 52 33 2c 52 39 2c 41  |D     R3,R3,R9,A|
0000d2f0  53 52 20 23 31 30 0d 51  d6 16 20 20 4d 55 4c 20  |SR #10.Q..  MUL |
0000d300  20 20 20 20 52 39 2c 52  32 2c 52 37 0d 51 e0 1e  |    R9,R2,R7.Q..|
0000d310  20 20 41 44 44 20 20 20  20 20 52 34 2c 52 34 2c  |  ADD     R4,R4,|
0000d320  52 39 2c 41 53 52 20 23  31 30 0d 51 ea 16 20 20  |R9,ASR #10.Q..  |
0000d330  4d 55 4c 20 20 20 20 20  52 39 2c 52 32 2c 52 38  |MUL     R9,R2,R8|
0000d340  0d 51 f4 1e 20 20 41 44  44 20 20 20 20 20 52 35  |.Q..  ADD     R5|
0000d350  2c 52 35 2c 52 39 2c 41  53 52 20 23 31 30 0d 51  |,R5,R9,ASR #10.Q|
0000d360  fe 05 20 0d 52 08 18 20  20 53 54 4d 49 41 20 20  |.. .R..  STMIA  |
0000d370  20 52 30 2c 7b 52 33 2d  52 35 7d 0d 52 12 05 20  | R0,{R3-R5}.R.. |
0000d380  0d 52 1c 1f 20 20 4c 44  4d 46 44 20 20 20 52 31  |.R..  LDMFD   R1|
0000d390  33 21 2c 7b 52 30 2d 52  31 32 2c 50 43 7d 5e 0d  |3!,{R0-R12,PC}^.|
0000d3a0  52 26 04 0d 52 30 13 20  20 2e 72 65 61 64 76 64  |R&..R0.  .readvd|
0000d3b0  75 69 6e 70 75 74 0d 52  3a 32 20 20 45 51 55 44  |uinput.R:2  EQUD|
0000d3c0  20 20 20 20 31 34 38 20  20 20 20 20 5c 20 73 63  |    148     \ sc|
0000d3d0  72 65 65 6e 20 73 74 61  72 74 20 2d 20 76 64 75  |reen start - vdu|
0000d3e0  20 64 72 69 76 65 72 73  0d 52 44 10 20 20 45 51  | drivers.RD.  EQ|
0000d3f0  55 44 20 20 20 20 2d 31  0d 52 4e 04 0d 52 58 14  |UD    -1.RN..RX.|
0000d400  20 20 2e 72 65 61 64 76  64 75 6f 75 74 70 75 74  |  .readvduoutput|
0000d410  0d 52 62 0f 20 20 45 51  55 44 20 20 20 20 30 0d  |.Rb.  EQUD    0.|
0000d420  52 6c 04 0d 52 76 12 20  20 2e 63 75 72 70 6c 6f  |Rl..Rv.  .curplo|
0000d430  74 62 61 6e 6b 0d 52 80  0f 20 20 45 51 55 44 20  |tbank.R..  EQUD |
0000d440  20 20 20 30 0d 52 8a 04  0d 52 94 47 20 20 f4 20  |   0.R...R.G  . |
0000d450  77 61 69 74 20 66 6f 72  20 76 73 79 6e 63 20 74  |wait for vsync t|
0000d460  68 65 6e 20 73 77 61 70  20 6f 76 65 72 20 73 63  |hen swap over sc|
0000d470  72 65 65 6e 73 20 61 6e  64 20 6e 6f 74 65 20 6e  |reens and note n|
0000d480  65 77 20 70 6c 6f 74 20  61 64 64 72 65 73 73 0d  |ew plot address.|
0000d490  52 9e 12 20 20 2e 63 68  61 6e 67 65 66 72 61 6d  |R..  .changefram|
0000d4a0  65 0d 52 a8 1f 20 20 53  54 4d 46 44 20 20 20 52  |e.R..  STMFD   R|
0000d4b0  31 33 21 2c 7b 52 30 2d  52 31 32 2c 52 31 34 7d  |13!,{R0-R12,R14}|
0000d4c0  0d 52 b2 04 0d 52 bc 15  20 20 4d 4f 56 20 20 20  |.R...R..  MOV   |
0000d4d0  20 20 52 30 2c 23 26 42  30 0d 52 c6 13 20 20 4d  |  R0,#&B0.R..  M|
0000d4e0  4f 56 20 20 20 20 20 52  31 2c 23 30 0d 52 d0 15  |OV     R1,#0.R..|
0000d4f0  20 20 4d 4f 56 20 20 20  20 20 52 32 2c 23 26 46  |  MOV     R2,#&F|
0000d500  46 0d 52 da 17 20 20 53  57 49 20 20 20 20 20 22  |F.R..  SWI     "|
0000d510  4f 53 5f 42 79 74 65 22  0d 52 e4 17 20 20 43 4d  |OS_Byte".R..  CM|
0000d520  50 20 20 20 20 20 52 31  2c 23 32 35 35 2d 32 0d  |P     R1,#255-2.|
0000d530  52 ee 16 20 20 42 4c 45  20 20 20 20 20 6f 76 65  |R..  BLE     ove|
0000d540  72 6c 6f 61 64 0d 52 f8  04 0d 53 02 0f 20 20 2e  |rload.R...S..  .|
0000d550  69 64 6c 65 6c 6f 6f 70  0d 53 0c 17 20 20 20 20  |idleloop.S..    |
0000d560  4d 4f 56 20 20 20 20 20  52 30 2c 23 26 42 30 0d  |MOV     R0,#&B0.|
0000d570  53 16 15 20 20 20 20 4d  4f 56 20 20 20 20 20 52  |S..    MOV     R|
0000d580  31 2c 23 30 0d 53 20 17  20 20 20 20 4d 4f 56 20  |1,#0.S .    MOV |
0000d590  20 20 20 20 52 32 2c 23  26 46 46 0d 53 2a 19 20  |    R2,#&FF.S*. |
0000d5a0  20 20 20 53 57 49 20 20  20 20 20 22 4f 53 5f 42  |   SWI     "OS_B|
0000d5b0  79 74 65 22 0d 53 34 19  20 20 20 20 43 4d 50 20  |yte".S4.    CMP |
0000d5c0  20 20 20 20 52 31 2c 23  32 35 35 2d 32 0d 53 3e  |    R1,#255-2.S>|
0000d5d0  51 20 20 20 20 42 4e 45  20 20 20 20 20 69 64 6c  |Q    BNE     idl|
0000d5e0  65 6c 6f 6f 70 20 20 5c  20 77 61 69 74 20 66 6f  |eloop  \ wait fo|
0000d5f0  72 20 76 73 79 6e 63 20  77 68 65 6e 20 63 6f 75  |r vsync when cou|
0000d600  6e 74 65 72 20 63 72 6f  73 73 65 73 20 32 35 35  |nter crosses 255|
0000d610  2d 32 20 69 65 20 32 20  66 72 61 6d 65 73 0d 53  |-2 ie 2 frames.S|
0000d620  48 04 0d 53 52 0f 20 20  2e 6f 76 65 72 6c 6f 61  |H..SR.  .overloa|
0000d630  64 0d 53 5c 04 0d 53 66  15 20 20 4d 4f 56 20 20  |d.S\..Sf.  MOV  |
0000d640  20 20 20 52 30 2c 23 26  42 30 0d 53 70 15 20 20  |   R0,#&B0.Sp.  |
0000d650  4d 4f 56 20 20 20 20 20  52 31 2c 23 32 35 35 0d  |MOV     R1,#255.|
0000d660  53 7a 13 20 20 4d 4f 56  20 20 20 20 20 52 32 2c  |Sz.  MOV     R2,|
0000d670  23 30 0d 53 84 17 20 20  53 57 49 20 20 20 20 20  |#0.S..  SWI     |
0000d680  22 4f 53 5f 42 79 74 65  22 0d 53 8e 04 0d 53 98  |"OS_Byte".S...S.|
0000d690  1c 20 20 4c 44 52 20 20  20 20 20 52 33 2c 63 75  |.  LDR     R3,cu|
0000d6a0  72 70 6c 6f 74 62 61 6e  6b 0d 53 a2 13 20 20 4d  |rplotbank.S..  M|
0000d6b0  4f 56 20 20 20 20 20 52  31 2c 52 33 0d 53 ac 15  |OV     R1,R3.S..|
0000d6c0  20 20 4d 4f 56 20 20 20  20 20 52 30 2c 23 26 37  |  MOV     R0,#&7|
0000d6d0  31 0d 53 b6 17 20 20 53  57 49 20 20 20 20 20 22  |1.S..  SWI     "|
0000d6e0  4f 53 5f 42 79 74 65 22  0d 53 c0 16 20 20 52 53  |OS_Byte".S..  RS|
0000d6f0  42 20 20 20 20 20 52 31  2c 52 33 2c 23 33 0d 53  |B     R1,R3,#3.S|
0000d700  ca 1c 20 20 53 54 52 20  20 20 20 20 52 31 2c 63  |..  STR     R1,c|
0000d710  75 72 70 6c 6f 74 62 61  6e 6b 0d 53 d4 15 20 20  |urplotbank.S..  |
0000d720  4d 4f 56 20 20 20 20 20  52 30 2c 23 26 37 30 0d  |MOV     R0,#&70.|
0000d730  53 de 28 20 20 53 57 49  20 20 20 20 20 22 4f 53  |S.(  SWI     "OS|
0000d740  5f 42 79 74 65 22 20 20  20 5c 20 73 77 61 70 20  |_Byte"   \ swap |
0000d750  73 63 72 65 65 6e 73 0d  53 e8 04 0d 53 f2 1d 20  |screens.S...S.. |
0000d760  20 41 44 52 20 20 20 20  20 52 30 2c 72 65 61 64  | ADR     R0,read|
0000d770  76 64 75 69 6e 70 75 74  0d 53 fc 1e 20 20 41 44  |vduinput.S..  AD|
0000d780  52 20 20 20 20 20 52 31  2c 72 65 61 64 76 64 75  |R     R1,readvdu|
0000d790  6f 75 74 70 75 74 0d 54  06 23 20 20 53 57 49 20  |output.T.#  SWI |
0000d7a0  20 20 20 20 22 4f 53 5f  52 65 61 64 56 64 75 56  |    "OS_ReadVduV|
0000d7b0  61 72 69 61 62 6c 65 73  22 0d 54 10 1e 20 20 4c  |ariables".T..  L|
0000d7c0  44 52 20 20 20 20 20 52  30 2c 72 65 61 64 76 64  |DR     R0,readvd|
0000d7d0  75 6f 75 74 70 75 74 0d  54 1a 20 20 20 4c 44 52  |uoutput.T.   LDR|
0000d7e0  20 20 20 20 20 52 31 2c  70 6c 6f 74 73 63 72 65  |     R1,plotscre|
0000d7f0  65 6e 69 6e 64 66 73 0d  54 24 2c 20 20 53 54 52  |enindfs.T$,  STR|
0000d800  20 20 20 20 20 52 30 2c  5b 52 31 5d 20 20 20 20  |     R0,[R1]    |
0000d810  20 5c 20 67 65 74 20 70  6c 6f 74 20 61 64 64 72  | \ get plot addr|
0000d820  65 73 73 0d 54 2e 04 0d  54 38 18 20 20 4c 44 52  |ess.T...T8.  LDR|
0000d830  20 20 20 20 20 52 38 2c  63 6f 6c 66 61 64 65 0d  |     R8,colfade.|
0000d840  54 42 16 20 20 41 44 52  20 20 20 20 20 52 31 34  |TB.  ADR     R14|
0000d850  2c 63 6f 6c 31 0d 54 4c  1a 20 20 4c 44 52 20 20  |,col1.TL.  LDR  |
0000d860  20 20 20 52 37 2c 5b 52  31 34 2c 23 31 32 5d 0d  |   R7,[R14,#12].|
0000d870  54 56 16 20 20 4d 55 4c  20 20 20 20 20 52 37 2c  |TV.  MUL     R7,|
0000d880  52 38 2c 52 37 0d 54 60  1a 20 20 4d 4f 56 20 20  |R8,R7.T`.  MOV  |
0000d890  20 20 20 52 37 2c 52 37  2c 41 53 52 20 23 38 0d  |   R7,R7,ASR #8.|
0000d8a0  54 6a 1a 20 20 53 54 52  20 20 20 20 20 52 37 2c  |Tj.  STR     R7,|
0000d8b0  5b 52 31 34 2c 23 31 32  5d 0d 54 74 1a 20 20 4d  |[R14,#12].Tt.  M|
0000d8c0  4f 56 20 20 20 20 20 52  37 2c 52 37 2c 41 53 52  |OV     R7,R7,ASR|
0000d8d0  20 23 38 0d 54 7e 19 20  20 4c 44 4d 49 41 20 20  | #8.T~.  LDMIA  |
0000d8e0  20 52 31 34 2c 7b 52 31  2d 52 33 7d 0d 54 88 16  | R14,{R1-R3}.T..|
0000d8f0  20 20 4d 55 4c 20 20 20  20 20 52 31 2c 52 37 2c  |  MUL     R1,R7,|
0000d900  52 31 0d 54 92 16 20 20  4d 55 4c 20 20 20 20 20  |R1.T..  MUL     |
0000d910  52 32 2c 52 37 2c 52 32  0d 54 9c 26 20 20 4d 55  |R2,R7,R2.T.&  MU|
0000d920  4c 20 20 20 20 20 52 33  2c 52 37 2c 52 33 20 20  |L     R3,R7,R3  |
0000d930  20 20 20 20 5c 20 63 6f  6c 6f 75 72 20 31 0d 54  |    \ colour 1.T|
0000d940  a6 05 20 0d 54 b0 16 20  20 41 44 52 20 20 20 20  |.. .T..  ADR    |
0000d950  20 52 31 34 2c 63 6f 6c  32 0d 54 ba 1a 20 20 4c  | R14,col2.T..  L|
0000d960  44 52 20 20 20 20 20 52  37 2c 5b 52 31 34 2c 23  |DR     R7,[R14,#|
0000d970  31 32 5d 0d 54 c4 16 20  20 4d 55 4c 20 20 20 20  |12].T..  MUL    |
0000d980  20 52 37 2c 52 38 2c 52  37 0d 54 ce 1a 20 20 4d  | R7,R8,R7.T..  M|
0000d990  4f 56 20 20 20 20 20 52  37 2c 52 37 2c 41 53 52  |OV     R7,R7,ASR|
0000d9a0  20 23 38 0d 54 d8 1a 20  20 53 54 52 20 20 20 20  | #8.T..  STR    |
0000d9b0  20 52 37 2c 5b 52 31 34  2c 23 31 32 5d 0d 54 e2  | R7,[R14,#12].T.|
0000d9c0  1a 20 20 4d 4f 56 20 20  20 20 20 52 37 2c 52 37  |.  MOV     R7,R7|
0000d9d0  2c 41 53 52 20 23 38 0d  54 ec 19 20 20 4c 44 4d  |,ASR #8.T..  LDM|
0000d9e0  49 41 20 20 20 52 31 34  2c 7b 52 34 2d 52 36 7d  |IA   R14,{R4-R6}|
0000d9f0  0d 54 f6 16 20 20 4d 55  4c 20 20 20 20 20 52 34  |.T..  MUL     R4|
0000da00  2c 52 37 2c 52 34 0d 55  00 16 20 20 4d 55 4c 20  |,R7,R4.U..  MUL |
0000da10  20 20 20 20 52 35 2c 52  37 2c 52 35 0d 55 0a 26  |    R5,R7,R5.U.&|
0000da20  20 20 4d 55 4c 20 20 20  20 20 52 36 2c 52 37 2c  |  MUL     R6,R7,|
0000da30  52 36 20 20 20 20 20 20  5c 20 63 6f 6c 6f 75 72  |R6      \ colour|
0000da40  20 32 0d 55 14 04 0d 55  1e 17 20 20 41 44 52 20  | 2.U...U..  ADR |
0000da50  20 20 20 20 52 31 32 2c  63 63 74 61 62 0d 55 28  |    R12,cctab.U(|
0000da60  14 20 20 4d 4f 56 20 20  20 20 20 52 31 31 2c 23  |.  MOV     R11,#|
0000da70  35 0d 55 32 13 20 20 4d  4f 56 20 20 20 20 20 52  |5.U2.  MOV     R|
0000da80  38 2c 23 30 0d 55 3c 0e  20 20 2e 75 64 6f 75 74  |8,#0.U<.  .udout|
0000da90  65 72 0d 55 46 23 20 20  20 20 4c 44 52 20 20 20  |er.UF#    LDR   |
0000daa0  20 20 52 31 30 2c 5b 52  31 32 2c 52 38 2c 4c 53  |  R10,[R12,R8,LS|
0000dab0  4c 20 23 32 5d 0d 55 50  15 20 20 20 20 43 4d 50  |L #2].UP.    CMP|
0000dac0  20 20 20 20 20 52 38 2c  23 30 0d 55 5a 15 20 20  |     R8,#0.UZ.  |
0000dad0  20 20 4d 4f 56 4e 45 20  20 20 52 37 2c 23 30 0d  |  MOVNE   R7,#0.|
0000dae0  55 64 12 20 20 20 20 ec  51 20 20 20 52 37 2c 23  |Ud.    .Q   R7,#|
0000daf0  31 0d 55 6e 10 20 20 20  20 2e 75 64 69 6e 6e 65  |1.Un.    .udinne|
0000db00  72 0d 55 78 24 20 20 20  20 20 20 4c 44 52 20 20  |r.Ux$      LDR  |
0000db10  20 20 20 52 39 2c 5b 52  31 32 2c 52 37 2c 4c 53  |   R9,[R12,R7,LS|
0000db20  4c 20 23 32 5d 0d 55 82  04 0d 55 8c 28 20 20 20  |L #2].U...U.(   |
0000db30  20 20 20 53 57 49 20 20  20 20 20 26 31 30 30 2b  |   SWI     &100+|
0000db40  31 39 20 20 20 20 20 20  20 20 5c 20 ef 20 31 39  |19        \ . 19|
0000db50  2c 0d 55 96 04 0d 55 a0  18 20 20 20 20 20 20 4d  |,.U...U..      M|
0000db60  4f 56 20 20 20 20 20 52  30 2c 52 31 31 0d 55 aa  |OV     R0,R11.U.|
0000db70  25 20 20 20 20 20 20 53  57 49 20 20 20 20 20 22  |%      SWI     "|
0000db80  4f 53 5f 57 72 69 74 65  43 22 20 20 20 20 5c 20  |OS_WriteC"    \ |
0000db90  6e 2c 0d 55 b4 04 0d 55  be 26 20 20 20 20 20 20  |n,.U...U.&      |
0000dba0  53 57 49 20 20 20 20 20  26 31 30 30 2b 31 36 20  |SWI     &100+16 |
0000dbb0  20 20 20 20 20 20 20 5c  20 31 36 2c 0d 55 c8 04  |       \ 16,.U..|
0000dbc0  0d 55 d2 1a 20 20 20 20  20 20 4d 55 4c 20 20 20  |.U..      MUL   |
0000dbd0  20 20 52 30 2c 52 31 2c  52 39 0d 55 dc 1e 20 20  |  R0,R1,R9.U..  |
0000dbe0  20 20 20 20 4d 4c 41 20  20 20 20 20 52 30 2c 52  |    MLA     R0,R|
0000dbf0  34 2c 52 31 30 2c 52 30  0d 55 e6 1f 20 20 20 20  |4,R10,R0.U..    |
0000dc00  20 20 4d 4f 56 20 20 20  20 20 52 30 2c 52 30 2c  |  MOV     R0,R0,|
0000dc10  41 53 52 20 23 31 36 0d  55 f0 27 20 20 20 20 20  |ASR #16.U.'     |
0000dc20  20 53 57 49 20 20 20 20  20 22 4f 53 5f 57 72 69  | SWI     "OS_Wri|
0000dc30  74 65 43 22 20 20 20 20  5c 20 72 65 64 2c 0d 55  |teC"    \ red,.U|
0000dc40  fa 04 0d 56 04 1a 20 20  20 20 20 20 4d 55 4c 20  |...V..      MUL |
0000dc50  20 20 20 20 52 30 2c 52  32 2c 52 39 0d 56 0e 1e  |    R0,R2,R9.V..|
0000dc60  20 20 20 20 20 20 4d 4c  41 20 20 20 20 20 52 30  |      MLA     R0|
0000dc70  2c 52 35 2c 52 31 30 2c  52 30 0d 56 18 1f 20 20  |,R5,R10,R0.V..  |
0000dc80  20 20 20 20 4d 4f 56 20  20 20 20 20 52 30 2c 52  |    MOV     R0,R|
0000dc90  30 2c 41 53 52 20 23 31  36 0d 56 22 29 20 20 20  |0,ASR #16.V")   |
0000dca0  20 20 20 53 57 49 20 20  20 20 20 22 4f 53 5f 57  |   SWI     "OS_W|
0000dcb0  72 69 74 65 43 22 20 20  20 20 5c 20 67 72 65 65  |riteC"    \ gree|
0000dcc0  6e 2c 0d 56 2c 04 0d 56  36 1a 20 20 20 20 20 20  |n,.V,..V6.      |
0000dcd0  4d 55 4c 20 20 20 20 20  52 30 2c 52 33 2c 52 39  |MUL     R0,R3,R9|
0000dce0  0d 56 40 1e 20 20 20 20  20 20 4d 4c 41 20 20 20  |.V@.      MLA   |
0000dcf0  20 20 52 30 2c 52 36 2c  52 31 30 2c 52 30 0d 56  |  R0,R6,R10,R0.V|
0000dd00  4a 1f 20 20 20 20 20 20  4d 4f 56 20 20 20 20 20  |J.      MOV     |
0000dd10  52 30 2c 52 30 2c 41 53  52 20 23 31 36 0d 56 54  |R0,R0,ASR #16.VT|
0000dd20  27 20 20 20 20 20 20 53  57 49 20 20 20 20 20 22  |'      SWI     "|
0000dd30  4f 53 5f 57 72 69 74 65  43 22 20 20 20 20 5c 20  |OS_WriteC"    \ |
0000dd40  62 6c 75 65 0d 56 5e 04  0d 56 68 1c 20 20 20 20  |blue.V^..Vh.    |
0000dd50  20 20 41 44 44 20 20 20  20 20 52 31 31 2c 52 31  |  ADD     R11,R1|
0000dd60  31 2c 23 31 0d 56 72 1a  20 20 20 20 20 20 41 44  |1,#1.Vr.      AD|
0000dd70  44 20 20 20 20 20 52 37  2c 52 37 2c 23 31 0d 56  |D     R7,R7,#1.V|
0000dd80  7c 17 20 20 20 20 20 20  43 4d 50 20 20 20 20 20  ||.      CMP     |
0000dd90  52 37 2c 23 33 0d 56 86  19 20 20 20 20 20 20 42  |R7,#3.V..      B|
0000dda0  4c 54 20 20 20 20 20 75  64 69 6e 6e 65 72 0d 56  |LT     udinner.V|
0000ddb0  90 18 20 20 20 20 41 44  44 20 20 20 20 20 52 38  |..    ADD     R8|
0000ddc0  2c 52 38 2c 23 31 0d 56  9a 15 20 20 20 20 43 4d  |,R8,#1.V..    CM|
0000ddd0  50 20 20 20 20 20 52 38  2c 23 33 0d 56 a4 17 20  |P     R8,#3.V.. |
0000dde0  20 20 20 42 4c 54 20 20  20 20 20 75 64 6f 75 74  |   BLT     udout|
0000ddf0  65 72 0d 56 ae 04 0d 56  b8 1f 20 20 4c 44 4d 46  |er.V...V..  LDMF|
0000de00  44 20 20 20 52 31 33 21  2c 7b 52 30 2d 52 31 32  |D   R13!,{R0-R12|
0000de10  2c 50 43 7d 5e 0d 56 c2  04 0d 56 cc 16 20 20 2e  |,PC}^.V...V..  .|
0000de20  70 6c 6f 74 73 63 72 65  65 6e 69 6e 64 66 73 0d  |plotscreenindfs.|
0000de30  56 d6 1c 20 20 45 51 55  44 20 20 20 20 70 6c 6f  |V..  EQUD    plo|
0000de40  74 73 63 72 65 65 6e 62  61 73 65 0d 56 e0 04 0d  |tscreenbase.V...|
0000de50  56 ea 0e 20 20 2e 63 6f  6c 66 61 64 65 0d 56 f4  |V..  .colfade.V.|
0000de60  2c 20 20 45 51 55 44 20  20 20 20 32 35 36 20 20  |,  EQUD    256  |
0000de70  20 20 20 20 20 20 20 5c  20 72 61 74 65 20 6f 66  |       \ rate of|
0000de80  20 66 61 64 65 2a 32 35  36 0d 56 fe 04 0d 57 08  | fade*256.V...W.|
0000de90  0b 20 20 2e 63 6f 6c 31  0d 57 12 1f 20 20 45 51  |.  .col1.W..  EQ|
0000dea0  55 44 20 20 20 20 30 20  20 20 20 20 20 20 20 20  |UD    0         |
0000deb0  20 20 5c 20 72 65 64 0d  57 1c 21 20 20 45 51 55  |  \ red.W.!  EQU|
0000dec0  44 20 20 20 20 30 20 20  20 20 20 20 20 20 20 20  |D    0          |
0000ded0  20 5c 20 67 72 65 65 6e  0d 57 26 20 20 20 45 51  | \ green.W&   EQ|
0000dee0  55 44 20 20 20 20 30 20  20 20 20 20 20 20 20 20  |UD    0         |
0000def0  20 20 5c 20 62 6c 75 65  0d 57 30 26 20 20 45 51  |  \ blue.W0&  EQ|
0000df00  55 44 20 20 20 20 30 20  20 20 20 20 20 20 20 20  |UD    0         |
0000df10  20 20 5c 20 62 72 69 67  68 74 6e 65 73 73 0d 57  |  \ brightness.W|
0000df20  3a 04 0d 57 44 0b 20 20  2e 63 6f 6c 32 0d 57 4e  |:..WD.  .col2.WN|
0000df30  1f 20 20 45 51 55 44 20  20 20 20 30 20 20 20 20  |.  EQUD    0    |
0000df40  20 20 20 20 20 20 20 5c  20 72 65 64 0d 57 58 21  |       \ red.WX!|
0000df50  20 20 45 51 55 44 20 20  20 20 30 20 20 20 20 20  |  EQUD    0     |
0000df60  20 20 20 20 20 20 5c 20  67 72 65 65 6e 0d 57 62  |      \ green.Wb|
0000df70  20 20 20 45 51 55 44 20  20 20 20 30 20 20 20 20  |   EQUD    0    |
0000df80  20 20 20 20 20 20 20 5c  20 62 6c 75 65 0d 57 6c  |       \ blue.Wl|
0000df90  26 20 20 45 51 55 44 20  20 20 20 30 20 20 20 20  |&  EQUD    0    |
0000dfa0  20 20 20 20 20 20 20 5c  20 62 72 69 67 68 74 6e  |       \ brightn|
0000dfb0  65 73 73 0d 57 76 04 0d  57 80 2c 20 20 5c 20 64  |ess.Wv..W.,  \ d|
0000dfc0  61 6e 63 69 6e 67 20 61  6e 64 20 6c 69 67 68 74  |ancing and light|
0000dfd0  69 6e 67 20 63 6f 6e 74  72 6f 6c 20 72 6f 75 74  |ing control rout|
0000dfe0  69 6e 65 0d 57 8a 0e 20  20 2e 63 6f 6e 74 72 6f  |ine.W..  .contro|
0000dff0  6c 0d 57 94 1f 20 20 53  54 4d 46 44 20 20 20 52  |l.W..  STMFD   R|
0000e000  31 33 21 2c 7b 52 30 2d  52 31 32 2c 52 31 34 7d  |13!,{R0-R12,R14}|
0000e010  0d 57 9e 04 0d 57 a8 17  20 20 4c 44 52 20 20 20  |.W...W..  LDR   |
0000e020  20 20 52 32 2c 6d 73 74  6f 72 65 0d 57 b2 16 20  |  R2,mstore.W.. |
0000e030  20 41 44 44 20 20 20 20  20 52 32 2c 52 32 2c 23  | ADD     R2,R2,#|
0000e040  31 0d 57 bc 17 20 20 53  54 52 20 20 20 20 20 52  |1.W..  STR     R|
0000e050  32 2c 6d 73 74 6f 72 65  0d 57 c6 04 0d 57 d0 17  |2,mstore.W...W..|
0000e060  20 20 4c 44 52 20 20 20  20 20 52 33 2c 6e 73 74  |  LDR     R3,nst|
0000e070  6f 72 65 0d 57 da 1f 20  20 53 57 49 20 20 20 20  |ore.W..  SWI    |
0000e080  20 22 54 72 61 63 6b 65  72 5f 52 65 61 64 50 6f  | "Tracker_ReadPo|
0000e090  73 22 0d 57 e4 26 20 20  53 54 52 20 20 20 20 20  |s".W.&  STR     |
0000e0a0  52 31 2c 6e 73 74 6f 72  65 20 20 20 5c 20 52 30  |R1,nstore   \ R0|
0000e0b0  3d 4b 2c 20 52 31 3d 4e  0d 57 ee 04 0d 57 f8 14  |=K, R1=N.W...W..|
0000e0c0  20 20 43 4d 50 20 20 20  20 20 52 30 2c 23 31 34  |  CMP     R0,#14|
0000e0d0  0d 58 02 15 20 20 42 4c  45 51 20 20 20 20 74 75  |.X..  BLEQ    tu|
0000e0e0  72 6e 6f 66 66 0d 58 0c  04 0d 58 16 13 20 20 43  |rnoff.X...X..  C|
0000e0f0  4d 50 20 20 20 20 20 52  31 2c 52 33 0d 58 20 30  |MP     R1,R3.X 0|
0000e100  20 20 4c 44 4d 45 51 46  44 20 52 31 33 21 2c 7b  |  LDMEQFD R13!,{|
0000e110  52 30 2d 52 31 32 2c 50  43 7d 20 20 20 20 5c 20  |R0-R12,PC}    \ |
0000e120  6e 6f 20 6e 65 77 20 65  76 65 6e 74 0d 58 2a 04  |no new event.X*.|
0000e130  0d 58 34 17 20 20 53 54  52 20 20 20 20 20 52 30  |.X4.  STR     R0|
0000e140  2c 6b 73 74 6f 72 65 0d  58 3e 04 0d 58 48 13 20  |,kstore.X>..XH. |
0000e150  20 4d 4f 56 20 20 20 20  20 52 32 2c 23 30 0d 58  | MOV     R2,#0.X|
0000e160  52 17 20 20 53 54 52 20  20 20 20 20 52 32 2c 6d  |R.  STR     R2,m|
0000e170  73 74 6f 72 65 0d 58 5c  04 0d 58 66 13 20 20 43  |store.X\..Xf.  C|
0000e180  4d 50 20 20 20 20 20 52  30 2c 23 31 0d 58 70 13  |MP     R0,#1.Xp.|
0000e190  20 20 43 4d 50 45 51 20  20 20 52 31 2c 23 30 0d  |  CMPEQ   R1,#0.|
0000e1a0  58 7a 15 20 20 41 44 52  45 51 20 20 20 52 32 2c  |Xz.  ADREQ   R2,|
0000e1b0  63 6f 6c 31 0d 58 84 15  20 20 42 4c 45 51 20 20  |col1.X..  BLEQ  |
0000e1c0  20 20 64 69 6d 67 6c 6f  77 0d 58 8e 04 0d 58 98  |  dimglow.X...X.|
0000e1d0  13 20 20 43 4d 50 20 20  20 20 20 52 30 2c 23 31  |.  CMP     R0,#1|
0000e1e0  0d 58 a2 14 20 20 43 4d  50 45 51 20 20 20 52 31  |.X..  CMPEQ   R1|
0000e1f0  2c 23 35 36 0d 58 ac 12  20 20 ec 51 20 20 20 52  |,#56.X..  .Q   R|
0000e200  32 2c 23 32 34 30 0d 58  b6 18 20 20 53 54 52 45  |2,#240.X..  STRE|
0000e210  51 20 20 20 52 32 2c 63  6f 6c 66 61 64 65 0d 58  |Q   R2,colfade.X|
0000e220  c0 04 0d 58 ca 13 20 20  43 4d 50 20 20 20 20 20  |...X..  CMP     |
0000e230  52 30 2c 23 30 0d 58 d4  12 20 20 ec 51 20 20 20  |R0,#0.X..  .Q   |
0000e240  52 32 2c 23 32 35 36 0d  58 de 18 20 20 53 54 52  |R2,#256.X..  STR|
0000e250  45 51 20 20 20 52 32 2c  63 6f 6c 66 61 64 65 0d  |EQ   R2,colfade.|
0000e260  58 e8 04 0d 58 f2 14 20  20 43 4d 50 20 20 20 20  |X...X..  CMP    |
0000e270  20 52 30 2c 23 32 30 0d  58 fc 12 20 20 ec 51 20  | R0,#20.X..  .Q |
0000e280  20 20 52 32 2c 23 32 35  33 0d 59 06 18 20 20 53  |  R2,#253.Y..  S|
0000e290  54 52 45 51 20 20 20 52  32 2c 63 6f 6c 66 61 64  |TREQ   R2,colfad|
0000e2a0  65 0d 59 10 04 0d 59 1a  13 20 20 43 4d 50 20 20  |e.Y...Y..  CMP  |
0000e2b0  20 20 20 52 30 2c 23 32  0d 59 24 27 20 20 4c 44  |   R0,#2.Y$'  LD|
0000e2c0  4d 4c 54 46 44 20 52 31  33 21 2c 7b 52 30 2d 52  |MLTFD R13!,{R0-R|
0000e2d0  31 32 2c 50 43 7d 5e 20  20 20 5c 20 4b 3c 32 0d  |12,PC}^   \ K<2.|
0000e2e0  59 2e 04 0d 59 38 13 20  20 43 4d 50 20 20 20 20  |Y...Y8.  CMP    |
0000e2f0  20 52 30 2c 23 35 0d 59  42 13 20 20 43 4d 50 4e  | R0,#5.YB.  CMPN|
0000e300  45 20 20 20 52 30 2c 23  36 0d 59 4c 14 20 20 43  |E   R0,#6.YL.  C|
0000e310  4d 50 4e 45 20 20 20 52  30 2c 23 31 34 0d 59 56  |MPNE   R0,#14.YV|
0000e320  14 20 20 43 4d 50 4e 45  20 20 20 52 30 2c 23 31  |.  CMPNE   R0,#1|
0000e330  35 0d 59 60 14 20 20 43  4d 50 4e 45 20 20 20 52  |5.Y`.  CMPNE   R|
0000e340  30 2c 23 31 38 0d 59 6a  14 20 20 43 4d 50 4e 45  |0,#18.Yj.  CMPNE|
0000e350  20 20 20 52 30 2c 23 31  39 0d 59 74 14 20 20 54  |   R0,#19.Yt.  T|
0000e360  53 54 45 51 20 20 20 52  31 2c 23 31 35 0d 59 7e  |STEQ   R1,#15.Y~|
0000e370  16 20 20 41 44 52 45 51  20 20 20 52 32 2c 73 73  |.  ADREQ   R2,ss|
0000e380  65 71 32 0d 59 88 17 20  20 53 54 52 45 51 20 20  |eq2.Y..  STREQ  |
0000e390  20 52 32 2c 63 75 72 73  65 71 0d 59 92 10 20 20  | R2,curseq.Y..  |
0000e3a0  ec 51 20 20 20 52 32 2c  23 33 0d 59 9c 2f 20 20  |.Q   R2,#3.Y./  |
0000e3b0  53 54 52 45 51 20 20 20  52 32 2c 73 74 61 72 6f  |STREQ   R2,staro|
0000e3c0  66 66 73 65 74 20 20 20  20 20 20 5c 20 63 69 72  |ffset      \ cir|
0000e3d0  63 6c 65 20 73 74 61 72  73 0d 59 a6 04 0d 59 b0  |cle stars.Y...Y.|
0000e3e0  13 20 20 43 4d 50 20 20  20 20 20 52 30 2c 23 37  |.  CMP     R0,#7|
0000e3f0  0d 59 ba 13 20 20 43 4d  50 4e 45 20 20 20 52 30  |.Y..  CMPNE   R0|
0000e400  2c 23 38 0d 59 c4 14 20  20 43 4d 50 4e 45 20 20  |,#8.Y..  CMPNE  |
0000e410  20 52 30 2c 23 31 36 0d  59 ce 14 20 20 43 4d 50  | R0,#16.Y..  CMP|
0000e420  4e 45 20 20 20 52 30 2c  23 31 37 0d 59 d8 14 20  |NE   R0,#17.Y.. |
0000e430  20 54 53 54 45 51 20 20  20 52 31 2c 23 31 35 0d  | TSTEQ   R1,#15.|
0000e440  59 e2 16 20 20 41 44 52  45 51 20 20 20 52 32 2c  |Y..  ADREQ   R2,|
0000e450  73 73 65 71 31 0d 59 ec  17 20 20 53 54 52 45 51  |sseq1.Y..  STREQ|
0000e460  20 20 20 52 32 2c 63 75  72 73 65 71 0d 59 f6 10  |   R2,curseq.Y..|
0000e470  20 20 ec 51 20 20 20 52  32 2c 23 33 0d 5a 00 2e  |  .Q   R2,#3.Z..|
0000e480  20 20 53 54 52 45 51 20  20 20 52 32 2c 73 74 61  |  STREQ   R2,sta|
0000e490  72 6f 66 66 73 65 74 20  20 20 20 20 5c 20 62 6f  |roffset     \ bo|
0000e4a0  75 6e 63 79 20 73 74 61  72 73 0d 5a 0a 04 0d 5a  |uncy stars.Z...Z|
0000e4b0  14 13 20 20 43 4d 50 20  20 20 20 20 52 30 2c 23  |..  CMP     R0,#|
0000e4c0  30 0d 5a 1e 13 20 20 43  4d 50 4e 45 20 20 20 52  |0.Z..  CMPNE   R|
0000e4d0  30 2c 23 39 0d 5a 28 14  20 20 43 4d 50 4e 45 20  |0,#9.Z(.  CMPNE |
0000e4e0  20 20 52 30 2c 23 32 30  0d 5a 32 14 20 20 54 53  |  R0,#20.Z2.  TS|
0000e4f0  54 45 51 20 20 20 52 31  2c 23 31 35 0d 5a 3c 10  |TEQ   R1,#15.Z<.|
0000e500  20 20 ec 51 20 20 20 52  32 2c 23 30 0d 5a 46 2c  |  .Q   R2,#0.ZF,|
0000e510  20 20 53 54 52 45 51 20  20 20 52 32 2c 63 75 72  |  STREQ   R2,cur|
0000e520  73 65 71 20 20 20 20 20  20 20 20 20 5c 20 73 74  |seq         \ st|
0000e530  61 74 69 6f 6e 61 72 79  0d 5a 50 04 0d 5a 5a 14  |ationary.ZP..ZZ.|
0000e540  20 20 43 4d 50 20 20 20  20 20 52 30 2c 23 32 30  |  CMP     R0,#20|
0000e550  0d 5a 64 28 20 20 4c 44  4d 45 51 46 44 20 52 31  |.Zd(  LDMEQFD R1|
0000e560  33 21 2c 7b 52 30 2d 52  31 32 2c 50 43 7d 5e 20  |3!,{R0-R12,PC}^ |
0000e570  20 20 5c 20 4b 3d 32 30  0d 5a 6e 04 0d 5a 78 14  |  \ K=20.Zn..Zx.|
0000e580  20 20 43 4d 50 20 20 20  20 20 52 30 2c 23 31 34  |  CMP     R0,#14|
0000e590  0d 5a 82 16 20 20 42 4e  45 20 20 20 20 20 6e 6f  |.Z..  BNE     no|
0000e5a0  73 74 72 6f 62 65 0d 5a  8c 19 20 20 20 20 4c 44  |strobe.Z..    LD|
0000e5b0  52 20 20 20 20 20 52 36  2c 6d 73 74 6f 72 65 0d  |R     R6,mstore.|
0000e5c0  5a 96 15 20 20 20 20 4d  4f 56 20 20 20 20 20 52  |Z..    MOV     R|
0000e5d0  33 2c 23 30 0d 5a a0 17  20 20 20 20 41 44 52 20  |3,#0.Z..    ADR |
0000e5e0  20 20 20 20 52 32 2c 63  6f 6c 31 0d 5a aa 19 20  |    R2,col1.Z.. |
0000e5f0  20 20 20 42 4c 20 20 20  20 20 20 6e 65 77 63 6f  |   BL      newco|
0000e600  6c 6f 75 72 0d 5a b4 15  20 20 20 20 43 4d 50 20  |lour.Z..    CMP |
0000e610  20 20 20 20 52 36 2c 23  30 0d 5a be 15 20 20 20  |    R6,#0.Z..   |
0000e620  20 42 4c 45 51 20 20 20  20 66 6c 61 73 68 0d 5a  | BLEQ    flash.Z|
0000e630  c8 17 20 20 20 20 41 44  52 20 20 20 20 20 52 32  |..    ADR     R2|
0000e640  2c 63 6f 6c 32 0d 5a d2  19 20 20 20 20 42 4c 20  |,col2.Z..    BL |
0000e650  20 20 20 20 20 6e 65 77  63 6f 6c 6f 75 72 0d 5a  |     newcolour.Z|
0000e660  dc 15 20 20 20 20 43 4d  50 20 20 20 20 20 52 36  |..    CMP     R6|
0000e670  2c 23 30 0d 5a e6 15 20  20 20 20 42 4c 45 51 20  |,#0.Z..    BLEQ |
0000e680  20 20 20 66 6c 61 73 68  0d 5a f0 16 20 20 20 20  |   flash.Z..    |
0000e690  42 20 20 20 20 20 20 20  73 74 72 6f 62 65 0d 5a  |B       strobe.Z|
0000e6a0  fa 0f 20 20 2e 6e 6f 73  74 72 6f 62 65 0d 5b 04  |..  .nostrobe.[.|
0000e6b0  05 20 0d 5b 0e 14 20 20  80 20 20 20 20 20 52 32  |. .[..  .     R2|
0000e6c0  2c 52 31 2c 23 33 0d 5b  18 13 20 20 43 4d 50 20  |,R1,#3.[..  CMP |
0000e6d0  20 20 20 20 52 32 2c 23  30 0d 5b 22 15 20 20 41  |    R2,#0.[".  A|
0000e6e0  44 52 45 51 20 20 20 52  32 2c 63 6f 6c 31 0d 5b  |DREQ   R2,col1.[|
0000e6f0  2c 18 20 20 4c 44 52 20  20 20 20 20 52 33 2c 63  |,.  LDR     R3,c|
0000e700  75 72 63 6f 6c 31 0d 5b  36 17 20 20 42 4c 45 51  |urcol1.[6.  BLEQ|
0000e710  20 20 20 20 6e 65 77 63  6f 6c 6f 75 72 0d 5b 40  |    newcolour.[@|
0000e720  13 20 20 42 4c 45 51 20  20 20 20 66 6c 61 73 68  |.  BLEQ    flash|
0000e730  0d 5b 4a 04 0d 5b 54 14  20 20 80 20 20 20 20 20  |.[J..[T.  .     |
0000e740  52 32 2c 52 31 2c 23 33  0d 5b 5e 13 20 20 43 4d  |R2,R1,#3.[^.  CM|
0000e750  50 20 20 20 20 20 52 32  2c 23 32 0d 5b 68 14 20  |P     R2,#2.[h. |
0000e760  20 80 4e 45 20 20 20 52  32 2c 52 31 2c 23 37 0d  | .NE   R2,R1,#7.|
0000e770  5b 72 13 20 20 43 4d 50  4e 45 20 20 20 52 32 2c  |[r.  CMPNE   R2,|
0000e780  23 30 0d 5b 7c 15 20 20  41 44 52 45 51 20 20 20  |#0.[|.  ADREQ   |
0000e790  52 32 2c 63 6f 6c 32 0d  5b 86 18 20 20 4c 44 52  |R2,col2.[..  LDR|
0000e7a0  20 20 20 20 20 52 33 2c  63 75 72 63 6f 6c 32 0d  |     R3,curcol2.|
0000e7b0  5b 90 17 20 20 42 4c 45  51 20 20 20 20 6e 65 77  |[..  BLEQ    new|
0000e7c0  63 6f 6c 6f 75 72 0d 5b  9a 13 20 20 42 4c 45 51  |colour.[..  BLEQ|
0000e7d0  20 20 20 20 66 6c 61 73  68 0d 5b a4 04 0d 5b ae  |    flash.[...[.|
0000e7e0  0d 20 20 2e 73 74 72 6f  62 65 0d 5b b8 04 0d 5b  |.  .strobe.[...[|
0000e7f0  c2 14 20 20 43 4d 50 20  20 20 20 20 52 30 2c 23  |..  CMP     R0,#|
0000e800  31 31 0d 5b cc 14 20 20  43 4d 50 4e 45 20 20 20  |11.[..  CMPNE   |
0000e810  52 30 2c 23 31 33 0d 5b  d6 16 20 20 42 4e 45 20  |R0,#13.[..  BNE |
0000e820  20 20 20 20 6e 6f 72 65  70 65 61 74 0d 5b e0 16  |    norepeat.[..|
0000e830  20 20 41 44 44 20 20 20  20 20 52 32 2c 52 31 2c  |  ADD     R2,R1,|
0000e840  23 31 0d 5b ea 14 20 20  54 53 54 20 20 20 20 20  |#1.[..  TST     |
0000e850  52 32 2c 23 31 35 0d 5b  f4 16 20 20 42 4e 45 20  |R2,#15.[..  BNE |
0000e860  20 20 20 20 6e 6f 72 65  70 65 61 74 0d 5b fe 1a  |    norepeat.[..|
0000e870  20 20 4d 4f 56 20 20 20  20 20 52 32 2c 52 32 2c  |  MOV     R2,R2,|
0000e880  41 53 52 20 23 34 0d 5c  08 14 20 20 80 20 20 20  |ASR #4.\..  .   |
0000e890  20 20 52 32 2c 52 32 2c  23 33 0d 5c 12 1c 20 20  |  R2,R2,#3.\..  |
0000e8a0  41 44 52 20 20 20 20 20  52 33 2c 63 75 72 72 65  |ADR     R3,curre|
0000e8b0  70 71 63 69 6e 64 0d 5c  1c 15 20 20 4c 44 52 20  |pqcind.\..  LDR |
0000e8c0  20 20 20 20 52 34 2c 5b  52 33 5d 0d 5c 26 18 20  |    R4,[R3].\&. |
0000e8d0  20 53 54 52 20 20 20 20  20 52 32 2c 5b 52 33 2c  | STR     R2,[R3,|
0000e8e0  52 34 5d 0d 5c 30 30 20  20 2e 6e 6f 72 65 70 65  |R4].\00  .norepe|
0000e8f0  61 74 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |at              |
0000e900  20 20 5c 20 6d 75 6c 74  69 70 6c 65 20 69 6d 61  |  \ multiple ima|
0000e910  67 65 73 0d 5c 3a 04 0d  5c 44 14 20 20 43 4d 50  |ges.\:..\D.  CMP|
0000e920  20 20 20 20 20 52 30 2c  23 31 32 0d 5c 4e 14 20  |     R0,#12.\N. |
0000e930  20 43 4d 50 4e 45 20 20  20 52 30 2c 23 31 33 0d  | CMPNE   R0,#13.|
0000e940  5c 58 13 20 20 4d 4f 56  4e 45 20 20 20 52 32 2c  |\X.  MOVNE   R2,|
0000e950  23 30 0d 5c 62 10 20 20  ec 51 20 20 20 52 32 2c  |#0.\b.  .Q   R2,|
0000e960  23 31 0d 5c 6c 19 20 20  53 54 52 20 20 20 20 20  |#1.\l.  STR     |
0000e970  52 32 2c 6c 69 6e 65 74  79 70 65 0d 5c 76 04 0d  |R2,linetype.\v..|
0000e980  5c 80 1f 20 20 4c 44 4d  46 44 20 20 20 52 31 33  |\..  LDMFD   R13|
0000e990  21 2c 7b 52 30 2d 52 31  32 2c 50 43 7d 5e 0d 5c  |!,{R0-R12,PC}^.\|
0000e9a0  8a 04 0d 5c 94 12 20 20  2e 63 75 72 72 65 70 71  |...\..  .currepq|
0000e9b0  63 69 6e 64 0d 5c 9e 18  20 20 45 51 55 44 20 20  |cind.\..  EQUD  |
0000e9c0  20 20 63 75 72 72 65 70  71 2d 50 25 0d 5c a8 04  |  currepq-P%.\..|
0000e9d0  0d 5c b2 0e 20 20 2e 63  75 72 63 6f 6c 31 0d 5c  |.\..  .curcol1.\|
0000e9e0  bc 0f 20 20 45 51 55 44  20 20 20 20 30 0d 5c c6  |..  EQUD    0.\.|
0000e9f0  04 0d 5c d0 0e 20 20 2e  63 75 72 63 6f 6c 32 0d  |..\..  .curcol2.|
0000ea00  5c da 0f 20 20 45 51 55  44 20 20 20 20 31 0d 5c  |\..  EQUD    1.\|
0000ea10  e4 04 0d 5c ee 0c 20 20  2e 73 73 65 71 31 0d 5c  |...\..  .sseq1.\|
0000ea20  f8 31 20 20 45 51 55 44  20 20 20 20 a8 28 33 32  |.1  EQUD    .(32|
0000ea30  2a 9b 28 30 2a af 2f 31  32 29 29 2b a8 28 32 34  |*.(0*./12))+.(24|
0000ea40  2a b5 28 30 2a af 2f 31  32 29 29 2a 33 32 30 0d  |*.(0*./12))*320.|
0000ea50  5d 02 31 20 20 45 51 55  44 20 20 20 20 a8 28 33  |].1  EQUD    .(3|
0000ea60  32 2a 9b 28 31 2a af 2f  31 32 29 29 2b a8 28 32  |2*.(1*./12))+.(2|
0000ea70  34 2a b5 28 31 2a af 2f  31 32 29 29 2a 33 32 30  |4*.(1*./12))*320|
0000ea80  0d 5d 0c 31 20 20 45 51  55 44 20 20 20 20 a8 28  |.].1  EQUD    .(|
0000ea90  33 32 2a 9b 28 32 2a af  2f 31 32 29 29 2b a8 28  |32*.(2*./12))+.(|
0000eaa0  32 34 2a b5 28 32 2a af  2f 31 32 29 29 2a 33 32  |24*.(2*./12))*32|
0000eab0  30 0d 5d 16 31 20 20 45  51 55 44 20 20 20 20 a8  |0.].1  EQUD    .|
0000eac0  28 33 32 2a 9b 28 33 2a  af 2f 31 32 29 29 2b a8  |(32*.(3*./12))+.|
0000ead0  28 32 34 2a b5 28 33 2a  af 2f 31 32 29 29 2a 33  |(24*.(3*./12))*3|
0000eae0  32 30 0d 5d 20 31 20 20  45 51 55 44 20 20 20 20  |20.] 1  EQUD    |
0000eaf0  a8 28 33 32 2a 9b 28 34  2a af 2f 31 32 29 29 2b  |.(32*.(4*./12))+|
0000eb00  a8 28 32 34 2a b5 28 34  2a af 2f 31 32 29 29 2a  |.(24*.(4*./12))*|
0000eb10  33 32 30 0d 5d 2a 31 20  20 45 51 55 44 20 20 20  |320.]*1  EQUD   |
0000eb20  20 a8 28 33 32 2a 9b 28  35 2a af 2f 31 32 29 29  | .(32*.(5*./12))|
0000eb30  2b a8 28 32 34 2a b5 28  35 2a af 2f 31 32 29 29  |+.(24*.(5*./12))|
0000eb40  2a 33 32 30 0d 5d 34 31  20 20 45 51 55 44 20 20  |*320.]41  EQUD  |
0000eb50  20 20 a8 28 33 32 2a 9b  28 36 2a af 2f 31 32 29  |  .(32*.(6*./12)|
0000eb60  29 2b a8 28 32 34 2a b5  28 36 2a af 2f 31 32 29  |)+.(24*.(6*./12)|
0000eb70  29 2a 33 32 30 0d 5d 3e  31 20 20 45 51 55 44 20  |)*320.]>1  EQUD |
0000eb80  20 20 20 a8 28 33 32 2a  9b 28 37 2a af 2f 31 32  |   .(32*.(7*./12|
0000eb90  29 29 2b a8 28 32 34 2a  b5 28 37 2a af 2f 31 32  |))+.(24*.(7*./12|
0000eba0  29 29 2a 33 32 30 0d 5d  48 31 20 20 45 51 55 44  |))*320.]H1  EQUD|
0000ebb0  20 20 20 20 a8 28 33 32  2a 9b 28 38 2a af 2f 31  |    .(32*.(8*./1|
0000ebc0  32 29 29 2b a8 28 32 34  2a b5 28 38 2a af 2f 31  |2))+.(24*.(8*./1|
0000ebd0  32 29 29 2a 33 32 30 0d  5d 52 31 20 20 45 51 55  |2))*320.]R1  EQU|
0000ebe0  44 20 20 20 20 a8 28 33  32 2a 9b 28 39 2a af 2f  |D    .(32*.(9*./|
0000ebf0  31 32 29 29 2b a8 28 32  34 2a b5 28 39 2a af 2f  |12))+.(24*.(9*./|
0000ec00  31 32 29 29 2a 33 32 30  0d 5d 5c 33 20 20 45 51  |12))*320.]\3  EQ|
0000ec10  55 44 20 20 20 20 a8 28  33 32 2a 9b 28 31 30 2a  |UD    .(32*.(10*|
0000ec20  af 2f 31 32 29 29 2b a8  28 32 34 2a b5 28 31 30  |./12))+.(24*.(10|
0000ec30  2a af 2f 31 32 29 29 2a  33 32 30 0d 5d 66 33 20  |*./12))*320.]f3 |
0000ec40  20 45 51 55 44 20 20 20  20 a8 28 33 32 2a 9b 28  | EQUD    .(32*.(|
0000ec50  31 31 2a af 2f 31 32 29  29 2b a8 28 32 34 2a b5  |11*./12))+.(24*.|
0000ec60  28 31 31 2a af 2f 31 32  29 29 2a 33 32 30 0d 5d  |(11*./12))*320.]|
0000ec70  70 33 20 20 45 51 55 44  20 20 20 20 a8 28 33 32  |p3  EQUD    .(32|
0000ec80  2a 9b 28 31 32 2a af 2f  31 32 29 29 2b a8 28 32  |*.(12*./12))+.(2|
0000ec90  34 2a b5 28 31 32 2a af  2f 31 32 29 29 2a 33 32  |4*.(12*./12))*32|
0000eca0  30 0d 5d 7a 33 20 20 45  51 55 44 20 20 20 20 a8  |0.]z3  EQUD    .|
0000ecb0  28 33 32 2a 9b 28 31 31  2a af 2f 31 32 29 29 2b  |(32*.(11*./12))+|
0000ecc0  a8 28 32 34 2a b5 28 31  31 2a af 2f 31 32 29 29  |.(24*.(11*./12))|
0000ecd0  2a 33 32 30 0d 5d 84 33  20 20 45 51 55 44 20 20  |*320.].3  EQUD  |
0000ece0  20 20 a8 28 33 32 2a 9b  28 31 30 2a af 2f 31 32  |  .(32*.(10*./12|
0000ecf0  29 29 2b a8 28 32 34 2a  b5 28 31 30 2a af 2f 31  |))+.(24*.(10*./1|
0000ed00  32 29 29 2a 33 32 30 0d  5d 8e 31 20 20 45 51 55  |2))*320.].1  EQU|
0000ed10  44 20 20 20 20 a8 28 33  32 2a 9b 28 39 2a af 2f  |D    .(32*.(9*./|
0000ed20  31 32 29 29 2b a8 28 32  34 2a b5 28 39 2a af 2f  |12))+.(24*.(9*./|
0000ed30  31 32 29 29 2a 33 32 30  0d 5d 98 31 20 20 45 51  |12))*320.].1  EQ|
0000ed40  55 44 20 20 20 20 a8 28  33 32 2a 9b 28 38 2a af  |UD    .(32*.(8*.|
0000ed50  2f 31 32 29 29 2b a8 28  32 34 2a b5 28 38 2a af  |/12))+.(24*.(8*.|
0000ed60  2f 31 32 29 29 2a 33 32  30 0d 5d a2 31 20 20 45  |/12))*320.].1  E|
0000ed70  51 55 44 20 20 20 20 a8  28 33 32 2a 9b 28 37 2a  |QUD    .(32*.(7*|
0000ed80  af 2f 31 32 29 29 2b a8  28 32 34 2a b5 28 37 2a  |./12))+.(24*.(7*|
0000ed90  af 2f 31 32 29 29 2a 33  32 30 0d 5d ac 31 20 20  |./12))*320.].1  |
0000eda0  45 51 55 44 20 20 20 20  a8 28 33 32 2a 9b 28 36  |EQUD    .(32*.(6|
0000edb0  2a af 2f 31 32 29 29 2b  a8 28 32 34 2a b5 28 36  |*./12))+.(24*.(6|
0000edc0  2a af 2f 31 32 29 29 2a  33 32 30 0d 5d b6 31 20  |*./12))*320.].1 |
0000edd0  20 45 51 55 44 20 20 20  20 a8 28 33 32 2a 9b 28  | EQUD    .(32*.(|
0000ede0  35 2a af 2f 31 32 29 29  2b a8 28 32 34 2a b5 28  |5*./12))+.(24*.(|
0000edf0  35 2a af 2f 31 32 29 29  2a 33 32 30 0d 5d c0 31  |5*./12))*320.].1|
0000ee00  20 20 45 51 55 44 20 20  20 20 a8 28 33 32 2a 9b  |  EQUD    .(32*.|
0000ee10  28 34 2a af 2f 31 32 29  29 2b a8 28 32 34 2a b5  |(4*./12))+.(24*.|
0000ee20  28 34 2a af 2f 31 32 29  29 2a 33 32 30 0d 5d ca  |(4*./12))*320.].|
0000ee30  31 20 20 45 51 55 44 20  20 20 20 a8 28 33 32 2a  |1  EQUD    .(32*|
0000ee40  9b 28 33 2a af 2f 31 32  29 29 2b a8 28 32 34 2a  |.(3*./12))+.(24*|
0000ee50  b5 28 33 2a af 2f 31 32  29 29 2a 33 32 30 0d 5d  |.(3*./12))*320.]|
0000ee60  d4 31 20 20 45 51 55 44  20 20 20 20 a8 28 33 32  |.1  EQUD    .(32|
0000ee70  2a 9b 28 32 2a af 2f 31  32 29 29 2b a8 28 32 34  |*.(2*./12))+.(24|
0000ee80  2a b5 28 32 2a af 2f 31  32 29 29 2a 33 32 30 0d  |*.(2*./12))*320.|
0000ee90  5d de 31 20 20 45 51 55  44 20 20 20 20 a8 28 33  |].1  EQUD    .(3|
0000eea0  32 2a 9b 28 31 2a af 2f  31 32 29 29 2b a8 28 32  |2*.(1*./12))+.(2|
0000eeb0  34 2a b5 28 31 2a af 2f  31 32 29 29 2a 33 32 30  |4*.(1*./12))*320|
0000eec0  0d 5d e8 04 0d 5d f2 0c  20 20 2e 73 73 65 71 32  |.]...]..  .sseq2|
0000eed0  0d 5d fc 2f 20 20 45 51  55 44 20 20 20 20 a8 28  |.]./  EQUD    .(|
0000eee0  31 30 2a 9b 28 30 2a af  2f 36 29 29 2b a8 28 31  |10*.(0*./6))+.(1|
0000eef0  31 2a b5 28 30 2a af 2f  36 29 29 2a 33 32 30 0d  |1*.(0*./6))*320.|
0000ef00  5e 06 2f 20 20 45 51 55  44 20 20 20 20 a8 28 31  |^./  EQUD    .(1|
0000ef10  30 2a 9b 28 31 2a af 2f  36 29 29 2b a8 28 31 31  |0*.(1*./6))+.(11|
0000ef20  2a b5 28 31 2a af 2f 36  29 29 2a 33 32 30 0d 5e  |*.(1*./6))*320.^|
0000ef30  10 2f 20 20 45 51 55 44  20 20 20 20 a8 28 31 30  |./  EQUD    .(10|
0000ef40  2a 9b 28 32 2a af 2f 36  29 29 2b a8 28 31 31 2a  |*.(2*./6))+.(11*|
0000ef50  b5 28 32 2a af 2f 36 29  29 2a 33 32 30 0d 5e 1a  |.(2*./6))*320.^.|
0000ef60  2f 20 20 45 51 55 44 20  20 20 20 a8 28 31 30 2a  |/  EQUD    .(10*|
0000ef70  9b 28 33 2a af 2f 36 29  29 2b a8 28 31 31 2a b5  |.(3*./6))+.(11*.|
0000ef80  28 33 2a af 2f 36 29 29  2a 33 32 30 0d 5e 24 2f  |(3*./6))*320.^$/|
0000ef90  20 20 45 51 55 44 20 20  20 20 a8 28 31 30 2a 9b  |  EQUD    .(10*.|
0000efa0  28 34 2a af 2f 36 29 29  2b a8 28 31 31 2a b5 28  |(4*./6))+.(11*.(|
0000efb0  34 2a af 2f 36 29 29 2a  33 32 30 0d 5e 2e 2f 20  |4*./6))*320.^./ |
0000efc0  20 45 51 55 44 20 20 20  20 a8 28 31 30 2a 9b 28  | EQUD    .(10*.(|
0000efd0  35 2a af 2f 36 29 29 2b  a8 28 31 31 2a b5 28 35  |5*./6))+.(11*.(5|
0000efe0  2a af 2f 36 29 29 2a 33  32 30 0d 5e 38 2f 20 20  |*./6))*320.^8/  |
0000eff0  45 51 55 44 20 20 20 20  a8 28 31 30 2a 9b 28 36  |EQUD    .(10*.(6|
0000f000  2a af 2f 36 29 29 2b a8  28 31 31 2a b5 28 36 2a  |*./6))+.(11*.(6*|
0000f010  af 2f 36 29 29 2a 33 32  30 0d 5e 42 2f 20 20 45  |./6))*320.^B/  E|
0000f020  51 55 44 20 20 20 20 a8  28 31 30 2a 9b 28 37 2a  |QUD    .(10*.(7*|
0000f030  af 2f 36 29 29 2b a8 28  31 31 2a b5 28 37 2a af  |./6))+.(11*.(7*.|
0000f040  2f 36 29 29 2a 33 32 30  0d 5e 4c 2f 20 20 45 51  |/6))*320.^L/  EQ|
0000f050  55 44 20 20 20 20 a8 28  31 30 2a 9b 28 38 2a af  |UD    .(10*.(8*.|
0000f060  2f 36 29 29 2b a8 28 31  31 2a b5 28 38 2a af 2f  |/6))+.(11*.(8*./|
0000f070  36 29 29 2a 33 32 30 0d  5e 56 2f 20 20 45 51 55  |6))*320.^V/  EQU|
0000f080  44 20 20 20 20 a8 28 31  30 2a 9b 28 39 2a af 2f  |D    .(10*.(9*./|
0000f090  36 29 29 2b a8 28 31 31  2a b5 28 39 2a af 2f 36  |6))+.(11*.(9*./6|
0000f0a0  29 29 2a 33 32 30 0d 5e  60 31 20 20 45 51 55 44  |))*320.^`1  EQUD|
0000f0b0  20 20 20 20 a8 28 31 30  2a 9b 28 31 30 2a af 2f  |    .(10*.(10*./|
0000f0c0  36 29 29 2b a8 28 31 31  2a b5 28 31 30 2a af 2f  |6))+.(11*.(10*./|
0000f0d0  36 29 29 2a 33 32 30 0d  5e 6a 31 20 20 45 51 55  |6))*320.^j1  EQU|
0000f0e0  44 20 20 20 20 a8 28 31  30 2a 9b 28 31 31 2a af  |D    .(10*.(11*.|
0000f0f0  2f 36 29 29 2b a8 28 31  31 2a b5 28 31 31 2a af  |/6))+.(11*.(11*.|
0000f100  2f 36 29 29 2a 33 32 30  0d 5e 74 2f 20 20 45 51  |/6))*320.^t/  EQ|
0000f110  55 44 20 20 20 20 a8 28  31 30 2a 9b 28 30 2a af  |UD    .(10*.(0*.|
0000f120  2f 36 29 29 2b a8 28 31  31 2a b5 28 30 2a af 2f  |/6))+.(11*.(0*./|
0000f130  36 29 29 2a 33 32 30 0d  5e 7e 2f 20 20 45 51 55  |6))*320.^~/  EQU|
0000f140  44 20 20 20 20 a8 28 31  30 2a 9b 28 31 2a af 2f  |D    .(10*.(1*./|
0000f150  36 29 29 2b a8 28 31 31  2a b5 28 31 2a af 2f 36  |6))+.(11*.(1*./6|
0000f160  29 29 2a 33 32 30 0d 5e  88 2f 20 20 45 51 55 44  |))*320.^./  EQUD|
0000f170  20 20 20 20 a8 28 31 30  2a 9b 28 32 2a af 2f 36  |    .(10*.(2*./6|
0000f180  29 29 2b a8 28 31 31 2a  b5 28 32 2a af 2f 36 29  |))+.(11*.(2*./6)|
0000f190  29 2a 33 32 30 0d 5e 92  2f 20 20 45 51 55 44 20  |)*320.^./  EQUD |
0000f1a0  20 20 20 a8 28 31 30 2a  9b 28 33 2a af 2f 36 29  |   .(10*.(3*./6)|
0000f1b0  29 2b a8 28 31 31 2a b5  28 33 2a af 2f 36 29 29  |)+.(11*.(3*./6))|
0000f1c0  2a 33 32 30 0d 5e 9c 2f  20 20 45 51 55 44 20 20  |*320.^./  EQUD  |
0000f1d0  20 20 a8 28 31 30 2a 9b  28 34 2a af 2f 36 29 29  |  .(10*.(4*./6))|
0000f1e0  2b a8 28 31 31 2a b5 28  34 2a af 2f 36 29 29 2a  |+.(11*.(4*./6))*|
0000f1f0  33 32 30 0d 5e a6 2f 20  20 45 51 55 44 20 20 20  |320.^./  EQUD   |
0000f200  20 a8 28 31 30 2a 9b 28  35 2a af 2f 36 29 29 2b  | .(10*.(5*./6))+|
0000f210  a8 28 31 31 2a b5 28 35  2a af 2f 36 29 29 2a 33  |.(11*.(5*./6))*3|
0000f220  32 30 0d 5e b0 2f 20 20  45 51 55 44 20 20 20 20  |20.^./  EQUD    |
0000f230  a8 28 31 30 2a 9b 28 36  2a af 2f 36 29 29 2b a8  |.(10*.(6*./6))+.|
0000f240  28 31 31 2a b5 28 36 2a  af 2f 36 29 29 2a 33 32  |(11*.(6*./6))*32|
0000f250  30 0d 5e ba 2f 20 20 45  51 55 44 20 20 20 20 a8  |0.^./  EQUD    .|
0000f260  28 31 30 2a 9b 28 37 2a  af 2f 36 29 29 2b a8 28  |(10*.(7*./6))+.(|
0000f270  31 31 2a b5 28 37 2a af  2f 36 29 29 2a 33 32 30  |11*.(7*./6))*320|
0000f280  0d 5e c4 2f 20 20 45 51  55 44 20 20 20 20 a8 28  |.^./  EQUD    .(|
0000f290  31 30 2a 9b 28 38 2a af  2f 36 29 29 2b a8 28 31  |10*.(8*./6))+.(1|
0000f2a0  31 2a b5 28 38 2a af 2f  36 29 29 2a 33 32 30 0d  |1*.(8*./6))*320.|
0000f2b0  5e ce 2f 20 20 45 51 55  44 20 20 20 20 a8 28 31  |^./  EQUD    .(1|
0000f2c0  30 2a 9b 28 39 2a af 2f  36 29 29 2b a8 28 31 31  |0*.(9*./6))+.(11|
0000f2d0  2a b5 28 39 2a af 2f 36  29 29 2a 33 32 30 0d 5e  |*.(9*./6))*320.^|
0000f2e0  d8 31 20 20 45 51 55 44  20 20 20 20 a8 28 31 30  |.1  EQUD    .(10|
0000f2f0  2a 9b 28 31 30 2a af 2f  36 29 29 2b a8 28 31 31  |*.(10*./6))+.(11|
0000f300  2a b5 28 31 30 2a af 2f  36 29 29 2a 33 32 30 0d  |*.(10*./6))*320.|
0000f310  5e e2 31 20 20 45 51 55  44 20 20 20 20 a8 28 31  |^.1  EQUD    .(1|
0000f320  30 2a 9b 28 31 31 2a af  2f 36 29 29 2b a8 28 31  |0*.(11*./6))+.(1|
0000f330  31 2a b5 28 31 31 2a af  2f 36 29 29 2a 33 32 30  |1*.(11*./6))*320|
0000f340  0d 5e ec 04 0d 5e f6 11  20 20 2e 70 6c 6f 74 74  |.^...^..  .plott|
0000f350  61 62 69 6e 64 0d 5f 00  15 20 20 45 51 55 44 20  |abind._..  EQUD |
0000f360  20 20 20 70 6c 6f 74 74  61 62 0d 5f 0a 04 0d 5f  |   plottab._..._|
0000f370  14 21 20 20 5c 20 4c 6f  67 20 6c 69 6e 65 20 69  |.!  \ Log line i|
0000f380  6e 20 74 68 65 20 70 6c  6f 74 20 6c 69 73 74 0d  |n the plot list.|
0000f390  5f 1e 16 20 20 5c 20 52  30 20 70 6f 69 6e 74 73  |_..  \ R0 points|
0000f3a0  20 74 6f 20 41 0d 5f 28  1e 20 20 5c 20 52 31 20  | to A._(.  \ R1 |
0000f3b0  70 6f 69 6e 74 73 20 74  6f 20 64 69 72 65 63 74  |points to direct|
0000f3c0  69 6f 6e 0d 5f 32 13 20  20 5c 20 52 32 20 3d 20  |ion._2.  \ R2 = |
0000f3d0  6c 65 6e 67 74 68 0d 5f  3c 0e 20 20 2e 6c 6f 67  |length._<.  .log|
0000f3e0  6c 69 6e 65 0d 5f 46 1f  20 20 53 54 4d 46 44 20  |line._F.  STMFD |
0000f3f0  20 20 52 31 33 21 2c 7b  52 30 2d 52 31 32 2c 52  |  R13!,{R0-R12,R|
0000f400  31 34 7d 0d 5f 50 05 20  0d 5f 5a 1a 20 20 4c 44  |14}._P. ._Z.  LD|
0000f410  52 20 20 20 20 20 52 31  31 2c 70 6c 6f 74 74 61  |R     R11,plotta|
0000f420  62 71 0d 5f 64 1c 20 20  4c 44 52 20 20 20 20 20  |bq._d.  LDR     |
0000f430  52 31 32 2c 70 6c 6f 74  74 61 62 69 6e 64 0d 5f  |R12,plottabind._|
0000f440  6e 33 20 20 41 44 44 20  20 20 20 20 52 31 32 2c  |n3  ADD     R12,|
0000f450  52 31 32 2c 52 31 31 2c  4c 53 4c 20 23 36 20 5c  |R12,R11,LSL #6 \|
0000f460  20 67 65 74 20 70 6f 73  20 69 6e 20 74 61 62 6c  | get pos in tabl|
0000f470  65 0d 5f 78 05 20 0d 5f  82 27 20 20 4d 4f 56 20  |e._x. ._.'  MOV |
0000f480  20 20 20 20 52 33 2c 23  30 20 20 20 20 20 20 20  |    R3,#0       |
0000f490  20 20 20 20 20 20 20 5c  20 6c 69 6e 65 0d 5f 8c  |       \ line._.|
0000f4a0  24 20 20 4c 44 4d 49 41  20 20 20 52 30 2c 7b 52  |$  LDMIA   R0,{R|
0000f4b0  34 2d 52 36 7d 20 20 20  20 20 20 20 20 20 5c 20  |4-R6}         \ |
0000f4c0  41 0d 5f 96 2c 20 20 4c  44 4d 49 41 20 20 20 52  |A._.,  LDMIA   R|
0000f4d0  31 2c 7b 52 37 2d 52 39  7d 20 20 20 20 20 20 20  |1,{R7-R9}       |
0000f4e0  20 20 5c 20 64 69 72 65  63 74 69 6f 6e 0d 5f a0  |  \ direction._.|
0000f4f0  29 20 20 4d 4f 56 20 20  20 20 20 52 31 30 2c 52  |)  MOV     R10,R|
0000f500  32 20 20 20 20 20 20 20  20 20 20 20 20 20 5c 20  |2             \ |
0000f510  6c 65 6e 67 74 68 0d 5f  aa 17 20 20 4d 55 4c 20  |length._..  MUL |
0000f520  20 20 20 20 52 32 2c 52  39 2c 52 31 30 0d 5f b4  |    R2,R9,R10._.|
0000f530  2c 20 20 41 44 44 20 20  20 20 20 52 32 2c 52 36  |,  ADD     R2,R6|
0000f540  2c 52 32 2c 41 53 52 20  23 31 20 20 20 20 5c 20  |,R2,ASR #1    \ |
0000f550  61 76 65 72 61 67 65 20  7a 0d 5f be 34 20 20 53  |average z._.4  S|
0000f560  55 42 20 20 20 20 20 52  32 2c 52 32 2c 23 31 32  |UB     R2,R2,#12|
0000f570  38 30 20 20 20 20 20 20  20 20 5c 20 6d 69 6e 75  |80        \ minu|
0000f580  73 20 68 61 6c 66 20 61  20 75 6e 69 74 0d 5f c8  |s half a unit._.|
0000f590  32 20 20 53 54 4d 49 41  20 20 20 52 31 32 2c 7b  |2  STMIA   R12,{|
0000f5a0  52 32 2d 52 31 30 7d 20  20 20 20 20 20 20 5c 20  |R2-R10}       \ |
0000f5b0  73 74 6f 72 65 20 77 68  6f 6c 65 20 6c 6f 74 0d  |store whole lot.|
0000f5c0  5f d2 04 0d 5f dc 18 20  20 41 44 44 20 20 20 20  |_..._..  ADD    |
0000f5d0  20 52 31 31 2c 52 31 31  2c 23 31 0d 5f e6 35 20  | R11,R11,#1._.5 |
0000f5e0  20 53 54 52 20 20 20 20  20 52 31 31 2c 70 6c 6f  | STR     R11,plo|
0000f5f0  74 74 61 62 71 20 20 20  20 20 20 20 5c 20 73 74  |ttabq       \ st|
0000f600  6f 72 65 20 6e 65 77 20  71 75 61 6e 74 69 74 79  |ore new quantity|
0000f610  0d 5f f0 04 0d 5f fa 1f  20 20 4c 44 4d 46 44 20  |._..._..  LDMFD |
0000f620  20 20 52 31 33 21 2c 7b  52 30 2d 52 31 32 2c 50  |  R13!,{R0-R12,P|
0000f630  43 7d 5e 0d 60 04 04 0d  60 0e 28 20 20 5c 20 4c  |C}^.`...`.(  \ L|
0000f640  6f 67 20 62 75 6e 67 69  65 20 6c 69 6e 65 20 69  |og bungie line i|
0000f650  6e 20 74 68 65 20 70 6c  6f 74 20 6c 69 73 74 0d  |n the plot list.|
0000f660  60 18 16 20 20 5c 20 52  30 20 70 6f 69 6e 74 73  |`..  \ R0 points|
0000f670  20 74 6f 20 41 0d 60 22  1e 20 20 5c 20 52 31 20  | to A.`".  \ R1 |
0000f680  70 6f 69 6e 74 73 20 74  6f 20 64 69 72 65 63 74  |points to direct|
0000f690  69 6f 6e 0d 60 2c 13 20  20 5c 20 52 32 20 3d 20  |ion.`,.  \ R2 = |
0000f6a0  6c 65 6e 67 74 68 0d 60  36 14 20 20 2e 6c 6f 67  |length.`6.  .log|
0000f6b0  62 75 6e 67 69 65 6c 69  6e 65 0d 60 40 1f 20 20  |bungieline.`@.  |
0000f6c0  53 54 4d 46 44 20 20 20  52 31 33 21 2c 7b 52 30  |STMFD   R13!,{R0|
0000f6d0  2d 52 31 32 2c 52 31 34  7d 0d 60 4a 05 20 0d 60  |-R12,R14}.`J. .`|
0000f6e0  54 1a 20 20 4c 44 52 20  20 20 20 20 52 31 31 2c  |T.  LDR     R11,|
0000f6f0  70 6c 6f 74 74 61 62 71  0d 60 5e 1c 20 20 4c 44  |plottabq.`^.  LD|
0000f700  52 20 20 20 20 20 52 31  32 2c 70 6c 6f 74 74 61  |R     R12,plotta|
0000f710  62 69 6e 64 0d 60 68 33  20 20 41 44 44 20 20 20  |bind.`h3  ADD   |
0000f720  20 20 52 31 32 2c 52 31  32 2c 52 31 31 2c 4c 53  |  R12,R12,R11,LS|
0000f730  4c 20 23 36 20 5c 20 67  65 74 20 70 6f 73 20 69  |L #6 \ get pos i|
0000f740  6e 20 74 61 62 6c 65 0d  60 72 05 20 0d 60 7c 2e  |n table.`r. .`|.|
0000f750  20 20 4d 4f 56 20 20 20  20 20 52 33 2c 23 32 20  |  MOV     R3,#2 |
0000f760  20 20 20 20 20 20 20 20  20 20 20 20 20 5c 20 62  |             \ b|
0000f770  75 6e 67 69 65 20 6c 69  6e 65 0d 60 86 24 20 20  |ungie line.`.$  |
0000f780  4c 44 4d 49 41 20 20 20  52 30 2c 7b 52 34 2d 52  |LDMIA   R0,{R4-R|
0000f790  36 7d 20 20 20 20 20 20  20 20 20 5c 20 41 0d 60  |6}         \ A.`|
0000f7a0  90 2c 20 20 4c 44 4d 49  41 20 20 20 52 31 2c 7b  |.,  LDMIA   R1,{|
0000f7b0  52 37 2d 52 39 7d 20 20  20 20 20 20 20 20 20 5c  |R7-R9}         \|
0000f7c0  20 64 69 72 65 63 74 69  6f 6e 0d 60 9a 29 20 20  | direction.`.)  |
0000f7d0  4d 4f 56 20 20 20 20 20  52 31 30 2c 52 32 20 20  |MOV     R10,R2  |
0000f7e0  20 20 20 20 20 20 20 20  20 20 20 5c 20 6c 65 6e  |           \ len|
0000f7f0  67 74 68 0d 60 a4 17 20  20 4d 55 4c 20 20 20 20  |gth.`..  MUL    |
0000f800  20 52 32 2c 52 39 2c 52  31 30 0d 60 ae 2c 20 20  | R2,R9,R10.`.,  |
0000f810  41 44 44 20 20 20 20 20  52 32 2c 52 36 2c 52 32  |ADD     R2,R6,R2|
0000f820  2c 41 53 52 20 23 31 20  20 20 20 5c 20 61 76 65  |,ASR #1    \ ave|
0000f830  72 61 67 65 20 7a 0d 60  b8 32 20 20 53 54 4d 49  |rage z.`.2  STMI|
0000f840  41 20 20 20 52 31 32 2c  7b 52 32 2d 52 31 30 7d  |A   R12,{R2-R10}|
0000f850  20 20 20 20 20 20 20 5c  20 73 74 6f 72 65 20 77  |       \ store w|
0000f860  68 6f 6c 65 20 6c 6f 74  0d 60 c2 04 0d 60 cc 18  |hole lot.`...`..|
0000f870  20 20 41 44 44 20 20 20  20 20 52 31 31 2c 52 31  |  ADD     R11,R1|
0000f880  31 2c 23 31 0d 60 d6 35  20 20 53 54 52 20 20 20  |1,#1.`.5  STR   |
0000f890  20 20 52 31 31 2c 70 6c  6f 74 74 61 62 71 20 20  |  R11,plottabq  |
0000f8a0  20 20 20 20 20 5c 20 73  74 6f 72 65 20 6e 65 77  |     \ store new|
0000f8b0  20 71 75 61 6e 74 69 74  79 0d 60 e0 04 0d 60 ea  | quantity.`...`.|
0000f8c0  1f 20 20 4c 44 4d 46 44  20 20 20 52 31 33 21 2c  |.  LDMFD   R13!,|
0000f8d0  7b 52 30 2d 52 31 32 2c  50 43 7d 5e 0d 60 f4 04  |{R0-R12,PC}^.`..|
0000f8e0  0d 60 fe 23 20 20 5c 20  4c 6f 67 20 73 70 68 65  |.`.#  \ Log sphe|
0000f8f0  72 65 20 69 6e 20 74 68  65 20 70 6c 6f 74 20 6c  |re in the plot l|
0000f900  69 73 74 0d 61 08 1d 20  20 5c 20 52 30 20 70 6f  |ist.a..  \ R0 po|
0000f910  69 6e 74 73 20 74 6f 20  70 6f 73 69 74 69 6f 6e  |ints to position|
0000f920  0d 61 12 18 20 20 5c 20  52 31 20 3d 20 73 69 7a  |.a..  \ R1 = siz|
0000f930  65 20 28 30 2d 31 33 29  0d 61 1c 10 20 20 2e 6c  |e (0-13).a..  .l|
0000f940  6f 67 73 70 68 65 72 65  0d 61 26 1f 20 20 53 54  |ogsphere.a&.  ST|
0000f950  4d 46 44 20 20 20 52 31  33 21 2c 7b 52 30 2d 52  |MFD   R13!,{R0-R|
0000f960  31 32 2c 52 31 34 7d 0d  61 30 05 20 0d 61 3a 1a  |12,R14}.a0. .a:.|
0000f970  20 20 4c 44 52 20 20 20  20 20 52 31 31 2c 70 6c  |  LDR     R11,pl|
0000f980  6f 74 74 61 62 71 0d 61  44 1c 20 20 4c 44 52 20  |ottabq.aD.  LDR |
0000f990  20 20 20 20 52 31 32 2c  70 6c 6f 74 74 61 62 69  |    R12,plottabi|
0000f9a0  6e 64 0d 61 4e 33 20 20  41 44 44 20 20 20 20 20  |nd.aN3  ADD     |
0000f9b0  52 31 32 2c 52 31 32 2c  52 31 31 2c 4c 53 4c 20  |R12,R12,R11,LSL |
0000f9c0  23 36 20 5c 20 67 65 74  20 70 6f 73 20 69 6e 20  |#6 \ get pos in |
0000f9d0  74 61 62 6c 65 0d 61 58  05 20 0d 61 62 29 20 20  |table.aX. .ab)  |
0000f9e0  4d 4f 56 20 20 20 20 20  52 33 2c 23 31 20 20 20  |MOV     R3,#1   |
0000f9f0  20 20 20 20 20 20 20 20  20 20 20 5c 20 73 70 68  |           \ sph|
0000fa00  65 72 65 0d 61 6c 2b 20  20 4c 44 4d 49 41 20 20  |ere.al+  LDMIA  |
0000fa10  20 52 30 2c 7b 52 34 2d  52 36 7d 20 20 20 20 20  | R0,{R4-R6}     |
0000fa20  20 20 20 20 5c 20 70 6f  73 69 74 69 6f 6e 0d 61  |    \ position.a|
0000fa30  76 27 20 20 4d 4f 56 20  20 20 20 20 52 37 2c 52  |v'  MOV     R7,R|
0000fa40  31 20 20 20 20 20 20 20  20 20 20 20 20 20 20 5c  |1              \|
0000fa50  20 73 69 7a 65 0d 61 80  13 20 20 4d 4f 56 20 20  | size.a..  MOV  |
0000fa60  20 20 20 52 32 2c 52 36  0d 61 8a 32 20 20 53 54  |   R2,R6.a.2  ST|
0000fa70  4d 49 41 20 20 20 52 31  32 2c 7b 52 32 2d 52 37  |MIA   R12,{R2-R7|
0000fa80  7d 20 20 20 20 20 20 20  20 5c 20 73 74 6f 72 65  |}        \ store|
0000fa90  20 77 68 6f 6c 65 20 6c  6f 74 0d 61 94 04 0d 61  | whole lot.a...a|
0000faa0  9e 18 20 20 41 44 44 20  20 20 20 20 52 31 31 2c  |..  ADD     R11,|
0000fab0  52 31 31 2c 23 31 0d 61  a8 35 20 20 53 54 52 20  |R11,#1.a.5  STR |
0000fac0  20 20 20 20 52 31 31 2c  70 6c 6f 74 74 61 62 71  |    R11,plottabq|
0000fad0  20 20 20 20 20 20 20 5c  20 73 74 6f 72 65 20 6e  |       \ store n|
0000fae0  65 77 20 71 75 61 6e 74  69 74 79 0d 61 b2 04 0d  |ew quantity.a...|
0000faf0  61 bc 1f 20 20 4c 44 4d  46 44 20 20 20 52 31 33  |a..  LDMFD   R13|
0000fb00  21 2c 7b 52 30 2d 52 31  32 2c 50 43 7d 5e 0d 61  |!,{R0-R12,PC}^.a|
0000fb10  c6 04 0d 61 d0 21 20 20  5c 20 4c 6f 67 20 68 65  |...a.!  \ Log he|
0000fb20  61 64 20 69 6e 20 74 68  65 20 70 6c 6f 74 20 6c  |ad in the plot l|
0000fb30  69 73 74 0d 61 da 1d 20  20 5c 20 52 30 20 70 6f  |ist.a..  \ R0 po|
0000fb40  69 6e 74 73 20 74 6f 20  70 6f 73 69 74 69 6f 6e  |ints to position|
0000fb50  0d 61 e4 17 20 20 5c 20  52 31 20 3d 20 65 78 70  |.a..  \ R1 = exp|
0000fb60  72 65 73 73 69 6f 6e 0d  61 ee 0e 20 20 2e 6c 6f  |ression.a..  .lo|
0000fb70  67 68 65 61 64 0d 61 f8  1f 20 20 53 54 4d 46 44  |ghead.a..  STMFD|
0000fb80  20 20 20 52 31 33 21 2c  7b 52 30 2d 52 31 32 2c  |   R13!,{R0-R12,|
0000fb90  52 31 34 7d 0d 62 02 05  20 0d 62 0c 1a 20 20 4c  |R14}.b.. .b..  L|
0000fba0  44 52 20 20 20 20 20 52  31 31 2c 70 6c 6f 74 74  |DR     R11,plott|
0000fbb0  61 62 71 0d 62 16 1c 20  20 4c 44 52 20 20 20 20  |abq.b..  LDR    |
0000fbc0  20 52 31 32 2c 70 6c 6f  74 74 61 62 69 6e 64 0d  | R12,plottabind.|
0000fbd0  62 20 33 20 20 41 44 44  20 20 20 20 20 52 31 32  |b 3  ADD     R12|
0000fbe0  2c 52 31 32 2c 52 31 31  2c 4c 53 4c 20 23 36 20  |,R12,R11,LSL #6 |
0000fbf0  5c 20 67 65 74 20 70 6f  73 20 69 6e 20 74 61 62  |\ get pos in tab|
0000fc00  6c 65 0d 62 2a 05 20 0d  62 34 27 20 20 4d 4f 56  |le.b*. .b4'  MOV|
0000fc10  20 20 20 20 20 52 33 2c  23 33 20 20 20 20 20 20  |     R3,#3      |
0000fc20  20 20 20 20 20 20 20 20  5c 20 68 65 61 64 0d 62  |        \ head.b|
0000fc30  3e 2b 20 20 4c 44 4d 49  41 20 20 20 52 30 2c 7b  |>+  LDMIA   R0,{|
0000fc40  52 34 2d 52 36 7d 20 20  20 20 20 20 20 20 20 5c  |R4-R6}         \|
0000fc50  20 70 6f 73 69 74 69 6f  6e 0d 62 48 2d 20 20 4d  | position.bH-  M|
0000fc60  4f 56 20 20 20 20 20 52  37 2c 52 31 20 20 20 20  |OV     R7,R1    |
0000fc70  20 20 20 20 20 20 20 20  20 20 5c 20 65 78 70 72  |          \ expr|
0000fc80  65 73 73 69 6f 6e 0d 62  52 13 20 20 4d 4f 56 20  |ession.bR.  MOV |
0000fc90  20 20 20 20 52 32 2c 52  36 0d 62 5c 32 20 20 53  |    R2,R6.b\2  S|
0000fca0  54 4d 49 41 20 20 20 52  31 32 2c 7b 52 32 2d 52  |TMIA   R12,{R2-R|
0000fcb0  37 7d 20 20 20 20 20 20  20 20 5c 20 73 74 6f 72  |7}        \ stor|
0000fcc0  65 20 77 68 6f 6c 65 20  6c 6f 74 0d 62 66 04 0d  |e whole lot.bf..|
0000fcd0  62 70 18 20 20 41 44 44  20 20 20 20 20 52 31 31  |bp.  ADD     R11|
0000fce0  2c 52 31 31 2c 23 31 0d  62 7a 35 20 20 53 54 52  |,R11,#1.bz5  STR|
0000fcf0  20 20 20 20 20 52 31 31  2c 70 6c 6f 74 74 61 62  |     R11,plottab|
0000fd00  71 20 20 20 20 20 20 20  5c 20 73 74 6f 72 65 20  |q       \ store |
0000fd10  6e 65 77 20 71 75 61 6e  74 69 74 79 0d 62 84 04  |new quantity.b..|
0000fd20  0d 62 8e 1f 20 20 4c 44  4d 46 44 20 20 20 52 31  |.b..  LDMFD   R1|
0000fd30  33 21 2c 7b 52 30 2d 52  31 32 2c 50 43 7d 5e 0d  |3!,{R0-R12,PC}^.|
0000fd40  62 98 04 0d 62 a2 41 20  20 5c 20 64 69 73 70 6c  |b...b.A  \ displ|
0000fd50  61 79 20 63 6f 6e 74 65  6e 74 73 20 6f 66 20 70  |ay contents of p|
0000fd60  6c 6f 74 20 6c 69 73 74  20 69 6e 20 72 65 76 65  |lot list in reve|
0000fd70  73 65 20 6f 72 64 65 72  20 6f 66 20 64 69 73 74  |se order of dist|
0000fd80  61 6e 63 65 0d 62 ac 0e  20 20 2e 64 69 73 70 6c  |ance.b..  .displ|
0000fd90  61 79 0d 62 b6 1f 20 20  53 54 4d 46 44 20 20 20  |ay.b..  STMFD   |
0000fda0  52 31 33 21 2c 7b 52 30  2d 52 31 32 2c 52 31 34  |R13!,{R0-R12,R14|
0000fdb0  7d 0d 62 c0 04 0d 62 ca  1a 20 20 4c 44 52 20 20  |}.b...b..  LDR  |
0000fdc0  20 20 20 52 31 30 2c 70  6c 6f 74 74 61 62 71 0d  |   R10,plottabq.|
0000fdd0  62 d4 04 0d 62 de 0d 20  20 2e 64 6f 75 74 65 72  |b...b..  .douter|
0000fde0  0d 62 e8 1e 20 20 20 20  4c 44 52 20 20 20 20 20  |.b..    LDR     |
0000fdf0  52 31 32 2c 70 6c 6f 74  74 61 62 69 6e 64 0d 62  |R12,plottabind.b|
0000fe00  f2 1c 20 20 20 20 4c 44  52 20 20 20 20 20 52 31  |..    LDR     R1|
0000fe10  31 2c 70 6c 6f 74 74 61  62 71 0d 62 fc 21 20 20  |1,plottabq.b.!  |
0000fe20  20 20 4d 56 4e 20 20 20  20 20 52 39 2c 23 ac 20  |  MVN     R9,#. |
0000fe30  28 2d 26 31 30 30 30 30  30 31 29 0d 63 06 04 0d  |(-&1000001).c...|
0000fe40  63 10 0f 20 20 20 20 2e  64 69 6e 6e 65 72 0d 63  |c..    .dinner.c|
0000fe50  1a 1e 20 20 20 20 20 20  4c 44 52 20 20 20 20 20  |..      LDR     |
0000fe60  52 30 2c 5b 52 31 32 5d  2c 23 36 34 0d 63 24 17  |R0,[R12],#64.c$.|
0000fe70  20 20 20 20 20 20 43 4d  50 20 20 20 20 20 52 30  |      CMP     R0|
0000fe80  2c 52 39 0d 63 2e 17 20  20 20 20 20 20 4d 4f 56  |,R9.c..      MOV|
0000fe90  47 45 20 20 20 52 39 2c  52 30 0d 63 38 1c 20 20  |GE   R9,R0.c8.  |
0000fea0  20 20 20 20 53 55 42 47  45 20 20 20 52 38 2c 52  |    SUBGE   R8,R|
0000feb0  31 32 2c 23 36 34 0d 63  42 1c 20 20 20 20 20 20  |12,#64.cB.      |
0000fec0  53 55 42 53 20 20 20 20  52 31 31 2c 52 31 31 2c  |SUBS    R11,R11,|
0000fed0  23 31 0d 63 4c 42 20 20  20 20 20 20 42 47 54 20  |#1.cLB      BGT |
0000fee0  20 20 20 20 64 69 6e 6e  65 72 20 20 20 20 20 20  |    dinner      |
0000fef0  20 20 20 5c 20 6c 6f 6f  70 20 74 6f 20 66 69 6e  |   \ loop to fin|
0000ff00  64 20 66 61 72 74 68 65  73 74 20 61 77 61 79 20  |d farthest away |
0000ff10  69 74 65 6d 0d 63 56 04  0d 63 60 1a 20 20 20 20  |item.cV..c`.    |
0000ff20  4c 44 52 20 20 20 20 20  52 39 2c 5b 52 38 2c 23  |LDR     R9,[R8,#|
0000ff30  34 5d 0d 63 6a 18 20 20  20 20 41 44 44 20 20 20  |4].cj.    ADD   |
0000ff40  20 20 52 30 2c 52 38 2c  23 38 0d 63 74 04 0d 63  |  R0,R8,#8.ct..c|
0000ff50  7e 15 20 20 20 20 43 4d  50 20 20 20 20 20 52 39  |~.    CMP     R9|
0000ff60  2c 23 30 0d 63 88 2c 20  20 20 20 42 4c 45 51 20  |,#0.c.,    BLEQ |
0000ff70  20 20 20 6c 69 6e 65 20  20 20 20 20 20 20 20 20  |   line         |
0000ff80  20 20 20 20 5c 20 64 72  61 77 20 6c 69 6e 65 0d  |    \ draw line.|
0000ff90  63 92 04 0d 63 9c 15 20  20 20 20 43 4d 50 20 20  |c...c..    CMP  |
0000ffa0  20 20 20 52 39 2c 23 31  0d 63 a6 2e 20 20 20 20  |   R9,#1.c..    |
0000ffb0  42 4c 45 51 20 20 20 20  67 65 6e 73 70 68 65 72  |BLEQ    genspher|
0000ffc0  65 20 20 20 20 20 20 20  20 5c 20 64 72 61 77 20  |e        \ draw |
0000ffd0  73 70 68 65 72 65 0d 63  b0 05 20 0d 63 ba 15 20  |sphere.c.. .c.. |
0000ffe0  20 20 20 43 4d 50 20 20  20 20 20 52 39 2c 23 32  |   CMP     R9,#2|
0000fff0  0d 63 c4 45 20 20 20 20  42 4c 45 51 20 20 20 20  |.c.E    BLEQ    |
00010000  62 75 6e 67 69 65 6c 69  6e 65 20 20 20 20 20 20  |bungieline      |
00010010  20 5c 20 64 72 61 77 20  6c 69 6e 65 20 77 69 74  | \ draw line wit|
00010020  68 20 73 70 68 65 72 65  20 61 74 20 65 6e 64 20  |h sphere at end |
00010030  70 6f 69 6e 74 0d 63 ce  04 0d 63 d8 15 20 20 20  |point.c...c..   |
00010040  20 43 4d 50 20 20 20 20  20 52 39 2c 23 33 0d 63  | CMP     R9,#3.c|
00010050  e2 32 20 20 20 20 42 4c  45 51 20 20 20 20 68 65  |.2    BLEQ    he|
00010060  61 64 20 20 20 20 20 20  20 20 20 20 20 20 20 5c  |ad             \|
00010070  20 64 72 61 77 20 62 69  67 20 73 70 68 65 72 65  | draw big sphere|
00010080  0d 63 ec 04 0d 63 f6 21  20 20 20 20 4d 56 4e 20  |.c...c.!    MVN |
00010090  20 20 20 20 52 30 2c 23  ac 20 28 2d 26 31 30 30  |    R0,#. (-&100|
000100a0  30 30 30 31 29 0d 64 00  50 20 20 20 20 53 54 52  |0001).d.P    STR|
000100b0  20 20 20 20 20 52 30 2c  5b 52 38 2c 23 30 5d 20  |     R0,[R8,#0] |
000100c0  20 20 20 20 20 20 5c 20  73 65 74 20 62 69 67 20  |      \ set big |
000100d0  6e 65 67 61 74 69 76 65  20 76 61 6c 75 65 20 69  |negative value i|
000100e0  6e 20 64 69 73 74 61 6e  63 65 20 74 6f 20 70 72  |n distance to pr|
000100f0  65 76 65 6e 74 0d 64 0a  3b 20 20 20 20 20 20 20  |event.d.;       |
00010100  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00010110  20 20 20 20 20 20 5c 20  69 74 65 6d 20 62 65 69  |      \ item bei|
00010120  6e 67 20 70 6c 6f 74 74  65 64 20 61 67 61 69 6e  |ng plotted again|
00010130  0d 64 14 1a 20 20 20 20  53 55 42 53 20 20 20 20  |.d..    SUBS    |
00010140  52 31 30 2c 52 31 30 2c  23 31 0d 64 1e 16 20 20  |R10,R10,#1.d..  |
00010150  20 20 42 47 54 20 20 20  20 20 64 6f 75 74 65 72  |  BGT     douter|
00010160  0d 64 28 04 0d 64 32 1f  20 20 4c 44 4d 46 44 20  |.d(..d2.  LDMFD |
00010170  20 20 52 31 33 21 2c 7b  52 30 2d 52 31 32 2c 50  |  R13!,{R0-R12,P|
00010180  43 7d 5e 0d 64 3c 04 0d  64 46 0f 20 20 2e 70 6c  |C}^.d<..dF.  .pl|
00010190  6f 74 74 61 62 71 0d 64  50 0f 20 20 45 51 55 44  |ottabq.dP.  EQUD|
000101a0  20 20 20 20 30 0d 64 5a  04 0d 64 64 13 20 20 2e  |    0.dZ..dd.  .|
000101b0  73 69 6e 63 6f 73 74 61  62 69 6e 64 0d 64 6e 17  |sincostabind.dn.|
000101c0  20 20 45 51 55 44 20 20  20 20 73 69 6e 63 6f 73  |  EQUD    sincos|
000101d0  74 61 62 0d 64 78 04 0d  64 82 16 20 20 2e 73 70  |tab.dx..d..  .sp|
000101e0  69 6e 6e 69 6e 67 73 70  68 65 72 65 73 0d 64 8c  |inningspheres.d.|
000101f0  18 20 20 53 54 4d 46 44  20 20 20 52 31 33 21 2c  |.  STMFD   R13!,|
00010200  7b 52 31 34 7d 0d 64 96  04 0d 64 a0 1e 20 20 4c  |{R14}.d...d..  L|
00010210  44 52 20 20 20 20 20 52  31 31 2c 73 69 6e 63 6f  |DR     R11,sinco|
00010220  73 74 61 62 69 6e 64 0d  64 aa 1b 20 20 41 44 44  |stabind.d..  ADD|
00010230  20 20 20 20 20 52 31 32  2c 52 31 31 2c 23 31 30  |     R12,R11,#10|
00010240  32 34 0d 64 b4 1b 20 20  41 44 52 20 20 20 20 20  |24.d..  ADR     |
00010250  52 39 2c 74 65 6d 70 76  65 63 74 6f 72 0d 64 be  |R9,tempvector.d.|
00010260  04 0d 64 c8 1f 20 20 4c  44 52 20 20 20 20 20 52  |..d..  LDR     R|
00010270  36 2c 73 70 68 65 72 65  68 65 69 67 68 74 2b 30  |6,sphereheight+0|
00010280  0d 64 d2 1f 20 20 4c 44  52 20 20 20 20 20 52 31  |.d..  LDR     R1|
00010290  2c 73 70 68 65 72 65 68  65 69 67 68 74 2b 34 0d  |,sphereheight+4.|
000102a0  64 dc 16 20 20 41 44 44  20 20 20 20 20 52 36 2c  |d..  ADD     R6,|
000102b0  52 36 2c 52 31 0d 64 e6  17 20 20 43 4d 50 20 20  |R6,R1.d..  CMP  |
000102c0  20 20 20 52 36 2c 23 33  32 37 36 38 0d 64 f0 13  |   R6,#32768.d..|
000102d0  20 20 4d 56 4e 47 45 20  20 20 52 31 2c 52 31 0d  |  MVNGE   R1,R1.|
000102e0  64 fa 13 20 20 43 4d 50  20 20 20 20 20 52 36 2c  |d..  CMP     R6,|
000102f0  23 30 0d 65 04 13 20 20  4d 56 4e 4c 54 20 20 20  |#0.e..  MVNLT   |
00010300  52 31 2c 52 31 0d 65 0e  1f 20 20 53 54 52 20 20  |R1,R1.e..  STR  |
00010310  20 20 20 52 36 2c 73 70  68 65 72 65 68 65 69 67  |   R6,sphereheig|
00010320  68 74 2b 30 0d 65 18 1f  20 20 53 54 52 20 20 20  |ht+0.e..  STR   |
00010330  20 20 52 31 2c 73 70 68  65 72 65 68 65 69 67 68  |  R1,sphereheigh|
00010340  74 2b 34 0d 65 22 04 0d  65 2c 1b 20 20 41 44 52  |t+4.e"..e,.  ADR|
00010350  20 20 20 20 20 52 38 2c  73 70 68 65 72 65 64 61  |     R8,sphereda|
00010360  74 61 0d 65 36 13 20 20  4d 4f 56 20 20 20 20 20  |ta.e6.  MOV     |
00010370  52 37 2c 23 36 0d 65 40  04 0d 65 4a 13 20 20 2e  |R7,#6.e@..eJ.  .|
00010380  73 70 69 6e 6e 69 6e 67  6c 6f 6f 70 0d 65 54 1b  |spinningloop.eT.|
00010390  20 20 20 20 4c 44 52 20  20 20 20 20 52 31 30 2c  |    LDR     R10,|
000103a0  5b 52 38 2c 23 30 5d 0d  65 5e 1a 20 20 20 20 53  |[R8,#0].e^.    S|
000103b0  55 42 20 20 20 20 20 52  31 30 2c 52 31 30 2c 23  |UB     R10,R10,#|
000103c0  31 0d 65 68 1b 20 20 20  20 53 54 52 20 20 20 20  |1.eh.    STR    |
000103d0  20 52 31 30 2c 5b 52 38  2c 23 30 5d 0d 65 72 1a  | R10,[R8,#0].er.|
000103e0  20 20 20 20 80 20 20 20  20 20 52 31 30 2c 52 31  |    .     R10,R1|
000103f0  30 2c 23 32 35 35 0d 65  7c 23 20 20 20 20 4c 44  |0,#255.e|#    LD|
00010400  52 20 20 20 20 20 52 30  2c 5b 52 31 31 2c 52 31  |R     R0,[R11,R1|
00010410  30 2c 4c 53 4c 20 23 32  5d 0d 65 86 1f 20 20 20  |0,LSL #2].e..   |
00010420  20 53 55 42 20 20 20 20  20 52 30 2c 52 30 2c 52  | SUB     R0,R0,R|
00010430  30 2c 41 53 52 20 23 32  0d 65 90 15 20 20 20 20  |0,ASR #2.e..    |
00010440  43 4d 50 20 20 20 20 20  52 37 2c 23 33 0d 65 9a  |CMP     R7,#3.e.|
00010450  15 20 20 20 20 4d 4f 56  47 54 20 20 20 52 31 2c  |.    MOVGT   R1,|
00010460  52 36 0d 65 a4 1c 20 20  20 20 52 53 42 4c 45 20  |R6.e..    RSBLE |
00010470  20 20 52 31 2c 52 36 2c  23 33 32 37 36 38 0d 65  |  R1,R6,#32768.e|
00010480  ae 23 20 20 20 20 4c 44  52 20 20 20 20 20 52 32  |.#    LDR     R2|
00010490  2c 5b 52 31 32 2c 52 31  30 2c 4c 53 4c 20 23 32  |,[R12,R10,LSL #2|
000104a0  5d 0d 65 b8 1f 20 20 20  20 53 55 42 20 20 20 20  |].e..    SUB    |
000104b0  20 52 32 2c 52 32 2c 52  32 2c 41 53 52 20 23 32  | R2,R2,R2,ASR #2|
000104c0  0d 65 c2 1a 20 20 20 20  53 54 4d 49 41 20 20 20  |.e..    STMIA   |
000104d0  52 39 2c 7b 52 30 2d 52  32 7d 0d 65 cc 04 0d 65  |R9,{R0-R2}.e...e|
000104e0  d6 15 20 20 20 20 4d 4f  56 20 20 20 20 20 52 30  |..    MOV     R0|
000104f0  2c 52 39 0d 65 e0 20 20  20 20 20 4c 44 52 20 20  |,R9.e.     LDR  |
00010500  20 20 20 52 31 2c 74 6f  72 73 6f 74 72 61 6e 73  |   R1,torsotrans|
00010510  69 6e 64 0d 65 ea 15 20  20 20 20 4d 4f 56 20 20  |ind.e..    MOV  |
00010520  20 20 20 52 32 2c 52 39  0d 65 f4 19 20 20 20 20  |   R2,R9.e..    |
00010530  42 4c 20 20 20 20 20 20  74 72 61 6e 73 66 6f 72  |BL      transfor|
00010540  6d 0d 65 fe 05 20 0d 66  08 1a 20 20 20 20 4c 44  |m.e.. .f..    LD|
00010550  52 20 20 20 20 20 52 31  2c 5b 52 38 2c 23 34 5d  |R     R1,[R8,#4]|
00010560  0d 66 12 1a 20 20 20 20  4c 44 52 20 20 20 20 20  |.f..    LDR     |
00010570  52 32 2c 5b 52 38 2c 23  38 5d 0d 66 1c 18 20 20  |R2,[R8,#8].f..  |
00010580  20 20 41 44 44 20 20 20  20 20 52 31 2c 52 31 2c  |  ADD     R1,R1,|
00010590  52 32 0d 66 26 16 20 20  20 20 43 4d 50 20 20 20  |R2.f&.    CMP   |
000105a0  20 20 52 31 2c 23 31 33  0d 66 30 13 20 20 20 20  |  R1,#13.f0.    |
000105b0  ec 51 20 20 20 52 31 2c  23 31 31 0d 66 3a 18 20  |.Q   R1,#11.f:. |
000105c0  20 20 20 4d 56 4e 45 51  20 20 20 52 32 2c 23 ac  |   MVNEQ   R2,#.|
000105d0  20 2d 31 0d 66 44 15 20  20 20 20 43 4d 50 20 20  | -1.fD.    CMP  |
000105e0  20 20 20 52 31 2c 23 32  0d 66 4e 12 20 20 20 20  |   R1,#2.fN.    |
000105f0  ec 51 20 20 20 52 31 2c  23 34 0d 66 58 13 20 20  |.Q   R1,#4.fX.  |
00010600  20 20 ec 51 20 20 20 52  32 2c 23 2b 31 0d 66 62  |  .Q   R2,#+1.fb|
00010610  1a 20 20 20 20 53 54 52  20 20 20 20 20 52 31 2c  |.    STR     R1,|
00010620  5b 52 38 2c 23 34 5d 0d  66 6c 1a 20 20 20 20 53  |[R8,#4].fl.    S|
00010630  54 52 20 20 20 20 20 52  32 2c 5b 52 38 2c 23 38  |TR     R2,[R8,#8|
00010640  5d 0d 66 76 19 20 20 20  20 42 4c 20 20 20 20 20  |].fv.    BL     |
00010650  20 6c 6f 67 73 70 68 65  72 65 0d 66 80 04 0d 66  | logsphere.f...f|
00010660  8a 19 20 20 20 20 41 44  44 20 20 20 20 20 52 38  |..    ADD     R8|
00010670  2c 52 38 2c 23 31 32 0d  66 94 18 20 20 20 20 53  |,R8,#12.f..    S|
00010680  55 42 53 20 20 20 20 52  37 2c 52 37 2c 23 31 0d  |UBS    R7,R7,#1.|
00010690  66 9e 1c 20 20 20 20 42  47 54 20 20 20 20 20 73  |f..    BGT     s|
000106a0  70 69 6e 6e 69 6e 67 6c  6f 6f 70 0d 66 a8 04 0d  |pinningloop.f...|
000106b0  66 b2 18 20 20 4c 44 4d  46 44 20 20 20 52 31 33  |f..  LDMFD   R13|
000106c0  21 2c 7b 50 43 7d 5e 0d  66 bc 04 0d 66 c6 13 20  |!,{PC}^.f...f.. |
000106d0  20 2e 73 70 68 65 72 65  68 65 69 67 68 74 0d 66  | .sphereheight.f|
000106e0  d0 0f 20 20 45 51 55 44  20 20 20 20 30 0d 66 da  |..  EQUD    0.f.|
000106f0  11 20 20 45 51 55 44 20  20 20 20 33 30 30 0d 66  |.  EQUD    300.f|
00010700  e4 04 0d 66 ee 11 20 20  2e 73 70 68 65 72 65 64  |...f..  .sphered|
00010710  61 74 61 0d 66 f8 21 20  20 45 51 55 44 20 20 20  |ata.f.!  EQUD   |
00010720  20 30 20 20 20 20 20 20  20 20 20 20 20 5c 20 61  | 0           \ a|
00010730  6e 67 6c 65 0d 67 02 20  20 20 45 51 55 44 20 20  |ngle.g.   EQUD  |
00010740  20 20 33 20 20 20 20 20  20 20 20 20 20 20 5c 20  |  3           \ |
00010750  73 69 7a 65 0d 67 0c 25  20 20 45 51 55 44 20 20  |size.g.%  EQUD  |
00010760  20 20 2b 31 20 20 20 20  20 20 20 20 20 20 5c 20  |  +1          \ |
00010770  69 6e 63 72 65 6d 65 6e  74 0d 67 16 04 0d 67 20  |increment.g...g |
00010780  21 20 20 45 51 55 44 20  20 20 20 38 35 20 20 20  |!  EQUD    85   |
00010790  20 20 20 20 20 20 20 5c  20 61 6e 67 6c 65 0d 67  |       \ angle.g|
000107a0  2a 20 20 20 45 51 55 44  20 20 20 20 39 20 20 20  |*   EQUD    9   |
000107b0  20 20 20 20 20 20 20 20  5c 20 73 69 7a 65 0d 67  |        \ size.g|
000107c0  34 25 20 20 45 51 55 44  20 20 20 20 2b 31 20 20  |4%  EQUD    +1  |
000107d0  20 20 20 20 20 20 20 20  5c 20 69 6e 63 72 65 6d  |        \ increm|
000107e0  65 6e 74 0d 67 3e 04 0d  67 48 21 20 20 45 51 55  |ent.g>..gH!  EQU|
000107f0  44 20 20 20 20 31 37 30  20 20 20 20 20 20 20 20  |D    170        |
00010800  20 5c 20 61 6e 67 6c 65  0d 67 52 20 20 20 45 51  | \ angle.gR   EQ|
00010810  55 44 20 20 20 20 39 20  20 20 20 20 20 20 20 20  |UD    9         |
00010820  20 20 5c 20 73 69 7a 65  0d 67 5c 25 20 20 45 51  |  \ size.g\%  EQ|
00010830  55 44 20 20 20 20 2d 31  20 20 20 20 20 20 20 20  |UD    -1        |
00010840  20 20 5c 20 69 6e 63 72  65 6d 65 6e 74 0d 67 66  |  \ increment.gf|
00010850  04 0d 67 70 21 20 20 45  51 55 44 20 20 20 20 34  |..gp!  EQUD    4|
00010860  33 20 20 20 20 20 20 20  20 20 20 5c 20 61 6e 67  |3          \ ang|
00010870  6c 65 0d 67 7a 20 20 20  45 51 55 44 20 20 20 20  |le.gz   EQUD    |
00010880  33 20 20 20 20 20 20 20  20 20 20 20 5c 20 73 69  |3           \ si|
00010890  7a 65 0d 67 84 25 20 20  45 51 55 44 20 20 20 20  |ze.g.%  EQUD    |
000108a0  2d 31 20 20 20 20 20 20  20 20 20 20 5c 20 69 6e  |-1          \ in|
000108b0  63 72 65 6d 65 6e 74 0d  67 8e 04 0d 67 98 21 20  |crement.g...g.! |
000108c0  20 45 51 55 44 20 20 20  20 31 32 38 20 20 20 20  | EQUD    128    |
000108d0  20 20 20 20 20 5c 20 61  6e 67 6c 65 0d 67 a2 20  |     \ angle.g. |
000108e0  20 20 45 51 55 44 20 20  20 20 39 20 20 20 20 20  |  EQUD    9     |
000108f0  20 20 20 20 20 20 5c 20  73 69 7a 65 0d 67 ac 25  |      \ size.g.%|
00010900  20 20 45 51 55 44 20 20  20 20 2d 31 20 20 20 20  |  EQUD    -1    |
00010910  20 20 20 20 20 20 5c 20  69 6e 63 72 65 6d 65 6e  |      \ incremen|
00010920  74 0d 67 b6 04 0d 67 c0  21 20 20 45 51 55 44 20  |t.g...g.!  EQUD |
00010930  20 20 20 32 31 33 20 20  20 20 20 20 20 20 20 5c  |   213         \|
00010940  20 61 6e 67 6c 65 0d 67  ca 20 20 20 45 51 55 44  | angle.g.   EQUD|
00010950  20 20 20 20 39 20 20 20  20 20 20 20 20 20 20 20  |    9           |
00010960  5c 20 73 69 7a 65 0d 67  d4 25 20 20 45 51 55 44  |\ size.g.%  EQUD|
00010970  20 20 20 20 2b 31 20 20  20 20 20 20 20 20 20 20  |    +1          |
00010980  5c 20 69 6e 63 72 65 6d  65 6e 74 0d 67 de 04 0d  |\ increment.g...|
00010990  67 e8 14 20 20 2e 74 6f  72 73 6f 74 72 61 6e 73  |g..  .torsotrans|
000109a0  69 6e 64 0d 67 f2 18 20  20 45 51 55 44 20 20 20  |ind.g..  EQUD   |
000109b0  20 74 6f 72 73 6f 74 72  61 6e 73 0d 67 fc 04 0d  | torsotrans.g...|
000109c0  68 06 11 20 20 2e 74 65  6d 70 76 65 63 74 6f 72  |h..  .tempvector|
000109d0  0d 68 10 0f 20 20 45 51  55 44 20 20 20 20 30 0d  |.h..  EQUD    0.|
000109e0  68 1a 0f 20 20 45 51 55  44 20 20 20 20 30 0d 68  |h..  EQUD    0.h|
000109f0  24 0f 20 20 45 51 55 44  20 20 20 20 30 0d 68 2e  |$.  EQUD    0.h.|
00010a00  04 0d 68 38 15 20 20 2e  67 70 6c 6f 74 73 63 72  |..h8.  .gplotscr|
00010a10  65 65 6e 69 6e 64 0d 68  42 1c 20 20 45 51 55 44  |eenind.hB.  EQUD|
00010a20  20 20 20 20 70 6c 6f 74  73 63 72 65 65 6e 62 61  |    plotscreenba|
00010a30  73 65 0d 68 4c 04 0d 68  56 23 20 20 5c 20 44 72  |se.hL..hV#  \ Dr|
00010a40  61 77 20 64 69 67 69 74  61 6c 20 77 61 76 65 66  |aw digital wavef|
00010a50  6f 72 6d 20 67 72 61 70  68 0d 68 60 23 20 20 5c  |orm graph.h`#  \|
00010a60  20 52 30 20 3d 20 62 61  73 65 20 61 64 64 72 65  | R0 = base addre|
00010a70  73 73 20 6f 66 20 73 61  6d 70 6c 65 0d 68 6a 25  |ss of sample.hj%|
00010a80  20 20 5c 20 52 31 20 3d  20 6f 66 66 73 65 74 20  |  \ R1 = offset |
00010a90  69 6e 74 6f 20 73 61 6d  70 6c 65 2a 36 35 35 33  |into sample*6553|
00010aa0  36 0d 68 74 22 20 20 5c  20 52 32 20 3d 20 70 68  |6.ht"  \ R2 = ph|
00010ab0  61 73 65 20 69 6e 63 72  65 6d 65 6e 74 2a 36 35  |ase increment*65|
00010ac0  35 33 36 0d 68 7e 3d 20  20 5c 20 52 33 20 3d 20  |536.h~=  \ R3 = |
00010ad0  70 6f 69 6e 74 65 72 20  74 6f 20 67 72 61 70 68  |pointer to graph|
00010ae0  20 6f 72 69 65 6e 74 61  74 69 6f 6e 20 61 6e 64  | orientation and|
00010af0  20 73 63 72 65 65 6e 20  70 6f 73 69 74 69 6f 6e  | screen position|
00010b00  0d 68 88 0c 20 20 2e 67  72 61 70 68 0d 68 92 1f  |.h..  .graph.h..|
00010b10  20 20 53 54 4d 46 44 20  20 20 52 31 33 21 2c 7b  |  STMFD   R13!,{|
00010b20  52 30 2d 52 31 32 2c 52  31 34 7d 0d 68 9c 04 0d  |R0-R12,R14}.h...|
00010b30  68 a6 14 20 20 4d 4f 56  20 20 20 20 20 52 31 34  |h..  MOV     R14|
00010b40  2c 52 33 0d 68 b0 39 20  20 41 44 44 20 20 20 20  |,R3.h.9  ADD    |
00010b50  20 52 30 2c 52 30 2c 52  31 2c 4c 53 52 20 23 31  | R0,R0,R1,LSR #1|
00010b60  36 20 20 5c 20 61 64 64  72 65 73 73 20 6f 66 20  |6  \ address of |
00010b70  64 61 74 61 20 74 6f 20  70 6c 6f 74 0d 68 ba 1a  |data to plot.h..|
00010b80  20 20 4c 44 52 20 20 20  20 20 52 31 2c 5b 52 31  |  LDR     R1,[R1|
00010b90  34 2c 23 33 36 5d 0d 68  c4 1c 20 20 4d 4f 56 20  |4,#36].h..  MOV |
00010ba0  20 20 20 20 52 31 32 2c  52 31 2c 4c 53 4c 20 23  |    R12,R1,LSL #|
00010bb0  32 33 0d 68 ce 1a 20 20  4c 44 52 20 20 20 20 20  |23.h..  LDR     |
00010bc0  52 31 2c 5b 52 31 34 2c  23 34 30 5d 0d 68 d8 47  |R1,[R14,#40].h.G|
00010bd0  20 20 53 55 42 20 20 20  20 20 52 31 32 2c 52 31  |  SUB     R12,R1|
00010be0  32 2c 52 31 2c 4c 53 4c  20 23 38 20 20 20 20 5c  |2,R1,LSL #8    \|
00010bf0  20 70 6f 73 69 74 69 6f  6e 20 6f 66 20 6f 72 69  | position of ori|
00010c00  67 69 6e 20 28 20 2d 3e  20 74 69 6d 65 20 61 78  |gin ( -> time ax|
00010c10  69 73 29 0d 68 e2 1f 20  20 4c 44 52 20 20 20 20  |is).h..  LDR    |
00010c20  20 52 35 2c 67 70 6c 6f  74 73 63 72 65 65 6e 69  | R5,gplotscreeni|
00010c30  6e 64 0d 68 ec 34 20 20  4c 44 52 20 20 20 20 20  |nd.h.4  LDR     |
00010c40  52 35 2c 5b 52 35 5d 20  20 20 20 20 20 20 20 20  |R5,[R5]         |
00010c50  20 20 20 5c 20 61 64 64  72 65 73 73 20 6f 66 20  |   \ address of |
00010c60  73 63 72 65 65 6e 0d 68  f6 30 20 20 4d 4f 56 20  |screen.h.0  MOV |
00010c70  20 20 20 20 52 36 2c 23  26 31 31 20 20 20 20 20  |    R6,#&11     |
00010c80  20 20 20 20 20 20 20 5c  20 62 79 74 65 20 66 6f  |       \ byte fo|
00010c90  72 20 61 78 65 73 0d 69  00 32 20 20 4d 4f 56 20  |r axes.i.2  MOV |
00010ca0  20 20 20 20 52 37 2c 23  26 32 32 20 20 20 20 20  |    R7,#&22     |
00010cb0  20 20 20 20 20 20 20 5c  20 62 79 74 65 20 66 6f  |       \ byte fo|
00010cc0  72 20 70 6f 69 6e 74 73  0d 69 0a 19 20 20 4c 44  |r points.i..  LD|
00010cd0  52 20 20 20 20 20 52 31  2c 5b 52 31 34 2c 23 30  |R     R1,[R14,#0|
00010ce0  5d 0d 69 14 1a 20 20 4d  4f 56 20 20 20 20 20 52  |].i..  MOV     R|
00010cf0  31 2c 52 31 2c 41 53 52  20 23 38 0d 69 1e 1b 20  |1,R1,ASR #8.i.. |
00010d00  20 4d 4f 56 20 20 20 20  20 52 38 2c 52 31 2c 4c  | MOV     R8,R1,L|
00010d10  53 4c 20 23 31 36 0d 69  28 1a 20 20 4c 44 52 20  |SL #16.i(.  LDR |
00010d20  20 20 20 20 52 31 2c 5b  52 31 34 2c 23 31 32 5d  |    R1,[R14,#12]|
00010d30  0d 69 32 36 20 20 53 55  42 20 20 20 20 20 52 38  |.i26  SUB     R8|
00010d40  2c 52 38 2c 52 31 2c 41  53 52 20 23 37 20 20 20  |,R8,R1,ASR #7   |
00010d50  20 5c 20 74 69 6d 65 20  61 78 69 73 20 69 6e 63  | \ time axis inc|
00010d60  72 65 6d 65 6e 74 0d 69  3c 1f 20 20 53 55 42 20  |rement.i<.  SUB |
00010d70  20 20 20 20 52 31 32 2c  52 31 32 2c 52 38 2c 4c  |    R12,R12,R8,L|
00010d80  53 4c 20 23 35 0d 69 46  1f 20 20 53 55 42 20 20  |SL #5.iF.  SUB  |
00010d90  20 20 20 52 31 32 2c 52  31 32 2c 52 38 2c 4c 53  |   R12,R12,R8,LS|
00010da0  4c 20 23 34 0d 69 50 19  20 20 4c 44 52 20 20 20  |L #4.iP.  LDR   |
00010db0  20 20 52 31 2c 5b 52 31  34 2c 23 34 5d 0d 69 5a  |  R1,[R14,#4].iZ|
00010dc0  1d 20 20 53 55 42 20 20  20 20 20 52 31 2c 52 31  |.  SUB     R1,R1|
00010dd0  2c 52 31 2c 41 53 52 20  23 32 0d 69 64 1a 20 20  |,R1,ASR #2.id.  |
00010de0  4d 4f 56 20 20 20 20 20  52 31 2c 52 31 2c 41 53  |MOV     R1,R1,AS|
00010df0  52 20 23 38 0d 69 6e 1b  20 20 4d 4f 56 20 20 20  |R #8.in.  MOV   |
00010e00  20 20 52 39 2c 52 31 2c  4c 53 4c 20 23 31 36 0d  |  R9,R1,LSL #16.|
00010e10  69 78 1a 20 20 4c 44 52  20 20 20 20 20 52 31 2c  |ix.  LDR     R1,|
00010e20  5b 52 31 34 2c 23 31 36  5d 0d 69 82 38 20 20 53  |[R14,#16].i.8  S|
00010e30  55 42 20 20 20 20 20 52  39 2c 52 39 2c 52 31 2c  |UB     R9,R9,R1,|
00010e40  41 53 52 20 23 37 20 20  20 20 5c 20 76 6f 6c 75  |ASR #7    \ volu|
00010e50  6d 65 20 61 78 69 73 20  69 6e 63 72 65 6d 65 6e  |me axis incremen|
00010e60  74 0d 69 8c 1f 20 20 53  55 42 20 20 20 20 20 52  |t.i..  SUB     R|
00010e70  31 32 2c 52 31 32 2c 52  39 2c 4c 53 4c 20 23 34  |12,R12,R9,LSL #4|
00010e80  0d 69 96 1f 20 20 53 55  42 20 20 20 20 20 52 31  |.i..  SUB     R1|
00010e90  32 2c 52 31 32 2c 52 39  2c 4c 53 4c 20 23 33 0d  |2,R12,R9,LSL #3.|
00010ea0  69 a0 33 20 20 4d 4f 56  20 20 20 20 20 52 31 31  |i.3  MOV     R11|
00010eb0  2c 23 39 36 20 20 20 20  20 20 20 20 20 20 20 20  |,#96            |
00010ec0  5c 20 6e 75 6d 62 65 72  20 6f 66 20 70 6f 69 6e  |\ number of poin|
00010ed0  74 73 0d 69 aa 40 20 20  4d 4f 56 20 20 20 20 20  |ts.i.@  MOV     |
00010ee0  52 33 2c 23 26 33 46 20  20 20 20 20 20 20 20 20  |R3,#&3F         |
00010ef0  20 20 20 5c 20 6d 61 73  6b 20 66 6f 72 20 73 61  |   \ mask for sa|
00010f00  6d 70 6c 65 20 62 69 74  20 69 73 6f 6c 61 74 69  |mple bit isolati|
00010f10  6f 6e 0d 69 b4 14 20 20  4d 4f 56 20 20 20 20 20  |on.i..  MOV     |
00010f20  52 34 2c 52 31 32 0d 69  be 04 0d 69 c8 0c 20 20  |R4,R12.i...i..  |
00010f30  2e 67 6c 6f 6f 70 0d 69  d2 1a 20 20 20 20 4c 44  |.gloop.i..    LD|
00010f40  52 20 20 20 20 20 52 31  2c 5b 52 30 5d 2c 23 34  |R     R1,[R0],#4|
00010f50  0d 69 dc 1a 20 20 20 20  80 20 20 20 20 20 52 32  |.i..    .     R2|
00010f60  2c 52 34 2c 23 26 46 46  30 30 0d 69 e6 1f 20 20  |,R4,#&FF00.i..  |
00010f70  20 20 41 44 44 20 20 20  20 20 52 32 2c 52 32 2c  |  ADD     R2,R2,|
00010f80  52 32 2c 4c 53 52 20 23  32 0d 69 f0 20 20 20 20  |R2,LSR #2.i.    |
00010f90  20 41 44 44 20 20 20 20  20 52 32 2c 52 32 2c 52  | ADD     R2,R2,R|
00010fa0  34 2c 4c 53 52 20 23 32  33 0d 69 fa 1a 20 20 20  |4,LSR #23.i..   |
00010fb0  20 53 54 52 42 20 20 20  20 52 36 2c 5b 52 35 2c  | STRB    R6,[R5,|
00010fc0  52 32 5d 0d 6a 04 1d 20  20 20 20 80 20 20 20 20  |R2].j..    .    |
00010fd0  20 52 32 2c 52 33 2c 52  31 2c 4c 53 52 20 23 32  | R2,R3,R1,LSR #2|
00010fe0  0d 6a 0e 1c 20 20 20 20  4d 4c 41 20 20 20 20 20  |.j..    MLA     |
00010ff0  52 31 30 2c 52 39 2c 52  32 2c 52 34 0d 6a 18 1b  |R10,R9,R2,R4.j..|
00011000  20 20 20 20 80 20 20 20  20 20 52 32 2c 52 31 30  |    .     R2,R10|
00011010  2c 23 26 46 46 30 30 0d  6a 22 1f 20 20 20 20 41  |,#&FF00.j".    A|
00011020  44 44 20 20 20 20 20 52  32 2c 52 32 2c 52 32 2c  |DD     R2,R2,R2,|
00011030  4c 53 52 20 23 32 0d 6a  2c 21 20 20 20 20 41 44  |LSR #2.j,!    AD|
00011040  44 20 20 20 20 20 52 32  2c 52 32 2c 52 31 30 2c  |D     R2,R2,R10,|
00011050  4c 53 52 20 23 32 33 0d  6a 36 1a 20 20 20 20 53  |LSR #23.j6.    S|
00011060  54 52 42 20 20 20 20 52  37 2c 5b 52 35 2c 52 32  |TRB    R7,[R5,R2|
00011070  5d 0d 6a 40 18 20 20 20  20 41 44 44 20 20 20 20  |].j@.    ADD    |
00011080  20 52 34 2c 52 34 2c 52  38 0d 6a 4a 1a 20 20 20  | R4,R4,R8.jJ.   |
00011090  20 80 20 20 20 20 20 52  32 2c 52 34 2c 23 26 46  | .     R2,R4,#&F|
000110a0  46 30 30 0d 6a 54 1f 20  20 20 20 41 44 44 20 20  |F00.jT.    ADD  |
000110b0  20 20 20 52 32 2c 52 32  2c 52 32 2c 4c 53 52 20  |   R2,R2,R2,LSR |
000110c0  23 32 0d 6a 5e 20 20 20  20 20 41 44 44 20 20 20  |#2.j^     ADD   |
000110d0  20 20 52 32 2c 52 32 2c  52 34 2c 4c 53 52 20 23  |  R2,R2,R4,LSR #|
000110e0  32 33 0d 6a 68 1a 20 20  20 20 53 54 52 42 20 20  |23.jh.    STRB  |
000110f0  20 20 52 36 2c 5b 52 35  2c 52 32 5d 0d 6a 72 1e  |  R6,[R5,R2].jr.|
00011100  20 20 20 20 80 20 20 20  20 20 52 32 2c 52 33 2c  |    .     R2,R3,|
00011110  52 31 2c 4c 53 52 20 23  31 30 0d 6a 7c 1c 20 20  |R1,LSR #10.j|.  |
00011120  20 20 4d 4c 41 20 20 20  20 20 52 31 30 2c 52 39  |  MLA     R10,R9|
00011130  2c 52 32 2c 52 34 0d 6a  86 1b 20 20 20 20 80 20  |,R2,R4.j..    . |
00011140  20 20 20 20 52 32 2c 52  31 30 2c 23 26 46 46 30  |    R2,R10,#&FF0|
00011150  30 0d 6a 90 1f 20 20 20  20 41 44 44 20 20 20 20  |0.j..    ADD    |
00011160  20 52 32 2c 52 32 2c 52  32 2c 4c 53 52 20 23 32  | R2,R2,R2,LSR #2|
00011170  0d 6a 9a 21 20 20 20 20  41 44 44 20 20 20 20 20  |.j.!    ADD     |
00011180  52 32 2c 52 32 2c 52 31  30 2c 4c 53 52 20 23 32  |R2,R2,R10,LSR #2|
00011190  33 0d 6a a4 1a 20 20 20  20 53 54 52 42 20 20 20  |3.j..    STRB   |
000111a0  20 52 37 2c 5b 52 35 2c  52 32 5d 0d 6a ae 18 20  | R7,[R5,R2].j.. |
000111b0  20 20 20 41 44 44 20 20  20 20 20 52 34 2c 52 34  |   ADD     R4,R4|
000111c0  2c 52 38 0d 6a b8 1a 20  20 20 20 80 20 20 20 20  |,R8.j..    .    |
000111d0  20 52 32 2c 52 34 2c 23  26 46 46 30 30 0d 6a c2  | R2,R4,#&FF00.j.|
000111e0  1f 20 20 20 20 41 44 44  20 20 20 20 20 52 32 2c  |.    ADD     R2,|
000111f0  52 32 2c 52 32 2c 4c 53  52 20 23 32 0d 6a cc 20  |R2,R2,LSR #2.j. |
00011200  20 20 20 20 41 44 44 20  20 20 20 20 52 32 2c 52  |    ADD     R2,R|
00011210  32 2c 52 34 2c 4c 53 52  20 23 32 33 0d 6a d6 1a  |2,R4,LSR #23.j..|
00011220  20 20 20 20 53 54 52 42  20 20 20 20 52 36 2c 5b  |    STRB    R6,[|
00011230  52 35 2c 52 32 5d 0d 6a  e0 1e 20 20 20 20 80 20  |R5,R2].j..    . |
00011240  20 20 20 20 52 32 2c 52  33 2c 52 31 2c 4c 53 52  |    R2,R3,R1,LSR|
00011250  20 23 31 38 0d 6a ea 1c  20 20 20 20 4d 4c 41 20  | #18.j..    MLA |
00011260  20 20 20 20 52 31 30 2c  52 39 2c 52 32 2c 52 34  |    R10,R9,R2,R4|
00011270  0d 6a f4 1b 20 20 20 20  80 20 20 20 20 20 52 32  |.j..    .     R2|
00011280  2c 52 31 30 2c 23 26 46  46 30 30 0d 6a fe 1f 20  |,R10,#&FF00.j.. |
00011290  20 20 20 41 44 44 20 20  20 20 20 52 32 2c 52 32  |   ADD     R2,R2|
000112a0  2c 52 32 2c 4c 53 52 20  23 32 0d 6b 08 21 20 20  |,R2,LSR #2.k.!  |
000112b0  20 20 41 44 44 20 20 20  20 20 52 32 2c 52 32 2c  |  ADD     R2,R2,|
000112c0  52 31 30 2c 4c 53 52 20  23 32 33 0d 6b 12 1a 20  |R10,LSR #23.k.. |
000112d0  20 20 20 53 54 52 42 20  20 20 20 52 37 2c 5b 52  |   STRB    R7,[R|
000112e0  35 2c 52 32 5d 0d 6b 1c  18 20 20 20 20 41 44 44  |5,R2].k..    ADD|
000112f0  20 20 20 20 20 52 34 2c  52 34 2c 52 38 0d 6b 26  |     R4,R4,R8.k&|
00011300  1a 20 20 20 20 80 20 20  20 20 20 52 32 2c 52 34  |.    .     R2,R4|
00011310  2c 23 26 46 46 30 30 0d  6b 30 1f 20 20 20 20 41  |,#&FF00.k0.    A|
00011320  44 44 20 20 20 20 20 52  32 2c 52 32 2c 52 32 2c  |DD     R2,R2,R2,|
00011330  4c 53 52 20 23 32 0d 6b  3a 20 20 20 20 20 41 44  |LSR #2.k:     AD|
00011340  44 20 20 20 20 20 52 32  2c 52 32 2c 52 34 2c 4c  |D     R2,R2,R4,L|
00011350  53 52 20 23 32 33 0d 6b  44 1a 20 20 20 20 53 54  |SR #23.kD.    ST|
00011360  52 42 20 20 20 20 52 36  2c 5b 52 35 2c 52 32 5d  |RB    R6,[R5,R2]|
00011370  0d 6b 4e 1e 20 20 20 20  80 20 20 20 20 20 52 32  |.kN.    .     R2|
00011380  2c 52 33 2c 52 31 2c 4c  53 52 20 23 32 36 0d 6b  |,R3,R1,LSR #26.k|
00011390  58 1c 20 20 20 20 4d 4c  41 20 20 20 20 20 52 31  |X.    MLA     R1|
000113a0  30 2c 52 39 2c 52 32 2c  52 34 0d 6b 62 1b 20 20  |0,R9,R2,R4.kb.  |
000113b0  20 20 80 20 20 20 20 20  52 32 2c 52 31 30 2c 23  |  .     R2,R10,#|
000113c0  26 46 46 30 30 0d 6b 6c  1f 20 20 20 20 41 44 44  |&FF00.kl.    ADD|
000113d0  20 20 20 20 20 52 32 2c  52 32 2c 52 32 2c 4c 53  |     R2,R2,R2,LS|
000113e0  52 20 23 32 0d 6b 76 21  20 20 20 20 41 44 44 20  |R #2.kv!    ADD |
000113f0  20 20 20 20 52 32 2c 52  32 2c 52 31 30 2c 4c 53  |    R2,R2,R10,LS|
00011400  52 20 23 32 33 0d 6b 80  1a 20 20 20 20 53 54 52  |R #23.k..    STR|
00011410  42 20 20 20 20 52 37 2c  5b 52 35 2c 52 32 5d 0d  |B    R7,[R5,R2].|
00011420  6b 8a 18 20 20 20 20 41  44 44 20 20 20 20 20 52  |k..    ADD     R|
00011430  34 2c 52 34 2c 52 38 0d  6b 94 1a 20 20 20 20 53  |4,R4,R8.k..    S|
00011440  55 42 53 20 20 20 20 52  31 31 2c 52 31 31 2c 23  |UBS    R11,R11,#|
00011450  34 0d 6b 9e 15 20 20 20  20 42 47 54 20 20 20 20  |4.k..    BGT    |
00011460  20 67 6c 6f 6f 70 0d 6b  a8 04 0d 6b b2 45 20 20  | gloop.k...k.E  |
00011470  4d 4f 56 20 20 20 20 20  52 34 2c 52 31 32 20 20  |MOV     R4,R12  |
00011480  20 20 20 20 20 20 20 20  20 20 20 5c 20 70 6f 73  |           \ pos|
00011490  69 74 69 6f 6e 20 6f 66  20 6f 72 69 67 69 6e 20  |ition of origin |
000114a0  28 20 2d 3e 20 74 69 6d  65 20 61 78 69 73 29 0d  |( -> time axis).|
000114b0  6b bc 33 20 20 4d 4f 56  20 20 20 20 20 52 31 31  |k.3  MOV     R11|
000114c0  2c 23 36 34 20 20 20 20  20 20 20 20 20 20 20 20  |,#64            |
000114d0  5c 20 6e 75 6d 62 65 72  20 6f 66 20 70 6f 69 6e  |\ number of poin|
000114e0  74 73 0d 6b c6 04 0d 6b  d0 0d 20 20 2e 67 6c 6f  |ts.k...k..  .glo|
000114f0  6f 70 30 0d 6b da 1a 20  20 20 20 80 20 20 20 20  |op0.k..    .    |
00011500  20 52 32 2c 52 34 2c 23  26 46 46 30 30 0d 6b e4  | R2,R4,#&FF00.k.|
00011510  1f 20 20 20 20 41 44 44  20 20 20 20 20 52 32 2c  |.    ADD     R2,|
00011520  52 32 2c 52 32 2c 4c 53  52 20 23 32 0d 6b ee 20  |R2,R2,LSR #2.k. |
00011530  20 20 20 20 41 44 44 20  20 20 20 20 52 32 2c 52  |    ADD     R2,R|
00011540  32 2c 52 34 2c 4c 53 52  20 23 32 33 0d 6b f8 1a  |2,R4,LSR #23.k..|
00011550  20 20 20 20 53 54 52 42  20 20 20 20 52 36 2c 5b  |    STRB    R6,[|
00011560  52 35 2c 52 32 5d 0d 6c  02 18 20 20 20 20 41 44  |R5,R2].l..    AD|
00011570  44 20 20 20 20 20 52 34  2c 52 34 2c 52 39 0d 6c  |D     R4,R4,R9.l|
00011580  0c 1a 20 20 20 20 80 20  20 20 20 20 52 32 2c 52  |..    .     R2,R|
00011590  34 2c 23 26 46 46 30 30  0d 6c 16 1f 20 20 20 20  |4,#&FF00.l..    |
000115a0  41 44 44 20 20 20 20 20  52 32 2c 52 32 2c 52 32  |ADD     R2,R2,R2|
000115b0  2c 4c 53 52 20 23 32 0d  6c 20 20 20 20 20 20 41  |,LSR #2.l      A|
000115c0  44 44 20 20 20 20 20 52  32 2c 52 32 2c 52 34 2c  |DD     R2,R2,R4,|
000115d0  4c 53 52 20 23 32 33 0d  6c 2a 1a 20 20 20 20 53  |LSR #23.l*.    S|
000115e0  54 52 42 20 20 20 20 52  36 2c 5b 52 35 2c 52 32  |TRB    R6,[R5,R2|
000115f0  5d 0d 6c 34 18 20 20 20  20 41 44 44 20 20 20 20  |].l4.    ADD    |
00011600  20 52 34 2c 52 34 2c 52  39 0d 6c 3e 1a 20 20 20  | R4,R4,R9.l>.   |
00011610  20 53 55 42 53 20 20 20  20 52 31 31 2c 52 31 31  | SUBS    R11,R11|
00011620  2c 23 32 0d 6c 48 16 20  20 20 20 42 47 54 20 20  |,#2.lH.    BGT  |
00011630  20 20 20 67 6c 6f 6f 70  30 0d 6c 52 04 0d 6c 5c  |   gloop0.lR..l\|
00011640  04 0d 6c 66 1f 20 20 4c  44 4d 46 44 20 20 20 52  |..lf.  LDMFD   R|
00011650  31 33 21 2c 7b 52 30 2d  52 31 32 2c 50 43 7d 5e  |13!,{R0-R12,PC}^|
00011660  0d 6c 70 04 0d 6c 7a 11  20 20 2e 64 72 61 77 67  |.lp..lz.  .drawg|
00011670  72 61 70 68 73 0d 6c 84  1f 20 20 53 54 4d 46 44  |raphs.l..  STMFD|
00011680  20 20 20 52 31 33 21 2c  7b 52 30 2d 52 31 32 2c  |   R13!,{R0-R12,|
00011690  52 31 34 7d 0d 6c 8e 04  0d 6c 98 17 20 20 4c 44  |R14}.l...l..  LD|
000116a0  52 20 20 20 20 20 52 38  2c 6b 73 74 6f 72 65 0d  |R     R8,kstore.|
000116b0  6c a2 13 20 20 43 4d 50  20 20 20 20 20 52 38 2c  |l..  CMP     R8,|
000116c0  23 32 0d 6c ac 1f 20 20  4c 44 4d 4c 54 46 44 20  |#2.l..  LDMLTFD |
000116d0  52 31 33 21 2c 7b 52 30  2d 52 31 32 2c 50 43 7d  |R13!,{R0-R12,PC}|
000116e0  5e 0d 6c b6 14 20 20 43  4d 50 20 20 20 20 20 52  |^.l..  CMP     R|
000116f0  38 2c 23 31 30 0d 6c c0  18 20 20 42 4c 54 20 20  |8,#10.l..  BLT  |
00011700  20 20 20 6e 6f 74 6d 75  73 69 63 61 6c 0d 6c ca  |   notmusical.l.|
00011710  14 20 20 43 4d 50 20 20  20 20 20 52 38 2c 23 31  |.  CMP     R8,#1|
00011720  34 0d 6c d4 1f 20 20 4c  44 4d 4c 54 46 44 20 52  |4.l..  LDMLTFD R|
00011730  31 33 21 2c 7b 52 30 2d  52 31 32 2c 50 43 7d 5e  |13!,{R0-R12,PC}^|
00011740  0d 6c de 11 20 20 2e 6e  6f 74 6d 75 73 69 63 61  |.l..  .notmusica|
00011750  6c 0d 6c e8 04 0d 6c f2  1e 20 20 41 44 52 20 20  |l.l...l..  ADR  |
00011760  20 20 20 52 31 32 2c 73  6f 75 6e 64 69 6e 66 6f  |   R12,soundinfo|
00011770  74 61 62 0d 6c fc 14 20  20 4d 4f 56 20 20 20 20  |tab.l..  MOV    |
00011780  20 52 30 2c 52 31 32 0d  6d 06 21 20 20 53 57 49  | R0,R12.m.!  SWI|
00011790  20 20 20 20 20 22 54 72  61 63 6b 65 72 5f 53 6f  |     "Tracker_So|
000117a0  75 6e 64 49 6e 66 6f 22  0d 6d 10 14 20 20 4d 4f  |undInfo".m..  MO|
000117b0  56 20 20 20 20 20 52 31  31 2c 23 34 0d 6d 1a 1c  |V     R11,#4.m..|
000117c0  20 20 41 44 52 20 20 20  20 20 52 33 2c 67 72 61  |  ADR     R3,gra|
000117d0  70 68 70 6f 73 74 61 62  0d 6d 24 1d 20 20 4c 44  |phpostab.m$.  LD|
000117e0  52 20 20 20 20 20 52 39  2c 73 69 6e 63 6f 73 74  |R     R9,sincost|
000117f0  61 62 69 6e 64 0d 6d 2e  1a 20 20 41 44 44 20 20  |abind.m..  ADD  |
00011800  20 20 20 52 31 30 2c 52  39 2c 23 31 30 32 34 0d  |   R10,R9,#1024.|
00011810  6d 38 19 20 20 41 44 52  20 20 20 20 20 52 37 2c  |m8.  ADR     R7,|
00011820  73 70 69 6e 6c 69 73 74  0d 6d 42 04 0d 6d 4c 0d  |spinlist.mB..mL.|
00011830  20 20 2e 64 67 6c 6f 6f  70 0d 6d 56 1b 20 20 20  |  .dgloop.mV.   |
00011840  20 4c 44 52 42 20 20 20  20 52 30 2c 5b 52 33 2c  | LDRB    R0,[R3,|
00011850  23 34 34 5d 0d 6d 60 21  20 20 20 20 4c 44 52 20  |#44].m`!    LDR |
00011860  20 20 20 20 52 31 2c 5b  52 39 2c 52 30 2c 4c 53  |    R1,[R9,R0,LS|
00011870  4c 20 23 32 5d 0d 6d 6a  17 20 20 20 20 4d 4f 56  |L #2].mj.    MOV|
00011880  20 20 20 20 20 52 32 2c  23 31 30 34 0d 6d 74 18  |     R2,#104.mt.|
00011890  20 20 20 20 4d 55 4c 20  20 20 20 20 52 31 2c 52  |    MUL     R1,R|
000118a0  32 2c 52 31 0d 6d 7e 1d  20 20 20 20 4d 4f 56 20  |2,R1.m~.    MOV |
000118b0  20 20 20 20 52 31 2c 52  31 2c 41 53 52 20 23 31  |    R1,R1,ASR #1|
000118c0  35 0d 6d 88 1a 20 20 20  20 41 44 44 20 20 20 20  |5.m..    ADD    |
000118d0  20 52 31 2c 52 31 2c 23  31 36 30 0d 6d 92 1b 20  | R1,R1,#160.m.. |
000118e0  20 20 20 53 54 52 20 20  20 20 20 52 31 2c 5b 52  |   STR     R1,[R|
000118f0  33 2c 23 33 36 5d 0d 6d  9c 22 20 20 20 20 4c 44  |3,#36].m."    LD|
00011900  52 20 20 20 20 20 52 31  2c 5b 52 31 30 2c 52 30  |R     R1,[R10,R0|
00011910  2c 4c 53 4c 20 23 32 5d  0d 6d a6 16 20 20 20 20  |,LSL #2].m..    |
00011920  4d 4f 56 20 20 20 20 20  52 32 2c 23 37 30 0d 6d  |MOV     R2,#70.m|
00011930  b0 18 20 20 20 20 4d 55  4c 20 20 20 20 20 52 31  |..    MUL     R1|
00011940  2c 52 32 2c 52 31 0d 6d  ba 1d 20 20 20 20 4d 4f  |,R2,R1.m..    MO|
00011950  56 20 20 20 20 20 52 31  2c 52 31 2c 41 53 52 20  |V     R1,R1,ASR |
00011960  23 31 35 0d 6d c4 1a 20  20 20 20 41 44 44 20 20  |#15.m..    ADD  |
00011970  20 20 20 52 31 2c 52 31  2c 23 31 32 38 0d 6d ce  |   R1,R1,#128.m.|
00011980  1b 20 20 20 20 53 54 52  20 20 20 20 20 52 31 2c  |.    STR     R1,|
00011990  5b 52 33 2c 23 34 30 5d  0d 6d d8 18 20 20 20 20  |[R3,#40].m..    |
000119a0  41 44 44 20 20 20 20 20  52 30 2c 52 30 2c 23 33  |ADD     R0,R0,#3|
000119b0  0d 6d e2 1b 20 20 20 20  53 54 52 42 20 20 20 20  |.m..    STRB    |
000119c0  52 30 2c 5b 52 33 2c 23  34 34 5d 0d 6d ec 04 0d  |R0,[R3,#44].m...|
000119d0  6d f6 15 20 20 20 20 43  4d 50 20 20 20 20 20 52  |m..    CMP     R|
000119e0  38 2c 23 35 0d 6e 00 1a  20 20 20 20 42 4c 54 20  |8,#5.n..    BLT |
000119f0  20 20 20 20 6e 6f 66 75  6e 6b 79 72 6f 74 0d 6e  |    nofunkyrot.n|
00011a00  0a 04 0d 6e 14 15 20 20  20 20 4d 4f 56 20 20 20  |...n..    MOV   |
00011a10  20 20 52 30 2c 52 33 0d  6e 1e 1b 20 20 20 20 4c  |  R0,R3.n..    L|
00011a20  44 52 42 20 20 20 20 52  31 2c 5b 52 33 2c 23 34  |DRB    R1,[R3,#4|
00011a30  35 5d 0d 6e 28 21 20 20  20 20 4c 44 52 20 20 20  |5].n(!    LDR   |
00011a40  20 20 52 31 2c 5b 52 37  2c 52 31 2c 4c 53 4c 20  |  R1,[R7,R1,LSL |
00011a50  23 32 5d 0d 6e 32 15 20  20 20 20 4d 4f 56 20 20  |#2].n2.    MOV  |
00011a60  20 20 20 52 32 2c 52 33  0d 6e 3c 18 20 20 20 20  |   R2,R3.n<.    |
00011a70  42 4c 20 20 20 20 20 20  6d 75 6c 74 69 70 6c 79  |BL      multiply|
00011a80  0d 6e 46 13 20 20 20 20  2e 6e 6f 66 75 6e 6b 79  |.nF.    .nofunky|
00011a90  72 6f 74 0d 6e 50 04 0d  6e 5a 15 20 20 20 20 43  |rot.nP..nZ.    C|
00011aa0  4d 50 20 20 20 20 20 52  38 2c 23 32 0d 6e 64 1e  |MP     R8,#2.nd.|
00011ab0  20 20 20 20 4c 44 52 45  51 20 20 20 52 30 2c 69  |    LDREQ   R0,i|
00011ac0  64 65 6e 74 69 74 79 69  6e 64 0d 6e 6e 1c 20 20  |dentityind.nn.  |
00011ad0  20 20 53 54 4d 45 51 46  44 20 52 31 33 21 2c 7b  |  STMEQFD R13!,{|
00011ae0  52 34 2d 52 39 7d 0d 6e  78 20 20 20 20 20 4c 44  |R4-R9}.nx     LD|
00011af0  4d 45 51 49 41 20 52 30  2c 7b 52 30 2d 52 32 2c  |MEQIA R0,{R0-R2,|
00011b00  52 34 2d 52 39 7d 0d 6e  82 20 20 20 20 20 53 54  |R4-R9}.n.     ST|
00011b10  4d 45 51 49 41 20 52 33  2c 7b 52 30 2d 52 32 2c  |MEQIA R3,{R0-R2,|
00011b20  52 34 2d 52 39 7d 0d 6e  8c 1c 20 20 20 20 4c 44  |R4-R9}.n..    LD|
00011b30  4d 45 51 46 44 20 52 31  33 21 2c 7b 52 34 2d 52  |MEQFD R13!,{R4-R|
00011b40  39 7d 0d 6e 96 04 0d 6e  a0 1c 20 20 20 20 4c 44  |9}.n...n..    LD|
00011b50  52 20 20 20 20 20 52 30  2c 5b 52 31 32 2c 23 31  |R     R0,[R12,#1|
00011b60  36 5d 0d 6e aa 15 20 20  20 20 43 4d 50 20 20 20  |6].n..    CMP   |
00011b70  20 20 52 30 2c 23 30 0d  6e b4 1a 20 20 20 20 42  |  R0,#0.n..    B|
00011b80  45 51 20 20 20 20 20 6e  75 6c 6c 73 61 6d 70 6c  |EQ     nullsampl|
00011b90  65 0d 6e be 18 20 20 20  20 53 55 42 20 20 20 20  |e.n..    SUB    |
00011ba0  20 52 30 2c 52 30 2c 23  31 0d 6e c8 20 20 20 20  | R0,R0,#1.n.    |
00011bb0  20 41 44 52 20 20 20 20  20 52 31 2c 73 61 6d 70  | ADR     R1,samp|
00011bc0  6c 65 61 64 64 72 74 61  62 0d 6e d2 21 20 20 20  |leaddrtab.n.!   |
00011bd0  20 4c 44 52 20 20 20 20  20 52 30 2c 5b 52 31 2c  | LDR     R0,[R1,|
00011be0  52 30 2c 4c 53 4c 20 23  32 5d 0d 6e dc 1b 20 20  |R0,LSL #2].n..  |
00011bf0  20 20 4c 44 4d 49 41 20  20 20 52 31 32 2c 7b 52  |  LDMIA   R12,{R|
00011c00  31 2c 52 32 7d 0d 6e e6  1c 20 20 20 20 4c 44 52  |1,R2}.n..    LDR|
00011c10  20 20 20 20 20 52 34 2c  5b 52 31 32 2c 23 32 34  |     R4,[R12,#24|
00011c20  5d 0d 6e f0 15 20 20 20  20 43 4d 50 20 20 20 20  |].n..    CMP    |
00011c30  20 52 34 2c 23 30 0d 6e  fa 18 20 20 20 20 42 47  | R4,#0.n..    BG|
00011c40  54 20 20 20 20 20 6f 6b  73 61 6d 70 6c 65 0d 6f  |T     oksample.o|
00011c50  04 13 20 20 20 20 2e 6e  75 6c 6c 73 61 6d 70 6c  |..    .nullsampl|
00011c60  65 0d 6f 0e 23 20 20 20  20 4c 44 52 20 20 20 20  |e.o.#    LDR    |
00011c70  20 52 30 2c 6e 75 6c 6c  73 61 6d 70 6c 65 74 61  | R0,nullsampleta|
00011c80  62 69 6e 64 0d 6f 18 15  20 20 20 20 4d 4f 56 20  |bind.o..    MOV |
00011c90  20 20 20 20 52 31 2c 23  30 0d 6f 22 15 20 20 20  |    R1,#0.o".   |
00011ca0  20 4d 4f 56 20 20 20 20  20 52 32 2c 23 30 0d 6f  | MOV     R2,#0.o|
00011cb0  2c 11 20 20 20 20 2e 6f  6b 73 61 6d 70 6c 65 0d  |,.    .oksample.|
00011cc0  6f 36 15 20 20 20 20 42  4c 20 20 20 20 20 20 67  |o6.    BL      g|
00011cd0  72 61 70 68 0d 6f 40 19  20 20 20 20 41 44 44 20  |raph.o@.    ADD |
00011ce0  20 20 20 20 52 33 2c 52  33 2c 23 34 38 0d 6f 4a  |    R3,R3,#48.oJ|
00011cf0  1b 20 20 20 20 41 44 44  20 20 20 20 20 52 31 32  |.    ADD     R12|
00011d00  2c 52 31 32 2c 23 33 32  0d 6f 54 1a 20 20 20 20  |,R12,#32.oT.    |
00011d10  53 55 42 53 20 20 20 20  52 31 31 2c 52 31 31 2c  |SUBS    R11,R11,|
00011d20  23 31 0d 6f 5e 16 20 20  20 20 42 47 54 20 20 20  |#1.o^.    BGT   |
00011d30  20 20 64 67 6c 6f 6f 70  0d 6f 68 04 0d 6f 72 1f  |  dgloop.oh..or.|
00011d40  20 20 4c 44 4d 46 44 20  20 20 52 31 33 21 2c 7b  |  LDMFD   R13!,{|
00011d50  52 30 2d 52 31 32 2c 50  43 7d 5e 0d 6f 7c 04 0d  |R0-R12,PC}^.o|..|
00011d60  6f 86 0f 20 20 2e 73 70  69 6e 6c 69 73 74 0d 6f  |o..  .spinlist.o|
00011d70  90 13 20 20 45 51 55 44  20 20 20 20 73 70 69 6e  |..  EQUD    spin|
00011d80  31 0d 6f 9a 13 20 20 45  51 55 44 20 20 20 20 73  |1.o..  EQUD    s|
00011d90  70 69 6e 32 0d 6f a4 13  20 20 45 51 55 44 20 20  |pin2.o..  EQUD  |
00011da0  20 20 73 70 69 6e 33 0d  6f ae 14 20 20 45 51 55  |  spin3.o..  EQU|
00011db0  44 20 20 20 20 73 70 69  6e 31 62 0d 6f b8 14 20  |D    spin1b.o.. |
00011dc0  20 45 51 55 44 20 20 20  20 73 70 69 6e 32 62 0d  | EQUD    spin2b.|
00011dd0  6f c2 14 20 20 45 51 55  44 20 20 20 20 73 70 69  |o..  EQUD    spi|
00011de0  6e 33 62 0d 6f cc 04 0d  6f d6 17 20 20 2e 6e 75  |n3b.o...o..  .nu|
00011df0  6c 6c 73 61 6d 70 6c 65  74 61 62 69 6e 64 0d 6f  |llsampletabind.o|
00011e00  e0 1b 20 20 45 51 55 44  20 20 20 20 6e 75 6c 6c  |..  EQUD    null|
00011e10  73 61 6d 70 6c 65 74 61  62 0d 6f ea 04 0d 6f f4  |sampletab.o...o.|
00011e20  12 20 20 2e 69 64 65 6e  74 69 74 79 69 6e 64 0d  |.  .identityind.|
00011e30  6f fe 16 20 20 45 51 55  44 20 20 20 20 69 64 65  |o..  EQUD    ide|
00011e40  6e 74 69 74 79 0d 70 08  04 0d 70 12 12 20 20 2e  |ntity.p...p..  .|
00011e50  67 72 61 70 68 70 6f 73  74 61 62 0d 70 1c 27 20  |graphpostab.p.' |
00011e60  20 45 51 55 44 20 20 20  20 33 32 37 36 38 3a 45  | EQUD    32768:E|
00011e70  51 55 44 20 20 20 20 30  3a 45 51 55 44 20 20 20  |QUD    0:EQUD   |
00011e80  20 30 0d 70 26 27 20 20  45 51 55 44 20 20 20 20  | 0.p&'  EQUD    |
00011e90  30 3a 45 51 55 44 20 20  20 20 33 32 37 36 38 3a  |0:EQUD    32768:|
00011ea0  45 51 55 44 20 20 20 20  30 0d 70 30 27 20 20 45  |EQUD    0.p0'  E|
00011eb0  51 55 44 20 20 20 20 30  3a 45 51 55 44 20 20 20  |QUD    0:EQUD   |
00011ec0  20 30 3a 45 51 55 44 20  20 20 20 33 32 37 36 38  | 0:EQUD    32768|
00011ed0  0d 70 3a 26 20 20 45 51  55 44 20 20 20 20 31 36  |.p:&  EQUD    16|
00011ee0  30 3a 45 51 55 44 20 20  20 20 36 34 3a 45 51 55  |0:EQUD    64:EQU|
00011ef0  42 20 20 20 20 30 0d 70  44 14 20 20 45 51 55 42  |B    0.pD.  EQUB|
00011f00  20 20 20 30 3a 41 4c 49  47 4e 0d 70 4e 04 0d 70  |   0:ALIGN.pN..p|
00011f10  58 27 20 20 45 51 55 44  20 20 20 20 33 32 37 36  |X'  EQUD    3276|
00011f20  38 3a 45 51 55 44 20 20  20 20 30 3a 45 51 55 44  |8:EQUD    0:EQUD|
00011f30  20 20 20 20 30 0d 70 62  27 20 20 45 51 55 44 20  |    0.pb'  EQUD |
00011f40  20 20 20 30 3a 45 51 55  44 20 20 20 20 33 32 37  |   0:EQUD    327|
00011f50  36 38 3a 45 51 55 44 20  20 20 20 30 0d 70 6c 27  |68:EQUD    0.pl'|
00011f60  20 20 45 51 55 44 20 20  20 20 30 3a 45 51 55 44  |  EQUD    0:EQUD|
00011f70  20 20 20 20 30 3a 45 51  55 44 20 20 20 20 33 32  |    0:EQUD    32|
00011f80  37 36 38 0d 70 76 28 20  20 45 51 55 44 20 20 20  |768.pv(  EQUD   |
00011f90  20 32 34 30 3a 45 51 55  44 20 20 20 20 31 32 38  | 240:EQUD    128|
00011fa0  3a 45 51 55 42 20 20 20  20 36 34 0d 70 80 15 20  |:EQUB    64.p.. |
00011fb0  20 45 51 55 42 20 20 20  20 30 3a 41 4c 49 47 4e  | EQUB    0:ALIGN|
00011fc0  0d 70 8a 04 0d 70 94 27  20 20 45 51 55 44 20 20  |.p...p.'  EQUD  |
00011fd0  20 20 33 32 37 36 38 3a  45 51 55 44 20 20 20 20  |  32768:EQUD    |
00011fe0  30 3a 45 51 55 44 20 20  20 20 30 0d 70 9e 27 20  |0:EQUD    0.p.' |
00011ff0  20 45 51 55 44 20 20 20  20 30 3a 45 51 55 44 20  | EQUD    0:EQUD |
00012000  20 20 20 33 32 37 36 38  3a 45 51 55 44 20 20 20  |   32768:EQUD   |
00012010  20 30 0d 70 a8 27 20 20  45 51 55 44 20 20 20 20  | 0.p.'  EQUD    |
00012020  30 3a 45 51 55 44 20 20  20 20 30 3a 45 51 55 44  |0:EQUD    0:EQUD|
00012030  20 20 20 20 33 32 37 36  38 0d 70 b2 29 20 20 45  |    32768.p.)  E|
00012040  51 55 44 20 20 20 20 31  36 30 3a 45 51 55 44 20  |QUD    160:EQUD |
00012050  20 20 20 31 39 32 3a 45  51 55 42 20 20 20 20 31  |   192:EQUB    1|
00012060  32 38 0d 70 bc 15 20 20  45 51 55 42 20 20 20 20  |28.p..  EQUB    |
00012070  30 3a 41 4c 49 47 4e 0d  70 c6 04 0d 70 d0 27 20  |0:ALIGN.p...p.' |
00012080  20 45 51 55 44 20 20 20  20 33 32 37 36 38 3a 45  | EQUD    32768:E|
00012090  51 55 44 20 20 20 20 30  3a 45 51 55 44 20 20 20  |QUD    0:EQUD   |
000120a0  20 30 0d 70 da 27 20 20  45 51 55 44 20 20 20 20  | 0.p.'  EQUD    |
000120b0  30 3a 45 51 55 44 20 20  20 20 33 32 37 36 38 3a  |0:EQUD    32768:|
000120c0  45 51 55 44 20 20 20 20  30 0d 70 e4 27 20 20 45  |EQUD    0.p.'  E|
000120d0  51 55 44 20 20 20 20 30  3a 45 51 55 44 20 20 20  |QUD    0:EQUD   |
000120e0  20 30 3a 45 51 55 44 20  20 20 20 33 32 37 36 38  | 0:EQUD    32768|
000120f0  0d 70 ee 29 20 20 45 51  55 44 20 20 20 20 38 30  |.p.)  EQUD    80|
00012100  3a 45 51 55 44 20 20 20  20 31 32 38 20 3a 45 51  |:EQUD    128 :EQ|
00012110  55 42 20 20 20 20 31 39  32 0d 70 f8 15 20 20 45  |UB    192.p..  E|
00012120  51 55 42 20 20 20 20 30  3a 41 4c 49 47 4e 0d 71  |QUB    0:ALIGN.q|
00012130  02 04 0d 71 0c 07 20 20  5d 0d 71 16 04 0d 71 20  |...q..  ].q...q |
00012140  16 20 20 73 61 6d 70 6c  65 61 64 64 72 74 61 62  |.  sampleaddrtab|
00012150  3d 50 25 0d 71 2a 0d 20  20 50 25 2b 3d 31 32 38  |=P%.q*.  P%+=128|
00012160  0d 71 34 04 0d 71 3e 15  20 20 73 6f 75 6e 64 69  |.q4..q>.  soundi|
00012170  6e 66 6f 74 61 62 3d 50  25 0d 71 48 0d 20 20 50  |nfotab=P%.qH.  P|
00012180  25 2b 3d 32 35 36 0d 71  52 04 0d 71 5c 10 20 20  |%+=256.qR..q\.  |
00012190  70 6c 6f 74 74 61 62 3d  50 25 0d 71 66 0e 20 20  |plottab=P%.qf.  |
000121a0  50 25 2b 3d 32 30 34 38  0d 71 70 31 20 20 f4 20  |P%+=2048.qp1  . |
000121b0  74 79 70 65 20 20 20 20  20 20 6c 69 6e 65 20 20  |type      line  |
000121c0  20 20 73 70 68 65 72 65  20 20 20 62 6c 69 6e 65  |  sphere   bline|
000121d0  20 20 20 20 20 68 65 61  64 0d 71 7a 3a 20 20 f4  |     head.qz:  .|
000121e0  20 62 61 73 65 2b 30 20  20 3d 20 65 66 66 65 63  | base+0  = effec|
000121f0  74 69 76 65 20 61 76 65  72 61 67 65 20 64 69 73  |tive average dis|
00012200  74 61 6e 63 65 20 66 6f  72 20 61 6c 6c 20 74 79  |tance for all ty|
00012210  70 65 73 0d 71 84 2e 20  20 f4 20 62 61 73 65 2b  |pes.q..  . base+|
00012220  34 20 20 3d 20 30 20 20  20 20 20 20 20 31 20 20  |4  = 0       1  |
00012230  20 20 20 20 20 20 32 20  20 20 20 20 20 20 20 20  |      2         |
00012240  33 0d 71 8e 2e 20 20 f4  20 62 61 73 65 2b 38 20  |3.q..  . base+8 |
00012250  20 3d 20 78 41 20 20 20  20 20 20 78 20 20 20 20  | = xA      x    |
00012260  20 20 20 20 78 41 20 20  20 20 20 20 20 20 78 0d  |    xA        x.|
00012270  71 98 2e 20 20 f4 20 62  61 73 65 2b 31 32 20 3d  |q..  . base+12 =|
00012280  20 79 41 20 20 20 20 20  20 79 20 20 20 20 20 20  | yA      y      |
00012290  20 20 79 41 20 20 20 20  20 20 20 20 79 0d 71 a2  |  yA        y.q.|
000122a0  2e 20 20 f4 20 62 61 73  65 2b 31 36 20 3d 20 7a  |.  . base+16 = z|
000122b0  41 20 20 20 20 20 20 7a  20 20 20 20 20 20 20 20  |A      z        |
000122c0  7a 41 20 20 20 20 20 20  20 20 7a 0d 71 ac 32 20  |zA        z.q.2 |
000122d0  20 f4 20 62 61 73 65 2b  32 30 20 3d 20 78 78 20  | . base+20 = xx |
000122e0  20 20 20 20 20 73 69 7a  65 20 20 20 20 20 78 78  |     size     xx|
000122f0  20 20 20 20 20 20 20 20  65 78 70 72 2e 0d 71 b6  |        expr..q.|
00012300  25 20 20 f4 20 62 61 73  65 2b 32 34 20 3d 20 79  |%  . base+24 = y|
00012310  79 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |y               |
00012320  79 79 0d 71 c0 25 20 20  f4 20 62 61 73 65 2b 32  |yy.q.%  . base+2|
00012330  38 20 3d 20 7a 7a 20 20  20 20 20 20 20 20 20 20  |8 = zz          |
00012340  20 20 20 20 20 7a 7a 0d  71 ca 29 20 20 f4 20 62  |     zz.q.)  . b|
00012350  61 73 65 2b 33 32 20 3d  20 6c 65 6e 67 74 68 20  |ase+32 = length |
00012360  20 20 20 20 20 20 20 20  20 20 6c 65 6e 67 74 68  |          length|
00012370  0d 71 d4 04 0d 71 de 10  20 20 73 74 61 72 74 61  |.q...q..  starta|
00012380  62 3d 50 25 0d 71 e8 0d  20 20 50 25 2b 3d 35 31  |b=P%.q..  P%+=51|
00012390  32 0d 71 f2 04 0d 71 fc  12 20 20 73 69 6e 63 6f  |2.q...q..  sinco|
000123a0  73 74 61 62 3d 50 25 0d  72 06 0e 20 20 50 25 2b  |stab=P%.r..  P%+|
000123b0  3d 32 30 34 38 0d 72 10  04 0d 72 1a 16 20 20 6e  |=2048.r...r..  n|
000123c0  75 6c 6c 73 61 6d 70 6c  65 74 61 62 3d 50 25 0d  |ullsampletab=P%.|
000123d0  72 24 0d 20 20 50 25 2b  3d 31 32 38 0d 72 2e 04  |r$.  P%+=128.r..|
000123e0  0d 72 38 0d 20 20 ed 20  70 61 73 73 25 0d 72 42  |.r8.  . pass%.rB|
000123f0  04 0d 72 4c 16 20 20 e3  20 4e 25 3d 30 20 b8 20  |..rL.  . N%=0 . |
00012400  35 31 31 20 88 20 34 0d  72 56 1d 20 20 20 20 73  |511 . 4.rV.    s|
00012410  74 61 72 74 61 62 21 4e  25 3d b3 28 38 31 39 32  |tartab!N%=.(8192|
00012420  30 29 2d 31 0d 72 60 07  20 20 ed 0d 72 6a 04 0d  |0)-1.r`.  ..rj..|
00012430  72 74 17 20 20 e3 20 4e  25 3d 30 20 b8 20 31 30  |rt.  . N%=0 . 10|
00012440  32 33 20 88 20 34 0d 72  7e 2d 20 20 20 20 73 69  |23 . 4.r~-    si|
00012450  6e 63 6f 73 74 61 62 21  28 4e 25 2b 30 29 3d 33  |ncostab!(N%+0)=3|
00012460  32 37 36 38 2a b5 28 4e  25 2a 32 2a af 2f 31 30  |2768*.(N%*2*./10|
00012470  32 34 29 0d 72 88 30 20  20 20 20 73 69 6e 63 6f  |24).r.0    sinco|
00012480  73 74 61 62 21 28 4e 25  2b 31 30 32 34 29 3d 33  |stab!(N%+1024)=3|
00012490  32 37 36 38 2a 9b 28 4e  25 2a 32 2a af 2f 31 30  |2768*.(N%*2*./10|
000124a0  32 34 29 0d 72 92 07 20  20 ed 0d 72 9c 04 0d 72  |24).r..  ..r...r|
000124b0  a6 12 20 20 e3 20 4e 25  3d 30 20 b8 20 31 32 37  |..  . N%=0 . 127|
000124c0  0d 72 b0 1c 20 20 20 20  6e 75 6c 6c 73 61 6d 70  |.r..    nullsamp|
000124d0  6c 65 74 61 62 3f 4e 25  3d 31 32 38 0d 72 ba 07  |letab?N%=128.r..|
000124e0  20 20 ed 0d 72 c4 04 0d  72 ce 1d 20 20 21 73 70  |  ..r...r..  !sp|
000124f0  72 69 74 65 66 69 6c 65  62 61 73 65 3d 73 70 72  |ritefilebase=spr|
00012500  69 74 65 73 0d 72 d8 05  e1 0d 72 e2 04 0d ff     |ites.r....r....|
0001250f