_  __   _  _         _ _     _      _           _           
  __| |/ /_ | || |     __| (_)___| | __ (_)_ __   __| | _____  __
 / _` | '_ \| || |_   / _` | / __| |/ / | | '_ \ / _` |/ _ \ \/ /
| (_| | (_) |__   _| | (_| | \__ \   <  | | | | | (_| |  __/>  < 
 \__,_|\___/   |_|    \__,_|_|___/_|\_\ |_|_| |_|\__,_|\___/_/\_\
                                                                 
            

FACET.SRC

FILE INFORMATION

FILENAME(S): FACET.SRC

FILE TYPE(S): SEQ

FILE SIZE: 7.7K

FIRST SEEN: 2025-11-30 21:13:03

APPEARS ON: 2 disk(s)

FILE HASH

be3e7b6e887f769e7b945ca79accf378ec02de3ab0c763bedbfb4d1375e30a80

FOUND ON DISKS (2 DISKS)

DISK TITLE FILENAME FILE TYPE COLLECTION TRACK SECTOR ACTIONS
SONDERH 4 85 II FACET.SRC SEQ DuncanTwain 8 1 DOWNLOAD FILE
SONDERH 4 85 II FACET.SRC SEQ DuncanTwain 8 1 DOWNLOAD FILE

FILE CONTENT & ANALYSIS

00000000: 3B 20 46 41 43 45 54 20  2D 20 44 52 41 57 20 53  |; FACET - DRAW S|
00000010: 48 41 44 45 44 20 54 52  49 41 4E 47 55 4C 41 52  |HADED TRIANGULAR|
00000020: 20 46 41 43 45 54 53 0D  3B 20 41 4E 44 20 53 54  | FACETS.; AND ST|
00000030: 52 41 49 47 48 54 20 4C  49 4E 45 53 2E 0D 3B 0D  |RAIGHT LINES..;.|
00000040: 3B 20 52 49 43 48 41 52  44 20 4C 2E 20 52 59 4C  |; RICHARD L. RYL|
00000050: 41 4E 44 45 52 20 20 20  31 31 2F 34 2F 38 34 0D  |ANDER   11/4/84.|
00000060: 3B 0D 3B 20 4C 4F 41 44  20 22 41 52 49 54 48 2E  |;.; LOAD "ARITH.|
00000070: 48 45 58 22 20 41 4E 44  20 22 47 52 41 50 48 2E  |HEX" AND "GRAPH.|
00000080: 48 45 58 22 0D 3B 20 42  45 46 4F 52 45 20 55 53  |HEX".; BEFORE US|
00000090: 49 4E 47 0D 3B 0D 4F 52  49 47 49 4E 20 3D 20 24  |ING.;.ORIGIN = $|
000000A0: 43 32 36 46 0D 52 41 4D  20 20 20 20 3D 20 24 30  |C26F.RAM    = $0|
000000B0: 33 34 41 0D 3B 0D 58 50  4C 54 20 20 20 3D 20 24  |34A.;.XPLT   = $|
000000C0: 30 33 33 46 0D 59 50 4C  54 20 20 20 3D 20 24 30  |033F.YPLT   = $0|
000000D0: 33 34 31 0D 4E 4F 52 4D  20 20 20 3D 20 24 43 32  |341.NORM   = $C2|
000000E0: 32 34 0D 4E 4F 53 43 41  4C 20 3D 20 24 30 33 34  |24.NOSCAL = $034|
000000F0: 37 0D 50 4C 4F 54 20 20  20 3D 20 24 43 31 34 33  |7.PLOT   = $C143|
00000100: 0D 55 4E 50 4C 4F 54 20  3D 20 24 43 31 34 36 0D  |.UNPLOT = $C146.|
00000110: 3B 0D 4D 4C 50 43 4E 44  20 3D 20 24 41 43 0D 4D  |;.MLPCND = $AC.M|
00000120: 4C 50 4C 45 52 20 3D 20  24 41 44 0D 50 52 4F 44  |LPLER = $AD.PROD|
00000130: 20 20 20 3D 20 24 41 45  0D 4D 55 4C 54 20 20 20  |   = $AE.MULT   |
00000140: 3D 20 24 43 30 31 31 0D  3B 0D 44 56 44 4E 44 20  |= $C011.;.DVDND |
00000150: 20 3D 20 24 46 44 0D 44  56 53 4F 52 20 20 3D 20  | = $FD.DVSOR  = |
00000160: 24 46 42 0D 51 55 4F 54  20 20 20 3D 20 24 46 44  |$FB.QUOT   = $FD|
00000170: 0D 44 49 56 49 44 45 20  3D 20 24 43 30 32 35 0D  |.DIVIDE = $C025.|
00000180: 3B 0D 20 20 20 20 20 20  2A 3D 52 41 4D 0D 3B 0D  |;.      *=RAM.;.|
00000190: 58 4D 49 4E 20 20 20 2A  3D 2A 2B 32 0D 59 4D 49  |XMIN   *=*+2.YMI|
000001A0: 4E 20 20 20 2A 3D 2A 2B  31 0D 58 4D 49 44 20 20  |N   *=*+1.XMID  |
000001B0: 20 2A 3D 2A 2B 32 0D 59  4D 49 44 20 20 20 2A 3D  | *=*+2.YMID   *=|
000001C0: 2A 2B 31 0D 58 4D 41 58  20 20 20 2A 3D 2A 2B 32  |*+1.XMAX   *=*+2|
000001D0: 0D 59 4D 41 58 20 20 20  2A 3D 2A 2B 31 0D 59 54  |.YMAX   *=*+1.YT|
000001E0: 4F 50 20 20 20 2A 3D 2A  2B 31 0D 59 42 4F 54 20  |OP   *=*+1.YBOT |
000001F0: 20 20 2A 3D 2A 2B 31 0D  59 42 41 53 45 20 20 2A  |  *=*+1.YBASE  *|
00000200: 3D 2A 2B 31 0D 44 4C 54  41 58 31 20 2A 3D 2A 2B  |=*+1.DLTAX1 *=*+|
00000210: 32 0D 44 4C 54 41 58 32  20 2A 3D 2A 2B 31 0D 44  |2.DLTAX2 *=*+1.D|
00000220: 4C 54 41 58 33 20 2A 3D  2A 2B 31 0D 44 45 4C 54  |LTAX3 *=*+1.DELT|
00000230: 41 58 20 2A 3D 2A 2B 31  0D 44 4C 54 41 59 31 20  |AX *=*+1.DLTAY1 |
00000240: 2A 3D 2A 2B 31 0D 44 4C  54 41 59 32 20 2A 3D 2A  |*=*+1.DLTAY2 *=*|
00000250: 2B 31 0D 44 4C 54 41 59  33 20 2A 3D 2A 2B 31 0D  |+1.DLTAY3 *=*+1.|
00000260: 44 45 4C 54 41 59 20 2A  3D 2A 2B 31 0D 58 44 49  |DELTAY *=*+1.XDI|
00000270: 46 46 20 20 2A 3D 2A 2B  31 0D 46 4C 41 47 31 20  |FF  *=*+1.FLAG1 |
00000280: 20 2A 3D 2A 2B 31 0D 46  4C 41 47 32 20 20 2A 3D  | *=*+1.FLAG2  *=|
00000290: 2A 2B 31 0D 46 4C 41 47  33 20 20 2A 3D 2A 2B 31  |*+1.FLAG3  *=*+1|
000002A0: 0D 46 4C 41 47 20 20 20  2A 3D 2A 2B 31 0D 45 44  |.FLAG   *=*+1.ED|
000002B0: 47 45 53 20 20 2A 3D 2A  2B 31 0D 45 52 52 4F 52  |GES  *=*+1.ERROR|
000002C0: 20 20 2A 3D 2A 2B 32 0D  4D 4F 44 45 20 20 20 2A  |  *=*+2.MODE   *|
000002D0: 3D 2A 2B 31 0D 43 4F 55  4E 54 20 20 2A 3D 2A 2B  |=*+1.COUNT  *=*+|
000002E0: 32 0D 3B 0D 3B 0D 20 20  20 20 20 20 2A 3D 4F 52  |2.;.;.      *=OR|
000002F0: 49 47 49 4E 0D 3B 0D 3B  2A 2A 2A 2A 2A 2A 2A 2A  |IGIN.;.;********|
00000300: 2A 2A 2A 2A 2A 2A 2A 2A  2A 2A 2A 2A 2A 2A 2A 2A  |****************|
00000310: 2A 2A 2A 2A 2A 2A 2A 2A  2A 2A 2A 2A 2A 2A 2A 2A  |****************|
00000320: 2A 0D 3B 0D 3B 20 53 43  41 4C 45 20 41 4C 4C 20  |*.;.; SCALE ALL |
00000330: 59 20 43 4F 4F 52 44 49  4E 41 54 45 53 20 46 52  |Y COORDINATES FR|
00000340: 4F 4D 20 30 2E 2E 32 33  39 0D 3B 20 50 53 55 45  |OM 0..239.; PSUE|
00000350: 44 4F 2D 43 4F 4F 52 44  49 4E 41 54 45 20 52 41  |DO-COORDINATE RA|
00000360: 4E 47 45 20 54 4F 20 30  2E 2E 31 39 39 0D 3B 20  |NGE TO 0..199.; |
00000370: 54 52 55 45 20 53 43 52  45 45 4E 20 43 4F 4F 52  |TRUE SCREEN COOR|
00000380: 44 49 4E 41 54 45 20 52  41 4E 47 45 0D 3B 0D 53  |DINATE RANGE.;.S|
00000390: 43 41 4C 45 20 20 4C 44  59 20 23 36 0D 20 20 20  |CALE  LDY #6.   |
000003A0: 20 20 20 20 4C 44 41 20  23 24 44 35 0D 20 20 20  |    LDA #$D5.   |
000003B0: 20 20 20 20 53 54 41 20  4D 4C 50 43 4E 44 0D 53  |    STA MLPCND.S|
000003C0: 43 4C 50 20 20 20 4C 44  41 20 59 4D 49 4E 2C 59  |CLP   LDA YMIN,Y|
000003D0: 0D 20 20 20 20 20 20 20  53 54 41 20 4D 4C 50 4C  |.       STA MLPL|
000003E0: 45 52 0D 20 20 20 20 20  20 20 4A 53 52 20 4D 55  |ER.       JSR MU|
000003F0: 4C 54 0D 20 20 20 20 20  20 20 53 54 41 20 59 4D  |LT.       STA YM|
00000400: 49 4E 2C 59 0D 20 20 20  20 20 20 20 44 45 59 0D  |IN,Y.       DEY.|
00000410: 20 20 20 20 20 20 20 44  45 59 0D 20 20 20 20 20  |       DEY.     |
00000420: 20 20 44 45 59 0D 20 20  20 20 20 20 20 42 50 4C  |  DEY.       BPL|
00000430: 20 53 43 4C 50 0D 20 20  20 20 20 20 20 52 54 53  | SCLP.       RTS|
00000440: 0D 3B 0D 3B 0D 3B 2A 2A  2A 2A 2A 2A 2A 2A 2A 2A  |.;.;.;**********|
00000450: 2A 2A 2A 2A 2A 2A 2A 2A  2A 2A 2A 2A 2A 2A 2A 2A  |****************|
00000460: 2A 2A 2A 2A 2A 2A 2A 2A  2A 2A 2A 2A 2A 2A 2A 0D  |***************.|
00000470: 3B 0D 3B 20 45 58 43 48  41 4E 47 45 20 27 4D 49  |;.; EXCHANGE 'MI|
00000480: 4E 27 20 41 4E 44 20 27  4D 49 44 27 20 43 4F 4F  |N' AND 'MID' COO|
00000490: 52 44 49 4E 41 54 45 53  0D 3B 0D 53 57 41 50 31  |RDINATES.;.SWAP1|
000004A0: 32 20 4C 44 59 20 23 32  0D 4C 4F 4F 50 31 20 20  |2 LDY #2.LOOP1  |
000004B0: 4C 44 41 20 58 4D 49 4E  2C 59 0D 20 20 20 20 20  |LDA XMIN,Y.     |
000004C0: 20 20 50 48 41 0D 20 20  20 20 20 20 20 4C 44 41  |  PHA.       LDA|
000004D0: 20 58 4D 49 44 2C 59 0D  20 20 20 20 20 20 20 53  | XMID,Y.       S|
000004E0: 54 41 20 58 4D 49 4E 2C  59 0D 20 20 20 20 20 20  |TA XMIN,Y.      |
000004F0: 20 50 4C 41 0D 20 20 20  20 20 20 20 53 54 41 20  | PLA.       STA |
00000500: 58 4D 49 44 2C 59 0D 20  20 20 20 20 20 20 44 45  |XMID,Y.       DE|
00000510: 59 0D 20 20 20 20 20 20  20 42 50 4C 20 4C 4F 4F  |Y.       BPL LOO|
00000520: 50 31 0D 20 20 20 20 20  20 20 52 54 53 0D 3B 0D  |P1.       RTS.;.|
00000530: 3B 2A 2A 2A 2A 2A 2A 2A  2A 2A 2A 2A 2A 2A 2A 2A  |;***************|
00000540: 2A 2A 2A 2A 2A 2A 2A 2A  2A 2A 2A 2A 2A 2A 2A 2A  |****************|
00000550: 2A 2A 2A 2A 2A 2A 2A 2A  2A 2A 0D 3B 0D 3B 20 45  |**********.;.; E|
00000560: 58 43 48 41 4E 47 45 20  27 4D 49 44 27 20 41 4E  |XCHANGE 'MID' AN|
00000570: 44 20 27 4D 41 58 27 20  43 4F 4F 52 44 49 4E 41  |D 'MAX' COORDINA|
00000580: 54 45 53 0D 3B 0D 53 57  41 50 32 33 20 4C 44 59  |TES.;.SWAP23 LDY|
00000590: 20 23 32 0D 4C 4F 4F 50  32 20 20 4C 44 41 20 58  | #2.LOOP2  LDA X|
000005A0: 4D 49 44 2C 59 0D 20 20  20 20 20 20 20 50 48 41  |MID,Y.       PHA|
000005B0: 0D 20 20 20 20 20 20 20  4C 44 41 20 58 4D 41 58  |.       LDA XMAX|
000005C0: 2C 59 0D 20 20 20 20 20  20 20 53 54 41 20 58 4D  |,Y.       STA XM|
000005D0: 49 44 2C 59 0D 20 20 20  20 20 20 20 50 4C 41 0D  |ID,Y.       PLA.|
000005E0: 20 20 20 20 20 20 20 53  54 41 20 58 4D 41 58 2C  |       STA XMAX,|
000005F0: 59 0D 20 20 20 20 20 20  20 44 45 59 0D 20 20 20  |Y.       DEY.   |
00000600: 20 20 20 20 42 50 4C 20  4C 4F 4F 50 32 0D 20 20  |    BPL LOOP2.  |
00000610: 20 20 20 20 20 52 54 53  0D 3B 0D 3B 2A 2A 2A 2A  |     RTS.;.;****|
00000620: 2A 2A 2A 2A 2A 2A 2A 2A  2A 2A 2A 2A 2A 2A 2A 2A  |****************|
00000630: 2A 2A 2A 2A 2A 2A 2A 2A  2A 2A 2A 2A 2A 2A 2A 2A  |****************|
00000640: 2A 2A 2A 2A 2A 0D 3B 0D  3B 20 53 4F 52 54 20 43  |*****.;.; SORT C|
00000650: 4F 4F 52 44 49 4E 41 54  45 53 20 41 43 43 4F 52  |OORDINATES ACCOR|
00000660: 44 49 4E 47 20 54 4F 20  58 20 43 4F 4D 50 4F 4E  |DING TO X COMPON|
00000670: 45 4E 54 53 0D 3B 0D 53  4F 52 54 58 20 20 4C 44  |ENTS.;.SORTX  LD|
00000680: 58 20 23 32 0D 53 4F 52  54 4C 50 20 53 45 43 0D  |X #2.SORTLP SEC.|
00000690: 20 20 20 20 20 20 20 4C  44 41 20 58 4D 49 44 0D  |       LDA XMID.|
000006A0: 20 20 20 20 20 20 20 53  42 43 20 58 4D 49 4E 0D  |       SBC XMIN.|
000006B0: 20 20 20 20 20 20 20 4C  44 41 20 58 4D 49 44 2B  |       LDA XMID+|
000006C0: 31 0D 20 20 20 20 20 20  20 53 42 43 20 58 4D 49  |1.       SBC XMI|
000006D0: 4E 2B 31 0D 20 20 20 20  20 20 20 42 43 53 20 4E  |N+1.       BCS N|
000006E0: 4F 53 57 50 31 0D 20 20  20 20 20 20 20 4A 53 52  |OSWP1.       JSR|
000006F0: 20 53 57 41 50 31 32 0D  4E 4F 53 57 50 31 20 44  | SWAP12.NOSWP1 D|
00000700: 45 58 0D 20 20 20 20 20  20 20 42 45 51 20 53 4F  |EX.       BEQ SO|
00000710: 52 54 45 44 0D 20 20 20  20 20 20 20 53 45 43 0D  |RTED.       SEC.|
00000720: 20 20 20 20 20 20 20 4C  44 41 20 58 4D 41 58 0D  |       LDA XMAX.|
00000730: 20 20 20 20 20 20 20 53  42 43 20 58 4D 49 44 0D  |       SBC XMID.|
00000740: 20 20 20 20 20 20 20 4C  44 41 20 58 4D 41 58 2B  |       LDA XMAX+|
00000750: 31 0D 20 20 20 20 20 20  20 53 42 43 20 58 4D 49  |1.       SBC XMI|
00000760: 44 2B 31 0D 20 20 20 20  20 20 20 42 43 53 20 53  |D+1.       BCS S|
00000770: 4F 52 54 4C 50 0D 20 20  20 20 20 20 20 4A 53 52  |ORTLP.       JSR|
00000780: 20 53 57 41 50 32 33 0D  20 20 20 20 20 20 20 4A  | SWAP23.       J|
00000790: 4D 50 20 53 4F 52 54 4C  50 0D 53 4F 52 54 45 44  |MP SORTLP.SORTED|
000007A0: 20 52 54 53 0D 3B 0D 3B  2A 2A 2A 2A 2A 2A 2A 2A  | RTS.;.;********|
000007B0: 2A 2A 2A 2A 2A 2A 2A 2A  2A 2A 2A 2A 2A 2A 2A 2A  |****************|
000007C0: 2A 2A 2A 2A 2A 2A 2A 2A  2A 2A 2A 2A 2A 2A 2A 2A  |****************|
000007D0: 2A 0D 3B 0D 3B 20 44 52  41 57 20 41 20 4C 49 4E  |*.;.; DRAW A LIN|
000007E0: 45 20 42 45 54 57 45 45  4E 20 58 4D 49 4E 2C 59  |E BETWEEN XMIN,Y|
000007F0: 4D 49 4E 20 41 4E 44 20  58 4D 49 44 2C 59 4D 49  |MIN AND XMID,YMI|
00000800: 44 0D 3B 20 55 53 49 4E  47 20 46 41 53 54 20 44  |D.; USING FAST D|
00000810: 44 41 20 28 44 49 47 49  54 41 4C 20 44 49 46 46  |DA (DIGITAL DIFF|
00000820: 45 52 45 4E 54 49 41 4C  20 41 4E 41 4C 59 5A 45  |ERENTIAL ANALYZE|
00000830: 52 29 0D 3B 20 54 45 43  48 4E 49 51 55 45 0D 3B  |R).; TECHNIQUE.;|
00000840: 0D 4C 49 4E 45 20 20 20  4C 44 41 20 23 32 20 20  |.LINE   LDA #2  |
00000850: 20 20 20 20 20 20 3B 20  45 4E 53 55 52 45 20 58  |      ; ENSURE X|
00000860: 4D 41 58 20 49 53 0D 20  20 20 20 20 20 20 53 54  |MAX IS.       ST|
00000870: 41 20 58 4D 41 58 2B 31  20 20 20 20 3B 20 4C 41  |A XMAX+1    ; LA|
00000880: 52 47 45 53 54 20 42 45  46 4F 52 45 0D 20 20 20  |RGEST BEFORE.   |
00000890: 20 20 20 20 4A 53 52 20  53 4F 52 54 58 20 20 20  |    JSR SORTX   |
000008A0: 20 20 3B 20 4F 52 44 45  52 49 4E 47 20 27 4D 49  |  ; ORDERING 'MI|
000008B0: 4E 27 20 41 4E 44 20 27  4D 49 44 27 0D 20 20 20  |N' AND 'MID'.   |
000008C0: 20 20 20 20 4C 44 41 20  4E 4F 53 43 41 4C 0D 20  |    LDA NOSCAL. |
000008D0: 20 20 20 20 20 20 42 45  51 20 4F 55 54 4C 4E 0D  |      BEQ OUTLN.|
000008E0: 20 20 20 20 20 20 20 4A  53 52 20 53 43 41 4C 45  |       JSR SCALE|
000008F0: 0D 4F 55 54 4C 4E 20 20  4A 53 52 20 46 49 4E 44  |.OUTLN  JSR FIND|
00000900: 58 59 20 20 20 20 3B 20  45 4E 54 52 59 20 50 4F  |XY    ; ENTRY PO|
00000910: 49 4E 54 20 54 4F 0D 20  20 20 20 20 20 20 4C 44  |INT TO.       LD|
00000920: 41 20 58 4D 49 4E 20 20  20 20 20 20 20 3B 20 4F  |A XMIN       ; O|
00000930: 55 54 4C 49 4E 45 20 46  41 43 45 54 53 0D 20 20  |UTLINE FACETS.  |
00000940: 20 20 20 20 20 53 54 41  20 58 50 4C 54 0D 20 20  |     STA XPLT.  |
00000950: 20 20 20 20 20 4C 44 41  20 58 4D 49 4E 2B 31 0D  |     LDA XMIN+1.|
00000960: 20 20 20 20 20 20 20 53  54 41 20 58 50 4C 54 2B  |       STA XPLT+|
00000970: 31 0D 20 20 20 20 20 20  20 4C 44 41 20 59 4D 49  |1.       LDA YMI|
00000980: 4E 0D 20 20 20 20 20 20  20 53 54 41 20 59 50 4C  |N.       STA YPL|
00000990: 54 0D 20 20 20 20 20 20  20 4C 44 41 20 44 4C 54  |T.       LDA DLT|
000009A0: 41 58 31 2B 31 20 20 3B  20 43 48 45 43 4B 20 46  |AX1+1  ; CHECK F|
000009B0: 4F 52 20 44 58 3E 44 59  0D 20 20 20 20 20 20 20  |OR DX>DY.       |
000009C0: 42 4E 45 20 53 54 45 50  58 0D 20 20 20 20 20 20  |BNE STEPX.      |
000009D0: 20 53 45 43 0D 20 20 20  20 20 20 20 4C 44 41 20  | SEC.       LDA |
000009E0: 44 4C 54 41 58 31 0D 20  20 20 20 20 20 20 53 42  |DLTAX1.       SB|
000009F0: 43 20 44 4C 54 41 59 31  0D 20 20 20 20 20 20 20  |C DLTAY1.       |
00000A00: 42 43 53 20 53 54 45 50  58 0D 53 54 45 50 59 20  |BCS STEPX.STEPY |
00000A10: 20 4C 44 41 20 44 4C 54  41 59 31 0D 20 20 20 20  | LDA DLTAY1.    |
00000A20: 20 20 20 53 54 41 20 45  52 52 4F 52 0D 20 20 20  |   STA ERROR.   |
00000A30: 20 20 20 20 53 54 41 20  43 4F 55 4E 54 0D 20 20  |    STA COUNT.  |
00000A40: 20 20 20 20 20 4C 53 52  20 45 52 52 4F 52 0D 20  |     LSR ERROR. |
00000A50: 20 20 20 20 20 20 53 45  43 0D 20 20 20 20 20 20  |      SEC.      |
00000A60: 20 4C 44 41 20 44 4C 54  41 58 31 0D 20 20 20 20  | LDA DLTAX1.    |
00000A70: 20 20 20 53 42 43 20 45  52 52 4F 52 0D 20 20 20  |   SBC ERROR.   |
00000A80: 20 20 20 20 53 54 41 20  45 52 52 4F 52 0D 20 20  |    STA ERROR.  |
00000A90: 20 20 20 20 20 4C 44 41  20 44 4C 54 41 58 31 2B  |     LDA DLTAX1+|
00000AA0: 31 0D 20 20 20 20 20 20  20 53 42 43 20 23 30 0D  |1.       SBC #0.|
00000AB0: 20 20 20 20 20 20 20 53  54 41 20 45 52 52 4F 52  |       STA ERROR|
00000AC0: 2B 31 0D 20 20 20 20 20  20 20 49 4E 43 20 43 4F  |+1.       INC CO|
00000AD0: 55 4E 54 0D 4C 4E 4C 50  31 20 20 4C 44 41 20 4D  |UNT.LNLP1  LDA M|
00000AE0: 4F 44 45 20 20 20 20 20  20 3B 20 30 20 3D 20 44  |ODE      ; 0 = D|
00000AF0: 52 41 57 2C 20 31 20 3D  20 45 52 41 53 45 0D 20  |RAW, 1 = ERASE. |
00000B00: 20 20 20 20 20 20 42 4E  45 20 45 52 41 53 45 31  |      BNE ERASE1|
00000B10: 0D 20 20 20 20 20 20 20  4A 53 52 20 50 4C 4F 54  |.       JSR PLOT|
00000B20: 0D 20 20 20 20 20 20 20  4A 4D 50 20 53 4B 31 0D  |.       JMP SK1.|
00000B30: 45 52 41 53 45 31 20 4A  53 52 20 55 4E 50 4C 4F  |ERASE1 JSR UNPLO|
00000B40: 54 0D 53 4B 31 20 20 20  20 4C 44 41 20 46 4C 41  |T.SK1    LDA FLA|
00000B50: 47 31 20 20 20 20 20 3B  20 30 20 3D 20 50 4F 53  |G1     ; 0 = POS|
00000B60: 49 54 49 56 45 20 53 4C  4F 50 45 0D 20 20 20 20  |ITIVE SLOPE.    |
00000B70: 20 20 20 42 4E 45 20 4E  53 4C 4F 50 45 0D 20 20  |   BNE NSLOPE.  |
00000B80: 20 20 20 20 20 49 4E 43  20 59 50 4C 54 0D 20 20  |     INC YPLT.  |
00000B90: 20 20 20 20 20 42 4E 45  20 53 4B 32 20 20 20 20  |     BNE SK2    |
00000BA0: 20 3B 20 41 4C 57 41 59  53 20 42 52 41 4E 43 48  | ; ALWAYS BRANCH|
00000BB0: 0D 4E 53 4C 4F 50 45 20  44 45 43 20 59 50 4C 54  |.NSLOPE DEC YPLT|
00000BC0: 0D 53 4B 32 20 20 20 20  42 49 54 20 45 52 52 4F  |.SK2    BIT ERRO|
00000BD0: 52 2B 31 0D 20 20 20 20  20 20 20 42 4D 49 20 53  |R+1.       BMI S|
00000BE0: 4B 33 0D 20 20 20 20 20  20 20 49 4E 43 20 58 50  |K3.       INC XP|
00000BF0: 4C 54 0D 20 20 20 20 20  20 20 42 4E 45 20 4E 4F  |LT.       BNE NO|
00000C00: 49 4E 43 31 0D 20 20 20  20 20 20 20 49 4E 43 20  |INC1.       INC |
00000C10: 58 50 4C 54 2B 31 0D 4E  4F 49 4E 43 31 20 53 45  |XPLT+1.NOINC1 SE|
00000C20: 43 0D 20 20 20 20 20 20  20 4C 44 41 20 45 52 52  |C.       LDA ERR|
00000C30: 4F 52 0D 20 20 20 20 20  20 20 53 42 43 20 44 4C  |OR.       SBC DL|
00000C40: 54 41 59 31 0D 20 20 20  20 20 20 20 53 54 41 20  |TAY1.       STA |
00000C50: 45 52 52 4F 52 0D 20 20  20 20 20 20 20 4C 44 41  |ERROR.       LDA|
00000C60: 20 45 52 52 4F 52 2B 31  0D 20 20 20 20 20 20 20  | ERROR+1.       |
00000C70: 53 42 43 20 23 30 0D 20  20 20 20 20 20 20 53 54  |SBC #0.       ST|
00000C80: 41 20 45 52 52 4F 52 2B  31 0D 53 4B 33 20 20 20  |A ERROR+1.SK3   |
00000C90: 20 43 4C 43 0D 20 20 20  20 20 20 20 4C 44 41 20  | CLC.       LDA |
00000CA0: 45 52 52 4F 52 0D 20 20  20 20 20 20 20 41 44 43  |ERROR.       ADC|
00000CB0: 20 44 4C 54 41 58 31 0D  20 20 20 20 20 20 20 53  | DLTAX1.       S|
00000CC0: 54 41 20 45 52 52 4F 52  0D 20 20 20 20 20 20 20  |TA ERROR.       |
00000CD0: 4C 44 41 20 45 52 52 4F  52 2B 31 0D 20 20 20 20  |LDA ERROR+1.    |
00000CE0: 20 20 20 41 44 43 20 44  4C 54 41 58 31 2B 31 0D  |   ADC DLTAX1+1.|
00000CF0: 20 20 20 20 20 20 20 53  54 41 20 45 52 52 4F 52  |       STA ERROR|
00000D00: 2B 31 0D 20 20 20 20 20  20 20 44 45 43 20 43 4F  |+1.       DEC CO|
00000D10: 55 4E 54 0D 20 20 20 20  20 20 20 42 4E 45 20 4C  |UNT.       BNE L|
00000D20: 4E 4C 50 31 0D 20 20 20  20 20 20 20 52 54 53 0D  |NLP1.       RTS.|
00000D30: 3B 0D 53 54 45 50 58 20  20 4C 44 41 20 44 4C 54  |;.STEPX  LDA DLT|
00000D40: 41 58 31 0D 20 20 20 20  20 20 20 53 54 41 20 45  |AX1.       STA E|
00000D50: 52 52 4F 52 0D 20 20 20  20 20 20 20 53 54 41 20  |RROR.       STA |
00000D60: 43 4F 55 4E 54 0D 20 20  20 20 20 20 20 4C 44 41  |COUNT.       LDA|
00000D70: 20 44 4C 54 41 58 31 2B  31 0D 20 20 20 20 20 20  | DLTAX1+1.      |
00000D80: 20 53 54 41 20 45 52 52  4F 52 2B 31 0D 20 20 20  | STA ERROR+1.   |
00000D90: 20 20 20 20 53 54 41 20  43 4F 55 4E 54 2B 31 0D  |    STA COUNT+1.|
00000DA0: 20 20 20 20 20 20 20 4C  53 52 20 45 52 52 4F 52  |       LSR ERROR|
00000DB0: 2B 31 0D 20 20 20 20 20  20 20 52 4F 52 20 45 52  |+1.       ROR ER|
00000DC0: 52 4F 52 0D 20 20 20 20  20 20 20 53 45 43 0D 20  |ROR.       SEC. |
00000DD0: 20 20 20 20 20 20 4C 44  41 20 44 4C 54 41 59 31  |      LDA DLTAY1|
00000DE0: 0D 20 20 20 20 20 20 20  53 42 43 20 45 52 52 4F  |.       SBC ERRO|
00000DF0: 52 0D 20 20 20 20 20 20  20 53 54 41 20 45 52 52  |R.       STA ERR|
00000E00: 4F 52 0D 20 20 20 20 20  20 20 4C 44 41 20 23 30  |OR.       LDA #0|
00000E10: 0D 20 20 20 20 20 20 20  53 42 43 20 45 52 52 4F  |.       SBC ERRO|
00000E20: 52 2B 31 0D 20 20 20 20  20 20 20 53 54 41 20 45  |R+1.       STA E|
00000E30: 52 52 4F 52 2B 31 0D 4C  4E 4C 50 32 20 20 4C 44  |RROR+1.LNLP2  LD|
00000E40: 41 20 4D 4F 44 45 0D 20  20 20 20 20 20 20 42 4E  |A MODE.       BN|
00000E50: 45 20 45 52 41 53 45 32  0D 20 20 20 20 20 20 20  |E ERASE2.       |
00000E60: 4A 53 52 20 50 4C 4F 54  0D 20 20 20 20 20 20 20  |JSR PLOT.       |
00000E70: 4A 4D 50 20 53 4B 50 31  0D 45 52 41 53 45 32 20  |JMP SKP1.ERASE2 |
00000E80: 4A 53 52 20 55 4E 50 4C  4F 54 0D 53 4B 50 31 20  |JSR UNPLOT.SKP1 |
00000E90: 20 20 49 4E 43 20 58 50  4C 54 0D 20 20 20 20 20  |  INC XPLT.     |
00000EA0: 20 20 42 4E 45 20 4E 4F  49 4E 43 32 0D 20 20 20  |  BNE NOINC2.   |
00000EB0: 20 20 20 20 49 4E 43 20  58 50 4C 54 2B 31 0D 4E  |    INC XPLT+1.N|
00000EC0: 4F 49 4E 43 32 20 42 49  54 20 45 52 52 4F 52 2B  |OINC2 BIT ERROR+|
00000ED0: 31 0D 20 20 20 20 20 20  20 42 4D 49 20 53 4B 50  |1.       BMI SKP|
00000EE0: 33 0D 20 20 20 20 20 20  20 4C 44 41 20 46 4C 41  |3.       LDA FLA|
00000EF0: 47 31 0D 20 20 20 20 20  20 20 42 4E 45 20 4E 47  |G1.       BNE NG|
00000F00: 53 4C 50 0D 20 20 20 20  20 20 20 49 4E 43 20 59  |SLP.       INC Y|
00000F10: 50 4C 54 0D 20 20 20 20  20 20 20 42 4E 45 20 53  |PLT.       BNE S|
00000F20: 4B 50 32 20 20 20 20 3B  20 41 4C 57 41 59 53 20  |KP2    ; ALWAYS |
00000F30: 42 52 41 4E 43 48 0D 4E  47 53 4C 50 20 20 44 45  |BRANCH.NGSLP  DE|
00000F40: 43 20 59 50 4C 54 0D 53  4B 50 32 20 20 20 53 45  |C YPLT.SKP2   SE|
00000F50: 43 0D 20 20 20 20 20 20  20 4C 44 41 20 45 52 52  |C.       LDA ERR|
00000F60: 4F 52 0D 20 20 20 20 20  20 20 53 42 43 20 44 4C  |OR.       SBC DL|
00000F70: 54 41 58 31 0D 20 20 20  20 20 20 20 53 54 41 20  |TAX1.       STA |
00000F80: 45 52 52 4F 52 0D 20 20  20 20 20 20 20 4C 44 41  |ERROR.       LDA|
00000F90: 20 45 52 52 4F 52 2B 31  0D 20 20 20 20 20 20 20  | ERROR+1.       |
00000FA0: 53 42 43 20 44 4C 54 41  58 31 2B 31 0D 20 20 20  |SBC DLTAX1+1.   |
00000FB0: 20 20 20 20 53 54 41 20  45 52 52 4F 52 2B 31 0D  |    STA ERROR+1.|
00000FC0: 53 4B 50 33 20 20 20 43  4C 43 0D 20 20 20 20 20  |SKP3   CLC.     |
00000FD0: 20 20 4C 44 41 20 45 52  52 4F 52 0D 20 20 20 20  |  LDA ERROR.    |
00000FE0: 20 20 20 41 44 43 20 44  4C 54 41 59 31 0D 20 20  |   ADC DLTAY1.  |
00000FF0: 20 20 20 20 20 53 54 41  20 45 52 52 4F 52 0D 20  |     STA ERROR. |
00001000: 20 20 20 20 20 20 4C 44  41 20 45 52 52 4F 52 2B  |      LDA ERROR+|
00001010: 31 0D 20 20 20 20 20 20  20 41 44 43 20 23 30 0D  |1.       ADC #0.|
00001020: 20 20 20 20 20 20 20 53  54 41 20 45 52 52 4F 52  |       STA ERROR|
00001030: 2B 31 0D 20 20 20 20 20  20 20 53 45 43 0D 20 20  |+1.       SEC.  |
00001040: 20 20 20 20 20 4C 44 41  20 43 4F 55 4E 54 0D 20  |     LDA COUNT. |
00001050: 20 20 20 20 20 20 53 42  43 20 23 31 0D 20 20 20  |      SBC #1.   |
00001060: 20 20 20 20 53 54 41 20  43 4F 55 4E 54 0D 20 20  |    STA COUNT.  |
00001070: 20 20 20 20 20 42 43 53  20 54 45 53 54 0D 20 20  |     BCS TEST.  |
00001080: 20 20 20 20 20 44 45 43  20 43 4F 55 4E 54 2B 31  |     DEC COUNT+1|
00001090: 0D 54 45 53 54 20 20 20  42 49 54 20 43 4F 55 4E  |.TEST   BIT COUN|
000010A0: 54 2B 31 0D 20 20 20 20  20 20 20 42 50 4C 20 4C  |T+1.       BPL L|
000010B0: 4E 4C 50 32 0D 20 20 20  20 20 20 20 52 54 53 0D  |NLP2.       RTS.|
000010C0: 3B 0D 3B 2A 2A 2A 2A 2A  2A 2A 2A 2A 2A 2A 2A 2A  |;.;*************|
000010D0: 2A 2A 2A 2A 2A 2A 2A 2A  2A 2A 2A 2A 2A 2A 2A 2A  |****************|
000010E0: 2A 2A 2A 2A 2A 2A 2A 2A  2A 2A 2A 2A 0D 3B 20 44  |************.; D|
000010F0: 52 41 57 20 41 20 53 48  41 44 45 44 20 56 45 52  |RAW A SHADED VER|
00001100: 54 49 43 41 4C 20 4C 49  4E 45 20 41 54 0D 3B 20  |TICAL LINE AT.; |
00001110: 58 50 4C 54 20 46 52 4F  4D 20 59 54 4F 50 20 54  |XPLT FROM YTOP T|
00001120: 4F 20 59 42 4F 54 0D 3B  0D 56 4C 49 4E 45 20 20  |O YBOT.;.VLINE  |
00001130: 53 45 43 20 20 20 20 20  20 20 20 20 3B 20 4D 41  |SEC         ; MA|
00001140: 4B 45 20 53 55 52 45 20  59 54 4F 50 3E 59 42 4F  |KE SURE YTOP>YBO|
00001150: 54 0D 20 20 20 20 20 20  20 4C 44 41 20 59 54 4F  |T.       LDA YTO|
00001160: 50 0D 20 20 20 20 20 20  20 53 42 43 20 59 42 4F  |P.       SBC YBO|
00001170: 54 0D 20 20 20 20 20 20  20 42 43 53 20 44 52 41  |T.       BCS DRA|
00001180: 57 0D 20 20 20 20 20 20  20 4C 44 41 20 59 54 4F  |W.       LDA YTO|
00001190: 50 0D 20 20 20 20 20 20  20 50 48 41 0D 20 20 20  |P.       PHA.   |
000011A0: 20 20 20 20 4C 44 41 20  59 42 4F 54 0D 20 20 20  |    LDA YBOT.   |
000011B0: 20 20 20 20 53 54 41 20  59 54 4F 50 0D 20 20 20  |    STA YTOP.   |
000011C0: 20 20 20 20 50 4C 41 0D  20 20 20 20 20 20 20 53  |    PLA.       S|
000011D0: 54 41 20 59 42 4F 54 0D  44 52 41 57 20 20 20 4C  |TA YBOT.DRAW   L|
000011E0: 44 41 20 59 54 4F 50 0D  20 20 20 20 20 20 20 53  |DA YTOP.       S|
000011F0: 54 41 20 59 50 4C 54 0D  20 20 20 20 20 20 20 4A  |TA YPLT.       J|
00001200: 53 52 20 4E 4F 52 4D 20  20 20 20 3B 20 50 4C 4F  |SR NORM    ; PLO|
00001210: 54 20 41 20 53 48 41 44  45 2D 57 45 49 47 48 54  |T A SHADE-WEIGHT|
00001220: 45 44 0D 20 20 20 20 20  20 20 4C 44 41 20 59 54  |ED.       LDA YT|
00001230: 4F 50 20 20 20 20 3B 20  50 49 58 45 4C 20 43 48  |OP    ; PIXEL CH|
00001240: 45 43 4B 49 4E 47 20 4F  4E 4C 59 0D 20 20 20 20  |ECKING ONLY.    |
00001250: 20 20 20 43 4D 50 20 59  42 4F 54 20 20 20 20 3B  |   CMP YBOT    ;|
00001260: 20 46 4F 52 20 53 48 41  44 45 20 53 54 59 4C 45  | FOR SHADE STYLE|
00001270: 0D 20 20 20 20 20 20 20  42 45 51 20 44 4F 4E 45  |.       BEQ DONE|
00001280: 0D 20 20 20 20 20 20 20  44 45 43 20 59 54 4F 50  |.       DEC YTOP|
00001290: 0D 20 20 20 20 20 20 20  4A 4D 50 20 44 52 41 57  |.       JMP DRAW|
000012A0: 0D 44 4F 4E 45 20 20 20  52 54 53 0D 3B 0D 3B 2A  |.DONE   RTS.;.;*|
000012B0: 2A 2A 2A 2A 2A 2A 2A 2A  2A 2A 2A 2A 2A 2A 2A 2A  |****************|
000012C0: 2A 2A 2A 2A 2A 2A 2A 2A  2A 2A 2A 2A 2A 2A 2A 2A  |****************|
000012D0: 2A 2A 2A 2A 2A 2A 2A 2A  0D 3B 0D 3B 20 46 49 4E  |********.;.; FIN|
000012E0: 44 20 45 4E 44 50 4F 49  4E 54 53 20 46 4F 52 20  |D ENDPOINTS FOR |
000012F0: 56 45 52 54 49 43 41 4C  20 4C 49 4E 45 53 0D 3B  |VERTICAL LINES.;|
00001300: 20 42 45 54 57 45 45 4E  20 46 41 43 45 54 20 45  | BETWEEN FACET E|
00001310: 44 47 45 53 0D 3B 0D 45  4E 44 50 54 53 20 4C 44  |DGES.;.ENDPTS LD|
00001320: 41 20 58 44 49 46 46 0D  20 20 20 20 20 20 20 53  |A XDIFF.       S|
00001330: 54 41 20 4D 4C 50 43 4E  44 0D 20 20 20 20 20 20  |TA MLPCND.      |
00001340: 20 4C 44 41 20 44 45 4C  54 41 59 0D 20 20 20 20  | LDA DELTAY.    |
00001350: 20 20 20 53 54 41 20 4D  4C 50 4C 45 52 0D 20 20  |   STA MLPLER.  |
00001360: 20 20 20 20 20 4A 53 52  20 4D 55 4C 54 0D 20 20  |     JSR MULT.  |
00001370: 20 20 20 20 20 53 54 41  20 44 56 44 4E 44 2B 31  |     STA DVDND+1|
00001380: 0D 20 20 20 20 20 20 20  4C 44 41 20 50 52 4F 44  |.       LDA PROD|
00001390: 0D 20 20 20 20 20 20 20  53 54 41 20 44 56 44 4E  |.       STA DVDN|
000013A0: 44 0D 20 20 20 20 20 20  20 4C 44 41 20 23 30 0D  |D.       LDA #0.|
000013B0: 20 20 20 20 20 20 20 53  54 41 20 44 56 53 4F 52  |       STA DVSOR|
000013C0: 2B 31 0D 20 20 20 20 20  20 20 4C 44 41 20 44 45  |+1.       LDA DE|
000013D0: 4C 54 41 58 0D 20 20 20  20 20 20 20 53 54 41 20  |LTAX.       STA |
000013E0: 44 56 53 4F 52 0D 20 20  20 20 20 20 20 4A 53 52  |DVSOR.       JSR|
000013F0: 20 44 49 56 49 44 45 0D  20 20 20 20 20 20 20 4C  | DIVIDE.       L|
00001400: 44 41 20 46 4C 41 47 0D  20 20 20 20 20 20 20 42  |DA FLAG.       B|
00001410: 4E 45 20 4E 45 47 53 4C  50 0D 20 20 20 20 20 20  |NE NEGSLP.      |
00001420: 20 43 4C 43 0D 20 20 20  20 20 20 20 4C 44 41 20  | CLC.       LDA |
00001430: 59 42 41 53 45 0D 20 20  20 20 20 20 20 41 44 43  |YBASE.       ADC|
00001440: 20 51 55 4F 54 0D 20 20  20 20 20 20 20 42 43 43  | QUOT.       BCC|
00001450: 20 53 4B 49 50 32 0D 4E  45 47 53 4C 50 20 53 45  | SKIP2.NEGSLP SE|
00001460: 43 0D 20 20 20 20 20 20  20 4C 44 41 20 59 42 41  |C.       LDA YBA|
00001470: 53 45 0D 20 20 20 20 20  20 20 53 42 43 20 51 55  |SE.       SBC QU|
00001480: 4F 54 0D 53 4B 49 50 32  20 20 52 54 53 0D 3B 0D  |OT.SKIP2  RTS.;.|
00001490: 3B 2A 2A 2A 2A 2A 2A 2A  2A 2A 2A 2A 2A 2A 2A 2A  |;***************|
000014A0: 2A 2A 2A 2A 2A 2A 2A 2A  2A 2A 2A 2A 2A 2A 2A 2A  |****************|
000014B0: 2A 2A 2A 2A 2A 2A 2A 2A  2A 2A 0D 3B 0D 3B 20 46  |**********.;.; F|
000014C0: 49 4E 44 20 43 4F 4F 52  44 49 4E 41 54 45 20 44  |IND COORDINATE D|
000014D0: 49 46 46 45 52 45 4E 43  45 53 0D 3B 0D 3B 20 41  |IFFERENCES.;.; A|
000014E0: 4C 4C 20 22 44 45 4C 54  41 20 58 22 20 56 41 4C  |LL "DELTA X" VAL|
000014F0: 55 45 53 20 50 4F 53 49  54 49 56 45 2C 0D 3B 20  |UES POSITIVE,.; |
00001500: 53 49 4E 47 4C 45 20 50  52 45 43 49 53 49 4F 4E  |SINGLE PRECISION|
00001510: 20 28 4A 55 53 54 20 4C  4F 57 45 52 20 42 59 54  | (JUST LOWER BYT|
00001520: 45 29 0D 3B 0D 46 49 4E  44 58 59 20 53 45 43 0D  |E).;.FINDXY SEC.|
00001530: 20 20 20 20 20 20 20 4C  44 41 20 58 4D 49 44 0D  |       LDA XMID.|
00001540: 20 20 20 20 20 20 20 53  42 43 20 58 4D 49 4E 0D  |       SBC XMIN.|
00001550: 20 20 20 20 20 20 20 53  54 41 20 44 4C 54 41 58  |       STA DLTAX|
00001560: 31 0D 20 20 20 20 20 20  20 4C 44 41 20 58 4D 49  |1.       LDA XMI|
00001570: 44 2B 31 0D 20 20 20 20  20 20 20 53 42 43 20 58  |D+1.       SBC X|
00001580: 4D 49 4E 2B 31 0D 20 20  20 20 20 20 20 53 54 41  |MIN+1.       STA|
00001590: 20 44 4C 54 41 58 31 2B  31 0D 20 20 20 20 20 20  | DLTAX1+1.      |
000015A0: 20 53 45 43 0D 20 20 20  20 20 20 20 4C 44 41 20  | SEC.       LDA |
000015B0: 58 4D 41 58 0D 20 20 20  20 20 20 20 53 42 43 20  |XMAX.       SBC |
000015C0: 58 4D 49 44 0D 20 20 20  20 20 20 20 53 54 41 20  |XMID.       STA |
000015D0: 44 4C 54 41 58 32 0D 20  20 20 20 20 20 20 53 45  |DLTAX2.       SE|
000015E0: 43 0D 20 20 20 20 20 20  20 4C 44 41 20 58 4D 41  |C.       LDA XMA|
000015F0: 58 0D 20 20 20 20 20 20  20 53 42 43 20 58 4D 49  |X.       SBC XMI|
00001600: 4E 0D 20 20 20 20 20 20  20 53 54 41 20 44 4C 54  |N.       STA DLT|
00001610: 41 58 33 0D 3B 0D 3B 20  55 53 45 20 41 42 53 28  |AX3.;.; USE ABS(|
00001620: 44 45 4C 54 41 20 59 29  20 56 41 4C 55 45 53 2C  |DELTA Y) VALUES,|
00001630: 0D 3B 20 46 4C 41 47 53  20 49 4E 44 49 43 41 54  |.; FLAGS INDICAT|
00001640: 45 20 53 4C 4F 50 45 20  4F 46 20 4C 49 4D 49 54  |E SLOPE OF LIMIT|
00001650: 20 4C 49 4E 45 53 0D 3B  0D 20 20 20 20 20 20 20  | LINES.;.       |
00001660: 4C 44 41 20 23 24 30 30  0D 20 20 20 20 20 20 20  |LDA #$00.       |
00001670: 53 54 41 20 46 4C 41 47  31 0D 20 20 20 20 20 20  |STA FLAG1.      |
00001680: 20 53 54 41 20 46 4C 41  47 32 0D 20 20 20 20 20  | STA FLAG2.     |
00001690: 20 20 53 54 41 20 46 4C  41 47 33 0D 20 20 20 20  |  STA FLAG3.    |
000016A0: 20 20 20 53 45 43 0D 20  20 20 20 20 20 20 4C 44  |   SEC.       LD|
000016B0: 41 20 59 4D 49 44 0D 20  20 20 20 20 20 20 53 42  |A YMID.       SB|
000016C0: 43 20 59 4D 49 4E 0D 20  20 20 20 20 20 20 42 43  |C YMIN.       BC|
000016D0: 53 20 53 54 4F 52 45 31  0D 20 20 20 20 20 20 20  |S STORE1.       |
000016E0: 49 4E 43 20 46 4C 41 47  31 0D 20 20 20 20 20 20  |INC FLAG1.      |
000016F0: 20 4C 44 41 20 59 4D 49  4E 0D 20 20 20 20 20 20  | LDA YMIN.      |
00001700: 20 53 42 43 20 59 4D 49  44 0D 53 54 4F 52 45 31  | SBC YMID.STORE1|
00001710: 20 53 54 41 20 44 4C 54  41 59 31 0D 20 20 20 20  | STA DLTAY1.    |
00001720: 20 20 20 53 45 43 0D 20  20 20 20 20 20 20 4C 44  |   SEC.       LD|
00001730: 41 20 59 4D 41 58 0D 20  20 20 20 20 20 20 53 42  |A YMAX.       SB|
00001740: 43 20 59 4D 49 44 0D 20  20 20 20 20 20 20 42 43  |C YMID.       BC|
00001750: 53 20 53 54 4F 52 45 32  0D 20 20 20 20 20 20 20  |S STORE2.       |
00001760: 49 4E 43 20 46 4C 41 47  32 0D 20 20 20 20 20 20  |INC FLAG2.      |
00001770: 20 4C 44 41 20 59 4D 49  44 0D 20 20 20 20 20 20  | LDA YMID.      |
00001780: 20 53 42 43 20 59 4D 41  58 0D 53 54 4F 52 45 32  | SBC YMAX.STORE2|
00001790: 20 53 54 41 20 44 4C 54  41 59 32 0D 20 20 20 20  | STA DLTAY2.    |
000017A0: 20 20 20 53 45 43 0D 20  20 20 20 20 20 20 4C 44  |   SEC.       LD|
000017B0: 41 20 59 4D 41 58 0D 20  20 20 20 20 20 20 53 42  |A YMAX.       SB|
000017C0: 43 20 59 4D 49 4E 0D 20  20 20 20 20 20 20 42 43  |C YMIN.       BC|
000017D0: 53 20 53 54 4F 52 45 33  0D 20 20 20 20 20 20 20  |S STORE3.       |
000017E0: 49 4E 43 20 46 4C 41 47  33 0D 20 20 20 20 20 20  |INC FLAG3.      |
000017F0: 20 4C 44 41 20 59 4D 49  4E 0D 20 20 20 20 20 20  | LDA YMIN.      |
00001800: 20 53 42 43 20 59 4D 41  58 0D 53 54 4F 52 45 33  | SBC YMAX.STORE3|
00001810: 20 53 54 41 20 44 4C 54  41 59 33 0D 20 20 20 20  | STA DLTAY3.    |
00001820: 20 20 20 52 54 53 0D 3B  0D 3B 2A 2A 2A 2A 2A 2A  |   RTS.;.;******|
00001830: 2A 2A 2A 2A 2A 2A 2A 2A  2A 2A 2A 2A 2A 2A 2A 2A  |****************|
00001840: 2A 2A 2A 2A 2A 2A 2A 2A  2A 2A 2A 2A 2A 2A 2A 2A  |****************|
00001850: 2A 2A 2A 0D 3B 0D 20 44  52 41 57 20 41 20 53 48  |***.;. DRAW A SH|
00001860: 41 44 45 44 20 54 52 49  41 4E 47 55 4C 41 52 20  |ADED TRIANGULAR |
00001870: 46 41 43 45 54 0D 3B 0D  46 41 43 45 54 20 20 4A  |FACET.;.FACET  J|
00001880: 53 52 20 53 4F 52 54 58  0D 20 20 20 20 20 20 20  |SR SORTX.       |
00001890: 4C 44 41 20 4E 4F 53 43  41 4C 0D 20 20 20 20 20  |LDA NOSCAL.     |
000018A0: 20 20 42 45 51 20 59 53  4F 4B 0D 20 20 20 20 20  |  BEQ YSOK.     |
000018B0: 20 20 4A 53 52 20 53 43  41 4C 45 0D 59 53 4F 4B  |  JSR SCALE.YSOK|
000018C0: 20 20 20 4A 53 52 20 46  49 4E 44 58 59 0D 20 20  |   JSR FINDXY.  |
000018D0: 20 20 20 20 20 4C 44 41  20 58 4D 49 4E 0D 20 20  |     LDA XMIN.  |
000018E0: 20 20 20 20 20 53 54 41  20 58 50 4C 54 0D 20 20  |     STA XPLT.  |
000018F0: 20 20 20 20 20 4C 44 41  20 58 4D 49 4E 2B 31 0D  |     LDA XMIN+1.|
00001900: 20 20 20 20 20 20 20 53  54 41 20 58 50 4C 54 2B  |       STA XPLT+|
00001910: 31 0D 46 43 45 54 4C 50  20 53 45 43 0D 20 20 20  |1.FCETLP SEC.   |
00001920: 20 20 20 20 4C 44 41 20  58 50 4C 54 0D 20 20 20  |    LDA XPLT.   |
00001930: 20 20 20 20 53 42 43 20  58 4D 49 4E 0D 20 20 20  |    SBC XMIN.   |
00001940: 20 20 20 20 53 54 41 20  58 44 49 46 46 0D 20 20  |    STA XDIFF.  |
00001950: 20 20 20 20 20 4C 44 41  20 44 4C 54 41 58 31 0D  |     LDA DLTAX1.|
00001960: 20 20 20 20 20 20 20 42  45 51 20 43 4F 4E 54 0D  |       BEQ CONT.|
00001970: 20 20 20 20 20 20 20 53  54 41 20 44 45 4C 54 41  |       STA DELTA|
00001980: 58 0D 20 20 20 20 20 20  20 4C 44 41 20 44 4C 54  |X.       LDA DLT|
00001990: 41 59 31 0D 20 20 20 20  20 20 20 53 54 41 20 44  |AY1.       STA D|
000019A0: 45 4C 54 41 59 0D 20 20  20 20 20 20 20 4C 44 41  |ELTAY.       LDA|
000019B0: 20 46 4C 41 47 31 0D 20  20 20 20 20 20 20 53 54  | FLAG1.       ST|
000019C0: 41 20 46 4C 41 47 0D 20  20 20 20 20 20 20 4C 44  |A FLAG.       LD|
000019D0: 41 20 59 4D 49 4E 0D 20  20 20 20 20 20 20 53 54  |A YMIN.       ST|
000019E0: 41 20 59 42 41 53 45 0D  20 20 20 20 20 20 20 4A  |A YBASE.       J|
000019F0: 53 52 20 45 4E 44 50 54  53 0D 20 20 20 20 20 20  |SR ENDPTS.      |
00001A00: 20 53 54 41 20 59 54 4F  50 0D 20 20 20 20 20 20  | STA YTOP.      |
00001A10: 20 4C 44 41 20 44 4C 54  41 58 33 0D 20 20 20 20  | LDA DLTAX3.    |
00001A20: 20 20 20 42 45 51 20 43  4F 4E 54 0D 20 20 20 20  |   BEQ CONT.    |
00001A30: 20 20 20 53 54 41 20 44  45 4C 54 41 58 0D 20 20  |   STA DELTAX.  |
00001A40: 20 20 20 20 20 4C 44 41  20 44 4C 54 41 59 33 0D  |     LDA DLTAY3.|
00001A50: 20 20 20 20 20 20 20 53  54 41 20 44 45 4C 54 41  |       STA DELTA|
00001A60: 59 0D 20 20 20 20 20 20  20 4C 44 41 20 46 4C 41  |Y.       LDA FLA|
00001A70: 47 33 0D 20 20 20 20 20  20 20 53 54 41 20 46 4C  |G3.       STA FL|
00001A80: 41 47 0D 20 20 20 20 20  20 20 4A 53 52 20 45 4E  |AG.       JSR EN|
00001A90: 44 50 54 53 0D 20 20 20  20 20 20 20 53 54 41 20  |DPTS.       STA |
00001AA0: 59 42 4F 54 0D 20 20 20  20 20 20 20 4A 53 52 20  |YBOT.       JSR |
00001AB0: 56 4C 49 4E 45 0D 20 20  20 20 20 20 20 4C 44 41  |VLINE.       LDA|
00001AC0: 20 58 50 4C 54 2B 31 0D  20 20 20 20 20 20 20 43  | XPLT+1.       C|
00001AD0: 4D 50 20 58 4D 49 44 2B  31 0D 20 20 20 20 20 20  |MP XMID+1.      |
00001AE0: 20 42 4E 45 20 4E 45 58  54 58 31 0D 20 20 20 20  | BNE NEXTX1.    |
00001AF0: 20 20 20 4C 44 41 20 58  50 4C 54 0D 20 20 20 20  |   LDA XPLT.    |
00001B00: 20 20 20 43 4D 50 20 58  4D 49 44 0D 20 20 20 20  |   CMP XMID.    |
00001B10: 20 20 20 42 45 51 20 43  4F 4E 54 0D 4E 45 58 54  |   BEQ CONT.NEXT|
00001B20: 58 31 20 49 4E 43 20 58  50 4C 54 0D 20 20 20 20  |X1 INC XPLT.    |
00001B30: 20 20 20 42 4E 45 20 53  4B 49 50 33 0D 20 20 20  |   BNE SKIP3.   |
00001B40: 20 20 20 20 49 4E 43 20  58 50 4C 54 2B 31 0D 53  |    INC XPLT+1.S|
00001B50: 4B 49 50 33 20 20 4A 4D  50 20 46 43 45 54 4C 50  |KIP3  JMP FCETLP|
00001B60: 0D 43 4F 4E 54 20 20 20  53 45 43 0D 20 20 20 20  |.CONT   SEC.    |
00001B70: 20 20 20 4C 44 41 20 58  50 4C 54 0D 20 20 20 20  |   LDA XPLT.    |
00001B80: 20 20 20 53 42 43 20 58  4D 49 4E 0D 20 20 20 20  |   SBC XMIN.    |
00001B90: 20 20 20 53 54 41 20 58  44 49 46 46 0D 20 20 20  |   STA XDIFF.   |
00001BA0: 20 20 20 20 4C 44 41 20  44 4C 54 41 58 33 0D 20  |    LDA DLTAX3. |
00001BB0: 20 20 20 20 20 20 42 45  51 20 46 49 4E 49 0D 20  |      BEQ FINI. |
00001BC0: 20 20 20 20 20 20 53 54  41 20 44 45 4C 54 41 58  |      STA DELTAX|
00001BD0: 0D 20 20 20 20 20 20 20  4C 44 41 20 44 4C 54 41  |.       LDA DLTA|
00001BE0: 59 33 0D 20 20 20 20 20  20 20 53 54 41 20 44 45  |Y3.       STA DE|
00001BF0: 4C 54 41 59 0D 20 20 20  20 20 20 20 4C 44 41 20  |LTAY.       LDA |
00001C00: 46 4C 41 47 33 0D 20 20  20 20 20 20 20 53 54 41  |FLAG3.       STA|
00001C10: 20 46 4C 41 47 0D 20 20  20 20 20 20 20 4C 44 41  | FLAG.       LDA|
00001C20: 20 59 4D 49 4E 0D 20 20  20 20 20 20 20 53 54 41  | YMIN.       STA|
00001C30: 20 59 42 41 53 45 0D 20  20 20 20 20 20 20 4A 53  | YBASE.       JS|
00001C40: 52 20 45 4E 44 50 54 53  0D 20 20 20 20 20 20 20  |R ENDPTS.       |
00001C50: 53 54 41 20 59 42 4F 54  0D 20 20 20 20 20 20 20  |STA YBOT.       |
00001C60: 53 45 43 0D 20 20 20 20  20 20 20 4C 44 41 20 58  |SEC.       LDA X|
00001C70: 50 4C 54 0D 20 20 20 20  20 20 20 53 42 43 20 58  |PLT.       SBC X|
00001C80: 4D 49 44 0D 20 20 20 20  20 20 20 53 54 41 20 58  |MID.       STA X|
00001C90: 44 49 46 46 0D 20 20 20  20 20 20 20 4C 44 41 20  |DIFF.       LDA |
00001CA0: 44 4C 54 41 58 32 0D 20  20 20 20 20 20 20 42 45  |DLTAX2.       BE|
00001CB0: 51 20 46 49 4E 49 0D 20  20 20 20 20 20 20 53 54  |Q FINI.       ST|
00001CC0: 41 20 44 45 4C 54 41 58  0D 20 20 20 20 20 20 20  |A DELTAX.       |
00001CD0: 4C 44 41 20 44 4C 54 41  59 32 0D 20 20 20 20 20  |LDA DLTAY2.     |
00001CE0: 20 20 53 54 41 20 44 45  4C 54 41 59 0D 20 20 20  |  STA DELTAY.   |
00001CF0: 20 20 20 20 4C 44 41 20  46 4C 41 47 32 0D 20 20  |    LDA FLAG2.  |
00001D00: 20 20 20 20 20 53 54 41  20 46 4C 41 47 0D 20 20  |     STA FLAG.  |
00001D10: 20 20 20 20 20 4C 44 41  20 59 4D 49 44 0D 20 20  |     LDA YMID.  |
00001D20: 20 20 20 20 20 53 54 41  20 59 42 41 53 45 0D 20  |     STA YBASE. |
00001D30: 20 20 20 20 20 20 4A 53  52 20 45 4E 44 50 54 53  |      JSR ENDPTS|
00001D40: 0D 20 20 20 20 20 20 20  53 54 41 20 59 54 4F 50  |.       STA YTOP|
00001D50: 0D 20 20 20 20 20 20 20  4A 53 52 20 56 4C 49 4E  |.       JSR VLIN|
00001D60: 45 0D 20 20 20 20 20 20  20 4C 44 41 20 58 50 4C  |E.       LDA XPL|
00001D70: 54 2B 31 0D 20 20 20 20  20 20 20 43 4D 50 20 58  |T+1.       CMP X|
00001D80: 4D 41 58 2B 31 0D 20 20  20 20 20 20 20 42 4E 45  |MAX+1.       BNE|
00001D90: 20 4E 45 58 54 58 32 0D  20 20 20 20 20 20 20 4C  | NEXTX2.       L|
00001DA0: 44 41 20 58 50 4C 54 0D  20 20 20 20 20 20 20 43  |DA XPLT.       C|
00001DB0: 4D 50 20 58 4D 41 58 0D  20 20 20 20 20 20 20 42  |MP XMAX.       B|
00001DC0: 45 51 20 46 49 4E 49 0D  4E 45 58 54 58 32 20 49  |EQ FINI.NEXTX2 I|
00001DD0: 4E 43 20 58 50 4C 54 0D  20 20 20 20 20 20 20 42  |NC XPLT.       B|
00001DE0: 4E 45 20 53 4B 49 50 34  0D 20 20 20 20 20 20 20  |NE SKIP4.       |
00001DF0: 49 4E 43 20 58 50 4C 54  2B 31 0D 53 4B 49 50 34  |INC XPLT+1.SKIP4|
00001E00: 20 20 4A 4D 50 20 43 4F  4E 54 0D 46 49 4E 49 20  |  JMP CONT.FINI |
00001E10: 20 20 4C 44 41 20 45 44  47 45 53 0D 20 20 20 20  |  LDA EDGES.    |
00001E20: 20 20 20 42 45 51 20 46  49 4E 49 53 48 0D 20 20  |   BEQ FINISH.  |
00001E30: 20 20 20 20 20 4A 53 52  20 4F 55 54 4C 4E 0D 20  |     JSR OUTLN. |
00001E40: 20 20 20 20 20 20 4A 53  52 20 53 57 41 50 32 33  |      JSR SWAP23|
00001E50: 0D 20 20 20 20 20 20 20  4A 53 52 20 4F 55 54 4C  |.       JSR OUTL|
00001E60: 4E 0D 20 20 20 20 20 20  20 4A 53 52 20 53 57 41  |N.       JSR SWA|
00001E70: 50 31 32 0D 20 20 20 20  20 20 20 4A 53 52 20 53  |P12.       JSR S|
00001E80: 57 41 50 32 33 0D 20 20  20 20 20 20 20 4A 53 52  |WAP23.       JSR|
00001E90: 20 53 57 41 50 31 32 0D  20 20 20 20 20 20 20 4A  | SWAP12.       J|
00001EA0: 53 52 20 4F 55 54 4C 4E  0D 46 49 4E 49 53 48 20  |SR OUTLN.FINISH |
00001EB0: 52 54 53 0D 2E 45 4E 44  0D                       |RTS..END.       |
; FACET - DRAW SHADED TRIANGULAR FACETS.
; AND STRAIGHT LINES..;.; RICHARD L. RYL
ANDER   11/4/84.;.; LOAD "ARITH.HEX" AND
 "GRAPH.HEX".; BEFORE USING.;.ORIGIN = $
C26F.RAM    = $034A.;.XPLT   = $033F.YPL
T   = $0341.NORM   = $C224.NOSCAL = $034
7.PLOT   = $C143.UNPLOT = $C146.;.MLPCND
 = $AC.MLPLER = $AD.PROD   = $AE.MULT   
= $C011.;.DVDND  = $FD.DVSOR  = $FB.QUOT
   = $FD.DIVIDE = $C025.;.      *=RAM.;.
XMIN   *=*+2.YMIN   *=*+1.XMID   *=*+2.Y
MID   *=*+1.XMAX   *=*+2.YMAX   *=*+1.YT
OP   *=*+1.YBOT   *=*+1.YBASE  *=*+1.DLT
AX1 *=*+2.DLTAX2 *=*+1.DLTAX3 *=*+1.DELT
AX *=*+1.DLTAY1 *=*+1.DLTAY2 *=*+1.DLTAY
3 *=*+1.DELTAY *=*+1.XDIFF  *=*+1.FLAG1 
 *=*+1.FLAG2  *=*+1.FLAG3  *=*+1.FLAG   
*=*+1.EDGES  *=*+1.ERROR  *=*+2.MODE   *
=*+1.COUNT  *=*+2.;.;.      *=ORIGIN.;.;
****************************************
*.;.; SCALE ALL Y COORDINATES FROM 0..23
9.; PSUEDO-COORDINATE RANGE TO 0..199.; 
TRUE SCREEN COORDINATE RANGE.;.SCALE  LD
Y #6.       LDA #$D5.       STA MLPCND.S
CLP   LDA YMIN,Y.       STA MLPLER.     
  JSR MULT.       STA YMIN,Y.       DEY.
       DEY.       DEY.       BPL SCLP.  
     RTS.;.;.;**************************
***************.;.; EXCHANGE 'MIN' AND '
MID' COORDINATES.;.SWAP12 LDY #2.LOOP1  
LDA XMIN,Y.       PHA.       LDA XMID,Y.
       STA XMIN,Y.       PLA.       STA 
XMID,Y.       DEY.       BPL LOOP1.     
  RTS.;.;*******************************
**********.;.; EXCHANGE 'MID' AND 'MAX' 
COORDINATES.;.SWAP23 LDY #2.LOOP2  LDA X
MID,Y.       PHA.       LDA XMAX,Y.     
  STA XMID,Y.       PLA.       STA XMAX,
Y.       DEY.       BPL LOOP2.       RTS
.;.;************************************
*****.;.; SORT COORDINATES ACCORDING TO 
X COMPONENTS.;.SORTX  LDX #2.SORTLP SEC.
       LDA XMID.       SBC XMIN.       L
DA XMID+1.       SBC XMIN+1.       BCS N
OSWP1.       JSR SWAP12.NOSWP1 DEX.     
  BEQ SORTED.       SEC.       LDA XMAX.
       SBC XMID.       LDA XMAX+1.      
 SBC XMID+1.       BCS SORTLP.       JSR
 SWAP23.       JMP SORTLP.SORTED RTS.;.;
****************************************
*.;.; DRAW A LINE BETWEEN XMIN,YMIN AND 
XMID,YMID.; USING FAST DDA (DIGITAL DIFF
ERENTIAL ANALYZER).; TECHNIQUE.;.LINE   
LDA #2        ; ENSURE XMAX IS.       ST
A XMAX+1    ; LARGEST BEFORE.       JSR 
SORTX     ; ORDERING 'MIN' AND 'MID'.   
    LDA NOSCAL.       BEQ OUTLN.       J
SR SCALE.OUTLN  JSR FINDXY    ; ENTRY PO
INT TO.       LDA XMIN       ; OUTLINE F
ACETS.       STA XPLT.       LDA XMIN+1.
       STA XPLT+1.       LDA YMIN.      
 STA YPLT.       LDA DLTAX1+1  ; CHECK F
OR DX>DY.       BNE STEPX.       SEC.   
    LDA DLTAX1.       SBC DLTAY1.       
BCS STEPX.STEPY  LDA DLTAY1.       STA E
RROR.       STA COUNT.       LSR ERROR. 
      SEC.       LDA DLTAX1.       SBC E
RROR.       STA ERROR.       LDA DLTAX1+
1.       SBC #0.       STA ERROR+1.     
  INC COUNT.LNLP1  LDA MODE      ; 0 = D
RAW, 1 = ERASE.       BNE ERASE1.       
JSR PLOT.       JMP SK1.ERASE1 JSR UNPLO
T.SK1    LDA FLAG1     ; 0 = POSITIVE SL
OPE.       BNE NSLOPE.       INC YPLT.  
     BNE SK2     ; ALWAYS BRANCH.NSLOPE 
DEC YPLT.SK2    BIT ERROR+1.       BMI S
K3.       INC XPLT.       BNE NOINC1.   
    INC XPLT+1.NOINC1 SEC.       LDA ERR
OR.       SBC DLTAY1.       STA ERROR.  
     LDA ERROR+1.       SBC #0.       ST
A ERROR+1.SK3    CLC.       LDA ERROR.  
     ADC DLTAX1.       STA ERROR.       
LDA ERROR+1.       ADC DLTAX1+1.       S
TA ERROR+1.       DEC COUNT.       BNE L
NLP1.       RTS.;.STEPX  LDA DLTAX1.    
   STA ERROR.       STA COUNT.       LDA
 DLTAX1+1.       STA ERROR+1.       STA 
COUNT+1.       LSR ERROR+1.       ROR ER
ROR.       SEC.       LDA DLTAY1.       
SBC ERROR.       STA ERROR.       LDA #0
.       SBC ERROR+1.       STA ERROR+1.L
NLP2  LDA MODE.       BNE ERASE2.       
JSR PLOT.       JMP SKP1.ERASE2 JSR UNPL
OT.SKP1   INC XPLT.       BNE NOINC2.   
    INC XPLT+1.NOINC2 BIT ERROR+1.      
 BMI SKP3.       LDA FLAG1.       BNE NG
SLP.       INC YPLT.       BNE SKP2    ;
 ALWAYS BRANCH.NGSLP  DEC YPLT.SKP2   SE
C.       LDA ERROR.       SBC DLTAX1.   
    STA ERROR.       LDA ERROR+1.       
SBC DLTAX1+1.       STA ERROR+1.SKP3   C
LC.       LDA ERROR.       ADC DLTAY1.  
     STA ERROR.       LDA ERROR+1.      
 ADC #0.       STA ERROR+1.       SEC.  
     LDA COUNT.       SBC #1.       STA 
COUNT.       BCS TEST.       DEC COUNT+1
.TEST   BIT COUNT+1.       BPL LNLP2.   
    RTS.;.;*****************************
************.; DRAW A SHADED VERTICAL LI
NE AT.; XPLT FROM YTOP TO YBOT.;.VLINE  
SEC         ; MAKE SURE YTOP>YBOT.      
 LDA YTOP.       SBC YBOT.       BCS DRA
W.       LDA YTOP.       PHA.       LDA 
YBOT.       STA YTOP.       PLA.       S
TA YBOT.DRAW   LDA YTOP.       STA YPLT.
       JSR NORM    ; PLOT A SHADE-WEIGHT
ED.       LDA YTOP    ; PIXEL CHECKING O
NLY.       CMP YBOT    ; FOR SHADE STYLE
.       BEQ DONE.       DEC YTOP.       
JMP DRAW.DONE   RTS.;.;*****************
************************.;.; FIND ENDPOI
NTS FOR VERTICAL LINES.; BETWEEN FACET E
DGES.;.ENDPTS LDA XDIFF.       STA MLPCN
D.       LDA DELTAY.       STA MLPLER.  
     JSR MULT.       STA DVDND+1.       
LDA PROD.       STA DVDND.       LDA #0.
       STA DVSOR+1.       LDA DELTAX.   
    STA DVSOR.       JSR DIVIDE.       L
DA FLAG.       BNE NEGSLP.       CLC.   
    LDA YBASE.       ADC QUOT.       BCC
 SKIP2.NEGSLP SEC.       LDA YBASE.     
  SBC QUOT.SKIP2  RTS.;.;***************
**************************.;.; FIND COOR
DINATE DIFFERENCES.;.; ALL "DELTA X" VAL
UES POSITIVE,.; SINGLE PRECISION (JUST L
OWER BYTE).;.FINDXY SEC.       LDA XMID.
       SBC XMIN.       STA DLTAX1.      
 LDA XMID+1.       SBC XMIN+1.       STA
 DLTAX1+1.       SEC.       LDA XMAX.   
    SBC XMID.       STA DLTAX2.       SE
C.       LDA XMAX.       SBC XMIN.      
 STA DLTAX3.;.; USE ABS(DELTA Y) VALUES,
.; FLAGS INDICATE SLOPE OF LIMIT LINES.;
.       LDA #$00.       STA FLAG1.      
 STA FLAG2.       STA FLAG3.       SEC. 
      LDA YMID.       SBC YMIN.       BC
S STORE1.       INC FLAG1.       LDA YMI
N.       SBC YMID.STORE1 STA DLTAY1.    
   SEC.       LDA YMAX.       SBC YMID. 
      BCS STORE2.       INC FLAG2.      
 LDA YMID.       SBC YMAX.STORE2 STA DLT
AY2.       SEC.       LDA YMAX.       SB
C YMIN.       BCS STORE3.       INC FLAG
3.       LDA YMIN.       SBC YMAX.STORE3
 STA DLTAY3.       RTS.;.;**************
***************************.;. DRAW A SH
ADED TRIANGULAR FACET.;.FACET  JSR SORTX
.       LDA NOSCAL.       BEQ YSOK.     
  JSR SCALE.YSOK   JSR FINDXY.       LDA
 XMIN.       STA XPLT.       LDA XMIN+1.
       STA XPLT+1.FCETLP SEC.       LDA 
XPLT.       SBC XMIN.       STA XDIFF.  
     LDA DLTAX1.       BEQ CONT.       S
TA DELTAX.       LDA DLTAY1.       STA D
ELTAY.       LDA FLAG1.       STA FLAG. 
      LDA YMIN.       STA YBASE.       J
SR ENDPTS.       STA YTOP.       LDA DLT
AX3.       BEQ CONT.       STA DELTAX.  
     LDA DLTAY3.       STA DELTAY.      
 LDA FLAG3.       STA FLAG.       JSR EN
DPTS.       STA YBOT.       JSR VLINE.  
     LDA XPLT+1.       CMP XMID+1.      
 BNE NEXTX1.       LDA XPLT.       CMP X
MID.       BEQ CONT.NEXTX1 INC XPLT.    
   BNE SKIP3.       INC XPLT+1.SKIP3  JM
P FCETLP.CONT   SEC.       LDA XPLT.    
   SBC XMIN.       STA XDIFF.       LDA 
DLTAX3.       BEQ FINI.       STA DELTAX
.       LDA DLTAY3.       STA DELTAY.   
    LDA FLAG3.       STA FLAG.       LDA
 YMIN.       STA YBASE.       JSR ENDPTS
.       STA YBOT.       SEC.       LDA X
PLT.       SBC XMID.       STA XDIFF.   
    LDA DLTAX2.       BEQ FINI.       ST
A DELTAX.       LDA DLTAY2.       STA DE
LTAY.       LDA FLAG2.       STA FLAG.  
     LDA YMID.       STA YBASE.       JS
R ENDPTS.       STA YTOP.       JSR VLIN
E.       LDA XPLT+1.       CMP XMAX+1.  
     BNE NEXTX2.       LDA XPLT.       C
MP XMAX.       BEQ FINI.NEXTX2 INC XPLT.
       BNE SKIP4.       INC XPLT+1.SKIP4
  JMP CONT.FINI   LDA EDGES.       BEQ F
INISH.       JSR OUTLN.       JSR SWAP23
.       JSR OUTLN.       JSR SWAP12.    
   JSR SWAP23.       JSR SWAP12.       J
SR OUTLN.FINISH RTS..END.
C64 Preview

> CLICK IMAGE PREVIEW FOR FULL MODAL