0000 ΜιστιξησΊ 0001 0002 01 LBL "ROM>DSK" 0003 02 E2 0004 03 PSIZE Set SIZE 100. 0005 04 "BBBBEEEE?" Ask for start 0006 05 AON and end of 0007 06 PROMPT the routine. 0008 07 COD Read ROM and 0009 08 . write it in 0010 09 ROM>REG RAM from R00. 0011 10 "FILENAME?" Ask for file 0012 11 PROMPT name. 0013 12 AOFF 0014 13 RCL L Recall last 0015 used register 0016 14 E Add 1 to have 0017 15 + total # of 0018 registers. 0019 16 CREATE Create file 0020 DATA. 0021 17 . 0022 18 SEEKR Seek R0. 0023 19 RDN 0024 20 E 0025 21 - 0026 22 E3 Calculate 0027 23 / bbb.eee. 0028 24 WRTRX Write bbb.eee. 0029 25 END End program. 0030 0031 01 LBL "DSK>ROM" 0032 02 RCLFLAG Recall user 0033 and status 0034 flags. 0035 03 FIX 0 No fraction. 0036 04 CF 29 No radix. 0037 05 E2 0038 06 PSIZE Set SIZE 100. 0039 07 RDN 0040 08 "FILENAME?" Ask for file 0041 09 AON name. 0042 10 PROMPT 0043 11 ALENG Length of file 0044 name. 0045 12 READR Read registers 0046 to RAM. 0047 13 "PAGE?" Ask for page 0048 14 PROMPT number. 0049 15 AOFF 0050 16 "|-FF0" Append start 0051 address. 0052 17 LROM Locate last 0053 EROM word. 0054 18 "|-***" 0055 19 4 0056 20 AROT Take word 0057 21 ASHF value off. 0058 22 RDN 0059 23 COD Code alpha. 0060 24 H>D BIN to BCD. 0061 25 DECOD Decode in 0062 alpha. 0063 26 RDN 0064 27 ANUM Recall it in 0065 alpha. 0066 28 E Next address 0067 29 + is start addr. 0068 30 CLA 0069 31 ARCL X Put in alpha. 0070 32 + Add X to Y and 0071 obtain address 0072 to update the 0073 FAT. 0074 33 COD Code start 0075 address. 0076 34 D>H BCD to BIN. 0077 35 . 0078 36 REG>ROM Copy routine 0079 to ROM. 0080 37 CLA 0081 38 ARCL Z Recall FAT 0082 address. 0083 39 R^ 0084 40 COD Code in alpha. 0085 41 D>H BDC>BIN. 0086 42 DECOD Decode in 0087 alpha. 0088 43 "|-00" Append 00. 0089 44 4 0090 45 AROT Obtain 00XXXX. 0091 46 AFAT Update the FAT 0092 47 RDN 0093 48 RDN 0094 49 STOFLAG Restore flags. 0095 50 END End program. 0096 0097 084 "D" 0098 03E ">" 0099 008 "H" 0100 1A0 A=B=C=0 0101 0F8 READ 3(X) 0102 128 WRIT 4(L) 0103 158 M=C ALL 0104 0E0 SLCT Q 0105 2DC R= 13(D) 0106 01B JNC +03 0107 0E0 SLCT Q 0108 3D4 R=R-1 0109 0EE C<>B ALL 0110 070 N=C ALL 0111 04E C=0 ALL 0112 130 LDI S&X 0113 001 HEX:001 0114 308 SETF 1 0115 1A3 JNC +34 0116 0A0 SLCT P 0117 39C R= 0 0118 0AE A<>C ALL 0119 0B0 C=N ALL 0120 0EE C<>B ALL 0121 198 C=M ALL 0122 0AE A<>C ALL 0123 1CE A=A-C ALL 0124 02F JC +05 0125 06E A<>B ALL 0126 162 A=A+1 @R 0127 06E A<>B ALL 0128 3DB JNC -05 0129 14E A=A+C ALL 0130 06E A<>B ALL 0131 3EE LSHFA ALL 0132 06E A<>B ALL 0133 0AE A<>C ALL 0134 158 M=C ALL 0135 130 LDI S&X 0136 00A HEX:00A 0137 362 ?A#C @R 0138 30F JC -1F 0139 198 C=M ALL 0140 0E2 C<>B @R 0141 0EE C<>B ALL 0142 304 CLRF 1 0143 38C ?FSET 0 0144 0BF JC +17 0145 30C ?FSET 1 0146 317 JC -1E 0147 0E8 WRIT 3(X) 0148 000 NOP 0149 000 NOP 0150 2C9 0151 042 ?NCGO 10B2 0152 088 "H" 0153 03E ">" 0154 004 "D" 0155 0F8 READ 3(X) 0156 128 WRIT 4(L) 0157 304 CLRF 1 0158 388 SETF 0 0159 0E0 SLCT Q 0160 2DC R= 13(D) 0161 2A0 SETDEC 0162 013 JNC + 02 0163 3D4 R=R-1 0164 2E2 ?C#0 @R 0165 3F3 JNC -02 0166 01B JNC +03 0167 260 SETHEX 0168 384 CLRF 0 0169 0A0 SLCT P 0170 39C R= 0 0171 0EE C<>B ALL 0172 04E C=0 ALL 0173 10E A=C ALL 0174 1EE C=C+C ALL 0175 1EE C=C+C ALL 0176 20E C=C+A ALL 0177 1EE C=C+C ALL 0178 00E A=0 ALL 0179 066 A<>B ALL 0180 086 B=A S&X 0181 3AE RSHFB ALL 0182 3E6 LSHFA S&X 0183 3E6 LSHFA S&X 0184 0AE A<>C ALL 0185 23C RCR 2 0186 20E C=C+A ALL 0187 120 ?P=Q 0188 29F JC -2D 0189 3DC R=R+1 0190 37B JNC -11 0191 000 NOP 0192 0193 0194 0195 0196 HAPPY PROGRAMMING! 0197 AND 0198 HAPPY DISK SWAPPING! 0199 0200 Alessandro Piovaccari 0201 via Orto Torre 3 0202 44014 Longastrino FE 0203 ITALY 0204 0205 CHHU#1323 - PPC-T#728