12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- dec hl \ dec hl \ dec hl
- ld a,(hl) \ cp 'M' \ jr nz,+_
- dec hl
- ld a,(hl) \ cp 'O' \ jr nz,+_
- call ParseFullArg
- ld a,c \ and 3
- add a,12
- out (16),a
- ret
- _:
- ; Save the location of the names of the variables to save.
- ld hl,(parsePtr)
- dec hl
- push hl
- ld (parsePtr),hl
- ; Save the stack base
- ld hl,(stack_ptr)
- push hl
- call pushvars_00
- ; Now resume parsing
- call ParserNext
- ;Restore vars!
- ; Restore stack pointer to the original state.
- pop hl
- ld (stack_ptr),hl
- ; Get the vars list
- ex (sp),hl
- ; Begin looping. If the stack overflowed, there would have been an error,
- ; so no need to verify
- _:
- inc hl
- ld a,(hl)
- inc hl
- call VarP
- jr nc,+_
- ex de,hl
- ex (sp),hl
- ldi
- ldi
- ex (sp),hl
- ld a,(hl)
- cp 2Bh
- jr z,-_
- _:
- pop hl
- ret
|