Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- TEST START 1000 TEST PROGRAM FOR SIC SOFTWARE
- FIRST STL RETADR SAVE RETURN ADDRESS
- CLOOP JSUB RDREC READ INPUT RECORD
- LDA LENGTH TEST FOR EOF (LENGTH = 0
- COMP ONE PLUS EOL OR EOF)
- JEQ ENDFIL EXIT IF EOF FOUND
- JSUB WRREC WRITE OUTPUT RECORD
- J CLOOP LOOP
- ENDFIL LDA =C'EOF' INSERT END OF FILE MARKER
- STA BUFFER
- LDA THREE SET LENGTH = 3
- STA LENGTH
- JSUB WRREC WRITE EOF
- LDL RETADR GET RETURN ADDRESS
- RSUB RETURN TO CALLER
- LTORG
- * =C'EOF'
- THREE WORD 3
- ZERO WORD 0
- ONE WORD 1
- FIVE WORD 5
- RETADR RESW 1
- LENGTH RESW 1
- BUFFER RESB 4096 4096-BYTE BUFFER AREA
- .
- . SUBROUTINE TO READ RECORD INTO BUFFER
- .
- RDREC LDX ZERO CLEAR LOOP COUNTER
- LDA ZERO CLEAR A TO ZERO
- RLOOP TD =X'F3' TEST INPUT DEVICE
- JEQ RLOOP LOOP UNTIL READY
- RD =X'F3' READ CHARACTER INTO REGISTER A
- COMP FIVE TEST FOR EOL OR EOF
- JLT EXIT EXIT LOOP IF FOUND
- STCH BUFFER STORE CHARACTER IN BUFFER
- TIX MAXLEN LOOP UNLESS MAX LENGTH
- JLT RLOOP HAS BEEN REACHED
- EXIT STCH BUFFER STORE EOL/EOF IN BUFFER
- STX LENGTH SAVE RECORD LENGTH
- LDA LENGTH MODIFY RECORD LENGTH TO INCLUDE
- ADD ONE EOL OR EOF
- STA LENGTH
- RSUB RETURN TO CALLER
- LTORG
- * =X'F3' CODE FOR INPUT DEVICE
- LEN WORD 4096
- MAXLEN EQU LEN
- .
- . SUBROUTINE TO WRITE RECORD FROM BUFFER
- .
- WRREC LDX ZERO CLEAR LOOP COUNTER
- WLOOP TD =X'06' TEST OUTPUT DEVICE
- JEQ WLOOP LOOP UNTIL READY
- LDCH BUFFER GET CHARACTER FROM BUFFER
- WD =X'06' WRITE CHARACTER
- TIX LENGTH LOOP UNTIL ALL CHARACTERS
- JLT WLOOP HAVE BEEN WRITTEN
- RSUB RETURN TO CALLER
- END FIRST
- * =X'06' CODE FOR OUTPUT DEVICE
Advertisement
Add Comment
Please, Sign In to add comment