Gyakorlat – Az Altair programja a CP/M használatával

Befejeződött

Ebben a gyakorlatban megtanulhatja, hogyan kezdheti el az Altair emulátor programozását.

Csatlakozás a webes terminálhoz

  1. Váltson vissza a webböngésző webes termináljához.
  2. Szükség esetén hitelesítse a webes terminált.
  3. 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ó.

  1. 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.

  2. Adja meg az első programot:

    10 for i = 1 to 1000
    20 print i
    30 next i
    
  3. Mentse a programot lemezre:

    save "B:TEST.BAS"
    
  4. Töltse be a programot a lemezről:

    load "B:TEST.BAS"
    
  5. A Ctrl+C billentyűkombinációval állítsa le a program futtatását.

  6. 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

  1. 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 .

  2. 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.

Screenshot that shows an I o T Central chart.

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.

  1. 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
    
  2. 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.

Screenshot of Altair running the Word-Master text editor.

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:

  1. Másolja a bemutató alkalmazást (demo.asm) a B meghajtóra a pip következő paranccsal:

    pip b:=a:demo.asm
    
  2. 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
    
  3. A Ctrl+L billentyűkombinációval váltson a webes terminál karakterbemeneti módra.

  4. Módosítsa a demo.asm fájlt.

  5. Mentse a frissítéseket a demo.asm fájlba:

    1. Válassza ki az Esc billentyűt.
    2. A kilépéshez válassza az E lehetőséget. A fájlmódosításokat a rendszer lemezre menti.
  6. A Ctrl+L billentyűkombinációval állítsa át a webes terminált vonalbemeneti módra.

  7. A demo.asm fájl összeállítása:

    a:asm b:demo
    
  8. Töltse be és csatolja a összeállított kódot:

    a:load b:demo
    
  9. 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:

  1. 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
    
  2. Szerkessze a hw.c fájlt a Word-Master használatával:

    a:wm b:hw.c
    
  3. A Ctrl+L billentyűkombinációval váltson a webes terminál karakterbemeneti módra.

  4. Módosítsa a hw.c fájlt.

  5. Mentse a frissítéseket a hw.c fájlba:

    1. Válassza ki az Esc billentyűt.
    2. A kilépéshez válassza az E lehetőséget. A fájlmódosításokat a rendszer lemezre menti.
  6. A Ctrl+L billentyűkombinációval állítsa át a webes terminált vonalbemeneti módra.

  7. A hw.c fájl fordítása:

    a:cc hw
    
  8. Csatolja a hw alkalmazást:

    a:clink hw
    
  9. Futtassa a hw alkalmazást:

    b:hw
    
  10. A Ctrl+C billentyűkombinációval állítsa le a hw alkalmazás futtatását.