@@ -45,10 +45,11 @@ historical = 0 ; define to 1 to make this source produce an exact image of
45
45
toward24 = MODERN ; Enable "Toward 2400" new modem chrout/chkin/nmi routines by George Hug
46
46
xmodfix = MODERN ; Enable XModem last char fix
47
47
nohayes12 = MODERN ; Don't downgrade to 1200 baud to send commands on Hayes modems
48
+ autocrlf = MODERN ; ASCII converts CR to CR/LF
48
49
49
50
v55plus = 1 ; Enable the bug fix and minor changes made in 5.5+
50
51
hack24 = 0 ; Enable 2400 baud hack from alwyz (superceded by toward24 fix)
51
- swiftlib = 0 ; MODERN ; Experimental/unfinished
52
+ swiftlib = MODERN ; Experimental/unfinished
52
53
53
54
.if historical
54
55
.feature pc_assignment
@@ -275,7 +276,29 @@ pnt37 lda #$00
275
276
sta $96
276
277
rts
277
278
nop
278
- pnt38 jmp pnt122
279
+ pnt38
280
+ .if swiftlib
281
+ lda swiftout
282
+ beq pnt38c
283
+ tya
284
+ pha
285
+ jsr slGetByte
286
+ bcs pnt38a
287
+ ldy #0
288
+ cpx #0
289
+ bne pnt38b
290
+ pnt38a
291
+ lda #0
292
+ ldy #2
293
+ pnt38b
294
+ sty $96
295
+ sta pnt10
296
+ pla
297
+ tay
298
+ rts
299
+ pnt38c
300
+ .endif
301
+ jmp pnt122
279
302
nop
280
303
nop
281
304
pnt39 cmp pnt13
@@ -1166,9 +1189,8 @@ mnback
1166
1189
jmp main2
1167
1190
mainop
1168
1191
.if swiftlib
1169
- ldx motype
1170
- cpx #mtswiftl
1171
- bne :+
1192
+ ldx swiftout
1193
+ beq :+
1172
1194
jsr slPutByte ; .A=byte -> .CS=err#.A
1173
1195
jmp :++
1174
1196
:
@@ -1223,9 +1245,8 @@ specc2
1223
1245
stx 53272
1224
1246
specc3
1225
1247
.if swiftlib
1226
- ldx motype
1227
- cpx #mtswiftl
1228
- beq :+
1248
+ ldx swiftout
1249
+ bne :+
1229
1250
.endif
1230
1251
ldx #modemln
1231
1252
jsr chkin
@@ -1698,15 +1719,22 @@ drcont
1698
1719
ldy #0
1699
1720
drcon2 jsr getin
1700
1721
jsr chrout
1722
+ .if swiftlib
1723
+ .else
1701
1724
lda #$fd
1702
1725
sta $a2
1703
1726
drcodl lda $a2
1704
1727
bne drcodl
1728
+ .endif
1705
1729
iny
1706
1730
cpy #27
1707
1731
bcc drcon2
1708
1732
lda #$0d
1709
1733
jsr chrout
1734
+ .if autocrlf
1735
+ lda #$0a
1736
+ jsr chrout
1737
+ .endif
1710
1738
jsr clrchn
1711
1739
lda #$0d
1712
1740
jsr chrout
@@ -2629,7 +2657,28 @@ xmmget
2629
2657
lda #0
2630
2658
sta $a1
2631
2659
sta $a2
2660
+ .if swiftlib
2661
+ lda swiftout
2662
+ bne xmogt0
2663
+ .endif
2632
2664
jsr $f04f ;"chkin" modem
2665
+ .if swiftlib
2666
+ clc
2667
+ bcc xmogt1
2668
+ xmogt0
2669
+ tya
2670
+ pha
2671
+ jsr slGetByte
2672
+ bcs xmmgt2s
2673
+ cpx #0
2674
+ beq xmmgt2s
2675
+ tax
2676
+ pla
2677
+ tay
2678
+ txa
2679
+ ldx #0
2680
+ rts
2681
+ .endif
2633
2682
xmogt1
2634
2683
jsr $f14e ;rs232 input
2635
2684
tax
@@ -2639,15 +2688,30 @@ xmogt1
2639
2688
txa
2640
2689
ldx #0
2641
2690
rts
2691
+ .if swiftlib
2692
+ xmmgt2s
2693
+ pla
2694
+ tay
2695
+ .endif
2642
2696
xmmgt2
2643
2697
jsr xchkcm
2644
2698
lda $a1
2645
2699
cmp xmodel
2700
+ .if swiftlib
2701
+ bcc xmmgt3
2702
+ .else
2646
2703
bcc xmogt1
2704
+ .endif
2647
2705
jsr clrchn
2648
2706
and #0
2649
2707
ldx #1
2650
2708
rts
2709
+ .if swiftlib
2710
+ xmmgt3
2711
+ lda swiftout
2712
+ beq xmogt1
2713
+ bne xmogt0
2714
+ .endif
2651
2715
xincbd
2652
2716
lda #':'
2653
2717
jsr goobad
@@ -2702,8 +2766,8 @@ xmoex4
2702
2766
xmorcv
2703
2767
tsx
2704
2768
stx xmostk
2705
- jsr 61310
2706
- jsr 61310
2769
+ jsr $ef7e
2770
+ jsr $ef7e
2707
2771
jsr xmoset
2708
2772
beq xmorcp
2709
2773
xmorc0
@@ -3214,7 +3278,7 @@ dwwait
3214
3278
lda $a2
3215
3279
cmp #85
3216
3280
bcc dwwait
3217
- jsr 61310
3281
+ jsr $ef7e
3218
3282
jsr p49173
3219
3283
jsr p49155
3220
3284
jmp xfrend
@@ -3271,7 +3335,7 @@ sndfil
3271
3335
tay
3272
3336
jsr setlfs
3273
3337
jsr open
3274
- ldx #$05
3338
+ ldx #modemln
3275
3339
jsr chkout
3276
3340
lda #15
3277
3341
jsr chrout
@@ -3313,9 +3377,12 @@ dskmo
3313
3377
jsr chkin
3314
3378
jsr getin
3315
3379
timdel
3380
+ .if swiftlib
3381
+ .else
3316
3382
bit bufflg
3317
3383
bvc chstat
3318
3384
jsr tmsetl
3385
+ .endif
3319
3386
chstat
3320
3387
pha
3321
3388
lda status
@@ -3333,12 +3400,18 @@ chstat
3333
3400
pla
3334
3401
jmp chkkey
3335
3402
dskmo1
3336
- ldx #05
3403
+ ldx #modemln
3337
3404
jsr chkout
3338
3405
pla
3339
3406
ldx grasfl
3340
3407
beq dskmo2
3341
3408
jsr catosa
3409
+ .if autocrlf
3410
+ cmp #$0d
3411
+ bne dskmo2
3412
+ jsr chrout
3413
+ lda #$0a
3414
+ .endif
3342
3415
dskmo2
3343
3416
jsr chrout
3344
3417
chkkey
@@ -5992,6 +6065,10 @@ losve2 jsr getin
5992
6065
jmp clrchn
5993
6066
;
5994
6067
selmdm
6068
+ .if swiftlib
6069
+ lda #0
6070
+ sta swiftout
6071
+ .endif
5995
6072
lda motype
5996
6073
bne selmd2
5997
6074
md1650
@@ -6072,6 +6149,8 @@ paradm
6072
6149
jmp mnewsd
6073
6150
.if swiftlib
6074
6151
swiftlnk
6152
+ lda #1
6153
+ sta swiftout
6075
6154
lda #mtswiftl
6076
6155
sta motype
6077
6156
jmp mnewsd
@@ -6538,9 +6617,8 @@ f7chs1
6538
6617
lda #bps12
6539
6618
:
6540
6619
.if swiftlib
6541
- ldx motype
6542
- cpx #mtswiftl
6543
- bne :+
6620
+ ldx swiftout
6621
+ beq :+
6544
6622
cmp #bpsslmax
6545
6623
bcc :++
6546
6624
:
@@ -6687,9 +6765,8 @@ bdaddc .byt $81,$02,$d0,$e5,$60
6687
6765
parabd .byt '%s',0
6688
6766
baud
6689
6767
.if swiftlib
6690
- lda motype
6691
- cmp #mtswiftl
6692
- beq slset
6768
+ lda swiftout
6769
+ bne slset
6693
6770
jsr slShutdown
6694
6771
lda baudrt
6695
6772
cmp #bpsmax
@@ -6806,9 +6883,8 @@ baud4
6806
6883
baudfin
6807
6884
.if toward24
6808
6885
.if swiftlib
6809
- lda motype
6810
- cmp #mtswiftl
6811
- beq baudfin2
6886
+ lda swiftout
6887
+ bne baudfin2
6812
6888
.endif
6813
6889
jsr rssetup ; use George Hug's NMI/chkin/receive kernel patches
6814
6890
; but for some reason his chrout/bsout doesn't work for 2400
@@ -6853,15 +6929,22 @@ op2txt .byt '1650 compatibles '
6853
6929
.byt 'SwiftLink/Hayes '
6854
6930
.endif
6855
6931
op3txt .byt 'Punter',' XModem'
6932
+ .if swiftlib
6933
+ swiftout .byt 0 ; 1 = output using swiftlink lib
6934
+ .endif
6856
6935
mt1650 = 0
6857
6936
mthes = 1
6858
6937
mt1660 = 2
6859
6938
mt1660cd = 3
6860
6939
mtm1604 = 4
6861
6940
mt1670 = 5
6862
6941
mtparadm = 6
6942
+ .if swiftlib
6863
6943
mtswiftl = 7
6864
6944
mtlast = 7
6945
+ .else
6946
+ mtlast = 6
6947
+ .endif
6865
6948
prmtab
6866
6949
lda #$0d
6867
6950
jsr chrout
@@ -6954,8 +7037,28 @@ notogm lda #<ttntxt
6954
7037
ldy #>ttntxt
6955
7038
bne prtogm
6956
7039
;
7040
+ .if swiftlib
7041
+ nckout
7042
+ cpx #5
7043
+ bne :++
7044
+ ldx swiftout
7045
+ beq :+
7046
+ ldx #2
7047
+ stx $9a
7048
+ rts
7049
+ :
7050
+ ldx #5
7051
+ :
7052
+ jmp $f250
7053
+ .endif
6957
7054
prtvec .byt $ca ,$f1
6958
7055
outvec ;change chrout vec.
7056
+ .if swiftlib
7057
+ lda #<nckout
7058
+ sta $0320
7059
+ lda #>nckout
7060
+ sta $0321
7061
+ .endif
6959
7062
lda $0326
6960
7063
cmp #<printv
6961
7064
bne outv1
@@ -6995,7 +7098,28 @@ outndl
6995
7098
outv3 bcc outv4
6996
7099
pla
6997
7100
jmp (prtvec)
6998
- outv4 lsr a
7101
+ outv4
7102
+ .if swiftlib
7103
+ lda swiftout
7104
+ beq :+
7105
+ pla
7106
+ sta $9e
7107
+ txa
7108
+ pha
7109
+ tya
7110
+ pha
7111
+ lda $9e
7112
+ jsr slPutByte
7113
+ pla
7114
+ tay
7115
+ pla
7116
+ tax
7117
+ lda $9e
7118
+ rts
7119
+ :
7120
+ lda $9a
7121
+ .endif
7122
+ lsr a
6999
7123
pla
7000
7124
sta $9e
7001
7125
txa
@@ -7083,6 +7207,7 @@ motype .byt $05 ; make Hayes default
7083
7207
;4=vip mpp 1064
7084
7208
;5=1670/hayes
7085
7209
;6=paradyne dtu
7210
+ ;7=swiftlink rs-232
7086
7211
;
7087
7212
.if toward24
7088
7213
.include "newmodem2400.s"
0 commit comments