mirror of
https://github.com/antoinevignau/source.git
synced 2024-06-01 00:41:39 +00:00
1 line
13 KiB
ArmAsm
Executable File
1 line
13 KiB
ArmAsm
Executable File
|
|
load 'macros.dump'
|
|
include 'driver.equ'
|
|
include 'pl.equ'
|
|
|
|
;-----------------------------------------------
|
|
;
|
|
; Imported addresses
|
|
;
|
|
;-----------------------------------------------
|
|
|
|
IMPORT D_CheckMenuFID
|
|
IMPORT D_IsLetter
|
|
IMPORT D_ToLowerTable
|
|
IMPORT D_ToUpperTable
|
|
IMPORT P_BuildUndo
|
|
IMPORT P_SetFormat
|
|
IMPORT T_BumpParags
|
|
IMPORT T_CalcFBytes
|
|
IMPORT T_CurColor
|
|
IMPORT T_CurFont
|
|
IMPORT T_CurSize
|
|
IMPORT T_CurStyle
|
|
IMPORT T_DoRoom
|
|
IMPORT T_DotLine
|
|
IMPORT T_DotObj
|
|
IMPORT T_DotOffset
|
|
IMPORT T_DotParag
|
|
IMPORT T_FontFlags
|
|
IMPORT T_GetParPtr
|
|
IMPORT T_GetParSize
|
|
IMPORT T_GetRulBits
|
|
IMPORT T_GetTextPtr
|
|
IMPORT T_JunkLeft
|
|
IMPORT T_JunkRight
|
|
IMPORT T_MarkLine
|
|
IMPORT T_MarkObj
|
|
IMPORT T_MarkOffset
|
|
IMPORT T_MarkParag
|
|
IMPORT T_NewAddStyle
|
|
IMPORT T_NewColor
|
|
IMPORT T_NewFont
|
|
IMPORT T_NewSize
|
|
IMPORT T_NewSubStyle
|
|
IMPORT T_NextChar
|
|
IMPORT T_Offset2Line
|
|
IMPORT T_PrevChar
|
|
IMPORT T_RecutParag
|
|
IMPORT T_Refresh
|
|
IMPORT T_TextSelect
|
|
IMPORT T_TrackFont
|
|
IMPORT T_WriteFBytes
|
|
|
|
;-----------------------------------------------
|
|
;
|
|
; Forward addresses and entries
|
|
;
|
|
;-----------------------------------------------
|
|
|
|
ENTRY T_ChangeCase
|
|
ENTRY T_IsSpace
|
|
|
|
|
|
|
|
|
|
;------------------------------------------------------------------------------
|
|
;
|
|
; T_UpdatePars (SPar:w,EPar:w)
|
|
;
|
|
|
|
T_UpdatePars PROC EXPORT
|
|
;Using T_Data
|
|
;Using T_TextEqu
|
|
|
|
input SPar:w,EPar:w
|
|
local ParagPtr:l,ObjHdl:l,VertPos:w
|
|
|
|
begin
|
|
|
|
rcall T_GetParPtr,in=(SPar:a),out=(ParagPtr:ax)
|
|
movelong [ParagPtr]:#T_ObjHdl,ObjHdl
|
|
moveword [ParagPtr]:#T_ParStart,VertPos
|
|
|
|
|
|
ParLoop
|
|
in ObjHdl:l,SPar:w,VertPos:w
|
|
out ObjHdl:l,VertPos:w
|
|
xcall T_RecutParag
|
|
|
|
rcall T_GetParPtr,in=(SPar:a),out=(ParagPtr:ax)
|
|
tool _DisposeHandle,in=([ParagPtr]:#T_LinesHdl:l)
|
|
movelong #0,[ParagPtr]:#T_LinesHdl
|
|
|
|
inc SPar
|
|
cmpw EPar,SPar
|
|
bge ParLoop
|
|
|
|
Bump
|
|
call T_BumpParags,in=(SPar:w,ObjHdl:l,VertPos:w,#0:w)
|
|
|
|
|
|
lda T_TextSelect
|
|
beq No
|
|
|
|
in T_DotParag:w,T_DotOffset:w
|
|
out T_DotObj:l,T_DotLine:w
|
|
xcall T_Offset2Line
|
|
|
|
in T_MarkParag:w,T_MarkOffset:w
|
|
out T_MarkObj:l,T_MarkLine:w
|
|
xcall T_Offset2Line
|
|
No
|
|
|
|
call T_Refresh
|
|
|
|
return
|
|
ENDP
|
|
|
|
|
|
|
|
|
|
;-------------------------------------------------------------------------------
|
|
;
|
|
; T_DoChange (ChangeByte:w,Data:w,Data2:w)
|
|
;
|
|
|
|
T_DoChange PROC EXPORT
|
|
;Using T_Data
|
|
;Using T_TextEqu
|
|
|
|
|
|
input ChangeByte:w,Data:w,Data2:w
|
|
local CurPar:w,TextPtr:l
|
|
|
|
begin
|
|
|
|
moveword T_DotParag,CurPar
|
|
|
|
ldy T_DotOffset
|
|
cpy #T_ParHeader+1
|
|
blt ParLoop
|
|
|
|
rcall T_GetTextPtr,in=(CurPar:a),out=(TextPtr:ax)
|
|
ldy T_DotOffset
|
|
jsr FlipStuff
|
|
inc CurPar
|
|
|
|
ParLoop
|
|
lda CurPar
|
|
cmp T_MarkParag
|
|
bgt EndLoop
|
|
|
|
rcall T_GetTextPtr,in=(a:a),out=(TextPtr:ax)
|
|
|
|
ldy #T_ParHeader
|
|
jsr FlipStuff
|
|
|
|
lda ChangeByte
|
|
dec a
|
|
asl a
|
|
tax
|
|
lda Table,x
|
|
tay
|
|
jsr (JumpTable,x)
|
|
|
|
|
|
inc CurPar
|
|
bra ParLoop
|
|
EndLoop
|
|
|
|
|
|
return
|
|
|
|
|
|
FlipStuff
|
|
|
|
CharLoop
|
|
cmpw CurPar,T_MarkParag
|
|
blt Skip
|
|
cpy T_MarkOffset
|
|
bge EndLoop2
|
|
|
|
Skip lda [TextPtr],y
|
|
iny
|
|
and #$ff
|
|
cmp #CR
|
|
beq EndLoop2
|
|
cmp ChangeByte
|
|
beq FlipIt
|
|
cmp #T_ColorChange+1
|
|
bge CharLoop
|
|
|
|
iny
|
|
cmp #T_FontChange
|
|
bne CharLoop
|
|
iny
|
|
bra CharLoop
|
|
|
|
EndLoop2
|
|
rts
|
|
|
|
|
|
|
|
|
|
FlipIt
|
|
lda ChangeByte
|
|
dec a
|
|
asl a
|
|
tax
|
|
jsr (JumpTable,x)
|
|
iny
|
|
bra CharLoop
|
|
|
|
|
|
|
|
|
|
|
|
DoFont
|
|
moveword Data,[TextPtr]:y
|
|
iny
|
|
rts
|
|
|
|
DoStyle
|
|
shortm
|
|
lda Data
|
|
ora Data2
|
|
beq SetStyle
|
|
|
|
lda Data2
|
|
eor #$ff
|
|
and [TextPtr],y
|
|
ora Data
|
|
SetStyle sta [TextPtr],y
|
|
longm
|
|
rts
|
|
|
|
DoSize
|
|
DoColor
|
|
shortm
|
|
moveword Data,[TextPtr]:y
|
|
longm
|
|
rts
|
|
|
|
JumpTable
|
|
DC.W DoFont
|
|
DC.W DoStyle
|
|
DC.W DoSize
|
|
DC.W DoColor
|
|
|
|
|
|
Table
|
|
DC.W 0
|
|
DC.W 2
|
|
DC.W 3
|
|
DC.W 4
|
|
|
|
ENDP
|
|
|
|
|
|
|
|
|
|
|
|
;-----------------------------------------------------------------------------
|
|
;
|
|
; T_InsertFont (ParagNo:w,Offset:w,Mode:w) : Room:w
|
|
;
|
|
; If Mode is true, the style is set to T_NewAddStyle. Otherwise T_NewAddStyle
|
|
; is added and T_NewSubStyle is subtracted.
|
|
|
|
T_InsertFont PROC EXPORT
|
|
;Using T_Data
|
|
;Using T_TextEqu
|
|
|
|
input ParagNo:w,Offset:w,Mode:w
|
|
OUTPUT Room:w
|
|
|
|
local LeftOffset:w,RightOffset:w,SFlag:w,EFlag:w
|
|
local LeftFont:l,RightFont:l,LeftColor:w,RightColor:w
|
|
local TextPtr:l
|
|
|
|
begin
|
|
|
|
stz SFlag
|
|
stz EFlag
|
|
stz Room
|
|
|
|
|
|
rcall T_JunkLeft,in=(ParagNo:a,Offset:x),out=(LeftOffset:a)
|
|
cmp #T_ParHeader
|
|
bne DoRight
|
|
inc SFlag
|
|
|
|
DoRight
|
|
rcall T_JunkRight,in=(ParagNo:a,Offset:x),out=(RightOffset:a)
|
|
rcall T_GetParSize,in=(ParagNo:a),out=(a:a)
|
|
dec a
|
|
cmp RightOffset
|
|
bne DoTrack
|
|
inc EFlag
|
|
|
|
DoTrack
|
|
rcall T_GetTextPtr,in=(ParagNo:a),out=(TextPtr:ax)
|
|
|
|
call T_TrackFont,in=(TextPtr:l,LeftOffset:w)
|
|
movelong T_CurFont,LeftFont
|
|
moveword T_CurColor,LeftColor
|
|
|
|
call T_TrackFont,in=(TextPtr:l,RightOffset:w)
|
|
movelong T_CurFont,RightFont
|
|
moveword T_CurColor,RightColor
|
|
|
|
|
|
|
|
; Check Font
|
|
lda T_FontFlags
|
|
and #T_FontFl
|
|
beq DidFont
|
|
moveword T_NewFont,RightFont
|
|
ldy SFlag
|
|
beq DidFont
|
|
moveword a,[TextPtr]:#T_ParFont
|
|
DidFont
|
|
|
|
|
|
; Check Style
|
|
lda T_FontFlags
|
|
and #T_StyleFl
|
|
beq DidStyle
|
|
shortm
|
|
|
|
lda Mode
|
|
beq Normal
|
|
lda T_NewAddStyle
|
|
bra StoreStyle
|
|
|
|
Normal
|
|
lda T_NewAddStyle
|
|
ora T_NewSubStyle
|
|
beq StoreStyle
|
|
|
|
lda RightFont+2
|
|
ora T_NewAddStyle
|
|
sta RightFont+2
|
|
lda T_NewSubStyle
|
|
eor #$ff
|
|
and RightFont+2
|
|
StoreStyle sta RightFont+2
|
|
ldy SFlag
|
|
beq Long1
|
|
moveword a,[TextPtr]:#T_ParStyle
|
|
Long1 longm
|
|
DidStyle
|
|
|
|
|
|
; Check Size
|
|
lda T_FontFlags
|
|
and #T_SizeFl
|
|
beq DidSize
|
|
shortm
|
|
moveword T_NewSize,RightFont+3
|
|
ldy SFlag
|
|
beq Long2
|
|
moveword a,[TextPtr]:#T_ParSize
|
|
Long2 longm
|
|
DidSize
|
|
|
|
|
|
|
|
; Do color
|
|
lda T_FontFlags
|
|
and #T_ColorFl
|
|
beq DidColor
|
|
shortm
|
|
moveword T_NewColor,RightColor
|
|
ldy SFlag
|
|
beq Long3
|
|
moveword a,[TextPtr]:#T_ParColor
|
|
Long3 longm
|
|
DidColor
|
|
|
|
|
|
lda SFlag
|
|
bne Exit
|
|
lda EFlag
|
|
bne Exit
|
|
|
|
|
|
in LeftFont:l,LeftColor:w,RightFont:l,RightColor:w
|
|
out a:w
|
|
xcall T_CalcFBytes
|
|
|
|
addword a,LeftOffset,a
|
|
subword a,RightOffset,Room ;Room = Bytes-(RightOffset-LeftOffset)
|
|
|
|
call T_DoRoom,in=(ParagNo:w,LeftOffset:w,Room:w)
|
|
rcall T_GetTextPtr,in=(ParagNo:a),out=(TextPtr:ax)
|
|
addwl LeftOffset,TextPtr
|
|
|
|
in TextPtr:l,LeftFont:l,LeftColor:w,RightFont:l,RightColor:w
|
|
xcall T_WriteFBytes
|
|
|
|
|
|
Exit return
|
|
ENDP
|
|
|
|
|
|
|
|
|
|
;-------------------------------------------------------------------------------
|
|
;
|
|
; T_ChangeFont ()
|
|
;
|
|
|
|
T_ChangeFont PROC EXPORT
|
|
;Using T_Data
|
|
;Using T_TextEqu
|
|
|
|
local TextPtr:l,Offset:w,Room:w
|
|
local EndFont:l,EndStyle:w,EndSize:w,EndColor:w
|
|
|
|
begin
|
|
|
|
call P_BuildUndo,in=(#0:w)
|
|
|
|
rcall T_GetTextPtr,in=(T_MarkParag:a),out=(TextPtr:ax)
|
|
rcall T_JunkRight,in=(T_MarkParag:a,T_MarkOffset:x),out=(Offset:a)
|
|
call T_TrackFont,in=(TextPtr:l,Offset:w)
|
|
moveword T_CurFont,EndFont
|
|
shortm
|
|
moveword T_CurStyle,EndStyle
|
|
moveword T_CurSize,EndSize
|
|
longm
|
|
moveword T_CurColor,EndColor
|
|
|
|
in T_DotParag:w,T_DotOffset:w,#0:w
|
|
out Room:w
|
|
xcall T_InsertFont
|
|
addword a,T_DotOffset,T_DotOffset
|
|
|
|
cmpw T_DotParag,T_MarkParag
|
|
bne NotSame
|
|
addword Room,T_MarkOffset,T_MarkOffset
|
|
NotSame
|
|
|
|
|
|
lda T_FontFlags
|
|
and #T_FontFl
|
|
beq TryStyle
|
|
|
|
call T_DoChange,in=(#T_FontChange:w,T_NewFont:w,#0:w)
|
|
|
|
TryStyle
|
|
lda T_FontFlags
|
|
and #T_StyleFl
|
|
beq TrySize
|
|
|
|
in #T_StyleChange:w,T_NewAddStyle:w,T_NewSubStyle:w
|
|
xcall T_DoChange
|
|
|
|
TrySize
|
|
lda T_FontFlags
|
|
and #T_SizeFl
|
|
beq TryColor
|
|
|
|
call T_DoChange,in=(#T_SizeChange:w,T_NewSize:w,#0:w)
|
|
|
|
TryColor
|
|
lda T_FontFlags
|
|
and #T_ColorFl
|
|
beq DidChanges
|
|
|
|
call T_DoChange,in=(#T_ColorChange:w,T_NewColor:w,#0:w)
|
|
|
|
|
|
DidChanges
|
|
moveword EndFont,T_NewFont
|
|
shortm
|
|
moveword EndStyle,T_NewAddStyle
|
|
moveword EndSize,T_NewSize
|
|
moveword EndColor,T_NewColor
|
|
longm
|
|
|
|
call T_InsertFont,in=(T_MarkParag:w,T_MarkOffset:w,#1:w),out=(a:w)
|
|
|
|
stz T_FontFlags
|
|
call T_UpdatePars,in=(T_DotParag:w,T_MarkParag:w)
|
|
|
|
return
|
|
ENDP
|
|
|
|
|
|
|
|
|
|
|
|
;-------------------------------------------------------------------------------
|
|
;
|
|
; T_RangeFont ()
|
|
;
|
|
|
|
T_RangeFont PROC EXPORT
|
|
;Using T_Data
|
|
;Using T_TextEqu
|
|
|
|
local TextPtr:l,ParagNo:w,Offset:w,OrStyles:w,AndStyles:w
|
|
local Just:w,Spacing:w,RulBits:w,StyleMask:w
|
|
|
|
begin
|
|
|
|
|
|
moveword T_DotParag,ParagNo
|
|
rcall T_GetRulBits,in=(a:a),out=(RulBits:a)
|
|
and #T_AllJust
|
|
sta Just
|
|
|
|
lda RulBits
|
|
and #T_AllSpacing
|
|
sta Spacing
|
|
|
|
|
|
rcall T_GetTextPtr,in=(ParagNo:a),out=(TextPtr:ax)
|
|
|
|
lda T_TextSelect
|
|
jne DoSelect
|
|
|
|
|
|
call T_TrackFont,in=(TextPtr:l,T_DotOffset:w)
|
|
|
|
|
|
; Check for any D_New font changes
|
|
|
|
lda T_FontFlags
|
|
jeq CheckIt
|
|
|
|
and #T_FontFl
|
|
beq NoFont
|
|
moveword T_NewFont,T_CurFont
|
|
NoFont
|
|
|
|
lda T_FontFlags
|
|
and #T_StyleFl
|
|
beq NoStyle
|
|
movebyte T_NewAddStyle,T_CurStyle
|
|
NoStyle
|
|
|
|
lda T_FontFlags
|
|
and #T_SizeFl
|
|
beq NoSize
|
|
movebyte T_NewSize,T_CurSize
|
|
NoSize
|
|
|
|
lda T_FontFlags
|
|
and #T_ColorFl
|
|
beq NoColor
|
|
moveword T_NewColor,T_CurColor
|
|
NoColor
|
|
brl CheckIt
|
|
|
|
|
|
|
|
|
|
DoSelect
|
|
rcall T_JunkRight,in=(ParagNo:a,T_DotOffset:x),out=(Offset:a)
|
|
call T_TrackFont,in=(TextPtr:l,Offset:w)
|
|
shortm
|
|
moveword T_CurStyle,OrStyles
|
|
moveword a,AndStyles
|
|
longm
|
|
|
|
|
|
NextChar
|
|
cmpw ParagNo,T_MarkParag
|
|
blt Okay
|
|
cmpw Offset,T_MarkOffset
|
|
jge Done
|
|
Okay
|
|
|
|
moveword [TextPtr]:Offset,a
|
|
inc Offset
|
|
and #$ff
|
|
cmp #CR
|
|
beq NextParag
|
|
|
|
cmp #T_ColorChange+1
|
|
bge NextChar
|
|
|
|
asl a
|
|
tax
|
|
jmp (JumpTable,x)
|
|
|
|
|
|
DoFont
|
|
cmpw [TextPtr]:Offset,T_CurFont
|
|
beq SameFont
|
|
moveword #$FFFF,T_CurFont
|
|
SameFont inc Offset
|
|
inc Offset
|
|
brl NextChar
|
|
|
|
|
|
DoStyle
|
|
shortm
|
|
ldy Offset
|
|
moveword [TextPtr]:y,T_CurStyle
|
|
ora OrStyles
|
|
sta OrStyles
|
|
moveword [TextPtr]:y,a
|
|
and AndStyles
|
|
sta AndStyles
|
|
longm
|
|
inc Offset
|
|
brl NextChar
|
|
|
|
|
|
DoSize
|
|
shortm
|
|
cmpw [TextPtr]:Offset,T_CurSize
|
|
beq SameSize
|
|
moveword #$FF,T_CurSize
|
|
SameSize longm
|
|
inc Offset
|
|
brl NextChar
|
|
|
|
|
|
DoColor
|
|
shortm
|
|
cmpw [TextPtr]:Offset,T_CurColor
|
|
beq SameColor
|
|
moveword #$FF,T_CurColor
|
|
SameColor longm
|
|
inc Offset
|
|
brl NextChar
|
|
|
|
|
|
|
|
NextParag
|
|
inc ParagNo
|
|
|
|
cmpw ParagNo,T_MarkParag
|
|
blt Okay2
|
|
cmpw T_MarkOffset,#T_ParHeader
|
|
jeq Done
|
|
Okay2
|
|
|
|
|
|
rcall T_GetRulBits,in=(ParagNo:a),out=(RulBits:a)
|
|
|
|
and #T_AllJust
|
|
cmp Just
|
|
beq JustSame
|
|
stz Just
|
|
JustSame
|
|
|
|
lda RulBits
|
|
and #T_AllSpacing
|
|
cmp Spacing
|
|
beq SpaceSame
|
|
stz Spacing
|
|
SpaceSame
|
|
|
|
|
|
rcall T_GetTextPtr,in=(ParagNo:a),out=(TextPtr:ax)
|
|
|
|
cmpw [TextPtr],T_CurFont
|
|
beq SameFont2
|
|
moveword #$FFFF,T_CurFont
|
|
SameFont2
|
|
|
|
shortm
|
|
ldy #T_ParStyle
|
|
moveword [TextPtr]:y,T_CurStyle
|
|
ora OrStyles
|
|
sta OrStyles
|
|
moveword [TextPtr]:y,a
|
|
and AndStyles
|
|
sta AndStyles
|
|
|
|
cmpw [TextPtr]:#T_ParSize,T_CurSize
|
|
beq SameSize2
|
|
moveword #$FF,T_CurSize
|
|
SameSize2
|
|
|
|
cmpw [TextPtr]:#T_ParColor,T_CurColor
|
|
beq SameColor2
|
|
moveword #$FF,T_CurColor
|
|
SameColor2
|
|
longm
|
|
|
|
moveword #T_ParHeader,Offset
|
|
brl NextChar
|
|
|
|
|
|
|
|
Done
|
|
shortm
|
|
lda OrStyles
|
|
beq StyleSet
|
|
moveword #$ff,T_CurStyle
|
|
lda AndStyles
|
|
beq StyleSet
|
|
sta T_CurStyle
|
|
StyleSet longm
|
|
|
|
|
|
|
|
CheckIt
|
|
call D_CheckMenuFID,in=(T_CurFont:l,T_CurColor:w)
|
|
call P_SetFormat,in=(Just:w,Spacing:w)
|
|
|
|
|
|
return
|
|
|
|
JumpTable
|
|
DC.W NextChar
|
|
DC.W DoFont
|
|
DC.W DoStyle
|
|
DC.W DoSize
|
|
DC.W DoColor
|
|
|
|
ENDP
|
|
|
|
|
|
|
|
|
|
|
|
;------------------------------------------------------------------------------
|
|
;
|
|
; T_Upper ()
|
|
; T_Lower ()
|
|
; T_Capit ()
|
|
;
|
|
|
|
T_Lower PROC EXPORT
|
|
;Using T_Data
|
|
;Using T_TextEqu
|
|
EXPORT T_Upper
|
|
EXPORT T_Capit
|
|
EXPORT T_ChangeCase
|
|
|
|
LOWER equ 0
|
|
UPPER equ 1
|
|
CAPIT equ 2
|
|
|
|
moveword #LOWER,>What
|
|
bra T_ChangeCase
|
|
|
|
T_Upper ;
|
|
moveword #UPPER,>What
|
|
bra T_ChangeCase
|
|
|
|
T_Capit ;
|
|
moveword #CAPIT,>What
|
|
|
|
|
|
|
|
T_ChangeCase ;
|
|
|
|
local TextPtr:l,CurOffset:w,CurParag:w,First:w,Char:w
|
|
begin +b
|
|
|
|
|
|
call P_BuildUndo,in=(#0:w)
|
|
|
|
moveword T_DotOffset,CurOffset
|
|
moveword T_DotParag,CurParag
|
|
rcall T_GetTextPtr,in=(a:a),out=(TextPtr:ax)
|
|
|
|
|
|
cmpw What,#Capit
|
|
bne StartLoop
|
|
|
|
stz First
|
|
|
|
rcall T_PrevChar,in=(T_DotParag:a,T_DotOffset:x)
|
|
tay
|
|
beq ItsFirst
|
|
|
|
lda [TextPtr],y
|
|
and #$ff
|
|
jsl T_IsSpace
|
|
bcc StartLoop
|
|
|
|
ItsFirst inc First
|
|
bra StartLoop
|
|
|
|
|
|
|
|
; Loop through the selected characters
|
|
|
|
Loop cmpw Char,#CR
|
|
bne SamePar
|
|
|
|
inc CurParag
|
|
rcall T_GetTextPtr,in=(CurParag:a),out=(TextPtr:ax)
|
|
moveword #T_ParHeader,CurOffset
|
|
bra StartLoop
|
|
|
|
|
|
SamePar
|
|
; BOGUS -- NextChar
|
|
rcall T_NextChar,in=(CurParag:a,CurOffset:x),out=(CurOffset:a)
|
|
|
|
|
|
StartLoop moveword [TextPtr]:CurOffset,a
|
|
and #$ff
|
|
sta Char
|
|
|
|
cmpw CurParag,T_MarkParag
|
|
blt CheckChar
|
|
cmpw CurOffset,T_MarkOffset
|
|
bge Update
|
|
|
|
|
|
CheckChar
|
|
rcall T_IsSpace,in=(Char:a)
|
|
bcs IsSpace
|
|
tax
|
|
|
|
ldy What
|
|
cpy #UPPER
|
|
beq Up
|
|
cpy #LOWER
|
|
beq Down
|
|
ldy First
|
|
bne Up
|
|
|
|
Down lda >D_ToLowerTable,x
|
|
bra Cased
|
|
Up lda >D_ToUpperTable,x
|
|
|
|
Cased
|
|
movebyte a,[TextPtr]:CurOffset
|
|
|
|
stz First
|
|
brl Loop
|
|
|
|
|
|
IsSpace
|
|
moveword #1,First
|
|
brl Loop
|
|
|
|
|
|
|
|
Update
|
|
call T_UpdatePars,in=(T_DotParag:w,T_MarkParag:w)
|
|
|
|
|
|
return
|
|
|
|
What DS.B 2
|
|
ENDP
|
|
|
|
|
|
|
|
|
|
;-------------------------------------------------------------------------------
|
|
;
|
|
; T_IsSpace (Char:a)
|
|
;
|
|
|
|
T_IsSpace PROC EXPORT
|
|
cmp #32
|
|
beq GSpace
|
|
cmp #TAB
|
|
beq GSpace
|
|
cmp #CR
|
|
beq GSpace
|
|
clc
|
|
GSpace rtl
|
|
ENDP
|
|
END
|
|
|