Ele tá dentro do all-in-one.
Dá uma olhada nos outros arquivos/pastas
https://github.com/JoseQuintas/AllInOneÉ que é retirado direto do meu aplicativo, a maioria é fácil de trocar por alguma sua.
Cls() - limpar a tela, já numa área igual do aplicativo
MsgWarning() - mensagem de alerta, só mostrar o texto e aguardar ENTER.
SayScroll() - faz um SAY na tela e a tela vai subindo, igual Scroll()
Mensagem() - Essa varia, porque além de mostrar uma mensagem na última linha, pode ou não aguardar resposta.
GravaOcorrencia() - Isso é do meu aplicativo, só criar com RETURN NIL, é pra gravar log
RecDelete() - bloqueia e apaga (DELETE)
MacroType() - É equivalente ao Type(), pra macros, mas com tratamento de erro
WSave() - Salvar tela (Window Save), como SaveScreen(a,b,c,d,e)
WRestore() - Restaura tela (Window Restore), como RestoreScreen(a,b,c,d,e)
RunCmd() - Mania vinda do Blinker, é o RUN
MsgYesNo() - Mensagem Sim ou Não, que retorna .T. ou .F.
MyTempFile() - arquivo temporário
RecLock() - bloqueia registro
PicVal() - Picture pra numéricos, exemplo Pic(9,2) "@E 999,999,999.99"
MsgExclamation() - Mostra mensagem e aguarda ENTER
RecUnlock() - desbloqueia registro
Até que são muitas.
Mas tem tudo lá no GitHub, pelo menos simplificadas.
Qualquer coisa compile o projeto inteiro, e apenas altere o "dbase" pra Main() ou uma chamada em Main()
No meu caso está embutdo no aplicativo, liberado conforme senha.
Pode substituir a maioria dessas rotinas pelas que usa no seu aplicativo.