フォーラム


ゲスト  

ようこそ ゲスト さん。このフォーラムに投稿するには 登録が必要です。

ページ: [1]
トピック: マイコンボードで Z80 CP/M 2.2 エミュレータを動かして Turbo Pascal を走らせる
DEKO
管理者
投稿数: 2599
マイコンボードで Z80 CP/M 2.2 エミュレータを動かして Turbo Pascal を走らせる
on: 2018/11/05 09:55 Mon

一つ目は RunCPM です。
https://ht-deko.com/arduino/runcpm.html

・Arduino DUE
・Teensy 3.5 / 3.6
・ESP32
・(ESP8266)

で動作します。

もう一つは CP/M 8266 です。
https://qiita.com/ht_deko/items/5be0321faedac3ba9341

・ESP8266

で動作します。

ESP-WROOM-02 (ESP8266) なんて 400~500円くらいのモジュールなんですけどね。

DEKO
管理者
投稿数: 2599
RunCPM 上の Turbo Pascal で L チカ
on: 2018/11/05 10:07 Mon

RunCPM 上の Turbo Pascal で L チカをやっています。
https://www.youtube.com/watch?v=KP5ZWX4kEgI

Turbo Pascal には L チカするような機能はないのにどうなっているのかと言うと、
・RunCPM の BDOS に GPIO 操作のためのファンクションが追加されている。
・BDOS をコールするための関数は Turbo Pascal に用意されている。
こういう事です。

ARDUINO.INC
{* ARDUINO.INC *}

const
INPUT = 0; {ESP32: 1}
OUTPUT = 1; {ESP32: 2}
INPUT_PULLUP = 2; {ESP32: 5}

LOW = 0;
HIGH = 1;

procedure pinMode(pin, mode: Byte);
begin
Bdos(220, (pin shl 8) + mode);
end; {of procedure pinMode}

function digitalRead(pin: Byte): Byte;
begin
digitalRead := BDos(221, (pin shl 8));
end; {of procedure digitalRead}

procedure digitalWrite(pin, value: Byte);
begin
BDos(222, (pin shl 8) + value);
end; {of procedure digitalWrite}

function analogRead(pin: Byte): Integer;
begin
analogRead := BDosHL(223, (pin shl 8));
end; {of procedure analogRead}

procedure analogWrite(pin, value: Byte);
begin
BDos(224, (pin shl 8) + value);
end; {of procedure analogWrite}

function hostOS(pin, value: Byte): Integer;
begin
hostOS := BDosHL(225, (pin shl 8) + value);
end; {of procedure hostOS}

  
GPIO を簡単に操作するためのインクルードファイル (ユニットではない) を用意しておけば、

BLINK.PAS
{* BLINK.PAS *}

{$I ARDUINO.INC}
const
LED_PIN = 4;
begin
pinMode(LED_PIN, OUTPUT);
repeat
digitalWrite(LED_PIN, HIGH);
Delay(1000);
digitalWrite(LED_PIN, LOW);
Delay(1000);
until KeyPressed;
end.

 
チョー簡単に L チカプログラムが書けます。

const int LED_PIN = 4;

void setup() {
pinMode(LED_PIN, OUTPUT);
}

void loop() {
digitalWrite(LED_PIN, HIGH);
delay(1000);
digitalWrite(LED_PIN, LOW);
delay(1000);
}

 
Arduino の同等のスケッチはこんな感じです。

ページ: [1]
WP Forum Server by ForumPress | LucidCrew
バージョン: 1.7.5 ; ページロード: 0.038 sec.