home *** CD-ROM | disk | FTP | other *** search
- .$1432 [A9 00 ] LDA #$00 ;SET THE NUMERATOR FRACTIONAL PORTION TO .0
- .$1434 [85 60 ] STA $60
- .$1436 [85 61 ] STA $61
- .$1438 [20 CF 13] JSR $13CF ;32-BIT DIVIDE
- .$143B [68 ] PLA ;IF THE SIGN OF THE RESULT IS SUPPOSED TO BE
- .$143C [10 19 ] BPL $1457 ; POSITIVE, THEN EXIT
- .$143E [38 ] SEC ;IF THE SIGN OF THE RESULT IS NEGATIVE, TAKE
- .$143F [A9 00 ] LDA #$00 ; GET THE 2'S COMPLEMENT OF THE POSITIVE
- .$1441 [E5 64 ] SBC $64 ; RESULT
- .$1443 [85 64 ] STA $64
- .$1445 [A9 00 ] LDA #$00
- .$1447 [E5 65 ] SBC $65
- .$1449 [85 65 ] STA $65
- .$144B [A9 00 ] LDA #$00
- .$144D [E5 66 ] SBC $66
- .$144F [85 66 ] STA $66
- .$1451 [A9 00 ] LDA #$00
- .$1453 [E5 67 ] SBC $67
- .$1455 [85 67 ] STA $67
- .$1457 [60 ] RTS
-
- ;*****************************************************************************
- ;* GET THE ╪ AND ┘ PLOTTING INCREMENTS AND THE PIXELS-TO-PLOT COUNT *
- ;*****************************************************************************
-
- .$1458 [A5 0C ] LDA $0C ;GET ┴┬╙(─╪)
- .$145A [A4 0D ] LDY $0D
- .$145C [20 1A 14] JSR $141A
- .$145F [85 FA ] STA $FA
- .$1461 [84 FB ] STY $FB
-
- .$1463 [A5 10 ] LDA $10 ;GET ┴┬╙(─┘)
- .$1465 [A4 11 ] LDY $11
- .$1467 [20 1A 14] JSR $141A
- .$146A [85 FC ] STA $FC
- .$146C [84 FD ] STY $FD
-
- .$146E [A5 FC ] LDA $FC ;COMPARE ┴┬╙(─┘) TO ┴┬╙(─╪)
- .$1470 [C5 FA ] CMP $FA
- .$1472 [A5 FD ] LDA $FD
- .$1474 [E5 FB ] SBC $FB
- .$1476 [B0 44 ] BCS $14BC ;IF ┴┬╙(─┘) >= ┴┬╙(─╪) THEN BRANCH AHEAD
-
- .$1478 [A5 FA ] LDA $FA ;SET PIXELS-TO-PLOT COUNT TO ┴┬╙(─╪)
- .$147A [85 12 ] STA $12
- .$147C [85 50 ] STA $50
- .$147E [A5 FB ] LDA $FB
- .$1480 [85 13 ] STA $13
- .$1482 [85 51 ] STA $51 ;SET THE NUMERATOR (TOP) TO ─┘ AND THE
- .$1484 [A5 FC ] LDA $FC ; DENOMINATOR (BOTTOM) TO ┴┬╙(─╪)
- .$1486 [85 62 ] STA $62
- .$1488 [A5 FD ] LDA $FD
- .$148A [85 63 ] STA $63
- .$148C [A5 11 ] LDA $11 ;GET THE SIGN OF ─┘ - WILL BE THE SIGN OF DIV
- .$148E [20 31 14] JSR $1431 ;PERFORM THE SIGNED FRACTIONAL DIVISION
- .$1491 [A2 03 ] LDX #$03 ;STORE THE RESULT IN THE ┘ INCREMENT VALUE
- .$1493 [B5 64 ] LDA $64,X
- .$1495 [95 0E ] STA $0E,X
- .$1497 [CA ] DEX
- .$1498 [10 F9 ] BPL $1493
- .$149A [A5 0D ] LDA $0D ;GET THE ╪ INCREMENT
- .$149C [30 0A ] BMI $14A8
- .$149E [A9 00 ] LDA #$00 ;IF ─╪ IS POSITIVE, ╪ INC IS +1
- .$14A0 [85 0D ] STA $0D ; (NOTE THAT ─╪ CANNOT BE 0 HERE SO WE DON'T
- .$14A2 [A9 01 ] LDA #$01 ; HAVE TO WORRY ABOUT THAT CASE)
- .$14A4 [85 0C ] STA $0C
- .$14A6 [D0 06 ] BNE $14AE
- .$14A8 [A9 FF ] LDA #$FF ;IF ─╪ IS NEGATIVE, ╪ INC IS -1
- .$14AA [85 0D ] STA $0D
- .$14AC [85 0C ] STA $0C
-
- .$14AE [38 ] SEC ;TAKE THE NEGATIVE OF THE NUMBER OF PIXELS
- .$14AF [A9 00 ] LDA #$00 ; TO PLOT AND EXIT
- .$14B1 [E5 12 ] SBC $12 ;╔ DON'T REMEMBER EXACTLY WHY ╔ USE THE
- .$14B3 [85 12 ] STA $12 ; NEGATIVE; THERE IS NOT MUCH OF A SPEED
- .$14B5 [A9 00 ] LDA #$00 ; IMPROVEMENT. ╧H WELL, T'IS DONE.
- .$14B7 [E5 13 ] SBC $13
- .$14B9 [85 13 ] STA $13
- .$14BB [60 ] RTS
-
- .$14BC [A5 FC ] LDA $FC ;SET THE PIXELS-TO-PLOT COUNT TO ┴┬╙(─┘)
- .$14BE [85 12 ] STA $12
- .$14C0 [85 50 ] STA $50
- .$14C2 [A5 FD ] LDA $FD
- .$14C4 [85 13 ] STA $13
- .$14C6 [85 51 ] STA $51 ;SET THE NUMERATOR (TOP) TO ─╪ AND THE
- .$14C8 [A5 FA ] LDA $FA ; DENOMINATOR(BOTTOM) TO ┴┬╙(─┘)
- .$14CA [85 62 ] STA $62
- .$14CC [A5 FB ] LDA $FB
- .$14CE [85 63 ] STA $63
- .$14D0 [A5 0D ] LDA $0D ;GET THE SIGN OF ─╪ - WILL BE THE SIGN OF DIV
- .$14D2 [20 31 14] JSR $1431 ;DO THE 32-BIT SIGNED FRACTIONAL DIVISION
- .$14D5 [A2 03 ] LDX #$03 ;STORE THE RESULT IN THE ╪ INCREMENT
- .$14D7 [B5 64 ] LDA $64,X
- .$14D9 [95 0A ] STA $0A,X
- .$14DB [CA ] DEX
- .$14DC [10 F9 ] BPL $14D7
- .$14DE [4C EA 14] JMP $14EA ;JUMP OVER THE NEXT SECTION
- ;-------
- .$14E1 [2C FF FF] BIT $FFFF ;╘HIS SECTION CONTAINED JUNK BEFORE AND ╔
- .$14E4 [2C FF FF] BIT $FFFF ; DON'T KNOW HOW IT GOT HERE. ╔ REPLACED
- .$14E7 [2C FF FF] BIT $FFFF ; IT WITH ┬╔╘S AND NOW JUMP OVER IT.
- ;-------
- .$14EA [A5 11 ] LDA $11
- .$14EC [30 0A ] BMI $14F8
- .$14EE [A9 00 ] LDA #$00 ;IF ─┘ IS POSITIVE THEN ┘ INC IS +1
- .$14F0 [85 11 ] STA $11 ; (WE DO NOT HAVE TO WORRY ABOUT THE CASE
- .$14F2 [A9 01 ] LDA #$01 ; OF ─┘ BEING ZERO SINCE THEN THE INCREMENT
- .$14F4 [85 10 ] STA $10 ; WOULD NOT BE IMPORTANT)
- .$14F6 [D0 06 ] BNE $14FE
- .$14F8 [A9 FF ] LDA #$FF ;IF ─┘ IS NEGATIVE THEN ┘ INC IS -1
- .$14FA [85 11 ] STA $11
- .$14FC [85 10 ] STA $10
- .$14FE [4C AE 14] JMP $14AE ;JUMP BACK TO THE EXIT
-
- ;*****************************************************************************
- ;* MAIN ROUTINE: DRAW LINE OR SET PIXEL CURSOR POSITION *
- ;*****************************************************************************
-
- .$1501 [B0 07 ] BCS $150A ;GOTO DRAW ROUTINE IF .├=1
- .$1503 [85 8B ] STA $8B ;STORE X AND Y PIXEL CURSOR COORDINATES
- .$1505 [86 8C ] STX $8C
- .$1507 [84 8D ] STY $8D
- .$1509 [60 ] RTS ;EXIT SET PIXEL CURSOR
-
- .$150A [85 04 ] STA $04 ;SAVE DRAW-TO COORDINATES
- .$150C [86 05 ] STX $05
- .$150E [84 08 ] STY $08
- .$1510 [A2 07 ] LDX #$07 ;CLEAR $0A-$0D AND $0E-$11
- .$1512 [A9 00 ] LDA #$00
- .$1514 [95 0A ] STA $0A,X
- .$1516 [CA ] DEX
- .$1517 [10 FB ] BPL $1514
-
- .$1519 [38 ] SEC ;GET DX VALUE = ─RAW╘O╪ - ╨IXEL├URSOR╪
- .$151A [A5 04 ] LDA $04 ; DX IS AT [$0D $0C . $0B $0A]
- .$151C [E5 8B ] SBC $8B
- .$151E [85 0C ] STA $0C
- .$1520 [A5 05 ] LDA $05
- .$1522 [E5 8C ] SBC $8C
- .$1524 [85 0D ] STA $0D
-
- .$1526 [38 ] SEC ;GET DY VALUE = ─RAW╘O┘ - ╨IXEL├URSOR┘
- .$1527 [A5 08 ] LDA $08 ; DY IS AT [$11 $10 . $0F $0E]
- .$1529 [E5 8D ] SBC $8D
- .$152B [85 10 ] STA $10
- .$152D [A9 00 ] LDA #$00
- .$152F [B0 02 ] BCS $1533
- .$1531 [A9 FF ] LDA #$FF
- .$1533 [85 11 ] STA $11
-
- .$1535 [20 58 14] JSR $1458 ;CALCULATE THE ╪ AND ┘ PLOTTING INCREMENTS
-
- .$1538 [A5 8B ] LDA $8B ;SET THE DRAWING ╪ POSITION TO X+0.5
- .$153A [85 04 ] STA $04 ; ╪ IS AT [$05 $04 . $03 $02]
- .$153C [A5 8C ] LDA $8C
- .$153E [85 05 ] STA $05
- .$1540 [A9 80 ] LDA #$80
- .$1542 [85 03 ] STA $03
- .$1544 [85 07 ] STA $07
- .$1546 [A9 00 ] LDA #$00
- .$1548 [85 02 ] STA $02
- .$154A [85 06 ] STA $06
- .$154C [A5 8D ] LDA $8D ;SET THE DRAWING ┘ POSITION TO Y+0.5
- .$154E [85 08 ] STA $08 ; ┘ IS AT [$09 $08 . $07 $06]
- .$1550 [A9 00 ] LDA #$00
- .$1552 [85 09 ] STA $09
-
- .$1554 [A5 04 ] LDA $04 ;GET THE PIXEL ╪ AND ┘ COORDINATES
- .$1556 [A6 05 ] LDX $05
- .$1558 [A4 08 ] LDY $08
- .$155A [20 A8 13] JSR $13A8 ;PLOT THE PIXEL
- .$155D [A5 12 ] LDA $12 ;CHECK THE PIXELS-TO-PLOT COUNT FOR ZERO
- .$155F [05 13 ] ORA $13
- .$1561 [F0 3B ] BEQ $159E ;IF NO MORE PIXELS TO PLOT, EXIT LOOP
- .$1563 [18 ] CLC ;ADD THE ╪ INCREMENT TO THE ╪ COORDINATE
- .$1564 [A5 02 ] LDA $02
- .$1566 [65 0A ] ADC $0A
- .$1568 [85 02 ] STA $02
- .$156A [A5 03 ] LDA $03
- .$156C [65 0B ] ADC $0B
- .$156E [85 03 ] STA $03
- .$1570 [A5 04 ] LDA $04
- .$1572 [65 0C ] ADC $0C
- .$1574 [85 04 ] STA $04
- .$1576 [A5 05 ] LDA $05
- .$1578 [65 0D ] ADC $0D
- .$157A [85 05 ] STA $05
- .$157C [18 ] CLC ;ADD THE ┘ INCREMENT TO THE ┘ COORDINATE
- .$157D [A5 06 ] LDA $06
- .$157F [65 0E ] ADC $0E
- .$1581 [85 06 ] STA $06
- .$1583 [A5 07 ] LDA $07
- .$1585 [65 0F ] ADC $0F
- .$1587 [85 07 ] STA $07
- .$1589 [A5 08 ] LDA $08
- .$158B [65 10 ] ADC $10
- .$158D [85 08 ] STA $08
- .$158F [A5 09 ] LDA $09
- .$1591 [65 11 ] ADC $11
- .$1593 [85 09 ] STA $09
- .$1595 [E6 12 ] INC $12 ;INCREMENT THE PIXELS TO PLOT COUNT
- .$1597 [D0 BB ] BNE $1554 ; NOTE THAT IT IS STORED AS THE NEGATIVE OF
- .$1599 [E6 13 ] INC $13 ; THE COUNT
- .$159B [4C 54 15] JMP $1554 ;REPEAT PLOTTING LOOP
-
- .$159E [A5 04 ] LDA $04 ;EXIT - SET THE PIXEL CURSOR POSITION TO THE
- .$15A0 [A6 05 ] LDX $05 ; LAST PIXEL PLOTTED ON THE LINE
- .$15A2 [A4 08 ] LDY $08
- .$15A4 [4C 03 15] JMP $1503
-
-