123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196 |
- solveset_p1:
- add a,4
- add a,a
- cp solveset_LUT_end-solveset_LUT
- jp nc,p1_err_syntax
- ld hl,solveset_LUT
- add a,l
- ld l,a
- jr nc,$+3
- inc h
- ld a,(hl)
- inc hl
- ld h,(hl)
- ld l,a
- jp (hl)
- solveset_LUT:
- .dw CopyVar
- .dw CopyDataUp
- .dw CopyDataDown
- .dw p1_err_fatal
- .dw p1_err_fatal
- .dw PortWrite
- .dw PortRead
- .dw CopyVars
- .dw OverwriteVar
- .dw solve_zlz_comp
- .dw solve_zlz_decomp
- .dw solve_zcomp
- .dw solve_sortVAT
- .dw solve_getname
- solveset_LUT_end:
- CopyVar:
- call p1_GetVarInfo2
- ret c
- push af
- push hl
- push bc
- ld hl,(parsePtr)
- inc hl
- ld (parsePtr),hl
- call p1_GetVarInfo
- jr c,+_
- bcall(_DelVarArc)
- _:
- ld hl,(parsePtr)
- ld a,2Bh
- cp (hl)
- pop bc
- call z,p1_ParseNextFullArg
- push bc
- ld bc,0
- cp 2Bh
- call z,p1_ParseNextFullArg
- pop de
- pop hl
- add hl,bc
- push hl
- push de
- ex de,hl
- ld a,(OP1)
- and $1F
- bcall(_EnoughMem)
- jp c,ErrMEM
- ex de,hl
- bcall(_CreateVar)
- inc de
- inc de
- pop bc
- pop hl
- pop af
- push de
- push bc
- call ReadArc
- pop hl
- ld (ThetaPrimeVar),hl
- pop bc
- ret
- CopyDataUp:
- push bc
- call p1_ParseNextFullArg
- push bc
- call p1_ParseNextFullArg
- push bc
- call p1_ParseNextFullArg
- pop de
- pop hl
- ldir
- pop bc
- ret
- CopyDataDown:
- push bc
- call p1_ParseNextFullArg
- push bc
- call p1_ParseNextFullArg
- push bc
- call p1_ParseNextFullArg
- pop de
- pop hl
- lddr
- pop bc
- ret
- PortWrite:
- call p1_ParseNextFullArg
- push bc
- ld c,0
- cp 2Bh
- call z,p1_ParseNextFullArg
- pop de
- out (c),e
- ret
- PortRead:
- ld hl,(parsePtr)
- ld a,(hl)
- ld c,0
- cp 2Bh
- call z,p1_ParseNextFullArg
- in c,(c)
- ld b,0
- ret
- CopyVars:
- ;Copy variables to a new location
- call p1_ParseNextFullArg
- ld d,b
- ld e,c
- ld hl,smallEditRAM
- jr mov108
- OverwriteVar:
- ;Overwrite all pointer vars
- call p1_ParseNextFullArg
- ld h,b
- ld l,c
- ld de,smallEditRAM
- mov108:
- ld bc,108 ;2*54, 4*(26+1)
- ldir
- ret
- solve_sortVAT = sortVAT
- solve_getname:
- call p1_ParseNextFullArg
- cp $2B
- jr z,solve_getname_any_type
- ld a,c ;type
- push af
- call p1_ParseNextFullArg
- pop af
- ;A is the type, BC is the index
- ret
- solve_getname_any_type:
- ;BC is the index
- ret
- solve_zlz_decomp:
- call p1_ParseNextFullArg
- push bc
- call p1_ParseNextFullArg
- push bc
- call p1_ParseNextFullArg
- pop de
- pop hl
- jp zlz_decomp
- solve_zlz_comp:
- call p1_ParseNextFullArg
- push bc
- call p1_ParseNextFullArg
- push bc
- call p1_ParseNextFullArg
- pop de
- pop hl
- jp zlz_comp
- solve_zcomp:
- call p1_ParseNextFullArg
- push bc
- call p1_ParseNextFullArg
- push bc
- call p1_ParseNextFullArg
- pop de
- pop hl
- jp zcomp
|