NEW AUTO 3,1 .LIST OFF *-------------------------------------- DLG.Open >STYA ZPPTR2 lda (ZPPTR2) tay lda #0 >SYSCALL getmem bcs .99 >STYA ZPPTR1 txa >STA.G hDLG ldy #0 .1 lda (ZPPTR2),y sta (ZPPTR1),y iny tya cmp (ZPPTR2) bne .1 jsr DLG.SetOrigin sty TmpByte jsr SCRN.GotoXY bcs .9 ldy #S.DLG.Title jsr DLG.DrawInvBar .99 bcs .9 jsr SCRN.LineBufInitNorm jsr DLG.VBarToLineBuf ldy #S.DLG.W lda (ZPPTR1),y dec tax lda #C.SPACE .3 jsr SCRN.ToLineBuf dex bne .3 jsr DLG.VBarToLineBuf ldy #S.DLG.H lda (ZPPTR1),y dec dec tax .4 phx inc TmpByte ldy #S.DLG.X lda (ZPPTR1),y tax ldy TmpByte jsr SCRN.GotoXY bcs .9 jsr SCRN.LineBufOut bcs .9 plx dex bne .4 inc TmpByte ldy #S.DLG.X lda (ZPPTR1),y tax ldy TmpByte jsr SCRN.GotoXY bcs .9 ldy #S.DLG.Status jsr DLG.DrawInvBar bcs .9 ldy #S.DLG.Ctrls sty TmpByte .5 lda (ZPPTR1),y beq .8 tay lda (ZPPTR1),y Ctrl Type tax jsr .6 bcs .9 inc TmpByte ldy TmpByte bra .5 .8 clc .9 rts .6 >LDYA.G LineBufBase >STYA LineBufPtr jmp (J.DLG.DrawCtrls,x) *-------------------------------------- DLG.Run >SYSCALL getchar bcs .9 cmp #3 beq .8 cmp #C.CR beq .8 cmp #C.TAB beq DLG.NextFocus bra DLG.Run .8 clc .9 rts *-------------------------------------- DLG.NextFocus *-------------------------------------- DLG.SetFocus clc rts *-------------------------------------- DLG.Close ldy #S.DLG.H lda (ZPPTR1),y sta TmpCount ldy #S.DLG.Y lda (ZPPTR1),y sta TmpIndex >LDA.G ScreenY clc ldy #S.DLG.Y adc (ZPPTR1),y sta TmpIndex >LDA.G ScreenY+1 adc #0 sta TmpIndex+1 .1 lda TmpIndex ldx TmpIndex+1 jsr BUF.GetLineAX bcs .8 lda TmpIndex jsr SCRN.UpdateLineAtALenY inc TmpIndex dec TmpCount bne .1 .8 clc rts *-------------------------------------- DLG.DrawCtrls.LBL jsr DLG.DrawCtrls.GotoXY bcs .9 ldy TmpByte CtrlID lda (ZPPTR1),y tay iny iny iny .1 lda (ZPPTR1),y beq .8 jsr SCRN.ToLineBuf iny bra .1 .8 jmp SCRN.LineBufOut .9 rts *-------------------------------------- DLG.DrawCtrls.TB jsr DLG.DrawCtrls.GotoXY bcs .9 ldy TmpByte lda (ZPPTR1),y tay iny iny iny iny iny lda (ZPPTR1),y tay lda (pData),y >SYSCALL getmemptr >STYA ZPPTR2 lda #"[" jsr SCRN.ToLineBuf ldy #0 .1 lda (ZPPTR2),y beq .2 jsr SCRN.ToLineBuf iny bra .1 .2 tya tax ldy TmpByte lda (ZPPTR1),y tay iny iny iny iny .3 txa cmp (ZPPTR1),y MAXCHAR beq .8 lda #C.SPACE jsr SCRN.ToLineBuf inx bra .3 .8 lda #"]" jsr SCRN.ToLineBuf jmp SCRN.LineBufOut .9 rts *-------------------------------------- DLG.DrawCtrls.OL jsr DLG.DrawCtrls.GotoXY bcs .9 ldy TmpByte lda (ZPPTR1),y tay iny iny iny iny lda (ZPPTR1),y value sta TmpCount iny ldx #0 .1 lda #"(" jsr SCRN.ToLineBuf lda #"o" cpx TmpCount beq .2 lda #C.SPACE .2 jsr SCRN.ToLineBuf lda #")" jsr SCRN.ToLineBuf lda #C.SPACE jsr SCRN.ToLineBuf .3 lda (ZPPTR1),y beq .4 jsr SCRN.ToLineBuf iny bra .3 .4 lda #C.SPACE jsr SCRN.ToLineBuf inx iny lda (ZPPTR1),y bne .1 .8 jmp SCRN.LineBufOut .9 rts *-------------------------------------- DLG.DrawCtrls.BUT jsr SCRN.LineBufInitInv jsr DLG.DrawCtrls.GotoXY bcs .9 ldy TmpByte CtrlID lda (ZPPTR1),y tay iny iny iny iny .1 lda (ZPPTR1),y beq .8 jsr SCRN.ToLineBuf iny bra .1 .8 jmp SCRN.LineBufOut .9 rts *-------------------------------------- DLG.DrawCtrls.GotoXY ldy TmpByte CtrlID lda (ZPPTR1),y tay iny skip Ctrl Type lda (ZPPTR1),y clc phy ldy #S.DLG.X adc (ZPPTR1),y tax ply iny lda (ZPPTR1),y clc ldy #S.DLG.Y adc (ZPPTR1),y tay jmp SCRN.GotoXY *-------------------------------------- DLG.SetOrigin ldy #S.DLG.X lda (ZPPTR1),y bne .1 >LDA.G ScreenW ldy #S.DLG.W sec sbc (ZPPTR1),y lsr ldy #S.DLG.X sta (ZPPTR1),y .1 tax ldy #S.DLG.Y lda (ZPPTR1),y bne .2 >LDA.G ViewPortHm1 ldy #S.DLG.H sec sbc (ZPPTR1),y lsr ldy #S.DLG.Y sta (ZPPTR1),y .2 tay rts *-------------------------------------- DLG.DrawInvBar phy jsr SCRN.LineBufInitInv ldy #S.DLG.W lda (ZPPTR1),y tax ply lda (ZPPTR1),y tay .1 lda (ZPPTR1),y beq .11 jsr SCRN.ToLineBuf dex iny bra .1 .11 lda #C.SPACE .2 jsr SCRN.ToLineBuf dex bne .2 ldy #0 .3 lda SEQ.NORM,y beq .4 jsr SCRN.ToLineBuf iny bra .3 .4 jsr DLG.VBarToLineBuf jmp SCRN.LineBufOut *-------------------------------------- DLG.VBarToLineBuf lda #C.SO jsr SCRN.ToLineBuf lda #'x' jsr SCRN.ToLineBuf lda #C.SI jmp SCRN.ToLineBuf *-------------------------------------- MAN SAVE USR/SRC/BIN/EDIT.S.DLG LOAD USR/SRC/BIN/EDIT.S ASM