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 >
Wrap
File List
|
2022-10-26
|
11KB
|
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