Added bios flush and simple hello command
This commit is contained in:
+27
-4
@@ -43,8 +43,8 @@
|
|||||||
MC_BIOS_PUTC .EQU BIOS_PUTC
|
MC_BIOS_PUTC .EQU BIOS_PUTC
|
||||||
MC_BIOS_TRY_GETC .EQU BIOS_TRY_GETC
|
MC_BIOS_TRY_GETC .EQU BIOS_TRY_GETC
|
||||||
MC_BIOS_GETC .EQU BIOS_GETC
|
MC_BIOS_GETC .EQU BIOS_GETC
|
||||||
MC_BIOS_FLUSH .EQU 00000H
|
MC_BIOS_FLUSH .EQU BIOS_FLUSH
|
||||||
MC_BIOS_MONITOR .EQU 00000H
|
MC_BIOS_MONITOR .EQU BIOS_RAM_START
|
||||||
MC_CODE_START .EQU BASIC_RAM_START
|
MC_CODE_START .EQU BASIC_RAM_START
|
||||||
MC_RAM_START .EQU BASIC_RAM_START + BASIC_ROM_SIZE
|
MC_RAM_START .EQU BASIC_RAM_START + BASIC_ROM_SIZE
|
||||||
MC_RAM_END .EQU 0FFFFH
|
MC_RAM_END .EQU 0FFFFH
|
||||||
@@ -377,6 +377,7 @@ WORDS: .BYTE 'E'+80H,"ND"
|
|||||||
.BYTE 'L'+80H,"EFT$"
|
.BYTE 'L'+80H,"EFT$"
|
||||||
.BYTE 'R'+80H,"IGHT$"
|
.BYTE 'R'+80H,"IGHT$"
|
||||||
.BYTE 'M'+80H,"ID$"
|
.BYTE 'M'+80H,"ID$"
|
||||||
|
.BYTE 'H'+80H,"ELLO"
|
||||||
.BYTE 80H ; End of list marker
|
.BYTE 80H ; End of list marker
|
||||||
|
|
||||||
; KEYWORD ADDRESS TABLE
|
; KEYWORD ADDRESS TABLE
|
||||||
@@ -449,6 +450,7 @@ ZLTH .EQU 0B5H ; <
|
|||||||
ZSGN .EQU 0B6H ; SGN
|
ZSGN .EQU 0B6H ; SGN
|
||||||
ZPOINT .EQU 0C7H ; POINT
|
ZPOINT .EQU 0C7H ; POINT
|
||||||
ZLEFT .EQU 0CDH +2 ; LEFT$
|
ZLEFT .EQU 0CDH +2 ; LEFT$
|
||||||
|
ZHELLO .EQU 0D2H
|
||||||
|
|
||||||
; ARITHMETIC PRECEDENCE TABLE
|
; ARITHMETIC PRECEDENCE TABLE
|
||||||
|
|
||||||
@@ -1252,7 +1254,19 @@ EXCUTE: CALL GETCHR ; Get key word
|
|||||||
LD DE,RUNCNT ; Where to RETurn to
|
LD DE,RUNCNT ; Where to RETurn to
|
||||||
PUSH DE ; Save for RETurn
|
PUSH DE ; Save for RETurn
|
||||||
IFJMP: RET Z ; Go to RUNCNT if end of STMT
|
IFJMP: RET Z ; Go to RUNCNT if end of STMT
|
||||||
ONJMP: SUB ZEND ; Is it a token?
|
;ONJMP: SUB ZEND ; Is it a token?
|
||||||
|
ONJMP:
|
||||||
|
; Own commands
|
||||||
|
; ------------
|
||||||
|
CHKHELLO:
|
||||||
|
CP ZHELLO
|
||||||
|
JP NZ,STDONJMP
|
||||||
|
ld BC,HELLO
|
||||||
|
PUSH BC
|
||||||
|
jp GETCHR
|
||||||
|
; ------------
|
||||||
|
STDONJMP:
|
||||||
|
SUB ZEND ; Is it a token?
|
||||||
JP C,LET ; No - try to assign it
|
JP C,LET ; No - try to assign it
|
||||||
CP ZNEW+1-ZEND ; END to NEW ?
|
CP ZNEW+1-ZEND ; END to NEW ?
|
||||||
JP NC,SNERR ; Not a key word - ?SN Error
|
JP NC,SNERR ; Not a key word - ?SN Error
|
||||||
@@ -4364,7 +4378,7 @@ JJUMP1: LD IX,-1 ; Flag cold start
|
|||||||
MONOUT: JP MC_BIOS_PUTC ; output a char
|
MONOUT: JP MC_BIOS_PUTC ; output a char
|
||||||
|
|
||||||
|
|
||||||
MONITR: ;CALL MC_BIOS_FLUSH
|
MONITR: CALL MC_BIOS_FLUSH
|
||||||
JP MC_BIOS_MONITOR ; Restart (Normally Monitor Start)
|
JP MC_BIOS_MONITOR ; Restart (Normally Monitor Start)
|
||||||
|
|
||||||
|
|
||||||
@@ -4385,5 +4399,14 @@ TSTBIT: PUSH AF ; Save bit mask
|
|||||||
OUTNCR: CALL OUTC ; Output character in A
|
OUTNCR: CALL OUTC ; Output character in A
|
||||||
JP PRNTCRLF ; Output CRLF
|
JP PRNTCRLF ; Output CRLF
|
||||||
|
|
||||||
|
HELLO:
|
||||||
|
RET NZ
|
||||||
|
PUSH HL
|
||||||
|
LD HL,HELLOMSG
|
||||||
|
CALL PRS
|
||||||
|
POP HL
|
||||||
|
RET
|
||||||
|
HELLOMSG: .asciz "Hello!"
|
||||||
|
|
||||||
.end
|
.end
|
||||||
|
|
||||||
|
|||||||
@@ -92,6 +92,8 @@ boot_copy:
|
|||||||
jp try_getc
|
jp try_getc
|
||||||
.org BIOS_PUTS
|
.org BIOS_PUTS
|
||||||
jp puts
|
jp puts
|
||||||
|
.org BIOS_FLUSH
|
||||||
|
jp flush
|
||||||
|
|
||||||
; -------------------------------------------------------
|
; -------------------------------------------------------
|
||||||
; BIOS ENTRY
|
; BIOS ENTRY
|
||||||
@@ -435,12 +437,22 @@ puts:
|
|||||||
|
|
||||||
; -------------------------------------------------------
|
; -------------------------------------------------------
|
||||||
; Get a byte, block if unavailable
|
; Get a byte, block if unavailable
|
||||||
|
; returns a (byte)
|
||||||
; -------------------------------------------------------
|
; -------------------------------------------------------
|
||||||
getc:
|
getc:
|
||||||
call try_getc
|
call try_getc
|
||||||
jr c,getc
|
jr c,getc
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
; -------------------------------------------------------
|
||||||
|
; Wait till full tx buffer is empty
|
||||||
|
; uses a
|
||||||
|
; -------------------------------------------------------
|
||||||
|
flush:
|
||||||
|
ld a,(TX_COUNT)
|
||||||
|
cp 0
|
||||||
|
jr nz,flush
|
||||||
|
|
||||||
; -------------------------------------------------------
|
; -------------------------------------------------------
|
||||||
; Strings
|
; Strings
|
||||||
; -------------------------------------------------------
|
; -------------------------------------------------------
|
||||||
|
|||||||
Reference in New Issue
Block a user