
제로 페이지, 스택은 CPU가 강제하는 메모리 주소다.

나머지는 Apple lle 컴퓨터 제작자가 자유롭게 정의할 수 있었던 공간
GETLN 버퍼

Apple lle는 키보드를 지원한다.
키보드로 입력을 하면 입력된 문자열이 어딘가 저장 되어야 한다.
- 그 위치가 GETLN버퍼
텍스트 화면 페이지 1

24 * 40은
- 참고로 각 바이트는 아스키 코드의 변형
텍스트 모드에서 값을 $0400-$07FF 주소에 적으면 화면에 그대로 나온다.
텍스트 화면 페이지 2

텍스트 페이지 1만 있는 경우 화면에 글자를 이미 보여주는 상황이다. 여기서 글자를 바꾸면 CPU가 느리기 때문에 부자연스럽게 바뀐다.
- 버퍼 하나만 쓰면 화면을 갱신하는 도중에 반쯤 그려진 상태가 사용자에게 보이는 문제(tearing)가 생긴다.
따라서 텍스트 페이지 2에 새로운 입력(글자)를 적고, 다 적으면 페이지 2로 전환해 보여주는 식으로 동작한다.
- 전환을 page flipping 라고 부른다.
텍스트 페이지 2가 화면에 보여지는 경우 또 다시 텍스트 페이지 1에 미리 적어놓고 대기하는 식
Double Buffering
- 페이지 1에 현재 화면을 표시하는 동안, 페이지 2에 다음 프레임을 준비
- 준비가 끝나면 표시 페이지를 2로 전환 (page flipping)
- 이제 페이지 1에 그 다음 프레임을 준비… 반복
그래픽 화면 페이지

텍스트 화면 페이지와 주소가 다르다.
그래픽 화면 페이지를 사용할 때는 화면에 예쁜 페이지를 보여준다. 텍스트를 화면에 보여주는 동안에 그래픽은 보여주지 않는다.
- 디스플레이 하드웨어가 하나이기 때문이다.
텍스트 화면 페이지처럼 Double Buffering 적용
애플 IIe의 텍스트 모드와 그래픽 모드
Apple IIe의 비디오 회로는 메모리에서 데이터를 읽어 화면 신호를 생성하는데, 같은 데이터를 문자 코드로 해석하느냐 vs 픽셀 데이터로 해석하느냐가 모드에 따라 달라진다.
하드웨어적으로 해석 방식이 하나만 활성화된다.
어떤 모드를 사용하냐에 따라 사용하는 메모리의 주소도 달라진다.
예: 그래픽 모드로 바꾸기

lda #0에서 피연산자 값은 의미가 없다.
값은 중요하지 않고, sta로 특정 주소에 쓰기를 하는 행위 자체가 모드를 전환하는 것이다.
- 하드웨어적으로 동작
텍스트 모드일 때 $2000-$5FFF는 프로그래머가 자유롭게 사용할 수 있는 공간이다.
- 텍스트 모드일 때
$0400-$0BFF메모리의 값을 화면에 보여주도록 하드웨어적으로 만들었다.

마찬가지로 그래픽 모드일 때 $0400-$0BFF는 자유룝게 사용할 수 있다.
자유 공간

용도가 정해져 있지 않고 자유롭게 사용할 수 있는 공간도 있다.
메모리가 정말 극한으로 부족하다.