0010 аутоматед═лоад═анд═саже 0020 мцоде═фунцтионс 0030 0040 0050 These two routines are a 0060 first (I haven't seen another) 0070 idea to save or load MCODE to 0080 or from disk, giving only the 0090 function name. 0100 0110 ром╬дск 0120 0130 This routine allows you 0140 to save mcode functions 0150 giving ОНЛЫ the start and 0160 final addresses and the 0161 filename. 0170 WARNING: 0180 The start address must include 0190 the function name. The file 0200 name must have as many 0210 characters as the function 0211 name. 0220 Otherwise it won't work 0230 correctly. 0240 0250 BBBBEEEE? 0260 BBBB=start address 0270 EEEE= end address 0280 (HEXA)-(see note) 0290 FILENAME? 0300 disk or cassette 0310 filename (see note) 0320 0330 That's all! 0340 0350 дск╬ром 0360 0370 This routine allows you to 0380 load the mcode function that 0390 you saved with ROM>DSK giving 0400 ОНЛЫ the filename and the ROM 0410 page! 0420 This routine updates the FAT 0430 automatically! 0440 0450 FILENAME? 0460 the name of the 0470 disk file. 0480 0490 PAGE? 0500 ROM page 0510 (HEX). 0520 0530 That's all! 0540 0550 нОТЕС╨ 0560 #1. External Function: 0570 PSIZE,ALENG,ANUM,AROT 0580 from XFN; 0590 CREATE,SEEKR,WRTRX,READR 0600 from HP-IL; 0610 COD,DECOD,REG>ROM,ROM>REG, 0620 LROM,AFAT 0630 from ERAMCO MLDL OS; 0640 D>H,H>D are mcode routines 0650 from D.Amos (PPCV12N1P3), 0660 see note #2. 0670 0680 #2. Original D>H and H>D are 0690 modified in the direct 0700 call of decode routine. 0710 The original version is 0720 Port dependent, therefore I 0730 prefearred to call it from 0740 user code. It's more 0750 flexible! 0760 These are real BCD to BIN 0770 and BIN to BCD routines 0780 at bit level for big 0790 numbers! 0800 I think that for this 0810 application BCD>BIN and 0820 BIN>BCD from ASSEMBLER3 0830 could work, as well. But I 0831 am not sure. 0840 DEC-->HEX: 0850 DEC in Alpha 0860 COD 0870 D>H 0880 DECOD 0890 -->HEX in Alpha 0900 HEX-->DEC: 0910 HEX in Alpha 0920 COD 0930 H>D 0931 DECOD 0932 -->DEC in Alpha 0940 0950 #3. These routines must be in 0960 the order H>D, D>H without 0970 NOPs between them. 0980 The two NOPs in the H>D 0990 must be there (ex decode 1000 routine call). 1010 Otherwise you must 1020 change the relative jumps! 1021 See listings. 1030 1040 #4. The programs use all 41's 1050 register. I use size 100, 1060 but you can change it. 1070 1080 #5. The name of the disk file 1090 must have as many 1100 characters as the mcode 1101 function name. 1110 1120 #6. LROM starts from address 1130 XF00, but in theory could 1140 begin at XFF4 (I have same 1150 problems with W&W RAMBOX). 1160 WARNING: Not used ROM 1170 must be cleared! 1180 1190 #7. This program doesn't check 1200 for EROM availability: it 1210 can overwrite over 1220 interrupt vectors 1229 (===> CRASHHHHH!) 1230 or in the next EROM page 1240 FAT. 1250 1260 #8. If you have a routine 1270 that includes more functions 1280 you can broke it in many 1290 others, then you must load 1300 them in the same order! 1310 You can also save it as a 1315 a simple function, but when 1316 you load it you must update 1320 the FAT manually for the 1330 second and following 1340 functions. 1350 Remember: the function name 1360 must be at the beginning of 1370 the routine, otherwise the 1380 program won't update the 1390 FAT correctly. If this 1400 isn't the case, you will 1410 have to change the address 1411 manually. 1420