В самих колебаниях с низкой частотой не содержится информации, они лишь «несут» её.
Наверное, все же с высокой частотой. А она модулируется сигналом низкой частоты, содержащей информацию (AM-приемник).
Точкой она называется, потому что находится она на фронте, когда он достигнет 50% порога.
Возможно, в данном случае лучше добавлять "на отрицательном фронте" (или негативном), чтобы было понятнее, что сигнал спадает, идет вниз.
А вообще интереснее было бы более подробно увидеть в статье, почему была выбрана именно QAM-модуляция, т.е., как полагаю, она удобно "аппаратно" накладывается на круговое представление цвета на плоскости.
А еще было бы интересно увидеть продолжение про кодирование PAL на МК, особенно какие недостатки NTSC оно устранило. Про выбор поднесущей уже есть отличный комментарий.
для своих нужд такую утилиту писал, exe-файл после компиляции ровно 1024 байта. дальше уменьшать dos-заголовок (tiny356.dos) на современных windows не получается.
;Return some keyboard key statuses as bit flags ;and returns them as a program exit code. ; ;Bit Value Description ;--- ----- ------------------------ ;15 32768 Insert is held down ;14 16384 CapsLock is held down ;13 8192 NumLock is held down ;12 4096 ScrollLock is held down ;11 2048 Pause is toggled on ;10 1024 PrintScreen is held down ; 9 512 Left Alt is held down ; 8 256 Left Ctrl is held down ; 7 128 Insert is toggled on ; 6 64 CapsLock is toggled on ; 5 32 NumLock is toggled on ; 4 16 ScrollLock is toggled on ; 3 8 Any Alt is held down ; 2 4 Any Ctrl is held down ; 1 2 Left Shift is held down ; 0 1 Right Shift is held down
; 2024 MOD: ; .DATA -> uninitialized .DATA? ; compile with MASM 6.14 and *.lib from Windows 95 Chicago Beta 2 SDK 4.0.331: ; Linker Version 5.12.8078 from Windows 98 SE Driver Development Kit: ; C:\MASM614\BIN\ML.EXE /c /coff kbstatus.asm ; c:\MASM614\link1998\LINK32.EXE /nologo /STUB:tiny356.dos /MERGE:.rdata=.text -subsystem:WINDOWS,4.00 -entry:start -out:kbstatus.exe kbstatus.obj c:\MASM614\LIB95SDK\kernel32.lib c:\MASM614\LIB95SDK\USER32.LIB ; tiny356.dos DOS STUB from http://www.phreedom.org/research/tinype/ ; 00000000: 4D 5A 00 00-00 00 00 00-00 00 00 00-00 00 00 00 ; 00000010: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 ; 00000020: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 ; 00000030: 00 00 00 00-00 00 00 00-00 00 00 00-40 00 00 00
.386
.MODEL flat, stdcall
GetKeyboardState PROTO NEAR32 stdcall, lpKeyState:DWORD
ExitProcess PROTO NEAR32 stdcall, dwExitCode:DWORD
.STACK 4096
.DATA?
keyState db 256 dup(?)
.CODE
start:
lea esi, keyState INVOKE GetKeyboardState, esi xor eax, eax
;high byte: bios status flag 2 shl byte ptr [esi + 2dh], 1 ;insert down rcl eax, 1 shl byte ptr [esi + 14h], 1 ;capslock down rcl eax, 1 shl byte ptr [esi + 90h], 1 ;numlock down rcl eax, 1 shl byte ptr [esi + 91h], 1 ;scrolllock down rcl eax, 1 shr byte ptr [esi + 13h], 1 ;pause active rcl eax, 1 shl byte ptr [esi + 2ch], 1 ;printscreen down rcl eax, 1 shl byte ptr [esi + 0a4h], 1 ;left alt down rcl eax, 1 shl byte ptr [esi + 0a2h], 1 ;left ctrl down rcl eax, 1
;low byte: bios status flag 1 shr byte ptr [esi + 2dh], 2 ;insert active rcl eax, 1 shr byte ptr [esi + 14h], 2 ;capslock active rcl eax, 1 shr byte ptr [esi + 90h], 2 ;numlock active rcl eax, 1 shr byte ptr [esi + 91h], 2 ;scrolllock active rcl eax, 1 shl byte ptr [esi + 12h], 1 ;any alt down rcl eax, 1 shl byte ptr [esi + 11h], 1 ;any ctrl down rcl eax, 1 shl byte ptr [esi + 0a0h], 1 ;left shift down rcl eax, 1 shl byte ptr [esi + 0a1h], 1 ;right shift down rcl eax, 1
Наверное, все же с высокой частотой. А она модулируется сигналом низкой частоты, содержащей информацию (AM-приемник).
Возможно, в данном случае лучше добавлять "на отрицательном фронте" (или негативном), чтобы было понятнее, что сигнал спадает, идет вниз.
А вообще интереснее было бы более подробно увидеть в статье, почему была выбрана именно QAM-модуляция, т.е., как полагаю, она удобно "аппаратно" накладывается на круговое представление цвета на плоскости.
А еще было бы интересно увидеть продолжение про кодирование PAL на МК, особенно какие недостатки NTSC оно устранило. Про выбор поднесущей уже есть отличный комментарий.
для своих нужд такую утилиту писал, exe-файл после компиляции ровно 1024 байта. дальше уменьшать dos-заголовок (tiny356.dos) на современных windows не получается.
;Return some keyboard key statuses as bit flags
;and returns them as a program exit code.
;
;Bit Value Description
;--- ----- ------------------------
;15 32768 Insert is held down
;14 16384 CapsLock is held down
;13 8192 NumLock is held down
;12 4096 ScrollLock is held down
;11 2048 Pause is toggled on
;10 1024 PrintScreen is held down
; 9 512 Left Alt is held down
; 8 256 Left Ctrl is held down
; 7 128 Insert is toggled on
; 6 64 CapsLock is toggled on
; 5 32 NumLock is toggled on
; 4 16 ScrollLock is toggled on
; 3 8 Any Alt is held down
; 2 4 Any Ctrl is held down
; 1 2 Left Shift is held down
; 0 1 Right Shift is held down
; 2024 MOD:
; .DATA -> uninitialized .DATA?
; compile with MASM 6.14 and *.lib from Windows 95 Chicago Beta 2 SDK 4.0.331:
; Linker Version 5.12.8078 from Windows 98 SE Driver Development Kit:
; C:\MASM614\BIN\ML.EXE /c /coff kbstatus.asm
; c:\MASM614\link1998\LINK32.EXE /nologo /STUB:tiny356.dos /MERGE:.rdata=.text -subsystem:WINDOWS,4.00 -entry:start -out:kbstatus.exe kbstatus.obj c:\MASM614\LIB95SDK\kernel32.lib c:\MASM614\LIB95SDK\USER32.LIB
; tiny356.dos DOS STUB from http://www.phreedom.org/research/tinype/
; 00000000: 4D 5A 00 00-00 00 00 00-00 00 00 00-00 00 00 00
; 00000010: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00
; 00000020: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00
; 00000030: 00 00 00 00-00 00 00 00-00 00 00 00-40 00 00 00
.386
.MODEL flat, stdcall
GetKeyboardState PROTO NEAR32 stdcall, lpKeyState:DWORD
ExitProcess PROTO NEAR32 stdcall, dwExitCode:DWORD
.STACK 4096
.DATA?
keyState db 256 dup(?)
.CODE
start:
lea esi, keyState
INVOKE GetKeyboardState, esi
xor eax, eax
;high byte: bios status flag 2
shl byte ptr [esi + 2dh], 1 ;insert down
rcl eax, 1
shl byte ptr [esi + 14h], 1 ;capslock down
rcl eax, 1
shl byte ptr [esi + 90h], 1 ;numlock down
rcl eax, 1
shl byte ptr [esi + 91h], 1 ;scrolllock down
rcl eax, 1
shr byte ptr [esi + 13h], 1 ;pause active
rcl eax, 1
shl byte ptr [esi + 2ch], 1 ;printscreen down
rcl eax, 1
shl byte ptr [esi + 0a4h], 1 ;left alt down
rcl eax, 1
shl byte ptr [esi + 0a2h], 1 ;left ctrl down
rcl eax, 1
;low byte: bios status flag 1
shr byte ptr [esi + 2dh], 2 ;insert active
rcl eax, 1
shr byte ptr [esi + 14h], 2 ;capslock active
rcl eax, 1
shr byte ptr [esi + 90h], 2 ;numlock active
rcl eax, 1
shr byte ptr [esi + 91h], 2 ;scrolllock active
rcl eax, 1
shl byte ptr [esi + 12h], 1 ;any alt down
rcl eax, 1
shl byte ptr [esi + 11h], 1 ;any ctrl down
rcl eax, 1
shl byte ptr [esi + 0a0h], 1 ;left shift down
rcl eax, 1
shl byte ptr [esi + 0a1h], 1 ;right shift down
rcl eax, 1
INVOKE ExitProcess, eax
END start