
 1000  *---------------------------------
 1010  *      FAST STRING INPUT ROUTINE
 1020  *      &GET <STRING VARIABLE>
 1030  *      ACCEPTS ANY CHARACTER, UNLIKE NORMAL INPUT
 1040  *---------------------------------
 1050         .OR $300
 1060         .TF B.FAST READ
 1070  *---------------------------------
 1080  AS.CHRGET  .EQ $00B1
 1090  AS.SYNERR  .EQ $DEC9
 1100  AS.INLINE  .EQ $D52C
 1110  AS.PTRGET  .EQ $DFE3
 1120  AS.GETSPA  .EQ $E452
 1130  AS.MOVSTR  .EQ $E5E2
 1140  *---------------------------------
 1150  ADDR       .EQ $71 AND 72
 1160  PNTR       .EQ $83 AND 84
 1170  LENGTH     .EQ $9D
 1180  BUFFER     .EQ $200
 1190  *---------------------------------
 1200  GET    CMP #$BE     "GET" TOKEN
 1210         BEQ .1       YES
 1220         JMP AS.SYNERR  SORRY...
 1230  .1     JSR AS.CHRGET SET UP THE FOLLOWING CHARACTER
 1240         JSR AS.PTRGET FIND THE STRING VARIABLE POINTER
 1250         JSR AS.INLINE READ A LINE INTO BUFFER
 1260  .2     INX          COMPUTE THE LENGTH OF THE LINE
 1270         LDA BUFFER,X
 1280         BNE .2       NOT AT END OF LINE YET
 1290         STX LENGTH   SAVE LINE LENGTH
 1300         TXA
 1310         JSR AS.GETSPA  GET SPACE IN STRING AREA
 1320         LDY #0       SET UP STRING VARIABLE POINTER
 1330         STA (PNTR),Y   LENGTH
 1340         INY
 1350         LDA ADDR
 1360         STA (PNTR),Y   ADDRESS (LO-BYTE)
 1370         INY
 1380         LDA ADDR+1
 1390         STA (PNTR),Y   ADDRESS (HI-BYTE)
 1400         LDY /BUFFER    SET UP TO COPY STRING DATA
 1410         LDX #BUFFER    INTO STRING AREA
 1420         LDA LENGTH
 1430         JMP AS.MOVSTR  COPY IT NOW, AND RETURN

