1 # pcboot - bootable PC demo/game kernel
2 # Copyright (C) 2018 John Tsiombikas <nuclear@member.fsf.org>
4 # This program is free software: you can redistribute it and/or modify
5 # it under the terms of the GNU General Public License as published by
6 # the Free Software Foundation, either version 3 of the License, or
7 # (at your option) any later version.
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY, without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
14 # You should have received a copy of the GNU General Public License
15 # along with this program. If not, see <https://www.gnu.org/licenses/>.
37 jmp *mspre_tab(,%edx,4)
39 mspre_tab: .long msmain, mspre1, mspre2, mspre3
55 jmp *mspost_tab(,%ecx,4)
57 mspost_tab: .long msdone, mspost1, mspost2, mspost3
68 # same as memset but copies 16bit values, and the count is the number
69 # of 16bit values to copy, not bytes.
87 jmp *ms16pre_tab(,%edx,4)
89 ms16pre_tab: .long ms16main, ms16pre1, ms16pre2, ms16pre3
92 # same as next one, but jump to ms16main instead of falling through
94 mov %ah, -1(%edi,%ecx,2)
102 # - write low byte at edi
103 # - write high byte at the end
104 # - rotate by 8 for the rest
107 mov %ah, -1(%edi,%ecx,2)
150 jmp *mcpre_tab(,%edx,4)
152 mcpre_tab: .long mcmain, mcpre1, mcpre2, mcpre3
168 jmp *mcpost_tab(,%ecx,4)
170 mcpost_tab: .long mcdone, mcpost1, mcpost2, mcpost3