Browse Source

Update nascom.asm

Set default build. update initialization
pull/103/head
b1ackmai1er 6 years ago
parent
commit
aeb4bc6245
  1. 44
      Source/HBIOS/nascom.asm

44
Source/HBIOS/nascom.asm

@ -34,20 +34,29 @@
;
ABBRERR .EQU FALSE ; Choose between long error message and abbreviated error messages.
VT100 .EQU TRUE ; Use VT100 escape codes for CLS
VDUGFX .EQU TRUE ; Option to enable ECB-VDU graphics support using SET, RESET and POINT.
VDUGFX .EQU FALSE ; Option to enable ECB-VDU graphics support using SET, RESET and POINT.
;
;==================================================================================
; SBC V2 + ECB-VDU GRAPHICS CUSTOMIZATION
; REQUIRES ECB-VDU WITH 256 CHARACTER MOD AND 12X8GFX1 FONT INSTALLED, VDU MODE SET TO 80X25B.
; SBC V2 + ECB-VDU GRAPHICS CUSTOMIZATION 160X75 BLOCK GRAPHICS ON AND 80X25 DISPLAY
; REQUIRES ECB-VDU WITH 256 CHARACTER MOD AND 12X8GFX1 FONT INSTALLED, VDU MODE SET TO 80X25B/24B.
; SWITCHES LONG ERROR MESSAGES OFF FOR SPACE
;
#IF VDUGFX
#IF (VDUSIZ=V80X25B)
VDUROWS .EQU 25
VDUCOLS .EQU 80
VDUSIZE .EQU (VDUROWS*VDUCOLS)
#ENDIF
#IF (VDUSIZ=V80X24B)
VDUROWS .EQU 24
VDUCOLS .EQU 80
#ENDIF
ABBRERR .SET TRUE
VDUREG .EQU 0F2H ; ECB-VDU
VDUSTS .EQU 0F2H ;
VDUDTA .EQU 0F3H ; PORT
VDURWR .EQU 0F1H ; REGISTER
VDURRD .EQU 0F0H ; ADDRESSES
#ENDIF
;
; GENERAL EQUATES
;
@ -64,7 +73,6 @@ CTRLS .EQU 13H ; Control "S"
CTRLU .EQU 15H ; Control "U"
ESC .EQU 1BH ; Escape
DEL .EQU 7FH ; Delete
;
; BASIC WORK SPACE LOCATIONS
;
@ -259,7 +267,11 @@ BRKRET: CALL CLREG ; Clear registers and stack
;
BFREE: .BYTE " Bytes free",CR,LF,0,0
;
SIGNON: .BYTE "Z80 BASIC Ver 4.7b",CR,LF
SIGNON: .BYTE "Z80 BASIC Ver 4.7b"
#IF VDUGFX
.BYTE "/vdu"
#ENDIF
.BYTE CR,LF
.BYTE "Copyright ",40,"C",41
.BYTE " 1978 by Microsoft",CR,LF,0,0
;
@ -4293,7 +4305,7 @@ ROW0SKP:OR 10000000B ; Convert Byte mask (0-63) to a font character (128-192)
LD B,E ; Rows to B
LD E,L ; Columns to E
LD HL,-(VDUCOLS) ; Base VDU address (0,0)
LD HL,-(VDUCOLS) ; Base VDU address
ADD HL,DE ; Add column to address
LD DE,VDUCOLS ; Line to DE
ADD80X: ADD HL,DE ; Multiply by lines
@ -4365,13 +4377,16 @@ POINT0: LD B,0 ; Set zero
;----------------------------------------------------------------------
;
VDU_INIT:
LD HL,0 ; SET SCREEN START ADDRESS
LD C,12
CALL VDU_WRREGX
LD C,14 ; SET CURSOR START ADDRESS
CALL VDU_WRREGX
LD C,10 ; SET CURSOR OFF
LD A,00100000B
CALL VDU_WRREG
; LD HL,0 ; SET SCREEN START ADDRESS
; LD C,12
; CALL VDU_WRREGX
; LD C,14 ; SET CURSOR START ADDRESS
; CALL VDU_WRREGX
;
LD HL,VDUSIZ ; CLEAR SCREEN
LD HL,(VDUROWS*VDUCOLS) ; CLEAR SCREEN
VDU_FILL:
LD C,18
CALL VDU_WRREGX
@ -4425,7 +4440,7 @@ VDU_RDHL:
CALL VDU_WAITRDY
IN A,(VDURRD)
RET
;
VDU_WRHL:
PUSH AF ; WRITE A BYTE IN A
LD C,18 ; TO VIDEO MEMORY
@ -4436,7 +4451,6 @@ VDU_WRHL:
POP AF
OUT (VDURWR),A
RET
;
#ENDIF
; INPUT CHARACTER FROM CONSOLE VIA HBIOS

Loading…
Cancel
Save