Files
Digital-Research-Source-Code/CPM OPERATING SYSTEMS/CPM 68K/1.0X SOURCES/v101/boot/fileio.s
Sepp J Morris 31738079c4 Upload
Digital Research
2020-11-06 18:50:37 +01:00

171 lines
2.0 KiB
ArmAsm

.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