Upload files to "kernal"

This commit is contained in:
2026-05-07 10:03:27 +12:00
parent 5fd7765f53
commit b978b7a496
26 changed files with 3587 additions and 0 deletions
+135
View File
@@ -0,0 +1,135 @@
.segment "OPENC"
;***************************************
;* chkin -- open channel for input *
;* *
;* the number of the logical file to be*
;* opened for input is passed in .x. *
;* chkin searches the logical file *
;* to look up device and command info. *
;* errors are reported if the device *
;* was not opened for input ,(e.g. *
;* cassette write file), or the logical*
;* file has no reference in the tables.*
;* device 0, (keyboard), and device 3 *
;* (screen), require no table entries *
;* and are handled separate. *
;***************************************
;
nchkin jsr lookup ;see if file known
beq jx310 ;yup...
;
jmp error3 ;no...file not open
;
jx310 jsr jz100 ;extract file info
;
lda fa
beq jx320 ;is keyboard...done.
;
;could be screen, keyboard, or serial
;
cmp #3
beq jx320 ;is screen...done.
bcs jx330 ;is serial...address it
cmp #2 ;rs232?
bne jx315 ;no...
;
; jmp cki232
;
;some extra checks for tape
;
jx315 ldx sa
cpx #$60 ;is command a read?
beq jx320 ;yes...o.k....done
;
jmp error6 ;not input file
;
jx320 sta dfltn ;all input come from here
;
clc ;good exit
rts
;
;an serial device has to be a talker
;
jx330 tax ;device # for dflto
jsr talk ;tell him to talk
;
lda sa ;a second?
bpl jx340 ;yes...send it
jsr tkatn ;no...let go
jmp jx350
;
jx340 jsr tksa ;send second
;
jx350 txa
bit status ;did he listen?
bpl jx320 ;yes
;
jmp error5 ;device not present
;***************************************
;* chkout -- open channel for output *
;* *
;* the number of the logical file to be*
;* opened for output is passed in .x. *
;* chkout searches the logical file *
;* to look up device and command info. *
;* errors are reported if the device *
;* was not opened for input ,(e.g. *
;* keyboard), or the logical file has *
;* reference in the tables. *
;* device 0, (keyboard), and device 3 *
;* (screen), require no table entries *
;* and are handled separate. *
;***************************************
;
nckout jsr lookup ;is file in table?
beq ck5 ;yes...
;
jmp error3 ;no...file not open
;
ck5 jsr jz100 ;extract table info
;
lda fa ;is it keyboard?
bne ck10 ;no...something else.
;
ck20 jmp error7 ;yes...not output file
;
;could be screen,serial,or tapes
;
ck10 cmp #3
beq ck30 ;is screen...done
bcs ck40 ;is serial...address it
; cmp #2 ;rs232?
; bne ck15
;
; jmp cko232
;
;
;special tape channel handling
;
ck15 ldx sa
cpx #$60 ;is command read?
beq ck20 ;yes...error
;
ck30 sta dflto ;all output goes here
;
clc ;good exit
rts
;
ck40 tax ;save device for dflto
jsr listn ;tell him to listen
;
lda sa ;is there a second?
bpl ck50 ;yes...
;
jsr scatn ;no...release lines
bne ck60 ;branch always
;
ck50 jsr secnd ;send second...
;
ck60 txa
bit status ;did he listen?
bpl ck30 ;yes...finish up
;
jmp error5 ;no...device not present