2010-08-02 86 views
2

當在帶有80列卡的Apple 2上使用Apple Applesoft Basic時,有沒有辦法僅使用POKE創建DHR圖形?有沒有辦法從Applesoft Basic訪問Apple 2上的DHR

我發現了一些使用第三方擴展的解決方案,如Beagle Graphics,但我真的想自己實現它。我搜查了我的Nibble雜誌收藏和基本書籍,但一直未能找到任何詳細信息。

百科:

雙高分辨率的雙高分辨率屏幕的組成 非常 複雜。除了64:1個 交織,在 各行中的像素被存儲在一個 不尋常的方式:每個像素是其一半 通常寬度以及第一和 64KB存儲器的第二組之間交替像素 的每個字節。其中 連續三個像素點分別爲 白色,現在需要六個雙 高分辨率。實際上,用於製作 Lo-Res圖形塊的所有 像素圖案可能是在Double Hi-Res圖形中重現的 。 其RAM 磁盤的ProDOS實現通過使第一個8 KB 文件保存到/ RAM將其數據存儲在 0x012000到0x013fff(通過設計)更容易訪問Double Hi-Res 屏幕。此外, 第二頁是可能的,並且 第二個文件(或更大的第一個文件) 會將其數據存儲在0x014000到 0x015fff。但是,通過 訪問ProDOS文件系統的速度很慢,而不是 非常適合在Double Hi-Res中翻頁動畫 ,超出了內存 的要求。

維基百科說DHR使用64:1隔行掃描,但沒有提及實現。另外維基百科說你可以使用/ RAM磁盤來訪問,但是再次沒有提及實現。

我正在繪製一個繪製Connet環形圖案簡單版本的小程序。速度並不像解析一樣重要。

回答

2

的comp.sys.apple2.programmer的成員回答我的問題在:http://groups.google.com/group/comp.sys.apple2.programmer/browse_thread/thread/b0e8ec8911b8723b/78cd953bca521d8f

基本上你從80列卡輔助存儲器映射。然後在HR屏幕上繪圖,並戳到您試圖點亮/變暗的像素的DHR內存位置。

最佳滿示例程序是:

5 HGR : POKE 49237,0 : CALL 62450 : REM clear hires then hires.aux 
    6 POKE 49246,0 : PG = 49236 
    7 SVN = 7 : HCOLOR= SVN : P5 = .5 
    9 GOTO 100 
10 X2 = X * 4 : CL = CO : TMP = 8 : FOR I = 3 TO 0 STEP -1 : BIT = CL >= TMP: 
    CL = CL - BIT * TMP : TMP = TMP * P5 
20 X1 = X + I: HCOLOR= SVN * BIT 
30 XX = INT (X1/SVN): H = XX * P5: POKE PG + (H= INT (H)),0 
40 XX = INT ((INT (H) + ((X1/SVN) - XX)) * SVN + P5) 
50 HPLOT XX,Y: POKE PG, 0: NEXT : RETURN 
100 FOR CO = 0 TO 15 : C8 = CO * 8 
110 FOR X = C8 TO C8 + SVN: FOR Y = 0 TO 10 : GOSUB 10 : NEXT : NEXT 
120 NEXT 
130 REM color is 0 to 15 
140 REM X coordinate is from 0 to 139 
150 REM Y coordinate is from 0 to 191 
相關問題