mirror of
https://github.com/SEPPDROID/Digital-Research-Source-Code.git
synced 2025-10-24 08:54:17 +00:00
Upload
Digital Research
This commit is contained in:
170
CPM OPERATING SYSTEMS/CPM 68K/1.0X SOURCES/v101/boot/fileio.s
Normal file
170
CPM OPERATING SYSTEMS/CPM 68K/1.0X SOURCES/v101/boot/fileio.s
Normal file
@@ -0,0 +1,170 @@
|
||||
.globl _do_phio
|
||||
.globl _swap
|
||||
.globl _seldisk
|
||||
.text
|
||||
_seldisk:
|
||||
~~seldisk:
|
||||
~i=R6
|
||||
~p=R13
|
||||
~dsknum=R7
|
||||
~selpkt=-18
|
||||
link R14,#-18
|
||||
movem.l R5-R7/R13-R13,-(sp)
|
||||
move.b 9(R14),R7
|
||||
move.b R7,R0
|
||||
ext.w R0
|
||||
and #255,R0
|
||||
cmp #15,R0
|
||||
ble L2
|
||||
move #65535,R0
|
||||
bra L1
|
||||
L2:
|
||||
clr.b -18(R14)
|
||||
move.b R7,-15(R14)
|
||||
clr.b -17(R14)
|
||||
move.l R14,(sp)
|
||||
add.l #-18,(sp)
|
||||
jsr _do_phio
|
||||
move.l -4(R14),_gbls
|
||||
bne L3
|
||||
move #65535,R0
|
||||
bra L1
|
||||
L3:
|
||||
move.l _gbls,R8
|
||||
move.l 10(R8),4+_gbls
|
||||
move.l _gbls,R8
|
||||
move.l 14(R8),8+_gbls
|
||||
clr R0
|
||||
bra L1
|
||||
L1:tst.l (sp)+
|
||||
movem.l (sp)+,R6-R7/R13-R13
|
||||
unlk R14
|
||||
rts
|
||||
.globl _move
|
||||
.text
|
||||
_move:
|
||||
~~move:
|
||||
~i=R7
|
||||
~p1=R13
|
||||
~p2=R12
|
||||
link R14,#0
|
||||
movem.l R6-R7/R12-R13,-(sp)
|
||||
move.l 8(R14),R13
|
||||
move.l 12(R14),R12
|
||||
move 16(R14),R7
|
||||
L6:
|
||||
move R7,R0
|
||||
sub #1,R7
|
||||
tst R0
|
||||
beq L5
|
||||
move.b (R13)+,(R12)+
|
||||
bra L6
|
||||
L5:L4:tst.l (sp)+
|
||||
movem.l (sp)+,R7-R7/R12-R13
|
||||
unlk R14
|
||||
rts
|
||||
.globl _match
|
||||
.text
|
||||
_match:
|
||||
~~match:
|
||||
~i=R7
|
||||
~p1=R13
|
||||
~p2=R12
|
||||
~chk_ext=17
|
||||
~temp=R6
|
||||
link R14,#0
|
||||
movem.l R5-R7/R12-R13,-(sp)
|
||||
move.l 8(R14),R13
|
||||
move.l 12(R14),R12
|
||||
move #12,R7
|
||||
L10:
|
||||
move.b (R13),R6
|
||||
eor.b #63,R6
|
||||
move.b (R13)+,R0
|
||||
ext.w R0
|
||||
move.b (R12)+,R1
|
||||
ext.w R1
|
||||
eor R1,R0
|
||||
and #127,R0
|
||||
beq L11
|
||||
tst.b R6
|
||||
beq L11
|
||||
clr R0
|
||||
bra L7
|
||||
L11:
|
||||
sub #1,R7
|
||||
L9:
|
||||
tst R7
|
||||
bne L10
|
||||
L8:
|
||||
tst.b 17(R14)
|
||||
beq L12
|
||||
cmp.b #63,(R13)
|
||||
beq L13
|
||||
move.b (R13),R0
|
||||
ext.w R0
|
||||
move.b (R12),R1
|
||||
ext.w R1
|
||||
eor R1,R0
|
||||
move.l 8+_gbls,R9
|
||||
move.b 4(R9),R1
|
||||
ext.w R1
|
||||
not.b R1
|
||||
and R1,R0
|
||||
beq L13
|
||||
clr R0
|
||||
bra L7
|
||||
L13:
|
||||
add.l #2,R13
|
||||
add.l #2,R12
|
||||
move.b (R13),R0
|
||||
ext.w R0
|
||||
move.b (R12),R1
|
||||
ext.w R1
|
||||
eor R1,R0
|
||||
and #63,R0
|
||||
beq L14
|
||||
clr R0
|
||||
bra L7
|
||||
L14:L12:
|
||||
move #1,R0
|
||||
bra L7
|
||||
L7:tst.l (sp)+
|
||||
movem.l (sp)+,R6-R7/R12-R13
|
||||
unlk R14
|
||||
rts
|
||||
.globl _openfile
|
||||
.text
|
||||
_openfile:
|
||||
~~openfile:
|
||||
~fcb_ext=R7
|
||||
~dirindx=16
|
||||
~rtn=R6
|
||||
~fcbp=R13
|
||||
~dirp=12
|
||||
link R14,#0
|
||||
movem.l R5-R7/R13-R13,-(sp)
|
||||
move.l 8(R14),R13
|
||||
move #1,(sp)
|
||||
move.l 12(R14),-(sp)
|
||||
move.l R13,-(sp)
|
||||
jsr _match
|
||||
add #8,sp
|
||||
move.b R0,R6
|
||||
beq L16
|
||||
move.b 12(R13),R7
|
||||
move #32,(sp)
|
||||
move.l R13,-(sp)
|
||||
move.l 12(R14),-(sp)
|
||||
jsr _move
|
||||
add #8,sp
|
||||
move.b R7,12(R13)
|
||||
L16:
|
||||
move.b R6,R0
|
||||
ext.w R0
|
||||
bra L15
|
||||
L15:tst.l (sp)+
|
||||
movem.l (sp)+,R6-R7/R13-R13
|
||||
unlk R14
|
||||
rts
|
||||
.data
|
||||
Reference in New Issue
Block a user