Mercurial > hg > Members > kono > nitros9-code
comparison lib/alib/ftrans.as @ 2783:03f26e88b809 lwtools-port
Renamed files and setup for lwasm/lwlink work
author | Boisy Pitre <boisy.pitre@nuance.com> |
---|---|
date | Sat, 26 Jan 2013 17:18:24 -0600 |
parents | lib/alib/ftrans.a@aaba193af04f |
children |
comparison
equal
deleted
inserted
replaced
2782:aaba193af04f | 2783:03f26e88b809 |
---|---|
1 *************************************** | |
2 | |
3 * Subroutine to transfer data for one file to another | |
4 | |
5 * OTHER MODULES NEEDED: none | |
6 | |
7 * ENTRY: A=source path | |
8 * B=destination path | |
9 * Y=number of bytes to transfer | |
10 * X=buffer for this routine | |
11 * U=buffer size | |
12 | |
13 | |
14 * EXIT: CC carry set if error (from I$Read or I$Write) | |
15 * B error code if any | |
16 | |
17 nam File data transfer | |
18 ttl Assembler Library Module | |
19 | |
20 section .data | |
21 | |
22 * this sets up a stack frame used for variable references | |
23 | |
24 count rmb 2 number of bytes to transfer (2nd Y) | |
25 inpath rmb 1 source file (A) | |
26 Breg rmb 1 copy of B register | |
27 outpath equ Breg dest file | |
28 buffer rmb 2 buffer memory (X) | |
29 rmb 2 copy of Y | |
30 bufsize rmb 2 buffer size (U) | |
31 | |
32 endsect | |
33 | |
34 section .text | |
35 | |
36 FTRANS: | |
37 pshs a,b,x,y,u | |
38 pshs y | |
39 | |
40 loop | |
41 ldy count,s bytes left to send | |
42 beq exit all done? | |
43 | |
44 lda inpath,s source file | |
45 ldx buffer,s buffer area | |
46 cmpy bufsize,s is remainder > buffer size | |
47 blo get no, get all of remainder | |
48 ldy bufsize,s use buffer size | |
49 | |
50 get | |
51 os9 I$Read get data | |
52 bcs error | |
53 lda outpath,s | |
54 os9 I$Write | |
55 bcs error | |
56 | |
57 pshs y number of bytes got/sent | |
58 ldd count+2,s adjust count remaining | |
59 subd ,s++ | |
60 std count,s | |
61 bra loop | |
62 | |
63 exit | |
64 clra no error | |
65 bra exit2 | |
66 | |
67 error | |
68 coma signal error | |
69 stb Breg,s set B | |
70 | |
71 exit2 | |
72 puls y | |
73 puls a,b,x,y,u,pc | |
74 | |
75 endsect |