SASNT XCHG ;USRRET=PLAD to DRDE; UDRDE to DRHL; XTHL ;UDRDE to TOS; FRRET to DRHL; PUSH B ;UDRBC to TOS; PUSH PSW ;UDRPSW&A to TOS; XCHG ;USRRET=-PLAD to DRHL; FRRET to DRDE; JMP FRNTD ;Go load only one field addr ; and length parameter; DASNT XCHG ;USRRET=PLAD to DRDE; UDRDE to DRHL; XTHL ;UDRDE to TOS; FRRET to DRHL; PUSH B ;UDRBC to TOS; PUSH PSW ;UDRPSW&A to TOS; XCHG ;USRRET=PLAD to DRHL; FRRET to DRDE; MOV C,M ;FIELD1 addr LOB to SRC; INX H ;Incr USRRET=-PLAD (+1 DASNT); MOV B,M ;FIELD1 addr HOB to SRB; INX H ;Incr USRRET=PLAD (+2 DASNT); FRNTD PUSH D ;FRRET to TOS; MOV E,M ;FIELD/FIELD2 addr LOB to SRE; INX H ;Incr USRRET=PLAD (+3 DASNT; +1 SASNT); MOV D,M ;FIELD/FIELD2 addr HOB to SRD; INX H ;Incr USRRET=PLAD (+4 DASNT;+2 SASNT); MOV A,M ;Length/Size param to SRA; INX H ;Incr USRRET=PLAD (+5 DASNT;+3 SASNT); XTHL ;True USRRET to TOS; FRRET to DRHL; PUSH H ;FRRET to TOS; MOV H,A ;Length/Size param to SRH; RET ;Return to calling function routine; DASXR XTHL ;UDRHL to TOS; FRRET=FRCOMMAND ; address to TOS; SHLD DASFC+1 ;Store FRCOMMAND address in CALL; POP H ;TOS=UDRHL to DRHL clear return; XTHL ;UDRHL to TOS; USRRET=PLAD to DRHL; CALL DASNT ;Call DASNT to load parameters; DASXL LDAX D ;Indexed FIELD2 char to SRA; MOV L,A ;Move into SRL; LDAX B ;Indexed FIELD1 char to SRA; DASFC CALL 000000O ;Call the execution commands; STAX B ;Store result in indexed FIELD1; INX B ;Incr FIELD1 address index; INX D ;Incr FIELD2 address index; DCR H ;Decrement length/size; JNZ DASXL ;Loop until count is zero; FRXIT POP H ;True USRRET to DRHL; POP B ;UDRPSW&A to DRBC; MOV A,B ;USRA to SRA; PSW=FRPSW; FRXT2 POP B ;TOS=UDRBC to DRBC; POP D ;TOS=UDRDE to ORDE; XTHL ;True USRRET to TOS; TOS=UDRHL to DRHL; RET ;Return to user; regs+user regs; NCHR CALL DASXR ;CALL DASXR execution control rtn ; passing address of following; ANA L ;Logical AND SRL to SRA; RET ;Return to DASXR; OCHR CALL DASXR ;See NCHR comment at address 071; ORA L ;Logical OR SRL to SRA; RET ;Return to DASXR; XCHR CALL DASXR ;See NCHR comment at address 071; XRA L ;Logical XOR SRL to SRA; RET ;Return to DASXR; MVCHR CALL DASXR ;See NCHR comment at address 071; MOV A,L ;Move SRL to SRA; RET ;Return to DASXR; SWCHR CALL DASXR ;See NCHR comment at address 071; STAX D ;SRA to indexed FIELD2 char; MOV A,L ;Move SRL to SRA: RET ;Return to DASXR; CLCHR CALL DASXR ;See NCHR comment at address 071; CMP L ;Compare SRL to SRA; RZ ;Return to DASXR if equal; CMC ;Else reverse inequality flag; POP H ;Clear return address by popping; JMP FRXIT ;Bust out to function exit logic; SASIX XTHL ;UDRHL to TOS; FRRET=FRCOMMAND ; address to TOS; SHLD SASIC+1 ;Store FRCOMMAND address in CALL; POP H ;TOS=UDRHL to DRHL clear return; XTHL ;UDRHL to TOS; USRRET=PLAD to DRHL; CALL SASNT ;Call SASNT to load Parameters; XTHL ;USRRET=PLAD+3 to DRHL; FDRHL to TOS; MOV A,M ;Immediate character value to SRL; INX H ;Incr USRRET=PLAD (+4 immed group); XTHL ;True USRRET to TOS; FDRHL to DRHL; MOV L,A ;Move ICV to SRL; SASIL LDAX D ;Indexed FIELD char to SRA; SASIC CALL 000000O ;CALL the execution commands; STAX D ;Store result in indexed FIELD; INX D ;Incr FIELD address Index; DCR H ;Decrement length/size; JNZ SASIL ;Loop until count is zero; JMP FRXIT ;Jump to funct routine exit logic; NICH CALL SASIX ;CALL SASIX execution control rtn ; passing address of following; ANA L ;Logical AND SRL=ICV to SRA; RET ;Return to SASIX; OICH CALL SASIX ;See NICH comment at address 170; ORA L ;Logical OR SRL to SRA; RET ;Return to the SASIX routine; XICH CALL SASIX ;See NICH comment at address 170: XRA L ;Logical XOR SRL to SRA; RET ;Return to SASIX; MVICH CALL SASIX ;See NICH comment at address 170; MOV A,L ;Move SRL to SRA; RET ;Return to SASIX; VALFX XTHL ;UDRHL to TOS; FRRET=FRCOMMAND ; address to DRHL; SHLD VALFC+1 ;Store FRCOMMAND address in CALL; POP H ;TOS=UDRHLto DRHL clear return; XTHL ;UDRHL to TOS; USRRET=PLAD to DRHL; CALL SASNT ;Call SASNT to load parameters; VALFL LDAX D ;Indexed FIELD character to SRA; VALFC CALL 000000O ;CALL the execution commands; JNZ FRXIT ;If character not valid exit; INX D ;Incr FIELD address Index; DCR H ;Decrement length/size; JNZ VALFL ;Loop until count Is zero; JMP FRXIT ;Jump to exit all chars valid; VALAS CALL VALFX ;CALL VALFX execution control rtn ; passing address of following; VALAC CPI 040O ;Is SRA a space? RZ ;Return to VALFX if equal; VALAO CPI 101O ;Is SRA an 'A'? RC ;Return to VALFX if less than 'A'; CPI 132O ;Is SRA a 'Z' VALXT RZ ;Return to VALFX if equal; RNC ;Return to VALFX if greater; CMP A ;Compare SRA to SRA force Z=1; RET ;Return to VALFX char is valid; VALNS CALL VALFX ;See VALAS comment at addr 244; VALNC CPI 060O ;Is SRA a '0'? RC ;Return to VALFX if less; CPI 071O ;Is SRA a '9' JMP VALXT ;Jump to validation exit logic; VALOS CALL VALFX ;See VALAS comment at addr 244; VALOC CPI 060O ;Is SRA a '0'? RC ;Return to VALFX if less; CPI 067O ;Is SRA a '7'? JMP VALXT ;Jump to valicfation exit logic; VALXS CALL VALFX ;See VALAS comment at addr 244; VALXC CALL VALAC ;Call VALAC utility routine; RZ ;Return to VALFX if alphabetic; CALL VALNC ;Call VALNC utility routine; RET ;Return to VALFX; VALHS CALL VALFX ;See VALAS comment at addr 244; VALHC CALL VALNC ;Call VALNC utility routine; RZ ;Return to VALFX if numeric; CPI 101O ;Is SRA an 'A'? RC ;Return to VALFX if less; CPI 106O ;Is SRA an 'F'? JMP VALXT ;Jump to validation exit logic; MVSYM XTHL ;UDRHL to TOS; USRRET=PLAD to DRHL; CALL DASNT ;Call DASNT function entry rtn; XTHL ;USRRET=PLAD+5 to DRHL; FDRHL to TOS; MOV A,M ;Move stop char to SRA; INX H ;Incr USRRET=TRUERET=PLAD+6; XTHL ;True USRRET to TOS; FRDHL to DRHL; MOV L,A ;Move stop char from SRA to SRL; PUSH H ;DRHL to TOS for length moved calc; MVSYL LDAX D ;Indexed FIELD2 char to SRA; CMP L ;Compare it to stop char; JZ MVSYX ;If equal go to MVSYM exit logic; STAX B ;Else store in indexed FIELD1; INX B ;Incr FIELD1 address Index; INX D ;Incr FIELD2 address index; DCR H ;Decrement length/size; JNZ MVSYL ;Loop until count is zero; MVSYX POP PSW ;DRHL from 354 is popped SRA=len; SUB H ;Subtr remaining len = moved len, POP H ;True USRRET to DRHL; POP B ;UDRPSW&A discarded by this pop; JMP FRXT2 ;Exit skipping SRA restore;