
 1000  *---------------------------------
 1010  *      STRING SWAP FOR APPLESOFT
 1020  *      "BRUN B.STRING.SWAP" TO SET IT UP;
 1030  *      THEN "&A$,B$" MEANS SWAP A$ AND B$.
 1040  *---------------------------------
 1050         .OR $300
 1060         .TF B.STRING.SWAP
 1070  *---------------------------------
 1080  AMPERSAND.VECTOR    .EQ $3F5
 1090  *---------------------------------
 1100  PTRGET              .EQ $DFE3   SCAN FOR VARIABLE NAME,
 1110  *                               SEARCH FOR ITS ADDRESS,
 1120  *                               LEAVE ADDRESS IN $83,$84
 1130  *                               AND A,Y
 1140  *---------------------------------
 1150  SCAN.COMMA          .EQ $DEBE   IF NEXT CHARACTER IS
 1160  *                               IS A COMMA, SCAN OVER
 1170  *                               IT; IF NOT, SYNTAX ERROR.
 1180  *---------------------------------
 1190  A.PNTR .EQ $85,86
 1200  B.PNTR .EQ $83,84
 1210  *---------------------------------
 1220  SETUP  LDA #SWAP    SET UP AMPERSAND VECTOR
 1230         STA AMPERSAND.VECTOR+1
 1240         LDA /SWAP
 1250         STA AMPERSAND.VECTOR+2
 1260         LDA #$4C     JMP OPCODE
 1270         STA AMPERSAND.VECTOR
 1280         RTS
 1290  *---------------------------------
 1300  SWAP   JSR PTRGET   GET POINTER TO FIRST STRING
 1310         STA A.PNTR
 1320         STY A.PNTR+1
 1330         JSR SCAN.COMMA  CHECK FOR COMMA
 1340         JSR PTRGET
 1350         LDY #2       PREPARE TO SWAP 3 BYTES
 1360  .1     LDA (A.PNTR),Y  
 1370         PHA
 1380         LDA (B.PNTR),Y
 1390         STA (A.PNTR),Y
 1400         PLA
 1410         STA (B.PNTR),Y
 1420         DEY          NEXT BYTE
 1430         BPL .1
 1440         RTS          RETURN

