diff --git a/scans/Readme b/scans/Readme index 045e708..2a67a55 100644 --- a/scans/Readme +++ b/scans/Readme @@ -6,4 +6,5 @@ For modified versions of these files, look in src/cmds and src/sys. Details of the files: -s1.s: pages 2-3 of 01-s1.pdf, incomplete and with some cruft at the end +s1.s: pages 2-3 of 01-s1.pdf, incomplete and with some cruft at the end +cat.c: pages 21-23 of 06-5-12.pdf diff --git a/scans/cat.s b/scans/cat.s new file mode 100644 index 0000000..0f86597 --- /dev/null +++ b/scans/cat.s @@ -0,0 +1,145 @@ +" cat + + lac 017777 i + sad d4 + jmp nofiles + lac 017777 + tad d1 + tad d4 + dac name + +loop: + sys open; name; 0; 0 + spa + jmp badfile + dac fi + +1: + jms getc + sad o4 + jmp 1f + jms putc + jmp 1b + +1: + lac fi + sys close + +loop1: + -4 + tad 017777 i + dac 017777 i + sad d4 + jmp done + lac name + tad d4 + dac name + jmp loop + +badfile: + lac name + dac 1f + lac d8 + sys write; 1:0; 4 + lac d8 + sys write; 1f; 2 + jmp loop1 + +1: 040;077012 +nofiles: + lac d8 + sys write; 1f; 5 + sys exit + +1: ; 040; ;;