AS L 0010 ; SymLink - Remote 0020 ; VERS 1.05 (1.16.88) 0030 ; Striped Version 0040 0050 ; This program will only LOad file from PC. 0060 ; To use - compile program and from RAE prompt 0070 ; type RU LINK. The program message will be 0080 ; displayed followed by the RAE prompt. At RAE prompt 0090 ; type LO xx where xx is file name on PC. The ".RAE" 0100 ; file extension on PC is assumed. 0110 0120 .BA $7000 0130 .OS 0140 .ES 0150 0160 ; **** PAGE ZERO **** 0170 0180 BYTLO .DE $30 0190 RAE_TXTPR .DE $D3 0200 RAE_DIFLG .DE $EE 0210 RAE_LOVEC .DE $F2 0220 0230 ; **** RAE **** 0240 0250 TEXTST .DE $100 ; text start 0260 TEXTEN .DE $102 ; text end 0270 RAE_BUFR .DE $135 ; RAE cmd buffer 0280 RAE_WARM .DE $B05E ; RAE warm entry 0290 0300 ; **** SYM **** 0310 0320 CRLF .DE $834D 0330 INTCHR .DE $8A58 0340 OUTCHR .DE $8A47 0350 PBDA .DE $A402 0360 0370 ; **** Sym Link **** 0380 0410 ;------ (* MACRO *) print a string 0420 0430 !!!PRINT .MD (...TEXT) 0440 LDX #0 0450 ...P1 LDA ...TEXT,X 0460 BEQ ...OUT 0470 JSR OUTCHR 0480 INX 0490 BNE ...P1 0500 ...OUT .ME 0510 0520 ; **** SymLink - Remote **** 0530 0540 LINK PRINT (LOG_ON) 7000- A2 00 7002- BD EB 70 7005- F0 06 7007- 20 47 8A 700A- E8 700B- D0 F5 700D- 20 4D 83 0550 JSR CRLF 0560 0570 ; **** RAE Program Interface **** 0580 0590 0600 ;----- install new vectors 0610 7010- A9 1B 0620 LDA #L,LO_COM 7012- 85 F2 0630 STA *RAE_LOVEC 7014- A9 70 0640 LDA #H,LO_COM 7016- 85 F3 0650 STA *RAE_LOVEC+1 7018- 4C 5E B0 0660 EXIT JMP RAE_WARM 0670 0680 ;------ **** LOad a file **** 0690 701B- C0 50 0700 LO_COM CPY #$50 701D- D0 0E 0710 BNE LO_OK 0720 PRINT (ERR_1) 701F- A2 00 7021- BD 23 71 7024- F0 06 7026- 20 47 8A 7029- E8 702A- D0 F5 702C- 60 0730 RTS 0740 702D- A2 00 0750 LO_OK LDX #$00 702F- 86 EE 0760 STX *RAE_DIFLG 7031- A9 1B 0770 LDA #$1B ; Get IBM attention 7033- 20 47 8A 0780 JSR OUTCHR 7036- A9 52 0790 LDA #'R 7038- 20 47 8A 0800 JSR OUTCHR 703B- 20 CB 70 0810 JSR XFERNAM ;Transfer file name 0820 0830 ;------ **** get ok from IBM **** 0840 703E- 20 58 8A 0850 JSR INTCHR 7041- C9 02 0860 CMP #$02 7043- F0 08 0870 BEQ LOFILE 7045- A9 06 0880 LDA #$06 7047- 20 47 8A 0890 JSR OUTCHR 704A- 4C 18 70 0900 JMP EXIT 0910 704D- A9 07 0920 LOFILE LDA #$07 704F- 20 47 8A 0930 JSR OUTCHR 7052- 20 58 8A 0940 JSR INTCHR 7055- 85 30 0950 STA *BYTLO 7057- 20 58 8A 0960 JSR INTCHR 705A- 85 31 0970 STA *BYTLO+1 705C- 18 0980 CLC 705D- A5 30 0990 LDA *BYTLO 705F- 6D 00 01 1000 ADC TEXTST 7062- 85 30 1010 STA *BYTLO 7064- A5 31 1020 LDA *BYTLO+1 7066- 6D 01 01 1030 ADC TEXTST+1 7069- 85 31 1040 STA *BYTLO+1 1050 1060 ; **** reset RAE text pointer **** 1070 706B- AD 00 01 1080 LDA TEXTST 706E- 85 D3 1090 STA *RAE_TXTPR 7070- AD 01 01 1100 LDA TEXTST+1 7073- 85 D4 1110 STA *RAE_TXTPR+1 1120 1130 ; **** Get data from IBM **** 1140 7075- A2 00 1150 LDX #$00 7077- 20 99 70 1160 RX.DATA JSR RX_CHR 707A- 81 D3 1170 STA (RAE_TXTPR,X) 707C- A5 D3 1180 LDA *RAE_TXTPR 707E- C5 30 1190 CMP *BYTLO 7080- D0 06 1200 BNE MOVPTR2 7082- A5 D4 1210 LDA *RAE_TXTPR+1 7084- C5 31 1220 CMP *BYTLO+1 7086- F0 08 1230 BEQ EXIT_RX 1240 7088- E6 D3 1250 MOVPTR2 INC *RAE_TXTPR 708A- D0 EB 1260 BNE RX.DATA 708C- E6 D4 1270 INC *RAE_TXTPR+1 708E- D0 E7 1280 BNE RX.DATA 1290 1300 ; **** Set the forward pointer **** 1310 7090- A9 00 1320 EXIT_RX LDA #$00 7092- A0 02 1330 LDY #$02 7094- 91 D3 1340 STA (RAE_TXTPR),Y 7096- 4C 5E B0 1350 JMP RAE_WARM 1360 1370 ; **** 9600 Baud rx driver **** 1380 7099- A0 08 1390 RX_CHR LDY #8 709B- AD 02 A4 1400 CKPORT LDA PBDA 709E- 10 FB 1410 BPL CKPORT 70A0- A9 00 1420 LDA #0 70A2- 8D 44 71 1430 STA RX_BYTE 70A5- 20 BE 70 1440 JSR TIMER1 70A8- AD 02 A4 1450 NEXBIT LDA PBDA 70AB- 2A 1460 ROL A 70AC- 6E 44 71 1470 ROR RX_BYTE 70AF- 20 C4 70 1480 JSR TIMER2 70B2- 88 1490 DEY 70B3- D0 F3 1500 BNE NEXBIT 70B5- 20 C4 70 1510 JSR TIMER2 70B8- AD 44 71 1520 LDA RX_BYTE 70BB- 49 FF 1530 EOR #$FF 70BD- 60 1540 RTS 1550 1560 ; **** Delay for 1.5 bit times **** 1570 70BE- A2 19 1580 TIMER1 LDX #25 70C0- CA 1590 DEX 70C1- D0 FD 1600 BNE TIMER1+2 70C3- 60 1610 RTS 1620 1630 ; **** Delay for 1 bit time **** 1640 70C4- A2 0E 1650 TIMER2 LDX #14 70C6- CA 1660 DEX 70C7- D0 FD 1670 BNE TIMER2+2 70C9- EA 1680 NOP 70CA- 60 1690 RTS 1700 1710 ; **** Send the filename **** 1720 70CB- B9 35 01 1730 XFERNAM LDA RAE_BUFR,Y 70CE- 20 47 8A 1740 JSR OUTCHR 70D1- C8 1750 INY 70D2- E8 1760 INX 70D3- E0 08 1770 CPX #$08 70D5- D0 F4 1780 BNE XFERNAM 70D7- A9 2E 1790 EXTN LDA #'. 70D9- 20 47 8A 1800 JSR OUTCHR 70DC- A0 00 1810 LDY #$00 70DE- B9 3F 71 1820 XFEREXT LDA REXT,Y 70E1- F0 07 1830 BEQ EXITXF 70E3- 20 47 8A 1840 JSR OUTCHR 70E6- E8 1850 INX 70E7- C8 1860 INY 70E8- D0 F4 1870 BNE XFEREXT 70EA- 60 1880 EXITXF RTS 1890 1900 1910 ; **** Sign on message **** 1920 70EB- 0D 0A 1930 LOG_ON .BY $0D $0A 70ED- 53 79 6D 1940 .BY 'SymLink - Remote' $0D $0A 70F0- 4C 69 6E 70F3- 6B 20 2D 70F6- 20 52 65 70F9- 6D 6F 74 70FC- 65 0D 0A 70FF- 56 65 72 1950 .BY 'Vers 1.05 (1.16.88)' $0D $0A 7102- 73 20 31 7105- 2E 30 35 7108- 20 28 31 710B- 2E 31 36 710E- 2E 38 38 7111- 29 0D 0A 7114- 50 46 53 1960 .BY 'PFS (c) 1987' $0D $0A 7117- 20 28 63 711A- 29 20 31 711D- 39 38 37 7120- 0D 0A 7122- 00 1970 .BY $00 1980 1990 ; **** Error messages **** 2000 7123- 49 6E 76 2010 ERR_1 .BY 'Invalid, or no parameters' 7126- 61 6C 69 7129- 64 2C 20 712C- 6F 72 20 712F- 6E 6F 20 7132- 70 61 72 7135- 61 6D 65 7138- 74 65 72 713B- 73 713C- 0D 0A 00 2020 .BY $0D $0A $00 2030 713F- 52 41 45 2040 REXT .BY 'RAE' $0D $00 7142- 0D 00 7144- 2045 RX_BYTE .DS 1 2050 .EN 0000,7145,7145 >