1;       GET UNIX FILE INTO CP/M UTILITY
2;       getunix unixfilename.extension driveletter:cpmfilename.extension
3;
4        .Z80
5
6SRCFCB  EQU     005CH
7SECFCB  EQU     006CH
8
9CBIOS   EQU     0EA00H
10OPNUNX  EQU     CBIOS+33H
11RDUNX   EQU     CBIOS+39H
12CLSUNX  EQU     CBIOS+3FH
13
14BDOS    EQU     5
15CREATE  EQU     22
16WRITE   EQU     21
17CLOSE   EQU     16
18SETDMA  EQU     26
19PRINT   EQU     9
20
21        CSEG
22        ENTRY   START
23START:
24        LD      SP,STACK
25;MOVE DESTINATION FCB
26        LD      HL,SECFCB
27        LD      DE,DSTFCB
28        LD      BC,10H
29        LDIR
30        LD      HL,DSTFCB+16
31        LD      DE,DSTFCB+17
32        LD      (HL),0
33        LD      BC,20H
34        LDIR
35;OPEN SOURCE FILE
36        LD      DE,SRCFCB
37        CALL    OPNUNX
38        AND     A
39        JP      NZ,ERROR1
40;CREATE DESTINATION FILE
41        LD      DE,DSTFCB
42        LD      C,CREATE
43        CALL    BDOS
44        CP      0FFH
45        JP      Z,ERROR2
46;SET DMA ADDRESS
47        LD        DE,0080H
48        LD        C,SETDMA
49        CALL        BDOS
50;READ ONE, WRITE ONE
51LOOP:        LD        DE,SRCFCB
52        CALL        RDUNX
53        AND        A
54        JP        NZ,CLOSEM
55        LD        DE,DSTFCB
56        LD        C,WRITE
57        CALL        BDOS
58        AND        A
59        JP        NZ,ERROR4
60        JP        LOOP
61;CLOSE UNIX FILE
62CLOSEM:        LD        DE,SRCFCB
63        CALL        CLSUNX
64        AND        A
65        JP        Z,CLSCPM
66
67CLSCPM:        LD        DE,DSTFCB
68        LD        C,CLOSE
69        CALL        BDOS
70        JP        0
71
72ERROR1:        LD        DE,STR1
73        JP        ERROR
74STR1:        DEFM        "ERROR1"
75        DEFB        13,10,'$'
76ERROR2:        LD        DE,STR2
77        JP        ERROR
78STR2:        DEFM        "ERROR2"
79        DEFB        13,10,'$'
80ERROR3:        LD        DE,STR3
81        JP        ERROR
82STR3:        DEFM        "ERROR3"
83        DEFB        13,10,'$'
84ERROR4:        LD        DE,STR4
85        JP        ERROR
86STR4:        DEFM        "ERROR4"
87        DEFB        13,10,'$'
88
89ERROR:        LD        C,PRINT
90        CALL        BDOS
91        JP        0
92
93DSTFCB:        DEFS        200
94STACK:        DEFS        1
95        END
96