home *** CD-ROM | disk | FTP | other *** search
File List | 1994-01-01 | 10.3 KB | 364 lines |
- 1000 * = $c000
- 1010 .out10"@:v24"
- 1020 cinv = $314
- 1030 nminv = $318
- 1040 jmp start
- 1050 jmp sioopen
- 1060 jmp sioclose
- 1070 jmp siotest
- 1080 jmp sioget
- 1090 jmp sioput
- 1100 jmp sioputm
- 1110 start php
- 1120 jsr cpright
- 1130 sei
- 1140 lda #<nirq
- 1150 sta cinv
- 1160 lda #>nirq
- 1170 sta cinv+1
- 1180 lda #1
- 1190 sta $d01a
- 1200 lda #$7f
- 1210 sta $dc0d
- 1220 sta $dd0d
- 1230 lda #5
- 1240 sta syscnt
- 1250 lda #$50
- 1260 sta $dc0e
- 1270 sta $dc0f
- 1280 lda #<nnmi
- 1290 sta nminv
- 1300 lda #>nnmi
- 1310 sta nminv+1
- 1320 lda #<nnmid
- 1330 sta $fffa
- 1340 lda #>nnmid
- 1350 sta $fffb
- 1360 lda #0
- 1370 sta nmiflag
- 1380 plp
- 1390 startend rts
- 1400 ovec .byt 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- 1410 syscnt = $298
- 1420 nmiflag= $a9
- 1430 srqmask= $29d
- 1440 ctrlreg= $293
- 1450 iwinx = $29b
- 1460 irinx = $29c
- 1470 iptr = $f7
- 1480 chrput = $ffd2
- 1490 bdltab .byt $6a $35 $9b $cd $67 $33 $1a
- 1500 bdhtab .byt $6 $3 $1 $0 $0 $0 $0
- 1510 cvtab .byt $00 $80 $40 $c0 $20 $a0 $60 $e0
- 1520 .byt $10 $90 $50 $d0 $30 $b0 $70 $f0
- 1530 .byt $08 $88 $48 $c8 $28 $a8 $68 $e8
- 1540 .byt $18 $98 $58 $d8 $38 $b8 $78 $f8
- 1550 .byt $04 $84 $44 $c4 $24 $a4 $64 $e4
- 1560 .byt $14 $94 $54 $d4 $34 $b4 $74 $f4
- 1570 .byt $0c $8c $4c $cc $2c $ac $6c $ec
- 1580 .byt $1c $9c $5c $dc $3c $bc $7c $fc
- 1590 .byt $02 $82 $42 $c2 $22 $a2 $62 $e2
- 1600 .byt $12 $92 $52 $d2 $32 $b2 $72 $f2
- 1610 .byt $0a $8a $4a $ca $2a $aa $6a $ea
- 1620 .byt $1a $9a $5a $da $3a $ba $7a $fa
- 1630 .byt $06 $86 $46 $c6 $26 $a6 $66 $e6
- 1640 .byt $16 $96 $56 $d6 $36 $b6 $76 $f6
- 1650 .byt $0e $8e $4e $ce $2e $ae $6e $ee
- 1660 .byt $1e $9e $5e $de $3e $be $7e $fe
- 1670 .byt $01 $81 $41 $c1 $21 $a1 $61 $e1
- 1680 .byt $11 $91 $51 $d1 $31 $b1 $71 $f1
- 1690 .byt $09 $89 $49 $c9 $29 $a9 $69 $e9
- 1700 .byt $19 $99 $59 $d9 $39 $b9 $79 $f9
- 1710 .byt $05 $85 $45 $c5 $25 $a5 $65 $e5
- 1720 .byt $15 $95 $55 $d5 $35 $b5 $75 $f5
- 1730 .byt $0d $8d $4d $cd $2d $ad $6d $ed
- 1740 .byt $1d $9d $5d $dd $3d $bd $7d $fd
- 1750 .byt $03 $83 $43 $c3 $23 $a3 $63 $e3
- 1760 .byt $13 $93 $53 $d3 $33 $b3 $73 $f3
- 1770 .byt $0b $8b $4b $cb $2b $ab $6b $eb
- 1780 .byt $1b $9b $5b $db $3b $bb $7b $fb
- 1790 .byt $07 $87 $47 $c7 $27 $a7 $67 $e7
- 1800 .byt $17 $97 $57 $d7 $37 $b7 $77 $f7
- 1810 .byt $0f $8f $4f $cf $2f $af $6f $ef
- 1820 .byt $1f $9f $5f $df $3f $bf $7f $ff
- 1830 nnmi19 pha
- 1840 lda $dd01
- 1850 and #$bf ;neg $40
- 1860 sta $dd01
- 1870 jmp nnmi1
- 1880 nirq lda #1
- 1890 sta $d019
- 1900 dec syscnt
- 1910 bne nirq0
- 1920 lda #5
- 1930 sta syscnt
- 1940 jsr $ffea
- 1950 nirq0 jsr $ffea
- 1960 lda $cc
- 1970 bne nirq2
- 1980 dec $cd
- 1990 bne nirq2
- 2000 lda #17
- 2010 sta $cd
- 2020 ldy $d3
- 2030 lsr $cf
- 2040 ldx $287
- 2050 lda ($d1),y
- 2060 bcs nirq1
- 2070 inc $cf
- 2080 sta $ce
- 2090 jsr $ea24
- 2100 lda ($f3),y
- 2110 sta $287
- 2120 ldx $286
- 2130 lda $ce
- 2140 nirq1 eor #$80
- 2150 jsr $ea1c
- 2160 nirq2 jsr $ea87
- 2170 reti pla
- 2180 tay
- 2190 pla
- 2200 tax
- 2210 pla
- 2220 rti
- 2230 restore txa
- 2240 pha
- 2250 tya
- 2260 pha
- 2270 lda 1
- 2280 pha
- 2290 ora #7
- 2300 sta 1
- 2310 jsr $f6bc
- 2320 jsr $ffe1
- 2330 beq restore1
- 2340 pla
- 2350 sta 1
- 2360 jmp reti
- 2370 restore1 lda #1
- 2380 sta 198
- 2390 lda #147
- 2400 sta 631
- 2410 jmp ($a002)
- 2420 nnmid sei
- 2430 jmp (nminv)
- 2440 nnmi pha
- 2450 nnmi1 lda #$7f
- 2460 sta $dd0d
- 2470 bit $dd0d
- 2480 bpl restore
- 2490 lda nmiflag
- 2500 bmi srqint
- 2510 sta $dd0e
- 2520 lda #$88
- 2530 sta $dd0d
- 2540 lda #$80
- 2550 sta nmiflag
- 2560 pla
- 2570 rti
- 2580 srqint txa
- 2590 ldx $dd0c
- 2600 pha
- 2610 lda #$40
- 2620 sta $dd0e
- 2630 lda $dd01
- 2640 ora #$40
- 2650 sta $dd01
- 2660 lda #$17
- 2670 sta nmiflag
- 2680 lda #$90
- 2690 sta $dd0e
- 2700 bit $dd0d
- 2710 sta $dd0d
- 2720 tya
- 2730 pha
- 2740 ldy iwinx
- 2750 iny
- 2760 cpy irinx
- 2770 retih beq reti
- 2780 lda cvtab,x
- 2790 sty iwinx
- 2800 dey
- 2810 sta (iptr),y
- 2820 lda ctrlreg
- 2830 and #$08
- 2840 beq retih
- 2850 tax
- 2860 tya
- 2870 sbc irinx
- 2880 tay
- 2890 cpx #$10
- 2900 beq sioswsh
- 2910 cpy #$f0
- 2920 bne sioswsh
- 2930 lda #2
- 2940 and ctrlreg
- 2950 eor $dd01
- 2960 and #2
- 2970 bne sioswsh
- 2980 lda #2
- 2990 eor $dd01
- 3000 sta $dd01
- 3010 sioswsh jmp reti
- 3020 sioopen ;y/a=baud, x=proto
- 3030 cpy #6
- 3040 bcc sioopn1
- 3050 bne sioopn2 ;wrong rate
- 3060 lda #<nnmi19
- 3070 sta nminv
- 3080 lda #>nnmi19
- 3090 bne sioopn3
- 3100 sioopn1 lda #<nnmi
- 3110 sta nminv
- 3120 lda #>nnmi
- 3130 sioopn3 sta nminv+1
- 3140 lda bdhtab,y
- 3150 pha
- 3160 lda bdltab,y
- 3170 tay
- 3180 pla
- 3190 sty $dc04 ;a = baudrate
- 3200 sty $dd04
- 3210 sta $dc05
- 3220 sta $dd05
- 3230 stx ctrlreg; controlreg.
- 3240 lda #$20 ;b = 2*bitcount
- 3250 sta $dc06
- 3260 lda #0
- 3270 sta $dc07
- 3280 sta iwinx
- 3290 sta irinx
- 3300 sta srqmask
- 3310 sta $dd0e
- 3320 lda #$17
- 3330 sta nmiflag
- 3340 lda $dd0c ;int ack
- 3350 lda #$90
- 3360 sta $dd0d ;ena flag int
- 3370 lda #$46 ;mask handshake
- 3380 sta $dd03
- 3390 txa
- 3400 and #6
- 3410 eor #$40
- 3420 sta $dd01
- 3430 lda #<endprg
- 3440 sta iptr
- 3450 lda #>endprg
- 3460 sta iptr+1
- 3470 sioopn2 rts
- 3480 sioclose ; disable serial
- 3490 lda #$7f
- 3500 sta $dc0d
- 3510 sta $dd0d
- 3520 lda ctrlreg
- 3530 and #6
- 3540 eor #$46
- 3550 sta $dd01
- 3560 rts
- 3570 siotest ; test if character
- 3580 pha
- 3590 lda irinx
- 3600 cmp iwinx
- 3610 bne siotest1
- 3620 sec
- 3630 bcs sioteste
- 3640 siotest1 clc
- 3650 sioteste pla
- 3660 rts
- 3670 sioget ; get char from line
- 3680 ldy irinx
- 3690 siogetl cpy iwinx
- 3700 beq siogetl
- 3710 lda (iptr),y
- 3720 inc irinx
- 3730 bit ctrlreg
- 3740 bvc siogete
- 3750 and #$7f
- 3760 siogete tay
- 3770 lda iwinx
- 3780 sbc irinx
- 3790 cmp #$0f
- 3800 bne siogeten
- 3810 lda #2
- 3820 and ctrlreg
- 3830 eor $dd01
- 3840 and #2
- 3850 beq siogeten
- 3860 lda #2
- 3870 eor $dd01
- 3880 sta $dd01
- 3890 siogeten rts
- 3900 sioputm ; put char to line
- 3910 tay
- 3920 lda ctrlreg
- 3930 lsr
- 3940 lsr
- 3950 lsr
- 3955 lda #$20
- 3960 sioputw bit $dd01
- 3970 beq sioputw0
- 3980 bcc sioputw
- 3990 bcs sioputwe
- 4000 sioputw0 bcs sioputw
- 4010 sioputwe tya
- 4020 sioput bit ctrlreg
- 4030 bvc sioput1
- 4040 ora #$80
- 4050 bit ctrlreg
- 4060 bpl sioput1
- 4070 tay
- 4080 eor pari-$80,y
- 4090 lsr ctrlreg
- 4100 bcs sioput0
- 4110 eor #$80
- 4120 sioput0 rol ctrlreg
- 4130 sioput1 tay
- 4140 lda cvtab,y
- 4150 lsr
- 4160 tax
- 4170 lda #$ff
- 4180 ror
- 4190 tay
- 4200 lda srqmask
- 4210 beq sioput3
- 4220 sioput2 bit $dc0d
- 4230 beq sioput2
- 4240 sioput3 php
- 4250 sei
- 4260 lda #$59
- 4270 sta $dc0f
- 4280 lda #$51
- 4290 sta $dc0e
- 4300 stx $dc0c
- 4310 sty $dc0c
- 4320 lda #$2
- 4330 sta srqmask
- 4340 plp
- 4350 rts
- 4360 pari
- 4370 .byt $80 0 0 $80 0 $80 $80 0
- 4380 .byt 0 $80 $80 0 $80 0 0 $80
- 4390 .byt 0 $80 $80 0 $80 0 0 $80
- 4400 .byt $80 0 0 $80 0 $80 $80 0
- 4410 .byt 0 $80 $80 0 $80 0 0 $80
- 4420 .byt $80 0 0 $80 0 $80 $80 0
- 4430 .byt $80 0 0 $80 0 $80 $80 0
- 4440 .byt 0 $80 $80 0 $80 0 0 $80
- 4450 .byt 0 $80 $80 0 $80 0 0 $80
- 4460 .byt $80 0 0 $80 0 $80 $80 0
- 4470 .byt $80 0 0 $80 0 $80 $80 0
- 4480 .byt 0 $80 $80 0 $80 0 0 $80
- 4490 .byt $80 0 0 $80 0 $80 $80 0
- 4500 .byt 0 $80 $80 0 $80 0 0 $80
- 4510 .byt 0 $80 $80 0 $80 0 0 $80
- 4520 .byt $80 0 0 $80 0 $80 $80 0
- 4530 right .byt 14 8 / fastv24 (c) by m. conrad, 1993/ 13 13 0
- 4540 cpright ldy #0
- 4550 cploop lda right,y
- 4560 beq cpend
- 4570 jsr chrput
- 4580 iny
- 4590 bne cploop
- 4600 cpend rts
- 4610 endprg
-