diff --git a/GWBASIC.LNK b/GWBASIC.LNK index b5039d8..40632ee 100644 --- a/GWBASIC.LNK +++ b/GWBASIC.LNK @@ -1,3 +1,4 @@ +GWDATA.OBJ+ ADVGRP.OBJ+ BIBOOT.OBJ+ BIMISC.OBJ+ @@ -17,7 +18,6 @@ GIOKYB.OBJ+ GIOLPT.OBJ+ GIOSCN.OBJ+ GIOTBL.OBJ+ -GWDATA.OBJ+ GWEVAL.OBJ+ GWINIT.OBJ+ GWLIST.OBJ+ @@ -33,4 +33,5 @@ NEXT86.OBJ+ SCNDRV.OBJ+ SCNEDT.OBJ+ OEM.OBJ -gwbasic; +gwbasic /STACK:8192 +gwbasic.map; diff --git a/GWDATA.ASM b/GWDATA.ASM index 0d2b15c..06e4d54 100644 --- a/GWDATA.ASM +++ b/GWDATA.ASM @@ -623,6 +623,9 @@ BEGDSG LABEL WORD PUBLIC CPMMEM CPMMEM LABEL WORD DSEG ENDS +SSEG SEGMENT STACK 'STACKSG' + ASSUME SS:SSEG +SSEG ENDS ; ======== Code Phase ======== RAMLOW=$ ;WHERE CONSTANTS GET DEPOSITED INS86 352 ;INTER-SEGMENT DIRECT JUMP diff --git a/MATH1.ASM b/MATH1.ASM index d0f4df6..b876b50 100644 --- a/MATH1.ASM +++ b/MATH1.ASM @@ -979,7 +979,7 @@ SIN20: ; At this point the FAC has the remainder of the angle / 2*PI ; SIN30: - MOV AL,LOW OFFSET $FAC + MOV AL,BYTE PTR $FAC OR AL,AL JZ SIN31 ADD BYTE PTR $FAC,LOW 2 ; FAC = FAC*4 = Reduce angle / PI/2 diff --git a/OEM.ASM b/OEM.ASM index d08ff87..7cedfcf 100644 --- a/OEM.ASM +++ b/OEM.ASM @@ -65,9 +65,26 @@ SCRINP: ;Dummy function ; PUBLIC SCROUT SCROUT: - POP BX + push ax + push bx + push cx + xor bx,bx + mov ah,2 + push ax + int 20 ; 0x10 + pop ax + mov cx,1 + mov bx,7 + mov ah,12 ; 0xa + int 20 ; 0x10 + pop cx + pop bx + pop ax RET +; MSX: Record current cursor addresses mask pattern +; Input : BX - Cursor address +; AL - Mask pattern PUBLIC STOREC STOREC: ;Dummy function RET @@ -88,6 +105,7 @@ PUBLIC RDTRIG RDTRIG: ;Dummy function RET +; MSX: Set horizontal screen pixels PUBLIC NSETCX NSETCX: ;Dummy function RET @@ -112,6 +130,7 @@ PUBLIC SETCBF SETCBF: ;Dummy function RET +; MSX: Shifts screen pixel to the left PUBLIC LEFTC LEFTC: ;Dummy function RET @@ -132,10 +151,13 @@ PUBLIC SETFBC SETFBC: ;Dummy function RET +; MSX: Tests whether DOWNC is possible, if possible, execute DOWNC +; Set carry flag set if operation would end outside the screen PUBLIC TDOWNC TDOWNC: ;Dummy function RET +; MSX: Scans screen pixels to the right PUBLIC SCANR SCANR: ;Dummy function RET @@ -148,18 +170,24 @@ PUBLIC GETHED GETHED: ;Dummy function RET +; MSX: Shifts screen pixel up PUBLIC UPC UPC: ;Dummy function RET +; MSX: Scans screen pixels to the left PUBLIC SCANL SCANL: ;Dummy function RET +; MSX: Gets current cursor addresses mask pattern +; Output : BX - Cursor address +; AL - Mask pattern PUBLIC FETCHC FETCHC: ;Dummy function RET +; MSX: Scales X and Y coordinates PUBLIC SCALXY SCALXY: ;Dummy function RET @@ -176,6 +204,7 @@ PUBLIC STACOM STACOM: ;Dummy function RET +; MSX: Reads attribute byte of current screen pixel PUBLIC READC READC: ;Dummy function RET @@ -184,10 +213,13 @@ PUBLIC INFMAP INFMAP: ;Dummy function RET +; MSX: Tests whether UPC is possible, if possible, execute UPC +; Set carry flag set if operation would end outside the screen PUBLIC TUPC TUPC: ;Dummy function RET +; MSX: Shifts screen pixel to the right PUBLIC RIGHTC RIGHTC: ;Dummy function RET @@ -196,6 +228,8 @@ PUBLIC SEGINI SEGINI: ;Dummy function RET +; MSX: Gets screen relations +; Output : DX, BX PUBLIC GTASPC GTASPC: ;Dummy function RET @@ -204,6 +238,7 @@ PUBLIC RECCOM RECCOM: ;Dummy function RET +; MSX: Returns current screen pixel of specified attribute byte PUBLIC SETC SETC: ;Dummy function RET @@ -212,6 +247,7 @@ PUBLIC PIXSIZ PIXSIZ: ;Dummy function RET +; MSX: Shifts screen pixel down PUBLIC DOWNC DOWNC: ;Dummy function RET @@ -273,10 +309,12 @@ PUBLIC CSRDSP CSRDSP: RET +; MSX: Set attribute byte PUBLIC SETATR SETATR: ;Dummy function RET +; MSX: Initalises the PAINT instruction PUBLIC PNTINI PNTINI: ;Dummy function RET @@ -312,4 +350,3 @@ MAPSUP: ;Dummy function CSEG ENDS END -