File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -7,6 +7,7 @@ CBM_APPLE := 1
77KIM_APPLE := 1
88CONFIG_SCRTCH_ORDER := 1
99CONFIG_PRINT_CR := 1 ; print CR when line end reached
10+ CONFIG_IO_MSB := 1 ; IO is 7 bit, MSB may be randomly set
1011; INPUTBUFFER > $0100
1112
1213ZP_START = $ 55
Original file line number Diff line number Diff line change @@ -5,6 +5,9 @@ CBM1_APPLE := 1
55CBM_APPLE := 1
66CONFIG_DATAFLAG := 1
77CONFIG_BUG_GET_ERROR := 1 ; treat GET error like READ error
8+ CONFIG_PRINTNULLS := 1 ; whether PRINTNULLS does anything
9+ ; minor: just code order
10+ CONFIG_INPUTBUFFER_ORDER := 1 ; ldx/ldy or ldy/ldx
811.else
912CONFIG_CBM_ALL := 1
1013CONFIG_11 := 1
@@ -20,7 +23,7 @@ CONFIG_DATAFLAG := 1
2023
2124; common:
2225CONFIG_FILE := 1 ; support PRINT#, INPUT#, GET#, CMD
23-
26+ CONFIG_NO_CR := 1 ; terminal doesn't need explicit CRs on line ends
2427
2528.ifdef CBM1
2629ZP_START = $ 65
Original file line number Diff line number Diff line change 11CONFIG_SMALL := 1
2- CONFIG_SCRTCH_ORDER := 1
32CONFIG_NULL := 1
43CONFIG_PRINT_CR := 1 ; print CR when line end reached
54CONFIG_DATAFLAG := 1
65
6+ ; minor: just code order
7+ CONFIG_SCRTCH_ORDER := 1
8+
79ZP_START = $ 65
810
911JMPADRS = DSCLEN + 1
Original file line number Diff line number Diff line change @@ -125,7 +125,7 @@ L4098:
125125 sta Z03
126126.endif
127127 sta LASTPT+1
128- .if .defined(CONFIG_NULL) || .defined(CBM1 )
128+ .if .defined(CONFIG_NULL) || .defined(CONFIG_PRINTNULLS )
129129 sta Z15
130130.endif
131131.ifndef CONFIG_11
Original file line number Diff line number Diff line change 2929SYNERR4:
3030 jmp SYNERR
3131RESPERR:
32- .ifdef CONFIG_CBM_ALL
32+ .ifdef CONFIG_FILE
3333 lda Z03
3434 beq LCA8F
3535 ldx #ERR_BADDATA
4343 ldy OLDTEXT+1
4444 sta TXTPTR
4545 sty TXTPTR+1
46- LE920 :
46+ RTS20 :
4747 rts
4848
4949; ----------------------------------------------------------------------------
@@ -128,10 +128,8 @@ LCAF8:
128128.endif
129129.ifdef KBD
130130 bmi L2ABE
131- .endif
132-
133- .ifndef KBD
134- .ifdef CONFIG_FILE
131+ .else
132+ .ifdef CONFIG_FILE
135133 lda Z03
136134 beq LCB0C
137135 lda Z96
@@ -140,38 +138,41 @@ LCAF8:
140138 jsr LCAD6
141139 jmp DATA
142140LCB0C:
143- .endif
141+ .endif
144142 lda INPUTBUFFER
145143 bne L2ABE
146- .ifdef CONFIG_FILE
144+ .ifdef CONFIG_FILE
147145 lda Z03
148146 bne LCAF8
149- .endif
150- .ifdef CONFIG_CBM1_PATCHES
147+ .endif
148+ .ifdef CONFIG_CBM1_PATCHES
151149 jmp PATCH1
152- .else
150+ .else
153151 clc
154152 jmp CONTROL_C_TYPED
155- .endif
153+ .endif
156154.endif
157155
158156NXIN:
159157.ifdef KBD
160158 jsr LFDDA
161- bmi LE920
159+ bmi RTS20
162160 pla
163161 jmp LE86C
164- .endif
165- .ifndef KBD
166- .ifdef CONFIG_FILE
162+ .else
163+ .ifdef CONFIG_FILE
167164 lda Z03
168165 bne LCB21
169- .endif
170- jsr OUTQUES
166+ .endif
167+ jsr OUTQUES ; '?'
171168 jsr OUTSP
172169LCB21:
173170 jmp INLIN
174- .endif /* KBD */
171+ .endif
172+
173+ ; ----------------------------------------------------------------------------
174+ ; "GETC" STATEMENT
175+ ; ----------------------------------------------------------------------------
175176.ifdef KBD
176177GETC:
177178 jsr CONINT
@@ -223,25 +224,25 @@ PROCESS_INPUT_ITEM:
223224 jsr CHRGOT
224225 bne INSTART
225226 bit INPUTFLG
226- .ifndef CONFIG_SMALL
227+ .ifndef CONFIG_SMALL ; GET
227228 bvc L2AF0
228229 jsr MONRDKEY
229- .ifdef APPLE
230+ .ifdef CONFIG_IO_MSB
230231 and #$7F
231- .endif
232+ .endif
232233 sta INPUTBUFFER
233- .ifdef CBM1
234+ .ifdef CONFIG_INPUTBUFFER_ORDER
234235 ldy #>(INPUTBUFFER-1 )
235236 ldx #<(INPUTBUFFER-1 )
236- .else
237+ .else
237238 ldx #<(INPUTBUFFER-1 )
238239 ldy #>(INPUTBUFFER-1 )
239- .endif
240+ .endif
240241 bne L2AF8
241242L2AF0:
242243.endif
243244 bmi FINDATA
244- .ifdef CONFIG_CBM_ALL
245+ .ifdef CONFIG_FILE
245246 lda Z03
246247 bne LCB64
247248.endif
@@ -261,20 +262,20 @@ INSTART:
261262 jsr CHRGET
262263 bit VALTYP
263264 bpl L2B34
264- .ifndef CONFIG_SMALL
265+ .ifndef CONFIG_SMALL ; GET
265266 bit INPUTFLG
266267 bvc L2B10
267- .ifdef CONFIG_CBM1_PATCHES
268+ .ifdef CONFIG_CBM1_PATCHES
268269 lda #$00
269270 jsr PATCH4
270271 nop
271- .else
272+ .else
272273 inx
273274 stx TXTPTR
274275 lda #$00
275276 sta CHARAC
276277 beq L2B1C
277- .endif
278+ .endif
278279L2B10:
279280.endif
280281 sta CHARAC
@@ -359,17 +360,17 @@ INPDONE:
359360 lda INPTR
360361 ldy INPTR+1
361362 ldx INPUTFLG
362- .ifdef OSI
363- beq L2B94
363+ .ifdef OSI ; CONFIG_SMALL && !CONFIG_11
364+ beq L2B94 ; INPUT
364365.else
365- bpl L2B94
366+ bpl L2B94 ; INPUT or GET
366367.endif
367368 jmp SETDA
368369L2B94:
369370 ldy #$00
370371 lda (INPTR),y
371372 beq L2BA1
372- .ifdef CONFIG_CBM_ALL
373+ .ifdef CONFIG_FILE
373374 lda Z03
374375 bne L2BA1
375376.endif
Original file line number Diff line number Diff line change @@ -16,10 +16,12 @@ PRINT2:
1616 beq L29F5
1717 cmp #TOKEN_SPC
1818.ifdef CBM2_KBD
19- clc
19+ clc ; also AppleSoft II
2020.endif
2121 beq L29F5
2222 cmp #','
23+ ; Pre-KIM had no CLC. KIM added the CLC
24+ ; here. Post-KIM moved the CLC up...
2325.ifdef KIM
2426 clc
2527.endif
@@ -31,23 +33,25 @@ PRINT2:
3133 bmi PRSTRING
3234 jsr FOUT
3335 jsr STRLIT
34- .ifndef CONFIG_CBM_ALL
36+ .ifndef CONFIG_NO_CR
3537 ldy #$00
3638 lda (FAC_LAST-1 ),y
3739 clc
3840 adc Z16
39- .ifdef KBD
41+ .ifdef KBD
4042 cmp #$28
41- .else
43+ .else
4244 cmp Z17
43- .endif
45+ .endif
4446 bcc L29B1
4547 jsr CRDO
4648L29B1:
4749.endif
4850 jsr STRPRT
4951.ifdef KBD
5052 jmp L297E
53+
54+ ; PATCHES
5155LE86C:
5256 pla
5357 jmp CONTROL_C_TYPED
@@ -74,47 +78,53 @@ PRINTNULLS:
7478 jsr OUTSP
7579 bne L297E
7680L29B9:
77- .ifdef CBM2
81+ .ifdef CBM2
7882 lda #$00
7983 sta INPUTBUFFER,x
8084 ldx #<(INPUTBUFFER-1 )
8185 ldy #>(INPUTBUFFER-1 )
82- .else
83- .ifndef APPLE
86+ .else
87+ .ifndef APPLE
8488 ldy #$00
8589 sty INPUTBUFFER,x
8690 ldx #LINNUM+1
87- .endif
88- .endif
89- .ifdef CONFIG_CBM_ALL
91+ .endif
92+ .endif
93+ .ifdef CONFIG_CBM_ALL
9094 lda Z03
9195 bne L29DD
9296LC9D2:
93- .endif
97+ .endif
9498CRDO:
95- .ifdef CBM1
99+ .ifdef CBM1
96100 lda Z03
97101 bne LC9D8
98102 sta $05
99103LC9D8:
100- .endif
104+ .endif
101105 lda #$0D
102- .ifndef CONFIG_CBM_ALL
106+ .ifndef CONFIG_CBM_ALL
103107 sta Z16
104- .endif
108+ .endif
105109 jsr OUTDO
106- .ifdef APPLE
110+ .ifdef APPLE
107111 lda #$80
108- .else
112+ .else
109113 lda #$0A
110- .endif
114+ .endif
111115 jsr OUTDO
116+ .endif
117+ .ifndef KBD
112118PRINTNULLS:
113- .ifdef CBM1
119+ .if .def(CONFIG_NULL) || .def(CONFIG_PRINTNULLS)
120+ .ifdef CONFIG_FILE
121+ ; Although there is no statement for it,
122+ ; CBM1 had NULL support and ignores
123+ ; it when not targeting the screem,
124+ ; CBM2 dropped it completely.
114125 lda Z03
115126 bne L29DD
116- .endif
117- .if .def(CONFIG_NULL) || .def(CBM1)
127+ .endif
118128 txa
119129 pha
120130 ldx Z15
@@ -128,13 +138,13 @@ L29D9:
128138 stx Z16
129139 pla
130140 tax
131- .else
132- .ifdef APPLE
141+ .else
142+ .ifdef APPLE
133143 lda #$00
134144 sta $50
135- .endif
145+ .endif
136146 eor #$FF
137- .endif
147+ .endif
138148.endif
139149L29DD:
140150 rts
Original file line number Diff line number Diff line change 44 keyword_rts "FOR" , FOR
55 keyword_rts "NEXT" , NEXT
66 keyword_rts "DATA" , DATA
7- .ifdef CONFIG_CBM_ALL
7+ .ifdef CONFIG_FILE
88 keyword_rts "INPUT#" , INPUTH
99.endif
1010 keyword_rts "INPUT" , INPUT
5050.else
5151 keyword_rts "POKE" , POKE
5252.endif
53- .ifdef CONFIG_CBM_ALL
53+ .ifdef CONFIG_FILE
5454 keyword_rts "PRINT#" , PRINTH
5555.endif
5656 keyword_rts "PRINT" , PRINT, TOKEN_PRINT
6161.else
6262 keyword_rts "CLEAR" , CLEAR
6363.endif
64- .ifdef CONFIG_CBM_ALL
64+ .ifdef CONFIG_FILE
6565 keyword_rts "CMD" , CMD
6666 keyword_rts "SYS" , SYS
6767 keyword_rts "OPEN" , OPEN
You can’t perform that action at this time.
0 commit comments