Prev: 27648 Up: Map Next: 28108
27853: Squiggle Line
This section draws the "Squiggle" line which separates the windows.
SquiggleLine 27853 CALL ClearScreen Call ClearScreen.
27856 LD HL,20800 HL=20800
27859 LD DE,28108 DE=SquiggleGFX
27862 LD C,5 C=$05.
SquiggleGFX_Loop_1 27864 LD B,16 Set a counter of $10.
27866 PUSH HL Stash HL (the screen buffer pointer) temporarily - this is because the line is a repeated pattern.
SquiggleGFX_Loop_2 27867 LD A,(DE) Copy one byte from DE (the squiggle graphics data), to HL (the screen buffer).
27868 LD (HL),A
27869 INC HL Increase both pointers by one.
27870 INC DE
27871 LD A,(DE) Copy one byte from DE (the squiggle graphics data), to HL (the screen buffer).
27872 LD (HL),A
27873 INC HL Increase HL (the screen buffer) pointer by one.
27874 DEC DE Decrease DE (the squiggle graphics data) pointer by one.
27875 DJNZ SquiggleGFX_Loop_2 Decrease counter by one and loop back to SquiggleGFX_Loop_2 until counter is zero.
27877 INC DE Increase DE (the squiggle graphics data) pointer by two.
27878 INC DE
27879 POP HL Restore HL (the screen buffer position) from the stack.
27880 INC H Increase H by one (i.e. move down a line).
27881 DEC C Decrease C by one and loop back to SquiggleGFX_Loop_1 until counter is zero.
27882 JR NZ,SquiggleGFX_Loop_1
27884 LD A,17 Write $11 to 46870.
27886 LD (46870),A
27889 LD A,(46854) A=46854.
27892 INC A Increase A by one.
27893 JR NZ,SquiggleLine_1 If A is not zero then jump to SquiggleLine_1.
27895 CALL 38829 Call 38829.
27898 LD HL,28658 HL=InputBuffer
SquiggleLine_0 27901 LD A,(HL)
27902 CALL 34232
27905 INC HL
27906 CP 13
27908 JR NZ,SquiggleLine_0
27910 LD HL,28660 Copies $6FF4 to $6FF9 ($05 bytes).
27913 LD DE,28665
27916 LD BC,5
27919 LDIR
27921 JR SquiggleLine_2 Jump to SquiggleLine_2.
SquiggleLine_1 27923 LD A,1 Write $01 to 46853.
27925 LD (46853),A
27928 LD A,9 Write $09 to 46870.
27930 LD (46870),A
27933 CALL 28118 Call 28118.
27936 JR Z,SquiggleLine_6
SquiggleLine_2 27938 LD HL,28828 Write $00 to 64 bytes, starting from 28828 (using Blanker).
27941 LD B,64
27943 CALL Blanker
27946 LD HL,28665 HL=28665.
27949 LD IY,28828 IY=28828.
SquiggleLine_3 27953 CALL 28311 Call 28311.
27956 CP 208
27958 JR Z,SquiggleLine_8
27960 CP 144
27962 JR NZ,SquiggleLine_5
27964 LD A,B
27965 AND 15
27967 OR C
27968 JR NZ,SquiggleLine_5
27970 LD A,(46875)
27973 AND A
27974 JR NZ,SquiggleLine_4
27976 INC A
27977 LD (46875),A
27980 JR SquiggleLine_5
SquiggleLine_4 27982 DEC A
27983 LD (46875),A
27986 LD A,(IY-2)
27989 AND 240
27991 CP 176
27993 JR Z,SquiggleLine_5
27995 CP 160
27997 JR Z,SquiggleLine_5
27999 LD A,176
28001 LD (IY+0),A
28004 XOR A
28005 LD (IY+1),A
28008 INC IY
28010 INC IY
SquiggleLine_5 28012 LD (IY+0),B
28015 LD (IY+1),C
28018 INC IY
28020 INC IY
28022 LD A,D
28023 CP 192
28025 JR NZ,SquiggleLine_3
28027 LD A,(46875)
28030 AND A
28031 JR Z,SquiggleLine_6
28033 XOR A
28034 LD (46875),A
28037 CALL 31023
28040 JR SquiggleLine_1
SquiggleLine_6 28042 LD HL,28828
28045 LD (46812),HL
SquiggleLine_7 28048 CALL 30085
28051 JP NZ,SquiggleLine_1
28054 CALL 31072
28057 LD A,(46853)
28060 AND A
28061 JR NZ,SquiggleLine_7
28063 JP SquiggleLine_1 Jump to SquiggleLine_1.
SquiggleLine_8 28066 LD HL,44435 HL="i do not know the word "[0x16]""
28069 LD A,1 Write $01 to WaitCoutdown.
28071 LD (46849),A
28074 CALL PrintMsg Call PrintMsg.
28077 LD HL,(46810)
SquiggleLine_9 28080 LD A,(HL)
28081 CP 13
28083 JR Z,SquiggleLine_10
28085 CP 34
28087 JR Z,SquiggleLine_10
28089 CALL 34187
28092 INC HL
28093 CP 32
28095 JR NZ,SquiggleLine_9
SquiggleLine_10 28097 LD A,34
28099 CALL 34187
28102 CALL 34179
28105 JP SquiggleLine_1 Jump to SquiggleLine_1.
Prev: 27648 Up: Map Next: 28108