<リスト1−2>サンプル・プログラム1
1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2 ; 自動温度制御サンプル・プログラム ;
3 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
4 ; I/O アドレス EQUテーブル
5 PAD EQU 1CH ;PIO Aチャネル・データ
6 PAC EQU 1DH ;PIO Aチャネル・コマンド
7 PBD EQU 1EH ;PIO Bチャネル・データ
8 PBC EQU 1FH ;PIO Bチャネル・コマンド
9 ADC EQU 8000H ;ADC
10 ;
11 ;ここから 起動ルーチン
12 ORG 0000H ;0番地へプログラムが配置される
13 LD SP,8000H ;スタック・ポインタの設定
14 JP INITIAL
15 ;
16 ; NMI ;ノンマスク割り込み発生時のサービス・ルーチン
17 ORG 0066H ;66番地へプログラムが配置される
18 RETN ;なにも実行しないでRETNのみ
19 ;
20 ; INITIAL ROUTINE
21 INITIAL: LD A,0CFH ;PIO MODE 3
22 OUT (PAC),A
23 LD A,00H ;チャネルAポート=出力
24 OUT (PAC),A
25 LD A,07H ;PIO割り込み禁止
26 OUT (PAC),A
27 ;
28 JP MAIN ;JUMP TO MAIN ROUTINE
29 ;
30 ; MAIN ROUTINE
31 MAIN: LD A,(ADC) ;温度データ入力
32 CP 80 ;80℃以下か?
33 CALL C,SW_ON ;80℃以下でCALLヒータONルーチン
34 CP 85 ;85℃以上か?
35 CALL NC,SW_OFF ;85℃以上でCALLヒータOFFルーチン
36 JP MAIN ;無限ループ
37 ;
38 ; SUB ROUTINE
39 SW_ON: LD A,(4000H) ;PIO Aチャネルのビット状態メモ参照
40 SET 0,A ;ヒータ制御ビットON
41 OUT (PAD),A ;PIO Aチャネルへ出力
42 LD (4000H),A ;PIO Aチャネルのビット状態メモ
43 RET
44 ;
45 SW_OFF: LD A,(4000H) ;PIO Aチャネルのビット状態メモ参照
46 RES 0,A ;ヒータ制御ビットOFF
47 OUT (PAD),A ;PIO Aチャネルへ出力
48 LD (4000H),A ;PIO Aチャネルのビット状態メモ
49 RET
50 ;
51 END ;プログラム終了