Home » Archimedes archive » Acorn User » AU 1994-Xmas.adf » Programs » StarInfo/Henry/Fly
StarInfo/Henry/Fly
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 » Acorn User » AU 1994-Xmas.adf » Programs |
Filename: | StarInfo/Henry/Fly |
Read OK: | ✔ |
File size: | 431D bytes |
Load address: | 0000 |
Exec address: | 0000 |
File contents
1REM> Fly 2REM> Writen by Morgan Henry LEN1994 3REM> enry@dcs.qmw.ac.uk 4 5fixed_height%=FALSE 6 7ONERROR MODE0:PRINTREPORT$;" at line ";ERL:END 8MODE15:MODE13 9ORIGIN640,512 10frameL=0:frameR=316:frameT=0:frameB=255 11originX=160:originY=40 12 13size%=128:sizes%=7 :REM size%=128 or 256, sizes%=7 or 8 14fp%=10 15dispx%=16 :REM number of visable patches 16dispy%=dispx% 17yshift%=208 :REM controls centre of rotation 18camdrop%=75 :REM base camera height 19pointmod%=(dispx%*2+2)*12 20max3dpts%=32 21gravity%=196 :REM heli weight 22S%=FALSE :REM shadow on/off 23 24DIMsin% (512+128)*4 25DIMdivtable% 4096*4 26DIMpersp% 512*4 27DIMmap% size%*size%*4 28DIMpoints% (dispx%*2+2)*(dispy%*2+2)*12 29DIMbin% dispy%*64*4 30 31PRINTTAB(0,20);"Left Mouse Button to increase power" 32PRINT"Right Mouse Button to decrease power" 33PROCmisc 34PROCass 35PROCshowmap 36!pointmid=points%+( (dispx%*2+2)*(dispy%)*12+dispx%*12 ) 37 38t=1:s=2 39REPEAT 40CLS 41MOVE-640,500:DRAWBY-16*!hpower,0 42CALLupdate 43MOUSETO0,0 44CALLcalcpoints 45CALLdrawpoints 46IF S% CALLdrawshad 47CALLdrawheli 48WAIT:SYS6,112,s:SYS6,113,t:SWAPt,s:SWAP!vdu,vdu!4 49UNTILFALSE 50 51DEFPROCmisc 52PRINT"."; 53k=360/512 54FORi%=0TO(512+127) 55sin%!(i%*4)=(1<<fp%)*SINRAD(i%*k) 56NEXT 57PRINT"."; 58FORi%=0TO511 59y%=512-i% 60persp%!(i%*4)=(300<<fp%)/y% 61NEXT 62PRINT"."; 63FORi%=0TO (dispx%*2+2)*(dispy%*2+2)*3-1 64points%!(i%*4)=&FF<<16 65NEXT 66PRINT"."; 67FORi%=0TO dispy%*64-1 68bin%!(i%*4)=0 69NEXT 70PRINT"."; 71FORi%=1TO639 72divtable%!(i%*4)=(1<<fp%)/i% 73NEXT 74PRINT"."; 75OSCLI("LOAD FlyMap "+STR$~map%) 76ENDPROC 77 78DEFPROCshowmap 79A%=map% 80B%=!vdu 81FORx%=0TOsize%-1:FORy%=0TOsize%-1 82?B%=colours?(!A%AND&FFFF) 83B%+=1:A%+=4 84NEXT 85B%+=320-size% 86NEXT 87Z%=0 88WHILE Z%=0:MOUSE X%,Y%,Z%:ENDWHILE 89ENDPROC 90 91DEFPROCass 92DIMcode% 64000 93 94FORi%=0TO2STEP2 95x=0:y=1:a=2 96sa=3:ca=4 97h=2 98scrx=6:scry=5 99pp=7:b=8 100p=9:t=10 101xx=11:yy=12 102col=14 103 104P%=code% 105[OPTi% 106.vdu DCD 148:DCD -1 107.divtableptr DCD divtable% 108.perspptr DCD persp% 109.sinptr DCD sin% 110.cosptr DCD sin%+(128*4) 111.mapptr DCD map% 112.pointsptr DCD points% 113.pointmid DCD 0 114.binptr DCD bin% 115 116.xpos DCD 0 117.ypos DCD 0 118.height DCD 0 119.rot DCD 0 120 121.calcpoints 122STR r14,retsave 123 124LDR sa,sinptr ;sin a, cos a 125LDR ca,cosptr 126LDR a,rot 127LDR sa,[sa,a,ASL#2] 128LDR ca,[ca,a,ASL#2] 129LDR h,height ;current height 130ADD h,h,#camdrop% 131LDR pp,pointsptr 132LDR b,binptr 133 134LDR xx,xpos 135LDR yy,ypos 136 137 138MVN y,#NOT-dispy% 139.yloop 140MVN x,#NOT-dispx% 141.xloop 142 143AND p,xx,#%1111 144AND t,yy,#%1111 145RSB p,p,x,ASL#4 146RSB t,t,y,ASL#4 147 148MUL scrx,t,sa 149RSB scrx,scrx,#0 150MLA scrx,p,ca,scrx 151MUL scry,t,ca 152MLA scry,p,sa,scry ;scrx<<fp%, scry<<fp% 153MOV scrx,scrx,ASR#6+4 ;shift square size (.XXX) 154MOV scry,scry,ASR#6+4 155 156ADDS scry,scry,#yshift% ;clip squares 157BMI pointout 158CMP scry,#(dispy%*16) 159BGE pointout 160CMN scrx,#NOT-160 161BLT pointout 162CMP scrx,#160 163BGE pointout 164 165ADD p,x,xx,ASR#4 ;get land height 166ADD t,y,yy,ASR#4 167AND p,p,#size%-1 168AND t,t,#size%-1 169ADD t,p,t,ASL#sizes% 170 171LDR p,mapptr 172LDR t,[p,t,ASL#2] 173MOV col,t,LSL#16 ;extract colour 174MOV col,col,LSR#16 175MOV t,t,ASR#16 176 177LDR p,perspptr 178LDR p,[p,scry,ASL#2] ;perspective k 179 180MUL scrx,p,scrx ;apply perspective 181MOV scrx,scrx,ASR#fp% 182 183SUB t,h,t 184MUL t,p,t 185MOV t,t,ASR#fp% 186 187STMIA pp,{scrx,t,col} ;X,Y,col arrange point storage 188MOV scry,scry,ASR#4 189ADD scry,b,scry,ASL#8 ;bin scry * 64*4=256 190LDR t,[scry] ;t=num in bin 191ADD t,t,#1 192STR t,[scry] 193STR pp,[scry,t,ASL#2] 194 195 196.pointout 197ADD pp,pp,#12 ;move to next point 198 199ADD x,x,#1 200CMP x,#dispx% 201BLE xloop 202 203ADD pp,pp,#12 ;adjust for border 204ADD y,y,#1 205CMP y,#dispy% 206BLE yloop 207 208LDR r0,pointmid ;shadow calculation 209LDR r3,[r0,#4] 210STR r3,shadpnts 211 212LDR r15,retsave ;MOV r15,r14 213 214 215.drawshad 216STR r14,retsave 217MOV r0,#0 218LDR r1,shadpnts 219MOV r2,#8 220ADD r3,r1,#4 221MOV r4,#0 222ADD r5,r1,#8 223MVN r6,#NOT-8 224ADD r7,r1,#4 225MOV r8,#0 226BL quad 227LDR r15,retsave 228 229.shadpnts DCD 0 230] 231x1=0:y1=1:x2=2:y2=3:x3=4:y3=5:x4=6:y4=7:col=8 232ct=9:n=10:p=8 233bp=11:b=12 234 235k=0 236[OPTi% 237.retsave DCD 0 238.drawpoints 239STR r14,retsave 240LDR b,binptr 241 242MOV ct,#0 243.binloop 244ADD bp,b,ct,ASL#8 245LDR n,[bp] 246 247MOVS n,n 248BEQ nomore 249.inbin 250LDR p,[bp,n,ASL#2] ;p ptr to de point 251LDMIA p,{x1,y1} 252LDR x2,[p,#12] 253LDR y2,[p,#16] 254CMP x2,#&FF<<16 255LDRNE x3,[p,#pointmod%+12] 256LDRNE y3,[p,#pointmod%+16] 257CMPNE x3,#&FF<<16 258LDRNE x4,[p,#pointmod%] 259LDRNE y4,[p,#pointmod%+4] 260CMPNE x4,#&FF<<16 261 262LDRNE p,[p,#8] 263RSBNE r14,ct,#dispy%-1 264ADDNE p,p,r14 265ADRNE r14,colours 266LDRNEB p,[r14,p] 267BLNE quad 268 269 270SUBS n,n,#1 271BNE inbin 272 273.nomore 274ADD ct,ct,#1 275CMP ct,#dispy% 276BNE binloop 277 278 279.emptybins ;remove bins and delete points 280MOV k,#&FF<<16 281 282MOV ct,#dispy%-1 283.emptyloop 284ADD bp,b,ct,ASL#8 285LDR n,[bp] 286 287MOVS n,n 288BEQ nomore2 289.outbin 290LDR p,[bp,n,ASL#2] ;p ptr to de point 291STR k,[p] 292 293SUBS n,n,#1 294BNE outbin 295STR n,[bp] ;empty bin 296 297.nomore2 298SUBS ct,ct,#1 299BPL emptyloop 300 301LDR r15,retsave 302 303.colours 304FNdata("FFFEFDFCD3D2D1D02F2E2D2C2C2C2C2C") ;grey 305FNdata("ABAAA9A8838281800B0A090808080808") ;light blue 306FNdata("3F3E3D3C131211100706050403020100") ;pink -> red 307FNdata("5F5E5D5C333231300706050404040404") ;peach -> red 308FNdata("63626160434241402322212020202020") ;bright green 309] 310 311ax=0:ay=1:bx=2:by=3 312cx=4:cy=5:dx=6:dy=7 313col=8:t=9 314 315a=10:b=11:c=12 316n=10 317q=11:s=12 318 319xl=0:xr=1:l=2:r=3:ct=4 320c1=5:c2=6:c3=7:c4=8 321o=10:la=11:ra=12 322 323sp=13:link=14:pc=15 324[OPTi% 325.axd EQUD0 326.bxd EQUD0 327.cxd 328.dxd EQUD0 329.ab EQUD0 330.bc EQUD0 331.dc 332.cd EQUD0 333.ac 334.ad EQUD0 335.aa EQUD0 336.dd 337.bb EQUD0 338.cc EQUD0 339.yposq EQUD0 340.ditabd EQUD divtable% 341 342.tri 343STMFD r13!,{r9-r12,r14} 344 345;AND col,col,#&ff 346ADD col,col,col,LSL#8 347ADD col,col,col,LSL#16 348 349ADD ax,ax,#originX 350ADD bx,bx,#originX 351ADD cx,cx,#originX 352 353CMP ay,by ;sort 354MOVGT t,ax 355MOVGT ax,bx 356MOVGT bx,t 357MOVGT t,ay 358MOVGT ay,by 359MOVGT by,t 360CMP by,cy 361MOVGT t,bx 362MOVGT bx,cx 363MOVGT cx,t 364MOVGT t,by 365MOVGT by,cy 366MOVGT cy,t 367CMP ay,by 368MOVGT t,ax 369MOVGT ax,bx 370MOVGT bx,t 371MOVGT t,ay 372MOVGT ay,by 373MOVGT by,t 374 375 376ADD t,ay,#originY 377STR t,yposq 378 379 380STR ax,axd 381STR bx,bxd 382STR cx,cxd 383 384LDR q,ditabd 385SUB t,bx,ax 386SUB n,by,ay 387STR n,aa 388LDR n,[q,n,ASL#2] 389MUL n,t,n 390STR n,ab 391 392SUB t,cx,bx 393SUB n,cy,by 394STR n,bb 395LDR n,[q,n,ASL#2] 396MUL n,t,n 397STR n,bc 398 399SUB t,cx,ax 400SUB n,cy,ay 401LDR n,[q,n,ASL#2] 402MUL n,t,n 403STR n,ac 404 405LDR o,vdu 406ADD t,ay,#originY 407ADD t,t,t,ASL#2 408ADD o,o,t,ASL#6 409 410MOV c1,c4 411MOV c2,c4 412MOV c3,c4 413 414LDR ct,aa 415CMP ct,#0 416LDR t,axd 417MOV l,t,ASL#fp% 418MOV r,t,ASL#fp% 419LDR la,ac 420ADD l,l,#1<<(fp%-1) 421LDR ra,ab 422ADD r,r,#1<<(fp%-1) 423BLNE piece 424 425LDR ct,bb 426CMP ct,#0 427LDR t,bxd 428MOV r,t,ASL#fp% 429LDR ra,bc 430ADD r,r,#1<<(fp%-1) 431BLNE piece 432LDMFD r13!,{r9-r12,r15}^ 433 434.quad ;based on a routine by Jan VDU 435STMFD r13!,{r9-r12,r14} 436 437;AND col,col,#&ff 438ADD col,col,col,LSL#8 439ADD col,col,col,LSL#16 440 441ADD ax,ax,#originX 442ADD bx,bx,#originX 443ADD cx,cx,#originX 444ADD dx,dx,#originX 445 446MOV t,ay ;find smallest (top) y 447CMP t,by 448MOVGT t,by 449CMP t,cy 450MOVGT t,cy 451CMP t,dy 452MOVGT t,dy 453 454.order 455CMP t,ay 456BEQ ok 457FNrot 458B order 459.ok 460 461ADD t,ay,#originY 462STR t,yposq 463 464CMP by,dy 465MOVGT t,bx 466MOVGT s,by 467MOVGT bx,dx 468MOVGT by,dy 469MOVGT dx,t 470MOVGT dy,s 471 472CMP cy,dy 473BGT diamond 474 475CMP cy,by ;DUBIOUS 476MOVLT cy,by ;SOLUTION 477 478STR ax,axd 479STR bx,bxd 480STR cx,cxd 481 482LDR q,ditabd 483SUB t,bx,ax 484SUB n,by,ay 485STR n,aa 486LDR n,[q,n,ASL#2] 487MUL n,t,n 488STR n,ab 489SUB t,dx,ax 490SUB n,dy,ay 491LDR n,[q,n,ASL#2] 492MUL n,t,n 493STR n,ad 494SUB t,cx,bx 495SUB n,cy,by 496STR n,bb 497LDR n,[q,n,ASL#2] 498MUL n,t,n 499STR n,bc 500SUB t,dx,cx 501SUB n,dy,cy 502STR n,cc 503LDR n,[q,n,ASL#2] 504MUL n,t,n 505STR n,cd 506 507LDR o,vdu 508ADD t,ay,#originY 509ADD t,t,t,ASL#2 510ADD o,o,t,ASL#6 511 512MOV c1,c4 513MOV c2,c4 514MOV c3,c4 515 516LDR ct,aa 517CMP ct,#0 518LDR t,axd 519MOV l,t,ASL#fp% 520MOV r,t,ASL#fp% 521LDR la,ad 522ADD l,l,#1<<(fp%-1) 523LDR ra,ab 524ADD r,r,#1<<(fp%-1) 525BLNE piece 526 527LDR ct,bb 528CMP ct,#0 529LDR t,bxd 530MOV r,t,ASL#fp% 531LDR ra,bc 532ADD r,r,#1<<(fp%-1) 533BLNE piece 534 535LDR ct,cc 536CMP ct,#0 537LDR t,cxd 538MOV r,t,ASL#fp% 539LDR ra,cd 540ADD r,r,#1<<(fp%-1) 541BLNE piece 542LDMFD r13!,{r9-r12,r15}^ 543 544 545.diamond 546STR ax,axd 547STR bx,bxd 548STR dx,dxd 549 550LDR q,ditabd 551SUB t,bx,ax 552SUB n,by,ay 553STR n,aa 554LDR n,[q,n,ASL#2] 555MUL n,t,n 556STR n,ab 557 558SUB t,dx,ax 559SUB n,dy,ay 560LDR n,[q,n,ASL#2] 561MUL n,t,n 562STR n,ad 563 564SUB t,cx,bx 565SUB n,cy,by 566LDR n,[q,n,ASL#2] 567MUL n,t,n 568STR n,bc 569 570SUB t,cx,dx 571SUB n,cy,dy 572STR n,cc 573LDR n,[q,n,ASL#2] 574MUL n,t,n 575STR n,dc 576 577SUB n,dy,by 578STR n,dd 579 580LDR o,vdu 581ADD t,ay,#originY 582ADD t,t,t,ASL#2 583ADD o,o,t,ASL#6 584 585MOV c1,c4 586MOV c2,c4 587MOV c3,c4 588 589LDR ct,aa 590CMP ct,#0 591LDR t,axd 592MOV l,t,ASL#fp% 593MOV r,t,ASL#fp% 594LDR la,ad 595ADD l,l,#1<<(fp%-1) 596LDR ra,ab 597ADD r,r,#1<<(fp%-1) 598BLNE piece 599 600LDR ct,dd 601CMP ct,#0 602LDR t,bxd 603MOV r,t,ASL#fp% 604LDR ra,bc 605ADD r,r,#1<<(fp%-1) 606BLNE piece 607 608LDR ct,cc 609CMP ct,#0 610LDR t,dxd 611MOV l,t,ASL#fp% 612LDR la,dc 613ADD l,l,#1<<(fp%-1) 614BLNE piece 615LDMFD r13!,{r9-r12,r15}^ 616 617 618.piece ;STMFD r13!,{r14} 619.lo 620LDR t,yposq 621ADD t,t,#1 622STR t,yposq 623CMP t,#frameT 624BLE endspan 625CMP t,#frameB 626MOVGT r15,r14 ;LDMFDGT r13!,{r15} 627 628CMP l,r 629MOVLT xl,l,ASR#fp% 630MOVLT xr,r,ASR#fp% 631MOVGE xl,r,ASR#fp% 632MOVGE xr,l,ASR#fp% 633 634CMP xl,#frameR 635BGT endspan 636CMP xr,#frameL 637BLT endspan 638CMP xl,#frameL 639MOVLT xl,#frameL 640CMP xr,#frameR 641MOVGT xr,#frameR 642 643ADD xl,o,xl 644ADD xr,o,xr 645 646SUBS t,xr,xl 647BEQ endspan 648CMP t,#2 649STRLSB c1,[xl] 650STRLSB c1,[xr,#-1] 651BLS endspan 652TST xl,#%01 653STRNEB c1,[xl],#1 654TST xl,#%10 655STRNEB c2,[xl],#1 656STRNEB c1,[xl],#1 657TST xr,#%01 658STRNEB c2,[xr,#-1]! 659TST xr,#%10 660STRNEB c1,[xr,#-1]! 661STRNEB c2,[xr,#-1]! 662SUBS t,xr,xl 663MOVS t,t,LSR#3 664STRCS c1,[xl],#4 665MOVS t,t,LSR#1 666STMCSIA (xl)!,{c1,c2} 667 668ADR xr,base 669SUB pc,xr,t,LSL#2 670FNvulc 671.base 672 673.endspan 674ADD l,l,la 675ADD r,r,ra 676ADD o,o,#320 677SUBS ct,ct,#1 678BNE lo 679MOV r15,r14 ;LDMFD r13!,{r15} 680] 681xa=0:ya=1:za=2 682x=0:y=1:z=2 683sxa=3:sya=4:sza=5 684cxa=6:cya=7:cza=8 685n=9:p=10 686i=10 687pnts=11:fs=11 688t1=12:t2=14 689 690x1=0:y1=1:x2=2:y2=3:x3=4:y3=5:x4=6:y4=7:col=8 691vs=12 692 693[OPTi% 694.helip DCD 24 695DCD -5 :DCD 2 :DCD -14 ;0 696DCD -7 :DCD -7 :DCD -4 697DCD -10:DCD 4 :DCD -1 698DCD -9:DCD 4 :DCD 4 699DCD -5 :DCD -6 :DCD 6 700DCD -6 :DCD 0 :DCD 10 ;5 701DCD 6 :DCD 0 :DCD 10 702DCD 5 :DCD -6 :DCD 6 703DCD 9 :DCD 4 :DCD 4 704DCD 10 :DCD 4 :DCD -1 705DCD 7 :DCD -7 :DCD -4 706DCD 5 :DCD 2 :DCD -14 ;11 707 708DCD -3 :DCD 5 :DCD -12 709DCD -6 :DCD 6 :DCD -2 710DCD -5 :DCD 6 :DCD 7 ;14 711DCD 5 :DCD 6 :DCD 7 712DCD 6 :DCD 6 :DCD -2 713DCD 3 :DCD 5 :DCD -12 714 715DCD 0 :DCD 4 :DCD 8 ;18 716DCD -2 :DCD 0 :DCD 10 717DCD -1 :DCD 0 :DCD 44 718DCD 0 :DCD 2 :DCD 40 719DCD 2 :DCD 0 :DCD 10 720DCD 1 :DCD 0 :DCD 44 721 722 723.helif DCD 22 724DCD &07:DCD &00010A0B 725DCD &13:DCD &0104070A 726DCD &13:DCD &04050607 727DCD &11:DCD &FF000201 728DCD &11:DCD &FF0B0A09 729DCD &10:DCD &02030401 730DCD &10:DCD &0A070809 731DCD &12:DCD &FF030504 732DCD &12:DCD &FF070608 733 734DCD &3F:DCD &000B110C 735DCD &3C:DCD &0C11100D 736DCD &13:DCD &0D100F0E 737DCD &12:DCD &0E0F0605 738 739DCD &07:DCD &000C0D02 740DCD &07:DCD &0B091011 741DCD &11:DCD &020D0E03 742DCD &11:DCD &1009080F 743DCD &10:DCD &FF030E05 744DCD &10:DCD &FF0F0806 745 746DCD &12:DCD &16171512 ;tail 747DCD &12:DCD &13121514 748DCD &13:DCD &13141716 749 750 751 752 753.hrot DCD 0 754.hpitch DCD 0 755.hrol DCD 0 756.hx DCD 256<<fp% 757.hy DCD 300<<fp% 758.hheight DCD 0 759.hdx DCD 0 760.hdy DCD 0 761.hdz DCD 0 762.hpower DCD -16 763 764.control 765STMFD r13!,{r14} 766BL update 767BL calcpoints 768BL drawpoints 769BL drawheli 770LDMFD r13!,{r15} 771 772.update 773STMFD r13!,{r14} 774SWI "OS_Mouse" 775CMP r2,#1 776LDRGE r3,hpower 777ADDEQ r3,r3,#2 778STREQ r3,hpower 779CMP r2,#4 780SUBEQ r3,r3,#2 781STREQ r3,hpower 782 783LDR r9,hpitch 784ADD r9,r9,r1,ASR#1 785MOV r9,r9,LSL#23 786MOV r9,r9,LSR#23 787STR r9,hpitch 788 789LDR r3,hrot 790SUB r3,r3,r0,ASR#2 791MOV r3,r3,LSL#23 792MOV r3,r3,LSR#23 793STR r3,hrot 794STR r3,rot 795 796LDR r4,hpower 797LDR r5,sinptr 798LDR r6,cosptr 799 800LDR r7,[r5,r9,ASL#2] 801LDR r8,[r6,r9,ASL#2] 802MUL r8,r4,r8 ;verticle power 803MUL r4,r7,r4 ;forward power 804MOV r4,r4,ASR#fp% 805;MOV r8,r8,ASR#fp% 806 807LDR r7,hdz ;alter dz 808SUB r7,r7,r8,ASR#6 809SUB r7,r7,#gravity% 810STR r7,hdz 811LDR r8,hheight 812] 813IF NOT fixed_height% THEN 814[OPTi% 815ADD r8,r8,r7 816] 817ENDIF 818[OPTi% 819STR r8,hheight 820 821MOV r8,r8,ASR#fp%+1 ;figure out cam angle 822ADD r8,r8,#camdrop% 823STR r8,height 824 825LDR r5,[r5,r3,ASL#2] 826LDR r6,[r6,r3,ASL#2] 827MUL r5,r4,r5 828MUL r6,r4,r6 829 830LDR r7,hdx 831LDR r8,hdy 832ADD r7,r7,r5,ASR#6 833ADD r8,r8,r6,ASR#6 834MOV r9,r7,ASR#4 ;dec dx/dy (air res) 835MOV r10,r8,ASR#4 836SUB r7,r7,r9 837SUB r8,r8,r10 838STR r7,hdx 839STR r8,hdy 840 841LDR r9,hx 842LDR r10,hy 843ADD r9,r9,r7 844ADD r10,r10,r8 845STR r9,hx 846STR r10,hy 847MOV r9,r9,ASR#fp% 848MOV r10,r10,ASR#fp% 849STR r9,xpos 850STR r10,ypos 851 852 853LDMFD r13!,{r15} 854 855.drawheli 856STMFD r13!,{r14} 857ADR r11,helip ;drawheli 858ADR r12,helif 859LDR r0,hpitch 860MOV r1,#0 861MOV r2,#0 862MOV r3,#0 863LDR r6,height 864LDR r7,hheight 865SUB r4,r6,r7,ASR#fp% 866MOV r5,#0 867BL drawobj 868LDMFD r13!,{r15} 869 870.objx DCD 0 871.objy DCD 0 872.objz DCD 0 873.faces DCD 0 874.drawobj ;r0=xa, r1=ya, r2=za, r11=pntptr, r12 faceptr 875STR r14,retsave ;r3=x, r4=y, r5=z 876;STR r3,objx 877STR r4,objy 878;STR r5,objz 879STR r12,faces 880 881LDR p,sinptr 882LDR sxa,[p,xa,ASL#2] 883LDR sya,[p,ya,ASL#2] 884LDR sza,[p,za,ASL#2] 885LDR p,cosptr 886LDR cxa,[p,xa,ASL#2] 887LDR cya,[p,ya,ASL#2] 888LDR cza,[p,za,ASL#2] 889 890ADR i,image 891LDR n,[pnts],#4 ;num of points 892 893.pobjloop 894LDMIA pnts !,{x,y,z} 895MUL t2,z,sxa ;rot x 896RSB t2,t2,#0 897MLA t1,y,cxa,t2 898MUL t2,y,sxa 899MLA t2,z,cxa,t2 900MOV y,t1,ASR#fp% 901MOV z,t2,ASR#fp% 902 903MUL t2,z,sya ;rot y 904RSB t2,t2,#0 905MLA t1,x,cya,t2 906MUL t2,x,sya 907MLA t2,z,cya,t2 908MOV x,t1,ASR#fp% 909MOV z,t2,ASR#fp% 910 911MUL t2,y,sza ;rot z 912RSB t2,t2,#0 913MLA t1,x,cza,t2 914MUL t2,x,sza 915MLA t2,y,cza,t2 916MOV x,t1,ASR#fp% 917MOV y,t2,ASR#fp% 918 919LDR t1,objy ;adjust coords 920;LDR t2,objz 921ADD y,y,t1 922;ADD z,z,t2 923ADD z,z,#yshift% 924 925LDR t1,perspptr ;apply perspective 926LDR t1,[t1,z,ASL#2] 927MUL x,t1,x 928MUL y,t1,y 929MOV x,x,ASR#fp% 930MOV y,y,ASR#fp% 931STMIA i !,{x,y} 932;BL plot 933 934SUBS n,n,#1 935BNE pobjloop 936 937LDR fs,faces ;draw polies 938LDR n,[fs],#4 939ADR i,image 940 941.fobjloop 942LDMIA fs !,{col,vs} ;load colour and verts (T|4;3;2;1) 943 944AND t2,vs,#&FF 945ADD t2,i,t2,LSL#3 946LDMIA t2,{x1,y1} 947 948MOV vs,vs,LSR#8 949AND t2,vs,#&FF 950ADD t2,i,t2,LSL#3 951LDMIA t2,{x2,y2} 952 953MOV vs,vs,LSR#8 954AND t2,vs,#&FF 955ADD t2,i,t2,LSL#3 956LDMIA t2,{x3,y3} 957 958SUB y4,x2,x1 ;clip backwards (x4,y4-temps) 959SUB x4,y3,y2 960MUL x4,y4,x4 961SUB y4,y2,y1 962SUB t2,x3,x2 963MUL y4,t2,y4 964CMP x4,y4 965BLT ycanne ;y'canne see it 966 967MOV vs,vs,LSR#8 968CMP vs,#&FF ;teST, &FF-tri 969ANDNE t2,vs,#&FF 970ADDNE t2,i,t2,LSL#3 971LDMNEIA t2,{x4,y4} 972BLNE quad 973BLEQ tri 974 975.ycanne 976SUBS n,n,#1 977BNE fobjloop 978 979LDR r15,retsave ;MOV r15,r14 980.image FNgap(max3dpts%*8) 981 982 983]NEXT 984PRINTP%-code% 985SYS"OS_ReadVduVariables",vdu,vdu 986vdu!4=!vdu+256*320 987ENDPROC 988 989DEFFNvulc 990FORj%=1TO20 991[OPTi% 992STMIA (xl)!,{c1,c2,c3,c4} 993]NEXT 994="" 995 996DEFFNrot 997[OPTi% 998MOV s,ax 999MOV ax,bx 1000MOV bx,cx 1001MOV cx,dx 1002MOV dx,s 1003MOV s,ay 1004MOV ay,by 1005MOV by,cy 1006MOV cy,dy 1007MOV dy,s 1008] 1009=0 1010 1011DEFFNgap(g%) 1012P%=P%+g% 1013=0 1014 1015DEFFNdata(a$) 1016FORg%=1 TO LENa$-1 STEP2 1017?P%=EVAL("&"+MID$(a$,g%,2)) 1018P%?1=EVAL("&"+MID$(a$,g%,2)) 1019P%+=2 1020NEXT 1021=0
�> Fly #�> Writen by Morgan Henry �1994 �> enry@dcs.qmw.ac.uk fixed_height%=� � �0:�$;" at line ";�:� �15:�13 ȑ640,512 +frameL=0:frameR=316:frameT=0:frameB=255 originX=160:originY=40 :size%=128:sizes%=7 :� size%=128 or 256, sizes%=7 or 8 fp%=10 4dispx%=16 :� number of visable patches dispy%=dispx% 6yshift%=208 :� controls centre of rotation -camdrop%=75 :� base camera height pointmod%=(dispx%*2+2)*12 max3dpts%=32 &gravity%=196 :� heli weight $S%=� :� shadow on/off �sin% (512+128)*4 �divtable% 4096*4 �persp% 512*4 �map% size%*size%*4 )�points% (dispx%*2+2)*(dispy%*2+2)*12 �bin% dispy%*64*4 1�0,20);"Left Mouse Button to increase power" +�"Right Mouse Button to decrease power" ! �misc "�ass #�showmap $<!pointmid=points%+( (dispx%*2+2)*(dispy%)*12+dispx%*12 ) % &t=1:s=2 '� (� )�-640,500:�BY-16*!hpower,0 *�update + ȗ�0,0 ,�calcpoints -�drawpoints .� S% �drawshad / �drawheli 0-Ȗ:ș6,112,s:ș6,113,t:Ȕt,s:Ȕ!vdu,vdu!4 1�� 2 3 ��misc 4 �"."; 5 k=360/512 6�i%=0�(512+127) 7!sin%!(i%*4)=(1<<fp%)*��(i%*k) 8� 9 �"."; : �i%=0�511 ; y%=512-i% <persp%!(i%*4)=(300<<fp%)/y% =� > �"."; ?(�i%=0� (dispx%*2+2)*(dispy%*2+2)*3-1 @points%!(i%*4)=&FF<<16 A� B �"."; C�i%=0� dispy%*64-1 Dbin%!(i%*4)=0 E� F �"."; G �i%=1�639 H divtable%!(i%*4)=(1<<fp%)/i% I� J �"."; K�("LOAD FlyMap "+�~map%) L� M N ��showmap OA%=map% PB%=!vdu Q�x%=0�size%-1:�y%=0�size%-1 R?B%=colours?(!A%�&FFFF) SB%+=1:A%+=4 T� UB%+=320-size% V� WZ%=0 Xȕ Z%=0:ȗ X%,Y%,Z%:� Y� Z [ ��ass \�code% 64000 ] ^ �i%=0�2�2 _x=0:y=1:a=2 ` sa=3:ca=4 ah=2 bscrx=6:scry=5 cpp=7:b=8 dp=9:t=10 exx=11:yy=12 f col=14 g hP%=code% i [OPTi% j.vdu DCD 148:DCD -1 k.divtableptr DCD divtable% l.perspptr DCD persp% m.sinptr DCD sin% n.cosptr DCD sin%+(128*4) o.mapptr DCD map% p.pointsptr DCD points% q.pointmid DCD 0 r.binptr DCD bin% s t.xpos DCD 0 u.ypos DCD 0 v.height DCD 0 w.rot DCD 0 x y.calcpoints zSTR r14,retsave { |,LDR sa,sinptr ;sin a, cos a }LDR ca,cosptr ~ LDR a,rot LDR sa,[sa,a,ASL#2] �LDR ca,[ca,a,ASL#2] �.LDR h,height ;current height �ADD h,h,#camdrop% �LDR pp,pointsptr �LDR b,binptr � �LDR xx,xpos �LDR yy,ypos � � �MVN y,#�-dispy% � .yloop �MVN x,#�-dispx% � .xloop � �� p,xx,#%1111 �� t,yy,#%1111 �RSB p,p,x,ASL#4 �RSB t,t,y,ASL#4 � �MUL scrx,t,sa �RSB scrx,scrx,#0 �MLA scrx,p,ca,scrx �MUL scry,t,ca �5MLA scry,p,sa,scry ;scrx<<fp%, scry<<fp% �9MOV scrx,scrx,ASR#6+4 ;shift square size (.XXX) �MOV scry,scry,ASR#6+4 � �-ADDS scry,scry,#yshift% ;clip squares �BMI pointout �CMP scry,#(dispy%*16) �BGE pointout �CMN scrx,#�-160 �BLT pointout �CMP scrx,#160 �BGE pointout � �.ADD p,x,xx,ASR#4 ;get land height �ADD t,y,yy,ASR#4 �� p,p,#size%-1 �� t,t,#size%-1 �ADD t,p,t,ASL#sizes% � �LDR p,mapptr �LDR t,[p,t,ASL#2] �-MOV col,t,LSL#16 ;extract colour �MOV col,col,LSR#16 �MOV t,t,ASR#16 � �LDR p,perspptr �,LDR p,[p,scry,ASL#2] ;perspective k � �0MUL scrx,p,scrx ;apply perspective �MOV scrx,scrx,ASR#fp% � � SUB t,h,t � MUL t,p,t �MOV t,t,ASR#fp% � �>STMIA pp,{scrx,t,col} ;X,Y,col arrange point storage �MOV scry,scry,ASR#4 �4ADD scry,b,scry,ASL#8 ;bin scry * 64*4=256 �-LDR t,[scry] ;t=num in bin �ADD t,t,#1 �STR t,[scry] �STR pp,[scry,t,ASL#2] � � � .pointout �0ADD pp,pp,#12 ;move to next point � �ADD x,x,#1 �CMP x,#dispx% � BLE xloop � �.ADD pp,pp,#12 ;adjust for border �ADD y,y,#1 �CMP y,#dispy% � BLE yloop � �-LDR r0,pointmid ;shadow calculation �LDR r3,[r0,#4] �STR r3,shadpnts � �&LDR r15,retsave ;MOV r15,r14 � � � .drawshad �STR r14,retsave � MOV r0,#0 �LDR r1,shadpnts � MOV r2,#8 �ADD r3,r1,#4 � MOV r4,#0 �ADD r5,r1,#8 �MVN r6,#�-8 �ADD r7,r1,#4 � MOV r8,#0 �BL quad �LDR r15,retsave � �.shadpnts DCD 0 �] �1x1=0:y1=1:x2=2:y2=3:x3=4:y3=5:x4=6:y4=7:col=8 �ct=9:n=10:p=8 �bp=11:b=12 � �k=0 � [OPTi% �.retsave DCD 0 �.drawpoints �STR r14,retsave �LDR b,binptr � � MOV ct,#0 �.binloop �ADD bp,b,ct,ASL#8 �LDR n,[bp] � �MOVS n,n �BEQ nomore � .inbin �1LDR p,[bp,n,ASL#2] ;p ptr to de point �LDMIA p,{x1,y1} �LDR x2,[p,#12] �LDR y2,[p,#16] �CMP x2,#&FF<<16 �LDRNE x3,[p,#pointmod%+12] LDRNE y3,[p,#pointmod%+16] CMPNE x3,#&FF<<16 LDRNE x4,[p,#pointmod%] LDRNE y4,[p,#pointmod%+4] CMPNE x4,#&FF<<16 LDRNE p,[p,#8] RSBNE r14,ct,#dispy%-1 ADDNE p,p,r14 ADRNE r14,colours LDRNEB p,[r14,p] BLNE quad SUBS n,n,#1 BNE inbin .nomore ADD ct,ct,#1 CMP ct,#dispy% BNE binloop =.emptybins ;remove bins and delete points MOV k,#&FF<<16 MOV ct,#dispy%-1 .emptyloop ADD bp,b,ct,ASL#8 LDR n,[bp] MOVS n,n BEQ nomore2 !.outbin "1LDR p,[bp,n,ASL#2] ;p ptr to de point # STR k,[p] $ %SUBS n,n,#1 &BNE outbin ')STR n,[bp] ;empty bin ( ).nomore2 *SUBS ct,ct,#1 +BPL emptyloop , -LDR r15,retsave . /.colours 03�data("FFFEFDFCD3D2D1D02F2E2D2C2C2C2C2C") ;grey 19�data("ABAAA9A8838281800B0A090808080808") ;light blue 2:�data("3F3E3D3C131211100706050403020100") ;pink -> red 3;�data("5F5E5D5C333231300706050404040404") ;peach -> red 4;�data("63626160434241402322212020202020") ;bright green 5] 6 7ax=0:ay=1:bx=2:by=3 8cx=4:cy=5:dx=6:dy=7 9 col=8:t=9 : ;a=10:b=11:c=12 <n=10 = q=11:s=12 > ?xl=0:xr=1:l=2:r=3:ct=4 @c1=5:c2=6:c3=7:c4=8 Ao=10:la=11:ra=12 B Csp=13:link=14:pc=15 D [OPTi% E.axd EQUD0 F.bxd EQUD0 G.cxd H.dxd EQUD0 I .ab EQUD0 J .bc EQUD0 K.dc L .cd EQUD0 M.ac N .ad EQUD0 O .aa EQUD0 P.dd Q .bb EQUD0 R .cc EQUD0 S.yposq EQUD0 T.ditabd EQUD divtable% U V.tri WSTMFD r13!,{r9-r12,r14} X Y;� col,col,#&ff ZADD col,col,col,LSL#8 [ADD col,col,col,LSL#16 \ ]ADD ax,ax,#originX ^ADD bx,bx,#originX _ADD cx,cx,#originX ` aCMP ay,by ;sort bMOVGT t,ax cMOVGT ax,bx dMOVGT bx,t eMOVGT t,ay fMOVGT ay,by gMOVGT by,t h CMP by,cy iMOVGT t,bx jMOVGT bx,cx kMOVGT cx,t lMOVGT t,by mMOVGT by,cy nMOVGT cy,t oCMP ay,by pMOVGT t,ax qMOVGT ax,bx rMOVGT bx,t sMOVGT t,ay tMOVGT ay,by uMOVGT by,t v w xADD t,ay,#originY ySTR t,yposq z { |STR ax,axd }STR bx,bxd ~STR cx,cxd �LDR q,ditabd �SUB t,bx,ax �SUB n,by,ay �STR n,aa �LDR n,[q,n,ASL#2] � MUL n,t,n �STR n,ab � �SUB t,cx,bx �SUB n,cy,by �STR n,bb �LDR n,[q,n,ASL#2] � MUL n,t,n �STR n,bc � �SUB t,cx,ax �SUB n,cy,ay �LDR n,[q,n,ASL#2] � MUL n,t,n �STR n,ac � � LDR o,vdu �ADD t,ay,#originY �ADD t,t,t,ASL#2 �ADD o,o,t,ASL#6 � � MOV c1,c4 � MOV c2,c4 � MOV c3,c4 � � LDR ct,aa � CMP ct,#0 � LDR t,axd �MOV l,t,ASL#fp% �MOV r,t,ASL#fp% � LDR la,ac �ADD l,l,#1<<(fp%-1) � LDR ra,ab �ADD r,r,#1<<(fp%-1) �BLNE piece � � LDR ct,bb � CMP ct,#0 � LDR t,bxd �MOV r,t,ASL#fp% � LDR ra,bc �ADD r,r,#1<<(fp%-1) �BLNE piece �LDMFD r13!,{r9-r12,r15}^ � �9.quad ;based on a routine by Jan � �STMFD r13!,{r9-r12,r14} � �;� col,col,#&ff �ADD col,col,col,LSL#8 �ADD col,col,col,LSL#16 � �ADD ax,ax,#originX �ADD bx,bx,#originX �ADD cx,cx,#originX �ADD dx,dx,#originX � �$MOV t,ay ;find smallest (top) y �CMP t,by �MOVGT t,by �CMP t,cy �MOVGT t,cy �CMP t,dy �MOVGT t,dy � � .order �CMP t,ay � BEQ ok ��rot �B order �.ok � �ADD t,ay,#originY �STR t,yposq � � CMP by,dy �MOVGT t,bx �MOVGT s,by �MOVGT bx,dx �MOVGT by,dy �MOVGT dx,t �MOVGT dy,s � � CMP cy,dy �BGT diamond � �$CMP cy,by ;DUBIOUS �%MOVLT cy,by ;SOLUTION � �STR ax,axd �STR bx,bxd �STR cx,cxd � �LDR q,ditabd �SUB t,bx,ax �SUB n,by,ay �STR n,aa �LDR n,[q,n,ASL#2] � MUL n,t,n �STR n,ab �SUB t,dx,ax �SUB n,dy,ay �LDR n,[q,n,ASL#2] � MUL n,t,n �STR n,ad �SUB t,cx,bx �SUB n,cy,by �STR n,bb �LDR n,[q,n,ASL#2] � MUL n,t,n �STR n,bc �SUB t,dx,cx �SUB n,dy,cy �STR n,cc �LDR n,[q,n,ASL#2] � MUL n,t,n �STR n,cd � � LDR o,vdu �ADD t,ay,#originY �ADD t,t,t,ASL#2 �ADD o,o,t,ASL#6 � MOV c1,c4 MOV c2,c4 MOV c3,c4 LDR ct,aa CMP ct,#0 LDR t,axd MOV l,t,ASL#fp% MOV r,t,ASL#fp% LDR la,ad ADD l,l,#1<<(fp%-1) LDR ra,ab ADD r,r,#1<<(fp%-1) BLNE piece LDR ct,bb CMP ct,#0 LDR t,bxd MOV r,t,ASL#fp% LDR ra,bc ADD r,r,#1<<(fp%-1) BLNE piece LDR ct,cc CMP ct,#0 LDR t,cxd MOV r,t,ASL#fp% LDR ra,cd ADD r,r,#1<<(fp%-1) BLNE piece LDMFD r13!,{r9-r12,r15}^ !.diamond "STR ax,axd #STR bx,bxd $STR dx,dxd % &LDR q,ditabd 'SUB t,bx,ax (SUB n,by,ay )STR n,aa *LDR n,[q,n,ASL#2] + MUL n,t,n ,STR n,ab - .SUB t,dx,ax /SUB n,dy,ay 0LDR n,[q,n,ASL#2] 1 MUL n,t,n 2STR n,ad 3 4SUB t,cx,bx 5SUB n,cy,by 6LDR n,[q,n,ASL#2] 7 MUL n,t,n 8STR n,bc 9 :SUB t,cx,dx ;SUB n,cy,dy <STR n,cc =LDR n,[q,n,ASL#2] > MUL n,t,n ?STR n,dc @ ASUB n,dy,by BSTR n,dd C D LDR o,vdu EADD t,ay,#originY FADD t,t,t,ASL#2 GADD o,o,t,ASL#6 H I MOV c1,c4 J MOV c2,c4 K MOV c3,c4 L M LDR ct,aa N CMP ct,#0 O LDR t,axd PMOV l,t,ASL#fp% QMOV r,t,ASL#fp% R LDR la,ad SADD l,l,#1<<(fp%-1) T LDR ra,ab UADD r,r,#1<<(fp%-1) VBLNE piece W X LDR ct,dd Y CMP ct,#0 Z LDR t,bxd [MOV r,t,ASL#fp% \ LDR ra,bc ]ADD r,r,#1<<(fp%-1) ^BLNE piece _ ` LDR ct,cc a CMP ct,#0 b LDR t,dxd cMOV l,t,ASL#fp% d LDR la,dc eADD l,l,#1<<(fp%-1) fBLNE piece gLDMFD r13!,{r9-r12,r15}^ h i j.piece ;STMFD r13!,{r14} k.lo lLDR t,yposq mADD t,t,#1 nSTR t,yposq oCMP t,#frameT pBLE endspan qCMP t,#frameB r/MOVGT r15,r14 ;LDMFDGT r13!,{r15} s tCMP l,r uMOVLT xl,l,ASR#fp% vMOVLT xr,r,ASR#fp% wMOVGE xl,r,ASR#fp% xMOVGE xr,l,ASR#fp% y zCMP xl,#frameR {BGT endspan |CMP xr,#frameL }BLT endspan ~CMP xl,#frameL MOVLT xl,#frameL �CMP xr,#frameR �MOVGT xr,#frameR � �ADD xl,o,xl �ADD xr,o,xr � �SUBS t,xr,xl �BEQ endspan �CMP t,#2 �STRLSB c1,[xl] �STRLSB c1,[xr,#-1] �BLS endspan �TST xl,#%01 �STRNEB c1,[xl],#1 �TST xl,#%10 �STRNEB c2,[xl],#1 �STRNEB c1,[xl],#1 �TST xr,#%01 �STRNEB c2,[xr,#-1]! �TST xr,#%10 �STRNEB c1,[xr,#-1]! �STRNEB c2,[xr,#-1]! �SUBS t,xr,xl �MOVS t,t,LSR#3 �STRCS c1,[xl],#4 �MOVS t,t,LSR#1 �STMCSIA (xl)!,{c1,c2} � �ADR xr,base �SUB pc,xr,t,LSL#2 � �vulc � .base � �.endspan �ADD l,l,la �ADD r,r,ra �ADD o,o,#320 �SUBS ct,ct,#1 � BNE lo �/MOV r15,r14 ;LDMFD r13!,{r15} �] �xa=0:ya=1:za=2 �x=0:y=1:z=2 �sxa=3:sya=4:sza=5 �cxa=6:cya=7:cza=8 �n=9:p=10 �i=10 �pnts=11:fs=11 �t1=12:t2=14 � �1x1=0:y1=1:x2=2:y2=3:x3=4:y3=5:x4=6:y4=7:col=8 � vs=12 � � [OPTi% �.helip DCD 24 �%DCD -5 :DCD 2 :DCD -14 ;0 �DCD -7 :DCD -7 :DCD -4 �DCD -10:DCD 4 :DCD -1 �DCD -9:DCD 4 :DCD 4 �DCD -5 :DCD -6 :DCD 6 �%DCD -6 :DCD 0 :DCD 10 ;5 �DCD 6 :DCD 0 :DCD 10 �DCD 5 :DCD -6 :DCD 6 �DCD 9 :DCD 4 :DCD 4 �DCD 10 :DCD 4 :DCD -1 �DCD 7 :DCD -7 :DCD -4 �&DCD 5 :DCD 2 :DCD -14 ;11 � �DCD -3 :DCD 5 :DCD -12 �DCD -6 :DCD 6 :DCD -2 �%DCD -5 :DCD 6 :DCD 7 ;14 �DCD 5 :DCD 6 :DCD 7 �DCD 6 :DCD 6 :DCD -2 �DCD 3 :DCD 5 :DCD -12 � �%DCD 0 :DCD 4 :DCD 8 ;18 �DCD -2 :DCD 0 :DCD 10 �DCD -1 :DCD 0 :DCD 44 �DCD 0 :DCD 2 :DCD 40 �DCD 2 :DCD 0 :DCD 10 �DCD 1 :DCD 0 :DCD 44 � � �.helif DCD 22 �DCD &07:DCD &00010A0B �DCD &13:DCD &0104070A �DCD &13:DCD &04050607 �DCD &11:DCD &FF000201 �DCD &11:DCD &FF0B0A09 �DCD &10:DCD &02030401 �DCD &10:DCD &0A070809 �DCD &12:DCD &FF030504 �DCD &12:DCD &FF070608 � �DCD &3F:DCD &000B110C �DCD &3C:DCD &0C11100D �DCD &13:DCD &0D100F0E �DCD &12:DCD &0E0F0605 � �DCD &07:DCD &000C0D02 �DCD &07:DCD &0B091011 �DCD &11:DCD &020D0E03 �DCD &11:DCD &1009080F �DCD &10:DCD &FF030E05 �DCD &10:DCD &FF0F0806 � �#DCD &12:DCD &16171512 ;tail �DCD &12:DCD &13121514 �DCD &13:DCD &13141716 � � � � �.hrot DCD 0 �.hpitch DCD 0 �.hrol DCD 0 �.hx DCD 256<<fp% �.hy DCD 300<<fp% �.hheight DCD 0 �.hdx DCD 0 �.hdy DCD 0 �.hdz DCD 0 �.hpower DCD -16 � �.control �STMFD r13!,{r14} � BL update �BL calcpoints BL drawpoints BL drawheli LDMFD r13!,{r15} .update STMFD r13!,{r14} SWI "OS_Mouse" CMP r2,#1 LDRGE r3,hpower ADDEQ r3,r3,#2 STREQ r3,hpower CMP r2,#4 SUBEQ r3,r3,#2 STREQ r3,hpower LDR r9,hpitch ADD r9,r9,r1,ASR#1 MOV r9,r9,LSL#23 MOV r9,r9,LSR#23 STR r9,hpitch LDR r3,hrot SUB r3,r3,r0,ASR#2 MOV r3,r3,LSL#23 MOV r3,r3,LSR#23 STR r3,hrot STR r3,rot LDR r4,hpower LDR r5,sinptr LDR r6,cosptr LDR r7,[r5,r9,ASL#2] !LDR r8,[r6,r9,ASL#2] "/MUL r8,r4,r8 ;verticle power #.MUL r4,r7,r4 ;forward power $MOV r4,r4,ASR#fp% %;MOV r8,r8,ASR#fp% & '(LDR r7,hdz ;alter dz (SUB r7,r7,r8,ASR#6 )SUB r7,r7,#gravity% *STR r7,hdz +LDR r8,hheight ,] -� � fixed_height% � . [OPTi% /ADD r8,r8,r7 0] 1� 2 [OPTi% 3STR r8,hheight 4 53MOV r8,r8,ASR#fp%+1 ;figure out cam angle 6ADD r8,r8,#camdrop% 7STR r8,height 8 9LDR r5,[r5,r3,ASL#2] :LDR r6,[r6,r3,ASL#2] ;MUL r5,r4,r5 <MUL r6,r4,r6 = >LDR r7,hdx ?LDR r8,hdy @ADD r7,r7,r5,ASR#6 AADD r8,r8,r6,ASR#6 B3MOV r9,r7,ASR#4 ;dec dx/dy (air res) CMOV r10,r8,ASR#4 DSUB r7,r7,r9 ESUB r8,r8,r10 FSTR r7,hdx GSTR r8,hdy H I LDR r9,hx JLDR r10,hy KADD r9,r9,r7 LADD r10,r10,r8 M STR r9,hx NSTR r10,hy OMOV r9,r9,ASR#fp% PMOV r10,r10,ASR#fp% QSTR r9,xpos RSTR r10,ypos S T ULDMFD r13!,{r15} V W .drawheli XSTMFD r13!,{r14} Y'ADR r11,helip ;drawheli ZADR r12,helif [LDR r0,hpitch \ MOV r1,#0 ] MOV r2,#0 ^ MOV r3,#0 _LDR r6,height `LDR r7,hheight aSUB r4,r6,r7,ASR#fp% b MOV r5,#0 cBL drawobj dLDMFD r13!,{r15} e f.objx DCD 0 g.objy DCD 0 h.objz DCD 0 i.faces DCD 0 jB.drawobj ;r0=xa, r1=ya, r2=za, r11=pntptr, r12 faceptr k&STR r14,retsave ;r3=x, r4=y, r5=z l;STR r3,objx mSTR r4,objy n;STR r5,objz oSTR r12,faces p qLDR p,sinptr rLDR sxa,[p,xa,ASL#2] sLDR sya,[p,ya,ASL#2] tLDR sza,[p,za,ASL#2] uLDR p,cosptr vLDR cxa,[p,xa,ASL#2] wLDR cya,[p,ya,ASL#2] xLDR cza,[p,za,ASL#2] y zADR i,image {,LDR n,[pnts],#4 ;num of points | } .pobjloop ~LDMIA pnts !,{x,y,z} $MUL t2,z,sxa ;rot x �RSB t2,t2,#0 �MLA t1,y,cxa,t2 �MUL t2,y,sxa �MLA t2,z,cxa,t2 �MOV y,t1,ASR#fp% �MOV z,t2,ASR#fp% � �$MUL t2,z,sya ;rot y �RSB t2,t2,#0 �MLA t1,x,cya,t2 �MUL t2,x,sya �MLA t2,z,cya,t2 �MOV x,t1,ASR#fp% �MOV z,t2,ASR#fp% � �$MUL t2,y,sza ;rot z �RSB t2,t2,#0 �MLA t1,x,cza,t2 �MUL t2,x,sza �MLA t2,y,cza,t2 �MOV x,t1,ASR#fp% �MOV y,t2,ASR#fp% � �,LDR t1,objy ;adjust coords �;LDR t2,objz �ADD y,y,t1 �;ADD z,z,t2 �ADD z,z,#yshift% � �0LDR t1,perspptr ;apply perspective �LDR t1,[t1,z,ASL#2] �MUL x,t1,x �MUL y,t1,y �MOV x,x,ASR#fp% �MOV y,y,ASR#fp% �STMIA i !,{x,y} �;BL plot � �SUBS n,n,#1 �BNE pobjloop � �'LDR fs,faces ;draw polies �LDR n,[fs],#4 �ADR i,image � � .fobjloop �>LDMIA fs !,{col,vs} ;load colour and verts (T|4;3;2;1) � �� t2,vs,#&FF �ADD t2,i,t2,LSL#3 �LDMIA t2,{x1,y1} � �MOV vs,vs,LSR#8 �� t2,vs,#&FF �ADD t2,i,t2,LSL#3 �LDMIA t2,{x2,y2} � �MOV vs,vs,LSR#8 �� t2,vs,#&FF �ADD t2,i,t2,LSL#3 �LDMIA t2,{x3,y3} � �9SUB y4,x2,x1 ;clip backwards (x4,y4-temps) �SUB x4,y3,y2 �MUL x4,y4,x4 �SUB y4,y2,y1 �SUB t2,x3,x2 �MUL y4,t2,y4 � CMP x4,y4 �-BLT ycanne ;y'canne see it � �MOV vs,vs,LSR#8 �,CMP vs,#&FF ;teST, &FF-tri ��NE t2,vs,#&FF �ADDNE t2,i,t2,LSL#3 �LDMNEIA t2,{x4,y4} � BLNE quad �BLEQ tri � �.ycanne �SUBS n,n,#1 �BNE fobjloop � �'LDR r15,retsave ;MOV r15,r14 �.image �gap(max3dpts%*8) � � �]� � �P%-code% �#ș"OS_ReadVduVariables",vdu,vdu �vdu!4=!vdu+256*320 �� � � ݤvulc ��j%=1�20 � [OPTi% �STMIA (xl)!,{c1,c2,c3,c4} �]� �="" � � ݤrot � [OPTi% �MOV s,ax � MOV ax,bx � MOV bx,cx � MOV cx,dx �MOV dx,s �MOV s,ay � MOV ay,by � MOV by,cy � MOV cy,dy �MOV dy,s �] �=0 � � ݤgap(g%) �P%=P%+g% �=0 � �ݤdata(a$) ��g%=1 � �a$-1 �2 �?P%=�("&"+�a$,g%,2)) �P%?1=�("&"+�a$,g%,2)) � P%+=2 �� �=0 �
00000000 0d 00 01 0a f4 3e 20 46 6c 79 0d 00 02 23 f4 3e |.....> Fly...#.>| 00000010 20 57 72 69 74 65 6e 20 62 79 20 4d 6f 72 67 61 | Writen by Morga| 00000020 6e 20 48 65 6e 72 79 20 a9 31 39 39 34 0d 00 03 |n Henry .1994...| 00000030 19 f4 3e 20 65 6e 72 79 40 64 63 73 2e 71 6d 77 |..> enry@dcs.qmw| 00000040 2e 61 63 2e 75 6b 0d 00 04 04 0d 00 05 13 66 69 |.ac.uk........fi| 00000050 78 65 64 5f 68 65 69 67 68 74 25 3d a3 0d 00 06 |xed_height%=....| 00000060 04 0d 00 07 1d ee 85 20 eb 30 3a f1 f6 24 3b 22 |....... .0:..$;"| 00000070 20 61 74 20 6c 69 6e 65 20 22 3b 9e 3a e0 0d 00 | at line ";.:...| 00000080 08 0b eb 31 35 3a eb 31 33 0d 00 09 0d c8 91 36 |...15:.13......6| 00000090 34 30 2c 35 31 32 0d 00 0a 2b 66 72 61 6d 65 4c |40,512...+frameL| 000000a0 3d 30 3a 66 72 61 6d 65 52 3d 33 31 36 3a 66 72 |=0:frameR=316:fr| 000000b0 61 6d 65 54 3d 30 3a 66 72 61 6d 65 42 3d 32 35 |ameT=0:frameB=25| 000000c0 35 0d 00 0b 1a 6f 72 69 67 69 6e 58 3d 31 36 30 |5....originX=160| 000000d0 3a 6f 72 69 67 69 6e 59 3d 34 30 0d 00 0c 04 0d |:originY=40.....| 000000e0 00 0d 3a 73 69 7a 65 25 3d 31 32 38 3a 73 69 7a |..:size%=128:siz| 000000f0 65 73 25 3d 37 20 20 3a f4 20 73 69 7a 65 25 3d |es%=7 :. size%=| 00000100 31 32 38 20 6f 72 20 32 35 36 2c 20 73 69 7a 65 |128 or 256, size| 00000110 73 25 3d 37 20 6f 72 20 38 0d 00 0e 0a 66 70 25 |s%=7 or 8....fp%| 00000120 3d 31 30 0d 00 0f 34 64 69 73 70 78 25 3d 31 36 |=10...4dispx%=16| 00000130 20 20 20 20 20 20 20 20 20 20 20 3a f4 20 6e 75 | :. nu| 00000140 6d 62 65 72 20 6f 66 20 76 69 73 61 62 6c 65 20 |mber of visable | 00000150 70 61 74 63 68 65 73 0d 00 10 11 64 69 73 70 79 |patches....dispy| 00000160 25 3d 64 69 73 70 78 25 0d 00 11 36 79 73 68 69 |%=dispx%...6yshi| 00000170 66 74 25 3d 32 30 38 20 20 20 20 20 20 20 20 20 |ft%=208 | 00000180 3a f4 20 63 6f 6e 74 72 6f 6c 73 20 63 65 6e 74 |:. controls cent| 00000190 72 65 20 6f 66 20 72 6f 74 61 74 69 6f 6e 0d 00 |re of rotation..| 000001a0 12 2d 63 61 6d 64 72 6f 70 25 3d 37 35 20 20 20 |.-camdrop%=75 | 000001b0 20 20 20 20 20 20 3a f4 20 62 61 73 65 20 63 61 | :. base ca| 000001c0 6d 65 72 61 20 68 65 69 67 68 74 0d 00 13 1d 70 |mera height....p| 000001d0 6f 69 6e 74 6d 6f 64 25 3d 28 64 69 73 70 78 25 |ointmod%=(dispx%| 000001e0 2a 32 2b 32 29 2a 31 32 0d 00 14 10 6d 61 78 33 |*2+2)*12....max3| 000001f0 64 70 74 73 25 3d 33 32 0d 00 15 26 67 72 61 76 |dpts%=32...&grav| 00000200 69 74 79 25 3d 31 39 36 20 20 20 20 20 20 20 20 |ity%=196 | 00000210 3a f4 20 68 65 6c 69 20 77 65 69 67 68 74 0d 00 |:. heli weight..| 00000220 16 24 53 25 3d a3 20 20 20 20 20 20 20 20 20 20 |.$S%=. | 00000230 20 20 3a f4 20 73 68 61 64 6f 77 20 6f 6e 2f 6f | :. shadow on/o| 00000240 66 66 0d 00 17 04 0d 00 18 15 de 73 69 6e 25 20 |ff.........sin% | 00000250 28 35 31 32 2b 31 32 38 29 2a 34 0d 00 19 15 de |(512+128)*4.....| 00000260 64 69 76 74 61 62 6c 65 25 20 34 30 39 36 2a 34 |divtable% 4096*4| 00000270 0d 00 1a 11 de 70 65 72 73 70 25 20 35 31 32 2a |.....persp% 512*| 00000280 34 0d 00 1b 17 de 6d 61 70 25 20 73 69 7a 65 25 |4.....map% size%| 00000290 2a 73 69 7a 65 25 2a 34 0d 00 1c 29 de 70 6f 69 |*size%*4...).poi| 000002a0 6e 74 73 25 20 28 64 69 73 70 78 25 2a 32 2b 32 |nts% (dispx%*2+2| 000002b0 29 2a 28 64 69 73 70 79 25 2a 32 2b 32 29 2a 31 |)*(dispy%*2+2)*1| 000002c0 32 0d 00 1d 15 de 62 69 6e 25 20 64 69 73 70 79 |2.....bin% dispy| 000002d0 25 2a 36 34 2a 34 0d 00 1e 04 0d 00 1f 31 f1 8a |%*64*4.......1..| 000002e0 30 2c 32 30 29 3b 22 4c 65 66 74 20 4d 6f 75 73 |0,20);"Left Mous| 000002f0 65 20 42 75 74 74 6f 6e 20 74 6f 20 69 6e 63 72 |e Button to incr| 00000300 65 61 73 65 20 70 6f 77 65 72 22 0d 00 20 2b f1 |ease power".. +.| 00000310 22 52 69 67 68 74 20 4d 6f 75 73 65 20 42 75 74 |"Right Mouse But| 00000320 74 6f 6e 20 74 6f 20 64 65 63 72 65 61 73 65 20 |ton to decrease | 00000330 70 6f 77 65 72 22 0d 00 21 09 f2 6d 69 73 63 0d |power"..!..misc.| 00000340 00 22 08 f2 61 73 73 0d 00 23 0c f2 73 68 6f 77 |."..ass..#..show| 00000350 6d 61 70 0d 00 24 3c 21 70 6f 69 6e 74 6d 69 64 |map..$<!pointmid| 00000360 3d 70 6f 69 6e 74 73 25 2b 28 20 28 64 69 73 70 |=points%+( (disp| 00000370 78 25 2a 32 2b 32 29 2a 28 64 69 73 70 79 25 29 |x%*2+2)*(dispy%)| 00000380 2a 31 32 2b 64 69 73 70 78 25 2a 31 32 20 29 0d |*12+dispx%*12 ).| 00000390 00 25 04 0d 00 26 0b 74 3d 31 3a 73 3d 32 0d 00 |.%...&.t=1:s=2..| 000003a0 27 05 f5 0d 00 28 05 db 0d 00 29 1e ec 2d 36 34 |'....(....)..-64| 000003b0 30 2c 35 30 30 3a df 42 59 2d 31 36 2a 21 68 70 |0,500:.BY-16*!hp| 000003c0 6f 77 65 72 2c 30 0d 00 2a 0b d6 75 70 64 61 74 |ower,0..*..updat| 000003d0 65 0d 00 2b 0a c8 97 b8 30 2c 30 0d 00 2c 0f d6 |e..+....0,0..,..| 000003e0 63 61 6c 63 70 6f 69 6e 74 73 0d 00 2d 0f d6 64 |calcpoints..-..d| 000003f0 72 61 77 70 6f 69 6e 74 73 0d 00 2e 12 e7 20 53 |rawpoints..... S| 00000400 25 20 d6 64 72 61 77 73 68 61 64 0d 00 2f 0d d6 |% .drawshad../..| 00000410 64 72 61 77 68 65 6c 69 0d 00 30 2d c8 96 3a c8 |drawheli..0-..:.| 00000420 99 36 2c 31 31 32 2c 73 3a c8 99 36 2c 31 31 33 |.6,112,s:..6,113| 00000430 2c 74 3a c8 94 74 2c 73 3a c8 94 21 76 64 75 2c |,t:..t,s:..!vdu,| 00000440 76 64 75 21 34 0d 00 31 06 fd a3 0d 00 32 04 0d |vdu!4..1.....2..| 00000450 00 33 0a dd f2 6d 69 73 63 0d 00 34 09 f1 22 2e |.3...misc..4..".| 00000460 22 3b 0d 00 35 0d 6b 3d 33 36 30 2f 35 31 32 0d |";..5.k=360/512.| 00000470 00 36 13 e3 69 25 3d 30 b8 28 35 31 32 2b 31 32 |.6..i%=0.(512+12| 00000480 37 29 0d 00 37 21 73 69 6e 25 21 28 69 25 2a 34 |7)..7!sin%!(i%*4| 00000490 29 3d 28 31 3c 3c 66 70 25 29 2a b5 b2 28 69 25 |)=(1<<fp%)*..(i%| 000004a0 2a 6b 29 0d 00 38 05 ed 0d 00 39 09 f1 22 2e 22 |*k)..8....9.."."| 000004b0 3b 0d 00 3a 0d e3 69 25 3d 30 b8 35 31 31 0d 00 |;..:..i%=0.511..| 000004c0 3b 0d 79 25 3d 35 31 32 2d 69 25 0d 00 3c 1f 70 |;.y%=512-i%..<.p| 000004d0 65 72 73 70 25 21 28 69 25 2a 34 29 3d 28 33 30 |ersp%!(i%*4)=(30| 000004e0 30 3c 3c 66 70 25 29 2f 79 25 0d 00 3d 05 ed 0d |0<<fp%)/y%..=...| 000004f0 00 3e 09 f1 22 2e 22 3b 0d 00 3f 28 e3 69 25 3d |.>..".";..?(.i%=| 00000500 30 b8 20 28 64 69 73 70 78 25 2a 32 2b 32 29 2a |0. (dispx%*2+2)*| 00000510 28 64 69 73 70 79 25 2a 32 2b 32 29 2a 33 2d 31 |(dispy%*2+2)*3-1| 00000520 0d 00 40 1a 70 6f 69 6e 74 73 25 21 28 69 25 2a |..@.points%!(i%*| 00000530 34 29 3d 26 46 46 3c 3c 31 36 0d 00 41 05 ed 0d |4)=&FF<<16..A...| 00000540 00 42 09 f1 22 2e 22 3b 0d 00 43 16 e3 69 25 3d |.B..".";..C..i%=| 00000550 30 b8 20 64 69 73 70 79 25 2a 36 34 2d 31 0d 00 |0. dispy%*64-1..| 00000560 44 11 62 69 6e 25 21 28 69 25 2a 34 29 3d 30 0d |D.bin%!(i%*4)=0.| 00000570 00 45 05 ed 0d 00 46 09 f1 22 2e 22 3b 0d 00 47 |.E....F..".";..G| 00000580 0d e3 69 25 3d 31 b8 36 33 39 0d 00 48 20 64 69 |..i%=1.639..H di| 00000590 76 74 61 62 6c 65 25 21 28 69 25 2a 34 29 3d 28 |vtable%!(i%*4)=(| 000005a0 31 3c 3c 66 70 25 29 2f 69 25 0d 00 49 05 ed 0d |1<<fp%)/i%..I...| 000005b0 00 4a 09 f1 22 2e 22 3b 0d 00 4b 1c ff 28 22 4c |.J..".";..K..("L| 000005c0 4f 41 44 20 46 6c 79 4d 61 70 20 22 2b c3 7e 6d |OAD FlyMap "+.~m| 000005d0 61 70 25 29 0d 00 4c 05 e1 0d 00 4d 04 0d 00 4e |ap%)..L....M...N| 000005e0 0d dd f2 73 68 6f 77 6d 61 70 0d 00 4f 0b 41 25 |...showmap..O.A%| 000005f0 3d 6d 61 70 25 0d 00 50 0b 42 25 3d 21 76 64 75 |=map%..P.B%=!vdu| 00000600 0d 00 51 1f e3 78 25 3d 30 b8 73 69 7a 65 25 2d |..Q..x%=0.size%-| 00000610 31 3a e3 79 25 3d 30 b8 73 69 7a 65 25 2d 31 0d |1:.y%=0.size%-1.| 00000620 00 52 1b 3f 42 25 3d 63 6f 6c 6f 75 72 73 3f 28 |.R.?B%=colours?(| 00000630 21 41 25 80 26 46 46 46 46 29 0d 00 53 0f 42 25 |!A%.&FFFF)..S.B%| 00000640 2b 3d 31 3a 41 25 2b 3d 34 0d 00 54 05 ed 0d 00 |+=1:A%+=4..T....| 00000650 55 11 42 25 2b 3d 33 32 30 2d 73 69 7a 65 25 0d |U.B%+=320-size%.| 00000660 00 56 05 ed 0d 00 57 08 5a 25 3d 30 0d 00 58 19 |.V....W.Z%=0..X.| 00000670 c8 95 20 5a 25 3d 30 3a c8 97 20 58 25 2c 59 25 |.. Z%=0:.. X%,Y%| 00000680 2c 5a 25 3a ce 0d 00 59 05 e1 0d 00 5a 04 0d 00 |,Z%:...Y....Z...| 00000690 5b 09 dd f2 61 73 73 0d 00 5c 10 de 63 6f 64 65 |[...ass..\..code| 000006a0 25 20 36 34 30 30 30 0d 00 5d 04 0d 00 5e 0d e3 |% 64000..]...^..| 000006b0 69 25 3d 30 b8 32 88 32 0d 00 5f 0f 78 3d 30 3a |i%=0.2.2.._.x=0:| 000006c0 79 3d 31 3a 61 3d 32 0d 00 60 0d 73 61 3d 33 3a |y=1:a=2..`.sa=3:| 000006d0 63 61 3d 34 0d 00 61 07 68 3d 32 0d 00 62 11 73 |ca=4..a.h=2..b.s| 000006e0 63 72 78 3d 36 3a 73 63 72 79 3d 35 0d 00 63 0c |crx=6:scry=5..c.| 000006f0 70 70 3d 37 3a 62 3d 38 0d 00 64 0c 70 3d 39 3a |pp=7:b=8..d.p=9:| 00000700 74 3d 31 30 0d 00 65 0f 78 78 3d 31 31 3a 79 79 |t=10..e.xx=11:yy| 00000710 3d 31 32 0d 00 66 0a 63 6f 6c 3d 31 34 0d 00 67 |=12..f.col=14..g| 00000720 04 0d 00 68 0c 50 25 3d 63 6f 64 65 25 0d 00 69 |...h.P%=code%..i| 00000730 0a 5b 4f 50 54 69 25 0d 00 6a 17 2e 76 64 75 20 |.[OPTi%..j..vdu | 00000740 44 43 44 20 31 34 38 3a 44 43 44 20 2d 31 0d 00 |DCD 148:DCD -1..| 00000750 6b 1e 2e 64 69 76 74 61 62 6c 65 70 74 72 20 44 |k..divtableptr D| 00000760 43 44 20 64 69 76 74 61 62 6c 65 25 0d 00 6c 18 |CD divtable%..l.| 00000770 2e 70 65 72 73 70 70 74 72 20 44 43 44 20 70 65 |.perspptr DCD pe| 00000780 72 73 70 25 0d 00 6d 14 2e 73 69 6e 70 74 72 20 |rsp%..m..sinptr | 00000790 44 43 44 20 73 69 6e 25 0d 00 6e 1c 2e 63 6f 73 |DCD sin%..n..cos| 000007a0 70 74 72 20 44 43 44 20 73 69 6e 25 2b 28 31 32 |ptr DCD sin%+(12| 000007b0 38 2a 34 29 0d 00 6f 14 2e 6d 61 70 70 74 72 20 |8*4)..o..mapptr | 000007c0 44 43 44 20 6d 61 70 25 0d 00 70 1a 2e 70 6f 69 |DCD map%..p..poi| 000007d0 6e 74 73 70 74 72 20 44 43 44 20 70 6f 69 6e 74 |ntsptr DCD point| 000007e0 73 25 0d 00 71 13 2e 70 6f 69 6e 74 6d 69 64 20 |s%..q..pointmid | 000007f0 44 43 44 20 30 0d 00 72 14 2e 62 69 6e 70 74 72 |DCD 0..r..binptr| 00000800 20 44 43 44 20 62 69 6e 25 0d 00 73 04 0d 00 74 | DCD bin%..s...t| 00000810 0f 2e 78 70 6f 73 20 44 43 44 20 30 0d 00 75 0f |..xpos DCD 0..u.| 00000820 2e 79 70 6f 73 20 44 43 44 20 30 0d 00 76 11 2e |.ypos DCD 0..v..| 00000830 68 65 69 67 68 74 20 44 43 44 20 30 0d 00 77 0e |height DCD 0..w.| 00000840 2e 72 6f 74 20 44 43 44 20 30 0d 00 78 04 0d 00 |.rot DCD 0..x...| 00000850 79 0f 2e 63 61 6c 63 70 6f 69 6e 74 73 0d 00 7a |y..calcpoints..z| 00000860 13 53 54 52 20 72 31 34 2c 72 65 74 73 61 76 65 |.STR r14,retsave| 00000870 0d 00 7b 04 0d 00 7c 2c 4c 44 52 20 73 61 2c 73 |..{...|,LDR sa,s| 00000880 69 6e 70 74 72 20 20 20 20 20 20 20 20 20 20 20 |inptr | 00000890 20 20 20 3b 73 69 6e 20 61 2c 20 63 6f 73 20 61 | ;sin a, cos a| 000008a0 0d 00 7d 11 4c 44 52 20 63 61 2c 63 6f 73 70 74 |..}.LDR ca,cospt| 000008b0 72 0d 00 7e 0d 4c 44 52 20 61 2c 72 6f 74 0d 00 |r..~.LDR a,rot..| 000008c0 7f 17 4c 44 52 20 73 61 2c 5b 73 61 2c 61 2c 41 |..LDR sa,[sa,a,A| 000008d0 53 4c 23 32 5d 0d 00 80 17 4c 44 52 20 63 61 2c |SL#2]....LDR ca,| 000008e0 5b 63 61 2c 61 2c 41 53 4c 23 32 5d 0d 00 81 2e |[ca,a,ASL#2]....| 000008f0 4c 44 52 20 68 2c 68 65 69 67 68 74 20 20 20 20 |LDR h,height | 00000900 20 20 20 20 20 20 20 20 20 20 20 3b 63 75 72 72 | ;curr| 00000910 65 6e 74 20 68 65 69 67 68 74 0d 00 82 15 41 44 |ent height....AD| 00000920 44 20 68 2c 68 2c 23 63 61 6d 64 72 6f 70 25 0d |D h,h,#camdrop%.| 00000930 00 83 14 4c 44 52 20 70 70 2c 70 6f 69 6e 74 73 |...LDR pp,points| 00000940 70 74 72 0d 00 84 10 4c 44 52 20 62 2c 62 69 6e |ptr....LDR b,bin| 00000950 70 74 72 0d 00 85 04 0d 00 86 0f 4c 44 52 20 78 |ptr........LDR x| 00000960 78 2c 78 70 6f 73 0d 00 87 0f 4c 44 52 20 79 79 |x,xpos....LDR yy| 00000970 2c 79 70 6f 73 0d 00 88 04 0d 00 89 04 0d 00 8a |,ypos...........| 00000980 13 4d 56 4e 20 79 2c 23 ac 2d 64 69 73 70 79 25 |.MVN y,#.-dispy%| 00000990 0d 00 8b 0a 2e 79 6c 6f 6f 70 0d 00 8c 13 4d 56 |.....yloop....MV| 000009a0 4e 20 78 2c 23 ac 2d 64 69 73 70 78 25 0d 00 8d |N x,#.-dispx%...| 000009b0 0a 2e 78 6c 6f 6f 70 0d 00 8e 04 0d 00 8f 11 80 |..xloop.........| 000009c0 20 70 2c 78 78 2c 23 25 31 31 31 31 0d 00 90 11 | p,xx,#%1111....| 000009d0 80 20 74 2c 79 79 2c 23 25 31 31 31 31 0d 00 91 |. t,yy,#%1111...| 000009e0 13 52 53 42 20 70 2c 70 2c 78 2c 41 53 4c 23 34 |.RSB p,p,x,ASL#4| 000009f0 0d 00 92 13 52 53 42 20 74 2c 74 2c 79 2c 41 53 |....RSB t,t,y,AS| 00000a00 4c 23 34 0d 00 93 04 0d 00 94 11 4d 55 4c 20 73 |L#4........MUL s| 00000a10 63 72 78 2c 74 2c 73 61 0d 00 95 14 52 53 42 20 |crx,t,sa....RSB | 00000a20 73 63 72 78 2c 73 63 72 78 2c 23 30 0d 00 96 16 |scrx,scrx,#0....| 00000a30 4d 4c 41 20 73 63 72 78 2c 70 2c 63 61 2c 73 63 |MLA scrx,p,ca,sc| 00000a40 72 78 0d 00 97 11 4d 55 4c 20 73 63 72 79 2c 74 |rx....MUL scry,t| 00000a50 2c 63 61 0d 00 98 35 4d 4c 41 20 73 63 72 79 2c |,ca...5MLA scry,| 00000a60 70 2c 73 61 2c 73 63 72 79 20 20 20 20 20 20 20 |p,sa,scry | 00000a70 20 20 20 3b 73 63 72 78 3c 3c 66 70 25 2c 20 73 | ;scrx<<fp%, s| 00000a80 63 72 79 3c 3c 66 70 25 0d 00 99 39 4d 4f 56 20 |cry<<fp%...9MOV | 00000a90 73 63 72 78 2c 73 63 72 78 2c 41 53 52 23 36 2b |scrx,scrx,ASR#6+| 00000aa0 34 20 20 20 20 20 20 20 3b 73 68 69 66 74 20 73 |4 ;shift s| 00000ab0 71 75 61 72 65 20 73 69 7a 65 20 28 2e 58 58 58 |quare size (.XXX| 00000ac0 29 0d 00 9a 19 4d 4f 56 20 73 63 72 79 2c 73 63 |)....MOV scry,sc| 00000ad0 72 79 2c 41 53 52 23 36 2b 34 0d 00 9b 04 0d 00 |ry,ASR#6+4......| 00000ae0 9c 2d 41 44 44 53 20 73 63 72 79 2c 73 63 72 79 |.-ADDS scry,scry| 00000af0 2c 23 79 73 68 69 66 74 25 20 20 20 20 20 3b 63 |,#yshift% ;c| 00000b00 6c 69 70 20 73 71 75 61 72 65 73 0d 00 9d 10 42 |lip squares....B| 00000b10 4d 49 20 70 6f 69 6e 74 6f 75 74 0d 00 9e 19 43 |MI pointout....C| 00000b20 4d 50 20 73 63 72 79 2c 23 28 64 69 73 70 79 25 |MP scry,#(dispy%| 00000b30 2a 31 36 29 0d 00 9f 10 42 47 45 20 70 6f 69 6e |*16)....BGE poin| 00000b40 74 6f 75 74 0d 00 a0 13 43 4d 4e 20 73 63 72 78 |tout....CMN scrx| 00000b50 2c 23 ac 2d 31 36 30 0d 00 a1 10 42 4c 54 20 70 |,#.-160....BLT p| 00000b60 6f 69 6e 74 6f 75 74 0d 00 a2 11 43 4d 50 20 73 |ointout....CMP s| 00000b70 63 72 78 2c 23 31 36 30 0d 00 a3 10 42 47 45 20 |crx,#160....BGE | 00000b80 70 6f 69 6e 74 6f 75 74 0d 00 a4 04 0d 00 a5 2e |pointout........| 00000b90 41 44 44 20 70 2c 78 2c 78 78 2c 41 53 52 23 34 |ADD p,x,xx,ASR#4| 00000ba0 20 20 20 20 20 20 20 20 20 20 3b 67 65 74 20 6c | ;get l| 00000bb0 61 6e 64 20 68 65 69 67 68 74 0d 00 a6 14 41 44 |and height....AD| 00000bc0 44 20 74 2c 79 2c 79 79 2c 41 53 52 23 34 0d 00 |D t,y,yy,ASR#4..| 00000bd0 a7 12 80 20 70 2c 70 2c 23 73 69 7a 65 25 2d 31 |... p,p,#size%-1| 00000be0 0d 00 a8 12 80 20 74 2c 74 2c 23 73 69 7a 65 25 |..... t,t,#size%| 00000bf0 2d 31 0d 00 a9 18 41 44 44 20 74 2c 70 2c 74 2c |-1....ADD t,p,t,| 00000c00 41 53 4c 23 73 69 7a 65 73 25 0d 00 aa 04 0d 00 |ASL#sizes%......| 00000c10 ab 10 4c 44 52 20 70 2c 6d 61 70 70 74 72 0d 00 |..LDR p,mapptr..| 00000c20 ac 15 4c 44 52 20 74 2c 5b 70 2c 74 2c 41 53 4c |..LDR t,[p,t,ASL| 00000c30 23 32 5d 0d 00 ad 2d 4d 4f 56 20 63 6f 6c 2c 74 |#2]...-MOV col,t| 00000c40 2c 4c 53 4c 23 31 36 20 20 20 20 20 20 20 20 20 |,LSL#16 | 00000c50 20 3b 65 78 74 72 61 63 74 20 63 6f 6c 6f 75 72 | ;extract colour| 00000c60 0d 00 ae 16 4d 4f 56 20 63 6f 6c 2c 63 6f 6c 2c |....MOV col,col,| 00000c70 4c 53 52 23 31 36 0d 00 af 12 4d 4f 56 20 74 2c |LSR#16....MOV t,| 00000c80 74 2c 41 53 52 23 31 36 0d 00 b0 04 0d 00 b1 12 |t,ASR#16........| 00000c90 4c 44 52 20 70 2c 70 65 72 73 70 70 74 72 0d 00 |LDR p,perspptr..| 00000ca0 b2 2c 4c 44 52 20 70 2c 5b 70 2c 73 63 72 79 2c |.,LDR p,[p,scry,| 00000cb0 41 53 4c 23 32 5d 20 20 20 20 20 20 3b 70 65 72 |ASL#2] ;per| 00000cc0 73 70 65 63 74 69 76 65 20 6b 0d 00 b3 04 0d 00 |spective k......| 00000cd0 b4 30 4d 55 4c 20 73 63 72 78 2c 70 2c 73 63 72 |.0MUL scrx,p,scr| 00000ce0 78 20 20 20 20 20 20 20 20 20 20 20 3b 61 70 70 |x ;app| 00000cf0 6c 79 20 70 65 72 73 70 65 63 74 69 76 65 0d 00 |ly perspective..| 00000d00 b5 19 4d 4f 56 20 73 63 72 78 2c 73 63 72 78 2c |..MOV scrx,scrx,| 00000d10 41 53 52 23 66 70 25 0d 00 b6 04 0d 00 b7 0d 53 |ASR#fp%........S| 00000d20 55 42 20 74 2c 68 2c 74 0d 00 b8 0d 4d 55 4c 20 |UB t,h,t....MUL | 00000d30 74 2c 70 2c 74 0d 00 b9 13 4d 4f 56 20 74 2c 74 |t,p,t....MOV t,t| 00000d40 2c 41 53 52 23 66 70 25 0d 00 ba 04 0d 00 bb 3e |,ASR#fp%.......>| 00000d50 53 54 4d 49 41 20 70 70 2c 7b 73 63 72 78 2c 74 |STMIA pp,{scrx,t| 00000d60 2c 63 6f 6c 7d 20 20 20 20 20 20 20 3b 58 2c 59 |,col} ;X,Y| 00000d70 2c 63 6f 6c 20 61 72 72 61 6e 67 65 20 70 6f 69 |,col arrange poi| 00000d80 6e 74 20 73 74 6f 72 61 67 65 0d 00 bc 17 4d 4f |nt storage....MO| 00000d90 56 20 73 63 72 79 2c 73 63 72 79 2c 41 53 52 23 |V scry,scry,ASR#| 00000da0 34 0d 00 bd 34 41 44 44 20 73 63 72 79 2c 62 2c |4...4ADD scry,b,| 00000db0 73 63 72 79 2c 41 53 4c 23 38 20 20 20 20 20 20 |scry,ASL#8 | 00000dc0 20 3b 62 69 6e 20 73 63 72 79 20 2a 20 36 34 2a | ;bin scry * 64*| 00000dd0 34 3d 32 35 36 0d 00 be 2d 4c 44 52 20 74 2c 5b |4=256...-LDR t,[| 00000de0 73 63 72 79 5d 20 20 20 20 20 20 20 20 20 20 20 |scry] | 00000df0 20 20 20 20 20 3b 74 3d 6e 75 6d 20 69 6e 20 62 | ;t=num in b| 00000e00 69 6e 0d 00 bf 0e 41 44 44 20 74 2c 74 2c 23 31 |in....ADD t,t,#1| 00000e10 0d 00 c0 10 53 54 52 20 74 2c 5b 73 63 72 79 5d |....STR t,[scry]| 00000e20 0d 00 c1 19 53 54 52 20 70 70 2c 5b 73 63 72 79 |....STR pp,[scry| 00000e30 2c 74 2c 41 53 4c 23 32 5d 0d 00 c2 04 0d 00 c3 |,t,ASL#2].......| 00000e40 04 0d 00 c4 0d 2e 70 6f 69 6e 74 6f 75 74 0d 00 |......pointout..| 00000e50 c5 30 41 44 44 20 70 70 2c 70 70 2c 23 31 32 20 |.0ADD pp,pp,#12 | 00000e60 20 20 20 20 20 20 20 20 20 20 20 3b 6d 6f 76 65 | ;move| 00000e70 20 74 6f 20 6e 65 78 74 20 70 6f 69 6e 74 0d 00 | to next point..| 00000e80 c6 04 0d 00 c7 0e 41 44 44 20 78 2c 78 2c 23 31 |......ADD x,x,#1| 00000e90 0d 00 c8 11 43 4d 50 20 78 2c 23 64 69 73 70 78 |....CMP x,#dispx| 00000ea0 25 0d 00 c9 0d 42 4c 45 20 78 6c 6f 6f 70 0d 00 |%....BLE xloop..| 00000eb0 ca 04 0d 00 cb 2e 41 44 44 20 70 70 2c 70 70 2c |......ADD pp,pp,| 00000ec0 23 31 32 20 20 20 20 20 20 20 20 20 20 20 3b 61 |#12 ;a| 00000ed0 64 6a 75 73 74 20 66 6f 72 20 62 6f 72 64 65 72 |djust for border| 00000ee0 0d 00 cc 0e 41 44 44 20 79 2c 79 2c 23 31 0d 00 |....ADD y,y,#1..| 00000ef0 cd 11 43 4d 50 20 79 2c 23 64 69 73 70 79 25 0d |..CMP y,#dispy%.| 00000f00 00 ce 0d 42 4c 45 20 79 6c 6f 6f 70 0d 00 cf 04 |...BLE yloop....| 00000f10 0d 00 d0 2d 4c 44 52 20 72 30 2c 70 6f 69 6e 74 |...-LDR r0,point| 00000f20 6d 69 64 20 20 20 20 20 20 20 3b 73 68 61 64 6f |mid ;shado| 00000f30 77 20 63 61 6c 63 75 6c 61 74 69 6f 6e 0d 00 d1 |w calculation...| 00000f40 12 4c 44 52 20 72 33 2c 5b 72 30 2c 23 34 5d 0d |.LDR r3,[r0,#4].| 00000f50 00 d2 13 53 54 52 20 72 33 2c 73 68 61 64 70 6e |...STR r3,shadpn| 00000f60 74 73 0d 00 d3 04 0d 00 d4 26 4c 44 52 20 72 31 |ts.......&LDR r1| 00000f70 35 2c 72 65 74 73 61 76 65 20 20 20 20 20 20 20 |5,retsave | 00000f80 3b 4d 4f 56 20 72 31 35 2c 72 31 34 0d 00 d5 04 |;MOV r15,r14....| 00000f90 0d 00 d6 04 0d 00 d7 0d 2e 64 72 61 77 73 68 61 |.........drawsha| 00000fa0 64 0d 00 d8 13 53 54 52 20 72 31 34 2c 72 65 74 |d....STR r14,ret| 00000fb0 73 61 76 65 0d 00 d9 0d 4d 4f 56 20 72 30 2c 23 |save....MOV r0,#| 00000fc0 30 0d 00 da 13 4c 44 52 20 72 31 2c 73 68 61 64 |0....LDR r1,shad| 00000fd0 70 6e 74 73 0d 00 db 0d 4d 4f 56 20 72 32 2c 23 |pnts....MOV r2,#| 00000fe0 38 0d 00 dc 10 41 44 44 20 72 33 2c 72 31 2c 23 |8....ADD r3,r1,#| 00000ff0 34 0d 00 dd 0d 4d 4f 56 20 72 34 2c 23 30 0d 00 |4....MOV r4,#0..| 00001000 de 10 41 44 44 20 72 35 2c 72 31 2c 23 38 0d 00 |..ADD r5,r1,#8..| 00001010 df 0f 4d 56 4e 20 72 36 2c 23 ac 2d 38 0d 00 e0 |..MVN r6,#.-8...| 00001020 10 41 44 44 20 72 37 2c 72 31 2c 23 34 0d 00 e1 |.ADD r7,r1,#4...| 00001030 0d 4d 4f 56 20 72 38 2c 23 30 0d 00 e2 0b 42 4c |.MOV r8,#0....BL| 00001040 20 71 75 61 64 0d 00 e3 13 4c 44 52 20 72 31 35 | quad....LDR r15| 00001050 2c 72 65 74 73 61 76 65 0d 00 e4 04 0d 00 e5 13 |,retsave........| 00001060 2e 73 68 61 64 70 6e 74 73 20 44 43 44 20 30 0d |.shadpnts DCD 0.| 00001070 00 e6 05 5d 0d 00 e7 31 78 31 3d 30 3a 79 31 3d |...]...1x1=0:y1=| 00001080 31 3a 78 32 3d 32 3a 79 32 3d 33 3a 78 33 3d 34 |1:x2=2:y2=3:x3=4| 00001090 3a 79 33 3d 35 3a 78 34 3d 36 3a 79 34 3d 37 3a |:y3=5:x4=6:y4=7:| 000010a0 63 6f 6c 3d 38 0d 00 e8 11 63 74 3d 39 3a 6e 3d |col=8....ct=9:n=| 000010b0 31 30 3a 70 3d 38 0d 00 e9 0e 62 70 3d 31 31 3a |10:p=8....bp=11:| 000010c0 62 3d 31 32 0d 00 ea 04 0d 00 eb 07 6b 3d 30 0d |b=12........k=0.| 000010d0 00 ec 0a 5b 4f 50 54 69 25 0d 00 ed 12 2e 72 65 |...[OPTi%.....re| 000010e0 74 73 61 76 65 20 44 43 44 20 30 0d 00 ee 0f 2e |tsave DCD 0.....| 000010f0 64 72 61 77 70 6f 69 6e 74 73 0d 00 ef 13 53 54 |drawpoints....ST| 00001100 52 20 72 31 34 2c 72 65 74 73 61 76 65 0d 00 f0 |R r14,retsave...| 00001110 10 4c 44 52 20 62 2c 62 69 6e 70 74 72 0d 00 f1 |.LDR b,binptr...| 00001120 04 0d 00 f2 0d 4d 4f 56 20 63 74 2c 23 30 0d 00 |.....MOV ct,#0..| 00001130 f3 0c 2e 62 69 6e 6c 6f 6f 70 0d 00 f4 15 41 44 |...binloop....AD| 00001140 44 20 62 70 2c 62 2c 63 74 2c 41 53 4c 23 38 0d |D bp,b,ct,ASL#8.| 00001150 00 f5 0e 4c 44 52 20 6e 2c 5b 62 70 5d 0d 00 f6 |...LDR n,[bp]...| 00001160 04 0d 00 f7 0c 4d 4f 56 53 20 6e 2c 6e 0d 00 f8 |.....MOVS n,n...| 00001170 0e 42 45 51 20 6e 6f 6d 6f 72 65 0d 00 f9 0a 2e |.BEQ nomore.....| 00001180 69 6e 62 69 6e 0d 00 fa 31 4c 44 52 20 70 2c 5b |inbin...1LDR p,[| 00001190 62 70 2c 6e 2c 41 53 4c 23 32 5d 20 20 20 20 20 |bp,n,ASL#2] | 000011a0 20 20 20 20 3b 70 20 70 74 72 20 74 6f 20 64 65 | ;p ptr to de| 000011b0 20 70 6f 69 6e 74 0d 00 fb 13 4c 44 4d 49 41 20 | point....LDMIA | 000011c0 70 2c 7b 78 31 2c 79 31 7d 0d 00 fc 12 4c 44 52 |p,{x1,y1}....LDR| 000011d0 20 78 32 2c 5b 70 2c 23 31 32 5d 0d 00 fd 12 4c | x2,[p,#12]....L| 000011e0 44 52 20 79 32 2c 5b 70 2c 23 31 36 5d 0d 00 fe |DR y2,[p,#16]...| 000011f0 13 43 4d 50 20 78 32 2c 23 26 46 46 3c 3c 31 36 |.CMP x2,#&FF<<16| 00001200 0d 00 ff 1e 4c 44 52 4e 45 20 78 33 2c 5b 70 2c |....LDRNE x3,[p,| 00001210 23 70 6f 69 6e 74 6d 6f 64 25 2b 31 32 5d 0d 01 |#pointmod%+12]..| 00001220 00 1e 4c 44 52 4e 45 20 79 33 2c 5b 70 2c 23 70 |..LDRNE y3,[p,#p| 00001230 6f 69 6e 74 6d 6f 64 25 2b 31 36 5d 0d 01 01 15 |ointmod%+16]....| 00001240 43 4d 50 4e 45 20 78 33 2c 23 26 46 46 3c 3c 31 |CMPNE x3,#&FF<<1| 00001250 36 0d 01 02 1b 4c 44 52 4e 45 20 78 34 2c 5b 70 |6....LDRNE x4,[p| 00001260 2c 23 70 6f 69 6e 74 6d 6f 64 25 5d 0d 01 03 1d |,#pointmod%]....| 00001270 4c 44 52 4e 45 20 79 34 2c 5b 70 2c 23 70 6f 69 |LDRNE y4,[p,#poi| 00001280 6e 74 6d 6f 64 25 2b 34 5d 0d 01 04 15 43 4d 50 |ntmod%+4]....CMP| 00001290 4e 45 20 78 34 2c 23 26 46 46 3c 3c 31 36 0d 01 |NE x4,#&FF<<16..| 000012a0 05 04 0d 01 06 12 4c 44 52 4e 45 20 70 2c 5b 70 |......LDRNE p,[p| 000012b0 2c 23 38 5d 0d 01 07 1a 52 53 42 4e 45 20 72 31 |,#8]....RSBNE r1| 000012c0 34 2c 63 74 2c 23 64 69 73 70 79 25 2d 31 0d 01 |4,ct,#dispy%-1..| 000012d0 08 11 41 44 44 4e 45 20 70 2c 70 2c 72 31 34 0d |..ADDNE p,p,r14.| 000012e0 01 09 15 41 44 52 4e 45 20 72 31 34 2c 63 6f 6c |...ADRNE r14,col| 000012f0 6f 75 72 73 0d 01 0a 14 4c 44 52 4e 45 42 20 70 |ours....LDRNEB p| 00001300 2c 5b 72 31 34 2c 70 5d 0d 01 0b 0d 42 4c 4e 45 |,[r14,p]....BLNE| 00001310 20 71 75 61 64 0d 01 0c 04 0d 01 0d 04 0d 01 0e | quad...........| 00001320 0f 53 55 42 53 20 6e 2c 6e 2c 23 31 0d 01 0f 0d |.SUBS n,n,#1....| 00001330 42 4e 45 20 69 6e 62 69 6e 0d 01 10 04 0d 01 11 |BNE inbin.......| 00001340 0b 2e 6e 6f 6d 6f 72 65 0d 01 12 10 41 44 44 20 |..nomore....ADD | 00001350 63 74 2c 63 74 2c 23 31 0d 01 13 12 43 4d 50 20 |ct,ct,#1....CMP | 00001360 63 74 2c 23 64 69 73 70 79 25 0d 01 14 0f 42 4e |ct,#dispy%....BN| 00001370 45 20 62 69 6e 6c 6f 6f 70 0d 01 15 04 0d 01 16 |E binloop.......| 00001380 04 0d 01 17 3d 2e 65 6d 70 74 79 62 69 6e 73 20 |....=.emptybins | 00001390 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 000013a0 3b 72 65 6d 6f 76 65 20 62 69 6e 73 20 61 6e 64 |;remove bins and| 000013b0 20 64 65 6c 65 74 65 20 70 6f 69 6e 74 73 0d 01 | delete points..| 000013c0 18 12 4d 4f 56 20 6b 2c 23 26 46 46 3c 3c 31 36 |..MOV k,#&FF<<16| 000013d0 0d 01 19 04 0d 01 1a 14 4d 4f 56 20 63 74 2c 23 |........MOV ct,#| 000013e0 64 69 73 70 79 25 2d 31 0d 01 1b 0e 2e 65 6d 70 |dispy%-1.....emp| 000013f0 74 79 6c 6f 6f 70 0d 01 1c 15 41 44 44 20 62 70 |tyloop....ADD bp| 00001400 2c 62 2c 63 74 2c 41 53 4c 23 38 0d 01 1d 0e 4c |,b,ct,ASL#8....L| 00001410 44 52 20 6e 2c 5b 62 70 5d 0d 01 1e 04 0d 01 1f |DR n,[bp].......| 00001420 0c 4d 4f 56 53 20 6e 2c 6e 0d 01 20 0f 42 45 51 |.MOVS n,n.. .BEQ| 00001430 20 6e 6f 6d 6f 72 65 32 0d 01 21 0b 2e 6f 75 74 | nomore2..!..out| 00001440 62 69 6e 0d 01 22 31 4c 44 52 20 70 2c 5b 62 70 |bin.."1LDR p,[bp| 00001450 2c 6e 2c 41 53 4c 23 32 5d 20 20 20 20 20 20 20 |,n,ASL#2] | 00001460 20 20 3b 70 20 70 74 72 20 74 6f 20 64 65 20 70 | ;p ptr to de p| 00001470 6f 69 6e 74 0d 01 23 0d 53 54 52 20 6b 2c 5b 70 |oint..#.STR k,[p| 00001480 5d 0d 01 24 04 0d 01 25 0f 53 55 42 53 20 6e 2c |]..$...%.SUBS n,| 00001490 6e 2c 23 31 0d 01 26 0e 42 4e 45 20 6f 75 74 62 |n,#1..&.BNE outb| 000014a0 69 6e 0d 01 27 29 53 54 52 20 6e 2c 5b 62 70 5d |in..')STR n,[bp]| 000014b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 000014c0 20 3b 65 6d 70 74 79 20 62 69 6e 0d 01 28 04 0d | ;empty bin..(..| 000014d0 01 29 0c 2e 6e 6f 6d 6f 72 65 32 0d 01 2a 11 53 |.)..nomore2..*.S| 000014e0 55 42 53 20 63 74 2c 63 74 2c 23 31 0d 01 2b 11 |UBS ct,ct,#1..+.| 000014f0 42 50 4c 20 65 6d 70 74 79 6c 6f 6f 70 0d 01 2c |BPL emptyloop..,| 00001500 04 0d 01 2d 13 4c 44 52 20 72 31 35 2c 72 65 74 |...-.LDR r15,ret| 00001510 73 61 76 65 0d 01 2e 04 0d 01 2f 0c 2e 63 6f 6c |save....../..col| 00001520 6f 75 72 73 0d 01 30 33 a4 64 61 74 61 28 22 46 |ours..03.data("F| 00001530 46 46 45 46 44 46 43 44 33 44 32 44 31 44 30 32 |FFEFDFCD3D2D1D02| 00001540 46 32 45 32 44 32 43 32 43 32 43 32 43 32 43 22 |F2E2D2C2C2C2C2C"| 00001550 29 20 3b 67 72 65 79 0d 01 31 39 a4 64 61 74 61 |) ;grey..19.data| 00001560 28 22 41 42 41 41 41 39 41 38 38 33 38 32 38 31 |("ABAAA9A8838281| 00001570 38 30 30 42 30 41 30 39 30 38 30 38 30 38 30 38 |800B0A0908080808| 00001580 30 38 22 29 20 3b 6c 69 67 68 74 20 62 6c 75 65 |08") ;light blue| 00001590 0d 01 32 3a a4 64 61 74 61 28 22 33 46 33 45 33 |..2:.data("3F3E3| 000015a0 44 33 43 31 33 31 32 31 31 31 30 30 37 30 36 30 |D3C1312111007060| 000015b0 35 30 34 30 33 30 32 30 31 30 30 22 29 20 3b 70 |50403020100") ;p| 000015c0 69 6e 6b 20 2d 3e 20 72 65 64 0d 01 33 3b a4 64 |ink -> red..3;.d| 000015d0 61 74 61 28 22 35 46 35 45 35 44 35 43 33 33 33 |ata("5F5E5D5C333| 000015e0 32 33 31 33 30 30 37 30 36 30 35 30 34 30 34 30 |2313007060504040| 000015f0 34 30 34 30 34 22 29 20 3b 70 65 61 63 68 20 2d |40404") ;peach -| 00001600 3e 20 72 65 64 0d 01 34 3b a4 64 61 74 61 28 22 |> red..4;.data("| 00001610 36 33 36 32 36 31 36 30 34 33 34 32 34 31 34 30 |6362616043424140| 00001620 32 33 32 32 32 31 32 30 32 30 32 30 32 30 32 30 |2322212020202020| 00001630 22 29 20 3b 62 72 69 67 68 74 20 67 72 65 65 6e |") ;bright green| 00001640 0d 01 35 05 5d 0d 01 36 04 0d 01 37 17 61 78 3d |..5.]..6...7.ax=| 00001650 30 3a 61 79 3d 31 3a 62 78 3d 32 3a 62 79 3d 33 |0:ay=1:bx=2:by=3| 00001660 0d 01 38 17 63 78 3d 34 3a 63 79 3d 35 3a 64 78 |..8.cx=4:cy=5:dx| 00001670 3d 36 3a 64 79 3d 37 0d 01 39 0d 63 6f 6c 3d 38 |=6:dy=7..9.col=8| 00001680 3a 74 3d 39 0d 01 3a 04 0d 01 3b 12 61 3d 31 30 |:t=9..:...;.a=10| 00001690 3a 62 3d 31 31 3a 63 3d 31 32 0d 01 3c 08 6e 3d |:b=11:c=12..<.n=| 000016a0 31 30 0d 01 3d 0d 71 3d 31 31 3a 73 3d 31 32 0d |10..=.q=11:s=12.| 000016b0 01 3e 04 0d 01 3f 1a 78 6c 3d 30 3a 78 72 3d 31 |.>...?.xl=0:xr=1| 000016c0 3a 6c 3d 32 3a 72 3d 33 3a 63 74 3d 34 0d 01 40 |:l=2:r=3:ct=4..@| 000016d0 17 63 31 3d 35 3a 63 32 3d 36 3a 63 33 3d 37 3a |.c1=5:c2=6:c3=7:| 000016e0 63 34 3d 38 0d 01 41 14 6f 3d 31 30 3a 6c 61 3d |c4=8..A.o=10:la=| 000016f0 31 31 3a 72 61 3d 31 32 0d 01 42 04 0d 01 43 17 |11:ra=12..B...C.| 00001700 73 70 3d 31 33 3a 6c 69 6e 6b 3d 31 34 3a 70 63 |sp=13:link=14:pc| 00001710 3d 31 35 0d 01 44 0a 5b 4f 50 54 69 25 0d 01 45 |=15..D.[OPTi%..E| 00001720 0e 2e 61 78 64 20 45 51 55 44 30 0d 01 46 0e 2e |..axd EQUD0..F..| 00001730 62 78 64 20 45 51 55 44 30 0d 01 47 08 2e 63 78 |bxd EQUD0..G..cx| 00001740 64 0d 01 48 0e 2e 64 78 64 20 45 51 55 44 30 0d |d..H..dxd EQUD0.| 00001750 01 49 0d 2e 61 62 20 45 51 55 44 30 0d 01 4a 0d |.I..ab EQUD0..J.| 00001760 2e 62 63 20 45 51 55 44 30 0d 01 4b 07 2e 64 63 |.bc EQUD0..K..dc| 00001770 0d 01 4c 0d 2e 63 64 20 45 51 55 44 30 0d 01 4d |..L..cd EQUD0..M| 00001780 07 2e 61 63 0d 01 4e 0d 2e 61 64 20 45 51 55 44 |..ac..N..ad EQUD| 00001790 30 0d 01 4f 0d 2e 61 61 20 45 51 55 44 30 0d 01 |0..O..aa EQUD0..| 000017a0 50 07 2e 64 64 0d 01 51 0d 2e 62 62 20 45 51 55 |P..dd..Q..bb EQU| 000017b0 44 30 0d 01 52 0d 2e 63 63 20 45 51 55 44 30 0d |D0..R..cc EQUD0.| 000017c0 01 53 10 2e 79 70 6f 73 71 20 45 51 55 44 30 0d |.S..yposq EQUD0.| 000017d0 01 54 1a 2e 64 69 74 61 62 64 20 45 51 55 44 20 |.T..ditabd EQUD | 000017e0 64 69 76 74 61 62 6c 65 25 0d 01 55 04 0d 01 56 |divtable%..U...V| 000017f0 08 2e 74 72 69 0d 01 57 1b 53 54 4d 46 44 20 72 |..tri..W.STMFD r| 00001800 31 33 21 2c 7b 72 39 2d 72 31 32 2c 72 31 34 7d |13!,{r9-r12,r14}| 00001810 0d 01 58 04 0d 01 59 13 3b 80 20 63 6f 6c 2c 63 |..X...Y.;. col,c| 00001820 6f 6c 2c 23 26 66 66 0d 01 5a 19 41 44 44 20 63 |ol,#&ff..Z.ADD c| 00001830 6f 6c 2c 63 6f 6c 2c 63 6f 6c 2c 4c 53 4c 23 38 |ol,col,col,LSL#8| 00001840 0d 01 5b 1a 41 44 44 20 63 6f 6c 2c 63 6f 6c 2c |..[.ADD col,col,| 00001850 63 6f 6c 2c 4c 53 4c 23 31 36 0d 01 5c 04 0d 01 |col,LSL#16..\...| 00001860 5d 16 41 44 44 20 61 78 2c 61 78 2c 23 6f 72 69 |].ADD ax,ax,#ori| 00001870 67 69 6e 58 0d 01 5e 16 41 44 44 20 62 78 2c 62 |ginX..^.ADD bx,b| 00001880 78 2c 23 6f 72 69 67 69 6e 58 0d 01 5f 16 41 44 |x,#originX.._.AD| 00001890 44 20 63 78 2c 63 78 2c 23 6f 72 69 67 69 6e 58 |D cx,cx,#originX| 000018a0 0d 01 60 04 0d 01 61 1f 43 4d 50 20 61 79 2c 62 |..`...a.CMP ay,b| 000018b0 79 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 73 |y ;s| 000018c0 6f 72 74 0d 01 62 0e 4d 4f 56 47 54 20 74 2c 61 |ort..b.MOVGT t,a| 000018d0 78 0d 01 63 0f 4d 4f 56 47 54 20 61 78 2c 62 78 |x..c.MOVGT ax,bx| 000018e0 0d 01 64 0e 4d 4f 56 47 54 20 62 78 2c 74 0d 01 |..d.MOVGT bx,t..| 000018f0 65 0e 4d 4f 56 47 54 20 74 2c 61 79 0d 01 66 0f |e.MOVGT t,ay..f.| 00001900 4d 4f 56 47 54 20 61 79 2c 62 79 0d 01 67 0e 4d |MOVGT ay,by..g.M| 00001910 4f 56 47 54 20 62 79 2c 74 0d 01 68 0d 43 4d 50 |OVGT by,t..h.CMP| 00001920 20 62 79 2c 63 79 0d 01 69 0e 4d 4f 56 47 54 20 | by,cy..i.MOVGT | 00001930 74 2c 62 78 0d 01 6a 0f 4d 4f 56 47 54 20 62 78 |t,bx..j.MOVGT bx| 00001940 2c 63 78 0d 01 6b 0e 4d 4f 56 47 54 20 63 78 2c |,cx..k.MOVGT cx,| 00001950 74 0d 01 6c 0e 4d 4f 56 47 54 20 74 2c 62 79 0d |t..l.MOVGT t,by.| 00001960 01 6d 0f 4d 4f 56 47 54 20 62 79 2c 63 79 0d 01 |.m.MOVGT by,cy..| 00001970 6e 0e 4d 4f 56 47 54 20 63 79 2c 74 0d 01 6f 13 |n.MOVGT cy,t..o.| 00001980 43 4d 50 20 61 79 2c 62 79 20 20 20 20 20 20 0d |CMP ay,by .| 00001990 01 70 0e 4d 4f 56 47 54 20 74 2c 61 78 0d 01 71 |.p.MOVGT t,ax..q| 000019a0 0f 4d 4f 56 47 54 20 61 78 2c 62 78 0d 01 72 0e |.MOVGT ax,bx..r.| 000019b0 4d 4f 56 47 54 20 62 78 2c 74 0d 01 73 0e 4d 4f |MOVGT bx,t..s.MO| 000019c0 56 47 54 20 74 2c 61 79 0d 01 74 0f 4d 4f 56 47 |VGT t,ay..t.MOVG| 000019d0 54 20 61 79 2c 62 79 0d 01 75 0e 4d 4f 56 47 54 |T ay,by..u.MOVGT| 000019e0 20 62 79 2c 74 0d 01 76 04 0d 01 77 04 0d 01 78 | by,t..v...w...x| 000019f0 15 41 44 44 20 74 2c 61 79 2c 23 6f 72 69 67 69 |.ADD t,ay,#origi| 00001a00 6e 59 0d 01 79 0f 53 54 52 20 74 2c 79 70 6f 73 |nY..y.STR t,ypos| 00001a10 71 0d 01 7a 04 0d 01 7b 04 0d 01 7c 0e 53 54 52 |q..z...{...|.STR| 00001a20 20 61 78 2c 61 78 64 0d 01 7d 0e 53 54 52 20 62 | ax,axd..}.STR b| 00001a30 78 2c 62 78 64 0d 01 7e 0e 53 54 52 20 63 78 2c |x,bxd..~.STR cx,| 00001a40 63 78 64 0d 01 7f 04 0d 01 80 10 4c 44 52 20 71 |cxd........LDR q| 00001a50 2c 64 69 74 61 62 64 0d 01 81 0f 53 55 42 20 74 |,ditabd....SUB t| 00001a60 2c 62 78 2c 61 78 0d 01 82 0f 53 55 42 20 6e 2c |,bx,ax....SUB n,| 00001a70 62 79 2c 61 79 0d 01 83 0c 53 54 52 20 6e 2c 61 |by,ay....STR n,a| 00001a80 61 0d 01 84 15 4c 44 52 20 6e 2c 5b 71 2c 6e 2c |a....LDR n,[q,n,| 00001a90 41 53 4c 23 32 5d 0d 01 85 0d 4d 55 4c 20 6e 2c |ASL#2]....MUL n,| 00001aa0 74 2c 6e 0d 01 86 0c 53 54 52 20 6e 2c 61 62 0d |t,n....STR n,ab.| 00001ab0 01 87 04 0d 01 88 0f 53 55 42 20 74 2c 63 78 2c |.......SUB t,cx,| 00001ac0 62 78 0d 01 89 0f 53 55 42 20 6e 2c 63 79 2c 62 |bx....SUB n,cy,b| 00001ad0 79 0d 01 8a 0c 53 54 52 20 6e 2c 62 62 0d 01 8b |y....STR n,bb...| 00001ae0 15 4c 44 52 20 6e 2c 5b 71 2c 6e 2c 41 53 4c 23 |.LDR n,[q,n,ASL#| 00001af0 32 5d 0d 01 8c 0d 4d 55 4c 20 6e 2c 74 2c 6e 0d |2]....MUL n,t,n.| 00001b00 01 8d 0c 53 54 52 20 6e 2c 62 63 0d 01 8e 04 0d |...STR n,bc.....| 00001b10 01 8f 0f 53 55 42 20 74 2c 63 78 2c 61 78 0d 01 |...SUB t,cx,ax..| 00001b20 90 0f 53 55 42 20 6e 2c 63 79 2c 61 79 0d 01 91 |..SUB n,cy,ay...| 00001b30 15 4c 44 52 20 6e 2c 5b 71 2c 6e 2c 41 53 4c 23 |.LDR n,[q,n,ASL#| 00001b40 32 5d 0d 01 92 0d 4d 55 4c 20 6e 2c 74 2c 6e 0d |2]....MUL n,t,n.| 00001b50 01 93 0c 53 54 52 20 6e 2c 61 63 0d 01 94 04 0d |...STR n,ac.....| 00001b60 01 95 0d 4c 44 52 20 6f 2c 76 64 75 0d 01 96 15 |...LDR o,vdu....| 00001b70 41 44 44 20 74 2c 61 79 2c 23 6f 72 69 67 69 6e |ADD t,ay,#origin| 00001b80 59 0d 01 97 13 41 44 44 20 74 2c 74 2c 74 2c 41 |Y....ADD t,t,t,A| 00001b90 53 4c 23 32 0d 01 98 13 41 44 44 20 6f 2c 6f 2c |SL#2....ADD o,o,| 00001ba0 74 2c 41 53 4c 23 36 0d 01 99 04 0d 01 9a 0d 4d |t,ASL#6........M| 00001bb0 4f 56 20 63 31 2c 63 34 0d 01 9b 0d 4d 4f 56 20 |OV c1,c4....MOV | 00001bc0 63 32 2c 63 34 0d 01 9c 0d 4d 4f 56 20 63 33 2c |c2,c4....MOV c3,| 00001bd0 63 34 0d 01 9d 04 0d 01 9e 0d 4c 44 52 20 63 74 |c4........LDR ct| 00001be0 2c 61 61 0d 01 9f 0d 43 4d 50 20 63 74 2c 23 30 |,aa....CMP ct,#0| 00001bf0 0d 01 a0 0d 4c 44 52 20 74 2c 61 78 64 0d 01 a1 |....LDR t,axd...| 00001c00 13 4d 4f 56 20 6c 2c 74 2c 41 53 4c 23 66 70 25 |.MOV l,t,ASL#fp%| 00001c10 0d 01 a2 13 4d 4f 56 20 72 2c 74 2c 41 53 4c 23 |....MOV r,t,ASL#| 00001c20 66 70 25 0d 01 a3 0d 4c 44 52 20 6c 61 2c 61 63 |fp%....LDR la,ac| 00001c30 0d 01 a4 17 41 44 44 20 6c 2c 6c 2c 23 31 3c 3c |....ADD l,l,#1<<| 00001c40 28 66 70 25 2d 31 29 0d 01 a5 0d 4c 44 52 20 72 |(fp%-1)....LDR r| 00001c50 61 2c 61 62 0d 01 a6 17 41 44 44 20 72 2c 72 2c |a,ab....ADD r,r,| 00001c60 23 31 3c 3c 28 66 70 25 2d 31 29 0d 01 a7 0e 42 |#1<<(fp%-1)....B| 00001c70 4c 4e 45 20 70 69 65 63 65 0d 01 a8 04 0d 01 a9 |LNE piece.......| 00001c80 0d 4c 44 52 20 63 74 2c 62 62 0d 01 aa 0d 43 4d |.LDR ct,bb....CM| 00001c90 50 20 63 74 2c 23 30 0d 01 ab 0d 4c 44 52 20 74 |P ct,#0....LDR t| 00001ca0 2c 62 78 64 0d 01 ac 13 4d 4f 56 20 72 2c 74 2c |,bxd....MOV r,t,| 00001cb0 41 53 4c 23 66 70 25 0d 01 ad 0d 4c 44 52 20 72 |ASL#fp%....LDR r| 00001cc0 61 2c 62 63 0d 01 ae 17 41 44 44 20 72 2c 72 2c |a,bc....ADD r,r,| 00001cd0 23 31 3c 3c 28 66 70 25 2d 31 29 0d 01 af 0e 42 |#1<<(fp%-1)....B| 00001ce0 4c 4e 45 20 70 69 65 63 65 0d 01 b0 1c 4c 44 4d |LNE piece....LDM| 00001cf0 46 44 20 72 31 33 21 2c 7b 72 39 2d 72 31 32 2c |FD r13!,{r9-r12,| 00001d00 72 31 35 7d 5e 0d 01 b1 04 0d 01 b2 39 2e 71 75 |r15}^.......9.qu| 00001d10 61 64 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |ad | 00001d20 20 20 20 20 20 20 3b 62 61 73 65 64 20 6f 6e 20 | ;based on | 00001d30 61 20 72 6f 75 74 69 6e 65 20 62 79 20 4a 61 6e |a routine by Jan| 00001d40 20 ef 0d 01 b3 1b 53 54 4d 46 44 20 72 31 33 21 | .....STMFD r13!| 00001d50 2c 7b 72 39 2d 72 31 32 2c 72 31 34 7d 0d 01 b4 |,{r9-r12,r14}...| 00001d60 04 0d 01 b5 13 3b 80 20 63 6f 6c 2c 63 6f 6c 2c |.....;. col,col,| 00001d70 23 26 66 66 0d 01 b6 19 41 44 44 20 63 6f 6c 2c |#&ff....ADD col,| 00001d80 63 6f 6c 2c 63 6f 6c 2c 4c 53 4c 23 38 0d 01 b7 |col,col,LSL#8...| 00001d90 1a 41 44 44 20 63 6f 6c 2c 63 6f 6c 2c 63 6f 6c |.ADD col,col,col| 00001da0 2c 4c 53 4c 23 31 36 0d 01 b8 04 0d 01 b9 16 41 |,LSL#16........A| 00001db0 44 44 20 61 78 2c 61 78 2c 23 6f 72 69 67 69 6e |DD ax,ax,#origin| 00001dc0 58 0d 01 ba 16 41 44 44 20 62 78 2c 62 78 2c 23 |X....ADD bx,bx,#| 00001dd0 6f 72 69 67 69 6e 58 0d 01 bb 16 41 44 44 20 63 |originX....ADD c| 00001de0 78 2c 63 78 2c 23 6f 72 69 67 69 6e 58 0d 01 bc |x,cx,#originX...| 00001df0 16 41 44 44 20 64 78 2c 64 78 2c 23 6f 72 69 67 |.ADD dx,dx,#orig| 00001e00 69 6e 58 0d 01 bd 04 0d 01 be 24 4d 4f 56 20 74 |inX.......$MOV t| 00001e10 2c 61 79 20 20 3b 66 69 6e 64 20 73 6d 61 6c 6c |,ay ;find small| 00001e20 65 73 74 20 28 74 6f 70 29 20 79 0d 01 bf 0c 43 |est (top) y....C| 00001e30 4d 50 20 74 2c 62 79 0d 01 c0 0e 4d 4f 56 47 54 |MP t,by....MOVGT| 00001e40 20 74 2c 62 79 0d 01 c1 0c 43 4d 50 20 74 2c 63 | t,by....CMP t,c| 00001e50 79 0d 01 c2 0e 4d 4f 56 47 54 20 74 2c 63 79 0d |y....MOVGT t,cy.| 00001e60 01 c3 0c 43 4d 50 20 74 2c 64 79 0d 01 c4 0e 4d |...CMP t,dy....M| 00001e70 4f 56 47 54 20 74 2c 64 79 0d 01 c5 04 0d 01 c6 |OVGT t,dy.......| 00001e80 0a 2e 6f 72 64 65 72 0d 01 c7 0c 43 4d 50 20 74 |..order....CMP t| 00001e90 2c 61 79 0d 01 c8 0a 42 45 51 20 6f 6b 0d 01 c9 |,ay....BEQ ok...| 00001ea0 08 a4 72 6f 74 0d 01 ca 0b 42 20 6f 72 64 65 72 |..rot....B order| 00001eb0 0d 01 cb 07 2e 6f 6b 0d 01 cc 04 0d 01 cd 15 41 |.....ok........A| 00001ec0 44 44 20 74 2c 61 79 2c 23 6f 72 69 67 69 6e 59 |DD t,ay,#originY| 00001ed0 0d 01 ce 0f 53 54 52 20 74 2c 79 70 6f 73 71 0d |....STR t,yposq.| 00001ee0 01 cf 04 0d 01 d0 0d 43 4d 50 20 62 79 2c 64 79 |.......CMP by,dy| 00001ef0 0d 01 d1 0e 4d 4f 56 47 54 20 74 2c 62 78 0d 01 |....MOVGT t,bx..| 00001f00 d2 0e 4d 4f 56 47 54 20 73 2c 62 79 0d 01 d3 0f |..MOVGT s,by....| 00001f10 4d 4f 56 47 54 20 62 78 2c 64 78 0d 01 d4 0f 4d |MOVGT bx,dx....M| 00001f20 4f 56 47 54 20 62 79 2c 64 79 0d 01 d5 0e 4d 4f |OVGT by,dy....MO| 00001f30 56 47 54 20 64 78 2c 74 0d 01 d6 0e 4d 4f 56 47 |VGT dx,t....MOVG| 00001f40 54 20 64 79 2c 73 0d 01 d7 04 0d 01 d8 0d 43 4d |T dy,s........CM| 00001f50 50 20 63 79 2c 64 79 0d 01 d9 0f 42 47 54 20 64 |P cy,dy....BGT d| 00001f60 69 61 6d 6f 6e 64 0d 01 da 04 0d 01 db 24 43 4d |iamond.......$CM| 00001f70 50 20 63 79 2c 62 79 20 20 20 20 20 20 20 20 20 |P cy,by | 00001f80 20 20 20 20 20 20 3b 44 55 42 49 4f 55 53 0d 01 | ;DUBIOUS..| 00001f90 dc 25 4d 4f 56 4c 54 20 63 79 2c 62 79 20 20 20 |.%MOVLT cy,by | 00001fa0 20 20 20 20 20 20 20 20 20 20 3b 53 4f 4c 55 54 | ;SOLUT| 00001fb0 49 4f 4e 0d 01 dd 04 0d 01 de 0e 53 54 52 20 61 |ION........STR a| 00001fc0 78 2c 61 78 64 0d 01 df 0e 53 54 52 20 62 78 2c |x,axd....STR bx,| 00001fd0 62 78 64 0d 01 e0 0e 53 54 52 20 63 78 2c 63 78 |bxd....STR cx,cx| 00001fe0 64 0d 01 e1 04 0d 01 e2 10 4c 44 52 20 71 2c 64 |d........LDR q,d| 00001ff0 69 74 61 62 64 0d 01 e3 0f 53 55 42 20 74 2c 62 |itabd....SUB t,b| 00002000 78 2c 61 78 0d 01 e4 0f 53 55 42 20 6e 2c 62 79 |x,ax....SUB n,by| 00002010 2c 61 79 0d 01 e5 0c 53 54 52 20 6e 2c 61 61 0d |,ay....STR n,aa.| 00002020 01 e6 15 4c 44 52 20 6e 2c 5b 71 2c 6e 2c 41 53 |...LDR n,[q,n,AS| 00002030 4c 23 32 5d 0d 01 e7 0d 4d 55 4c 20 6e 2c 74 2c |L#2]....MUL n,t,| 00002040 6e 0d 01 e8 0c 53 54 52 20 6e 2c 61 62 0d 01 e9 |n....STR n,ab...| 00002050 0f 53 55 42 20 74 2c 64 78 2c 61 78 0d 01 ea 0f |.SUB t,dx,ax....| 00002060 53 55 42 20 6e 2c 64 79 2c 61 79 0d 01 eb 15 4c |SUB n,dy,ay....L| 00002070 44 52 20 6e 2c 5b 71 2c 6e 2c 41 53 4c 23 32 5d |DR n,[q,n,ASL#2]| 00002080 0d 01 ec 0d 4d 55 4c 20 6e 2c 74 2c 6e 0d 01 ed |....MUL n,t,n...| 00002090 0c 53 54 52 20 6e 2c 61 64 0d 01 ee 0f 53 55 42 |.STR n,ad....SUB| 000020a0 20 74 2c 63 78 2c 62 78 0d 01 ef 0f 53 55 42 20 | t,cx,bx....SUB | 000020b0 6e 2c 63 79 2c 62 79 0d 01 f0 0c 53 54 52 20 6e |n,cy,by....STR n| 000020c0 2c 62 62 0d 01 f1 15 4c 44 52 20 6e 2c 5b 71 2c |,bb....LDR n,[q,| 000020d0 6e 2c 41 53 4c 23 32 5d 0d 01 f2 0d 4d 55 4c 20 |n,ASL#2]....MUL | 000020e0 6e 2c 74 2c 6e 0d 01 f3 0c 53 54 52 20 6e 2c 62 |n,t,n....STR n,b| 000020f0 63 0d 01 f4 0f 53 55 42 20 74 2c 64 78 2c 63 78 |c....SUB t,dx,cx| 00002100 0d 01 f5 0f 53 55 42 20 6e 2c 64 79 2c 63 79 0d |....SUB n,dy,cy.| 00002110 01 f6 0c 53 54 52 20 6e 2c 63 63 0d 01 f7 15 4c |...STR n,cc....L| 00002120 44 52 20 6e 2c 5b 71 2c 6e 2c 41 53 4c 23 32 5d |DR n,[q,n,ASL#2]| 00002130 0d 01 f8 0d 4d 55 4c 20 6e 2c 74 2c 6e 0d 01 f9 |....MUL n,t,n...| 00002140 0c 53 54 52 20 6e 2c 63 64 0d 01 fa 04 0d 01 fb |.STR n,cd.......| 00002150 0d 4c 44 52 20 6f 2c 76 64 75 0d 01 fc 15 41 44 |.LDR o,vdu....AD| 00002160 44 20 74 2c 61 79 2c 23 6f 72 69 67 69 6e 59 0d |D t,ay,#originY.| 00002170 01 fd 13 41 44 44 20 74 2c 74 2c 74 2c 41 53 4c |...ADD t,t,t,ASL| 00002180 23 32 0d 01 fe 13 41 44 44 20 6f 2c 6f 2c 74 2c |#2....ADD o,o,t,| 00002190 41 53 4c 23 36 0d 01 ff 04 0d 02 00 0d 4d 4f 56 |ASL#6........MOV| 000021a0 20 63 31 2c 63 34 0d 02 01 0d 4d 4f 56 20 63 32 | c1,c4....MOV c2| 000021b0 2c 63 34 0d 02 02 0d 4d 4f 56 20 63 33 2c 63 34 |,c4....MOV c3,c4| 000021c0 0d 02 03 04 0d 02 04 0d 4c 44 52 20 63 74 2c 61 |........LDR ct,a| 000021d0 61 0d 02 05 0d 43 4d 50 20 63 74 2c 23 30 0d 02 |a....CMP ct,#0..| 000021e0 06 0d 4c 44 52 20 74 2c 61 78 64 0d 02 07 13 4d |..LDR t,axd....M| 000021f0 4f 56 20 6c 2c 74 2c 41 53 4c 23 66 70 25 0d 02 |OV l,t,ASL#fp%..| 00002200 08 13 4d 4f 56 20 72 2c 74 2c 41 53 4c 23 66 70 |..MOV r,t,ASL#fp| 00002210 25 0d 02 09 0d 4c 44 52 20 6c 61 2c 61 64 0d 02 |%....LDR la,ad..| 00002220 0a 17 41 44 44 20 6c 2c 6c 2c 23 31 3c 3c 28 66 |..ADD l,l,#1<<(f| 00002230 70 25 2d 31 29 0d 02 0b 0d 4c 44 52 20 72 61 2c |p%-1)....LDR ra,| 00002240 61 62 0d 02 0c 17 41 44 44 20 72 2c 72 2c 23 31 |ab....ADD r,r,#1| 00002250 3c 3c 28 66 70 25 2d 31 29 0d 02 0d 0e 42 4c 4e |<<(fp%-1)....BLN| 00002260 45 20 70 69 65 63 65 0d 02 0e 04 0d 02 0f 0d 4c |E piece........L| 00002270 44 52 20 63 74 2c 62 62 0d 02 10 0d 43 4d 50 20 |DR ct,bb....CMP | 00002280 63 74 2c 23 30 0d 02 11 0d 4c 44 52 20 74 2c 62 |ct,#0....LDR t,b| 00002290 78 64 0d 02 12 13 4d 4f 56 20 72 2c 74 2c 41 53 |xd....MOV r,t,AS| 000022a0 4c 23 66 70 25 0d 02 13 0d 4c 44 52 20 72 61 2c |L#fp%....LDR ra,| 000022b0 62 63 0d 02 14 17 41 44 44 20 72 2c 72 2c 23 31 |bc....ADD r,r,#1| 000022c0 3c 3c 28 66 70 25 2d 31 29 0d 02 15 0e 42 4c 4e |<<(fp%-1)....BLN| 000022d0 45 20 70 69 65 63 65 0d 02 16 04 0d 02 17 0d 4c |E piece........L| 000022e0 44 52 20 63 74 2c 63 63 0d 02 18 0d 43 4d 50 20 |DR ct,cc....CMP | 000022f0 63 74 2c 23 30 0d 02 19 0d 4c 44 52 20 74 2c 63 |ct,#0....LDR t,c| 00002300 78 64 0d 02 1a 13 4d 4f 56 20 72 2c 74 2c 41 53 |xd....MOV r,t,AS| 00002310 4c 23 66 70 25 0d 02 1b 0d 4c 44 52 20 72 61 2c |L#fp%....LDR ra,| 00002320 63 64 0d 02 1c 17 41 44 44 20 72 2c 72 2c 23 31 |cd....ADD r,r,#1| 00002330 3c 3c 28 66 70 25 2d 31 29 0d 02 1d 0e 42 4c 4e |<<(fp%-1)....BLN| 00002340 45 20 70 69 65 63 65 0d 02 1e 1c 4c 44 4d 46 44 |E piece....LDMFD| 00002350 20 72 31 33 21 2c 7b 72 39 2d 72 31 32 2c 72 31 | r13!,{r9-r12,r1| 00002360 35 7d 5e 0d 02 1f 04 0d 02 20 04 0d 02 21 0c 2e |5}^...... ...!..| 00002370 64 69 61 6d 6f 6e 64 0d 02 22 0e 53 54 52 20 61 |diamond..".STR a| 00002380 78 2c 61 78 64 0d 02 23 0e 53 54 52 20 62 78 2c |x,axd..#.STR bx,| 00002390 62 78 64 0d 02 24 0e 53 54 52 20 64 78 2c 64 78 |bxd..$.STR dx,dx| 000023a0 64 0d 02 25 04 0d 02 26 10 4c 44 52 20 71 2c 64 |d..%...&.LDR q,d| 000023b0 69 74 61 62 64 0d 02 27 0f 53 55 42 20 74 2c 62 |itabd..'.SUB t,b| 000023c0 78 2c 61 78 0d 02 28 0f 53 55 42 20 6e 2c 62 79 |x,ax..(.SUB n,by| 000023d0 2c 61 79 0d 02 29 0c 53 54 52 20 6e 2c 61 61 0d |,ay..).STR n,aa.| 000023e0 02 2a 15 4c 44 52 20 6e 2c 5b 71 2c 6e 2c 41 53 |.*.LDR n,[q,n,AS| 000023f0 4c 23 32 5d 0d 02 2b 0d 4d 55 4c 20 6e 2c 74 2c |L#2]..+.MUL n,t,| 00002400 6e 0d 02 2c 0c 53 54 52 20 6e 2c 61 62 0d 02 2d |n..,.STR n,ab..-| 00002410 04 0d 02 2e 0f 53 55 42 20 74 2c 64 78 2c 61 78 |.....SUB t,dx,ax| 00002420 0d 02 2f 0f 53 55 42 20 6e 2c 64 79 2c 61 79 0d |../.SUB n,dy,ay.| 00002430 02 30 15 4c 44 52 20 6e 2c 5b 71 2c 6e 2c 41 53 |.0.LDR n,[q,n,AS| 00002440 4c 23 32 5d 0d 02 31 0d 4d 55 4c 20 6e 2c 74 2c |L#2]..1.MUL n,t,| 00002450 6e 0d 02 32 0c 53 54 52 20 6e 2c 61 64 0d 02 33 |n..2.STR n,ad..3| 00002460 04 0d 02 34 0f 53 55 42 20 74 2c 63 78 2c 62 78 |...4.SUB t,cx,bx| 00002470 0d 02 35 0f 53 55 42 20 6e 2c 63 79 2c 62 79 0d |..5.SUB n,cy,by.| 00002480 02 36 15 4c 44 52 20 6e 2c 5b 71 2c 6e 2c 41 53 |.6.LDR n,[q,n,AS| 00002490 4c 23 32 5d 0d 02 37 0d 4d 55 4c 20 6e 2c 74 2c |L#2]..7.MUL n,t,| 000024a0 6e 0d 02 38 0c 53 54 52 20 6e 2c 62 63 0d 02 39 |n..8.STR n,bc..9| 000024b0 04 0d 02 3a 0f 53 55 42 20 74 2c 63 78 2c 64 78 |...:.SUB t,cx,dx| 000024c0 0d 02 3b 0f 53 55 42 20 6e 2c 63 79 2c 64 79 0d |..;.SUB n,cy,dy.| 000024d0 02 3c 0c 53 54 52 20 6e 2c 63 63 0d 02 3d 15 4c |.<.STR n,cc..=.L| 000024e0 44 52 20 6e 2c 5b 71 2c 6e 2c 41 53 4c 23 32 5d |DR n,[q,n,ASL#2]| 000024f0 0d 02 3e 0d 4d 55 4c 20 6e 2c 74 2c 6e 0d 02 3f |..>.MUL n,t,n..?| 00002500 0c 53 54 52 20 6e 2c 64 63 0d 02 40 04 0d 02 41 |.STR n,dc..@...A| 00002510 0f 53 55 42 20 6e 2c 64 79 2c 62 79 0d 02 42 0c |.SUB n,dy,by..B.| 00002520 53 54 52 20 6e 2c 64 64 0d 02 43 04 0d 02 44 0d |STR n,dd..C...D.| 00002530 4c 44 52 20 6f 2c 76 64 75 0d 02 45 15 41 44 44 |LDR o,vdu..E.ADD| 00002540 20 74 2c 61 79 2c 23 6f 72 69 67 69 6e 59 0d 02 | t,ay,#originY..| 00002550 46 13 41 44 44 20 74 2c 74 2c 74 2c 41 53 4c 23 |F.ADD t,t,t,ASL#| 00002560 32 0d 02 47 13 41 44 44 20 6f 2c 6f 2c 74 2c 41 |2..G.ADD o,o,t,A| 00002570 53 4c 23 36 0d 02 48 04 0d 02 49 0d 4d 4f 56 20 |SL#6..H...I.MOV | 00002580 63 31 2c 63 34 0d 02 4a 0d 4d 4f 56 20 63 32 2c |c1,c4..J.MOV c2,| 00002590 63 34 0d 02 4b 0d 4d 4f 56 20 63 33 2c 63 34 0d |c4..K.MOV c3,c4.| 000025a0 02 4c 04 0d 02 4d 0d 4c 44 52 20 63 74 2c 61 61 |.L...M.LDR ct,aa| 000025b0 0d 02 4e 0d 43 4d 50 20 63 74 2c 23 30 0d 02 4f |..N.CMP ct,#0..O| 000025c0 0d 4c 44 52 20 74 2c 61 78 64 0d 02 50 13 4d 4f |.LDR t,axd..P.MO| 000025d0 56 20 6c 2c 74 2c 41 53 4c 23 66 70 25 0d 02 51 |V l,t,ASL#fp%..Q| 000025e0 13 4d 4f 56 20 72 2c 74 2c 41 53 4c 23 66 70 25 |.MOV r,t,ASL#fp%| 000025f0 0d 02 52 0d 4c 44 52 20 6c 61 2c 61 64 0d 02 53 |..R.LDR la,ad..S| 00002600 17 41 44 44 20 6c 2c 6c 2c 23 31 3c 3c 28 66 70 |.ADD l,l,#1<<(fp| 00002610 25 2d 31 29 0d 02 54 0d 4c 44 52 20 72 61 2c 61 |%-1)..T.LDR ra,a| 00002620 62 0d 02 55 17 41 44 44 20 72 2c 72 2c 23 31 3c |b..U.ADD r,r,#1<| 00002630 3c 28 66 70 25 2d 31 29 0d 02 56 0e 42 4c 4e 45 |<(fp%-1)..V.BLNE| 00002640 20 70 69 65 63 65 0d 02 57 04 0d 02 58 0d 4c 44 | piece..W...X.LD| 00002650 52 20 63 74 2c 64 64 0d 02 59 0d 43 4d 50 20 63 |R ct,dd..Y.CMP c| 00002660 74 2c 23 30 0d 02 5a 0d 4c 44 52 20 74 2c 62 78 |t,#0..Z.LDR t,bx| 00002670 64 0d 02 5b 13 4d 4f 56 20 72 2c 74 2c 41 53 4c |d..[.MOV r,t,ASL| 00002680 23 66 70 25 0d 02 5c 0d 4c 44 52 20 72 61 2c 62 |#fp%..\.LDR ra,b| 00002690 63 0d 02 5d 17 41 44 44 20 72 2c 72 2c 23 31 3c |c..].ADD r,r,#1<| 000026a0 3c 28 66 70 25 2d 31 29 0d 02 5e 0e 42 4c 4e 45 |<(fp%-1)..^.BLNE| 000026b0 20 70 69 65 63 65 0d 02 5f 04 0d 02 60 0d 4c 44 | piece.._...`.LD| 000026c0 52 20 63 74 2c 63 63 0d 02 61 0d 43 4d 50 20 63 |R ct,cc..a.CMP c| 000026d0 74 2c 23 30 0d 02 62 0d 4c 44 52 20 74 2c 64 78 |t,#0..b.LDR t,dx| 000026e0 64 0d 02 63 13 4d 4f 56 20 6c 2c 74 2c 41 53 4c |d..c.MOV l,t,ASL| 000026f0 23 66 70 25 0d 02 64 0d 4c 44 52 20 6c 61 2c 64 |#fp%..d.LDR la,d| 00002700 63 0d 02 65 17 41 44 44 20 6c 2c 6c 2c 23 31 3c |c..e.ADD l,l,#1<| 00002710 3c 28 66 70 25 2d 31 29 0d 02 66 0e 42 4c 4e 45 |<(fp%-1)..f.BLNE| 00002720 20 70 69 65 63 65 0d 02 67 1c 4c 44 4d 46 44 20 | piece..g.LDMFD | 00002730 72 31 33 21 2c 7b 72 39 2d 72 31 32 2c 72 31 35 |r13!,{r9-r12,r15| 00002740 7d 5e 0d 02 68 04 0d 02 69 05 20 0d 02 6a 1c 2e |}^..h...i. ..j..| 00002750 70 69 65 63 65 20 3b 53 54 4d 46 44 20 72 31 33 |piece ;STMFD r13| 00002760 21 2c 7b 72 31 34 7d 0d 02 6b 07 2e 6c 6f 0d 02 |!,{r14}..k..lo..| 00002770 6c 0f 4c 44 52 20 74 2c 79 70 6f 73 71 0d 02 6d |l.LDR t,yposq..m| 00002780 0e 41 44 44 20 74 2c 74 2c 23 31 0d 02 6e 0f 53 |.ADD t,t,#1..n.S| 00002790 54 52 20 74 2c 79 70 6f 73 71 0d 02 6f 11 43 4d |TR t,yposq..o.CM| 000027a0 50 20 74 2c 23 66 72 61 6d 65 54 0d 02 70 0f 42 |P t,#frameT..p.B| 000027b0 4c 45 20 65 6e 64 73 70 61 6e 0d 02 71 11 43 4d |LE endspan..q.CM| 000027c0 50 20 74 2c 23 66 72 61 6d 65 42 0d 02 72 2f 4d |P t,#frameB..r/M| 000027d0 4f 56 47 54 20 72 31 35 2c 72 31 34 20 20 20 20 |OVGT r15,r14 | 000027e0 20 20 20 20 20 20 20 3b 4c 44 4d 46 44 47 54 20 | ;LDMFDGT | 000027f0 72 31 33 21 2c 7b 72 31 35 7d 0d 02 73 04 0d 02 |r13!,{r15}..s...| 00002800 74 0b 43 4d 50 20 6c 2c 72 0d 02 75 16 4d 4f 56 |t.CMP l,r..u.MOV| 00002810 4c 54 20 78 6c 2c 6c 2c 41 53 52 23 66 70 25 0d |LT xl,l,ASR#fp%.| 00002820 02 76 16 4d 4f 56 4c 54 20 78 72 2c 72 2c 41 53 |.v.MOVLT xr,r,AS| 00002830 52 23 66 70 25 0d 02 77 16 4d 4f 56 47 45 20 78 |R#fp%..w.MOVGE x| 00002840 6c 2c 72 2c 41 53 52 23 66 70 25 0d 02 78 16 4d |l,r,ASR#fp%..x.M| 00002850 4f 56 47 45 20 78 72 2c 6c 2c 41 53 52 23 66 70 |OVGE xr,l,ASR#fp| 00002860 25 0d 02 79 04 0d 02 7a 12 43 4d 50 20 78 6c 2c |%..y...z.CMP xl,| 00002870 23 66 72 61 6d 65 52 0d 02 7b 0f 42 47 54 20 65 |#frameR..{.BGT e| 00002880 6e 64 73 70 61 6e 0d 02 7c 12 43 4d 50 20 78 72 |ndspan..|.CMP xr| 00002890 2c 23 66 72 61 6d 65 4c 0d 02 7d 0f 42 4c 54 20 |,#frameL..}.BLT | 000028a0 65 6e 64 73 70 61 6e 0d 02 7e 12 43 4d 50 20 78 |endspan..~.CMP x| 000028b0 6c 2c 23 66 72 61 6d 65 4c 0d 02 7f 14 4d 4f 56 |l,#frameL....MOV| 000028c0 4c 54 20 78 6c 2c 23 66 72 61 6d 65 4c 0d 02 80 |LT xl,#frameL...| 000028d0 12 43 4d 50 20 78 72 2c 23 66 72 61 6d 65 52 0d |.CMP xr,#frameR.| 000028e0 02 81 14 4d 4f 56 47 54 20 78 72 2c 23 66 72 61 |...MOVGT xr,#fra| 000028f0 6d 65 52 0d 02 82 04 0d 02 83 0f 41 44 44 20 78 |meR........ADD x| 00002900 6c 2c 6f 2c 78 6c 0d 02 84 0f 41 44 44 20 78 72 |l,o,xl....ADD xr| 00002910 2c 6f 2c 78 72 0d 02 85 04 0d 02 86 10 53 55 42 |,o,xr........SUB| 00002920 53 20 74 2c 78 72 2c 78 6c 0d 02 87 0f 42 45 51 |S t,xr,xl....BEQ| 00002930 20 65 6e 64 73 70 61 6e 0d 02 88 0c 43 4d 50 20 | endspan....CMP | 00002940 74 2c 23 32 0d 02 89 12 53 54 52 4c 53 42 20 63 |t,#2....STRLSB c| 00002950 31 2c 5b 78 6c 5d 0d 02 8a 16 53 54 52 4c 53 42 |1,[xl]....STRLSB| 00002960 20 63 31 2c 5b 78 72 2c 23 2d 31 5d 0d 02 8b 0f | c1,[xr,#-1]....| 00002970 42 4c 53 20 65 6e 64 73 70 61 6e 0d 02 8c 0f 54 |BLS endspan....T| 00002980 53 54 20 78 6c 2c 23 25 30 31 0d 02 8d 15 53 54 |ST xl,#%01....ST| 00002990 52 4e 45 42 20 63 31 2c 5b 78 6c 5d 2c 23 31 0d |RNEB c1,[xl],#1.| 000029a0 02 8e 0f 54 53 54 20 78 6c 2c 23 25 31 30 0d 02 |...TST xl,#%10..| 000029b0 8f 15 53 54 52 4e 45 42 20 63 32 2c 5b 78 6c 5d |..STRNEB c2,[xl]| 000029c0 2c 23 31 0d 02 90 15 53 54 52 4e 45 42 20 63 31 |,#1....STRNEB c1| 000029d0 2c 5b 78 6c 5d 2c 23 31 0d 02 91 0f 54 53 54 20 |,[xl],#1....TST | 000029e0 78 72 2c 23 25 30 31 0d 02 92 17 53 54 52 4e 45 |xr,#%01....STRNE| 000029f0 42 20 63 32 2c 5b 78 72 2c 23 2d 31 5d 21 0d 02 |B c2,[xr,#-1]!..| 00002a00 93 0f 54 53 54 20 78 72 2c 23 25 31 30 0d 02 94 |..TST xr,#%10...| 00002a10 17 53 54 52 4e 45 42 20 63 31 2c 5b 78 72 2c 23 |.STRNEB c1,[xr,#| 00002a20 2d 31 5d 21 0d 02 95 17 53 54 52 4e 45 42 20 63 |-1]!....STRNEB c| 00002a30 32 2c 5b 78 72 2c 23 2d 31 5d 21 0d 02 96 10 53 |2,[xr,#-1]!....S| 00002a40 55 42 53 20 74 2c 78 72 2c 78 6c 0d 02 97 12 4d |UBS t,xr,xl....M| 00002a50 4f 56 53 20 74 2c 74 2c 4c 53 52 23 33 0d 02 98 |OVS t,t,LSR#3...| 00002a60 14 53 54 52 43 53 20 63 31 2c 5b 78 6c 5d 2c 23 |.STRCS c1,[xl],#| 00002a70 34 0d 02 99 12 4d 4f 56 53 20 74 2c 74 2c 4c 53 |4....MOVS t,t,LS| 00002a80 52 23 31 0d 02 9a 19 53 54 4d 43 53 49 41 20 28 |R#1....STMCSIA (| 00002a90 78 6c 29 21 2c 7b 63 31 2c 63 32 7d 0d 02 9b 04 |xl)!,{c1,c2}....| 00002aa0 0d 02 9c 0f 41 44 52 20 78 72 2c 62 61 73 65 0d |....ADR xr,base.| 00002ab0 02 9d 15 53 55 42 20 70 63 2c 78 72 2c 74 2c 4c |...SUB pc,xr,t,L| 00002ac0 53 4c 23 32 0d 02 9e 09 a4 76 75 6c 63 0d 02 9f |SL#2.....vulc...| 00002ad0 09 2e 62 61 73 65 0d 02 a0 04 0d 02 a1 0c 2e 65 |..base.........e| 00002ae0 6e 64 73 70 61 6e 0d 02 a2 0e 41 44 44 20 6c 2c |ndspan....ADD l,| 00002af0 6c 2c 6c 61 0d 02 a3 0e 41 44 44 20 72 2c 72 2c |l,la....ADD r,r,| 00002b00 72 61 0d 02 a4 10 41 44 44 20 6f 2c 6f 2c 23 33 |ra....ADD o,o,#3| 00002b10 32 30 0d 02 a5 11 53 55 42 53 20 63 74 2c 63 74 |20....SUBS ct,ct| 00002b20 2c 23 31 0d 02 a6 0a 42 4e 45 20 6c 6f 0d 02 a7 |,#1....BNE lo...| 00002b30 2f 4d 4f 56 20 72 31 35 2c 72 31 34 20 20 20 20 |/MOV r15,r14 | 00002b40 20 20 20 20 20 20 20 20 20 20 20 3b 4c 44 4d 46 | ;LDMF| 00002b50 44 20 72 31 33 21 2c 7b 72 31 35 7d 0d 02 a8 05 |D r13!,{r15}....| 00002b60 5d 0d 02 a9 12 78 61 3d 30 3a 79 61 3d 31 3a 7a |]....xa=0:ya=1:z| 00002b70 61 3d 32 0d 02 aa 0f 78 3d 30 3a 79 3d 31 3a 7a |a=2....x=0:y=1:z| 00002b80 3d 32 0d 02 ab 15 73 78 61 3d 33 3a 73 79 61 3d |=2....sxa=3:sya=| 00002b90 34 3a 73 7a 61 3d 35 0d 02 ac 15 63 78 61 3d 36 |4:sza=5....cxa=6| 00002ba0 3a 63 79 61 3d 37 3a 63 7a 61 3d 38 0d 02 ad 0c |:cya=7:cza=8....| 00002bb0 6e 3d 39 3a 70 3d 31 30 0d 02 ae 08 69 3d 31 30 |n=9:p=10....i=10| 00002bc0 0d 02 af 11 70 6e 74 73 3d 31 31 3a 66 73 3d 31 |....pnts=11:fs=1| 00002bd0 31 0d 02 b0 0f 74 31 3d 31 32 3a 74 32 3d 31 34 |1....t1=12:t2=14| 00002be0 0d 02 b1 04 0d 02 b2 31 78 31 3d 30 3a 79 31 3d |.......1x1=0:y1=| 00002bf0 31 3a 78 32 3d 32 3a 79 32 3d 33 3a 78 33 3d 34 |1:x2=2:y2=3:x3=4| 00002c00 3a 79 33 3d 35 3a 78 34 3d 36 3a 79 34 3d 37 3a |:y3=5:x4=6:y4=7:| 00002c10 63 6f 6c 3d 38 0d 02 b3 09 76 73 3d 31 32 0d 02 |col=8....vs=12..| 00002c20 b4 04 0d 02 b5 0a 5b 4f 50 54 69 25 0d 02 b6 11 |......[OPTi%....| 00002c30 2e 68 65 6c 69 70 20 44 43 44 20 32 34 0d 02 b7 |.helip DCD 24...| 00002c40 25 44 43 44 20 2d 35 20 3a 44 43 44 20 32 20 20 |%DCD -5 :DCD 2 | 00002c50 3a 44 43 44 20 2d 31 34 20 20 20 20 20 20 20 20 |:DCD -14 | 00002c60 3b 30 0d 02 b8 1a 44 43 44 20 2d 37 20 3a 44 43 |;0....DCD -7 :DC| 00002c70 44 20 2d 37 20 3a 44 43 44 20 2d 34 0d 02 b9 1a |D -7 :DCD -4....| 00002c80 44 43 44 20 2d 31 30 3a 44 43 44 20 34 20 20 3a |DCD -10:DCD 4 :| 00002c90 44 43 44 20 2d 31 0d 02 ba 18 44 43 44 20 2d 39 |DCD -1....DCD -9| 00002ca0 3a 44 43 44 20 34 20 20 3a 44 43 44 20 34 0d 02 |:DCD 4 :DCD 4..| 00002cb0 bb 19 44 43 44 20 2d 35 20 3a 44 43 44 20 2d 36 |..DCD -5 :DCD -6| 00002cc0 20 3a 44 43 44 20 36 0d 02 bc 25 44 43 44 20 2d | :DCD 6...%DCD -| 00002cd0 36 20 3a 44 43 44 20 30 20 20 3a 44 43 44 20 31 |6 :DCD 0 :DCD 1| 00002ce0 30 20 20 20 20 20 20 20 20 20 3b 35 0d 02 bd 1a |0 ;5....| 00002cf0 44 43 44 20 36 20 20 3a 44 43 44 20 30 20 20 3a |DCD 6 :DCD 0 :| 00002d00 44 43 44 20 31 30 0d 02 be 19 44 43 44 20 35 20 |DCD 10....DCD 5 | 00002d10 20 3a 44 43 44 20 2d 36 20 3a 44 43 44 20 36 0d | :DCD -6 :DCD 6.| 00002d20 02 bf 18 44 43 44 20 39 20 3a 44 43 44 20 34 20 |...DCD 9 :DCD 4 | 00002d30 20 3a 44 43 44 20 34 0d 02 c0 1a 44 43 44 20 31 | :DCD 4....DCD 1| 00002d40 30 20 3a 44 43 44 20 34 20 20 3a 44 43 44 20 2d |0 :DCD 4 :DCD -| 00002d50 31 0d 02 c1 1a 44 43 44 20 37 20 20 3a 44 43 44 |1....DCD 7 :DCD| 00002d60 20 2d 37 20 3a 44 43 44 20 2d 34 0d 02 c2 26 44 | -7 :DCD -4...&D| 00002d70 43 44 20 35 20 20 3a 44 43 44 20 32 20 20 3a 44 |CD 5 :DCD 2 :D| 00002d80 43 44 20 2d 31 34 20 20 20 20 20 20 20 20 3b 31 |CD -14 ;1| 00002d90 31 0d 02 c3 04 0d 02 c4 1b 44 43 44 20 2d 33 20 |1........DCD -3 | 00002da0 3a 44 43 44 20 35 20 20 3a 44 43 44 20 2d 31 32 |:DCD 5 :DCD -12| 00002db0 0d 02 c5 1a 44 43 44 20 2d 36 20 3a 44 43 44 20 |....DCD -6 :DCD | 00002dc0 36 20 20 3a 44 43 44 20 2d 32 0d 02 c6 25 44 43 |6 :DCD -2...%DC| 00002dd0 44 20 2d 35 20 3a 44 43 44 20 36 20 20 3a 44 43 |D -5 :DCD 6 :DC| 00002de0 44 20 37 20 20 20 20 20 20 20 20 20 3b 31 34 0d |D 7 ;14.| 00002df0 02 c7 19 44 43 44 20 35 20 20 3a 44 43 44 20 36 |...DCD 5 :DCD 6| 00002e00 20 20 3a 44 43 44 20 37 0d 02 c8 1a 44 43 44 20 | :DCD 7....DCD | 00002e10 36 20 20 3a 44 43 44 20 36 20 20 3a 44 43 44 20 |6 :DCD 6 :DCD | 00002e20 2d 32 0d 02 c9 1b 44 43 44 20 33 20 20 3a 44 43 |-2....DCD 3 :DC| 00002e30 44 20 35 20 20 3a 44 43 44 20 2d 31 32 0d 02 ca |D 5 :DCD -12...| 00002e40 04 0d 02 cb 25 44 43 44 20 30 20 20 3a 44 43 44 |....%DCD 0 :DCD| 00002e50 20 34 20 20 3a 44 43 44 20 38 20 20 20 20 20 20 | 4 :DCD 8 | 00002e60 20 20 20 3b 31 38 0d 02 cc 1a 44 43 44 20 2d 32 | ;18....DCD -2| 00002e70 20 3a 44 43 44 20 30 20 20 3a 44 43 44 20 31 30 | :DCD 0 :DCD 10| 00002e80 0d 02 cd 1a 44 43 44 20 2d 31 20 3a 44 43 44 20 |....DCD -1 :DCD | 00002e90 30 20 20 3a 44 43 44 20 34 34 0d 02 ce 1a 44 43 |0 :DCD 44....DC| 00002ea0 44 20 30 20 20 3a 44 43 44 20 32 20 20 3a 44 43 |D 0 :DCD 2 :DC| 00002eb0 44 20 34 30 0d 02 cf 1a 44 43 44 20 32 20 20 3a |D 40....DCD 2 :| 00002ec0 44 43 44 20 30 20 20 3a 44 43 44 20 31 30 0d 02 |DCD 0 :DCD 10..| 00002ed0 d0 1a 44 43 44 20 31 20 20 3a 44 43 44 20 30 20 |..DCD 1 :DCD 0 | 00002ee0 20 3a 44 43 44 20 34 34 0d 02 d1 04 0d 02 d2 04 | :DCD 44........| 00002ef0 0d 02 d3 11 2e 68 65 6c 69 66 20 44 43 44 20 32 |.....helif DCD 2| 00002f00 32 0d 02 d4 19 44 43 44 20 26 30 37 3a 44 43 44 |2....DCD &07:DCD| 00002f10 20 26 30 30 30 31 30 41 30 42 0d 02 d5 19 44 43 | &00010A0B....DC| 00002f20 44 20 26 31 33 3a 44 43 44 20 26 30 31 30 34 30 |D &13:DCD &01040| 00002f30 37 30 41 0d 02 d6 19 44 43 44 20 26 31 33 3a 44 |70A....DCD &13:D| 00002f40 43 44 20 26 30 34 30 35 30 36 30 37 0d 02 d7 19 |CD &04050607....| 00002f50 44 43 44 20 26 31 31 3a 44 43 44 20 26 46 46 30 |DCD &11:DCD &FF0| 00002f60 30 30 32 30 31 0d 02 d8 19 44 43 44 20 26 31 31 |00201....DCD &11| 00002f70 3a 44 43 44 20 26 46 46 30 42 30 41 30 39 0d 02 |:DCD &FF0B0A09..| 00002f80 d9 19 44 43 44 20 26 31 30 3a 44 43 44 20 26 30 |..DCD &10:DCD &0| 00002f90 32 30 33 30 34 30 31 0d 02 da 19 44 43 44 20 26 |2030401....DCD &| 00002fa0 31 30 3a 44 43 44 20 26 30 41 30 37 30 38 30 39 |10:DCD &0A070809| 00002fb0 0d 02 db 19 44 43 44 20 26 31 32 3a 44 43 44 20 |....DCD &12:DCD | 00002fc0 26 46 46 30 33 30 35 30 34 0d 02 dc 19 44 43 44 |&FF030504....DCD| 00002fd0 20 26 31 32 3a 44 43 44 20 26 46 46 30 37 30 36 | &12:DCD &FF0706| 00002fe0 30 38 0d 02 dd 04 0d 02 de 19 44 43 44 20 26 33 |08........DCD &3| 00002ff0 46 3a 44 43 44 20 26 30 30 30 42 31 31 30 43 0d |F:DCD &000B110C.| 00003000 02 df 19 44 43 44 20 26 33 43 3a 44 43 44 20 26 |...DCD &3C:DCD &| 00003010 30 43 31 31 31 30 30 44 0d 02 e0 19 44 43 44 20 |0C11100D....DCD | 00003020 26 31 33 3a 44 43 44 20 26 30 44 31 30 30 46 30 |&13:DCD &0D100F0| 00003030 45 0d 02 e1 19 44 43 44 20 26 31 32 3a 44 43 44 |E....DCD &12:DCD| 00003040 20 26 30 45 30 46 30 36 30 35 0d 02 e2 04 0d 02 | &0E0F0605......| 00003050 e3 19 44 43 44 20 26 30 37 3a 44 43 44 20 26 30 |..DCD &07:DCD &0| 00003060 30 30 43 30 44 30 32 0d 02 e4 19 44 43 44 20 26 |00C0D02....DCD &| 00003070 30 37 3a 44 43 44 20 26 30 42 30 39 31 30 31 31 |07:DCD &0B091011| 00003080 0d 02 e5 19 44 43 44 20 26 31 31 3a 44 43 44 20 |....DCD &11:DCD | 00003090 26 30 32 30 44 30 45 30 33 0d 02 e6 19 44 43 44 |&020D0E03....DCD| 000030a0 20 26 31 31 3a 44 43 44 20 26 31 30 30 39 30 38 | &11:DCD &100908| 000030b0 30 46 0d 02 e7 19 44 43 44 20 26 31 30 3a 44 43 |0F....DCD &10:DC| 000030c0 44 20 26 46 46 30 33 30 45 30 35 0d 02 e8 19 44 |D &FF030E05....D| 000030d0 43 44 20 26 31 30 3a 44 43 44 20 26 46 46 30 46 |CD &10:DCD &FF0F| 000030e0 30 38 30 36 0d 02 e9 04 0d 02 ea 23 44 43 44 20 |0806.......#DCD | 000030f0 26 31 32 3a 44 43 44 20 26 31 36 31 37 31 35 31 |&12:DCD &1617151| 00003100 32 20 20 20 20 20 3b 74 61 69 6c 0d 02 eb 19 44 |2 ;tail....D| 00003110 43 44 20 26 31 32 3a 44 43 44 20 26 31 33 31 32 |CD &12:DCD &1312| 00003120 31 35 31 34 0d 02 ec 19 44 43 44 20 26 31 33 3a |1514....DCD &13:| 00003130 44 43 44 20 26 31 33 31 34 31 37 31 36 0d 02 ed |DCD &13141716...| 00003140 04 0d 02 ee 04 0d 02 ef 04 0d 02 f0 04 0d 02 f1 |................| 00003150 0f 2e 68 72 6f 74 20 44 43 44 20 30 0d 02 f2 11 |..hrot DCD 0....| 00003160 2e 68 70 69 74 63 68 20 44 43 44 20 30 0d 02 f3 |.hpitch DCD 0...| 00003170 0f 2e 68 72 6f 6c 20 44 43 44 20 30 0d 02 f4 14 |..hrol DCD 0....| 00003180 2e 68 78 20 44 43 44 20 32 35 36 3c 3c 66 70 25 |.hx DCD 256<<fp%| 00003190 0d 02 f5 14 2e 68 79 20 44 43 44 20 33 30 30 3c |.....hy DCD 300<| 000031a0 3c 66 70 25 0d 02 f6 12 2e 68 68 65 69 67 68 74 |<fp%.....hheight| 000031b0 20 44 43 44 20 30 0d 02 f7 0e 2e 68 64 78 20 44 | DCD 0.....hdx D| 000031c0 43 44 20 30 0d 02 f8 0e 2e 68 64 79 20 44 43 44 |CD 0.....hdy DCD| 000031d0 20 30 0d 02 f9 0e 2e 68 64 7a 20 44 43 44 20 30 | 0.....hdz DCD 0| 000031e0 0d 02 fa 13 2e 68 70 6f 77 65 72 20 44 43 44 20 |.....hpower DCD | 000031f0 2d 31 36 0d 02 fb 04 0d 02 fc 0c 2e 63 6f 6e 74 |-16.........cont| 00003200 72 6f 6c 0d 02 fd 14 53 54 4d 46 44 20 72 31 33 |rol....STMFD r13| 00003210 21 2c 7b 72 31 34 7d 0d 02 fe 0d 42 4c 20 75 70 |!,{r14}....BL up| 00003220 64 61 74 65 0d 02 ff 11 42 4c 20 63 61 6c 63 70 |date....BL calcp| 00003230 6f 69 6e 74 73 0d 03 00 11 42 4c 20 64 72 61 77 |oints....BL draw| 00003240 70 6f 69 6e 74 73 0d 03 01 0f 42 4c 20 64 72 61 |points....BL dra| 00003250 77 68 65 6c 69 0d 03 02 14 4c 44 4d 46 44 20 72 |wheli....LDMFD r| 00003260 31 33 21 2c 7b 72 31 35 7d 0d 03 03 04 0d 03 04 |13!,{r15}.......| 00003270 0b 2e 75 70 64 61 74 65 0d 03 05 14 53 54 4d 46 |..update....STMF| 00003280 44 20 72 31 33 21 2c 7b 72 31 34 7d 0d 03 06 12 |D r13!,{r14}....| 00003290 53 57 49 20 22 4f 53 5f 4d 6f 75 73 65 22 0d 03 |SWI "OS_Mouse"..| 000032a0 07 0d 43 4d 50 20 72 32 2c 23 31 0d 03 08 13 4c |..CMP r2,#1....L| 000032b0 44 52 47 45 20 72 33 2c 68 70 6f 77 65 72 0d 03 |DRGE r3,hpower..| 000032c0 09 12 41 44 44 45 51 20 72 33 2c 72 33 2c 23 32 |..ADDEQ r3,r3,#2| 000032d0 0d 03 0a 13 53 54 52 45 51 20 72 33 2c 68 70 6f |....STREQ r3,hpo| 000032e0 77 65 72 0d 03 0b 0d 43 4d 50 20 72 32 2c 23 34 |wer....CMP r2,#4| 000032f0 0d 03 0c 12 53 55 42 45 51 20 72 33 2c 72 33 2c |....SUBEQ r3,r3,| 00003300 23 32 0d 03 0d 13 53 54 52 45 51 20 72 33 2c 68 |#2....STREQ r3,h| 00003310 70 6f 77 65 72 0d 03 0e 04 0d 03 0f 11 4c 44 52 |power........LDR| 00003320 20 72 39 2c 68 70 69 74 63 68 0d 03 10 16 41 44 | r9,hpitch....AD| 00003330 44 20 72 39 2c 72 39 2c 72 31 2c 41 53 52 23 31 |D r9,r9,r1,ASR#1| 00003340 0d 03 11 14 4d 4f 56 20 72 39 2c 72 39 2c 4c 53 |....MOV r9,r9,LS| 00003350 4c 23 32 33 0d 03 12 14 4d 4f 56 20 72 39 2c 72 |L#23....MOV r9,r| 00003360 39 2c 4c 53 52 23 32 33 0d 03 13 11 53 54 52 20 |9,LSR#23....STR | 00003370 72 39 2c 68 70 69 74 63 68 0d 03 14 04 0d 03 15 |r9,hpitch.......| 00003380 0f 4c 44 52 20 72 33 2c 68 72 6f 74 0d 03 16 16 |.LDR r3,hrot....| 00003390 53 55 42 20 72 33 2c 72 33 2c 72 30 2c 41 53 52 |SUB r3,r3,r0,ASR| 000033a0 23 32 0d 03 17 14 4d 4f 56 20 72 33 2c 72 33 2c |#2....MOV r3,r3,| 000033b0 4c 53 4c 23 32 33 0d 03 18 14 4d 4f 56 20 72 33 |LSL#23....MOV r3| 000033c0 2c 72 33 2c 4c 53 52 23 32 33 0d 03 19 0f 53 54 |,r3,LSR#23....ST| 000033d0 52 20 72 33 2c 68 72 6f 74 0d 03 1a 0e 53 54 52 |R r3,hrot....STR| 000033e0 20 72 33 2c 72 6f 74 0d 03 1b 04 0d 03 1c 11 4c | r3,rot........L| 000033f0 44 52 20 72 34 2c 68 70 6f 77 65 72 0d 03 1d 11 |DR r4,hpower....| 00003400 4c 44 52 20 72 35 2c 73 69 6e 70 74 72 0d 03 1e |LDR r5,sinptr...| 00003410 11 4c 44 52 20 72 36 2c 63 6f 73 70 74 72 0d 03 |.LDR r6,cosptr..| 00003420 1f 04 0d 03 20 18 4c 44 52 20 72 37 2c 5b 72 35 |.... .LDR r7,[r5| 00003430 2c 72 39 2c 41 53 4c 23 32 5d 0d 03 21 18 4c 44 |,r9,ASL#2]..!.LD| 00003440 52 20 72 38 2c 5b 72 36 2c 72 39 2c 41 53 4c 23 |R r8,[r6,r9,ASL#| 00003450 32 5d 0d 03 22 2f 4d 55 4c 20 72 38 2c 72 34 2c |2].."/MUL r8,r4,| 00003460 72 38 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |r8 | 00003470 20 20 3b 76 65 72 74 69 63 6c 65 20 70 6f 77 65 | ;verticle powe| 00003480 72 0d 03 23 2e 4d 55 4c 20 72 34 2c 72 37 2c 72 |r..#.MUL r4,r7,r| 00003490 34 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |4 | 000034a0 20 3b 66 6f 72 77 61 72 64 20 70 6f 77 65 72 0d | ;forward power.| 000034b0 03 24 15 4d 4f 56 20 72 34 2c 72 34 2c 41 53 52 |.$.MOV r4,r4,ASR| 000034c0 23 66 70 25 0d 03 25 16 3b 4d 4f 56 20 72 38 2c |#fp%..%.;MOV r8,| 000034d0 72 38 2c 41 53 52 23 66 70 25 0d 03 26 04 0d 03 |r8,ASR#fp%..&...| 000034e0 27 28 4c 44 52 20 72 37 2c 68 64 7a 20 20 20 20 |'(LDR r7,hdz | 000034f0 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 61 6c | ;al| 00003500 74 65 72 20 64 7a 0d 03 28 16 53 55 42 20 72 37 |ter dz..(.SUB r7| 00003510 2c 72 37 2c 72 38 2c 41 53 52 23 36 0d 03 29 17 |,r7,r8,ASR#6..).| 00003520 53 55 42 20 72 37 2c 72 37 2c 23 67 72 61 76 69 |SUB r7,r7,#gravi| 00003530 74 79 25 0d 03 2a 0e 53 54 52 20 72 37 2c 68 64 |ty%..*.STR r7,hd| 00003540 7a 0d 03 2b 12 4c 44 52 20 72 38 2c 68 68 65 69 |z..+.LDR r8,hhei| 00003550 67 68 74 0d 03 2c 05 5d 0d 03 2d 17 e7 20 ac 20 |ght..,.]..-.. . | 00003560 66 69 78 65 64 5f 68 65 69 67 68 74 25 20 8c 0d |fixed_height% ..| 00003570 03 2e 0a 5b 4f 50 54 69 25 0d 03 2f 10 41 44 44 |...[OPTi%../.ADD| 00003580 20 72 38 2c 72 38 2c 72 37 0d 03 30 05 5d 0d 03 | r8,r8,r7..0.]..| 00003590 31 05 cd 0d 03 32 0a 5b 4f 50 54 69 25 0d 03 33 |1....2.[OPTi%..3| 000035a0 12 53 54 52 20 72 38 2c 68 68 65 69 67 68 74 0d |.STR r8,hheight.| 000035b0 03 34 04 0d 03 35 33 4d 4f 56 20 72 38 2c 72 38 |.4...53MOV r8,r8| 000035c0 2c 41 53 52 23 66 70 25 2b 31 20 20 20 20 20 20 |,ASR#fp%+1 | 000035d0 20 3b 66 69 67 75 72 65 20 6f 75 74 20 63 61 6d | ;figure out cam| 000035e0 20 61 6e 67 6c 65 0d 03 36 17 41 44 44 20 72 38 | angle..6.ADD r8| 000035f0 2c 72 38 2c 23 63 61 6d 64 72 6f 70 25 0d 03 37 |,r8,#camdrop%..7| 00003600 11 53 54 52 20 72 38 2c 68 65 69 67 68 74 0d 03 |.STR r8,height..| 00003610 38 04 0d 03 39 18 4c 44 52 20 72 35 2c 5b 72 35 |8...9.LDR r5,[r5| 00003620 2c 72 33 2c 41 53 4c 23 32 5d 0d 03 3a 18 4c 44 |,r3,ASL#2]..:.LD| 00003630 52 20 72 36 2c 5b 72 36 2c 72 33 2c 41 53 4c 23 |R r6,[r6,r3,ASL#| 00003640 32 5d 0d 03 3b 10 4d 55 4c 20 72 35 2c 72 34 2c |2]..;.MUL r5,r4,| 00003650 72 35 0d 03 3c 10 4d 55 4c 20 72 36 2c 72 34 2c |r5..<.MUL r6,r4,| 00003660 72 36 0d 03 3d 04 0d 03 3e 0e 4c 44 52 20 72 37 |r6..=...>.LDR r7| 00003670 2c 68 64 78 0d 03 3f 0e 4c 44 52 20 72 38 2c 68 |,hdx..?.LDR r8,h| 00003680 64 79 0d 03 40 16 41 44 44 20 72 37 2c 72 37 2c |dy..@.ADD r7,r7,| 00003690 72 35 2c 41 53 52 23 36 0d 03 41 16 41 44 44 20 |r5,ASR#6..A.ADD | 000036a0 72 38 2c 72 38 2c 72 36 2c 41 53 52 23 36 0d 03 |r8,r8,r6,ASR#6..| 000036b0 42 33 4d 4f 56 20 72 39 2c 72 37 2c 41 53 52 23 |B3MOV r9,r7,ASR#| 000036c0 34 20 20 20 20 20 20 20 20 20 20 20 20 3b 64 65 |4 ;de| 000036d0 63 20 64 78 2f 64 79 20 28 61 69 72 20 72 65 73 |c dx/dy (air res| 000036e0 29 0d 03 43 14 4d 4f 56 20 72 31 30 2c 72 38 2c |)..C.MOV r10,r8,| 000036f0 41 53 52 23 34 0d 03 44 10 53 55 42 20 72 37 2c |ASR#4..D.SUB r7,| 00003700 72 37 2c 72 39 0d 03 45 11 53 55 42 20 72 38 2c |r7,r9..E.SUB r8,| 00003710 72 38 2c 72 31 30 0d 03 46 0e 53 54 52 20 72 37 |r8,r10..F.STR r7| 00003720 2c 68 64 78 0d 03 47 0e 53 54 52 20 72 38 2c 68 |,hdx..G.STR r8,h| 00003730 64 79 0d 03 48 04 0d 03 49 0d 4c 44 52 20 72 39 |dy..H...I.LDR r9| 00003740 2c 68 78 0d 03 4a 0e 4c 44 52 20 72 31 30 2c 68 |,hx..J.LDR r10,h| 00003750 79 0d 03 4b 10 41 44 44 20 72 39 2c 72 39 2c 72 |y..K.ADD r9,r9,r| 00003760 37 0d 03 4c 12 41 44 44 20 72 31 30 2c 72 31 30 |7..L.ADD r10,r10| 00003770 2c 72 38 0d 03 4d 0d 53 54 52 20 72 39 2c 68 78 |,r8..M.STR r9,hx| 00003780 0d 03 4e 0e 53 54 52 20 72 31 30 2c 68 79 0d 03 |..N.STR r10,hy..| 00003790 4f 15 4d 4f 56 20 72 39 2c 72 39 2c 41 53 52 23 |O.MOV r9,r9,ASR#| 000037a0 66 70 25 0d 03 50 17 4d 4f 56 20 72 31 30 2c 72 |fp%..P.MOV r10,r| 000037b0 31 30 2c 41 53 52 23 66 70 25 0d 03 51 0f 53 54 |10,ASR#fp%..Q.ST| 000037c0 52 20 72 39 2c 78 70 6f 73 0d 03 52 10 53 54 52 |R r9,xpos..R.STR| 000037d0 20 72 31 30 2c 79 70 6f 73 0d 03 53 04 0d 03 54 | r10,ypos..S...T| 000037e0 04 0d 03 55 14 4c 44 4d 46 44 20 72 31 33 21 2c |...U.LDMFD r13!,| 000037f0 7b 72 31 35 7d 0d 03 56 04 0d 03 57 0d 2e 64 72 |{r15}..V...W..dr| 00003800 61 77 68 65 6c 69 0d 03 58 14 53 54 4d 46 44 20 |awheli..X.STMFD | 00003810 72 31 33 21 2c 7b 72 31 34 7d 0d 03 59 27 41 44 |r13!,{r14}..Y'AD| 00003820 52 20 72 31 31 2c 68 65 6c 69 70 20 20 20 20 20 |R r11,helip | 00003830 20 20 20 20 20 20 20 20 3b 64 72 61 77 68 65 6c | ;drawhel| 00003840 69 0d 03 5a 11 41 44 52 20 72 31 32 2c 68 65 6c |i..Z.ADR r12,hel| 00003850 69 66 0d 03 5b 11 4c 44 52 20 72 30 2c 68 70 69 |if..[.LDR r0,hpi| 00003860 74 63 68 0d 03 5c 0d 4d 4f 56 20 72 31 2c 23 30 |tch..\.MOV r1,#0| 00003870 0d 03 5d 0d 4d 4f 56 20 72 32 2c 23 30 0d 03 5e |..].MOV r2,#0..^| 00003880 0d 4d 4f 56 20 72 33 2c 23 30 0d 03 5f 11 4c 44 |.MOV r3,#0.._.LD| 00003890 52 20 72 36 2c 68 65 69 67 68 74 0d 03 60 12 4c |R r6,height..`.L| 000038a0 44 52 20 72 37 2c 68 68 65 69 67 68 74 0d 03 61 |DR r7,hheight..a| 000038b0 18 53 55 42 20 72 34 2c 72 36 2c 72 37 2c 41 53 |.SUB r4,r6,r7,AS| 000038c0 52 23 66 70 25 0d 03 62 0d 4d 4f 56 20 72 35 2c |R#fp%..b.MOV r5,| 000038d0 23 30 0d 03 63 0e 42 4c 20 64 72 61 77 6f 62 6a |#0..c.BL drawobj| 000038e0 0d 03 64 14 4c 44 4d 46 44 20 72 31 33 21 2c 7b |..d.LDMFD r13!,{| 000038f0 72 31 35 7d 0d 03 65 04 0d 03 66 0f 2e 6f 62 6a |r15}..e...f..obj| 00003900 78 20 44 43 44 20 30 0d 03 67 0f 2e 6f 62 6a 79 |x DCD 0..g..objy| 00003910 20 44 43 44 20 30 0d 03 68 0f 2e 6f 62 6a 7a 20 | DCD 0..h..objz | 00003920 44 43 44 20 30 0d 03 69 10 2e 66 61 63 65 73 20 |DCD 0..i..faces | 00003930 44 43 44 20 30 0d 03 6a 42 2e 64 72 61 77 6f 62 |DCD 0..jB.drawob| 00003940 6a 20 20 20 20 20 20 20 20 20 3b 72 30 3d 78 61 |j ;r0=xa| 00003950 2c 20 72 31 3d 79 61 2c 20 72 32 3d 7a 61 2c 20 |, r1=ya, r2=za, | 00003960 72 31 31 3d 70 6e 74 70 74 72 2c 20 72 31 32 20 |r11=pntptr, r12 | 00003970 66 61 63 65 70 74 72 0d 03 6b 26 53 54 52 20 72 |faceptr..k&STR r| 00003980 31 34 2c 72 65 74 73 61 76 65 20 20 3b 72 33 3d |14,retsave ;r3=| 00003990 78 2c 20 72 34 3d 79 2c 20 72 35 3d 7a 0d 03 6c |x, r4=y, r5=z..l| 000039a0 10 3b 53 54 52 20 72 33 2c 6f 62 6a 78 0d 03 6d |.;STR r3,objx..m| 000039b0 0f 53 54 52 20 72 34 2c 6f 62 6a 79 0d 03 6e 10 |.STR r4,objy..n.| 000039c0 3b 53 54 52 20 72 35 2c 6f 62 6a 7a 0d 03 6f 11 |;STR r5,objz..o.| 000039d0 53 54 52 20 72 31 32 2c 66 61 63 65 73 0d 03 70 |STR r12,faces..p| 000039e0 04 0d 03 71 10 4c 44 52 20 70 2c 73 69 6e 70 74 |...q.LDR p,sinpt| 000039f0 72 0d 03 72 18 4c 44 52 20 73 78 61 2c 5b 70 2c |r..r.LDR sxa,[p,| 00003a00 78 61 2c 41 53 4c 23 32 5d 0d 03 73 18 4c 44 52 |xa,ASL#2]..s.LDR| 00003a10 20 73 79 61 2c 5b 70 2c 79 61 2c 41 53 4c 23 32 | sya,[p,ya,ASL#2| 00003a20 5d 0d 03 74 18 4c 44 52 20 73 7a 61 2c 5b 70 2c |]..t.LDR sza,[p,| 00003a30 7a 61 2c 41 53 4c 23 32 5d 0d 03 75 10 4c 44 52 |za,ASL#2]..u.LDR| 00003a40 20 70 2c 63 6f 73 70 74 72 0d 03 76 18 4c 44 52 | p,cosptr..v.LDR| 00003a50 20 63 78 61 2c 5b 70 2c 78 61 2c 41 53 4c 23 32 | cxa,[p,xa,ASL#2| 00003a60 5d 0d 03 77 18 4c 44 52 20 63 79 61 2c 5b 70 2c |]..w.LDR cya,[p,| 00003a70 79 61 2c 41 53 4c 23 32 5d 0d 03 78 18 4c 44 52 |ya,ASL#2]..x.LDR| 00003a80 20 63 7a 61 2c 5b 70 2c 7a 61 2c 41 53 4c 23 32 | cza,[p,za,ASL#2| 00003a90 5d 0d 03 79 04 0d 03 7a 0f 41 44 52 20 69 2c 69 |]..y...z.ADR i,i| 00003aa0 6d 61 67 65 0d 03 7b 2c 4c 44 52 20 6e 2c 5b 70 |mage..{,LDR n,[p| 00003ab0 6e 74 73 5d 2c 23 34 20 20 20 20 20 20 20 20 20 |nts],#4 | 00003ac0 20 20 3b 6e 75 6d 20 6f 66 20 70 6f 69 6e 74 73 | ;num of points| 00003ad0 0d 03 7c 04 0d 03 7d 0d 2e 70 6f 62 6a 6c 6f 6f |..|...}..pobjloo| 00003ae0 70 0d 03 7e 18 4c 44 4d 49 41 20 70 6e 74 73 20 |p..~.LDMIA pnts | 00003af0 21 2c 7b 78 2c 79 2c 7a 7d 0d 03 7f 24 4d 55 4c |!,{x,y,z}...$MUL| 00003b00 20 74 32 2c 7a 2c 73 78 61 20 20 20 20 20 20 20 | t2,z,sxa | 00003b10 20 20 20 20 20 20 20 3b 72 6f 74 20 78 0d 03 80 | ;rot x...| 00003b20 10 52 53 42 20 74 32 2c 74 32 2c 23 30 0d 03 81 |.RSB t2,t2,#0...| 00003b30 13 4d 4c 41 20 74 31 2c 79 2c 63 78 61 2c 74 32 |.MLA t1,y,cxa,t2| 00003b40 0d 03 82 10 4d 55 4c 20 74 32 2c 79 2c 73 78 61 |....MUL t2,y,sxa| 00003b50 0d 03 83 13 4d 4c 41 20 74 32 2c 7a 2c 63 78 61 |....MLA t2,z,cxa| 00003b60 2c 74 32 0d 03 84 14 4d 4f 56 20 79 2c 74 31 2c |,t2....MOV y,t1,| 00003b70 41 53 52 23 66 70 25 0d 03 85 14 4d 4f 56 20 7a |ASR#fp%....MOV z| 00003b80 2c 74 32 2c 41 53 52 23 66 70 25 0d 03 86 04 0d |,t2,ASR#fp%.....| 00003b90 03 87 24 4d 55 4c 20 74 32 2c 7a 2c 73 79 61 20 |..$MUL t2,z,sya | 00003ba0 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 72 6f | ;ro| 00003bb0 74 20 79 0d 03 88 10 52 53 42 20 74 32 2c 74 32 |t y....RSB t2,t2| 00003bc0 2c 23 30 0d 03 89 13 4d 4c 41 20 74 31 2c 78 2c |,#0....MLA t1,x,| 00003bd0 63 79 61 2c 74 32 0d 03 8a 10 4d 55 4c 20 74 32 |cya,t2....MUL t2| 00003be0 2c 78 2c 73 79 61 0d 03 8b 13 4d 4c 41 20 74 32 |,x,sya....MLA t2| 00003bf0 2c 7a 2c 63 79 61 2c 74 32 0d 03 8c 14 4d 4f 56 |,z,cya,t2....MOV| 00003c00 20 78 2c 74 31 2c 41 53 52 23 66 70 25 0d 03 8d | x,t1,ASR#fp%...| 00003c10 14 4d 4f 56 20 7a 2c 74 32 2c 41 53 52 23 66 70 |.MOV z,t2,ASR#fp| 00003c20 25 0d 03 8e 04 0d 03 8f 24 4d 55 4c 20 74 32 2c |%.......$MUL t2,| 00003c30 79 2c 73 7a 61 20 20 20 20 20 20 20 20 20 20 20 |y,sza | 00003c40 20 20 20 3b 72 6f 74 20 7a 0d 03 90 10 52 53 42 | ;rot z....RSB| 00003c50 20 74 32 2c 74 32 2c 23 30 0d 03 91 13 4d 4c 41 | t2,t2,#0....MLA| 00003c60 20 74 31 2c 78 2c 63 7a 61 2c 74 32 0d 03 92 10 | t1,x,cza,t2....| 00003c70 4d 55 4c 20 74 32 2c 78 2c 73 7a 61 0d 03 93 13 |MUL t2,x,sza....| 00003c80 4d 4c 41 20 74 32 2c 79 2c 63 7a 61 2c 74 32 0d |MLA t2,y,cza,t2.| 00003c90 03 94 14 4d 4f 56 20 78 2c 74 31 2c 41 53 52 23 |...MOV x,t1,ASR#| 00003ca0 66 70 25 0d 03 95 14 4d 4f 56 20 79 2c 74 32 2c |fp%....MOV y,t2,| 00003cb0 41 53 52 23 66 70 25 0d 03 96 04 0d 03 97 2c 4c |ASR#fp%.......,L| 00003cc0 44 52 20 74 31 2c 6f 62 6a 79 20 20 20 20 20 20 |DR t1,objy | 00003cd0 20 20 20 20 20 20 20 20 20 3b 61 64 6a 75 73 74 | ;adjust| 00003ce0 20 63 6f 6f 72 64 73 0d 03 98 10 3b 4c 44 52 20 | coords....;LDR | 00003cf0 74 32 2c 6f 62 6a 7a 0d 03 99 0e 41 44 44 20 79 |t2,objz....ADD y| 00003d00 2c 79 2c 74 31 0d 03 9a 0f 3b 41 44 44 20 7a 2c |,y,t1....;ADD z,| 00003d10 7a 2c 74 32 0d 03 9b 14 41 44 44 20 7a 2c 7a 2c |z,t2....ADD z,z,| 00003d20 23 79 73 68 69 66 74 25 0d 03 9c 04 0d 03 9d 30 |#yshift%.......0| 00003d30 4c 44 52 20 74 31 2c 70 65 72 73 70 70 74 72 20 |LDR t1,perspptr | 00003d40 20 20 20 20 20 20 20 20 20 20 3b 61 70 70 6c 79 | ;apply| 00003d50 20 70 65 72 73 70 65 63 74 69 76 65 0d 03 9e 17 | perspective....| 00003d60 4c 44 52 20 74 31 2c 5b 74 31 2c 7a 2c 41 53 4c |LDR t1,[t1,z,ASL| 00003d70 23 32 5d 0d 03 9f 0e 4d 55 4c 20 78 2c 74 31 2c |#2]....MUL x,t1,| 00003d80 78 0d 03 a0 0e 4d 55 4c 20 79 2c 74 31 2c 79 0d |x....MUL y,t1,y.| 00003d90 03 a1 13 4d 4f 56 20 78 2c 78 2c 41 53 52 23 66 |...MOV x,x,ASR#f| 00003da0 70 25 0d 03 a2 13 4d 4f 56 20 79 2c 79 2c 41 53 |p%....MOV y,y,AS| 00003db0 52 23 66 70 25 0d 03 a3 13 53 54 4d 49 41 20 69 |R#fp%....STMIA i| 00003dc0 20 21 2c 7b 78 2c 79 7d 0d 03 a4 0c 3b 42 4c 20 | !,{x,y}....;BL | 00003dd0 70 6c 6f 74 0d 03 a5 04 0d 03 a6 0f 53 55 42 53 |plot........SUBS| 00003de0 20 6e 2c 6e 2c 23 31 0d 03 a7 10 42 4e 45 20 70 | n,n,#1....BNE p| 00003df0 6f 62 6a 6c 6f 6f 70 0d 03 a8 04 0d 03 a9 27 4c |objloop.......'L| 00003e00 44 52 20 66 73 2c 66 61 63 65 73 20 20 20 20 20 |DR fs,faces | 00003e10 20 20 20 20 20 20 3b 64 72 61 77 20 70 6f 6c 69 | ;draw poli| 00003e20 65 73 0d 03 aa 11 4c 44 52 20 6e 2c 5b 66 73 5d |es....LDR n,[fs]| 00003e30 2c 23 34 0d 03 ab 0f 41 44 52 20 69 2c 69 6d 61 |,#4....ADR i,ima| 00003e40 67 65 0d 03 ac 04 0d 03 ad 0d 2e 66 6f 62 6a 6c |ge.........fobjl| 00003e50 6f 6f 70 0d 03 ae 3e 4c 44 4d 49 41 20 66 73 20 |oop...>LDMIA fs | 00003e60 21 2c 7b 63 6f 6c 2c 76 73 7d 20 20 20 20 20 3b |!,{col,vs} ;| 00003e70 6c 6f 61 64 20 63 6f 6c 6f 75 72 20 61 6e 64 20 |load colour and | 00003e80 76 65 72 74 73 20 28 54 7c 34 3b 33 3b 32 3b 31 |verts (T|4;3;2;1| 00003e90 29 0d 03 af 04 0d 03 b0 10 80 20 74 32 2c 76 73 |)......... t2,vs| 00003ea0 2c 23 26 46 46 0d 03 b1 15 41 44 44 20 74 32 2c |,#&FF....ADD t2,| 00003eb0 69 2c 74 32 2c 4c 53 4c 23 33 0d 03 b2 14 4c 44 |i,t2,LSL#3....LD| 00003ec0 4d 49 41 20 74 32 2c 7b 78 31 2c 79 31 7d 0d 03 |MIA t2,{x1,y1}..| 00003ed0 b3 04 0d 03 b4 13 4d 4f 56 20 76 73 2c 76 73 2c |......MOV vs,vs,| 00003ee0 4c 53 52 23 38 0d 03 b5 10 80 20 74 32 2c 76 73 |LSR#8..... t2,vs| 00003ef0 2c 23 26 46 46 0d 03 b6 15 41 44 44 20 74 32 2c |,#&FF....ADD t2,| 00003f00 69 2c 74 32 2c 4c 53 4c 23 33 0d 03 b7 14 4c 44 |i,t2,LSL#3....LD| 00003f10 4d 49 41 20 74 32 2c 7b 78 32 2c 79 32 7d 0d 03 |MIA t2,{x2,y2}..| 00003f20 b8 04 0d 03 b9 13 4d 4f 56 20 76 73 2c 76 73 2c |......MOV vs,vs,| 00003f30 4c 53 52 23 38 0d 03 ba 10 80 20 74 32 2c 76 73 |LSR#8..... t2,vs| 00003f40 2c 23 26 46 46 0d 03 bb 15 41 44 44 20 74 32 2c |,#&FF....ADD t2,| 00003f50 69 2c 74 32 2c 4c 53 4c 23 33 0d 03 bc 14 4c 44 |i,t2,LSL#3....LD| 00003f60 4d 49 41 20 74 32 2c 7b 78 33 2c 79 33 7d 0d 03 |MIA t2,{x3,y3}..| 00003f70 bd 04 0d 03 be 39 53 55 42 20 79 34 2c 78 32 2c |.....9SUB y4,x2,| 00003f80 78 31 20 20 20 20 20 20 20 20 20 20 20 20 3b 63 |x1 ;c| 00003f90 6c 69 70 20 62 61 63 6b 77 61 72 64 73 20 28 78 |lip backwards (x| 00003fa0 34 2c 79 34 2d 74 65 6d 70 73 29 0d 03 bf 10 53 |4,y4-temps)....S| 00003fb0 55 42 20 78 34 2c 79 33 2c 79 32 0d 03 c0 10 4d |UB x4,y3,y2....M| 00003fc0 55 4c 20 78 34 2c 79 34 2c 78 34 0d 03 c1 10 53 |UL x4,y4,x4....S| 00003fd0 55 42 20 79 34 2c 79 32 2c 79 31 0d 03 c2 10 53 |UB y4,y2,y1....S| 00003fe0 55 42 20 74 32 2c 78 33 2c 78 32 0d 03 c3 10 4d |UB t2,x3,x2....M| 00003ff0 55 4c 20 79 34 2c 74 32 2c 79 34 0d 03 c4 0d 43 |UL y4,t2,y4....C| 00004000 4d 50 20 78 34 2c 79 34 0d 03 c5 2d 42 4c 54 20 |MP x4,y4...-BLT | 00004010 79 63 61 6e 6e 65 20 20 20 20 20 20 20 20 20 20 |ycanne | 00004020 20 20 20 20 20 20 3b 79 27 63 61 6e 6e 65 20 73 | ;y'canne s| 00004030 65 65 20 69 74 0d 03 c6 04 0d 03 c7 13 4d 4f 56 |ee it........MOV| 00004040 20 76 73 2c 76 73 2c 4c 53 52 23 38 0d 03 c8 2c | vs,vs,LSR#8...,| 00004050 43 4d 50 20 76 73 2c 23 26 46 46 20 20 20 20 20 |CMP vs,#&FF | 00004060 20 20 20 20 20 20 20 20 20 20 3b 74 65 53 54 2c | ;teST,| 00004070 20 26 46 46 2d 74 72 69 0d 03 c9 12 80 4e 45 20 | &FF-tri.....NE | 00004080 74 32 2c 76 73 2c 23 26 46 46 0d 03 ca 17 41 44 |t2,vs,#&FF....AD| 00004090 44 4e 45 20 74 32 2c 69 2c 74 32 2c 4c 53 4c 23 |DNE t2,i,t2,LSL#| 000040a0 33 0d 03 cb 16 4c 44 4d 4e 45 49 41 20 74 32 2c |3....LDMNEIA t2,| 000040b0 7b 78 34 2c 79 34 7d 0d 03 cc 0d 42 4c 4e 45 20 |{x4,y4}....BLNE | 000040c0 71 75 61 64 0d 03 cd 0c 42 4c 45 51 20 74 72 69 |quad....BLEQ tri| 000040d0 0d 03 ce 04 0d 03 cf 0b 2e 79 63 61 6e 6e 65 0d |.........ycanne.| 000040e0 03 d0 0f 53 55 42 53 20 6e 2c 6e 2c 23 31 0d 03 |...SUBS n,n,#1..| 000040f0 d1 10 42 4e 45 20 66 6f 62 6a 6c 6f 6f 70 0d 03 |..BNE fobjloop..| 00004100 d2 04 0d 03 d3 27 4c 44 52 20 72 31 35 2c 72 65 |.....'LDR r15,re| 00004110 74 73 61 76 65 20 20 20 20 20 20 20 20 3b 4d 4f |tsave ;MO| 00004120 56 20 72 31 35 2c 72 31 34 0d 03 d4 1c 2e 69 6d |V r15,r14.....im| 00004130 61 67 65 20 a4 67 61 70 28 6d 61 78 33 64 70 74 |age .gap(max3dpt| 00004140 73 25 2a 38 29 0d 03 d5 04 0d 03 d6 04 0d 03 d7 |s%*8)...........| 00004150 06 5d ed 0d 03 d8 0d f1 50 25 2d 63 6f 64 65 25 |.]......P%-code%| 00004160 0d 03 d9 23 c8 99 22 4f 53 5f 52 65 61 64 56 64 |...#.."OS_ReadVd| 00004170 75 56 61 72 69 61 62 6c 65 73 22 2c 76 64 75 2c |uVariables",vdu,| 00004180 76 64 75 0d 03 da 16 76 64 75 21 34 3d 21 76 64 |vdu....vdu!4=!vd| 00004190 75 2b 32 35 36 2a 33 32 30 0d 03 db 05 e1 0d 03 |u+256*320.......| 000041a0 dc 04 0d 03 dd 0a dd a4 76 75 6c 63 0d 03 de 0c |........vulc....| 000041b0 e3 6a 25 3d 31 b8 32 30 0d 03 df 0a 5b 4f 50 54 |.j%=1.20....[OPT| 000041c0 69 25 0d 03 e0 1d 53 54 4d 49 41 20 28 78 6c 29 |i%....STMIA (xl)| 000041d0 21 2c 7b 63 31 2c 63 32 2c 63 33 2c 63 34 7d 0d |!,{c1,c2,c3,c4}.| 000041e0 03 e1 06 5d ed 0d 03 e2 07 3d 22 22 0d 03 e3 05 |...].....=""....| 000041f0 20 0d 03 e4 09 dd a4 72 6f 74 0d 03 e5 0a 5b 4f | ......rot....[O| 00004200 50 54 69 25 0d 03 e6 0c 4d 4f 56 20 73 2c 61 78 |PTi%....MOV s,ax| 00004210 0d 03 e7 0d 4d 4f 56 20 61 78 2c 62 78 0d 03 e8 |....MOV ax,bx...| 00004220 0d 4d 4f 56 20 62 78 2c 63 78 0d 03 e9 0d 4d 4f |.MOV bx,cx....MO| 00004230 56 20 63 78 2c 64 78 0d 03 ea 0c 4d 4f 56 20 64 |V cx,dx....MOV d| 00004240 78 2c 73 0d 03 eb 0c 4d 4f 56 20 73 2c 61 79 0d |x,s....MOV s,ay.| 00004250 03 ec 0d 4d 4f 56 20 61 79 2c 62 79 0d 03 ed 0d |...MOV ay,by....| 00004260 4d 4f 56 20 62 79 2c 63 79 0d 03 ee 0d 4d 4f 56 |MOV by,cy....MOV| 00004270 20 63 79 2c 64 79 0d 03 ef 0c 4d 4f 56 20 64 79 | cy,dy....MOV dy| 00004280 2c 73 0d 03 f0 05 5d 0d 03 f1 06 3d 30 0d 03 f2 |,s....]....=0...| 00004290 04 0d 03 f3 0d dd a4 67 61 70 28 67 25 29 0d 03 |.......gap(g%)..| 000042a0 f4 0c 50 25 3d 50 25 2b 67 25 0d 03 f5 06 3d 30 |..P%=P%+g%....=0| 000042b0 0d 03 f6 04 0d 03 f7 0e dd a4 64 61 74 61 28 61 |..........data(a| 000042c0 24 29 0d 03 f8 14 e3 67 25 3d 31 20 b8 20 a9 61 |$).....g%=1 . .a| 000042d0 24 2d 31 20 88 32 0d 03 f9 18 3f 50 25 3d a0 28 |$-1 .2....?P%=.(| 000042e0 22 26 22 2b c1 61 24 2c 67 25 2c 32 29 29 0d 03 |"&"+.a$,g%,2))..| 000042f0 fa 19 50 25 3f 31 3d a0 28 22 26 22 2b c1 61 24 |..P%?1=.("&"+.a$| 00004300 2c 67 25 2c 32 29 29 0d 03 fb 09 50 25 2b 3d 32 |,g%,2))....P%+=2| 00004310 0d 03 fc 05 ed 0d 03 fd 06 3d 30 0d ff |.........=0..| 0000431d