+++ /dev/null
-/*.casl
-doc/call.svg
-sample/*.pbm
+++ /dev/null
-.PHONY: all libfiles install-casl2lib uninstall-casl2lib
-
-CAT := cat
-CASL2OUT := casl2 -M4096 -O
-RMF := rm -f
-RMDIR := rmdir
-ECHO := echo
-INSTALL := install
-CHMOD := chmod
-
-prefix ?= ~
-casl2libdir ?= $(prefix)/share/casl2lib
-
-all: stdlib.casl libfiles
-
-%.casl: src/%.casl
- $(CHMOD) +w $@
- $(CAT) $^ >$@
- $(CHMOD) -w $@
-
-%.o: %.casl
- $(CASL2OUT)$< $@
-
-include casl2lib.dep
-
-clean:
-
-distclean:
- $(RM) *.casl
-
-install-casl2lib: *.casl
- $(INSTALL) -d $(casl2libdir)
- $(INSTALL) $^ $(casl2libdir)/
-
-uninstall-casl2lib:
- @$(RMF) $(casl2libdir)/*.casl
- @$(RMDIR) $(casl2libdir) || if test -e $(casl2libdir); then $(ECHO) "$(casl2libdir): files may be added by others."; fi
+++ /dev/null
-;;; GR1を符号付き整数とみなし、絶対値に変換
-;;; 入力 GR1: -32768から32767の整数
-;;; 出力 GR1: 入力された整数の絶対値
-;;; OF: 入力されたGR1が-32768の場合、1
-;;; SF: 入力されたGR1が負数(-32767〜-1)の場合、1
-ABS START
- AND GR1,GR1 ; GR1が0以上の場合は、FINへジャンプ
- JPL FIN ; ↓
- JZE FIN ; ↓
- XOR GR1,ALLON ; GR1のビットを反転
- ADDA GR1,ONE ; GR1に1を追加
- JOV FIN ; 足し算でオーバーフローの場合は、OF:1を保持してFINへジャンプ
- CPL GR1,ALLON ; SF:1を設定
-FIN RET
-ONE DC 1
-ALLON DC #FFFF
- END
+++ /dev/null
-;;; 2つの32ビット値を加算する
-;;; 32ビットの値を、連続する2語の領域に格納
-;;; 入力 GR1:数値1の先頭アドレス GR2:数値2の先頭アドレス
-;;; 出力 GR0:和の先頭アドレス
-ADDL32 START
- RPUSH
- ST GR1,X ; X <- GR1:数値1
- ST GR2,Y ; Y <- GR2:数値2
- LD GR3,LEN ; GR3:語を表すインデックス 初期化
- XOR GR4,GR4 ; GR4:キャリー値 初期化
- LAD GR3,-1,GR3 ; ↓
-LOOP AND GR3,GR3 ; ループ先頭。(GR3 = 0)の場合は、ループ脱出
- JMI FIN ; ↓
- LD GR1,X ; GR1 <- (X + GR3)の値
- ADDL GR1,GR3 ; ↓
- LD GR1,0,GR1 ; ↓
- LD GR2,Y ; GR2 <- (Y + GR3)の値
- ADDL GR2,GR3 ; ↓
- LD GR2,0,GR2 ; ↓
- ADDL GR1,GR2 ; GR1 <- GR1 + GR2
- JOV CRRY ; オーバーフロー時は、CRRYへジャンプ
- ADDL GR1,GR4 ; GR1 <- GR1 + GR4
- JOV CRRY ; オーバーフロー時は、CRRYへジャンプ
- ST GR1,A,GR3 ; (A + GR3) <- GR1
- LAD GR3,-1,GR3 ; GR3 <- GR3 - 1
- XOR GR4,GR4 ; GR4 <- 0
- JUMP LOOP ; ループ先頭へジャンプ
-CRRY AND GR3,GR3 ; 最上位の語でオーバーフローした場合、OVへジャンプ
- JMI OV ; ↓
- ST GR1,A,GR3 ; (A + GR3) <- GR1
- LAD GR3,-1,GR3 ; GR3 <- GR3 - 1
- LAD GR4,1 ; GR4 <- 1
- JUMP LOOP ; ループ終端
-OV LAD GR3,=#8000 ; 強制的にオーバーフロー発生
- SLL GR3,1 ; ↓
-FIN LAD GR0,A ; GR0 <- A
- RPOP
- RET
-X DS 1 ; 数値1の先頭アドレス
-Y DS 1 ; 数値2の先頭アドレス
-A DS 2 ; 和
-LEN DC 2 ; 数値の語数
- END
+++ /dev/null
-stdlib.casl: src/stdlib.casl src/abs.casl src/addl32.casl src/diva.casl src/divl.casl src/inl.casl src/l2str.casl src/max.casl src/minim.casl src/mula.casl src/mull.casl src/outa.casl src/outaq15.casl src/outb.casl src/outbw.casl src/outl.casl src/outlq15.casl src/outpbm.casl src/pbm16.casl src/rev.casl src/str2l.casl
-
-libfiles: abs.casl addl32.casl diva.casl divl.casl inl.casl l2str.casl max.casl minim.casl mula.casl mull.casl outa.casl outaq15.casl outb.casl outbw.casl outl.casl outlq15.casl outpbm.casl pbm16.casl str2l.casl
-
-abs.casl: src/abs.casl
-
-addl32.casl: src/addl32.casl
-
-diva.casl: src/diva.casl divl.casl
-
-divl.casl: src/divl.casl
-
-inl.casl: src/inl.casl str2l.casl
-
-l2str.casl: src/l2str.casl divl.casl rev.casl
-
-max.casl: src/max.casl
-
-minim.casl: src/minim.casl
-
-mula.casl: src/mula.casl mull.casl
-
-mull.casl: src/mull.casl
-
-outa.casl: src/outa.casl abs.casl divl.casl rev.casl
-
-outaq15.casl: src/outaq15.casl abs.casl mull.casl
-
-outb.casl: src/outb.casl divl.casl rev.casl
-
-outbw.casl: src/outbw.casl divl.casl rev.casl
-
-outl.casl: src/outl.casl divl.casl rev.casl
-
-outlq15.casl: src/outlq15.casl mull.casl
-
-outpbm.casl: src/outpbm.casl l2str.casl
-
-pbm16.casl: src/pbm16.casl outb.casl
-
-rev.casl: src/rev.casl
-
-str2l.casl: src/str2l.casl mull.casl
+++ /dev/null
-;;; 符号付き整数の割算を筆算方式で行う
-;;; 入力 GR1:被除数 GR2:除数
-;;; 出力 GR0:商 GR3:剰余
-;;; 次の場合はオーバーフロー
-;;; GR1 = -32768; GR2 = -32768; GR2 = 0
-;;;
-DIVA START
- PUSH 0,GR1
- PUSH 0,GR2
- PUSH 0,GR4
- XOR GR0,GR0 ; 商を初期化
- XOR GR4,GR4 ; マイナスフラグを初期化
-CHK1 AND GR1,GR1 ; (GR1 > 0)の場合は、CHK2へジャンプ
- JPL CHK2 ; ↓
- XOR GR1,ALLON ; GR1の正負を反転
- ADDA GR1,ONE ; ↓
- JOV FIN ; (GR1 = -32768)の場合は終了
- XOR GR4,ONE ; GR4 <- 1
-CHK2 AND GR2,GR2 ; (GR1 > 0)の場合は、DIVへジャンプ
- JPL DIV ; ↓
- XOR GR2,ALLON ; GR2の正負を反転
- ADDA GR2,ONE ; ↓
- JOV FIN ; (GR2 = -32768)の場合は終了
- XOR GR4,ONE ; マイナスフラグを反転
-DIV CALL DIVL ; GR0 <- GR1 / GR2; GR3 <- GR1 mod GR2
- JOV FIN ; (GR2 = 0)の場合は終了
-MIN AND GR4,GR4 ; マイナスフラグがオフの場合、終了
- JZE FIN ; ↓
- XOR GR0,ALLON ; GR1の正負を反転
- ADDA GR0,ONE ; ↓
- XOR GR3,ALLON ; GR3の正負を反転
- ADDA GR3,ONE ; ↓
- JUMP FIN
-OV ADDL GR0,=#8000
-FIN POP GR4
- POP GR2
- POP GR1
- RET
-ONE DC 1
-ALLON DC #FFFF
- END
-;;; 0〜65535の範囲にある正数の割算(筆算方式)を行う
-;;; 入力 GR1:被除数 GR2:除数
-;;; 出力 GR0:商 GR3:剰余
-;;; (GR2 = 0)の場合、GR0 GR3とも0になり、オーバーフロー
-DIVL START
- PUSH 0,GR1
- PUSH 0,GR2
- PUSH 0,GR4
- XOR GR0,GR0 ; GR0:商 初期化
- XOR GR3,GR3 ; GR3:剰余 初期化
- AND GR2,GR2 ; (GR2 = 0)の場合、DIVZEROへジャンプ
- JZE DIVZERO ; ↓
- AND GR1,GR1 ; (GR1 = 0)の場合、FINへジャンプ
- JZE FIN ; ↓
- ST GR2,Y ; YにGR2の初期値を保存
- LAD GR4,1 ; GR4:対象ビットのインデックス 初期化
-SL CPL GR2,GR1 ; ループ先頭。(GR2 > GR1)の場合、LOOPへループ脱出
- JPL LOOP ; ↓
- SLL GR4,1 ; GR4を1回左シフト
- ST GR2,TMP ; GR2の値をTMPに退避
- SLL GR2,1 ; GR2を1回左シフト
- JOV YOV ; オーバーフローの場合は、YOVへジャンプ
- JUMP SL ; ループ終端
-YOV LD GR2,TMP ; GR2の値をTMPから復元
- SRL GR4,1 ; GR4を1回右シフト
- JUMP LPIN ; LPINへジャンプ
-LOOP SRL GR4,1 ; ループ先頭。GR4を1回右シフト
- JZE SETMOD ; (GR4 = 0)の場合、SETMODへループ脱出
- SRL GR2,1 ; GR2を1回右シフト
- CPL GR1,Y ; (GR1 < Y)の場合、SETMODへループ脱出
- JMI SETMOD ; ↓
- CPL GR1,GR2 ; (GR1 < GR2)の場合、ループ先頭へジャンプ
- JMI LOOP ; ↓
-LPIN SUBL GR1,GR2 ; GR1 <- GR1 - GR2
- ADDL GR0,GR4 ; GR0 <- GR0 + GR4
- JUMP LOOP ; ループ終端
-DIVZERO LAD GR3,#8000 ; 強制的にオーバーフローを発生させ、GR3 <- 0
- SLL GR3,1 ; ↓
- JUMP FIN ; FIN へジャンプ
-SETMOD LD GR3,GR1 ; GR3 <- GR1。剰余の設定
-FIN POP GR4
- POP GR2
- POP GR1
- RET
-Y DS 1
-TMP DS 1
- END
+++ /dev/null
-;;; 0〜65535の範囲にある正数の割算(筆算方式)を行う
-;;; 入力 GR1:被除数 GR2:除数
-;;; 出力 GR0:商 GR3:剰余
-;;; (GR2 = 0)の場合、GR0 GR3とも0になり、オーバーフロー
-DIVL START
- PUSH 0,GR1
- PUSH 0,GR2
- PUSH 0,GR4
- XOR GR0,GR0 ; GR0:商 初期化
- XOR GR3,GR3 ; GR3:剰余 初期化
- AND GR2,GR2 ; (GR2 = 0)の場合、DIVZEROへジャンプ
- JZE DIVZERO ; ↓
- AND GR1,GR1 ; (GR1 = 0)の場合、FINへジャンプ
- JZE FIN ; ↓
- ST GR2,Y ; YにGR2の初期値を保存
- LAD GR4,1 ; GR4:対象ビットのインデックス 初期化
-SL CPL GR2,GR1 ; ループ先頭。(GR2 > GR1)の場合、LOOPへループ脱出
- JPL LOOP ; ↓
- SLL GR4,1 ; GR4を1回左シフト
- ST GR2,TMP ; GR2の値をTMPに退避
- SLL GR2,1 ; GR2を1回左シフト
- JOV YOV ; オーバーフローの場合は、YOVへジャンプ
- JUMP SL ; ループ終端
-YOV LD GR2,TMP ; GR2の値をTMPから復元
- SRL GR4,1 ; GR4を1回右シフト
- JUMP LPIN ; LPINへジャンプ
-LOOP SRL GR4,1 ; ループ先頭。GR4を1回右シフト
- JZE SETMOD ; (GR4 = 0)の場合、SETMODへループ脱出
- SRL GR2,1 ; GR2を1回右シフト
- CPL GR1,Y ; (GR1 < Y)の場合、SETMODへループ脱出
- JMI SETMOD ; ↓
- CPL GR1,GR2 ; (GR1 < GR2)の場合、ループ先頭へジャンプ
- JMI LOOP ; ↓
-LPIN SUBL GR1,GR2 ; GR1 <- GR1 - GR2
- ADDL GR0,GR4 ; GR0 <- GR0 + GR4
- JUMP LOOP ; ループ終端
-DIVZERO LAD GR3,#8000 ; 強制的にオーバーフローを発生させ、GR3 <- 0
- SLL GR3,1 ; ↓
- JUMP FIN ; FIN へジャンプ
-SETMOD LD GR3,GR1 ; GR3 <- GR1。剰余の設定
-FIN POP GR4
- POP GR2
- POP GR1
- RET
-Y DS 1
-TMP DS 1
- END
+++ /dev/null
-digraph sample {
- graph [shape="" style="" color="" fillcolor="" fontname="sans-serif" fontsize="12" width="2"];
- DIVA -> DIVL;
- INL -> STR2L;
- L2STR -> DIVL;
- L2STR -> REV;
- MULA -> MULL;
- OUTA -> ABS;
- OUTA -> DIVL;
- OUTA -> REV;
- OUTA_Q15 -> ABS;
- OUTA_Q15 -> MULL;
- OUTB -> DIVL;
- OUTB -> REV;
- OUTB_W -> DIVL;
- OUTB_W -> REV;
- OUTL -> DIVL;
- OUTL -> REV;
- OUTL_Q15 -> MULL;
- OUTPBM -> L2STR;
- PBM16 -> OUTB;
- STR2L -> MULL;
-}
-
+++ /dev/null
-;;; 0から65535の範囲にある整数の入力を受け付ける
-;;; 入力 (SVC)
-;;; 出力 GR1: 入力された数値
-;;; GR2: 文字列の長さ。
-;;; 入力が数字以外の場合は、SFフラグを設定
-;;; 65535を超える数値の場合は、OFフラグを設定
-INL START
- PUSH 0,GR3
- IN IBUF,ILEN ; 入力文字列を格納
- LAD GR1,IBUF
- LD GR2,ILEN
- CALL STR2L
- JOV FIN
- JMI FIN
- LD GR1,GR3
-FIN POP GR3
- RET
-IBUF DS 5
-ILEN DS 1
-MAXLEN DC 5
- END
-;;; 10進数の整数を表す文字列を数値に変換
-;;; 数値の範囲は、0から65535
-;;; 入力 GR1: 文字列を格納するメモリーの先頭アドレス
-;;; GR2: 文字列の長さ。最大5けた
-;;; 出力 GR3: 数値
-;;; 文字列が最大長より大きい場合と数値以外の場合は、GR3は#FFFF、OFは1
-;;; 数値以外の場合、OFは1
-;;; 依存プログラム: MULL
-STR2L START
- PUSH 0,GR1
- PUSH 0,GR2
- PUSH 0,GR4
- PUSH 0,GR5
- PUSH 0,GR6
- PUSH 0,GR7
- XOR GR3,GR3 ; GR3の初期化
- AND GR2,GR2 ; GR2 = 0の場合、OVへジャンプ
- JZE OV ; ↓
- CPL GR2,=5 ; GR2 > 5の場合、OVへジャンプ
- JPL OV ; ↓
- XOR GR4,GR4 ; GR4: インデックスの初期化
- LD GR5,GR1 ; GR5 <- GR1
- LD GR6,GR2 ; GR6 <- GR2
- XOR GR1,GR1 ; GR1の初期化
-STOL LD GR1,GR5 ; GR1に、入力文字列中の次の桁を格納
- ADDL GR1,GR4 ; ↓
- LD GR1,0,GR1 ; ↓
- LD GR7,ZERO ; GR1 < '0'の場合、FINへジャンプ
- CPL GR1,GR7 ; ↓
- JMI FIN ; ↓
- LD GR7,NINE ; GR1 > '9'の場合、FINへジャンプ
- CPL GR7,GR1 ; ↓
- JMI FIN ; ↓
- SUBL GR1,ZERO ; GR1の文字を、対応する数値に変換
- ADDL GR3,GR1
- JOV FIN
- LAD GR4,1,GR4 ; GR4 <- GR4 + 1
- CPL GR4,GR6 ; GR4 = GR6の場合、ループ脱出
- JZE FIN ; ↓
-MUL10 LAD GR2,10 ; GR2:10進数の 10
- LD GR1,GR3 ; GR1 <- GR3
- CALL MULL ; MULLを呼び出し、GR3 <- GR1 * GR2
- JUMP STOL ; ループ終端
-OV LAD GR7,1 ; オーバーフロー発生
- SRL GR7,1 ; ↓
-FIN POP GR7
- POP GR6
- POP GR5
- POP GR4
- POP GR2
- POP GR1
- RET
-ZERO DC '0'
-NINE DC '9'
- END
-;;; 0〜65535の範囲にある正数のかけ算(筆算方式)を行う
-;;; 入力 GR1:被乗数 GR2:乗数
-;;; 出力 GR3:積
-;;; 積が65535より大きい場合は、オーバーフロー
-MULL START
- XOR GR3,GR3 ; GR3の初期化
- AND GR1,GR1 ; GR1 = 0 の場合、FINへジャンプ
- JZE FIN ; ↓
- AND GR2,GR2 ; GR2 = 0 の場合、FINへジャンプ
- JZE FIN ; ↓
- PUSH 0,GR1 ; GR1の退避
- PUSH 0,GR2 ; GR2の退避
-LOOP SRL GR2,1 ; ループ開始。SRLを1つ右シフト
- JOV ON ; 乗数の最下位ビットが1の場合、ONへジャンプ
- JUMP NEXT ; NEXTへジャンプ
-ON ADDL GR3,GR1 ; GR3 <- GR3 + GR1
- JOV POST ; GR3がオーバーフローした場合、POSTへジャンプ
-NEXT AND GR2,GR2 ; GR2 = 0 の場合、POSTへジャンプ
- JZE POST ; ↓
- SLL GR1,1 ; GR1を1つ左シフト
- JOV POST ; GR1がオーバーフローした場合、POSTへジャンプ
- JUMP LOOP ; ループ終端
-POST POP GR2 ; GR2の復元
- POP GR1 ; GR1の復元
-FIN RET
- END
+++ /dev/null
-;;; 符号なし整数を文字列に変換する。
-;;; 符号なし整数を文字列に変換する。
-;;; 入力 GR1:符号なし整数 G2:変換した文字列を格納するメモリーの先頭アドレス
-;;; 出力 GR0:文字列の長さ (同上)
-;;; 依存プログラム: DIVL, REV
-L2STR START
- PUSH 0,GR1
- PUSH 0,GR4
- XOR GR0,GR0 ; GR0 <- 0
- LD GR4,GR2 ; GR4 <- GR2
- PUSH 0,GR2 ; GR2の保存
- LAD GR2,10 ; GR2 <- 10。10進数の 10
-LOOP LD GR1,GR1 ; ループ先頭。GR1をテスト
- JZE SRT ; GR1が0の場合、ループ終了
- CALL DIVL ; GR1とGR2の、商をGR0、剰余をGR3に格納
- ADDL GR3,='0' ; GR3を文字に変換
- ST GR3,0,GR4 ; GR4のアドレスに、GR3を格納
- LAD GR4,1,GR4 ; GR4 <- GR4 + 1
- LD GR1,GR0 ; GR0の商をGR1にコピー
- JUMP LOOP ; ループ終端
-SRT POP GR2 ; GR2の復元
- LD GR1,GR2 ; GR1に文字列のアドレスを格納
- SUBL GR4,GR2 ; GR4 <- GR4 - GR2
- LD GR2,GR4 ; GR2 <- GR4
- CALL REV ; 文字列を逆順に並べ替え
- LD GR0,GR2 ; GR0 <- GR4 文字列の長さを格納
- POP GR4
- POP GR1
- RET
- END
-;;; 0〜65535の範囲にある正数の割算(筆算方式)を行う
-;;; 入力 GR1:被除数 GR2:除数
-;;; 出力 GR0:商 GR3:剰余
-;;; (GR2 = 0)の場合、GR0 GR3とも0になり、オーバーフロー
-DIVL START
- PUSH 0,GR1
- PUSH 0,GR2
- PUSH 0,GR4
- XOR GR0,GR0 ; GR0:商 初期化
- XOR GR3,GR3 ; GR3:剰余 初期化
- AND GR2,GR2 ; (GR2 = 0)の場合、DIVZEROへジャンプ
- JZE DIVZERO ; ↓
- AND GR1,GR1 ; (GR1 = 0)の場合、FINへジャンプ
- JZE FIN ; ↓
- ST GR2,Y ; YにGR2の初期値を保存
- LAD GR4,1 ; GR4:対象ビットのインデックス 初期化
-SL CPL GR2,GR1 ; ループ先頭。(GR2 > GR1)の場合、LOOPへループ脱出
- JPL LOOP ; ↓
- SLL GR4,1 ; GR4を1回左シフト
- ST GR2,TMP ; GR2の値をTMPに退避
- SLL GR2,1 ; GR2を1回左シフト
- JOV YOV ; オーバーフローの場合は、YOVへジャンプ
- JUMP SL ; ループ終端
-YOV LD GR2,TMP ; GR2の値をTMPから復元
- SRL GR4,1 ; GR4を1回右シフト
- JUMP LPIN ; LPINへジャンプ
-LOOP SRL GR4,1 ; ループ先頭。GR4を1回右シフト
- JZE SETMOD ; (GR4 = 0)の場合、SETMODへループ脱出
- SRL GR2,1 ; GR2を1回右シフト
- CPL GR1,Y ; (GR1 < Y)の場合、SETMODへループ脱出
- JMI SETMOD ; ↓
- CPL GR1,GR2 ; (GR1 < GR2)の場合、ループ先頭へジャンプ
- JMI LOOP ; ↓
-LPIN SUBL GR1,GR2 ; GR1 <- GR1 - GR2
- ADDL GR0,GR4 ; GR0 <- GR0 + GR4
- JUMP LOOP ; ループ終端
-DIVZERO LAD GR3,#8000 ; 強制的にオーバーフローを発生させ、GR3 <- 0
- SLL GR3,1 ; ↓
- JUMP FIN ; FIN へジャンプ
-SETMOD LD GR3,GR1 ; GR3 <- GR1。剰余の設定
-FIN POP GR4
- POP GR2
- POP GR1
- RET
-Y DS 1
-TMP DS 1
- END
-;;; メモリー上にある指定されたアドレス、長さの文字列を逆順に並べ替える
-;;; 例: 12345 -> 54321、54321- -> -12345
-;;; 入力 GR1:文字列のアドレス GR2:文字列の長さ
-;;; 出力 (同上)
-REV START
- RPUSH
- LAD GR3,0 ; GR3の初期化
-PU CPL GR3,GR2 ; ループ先頭。(GR3 = GR2)の場合、ループ脱出
- JZE NEXT ; ↓
- LD GR4,GR1 ; GR4 <- GR1
- ADDL GR4,GR3 ; GR4 <- GR4 + GR3
- LD GR5,0,GR4 ; GR5 <- GR4アドレスの値
- PUSH 0,GR5 ; GR5をプッシュ
- LAD GR3,1,GR3 ; GR3 <- GR3 + 1
- JUMP PU ; ループ終端
-NEXT LAD GR3,0 ; GR3の初期化
-PO CPL GR3,GR2 ; ループ先頭。(GR3 = GR2)の場合、ループ脱出
- JZE FIN ; ↓
- POP GR5 ; GR5にポップ
- LD GR4,GR1 ; GR4にGR1の値をコピー
- ADDL GR4,GR3 ; GR4 <- GR4 + GR3
- ST GR5,0,GR4 ; GR4のアドレス <- GR5の値
- LAD GR3,1,GR3 ; GR3 <- GR3 + 1
- JUMP PO ; ループ終端
-FIN RPOP
- RET
- END
+++ /dev/null
-;;; 連続した複数のWORDを符号付き整数とみなして最大値を返す
-;;; 入力: GR1: WORD値を格納したアドレス GR2: 値の個数
-;;; 出力: GR0: 最大値
-MAX START
- RPUSH
- LD GR0,0,GR1 ; MAX <- GR1アドレスの値
- ST GR0,MAX ; ↓
- LAD GR3,0 ; GR3:インデックス 初期化
-S1 CPA GR3,GR2 ; ループ先頭。(GR2 = GR3)の場合、終了
- JZE RET ; ↓
- LAD GR1,1,GR1 ; GR1 <- GR1 + 1
- LD GR0,0,GR1 ;
- CPA GR0,MAX ;
- JMI S2 ;
- JZE S2 ;
- ST GR0,MAX ;
-S2 LAD GR3,1,GR3 ;
- JUMP S1 ;
-RET LD GR0,MAX ;
- RPOP
- RET
-MAX DS 1 ; 最小値を格納
- END
+++ /dev/null
-;;; 複数のWORD値の中から、最小値を返す
-;;; 入力: GR1: WORD値を格納したアドレス GR2: 値の個数
-;;; 出力: GR0: 最小値
-MINIM START
- RPUSH
- LD GR0,0,GR1 ; MIN <- GR1アドレスの値
- ST GR0,MIN ; ↓
- LAD GR3,0 ; GR3:インデックス 初期化
-S1 CPA GR3,GR2 ; ループ先頭。(GR2 = GR3)の場合、終了
- JZE RET ; ↓
- LAD GR1,1,GR1 ; GR1 <- GR1 + 1
- LD GR0,0,GR1 ;
- CPA GR0,MIN ;
- JPL S2 ;
- JZE S2 ;
- ST GR0,MIN ;
-S2 LAD GR3,1,GR3 ;
- JUMP S1 ;
-RET LD GR0,MIN ;
- RPOP
- RET
-MIN DS 1 ; 最小値を格納
- END
+++ /dev/null
-;;; -32767〜32767の範囲にある正数のかけ算(筆算方式)を行う
-;;; 入力 GR1:被乗数 GR2:乗数
-;;; 出力 GR0:積
-;;; 被乗数または乗数が-32768の場合は、オーバーフロー
-;;; 積が-32767未満または32767より大きい場合は、GR0は積の下位16ビットになり、オーバーフロー
-MULA START
- RPUSH
- XOR GR0,GR0 ; 積
- AND GR1,GR1 ; (GR1 = 0)の場合、終了
- JZE FIN ; ↓
- AND GR2,GR2 ; (GR2 = 0)の場合、終了
- JZE FIN ; ↓
- LAD GR3,1 ; 対象ビット
- XOR GR4,GR4 ; マイナスフラグ
-CHK1 AND GR1,GR1 ; (GR1 > 0)の場合は、CHK2へジャンプ
- JPL CHK2 ; ↓
- XOR GR1,ALLON ; GR1の正負を反転
- ADDA GR1,ONE ; ↓
- JOV FIN ; (GR1 = -32768)の場合は終了
- XOR GR4,ONE ; GR4 <- 1
-CHK2 AND GR2,GR2 ; (GR1 > 0)の場合は、LOOPへジャンプ
- JPL MUL ; ↓
- XOR GR2,ALLON ; GR2の正負を反転
- ADDA GR2,ONE ; ↓
- JOV FIN ; (GR2 = -32768)の場合は終了
- XOR GR4,ONE ; マイナスフラグを反転
-MUL CALL MULL ; GR0 <- GR1 * GR2
- JOV FIN
- AND GR0,GR0
- JMI OV
-MIN AND GR4,GR4 ; マイナスフラグがオフの場合、終了
- JZE FIN ; ↓
- XOR GR0,ALLON ; GR1の正負を反転
- ADDA GR0,ONE ; ↓
- JUMP FIN
-OV ADDL GR0,=#8000
-FIN RPOP
- RET
-ONE DC 1
-ALLON DC #FFFF
- END
-;;; 0〜65535の範囲にある正数のかけ算(筆算方式)を行う
-;;; 入力 GR1:被乗数 GR2:乗数
-;;; 出力 GR3:積
-;;; 積が65535より大きい場合は、オーバーフロー
-MULL START
- XOR GR3,GR3 ; GR3の初期化
- AND GR1,GR1 ; GR1 = 0 の場合、FINへジャンプ
- JZE FIN ; ↓
- AND GR2,GR2 ; GR2 = 0 の場合、FINへジャンプ
- JZE FIN ; ↓
- PUSH 0,GR1 ; GR1の退避
- PUSH 0,GR2 ; GR2の退避
-LOOP SRL GR2,1 ; ループ開始。SRLを1つ右シフト
- JOV ON ; 乗数の最下位ビットが1の場合、ONへジャンプ
- JUMP NEXT ; NEXTへジャンプ
-ON ADDL GR3,GR1 ; GR3 <- GR3 + GR1
- JOV POST ; GR3がオーバーフローした場合、POSTへジャンプ
-NEXT AND GR2,GR2 ; GR2 = 0 の場合、POSTへジャンプ
- JZE POST ; ↓
- SLL GR1,1 ; GR1を1つ左シフト
- JOV POST ; GR1がオーバーフローした場合、POSTへジャンプ
- JUMP LOOP ; ループ終端
-POST POP GR2 ; GR2の復元
- POP GR1 ; GR1の復元
-FIN RET
- END
+++ /dev/null
-;;; 0〜65535の範囲にある正数のかけ算(筆算方式)を行う
-;;; 入力 GR1:被乗数 GR2:乗数
-;;; 出力 GR3:積
-;;; 積が65535より大きい場合は、オーバーフロー
-MULL START
- XOR GR3,GR3 ; GR3の初期化
- AND GR1,GR1 ; GR1 = 0 の場合、FINへジャンプ
- JZE FIN ; ↓
- AND GR2,GR2 ; GR2 = 0 の場合、FINへジャンプ
- JZE FIN ; ↓
- PUSH 0,GR1 ; GR1の退避
- PUSH 0,GR2 ; GR2の退避
-LOOP SRL GR2,1 ; ループ開始。SRLを1つ右シフト
- JOV ON ; 乗数の最下位ビットが1の場合、ONへジャンプ
- JUMP NEXT ; NEXTへジャンプ
-ON ADDL GR3,GR1 ; GR3 <- GR3 + GR1
- JOV POST ; GR3がオーバーフローした場合、POSTへジャンプ
-NEXT AND GR2,GR2 ; GR2 = 0 の場合、POSTへジャンプ
- JZE POST ; ↓
- SLL GR1,1 ; GR1を1つ左シフト
- JOV POST ; GR1がオーバーフローした場合、POSTへジャンプ
- JUMP LOOP ; ループ終端
-POST POP GR2 ; GR2の復元
- POP GR1 ; GR1の復元
-FIN RET
- END
+++ /dev/null
-;;; GR1に格納された値を、10進数の整数値(-32768〜32767)として表示
-OUTA START
- RPUSH
- LAD GR2,10 ; GR2に10進数の「10」を格納。
- LAD GR0,0 ; GR0 <- 0
- LAD GR4,0 ; 負数フラグ。GR1が負数の場合、GR4は1
- LAD GR5,0 ; 整数値の長さ
- AND GR1,GR1 ; GR1をテスト
- JZE ZPRT ; GR1が0の場合、ZPRTにジャンプ
- JPL STI ; GR1が正数の場合、STIにジャンプ
- LAD GR4,1 ; GR1が負数の場合、GR4をオン
- CALL ABS ; GR1を正数に変換
-STI CPL GR1,GR2 ; ループ先頭。(GR1 < GR2)の場合は、ループ脱出
- JMI STLST ; ↓
- CALL DIVL ; GR1とGR2の、商をGR0、剰余をGR3に格納
- LD GR1,GR3 ; GR1にGR3をコピー
- LD GR1,NCHAR,GR1 ; GR1を文字に変換
- ST GR1,STR,GR5 ; (STR + GR5) <- GR1
- LAD GR5,1,GR5 ; GR5 <- GR5 + 1
- LD GR1,GR0 ; GR0をGR1にコピー
- JUMP STI ; ループ終端
-STLST LD GR1,NCHAR,GR1 ; GR1を文字に変換
- ST GR1,STR,GR5 ; (STR + GR5) <- GR1
- LAD GR5,1,GR5 ; GR5 <- GR5 + 1
- AND GR4,GR4 ; 正数の場合
- JZE PRT ; ↓
- LD GR1,='-' ; 負数の場合、「-」をSTR領域に格納
- ST GR1,STR,GR5 ; (STR + GR5) <- GR1
- LAD GR5,1,GR5 ; GR5 <- GR5 + 1
- JUMP PRT ; PRTにジャンプ
-ZPRT LD GR1,NCHAR ; 「0」をSTR領域に格納
- ST GR1,STR,GR5 ; (STR + GR5) <- GR1
- LAD GR5,1,GR5 ; GR5 <- GR5 + 1
-PRT ST GR5,LEN ; LEN <- GR5
- LD GR2,LEN ; GR2にLENの値を格納
- LAD GR1,STR ; GR1に文字列のアドレスを格納
- CALL REV ; 文字列を逆順に並べ替え
- OUT STR,LEN ; 文字列を出力
- RPOP
- RET
-STR DS 17
-LEN DS 1
-NCHAR DC '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'
- END
-;;; GR1を符号付き整数とみなし、絶対値に変換
-;;; 入力 GR1: -32768から32767の整数
-;;; 出力 GR1: 入力された整数の絶対値
-;;; OF: 入力されたGR1が-32768の場合、1
-;;; SF: 入力されたGR1が負数(-32767〜-1)の場合、1
-ABS START
- AND GR1,GR1 ; GR1が0以上の場合は、FINへジャンプ
- JPL FIN ; ↓
- JZE FIN ; ↓
- XOR GR1,ALLON ; GR1のビットを反転
- ADDA GR1,ONE ; GR1に1を追加
- JOV FIN ; 足し算でオーバーフローの場合は、OF:1を保持してFINへジャンプ
- CPL GR1,ALLON ; SF:1を設定
-FIN RET
-ONE DC 1
-ALLON DC #FFFF
- END
-;;; 0〜65535の範囲にある正数の割算(筆算方式)を行う
-;;; 入力 GR1:被除数 GR2:除数
-;;; 出力 GR0:商 GR3:剰余
-;;; (GR2 = 0)の場合、GR0 GR3とも0になり、オーバーフロー
-DIVL START
- PUSH 0,GR1
- PUSH 0,GR2
- PUSH 0,GR4
- XOR GR0,GR0 ; GR0:商 初期化
- XOR GR3,GR3 ; GR3:剰余 初期化
- AND GR2,GR2 ; (GR2 = 0)の場合、DIVZEROへジャンプ
- JZE DIVZERO ; ↓
- AND GR1,GR1 ; (GR1 = 0)の場合、FINへジャンプ
- JZE FIN ; ↓
- ST GR2,Y ; YにGR2の初期値を保存
- LAD GR4,1 ; GR4:対象ビットのインデックス 初期化
-SL CPL GR2,GR1 ; ループ先頭。(GR2 > GR1)の場合、LOOPへループ脱出
- JPL LOOP ; ↓
- SLL GR4,1 ; GR4を1回左シフト
- ST GR2,TMP ; GR2の値をTMPに退避
- SLL GR2,1 ; GR2を1回左シフト
- JOV YOV ; オーバーフローの場合は、YOVへジャンプ
- JUMP SL ; ループ終端
-YOV LD GR2,TMP ; GR2の値をTMPから復元
- SRL GR4,1 ; GR4を1回右シフト
- JUMP LPIN ; LPINへジャンプ
-LOOP SRL GR4,1 ; ループ先頭。GR4を1回右シフト
- JZE SETMOD ; (GR4 = 0)の場合、SETMODへループ脱出
- SRL GR2,1 ; GR2を1回右シフト
- CPL GR1,Y ; (GR1 < Y)の場合、SETMODへループ脱出
- JMI SETMOD ; ↓
- CPL GR1,GR2 ; (GR1 < GR2)の場合、ループ先頭へジャンプ
- JMI LOOP ; ↓
-LPIN SUBL GR1,GR2 ; GR1 <- GR1 - GR2
- ADDL GR0,GR4 ; GR0 <- GR0 + GR4
- JUMP LOOP ; ループ終端
-DIVZERO LAD GR3,#8000 ; 強制的にオーバーフローを発生させ、GR3 <- 0
- SLL GR3,1 ; ↓
- JUMP FIN ; FIN へジャンプ
-SETMOD LD GR3,GR1 ; GR3 <- GR1。剰余の設定
-FIN POP GR4
- POP GR2
- POP GR1
- RET
-Y DS 1
-TMP DS 1
- END
-;;; メモリー上にある指定されたアドレス、長さの文字列を逆順に並べ替える
-;;; 例: 12345 -> 54321、54321- -> -12345
-;;; 入力 GR1:文字列のアドレス GR2:文字列の長さ
-;;; 出力 (同上)
-REV START
- RPUSH
- LAD GR3,0 ; GR3の初期化
-PU CPL GR3,GR2 ; ループ先頭。(GR3 = GR2)の場合、ループ脱出
- JZE NEXT ; ↓
- LD GR4,GR1 ; GR4 <- GR1
- ADDL GR4,GR3 ; GR4 <- GR4 + GR3
- LD GR5,0,GR4 ; GR5 <- GR4アドレスの値
- PUSH 0,GR5 ; GR5をプッシュ
- LAD GR3,1,GR3 ; GR3 <- GR3 + 1
- JUMP PU ; ループ終端
-NEXT LAD GR3,0 ; GR3の初期化
-PO CPL GR3,GR2 ; ループ先頭。(GR3 = GR2)の場合、ループ脱出
- JZE FIN ; ↓
- POP GR5 ; GR5にポップ
- LD GR4,GR1 ; GR4にGR1の値をコピー
- ADDL GR4,GR3 ; GR4 <- GR4 + GR3
- ST GR5,0,GR4 ; GR4のアドレス <- GR5の値
- LAD GR3,1,GR3 ; GR3 <- GR3 + 1
- JUMP PO ; ループ終端
-FIN RPOP
- RET
- END
+++ /dev/null
-;;; GR1に格納された値を、2進数値として表示
-OUTB START
- RPUSH
- LD GR2,BIN ; GR2に2進数の「2」を格納。
- XOR GR4,GR4 ; GR4: 2進数値の長さ
-STI CPL GR1,GR2 ; ループ先頭。(GR1 < GR2)の場合は、ループ脱出
- JMI STLST ; ↓
- CALL DIVL ; GR1とGR2の、商をGR0、剰余をGR3に格納
- LD GR1,GR3 ; GR1にGR3をコピー
- LD GR1,NCHAR,GR1 ; GR1を文字に変換
- ST GR1,STR,GR4 ; (STR + GR4) <- GR1
- LAD GR4,1,GR4 ; GR4 <- GR4 + 1
- LD GR1,GR0 ; GR0をGR1にコピー
- JUMP STI ; ループ終端
-STLST LD GR1,NCHAR,GR1 ; GR1を文字に変換
- ST GR1,STR,GR4 ; (STR + GR4) <- GR1
- LAD GR4,1,GR4 ; GR4 <- GR4 + 1
-EMLOOP CPL GR4,DIG ; ループ先頭。(GR4 = DIG)の場合は、ループ脱出
- JZE PRT ; ↓
- LD GR1,NCHAR ; GR1 <- NCHAR:'0'
- ST GR1,STR,GR4 ; (STR + GR4) <- GR1
- LAD GR4,1,GR4 ; GR4 <- GR4 + 1
- JUMP EMLOOP ; ループ終端
-PRT ST GR4,LEN ; LEN <- GR4
- LD GR2,LEN ; GR2にLENの値を格納
- LAD GR1,STR ; GR1に文字列のアドレスを格納
- CALL REV ; 文字列を逆順に並べ替え
- OUT STR,LEN ; 文字列を出力
- RPOP
- RET
-STR DS 17
-LEN DS 1
-BIN DC 2
-NCHAR DC '01'
-SPC DC ' '
-DIG DC 16
- END
-;;; 0〜65535の範囲にある正数の割算(筆算方式)を行う
-;;; 入力 GR1:被除数 GR2:除数
-;;; 出力 GR0:商 GR3:剰余
-;;; (GR2 = 0)の場合、GR0 GR3とも0になり、オーバーフロー
-DIVL START
- PUSH 0,GR1
- PUSH 0,GR2
- PUSH 0,GR4
- XOR GR0,GR0 ; GR0:商 初期化
- XOR GR3,GR3 ; GR3:剰余 初期化
- AND GR2,GR2 ; (GR2 = 0)の場合、DIVZEROへジャンプ
- JZE DIVZERO ; ↓
- AND GR1,GR1 ; (GR1 = 0)の場合、FINへジャンプ
- JZE FIN ; ↓
- ST GR2,Y ; YにGR2の初期値を保存
- LAD GR4,1 ; GR4:対象ビットのインデックス 初期化
-SL CPL GR2,GR1 ; ループ先頭。(GR2 > GR1)の場合、LOOPへループ脱出
- JPL LOOP ; ↓
- SLL GR4,1 ; GR4を1回左シフト
- ST GR2,TMP ; GR2の値をTMPに退避
- SLL GR2,1 ; GR2を1回左シフト
- JOV YOV ; オーバーフローの場合は、YOVへジャンプ
- JUMP SL ; ループ終端
-YOV LD GR2,TMP ; GR2の値をTMPから復元
- SRL GR4,1 ; GR4を1回右シフト
- JUMP LPIN ; LPINへジャンプ
-LOOP SRL GR4,1 ; ループ先頭。GR4を1回右シフト
- JZE SETMOD ; (GR4 = 0)の場合、SETMODへループ脱出
- SRL GR2,1 ; GR2を1回右シフト
- CPL GR1,Y ; (GR1 < Y)の場合、SETMODへループ脱出
- JMI SETMOD ; ↓
- CPL GR1,GR2 ; (GR1 < GR2)の場合、ループ先頭へジャンプ
- JMI LOOP ; ↓
-LPIN SUBL GR1,GR2 ; GR1 <- GR1 - GR2
- ADDL GR0,GR4 ; GR0 <- GR0 + GR4
- JUMP LOOP ; ループ終端
-DIVZERO LAD GR3,#8000 ; 強制的にオーバーフローを発生させ、GR3 <- 0
- SLL GR3,1 ; ↓
- JUMP FIN ; FIN へジャンプ
-SETMOD LD GR3,GR1 ; GR3 <- GR1。剰余の設定
-FIN POP GR4
- POP GR2
- POP GR1
- RET
-Y DS 1
-TMP DS 1
- END
-;;; メモリー上にある指定されたアドレス、長さの文字列を逆順に並べ替える
-;;; 例: 12345 -> 54321、54321- -> -12345
-;;; 入力 GR1:文字列のアドレス GR2:文字列の長さ
-;;; 出力 (同上)
-REV START
- RPUSH
- LAD GR3,0 ; GR3の初期化
-PU CPL GR3,GR2 ; ループ先頭。(GR3 = GR2)の場合、ループ脱出
- JZE NEXT ; ↓
- LD GR4,GR1 ; GR4 <- GR1
- ADDL GR4,GR3 ; GR4 <- GR4 + GR3
- LD GR5,0,GR4 ; GR5 <- GR4アドレスの値
- PUSH 0,GR5 ; GR5をプッシュ
- LAD GR3,1,GR3 ; GR3 <- GR3 + 1
- JUMP PU ; ループ終端
-NEXT LAD GR3,0 ; GR3の初期化
-PO CPL GR3,GR2 ; ループ先頭。(GR3 = GR2)の場合、ループ脱出
- JZE FIN ; ↓
- POP GR5 ; GR5にポップ
- LD GR4,GR1 ; GR4にGR1の値をコピー
- ADDL GR4,GR3 ; GR4 <- GR4 + GR3
- ST GR5,0,GR4 ; GR4のアドレス <- GR5の値
- LAD GR3,1,GR3 ; GR3 <- GR3 + 1
- JUMP PO ; ループ終端
-FIN RPOP
- RET
- END
+++ /dev/null
-;;; GR1に格納された値を、10進数の整数値(0〜65535)として表示
-;;; 依存プログラム: DIVL, REV
-OUTL START
- RPUSH
- LAD GR2,10 ; GR2に10進数の「10」を格納。
- XOR GR0,GR0 ; GR0 <- 0
- XOR GR4,GR4 ; 整数値の長さ
- AND GR1,GR1 ; GR1をテスト
- JZE ZERO ; GR1が0の場合、ZEROにジャンプ
-STI CPL GR1,GR2 ; ループ先頭。(GR1 < GR2)の場合は、ループ脱出
- JMI STLST ; ↓
- CALL DIVL ; GR1とGR2の、商をGR0、剰余をGR3に格納
- LD GR1,GR3 ; GR1にGR3をコピー
- LD GR1,NCHAR,GR1 ; GR1を文字に変換
- ST GR1,STR,GR4 ; (STR + GR4) <- GR1
- LAD GR4,1,GR4 ; GR4 <- GR4 + 1
- LD GR1,GR0 ; GR0をGR1にコピー
- JUMP STI ; ループ終端
-STLST LD GR1,NCHAR,GR1 ; GR1を文字に変換
- ST GR1,STR,GR4 ; (STR + GR4) <- GR1
- LAD GR4,1,GR4 ; GR4 <- GR4 + 1
- JUMP PRT ; PRTにジャンプ
-ZERO LD GR1,NCHAR ; 「0」をSTR領域に格納
- ST GR1,STR,GR4 ; ↓ (STR + GR4) <- GR1
- LAD GR4,1,GR4 ; ↓ GR4 <- GR4 + 1
-PRT ST GR4,LEN ; LEN <- GR4
- LD GR2,LEN ; GR2にLENの値を格納
- LAD GR1,STR ; GR1に文字列のアドレスを格納
- CALL REV ; 文字列を逆順に並べ替え
- OUT STR,LEN ; 文字列を出力
- RPOP
- RET
-STR DS 17 ; 符号付き2進数で表記した場合を想定
-LEN DS 1
-NCHAR DC '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'
- END
-;;; 0〜65535の範囲にある正数の割算(筆算方式)を行う
-;;; 入力 GR1:被除数 GR2:除数
-;;; 出力 GR0:商 GR3:剰余
-;;; (GR2 = 0)の場合、GR0 GR3とも0になり、オーバーフロー
-DIVL START
- PUSH 0,GR1
- PUSH 0,GR2
- PUSH 0,GR4
- XOR GR0,GR0 ; GR0:商 初期化
- XOR GR3,GR3 ; GR3:剰余 初期化
- AND GR2,GR2 ; (GR2 = 0)の場合、DIVZEROへジャンプ
- JZE DIVZERO ; ↓
- AND GR1,GR1 ; (GR1 = 0)の場合、FINへジャンプ
- JZE FIN ; ↓
- ST GR2,Y ; YにGR2の初期値を保存
- LAD GR4,1 ; GR4:対象ビットのインデックス 初期化
-SL CPL GR2,GR1 ; ループ先頭。(GR2 > GR1)の場合、LOOPへループ脱出
- JPL LOOP ; ↓
- SLL GR4,1 ; GR4を1回左シフト
- ST GR2,TMP ; GR2の値をTMPに退避
- SLL GR2,1 ; GR2を1回左シフト
- JOV YOV ; オーバーフローの場合は、YOVへジャンプ
- JUMP SL ; ループ終端
-YOV LD GR2,TMP ; GR2の値をTMPから復元
- SRL GR4,1 ; GR4を1回右シフト
- JUMP LPIN ; LPINへジャンプ
-LOOP SRL GR4,1 ; ループ先頭。GR4を1回右シフト
- JZE SETMOD ; (GR4 = 0)の場合、SETMODへループ脱出
- SRL GR2,1 ; GR2を1回右シフト
- CPL GR1,Y ; (GR1 < Y)の場合、SETMODへループ脱出
- JMI SETMOD ; ↓
- CPL GR1,GR2 ; (GR1 < GR2)の場合、ループ先頭へジャンプ
- JMI LOOP ; ↓
-LPIN SUBL GR1,GR2 ; GR1 <- GR1 - GR2
- ADDL GR0,GR4 ; GR0 <- GR0 + GR4
- JUMP LOOP ; ループ終端
-DIVZERO LAD GR3,#8000 ; 強制的にオーバーフローを発生させ、GR3 <- 0
- SLL GR3,1 ; ↓
- JUMP FIN ; FIN へジャンプ
-SETMOD LD GR3,GR1 ; GR3 <- GR1。剰余の設定
-FIN POP GR4
- POP GR2
- POP GR1
- RET
-Y DS 1
-TMP DS 1
- END
-;;; メモリー上にある指定されたアドレス、長さの文字列を逆順に並べ替える
-;;; 例: 12345 -> 54321、54321- -> -12345
-;;; 入力 GR1:文字列のアドレス GR2:文字列の長さ
-;;; 出力 (同上)
-REV START
- RPUSH
- LAD GR3,0 ; GR3の初期化
-PU CPL GR3,GR2 ; ループ先頭。(GR3 = GR2)の場合、ループ脱出
- JZE NEXT ; ↓
- LD GR4,GR1 ; GR4 <- GR1
- ADDL GR4,GR3 ; GR4 <- GR4 + GR3
- LD GR5,0,GR4 ; GR5 <- GR4アドレスの値
- PUSH 0,GR5 ; GR5をプッシュ
- LAD GR3,1,GR3 ; GR3 <- GR3 + 1
- JUMP PU ; ループ終端
-NEXT LAD GR3,0 ; GR3の初期化
-PO CPL GR3,GR2 ; ループ先頭。(GR3 = GR2)の場合、ループ脱出
- JZE FIN ; ↓
- POP GR5 ; GR5にポップ
- LD GR4,GR1 ; GR4にGR1の値をコピー
- ADDL GR4,GR3 ; GR4 <- GR4 + GR3
- ST GR5,0,GR4 ; GR4のアドレス <- GR5の値
- LAD GR3,1,GR3 ; GR3 <- GR3 + 1
- JUMP PO ; ループ終端
-FIN RPOP
- RET
- END
+++ /dev/null
-;;; PBM画像ファイルを出力
-;;; GR1: 画像ビット列の先頭アドレス
-;;; GR2: 画像の幅
-;;; GR3: 画像の高さ
-OUTPBM START
- OUT HEADER,HLEN
- PUSH 0,GR1
- PUSH 0,GR2
- PUSH 0,GR3
- PUSH 0,GR4
- XOR GR4,GR4
- LD GR1,GR2
- LAD GR2,WIDTH
- CALL L2STR
- LD GR4,GR0
- LAD GR4,1,GR4
- LD GR1,SPC
- ST GR1,WIDTH,GR4
- LAD GR4,1,GR4
- LD GR1,GR3
- LAD GR2,WIDTH,GR4
- CALL L2STR
- ADDL GR4,GR0
- ST GR4,WHLEN
- OUT WIDTH,WHLEN
- POP GR4
- POP GR3
- POP GR2
- POP GR1
- RET
-HEADER DC 'P1'
-HLEN DC 2
-WIDTH DS 32
-SPC DC ' '
-HEIGHT DS 1
-WHLEN DS 1
-;;; 符号なし整数を文字列に変換する。
-;;; 符号なし整数を文字列に変換する。
-;;; 入力 GR1:符号なし整数 G2:変換した文字列を格納するメモリーの先頭アドレス
-;;; 出力 GR0:文字列の長さ (同上)
-;;; 依存プログラム: DIVL, REV
-L2STR START
- PUSH 0,GR1
- PUSH 0,GR4
- XOR GR0,GR0 ; GR0 <- 0
- LD GR4,GR2 ; GR4 <- GR2
- PUSH 0,GR2 ; GR2の保存
- LAD GR2,10 ; GR2 <- 10。10進数の 10
-LOOP LD GR1,GR1 ; ループ先頭。GR1をテスト
- JZE SRT ; GR1が0の場合、ループ終了
- CALL DIVL ; GR1とGR2の、商をGR0、剰余をGR3に格納
- ADDL GR3,='0' ; GR3を文字に変換
- ST GR3,0,GR4 ; GR4のアドレスに、GR3を格納
- LAD GR4,1,GR4 ; GR4 <- GR4 + 1
- LD GR1,GR0 ; GR0の商をGR1にコピー
- JUMP LOOP ; ループ終端
-SRT POP GR2 ; GR2の復元
- LD GR1,GR2 ; GR1に文字列のアドレスを格納
- SUBL GR4,GR2 ; GR4 <- GR4 - GR2
- LD GR2,GR4 ; GR2 <- GR4
- CALL REV ; 文字列を逆順に並べ替え
- LD GR0,GR2 ; GR0 <- GR4 文字列の長さを格納
- POP GR4
- POP GR1
- RET
- END
-;;; 0〜65535の範囲にある正数の割算(筆算方式)を行う
-;;; 入力 GR1:被除数 GR2:除数
-;;; 出力 GR0:商 GR3:剰余
-;;; (GR2 = 0)の場合、GR0 GR3とも0になり、オーバーフロー
-DIVL START
- PUSH 0,GR1
- PUSH 0,GR2
- PUSH 0,GR4
- XOR GR0,GR0 ; GR0:商 初期化
- XOR GR3,GR3 ; GR3:剰余 初期化
- AND GR2,GR2 ; (GR2 = 0)の場合、DIVZEROへジャンプ
- JZE DIVZERO ; ↓
- AND GR1,GR1 ; (GR1 = 0)の場合、FINへジャンプ
- JZE FIN ; ↓
- ST GR2,Y ; YにGR2の初期値を保存
- LAD GR4,1 ; GR4:対象ビットのインデックス 初期化
-SL CPL GR2,GR1 ; ループ先頭。(GR2 > GR1)の場合、LOOPへループ脱出
- JPL LOOP ; ↓
- SLL GR4,1 ; GR4を1回左シフト
- ST GR2,TMP ; GR2の値をTMPに退避
- SLL GR2,1 ; GR2を1回左シフト
- JOV YOV ; オーバーフローの場合は、YOVへジャンプ
- JUMP SL ; ループ終端
-YOV LD GR2,TMP ; GR2の値をTMPから復元
- SRL GR4,1 ; GR4を1回右シフト
- JUMP LPIN ; LPINへジャンプ
-LOOP SRL GR4,1 ; ループ先頭。GR4を1回右シフト
- JZE SETMOD ; (GR4 = 0)の場合、SETMODへループ脱出
- SRL GR2,1 ; GR2を1回右シフト
- CPL GR1,Y ; (GR1 < Y)の場合、SETMODへループ脱出
- JMI SETMOD ; ↓
- CPL GR1,GR2 ; (GR1 < GR2)の場合、ループ先頭へジャンプ
- JMI LOOP ; ↓
-LPIN SUBL GR1,GR2 ; GR1 <- GR1 - GR2
- ADDL GR0,GR4 ; GR0 <- GR0 + GR4
- JUMP LOOP ; ループ終端
-DIVZERO LAD GR3,#8000 ; 強制的にオーバーフローを発生させ、GR3 <- 0
- SLL GR3,1 ; ↓
- JUMP FIN ; FIN へジャンプ
-SETMOD LD GR3,GR1 ; GR3 <- GR1。剰余の設定
-FIN POP GR4
- POP GR2
- POP GR1
- RET
-Y DS 1
-TMP DS 1
- END
-;;; メモリー上にある指定されたアドレス、長さの文字列を逆順に並べ替える
-;;; 例: 12345 -> 54321、54321- -> -12345
-;;; 入力 GR1:文字列のアドレス GR2:文字列の長さ
-;;; 出力 (同上)
-REV START
- RPUSH
- LAD GR3,0 ; GR3の初期化
-PU CPL GR3,GR2 ; ループ先頭。(GR3 = GR2)の場合、ループ脱出
- JZE NEXT ; ↓
- LD GR4,GR1 ; GR4 <- GR1
- ADDL GR4,GR3 ; GR4 <- GR4 + GR3
- LD GR5,0,GR4 ; GR5 <- GR4アドレスの値
- PUSH 0,GR5 ; GR5をプッシュ
- LAD GR3,1,GR3 ; GR3 <- GR3 + 1
- JUMP PU ; ループ終端
-NEXT LAD GR3,0 ; GR3の初期化
-PO CPL GR3,GR2 ; ループ先頭。(GR3 = GR2)の場合、ループ脱出
- JZE FIN ; ↓
- POP GR5 ; GR5にポップ
- LD GR4,GR1 ; GR4にGR1の値をコピー
- ADDL GR4,GR3 ; GR4 <- GR4 + GR3
- ST GR5,0,GR4 ; GR4のアドレス <- GR5の値
- LAD GR3,1,GR3 ; GR3 <- GR3 + 1
- JUMP PO ; ループ終端
-FIN RPOP
- RET
- END
+++ /dev/null
-;;; PBM16
-;;; GR1で指定されたアドレス以降のメモリを 16×16 の
-;;; 白黒ビットマップ画像データ(白:0 黒:1)とみなし、
-;;; PBM画像ファイルとして出力
-;;; 入力: GR1 画像データの先頭アドレス
-;;; 依存副プログラム: outb_w.casl divl.casl rotate.casl
-PBM16 START
- PUSH 0,GR1
- PUSH 0,GR2
- ST GR1,BEG
- OUT L1,L1LEN
- OUT L2,L2LEN
- XOR GR2,GR2
-LOOP CPL GR2,HEIGHT
- JZE FIN
- LD GR1,BEG
- ADDL GR1,GR2
- LD GR1,0,GR1
- CALL OUTB
- LAD GR2,1,GR2
- JUMP LOOP
-FIN POP GR2
- POP GR1
- RET
-L1 DC 'P1'
-L1LEN DC 2
-L2 DC '16 16'
-L2LEN DC 5
-HEIGHT DC 16
-BEG DS 1
- END
-;;; GR1に格納された値を、2進数値として表示
-OUTB START
- RPUSH
- LD GR2,BIN ; GR2に2進数の「2」を格納。
- XOR GR4,GR4 ; GR4: 2進数値の長さ
-STI CPL GR1,GR2 ; ループ先頭。(GR1 < GR2)の場合は、ループ脱出
- JMI STLST ; ↓
- CALL DIVL ; GR1とGR2の、商をGR0、剰余をGR3に格納
- LD GR1,GR3 ; GR1にGR3をコピー
- LD GR1,NCHAR,GR1 ; GR1を文字に変換
- ST GR1,STR,GR4 ; (STR + GR4) <- GR1
- LAD GR4,1,GR4 ; GR4 <- GR4 + 1
- LD GR1,GR0 ; GR0をGR1にコピー
- JUMP STI ; ループ終端
-STLST LD GR1,NCHAR,GR1 ; GR1を文字に変換
- ST GR1,STR,GR4 ; (STR + GR4) <- GR1
- LAD GR4,1,GR4 ; GR4 <- GR4 + 1
-EMLOOP CPL GR4,DIG ; ループ先頭。(GR4 = DIG)の場合は、ループ脱出
- JZE PRT ; ↓
- LD GR1,NCHAR ; GR1 <- NCHAR:'0'
- ST GR1,STR,GR4 ; (STR + GR4) <- GR1
- LAD GR4,1,GR4 ; GR4 <- GR4 + 1
- JUMP EMLOOP ; ループ終端
-PRT ST GR4,LEN ; LEN <- GR4
- LD GR2,LEN ; GR2にLENの値を格納
- LAD GR1,STR ; GR1に文字列のアドレスを格納
- CALL REV ; 文字列を逆順に並べ替え
- OUT STR,LEN ; 文字列を出力
- RPOP
- RET
-STR DS 17
-LEN DS 1
-BIN DC 2
-NCHAR DC '01'
-SPC DC ' '
-DIG DC 16
- END
-;;; 0〜65535の範囲にある正数の割算(筆算方式)を行う
-;;; 入力 GR1:被除数 GR2:除数
-;;; 出力 GR0:商 GR3:剰余
-;;; (GR2 = 0)の場合、GR0 GR3とも0になり、オーバーフロー
-DIVL START
- PUSH 0,GR1
- PUSH 0,GR2
- PUSH 0,GR4
- XOR GR0,GR0 ; GR0:商 初期化
- XOR GR3,GR3 ; GR3:剰余 初期化
- AND GR2,GR2 ; (GR2 = 0)の場合、DIVZEROへジャンプ
- JZE DIVZERO ; ↓
- AND GR1,GR1 ; (GR1 = 0)の場合、FINへジャンプ
- JZE FIN ; ↓
- ST GR2,Y ; YにGR2の初期値を保存
- LAD GR4,1 ; GR4:対象ビットのインデックス 初期化
-SL CPL GR2,GR1 ; ループ先頭。(GR2 > GR1)の場合、LOOPへループ脱出
- JPL LOOP ; ↓
- SLL GR4,1 ; GR4を1回左シフト
- ST GR2,TMP ; GR2の値をTMPに退避
- SLL GR2,1 ; GR2を1回左シフト
- JOV YOV ; オーバーフローの場合は、YOVへジャンプ
- JUMP SL ; ループ終端
-YOV LD GR2,TMP ; GR2の値をTMPから復元
- SRL GR4,1 ; GR4を1回右シフト
- JUMP LPIN ; LPINへジャンプ
-LOOP SRL GR4,1 ; ループ先頭。GR4を1回右シフト
- JZE SETMOD ; (GR4 = 0)の場合、SETMODへループ脱出
- SRL GR2,1 ; GR2を1回右シフト
- CPL GR1,Y ; (GR1 < Y)の場合、SETMODへループ脱出
- JMI SETMOD ; ↓
- CPL GR1,GR2 ; (GR1 < GR2)の場合、ループ先頭へジャンプ
- JMI LOOP ; ↓
-LPIN SUBL GR1,GR2 ; GR1 <- GR1 - GR2
- ADDL GR0,GR4 ; GR0 <- GR0 + GR4
- JUMP LOOP ; ループ終端
-DIVZERO LAD GR3,#8000 ; 強制的にオーバーフローを発生させ、GR3 <- 0
- SLL GR3,1 ; ↓
- JUMP FIN ; FIN へジャンプ
-SETMOD LD GR3,GR1 ; GR3 <- GR1。剰余の設定
-FIN POP GR4
- POP GR2
- POP GR1
- RET
-Y DS 1
-TMP DS 1
- END
-;;; メモリー上にある指定されたアドレス、長さの文字列を逆順に並べ替える
-;;; 例: 12345 -> 54321、54321- -> -12345
-;;; 入力 GR1:文字列のアドレス GR2:文字列の長さ
-;;; 出力 (同上)
-REV START
- RPUSH
- LAD GR3,0 ; GR3の初期化
-PU CPL GR3,GR2 ; ループ先頭。(GR3 = GR2)の場合、ループ脱出
- JZE NEXT ; ↓
- LD GR4,GR1 ; GR4 <- GR1
- ADDL GR4,GR3 ; GR4 <- GR4 + GR3
- LD GR5,0,GR4 ; GR5 <- GR4アドレスの値
- PUSH 0,GR5 ; GR5をプッシュ
- LAD GR3,1,GR3 ; GR3 <- GR3 + 1
- JUMP PU ; ループ終端
-NEXT LAD GR3,0 ; GR3の初期化
-PO CPL GR3,GR2 ; ループ先頭。(GR3 = GR2)の場合、ループ脱出
- JZE FIN ; ↓
- POP GR5 ; GR5にポップ
- LD GR4,GR1 ; GR4にGR1の値をコピー
- ADDL GR4,GR3 ; GR4 <- GR4 + GR3
- ST GR5,0,GR4 ; GR4のアドレス <- GR5の値
- LAD GR3,1,GR3 ; GR3 <- GR3 + 1
- JUMP PO ; ループ終端
-FIN RPOP
- RET
- END
+++ /dev/null
-;;; メモリー上にある指定されたアドレス、長さの文字列を逆順に並べ替える
-;;; 例: 12345 -> 54321、54321- -> -12345
-;;; 入力 GR1:文字列のアドレス GR2:文字列の長さ
-;;; 出力 (同上)
-REV START
- RPUSH
- LAD GR3,0 ; GR3の初期化
-PU CPL GR3,GR2 ; ループ先頭。(GR3 = GR2)の場合、ループ脱出
- JZE NEXT ; ↓
- LD GR4,GR1 ; GR4 <- GR1
- ADDL GR4,GR3 ; GR4 <- GR4 + GR3
- LD GR5,0,GR4 ; GR5 <- GR4アドレスの値
- PUSH 0,GR5 ; GR5をプッシュ
- LAD GR3,1,GR3 ; GR3 <- GR3 + 1
- JUMP PU ; ループ終端
-NEXT LAD GR3,0 ; GR3の初期化
-PO CPL GR3,GR2 ; ループ先頭。(GR3 = GR2)の場合、ループ脱出
- JZE FIN ; ↓
- POP GR5 ; GR5にポップ
- LD GR4,GR1 ; GR4にGR1の値をコピー
- ADDL GR4,GR3 ; GR4 <- GR4 + GR3
- ST GR5,0,GR4 ; GR4のアドレス <- GR5の値
- LAD GR3,1,GR3 ; GR3 <- GR3 + 1
- JUMP PO ; ループ終端
-FIN RPOP
- RET
- END
+++ /dev/null
-;;; ABSを呼び出す
-;;; casl2 call_abs.casl ../stdlib.casl
-MAIN START
- LAD GR2,0
-MLOOP CPA GR2,MLEN
- JZE MFIN
- LD GR1,MVAL,GR2
- CALL OUTA
- CALL ABS
- JOV PUTOV
- JMI PUTM
- OUT PLUS,=1
- JUMP PUTD
-PUTM OUT MINUS,=1
- JUMP PUTD
-PUTOV OUT OV,=2
-PUTD CALL OUTA
- OUT SEP,MLEN
- LAD GR2,1,GR2
- JUMP MLOOP
-MFIN RET
-MVAL DC 12,-12,1,-1,32767,-32767,0,-32768
-MLEN DC 8
-SEP DC '--------'
-PLUS DC '+'
-MINUS DC '-'
-OV DC 'OV'
- END
+++ /dev/null
-MAIN START
- LAD GR1,A
- LAD GR2,B
- CALL ADDL32
- LD GR2,GR0
- LD GR1,1,GR2
- CALL OUTL
- LD GR1,0,GR2
- CALL OUTL
- RET
-A DC 6,10
-B DC 2,65530
- END
+++ /dev/null
-MAIN START
- LD GR1,XMAX
-LOOPX CPA GR1,XMIN
- JMI FIN
- OUT SEP,SLEN
- LD GR2,YMIN
-LOOPY CPL GR2,YMAX
- JPL XNEXT
- CALL OUTL
- PUSH 0,GR1
- LD GR1,GR2
- CALL OUTL
- POP GR1
- CALL DIVL
- JOV WOV
- PUSH 0,GR1
- LD GR1,GR0
- CALL OUTL
- LD GR1,GR3
- CALL OUTL
- POP GR1
-YNEXT OUT SEP,SLEN
- LAD GR2,1,GR2
- JUMP LOOPY
-WOV OUT Y0MSG,YLEN
- JUMP YNEXT
-XNEXT LAD GR1,-1,GR1
- JUMP LOOPX
-FIN RET
-XMAX DC 100
-XMIN DC 0
-YMAX DC 10
-YMIN DC 0
-SEP DC '--------------------'
-SLEN DC 20
-Y0MSG DC 'Error: div by 0'
-YLEN DC 15
- END
+++ /dev/null
-;;; casl2 inl.casl ../casl2lib/inl.casl ../casl2lib/outl.casl
-MAIN START
-LOOP CALL INL ; GR1に数値、GR2に文字列の長さ
- JOV NAN
- JMI BIG
- LD GR2,GR2
- JZE FIN
- CALL OUTL
- JUMP LOOP
-NAN OUT NANMSG,NANLEN
- JUMP LOOP
-BIG OUT BIGMSG,BIGLEN
- JUMP LOOP
-FIN RET
-NANMSG DC 'Not a number'
-NANLEN DC 12
-BIGMSG DC 'Over 65535'
-BIGLEN DC 10
- END
+++ /dev/null
-MAIN START
- LD GR1,L
- LAD GR2,STR
- CALL L2STR
- ST GR0,LEN
- OUT STR,LEN
- RET
-L DC 6543
-STR DS 5
-LEN DS 1
- END
+++ /dev/null
-;;; casl2 minim.casl $(LIBDIR)/minim.casl $(LIBDIR)/outa.casl
-MAIN START
- LAD GR1,DATA
- LD GR2,CNT
- CALL MINIM
- LD GR1,GR0
- CALL OUTA
- RET
-DATA DC 23,78,2,45,67,-39,86
-CNT DC 7
- END
+++ /dev/null
-MAIN START
- LAD GR3,0 ; Xのインデックス
-LOOPX CPA GR3,XCNT
- JZE FIN
- LD GR1,X,GR3
- LAD GR4,0 ; Yのインデックス
-LOOPY CPA GR4,YCNT
- JZE XNEXT
- LD GR2,Y,GR4
- CALL OUTA
- PUSH 0,GR1
- LD GR1,GR2
- CALL OUTA
- POP GR1
- CALL MULA
- JOV WOV
- PUSH 0,GR1
- LD GR1,GR0
- CALL OUTA
- POP GR1
-YNEXT OUT SEP,SLEN
- LAD GR4,1,GR4
- JUMP LOOPY
-WOV OUT YOMSG,YLEN
- JUMP YNEXT
-XNEXT LAD GR3,1,GR3
- JUMP LOOPX
-FIN RET
-X DC 0,1,2,127,128,151,217,255,256,257,32767,-32768,-32767,-257,-256,-255,-217,-151,-128,-127,-2,-1
-Y DC 0,1,2,127,128,151,217,255,256,257,32767,-32768,-32767,-257,-256,-255,-217,-151,-128,-127,-2,-1
-XCNT DC 22
-YCNT DC 22
-SEP DC '--------------------'
-SLEN DC 20
-YOMSG DC 'Warning: overflow'
-YLEN DC 17
- END
+++ /dev/null
-MAIN START
- LAD GR4,0 ; Xのインデックス
-LOOPX CPA GR4,XCNT ; (GR4 = XCNT)の場合、ループ脱出
- JZE FIN ; ↓
- LD GR1,X,GR4 ; GR1に、(X+GR4)番地の値を転送
- LAD GR5,0 ; Yのインデックス
-LOOPY CPA GR5,YCNT ; (GR5 = YCNT)の場合、ループ脱出
- JZE XNEXT ; ↓
- LD GR2,Y,GR5 ; GR2に、(X+GR5)番地の値を転送
- CALL OUTL ; GR1の数値を出力
- PUSH 0,GR1 ; GR2の数値を出力
- LD GR1,GR2 ; ↓
- CALL OUTL ; ↓
- POP GR1 ; ↓
- CALL MULL ; GR3 <- GR1 * GR2
- JOV WOV ; オーバーフローの場合は、WOVへジャンプ
- PUSH 0,GR1 ; GR3の数値を出力
- LD GR1,GR3 ; ↓
- CALL OUTL ; ↓
- POP GR1 ; ↓
-YNEXT OUT SEP,SLEN ; 区切り線を出力
- LAD GR5,1,GR5 ; GR5 <- GR5 + 1
- JUMP LOOPY ; LOOPYへジャンプ
-WOV OUT YOMSG,YLEN ; オーバーフローした場合のメッセージを表示
- OUT SEP,SLEN ; 区切り線を出力
-XNEXT LAD GR4,1,GR4 ; GR4 <- GR4 + 1
- JUMP LOOPX ; LOOPXへジャンプ
-FIN RET
-X DC 0,1,2,127,128,255,256,257,32767,#8000,#FFFF
-Y DC 0,1,2,127,128,255,256,257,32767,#8000,#FFFF
-XCNT DC 11
-YCNT DC 11
-SEP DC '--------------------'
-SLEN DC 20
-YOMSG DC 'overflow'
-YLEN DC 8
- END
+++ /dev/null
-;; casl2 outi_call.casl outi.casl
-MAIN START
- LAD GR1,VAL
- LAD GR2,0
-LOOP CPA GR2,CNT
- JZE FIN
- LD GR1,VAL,GR2
- CALL OUTA
- LAD GR2,1,GR2
- JUMP LOOP
-FIN RET
-VAL DC 0
- DC #0001,#0002,#0004,#0008
- DC #0010,#0020,#0040,#0080
- DC #0100,#0200,#0400,#0800
- DC #1000,#2000,#4000,#7FFF
- DC #8000
- DC #8001,#C000,#E000,#F000
- DC #F800,#FC00,#FE00,#FF00
- DC #FF80,#FFC0,#FFE0,#FFF0
- DC #FFF8,#FFFC,#FFFE,#FFFF
-CNT DC 34
- END
+++ /dev/null
-;; outd_q15.caslを呼び出し、33個の数値を表示する
-MAIN START
- LAD GR2,0
-LOOP LD GR1,VAL,GR2
- CALL OUTAQ15
- LAD GR2,1,GR2
- CPA GR2,CNT
- JZE FIN
- JUMP LOOP
-FIN RET
-VAL DC #7FFF,#4000,#2000,#1000
- DC #0800,#0400,#0200,#0100
- DC #0080,#0040,#0020,#0010
- DC #0008,#0004,#0002,#0001
- DC #8000
- DC #8001,#C000,#E000,#F000
- DC #F800,#FC00,#FE00,#FF00
- DC #FF80,#FFC0,#FFE0,#FFF0
- DC #FFF8,#FFFC,#FFFE,#FFFF
-CNT DC 33
- END
+++ /dev/null
-;;; casl2 outb_call.casl outb.casl
-MAIN START
- LAD GR2,0
-LOOP LD GR1,VAL,GR2
- CALL OUTB
- LAD GR2,1,GR2
- CPA GR2,CNT
- JZE FIN
- JUMP LOOP
-FIN RET
-VAL DC 0
- DC #0001,#0002,#0004,#0008
- DC #0010,#0020,#0040,#0080
- DC #0100,#0200,#0400,#0800
- DC #1000,#2000,#4000,#7FFF
- DC #8000
- DC #8001,#C000,#E000,#F000
- DC #F800,#FC00,#FE00,#FF00
- DC #FF80,#FFC0,#FFE0,#FFF0
- DC #FFF8,#FFFC,#FFFE,#FFFF
-CNT DC 34
- END
+++ /dev/null
-;;; casl2 outb_call.casl outb.casl
-MAIN START
- LAD GR2,0
-LOOP LD GR1,VAL,GR2
- CALL OUTBW
- LAD GR2,1,GR2
- CPA GR2,CNT
- JZE FIN
- JUMP LOOP
-FIN RET
-VAL DC 0
- DC #0001,#0002,#0004,#0008
- DC #0010,#0020,#0040,#0080
- DC #0100,#0200,#0400,#0800
- DC #1000,#2000,#4000,#7FFF
- DC #8000
- DC #8001,#C000,#E000,#F000
- DC #F800,#FC00,#FE00,#FF00
- DC #FF80,#FFC0,#FFE0,#FFF0
- DC #FFF8,#FFFC,#FFFE,#FFFF
-CNT DC 34
- END
+++ /dev/null
-;;; casl2 outl_call.casl outl.casl
-MAIN START
- LAD GR2,0
-LOOP LD GR1,VAL,GR2
- CALL OUTL
- LAD GR2,1,GR2
- CPA GR2,CNT
- JZE FIN
- JUMP LOOP
-FIN RET
-VAL DC 0
- DC #0001,#0002,#0004,#0008
- DC #0010,#0020,#0040,#0080
- DC #0100,#0200,#0400,#0800
- DC #1000,#2000,#4000,#7FFF
- DC #8000
- DC #8001,#C000,#E000,#F000
- DC #F800,#FC00,#FE00,#FF00
- DC #FF80,#FFC0,#FFE0,#FFF0
- DC #FFF8,#FFFC,#FFFE,#FFFF
-CNT DC 34
- END
+++ /dev/null
-;; outd_q15.caslを呼び出し、33個の数値を表示する
-MAIN START
- LAD GR2,0
-LOOP LD GR1,VAL,GR2
- CALL OUTLQ15
- LAD GR2,1,GR2
- CPA GR2,CNT
- JZE FIN
- JUMP LOOP
-FIN RET
-VAL DC #0001,#0002,#0004,#0008
- DC #0010,#0020,#0040,#0080
- DC #0100,#0200,#0400,#0800
- DC #1000,#2000,#4000,#7FFF
- DC #8000
- DC #8001,#C000,#E000,#F000
- DC #F800,#FC00,#FE00,#FF00
- DC #FF80,#FFC0,#FFE0,#FFF0
- DC #FFF8,#FFFC,#FFFE,#FFFF
-CNT DC 33
- END
+++ /dev/null
-;;; 「五」を表す16 x 16のpbm画像を出力する
-;;; 呼び出し方:
-;;; casl2 call_pbm.casl ../pbm16.casl
-MAIN START
- LAD GR1,GRAPH
- CALL PBM16
- RET
-GRAPH DC #FFFC ; 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0
- DC #FFFC ; 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0
- DC #FFFC ; 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0
- DC #0700 ; 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0
- DC #0700 ; 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0
- DC #0700 ; 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0
- DC #FFFC ; 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0
- DC #FFFC ; 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0
- DC #FFFC ; 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0
- DC #071C ; 0 0 0 0 0 1 1 1 0 0 0 1 1 1 0 0
- DC #071C ; 0 0 0 0 0 1 1 1 0 0 0 1 1 1 0 0
- DC #071C ; 0 0 0 0 0 1 1 1 0 0 0 1 1 1 0 0
- DC #FFFF ; 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
- DC #FFFF ; 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
- DC #FFFF ; 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
- DC #0000 ; 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- END
+++ /dev/null
-MAIN START
- OUT STR,LEN
- LAD GR1,STR
- LD GR2,LEN
- CALL REV
- OUT STR,LEN
- RET
-STR DC '12345'
-LEN DC 5
- END
+++ /dev/null
-;;; casl2 call_str2l.casl stdlib.casl
-MAIN START
- XOR GR4,GR4
- LAD GR6,LEN
-BLP LAD GR1,STR,GR4
- LD GR2,0,GR6
- JZE FIN
- LD GR5,GR1
- CALL STR2L
- JOV OV
- JMI NAN
- LD GR1,GR3
- CALL OUTL
- LD GR1,GR5
- JUMP ELP
-OV OUT MSGOV,LENOV
- JUMP ELP
-NAN OUT MSGNAN,LENNAN
-ELP ADDL GR4,GR2
- LAD GR6,1,GR6
- JUMP BLP
-FIN RET
-STR DC '0'
- DC '1'
- DC '123'
- DC '1234'
- DC '65535'
- DC '65536'
- DC '123456'
- DC 'a'
-LEN DC 1
- DC 1
- DC 3
- DC 4
- DC 5
- DC 5
- DC 6
- DC 1
- DC 0
-MSGOV DC 'over 65535'
-LENOV DC 10
-MSGNAN DC 'not a logical integer'
-LENNAN DC 21
- END
+++ /dev/null
-;;; call_strlen.casl
-;;;
-MAIN START
- PUSH 0,GR1
- LAD GR1,STR
- CALL STRLEN
- LD GR1,GR2
- CALL OUTL
-FIN POP GR1
- RET
-STR DC 'abcdefghij',0 ; 文字列
- END
+++ /dev/null
-;;; GR1を符号付き整数とみなし、絶対値に変換
-;;; 入力 GR1: -32768から32767の整数
-;;; 出力 GR1: 入力された整数の絶対値
-;;; OF: 入力されたGR1が-32768の場合、1
-;;; SF: 入力されたGR1が負数(-32767〜-1)の場合、1
-ABS START
- AND GR1,GR1 ; GR1が0以上の場合は、FINへジャンプ
- JPL FIN ; ↓
- JZE FIN ; ↓
- XOR GR1,ALLON ; GR1のビットを反転
- ADDA GR1,ONE ; GR1に1を追加
- JOV FIN ; 足し算でオーバーフローの場合は、OF:1を保持してFINへジャンプ
- CPL GR1,ALLON ; SF:1を設定
-FIN RET
-ONE DC 1
-ALLON DC #FFFF
- END
+++ /dev/null
-;;; 2つの32ビット値を加算する
-;;; 32ビットの値を、連続する2語の領域に格納
-;;; 入力 GR1:数値1の先頭アドレス GR2:数値2の先頭アドレス
-;;; 出力 GR0:和の先頭アドレス
-ADDL32 START
- RPUSH
- ST GR1,X ; X <- GR1:数値1
- ST GR2,Y ; Y <- GR2:数値2
- LD GR3,LEN ; GR3:語を表すインデックス 初期化
- XOR GR4,GR4 ; GR4:キャリー値 初期化
- LAD GR3,-1,GR3 ; ↓
-LOOP AND GR3,GR3 ; ループ先頭。(GR3 = 0)の場合は、ループ脱出
- JMI FIN ; ↓
- LD GR1,X ; GR1 <- (X + GR3)の値
- ADDL GR1,GR3 ; ↓
- LD GR1,0,GR1 ; ↓
- LD GR2,Y ; GR2 <- (Y + GR3)の値
- ADDL GR2,GR3 ; ↓
- LD GR2,0,GR2 ; ↓
- ADDL GR1,GR2 ; GR1 <- GR1 + GR2
- JOV CRRY ; オーバーフロー時は、CRRYへジャンプ
- ADDL GR1,GR4 ; GR1 <- GR1 + GR4
- JOV CRRY ; オーバーフロー時は、CRRYへジャンプ
- ST GR1,A,GR3 ; (A + GR3) <- GR1
- LAD GR3,-1,GR3 ; GR3 <- GR3 - 1
- XOR GR4,GR4 ; GR4 <- 0
- JUMP LOOP ; ループ先頭へジャンプ
-CRRY AND GR3,GR3 ; 最上位の語でオーバーフローした場合、OVへジャンプ
- JMI OV ; ↓
- ST GR1,A,GR3 ; (A + GR3) <- GR1
- LAD GR3,-1,GR3 ; GR3 <- GR3 - 1
- LAD GR4,1 ; GR4 <- 1
- JUMP LOOP ; ループ終端
-OV LAD GR3,=#8000 ; 強制的にオーバーフロー発生
- SLL GR3,1 ; ↓
-FIN LAD GR0,A ; GR0 <- A
- RPOP
- RET
-X DS 1 ; 数値1の先頭アドレス
-Y DS 1 ; 数値2の先頭アドレス
-A DS 2 ; 和
-LEN DC 2 ; 数値の語数
- END
+++ /dev/null
-;;; 符号付き整数の割算を筆算方式で行う
-;;; 入力 GR1:被除数 GR2:除数
-;;; 出力 GR0:商 GR3:剰余
-;;; 次の場合はオーバーフロー
-;;; GR1 = -32768; GR2 = -32768; GR2 = 0
-;;;
-DIVA START
- PUSH 0,GR1
- PUSH 0,GR2
- PUSH 0,GR4
- XOR GR0,GR0 ; 商を初期化
- XOR GR4,GR4 ; マイナスフラグを初期化
-CHK1 AND GR1,GR1 ; (GR1 > 0)の場合は、CHK2へジャンプ
- JPL CHK2 ; ↓
- XOR GR1,ALLON ; GR1の正負を反転
- ADDA GR1,ONE ; ↓
- JOV FIN ; (GR1 = -32768)の場合は終了
- XOR GR4,ONE ; GR4 <- 1
-CHK2 AND GR2,GR2 ; (GR1 > 0)の場合は、DIVへジャンプ
- JPL DIV ; ↓
- XOR GR2,ALLON ; GR2の正負を反転
- ADDA GR2,ONE ; ↓
- JOV FIN ; (GR2 = -32768)の場合は終了
- XOR GR4,ONE ; マイナスフラグを反転
-DIV CALL DIVL ; GR0 <- GR1 / GR2; GR3 <- GR1 mod GR2
- JOV FIN ; (GR2 = 0)の場合は終了
-MIN AND GR4,GR4 ; マイナスフラグがオフの場合、終了
- JZE FIN ; ↓
- XOR GR0,ALLON ; GR1の正負を反転
- ADDA GR0,ONE ; ↓
- XOR GR3,ALLON ; GR3の正負を反転
- ADDA GR3,ONE ; ↓
- JUMP FIN
-OV ADDL GR0,=#8000
-FIN POP GR4
- POP GR2
- POP GR1
- RET
-ONE DC 1
-ALLON DC #FFFF
- END
+++ /dev/null
-;;; 0〜65535の範囲にある正数の割算(筆算方式)を行う
-;;; 入力 GR1:被除数 GR2:除数
-;;; 出力 GR0:商 GR3:剰余
-;;; (GR2 = 0)の場合、GR0 GR3とも0になり、オーバーフロー
-DIVL START
- PUSH 0,GR1
- PUSH 0,GR2
- PUSH 0,GR4
- XOR GR0,GR0 ; GR0:商 初期化
- XOR GR3,GR3 ; GR3:剰余 初期化
- AND GR2,GR2 ; (GR2 = 0)の場合、DIVZEROへジャンプ
- JZE DIVZERO ; ↓
- AND GR1,GR1 ; (GR1 = 0)の場合、FINへジャンプ
- JZE FIN ; ↓
- ST GR2,Y ; YにGR2の初期値を保存
- LAD GR4,1 ; GR4:対象ビットのインデックス 初期化
-SL CPL GR2,GR1 ; ループ先頭。(GR2 > GR1)の場合、LOOPへループ脱出
- JPL LOOP ; ↓
- SLL GR4,1 ; GR4を1回左シフト
- ST GR2,TMP ; GR2の値をTMPに退避
- SLL GR2,1 ; GR2を1回左シフト
- JOV YOV ; オーバーフローの場合は、YOVへジャンプ
- JUMP SL ; ループ終端
-YOV LD GR2,TMP ; GR2の値をTMPから復元
- SRL GR4,1 ; GR4を1回右シフト
- JUMP LPIN ; LPINへジャンプ
-LOOP SRL GR4,1 ; ループ先頭。GR4を1回右シフト
- JZE SETMOD ; (GR4 = 0)の場合、SETMODへループ脱出
- SRL GR2,1 ; GR2を1回右シフト
- CPL GR1,Y ; (GR1 < Y)の場合、SETMODへループ脱出
- JMI SETMOD ; ↓
- CPL GR1,GR2 ; (GR1 < GR2)の場合、ループ先頭へジャンプ
- JMI LOOP ; ↓
-LPIN SUBL GR1,GR2 ; GR1 <- GR1 - GR2
- ADDL GR0,GR4 ; GR0 <- GR0 + GR4
- JUMP LOOP ; ループ終端
-DIVZERO LAD GR3,#8000 ; 強制的にオーバーフローを発生させ、GR3 <- 0
- SLL GR3,1 ; ↓
- JUMP FIN ; FIN へジャンプ
-SETMOD LD GR3,GR1 ; GR3 <- GR1。剰余の設定
-FIN POP GR4
- POP GR2
- POP GR1
- RET
-Y DS 1
-TMP DS 1
- END
+++ /dev/null
-;;; 0から65535の範囲にある整数の入力を受け付ける
-;;; 入力 (SVC)
-;;; 出力 GR1: 入力された数値
-;;; GR2: 文字列の長さ。
-;;; 入力が数字以外の場合は、SFフラグを設定
-;;; 65535を超える数値の場合は、OFフラグを設定
-INL START
- PUSH 0,GR3
- IN IBUF,ILEN ; 入力文字列を格納
- LAD GR1,IBUF
- LD GR2,ILEN
- CALL STR2L
- JOV FIN
- JMI FIN
- LD GR1,GR3
-FIN POP GR3
- RET
-IBUF DS 5
-ILEN DS 1
-MAXLEN DC 5
- END
+++ /dev/null
-;;; 符号なし整数を文字列に変換する。
-;;; 符号なし整数を文字列に変換する。
-;;; 入力 GR1:符号なし整数 G2:変換した文字列を格納するメモリーの先頭アドレス
-;;; 出力 GR0:文字列の長さ (同上)
-;;; 依存プログラム: DIVL, REV
-L2STR START
- PUSH 0,GR1
- PUSH 0,GR4
- XOR GR0,GR0 ; GR0 <- 0
- LD GR4,GR2 ; GR4 <- GR2
- PUSH 0,GR2 ; GR2の保存
- LAD GR2,10 ; GR2 <- 10。10進数の 10
-LOOP LD GR1,GR1 ; ループ先頭。GR1をテスト
- JZE SRT ; GR1が0の場合、ループ終了
- CALL DIVL ; GR1とGR2の、商をGR0、剰余をGR3に格納
- ADDL GR3,='0' ; GR3を文字に変換
- ST GR3,0,GR4 ; GR4のアドレスに、GR3を格納
- LAD GR4,1,GR4 ; GR4 <- GR4 + 1
- LD GR1,GR0 ; GR0の商をGR1にコピー
- JUMP LOOP ; ループ終端
-SRT POP GR2 ; GR2の復元
- LD GR1,GR2 ; GR1に文字列のアドレスを格納
- SUBL GR4,GR2 ; GR4 <- GR4 - GR2
- LD GR2,GR4 ; GR2 <- GR4
- CALL REV ; 文字列を逆順に並べ替え
- LD GR0,GR2 ; GR0 <- GR4 文字列の長さを格納
- POP GR4
- POP GR1
- RET
- END
+++ /dev/null
-;;; 連続した複数のWORDを符号付き整数とみなして最大値を返す
-;;; 入力: GR1: WORD値を格納したアドレス GR2: 値の個数
-;;; 出力: GR0: 最大値
-MAX START
- RPUSH
- LD GR0,0,GR1 ; MAX <- GR1アドレスの値
- ST GR0,MAX ; ↓
- LAD GR3,0 ; GR3:インデックス 初期化
-S1 CPA GR3,GR2 ; ループ先頭。(GR2 = GR3)の場合、終了
- JZE RET ; ↓
- LAD GR1,1,GR1 ; GR1 <- GR1 + 1
- LD GR0,0,GR1 ;
- CPA GR0,MAX ;
- JMI S2 ;
- JZE S2 ;
- ST GR0,MAX ;
-S2 LAD GR3,1,GR3 ;
- JUMP S1 ;
-RET LD GR0,MAX ;
- RPOP
- RET
-MAX DS 1 ; 最小値を格納
- END
+++ /dev/null
-;;; 複数のWORD値の中から、最小値を返す
-;;; 入力: GR1: WORD値を格納したアドレス GR2: 値の個数
-;;; 出力: GR0: 最小値
-MINIM START
- RPUSH
- LD GR0,0,GR1 ; MIN <- GR1アドレスの値
- ST GR0,MIN ; ↓
- LAD GR3,0 ; GR3:インデックス 初期化
-S1 CPA GR3,GR2 ; ループ先頭。(GR2 = GR3)の場合、終了
- JZE RET ; ↓
- LAD GR1,1,GR1 ; GR1 <- GR1 + 1
- LD GR0,0,GR1 ;
- CPA GR0,MIN ;
- JPL S2 ;
- JZE S2 ;
- ST GR0,MIN ;
-S2 LAD GR3,1,GR3 ;
- JUMP S1 ;
-RET LD GR0,MIN ;
- RPOP
- RET
-MIN DS 1 ; 最小値を格納
- END
+++ /dev/null
-;;; -32767〜32767の範囲にある正数のかけ算(筆算方式)を行う
-;;; 入力 GR1:被乗数 GR2:乗数
-;;; 出力 GR0:積
-;;; 被乗数または乗数が-32768の場合は、オーバーフロー
-;;; 積が-32767未満または32767より大きい場合は、GR0は積の下位16ビットになり、オーバーフロー
-MULA START
- RPUSH
- XOR GR0,GR0 ; 積
- AND GR1,GR1 ; (GR1 = 0)の場合、終了
- JZE FIN ; ↓
- AND GR2,GR2 ; (GR2 = 0)の場合、終了
- JZE FIN ; ↓
- LAD GR3,1 ; 対象ビット
- XOR GR4,GR4 ; マイナスフラグ
-CHK1 AND GR1,GR1 ; (GR1 > 0)の場合は、CHK2へジャンプ
- JPL CHK2 ; ↓
- XOR GR1,ALLON ; GR1の正負を反転
- ADDA GR1,ONE ; ↓
- JOV FIN ; (GR1 = -32768)の場合は終了
- XOR GR4,ONE ; GR4 <- 1
-CHK2 AND GR2,GR2 ; (GR1 > 0)の場合は、LOOPへジャンプ
- JPL MUL ; ↓
- XOR GR2,ALLON ; GR2の正負を反転
- ADDA GR2,ONE ; ↓
- JOV FIN ; (GR2 = -32768)の場合は終了
- XOR GR4,ONE ; マイナスフラグを反転
-MUL CALL MULL ; GR0 <- GR1 * GR2
- JOV FIN
- AND GR0,GR0
- JMI OV
-MIN AND GR4,GR4 ; マイナスフラグがオフの場合、終了
- JZE FIN ; ↓
- XOR GR0,ALLON ; GR1の正負を反転
- ADDA GR0,ONE ; ↓
- JUMP FIN
-OV ADDL GR0,=#8000
-FIN RPOP
- RET
-ONE DC 1
-ALLON DC #FFFF
- END
+++ /dev/null
-;;; 0〜65535の範囲にある正数のかけ算(筆算方式)を行う
-;;; 入力 GR1:被乗数 GR2:乗数
-;;; 出力 GR3:積
-;;; 積が65535より大きい場合は、オーバーフロー
-MULL START
- XOR GR3,GR3 ; GR3の初期化
- AND GR1,GR1 ; GR1 = 0 の場合、FINへジャンプ
- JZE FIN ; ↓
- AND GR2,GR2 ; GR2 = 0 の場合、FINへジャンプ
- JZE FIN ; ↓
- PUSH 0,GR1 ; GR1の退避
- PUSH 0,GR2 ; GR2の退避
-LOOP SRL GR2,1 ; ループ開始。SRLを1つ右シフト
- JOV ON ; 乗数の最下位ビットが1の場合、ONへジャンプ
- JUMP NEXT ; NEXTへジャンプ
-ON ADDL GR3,GR1 ; GR3 <- GR3 + GR1
- JOV POST ; GR3がオーバーフローした場合、POSTへジャンプ
-NEXT AND GR2,GR2 ; GR2 = 0 の場合、POSTへジャンプ
- JZE POST ; ↓
- SLL GR1,1 ; GR1を1つ左シフト
- JOV POST ; GR1がオーバーフローした場合、POSTへジャンプ
- JUMP LOOP ; ループ終端
-POST POP GR2 ; GR2の復元
- POP GR1 ; GR1の復元
-FIN RET
- END
+++ /dev/null
-; 符号なし乗算
-; 入力
-; GR0 = 被乗数
-; GR1 = 乗数
-; 出力
-; GR3 = 結果
-MULL START
-; レジスタを退避
- PUSH 0,GR1
- PUSH 0,GR2
-; 初期化
- XOR GR3,GR3 ; GR3 = 積
-; 被乗数をシフトしながら加算していく
-LOOP SRL GR2,1 ; 最下位ビットが
- JOV ONE ; 1なら加算
- JUMP ZERO ; 0なら加算しない
-ONE ADDL GR3,GR1 ;
-ZERO SLL GR1,1 ; 被乗数をシフト
- AND GR2,GR2 ; 乗数に1のビットが
- JNZ LOOP ; あれば続行
-; レジスタを復元
- POP GR2
- POP GR1
- RET
- END
+++ /dev/null
-;;; GR1に格納された値を、10進数の整数値(-32768〜32767)として表示
-OUTA START
- RPUSH
- LAD GR2,10 ; GR2に10進数の「10」を格納。
- LAD GR0,0 ; GR0 <- 0
- LAD GR4,0 ; 負数フラグ。GR1が負数の場合、GR4は1
- LAD GR5,0 ; 整数値の長さ
- AND GR1,GR1 ; GR1をテスト
- JZE ZPRT ; GR1が0の場合、ZPRTにジャンプ
- JPL STI ; GR1が正数の場合、STIにジャンプ
- LAD GR4,1 ; GR1が負数の場合、GR4をオン
- CALL ABS ; GR1を正数に変換
-STI CPL GR1,GR2 ; ループ先頭。(GR1 < GR2)の場合は、ループ脱出
- JMI STLST ; ↓
- CALL DIVL ; GR1とGR2の、商をGR0、剰余をGR3に格納
- LD GR1,GR3 ; GR1にGR3をコピー
- LD GR1,NCHAR,GR1 ; GR1を文字に変換
- ST GR1,STR,GR5 ; (STR + GR5) <- GR1
- LAD GR5,1,GR5 ; GR5 <- GR5 + 1
- LD GR1,GR0 ; GR0をGR1にコピー
- JUMP STI ; ループ終端
-STLST LD GR1,NCHAR,GR1 ; GR1を文字に変換
- ST GR1,STR,GR5 ; (STR + GR5) <- GR1
- LAD GR5,1,GR5 ; GR5 <- GR5 + 1
- AND GR4,GR4 ; 正数の場合
- JZE PRT ; ↓
- LD GR1,='-' ; 負数の場合、「-」をSTR領域に格納
- ST GR1,STR,GR5 ; (STR + GR5) <- GR1
- LAD GR5,1,GR5 ; GR5 <- GR5 + 1
- JUMP PRT ; PRTにジャンプ
-ZPRT LD GR1,NCHAR ; 「0」をSTR領域に格納
- ST GR1,STR,GR5 ; (STR + GR5) <- GR1
- LAD GR5,1,GR5 ; GR5 <- GR5 + 1
-PRT ST GR5,LEN ; LEN <- GR5
- LD GR2,LEN ; GR2にLENの値を格納
- LAD GR1,STR ; GR1に文字列のアドレスを格納
- CALL REV ; 文字列を逆順に並べ替え
- OUT STR,LEN ; 文字列を出力
- RPOP
- RET
-STR DS 17
-LEN DS 1
-NCHAR DC '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'
- END
+++ /dev/null
-;; GR1に格納された値を、10進数の符号付き小数値として表示
-OUTAQ15 START
- RPUSH
- LAD GR2,10 ; GR2に10進数の「10」を格納
- XOR GR4,GR4 ; 整数値の長さ
- XOR GR3,GR3 ; 出力する文字を一時的に格納
- AND GR1,GR1 ; GR1の符号をチェック
- JPL STDN ; ↓ GR1が正数の場合、STDNにジャンプ
- LD GR3,='-' ; ↓ GR1が負数の場合、「-」をSTR領域に格納
- ST GR3,STR ; ↓ ↓
- LAD GR4,1,GR4 ; ↓ ↓ GR4 <- GR4 + 1
- CPA GR1,=#8000 ; (GR1 = #8000)の場合、MINONEへジャンプ
- JZE MINONE ; ↓
- CALL ABS ; GR1を正数に変換
-STDN LD GR3,='0' ; 「0」をSTR領域に格納
- ST GR3,STR,GR4 ; ↓
- AND GR1,GR1 ; GR1が0の場合、PRTへジャンプ
- JZE PRT ; ↓
- LAD GR4,1,GR4 ; ↓ GR4 <- GR4 + 1
- LD GR3,='.' ; 「.」をSTR領域に格納
- ST GR3,STR,GR4 ; ↓
- LAD GR4,1,GR4 ; ↓ GR4 <- GR4 + 1
- SLL GR1,1 ; GR1を1回左シフト
-;; GR1の内容を小数値と見なし、10進数の文字列に変換してSTRに格納
-TODIG AND GR1,GR1 ; GR1が0の場合は、ループを脱出
- JZE PRT ; ↓
- CALL MULL ; GR1とGR2の、積をGR1、オーバーフロー値をGR3に格納
- LD GR1,GR0 ; GR0をGR1にコピー
- ADDA GR3,='0' ; GR1を文字に変換
- ST GR3,STR,GR4 ; (STR + GR4) <- GR1
- LAD GR4,1,GR4 ; GR4 <- GR4 + 1
- JUMP TODIG ; ループ
-;; GR1 = -1の場合
-MINONE LD GR1,='1' ; GR1が#8000の場合、-1を出力
- ST GR1,STR,GR4 ; (STR + GR4) <- GR1
- LAD GR4,1,GR4 ; GR4 <- GR4 + 1
- JUMP PRT ; ↓
-;; 値を出力
-PRT ST GR4,LEN ; LEN <- GR4
- OUT STR,LEN ; ↓
- RPOP
- RET
-STR DS 20
-LEN DS 1
- END
-
+++ /dev/null
-;;; GR1に格納された値を、2進数値として表示
-OUTB START
- RPUSH
- LD GR2,BIN ; GR2に2進数の「2」を格納。
- XOR GR4,GR4 ; GR4: 2進数値の長さ
-STI CPL GR1,GR2 ; ループ先頭。(GR1 < GR2)の場合は、ループ脱出
- JMI STLST ; ↓
- CALL DIVL ; GR1とGR2の、商をGR0、剰余をGR3に格納
- LD GR1,GR3 ; GR1にGR3をコピー
- LD GR1,NCHAR,GR1 ; GR1を文字に変換
- ST GR1,STR,GR4 ; (STR + GR4) <- GR1
- LAD GR4,1,GR4 ; GR4 <- GR4 + 1
- LD GR1,GR0 ; GR0をGR1にコピー
- JUMP STI ; ループ終端
-STLST LD GR1,NCHAR,GR1 ; GR1を文字に変換
- ST GR1,STR,GR4 ; (STR + GR4) <- GR1
- LAD GR4,1,GR4 ; GR4 <- GR4 + 1
-EMLOOP CPL GR4,DIG ; ループ先頭。(GR4 = DIG)の場合は、ループ脱出
- JZE PRT ; ↓
- LD GR1,NCHAR ; GR1 <- NCHAR:'0'
- ST GR1,STR,GR4 ; (STR + GR4) <- GR1
- LAD GR4,1,GR4 ; GR4 <- GR4 + 1
- JUMP EMLOOP ; ループ終端
-PRT ST GR4,LEN ; LEN <- GR4
- LD GR2,LEN ; GR2にLENの値を格納
- LAD GR1,STR ; GR1に文字列のアドレスを格納
- CALL REV ; 文字列を逆順に並べ替え
- OUT STR,LEN ; 文字列を出力
- RPOP
- RET
-STR DS 17
-LEN DS 1
-BIN DC 2
-NCHAR DC '01'
-SPC DC ' '
-DIG DC 16
- END
+++ /dev/null
-;;; GR1に格納された値を、空白付きの2進数値として表示
-OUTBW START
- RPUSH
- LD GR2,BIN ; GR2に2進数の「2」を格納。
- XOR GR4,GR4 ; GR4: 2進数値の長さ
-STI CPL GR1,GR2 ; ループ先頭。(GR1 < GR2)の場合は、ループ脱出
- JMI STLST ; ↓
- CALL DIVL ; GR1とGR2の、商をGR0、剰余をGR3に格納
- LD GR1,GR3 ; GR1にGR3をコピー
- LD GR1,NCHAR,GR1 ; GR1を文字に変換
- ST GR1,STR,GR4 ; (STR + GR4) <- GR1
- LAD GR4,1,GR4 ; GR4 <- GR4 + 1
- LD GR1,SPC ; GR1 <- SPC
- ST GR1,STR,GR4 ; (STR + GR4) <- GR1
- LAD GR4,1,GR4 ; GR4 <- GR4 + 1
- LD GR1,GR0 ; GR0をGR1にコピー
- JUMP STI ; ループ終端
-STLST LD GR1,NCHAR,GR1 ; GR1を文字に変換
- ST GR1,STR,GR4 ; (STR + GR4) <- GR1
- LAD GR4,1,GR4 ; GR4 <- GR4 + 1
-EMLOOP CPL GR4,DIG ; ループ先頭。(GR4 = DIG)の場合は、ループ脱出
- JZE PRT ; ↓
- LD GR1,SPC ; GR1 <- SPC
- ST GR1,STR,GR4 ; (STR + GR4) <- GR1
- LAD GR4,1,GR4 ; GR4 <- GR4 + 1
- LD GR1,NCHAR ; GR1 <- NCHAR:'0'
- ST GR1,STR,GR4 ; (STR + GR4) <- GR1
- LAD GR4,1,GR4 ; GR4 <- GR4 + 1
- JUMP EMLOOP ; ループ終端
-PRT ST GR4,LEN ; LEN <- GR4
- LD GR2,LEN ; GR2にLENの値を格納
- LAD GR1,STR ; GR1に文字列のアドレスを格納
- CALL REV ; 文字列を逆順に並べ替え
- OUT STR,LEN ; 文字列を出力
- RPOP
- RET
-STR DS 32
-LEN DS 1
-BIN DC 2
-NCHAR DC '01'
-SPC DC ' '
-DIG DC 31
- END
+++ /dev/null
-;;; GR1に格納された値を、10進数の整数値(0〜65535)として表示
-;;; 依存プログラム: DIVL, REV
-OUTL START
- RPUSH
- LAD GR2,10 ; GR2に10進数の「10」を格納。
- XOR GR0,GR0 ; GR0 <- 0
- XOR GR4,GR4 ; 整数値の長さ
- AND GR1,GR1 ; GR1をテスト
- JZE ZERO ; GR1が0の場合、ZEROにジャンプ
-STI CPL GR1,GR2 ; ループ先頭。(GR1 < GR2)の場合は、ループ脱出
- JMI STLST ; ↓
- CALL DIVL ; GR1とGR2の、商をGR0、剰余をGR3に格納
- LD GR1,GR3 ; GR1にGR3をコピー
- LD GR1,NCHAR,GR1 ; GR1を文字に変換
- ST GR1,STR,GR4 ; (STR + GR4) <- GR1
- LAD GR4,1,GR4 ; GR4 <- GR4 + 1
- LD GR1,GR0 ; GR0をGR1にコピー
- JUMP STI ; ループ終端
-STLST LD GR1,NCHAR,GR1 ; GR1を文字に変換
- ST GR1,STR,GR4 ; (STR + GR4) <- GR1
- LAD GR4,1,GR4 ; GR4 <- GR4 + 1
- JUMP PRT ; PRTにジャンプ
-ZERO LD GR1,NCHAR ; 「0」をSTR領域に格納
- ST GR1,STR,GR4 ; ↓ (STR + GR4) <- GR1
- LAD GR4,1,GR4 ; ↓ GR4 <- GR4 + 1
-PRT ST GR4,LEN ; LEN <- GR4
- LD GR2,LEN ; GR2にLENの値を格納
- LAD GR1,STR ; GR1に文字列のアドレスを格納
- CALL REV ; 文字列を逆順に並べ替え
- OUT STR,LEN ; 文字列を出力
- RPOP
- RET
-STR DS 17 ; 符号付き2進数で表記した場合を想定
-LEN DS 1
-NCHAR DC '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'
- END
+++ /dev/null
-;; GR1に格納された値を、10進数の符号なし小数値として表示
-OUTLQ15 START
- RPUSH
- LAD GR2,10 ; GR2に10進数の「10」を格納
- XOR GR4,GR4 ; 整数値の長さ
-STDN LD GR3,='0' ; 「0」をSTR領域に格納
- ST GR3,STR,GR4 ; ↓
- AND GR1,GR1 ; GR1が0の場合、PRTへジャンプ
- JZE PRT ; ↓
- LAD GR4,1,GR4 ; ↓ GR4 <- GR4 + 1
- LD GR3,='.' ; 「.」をSTR領域に格納
- ST GR3,STR,GR4 ; ↓
- LAD GR4,1,GR4 ; ↓ GR4 <- GR4 + 1
-;; GR1の内容を小数値と見なし、10進数の文字列に変換してSTRに格納
-TODIG AND GR1,GR1 ; GR1が0の場合は、ループを脱出
- JZE PRT ; ↓
- CALL MULL ; GR1とGR2の、積をGR0、オーバーフロー値をGR3に格納
- LD GR1,GR0 ; GR0をGR1にコピー
- ADDA GR3,='0' ; GR3を文字に変換
- ST GR3,STR,GR4 ; (STR + GR3) <- GR1
- LAD GR4,1,GR4 ; GR4 <- GR4 + 1
- JUMP TODIG ; ループ
-PRT ST GR4,LEN ; LEN <- GR4
- OUT STR,LEN ; 文字列を出力
- RPOP
- RET
-STR DS 20
-LEN DS 1
- END
+++ /dev/null
-;;; PBM画像ファイルを出力
-;;; GR1: 画像ビット列の先頭アドレス
-;;; GR2: 画像の幅
-;;; GR3: 画像の高さ
-OUTPBM START
- OUT HEADER,HLEN
- PUSH 0,GR1
- PUSH 0,GR2
- PUSH 0,GR3
- PUSH 0,GR4
- XOR GR4,GR4
- LD GR1,GR2
- LAD GR2,WIDTH
- CALL L2STR
- LD GR4,GR0
- LAD GR4,1,GR4
- LD GR1,SPC
- ST GR1,WIDTH,GR4
- LAD GR4,1,GR4
- LD GR1,GR3
- LAD GR2,WIDTH,GR4
- CALL L2STR
- ADDL GR4,GR0
- ST GR4,WHLEN
- OUT WIDTH,WHLEN
- POP GR4
- POP GR3
- POP GR2
- POP GR1
- RET
-HEADER DC 'P1'
-HLEN DC 2
-WIDTH DS 32
-SPC DC ' '
-HEIGHT DS 1
-WHLEN DS 1
+++ /dev/null
-;;; PBM16
-;;; GR1で指定されたアドレス以降のメモリを 16×16 の
-;;; 白黒ビットマップ画像データ(白:0 黒:1)とみなし、
-;;; PBM画像ファイルとして出力
-;;; 入力: GR1 画像データの先頭アドレス
-;;; 依存副プログラム: outb_w.casl divl.casl rotate.casl
-PBM16 START
- PUSH 0,GR1
- PUSH 0,GR2
- ST GR1,BEG
- OUT L1,L1LEN
- OUT L2,L2LEN
- XOR GR2,GR2
-LOOP CPL GR2,HEIGHT
- JZE FIN
- LD GR1,BEG
- ADDL GR1,GR2
- LD GR1,0,GR1
- CALL OUTB
- LAD GR2,1,GR2
- JUMP LOOP
-FIN POP GR2
- POP GR1
- RET
-L1 DC 'P1'
-L1LEN DC 2
-L2 DC '16 16'
-L2LEN DC 5
-HEIGHT DC 16
-BEG DS 1
- END
+++ /dev/null
-;;; メモリー上にある指定されたアドレス、長さの文字列を逆順に並べ替える
-;;; 例: 12345 -> 54321、54321- -> -12345
-;;; 入力 GR1:文字列のアドレス GR2:文字列の長さ
-;;; 出力 (同上)
-REV START
- RPUSH
- LAD GR3,0 ; GR3の初期化
-PU CPL GR3,GR2 ; ループ先頭。(GR3 = GR2)の場合、ループ脱出
- JZE NEXT ; ↓
- LD GR4,GR1 ; GR4 <- GR1
- ADDL GR4,GR3 ; GR4 <- GR4 + GR3
- LD GR5,0,GR4 ; GR5 <- GR4アドレスの値
- PUSH 0,GR5 ; GR5をプッシュ
- LAD GR3,1,GR3 ; GR3 <- GR3 + 1
- JUMP PU ; ループ終端
-NEXT LAD GR3,0 ; GR3の初期化
-PO CPL GR3,GR2 ; ループ先頭。(GR3 = GR2)の場合、ループ脱出
- JZE FIN ; ↓
- POP GR5 ; GR5にポップ
- LD GR4,GR1 ; GR4にGR1の値をコピー
- ADDL GR4,GR3 ; GR4 <- GR4 + GR3
- ST GR5,0,GR4 ; GR4のアドレス <- GR5の値
- LAD GR3,1,GR3 ; GR3 <- GR3 + 1
- JUMP PO ; ループ終端
-FIN RPOP
- RET
- END
+++ /dev/null
-;; CASL IIライブラリー
+++ /dev/null
-;;; 10進数の整数を表す文字列を数値に変換
-;;; 数値の範囲は、0から65535
-;;; 入力 GR1: 文字列を格納するメモリーの先頭アドレス
-;;; GR2: 文字列の長さ。最大5けた
-;;; 出力 GR3: 数値
-;;; 文字列が最大長より大きい場合と数値以外の場合は、GR3は#FFFF、OFは1
-;;; 数値以外の場合、OFは1
-;;; 依存プログラム: MULL
-STR2L START
- PUSH 0,GR1
- PUSH 0,GR2
- PUSH 0,GR4
- PUSH 0,GR5
- PUSH 0,GR6
- PUSH 0,GR7
- XOR GR3,GR3 ; GR3の初期化
- AND GR2,GR2 ; GR2 = 0の場合、OVへジャンプ
- JZE OV ; ↓
- CPL GR2,=5 ; GR2 > 5の場合、OVへジャンプ
- JPL OV ; ↓
- XOR GR4,GR4 ; GR4: インデックスの初期化
- LD GR5,GR1 ; GR5 <- GR1
- LD GR6,GR2 ; GR6 <- GR2
- XOR GR1,GR1 ; GR1の初期化
-STOL LD GR1,GR5 ; GR1に、入力文字列中の次の桁を格納
- ADDL GR1,GR4 ; ↓
- LD GR1,0,GR1 ; ↓
- LD GR7,ZERO ; GR1 < '0'の場合、FINへジャンプ
- CPL GR1,GR7 ; ↓
- JMI FIN ; ↓
- LD GR7,NINE ; GR1 > '9'の場合、FINへジャンプ
- CPL GR7,GR1 ; ↓
- JMI FIN ; ↓
- SUBL GR1,ZERO ; GR1の文字を、対応する数値に変換
- ADDL GR3,GR1
- JOV FIN
- LAD GR4,1,GR4 ; GR4 <- GR4 + 1
- CPL GR4,GR6 ; GR4 = GR6の場合、ループ脱出
- JZE FIN ; ↓
-MUL10 LAD GR2,10 ; GR2:10進数の 10
- LD GR1,GR3 ; GR1 <- GR3
- CALL MULL ; MULLを呼び出し、GR3 <- GR1 * GR2
- JUMP STOL ; ループ終端
-OV LAD GR7,1 ; オーバーフロー発生
- SRL GR7,1 ; ↓
-FIN POP GR7
- POP GR6
- POP GR5
- POP GR4
- POP GR2
- POP GR1
- RET
-ZERO DC '0'
-NINE DC '9'
- END
+++ /dev/null
-;;; 10進数の整数を表す文字列を数値に変換
-;;; 数値の範囲は、0から65535
-;;; 入力 GR1: 文字列を格納するメモリーの先頭アドレス
-;;; GR2: 文字列の長さ。最大5けた
-;;; 出力 GR3: 数値
-;;; 文字列が最大長より大きい場合と数値以外の場合は、GR3は#FFFF、OFは1
-;;; 数値以外の場合、OFは1
-;;; 依存プログラム: MULL
-STR2L START
- PUSH 0,GR1
- PUSH 0,GR2
- PUSH 0,GR4
- PUSH 0,GR5
- PUSH 0,GR6
- PUSH 0,GR7
- XOR GR3,GR3 ; GR3の初期化
- AND GR2,GR2 ; GR2 = 0の場合、OVへジャンプ
- JZE OV ; ↓
- CPL GR2,=5 ; GR2 > 5の場合、OVへジャンプ
- JPL OV ; ↓
- XOR GR4,GR4 ; GR4: インデックスの初期化
- LD GR5,GR1 ; GR5 <- GR1
- LD GR6,GR2 ; GR6 <- GR2
- XOR GR1,GR1 ; GR1の初期化
-STOL LD GR1,GR5 ; GR1に、入力文字列中の次の桁を格納
- ADDL GR1,GR4 ; ↓
- LD GR1,0,GR1 ; ↓
- LD GR7,ZERO ; GR1 < '0'の場合、FINへジャンプ
- CPL GR1,GR7 ; ↓
- JMI FIN ; ↓
- LD GR7,NINE ; GR1 > '9'の場合、FINへジャンプ
- CPL GR7,GR1 ; ↓
- JMI FIN ; ↓
- SUBL GR1,ZERO ; GR1の文字を、対応する数値に変換
- ADDL GR3,GR1
- JOV FIN
- LAD GR4,1,GR4 ; GR4 <- GR4 + 1
- CPL GR4,GR6 ; GR4 = GR6の場合、ループ脱出
- JZE FIN ; ↓
-MUL10 LAD GR2,10 ; GR2:10進数の 10
- LD GR1,GR3 ; GR1 <- GR3
- CALL MULL ; MULLを呼び出し、GR3 <- GR1 * GR2
- JUMP STOL ; ループ終端
-OV LAD GR7,1 ; オーバーフロー発生
- SRL GR7,1 ; ↓
-FIN POP GR7
- POP GR6
- POP GR5
- POP GR4
- POP GR2
- POP GR1
- RET
-ZERO DC '0'
-NINE DC '9'
- END
-;;; 0〜65535の範囲にある正数のかけ算(筆算方式)を行う
-;;; 入力 GR1:被乗数 GR2:乗数
-;;; 出力 GR3:積
-;;; 積が65535より大きい場合は、オーバーフロー
-MULL START
- XOR GR3,GR3 ; GR3の初期化
- AND GR1,GR1 ; GR1 = 0 の場合、FINへジャンプ
- JZE FIN ; ↓
- AND GR2,GR2 ; GR2 = 0 の場合、FINへジャンプ
- JZE FIN ; ↓
- PUSH 0,GR1 ; GR1の退避
- PUSH 0,GR2 ; GR2の退避
-LOOP SRL GR2,1 ; ループ開始。SRLを1つ右シフト
- JOV ON ; 乗数の最下位ビットが1の場合、ONへジャンプ
- JUMP NEXT ; NEXTへジャンプ
-ON ADDL GR3,GR1 ; GR3 <- GR3 + GR1
- JOV POST ; GR3がオーバーフローした場合、POSTへジャンプ
-NEXT AND GR2,GR2 ; GR2 = 0 の場合、POSTへジャンプ
- JZE POST ; ↓
- SLL GR1,1 ; GR1を1つ左シフト
- JOV POST ; GR1がオーバーフローした場合、POSTへジャンプ
- JUMP LOOP ; ループ終端
-POST POP GR2 ; GR2の復元
- POP GR1 ; GR1の復元
-FIN RET
- END
+++ /dev/null
-../../test/template/Define.mk
\ No newline at end of file
+++ /dev/null
-../../test/template/Group.mk
\ No newline at end of file
+++ /dev/null
-../../test/template/Test.mk
\ No newline at end of file
+++ /dev/null
-include ../Define.mk
-include ../Test.mk
+++ /dev/null
-;;; CASL2LIB > ABSを呼び出し、-1の絶対値を表示
-MAIN START
- LD GR1,A
- CALL ABS
- CALL OUTA
- RET
-A DC -1
- END
+++ /dev/null
-PATH=../../..:$PATH
-CASL2LIBDIR=../../../as/casl2lib
-casl2 call_abs.casl $CASL2LIBDIR/abs.casl $CASL2LIBDIR/outa.casl $CASL2LIBDIR/divl.casl $CASL2LIBDIR/rev.casl
+++ /dev/null
-MAIN START
- LAD GR1,A
- LAD GR2,B
- CALL ADDL32
- LD GR2,GR0
- LD GR1,1,GR2
- CALL OUTL
- LD GR1,0,GR2
- CALL OUTL
- RET
-A DC 6,10
-B DC 2,65530
- END
-4
-9
+++ /dev/null
-include ../Define.mk
-include ../Test.mk
+++ /dev/null
-MAIN START
- LAD GR1,A
- LAD GR2,B
- CALL ADDL32
- LD GR2,GR0
- LD GR1,1,GR2
- CALL OUTL
- LD GR1,0,GR2
- CALL OUTL
- RET
-A DC 6,10
-B DC 2,65530
- END
+++ /dev/null
-PATH=../../..:$PATH
-CASL2LIBDIR=../../../as/casl2lib
-cat call_addl32.casl && casl2 call_addl32.casl $CASL2LIBDIR/addl32.casl $CASL2LIBDIR/divl.casl $CASL2LIBDIR/rev.casl $CASL2LIBDIR/outl.casl
+++ /dev/null
--128
--127
+++ /dev/null
-include ../Define.mk
-include ../Test.mk
+++ /dev/null
-;; CASL2LIB > DIVAを呼び出し、-32767 / 255 の商と剰余を表示
-MAIN START
-BEGIN LD GR1,A
- LD GR2,B
- CALL DIVA
- JOV ERR
- LD GR1,GR0
- CALL OUTA
- LD GR1,GR3
- CALL OUTA
- JUMP FIN
-ERR OUT EMSG,ELEN
-FIN RET
-A DC -32767
-B DC 255
-EMSG DC 'error'
-ELEN DC 5
- END
+++ /dev/null
-PATH=../../..:$PATH
-CASL2LIBDIR=../../../as/casl2lib
-casl2 call_diva.casl $CASL2LIBDIR/diva.casl $CASL2LIBDIR/divl.casl $CASL2LIBDIR/outa.casl $CASL2LIBDIR/abs.casl $CASL2LIBDIR/rev.casl
+++ /dev/null
-include ../Define.mk
-include ../Test.mk
+++ /dev/null
-;; CASL2LIB > DIVLを呼び出し、65534 / 255 の商と剰余を表示
-MAIN START
-BEGIN LD GR1,A
- LD GR2,B
- CALL DIVL
- JOV ERR
- LD GR1,GR0
- CALL OUTL
- LD GR1,GR3
- CALL OUTL
- JUMP FIN
-ERR OUT EMSG,ELEN
-FIN RET
-A DC 65534
-B DC 255
-EMSG DC 'error'
-ELEN DC 5
- END
+++ /dev/null
-PATH=../../..:$PATH
-CASL2LIBDIR=../../../as/casl2lib
-casl2 call_divl.casl $CASL2LIBDIR/divl.casl $CASL2LIBDIR/outl.casl $CASL2LIBDIR/rev.casl
+++ /dev/null
-0
-1
-2
-10
-12
-32767
-32768
-65535
-Over 65535
-Over 65535
-Not integer
-Not integer
-12345
-Str too long. Stop
+++ /dev/null
-include ../Define.mk
-include ../Test.mk
+++ /dev/null
-;;; casl2 -M1024 call_inl.casl $CASL2LIB/inl.casl $CASL2LIB/str2l.casl $CASL2LIB/mull.casl \
-;;; $CASL2LIB/outl.casl $CASL2LIB/divl.casl $CASL2LIB/rev.casl
-MAIN START
-LOOP CALL INL ; GR1に数値、GR0に文字列の長さ
- JOV OV
- AND GR0,GR0
- JZE FIN
- CPL GR0,=#FFFF
- JZE NAN
- CALL OUTL
- JUMP LOOP
-OV CPL GR0,=#FFFF
- JZE LENOV
- OUT OVMSG,MLEN1
- JUMP LOOP
-NAN OUT NANMSG,MLEN2
- JUMP LOOP
-LENOV OUT LENOVMSG,MLEN3
-FIN RET
-OVMSG DC 'Over 65535'
-MLEN1 DC 10
-NANMSG DC 'Not integer'
-MLEN2 DC 11
-LENOVMSG DC 'Str too long. Stop'
-MLEN3 DC 18
- END
+++ /dev/null
-PATH=../../..:$PATH
-CASL2LIBDIR=../../../as/casl2lib
-casl2 -M 720 call_inl.casl $CASL2LIBDIR/inl.casl $CASL2LIBDIR/outl.casl $CASL2LIBDIR/str2l.casl $CASL2LIBDIR/divl.casl $CASL2LIBDIR/rev.casl $CASL2LIBDIR/mull.casl <in.txt
+++ /dev/null
-0
-1
-2
-10
-12
-32767
-32768
-65535
-65536
-90000
--1
-NOTNU
-12345
-100000
-1234
* casl2 invocation:: casl2の呼び出し
* comet2 invocation:: comet2の呼び出し
* dumpword invocation:: dumpwordの呼び出し
-* CASL2LIB Manual:: CASL2LIBマニュアル
+
+@detailmenu
+ --- The Detailed Node Listing ---
+
+YACASL2の使用例
+
+* Simple output:: 実行結果の出力だけを表示
+* Assemble result:: アセンブル結果の確認
+* Register and memory:: 実行時のレジスタとメモリを表示
+* Only assemble:: アセンブルと実行を別に行う
+* Analyze word:: 1語の解析
+* Use CASL2LIB:: CASL2ライブラリの使用
+
+実行時のレジスタとメモリを表示
+
+* Register specify:: 特定のレジスタを表示
+* End value::
+* Step count:: プログラムのステップ数を表示
+
+@end detailmenu
@end menu
@contents
@command{dumpword}の使用方法を表示して終了します。
@end table
-@node CASL2LIB Manual, , dumpword invocation, Top
-@chapter CASL2LIBマニュアル
-
-@menu
-* ABS:: @kbd{ABS} - @file{abs.casl}
-* DIVA:: @kbd{DIVA} - @file{diva.casl}
-* DIVL:: @kbd{DIVL} - @file{divl.casl}
-* INL:: @kbd{INL} - @file{inl.casl}
-* L2STR:: @kbd{L2STR} - @file{l2str.casl}
-* MAX:: @kbd{MAX} - @file{max.casl}
-* MINIM:: @kbd{MINIM} - @file{minim.casl}
-* MULA:: @kbd{MULA} - @file{mula.casl}
-* MULL:: @kbd{MULL} - @file{mull.casl}
-* OUTA:: @kbd{OUTA} - @file{outa.casl}
-* OUTB:: @kbd{OUTB} - @file{outb.casl}
-* OUTD_Q15:: @kbd{OUTD_Q15} - @file{outd_q15.casl}
-* OUTL:: @kbd{OUTL} - @file{outl.casl}
-* REV:: @kbd{REV} - @file{rev.casl}
-* STR2L:: @kbd{STR2L} - @file{str2l.casl}
-@end menu
-
-@node ABS, DIVA, CASL2LIB Manual, CASL2LIB Manual
-@section @kbd{ABS} - @file{abs.casl}
-GR1を符号付き整数とみなし、絶対値に変換
-
-@unnumberedsubsec 入力
-@table @code
-@item GR1
-符号付き整数
-@end table
-
-@unnumberedsubsec 出力
-@table @code
-@item GR1
-入力された値の絶対値
-
-@item OF
-入力された値が-32768の場合、1
-
-@item SF
-入力された値が負数(-32767から-1)の場合、1
-@end table
-
-@unnumberedsubsec 依存する副プログラム
-なし
-
-@unnumberedsubsec 使用例
-@example
-@verbatiminclude casl2lib/abs/call_abs.casl
-@end example
-
-@example
-$ @kbd{casl2 call_abs.casl $CASL2LIB/abs.casl $CASL2LIB/outa.casl \
- $CASL2LIB/divl.casl $CASL2LIB/rev.casl}
-1
-@end example
-
-@node DIVA, DIVL, ABS, CASL2LIB Manual
-@section @kbd{DIVA} - @file{diva.casl}
-符号付き整数の割算を筆算方式で行う
-
-@unnumberedsubsec 入力
-@table @code
-@item GR1
-被除数
-
-@item GR2
-除数
-@end table
-
-@unnumberedsubsec 出力
-@table @code
-@item GR0
-商
-
-@item GR3
-剰余
-
-@item OF
-次の場合、1
-@itemize
-@item
-GR2が0
-
-@item
-GR1が-32768
-
-@item
-GR2が-32768
-@end itemize
-
-@item SF
-商が負数(-32767から-1)の場合、1
-
-@item ZF
-商が0の場合、1
-@end table
-
-@unnumberedsubsec 依存する副プログラム
-@itemize
-@item @code{DIVL}
-@end itemize
-
-@unnumberedsubsec 使用例
-@example
-@verbatiminclude casl2lib/diva/call_diva.casl
-@end example
-
-@example
-$ @kbd{casl2 call_diva.casl $CASL2LIB/diva.casl $CASL2LIB/divl.casl \
- $CASL2LIB/outa.casl $CASL2LIB/abs.casl $CASL2LIB/rev.casl}
--128
--127
-@end example
-
-@node DIVL, INL, DIVA, CASL2LIB Manual
-@section @kbd{DIVL} - @file{divl.casl}
-符号なし整数の割算を筆算方式で行う
-
-@unnumberedsubsec 入力
-@table @code
-@item GR1
-被除数
-
-@item GR2
-除数
-@end table
-
-@unnumberedsubsec 出力
-@table @code
-@item GR0
-商
-
-@item GR3
-剰余
-
-@item OF
-GR2が0の場合、1
-
-@item SF
-商が32768から65535の場合、1
-
-@item ZF
-商が0の場合、1
-@end table
-
-@unnumberedsubsec 依存する副プログラム
-なし
-
-@unnumberedsubsec 使用例
-@example
-@verbatiminclude casl2lib/divl/call_divl.casl
-@end example
-
-@example
-$ @kbd{casl2 call_divl.casl $CASL2LIB/divl.casl $CASL2LIB/outl.casl \
- $CASL2LIB/rev.casl}
-256
-254
-@end example
-
-@node INL, L2STR, DIVL, CASL2LIB Manual
-@section @kbd{INL} - @file{inl.casl}
-
-符号なし整数の入力を受け付ける
-
-@unnumberedsubsec 入力
-@table @code
-@item 標準入力
-符号なし整数
-@end table
-
-@unnumberedsubsec 出力
-@table @code
-@item GR1
-入力された符号なし整数
-
-@item GR0
-文字列の長さ。
-数字以外が入力された場合は@code{#FFFF}
-@end table
-
-@unnumberedsubsec 依存する副プログラム
-@itemize
-@item
-@code{STR2L}
-@end itemize
-
-@unnumberedsubsec 使用例
-次のコマンドを実行すると、数値の入力が受け付けられ、入力された数値が表示される。
-
-@example
-@verbatiminclude casl2lib/inl/call_inl.casl
-@end example
-
-@example
-$ @kbd{casl2 -M1024 call_inl.casl $CASL2LIB/inl.casl $CASL2LIB/str2l.casl $CASL2LIB/mull.casl \
- $CASL2LIB/outl.casl $CASL2LIB/divl.casl $CASL2LIB/rev.casl}
-@end example
-
-@node L2STR, MAX, INL, CASL2LIB Manual
-@section @kbd{L2STR} - @file{l2str.casl}
-
-符号なし整数を文字列に変換する
-
-@unnumberedsubsec 入力
-@table @code
-@item GR1
-符号なし整数
-
-@item GR2
-変換した文字列を格納するアドレス
-@end table
-
-@unnumberedsubsec 出力
-@table @code
-@item GR0
-文字列の長さ
-@end table
-
-@unnumberedsubsec 依存する副プログラム
-@itemize
-@item
-@code{DIVL}
-@end itemize
-
-@node MAX, MINIM, L2STR, CASL2LIB Manual
-@section @kbd{MAX} - @file{max.casl}
-
-連続した複数のWORDを符号付き整数とみなして最大値を返す
-
-@unnumberedsubsec 入力
-@table @code
-@item GR1
-WORD値を格納したアドレス
-
-@item GR2
-値の個数
-@end table
-
-@unnumberedsubsec 出力
-@table @code
-@item GR0
-最大値
-@end table
-
-@unnumberedsubsec 依存する副プログラム
-なし
-
-@node MINIM, MULA, MAX, CASL2LIB Manual
-@section @kbd{MINIM} - @file{minim.casl}
-
-連続した複数のWORDを符号付き整数とみなして最小値を返す
-
-@unnumberedsubsec 入力
-@table @code
-@item GR1
-WORD値を格納したアドレス
-
-@item GR2
-値の個数
-@end table
-
-@unnumberedsubsec 出力
-@table @code
-@item GR0
-最小値
-@end table
-
-@unnumberedsubsec 依存する副プログラム
-なし
-
-@node MULA, MULL, MINIM, CASL2LIB Manual
-@section @kbd{MULA} - @file{mula.casl}
-
-@node MULL, OUTA, MULA, CASL2LIB Manual
-@section @kbd{MULL} - @file{mull.casl}
-
-@node OUTA, OUTB, MULL, CASL2LIB Manual
-@section @kbd{OUTA} - @file{outa.casl}
-
-@node OUTB, OUTD_Q15, OUTA, CASL2LIB Manual
-@section @kbd{OUTB} - @file{outb.casl}
-
-@node OUTD_Q15, OUTL, OUTB, CASL2LIB Manual
-@section @kbd{OUTD_Q15} - @file{outd_q15.casl}
-
-@node OUTL, REV, OUTD_Q15, CASL2LIB Manual
-@section @kbd{OUTL} - @file{outl.casl}
-
-@node REV, STR2L, OUTL, CASL2LIB Manual
-@section @kbd{REV} - @file{rev.casl}
-
-@node STR2L, , REV, CASL2LIB Manual
-@section @kbd{STR2L} - @file{str2l.casl}
-
@bye
-.PHONY: clean systemtest-clean unittest-clean
+.PHONY: systemtest clean system-clean unit-clean
+
+systemtest:
+ @$(MAKE) -sC system check
clean: systemtest-clean unittest-clean
-systemtest-clean:
- @$(MAKE) -sC system/casl2 clean
- @$(MAKE) -sC system/comet2 clean
- @$(MAKE) -sC system/dumpword clean
+system-clean:
+ @$(MAKE) -sC system clean
-unittest-clean:
+unit-clean:
@$(MAKE) -sC unit clean
# 複数の子ディレクトリーでmakeを実行
-CMD = casl2_smoke casl2_opt casl2_cmd casl2_err casl2_lib comet2_smoke comet2_opt comet2_cmd comet2_err comet2_lib disassemble dumpword
+CMD = casl2_smoke casl2_opt casl2_cmd casl2_err comet2_smoke comet2_opt comet2_cmd comet2_err casl2rev dumpword
define make_dirs
$(foreach d,$1,$(MAKE) -sC $d $2)
endef
+++ /dev/null
-../../template/Define.mk
\ No newline at end of file
+++ /dev/null
-../../template/Group.mk
\ No newline at end of file
+++ /dev/null
-../../template/Test.mk
\ No newline at end of file
+++ /dev/null
-12
-+
-12
---------
--12
--
-12
---------
-1
-+
-1
---------
--1
--
-1
---------
-32767
-+
-32767
---------
--32767
--
-32767
---------
-0
-+
-0
---------
--32768
-OV
--32768
---------
+++ /dev/null
-include ../Define.mk
-include ../Test.mk
+++ /dev/null
-../../../../casl2 -M2048 ../../../../as/casl2lib/sample/call_abs.casl ../../../../as/casl2lib/stdlib.casl
+++ /dev/null
-include ../Define.mk
-include ../Test.mk
+++ /dev/null
-../../../../casl2 -M2048 ../../../../as/casl2lib/sample/call_addl32.casl ../../../../as/casl2lib/stdlib.casl
+++ /dev/null
---------------------
-100
-0
-Error: div by 0
---------------------
-100
-1
-100
-0
---------------------
-100
-2
-50
-0
---------------------
-100
-3
-33
-1
---------------------
-100
-4
-25
-0
---------------------
-100
-5
-20
-0
---------------------
-100
-6
-16
-4
---------------------
-100
-7
-14
-2
---------------------
-100
-8
-12
-4
---------------------
-100
-9
-11
-1
---------------------
-100
-10
-10
-0
---------------------
---------------------
-99
-0
-Error: div by 0
---------------------
-99
-1
-99
-0
---------------------
-99
-2
-49
-1
---------------------
-99
-3
-33
-0
---------------------
-99
-4
-24
-3
---------------------
-99
-5
-19
-4
---------------------
-99
-6
-16
-3
---------------------
-99
-7
-14
-1
---------------------
-99
-8
-12
-3
---------------------
-99
-9
-11
-0
---------------------
-99
-10
-9
-9
---------------------
---------------------
-98
-0
-Error: div by 0
---------------------
-98
-1
-98
-0
---------------------
-98
-2
-49
-0
---------------------
-98
-3
-32
-2
---------------------
-98
-4
-24
-2
---------------------
-98
-5
-19
-3
---------------------
-98
-6
-16
-2
---------------------
-98
-7
-14
-0
---------------------
-98
-8
-12
-2
---------------------
-98
-9
-10
-8
---------------------
-98
-10
-9
-8
---------------------
---------------------
-97
-0
-Error: div by 0
---------------------
-97
-1
-97
-0
---------------------
-97
-2
-48
-1
---------------------
-97
-3
-32
-1
---------------------
-97
-4
-24
-1
---------------------
-97
-5
-19
-2
---------------------
-97
-6
-16
-1
---------------------
-97
-7
-13
-6
---------------------
-97
-8
-12
-1
---------------------
-97
-9
-10
-7
---------------------
-97
-10
-9
-7
---------------------
---------------------
-96
-0
-Error: div by 0
---------------------
-96
-1
-96
-0
---------------------
-96
-2
-48
-0
---------------------
-96
-3
-32
-0
---------------------
-96
-4
-24
-0
---------------------
-96
-5
-19
-1
---------------------
-96
-6
-16
-0
---------------------
-96
-7
-13
-5
---------------------
-96
-8
-12
-0
---------------------
-96
-9
-10
-6
---------------------
-96
-10
-9
-6
---------------------
---------------------
-95
-0
-Error: div by 0
---------------------
-95
-1
-95
-0
---------------------
-95
-2
-47
-1
---------------------
-95
-3
-31
-2
---------------------
-95
-4
-23
-3
---------------------
-95
-5
-19
-0
---------------------
-95
-6
-15
-5
---------------------
-95
-7
-13
-4
---------------------
-95
-8
-11
-7
---------------------
-95
-9
-10
-5
---------------------
-95
-10
-9
-5
---------------------
---------------------
-94
-0
-Error: div by 0
---------------------
-94
-1
-94
-0
---------------------
-94
-2
-47
-0
---------------------
-94
-3
-31
-1
---------------------
-94
-4
-23
-2
---------------------
-94
-5
-18
-4
---------------------
-94
-6
-15
-4
---------------------
-94
-7
-13
-3
---------------------
-94
-8
-11
-6
---------------------
-94
-9
-10
-4
---------------------
-94
-10
-9
-4
---------------------
---------------------
-93
-0
-Error: div by 0
---------------------
-93
-1
-93
-0
---------------------
-93
-2
-46
-1
---------------------
-93
-3
-31
-0
---------------------
-93
-4
-23
-1
---------------------
-93
-5
-18
-3
---------------------
-93
-6
-15
-3
---------------------
-93
-7
-13
-2
---------------------
-93
-8
-11
-5
---------------------
-93
-9
-10
-3
---------------------
-93
-10
-9
-3
---------------------
---------------------
-92
-0
-Error: div by 0
---------------------
-92
-1
-92
-0
---------------------
-92
-2
-46
-0
---------------------
-92
-3
-30
-2
---------------------
-92
-4
-23
-0
---------------------
-92
-5
-18
-2
---------------------
-92
-6
-15
-2
---------------------
-92
-7
-13
-1
---------------------
-92
-8
-11
-4
---------------------
-92
-9
-10
-2
---------------------
-92
-10
-9
-2
---------------------
---------------------
-91
-0
-Error: div by 0
---------------------
-91
-1
-91
-0
---------------------
-91
-2
-45
-1
---------------------
-91
-3
-30
-1
---------------------
-91
-4
-22
-3
---------------------
-91
-5
-18
-1
---------------------
-91
-6
-15
-1
---------------------
-91
-7
-13
-0
---------------------
-91
-8
-11
-3
---------------------
-91
-9
-10
-1
---------------------
-91
-10
-9
-1
---------------------
---------------------
-90
-0
-Error: div by 0
---------------------
-90
-1
-90
-0
---------------------
-90
-2
-45
-0
---------------------
-90
-3
-30
-0
---------------------
-90
-4
-22
-2
---------------------
-90
-5
-18
-0
---------------------
-90
-6
-15
-0
---------------------
-90
-7
-12
-6
---------------------
-90
-8
-11
-2
---------------------
-90
-9
-10
-0
---------------------
-90
-10
-9
-0
---------------------
---------------------
-89
-0
-Error: div by 0
---------------------
-89
-1
-89
-0
---------------------
-89
-2
-44
-1
---------------------
-89
-3
-29
-2
---------------------
-89
-4
-22
-1
---------------------
-89
-5
-17
-4
---------------------
-89
-6
-14
-5
---------------------
-89
-7
-12
-5
---------------------
-89
-8
-11
-1
---------------------
-89
-9
-9
-8
---------------------
-89
-10
-8
-9
---------------------
---------------------
-88
-0
-Error: div by 0
---------------------
-88
-1
-88
-0
---------------------
-88
-2
-44
-0
---------------------
-88
-3
-29
-1
---------------------
-88
-4
-22
-0
---------------------
-88
-5
-17
-3
---------------------
-88
-6
-14
-4
---------------------
-88
-7
-12
-4
---------------------
-88
-8
-11
-0
---------------------
-88
-9
-9
-7
---------------------
-88
-10
-8
-8
---------------------
---------------------
-87
-0
-Error: div by 0
---------------------
-87
-1
-87
-0
---------------------
-87
-2
-43
-1
---------------------
-87
-3
-29
-0
---------------------
-87
-4
-21
-3
---------------------
-87
-5
-17
-2
---------------------
-87
-6
-14
-3
---------------------
-87
-7
-12
-3
---------------------
-87
-8
-10
-7
---------------------
-87
-9
-9
-6
---------------------
-87
-10
-8
-7
---------------------
---------------------
-86
-0
-Error: div by 0
---------------------
-86
-1
-86
-0
---------------------
-86
-2
-43
-0
---------------------
-86
-3
-28
-2
---------------------
-86
-4
-21
-2
---------------------
-86
-5
-17
-1
---------------------
-86
-6
-14
-2
---------------------
-86
-7
-12
-2
---------------------
-86
-8
-10
-6
---------------------
-86
-9
-9
-5
---------------------
-86
-10
-8
-6
---------------------
---------------------
-85
-0
-Error: div by 0
---------------------
-85
-1
-85
-0
---------------------
-85
-2
-42
-1
---------------------
-85
-3
-28
-1
---------------------
-85
-4
-21
-1
---------------------
-85
-5
-17
-0
---------------------
-85
-6
-14
-1
---------------------
-85
-7
-12
-1
---------------------
-85
-8
-10
-5
---------------------
-85
-9
-9
-4
---------------------
-85
-10
-8
-5
---------------------
---------------------
-84
-0
-Error: div by 0
---------------------
-84
-1
-84
-0
---------------------
-84
-2
-42
-0
---------------------
-84
-3
-28
-0
---------------------
-84
-4
-21
-0
---------------------
-84
-5
-16
-4
---------------------
-84
-6
-14
-0
---------------------
-84
-7
-12
-0
---------------------
-84
-8
-10
-4
---------------------
-84
-9
-9
-3
---------------------
-84
-10
-8
-4
---------------------
---------------------
-83
-0
-Error: div by 0
---------------------
-83
-1
-83
-0
---------------------
-83
-2
-41
-1
---------------------
-83
-3
-27
-2
---------------------
-83
-4
-20
-3
---------------------
-83
-5
-16
-3
---------------------
-83
-6
-13
-5
---------------------
-83
-7
-11
-6
---------------------
-83
-8
-10
-3
---------------------
-83
-9
-9
-2
---------------------
-83
-10
-8
-3
---------------------
---------------------
-82
-0
-Error: div by 0
---------------------
-82
-1
-82
-0
---------------------
-82
-2
-41
-0
---------------------
-82
-3
-27
-1
---------------------
-82
-4
-20
-2
---------------------
-82
-5
-16
-2
---------------------
-82
-6
-13
-4
---------------------
-82
-7
-11
-5
---------------------
-82
-8
-10
-2
---------------------
-82
-9
-9
-1
---------------------
-82
-10
-8
-2
---------------------
---------------------
-81
-0
-Error: div by 0
---------------------
-81
-1
-81
-0
---------------------
-81
-2
-40
-1
---------------------
-81
-3
-27
-0
---------------------
-81
-4
-20
-1
---------------------
-81
-5
-16
-1
---------------------
-81
-6
-13
-3
---------------------
-81
-7
-11
-4
---------------------
-81
-8
-10
-1
---------------------
-81
-9
-9
-0
---------------------
-81
-10
-8
-1
---------------------
---------------------
-80
-0
-Error: div by 0
---------------------
-80
-1
-80
-0
---------------------
-80
-2
-40
-0
---------------------
-80
-3
-26
-2
---------------------
-80
-4
-20
-0
---------------------
-80
-5
-16
-0
---------------------
-80
-6
-13
-2
---------------------
-80
-7
-11
-3
---------------------
-80
-8
-10
-0
---------------------
-80
-9
-8
-8
---------------------
-80
-10
-8
-0
---------------------
---------------------
-79
-0
-Error: div by 0
---------------------
-79
-1
-79
-0
---------------------
-79
-2
-39
-1
---------------------
-79
-3
-26
-1
---------------------
-79
-4
-19
-3
---------------------
-79
-5
-15
-4
---------------------
-79
-6
-13
-1
---------------------
-79
-7
-11
-2
---------------------
-79
-8
-9
-7
---------------------
-79
-9
-8
-7
---------------------
-79
-10
-7
-9
---------------------
---------------------
-78
-0
-Error: div by 0
---------------------
-78
-1
-78
-0
---------------------
-78
-2
-39
-0
---------------------
-78
-3
-26
-0
---------------------
-78
-4
-19
-2
---------------------
-78
-5
-15
-3
---------------------
-78
-6
-13
-0
---------------------
-78
-7
-11
-1
---------------------
-78
-8
-9
-6
---------------------
-78
-9
-8
-6
---------------------
-78
-10
-7
-8
---------------------
---------------------
-77
-0
-Error: div by 0
---------------------
-77
-1
-77
-0
---------------------
-77
-2
-38
-1
---------------------
-77
-3
-25
-2
---------------------
-77
-4
-19
-1
---------------------
-77
-5
-15
-2
---------------------
-77
-6
-12
-5
---------------------
-77
-7
-11
-0
---------------------
-77
-8
-9
-5
---------------------
-77
-9
-8
-5
---------------------
-77
-10
-7
-7
---------------------
---------------------
-76
-0
-Error: div by 0
---------------------
-76
-1
-76
-0
---------------------
-76
-2
-38
-0
---------------------
-76
-3
-25
-1
---------------------
-76
-4
-19
-0
---------------------
-76
-5
-15
-1
---------------------
-76
-6
-12
-4
---------------------
-76
-7
-10
-6
---------------------
-76
-8
-9
-4
---------------------
-76
-9
-8
-4
---------------------
-76
-10
-7
-6
---------------------
---------------------
-75
-0
-Error: div by 0
---------------------
-75
-1
-75
-0
---------------------
-75
-2
-37
-1
---------------------
-75
-3
-25
-0
---------------------
-75
-4
-18
-3
---------------------
-75
-5
-15
-0
---------------------
-75
-6
-12
-3
---------------------
-75
-7
-10
-5
---------------------
-75
-8
-9
-3
---------------------
-75
-9
-8
-3
---------------------
-75
-10
-7
-5
---------------------
---------------------
-74
-0
-Error: div by 0
---------------------
-74
-1
-74
-0
---------------------
-74
-2
-37
-0
---------------------
-74
-3
-24
-2
---------------------
-74
-4
-18
-2
---------------------
-74
-5
-14
-4
---------------------
-74
-6
-12
-2
---------------------
-74
-7
-10
-4
---------------------
-74
-8
-9
-2
---------------------
-74
-9
-8
-2
---------------------
-74
-10
-7
-4
---------------------
---------------------
-73
-0
-Error: div by 0
---------------------
-73
-1
-73
-0
---------------------
-73
-2
-36
-1
---------------------
-73
-3
-24
-1
---------------------
-73
-4
-18
-1
---------------------
-73
-5
-14
-3
---------------------
-73
-6
-12
-1
---------------------
-73
-7
-10
-3
---------------------
-73
-8
-9
-1
---------------------
-73
-9
-8
-1
---------------------
-73
-10
-7
-3
---------------------
---------------------
-72
-0
-Error: div by 0
---------------------
-72
-1
-72
-0
---------------------
-72
-2
-36
-0
---------------------
-72
-3
-24
-0
---------------------
-72
-4
-18
-0
---------------------
-72
-5
-14
-2
---------------------
-72
-6
-12
-0
---------------------
-72
-7
-10
-2
---------------------
-72
-8
-9
-0
---------------------
-72
-9
-8
-0
---------------------
-72
-10
-7
-2
---------------------
---------------------
-71
-0
-Error: div by 0
---------------------
-71
-1
-71
-0
---------------------
-71
-2
-35
-1
---------------------
-71
-3
-23
-2
---------------------
-71
-4
-17
-3
---------------------
-71
-5
-14
-1
---------------------
-71
-6
-11
-5
---------------------
-71
-7
-10
-1
---------------------
-71
-8
-8
-7
---------------------
-71
-9
-7
-8
---------------------
-71
-10
-7
-1
---------------------
---------------------
-70
-0
-Error: div by 0
---------------------
-70
-1
-70
-0
---------------------
-70
-2
-35
-0
---------------------
-70
-3
-23
-1
---------------------
-70
-4
-17
-2
---------------------
-70
-5
-14
-0
---------------------
-70
-6
-11
-4
---------------------
-70
-7
-10
-0
---------------------
-70
-8
-8
-6
---------------------
-70
-9
-7
-7
---------------------
-70
-10
-7
-0
---------------------
---------------------
-69
-0
-Error: div by 0
---------------------
-69
-1
-69
-0
---------------------
-69
-2
-34
-1
---------------------
-69
-3
-23
-0
---------------------
-69
-4
-17
-1
---------------------
-69
-5
-13
-4
---------------------
-69
-6
-11
-3
---------------------
-69
-7
-9
-6
---------------------
-69
-8
-8
-5
---------------------
-69
-9
-7
-6
---------------------
-69
-10
-6
-9
---------------------
---------------------
-68
-0
-Error: div by 0
---------------------
-68
-1
-68
-0
---------------------
-68
-2
-34
-0
---------------------
-68
-3
-22
-2
---------------------
-68
-4
-17
-0
---------------------
-68
-5
-13
-3
---------------------
-68
-6
-11
-2
---------------------
-68
-7
-9
-5
---------------------
-68
-8
-8
-4
---------------------
-68
-9
-7
-5
---------------------
-68
-10
-6
-8
---------------------
---------------------
-67
-0
-Error: div by 0
---------------------
-67
-1
-67
-0
---------------------
-67
-2
-33
-1
---------------------
-67
-3
-22
-1
---------------------
-67
-4
-16
-3
---------------------
-67
-5
-13
-2
---------------------
-67
-6
-11
-1
---------------------
-67
-7
-9
-4
---------------------
-67
-8
-8
-3
---------------------
-67
-9
-7
-4
---------------------
-67
-10
-6
-7
---------------------
---------------------
-66
-0
-Error: div by 0
---------------------
-66
-1
-66
-0
---------------------
-66
-2
-33
-0
---------------------
-66
-3
-22
-0
---------------------
-66
-4
-16
-2
---------------------
-66
-5
-13
-1
---------------------
-66
-6
-11
-0
---------------------
-66
-7
-9
-3
---------------------
-66
-8
-8
-2
---------------------
-66
-9
-7
-3
---------------------
-66
-10
-6
-6
---------------------
---------------------
-65
-0
-Error: div by 0
---------------------
-65
-1
-65
-0
---------------------
-65
-2
-32
-1
---------------------
-65
-3
-21
-2
---------------------
-65
-4
-16
-1
---------------------
-65
-5
-13
-0
---------------------
-65
-6
-10
-5
---------------------
-65
-7
-9
-2
---------------------
-65
-8
-8
-1
---------------------
-65
-9
-7
-2
---------------------
-65
-10
-6
-5
---------------------
---------------------
-64
-0
-Error: div by 0
---------------------
-64
-1
-64
-0
---------------------
-64
-2
-32
-0
---------------------
-64
-3
-21
-1
---------------------
-64
-4
-16
-0
---------------------
-64
-5
-12
-4
---------------------
-64
-6
-10
-4
---------------------
-64
-7
-9
-1
---------------------
-64
-8
-8
-0
---------------------
-64
-9
-7
-1
---------------------
-64
-10
-6
-4
---------------------
---------------------
-63
-0
-Error: div by 0
---------------------
-63
-1
-63
-0
---------------------
-63
-2
-31
-1
---------------------
-63
-3
-21
-0
---------------------
-63
-4
-15
-3
---------------------
-63
-5
-12
-3
---------------------
-63
-6
-10
-3
---------------------
-63
-7
-9
-0
---------------------
-63
-8
-7
-7
---------------------
-63
-9
-7
-0
---------------------
-63
-10
-6
-3
---------------------
---------------------
-62
-0
-Error: div by 0
---------------------
-62
-1
-62
-0
---------------------
-62
-2
-31
-0
---------------------
-62
-3
-20
-2
---------------------
-62
-4
-15
-2
---------------------
-62
-5
-12
-2
---------------------
-62
-6
-10
-2
---------------------
-62
-7
-8
-6
---------------------
-62
-8
-7
-6
---------------------
-62
-9
-6
-8
---------------------
-62
-10
-6
-2
---------------------
---------------------
-61
-0
-Error: div by 0
---------------------
-61
-1
-61
-0
---------------------
-61
-2
-30
-1
---------------------
-61
-3
-20
-1
---------------------
-61
-4
-15
-1
---------------------
-61
-5
-12
-1
---------------------
-61
-6
-10
-1
---------------------
-61
-7
-8
-5
---------------------
-61
-8
-7
-5
---------------------
-61
-9
-6
-7
---------------------
-61
-10
-6
-1
---------------------
---------------------
-60
-0
-Error: div by 0
---------------------
-60
-1
-60
-0
---------------------
-60
-2
-30
-0
---------------------
-60
-3
-20
-0
---------------------
-60
-4
-15
-0
---------------------
-60
-5
-12
-0
---------------------
-60
-6
-10
-0
---------------------
-60
-7
-8
-4
---------------------
-60
-8
-7
-4
---------------------
-60
-9
-6
-6
---------------------
-60
-10
-6
-0
---------------------
---------------------
-59
-0
-Error: div by 0
---------------------
-59
-1
-59
-0
---------------------
-59
-2
-29
-1
---------------------
-59
-3
-19
-2
---------------------
-59
-4
-14
-3
---------------------
-59
-5
-11
-4
---------------------
-59
-6
-9
-5
---------------------
-59
-7
-8
-3
---------------------
-59
-8
-7
-3
---------------------
-59
-9
-6
-5
---------------------
-59
-10
-5
-9
---------------------
---------------------
-58
-0
-Error: div by 0
---------------------
-58
-1
-58
-0
---------------------
-58
-2
-29
-0
---------------------
-58
-3
-19
-1
---------------------
-58
-4
-14
-2
---------------------
-58
-5
-11
-3
---------------------
-58
-6
-9
-4
---------------------
-58
-7
-8
-2
---------------------
-58
-8
-7
-2
---------------------
-58
-9
-6
-4
---------------------
-58
-10
-5
-8
---------------------
---------------------
-57
-0
-Error: div by 0
---------------------
-57
-1
-57
-0
---------------------
-57
-2
-28
-1
---------------------
-57
-3
-19
-0
---------------------
-57
-4
-14
-1
---------------------
-57
-5
-11
-2
---------------------
-57
-6
-9
-3
---------------------
-57
-7
-8
-1
---------------------
-57
-8
-7
-1
---------------------
-57
-9
-6
-3
---------------------
-57
-10
-5
-7
---------------------
---------------------
-56
-0
-Error: div by 0
---------------------
-56
-1
-56
-0
---------------------
-56
-2
-28
-0
---------------------
-56
-3
-18
-2
---------------------
-56
-4
-14
-0
---------------------
-56
-5
-11
-1
---------------------
-56
-6
-9
-2
---------------------
-56
-7
-8
-0
---------------------
-56
-8
-7
-0
---------------------
-56
-9
-6
-2
---------------------
-56
-10
-5
-6
---------------------
---------------------
-55
-0
-Error: div by 0
---------------------
-55
-1
-55
-0
---------------------
-55
-2
-27
-1
---------------------
-55
-3
-18
-1
---------------------
-55
-4
-13
-3
---------------------
-55
-5
-11
-0
---------------------
-55
-6
-9
-1
---------------------
-55
-7
-7
-6
---------------------
-55
-8
-6
-7
---------------------
-55
-9
-6
-1
---------------------
-55
-10
-5
-5
---------------------
---------------------
-54
-0
-Error: div by 0
---------------------
-54
-1
-54
-0
---------------------
-54
-2
-27
-0
---------------------
-54
-3
-18
-0
---------------------
-54
-4
-13
-2
---------------------
-54
-5
-10
-4
---------------------
-54
-6
-9
-0
---------------------
-54
-7
-7
-5
---------------------
-54
-8
-6
-6
---------------------
-54
-9
-6
-0
---------------------
-54
-10
-5
-4
---------------------
---------------------
-53
-0
-Error: div by 0
---------------------
-53
-1
-53
-0
---------------------
-53
-2
-26
-1
---------------------
-53
-3
-17
-2
---------------------
-53
-4
-13
-1
---------------------
-53
-5
-10
-3
---------------------
-53
-6
-8
-5
---------------------
-53
-7
-7
-4
---------------------
-53
-8
-6
-5
---------------------
-53
-9
-5
-8
---------------------
-53
-10
-5
-3
---------------------
---------------------
-52
-0
-Error: div by 0
---------------------
-52
-1
-52
-0
---------------------
-52
-2
-26
-0
---------------------
-52
-3
-17
-1
---------------------
-52
-4
-13
-0
---------------------
-52
-5
-10
-2
---------------------
-52
-6
-8
-4
---------------------
-52
-7
-7
-3
---------------------
-52
-8
-6
-4
---------------------
-52
-9
-5
-7
---------------------
-52
-10
-5
-2
---------------------
---------------------
-51
-0
-Error: div by 0
---------------------
-51
-1
-51
-0
---------------------
-51
-2
-25
-1
---------------------
-51
-3
-17
-0
---------------------
-51
-4
-12
-3
---------------------
-51
-5
-10
-1
---------------------
-51
-6
-8
-3
---------------------
-51
-7
-7
-2
---------------------
-51
-8
-6
-3
---------------------
-51
-9
-5
-6
---------------------
-51
-10
-5
-1
---------------------
---------------------
-50
-0
-Error: div by 0
---------------------
-50
-1
-50
-0
---------------------
-50
-2
-25
-0
---------------------
-50
-3
-16
-2
---------------------
-50
-4
-12
-2
---------------------
-50
-5
-10
-0
---------------------
-50
-6
-8
-2
---------------------
-50
-7
-7
-1
---------------------
-50
-8
-6
-2
---------------------
-50
-9
-5
-5
---------------------
-50
-10
-5
-0
---------------------
---------------------
-49
-0
-Error: div by 0
---------------------
-49
-1
-49
-0
---------------------
-49
-2
-24
-1
---------------------
-49
-3
-16
-1
---------------------
-49
-4
-12
-1
---------------------
-49
-5
-9
-4
---------------------
-49
-6
-8
-1
---------------------
-49
-7
-7
-0
---------------------
-49
-8
-6
-1
---------------------
-49
-9
-5
-4
---------------------
-49
-10
-4
-9
---------------------
---------------------
-48
-0
-Error: div by 0
---------------------
-48
-1
-48
-0
---------------------
-48
-2
-24
-0
---------------------
-48
-3
-16
-0
---------------------
-48
-4
-12
-0
---------------------
-48
-5
-9
-3
---------------------
-48
-6
-8
-0
---------------------
-48
-7
-6
-6
---------------------
-48
-8
-6
-0
---------------------
-48
-9
-5
-3
---------------------
-48
-10
-4
-8
---------------------
---------------------
-47
-0
-Error: div by 0
---------------------
-47
-1
-47
-0
---------------------
-47
-2
-23
-1
---------------------
-47
-3
-15
-2
---------------------
-47
-4
-11
-3
---------------------
-47
-5
-9
-2
---------------------
-47
-6
-7
-5
---------------------
-47
-7
-6
-5
---------------------
-47
-8
-5
-7
---------------------
-47
-9
-5
-2
---------------------
-47
-10
-4
-7
---------------------
---------------------
-46
-0
-Error: div by 0
---------------------
-46
-1
-46
-0
---------------------
-46
-2
-23
-0
---------------------
-46
-3
-15
-1
---------------------
-46
-4
-11
-2
---------------------
-46
-5
-9
-1
---------------------
-46
-6
-7
-4
---------------------
-46
-7
-6
-4
---------------------
-46
-8
-5
-6
---------------------
-46
-9
-5
-1
---------------------
-46
-10
-4
-6
---------------------
---------------------
-45
-0
-Error: div by 0
---------------------
-45
-1
-45
-0
---------------------
-45
-2
-22
-1
---------------------
-45
-3
-15
-0
---------------------
-45
-4
-11
-1
---------------------
-45
-5
-9
-0
---------------------
-45
-6
-7
-3
---------------------
-45
-7
-6
-3
---------------------
-45
-8
-5
-5
---------------------
-45
-9
-5
-0
---------------------
-45
-10
-4
-5
---------------------
---------------------
-44
-0
-Error: div by 0
---------------------
-44
-1
-44
-0
---------------------
-44
-2
-22
-0
---------------------
-44
-3
-14
-2
---------------------
-44
-4
-11
-0
---------------------
-44
-5
-8
-4
---------------------
-44
-6
-7
-2
---------------------
-44
-7
-6
-2
---------------------
-44
-8
-5
-4
---------------------
-44
-9
-4
-8
---------------------
-44
-10
-4
-4
---------------------
---------------------
-43
-0
-Error: div by 0
---------------------
-43
-1
-43
-0
---------------------
-43
-2
-21
-1
---------------------
-43
-3
-14
-1
---------------------
-43
-4
-10
-3
---------------------
-43
-5
-8
-3
---------------------
-43
-6
-7
-1
---------------------
-43
-7
-6
-1
---------------------
-43
-8
-5
-3
---------------------
-43
-9
-4
-7
---------------------
-43
-10
-4
-3
---------------------
---------------------
-42
-0
-Error: div by 0
---------------------
-42
-1
-42
-0
---------------------
-42
-2
-21
-0
---------------------
-42
-3
-14
-0
---------------------
-42
-4
-10
-2
---------------------
-42
-5
-8
-2
---------------------
-42
-6
-7
-0
---------------------
-42
-7
-6
-0
---------------------
-42
-8
-5
-2
---------------------
-42
-9
-4
-6
---------------------
-42
-10
-4
-2
---------------------
---------------------
-41
-0
-Error: div by 0
---------------------
-41
-1
-41
-0
---------------------
-41
-2
-20
-1
---------------------
-41
-3
-13
-2
---------------------
-41
-4
-10
-1
---------------------
-41
-5
-8
-1
---------------------
-41
-6
-6
-5
---------------------
-41
-7
-5
-6
---------------------
-41
-8
-5
-1
---------------------
-41
-9
-4
-5
---------------------
-41
-10
-4
-1
---------------------
---------------------
-40
-0
-Error: div by 0
---------------------
-40
-1
-40
-0
---------------------
-40
-2
-20
-0
---------------------
-40
-3
-13
-1
---------------------
-40
-4
-10
-0
---------------------
-40
-5
-8
-0
---------------------
-40
-6
-6
-4
---------------------
-40
-7
-5
-5
---------------------
-40
-8
-5
-0
---------------------
-40
-9
-4
-4
---------------------
-40
-10
-4
-0
---------------------
---------------------
-39
-0
-Error: div by 0
---------------------
-39
-1
-39
-0
---------------------
-39
-2
-19
-1
---------------------
-39
-3
-13
-0
---------------------
-39
-4
-9
-3
---------------------
-39
-5
-7
-4
---------------------
-39
-6
-6
-3
---------------------
-39
-7
-5
-4
---------------------
-39
-8
-4
-7
---------------------
-39
-9
-4
-3
---------------------
-39
-10
-3
-9
---------------------
---------------------
-38
-0
-Error: div by 0
---------------------
-38
-1
-38
-0
---------------------
-38
-2
-19
-0
---------------------
-38
-3
-12
-2
---------------------
-38
-4
-9
-2
---------------------
-38
-5
-7
-3
---------------------
-38
-6
-6
-2
---------------------
-38
-7
-5
-3
---------------------
-38
-8
-4
-6
---------------------
-38
-9
-4
-2
---------------------
-38
-10
-3
-8
---------------------
---------------------
-37
-0
-Error: div by 0
---------------------
-37
-1
-37
-0
---------------------
-37
-2
-18
-1
---------------------
-37
-3
-12
-1
---------------------
-37
-4
-9
-1
---------------------
-37
-5
-7
-2
---------------------
-37
-6
-6
-1
---------------------
-37
-7
-5
-2
---------------------
-37
-8
-4
-5
---------------------
-37
-9
-4
-1
---------------------
-37
-10
-3
-7
---------------------
---------------------
-36
-0
-Error: div by 0
---------------------
-36
-1
-36
-0
---------------------
-36
-2
-18
-0
---------------------
-36
-3
-12
-0
---------------------
-36
-4
-9
-0
---------------------
-36
-5
-7
-1
---------------------
-36
-6
-6
-0
---------------------
-36
-7
-5
-1
---------------------
-36
-8
-4
-4
---------------------
-36
-9
-4
-0
---------------------
-36
-10
-3
-6
---------------------
---------------------
-35
-0
-Error: div by 0
---------------------
-35
-1
-35
-0
---------------------
-35
-2
-17
-1
---------------------
-35
-3
-11
-2
---------------------
-35
-4
-8
-3
---------------------
-35
-5
-7
-0
---------------------
-35
-6
-5
-5
---------------------
-35
-7
-5
-0
---------------------
-35
-8
-4
-3
---------------------
-35
-9
-3
-8
---------------------
-35
-10
-3
-5
---------------------
---------------------
-34
-0
-Error: div by 0
---------------------
-34
-1
-34
-0
---------------------
-34
-2
-17
-0
---------------------
-34
-3
-11
-1
---------------------
-34
-4
-8
-2
---------------------
-34
-5
-6
-4
---------------------
-34
-6
-5
-4
---------------------
-34
-7
-4
-6
---------------------
-34
-8
-4
-2
---------------------
-34
-9
-3
-7
---------------------
-34
-10
-3
-4
---------------------
---------------------
-33
-0
-Error: div by 0
---------------------
-33
-1
-33
-0
---------------------
-33
-2
-16
-1
---------------------
-33
-3
-11
-0
---------------------
-33
-4
-8
-1
---------------------
-33
-5
-6
-3
---------------------
-33
-6
-5
-3
---------------------
-33
-7
-4
-5
---------------------
-33
-8
-4
-1
---------------------
-33
-9
-3
-6
---------------------
-33
-10
-3
-3
---------------------
---------------------
-32
-0
-Error: div by 0
---------------------
-32
-1
-32
-0
---------------------
-32
-2
-16
-0
---------------------
-32
-3
-10
-2
---------------------
-32
-4
-8
-0
---------------------
-32
-5
-6
-2
---------------------
-32
-6
-5
-2
---------------------
-32
-7
-4
-4
---------------------
-32
-8
-4
-0
---------------------
-32
-9
-3
-5
---------------------
-32
-10
-3
-2
---------------------
---------------------
-31
-0
-Error: div by 0
---------------------
-31
-1
-31
-0
---------------------
-31
-2
-15
-1
---------------------
-31
-3
-10
-1
---------------------
-31
-4
-7
-3
---------------------
-31
-5
-6
-1
---------------------
-31
-6
-5
-1
---------------------
-31
-7
-4
-3
---------------------
-31
-8
-3
-7
---------------------
-31
-9
-3
-4
---------------------
-31
-10
-3
-1
---------------------
---------------------
-30
-0
-Error: div by 0
---------------------
-30
-1
-30
-0
---------------------
-30
-2
-15
-0
---------------------
-30
-3
-10
-0
---------------------
-30
-4
-7
-2
---------------------
-30
-5
-6
-0
---------------------
-30
-6
-5
-0
---------------------
-30
-7
-4
-2
---------------------
-30
-8
-3
-6
---------------------
-30
-9
-3
-3
---------------------
-30
-10
-3
-0
---------------------
---------------------
-29
-0
-Error: div by 0
---------------------
-29
-1
-29
-0
---------------------
-29
-2
-14
-1
---------------------
-29
-3
-9
-2
---------------------
-29
-4
-7
-1
---------------------
-29
-5
-5
-4
---------------------
-29
-6
-4
-5
---------------------
-29
-7
-4
-1
---------------------
-29
-8
-3
-5
---------------------
-29
-9
-3
-2
---------------------
-29
-10
-2
-9
---------------------
---------------------
-28
-0
-Error: div by 0
---------------------
-28
-1
-28
-0
---------------------
-28
-2
-14
-0
---------------------
-28
-3
-9
-1
---------------------
-28
-4
-7
-0
---------------------
-28
-5
-5
-3
---------------------
-28
-6
-4
-4
---------------------
-28
-7
-4
-0
---------------------
-28
-8
-3
-4
---------------------
-28
-9
-3
-1
---------------------
-28
-10
-2
-8
---------------------
---------------------
-27
-0
-Error: div by 0
---------------------
-27
-1
-27
-0
---------------------
-27
-2
-13
-1
---------------------
-27
-3
-9
-0
---------------------
-27
-4
-6
-3
---------------------
-27
-5
-5
-2
---------------------
-27
-6
-4
-3
---------------------
-27
-7
-3
-6
---------------------
-27
-8
-3
-3
---------------------
-27
-9
-3
-0
---------------------
-27
-10
-2
-7
---------------------
---------------------
-26
-0
-Error: div by 0
---------------------
-26
-1
-26
-0
---------------------
-26
-2
-13
-0
---------------------
-26
-3
-8
-2
---------------------
-26
-4
-6
-2
---------------------
-26
-5
-5
-1
---------------------
-26
-6
-4
-2
---------------------
-26
-7
-3
-5
---------------------
-26
-8
-3
-2
---------------------
-26
-9
-2
-8
---------------------
-26
-10
-2
-6
---------------------
---------------------
-25
-0
-Error: div by 0
---------------------
-25
-1
-25
-0
---------------------
-25
-2
-12
-1
---------------------
-25
-3
-8
-1
---------------------
-25
-4
-6
-1
---------------------
-25
-5
-5
-0
---------------------
-25
-6
-4
-1
---------------------
-25
-7
-3
-4
---------------------
-25
-8
-3
-1
---------------------
-25
-9
-2
-7
---------------------
-25
-10
-2
-5
---------------------
---------------------
-24
-0
-Error: div by 0
---------------------
-24
-1
-24
-0
---------------------
-24
-2
-12
-0
---------------------
-24
-3
-8
-0
---------------------
-24
-4
-6
-0
---------------------
-24
-5
-4
-4
---------------------
-24
-6
-4
-0
---------------------
-24
-7
-3
-3
---------------------
-24
-8
-3
-0
---------------------
-24
-9
-2
-6
---------------------
-24
-10
-2
-4
---------------------
---------------------
-23
-0
-Error: div by 0
---------------------
-23
-1
-23
-0
---------------------
-23
-2
-11
-1
---------------------
-23
-3
-7
-2
---------------------
-23
-4
-5
-3
---------------------
-23
-5
-4
-3
---------------------
-23
-6
-3
-5
---------------------
-23
-7
-3
-2
---------------------
-23
-8
-2
-7
---------------------
-23
-9
-2
-5
---------------------
-23
-10
-2
-3
---------------------
---------------------
-22
-0
-Error: div by 0
---------------------
-22
-1
-22
-0
---------------------
-22
-2
-11
-0
---------------------
-22
-3
-7
-1
---------------------
-22
-4
-5
-2
---------------------
-22
-5
-4
-2
---------------------
-22
-6
-3
-4
---------------------
-22
-7
-3
-1
---------------------
-22
-8
-2
-6
---------------------
-22
-9
-2
-4
---------------------
-22
-10
-2
-2
---------------------
---------------------
-21
-0
-Error: div by 0
---------------------
-21
-1
-21
-0
---------------------
-21
-2
-10
-1
---------------------
-21
-3
-7
-0
---------------------
-21
-4
-5
-1
---------------------
-21
-5
-4
-1
---------------------
-21
-6
-3
-3
---------------------
-21
-7
-3
-0
---------------------
-21
-8
-2
-5
---------------------
-21
-9
-2
-3
---------------------
-21
-10
-2
-1
---------------------
---------------------
-20
-0
-Error: div by 0
---------------------
-20
-1
-20
-0
---------------------
-20
-2
-10
-0
---------------------
-20
-3
-6
-2
---------------------
-20
-4
-5
-0
---------------------
-20
-5
-4
-0
---------------------
-20
-6
-3
-2
---------------------
-20
-7
-2
-6
---------------------
-20
-8
-2
-4
---------------------
-20
-9
-2
-2
---------------------
-20
-10
-2
-0
---------------------
---------------------
-19
-0
-Error: div by 0
---------------------
-19
-1
-19
-0
---------------------
-19
-2
-9
-1
---------------------
-19
-3
-6
-1
---------------------
-19
-4
-4
-3
---------------------
-19
-5
-3
-4
---------------------
-19
-6
-3
-1
---------------------
-19
-7
-2
-5
---------------------
-19
-8
-2
-3
---------------------
-19
-9
-2
-1
---------------------
-19
-10
-1
-9
---------------------
---------------------
-18
-0
-Error: div by 0
---------------------
-18
-1
-18
-0
---------------------
-18
-2
-9
-0
---------------------
-18
-3
-6
-0
---------------------
-18
-4
-4
-2
---------------------
-18
-5
-3
-3
---------------------
-18
-6
-3
-0
---------------------
-18
-7
-2
-4
---------------------
-18
-8
-2
-2
---------------------
-18
-9
-2
-0
---------------------
-18
-10
-1
-8
---------------------
---------------------
-17
-0
-Error: div by 0
---------------------
-17
-1
-17
-0
---------------------
-17
-2
-8
-1
---------------------
-17
-3
-5
-2
---------------------
-17
-4
-4
-1
---------------------
-17
-5
-3
-2
---------------------
-17
-6
-2
-5
---------------------
-17
-7
-2
-3
---------------------
-17
-8
-2
-1
---------------------
-17
-9
-1
-8
---------------------
-17
-10
-1
-7
---------------------
---------------------
-16
-0
-Error: div by 0
---------------------
-16
-1
-16
-0
---------------------
-16
-2
-8
-0
---------------------
-16
-3
-5
-1
---------------------
-16
-4
-4
-0
---------------------
-16
-5
-3
-1
---------------------
-16
-6
-2
-4
---------------------
-16
-7
-2
-2
---------------------
-16
-8
-2
-0
---------------------
-16
-9
-1
-7
---------------------
-16
-10
-1
-6
---------------------
---------------------
-15
-0
-Error: div by 0
---------------------
-15
-1
-15
-0
---------------------
-15
-2
-7
-1
---------------------
-15
-3
-5
-0
---------------------
-15
-4
-3
-3
---------------------
-15
-5
-3
-0
---------------------
-15
-6
-2
-3
---------------------
-15
-7
-2
-1
---------------------
-15
-8
-1
-7
---------------------
-15
-9
-1
-6
---------------------
-15
-10
-1
-5
---------------------
---------------------
-14
-0
-Error: div by 0
---------------------
-14
-1
-14
-0
---------------------
-14
-2
-7
-0
---------------------
-14
-3
-4
-2
---------------------
-14
-4
-3
-2
---------------------
-14
-5
-2
-4
---------------------
-14
-6
-2
-2
---------------------
-14
-7
-2
-0
---------------------
-14
-8
-1
-6
---------------------
-14
-9
-1
-5
---------------------
-14
-10
-1
-4
---------------------
---------------------
-13
-0
-Error: div by 0
---------------------
-13
-1
-13
-0
---------------------
-13
-2
-6
-1
---------------------
-13
-3
-4
-1
---------------------
-13
-4
-3
-1
---------------------
-13
-5
-2
-3
---------------------
-13
-6
-2
-1
---------------------
-13
-7
-1
-6
---------------------
-13
-8
-1
-5
---------------------
-13
-9
-1
-4
---------------------
-13
-10
-1
-3
---------------------
---------------------
-12
-0
-Error: div by 0
---------------------
-12
-1
-12
-0
---------------------
-12
-2
-6
-0
---------------------
-12
-3
-4
-0
---------------------
-12
-4
-3
-0
---------------------
-12
-5
-2
-2
---------------------
-12
-6
-2
-0
---------------------
-12
-7
-1
-5
---------------------
-12
-8
-1
-4
---------------------
-12
-9
-1
-3
---------------------
-12
-10
-1
-2
---------------------
---------------------
-11
-0
-Error: div by 0
---------------------
-11
-1
-11
-0
---------------------
-11
-2
-5
-1
---------------------
-11
-3
-3
-2
---------------------
-11
-4
-2
-3
---------------------
-11
-5
-2
-1
---------------------
-11
-6
-1
-5
---------------------
-11
-7
-1
-4
---------------------
-11
-8
-1
-3
---------------------
-11
-9
-1
-2
---------------------
-11
-10
-1
-1
---------------------
---------------------
-10
-0
-Error: div by 0
---------------------
-10
-1
-10
-0
---------------------
-10
-2
-5
-0
---------------------
-10
-3
-3
-1
---------------------
-10
-4
-2
-2
---------------------
-10
-5
-2
-0
---------------------
-10
-6
-1
-4
---------------------
-10
-7
-1
-3
---------------------
-10
-8
-1
-2
---------------------
-10
-9
-1
-1
---------------------
-10
-10
-1
-0
---------------------
---------------------
-9
-0
-Error: div by 0
---------------------
-9
-1
-9
-0
---------------------
-9
-2
-4
-1
---------------------
-9
-3
-3
-0
---------------------
-9
-4
-2
-1
---------------------
-9
-5
-1
-4
---------------------
-9
-6
-1
-3
---------------------
-9
-7
-1
-2
---------------------
-9
-8
-1
-1
---------------------
-9
-9
-1
-0
---------------------
-9
-10
-0
-9
---------------------
---------------------
-8
-0
-Error: div by 0
---------------------
-8
-1
-8
-0
---------------------
-8
-2
-4
-0
---------------------
-8
-3
-2
-2
---------------------
-8
-4
-2
-0
---------------------
-8
-5
-1
-3
---------------------
-8
-6
-1
-2
---------------------
-8
-7
-1
-1
---------------------
-8
-8
-1
-0
---------------------
-8
-9
-0
-8
---------------------
-8
-10
-0
-8
---------------------
---------------------
-7
-0
-Error: div by 0
---------------------
-7
-1
-7
-0
---------------------
-7
-2
-3
-1
---------------------
-7
-3
-2
-1
---------------------
-7
-4
-1
-3
---------------------
-7
-5
-1
-2
---------------------
-7
-6
-1
-1
---------------------
-7
-7
-1
-0
---------------------
-7
-8
-0
-7
---------------------
-7
-9
-0
-7
---------------------
-7
-10
-0
-7
---------------------
---------------------
-6
-0
-Error: div by 0
---------------------
-6
-1
-6
-0
---------------------
-6
-2
-3
-0
---------------------
-6
-3
-2
-0
---------------------
-6
-4
-1
-2
---------------------
-6
-5
-1
-1
---------------------
-6
-6
-1
-0
---------------------
-6
-7
-0
-6
---------------------
-6
-8
-0
-6
---------------------
-6
-9
-0
-6
---------------------
-6
-10
-0
-6
---------------------
---------------------
-5
-0
-Error: div by 0
---------------------
-5
-1
-5
-0
---------------------
-5
-2
-2
-1
---------------------
-5
-3
-1
-2
---------------------
-5
-4
-1
-1
---------------------
-5
-5
-1
-0
---------------------
-5
-6
-0
-5
---------------------
-5
-7
-0
-5
---------------------
-5
-8
-0
-5
---------------------
-5
-9
-0
-5
---------------------
-5
-10
-0
-5
---------------------
---------------------
-4
-0
-Error: div by 0
---------------------
-4
-1
-4
-0
---------------------
-4
-2
-2
-0
---------------------
-4
-3
-1
-1
---------------------
-4
-4
-1
-0
---------------------
-4
-5
-0
-4
---------------------
-4
-6
-0
-4
---------------------
-4
-7
-0
-4
---------------------
-4
-8
-0
-4
---------------------
-4
-9
-0
-4
---------------------
-4
-10
-0
-4
---------------------
---------------------
-3
-0
-Error: div by 0
---------------------
-3
-1
-3
-0
---------------------
-3
-2
-1
-1
---------------------
-3
-3
-1
-0
---------------------
-3
-4
-0
-3
---------------------
-3
-5
-0
-3
---------------------
-3
-6
-0
-3
---------------------
-3
-7
-0
-3
---------------------
-3
-8
-0
-3
---------------------
-3
-9
-0
-3
---------------------
-3
-10
-0
-3
---------------------
---------------------
-2
-0
-Error: div by 0
---------------------
-2
-1
-2
-0
---------------------
-2
-2
-1
-0
---------------------
-2
-3
-0
-2
---------------------
-2
-4
-0
-2
---------------------
-2
-5
-0
-2
---------------------
-2
-6
-0
-2
---------------------
-2
-7
-0
-2
---------------------
-2
-8
-0
-2
---------------------
-2
-9
-0
-2
---------------------
-2
-10
-0
-2
---------------------
---------------------
-1
-0
-Error: div by 0
---------------------
-1
-1
-1
-0
---------------------
-1
-2
-0
-1
---------------------
-1
-3
-0
-1
---------------------
-1
-4
-0
-1
---------------------
-1
-5
-0
-1
---------------------
-1
-6
-0
-1
---------------------
-1
-7
-0
-1
---------------------
-1
-8
-0
-1
---------------------
-1
-9
-0
-1
---------------------
-1
-10
-0
-1
---------------------
---------------------
-0
-0
-Error: div by 0
---------------------
-0
-1
-0
-0
---------------------
-0
-2
-0
-0
---------------------
-0
-3
-0
-0
---------------------
-0
-4
-0
-0
---------------------
-0
-5
-0
-0
---------------------
-0
-6
-0
-0
---------------------
-0
-7
-0
-0
---------------------
-0
-8
-0
-0
---------------------
-0
-9
-0
-0
---------------------
-0
-10
-0
-0
---------------------
+++ /dev/null
-include ../Define.mk
-include ../Test.mk
+++ /dev/null
-../../../../casl2 -M2048 ../../../../as/casl2lib/sample/call_divl.casl ../../../../as/casl2lib/stdlib.casl
+++ /dev/null
-0
-1
-2
-10
-12
-32767
-32768
-65535
-Not a number
-Not a number
-Not a number
-Not a number
-12345
-Over 65535
-1234
+++ /dev/null
-include ../Define.mk
-include ../Test.mk
+++ /dev/null
-casl2 -M2048 ../../../../as/casl2lib/sample/call_inl.casl ../../../../as/casl2lib/stdlib.casl <teststr.txt
+++ /dev/null
-0
-1
-2
-10
-12
-32767
-32768
-65535
-65536
-90000
--1
-NOTNU
-12345
-100000
-1234
+++ /dev/null
-include ../Define.mk
-include ../Test.mk
+++ /dev/null
-../../../../casl2 -M2048 ../../../../as/casl2lib/sample/call_minim.casl ../../../../as/casl2lib/stdlib.casl
+++ /dev/null
-0
-0
-0
---------------------
-0
-1
-0
---------------------
-0
-2
-0
---------------------
-0
-127
-0
---------------------
-0
-128
-0
---------------------
-0
-151
-0
---------------------
-0
-217
-0
---------------------
-0
-255
-0
---------------------
-0
-256
-0
---------------------
-0
-257
-0
---------------------
-0
-32767
-0
---------------------
-0
--32768
-0
---------------------
-0
--32767
-0
---------------------
-0
--257
-0
---------------------
-0
--256
-0
---------------------
-0
--255
-0
---------------------
-0
--217
-0
---------------------
-0
--151
-0
---------------------
-0
--128
-0
---------------------
-0
--127
-0
---------------------
-0
--2
-0
---------------------
-0
--1
-0
---------------------
-1
-0
-0
---------------------
-1
-1
-1
---------------------
-1
-2
-2
---------------------
-1
-127
-127
---------------------
-1
-128
-128
---------------------
-1
-151
-151
---------------------
-1
-217
-217
---------------------
-1
-255
-255
---------------------
-1
-256
-256
---------------------
-1
-257
-257
---------------------
-1
-32767
-32767
---------------------
-1
--32768
-Warning: overflow
---------------------
-1
--32767
--32767
---------------------
-1
--257
--257
---------------------
-1
--256
--256
---------------------
-1
--255
--255
---------------------
-1
--217
--217
---------------------
-1
--151
--151
---------------------
-1
--128
--128
---------------------
-1
--127
--127
---------------------
-1
--2
--2
---------------------
-1
--1
--1
---------------------
-2
-0
-0
---------------------
-2
-1
-2
---------------------
-2
-2
-4
---------------------
-2
-127
-254
---------------------
-2
-128
-256
---------------------
-2
-151
-302
---------------------
-2
-217
-434
---------------------
-2
-255
-510
---------------------
-2
-256
-512
---------------------
-2
-257
-514
---------------------
-2
-32767
-Warning: overflow
---------------------
-2
--32768
-Warning: overflow
---------------------
-2
--32767
-Warning: overflow
---------------------
-2
--257
--514
---------------------
-2
--256
--512
---------------------
-2
--255
--510
---------------------
-2
--217
--434
---------------------
-2
--151
--302
---------------------
-2
--128
--256
---------------------
-2
--127
--254
---------------------
-2
--2
--4
---------------------
-2
--1
--2
---------------------
-127
-0
-0
---------------------
-127
-1
-127
---------------------
-127
-2
-254
---------------------
-127
-127
-16129
---------------------
-127
-128
-16256
---------------------
-127
-151
-19177
---------------------
-127
-217
-27559
---------------------
-127
-255
-32385
---------------------
-127
-256
-32512
---------------------
-127
-257
-32639
---------------------
-127
-32767
-Warning: overflow
---------------------
-127
--32768
-Warning: overflow
---------------------
-127
--32767
-Warning: overflow
---------------------
-127
--257
--32639
---------------------
-127
--256
--32512
---------------------
-127
--255
--32385
---------------------
-127
--217
--27559
---------------------
-127
--151
--19177
---------------------
-127
--128
--16256
---------------------
-127
--127
--16129
---------------------
-127
--2
--254
---------------------
-127
--1
--127
---------------------
-128
-0
-0
---------------------
-128
-1
-128
---------------------
-128
-2
-256
---------------------
-128
-127
-16256
---------------------
-128
-128
-16384
---------------------
-128
-151
-19328
---------------------
-128
-217
-27776
---------------------
-128
-255
-32640
---------------------
-128
-256
-Warning: overflow
---------------------
-128
-257
-Warning: overflow
---------------------
-128
-32767
-Warning: overflow
---------------------
-128
--32768
-Warning: overflow
---------------------
-128
--32767
-Warning: overflow
---------------------
-128
--257
-Warning: overflow
---------------------
-128
--256
-Warning: overflow
---------------------
-128
--255
--32640
---------------------
-128
--217
--27776
---------------------
-128
--151
--19328
---------------------
-128
--128
--16384
---------------------
-128
--127
--16256
---------------------
-128
--2
--256
---------------------
-128
--1
--128
---------------------
-151
-0
-0
---------------------
-151
-1
-151
---------------------
-151
-2
-302
---------------------
-151
-127
-19177
---------------------
-151
-128
-19328
---------------------
-151
-151
-22801
---------------------
-151
-217
-32767
---------------------
-151
-255
-Warning: overflow
---------------------
-151
-256
-Warning: overflow
---------------------
-151
-257
-Warning: overflow
---------------------
-151
-32767
-Warning: overflow
---------------------
-151
--32768
-Warning: overflow
---------------------
-151
--32767
-Warning: overflow
---------------------
-151
--257
-Warning: overflow
---------------------
-151
--256
-Warning: overflow
---------------------
-151
--255
-Warning: overflow
---------------------
-151
--217
--32767
---------------------
-151
--151
--22801
---------------------
-151
--128
--19328
---------------------
-151
--127
--19177
---------------------
-151
--2
--302
---------------------
-151
--1
--151
---------------------
-217
-0
-0
---------------------
-217
-1
-217
---------------------
-217
-2
-434
---------------------
-217
-127
-27559
---------------------
-217
-128
-27776
---------------------
-217
-151
-32767
---------------------
-217
-217
-Warning: overflow
---------------------
-217
-255
-Warning: overflow
---------------------
-217
-256
-Warning: overflow
---------------------
-217
-257
-Warning: overflow
---------------------
-217
-32767
-Warning: overflow
---------------------
-217
--32768
-Warning: overflow
---------------------
-217
--32767
-Warning: overflow
---------------------
-217
--257
-Warning: overflow
---------------------
-217
--256
-Warning: overflow
---------------------
-217
--255
-Warning: overflow
---------------------
-217
--217
-Warning: overflow
---------------------
-217
--151
--32767
---------------------
-217
--128
--27776
---------------------
-217
--127
--27559
---------------------
-217
--2
--434
---------------------
-217
--1
--217
---------------------
-255
-0
-0
---------------------
-255
-1
-255
---------------------
-255
-2
-510
---------------------
-255
-127
-32385
---------------------
-255
-128
-32640
---------------------
-255
-151
-Warning: overflow
---------------------
-255
-217
-Warning: overflow
---------------------
-255
-255
-Warning: overflow
---------------------
-255
-256
-Warning: overflow
---------------------
-255
-257
-Warning: overflow
---------------------
-255
-32767
-Warning: overflow
---------------------
-255
--32768
-Warning: overflow
---------------------
-255
--32767
-Warning: overflow
---------------------
-255
--257
-Warning: overflow
---------------------
-255
--256
-Warning: overflow
---------------------
-255
--255
-Warning: overflow
---------------------
-255
--217
-Warning: overflow
---------------------
-255
--151
-Warning: overflow
---------------------
-255
--128
--32640
---------------------
-255
--127
--32385
---------------------
-255
--2
--510
---------------------
-255
--1
--255
---------------------
-256
-0
-0
---------------------
-256
-1
-256
---------------------
-256
-2
-512
---------------------
-256
-127
-32512
---------------------
-256
-128
-Warning: overflow
---------------------
-256
-151
-Warning: overflow
---------------------
-256
-217
-Warning: overflow
---------------------
-256
-255
-Warning: overflow
---------------------
-256
-256
-Warning: overflow
---------------------
-256
-257
-Warning: overflow
---------------------
-256
-32767
-Warning: overflow
---------------------
-256
--32768
-Warning: overflow
---------------------
-256
--32767
-Warning: overflow
---------------------
-256
--257
-Warning: overflow
---------------------
-256
--256
-Warning: overflow
---------------------
-256
--255
-Warning: overflow
---------------------
-256
--217
-Warning: overflow
---------------------
-256
--151
-Warning: overflow
---------------------
-256
--128
-Warning: overflow
---------------------
-256
--127
--32512
---------------------
-256
--2
--512
---------------------
-256
--1
--256
---------------------
-257
-0
-0
---------------------
-257
-1
-257
---------------------
-257
-2
-514
---------------------
-257
-127
-32639
---------------------
-257
-128
-Warning: overflow
---------------------
-257
-151
-Warning: overflow
---------------------
-257
-217
-Warning: overflow
---------------------
-257
-255
-Warning: overflow
---------------------
-257
-256
-Warning: overflow
---------------------
-257
-257
-Warning: overflow
---------------------
-257
-32767
-Warning: overflow
---------------------
-257
--32768
-Warning: overflow
---------------------
-257
--32767
-Warning: overflow
---------------------
-257
--257
-Warning: overflow
---------------------
-257
--256
-Warning: overflow
---------------------
-257
--255
-Warning: overflow
---------------------
-257
--217
-Warning: overflow
---------------------
-257
--151
-Warning: overflow
---------------------
-257
--128
-Warning: overflow
---------------------
-257
--127
--32639
---------------------
-257
--2
--514
---------------------
-257
--1
--257
---------------------
-32767
-0
-0
---------------------
-32767
-1
-32767
---------------------
-32767
-2
-Warning: overflow
---------------------
-32767
-127
-Warning: overflow
---------------------
-32767
-128
-Warning: overflow
---------------------
-32767
-151
-Warning: overflow
---------------------
-32767
-217
-Warning: overflow
---------------------
-32767
-255
-Warning: overflow
---------------------
-32767
-256
-Warning: overflow
---------------------
-32767
-257
-Warning: overflow
---------------------
-32767
-32767
-Warning: overflow
---------------------
-32767
--32768
-Warning: overflow
---------------------
-32767
--32767
-Warning: overflow
---------------------
-32767
--257
-Warning: overflow
---------------------
-32767
--256
-Warning: overflow
---------------------
-32767
--255
-Warning: overflow
---------------------
-32767
--217
-Warning: overflow
---------------------
-32767
--151
-Warning: overflow
---------------------
-32767
--128
-Warning: overflow
---------------------
-32767
--127
-Warning: overflow
---------------------
-32767
--2
-Warning: overflow
---------------------
-32767
--1
--32767
---------------------
--32768
-0
-0
---------------------
--32768
-1
-Warning: overflow
---------------------
--32768
-2
-Warning: overflow
---------------------
--32768
-127
-Warning: overflow
---------------------
--32768
-128
-Warning: overflow
---------------------
--32768
-151
-Warning: overflow
---------------------
--32768
-217
-Warning: overflow
---------------------
--32768
-255
-Warning: overflow
---------------------
--32768
-256
-Warning: overflow
---------------------
--32768
-257
-Warning: overflow
---------------------
--32768
-32767
-Warning: overflow
---------------------
--32768
--32768
-Warning: overflow
---------------------
--32768
--32767
-Warning: overflow
---------------------
--32768
--257
-Warning: overflow
---------------------
--32768
--256
-Warning: overflow
---------------------
--32768
--255
-Warning: overflow
---------------------
--32768
--217
-Warning: overflow
---------------------
--32768
--151
-Warning: overflow
---------------------
--32768
--128
-Warning: overflow
---------------------
--32768
--127
-Warning: overflow
---------------------
--32768
--2
-Warning: overflow
---------------------
--32768
--1
-Warning: overflow
---------------------
--32767
-0
-0
---------------------
--32767
-1
--32767
---------------------
--32767
-2
-Warning: overflow
---------------------
--32767
-127
-Warning: overflow
---------------------
--32767
-128
-Warning: overflow
---------------------
--32767
-151
-Warning: overflow
---------------------
--32767
-217
-Warning: overflow
---------------------
--32767
-255
-Warning: overflow
---------------------
--32767
-256
-Warning: overflow
---------------------
--32767
-257
-Warning: overflow
---------------------
--32767
-32767
-Warning: overflow
---------------------
--32767
--32768
-Warning: overflow
---------------------
--32767
--32767
-Warning: overflow
---------------------
--32767
--257
-Warning: overflow
---------------------
--32767
--256
-Warning: overflow
---------------------
--32767
--255
-Warning: overflow
---------------------
--32767
--217
-Warning: overflow
---------------------
--32767
--151
-Warning: overflow
---------------------
--32767
--128
-Warning: overflow
---------------------
--32767
--127
-Warning: overflow
---------------------
--32767
--2
-Warning: overflow
---------------------
--32767
--1
-32767
---------------------
--257
-0
-0
---------------------
--257
-1
--257
---------------------
--257
-2
--514
---------------------
--257
-127
--32639
---------------------
--257
-128
-Warning: overflow
---------------------
--257
-151
-Warning: overflow
---------------------
--257
-217
-Warning: overflow
---------------------
--257
-255
-Warning: overflow
---------------------
--257
-256
-Warning: overflow
---------------------
--257
-257
-Warning: overflow
---------------------
--257
-32767
-Warning: overflow
---------------------
--257
--32768
-Warning: overflow
---------------------
--257
--32767
-Warning: overflow
---------------------
--257
--257
-Warning: overflow
---------------------
--257
--256
-Warning: overflow
---------------------
--257
--255
-Warning: overflow
---------------------
--257
--217
-Warning: overflow
---------------------
--257
--151
-Warning: overflow
---------------------
--257
--128
-Warning: overflow
---------------------
--257
--127
-32639
---------------------
--257
--2
-514
---------------------
--257
--1
-257
---------------------
--256
-0
-0
---------------------
--256
-1
--256
---------------------
--256
-2
--512
---------------------
--256
-127
--32512
---------------------
--256
-128
-Warning: overflow
---------------------
--256
-151
-Warning: overflow
---------------------
--256
-217
-Warning: overflow
---------------------
--256
-255
-Warning: overflow
---------------------
--256
-256
-Warning: overflow
---------------------
--256
-257
-Warning: overflow
---------------------
--256
-32767
-Warning: overflow
---------------------
--256
--32768
-Warning: overflow
---------------------
--256
--32767
-Warning: overflow
---------------------
--256
--257
-Warning: overflow
---------------------
--256
--256
-Warning: overflow
---------------------
--256
--255
-Warning: overflow
---------------------
--256
--217
-Warning: overflow
---------------------
--256
--151
-Warning: overflow
---------------------
--256
--128
-Warning: overflow
---------------------
--256
--127
-32512
---------------------
--256
--2
-512
---------------------
--256
--1
-256
---------------------
--255
-0
-0
---------------------
--255
-1
--255
---------------------
--255
-2
--510
---------------------
--255
-127
--32385
---------------------
--255
-128
--32640
---------------------
--255
-151
-Warning: overflow
---------------------
--255
-217
-Warning: overflow
---------------------
--255
-255
-Warning: overflow
---------------------
--255
-256
-Warning: overflow
---------------------
--255
-257
-Warning: overflow
---------------------
--255
-32767
-Warning: overflow
---------------------
--255
--32768
-Warning: overflow
---------------------
--255
--32767
-Warning: overflow
---------------------
--255
--257
-Warning: overflow
---------------------
--255
--256
-Warning: overflow
---------------------
--255
--255
-Warning: overflow
---------------------
--255
--217
-Warning: overflow
---------------------
--255
--151
-Warning: overflow
---------------------
--255
--128
-32640
---------------------
--255
--127
-32385
---------------------
--255
--2
-510
---------------------
--255
--1
-255
---------------------
--217
-0
-0
---------------------
--217
-1
--217
---------------------
--217
-2
--434
---------------------
--217
-127
--27559
---------------------
--217
-128
--27776
---------------------
--217
-151
--32767
---------------------
--217
-217
-Warning: overflow
---------------------
--217
-255
-Warning: overflow
---------------------
--217
-256
-Warning: overflow
---------------------
--217
-257
-Warning: overflow
---------------------
--217
-32767
-Warning: overflow
---------------------
--217
--32768
-Warning: overflow
---------------------
--217
--32767
-Warning: overflow
---------------------
--217
--257
-Warning: overflow
---------------------
--217
--256
-Warning: overflow
---------------------
--217
--255
-Warning: overflow
---------------------
--217
--217
-Warning: overflow
---------------------
--217
--151
-32767
---------------------
--217
--128
-27776
---------------------
--217
--127
-27559
---------------------
--217
--2
-434
---------------------
--217
--1
-217
---------------------
--151
-0
-0
---------------------
--151
-1
--151
---------------------
--151
-2
--302
---------------------
--151
-127
--19177
---------------------
--151
-128
--19328
---------------------
--151
-151
--22801
---------------------
--151
-217
--32767
---------------------
--151
-255
-Warning: overflow
---------------------
--151
-256
-Warning: overflow
---------------------
--151
-257
-Warning: overflow
---------------------
--151
-32767
-Warning: overflow
---------------------
--151
--32768
-Warning: overflow
---------------------
--151
--32767
-Warning: overflow
---------------------
--151
--257
-Warning: overflow
---------------------
--151
--256
-Warning: overflow
---------------------
--151
--255
-Warning: overflow
---------------------
--151
--217
-32767
---------------------
--151
--151
-22801
---------------------
--151
--128
-19328
---------------------
--151
--127
-19177
---------------------
--151
--2
-302
---------------------
--151
--1
-151
---------------------
--128
-0
-0
---------------------
--128
-1
--128
---------------------
--128
-2
--256
---------------------
--128
-127
--16256
---------------------
--128
-128
--16384
---------------------
--128
-151
--19328
---------------------
--128
-217
--27776
---------------------
--128
-255
--32640
---------------------
--128
-256
-Warning: overflow
---------------------
--128
-257
-Warning: overflow
---------------------
--128
-32767
-Warning: overflow
---------------------
--128
--32768
-Warning: overflow
---------------------
--128
--32767
-Warning: overflow
---------------------
--128
--257
-Warning: overflow
---------------------
--128
--256
-Warning: overflow
---------------------
--128
--255
-32640
---------------------
--128
--217
-27776
---------------------
--128
--151
-19328
---------------------
--128
--128
-16384
---------------------
--128
--127
-16256
---------------------
--128
--2
-256
---------------------
--128
--1
-128
---------------------
--127
-0
-0
---------------------
--127
-1
--127
---------------------
--127
-2
--254
---------------------
--127
-127
--16129
---------------------
--127
-128
--16256
---------------------
--127
-151
--19177
---------------------
--127
-217
--27559
---------------------
--127
-255
--32385
---------------------
--127
-256
--32512
---------------------
--127
-257
--32639
---------------------
--127
-32767
-Warning: overflow
---------------------
--127
--32768
-Warning: overflow
---------------------
--127
--32767
-Warning: overflow
---------------------
--127
--257
-32639
---------------------
--127
--256
-32512
---------------------
--127
--255
-32385
---------------------
--127
--217
-27559
---------------------
--127
--151
-19177
---------------------
--127
--128
-16256
---------------------
--127
--127
-16129
---------------------
--127
--2
-254
---------------------
--127
--1
-127
---------------------
--2
-0
-0
---------------------
--2
-1
--2
---------------------
--2
-2
--4
---------------------
--2
-127
--254
---------------------
--2
-128
--256
---------------------
--2
-151
--302
---------------------
--2
-217
--434
---------------------
--2
-255
--510
---------------------
--2
-256
--512
---------------------
--2
-257
--514
---------------------
--2
-32767
-Warning: overflow
---------------------
--2
--32768
-Warning: overflow
---------------------
--2
--32767
-Warning: overflow
---------------------
--2
--257
-514
---------------------
--2
--256
-512
---------------------
--2
--255
-510
---------------------
--2
--217
-434
---------------------
--2
--151
-302
---------------------
--2
--128
-256
---------------------
--2
--127
-254
---------------------
--2
--2
-4
---------------------
--2
--1
-2
---------------------
--1
-0
-0
---------------------
--1
-1
--1
---------------------
--1
-2
--2
---------------------
--1
-127
--127
---------------------
--1
-128
--128
---------------------
--1
-151
--151
---------------------
--1
-217
--217
---------------------
--1
-255
--255
---------------------
--1
-256
--256
---------------------
--1
-257
--257
---------------------
--1
-32767
--32767
---------------------
--1
--32768
-Warning: overflow
---------------------
--1
--32767
-32767
---------------------
--1
--257
-257
---------------------
--1
--256
-256
---------------------
--1
--255
-255
---------------------
--1
--217
-217
---------------------
--1
--151
-151
---------------------
--1
--128
-128
---------------------
--1
--127
-127
---------------------
--1
--2
-2
---------------------
--1
--1
-1
---------------------
+++ /dev/null
-include ../Define.mk
-include ../Test.mk
+++ /dev/null
-../../../../casl2 -M2048 ../../../../as/casl2lib/sample/call_mula.casl ../../../../as/casl2lib/stdlib.casl
+++ /dev/null
-0
-0
-0
---------------------
-0
-1
-0
---------------------
-0
-2
-0
---------------------
-0
-127
-0
---------------------
-0
-128
-0
---------------------
-0
-255
-0
---------------------
-0
-256
-0
---------------------
-0
-257
-0
---------------------
-0
-32767
-0
---------------------
-0
-32768
-0
---------------------
-0
-65535
-0
---------------------
-1
-0
-0
---------------------
-1
-1
-1
---------------------
-1
-2
-2
---------------------
-1
-127
-127
---------------------
-1
-128
-128
---------------------
-1
-255
-255
---------------------
-1
-256
-256
---------------------
-1
-257
-257
---------------------
-1
-32767
-32767
---------------------
-1
-32768
-32768
---------------------
-1
-65535
-65535
---------------------
-2
-0
-0
---------------------
-2
-1
-2
---------------------
-2
-2
-4
---------------------
-2
-127
-254
---------------------
-2
-128
-256
---------------------
-2
-255
-510
---------------------
-2
-256
-512
---------------------
-2
-257
-514
---------------------
-2
-32767
-65534
---------------------
-2
-32768
-overflow
---------------------
-127
-0
-0
---------------------
-127
-1
-127
---------------------
-127
-2
-254
---------------------
-127
-127
-16129
---------------------
-127
-128
-16256
---------------------
-127
-255
-32385
---------------------
-127
-256
-32512
---------------------
-127
-257
-32639
---------------------
-127
-32767
-overflow
---------------------
-128
-0
-0
---------------------
-128
-1
-128
---------------------
-128
-2
-256
---------------------
-128
-127
-16256
---------------------
-128
-128
-16384
---------------------
-128
-255
-32640
---------------------
-128
-256
-32768
---------------------
-128
-257
-32896
---------------------
-128
-32767
-overflow
---------------------
-255
-0
-0
---------------------
-255
-1
-255
---------------------
-255
-2
-510
---------------------
-255
-127
-32385
---------------------
-255
-128
-32640
---------------------
-255
-255
-65025
---------------------
-255
-256
-65280
---------------------
-255
-257
-65535
---------------------
-255
-32767
-overflow
---------------------
-256
-0
-0
---------------------
-256
-1
-256
---------------------
-256
-2
-512
---------------------
-256
-127
-32512
---------------------
-256
-128
-32768
---------------------
-256
-255
-65280
---------------------
-256
-256
-overflow
---------------------
-257
-0
-0
---------------------
-257
-1
-257
---------------------
-257
-2
-514
---------------------
-257
-127
-32639
---------------------
-257
-128
-32896
---------------------
-257
-255
-65535
---------------------
-257
-256
-overflow
---------------------
-32767
-0
-0
---------------------
-32767
-1
-32767
---------------------
-32767
-2
-65534
---------------------
-32767
-127
-overflow
---------------------
-32768
-0
-0
---------------------
-32768
-1
-32768
---------------------
-32768
-2
-overflow
---------------------
-65535
-0
-0
---------------------
-65535
-1
-65535
---------------------
-65535
-2
-overflow
---------------------
+++ /dev/null
-include ../Define.mk
-include ../Test.mk
+++ /dev/null
-# ../../../../casl2 ../../../../as/casl2lib/sample/call_mull.casl ../../../../as/casl2lib/mull.casl ../../../../as/casl2lib/outl.casl
-../../../../casl2 ../../../../as/casl2lib/sample/call_mull.casl ../../../../as/casl2lib/mull.casl ../../../../as/casl2lib/outl.casl
+++ /dev/null
-0
-1
-2
-4
-8
-16
-32
-64
-128
-256
-512
-1024
-2048
-4096
-8192
-16384
-32767
--32768
--32767
--16384
--8192
--4096
--2048
--1024
--512
--256
--128
--64
--32
--16
--8
--4
--2
--1
+++ /dev/null
-include ../Define.mk
-include ../Test.mk
+++ /dev/null
-../../../../casl2 ../../../../as/casl2lib/sample/call_outa.casl ../../../../as/casl2lib/outa.casl
+++ /dev/null
-0.999969482421875
-0.5
-0.25
-0.125
-0.0625
-0.03125
-0.015625
-0.0078125
-0.00390625
-0.001953125
-0.0009765625
-0.00048828125
-0.000244140625
-0.0001220703125
-0.00006103515625
-0.000030517578125
--1
--0.999969482421875
--0.5
--0.25
--0.125
--0.0625
--0.03125
--0.015625
--0.0078125
--0.00390625
--0.001953125
--0.0009765625
--0.00048828125
--0.000244140625
--0.0001220703125
--0.00006103515625
--0.000030517578125
+++ /dev/null
-include ../Define.mk
-include ../Test.mk
+++ /dev/null
-../../../../casl2 -M2048 ../../../../as/casl2lib/sample/call_outaq15.casl ../../../../as/casl2lib/stdlib.casl
+++ /dev/null
-0000000000000000
-0000000000000001
-0000000000000010
-0000000000000100
-0000000000001000
-0000000000010000
-0000000000100000
-0000000001000000
-0000000010000000
-0000000100000000
-0000001000000000
-0000010000000000
-0000100000000000
-0001000000000000
-0010000000000000
-0100000000000000
-0111111111111111
-1000000000000000
-1000000000000001
-1100000000000000
-1110000000000000
-1111000000000000
-1111100000000000
-1111110000000000
-1111111000000000
-1111111100000000
-1111111110000000
-1111111111000000
-1111111111100000
-1111111111110000
-1111111111111000
-1111111111111100
-1111111111111110
-1111111111111111
+++ /dev/null
-include ../Define.mk
-include ../Test.mk
+++ /dev/null
-../../../../casl2 ../../../../as/casl2lib/sample/call_outb.casl ../../../../as/casl2lib/outb.casl
+++ /dev/null
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
-1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
-1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0
-1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0
-1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0
-1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
-1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0
-1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0
-1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0
-1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0
-1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0
-1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0
-1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0
-1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0
-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0
-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+++ /dev/null
-include ../Define.mk
-include ../Test.mk
+++ /dev/null
-../../../../casl2 -M2048 ../../../../as/casl2lib/sample/call_outbw.casl ../../../../as/casl2lib/outbw.casl
+++ /dev/null
-0
-1
-2
-4
-8
-16
-32
-64
-128
-256
-512
-1024
-2048
-4096
-8192
-16384
-32767
-32768
-32769
-49152
-57344
-61440
-63488
-64512
-65024
-65280
-65408
-65472
-65504
-65520
-65528
-65532
-65534
-65535
+++ /dev/null
-include ../Define.mk
-include ../Test.mk
+++ /dev/null
-../../../../casl2 ../../../../as/casl2lib/sample/call_outl.casl ../../../../as/casl2lib/outl.casl
+++ /dev/null
-0.0000152587890625
-0.000030517578125
-0.00006103515625
-0.0001220703125
-0.000244140625
-0.00048828125
-0.0009765625
-0.001953125
-0.00390625
-0.0078125
-0.015625
-0.03125
-0.0625
-0.125
-0.25
-0.4999847412109375
-0.5
-0.5000152587890625
-0.75
-0.875
-0.9375
-0.96875
-0.984375
-0.9921875
-0.99609375
-0.998046875
-0.9990234375
-0.99951171875
-0.999755859375
-0.9998779296875
-0.99993896484375
-0.999969482421875
-0.9999847412109375
+++ /dev/null
-include ../Define.mk
-include ../Test.mk
+++ /dev/null
-../../../../casl2 ../../../../as/casl2lib/sample/call_outlq15.casl ../../../../as/casl2lib/outlq15.casl
+++ /dev/null
-12345
-54321
+++ /dev/null
-include ../Define.mk
-include ../Test.mk
+++ /dev/null
-../../../../casl2 ../../../../as/casl2lib/sample/call_rev.casl ../../../../as/casl2lib/rev.casl
+++ /dev/null
-345
-not a logical integer
-not a logical integer
-over 65535
+++ /dev/null
-include ../Define.mk
-include ../Test.mk
+++ /dev/null
-../../../../casl2 -M1024 ../../../../as/casl2lib/sample/call_str2l.casl ../../../../as/casl2lib/str2l.casl ../../../../as/casl2lib/outl.casl
+++ /dev/null
-../../template/Define.mk
\ No newline at end of file
+++ /dev/null
-../../template/Group.mk
\ No newline at end of file
+++ /dev/null
-../../template/Test.mk
\ No newline at end of file
+++ /dev/null
-12
-+
-12
---------
--12
--
-12
---------
-1
-+
-1
---------
--1
--
-1
---------
-32767
-+
-32767
---------
--32767
--
-32767
---------
-0
-+
-0
---------
--32768
-OV
--32768
---------
+++ /dev/null
-include ../Define.mk
-include ../Test.mk
+++ /dev/null
-;;; ABSを呼び出す
-MAIN START
- LAD GR2,0
-MLOOP CPA GR2,MLEN
- JZE MFIN
- LD GR1,MVAL,GR2
- CALL OUTA
- CALL ABS
- JOV PUTOV
- JMI PUTM
- OUT PLUS,=1
- JUMP PUTD
-PUTM OUT MINUS,=1
- JUMP PUTD
-PUTOV OUT OV,=2
-PUTD CALL OUTA
- OUT SEP,MLEN
- LAD GR2,1,GR2
- JUMP MLOOP
-MFIN RET
-MVAL DC 12,-12,1,-1,32767,-32767,0,-32768
-MLEN DC 8
-SEP DC '--------'
-PLUS DC '+'
-MINUS DC '-'
-OV DC 'OV'
- END
+++ /dev/null
-../../../../casl2 -M2048 -O ../../../../as/casl2lib/sample/call_abs.casl ../../../../as/casl2lib/stdlib.casl
-../../../../comet2 -M2048 a.o
-rm -f a.o
+++ /dev/null
-include ../Define.mk
-include ../Test.mk
+++ /dev/null
-MAIN START
- LAD GR1,A
- LAD GR2,B
- CALL ADDL32
- LD GR2,GR0
- LD GR1,1,GR2
- CALL OUTL
- LD GR1,0,GR2
- CALL OUTL
- RET
-A DC 6,10
-B DC 2,65530
- END
+++ /dev/null
-../../../../casl2 -M2048 -O ../../../../as/casl2lib/sample/call_addl32.casl ../../../../as/casl2lib/stdlib.casl
-../../../../comet2 -M2048 a.o
-rm -f a.o
+++ /dev/null
---------------------
-100
-0
-Error: div by 0
---------------------
-100
-1
-100
-0
---------------------
-100
-2
-50
-0
---------------------
-100
-3
-33
-1
---------------------
-100
-4
-25
-0
---------------------
-100
-5
-20
-0
---------------------
-100
-6
-16
-4
---------------------
-100
-7
-14
-2
---------------------
-100
-8
-12
-4
---------------------
-100
-9
-11
-1
---------------------
-100
-10
-10
-0
---------------------
---------------------
-99
-0
-Error: div by 0
---------------------
-99
-1
-99
-0
---------------------
-99
-2
-49
-1
---------------------
-99
-3
-33
-0
---------------------
-99
-4
-24
-3
---------------------
-99
-5
-19
-4
---------------------
-99
-6
-16
-3
---------------------
-99
-7
-14
-1
---------------------
-99
-8
-12
-3
---------------------
-99
-9
-11
-0
---------------------
-99
-10
-9
-9
---------------------
---------------------
-98
-0
-Error: div by 0
---------------------
-98
-1
-98
-0
---------------------
-98
-2
-49
-0
---------------------
-98
-3
-32
-2
---------------------
-98
-4
-24
-2
---------------------
-98
-5
-19
-3
---------------------
-98
-6
-16
-2
---------------------
-98
-7
-14
-0
---------------------
-98
-8
-12
-2
---------------------
-98
-9
-10
-8
---------------------
-98
-10
-9
-8
---------------------
---------------------
-97
-0
-Error: div by 0
---------------------
-97
-1
-97
-0
---------------------
-97
-2
-48
-1
---------------------
-97
-3
-32
-1
---------------------
-97
-4
-24
-1
---------------------
-97
-5
-19
-2
---------------------
-97
-6
-16
-1
---------------------
-97
-7
-13
-6
---------------------
-97
-8
-12
-1
---------------------
-97
-9
-10
-7
---------------------
-97
-10
-9
-7
---------------------
---------------------
-96
-0
-Error: div by 0
---------------------
-96
-1
-96
-0
---------------------
-96
-2
-48
-0
---------------------
-96
-3
-32
-0
---------------------
-96
-4
-24
-0
---------------------
-96
-5
-19
-1
---------------------
-96
-6
-16
-0
---------------------
-96
-7
-13
-5
---------------------
-96
-8
-12
-0
---------------------
-96
-9
-10
-6
---------------------
-96
-10
-9
-6
---------------------
---------------------
-95
-0
-Error: div by 0
---------------------
-95
-1
-95
-0
---------------------
-95
-2
-47
-1
---------------------
-95
-3
-31
-2
---------------------
-95
-4
-23
-3
---------------------
-95
-5
-19
-0
---------------------
-95
-6
-15
-5
---------------------
-95
-7
-13
-4
---------------------
-95
-8
-11
-7
---------------------
-95
-9
-10
-5
---------------------
-95
-10
-9
-5
---------------------
---------------------
-94
-0
-Error: div by 0
---------------------
-94
-1
-94
-0
---------------------
-94
-2
-47
-0
---------------------
-94
-3
-31
-1
---------------------
-94
-4
-23
-2
---------------------
-94
-5
-18
-4
---------------------
-94
-6
-15
-4
---------------------
-94
-7
-13
-3
---------------------
-94
-8
-11
-6
---------------------
-94
-9
-10
-4
---------------------
-94
-10
-9
-4
---------------------
---------------------
-93
-0
-Error: div by 0
---------------------
-93
-1
-93
-0
---------------------
-93
-2
-46
-1
---------------------
-93
-3
-31
-0
---------------------
-93
-4
-23
-1
---------------------
-93
-5
-18
-3
---------------------
-93
-6
-15
-3
---------------------
-93
-7
-13
-2
---------------------
-93
-8
-11
-5
---------------------
-93
-9
-10
-3
---------------------
-93
-10
-9
-3
---------------------
---------------------
-92
-0
-Error: div by 0
---------------------
-92
-1
-92
-0
---------------------
-92
-2
-46
-0
---------------------
-92
-3
-30
-2
---------------------
-92
-4
-23
-0
---------------------
-92
-5
-18
-2
---------------------
-92
-6
-15
-2
---------------------
-92
-7
-13
-1
---------------------
-92
-8
-11
-4
---------------------
-92
-9
-10
-2
---------------------
-92
-10
-9
-2
---------------------
---------------------
-91
-0
-Error: div by 0
---------------------
-91
-1
-91
-0
---------------------
-91
-2
-45
-1
---------------------
-91
-3
-30
-1
---------------------
-91
-4
-22
-3
---------------------
-91
-5
-18
-1
---------------------
-91
-6
-15
-1
---------------------
-91
-7
-13
-0
---------------------
-91
-8
-11
-3
---------------------
-91
-9
-10
-1
---------------------
-91
-10
-9
-1
---------------------
---------------------
-90
-0
-Error: div by 0
---------------------
-90
-1
-90
-0
---------------------
-90
-2
-45
-0
---------------------
-90
-3
-30
-0
---------------------
-90
-4
-22
-2
---------------------
-90
-5
-18
-0
---------------------
-90
-6
-15
-0
---------------------
-90
-7
-12
-6
---------------------
-90
-8
-11
-2
---------------------
-90
-9
-10
-0
---------------------
-90
-10
-9
-0
---------------------
---------------------
-89
-0
-Error: div by 0
---------------------
-89
-1
-89
-0
---------------------
-89
-2
-44
-1
---------------------
-89
-3
-29
-2
---------------------
-89
-4
-22
-1
---------------------
-89
-5
-17
-4
---------------------
-89
-6
-14
-5
---------------------
-89
-7
-12
-5
---------------------
-89
-8
-11
-1
---------------------
-89
-9
-9
-8
---------------------
-89
-10
-8
-9
---------------------
---------------------
-88
-0
-Error: div by 0
---------------------
-88
-1
-88
-0
---------------------
-88
-2
-44
-0
---------------------
-88
-3
-29
-1
---------------------
-88
-4
-22
-0
---------------------
-88
-5
-17
-3
---------------------
-88
-6
-14
-4
---------------------
-88
-7
-12
-4
---------------------
-88
-8
-11
-0
---------------------
-88
-9
-9
-7
---------------------
-88
-10
-8
-8
---------------------
---------------------
-87
-0
-Error: div by 0
---------------------
-87
-1
-87
-0
---------------------
-87
-2
-43
-1
---------------------
-87
-3
-29
-0
---------------------
-87
-4
-21
-3
---------------------
-87
-5
-17
-2
---------------------
-87
-6
-14
-3
---------------------
-87
-7
-12
-3
---------------------
-87
-8
-10
-7
---------------------
-87
-9
-9
-6
---------------------
-87
-10
-8
-7
---------------------
---------------------
-86
-0
-Error: div by 0
---------------------
-86
-1
-86
-0
---------------------
-86
-2
-43
-0
---------------------
-86
-3
-28
-2
---------------------
-86
-4
-21
-2
---------------------
-86
-5
-17
-1
---------------------
-86
-6
-14
-2
---------------------
-86
-7
-12
-2
---------------------
-86
-8
-10
-6
---------------------
-86
-9
-9
-5
---------------------
-86
-10
-8
-6
---------------------
---------------------
-85
-0
-Error: div by 0
---------------------
-85
-1
-85
-0
---------------------
-85
-2
-42
-1
---------------------
-85
-3
-28
-1
---------------------
-85
-4
-21
-1
---------------------
-85
-5
-17
-0
---------------------
-85
-6
-14
-1
---------------------
-85
-7
-12
-1
---------------------
-85
-8
-10
-5
---------------------
-85
-9
-9
-4
---------------------
-85
-10
-8
-5
---------------------
---------------------
-84
-0
-Error: div by 0
---------------------
-84
-1
-84
-0
---------------------
-84
-2
-42
-0
---------------------
-84
-3
-28
-0
---------------------
-84
-4
-21
-0
---------------------
-84
-5
-16
-4
---------------------
-84
-6
-14
-0
---------------------
-84
-7
-12
-0
---------------------
-84
-8
-10
-4
---------------------
-84
-9
-9
-3
---------------------
-84
-10
-8
-4
---------------------
---------------------
-83
-0
-Error: div by 0
---------------------
-83
-1
-83
-0
---------------------
-83
-2
-41
-1
---------------------
-83
-3
-27
-2
---------------------
-83
-4
-20
-3
---------------------
-83
-5
-16
-3
---------------------
-83
-6
-13
-5
---------------------
-83
-7
-11
-6
---------------------
-83
-8
-10
-3
---------------------
-83
-9
-9
-2
---------------------
-83
-10
-8
-3
---------------------
---------------------
-82
-0
-Error: div by 0
---------------------
-82
-1
-82
-0
---------------------
-82
-2
-41
-0
---------------------
-82
-3
-27
-1
---------------------
-82
-4
-20
-2
---------------------
-82
-5
-16
-2
---------------------
-82
-6
-13
-4
---------------------
-82
-7
-11
-5
---------------------
-82
-8
-10
-2
---------------------
-82
-9
-9
-1
---------------------
-82
-10
-8
-2
---------------------
---------------------
-81
-0
-Error: div by 0
---------------------
-81
-1
-81
-0
---------------------
-81
-2
-40
-1
---------------------
-81
-3
-27
-0
---------------------
-81
-4
-20
-1
---------------------
-81
-5
-16
-1
---------------------
-81
-6
-13
-3
---------------------
-81
-7
-11
-4
---------------------
-81
-8
-10
-1
---------------------
-81
-9
-9
-0
---------------------
-81
-10
-8
-1
---------------------
---------------------
-80
-0
-Error: div by 0
---------------------
-80
-1
-80
-0
---------------------
-80
-2
-40
-0
---------------------
-80
-3
-26
-2
---------------------
-80
-4
-20
-0
---------------------
-80
-5
-16
-0
---------------------
-80
-6
-13
-2
---------------------
-80
-7
-11
-3
---------------------
-80
-8
-10
-0
---------------------
-80
-9
-8
-8
---------------------
-80
-10
-8
-0
---------------------
---------------------
-79
-0
-Error: div by 0
---------------------
-79
-1
-79
-0
---------------------
-79
-2
-39
-1
---------------------
-79
-3
-26
-1
---------------------
-79
-4
-19
-3
---------------------
-79
-5
-15
-4
---------------------
-79
-6
-13
-1
---------------------
-79
-7
-11
-2
---------------------
-79
-8
-9
-7
---------------------
-79
-9
-8
-7
---------------------
-79
-10
-7
-9
---------------------
---------------------
-78
-0
-Error: div by 0
---------------------
-78
-1
-78
-0
---------------------
-78
-2
-39
-0
---------------------
-78
-3
-26
-0
---------------------
-78
-4
-19
-2
---------------------
-78
-5
-15
-3
---------------------
-78
-6
-13
-0
---------------------
-78
-7
-11
-1
---------------------
-78
-8
-9
-6
---------------------
-78
-9
-8
-6
---------------------
-78
-10
-7
-8
---------------------
---------------------
-77
-0
-Error: div by 0
---------------------
-77
-1
-77
-0
---------------------
-77
-2
-38
-1
---------------------
-77
-3
-25
-2
---------------------
-77
-4
-19
-1
---------------------
-77
-5
-15
-2
---------------------
-77
-6
-12
-5
---------------------
-77
-7
-11
-0
---------------------
-77
-8
-9
-5
---------------------
-77
-9
-8
-5
---------------------
-77
-10
-7
-7
---------------------
---------------------
-76
-0
-Error: div by 0
---------------------
-76
-1
-76
-0
---------------------
-76
-2
-38
-0
---------------------
-76
-3
-25
-1
---------------------
-76
-4
-19
-0
---------------------
-76
-5
-15
-1
---------------------
-76
-6
-12
-4
---------------------
-76
-7
-10
-6
---------------------
-76
-8
-9
-4
---------------------
-76
-9
-8
-4
---------------------
-76
-10
-7
-6
---------------------
---------------------
-75
-0
-Error: div by 0
---------------------
-75
-1
-75
-0
---------------------
-75
-2
-37
-1
---------------------
-75
-3
-25
-0
---------------------
-75
-4
-18
-3
---------------------
-75
-5
-15
-0
---------------------
-75
-6
-12
-3
---------------------
-75
-7
-10
-5
---------------------
-75
-8
-9
-3
---------------------
-75
-9
-8
-3
---------------------
-75
-10
-7
-5
---------------------
---------------------
-74
-0
-Error: div by 0
---------------------
-74
-1
-74
-0
---------------------
-74
-2
-37
-0
---------------------
-74
-3
-24
-2
---------------------
-74
-4
-18
-2
---------------------
-74
-5
-14
-4
---------------------
-74
-6
-12
-2
---------------------
-74
-7
-10
-4
---------------------
-74
-8
-9
-2
---------------------
-74
-9
-8
-2
---------------------
-74
-10
-7
-4
---------------------
---------------------
-73
-0
-Error: div by 0
---------------------
-73
-1
-73
-0
---------------------
-73
-2
-36
-1
---------------------
-73
-3
-24
-1
---------------------
-73
-4
-18
-1
---------------------
-73
-5
-14
-3
---------------------
-73
-6
-12
-1
---------------------
-73
-7
-10
-3
---------------------
-73
-8
-9
-1
---------------------
-73
-9
-8
-1
---------------------
-73
-10
-7
-3
---------------------
---------------------
-72
-0
-Error: div by 0
---------------------
-72
-1
-72
-0
---------------------
-72
-2
-36
-0
---------------------
-72
-3
-24
-0
---------------------
-72
-4
-18
-0
---------------------
-72
-5
-14
-2
---------------------
-72
-6
-12
-0
---------------------
-72
-7
-10
-2
---------------------
-72
-8
-9
-0
---------------------
-72
-9
-8
-0
---------------------
-72
-10
-7
-2
---------------------
---------------------
-71
-0
-Error: div by 0
---------------------
-71
-1
-71
-0
---------------------
-71
-2
-35
-1
---------------------
-71
-3
-23
-2
---------------------
-71
-4
-17
-3
---------------------
-71
-5
-14
-1
---------------------
-71
-6
-11
-5
---------------------
-71
-7
-10
-1
---------------------
-71
-8
-8
-7
---------------------
-71
-9
-7
-8
---------------------
-71
-10
-7
-1
---------------------
---------------------
-70
-0
-Error: div by 0
---------------------
-70
-1
-70
-0
---------------------
-70
-2
-35
-0
---------------------
-70
-3
-23
-1
---------------------
-70
-4
-17
-2
---------------------
-70
-5
-14
-0
---------------------
-70
-6
-11
-4
---------------------
-70
-7
-10
-0
---------------------
-70
-8
-8
-6
---------------------
-70
-9
-7
-7
---------------------
-70
-10
-7
-0
---------------------
---------------------
-69
-0
-Error: div by 0
---------------------
-69
-1
-69
-0
---------------------
-69
-2
-34
-1
---------------------
-69
-3
-23
-0
---------------------
-69
-4
-17
-1
---------------------
-69
-5
-13
-4
---------------------
-69
-6
-11
-3
---------------------
-69
-7
-9
-6
---------------------
-69
-8
-8
-5
---------------------
-69
-9
-7
-6
---------------------
-69
-10
-6
-9
---------------------
---------------------
-68
-0
-Error: div by 0
---------------------
-68
-1
-68
-0
---------------------
-68
-2
-34
-0
---------------------
-68
-3
-22
-2
---------------------
-68
-4
-17
-0
---------------------
-68
-5
-13
-3
---------------------
-68
-6
-11
-2
---------------------
-68
-7
-9
-5
---------------------
-68
-8
-8
-4
---------------------
-68
-9
-7
-5
---------------------
-68
-10
-6
-8
---------------------
---------------------
-67
-0
-Error: div by 0
---------------------
-67
-1
-67
-0
---------------------
-67
-2
-33
-1
---------------------
-67
-3
-22
-1
---------------------
-67
-4
-16
-3
---------------------
-67
-5
-13
-2
---------------------
-67
-6
-11
-1
---------------------
-67
-7
-9
-4
---------------------
-67
-8
-8
-3
---------------------
-67
-9
-7
-4
---------------------
-67
-10
-6
-7
---------------------
---------------------
-66
-0
-Error: div by 0
---------------------
-66
-1
-66
-0
---------------------
-66
-2
-33
-0
---------------------
-66
-3
-22
-0
---------------------
-66
-4
-16
-2
---------------------
-66
-5
-13
-1
---------------------
-66
-6
-11
-0
---------------------
-66
-7
-9
-3
---------------------
-66
-8
-8
-2
---------------------
-66
-9
-7
-3
---------------------
-66
-10
-6
-6
---------------------
---------------------
-65
-0
-Error: div by 0
---------------------
-65
-1
-65
-0
---------------------
-65
-2
-32
-1
---------------------
-65
-3
-21
-2
---------------------
-65
-4
-16
-1
---------------------
-65
-5
-13
-0
---------------------
-65
-6
-10
-5
---------------------
-65
-7
-9
-2
---------------------
-65
-8
-8
-1
---------------------
-65
-9
-7
-2
---------------------
-65
-10
-6
-5
---------------------
---------------------
-64
-0
-Error: div by 0
---------------------
-64
-1
-64
-0
---------------------
-64
-2
-32
-0
---------------------
-64
-3
-21
-1
---------------------
-64
-4
-16
-0
---------------------
-64
-5
-12
-4
---------------------
-64
-6
-10
-4
---------------------
-64
-7
-9
-1
---------------------
-64
-8
-8
-0
---------------------
-64
-9
-7
-1
---------------------
-64
-10
-6
-4
---------------------
---------------------
-63
-0
-Error: div by 0
---------------------
-63
-1
-63
-0
---------------------
-63
-2
-31
-1
---------------------
-63
-3
-21
-0
---------------------
-63
-4
-15
-3
---------------------
-63
-5
-12
-3
---------------------
-63
-6
-10
-3
---------------------
-63
-7
-9
-0
---------------------
-63
-8
-7
-7
---------------------
-63
-9
-7
-0
---------------------
-63
-10
-6
-3
---------------------
---------------------
-62
-0
-Error: div by 0
---------------------
-62
-1
-62
-0
---------------------
-62
-2
-31
-0
---------------------
-62
-3
-20
-2
---------------------
-62
-4
-15
-2
---------------------
-62
-5
-12
-2
---------------------
-62
-6
-10
-2
---------------------
-62
-7
-8
-6
---------------------
-62
-8
-7
-6
---------------------
-62
-9
-6
-8
---------------------
-62
-10
-6
-2
---------------------
---------------------
-61
-0
-Error: div by 0
---------------------
-61
-1
-61
-0
---------------------
-61
-2
-30
-1
---------------------
-61
-3
-20
-1
---------------------
-61
-4
-15
-1
---------------------
-61
-5
-12
-1
---------------------
-61
-6
-10
-1
---------------------
-61
-7
-8
-5
---------------------
-61
-8
-7
-5
---------------------
-61
-9
-6
-7
---------------------
-61
-10
-6
-1
---------------------
---------------------
-60
-0
-Error: div by 0
---------------------
-60
-1
-60
-0
---------------------
-60
-2
-30
-0
---------------------
-60
-3
-20
-0
---------------------
-60
-4
-15
-0
---------------------
-60
-5
-12
-0
---------------------
-60
-6
-10
-0
---------------------
-60
-7
-8
-4
---------------------
-60
-8
-7
-4
---------------------
-60
-9
-6
-6
---------------------
-60
-10
-6
-0
---------------------
---------------------
-59
-0
-Error: div by 0
---------------------
-59
-1
-59
-0
---------------------
-59
-2
-29
-1
---------------------
-59
-3
-19
-2
---------------------
-59
-4
-14
-3
---------------------
-59
-5
-11
-4
---------------------
-59
-6
-9
-5
---------------------
-59
-7
-8
-3
---------------------
-59
-8
-7
-3
---------------------
-59
-9
-6
-5
---------------------
-59
-10
-5
-9
---------------------
---------------------
-58
-0
-Error: div by 0
---------------------
-58
-1
-58
-0
---------------------
-58
-2
-29
-0
---------------------
-58
-3
-19
-1
---------------------
-58
-4
-14
-2
---------------------
-58
-5
-11
-3
---------------------
-58
-6
-9
-4
---------------------
-58
-7
-8
-2
---------------------
-58
-8
-7
-2
---------------------
-58
-9
-6
-4
---------------------
-58
-10
-5
-8
---------------------
---------------------
-57
-0
-Error: div by 0
---------------------
-57
-1
-57
-0
---------------------
-57
-2
-28
-1
---------------------
-57
-3
-19
-0
---------------------
-57
-4
-14
-1
---------------------
-57
-5
-11
-2
---------------------
-57
-6
-9
-3
---------------------
-57
-7
-8
-1
---------------------
-57
-8
-7
-1
---------------------
-57
-9
-6
-3
---------------------
-57
-10
-5
-7
---------------------
---------------------
-56
-0
-Error: div by 0
---------------------
-56
-1
-56
-0
---------------------
-56
-2
-28
-0
---------------------
-56
-3
-18
-2
---------------------
-56
-4
-14
-0
---------------------
-56
-5
-11
-1
---------------------
-56
-6
-9
-2
---------------------
-56
-7
-8
-0
---------------------
-56
-8
-7
-0
---------------------
-56
-9
-6
-2
---------------------
-56
-10
-5
-6
---------------------
---------------------
-55
-0
-Error: div by 0
---------------------
-55
-1
-55
-0
---------------------
-55
-2
-27
-1
---------------------
-55
-3
-18
-1
---------------------
-55
-4
-13
-3
---------------------
-55
-5
-11
-0
---------------------
-55
-6
-9
-1
---------------------
-55
-7
-7
-6
---------------------
-55
-8
-6
-7
---------------------
-55
-9
-6
-1
---------------------
-55
-10
-5
-5
---------------------
---------------------
-54
-0
-Error: div by 0
---------------------
-54
-1
-54
-0
---------------------
-54
-2
-27
-0
---------------------
-54
-3
-18
-0
---------------------
-54
-4
-13
-2
---------------------
-54
-5
-10
-4
---------------------
-54
-6
-9
-0
---------------------
-54
-7
-7
-5
---------------------
-54
-8
-6
-6
---------------------
-54
-9
-6
-0
---------------------
-54
-10
-5
-4
---------------------
---------------------
-53
-0
-Error: div by 0
---------------------
-53
-1
-53
-0
---------------------
-53
-2
-26
-1
---------------------
-53
-3
-17
-2
---------------------
-53
-4
-13
-1
---------------------
-53
-5
-10
-3
---------------------
-53
-6
-8
-5
---------------------
-53
-7
-7
-4
---------------------
-53
-8
-6
-5
---------------------
-53
-9
-5
-8
---------------------
-53
-10
-5
-3
---------------------
---------------------
-52
-0
-Error: div by 0
---------------------
-52
-1
-52
-0
---------------------
-52
-2
-26
-0
---------------------
-52
-3
-17
-1
---------------------
-52
-4
-13
-0
---------------------
-52
-5
-10
-2
---------------------
-52
-6
-8
-4
---------------------
-52
-7
-7
-3
---------------------
-52
-8
-6
-4
---------------------
-52
-9
-5
-7
---------------------
-52
-10
-5
-2
---------------------
---------------------
-51
-0
-Error: div by 0
---------------------
-51
-1
-51
-0
---------------------
-51
-2
-25
-1
---------------------
-51
-3
-17
-0
---------------------
-51
-4
-12
-3
---------------------
-51
-5
-10
-1
---------------------
-51
-6
-8
-3
---------------------
-51
-7
-7
-2
---------------------
-51
-8
-6
-3
---------------------
-51
-9
-5
-6
---------------------
-51
-10
-5
-1
---------------------
---------------------
-50
-0
-Error: div by 0
---------------------
-50
-1
-50
-0
---------------------
-50
-2
-25
-0
---------------------
-50
-3
-16
-2
---------------------
-50
-4
-12
-2
---------------------
-50
-5
-10
-0
---------------------
-50
-6
-8
-2
---------------------
-50
-7
-7
-1
---------------------
-50
-8
-6
-2
---------------------
-50
-9
-5
-5
---------------------
-50
-10
-5
-0
---------------------
---------------------
-49
-0
-Error: div by 0
---------------------
-49
-1
-49
-0
---------------------
-49
-2
-24
-1
---------------------
-49
-3
-16
-1
---------------------
-49
-4
-12
-1
---------------------
-49
-5
-9
-4
---------------------
-49
-6
-8
-1
---------------------
-49
-7
-7
-0
---------------------
-49
-8
-6
-1
---------------------
-49
-9
-5
-4
---------------------
-49
-10
-4
-9
---------------------
---------------------
-48
-0
-Error: div by 0
---------------------
-48
-1
-48
-0
---------------------
-48
-2
-24
-0
---------------------
-48
-3
-16
-0
---------------------
-48
-4
-12
-0
---------------------
-48
-5
-9
-3
---------------------
-48
-6
-8
-0
---------------------
-48
-7
-6
-6
---------------------
-48
-8
-6
-0
---------------------
-48
-9
-5
-3
---------------------
-48
-10
-4
-8
---------------------
---------------------
-47
-0
-Error: div by 0
---------------------
-47
-1
-47
-0
---------------------
-47
-2
-23
-1
---------------------
-47
-3
-15
-2
---------------------
-47
-4
-11
-3
---------------------
-47
-5
-9
-2
---------------------
-47
-6
-7
-5
---------------------
-47
-7
-6
-5
---------------------
-47
-8
-5
-7
---------------------
-47
-9
-5
-2
---------------------
-47
-10
-4
-7
---------------------
---------------------
-46
-0
-Error: div by 0
---------------------
-46
-1
-46
-0
---------------------
-46
-2
-23
-0
---------------------
-46
-3
-15
-1
---------------------
-46
-4
-11
-2
---------------------
-46
-5
-9
-1
---------------------
-46
-6
-7
-4
---------------------
-46
-7
-6
-4
---------------------
-46
-8
-5
-6
---------------------
-46
-9
-5
-1
---------------------
-46
-10
-4
-6
---------------------
---------------------
-45
-0
-Error: div by 0
---------------------
-45
-1
-45
-0
---------------------
-45
-2
-22
-1
---------------------
-45
-3
-15
-0
---------------------
-45
-4
-11
-1
---------------------
-45
-5
-9
-0
---------------------
-45
-6
-7
-3
---------------------
-45
-7
-6
-3
---------------------
-45
-8
-5
-5
---------------------
-45
-9
-5
-0
---------------------
-45
-10
-4
-5
---------------------
---------------------
-44
-0
-Error: div by 0
---------------------
-44
-1
-44
-0
---------------------
-44
-2
-22
-0
---------------------
-44
-3
-14
-2
---------------------
-44
-4
-11
-0
---------------------
-44
-5
-8
-4
---------------------
-44
-6
-7
-2
---------------------
-44
-7
-6
-2
---------------------
-44
-8
-5
-4
---------------------
-44
-9
-4
-8
---------------------
-44
-10
-4
-4
---------------------
---------------------
-43
-0
-Error: div by 0
---------------------
-43
-1
-43
-0
---------------------
-43
-2
-21
-1
---------------------
-43
-3
-14
-1
---------------------
-43
-4
-10
-3
---------------------
-43
-5
-8
-3
---------------------
-43
-6
-7
-1
---------------------
-43
-7
-6
-1
---------------------
-43
-8
-5
-3
---------------------
-43
-9
-4
-7
---------------------
-43
-10
-4
-3
---------------------
---------------------
-42
-0
-Error: div by 0
---------------------
-42
-1
-42
-0
---------------------
-42
-2
-21
-0
---------------------
-42
-3
-14
-0
---------------------
-42
-4
-10
-2
---------------------
-42
-5
-8
-2
---------------------
-42
-6
-7
-0
---------------------
-42
-7
-6
-0
---------------------
-42
-8
-5
-2
---------------------
-42
-9
-4
-6
---------------------
-42
-10
-4
-2
---------------------
---------------------
-41
-0
-Error: div by 0
---------------------
-41
-1
-41
-0
---------------------
-41
-2
-20
-1
---------------------
-41
-3
-13
-2
---------------------
-41
-4
-10
-1
---------------------
-41
-5
-8
-1
---------------------
-41
-6
-6
-5
---------------------
-41
-7
-5
-6
---------------------
-41
-8
-5
-1
---------------------
-41
-9
-4
-5
---------------------
-41
-10
-4
-1
---------------------
---------------------
-40
-0
-Error: div by 0
---------------------
-40
-1
-40
-0
---------------------
-40
-2
-20
-0
---------------------
-40
-3
-13
-1
---------------------
-40
-4
-10
-0
---------------------
-40
-5
-8
-0
---------------------
-40
-6
-6
-4
---------------------
-40
-7
-5
-5
---------------------
-40
-8
-5
-0
---------------------
-40
-9
-4
-4
---------------------
-40
-10
-4
-0
---------------------
---------------------
-39
-0
-Error: div by 0
---------------------
-39
-1
-39
-0
---------------------
-39
-2
-19
-1
---------------------
-39
-3
-13
-0
---------------------
-39
-4
-9
-3
---------------------
-39
-5
-7
-4
---------------------
-39
-6
-6
-3
---------------------
-39
-7
-5
-4
---------------------
-39
-8
-4
-7
---------------------
-39
-9
-4
-3
---------------------
-39
-10
-3
-9
---------------------
---------------------
-38
-0
-Error: div by 0
---------------------
-38
-1
-38
-0
---------------------
-38
-2
-19
-0
---------------------
-38
-3
-12
-2
---------------------
-38
-4
-9
-2
---------------------
-38
-5
-7
-3
---------------------
-38
-6
-6
-2
---------------------
-38
-7
-5
-3
---------------------
-38
-8
-4
-6
---------------------
-38
-9
-4
-2
---------------------
-38
-10
-3
-8
---------------------
---------------------
-37
-0
-Error: div by 0
---------------------
-37
-1
-37
-0
---------------------
-37
-2
-18
-1
---------------------
-37
-3
-12
-1
---------------------
-37
-4
-9
-1
---------------------
-37
-5
-7
-2
---------------------
-37
-6
-6
-1
---------------------
-37
-7
-5
-2
---------------------
-37
-8
-4
-5
---------------------
-37
-9
-4
-1
---------------------
-37
-10
-3
-7
---------------------
---------------------
-36
-0
-Error: div by 0
---------------------
-36
-1
-36
-0
---------------------
-36
-2
-18
-0
---------------------
-36
-3
-12
-0
---------------------
-36
-4
-9
-0
---------------------
-36
-5
-7
-1
---------------------
-36
-6
-6
-0
---------------------
-36
-7
-5
-1
---------------------
-36
-8
-4
-4
---------------------
-36
-9
-4
-0
---------------------
-36
-10
-3
-6
---------------------
---------------------
-35
-0
-Error: div by 0
---------------------
-35
-1
-35
-0
---------------------
-35
-2
-17
-1
---------------------
-35
-3
-11
-2
---------------------
-35
-4
-8
-3
---------------------
-35
-5
-7
-0
---------------------
-35
-6
-5
-5
---------------------
-35
-7
-5
-0
---------------------
-35
-8
-4
-3
---------------------
-35
-9
-3
-8
---------------------
-35
-10
-3
-5
---------------------
---------------------
-34
-0
-Error: div by 0
---------------------
-34
-1
-34
-0
---------------------
-34
-2
-17
-0
---------------------
-34
-3
-11
-1
---------------------
-34
-4
-8
-2
---------------------
-34
-5
-6
-4
---------------------
-34
-6
-5
-4
---------------------
-34
-7
-4
-6
---------------------
-34
-8
-4
-2
---------------------
-34
-9
-3
-7
---------------------
-34
-10
-3
-4
---------------------
---------------------
-33
-0
-Error: div by 0
---------------------
-33
-1
-33
-0
---------------------
-33
-2
-16
-1
---------------------
-33
-3
-11
-0
---------------------
-33
-4
-8
-1
---------------------
-33
-5
-6
-3
---------------------
-33
-6
-5
-3
---------------------
-33
-7
-4
-5
---------------------
-33
-8
-4
-1
---------------------
-33
-9
-3
-6
---------------------
-33
-10
-3
-3
---------------------
---------------------
-32
-0
-Error: div by 0
---------------------
-32
-1
-32
-0
---------------------
-32
-2
-16
-0
---------------------
-32
-3
-10
-2
---------------------
-32
-4
-8
-0
---------------------
-32
-5
-6
-2
---------------------
-32
-6
-5
-2
---------------------
-32
-7
-4
-4
---------------------
-32
-8
-4
-0
---------------------
-32
-9
-3
-5
---------------------
-32
-10
-3
-2
---------------------
---------------------
-31
-0
-Error: div by 0
---------------------
-31
-1
-31
-0
---------------------
-31
-2
-15
-1
---------------------
-31
-3
-10
-1
---------------------
-31
-4
-7
-3
---------------------
-31
-5
-6
-1
---------------------
-31
-6
-5
-1
---------------------
-31
-7
-4
-3
---------------------
-31
-8
-3
-7
---------------------
-31
-9
-3
-4
---------------------
-31
-10
-3
-1
---------------------
---------------------
-30
-0
-Error: div by 0
---------------------
-30
-1
-30
-0
---------------------
-30
-2
-15
-0
---------------------
-30
-3
-10
-0
---------------------
-30
-4
-7
-2
---------------------
-30
-5
-6
-0
---------------------
-30
-6
-5
-0
---------------------
-30
-7
-4
-2
---------------------
-30
-8
-3
-6
---------------------
-30
-9
-3
-3
---------------------
-30
-10
-3
-0
---------------------
---------------------
-29
-0
-Error: div by 0
---------------------
-29
-1
-29
-0
---------------------
-29
-2
-14
-1
---------------------
-29
-3
-9
-2
---------------------
-29
-4
-7
-1
---------------------
-29
-5
-5
-4
---------------------
-29
-6
-4
-5
---------------------
-29
-7
-4
-1
---------------------
-29
-8
-3
-5
---------------------
-29
-9
-3
-2
---------------------
-29
-10
-2
-9
---------------------
---------------------
-28
-0
-Error: div by 0
---------------------
-28
-1
-28
-0
---------------------
-28
-2
-14
-0
---------------------
-28
-3
-9
-1
---------------------
-28
-4
-7
-0
---------------------
-28
-5
-5
-3
---------------------
-28
-6
-4
-4
---------------------
-28
-7
-4
-0
---------------------
-28
-8
-3
-4
---------------------
-28
-9
-3
-1
---------------------
-28
-10
-2
-8
---------------------
---------------------
-27
-0
-Error: div by 0
---------------------
-27
-1
-27
-0
---------------------
-27
-2
-13
-1
---------------------
-27
-3
-9
-0
---------------------
-27
-4
-6
-3
---------------------
-27
-5
-5
-2
---------------------
-27
-6
-4
-3
---------------------
-27
-7
-3
-6
---------------------
-27
-8
-3
-3
---------------------
-27
-9
-3
-0
---------------------
-27
-10
-2
-7
---------------------
---------------------
-26
-0
-Error: div by 0
---------------------
-26
-1
-26
-0
---------------------
-26
-2
-13
-0
---------------------
-26
-3
-8
-2
---------------------
-26
-4
-6
-2
---------------------
-26
-5
-5
-1
---------------------
-26
-6
-4
-2
---------------------
-26
-7
-3
-5
---------------------
-26
-8
-3
-2
---------------------
-26
-9
-2
-8
---------------------
-26
-10
-2
-6
---------------------
---------------------
-25
-0
-Error: div by 0
---------------------
-25
-1
-25
-0
---------------------
-25
-2
-12
-1
---------------------
-25
-3
-8
-1
---------------------
-25
-4
-6
-1
---------------------
-25
-5
-5
-0
---------------------
-25
-6
-4
-1
---------------------
-25
-7
-3
-4
---------------------
-25
-8
-3
-1
---------------------
-25
-9
-2
-7
---------------------
-25
-10
-2
-5
---------------------
---------------------
-24
-0
-Error: div by 0
---------------------
-24
-1
-24
-0
---------------------
-24
-2
-12
-0
---------------------
-24
-3
-8
-0
---------------------
-24
-4
-6
-0
---------------------
-24
-5
-4
-4
---------------------
-24
-6
-4
-0
---------------------
-24
-7
-3
-3
---------------------
-24
-8
-3
-0
---------------------
-24
-9
-2
-6
---------------------
-24
-10
-2
-4
---------------------
---------------------
-23
-0
-Error: div by 0
---------------------
-23
-1
-23
-0
---------------------
-23
-2
-11
-1
---------------------
-23
-3
-7
-2
---------------------
-23
-4
-5
-3
---------------------
-23
-5
-4
-3
---------------------
-23
-6
-3
-5
---------------------
-23
-7
-3
-2
---------------------
-23
-8
-2
-7
---------------------
-23
-9
-2
-5
---------------------
-23
-10
-2
-3
---------------------
---------------------
-22
-0
-Error: div by 0
---------------------
-22
-1
-22
-0
---------------------
-22
-2
-11
-0
---------------------
-22
-3
-7
-1
---------------------
-22
-4
-5
-2
---------------------
-22
-5
-4
-2
---------------------
-22
-6
-3
-4
---------------------
-22
-7
-3
-1
---------------------
-22
-8
-2
-6
---------------------
-22
-9
-2
-4
---------------------
-22
-10
-2
-2
---------------------
---------------------
-21
-0
-Error: div by 0
---------------------
-21
-1
-21
-0
---------------------
-21
-2
-10
-1
---------------------
-21
-3
-7
-0
---------------------
-21
-4
-5
-1
---------------------
-21
-5
-4
-1
---------------------
-21
-6
-3
-3
---------------------
-21
-7
-3
-0
---------------------
-21
-8
-2
-5
---------------------
-21
-9
-2
-3
---------------------
-21
-10
-2
-1
---------------------
---------------------
-20
-0
-Error: div by 0
---------------------
-20
-1
-20
-0
---------------------
-20
-2
-10
-0
---------------------
-20
-3
-6
-2
---------------------
-20
-4
-5
-0
---------------------
-20
-5
-4
-0
---------------------
-20
-6
-3
-2
---------------------
-20
-7
-2
-6
---------------------
-20
-8
-2
-4
---------------------
-20
-9
-2
-2
---------------------
-20
-10
-2
-0
---------------------
---------------------
-19
-0
-Error: div by 0
---------------------
-19
-1
-19
-0
---------------------
-19
-2
-9
-1
---------------------
-19
-3
-6
-1
---------------------
-19
-4
-4
-3
---------------------
-19
-5
-3
-4
---------------------
-19
-6
-3
-1
---------------------
-19
-7
-2
-5
---------------------
-19
-8
-2
-3
---------------------
-19
-9
-2
-1
---------------------
-19
-10
-1
-9
---------------------
---------------------
-18
-0
-Error: div by 0
---------------------
-18
-1
-18
-0
---------------------
-18
-2
-9
-0
---------------------
-18
-3
-6
-0
---------------------
-18
-4
-4
-2
---------------------
-18
-5
-3
-3
---------------------
-18
-6
-3
-0
---------------------
-18
-7
-2
-4
---------------------
-18
-8
-2
-2
---------------------
-18
-9
-2
-0
---------------------
-18
-10
-1
-8
---------------------
---------------------
-17
-0
-Error: div by 0
---------------------
-17
-1
-17
-0
---------------------
-17
-2
-8
-1
---------------------
-17
-3
-5
-2
---------------------
-17
-4
-4
-1
---------------------
-17
-5
-3
-2
---------------------
-17
-6
-2
-5
---------------------
-17
-7
-2
-3
---------------------
-17
-8
-2
-1
---------------------
-17
-9
-1
-8
---------------------
-17
-10
-1
-7
---------------------
---------------------
-16
-0
-Error: div by 0
---------------------
-16
-1
-16
-0
---------------------
-16
-2
-8
-0
---------------------
-16
-3
-5
-1
---------------------
-16
-4
-4
-0
---------------------
-16
-5
-3
-1
---------------------
-16
-6
-2
-4
---------------------
-16
-7
-2
-2
---------------------
-16
-8
-2
-0
---------------------
-16
-9
-1
-7
---------------------
-16
-10
-1
-6
---------------------
---------------------
-15
-0
-Error: div by 0
---------------------
-15
-1
-15
-0
---------------------
-15
-2
-7
-1
---------------------
-15
-3
-5
-0
---------------------
-15
-4
-3
-3
---------------------
-15
-5
-3
-0
---------------------
-15
-6
-2
-3
---------------------
-15
-7
-2
-1
---------------------
-15
-8
-1
-7
---------------------
-15
-9
-1
-6
---------------------
-15
-10
-1
-5
---------------------
---------------------
-14
-0
-Error: div by 0
---------------------
-14
-1
-14
-0
---------------------
-14
-2
-7
-0
---------------------
-14
-3
-4
-2
---------------------
-14
-4
-3
-2
---------------------
-14
-5
-2
-4
---------------------
-14
-6
-2
-2
---------------------
-14
-7
-2
-0
---------------------
-14
-8
-1
-6
---------------------
-14
-9
-1
-5
---------------------
-14
-10
-1
-4
---------------------
---------------------
-13
-0
-Error: div by 0
---------------------
-13
-1
-13
-0
---------------------
-13
-2
-6
-1
---------------------
-13
-3
-4
-1
---------------------
-13
-4
-3
-1
---------------------
-13
-5
-2
-3
---------------------
-13
-6
-2
-1
---------------------
-13
-7
-1
-6
---------------------
-13
-8
-1
-5
---------------------
-13
-9
-1
-4
---------------------
-13
-10
-1
-3
---------------------
---------------------
-12
-0
-Error: div by 0
---------------------
-12
-1
-12
-0
---------------------
-12
-2
-6
-0
---------------------
-12
-3
-4
-0
---------------------
-12
-4
-3
-0
---------------------
-12
-5
-2
-2
---------------------
-12
-6
-2
-0
---------------------
-12
-7
-1
-5
---------------------
-12
-8
-1
-4
---------------------
-12
-9
-1
-3
---------------------
-12
-10
-1
-2
---------------------
---------------------
-11
-0
-Error: div by 0
---------------------
-11
-1
-11
-0
---------------------
-11
-2
-5
-1
---------------------
-11
-3
-3
-2
---------------------
-11
-4
-2
-3
---------------------
-11
-5
-2
-1
---------------------
-11
-6
-1
-5
---------------------
-11
-7
-1
-4
---------------------
-11
-8
-1
-3
---------------------
-11
-9
-1
-2
---------------------
-11
-10
-1
-1
---------------------
---------------------
-10
-0
-Error: div by 0
---------------------
-10
-1
-10
-0
---------------------
-10
-2
-5
-0
---------------------
-10
-3
-3
-1
---------------------
-10
-4
-2
-2
---------------------
-10
-5
-2
-0
---------------------
-10
-6
-1
-4
---------------------
-10
-7
-1
-3
---------------------
-10
-8
-1
-2
---------------------
-10
-9
-1
-1
---------------------
-10
-10
-1
-0
---------------------
---------------------
-9
-0
-Error: div by 0
---------------------
-9
-1
-9
-0
---------------------
-9
-2
-4
-1
---------------------
-9
-3
-3
-0
---------------------
-9
-4
-2
-1
---------------------
-9
-5
-1
-4
---------------------
-9
-6
-1
-3
---------------------
-9
-7
-1
-2
---------------------
-9
-8
-1
-1
---------------------
-9
-9
-1
-0
---------------------
-9
-10
-0
-9
---------------------
---------------------
-8
-0
-Error: div by 0
---------------------
-8
-1
-8
-0
---------------------
-8
-2
-4
-0
---------------------
-8
-3
-2
-2
---------------------
-8
-4
-2
-0
---------------------
-8
-5
-1
-3
---------------------
-8
-6
-1
-2
---------------------
-8
-7
-1
-1
---------------------
-8
-8
-1
-0
---------------------
-8
-9
-0
-8
---------------------
-8
-10
-0
-8
---------------------
---------------------
-7
-0
-Error: div by 0
---------------------
-7
-1
-7
-0
---------------------
-7
-2
-3
-1
---------------------
-7
-3
-2
-1
---------------------
-7
-4
-1
-3
---------------------
-7
-5
-1
-2
---------------------
-7
-6
-1
-1
---------------------
-7
-7
-1
-0
---------------------
-7
-8
-0
-7
---------------------
-7
-9
-0
-7
---------------------
-7
-10
-0
-7
---------------------
---------------------
-6
-0
-Error: div by 0
---------------------
-6
-1
-6
-0
---------------------
-6
-2
-3
-0
---------------------
-6
-3
-2
-0
---------------------
-6
-4
-1
-2
---------------------
-6
-5
-1
-1
---------------------
-6
-6
-1
-0
---------------------
-6
-7
-0
-6
---------------------
-6
-8
-0
-6
---------------------
-6
-9
-0
-6
---------------------
-6
-10
-0
-6
---------------------
---------------------
-5
-0
-Error: div by 0
---------------------
-5
-1
-5
-0
---------------------
-5
-2
-2
-1
---------------------
-5
-3
-1
-2
---------------------
-5
-4
-1
-1
---------------------
-5
-5
-1
-0
---------------------
-5
-6
-0
-5
---------------------
-5
-7
-0
-5
---------------------
-5
-8
-0
-5
---------------------
-5
-9
-0
-5
---------------------
-5
-10
-0
-5
---------------------
---------------------
-4
-0
-Error: div by 0
---------------------
-4
-1
-4
-0
---------------------
-4
-2
-2
-0
---------------------
-4
-3
-1
-1
---------------------
-4
-4
-1
-0
---------------------
-4
-5
-0
-4
---------------------
-4
-6
-0
-4
---------------------
-4
-7
-0
-4
---------------------
-4
-8
-0
-4
---------------------
-4
-9
-0
-4
---------------------
-4
-10
-0
-4
---------------------
---------------------
-3
-0
-Error: div by 0
---------------------
-3
-1
-3
-0
---------------------
-3
-2
-1
-1
---------------------
-3
-3
-1
-0
---------------------
-3
-4
-0
-3
---------------------
-3
-5
-0
-3
---------------------
-3
-6
-0
-3
---------------------
-3
-7
-0
-3
---------------------
-3
-8
-0
-3
---------------------
-3
-9
-0
-3
---------------------
-3
-10
-0
-3
---------------------
---------------------
-2
-0
-Error: div by 0
---------------------
-2
-1
-2
-0
---------------------
-2
-2
-1
-0
---------------------
-2
-3
-0
-2
---------------------
-2
-4
-0
-2
---------------------
-2
-5
-0
-2
---------------------
-2
-6
-0
-2
---------------------
-2
-7
-0
-2
---------------------
-2
-8
-0
-2
---------------------
-2
-9
-0
-2
---------------------
-2
-10
-0
-2
---------------------
---------------------
-1
-0
-Error: div by 0
---------------------
-1
-1
-1
-0
---------------------
-1
-2
-0
-1
---------------------
-1
-3
-0
-1
---------------------
-1
-4
-0
-1
---------------------
-1
-5
-0
-1
---------------------
-1
-6
-0
-1
---------------------
-1
-7
-0
-1
---------------------
-1
-8
-0
-1
---------------------
-1
-9
-0
-1
---------------------
-1
-10
-0
-1
---------------------
---------------------
-0
-0
-Error: div by 0
---------------------
-0
-1
-0
-0
---------------------
-0
-2
-0
-0
---------------------
-0
-3
-0
-0
---------------------
-0
-4
-0
-0
---------------------
-0
-5
-0
-0
---------------------
-0
-6
-0
-0
---------------------
-0
-7
-0
-0
---------------------
-0
-8
-0
-0
---------------------
-0
-9
-0
-0
---------------------
-0
-10
-0
-0
---------------------
+++ /dev/null
-include ../Define.mk
-include ../Test.mk
+++ /dev/null
-../../../../casl2 -M2048 -O ../../../../as/casl2lib/sample/call_divl.casl ../../../../as/casl2lib/stdlib.casl
-../../../../comet2 -M2048 a.o
-rm -f a.o
+++ /dev/null
-MAIN START
- LD GR1,XMAX
-LOOPX CPA GR1,XMIN
- JMI FIN
- OUT SEP,SLEN
- LD GR2,YMIN
-LOOPY CPL GR2,YMAX
- JPL XNEXT
- CALL OUTL
- PUSH 0,GR1
- LD GR1,GR2
- CALL OUTL
- POP GR1
- CALL DIVL
- JOV WOV
- PUSH 0,GR1
- LD GR1,GR0
- CALL OUTL
- LD GR1,GR3
- CALL OUTL
- POP GR1
-YNEXT OUT SEP,SLEN
- LAD GR2,1,GR2
- JUMP LOOPY
-WOV OUT Y0MSG,YLEN
- JUMP YNEXT
-XNEXT LAD GR1,-1,GR1
- JUMP LOOPX
-FIN RET
-XMAX DC 100
-XMIN DC 0
-YMAX DC 10
-YMIN DC 0
-SEP DC '--------------------'
-SLEN DC 20
-Y0MSG DC 'Error: div by 0'
-YLEN DC 15
- END
+++ /dev/null
-0
-1
-2
-10
-12
-32767
-32768
-65535
-Over 65535
-Over 65535
-Not A Number
-Not A Number
-12345
-Str too long. Stop
+++ /dev/null
-include ../Define.mk
-include ../Test.mk
+++ /dev/null
-../../../../casl2 -M2048 -O ../../../../as/casl2lib/sample/call_inl.casl ../../../../as/casl2lib/stdlib.casl <teststr.txt
-../../../../comet2 -M2048 a.o <teststr.txt
-rm -f a.o
+++ /dev/null
-;;; casl2 inl.casl ../casl2lib/inl.casl ../casl2lib/outl.casl
-MAIN START
-LOOP CALL INL ; GR1に数値、GR0に文字列の長さ
- JOV OV
- AND GR0,GR0
- JZE FIN
- CPL GR0,=#FFFF
- JZE NAN
- CALL OUTL
- JUMP LOOP
-OV CPL GR0,=#FFFF
- JZE LENOV
- OUT OVMSG,MLEN1
- JUMP LOOP
-NAN OUT NANMSG,MLEN2
- JUMP LOOP
-LENOV OUT LENOVMSG,MLEN3
-FIN RET
-OVMSG DC 'Over 65535'
-MLEN1 DC 10
-NANMSG DC 'Not A Number'
-MLEN2 DC 12
-LENOVMSG DC 'Str too long. Stop'
-MLEN3 DC 18
- END
+++ /dev/null
-0
-1
-2
-10
-12
-32767
-32768
-65535
-65536
-90000
--1
-NOTNU
-12345
-100000
-1234
+++ /dev/null
-include ../Define.mk
-include ../Test.mk
+++ /dev/null
-../../../../casl2 -M2048 -O ../../../../as/casl2lib/sample/call_minim.casl ../../../../as/casl2lib/stdlib.casl
-../../../../comet2 -M2048 a.o
-rm -f a.o
+++ /dev/null
-;;; casl2 minim.casl $(LIBDIR)/minim.casl $(LIBDIR)/outa.casl
-MAIN START
- LAD GR1,DATA
- LD GR2,CNT
- CALL MINIM
- LD GR1,GR0
- CALL OUTA
- RET
-DATA DC 23,78,2,45,67,-39,86
-CNT DC 7
- END
+++ /dev/null
-0
-0
-0
---------------------
-0
-1
-0
---------------------
-0
-2
-0
---------------------
-0
-127
-0
---------------------
-0
-128
-0
---------------------
-0
-151
-0
---------------------
-0
-217
-0
---------------------
-0
-255
-0
---------------------
-0
-256
-0
---------------------
-0
-257
-0
---------------------
-0
-32767
-0
---------------------
-0
--32768
-0
---------------------
-0
--32767
-0
---------------------
-0
--257
-0
---------------------
-0
--256
-0
---------------------
-0
--255
-0
---------------------
-0
--217
-0
---------------------
-0
--151
-0
---------------------
-0
--128
-0
---------------------
-0
--127
-0
---------------------
-0
--2
-0
---------------------
-0
--1
-0
---------------------
-1
-0
-0
---------------------
-1
-1
-1
---------------------
-1
-2
-2
---------------------
-1
-127
-127
---------------------
-1
-128
-128
---------------------
-1
-151
-151
---------------------
-1
-217
-217
---------------------
-1
-255
-255
---------------------
-1
-256
-256
---------------------
-1
-257
-257
---------------------
-1
-32767
-32767
---------------------
-1
--32768
-Warning: overflow
---------------------
-1
--32767
--32767
---------------------
-1
--257
--257
---------------------
-1
--256
--256
---------------------
-1
--255
--255
---------------------
-1
--217
--217
---------------------
-1
--151
--151
---------------------
-1
--128
--128
---------------------
-1
--127
--127
---------------------
-1
--2
--2
---------------------
-1
--1
--1
---------------------
-2
-0
-0
---------------------
-2
-1
-2
---------------------
-2
-2
-4
---------------------
-2
-127
-254
---------------------
-2
-128
-256
---------------------
-2
-151
-302
---------------------
-2
-217
-434
---------------------
-2
-255
-510
---------------------
-2
-256
-512
---------------------
-2
-257
-514
---------------------
-2
-32767
-Warning: overflow
---------------------
-2
--32768
-Warning: overflow
---------------------
-2
--32767
-Warning: overflow
---------------------
-2
--257
--514
---------------------
-2
--256
--512
---------------------
-2
--255
--510
---------------------
-2
--217
--434
---------------------
-2
--151
--302
---------------------
-2
--128
--256
---------------------
-2
--127
--254
---------------------
-2
--2
--4
---------------------
-2
--1
--2
---------------------
-127
-0
-0
---------------------
-127
-1
-127
---------------------
-127
-2
-254
---------------------
-127
-127
-16129
---------------------
-127
-128
-16256
---------------------
-127
-151
-19177
---------------------
-127
-217
-27559
---------------------
-127
-255
-32385
---------------------
-127
-256
-32512
---------------------
-127
-257
-32639
---------------------
-127
-32767
-Warning: overflow
---------------------
-127
--32768
-Warning: overflow
---------------------
-127
--32767
-Warning: overflow
---------------------
-127
--257
--32639
---------------------
-127
--256
--32512
---------------------
-127
--255
--32385
---------------------
-127
--217
--27559
---------------------
-127
--151
--19177
---------------------
-127
--128
--16256
---------------------
-127
--127
--16129
---------------------
-127
--2
--254
---------------------
-127
--1
--127
---------------------
-128
-0
-0
---------------------
-128
-1
-128
---------------------
-128
-2
-256
---------------------
-128
-127
-16256
---------------------
-128
-128
-16384
---------------------
-128
-151
-19328
---------------------
-128
-217
-27776
---------------------
-128
-255
-32640
---------------------
-128
-256
-Warning: overflow
---------------------
-128
-257
-Warning: overflow
---------------------
-128
-32767
-Warning: overflow
---------------------
-128
--32768
-Warning: overflow
---------------------
-128
--32767
-Warning: overflow
---------------------
-128
--257
-Warning: overflow
---------------------
-128
--256
-Warning: overflow
---------------------
-128
--255
--32640
---------------------
-128
--217
--27776
---------------------
-128
--151
--19328
---------------------
-128
--128
--16384
---------------------
-128
--127
--16256
---------------------
-128
--2
--256
---------------------
-128
--1
--128
---------------------
-151
-0
-0
---------------------
-151
-1
-151
---------------------
-151
-2
-302
---------------------
-151
-127
-19177
---------------------
-151
-128
-19328
---------------------
-151
-151
-22801
---------------------
-151
-217
-32767
---------------------
-151
-255
-Warning: overflow
---------------------
-151
-256
-Warning: overflow
---------------------
-151
-257
-Warning: overflow
---------------------
-151
-32767
-Warning: overflow
---------------------
-151
--32768
-Warning: overflow
---------------------
-151
--32767
-Warning: overflow
---------------------
-151
--257
-Warning: overflow
---------------------
-151
--256
-Warning: overflow
---------------------
-151
--255
-Warning: overflow
---------------------
-151
--217
--32767
---------------------
-151
--151
--22801
---------------------
-151
--128
--19328
---------------------
-151
--127
--19177
---------------------
-151
--2
--302
---------------------
-151
--1
--151
---------------------
-217
-0
-0
---------------------
-217
-1
-217
---------------------
-217
-2
-434
---------------------
-217
-127
-27559
---------------------
-217
-128
-27776
---------------------
-217
-151
-32767
---------------------
-217
-217
-Warning: overflow
---------------------
-217
-255
-Warning: overflow
---------------------
-217
-256
-Warning: overflow
---------------------
-217
-257
-Warning: overflow
---------------------
-217
-32767
-Warning: overflow
---------------------
-217
--32768
-Warning: overflow
---------------------
-217
--32767
-Warning: overflow
---------------------
-217
--257
-Warning: overflow
---------------------
-217
--256
-Warning: overflow
---------------------
-217
--255
-Warning: overflow
---------------------
-217
--217
-Warning: overflow
---------------------
-217
--151
--32767
---------------------
-217
--128
--27776
---------------------
-217
--127
--27559
---------------------
-217
--2
--434
---------------------
-217
--1
--217
---------------------
-255
-0
-0
---------------------
-255
-1
-255
---------------------
-255
-2
-510
---------------------
-255
-127
-32385
---------------------
-255
-128
-32640
---------------------
-255
-151
-Warning: overflow
---------------------
-255
-217
-Warning: overflow
---------------------
-255
-255
-Warning: overflow
---------------------
-255
-256
-Warning: overflow
---------------------
-255
-257
-Warning: overflow
---------------------
-255
-32767
-Warning: overflow
---------------------
-255
--32768
-Warning: overflow
---------------------
-255
--32767
-Warning: overflow
---------------------
-255
--257
-Warning: overflow
---------------------
-255
--256
-Warning: overflow
---------------------
-255
--255
-Warning: overflow
---------------------
-255
--217
-Warning: overflow
---------------------
-255
--151
-Warning: overflow
---------------------
-255
--128
--32640
---------------------
-255
--127
--32385
---------------------
-255
--2
--510
---------------------
-255
--1
--255
---------------------
-256
-0
-0
---------------------
-256
-1
-256
---------------------
-256
-2
-512
---------------------
-256
-127
-32512
---------------------
-256
-128
-Warning: overflow
---------------------
-256
-151
-Warning: overflow
---------------------
-256
-217
-Warning: overflow
---------------------
-256
-255
-Warning: overflow
---------------------
-256
-256
-Warning: overflow
---------------------
-256
-257
-Warning: overflow
---------------------
-256
-32767
-Warning: overflow
---------------------
-256
--32768
-Warning: overflow
---------------------
-256
--32767
-Warning: overflow
---------------------
-256
--257
-Warning: overflow
---------------------
-256
--256
-Warning: overflow
---------------------
-256
--255
-Warning: overflow
---------------------
-256
--217
-Warning: overflow
---------------------
-256
--151
-Warning: overflow
---------------------
-256
--128
-Warning: overflow
---------------------
-256
--127
--32512
---------------------
-256
--2
--512
---------------------
-256
--1
--256
---------------------
-257
-0
-0
---------------------
-257
-1
-257
---------------------
-257
-2
-514
---------------------
-257
-127
-32639
---------------------
-257
-128
-Warning: overflow
---------------------
-257
-151
-Warning: overflow
---------------------
-257
-217
-Warning: overflow
---------------------
-257
-255
-Warning: overflow
---------------------
-257
-256
-Warning: overflow
---------------------
-257
-257
-Warning: overflow
---------------------
-257
-32767
-Warning: overflow
---------------------
-257
--32768
-Warning: overflow
---------------------
-257
--32767
-Warning: overflow
---------------------
-257
--257
-Warning: overflow
---------------------
-257
--256
-Warning: overflow
---------------------
-257
--255
-Warning: overflow
---------------------
-257
--217
-Warning: overflow
---------------------
-257
--151
-Warning: overflow
---------------------
-257
--128
-Warning: overflow
---------------------
-257
--127
--32639
---------------------
-257
--2
--514
---------------------
-257
--1
--257
---------------------
-32767
-0
-0
---------------------
-32767
-1
-32767
---------------------
-32767
-2
-Warning: overflow
---------------------
-32767
-127
-Warning: overflow
---------------------
-32767
-128
-Warning: overflow
---------------------
-32767
-151
-Warning: overflow
---------------------
-32767
-217
-Warning: overflow
---------------------
-32767
-255
-Warning: overflow
---------------------
-32767
-256
-Warning: overflow
---------------------
-32767
-257
-Warning: overflow
---------------------
-32767
-32767
-Warning: overflow
---------------------
-32767
--32768
-Warning: overflow
---------------------
-32767
--32767
-Warning: overflow
---------------------
-32767
--257
-Warning: overflow
---------------------
-32767
--256
-Warning: overflow
---------------------
-32767
--255
-Warning: overflow
---------------------
-32767
--217
-Warning: overflow
---------------------
-32767
--151
-Warning: overflow
---------------------
-32767
--128
-Warning: overflow
---------------------
-32767
--127
-Warning: overflow
---------------------
-32767
--2
-Warning: overflow
---------------------
-32767
--1
--32767
---------------------
--32768
-0
-0
---------------------
--32768
-1
-Warning: overflow
---------------------
--32768
-2
-Warning: overflow
---------------------
--32768
-127
-Warning: overflow
---------------------
--32768
-128
-Warning: overflow
---------------------
--32768
-151
-Warning: overflow
---------------------
--32768
-217
-Warning: overflow
---------------------
--32768
-255
-Warning: overflow
---------------------
--32768
-256
-Warning: overflow
---------------------
--32768
-257
-Warning: overflow
---------------------
--32768
-32767
-Warning: overflow
---------------------
--32768
--32768
-Warning: overflow
---------------------
--32768
--32767
-Warning: overflow
---------------------
--32768
--257
-Warning: overflow
---------------------
--32768
--256
-Warning: overflow
---------------------
--32768
--255
-Warning: overflow
---------------------
--32768
--217
-Warning: overflow
---------------------
--32768
--151
-Warning: overflow
---------------------
--32768
--128
-Warning: overflow
---------------------
--32768
--127
-Warning: overflow
---------------------
--32768
--2
-Warning: overflow
---------------------
--32768
--1
-Warning: overflow
---------------------
--32767
-0
-0
---------------------
--32767
-1
--32767
---------------------
--32767
-2
-Warning: overflow
---------------------
--32767
-127
-Warning: overflow
---------------------
--32767
-128
-Warning: overflow
---------------------
--32767
-151
-Warning: overflow
---------------------
--32767
-217
-Warning: overflow
---------------------
--32767
-255
-Warning: overflow
---------------------
--32767
-256
-Warning: overflow
---------------------
--32767
-257
-Warning: overflow
---------------------
--32767
-32767
-Warning: overflow
---------------------
--32767
--32768
-Warning: overflow
---------------------
--32767
--32767
-Warning: overflow
---------------------
--32767
--257
-Warning: overflow
---------------------
--32767
--256
-Warning: overflow
---------------------
--32767
--255
-Warning: overflow
---------------------
--32767
--217
-Warning: overflow
---------------------
--32767
--151
-Warning: overflow
---------------------
--32767
--128
-Warning: overflow
---------------------
--32767
--127
-Warning: overflow
---------------------
--32767
--2
-Warning: overflow
---------------------
--32767
--1
-32767
---------------------
--257
-0
-0
---------------------
--257
-1
--257
---------------------
--257
-2
--514
---------------------
--257
-127
--32639
---------------------
--257
-128
-Warning: overflow
---------------------
--257
-151
-Warning: overflow
---------------------
--257
-217
-Warning: overflow
---------------------
--257
-255
-Warning: overflow
---------------------
--257
-256
-Warning: overflow
---------------------
--257
-257
-Warning: overflow
---------------------
--257
-32767
-Warning: overflow
---------------------
--257
--32768
-Warning: overflow
---------------------
--257
--32767
-Warning: overflow
---------------------
--257
--257
-Warning: overflow
---------------------
--257
--256
-Warning: overflow
---------------------
--257
--255
-Warning: overflow
---------------------
--257
--217
-Warning: overflow
---------------------
--257
--151
-Warning: overflow
---------------------
--257
--128
-Warning: overflow
---------------------
--257
--127
-32639
---------------------
--257
--2
-514
---------------------
--257
--1
-257
---------------------
--256
-0
-0
---------------------
--256
-1
--256
---------------------
--256
-2
--512
---------------------
--256
-127
--32512
---------------------
--256
-128
-Warning: overflow
---------------------
--256
-151
-Warning: overflow
---------------------
--256
-217
-Warning: overflow
---------------------
--256
-255
-Warning: overflow
---------------------
--256
-256
-Warning: overflow
---------------------
--256
-257
-Warning: overflow
---------------------
--256
-32767
-Warning: overflow
---------------------
--256
--32768
-Warning: overflow
---------------------
--256
--32767
-Warning: overflow
---------------------
--256
--257
-Warning: overflow
---------------------
--256
--256
-Warning: overflow
---------------------
--256
--255
-Warning: overflow
---------------------
--256
--217
-Warning: overflow
---------------------
--256
--151
-Warning: overflow
---------------------
--256
--128
-Warning: overflow
---------------------
--256
--127
-32512
---------------------
--256
--2
-512
---------------------
--256
--1
-256
---------------------
--255
-0
-0
---------------------
--255
-1
--255
---------------------
--255
-2
--510
---------------------
--255
-127
--32385
---------------------
--255
-128
--32640
---------------------
--255
-151
-Warning: overflow
---------------------
--255
-217
-Warning: overflow
---------------------
--255
-255
-Warning: overflow
---------------------
--255
-256
-Warning: overflow
---------------------
--255
-257
-Warning: overflow
---------------------
--255
-32767
-Warning: overflow
---------------------
--255
--32768
-Warning: overflow
---------------------
--255
--32767
-Warning: overflow
---------------------
--255
--257
-Warning: overflow
---------------------
--255
--256
-Warning: overflow
---------------------
--255
--255
-Warning: overflow
---------------------
--255
--217
-Warning: overflow
---------------------
--255
--151
-Warning: overflow
---------------------
--255
--128
-32640
---------------------
--255
--127
-32385
---------------------
--255
--2
-510
---------------------
--255
--1
-255
---------------------
--217
-0
-0
---------------------
--217
-1
--217
---------------------
--217
-2
--434
---------------------
--217
-127
--27559
---------------------
--217
-128
--27776
---------------------
--217
-151
--32767
---------------------
--217
-217
-Warning: overflow
---------------------
--217
-255
-Warning: overflow
---------------------
--217
-256
-Warning: overflow
---------------------
--217
-257
-Warning: overflow
---------------------
--217
-32767
-Warning: overflow
---------------------
--217
--32768
-Warning: overflow
---------------------
--217
--32767
-Warning: overflow
---------------------
--217
--257
-Warning: overflow
---------------------
--217
--256
-Warning: overflow
---------------------
--217
--255
-Warning: overflow
---------------------
--217
--217
-Warning: overflow
---------------------
--217
--151
-32767
---------------------
--217
--128
-27776
---------------------
--217
--127
-27559
---------------------
--217
--2
-434
---------------------
--217
--1
-217
---------------------
--151
-0
-0
---------------------
--151
-1
--151
---------------------
--151
-2
--302
---------------------
--151
-127
--19177
---------------------
--151
-128
--19328
---------------------
--151
-151
--22801
---------------------
--151
-217
--32767
---------------------
--151
-255
-Warning: overflow
---------------------
--151
-256
-Warning: overflow
---------------------
--151
-257
-Warning: overflow
---------------------
--151
-32767
-Warning: overflow
---------------------
--151
--32768
-Warning: overflow
---------------------
--151
--32767
-Warning: overflow
---------------------
--151
--257
-Warning: overflow
---------------------
--151
--256
-Warning: overflow
---------------------
--151
--255
-Warning: overflow
---------------------
--151
--217
-32767
---------------------
--151
--151
-22801
---------------------
--151
--128
-19328
---------------------
--151
--127
-19177
---------------------
--151
--2
-302
---------------------
--151
--1
-151
---------------------
--128
-0
-0
---------------------
--128
-1
--128
---------------------
--128
-2
--256
---------------------
--128
-127
--16256
---------------------
--128
-128
--16384
---------------------
--128
-151
--19328
---------------------
--128
-217
--27776
---------------------
--128
-255
--32640
---------------------
--128
-256
-Warning: overflow
---------------------
--128
-257
-Warning: overflow
---------------------
--128
-32767
-Warning: overflow
---------------------
--128
--32768
-Warning: overflow
---------------------
--128
--32767
-Warning: overflow
---------------------
--128
--257
-Warning: overflow
---------------------
--128
--256
-Warning: overflow
---------------------
--128
--255
-32640
---------------------
--128
--217
-27776
---------------------
--128
--151
-19328
---------------------
--128
--128
-16384
---------------------
--128
--127
-16256
---------------------
--128
--2
-256
---------------------
--128
--1
-128
---------------------
--127
-0
-0
---------------------
--127
-1
--127
---------------------
--127
-2
--254
---------------------
--127
-127
--16129
---------------------
--127
-128
--16256
---------------------
--127
-151
--19177
---------------------
--127
-217
--27559
---------------------
--127
-255
--32385
---------------------
--127
-256
--32512
---------------------
--127
-257
--32639
---------------------
--127
-32767
-Warning: overflow
---------------------
--127
--32768
-Warning: overflow
---------------------
--127
--32767
-Warning: overflow
---------------------
--127
--257
-32639
---------------------
--127
--256
-32512
---------------------
--127
--255
-32385
---------------------
--127
--217
-27559
---------------------
--127
--151
-19177
---------------------
--127
--128
-16256
---------------------
--127
--127
-16129
---------------------
--127
--2
-254
---------------------
--127
--1
-127
---------------------
--2
-0
-0
---------------------
--2
-1
--2
---------------------
--2
-2
--4
---------------------
--2
-127
--254
---------------------
--2
-128
--256
---------------------
--2
-151
--302
---------------------
--2
-217
--434
---------------------
--2
-255
--510
---------------------
--2
-256
--512
---------------------
--2
-257
--514
---------------------
--2
-32767
-Warning: overflow
---------------------
--2
--32768
-Warning: overflow
---------------------
--2
--32767
-Warning: overflow
---------------------
--2
--257
-514
---------------------
--2
--256
-512
---------------------
--2
--255
-510
---------------------
--2
--217
-434
---------------------
--2
--151
-302
---------------------
--2
--128
-256
---------------------
--2
--127
-254
---------------------
--2
--2
-4
---------------------
--2
--1
-2
---------------------
--1
-0
-0
---------------------
--1
-1
--1
---------------------
--1
-2
--2
---------------------
--1
-127
--127
---------------------
--1
-128
--128
---------------------
--1
-151
--151
---------------------
--1
-217
--217
---------------------
--1
-255
--255
---------------------
--1
-256
--256
---------------------
--1
-257
--257
---------------------
--1
-32767
--32767
---------------------
--1
--32768
-Warning: overflow
---------------------
--1
--32767
-32767
---------------------
--1
--257
-257
---------------------
--1
--256
-256
---------------------
--1
--255
-255
---------------------
--1
--217
-217
---------------------
--1
--151
-151
---------------------
--1
--128
-128
---------------------
--1
--127
-127
---------------------
--1
--2
-2
---------------------
--1
--1
-1
---------------------
+++ /dev/null
-include ../Define.mk
-include ../Test.mk
+++ /dev/null
-../../../../casl2 -M2048 -O ../../../../as/casl2lib/sample/call_mula.casl ../../../../as/casl2lib/stdlib.casl
-../../../../comet2 -M2048 a.o
-rm -f a.o
+++ /dev/null
-MAIN START
- LAD GR3,0 ; Xのインデックス
-LOOPX CPA GR3,XCNT
- JZE FIN
- LD GR1,X,GR3
- LAD GR4,0 ; Yのインデックス
-LOOPY CPA GR4,YCNT
- JZE XNEXT
- LD GR2,Y,GR4
- CALL OUTA
- PUSH 0,GR1
- LD GR1,GR2
- CALL OUTA
- POP GR1
- CALL MULA
- JOV WOV
- PUSH 0,GR1
- LD GR1,GR0
- CALL OUTA
- POP GR1
-YNEXT OUT SEP,SLEN
- LAD GR4,1,GR4
- JUMP LOOPY
-WOV OUT YOMSG,YLEN
- JUMP YNEXT
-XNEXT LAD GR3,1,GR3
- JUMP LOOPX
-FIN RET
-X DC 0,1,2,127,128,151,217,255,256,257,32767,-32768,-32767,-257,-256,-255,-217,-151,-128,-127,-2,-1
-Y DC 0,1,2,127,128,151,217,255,256,257,32767,-32768,-32767,-257,-256,-255,-217,-151,-128,-127,-2,-1
-XCNT DC 22
-YCNT DC 22
-SEP DC '--------------------'
-SLEN DC 20
-YOMSG DC 'Warning: overflow'
-YLEN DC 17
- END
+++ /dev/null
-0
-0
-0
---------------------
-0
-1
-0
---------------------
-0
-2
-0
---------------------
-0
-127
-0
---------------------
-0
-128
-0
---------------------
-0
-255
-0
---------------------
-0
-256
-0
---------------------
-0
-257
-0
---------------------
-0
-32767
-0
---------------------
-0
-32768
-0
---------------------
-0
-65535
-0
---------------------
-1
-0
-0
---------------------
-1
-1
-1
---------------------
-1
-2
-2
---------------------
-2
-127
-254
---------------------
-128
-128
-16384
---------------------
-16384
-255
-overflow
-49152
-63
---------------------
-63
-256
-16128
---------------------
-16128
-257
-overflow
-16128
-63
---------------------
-63
-32767
-overflow
-32705
-31
---------------------
-31
-32768
-overflow
-32768
-15
---------------------
-15
-65535
-overflow
-65521
-14
---------------------
-2
-0
-0
---------------------
-2
-1
-2
---------------------
-2
-2
-4
---------------------
-4
-127
-508
---------------------
-256
-128
-32768
---------------------
-32768
-255
-overflow
-32768
-127
---------------------
-127
-256
-32512
---------------------
-32512
-257
-overflow
-32512
-127
---------------------
-127
-32767
-overflow
-32641
-63
---------------------
-63
-32768
-overflow
-32768
-31
---------------------
-31
-65535
-overflow
-65505
-30
---------------------
-127
-0
-0
---------------------
-127
-1
-127
---------------------
-127
-2
-254
---------------------
-254
-127
-32258
---------------------
-16256
-128
-overflow
-49152
-31
---------------------
-31
-255
-7905
---------------------
-3968
-256
-overflow
-32768
-15
---------------------
-15
-257
-3855
---------------------
-3840
-32767
-overflow
-61696
-1919
---------------------
-1919
-32768
-overflow
-32768
-959
---------------------
-959
-65535
-overflow
-64577
-958
---------------------
-128
-0
-0
---------------------
-128
-1
-128
---------------------
-128
-2
-256
---------------------
-256
-127
-32512
---------------------
-16384
-128
-overflow
-0
-32
---------------------
-32
-255
-8160
---------------------
-4096
-256
-overflow
-0
-16
---------------------
-16
-257
-4112
---------------------
-4096
-32767
-overflow
-61440
-2047
---------------------
-2047
-32768
-overflow
-32768
-1023
---------------------
-1023
-65535
-overflow
-64513
-1022
---------------------
-255
-0
-0
---------------------
-255
-1
-255
---------------------
-255
-2
-510
---------------------
-510
-127
-64770
---------------------
-32640
-128
-overflow
-49152
-63
---------------------
-63
-255
-16065
---------------------
-8064
-256
-overflow
-32768
-31
---------------------
-31
-257
-7967
---------------------
-7936
-32767
-overflow
-57600
-3967
---------------------
-3967
-32768
-overflow
-32768
-1983
---------------------
-1983
-65535
-overflow
-63553
-1982
---------------------
-256
-0
-0
---------------------
-256
-1
-256
---------------------
-256
-2
-512
---------------------
-512
-127
-65024
---------------------
-32768
-128
-overflow
-0
-64
---------------------
-64
-255
-16320
---------------------
-8192
-256
-overflow
-0
-32
---------------------
-32
-257
-8224
---------------------
-8192
-32767
-overflow
-57344
-4095
---------------------
-4095
-32768
-overflow
-32768
-2047
---------------------
-2047
-65535
-overflow
-63489
-2046
---------------------
-257
-0
-0
---------------------
-257
-1
-257
---------------------
-257
-2
-514
---------------------
-514
-127
-65278
---------------------
-32896
-128
-overflow
-16384
-64
---------------------
-64
-255
-16320
---------------------
-8192
-256
-overflow
-0
-32
---------------------
-32
-257
-8224
---------------------
-8192
-32767
-overflow
-57344
-4095
---------------------
-4095
-32768
-overflow
-32768
-2047
---------------------
-2047
-65535
-overflow
-63489
-2046
---------------------
-32767
-0
-0
---------------------
-32767
-1
-32767
---------------------
-32767
-2
-65534
---------------------
-65534
-127
-overflow
-65282
-126
---------------------
-126
-128
-16128
---------------------
-16128
-255
-overflow
-49408
-62
---------------------
-62
-256
-15872
---------------------
-15872
-257
-overflow
-15872
-62
---------------------
-62
-32767
-overflow
-65474
-30
---------------------
-30
-32768
-overflow
-0
-15
---------------------
-15
-65535
-overflow
-65521
-14
---------------------
-32768
-0
-0
---------------------
-32768
-1
-32768
---------------------
-32768
-2
-overflow
-0
-1
---------------------
-1
-127
-127
---------------------
-64
-128
-8192
---------------------
-8192
-255
-overflow
-57344
-31
---------------------
-31
-256
-7936
---------------------
-7936
-257
-overflow
-7936
-31
---------------------
-31
-32767
-overflow
-32737
-15
---------------------
-15
-32768
-overflow
-32768
-7
---------------------
-7
-65535
-overflow
-65529
-6
---------------------
-65535
-0
-0
---------------------
-65535
-1
-65535
---------------------
-65535
-2
-overflow
-65534
-1
---------------------
-1
-127
-127
---------------------
-64
-128
-8192
---------------------
-8192
-255
-overflow
-57344
-31
---------------------
-31
-256
-7936
---------------------
-7936
-257
-overflow
-7936
-31
---------------------
-31
-32767
-overflow
-32737
-15
---------------------
-15
-32768
-overflow
-32768
-7
---------------------
-7
-65535
-overflow
-65529
-6
---------------------
+++ /dev/null
-include ../Define.mk
-include ../Test.mk
+++ /dev/null
-../../../../casl2 -M4096 -O ../../../../as/casl2lib/sample/call_mull.casl ../../../../as/casl2lib/stdlib.casl
-../../../../comet2 -M4096 a.o
-rm -f a.o
+++ /dev/null
-MAIN START
- LAD GR4,0 ; Xのインデックス
-LOOPX CPA GR4,XCNT ; (GR4 = XCNT)の場合、ループ脱出
- JZE FIN ; ↓
- LD GR1,X,GR4 ; GR1に、(X+GR4)番地の値を転送
- LAD GR5,0 ; Yのインデックス
-LOOPY CPA GR5,YCNT ; (GR5 = YCNT)の場合、ループ脱出
- JZE XNEXT ; ↓
- LD GR2,Y,GR5 ; GR2に、(X+GR5)番地の値を転送
- CALL OUTL ; GR1の数値を出力
- PUSH 0,GR1 ; GR2の数値を出力
- LD GR1,GR2 ; ↓
- CALL OUTL ; ↓
- POP GR1 ; ↓
- CALL MULL ; GR0 <- GR1 * GR2
- JOV WOV ; オーバーフローの場合は、WOVへジャンプ
- PUSH 0,GR1 ; GR0の数値を出力
- LD GR1,GR0 ; ↓
- CALL OUTL ; ↓
- POP GR1 ; ↓
-YNEXT OUT SEP,SLEN ; 区切り線を出力
- LAD GR5,1,GR5 ; GR5 <- GR5 + 1
- JUMP LOOPY ; LOOPYへジャンプ
-WOV OUT YOMSG,YLEN ; オーバーフローした場合のメッセージを表示
- PUSH 0,GR1 ; GR0の数値を出力
- LD GR1,GR0 ; ↓
- CALL OUTL ; ↓
- POP GR1 ; ↓
- PUSH 0,GR1 ; GR3の数値を出力
- LD GR1,GR3 ; ↓
- CALL OUTL ; ↓
- POP GR3 ; ↓
- JUMP YNEXT ; YNEXTへジャンプ
-XNEXT LAD GR4,1,GR4 ; GR4 <- GR4 + 1
- JUMP LOOPX ; LOOPXへジャンプ
-FIN RET
-X DC 0,1,2,127,128,255,256,257,32767,#8000,#FFFF
-Y DC 0,1,2,127,128,255,256,257,32767,#8000,#FFFF
-XCNT DC 11
-YCNT DC 11
-SEP DC '--------------------'
-SLEN DC 20
-YOMSG DC 'overflow'
-YLEN DC 8
- END
+++ /dev/null
-0
-1
-2
-4
-8
-16
-32
-64
-128
-256
-512
-1024
-2048
-4096
-8192
-16384
-32767
--32768
--32767
--16384
--8192
--4096
--2048
--1024
--512
--256
--128
--64
--32
--16
--8
--4
--2
--1
+++ /dev/null
-include ../Define.mk
-include ../Test.mk
+++ /dev/null
-../../../../casl2 -O ../../../../as/casl2lib/sample/call_outa.casl ../../../../as/casl2lib/outa.casl
-../../../../comet2 a.o
-rm -f a.o
+++ /dev/null
-0.999969482421875
-0.5
-0.25
-0.125
-0.0625
-0.03125
-0.015625
-0.0078125
-0.00390625
-0.001953125
-0.0009765625
-0.00048828125
-0.000244140625
-0.0001220703125
-0.00006103515625
-0.000030517578125
--1
--0.999969482421875
--0.5
--0.25
--0.125
--0.0625
--0.03125
--0.015625
--0.0078125
--0.00390625
--0.001953125
--0.0009765625
--0.00048828125
--0.000244140625
--0.0001220703125
--0.00006103515625
--0.000030517578125
+++ /dev/null
-include ../Define.mk
-include ../Test.mk
+++ /dev/null
-../../../../casl2 -O -M2048 ../../../../as/casl2lib/sample/call_outaq15.casl ../../../../as/casl2lib/stdlib.casl
-../../../../comet2 -M2048 a.o
-rm -f a.o
+++ /dev/null
-;; outd_q15.caslを呼び出し、33個の数値を表示する
-MAIN START
- LAD GR2,0
-LOOP LD GR1,VAL,GR2
- CALL OUTAQ15
- LAD GR2,1,GR2
- CPA GR2,CNT
- JZE FIN
- JUMP LOOP
-FIN RET
-VAL DC #7FFF,#4000,#2000,#1000
- DC #0800,#0400,#0200,#0100
- DC #0080,#0040,#0020,#0010
- DC #0008,#0004,#0002,#0001
- DC #8000
- DC #8001,#C000,#E000,#F000
- DC #F800,#FC00,#FE00,#FF00
- DC #FF80,#FFC0,#FFE0,#FFF0
- DC #FFF8,#FFFC,#FFFE,#FFFF
-CNT DC 33
- END
+++ /dev/null
-0000000000000000
-0000000000000001
-0000000000000010
-0000000000000100
-0000000000001000
-0000000000010000
-0000000000100000
-0000000001000000
-0000000010000000
-0000000100000000
-0000001000000000
-0000010000000000
-0000100000000000
-0001000000000000
-0010000000000000
-0100000000000000
-0111111111111111
-1000000000000000
-1000000000000001
-1100000000000000
-1110000000000000
-1111000000000000
-1111100000000000
-1111110000000000
-1111111000000000
-1111111100000000
-1111111110000000
-1111111111000000
-1111111111100000
-1111111111110000
-1111111111111000
-1111111111111100
-1111111111111110
-1111111111111111
+++ /dev/null
-include ../Define.mk
-include ../Test.mk
+++ /dev/null
-../../../../casl2 -O ../../../../as/casl2lib/sample/call_outb.casl ../../../../as/casl2lib/outb.casl
-../../../../comet2 a.o
-rm -f a.o
+++ /dev/null
-0
-1
-2
-4
-8
-16
-32
-64
-128
-256
-512
-1024
-2048
-4096
-8192
-16384
-32767
-32768
-32769
-49152
-57344
-61440
-63488
-64512
-65024
-65280
-65408
-65472
-65504
-65520
-65528
-65532
-65534
-65535
+++ /dev/null
-include ../Define.mk
-include ../Test.mk
+++ /dev/null
-../../../../casl2 -O ../../../../as/casl2lib/sample/call_outl.casl ../../../../as/casl2lib/outl.casl
-../../../../comet2 a.o
-rm -f a.o
+++ /dev/null
-0.0000152587890625
-0.000030517578125
-0.00006103515625
-0.0001220703125
-0.000244140625
-0.00048828125
-0.0009765625
-0.001953125
-0.00390625
-0.0078125
-0.015625
-0.03125
-0.0625
-0.125
-0.25
-0.4999847412109375
-0.5
-0.5000152587890625
-0.75
-0.875
-0.9375
-0.96875
-0.984375
-0.9921875
-0.99609375
-0.998046875
-0.9990234375
-0.99951171875
-0.999755859375
-0.9998779296875
-0.99993896484375
-0.999969482421875
-0.9999847412109375
+++ /dev/null
-include ../Define.mk
-include ../Test.mk
+++ /dev/null
-../../../../casl2 -O ../../../../as/casl2lib/sample/call_outlq15.casl ../../../../as/casl2lib/outlq15.casl
-../../../../comet2 a.o
-rm -f a.o
+++ /dev/null
-12345
-54321
+++ /dev/null
-include ../Define.mk
-include ../Test.mk
+++ /dev/null
-../../../../casl2 -O ../../../../as/casl2lib/sample/call_rev.casl ../../../../as/casl2lib/rev.casl
-../../../../comet2 a.o
-rm -f a.o
+++ /dev/null
-../../template/Define.mk
\ No newline at end of file
+++ /dev/null
-../../template/Group.mk
\ No newline at end of file
+++ /dev/null
-../../template/Test.mk
\ No newline at end of file
+++ /dev/null
-MAIN START
- PUSH #0000,GR1 ; #0000: #7001 #0000
- LAD GR0,#0000 ; #0002: #1200 #0000
- LD GR1,#0011 ; #0004: #1010 #0011
- ADDL GR0,GR1 ; #0006: #2601
- ADDL GR1,#0013 ; #0007: #2210 #0013
- CPL GR1,#0012 ; #0009: #4110 #0012
- JPL #000F ; #000B: #6500 #000F
- JUMP #0006 ; #000D: #6400 #0006
- POP GR1 ; #000F: #7110
- RET ; #0010: #8100
- DC 1 ; #0011: #0001 :: 1 = #0001 = 0000000000000001
- DC 10 ; #0012: #000A :: 10 = #000A = 0000000000001010 = '\n'
- DC 1 ; #0013: #0001 :: 1 = #0001 = 0000000000000001
- END
+++ /dev/null
-include ../Define.mk
-include ../Test.mk
+++ /dev/null
-../../../../disassemble ../../../../as/sample/sum_10.o