Gyakorlat – Az Altair programja a CP/M használatával
Ebben a gyakorlatban megtanulhatja, hogyan kezdheti el az Altair emulátor programozását.
Csatlakozás a webes terminálhoz
- Váltson vissza a webböngésző webes termináljához.
- Szükség esetén hitelesítse a webes terminált.
- Előfordulhat, hogy az Altair emulátor már a webes terminálhoz való csatlakozás előtt elindult. Ha igen, nyomja le az Azure Sphere RE Standard kiadás T gombját az Altair emulátor újraindításához. Amikor az Azure Sphere újraindul, a CP/M
>
üzenet megjelenik a webes terminálban.
A CP/M használatának első lépései
A CP/M-ről további információt a CP/M referencia-kézikönyvében talál.
Íme néhány CP/M parancs az első lépésekhez:
Címtárlista lekérése:
dir
Fájl törlése:
era *.txt
Másolja a Microsoft BASIC-t
mbasic.com
az A meghajtóról a B meghajtóra:pip b:=a:mbasic.com
Fájl tartalmának listázása:
type hw.c
Fájl átnevezése:
ren hello.c=hw.c
A Microsoft BASIC-80 használatának első lépései
A Microsoft BASIC-ről további információt a Microsoft BASIC-80 referencia-kézikönyvében talál.
A Microsoft BASIC-80 az A meghajtón található.
A Microsoft BASIC elindításához a CP/M parancssorból adja meg a következőt:
mbasic B:TEST.BAS
A Microsoft BASIC elindítása után megnyílik vagy létrehoz egy TEST nevű fájlt. BAS a B meghajtón.
Adja meg az első programot:
10 for i = 1 to 1000 20 print i 30 next i
Mentse a programot lemezre:
save "B:TEST.BAS"
Töltse be a programot a lemezről:
load "B:TEST.BAS"
A Ctrl+C billentyűkombinációval állítsa le a program futtatását.
Kilépés a BASIC-ből:
system
A BASIC-ről az Altair emulátorhoz mellékelt alábbi BASIC-alkalmazásokból tudhat meg többet:
- DISKRW. BAS
- STARTREK. BAS
- TICTACTOE. BAS
- EGYSZERŰ. BAS
- ÜTŐDÖTT. BAS
- WEATHER. BAS
- IOT. BAS
Portok használata a hőmérséklet és a légnyomás olvasásához
A BASIC nyelv rendelkezik egy bővíthetőségi mechanizmus, az úgynevezett portok. Az Altair emulátor támogatja az IOT által használt portokat. A BAS-alkalmazás használja. Az IOT. A BAS-alkalmazás a 43-as porton kéri a hőmérséklet és a 44-s port beolvasását a légnyomás beolvasásához. Ezek a hívások az Altair emulátor fő.c fájljának C sphere_port_in
értékére lesznek irányítva.
Ha rendelkezik Avnet Azure Sphere Starter Kittel, a rendszer beolvassa a hőmérséklet- és nyomásadatokat a fedélzeti érzékelőkből. Ha a Seeed Studióból származó Azure Sphere-eszközzel rendelkezik, a rendszer véletlenszerű hőmérsékleti és nyomásadatokat használ.
A következő BASIC program az IOT listája . BAS:
10 PRINT
20 PRINT "Avnet onboard temperature and pressure sensor App"
30 PRINT
70 A$=""
80 C=INP(43)
90 IF C = 0 THEN GOTO 120
100 A$=A$+CHR$(C)
110 GOTO 80
120 PRINT "Temperature is ";A$;" degrees Celsius."
130 A$=""
140 C=INP(44)
150 IF C = 0 THEN GOTO 180
160 A$=A$+CHR$(C)
170 GOTO 140
180 PRINT "Air pressure is ";A$;" hPa."
210 PRINT
Ez az sphere_port_in
Altair emulátoralkalmazás main.c fájljában található C függvény:
/// <summary>
/// Support for BASIC Port In for IOT.BAS temperature and pressure example
/// Example shows environment temperature and pressure example
/// </summary>
/// <param name="port"></param>
/// <returns></returns>
static uint8_t sphere_port_in(uint8_t port) {
static bool reading_data = false;
static char data[10];
static int readPtr = 0;
uint8_t retVal = 0;
if (port == 43) {
if (!reading_data) {
readPtr = 0;
snprintf(data, 10, "%d", onboard_telemetry.latest.temperature);
publish_telemetry(onboard_telemetry.latest.temperature, onboard_telemetry.latest.pressure);
reading_data = true;
}
retVal = data[readPtr++];
if (retVal == 0x00) {
reading_data = false;
}
}
if (port == 44) {
if (!reading_data) {
readPtr = 0;
snprintf(data, 10, "%d", onboard_telemetry.latest.pressure);
reading_data = true;
}
retVal = data[readPtr++];
if (retVal == 0x00) {
reading_data = false;
}
}
return retVal;
}
Futtassa az IOT-t. BAS-alkalmazás
A Microsoft BASIC elindításához a CP/M parancssorból adja meg a következőt:
mbasic A:IOT.BAS
A Microsoft BASIC elindítása után megnyitja az IOT-t. BAS-alkalmazás .
Futtassa az alkalmazást:
run
Az alkalmazás futtatásakor a hőmérséklet- és nyomásadatok közzé lesznek téve az Azure IoT Centralban. Az adatokat az Azure IoT Central webportálon, az eszköz Környezet lapján tekintheti meg.
Az IOT kiterjesztése. BAS-alkalmazás
Készítse el az IOT-t. A BAS-alkalmazás öt másodpercenként olvassa be a hőmérsékletet és a nyomást. A hőmérséklet és a nyomás beolvasásakor a rendszer elküldi az adatokat az Azure IoT Centralnak, és a környezeti diagramon ábrázolja.
Ha körülbelül 5 másodpercig szeretné szüneteltetni az alkalmazást, adjon hozzá egy hurkot:
250 FOR J = 0 TO 30000: NEXT J
Mentse a módosításokat a BASIC
save
paranccsal:save "B:IOT.BAS"
Ismerkedés a Word-Master szövegszerkesztővel
A CP/M lemezkép tartalmazza a Word-Master szövegszerkesztőt. A Word-Master használatához a webes terminált karakterbemeneti módra kell váltania. Karakterbemeneti módban a webes terminál minden MQTT-üzenetként beírt karaktert elküld az Altair emulátornak.
A vonalbemeneti mód és a karakterbeviteli mód közötti váltáshoz válassza a Ctrl+L billentyűkombinációt. Ha befejezte a Word-Mesteralakzatot, váltson vissza a sorbeviteli módra. Az MQTT-en keresztüli webes terminálkommunikáció a vonalbemeneti módban hatékonyabb.
További információkért tekintse meg a Word-Master felhasználói útmutatóját.
Az alábbi táblázat a Word-Master által használt Ctrl-karaktereket sorolja fel. Ez a lista forrása az Altair 8800 blog.
VIDEO MODE SUMMARY
^O INSERTION ON/OFF RUB DELETE CHR LEFT
^S CURSOR LEFT CHAR ^G DELETE CHR RIGHT
^D CURSOR RIGHT CHAR ^\ DELETE WORD LEFT
^A CURSOR LEFT WORD ^T DELETE WORD RIGHT
^F CURSOR RIGHT WORD ^U DELETE LINE LEFT
^Q CURSOR RIGHT TAB ^K DELETE LINE RIGHT
^E CURSOR UP LINE ^Y DELETE WHOLE LINE
^X CURSOR DOWN LINE ^I PUT TAB IN FILE
^^ CURSOR TOP/BOT SCREEN ^N PUT CRLF IN FILE
^B CURSOR RIGHT/LEFT LINE ^@ DO NEXT CHR 4X
^W FILE DOWN 1 LINE ^P NEXT CHR IN FILE
^Z FILE UP 1 LINE ^V NEXT CHR(S) TO VIDEO
^R FILE DOWN SCREEN ESC EXIT VIDEO MODE
^C FILE UP SCREEN ^J DISPLAY THIS
Karakterbeviteli módban a következő billentyűzetleképezések javítják a szerkesztési élményt:
Keyboard key Word-Master Ctrl Sequence
----------------------------------------------
Insert ^O INSERTION ON/OFF
Delete ^G DELETE CHR RIGHT
Cursor Left ^S CURSOR LEFT CHAR
Cursor Right ^D CURSOR RIGHT CHAR
Cursor Up ^E CURSOR UP LINE
Cursor Down ^X CURSOR DOWN LINE
Fordítóalkalmazások fordítása
A CP/M lemezkép tartalmaz egy bemutató összeszerelő alkalmazást. A bemutatófájl szerkesztéséhez, összeállításához és betöltéséhez kövesse az alábbi lépéseket:
Másolja a bemutató alkalmazást (demo.asm) a B meghajtóra a
pip
következő paranccsal:pip b:=a:demo.asm
Szerkessze a demo.asm fájlt a Word-Master használatával. A CP/M parancssorból adja meg a következőt:
a:wm b:demo.asm
A Ctrl+L billentyűkombinációval váltson a webes terminál karakterbemeneti módra.
Módosítsa a demo.asm fájlt.
Mentse a frissítéseket a demo.asm fájlba:
- Válassza ki az Esc billentyűt.
- A kilépéshez válassza az E lehetőséget. A fájlmódosításokat a rendszer lemezre menti.
A Ctrl+L billentyűkombinációval állítsa át a webes terminált vonalbemeneti módra.
A demo.asm fájl összeállítása:
a:asm b:demo
Töltse be és csatolja a összeállított kódot:
a:load b:demo
Futtassa a bemutató alkalmazást:
b:demo
C-alkalmazások fordítása
A CP/M lemezkép egy egyszerű C-alkalmazást tartalmaz. A hw.c (helloworld) fájl szerkesztéséhez, fordításához és csatolásához kövesse az alábbi lépéseket:
Másolja a hw.c forráskódot a B meghajtó olvasásához/írásához a
pip
következő paranccsal:pip b:=a:hw.c
Szerkessze a hw.c fájlt a Word-Master használatával:
a:wm b:hw.c
A Ctrl+L billentyűkombinációval váltson a webes terminál karakterbemeneti módra.
Módosítsa a hw.c fájlt.
Mentse a frissítéseket a hw.c fájlba:
- Válassza ki az Esc billentyűt.
- A kilépéshez válassza az E lehetőséget. A fájlmódosításokat a rendszer lemezre menti.
A Ctrl+L billentyűkombinációval állítsa át a webes terminált vonalbemeneti módra.
A hw.c fájl fordítása:
a:cc hw
Csatolja a hw alkalmazást:
a:clink hw
Futtassa a hw alkalmazást:
b:hw
A Ctrl+C billentyűkombinációval állítsa le a hw alkalmazás futtatását.