2020.7.6
前へ
次へ
ホームページトップへ戻る

[新連載]復活!TINY BASIC
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
すべてはここからはじまりました。
中日電工も。
40年前を振り返りつつ新連載です。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜



[第33回]


●中日電工版TINY BASIC

今までオリジナルのTINY BASICプログラムについて説明をしてきました。
なんとかユーザプログラムをメモリに格納するところまでは説明できましたが、まだ「入力」「出力」については説明できていません。
そこは「インターフェース」に関係するため、オリジナルプログラムのまま使うことはできないからです。
これからその部分については今までと同じようにオリジナルのプログラムをもとに説明しつつ、それをどのように書き換えていくのかというあたりについても説明をしていくことになると思います。
そのあとはいよいよ計算式やFOR〜NEXT、GOTO、GOSUBなどについての説明に進みます。
もちろんもとになるのはオリジナルプログラムですから、今までと同じようにオリジナルのプログラムリストをもとにして説明をしていけばよいのですけれど、実際に途中でブレークポイントを設定するなどをしながら動作の解析ができるとプログラムの理解が深まると思います。
ただ説明を読んでいるだけではなかなか理解が進まないというところもあるでしょうし、面白くもありませんでしょう。
やっぱり実際に使うことができれば一番です。
ということでこの辺りで、ND80Z3.5上で動作するTINY BASICを皆様に提供して実際に使っていただくことにしました。
名づけて「中日電工版」TINY BASICです。
まだ手を加えたいところがありますが、とりあえずは動作するところまでできていますから、基本的な動作については実際にさわって確かめていただくことができます。
手直しをしたいところについては、これから説明を進めながらプログラムの変更作業についても書いていきたいと思います。

下は「中日電工版」TINY BASICのアセンブルリストです。
ND80Z3.5などに附属の当社オリジナルの8080アセンブラASM80でアセンブルして出力したリストです。
リストの後のところに、ソースプログラムをダウンロードできるようにリンクを貼ってあります。

2020/6/6  9:  tinybst7.txt
END=9FDE
              ;;;TINY BASIC from PALO ALTO
              ;20/3/3 5/8 5/9 5/10 5/11 5/12 5/13 5/28
              ;6/6
              ;
                ;SOUT=$067C;5/10
                SOUT=$10AB
                ;SIN=$06A3
                SIN=$10AE
                REENT=$1033
              ;
                ORG $8000
8000 C35D80     JMP START
8003 C3D681     JMP LIST
8006 C3A681     JMP RUN
8009 C39781     JMP NEW
800C C3D682     JMP NEXT
800F C3B683     JMP LET
8012 C33B83     JMP IFF;"IF"
8015 C3C581     JMP GOTO
8018 C33482     JMP GOSUB
801B C35682     JMP RETURN
801E C33783     JMP REM
8021 C37182     JMP FOR
8024 C35683     JMP INPUT
8027 C3EE81     JMP PRINT
802A C3A081     JMP STOP
802D C3B083     JMP DEFLT
8030 C3E884     JMP RND
8033 C31585     JMP ABS
8036 C31E85     JMP SIZE
8039 C3C684     JMP XP40
803C C38182     JMP FR1;"TO"
803F C39985     JMP QWHAT;"WHAT"
8042 C38D82     JMP FR2;"STEP"
8045 C39382     JMP FR3
8048 C3CA83     JMP XP11;">="
804B C3D083     JMP XP12;"#"
804E C3D683     JMP XP13;">"
8051 C3E583     JMP XP15;"="
8054 C3DD83     JMP XP14;"<="
8057 C3EB83     JMP XP16;"<"
805A C3F183     JMP XP17
              ;
              START:;LXI SP,STACK
805D 00         NOP
805E 00         NOP
805F 00         NOP
8060 3EFF       MVI A,FF
8062 C33387     JMP INIT
              ;RST 1(test character)
8065 E3       TSTC:XTHL
8066 CD8480     CALL SPJP
8069 BE         CMP M
806A C3C780     JMP TC1
              ;
806D 3E0D     CRLF:MVI A,0D
              ;RST 2(out character)
806F F5       OUTC:PUSH PSW
8070 3A0090     LDA OCSW
8073 B7         ORA A
8074 C34F87     JMP OC2
              ;RST 3(expression)
8077 CD0884   EXPR:CALL EXPR2
807A E5         PUSH H
807B C3C483     JMP EXPR1
              ;RST 4(compare HL with DE)
807E 7C       HDCP:MOV A,H
807F BA         CMP D
8080 C0         RNZ
8081 7D         MOV A,L
8082 BB         CMP E
8083 C9         RET
              ;RST 5(jump space code)
8084 1A       SPJP:LDAX D
8085 FE20       CPI 20
8087 C0         RNZ
8088 13         INX D
8089 C38480     JMP SPJP
              ;RST 6(check end)
808C F1       ENDCK:POP PSW
808D CD8085     CALL FIN
8090 C39985     JMP QWHAT
              ;RST 7(test variables)
8093 CD8480   TSTV:CALL SPJP
8096 D640       SUI 40
8098 D8         RC
8099 C2B780     JNZ TV1
809C 13         INX D
809D CDD784     CALL PARN
80A0 29         DAD H
80A1 DA0081     JC QHOW
80A4 D5         PUSH D
80A5 EB         XCHG
80A6 CD1E85     CALL SIZE
80A9 CD7E80     CALL HDCP
80AC DAC985     JC ASORRY
80AF 21669F     LXI H,VARBGN
80B2 CD4185     CALL SUBDE
80B5 D1         POP D
80B6 C9         RET
80B7 FE1B     TV1:CPI 1B
80B9 3F         CMC
80BA D8         RC
80BB 13         INX D
80BC 21669F     LXI H,VARBGN
80BF 07         RLC
80C0 85         ADD L
80C1 6F         MOV L,A
80C2 3E00       MVI A,00
80C4 8C         ADC H
80C5 67         MOV H,A
80C6 C9         RET
              ;
80C7 23       TC1:INX H
80C8 CAD280     JZ TC2
80CB C5         PUSH B
80CC 4E         MOV C,M
80CD 0600       MVI B,00
80CF 09         DAD B
80D0 C1         POP B
80D1 1B         DCX D
80D2 13       TC2:INX D
80D3 23         INX H
80D4 E3         XTHL
80D5 C9         RET
              ;
80D6 210000   TSTNUM:LXI H,$0000
80D9 44         MOV B,H
80DA CD8480     CALL SPJP
80DD FE30     TN1:CPI 30
80DF D8         RC
80E0 FE3A       CPI 3A
80E2 D0         RNC
80E3 3EF0       MVI A,F0
80E5 A4         ANA H
80E6 C20081     JNZ QHOW
80E9 04         INR B
80EA C5         PUSH B
80EB 44         MOV B,H
80EC 4D         MOV C,L
80ED 29         DAD H
80EE 29         DAD H
80EF 09         DAD B
80F0 29         DAD H
80F1 1A         LDAX D
80F2 13         INX D
80F3 E60F       ANI 0F
80F5 85         ADD L
80F6 6F         MOV L,A
80F7 3E00       MVI A,00
80F9 8C         ADC H
80FA 67         MOV H,A
80FB C1         POP B
80FC 1A         LDAX D
80FD F2DD80     JP TN1
8100 D5       QHOW:PUSH D
8101 110781   AHOW:LXI D,HOW
8104 C39D85     JMP ERROR
              ;
8107 484F573F HOW:"HOW?"
810B 0D         DB 0D
810C 4F4B     OK:"OK"
810E 0D         DB 0D
810F 57484154 WHAT: "WHAT"
8113 3F         "?"
8114 0D         DB 0D
8115 534F5252 SORRY:"SORR"
8119 59         "Y"
811A 0D         DB 0D
811B 00       RSTART:NOP
811C 00         NOP
811D 00         NOP
811E CD6D80   ST1:CALL CRLF
8121 110C81     LXI D,OK
8124 97         SUB A
8125 CD3D86     CALL PRTSTG
8128 212F81     LXI H,ST22
812B 220190     SHLD CURRNT
812E 21       ST2:DB 21;LXI H
812F 0000     ST22:DW $0000
8131 220990     SHLD LOPVAR
8134 220390     SHLD STKGOS
8137 3E29     ST3:MVI A,29;3E
8139 CDCF85     CALL GETLN
813C D5         PUSH D
813D 119D9F     LXI D,BUFFER
8140 CDD680     CALL TSTNUM
8143 CD8480     CALL SPJP
8146 7C         MOV A,H
8147 B5         ORA L
8148 C1         POP B
8149 CA2788     JZ DIRECT
814C 1B         DCX D
814D 7C         MOV A,H
814E 12         STAX D
814F 1B         DCX D
8150 7D         MOV A,L
8151 12         STAX D
8152 C5         PUSH B
8153 D5         PUSH D
8154 79         MOV A,C
8155 93         SUB E
8156 F5         PUSH PSW
8157 CD1386     CALL FNDLN
815A D5         PUSH D
815B C26E81     JNZ ST4
815E D5         PUSH D
815F CD3186     CALL FNDNXT
8162 C1         POP B
8163 2A1590     LHLD TXTUNF
8166 CDD486     CALL MVUP
8169 60         MOV H,B
816A 69         MOV L,C
816B 221590     SHLD TXTUNF
816E C1       ST4:POP B
816F 2A1590     LHLD TXTUNF
8172 F1         POP PSW
8173 E5         PUSH H
8174 FE03       CPI 03
8176 CA1B81     JZ RSTART
8179 85         ADD L
817A 6F         MOV L,A
817B 3E00       MVI A,00
817D 8C         ADC H
817E 67         MOV H,A
817F 11669F     LXI D,TXTEND
8182 CD7E80     CALL HDCP
8185 D2C885     JNC QSORRY
8188 221590     SHLD TXTUNF
818B D1         POP D
818C CDDF86     CALL MVDOWN
818F D1         POP D
8190 E1         POP H
8191 CDD486     CALL MVUP
8194 C33781     JMP ST3
8197 CD9385   NEW:CALL ENDCHK
819A 211790     LXI H,TXTBGN
819D 221590     SHLD TXTUNF
81A0 CD9385   STOP:CALL ENDCHK
81A3 C31B81     JMP RSTART
              ;
81A6 CD9385   RUN:CALL ENDCHK
81A9 111790     LXI D,TXTBGN
              ;
81AC 210000   RUNNXL:LXI H,$0000
81AF CD1B86     CALL FNDLP
81B2 DA1B81     JC RSTART
              ;
81B5 EB       RUNTSL:XCHG
81B6 220190     SHLD CURRNT
81B9 EB         XCHG
81BA 13         INX D
81BB 13         INX D
              ;
              RUNSML:;CALL CHKIO
81BC 00         NOP
81BD 00         NOP
81BE 00         NOP
81BF 21AC87     LXI H,TAB2-1
81C2 C32A88     JMP EXEC
              ;
81C5 CD7780   GOTO:CALL EXPR
81C8 D5         PUSH D
81C9 CD9385     CALL ENDCHK
81CC CD1386     CALL FNDLN
81CF C20181     JNZ AHOW
81D2 F1         POP PSW
81D3 C3B581     JMP RUNTSL
              ;
81D6 CDD680   LIST:CALL TSTNUM
81D9 CD9385     CALL ENDCHK
81DC CD1386     CALL FNDLN
81DF DA1B81   LS1:JC RSTART
81E2 CDBF86     CALL PRTLN
                ;CALL CHKIO
81E5 00         NOP
81E6 00         NOP
81E7 00         NOP
81E8 CD1B86     CALL FNDLP
81EB C3DF81     JMP LS1
              ;
81EE 0E06     PRINT:MVI C,06
81F0 CD6580     CALL TSTC
81F3 3B         DB 3B
81F4 06         DB 06
81F5 CD6D80     CALL CRLF
81F8 C3BC81     JMP RUNSML
81FB CD6580   PR2:CALL TSTC
81FE 0D         DB 0D
81FF 06         DB 06
8200 CD6D80     CALL CRLF
8203 C3AC81     JMP RUNNXL
8206 CD6580   PR0:CALL TSTC
8209 23         "#"
820A 07         DB 07
820B CD7780     CALL EXPR
820E 4D         MOV C,L
820F C31882     JMP PR3
8212 CD4B86   PR1:CALL QTSTG
8215 C32982     JMP PR8
8218 CD6580   PR3:CALL TSTC
821B 2C         ","
821C 06         DB 06
821D CD8085     CALL FIN
8220 C30682     JMP PR0
8223 CD6D80   PR6:CALL CRLF
8226 CD8C80     CALL ENDCK
8229 CD7780   PR8:CALL EXPR
822C C5         PUSH B
822D CD7B86     CALL PRTNUM
8230 C1         POP B
8231 C31882     JMP PR3
8234 CD0A87   GOSUB:CALL PUSHA
8237 CD7780     CALL EXPR
823A D5         PUSH D
823B CD1386     CALL FNDLN
823E C20181     JNZ AHOW
8241 2A0190     LHLD CURRNT
8244 E5         PUSH H
8245 2A0390     LHLD STKGOS
8248 E5         PUSH H
8249 210000     LXI H,$0000
824C 220990     SHLD LOPVAR
824F 39         DAD SP
8250 220390     SHLD STKGOS
8253 C3B581     JMP RUNTSL
8256 CD9385   RETURN:CALL ENDCHK
8259 2A0390     LHLD STKGOS
825C 7C         MOV A,H
825D B5         ORA L
825E CA9985     JZ QWHAT
8261 F9         SPHL
8262 E1         POP H
8263 220390     SHLD STKGOS
8266 E1         POP H
8267 220190     SHLD CURRNT
826A D1         POP D
826B CDEE86     CALL POPA
826E CD8C80     CALL ENDCK
              ;
8271 CD0A87   FOR:CALL PUSHA
8274 CD6785     CALL SETVAL
8277 2B         DCX H
8278 220990     SHLD LOPVAR
827B 210288     LXI H,TAB5-1
827E C32A88     JMP EXEC
8281 CD7780   FR1:CALL EXPR
8284 220D90     SHLD LOPLMT
8287 210888     LXI H,TAB6-1
828A C32A88     JMP EXEC
828D CD7780   FR2:CALL EXPR
8290 C39682     JMP FR4
8293 210100   FR3:LXI H,$0001
8296 220B90   FR4:SHLD LOPINC
8299 2A0190   FR5:LHLD CURRNT
829C 220F90     SHLD LOPLN
829F EB         XCHG
82A0 221190     SHLD LOPPT
82A3 010A00     LXI B,$000A
82A6 2A0990     LHLD LOPVAR
82A9 EB         XCHG
82AA 60         MOV H,B
82AB 68         MOV L,B
82AC 39         DAD SP
82AD 3E         DB 3E;dummy (mov a,n) ,,,skip "DAD B"
82AE 09       FR7:DAD B
82AF 7E         MOV A,M
82B0 23         INX H
82B1 B6         ORA M
82B2 CACF82     JZ FR8
82B5 7E         MOV A,M
82B6 2B         DCX H
82B7 BA         CMP D
82B8 C2AE82     JNZ FR7
82BB 7E         MOV A,M
82BC BB         CMP E
82BD C2AE82     JNZ FR7
82C0 EB         XCHG
82C1 210000     LXI H,$0000
82C4 39         DAD SP
82C5 44         MOV B,H
82C6 4D         MOV C,L
82C7 210A00     LXI H,$000A
82CA 19         DAD D
82CB CDDF86     CALL MVDOWN
82CE F9         SPHL
82CF 2A1190   FR8:LHLD LOPPT
82D2 EB         XCHG
82D3 CD8C80     CALL ENDCK
              ;
82D6 CD9380   NEXT:CALL TSTV
82D9 DA9985     JC QWHAT
82DC 220590     SHLD VARNXT
82DF D5       NX0:PUSH D
82E0 EB         XCHG
82E1 2A0990     LHLD LOPVAR
82E4 7C         MOV A,H
82E5 B5         ORA L
82E6 CA9A85     JZ AWHAT
82E9 CD7E80     CALL HDCP
82EC CAF982     JZ NX3
82EF D1         POP D
82F0 CDEE86     CALL POPA
82F3 2A0590     LHLD VARNXT
82F6 C3DF82     JMP NX0
82F9 5E       NX3:MOV E,M
82FA 23         INX H
82FB 56         MOV D,M
82FC 2A0B90     LHLD LOPINC
82FF E5         PUSH H
8300 7C         MOV A,H
8301 AA         XRA D
8302 7A         MOV A,D
8303 19         DAD D
8304 FA0B83     JM NX4
8307 AC         XRA H
8308 FA2F83     JM NX5
830B EB       NX4:XCHG
830C 2A0990     LHLD LOPVAR
830F 73         MOV M,E
8310 23         INX H
8311 72         MOV M,D
8312 2A0D90     LHLD LOPLMT
8315 F1         POP PSW
8316 B7         ORA A
8317 F21B83     JP NX1
831A EB         XCHG
831B CD5D85   NX1:CALL CKHLDE
831E D1         POP D
831F DA3183     JC NX2
8322 2A0F90     LHLD LOPLN
8325 220190     SHLD CURRNT
8328 2A1190     LHLD LOPPT
832B EB         XCHG
832C CD8C80     CALL ENDCK
832F E1       NX5:POP H
8330 D1         POP D
8331 CDEE86   NX2:CALL POPA
8334 CD8C80     CALL ENDCK
8337 210000   REM:LXI H,$0000
833A 3E         DB 3E
              ;
833B CD7780   IFF:CALL EXPR
833E 7C         MOV A,H
833F B5         ORA L
8340 C2BC81     JNZ RUNSML
8343 CD3386     CALL FNDSKP
8346 D2B581     JNC RUNTSL
8349 C31B81     JMP RSTART
              ;
834C 2A0790   INPERR:LHLD STKINP
834F F9         SPHL
8350 E1         POP H
8351 220190     SHLD CURRNT
8354 D1         POP D
8355 D1         POP D
              ;
              INPUT:;
8356 D5       IP1:PUSH D
8357 CD4B86     CALL QTSTG
835A C36683     JMP IP2
835D CD9380     CALL TSTV
8360 DAA483     JC IP4
8363 C37883     JMP IP3
8366 D5       IP2:PUSH D
8367 CD9380     CALL TSTV
836A DA9985     JC QWHAT
836D 1A         LDAX D
836E 4F         MOV C,A
836F 97         SUB A
8370 12         STAX D
8371 D1         POP D
8372 CD3D86     CALL PRTSTG
8375 79         MOV A,C
8376 1B         DCX D
8377 12         STAX D
8378 D5       IP3:PUSH D
8379 EB         XCHG
837A 2A0190     LHLD CURRNT
837D E5         PUSH H
837E 215683     LXI H,IP1
8381 220190     SHLD CURRNT
8384 210000     LXI H,$0000
8387 39         DAD SP
8388 220790     SHLD STKINP
838B D5         PUSH D
838C 3E3A       MVI A,3A
838E CDCF85     CALL GETLN
8391 119D9F     LXI D,BUFFER
8394 CD7780     CALL EXPR
8397 00         NOP
8398 00         NOP
8399 00         NOP
839A D1         POP D
839B EB         XCHG
839C 73         MOV M,E
839D 23         INX H
839E 72         MOV M,D
839F E1         POP H
83A0 220190     SHLD CURRNT
83A3 D1         POP D
83A4 F1       IP4:POP PSW
83A5 CD6580     CALL TSTC
83A8 2C         DB 2C
83A9 03         DB 03
83AA C35683     JMP IP1
83AD CD8C80   IP5:CALL ENDCK
              ;
83B0 1A       DEFLT:LDAX D
83B1 FE0D       CPI 0D;CR
83B3 CAC183     JZ LT1
              ;
83B6 CD6785   LET:CALL SETVAL
83B9 CD6580     CALL TSTC
83BC 2C         DB 2C
83BD 03         DB 03
83BE C3B683     JMP LET
83C1 CD8C80   LT1:CALL ENDCK
83C4 211088   EXPR1:LXI H,TAB8-1
83C7 C32A88     JMP EXEC
83CA CDF383   XP11:CALL XP18
83CD D8         RC
83CE 6F         MOV L,A
83CF C9         RET
83D0 CDF383   XP12:CALL XP18
83D3 C8         RZ
83D4 6F         MOV L,A
83D5 C9         RET
83D6 CDF383   XP13:CALL XP18
83D9 C8         RZ
83DA D8         RC
83DB 6F         MOV L,A
83DC C9         RET
83DD CDF383   XP14:CALL XP18
83E0 6F         MOV L,A
83E1 C8         RZ
83E2 D8         RC
83E3 6C         MOV L,H
83E4 C9         RET
83E5 CDF383   XP15:CALL XP18
83E8 C0         RNZ
83E9 6F         MOV L,A
83EA C9         RET
83EB CDF383   XP16:CALL XP18
83EE D0         RNC
83EF 6F         MOV L,A
83F0 C9         RET
83F1 E1       XP17:POP H
83F2 C9         RET
83F3 79       XP18:MOV A,C
83F4 E1         POP H
83F5 C1         POP B
83F6 E5         PUSH H
83F7 C5         PUSH B
83F8 4F         MOV C,A
83F9 CD0884     CALL EXPR2
83FC EB         XCHG
83FD E3         XTHL
83FE CD5D85     CALL CKHLDE
8401 D1         POP D
8402 210000     LXI H,$0000
8405 3E01       MVI A,01
8407 C9         RET
8408 CD6580   EXPR2:CALL TSTC
840B 2D         DB 2D;-
840C 06         DB 06
840D 210000     LXI H,$0000
8410 C34684     JMP XP26
8413 CD6580   XP21:CALL TSTC
8416 2B         DB 2B;+
8417 00         DB 00
8418 CD5084   XP22:CALL EXPR3
841B CD6580   XP23:CALL TSTC
841E 2B         DB 2B;+
841F 03         DB 03;jmp to XP25
8420 C32684     JMP XP232
8423 C33B84     JMP XP25
8426 E5       XP232:PUSH H
8427 CD5084     CALL EXPR3
842A EB       XP24:XCHG
842B E3         XTHL
842C 7C         MOV A,H
842D AA         XRA D
842E 7A         MOV A,D
842F 19         DAD D
8430 D1         POP D
8431 FA1B84     JM XP23
8434 AC         XRA H
8435 F21B84     JP XP23
8438 C30081     JMP QHOW
843B CD6580   XP25:CALL TSTC
843E 2D         DB 2D;-
843F 03         DB 03;jmp to XP42
8440 C34684     JMP XP26
8443 C3E484     JMP XP42
8446 E5       XP26:PUSH H
8447 CD5084     CALL EXPR3
844A CD4B85     CALL CHGSGN
844D C32A84     JMP XP24
8450 CDC084   EXPR3:CALL EXPR4
8453 CD6580   XP31:CALL TSTC
8456 2A         DB 2A;*
8457 03         DB 03;jmp to XP34
8458 C35E84     JMP XP312
845B C38B84     JMP XP34
845E E5       XP312:PUSH H
845F CDC084     CALL EXPR4
8462 0600       MVI B,00
8464 CD4885     CALL CHKSGN
8467 E3         XTHL
8468 CD4885     CALL CHKSGN
846B EB         XCHG
846C E3         XTHL
846D 7C         MOV A,H
846E B7         ORA A
846F CA7884     JZ XP32
8472 7A         MOV A,D
8473 B2         ORA D
8474 EB         XCHG
8475 C20181     JNZ AHOW
8478 7D       XP32:MOV A,L
8479 210000     LXI H,$0000
847C B7         ORA A
847D CAB284     JZ XP35
8480 19       XP33:DAD D
8481 DA0181     JC AHOW
8484 3D         DCR A
8485 C28084     JNZ XP33
8488 C3B284     JMP XP35
848B CD6580   XP34:CALL TSTC
848E 2F         DB 2F;/
848F 03         DB 03;jmp to XP42
8490 C39684     JMP XP342
8493 C3E484     JMP XP42
8496 E5       XP342:PUSH H
8497 CDC084     CALL EXPR4
849A 0600       MVI B,00
849C CD4885     CALL CHKSGN
849F E3         XTHL
84A0 CD4885     CALL CHKSGN
84A3 EB         XCHG
84A4 E3         XTHL
84A5 EB         XCHG
84A6 7A         MOV A,D
84A7 B3         ORA E
84A8 CA0181     JZ AHOW
84AB C5         PUSH B
84AC CD2B85     CALL DIVIDE
84AF 60         MOV H,B
84B0 69         MOV L,C
84B1 C1         POP B
84B2 D1       XP35:POP D
84B3 7C         MOV A,H
84B4 B7         ORA A
84B5 FA0081     JM QHOW
84B8 78         MOV A,B
84B9 B7         ORA A
84BA FC4B85     CM CHGSGN
84BD C35384     JMP XP31
84C0 21F087   EXPR4:LXI H,TAB4-1
84C3 C32A88     JMP EXEC
84C6 CD9380   XP40:CALL TSTV
84C9 DAD184     JC XP41
84CC 7E         MOV A,M
84CD 23         INX H
84CE 66         MOV H,M
84CF 6F         MOV L,A
84D0 C9         RET
84D1 CDD680   XP41:CALL TSTNUM
84D4 78         MOV A,B
84D5 B7         ORA A
84D6 C0         RNZ
84D7 CD6580   PARN:CALL TSTC
84DA 28         DB 28;(
84DB 09         DB 09;jmp to XP43
84DC CD7780     CALL EXPR
84DF CD6580     CALL TSTC
84E2 29         DB 29;)
84E3 01         DB 01
84E4 C9       XP42:RET
84E5 C39985   XP43:JMP QWHAT
              ;
84E8 CDD784   RND:CALL PARN
84EB 7C         MOV A,H
84EC B7         ORA A
84ED F20081     JP QHOW
84F0 B5         ORA L
84F1 CA0081     JZ QHOW
84F4 D5         PUSH D
84F5 E5         PUSH H
84F6 2A1390     LHLD RANPNT
84F9 110090     LXI D,LSTROM
84FC CD7E80     CALL HDCP
84FF DA0585     JC RA1
8502 215D80     LXI H,START
8505 5E       RA1:MOV E,M
8506 23         INX H
8507 56         MOV D,M
8508 221390     SHLD RANPNT
850B E1         POP H
850C EB         XCHG
850D C5         PUSH B
850E CD2B85     CALL DIVIDE
8511 C1         POP B
8512 D1         POP D
8513 23         INX H
8514 C9         RET
8515 CDD784   ABS:CALL PARN
8518 1B         DCX D
8519 CD4885     CALL CHKSGN
851C 13         INX D
851D C9         RET
851E 2A1590   SIZE:LHLD TXTUNF
8521 D5         PUSH D
8522 EB         XCHG
8523 21669F     LXI H,VARBGN
8526 CD4185     CALL SUBDE
8529 D1         POP D
852A C9         RET
852B E5       DIVIDE:PUSH H
852C 6C         MOV L,H
852D 2600       MVI H,00
852F CD3685     CALL DV1
8532 41         MOV B,C
8533 7D         MOV A,L
8534 E1         POP H
8535 67         MOV H,A
8536 0EFF     DV1:MVI C,FF
8538 0C       DV2:INR C
8539 CD4185     CALL SUBDE
853C D23885     JNC DV2
853F 19         DAD D
8540 C9         RET
8541 7D       SUBDE:MOV A,L
8542 93         SUB E
8543 6F         MOV L,A
8544 7C         MOV A,H
8545 9A         SBB D
8546 67         MOV H,A
8547 C9         RET
8548 7C       CHKSGN:MOV A,H
8549 B7         ORA A
854A F0         RP
854B 7C       CHGSGN:MOV A,H
854C F5         PUSH PSW
854D 2F         CMA
854E 67         MOV H,A
854F 7D         MOV A,L
8550 2F         CMA
8551 6F         MOV L,A
8552 23         INX H
8553 F1         POP PSW
8554 AC         XRA H
8555 F20081     JP QHOW
8558 78         MOV A,B
8559 EE80       XRI 80
855B 47         MOV B,A
855C C9         RET
              ;
855D 7C       CKHLDE:MOV A,H
855E AA         XRA D
855F F26385     JP CK1
8562 EB         XCHG
8563 CD7E80   CK1:CALL HDCP
8566 C9         RET
8567 CD9380   SETVAL:CALL TSTV
856A DA9985     JC QWHAT
856D E5         PUSH H
856E CD6580     CALL TSTC
8571 3D         DB 3D;=
8572 0A         DB 0A
8573 CD7780     CALL EXPR
8576 44         MOV B,H
8577 4D         MOV C,L
8578 E1         POP H
8579 71         MOV M,C
857A 23         INX H
857B 70         MOV M,B
857C C9         RET
857D C39985   SV1:JMP QWHAT
              ;
8580 CD6580   FIN:CALL TSTC
8583 3B         DB 3B;';'
8584 04         DB 04
8585 F1         POP PSW
8586 C3BC81     JMP RUNSML
8589 CD6580   FI1:CALL TSTC
858C 0D         DB 0D
858D 04         DB 04
858E F1         POP PSW
858F C3AC81     JMP RUNNXL
8592 C9       FI2:RET
8593 CD8480   ENDCHK:CALL SPJP
8596 FE0D       CPI 0D
8598 C8         RZ
              ;
8599 D5       QWHAT:PUSH D
859A 110F81   AWHAT:LXI D,WHAT
859D 97       ERROR:SUB A
859E CD3D86     CALL PRTSTG
85A1 D1         POP D
85A2 1A         LDAX D
85A3 F5         PUSH PSW
85A4 97         SUB A
85A5 12         STAX D
85A6 2A0190     LHLD CURRNT
85A9 E5         PUSH H
85AA 7E         MOV A,M
85AB 23         INX H
85AC B6         ORA M
85AD D1         POP D
85AE CA1B81     JZ RSTART
85B1 7E         MOV A,M
85B2 B7         ORA A
85B3 FA4C83     JM INPERR
85B6 CDBF86     CALL PRTLN
85B9 1B         DCX D
85BA F1         POP PSW
85BB 12         STAX D
85BC 3E3F       MVI A,3F
85BE CD6F80     CALL OUTC
85C1 97         SUB A
85C2 CD3D86     CALL PRTSTG
85C5 C31B81     JMP RSTART
85C8 D5       QSORRY:PUSH D
85C9 111581   ASORRY:LXI D,SORRY
85CC C39D85     JMP ERROR
85CF CD6F80   GETLN:CALL OUTC
85D2 119D9F     LXI D,BUFFER
85D5 CD6F87   GL1:CALL CHKIO
                ;JZ GL1
85D8 00         NOP
85D9 00         NOP
85DA 00         NOP
85DB FE7F       CPI 7F
85DD CAFC85     JZ GL3
85E0 CD6F80     CALL OUTC
85E3 FE0A       CPI 0A
85E5 CAD585     JZ GL1
85E8 B7         ORA A
85E9 CAD585     JZ GL1
85EC FE7D       CPI 7D
85EE CA0B86     JZ GL4
85F1 12         STAX D
85F2 13         INX D
85F3 FE0D       CPI 0D
85F5 C8         RZ
85F6 7B         MOV A,E
85F7 FEDD       CPI DD;BUFEND *********************
85F9 C2D585     JNZ GL1
85FC 7B       GL3:MOV A,E
85FD FE9D       CPI 9D;BUFFER *********************
85FF CA0B86     JZ GL4
8602 1B         DCX D
8603 3E5C       MVI A,5C;\(back slash)************
8605 CD6F80     CALL OUTC
8608 C3D585     JMP GL1
860B CD6D80   GL4:CALL CRLF
860E 3E5E       MVI A,5E;^ *******?
8610 C3CF85     JMP GETLN
              ;
8613 7C       FNDLN:MOV A,H
8614 B7         ORA A
8615 FA0081     JM QHOW
8618 111790     LXI D,TXTBGN
              ;
              FNDLP:;
861B E5       FL1:PUSH H
861C 2A1590     LHLD TXTUNF
861F 2B         DCX H
8620 CD7E80     CALL HDCP
8623 E1         POP H
8624 D8         RC
8625 1A         LDAX D
8626 95         SUB L
8627 47         MOV B,A
8628 13         INX D
8629 1A         LDAX D
862A 9C         SBB H
862B DA3286     JC FL2
862E 1B         DCX D
862F B0         ORA B
8630 C9         RET
              ;
8631 13       FNDNXT:INX D
8632 13       FL2:INX D
              ;
8633 1A       FNDSKP:LDAX D
8634 FE0D       CPI 0D 
8636 C23286     JNZ FL2
8639 13         INX D
863A C31B86     JMP FL1
863D 47       PRTSTG:MOV B,A
863E 1A       PS1:LDAX D
863F 13         INX D
8640 B8         CMP B
8641 C8         RZ
8642 CD6F80     CALL OUTC
8645 FE0D       CPI 0D
8647 C23E86     JNZ PS1
864A C9         RET
              ;
864B CD6580   QTSTG:CALL TSTC
864E 22         DB 22;"
864F 0F         DB 0F
8650 3E22       MVI A,22
8652 CD3D86   QT1:CALL PRTSTG
8655 FE0D       CPI 0D
8657 E1         POP H
8658 CAAC81     JZ RUNNXL
865B 23       QT2:INX H
865C 23         INX H
865D 23         INX H
865E E9         PCHL
865F CD6580   QT3: CALL TSTC
8662 27         DB 27;'
8663 05         DB 05
8664 3E27       MVI A,27;'
8666 C35286     JMP QT1
8669 CD6580   QT4:CALL TSTC
866C 5F         DB 5F;_;*******
866D 0C         DB 0C
866E 3E8D       MVI A,8D;*******
8670 CD6F80     CALL OUTC;*****
8673 CD6F80     CALL OUTC;******
8676 E1         POP H
8677 C35B86     JMP QT2
867A C9       QT5:RET
              ;
867B 0600     PRTNUM:MVI B,00
867D CD4885     CALL CHKSGN
8680 F28686     JP PN1
8683 062D       MVI B,2D;-
8685 0D         DCR C
8686 D5       PN1:PUSH D
8687 110A00     LXI D,$000A;DECIMAL
868A D5         PUSH D
868B 0D         DCR C
868C C5         PUSH B
868D CD2B85   PN2:CALL DIVIDE
8690 78         MOV A,B
8691 B1         ORA C
8692 CA9D86     JZ PN3
8695 E3         XTHL
8696 2D         DCR L
8697 E5         PUSH H
8698 60         MOV H,B
8699 69         MOV L,C
869A C38D86     JMP PN2
869D C1       PN3:POP B
869E 0D       PN4:DCR C
869F 79         MOV A,C
86A0 B7         ORA A
86A1 FAAC86     JM PN5
86A4 3E20       MVI A,20
86A6 CD6F80     CALL OUTC
86A9 C39E86     JMP PN4
86AC 78       PN5:MOV A,B
86AD B7         ORA A
86AE C46F80     CNZ OUTC
86B1 5D         MOV E,L
86B2 7B       PN6:MOV A,E
86B3 FE0A       CPI 0A
86B5 D1         POP D
86B6 C8         RZ
86B7 C630       ADI 30
86B9 CD6F80     CALL OUTC
86BC C3B286     JMP PN6
              ;
86BF 1A       PRTLN:LDAX D
86C0 6F         MOV L,A
86C1 13         INX D
86C2 1A         LDAX D
86C3 67         MOV H,A
86C4 13         INX D
86C5 0E04       MVI C,04
86C7 CD7B86     CALL PRTNUM
86CA 3E20       MVI A,20
86CC CD6F80     CALL OUTC
86CF 97         SUB A
86D0 CD3D86     CALL PRTSTG
86D3 C9         RET
86D4 CD7E80   MVUP:CALL HDCP
86D7 C8         RZ
86D8 1A         LDAX D
86D9 02         STAX B
86DA 13         INX D
86DB 03         INX B
86DC C3D486     JMP MVUP
86DF 78       MVDOWN:MOV A,B
86E0 92         SUB D
86E1 C2E786     JNZ MD1
86E4 79         MOV A,C
86E5 93         SUB E
86E6 C8         RZ
86E7 1B       MD1:DCX D
86E8 2B         DCX H
86E9 1A         LDAX D
86EA 77         MOV M,A
86EB C3DF86     JMP MVDOWN
              ;
86EE C1       POPA:POP B
86EF E1         POP H
86F0 220990     SHLD LOPVAR
86F3 7C         MOV A,H
86F4 B5         ORA L
86F5 CA0887     JZ PP1
86F8 E1         POP H
86F9 220B90     SHLD LOPINC
86FC E1         POP H
86FD 220D90     SHLD LOPLMT
8700 E1         POP H
8701 220F90     SHLD LOPLN
8704 E1         POP H
8705 221190     SHLD LOPPT
8708 C5       PP1:PUSH B
8709 C9         RET
              ;
870A 21DE9F   PUSHA:LXI H,STKLMT
870D CD4B85     CALL CHGSGN
8710 C1         POP B
8711 39         DAD SP
8712 D2C885     JNC QSORRY
8715 2A0990     LHLD LOPVAR
8718 7C         MOV A,H
8719 B5         ORA L
871A CA3087     JZ PU1
871D 2A1190     LHLD LOPPT
8720 E5         PUSH H
8721 2A0F90     LHLD LOPLN
8724 E5         PUSH H
8725 2A0D90     LHLD LOPLMT
8728 E5         PUSH H
8729 2A0B90     LHLD LOPINC
872C E5         PUSH H
872D 2A0990     LHLD LOPVAR
8730 E5       PU1:PUSH H
8731 C5         PUSH B
8732 C9         RET
8733 320090   INIT:STA OCSW
8736 CD6D80     CALL CRLF
8739 97         SUB A
873A 119387     LXI D,MSG1
873D CD3D86     CALL PRTSTG
8740 215D80     LXI H,START
8743 221390     SHLD RANPNT
8746 211790     LXI H,TXTBGN
8749 221590     SHLD TXTUNF
874C C31B81     JMP RSTART
874F C25487   OC2:JNZ OC3
8752 F1         POP PSW
8753 C9         RET
8754 F1       OC3:POP PSW
8755 C5         PUSH B
8756 06E7       MVI B,E7
8758 CD6987     CALL OCSUB
875B FE0D       CPI 0D;CR
875D C26787     JNZ OC4
8760 3E0A       MVI A,0A;LF
8762 CD6987     CALL OCSUB
8765 3E0D       MVI A,0D;CR
8767 C1       OC4:POP B
8768 C9         RET
              ;
8769 F5       OCSUB:PUSH PSW
876A CDAB10     CALL SOUT
                ;CALL SOUTT
876D F1         POP PSW
876E C9         RET
              ;
876F C5       CHKIO:PUSH B
                ;MVI B,EF
                ;CALL SIN
                ;CALL SINT
8770 CD5888     CALL SINSB
8773 FE1A       CPI 1A
8775 CA8287     JZ BREAK;ctrl+Z
                ;MOV A,C
8778 C1         POP B
8779 FE61       CPI 61;a
877B D8         RC
877C FE7B       CPI 7B;z+01
877E D0         RNC
877F D620       SUI 20
8781 C9         RET
8782 AF       BREAK:XRA A
8783 118C87     LXI D,BREAKT
8786 CD3D86     CALL PRTSTG
8789 C33310     JMP REENT
878C 454E4420 BREAKT:"END "
8790 6F6620     "of "
8793 54494E59 MSG1:"TINY"
8797 42415349   "BASI"
879B 43         "C"
879C 0D       TAB1-1:DB 0D
879D 4C495354   "LIST";TAB1
87A1 80         DB 80
87A2 03         DB 03
87A3 52554E     "RUN"
87A6 80         DB 80
87A7 06         DB 06
87A8 4E4557     "NEW"
87AB 80         DB 80
87AC 09       TAB2-1:DB 09
87AD 4E455854   "NEXT";TAB2
87B1 80         DB 80
87B2 0C         DB 0C 
87B3 4C4554     "LET"
87B6 80         DB 80
87B7 0F         DB 0F
87B8 4946       "IF"
87BA 80         DB 80
87BB 12         DB 12
87BC 474F544F   "GOTO"
87C0 80         DB 80
87C1 15         DB 15
87C2 474F5355   "GOSU"
87C6 42         "B"
87C7 80         DB 80
87C8 18         DB 18
87C9 52455455   "RETU"
87CD 524E       "RN"
87CF 80         DB 80
87D0 1B         DB 1B
87D1 52454D     "REM"
87D4 80         DB 80
87D5 1E         DB 1E
87D6 464F52     "FOR"
87D9 80         DB 80
87DA 21         DB 21
87DB 494E5055   "INPU"
87DF 54         "T"
87E0 80         DB 80
87E1 24         DB 24
87E2 5052494E   "PRIN"
87E6 54         "T"
87E7 80         DB 80
87E8 27         DB 27
87E9 53544F50   "STOP"
87ED 80         DB 80
87EE 2A         DB 2A
87EF 80         DB 80
87F0 2D       TAB4-1:DB 2D
87F1 524E44     "RND";TAB4
87F4 80         DB 80
87F5 30         DB 30
87F6 414253     "ABS"
87F9 80         DB 80
87FA 33         DB 33
87FB 53495A45   "SIZE"
87FF 80         DB 80
8800 36         DB 36
8801 80         DB 80
8802 39       TAB5-1:DB 39
8803 544F       "TO";TAB5
8805 80         DB 80
8806 3C         DB 3C
8807 80         DB 80
8808 3F       TAB6-1:DB 3F
8809 53544550   "STEP";TAB6
880D 80         DB 80
880E 42         DB 42
880F 80         DB 80
8810 45       TAB8-1:DB 45
8811 3E         DB 3E;">=";TAB8
8812 3D         DB 3D
8813 80         DB 80
8814 48         DB 48
8815 23         DB 23;"#"
8816 80         DB 80
8817 4B         DB 4B
8818 3E         DB 3E;">"
8819 80         DB 80
881A 4E         DB 4E
881B 3D         DB 3D;"="
881C 80         DB 80
881D 51         DB 51
881E 3C         DB 3C;"<="
881F 3D         DB 3D
8820 80         DB 80
8821 54         DB 54
8822 3C         DB 3C;"<"
8823 80         DB 80
8824 57         DB 57
8825 80         DB 80
8826 5A         DB 5A
              ;
8827 219C87   DIRECT:LXI H,TAB1-1
              ;
              EXEC:;
882A CD8480   EX0:CALL SPJP
882D D5         PUSH D
882E 1A       EX1:LDAX D
882F 13         INX D
8830 FE2E       CPI 2E
8832 CA4B88     JZ EX3
8835 23         INX H
8836 BE         CMP M
8837 CA2E88     JZ EX1
883A 3E7F       MVI A,7F
883C 1B         DCX D
883D BE         CMP M
883E DA5288     JC EX5
8841 23       EX2:INX H
8842 BE         CMP M
8843 D24188     JNC EX2
8846 23         INX H
8847 D1         POP D
8848 C32A88     JMP EX0
884B 3E7F     EX3:MVI A,7F
884D 23       EX4:INX H
884E BE         CMP M
884F D24D88     JNC EX4
8852 7E       EX5:MOV A,M
8853 23         INX H
8854 6E         MOV L,M
                ;ANI 7F
8855 67         MOV H,A
8856 F1         POP PSW
8857 E9         PCHL
              ;******test
8858 3E05     SINSB:MVI A,05
885A CDAB10     CALL SOUT
885D CDAE10     CALL SIN
8860 C9         RET
              ;
                ORG $9000
              LSTROM:;
9000 00       OCSW:DB 00
9001 00       CURRNT:DB 00
9002 00         DB 00   
9003 00       STKGOS:DB 00
9004 00         DB 00
9005 00       VARNXT:DB 00
9006 00         DB 00
9007 00       STKINP:DB 00
9008 00         DB 00
9009 00       LOPVAR:DB 00
900A 00         DB 00
900B 00       LOPINC:DB 00
900C 00         DB 00
900D 00       LOPLMT:DB 00
900E 00         DB 00
900F 00       LOPLN: DB 00
9010 00         DB 00
9011 00       LOPPT: DB 00
9012 00         DB 00
9013 00       RANPNT:DB 00
9014 00         DB 00
9015 00       TXTUNF:DB 00
9016 00         DB 00
9017 00       TXTBGN:DB 00
9018 00         DB 00
                ORG $9F66
              TXTEND:;
9F66 00       VARBGN:NOP;@(),A to Z 54+1byte
                ORG $9F9D
9F9D 00       BUFFER:NOP;input buffer 80byte
                ORG $9FDD
9FDD 00       BUFEND:NOP
9FDE 00       STKLMT:NOP
                ORG $A000
              STACK:;
              ;
              ;END
              
              
ABS          =8515  AHOW         =8101  ASORRY       =85C9  
AWHAT        =859A  BREAK        =8782  BREAKT       =878C  
BUFEND       =9FDD  BUFFER       =9F9D  CHGSGN       =854B  
CHKIO        =876F  CHKSGN       =8548  CK1          =8563  
CKHLDE       =855D  CRLF         =806D  CURRNT       =9001  
DEFLT        =83B0  DIRECT       =8827  DIVIDE       =852B  
DV1          =8536  DV2          =8538  ENDCHK       =8593  
ENDCK        =808C  ERROR        =859D  EX0          =882A  
EX1          =882E  EX2          =8841  EX3          =884B  
EX4          =884D  EX5          =8852  EXEC         =882A  
EXPR         =8077  EXPR1        =83C4  EXPR2        =8408  
EXPR3        =8450  EXPR4        =84C0  FI1          =8589  
FI2          =8592  FIN          =8580  FL1          =861B  
FL2          =8632  FNDLN        =8613  FNDLP        =861B  
FNDNXT       =8631  FNDSKP       =8633  FOR          =8271  
FR1          =8281  FR2          =828D  FR3          =8293  
FR4          =8296  FR5          =8299  FR7          =82AE  
FR8          =82CF  GETLN        =85CF  GL1          =85D5  
GL3          =85FC  GL4          =860B  GOSUB        =8234  
GOTO         =81C5  HDCP         =807E  HOW          =8107  
IFF          =833B  INIT         =8733  INPERR       =834C  
INPUT        =8356  IP1          =8356  IP2          =8366  
IP3          =8378  IP4          =83A4  IP5          =83AD  
LET          =83B6  LIST         =81D6  LOPINC       =900B  
LOPLMT       =900D  LOPLN        =900F  LOPPT        =9011  
LOPVAR       =9009  LS1          =81DF  LSTROM       =9000  
LT1          =83C1  MD1          =86E7  MSG1         =8793  
MVDOWN       =86DF  MVUP         =86D4  NEW          =8197  
NEXT         =82D6  NX0          =82DF  NX1          =831B  
NX2          =8331  NX3          =82F9  NX4          =830B  
NX5          =832F  OC2          =874F  OC3          =8754  
OC4          =8767  OCSUB        =8769  OCSW         =9000  
OK           =810C  OUTC         =806F  PARN         =84D7  
PN1          =8686  PN2          =868D  PN3          =869D  
PN4          =869E  PN5          =86AC  PN6          =86B2  
POPA         =86EE  PP1          =8708  PR0          =8206  
PR1          =8212  PR2          =81FB  PR3          =8218  
PR6          =8223  PR8          =8229  PRINT        =81EE  
PRTLN        =86BF  PRTNUM       =867B  PRTSTG       =863D  
PS1          =863E  PU1          =8730  PUSHA        =870A  
QHOW         =8100  QSORRY       =85C8  QT1          =8652  
QT2          =865B  QT3          =865F  QT4          =8669  
QT5          =867A  QTSTG        =864B  QWHAT        =8599  
RA1          =8505  RANPNT       =9013  REENT        =1033  
REM          =8337  RETURN       =8256  RND          =84E8  
RSTART       =811B  RUN          =81A6  RUNNXL       =81AC  
RUNSML       =81BC  RUNTSL       =81B5  SETVAL       =8567  
SIN          =10AE  SINSB        =8858  SIZE         =851E  
SORRY        =8115  SOUT         =10AB  SPJP         =8084  
ST1          =811E  ST2          =812E  ST22         =812F  
ST3          =8137  ST4          =816E  STACK        =A000  
START        =805D  STKGOS       =9003  STKINP       =9007  
STKLMT       =9FDE  STOP         =81A0  SUBDE        =8541  
SV1          =857D  TAB1-1       =879C  TAB2-1       =87AC  
TAB4-1       =87F0  TAB5-1       =8802  TAB6-1       =8808  
TAB8-1       =8810  TC1          =80C7  TC2          =80D2  
TN1          =80DD  TSTC         =8065  TSTNUM       =80D6  
TSTV         =8093  TV1          =80B7  TXTBGN       =9017  
TXTEND       =9F66  TXTUNF       =9015  VARBGN       =9F66  
VARNXT       =9005  WHAT         =810F  XP11         =83CA  
XP12         =83D0  XP13         =83D6  XP14         =83DD  
XP15         =83E5  XP16         =83EB  XP17         =83F1  
XP18         =83F3  XP21         =8413  XP22         =8418  
XP23         =841B  XP232        =8426  XP24         =842A  
XP25         =843B  XP26         =8446  XP31         =8453  
XP312        =845E  XP32         =8478  XP33         =8480  
XP34         =848B  XP342        =8496  XP35         =84B2  
XP40         =84C6  XP41         =84D1  XP42         =84E4  
XP43         =84E5  


下のリンクをクリックするとソースプログラムがテキスト表示されます。
表示の適当なところを右クリックして「名前をつけて保存」を選びます。
プラウザやシステムによっては、「名前をつけてリンク先を保存」「名前をつけてページを保存」などの表示になることもあります。
またリンクを開かないで、そこで右クリックして、メニューから「名前をつけて保存」を選ぶという方法もあります。

tinybst7.txt

保存先はどこでもよいのですが、ASM80.COMがあるフォルダに保存するのが一番簡単です。
[注記]テキストファイルのダウンロードについて注意事項が有ります([第40回][第41回]を参照願います)。

ASM80.COMはND80Z3.5附属CDROMから取扱説明書の通りにコピーした場合にはnd80z3フォルダにあります。
ND8080ではnd8080フォルダにあります。
ND80KL86ボード(KL5C80A12版)の場合には附属CDROMのnd80z3.5cdromフォルダの中のnd80z3フォルダにありますからnd80z3フォルダをそのままC:ドライブにコピーするか、もしzb3u6フォルダをコピーしていたらそこにASM80.COMをコピーしてください。

asm80 tinybst7.txt[enter]

と入力するとアセンブルリストファイル(tinybst7.lst)などのファイルとともに実行ファイルtinybst7.binが作成されます。



tinybst7.binはND80Z3.5、ND8080などでZB3BASICを起動したあと、/LDコマンドでアドレス8000にロードします。
そのあとJP 8000[Enter]と入力することでTINY BASICが起動します。



上の画面のようにプログラムを入力して実行することができます。
プログラムの入力やコマンドの入力ではスクリーンエディタは使えません。
まだ[Back Space]などの機能も使えませんから入力間違いをしたときにはそのまま[Enter]を押して一旦入力を完了させたあと、同じ行番号でもう一度入力し直してください。
ZB3BASICの入力機能を利用していますから見かけ上スクリーンエディタが働いているように見えますが実際には入力途中での訂正はできません。
このあたりの機能については少しずつ補強していくつもりです。

復活!TINY BASIC[第33回]
2020.7.6upload

前へ
次へ
ホームページトップへ戻る