home *** CD-ROM | disk | FTP | other *** search
/ 64'er 1994 June / 64er_Magazin_94-06_1994_Markt__Technik_de_Side_A.d64 / v24.lst < prev    next >
File List  |  2022-10-26  |  11KB  |  364 lines

  1.  1000  *         = $c000
  2.  1010  .out10"@:v24"
  3.  1020  cinv      = $314
  4.  1030  nminv     = $318
  5.  1040            jmp start
  6.  1050            jmp sioopen
  7.  1060            jmp sioclose
  8.  1070            jmp siotest
  9.  1080            jmp sioget
  10.  1090            jmp sioput
  11.  1100            jmp sioputm
  12.  1110  start     php
  13.  1120            jsr cpright
  14.  1130            sei
  15.  1140            lda #<nirq
  16.  1150            sta cinv
  17.  1160            lda #>nirq
  18.  1170            sta cinv+1
  19.  1180            lda #1
  20.  1190            sta $d01a
  21.  1200            lda #$7f
  22.  1210            sta $dc0d
  23.  1220            sta $dd0d
  24.  1230            lda #5
  25.  1240            sta syscnt
  26.  1250            lda #$50
  27.  1260            sta $dc0e
  28.  1270            sta $dc0f
  29.  1280            lda #<nnmi
  30.  1290            sta nminv
  31.  1300            lda #>nnmi
  32.  1310            sta nminv+1
  33.  1320            lda #<nnmid
  34.  1330            sta $fffa
  35.  1340            lda #>nnmid
  36.  1350            sta $fffb
  37.  1360            lda #0
  38.  1370            sta nmiflag
  39.  1380            plp
  40.  1390  startend  rts
  41.  1400  ovec .byt 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
  42.  1410  syscnt = $298
  43.  1420  nmiflag= $a9
  44.  1430  srqmask= $29d
  45.  1440  ctrlreg= $293
  46.  1450  iwinx  = $29b
  47.  1460  irinx  = $29c
  48.  1470  iptr   = $f7
  49.  1480  chrput = $ffd2
  50.  1490  bdltab .byt $6a $35 $9b $cd $67 $33 $1a
  51.  1500  bdhtab .byt $6  $3  $1  $0  $0  $0  $0
  52.  1510  cvtab  .byt $00 $80 $40 $c0 $20 $a0 $60 $e0
  53.  1520         .byt $10 $90 $50 $d0 $30 $b0 $70 $f0
  54.  1530         .byt $08 $88 $48 $c8 $28 $a8 $68 $e8
  55.  1540         .byt $18 $98 $58 $d8 $38 $b8 $78 $f8
  56.  1550         .byt $04 $84 $44 $c4 $24 $a4 $64 $e4
  57.  1560         .byt $14 $94 $54 $d4 $34 $b4 $74 $f4
  58.  1570         .byt $0c $8c $4c $cc $2c $ac $6c $ec
  59.  1580         .byt $1c $9c $5c $dc $3c $bc $7c $fc
  60.  1590         .byt $02 $82 $42 $c2 $22 $a2 $62 $e2
  61.  1600         .byt $12 $92 $52 $d2 $32 $b2 $72 $f2
  62.  1610         .byt $0a $8a $4a $ca $2a $aa $6a $ea
  63.  1620         .byt $1a $9a $5a $da $3a $ba $7a $fa
  64.  1630         .byt $06 $86 $46 $c6 $26 $a6 $66 $e6
  65.  1640         .byt $16 $96 $56 $d6 $36 $b6 $76 $f6
  66.  1650         .byt $0e $8e $4e $ce $2e $ae $6e $ee
  67.  1660         .byt $1e $9e $5e $de $3e $be $7e $fe
  68.  1670         .byt $01 $81 $41 $c1 $21 $a1 $61 $e1
  69.  1680         .byt $11 $91 $51 $d1 $31 $b1 $71 $f1
  70.  1690         .byt $09 $89 $49 $c9 $29 $a9 $69 $e9
  71.  1700         .byt $19 $99 $59 $d9 $39 $b9 $79 $f9
  72.  1710         .byt $05 $85 $45 $c5 $25 $a5 $65 $e5
  73.  1720         .byt $15 $95 $55 $d5 $35 $b5 $75 $f5
  74.  1730         .byt $0d $8d $4d $cd $2d $ad $6d $ed
  75.  1740         .byt $1d $9d $5d $dd $3d $bd $7d $fd
  76.  1750         .byt $03 $83 $43 $c3 $23 $a3 $63 $e3
  77.  1760         .byt $13 $93 $53 $d3 $33 $b3 $73 $f3
  78.  1770         .byt $0b $8b $4b $cb $2b $ab $6b $eb
  79.  1780         .byt $1b $9b $5b $db $3b $bb $7b $fb
  80.  1790         .byt $07 $87 $47 $c7 $27 $a7 $67 $e7
  81.  1800         .byt $17 $97 $57 $d7 $37 $b7 $77 $f7
  82.  1810         .byt $0f $8f $4f $cf $2f $af $6f $ef
  83.  1820         .byt $1f $9f $5f $df $3f $bf $7f $ff
  84.  1830  nnmi19    pha
  85.  1840            lda $dd01
  86.  1850            and #$bf ;neg $40
  87.  1860            sta $dd01
  88.  1870            jmp nnmi1
  89.  1880  nirq      lda #1
  90.  1890            sta $d019
  91.  1900            dec syscnt
  92.  1910            bne nirq0
  93.  1920            lda #5
  94.  1930            sta syscnt
  95.  1940            jsr $ffea
  96.  1950  nirq0     jsr $ffea
  97.  1960            lda $cc
  98.  1970            bne nirq2
  99.  1980            dec $cd
  100.  1990            bne nirq2
  101.  2000            lda #17
  102.  2010            sta $cd
  103.  2020            ldy $d3
  104.  2030            lsr $cf
  105.  2040            ldx $287
  106.  2050            lda ($d1),y
  107.  2060            bcs nirq1
  108.  2070            inc $cf
  109.  2080            sta $ce
  110.  2090            jsr $ea24
  111.  2100            lda ($f3),y
  112.  2110            sta $287
  113.  2120            ldx $286
  114.  2130            lda $ce
  115.  2140  nirq1     eor #$80
  116.  2150            jsr $ea1c
  117.  2160  nirq2     jsr $ea87
  118.  2170  reti      pla
  119.  2180            tay
  120.  2190            pla
  121.  2200            tax
  122.  2210            pla
  123.  2220            rti
  124.  2230  restore   txa
  125.  2240            pha
  126.  2250            tya
  127.  2260            pha
  128.  2270            lda 1
  129.  2280            pha
  130.  2290            ora #7
  131.  2300            sta 1
  132.  2310            jsr $f6bc
  133.  2320            jsr $ffe1
  134.  2330            beq restore1
  135.  2340            pla
  136.  2350            sta 1
  137.  2360            jmp reti
  138.  2370  restore1  lda #1
  139.  2380            sta 198
  140.  2390            lda #147
  141.  2400            sta 631
  142.  2410            jmp ($a002)
  143.  2420  nnmid     sei
  144.  2430            jmp (nminv)
  145.  2440  nnmi      pha
  146.  2450  nnmi1     lda #$7f
  147.  2460            sta $dd0d
  148.  2470            bit $dd0d
  149.  2480            bpl restore
  150.  2490            lda nmiflag
  151.  2500            bmi srqint
  152.  2510            sta $dd0e
  153.  2520            lda #$88
  154.  2530            sta $dd0d
  155.  2540            lda #$80
  156.  2550            sta nmiflag
  157.  2560            pla
  158.  2570            rti
  159.  2580  srqint    txa
  160.  2590            ldx $dd0c
  161.  2600            pha
  162.  2610            lda #$40
  163.  2620            sta $dd0e
  164.  2630            lda $dd01
  165.  2640            ora #$40
  166.  2650            sta $dd01
  167.  2660            lda #$17
  168.  2670            sta nmiflag
  169.  2680            lda #$90
  170.  2690            sta $dd0e
  171.  2700            bit $dd0d
  172.  2710            sta $dd0d
  173.  2720            tya
  174.  2730            pha
  175.  2740            ldy iwinx
  176.  2750            iny
  177.  2760            cpy irinx
  178.  2770  retih     beq reti
  179.  2780            lda cvtab,x
  180.  2790            sty iwinx
  181.  2800            dey
  182.  2810            sta (iptr),y
  183.  2820            lda ctrlreg
  184.  2830            and #$08
  185.  2840            beq retih
  186.  2850            tax
  187.  2860            tya
  188.  2870            sbc irinx
  189.  2880            tay
  190.  2890            cpx #$10
  191.  2900            beq sioswsh
  192.  2910            cpy #$f0
  193.  2920            bne sioswsh
  194.  2930            lda #2
  195.  2940            and ctrlreg
  196.  2950            eor $dd01
  197.  2960            and #2
  198.  2970            bne sioswsh
  199.  2980            lda #2
  200.  2990            eor $dd01
  201.  3000            sta $dd01
  202.  3010  sioswsh   jmp reti
  203.  3020  sioopen ;y/a=baud, x=proto
  204.  3030            cpy #6
  205.  3040            bcc sioopn1
  206.  3050            bne sioopn2 ;wrong rate
  207.  3060            lda #<nnmi19
  208.  3070            sta nminv
  209.  3080            lda #>nnmi19
  210.  3090            bne sioopn3
  211.  3100  sioopn1   lda #<nnmi
  212.  3110            sta nminv
  213.  3120            lda #>nnmi
  214.  3130  sioopn3   sta nminv+1
  215.  3140            lda bdhtab,y
  216.  3150            pha
  217.  3160            lda bdltab,y
  218.  3170            tay
  219.  3180            pla
  220.  3190            sty $dc04 ;a = baudrate
  221.  3200            sty $dd04
  222.  3210            sta $dc05
  223.  3220            sta $dd05
  224.  3230            stx ctrlreg; controlreg.
  225.  3240            lda #$20 ;b = 2*bitcount
  226.  3250            sta $dc06
  227.  3260            lda #0
  228.  3270            sta $dc07
  229.  3280            sta iwinx
  230.  3290            sta irinx
  231.  3300            sta srqmask
  232.  3310            sta $dd0e
  233.  3320            lda #$17
  234.  3330            sta nmiflag
  235.  3340            lda $dd0c ;int ack
  236.  3350            lda #$90
  237.  3360            sta $dd0d ;ena flag int
  238.  3370            lda #$46 ;mask handshake
  239.  3380            sta $dd03
  240.  3390            txa
  241.  3400            and #6
  242.  3410            eor #$40
  243.  3420            sta $dd01
  244.  3430            lda #<endprg
  245.  3440            sta iptr
  246.  3450            lda #>endprg
  247.  3460            sta iptr+1
  248.  3470  sioopn2   rts
  249.  3480  sioclose  ; disable serial
  250.  3490            lda #$7f
  251.  3500            sta $dc0d
  252.  3510            sta $dd0d
  253.  3520            lda ctrlreg
  254.  3530            and #6
  255.  3540            eor #$46
  256.  3550            sta $dd01
  257.  3560            rts
  258.  3570  siotest   ; test if character
  259.  3580            pha
  260.  3590            lda irinx
  261.  3600            cmp iwinx
  262.  3610            bne siotest1
  263.  3620            sec
  264.  3630            bcs sioteste
  265.  3640  siotest1  clc
  266.  3650  sioteste  pla
  267.  3660            rts
  268.  3670  sioget    ; get char from line
  269.  3680            ldy irinx
  270.  3690  siogetl   cpy iwinx
  271.  3700            beq siogetl
  272.  3710            lda (iptr),y
  273.  3720            inc irinx
  274.  3730            bit ctrlreg
  275.  3740            bvc siogete
  276.  3750            and #$7f
  277.  3760  siogete   tay
  278.  3770            lda iwinx
  279.  3780            sbc irinx
  280.  3790            cmp #$0f
  281.  3800            bne siogeten
  282.  3810            lda #2
  283.  3820            and ctrlreg
  284.  3830            eor $dd01
  285.  3840            and #2
  286.  3850            beq siogeten
  287.  3860            lda #2
  288.  3870            eor $dd01
  289.  3880            sta $dd01
  290.  3890  siogeten  rts
  291.  3900  sioputm   ; put char to line
  292.  3910            tay
  293.  3920            lda ctrlreg
  294.  3930            lsr
  295.  3940            lsr
  296.  3950            lsr
  297.  3955            lda #$20
  298.  3960  sioputw   bit $dd01
  299.  3970            beq sioputw0
  300.  3980            bcc sioputw
  301.  3990            bcs sioputwe
  302.  4000  sioputw0  bcs sioputw
  303.  4010  sioputwe  tya
  304.  4020  sioput    bit ctrlreg
  305.  4030            bvc sioput1
  306.  4040            ora #$80
  307.  4050            bit ctrlreg
  308.  4060            bpl sioput1
  309.  4070            tay
  310.  4080            eor pari-$80,y
  311.  4090            lsr ctrlreg
  312.  4100            bcs sioput0
  313.  4110            eor #$80
  314.  4120  sioput0   rol ctrlreg
  315.  4130  sioput1   tay
  316.  4140            lda cvtab,y
  317.  4150            lsr
  318.  4160            tax
  319.  4170            lda #$ff
  320.  4180            ror
  321.  4190            tay
  322.  4200            lda srqmask
  323.  4210            beq sioput3
  324.  4220  sioput2   bit $dc0d
  325.  4230            beq sioput2
  326.  4240  sioput3   php
  327.  4250            sei
  328.  4260            lda #$59
  329.  4270            sta $dc0f
  330.  4280            lda #$51
  331.  4290            sta $dc0e
  332.  4300            stx $dc0c
  333.  4310            sty $dc0c
  334.  4320            lda #$2
  335.  4330            sta srqmask
  336.  4340            plp
  337.  4350            rts
  338.  4360  pari
  339.  4370   .byt $80 0 0 $80 0 $80 $80 0
  340.  4380   .byt 0 $80 $80 0 $80 0 0 $80
  341.  4390   .byt 0 $80 $80 0 $80 0 0 $80
  342.  4400   .byt $80 0 0 $80 0 $80 $80 0
  343.  4410   .byt 0 $80 $80 0 $80 0 0 $80
  344.  4420   .byt $80 0 0 $80 0 $80 $80 0
  345.  4430   .byt $80 0 0 $80 0 $80 $80 0
  346.  4440   .byt 0 $80 $80 0 $80 0 0 $80
  347.  4450   .byt 0 $80 $80 0 $80 0 0 $80
  348.  4460   .byt $80 0 0 $80 0 $80 $80 0
  349.  4470   .byt $80 0 0 $80 0 $80 $80 0
  350.  4480   .byt 0 $80 $80 0 $80 0 0 $80
  351.  4490   .byt $80 0 0 $80 0 $80 $80 0
  352.  4500   .byt 0 $80 $80 0 $80 0 0 $80
  353.  4510   .byt 0 $80 $80 0 $80 0 0 $80
  354.  4520   .byt $80 0 0 $80 0 $80 $80 0
  355.  4530  right .byt 14 8 /    fastv24  (c) by m. conrad, 1993/ 13 13 0
  356.  4540  cpright     ldy #0
  357.  4550  cploop      lda right,y
  358.  4560              beq cpend
  359.  4570              jsr chrput
  360.  4580              iny
  361.  4590              bne cploop
  362.  4600  cpend       rts
  363.  4610  endprg
  364.