* *``````````````````````````````* * DOSCMD : EXECUTE DOS COMMAND * *- -* * EXECUTES A DOS COMMAND THAT * * IS PASSED VIA AN ASC THAT * * FOLLOWS THE JSR TO THE * * ROUTINE. * *- -* * CLOBBERS: * * * * FLAGS: ????---- REG: AXYM * *- -* * CYCLES: ??? * * SIZE: * *- -* * USAGE: * * * * JSR DOSCMD * * ASC "CATALOG" * * HEX 8D00 * *- -* * ENTRY * * * * TOP OF STACK * * * * LOW BYTE OF RETURN ADDRESS * * HI BYTE OF RETURN ADDRESS * *- -* * EXIT * * * * TOP OF STACK * * * * LOW BYTE OF RETURN ADDRESS * * HI BYTE OF RETURN ADDRESS * * * * .Y = CLOBBERED * * .X = UNCHANGED * * .A = UNCHANGED * *,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,* * DOSCMD * ** GET RETURN ADDRESS * PLA STA RETADR PLA STA RETADR+1 * LDA #$8D JSR FCOUT LDA #$84 ; CTRL-D JSR FCOUT * ** NOW SEND STRING TO COUT * LDY #$01 ; POINT TO NEXT INSTR :LP LDA (RETADR),Y BEQ :DONE JSR FCOUT INY BNE :LP :DONE CLC ; RESTORE INSTR POINTER TYA ADC RETADR STA RETADR LDA RETADR+1 ADC #$00 PHA LDA RETADR PHA * RTS *