home *** CD-ROM | disk | FTP | other *** search
/ 64'er / 64ER_CD.iso / 89xx / 8907a.d64 / line.src (.txt) < prev    next >
Commodore BASIC  |  1995-03-30  |  3KB  |  67 lines

  1. 80 OPEN1,8,2,"LINE.OBJ,P,W"
  2. 85 SYS9*4096:.OPT O1:*=$C000
  3. 86 .ASC "USING PLOT,3:PROGRAM:"
  4. 90 CKCOM = $AEFD:FRMNUM = $AD8A
  5. 100 JSR FRMNUM:JSR $BC9B:LDA $65:STA XL0:LDA $64:STA XH0:JSR $E200:STX Y0
  6. 110 JSR CKCOM:JSR FRMNUM:JSR $BC9B:LDA $65:STA XL1:LDA $64:STA XH1
  7. 114 JSR $E200:STX Y1:JSR $E200:STX MODUS
  8. 140 LDA XL1:CMP XL0:BNE L200
  9. 142 LDA XH1:CMP XH0:BNE L200
  10. 144 LDA Y1:CMP Y0:BNE L200
  11. 150 ; X1/Y1 = X0/Y0
  12. 160 LDA MODUS:PHA:LDA XL0:LDX XH0:LDY Y0:JMP PLOT2
  13. 190 ; *** LINIE ***
  14. 200 L200 LDA #0:STA DYH:LDA Y1:SEC:SBC Y0:STA DYL:STA ABSDY:BCS L210
  15. 204 EOR #255:STA ABSDY:INC ABSDY:LDA #255:STA DYH; ZWEIERKOMPLEMENT
  16. 210 L210 LDA XL1:SEC:SBC XL0:STA DXL:STA ABSDXL
  17. 211 LDA XH1:SBC XH0:STA DXH:STA ABSDXH:BCS L220
  18. 212 LDA DXL:EOR #255:CLC:ADC #1:STA ABSDXL
  19. 214 LDA DXH:EOR #255:ADC #0:STA ABSDXH
  20. 218 ; *** MAX (ABSDX,ABSDY) ***
  21. 220 L220 LDA #$80:STA MID:LDA #0:STA LOW
  22. 222 LDA ABSDXH:BNE XGROESSER:LDA ABSDXL:CMP ABSDY:BCS XGROESSER
  23. 224 JMP YGROESSER
  24. 230 ; *** DX > DY ***
  25. 232 XGROESSER LDA DYH:LDY DYL:JSR $B395:LDX ABL+1:LDY ABL+2:JSR $BBD4
  26. 234 LDA DXH:LDY DXL:JSR $B395
  27. 235 LDA ABL+1:LDY ABL+2:JSR $BB0F
  28. 236 LDA $61:CLC:ADC #16:STA $61:JSR $BC9B
  29. 240 LDA DXH:BPL LINX:JSR TAUSCHEN
  30. 250 ; *** LINIE ZIEHEN ***
  31. 252 LINX LDA XL0:STA XL:LDA XH0:STA XH:LDA Y0:STA YB
  32. 254 L254 JSR PLOT:INC XL:BNE L256:INC XH
  33. 256 L256 LDA LOW:CLC:ADC $65:STA LOW:LDA MID:ADC $64:STA MID
  34. 257 LDA YB:ADC $63:STA YB
  35. 258 SEC:LDA XL1:SBC XL:LDA XH1:SBC XH:BCS L254:RTS
  36. 270 ; *** DY > DX ***
  37. 272 YGROESSER LDA DXH:LDY DXL:JSR $B395:LDX ABL+1:LDY ABL+2:JSR $BBD4
  38. 274 LDA DYH:LDY DYL:JSR $B395
  39. 275 LDA ABL+1:LDY ABL+2:JSR $BB0F
  40. 276 LDA $61:CLC:ADC #16:STA $61:JSR $BC9B
  41. 280 LDA DYH:BPL LINY:JSR TAUSCHEN
  42. 290 ; *** LINIE ZIEHEN ***
  43. 292 LINY LDA XL0:STA XL:LDA XH0:STA XH:LDA Y0:STA YB
  44. 294 L294 JSR PLOT
  45. 296 LDA LOW:CLC:ADC $65:STA LOW:LDA MID:ADC $64:STA MID
  46. 297 LDA XL:ADC $63:STA XL:LDA XH:ADC $62:STA XH
  47. 298 L298 INC YB:LDA YB:CMP Y1:BCC L294:RTS
  48. 320 ; *** X0/Y0 UND X1/Y1 TAUSCHEN ***
  49. 322 TAUSCHEN LDA XL1:PHA:LDA XL0:STA XL1:PLA:STA XL0
  50. 323 LDA XH1:PHA:LDA XH0:STA XH1:PLA:STA XH0
  51. 324 LDA Y0:PHA:LDA Y1:STA Y0:PLA:STA Y1::RTS
  52. 350 ; PLOTROUTINE ANSPRINGEN
  53. 352 PLOT LDA MODUS:PHA:LDA XL:LDX XH:LDY YB:PLOT2 JMP $FFFF
  54. 480 ABL LDA ABL2
  55. 500 ; *** LOCAL VARIABLE ***
  56. 502 ABL2 .BYTE $FF,0,0,0,0
  57. 504 LOW .BYTE 00:MID .BYTE 00
  58. 506 XL .BYTE 00:XH .BYTE 00
  59. 508 XL0 .BYTE 00:XL1 .BYTE 00
  60. 510 XH0 .BYTE 00:XH1 .BYTE 00
  61. 512 Y0 .BYTE 00:Y1 .BYTE 00:YB .BYTE 00
  62. 514 DYL .BYTE 00:DYH .BYTE 00
  63. 516 DXL .BYTE 00:DXH .BYTE 00
  64. 518 ABSDXL .BYTE 00:ABSDXH .BYTE 00:ABSDY .BYTE 00
  65. 520 MODUS .BYTE 00
  66. 610 .END:CLOSE1
  67.