fixup commit for tag 'distr2'
This commit is contained in:
@@ -1,53 +0,0 @@
|
||||
# $Header$
|
||||
EM = ../../..
|
||||
h = $(EM)/h
|
||||
CDIR = $(EM)/mach/proto/nas
|
||||
CPP = $(EM)/lib/cpp
|
||||
DEF =
|
||||
|
||||
FFLAG =
|
||||
CFLAGS = $(FFLAG) -O -I$h $(DEF)
|
||||
YFLAGS = -d
|
||||
LDFLAGS = $(FFLAG) -i
|
||||
|
||||
CSRC = $(CDIR)/comm3.c $(CDIR)/comm4.c $(CDIR)/comm5.c \
|
||||
$(CDIR)/comm6.c $(CDIR)/comm7.c $(CDIR)/comm8.c
|
||||
COBJ = $(CDIR)/comm3.o $(CDIR)/comm4.o $(CDIR)/comm5.o \
|
||||
$(CDIR)/comm6.o $(CDIR)/comm7.o $(CDIR)/comm8.o
|
||||
MACH = mach0.c mach1.c mach2.c mach3.c mach4.c mach5.c
|
||||
COMM = $(CDIR)/comm0.h $(CDIR)/comm1.h $(CDIR)/comm2.y $(CSRC)
|
||||
|
||||
all: as
|
||||
|
||||
install:all
|
||||
../../install as
|
||||
|
||||
cmp:
|
||||
-../../compare as
|
||||
|
||||
clean:
|
||||
rm -f *.o as as.[cy] y.tab.h
|
||||
|
||||
pr: $(MACH)
|
||||
@pr -n $(MACH)
|
||||
|
||||
opr:
|
||||
make pr | opr
|
||||
as: $(COBJ) as.o
|
||||
$(CC) $(LDFLAGS) $(COBJ) as.o -o as
|
||||
|
||||
as.y: $(CDIR)/comm2.y
|
||||
$(CPP) -P -I$h $(DEF) $(CDIR)/comm2.y >as.y
|
||||
@echo "expect 1 shift/reduce conflict"
|
||||
|
||||
lint: $(CSRC) as.c
|
||||
lint $(CSRC) as.c
|
||||
|
||||
y.tab.h: as.c
|
||||
$(COBJ): y.tab.h
|
||||
$(COBJ) as.y: $(CDIR)/comm0.h mach0.c
|
||||
$(COBJ) as.y: $(CDIR)/comm1.h mach1.c
|
||||
as.y: mach2.c
|
||||
comm3.o: mach3.c
|
||||
as.y: mach4.c
|
||||
comm8.o: mach5.c
|
||||
@@ -1,28 +0,0 @@
|
||||
.define putchr
|
||||
! output routine in monitor
|
||||
CRT = 0x013B
|
||||
! output a charcter
|
||||
! entry: ascii character in a
|
||||
putchr:
|
||||
push hl
|
||||
push bc
|
||||
ld hl,tab
|
||||
ld b,5
|
||||
1: cp (hl)
|
||||
jr z,fetch
|
||||
inc hl
|
||||
inc hl
|
||||
djnz 1b
|
||||
2: call CRT
|
||||
pop bc
|
||||
pop hl
|
||||
ret
|
||||
fetch: inc hl
|
||||
ld a,(hl)
|
||||
jr 2b
|
||||
! conversion table for nascom characters
|
||||
tab: .byte 0x0D,0x00
|
||||
.byte 0x1B,0x1E
|
||||
.byte 0x08,0x1D
|
||||
.byte 0x0A,0x1F
|
||||
.byte 0x7F,0x00
|
||||
@@ -1,21 +0,0 @@
|
||||
.define putchr
|
||||
|
||||
putchr:
|
||||
push hl
|
||||
push de
|
||||
push bc
|
||||
cp 0x0A
|
||||
jr nz,1f
|
||||
ld a,0x1F
|
||||
1:
|
||||
ld c,a
|
||||
2:
|
||||
in a,0xF1
|
||||
and 4
|
||||
jr z,2b
|
||||
ld a,c
|
||||
out 0xF0,a
|
||||
pop bc
|
||||
pop de
|
||||
pop hl
|
||||
ret
|
||||
@@ -1,197 +0,0 @@
|
||||
.define _read,_write,_ioctl,_getpid,_open,_close,_exit,_errno
|
||||
_read:
|
||||
ld (savebc),bc
|
||||
push af
|
||||
pop bc
|
||||
ld (saveaf),bc ! save all registers in savereg
|
||||
ld (savede),de
|
||||
ld (savehl),hl
|
||||
ld (saveix),ix
|
||||
ex (sp),hl ! return address in hl
|
||||
pop bc ! skip return address
|
||||
pop bc ! get fd
|
||||
ld a,b ! check fd = 0
|
||||
or c
|
||||
jr nz,errrd
|
||||
pop de ! get buffer
|
||||
pop bc ! get count
|
||||
ld ix,0 ! reset counter
|
||||
push bc
|
||||
push de
|
||||
push ix
|
||||
push hl ! return address
|
||||
ex de,hl ! buffer to hl
|
||||
1: ld a,b
|
||||
or c
|
||||
jr z,done ! done if count = 0
|
||||
call getchr
|
||||
ld (hl),a
|
||||
inc hl ! increment pointer
|
||||
inc ix ! increment char counter
|
||||
dec bc ! decrement count
|
||||
cp 0xA
|
||||
jr nz,1b ! done if char = CR
|
||||
done:
|
||||
ld bc,(saveaf)
|
||||
push bc
|
||||
pop af
|
||||
ld bc,(savebc)
|
||||
ld de,(savede)
|
||||
ld hl,(savehl)
|
||||
ld ix,(saveix)
|
||||
ret
|
||||
errrd:
|
||||
push bc
|
||||
push hl ! return address
|
||||
ld bc,(saveaf)
|
||||
push bc
|
||||
pop af
|
||||
ld bc,(savebc)
|
||||
ld de,(savede)
|
||||
ld hl,(savehl)
|
||||
ld ix,(saveix)
|
||||
ld ix,-1
|
||||
ret
|
||||
|
||||
_write:
|
||||
ld (savebc),bc
|
||||
push af
|
||||
pop bc
|
||||
ld (saveaf),bc ! save all registers in savereg
|
||||
ld (savede),de
|
||||
ld (savehl),hl
|
||||
ld (saveix),ix
|
||||
ex (sp),hl ! return address in hl
|
||||
pop de ! skip return address
|
||||
pop de ! get fd
|
||||
ld a,e ! check for fd = 1
|
||||
cp 1
|
||||
jr nz,errwr
|
||||
ld a,d
|
||||
or a
|
||||
jr nz,errwr
|
||||
pop de ! buffer in de
|
||||
pop bc ! count in bc
|
||||
push bc
|
||||
push de
|
||||
push de
|
||||
push hl
|
||||
ex de,hl ! buffer in hl
|
||||
ld e,c
|
||||
ld d,b ! count also in de
|
||||
1: ld a,b
|
||||
or c
|
||||
jr z,exit
|
||||
ld a,(hl)
|
||||
call putchr
|
||||
inc hl
|
||||
dec bc
|
||||
jr 1b
|
||||
errwr:
|
||||
push de
|
||||
push hl
|
||||
ld bc,(saveaf)
|
||||
push bc
|
||||
pop af
|
||||
ld bc,(savebc)
|
||||
ld de,(savede)
|
||||
ld hl,(savehl)
|
||||
ld ix,(saveix)
|
||||
ld ix,-1 ! error in fd
|
||||
ret
|
||||
exit:
|
||||
push de ! count on stack
|
||||
ld bc,(saveaf)
|
||||
push bc
|
||||
pop af
|
||||
ld bc,(savebc)
|
||||
ld de,(savede)
|
||||
ld hl,(savehl)
|
||||
ld ix,(saveix)
|
||||
pop ix ! return count to caller
|
||||
ret
|
||||
|
||||
_ioctl:
|
||||
ret
|
||||
_getpid:
|
||||
ret
|
||||
|
||||
! open return a file descriptor (0,1,2)
|
||||
! depending on 'mode'
|
||||
! mode 2 doesn't work!!
|
||||
_open:
|
||||
ld (savebc),bc
|
||||
push af
|
||||
pop bc
|
||||
ld (saveaf),bc ! save all registers in savereg
|
||||
ld (savede),de
|
||||
ld (savehl),hl
|
||||
ld (saveix),ix
|
||||
pop bc ! return address
|
||||
pop de ! name pointer
|
||||
pop ix ! mode (0 for read,
|
||||
! 1 for write)
|
||||
push ix
|
||||
push de
|
||||
push bc
|
||||
ld bc,(saveaf)
|
||||
push bc
|
||||
pop af
|
||||
ld bc,(savebc)
|
||||
ld de,(savede)
|
||||
ld hl,(savehl)
|
||||
ld ix,(saveix)
|
||||
ret ! return fd = 0 for read
|
||||
! fd = 1 for write
|
||||
|
||||
_close:
|
||||
ld ix,0 ! return succes
|
||||
ret
|
||||
_exit:
|
||||
jp 0x38
|
||||
.data
|
||||
_errno:
|
||||
.word 0
|
||||
! output routine in monitor
|
||||
CRT = 0x013B
|
||||
! output a charcter
|
||||
! entry: ascii character in a
|
||||
.text
|
||||
!putchr:
|
||||
! push hl
|
||||
! push bc
|
||||
! ld hl,tab
|
||||
! ld b,5
|
||||
!1: cp (hl)
|
||||
! jr z,fetch
|
||||
! inc hl
|
||||
! inc hl
|
||||
! djnz 1b
|
||||
!2: call CRT
|
||||
! pop bc
|
||||
! pop hl
|
||||
! ret
|
||||
!fetch: inc hl
|
||||
! ld a,(hl)
|
||||
! jr 2b
|
||||
!! conversion table for nascom characters
|
||||
!tab: .byte 0x0D,0x00
|
||||
! .byte 0x1B,0x1E
|
||||
! .byte 0x08,0x1D
|
||||
! .byte 0x0A,0x1F
|
||||
! .byte 0x7F,0x00
|
||||
|
||||
KBD = 0x69
|
||||
! get character from keyboard
|
||||
getchr:
|
||||
call KBD
|
||||
jr nc,getchr
|
||||
cp 0x1F
|
||||
jr z,CR
|
||||
cp 0x1D
|
||||
jr z,BS
|
||||
ret
|
||||
CR: ld a,0xA
|
||||
ret
|
||||
BS: ld a,0x8
|
||||
ret
|
||||
@@ -1,28 +0,0 @@
|
||||
.define putchr
|
||||
! output routine in monitor
|
||||
CRT = 0x013B
|
||||
! output a charcter
|
||||
! entry: ascii character in a
|
||||
putchr:
|
||||
push hl
|
||||
push bc
|
||||
ld hl,tab
|
||||
ld b,5
|
||||
1: cp (hl)
|
||||
jr z,fetch
|
||||
inc hl
|
||||
inc hl
|
||||
djnz 1b
|
||||
2: call CRT
|
||||
pop bc
|
||||
pop hl
|
||||
ret
|
||||
fetch: inc hl
|
||||
ld a,(hl)
|
||||
jr 2b
|
||||
! conversion table for nascom characters
|
||||
tab: .byte 0x0D,0x00
|
||||
.byte 0x1B,0x1E
|
||||
.byte 0x08,0x1D
|
||||
.byte 0x0A,0x1F
|
||||
.byte 0x7F,0x00
|
||||
@@ -1,21 +0,0 @@
|
||||
.define putchr
|
||||
|
||||
putchr:
|
||||
push hl
|
||||
push de
|
||||
push bc
|
||||
cp 0x0A
|
||||
jr nz,1f
|
||||
ld a,0x1F
|
||||
1:
|
||||
ld c,a
|
||||
2:
|
||||
in a,0xF1
|
||||
and 4
|
||||
jr z,2b
|
||||
ld a,c
|
||||
out 0xF0,a
|
||||
pop bc
|
||||
pop de
|
||||
pop hl
|
||||
ret
|
||||
@@ -1,197 +0,0 @@
|
||||
.define _read,_write,_ioctl,_getpid,_open,_close,_exit,_errno
|
||||
_read:
|
||||
ld (savebc),bc
|
||||
push af
|
||||
pop bc
|
||||
ld (saveaf),bc ! save all registers in savereg
|
||||
ld (savede),de
|
||||
ld (savehl),hl
|
||||
ld (saveix),ix
|
||||
ex (sp),hl ! return address in hl
|
||||
pop bc ! skip return address
|
||||
pop bc ! get fd
|
||||
ld a,b ! check fd = 0
|
||||
or c
|
||||
jr nz,errrd
|
||||
pop de ! get buffer
|
||||
pop bc ! get count
|
||||
ld ix,0 ! reset counter
|
||||
push bc
|
||||
push de
|
||||
push ix
|
||||
push hl ! return address
|
||||
ex de,hl ! buffer to hl
|
||||
1: ld a,b
|
||||
or c
|
||||
jr z,done ! done if count = 0
|
||||
call getchr
|
||||
ld (hl),a
|
||||
inc hl ! increment pointer
|
||||
inc ix ! increment char counter
|
||||
dec bc ! decrement count
|
||||
cp 0xA
|
||||
jr nz,1b ! done if char = CR
|
||||
done:
|
||||
ld bc,(saveaf)
|
||||
push bc
|
||||
pop af
|
||||
ld bc,(savebc)
|
||||
ld de,(savede)
|
||||
ld hl,(savehl)
|
||||
ld ix,(saveix)
|
||||
ret
|
||||
errrd:
|
||||
push bc
|
||||
push hl ! return address
|
||||
ld bc,(saveaf)
|
||||
push bc
|
||||
pop af
|
||||
ld bc,(savebc)
|
||||
ld de,(savede)
|
||||
ld hl,(savehl)
|
||||
ld ix,(saveix)
|
||||
ld ix,-1
|
||||
ret
|
||||
|
||||
_write:
|
||||
ld (savebc),bc
|
||||
push af
|
||||
pop bc
|
||||
ld (saveaf),bc ! save all registers in savereg
|
||||
ld (savede),de
|
||||
ld (savehl),hl
|
||||
ld (saveix),ix
|
||||
ex (sp),hl ! return address in hl
|
||||
pop de ! skip return address
|
||||
pop de ! get fd
|
||||
ld a,e ! check for fd = 1
|
||||
cp 1
|
||||
jr nz,errwr
|
||||
ld a,d
|
||||
or a
|
||||
jr nz,errwr
|
||||
pop de ! buffer in de
|
||||
pop bc ! count in bc
|
||||
push bc
|
||||
push de
|
||||
push de
|
||||
push hl
|
||||
ex de,hl ! buffer in hl
|
||||
ld e,c
|
||||
ld d,b ! count also in de
|
||||
1: ld a,b
|
||||
or c
|
||||
jr z,exit
|
||||
ld a,(hl)
|
||||
call putchr
|
||||
inc hl
|
||||
dec bc
|
||||
jr 1b
|
||||
errwr:
|
||||
push de
|
||||
push hl
|
||||
ld bc,(saveaf)
|
||||
push bc
|
||||
pop af
|
||||
ld bc,(savebc)
|
||||
ld de,(savede)
|
||||
ld hl,(savehl)
|
||||
ld ix,(saveix)
|
||||
ld ix,-1 ! error in fd
|
||||
ret
|
||||
exit:
|
||||
push de ! count on stack
|
||||
ld bc,(saveaf)
|
||||
push bc
|
||||
pop af
|
||||
ld bc,(savebc)
|
||||
ld de,(savede)
|
||||
ld hl,(savehl)
|
||||
ld ix,(saveix)
|
||||
pop ix ! return count to caller
|
||||
ret
|
||||
|
||||
_ioctl:
|
||||
ret
|
||||
_getpid:
|
||||
ret
|
||||
|
||||
! open return a file descriptor (0,1,2)
|
||||
! depending on 'mode'
|
||||
! mode 2 doesn't work!!
|
||||
_open:
|
||||
ld (savebc),bc
|
||||
push af
|
||||
pop bc
|
||||
ld (saveaf),bc ! save all registers in savereg
|
||||
ld (savede),de
|
||||
ld (savehl),hl
|
||||
ld (saveix),ix
|
||||
pop bc ! return address
|
||||
pop de ! name pointer
|
||||
pop ix ! mode (0 for read,
|
||||
! 1 for write)
|
||||
push ix
|
||||
push de
|
||||
push bc
|
||||
ld bc,(saveaf)
|
||||
push bc
|
||||
pop af
|
||||
ld bc,(savebc)
|
||||
ld de,(savede)
|
||||
ld hl,(savehl)
|
||||
ld ix,(saveix)
|
||||
ret ! return fd = 0 for read
|
||||
! fd = 1 for write
|
||||
|
||||
_close:
|
||||
ld ix,0 ! return succes
|
||||
ret
|
||||
_exit:
|
||||
jp 0x38
|
||||
.data
|
||||
_errno:
|
||||
.word 0
|
||||
! output routine in monitor
|
||||
CRT = 0x013B
|
||||
! output a charcter
|
||||
! entry: ascii character in a
|
||||
.text
|
||||
!putchr:
|
||||
! push hl
|
||||
! push bc
|
||||
! ld hl,tab
|
||||
! ld b,5
|
||||
!1: cp (hl)
|
||||
! jr z,fetch
|
||||
! inc hl
|
||||
! inc hl
|
||||
! djnz 1b
|
||||
!2: call CRT
|
||||
! pop bc
|
||||
! pop hl
|
||||
! ret
|
||||
!fetch: inc hl
|
||||
! ld a,(hl)
|
||||
! jr 2b
|
||||
!! conversion table for nascom characters
|
||||
!tab: .byte 0x0D,0x00
|
||||
! .byte 0x1B,0x1E
|
||||
! .byte 0x08,0x1D
|
||||
! .byte 0x0A,0x1F
|
||||
! .byte 0x7F,0x00
|
||||
|
||||
KBD = 0x69
|
||||
! get character from keyboard
|
||||
getchr:
|
||||
call KBD
|
||||
jr nc,getchr
|
||||
cp 0x1F
|
||||
jr z,CR
|
||||
cp 0x1D
|
||||
jr z,BS
|
||||
ret
|
||||
CR: ld a,0xA
|
||||
ret
|
||||
BS: ld a,0x8
|
||||
ret
|
||||
Reference in New Issue
Block a user