ASM80 :F1:UREAD.TXT ISIS-II 8080/8085 MACRO ASSEMBLER, V4.1 MODULE PAGE 1 LOC OBJ LINE SOURCE STATEMENT 000D 1 CR EQU 0DH 000A 2 LF EQU 0AH 00F7 3 CRTS EQU 0F7H 00F6 4 CRTD EQU 0F6H 5 ; 6 ; ISIS CALLS 7 ; 0000 8 OPEN EQU 0 0001 9 CLOSE EQU 1 0003 10 READ EQU 3 0004 11 WRITE EQU 4 0009 12 EXIT EQU 9 000C 13 ERROR EQU 12 14 ; 15 00F4 16 TTYI EQU 0F4H 00F4 17 TTYO EQU 0F4H 00F5 18 TTYS EQU 0F5H 00F5 19 TTYC EQU 0F5H 20 ; 0001 21 TRDY EQU 00000001B 0002 22 RRDY EQU 00000010B 23 ; 0002 24 DTR EQU 00000010B 25 ; 26 EXTRN ISIS 27 EXTRN CO 28 EXTRN CI 29 ; 30 CSEG 31 ; 0000 31A201 D 32 BEGIN: LXI SP,STCKA+4 33 ; 34 ; 35 ; MVI A,0CEH ; TTY USART MODE, 1-STOP NP RX1 8BITS 36 ; OUT 0F5H 37 ; MVI A,27H ; TTY USART CMD 38 ; OUT 0F5H 39 ; MVI A,36H ; TTY TIMER SELECT 40 ; OUT 0F3H 41 ; MVI A,20H ; 2400 BAUD 42 ; OUT 0F0H 43 ; MVI A,0 44 ; OUT 0F0H 45 ; 46 ; MVI A,0CEH ; CRT MODE 47 ; OUT 0F7H 48 ; MVI A,27H ; CRT CMD 49 ; OUT 0F7H 50 ; MVI A,76H 51 ; OUT 0F3H ; SELECT CRT TIMER 52 ; MVI A,7 ; 9600 BAUD 53 ; OUT 0F1H 54 ; MVI A,0 ISIS-II 8080/8085 MACRO ASSEMBLER, V4.1 MODULE PAGE 2 LOC OBJ LINE SOURCE STATEMENT 55 ; OUT 0F1H 56 ; 0003 0E03 57 GETFN: MVI C,READ 0005 110400 D 58 LXI D,RBLK 0008 CD0000 E 59 CALL ISIS 000B 3A1800 D 60 LDA STATUS 000E B7 61 ORA A 000F C29E00 C 62 JNZ ERR 0012 211C00 D 63 LXI H,BUFFER ; SAVE IT TO FILENM BUFFER 0015 119C00 D 64 LXI D,FILENM 0018 0E80 65 MVI C,128 66 MOVEIT: ; ENDS WITH FIRST SPACE SEEN 001A 7E 67 MOV A,M ; FROM BUFFER 001B 23 68 INX H 001C 12 69 STAX D ; TO FILENM 001D 13 70 INX D 001E 7E 71 MOV A,M ; PEEK AT NEXT 001F FE20 72 CPI 20H 0021 CA3000 C 73 JZ ZERO ; JUMP IF SPACE FOUND AFTER 0024 FE0D 74 CPI CR 0026 CA3000 C 75 JZ ZERO ; NO SPACE JUST A CR 0029 0D 76 DCR C 002A CA3000 C 77 JZ ZERO 002D C31A00 C 78 JMP MOVEIT 79 ZERO: 0030 3E00 80 MVI A,0 0032 12 81 STAX D ; REPLACE SPACE WITH 0 TO STOP CRTOUT 82 ; 83 UREAD: 0033 215300 C 84 LXI H,SIZECMD ; SEND THE SIZE REQUEST 0036 CD6100 C 85 CALL CRTOUT 0039 219D00 D 86 LXI H,FILENM+1 ; LEADING SPACE? 003C CD6100 C 87 CALL CRTOUT 003F 215900 C 88 LXI H,LINEWD 0042 CD6100 C 89 CALL CRTOUT 0045 0E0D 90 MVI C,CR 0047 CD8300 C 91 CALL CRTO 004A 211E01 D 92 LXI H,RESPONSE 004D CD6C00 C 93 CALL CRTIN 94 ; 0050 C39600 C 95 JMP DONE0 96 ; 0053 53495A45 97 SIZECMD: DB 'SIZE ',0 0057 20 0058 00 0059 204C494E 98 LINEWD: DB ' LINE',CR,LF,0 005D 45 005E 0D 005F 0A 0060 00 99 ; 100 CRTOUT: 0061 7E 101 MOV A,M ; POINTING TO CHARACTER? 0062 B7 102 ORA A 0063 C8 103 RZ ; RETURN IF NOT ISIS-II 8080/8085 MACRO ASSEMBLER, V4.1 MODULE PAGE 3 LOC OBJ LINE SOURCE STATEMENT 0064 4F 104 MOV C,A ; OK TO SEND 0065 CD8300 C 105 CALL CRTO 0068 23 106 INX H ; POINT TO NEXT 0069 C36100 C 107 JMP CRTOUT 108 ; 109 CRTIN: 006C CD7700 C 110 CALL CRTI 006F 77 111 MOV M,A 0070 FE0D 112 CPI CR 0072 C8 113 RZ 0073 23 114 INX H 0074 C36C00 C 115 JMP CRTIN 116 ; 0077 DBF7 117 CRTI: IN CRTS 0079 E602 118 ANI RRDY 007B CA7700 C 119 JZ CRTI 007E DBF6 120 IN CRTD 0080 E67F 121 ANI 7FH 0082 C9 122 RET 123 ; 0083 DBF7 124 CRTO: IN CRTS 0085 E601 125 ANI TRDY 0087 CA8300 C 126 JZ CRTO 008A 79 127 MOV A,C 008B D3F6 128 OUT CRTD 008D C9 129 RET 130 ; 131 132 ; 133 ; 134 DONE: 008E 0E01 135 MVI C,CLOSE 0090 110000 D 136 LXI D,CBLK 0093 CD0000 E 137 CALL ISIS 138 DONE0: 0096 0E09 139 MVI C,EXIT 0098 111600 D 140 LXI D,XBLK 009B CD0000 E 141 CALL ISIS ; AND NEVER COME BACK 142 ; 009E 0E0C 143 ERR: MVI C,ERROR 00A0 111800 D 144 LXI D,EBLK 00A3 CD0000 E 145 CALL ISIS 00A6 C39600 C 146 JMP DONE0 147 148 149 DSEG 150 151 CBLK: 0000 152 CAFT: DS 2 0002 1800 D 153 DW STATUS 154 ; 155 RBLK: 0004 0100 156 AFT: DW 1 0006 1C00 D 157 DW BUFFER 0008 8000 158 DW 128 ISIS-II 8080/8085 MACRO ASSEMBLER, V4.1 MODULE PAGE 4 LOC OBJ LINE SOURCE STATEMENT 000A 1200 D 159 DW ACTUAL 000C 1800 D 160 DW STATUS 161 ; 000E 0000 162 WBLK: DW 0 0010 1C00 D 163 DW BUFFER 0012 164 ACTUAL: DS 2 0014 1800 D 165 DW STATUS 166 ; 167 168 0016 1800 D 169 XBLK: DW STATUS 170 EBLK: 0018 171 STATUS: DS 2 001A 1800 D 172 DW STATUS 173 ; 001C 174 BUFFER: DS 128 175 ; 009C 176 FILENM: DS 128 177 ; 011C 178 LINCNT: DS 2 179 ; 011E 180 RESPONSE: DS 128 181 ; 019E 182 STCKA: DS 4 183 ; 0000 C 184 END BEGIN PUBLIC SYMBOLS EXTERNAL SYMBOLS CI E 0000 CO E 0000 ISIS E 0000 USER SYMBOLS ACTUAL D 0012 AFT D 0004 BEGIN C 0000 BUFFER D 001C CAFT D 0000 CBLK D 0000 CI E 0000 CLOSE A 0001 CO E 0000 CR A 000D CRTD A 00F6 CRTI C 0077 CRTIN C 006C CRTO C 0083 CRTOUT C 0061 CRTS A 00F7 DONE C 008E DONE0 C 0096 DTR A 0002 EBLK D 0018 ERR C 009E ERROR A 000C EXIT A 0009 FILENM D 009C GETFN C 0003 ISIS E 0000 LF A 000A LINCNT D 011C LINEWD C 0059 MOVEIT C 001A OPEN A 0000 RBLK D 0004 READ A 0003 RESPON D 011E RRDY A 0002 SIZECM C 0053 STATUS D 0018 STCKA D 019E TRDY A 0001 TTYC A 00F5 TTYI A 00F4 TTYO A 00F4 TTYS A 00F5 UREAD C 0033 WBLK D 000E WRITE A 0004 XBLK D 0016 ZERO C 0030 ASSEMBLY COMPLETE, NO ERRORS