1
0
mirror of https://github.com/dschmenk/PLASMA.git synced 2024-08-23 04:29:07 +00:00

Fix keyboard reading for IIe so Virtual ][ works in full-screen

This commit is contained in:
David Schmenk 2015-07-03 19:51:32 -07:00
parent 909aaace77
commit d09299ebd4

View File

@ -415,7 +415,7 @@ asm save_vmstate
LDA $03F3
STA VMRESET+1
LDA $03F4
STA VMRESET+2
STA VMRESET+2
LDA #<RESETENTRY
STA $03F2
LDA #>RESETENTRY
@ -434,7 +434,7 @@ RESETENTRY
STA $03F2
LDA VMRESET+1
STA $03F3
LDA VMRESET+2
LDA VMRESET+2
STA $03F4
LDX #$00
STX IFPL
@ -1437,8 +1437,9 @@ def keyin2e
byte key
repeat
cursflash
until ^keyboard >= 128
key = ^keystrobe
key = ^keyboard
until key >= 128
^keystrobe
if ^$C062 & 128 // Closed Apple pressed
when key
is keyarrowleft
@ -1994,7 +1995,7 @@ def parse_err(err)
end
//
// Code tags. Upper bit is IS_RESOLVED flag, lower 15 is offset into codebuff
// Flags are:
// Flags are:
//
def ctag_new
if codetag >= ctag_max; return parse_err(@ctag_full); fin
@ -2875,10 +2876,10 @@ end
def calc_binaryop(op)
word val1, val2
byte size1, size2, type1, type2
if not pop_val(@val2, @size2, @type2); return 0; fin
pop_val(@val1, @size1, @type1)
if type1 <> CONST_TYPE and type2 <> CONST_TYPE; return parse_err(@bad_cnst); fin
if type1 <> CONST_TYPE and type2 <> CONST_TYPE; return parse_err(@bad_cnst); fin
when op
is MUL_TKN
val1 = val1 * val2
@ -2919,7 +2920,7 @@ def calc_binaryop(op)
end
def parse_constterm(valptr, sizeptr)
word type
when scan
is OPEN_PAREN_TKN
type = parse_constexpr(valptr, sizeptr)
@ -3040,7 +3041,7 @@ def parse_constexpr(valptr, sizeptr)
end
def parse_const(valptr)
word idptr
when scan
is CHR_TKN
is INT_TKN
@ -3541,7 +3542,7 @@ def parse_stmnt
loop
if token <> UNTIL_TKN; return parse_err(@no_until); fin
ctag_resolve(cont_tag)
cont_tag = tag_prevcnt
cont_tag = tag_prevcnt
if !parse_expr; return FALSE; fin
emit_brfls(tag_repeat)
ctag_resolve(break_tag)
@ -3610,7 +3611,7 @@ def parse_stmnt
loop
if token <> NEXT_TKN; return parse_err(@bad_stmnt); fin
emit_branch(tag_for)
cont_tag = tag_prevcnt
cont_tag = tag_prevcnt
ctag_resolve(break_tag)
emit_drop
break_tag = tag_prevbrk
@ -3850,7 +3851,7 @@ def parse_struc
strucid[idlen] = ^(tknptr + idlen)
next
fin
offset = 0
offset = 0
while nextln == BYTE_TKN or token == WORD_TKN
size = 1
if token == BYTE_TKN
@ -3861,7 +3862,7 @@ def parse_struc
if scan == OPEN_BRACKET_TKN
size = 0
parse_constexpr(@size, @constsize)
if token <> CLOSE_BRACKET_TKN; return parse_err(@no_close_bracket); fin
if token <> CLOSE_BRACKET_TKN; return parse_err(@no_close_bracket); fin
scan
fin
repeat
@ -3872,9 +3873,9 @@ def parse_struc
if scan == OPEN_BRACKET_TKN
size = 0
parse_constexpr(@size, @constsize)
if token <> CLOSE_BRACKET_TKN; return parse_err(@no_close_bracket); fin
if token <> CLOSE_BRACKET_TKN; return parse_err(@no_close_bracket); fin
scan
fin
fin
fin
if type & WORD_TYPE
size = size * 2