├── .gitignore ├── .hgtags ├── CONTRIBUTING.adoc ├── Makefile ├── README.adoc ├── armasm-hl.xml ├── c-hl.xml ├── code ├── add-mem.s ├── add-ram.s ├── csum.c ├── csum.lds ├── flash-ram.lds ├── main.s ├── startup.s ├── strlen.s ├── sum-data.lds ├── sum-data.s ├── sum-sub.s └── sum.s ├── csections.dia ├── docbook.conf ├── docbook.xsl ├── flash-ram-mm.dia ├── gnu-eprog-revhistory.xml ├── gnu-eprog.asciidoc ├── images ├── blank.png ├── caution.png ├── caution.svg ├── draft.png ├── home.png ├── home.svg ├── important.png ├── important.svg ├── next.png ├── next.svg ├── note.png ├── note.svg ├── prev.png ├── prev.svg ├── tip.png ├── tip.svg ├── toc-blank.png ├── toc-minus.png ├── toc-plus.png ├── up.png ├── up.svg ├── warning.png └── warning.svg ├── linker.dia ├── relocation.dia ├── rss.xsl ├── sections.dia ├── stack.dia ├── style.css ├── upload.lftp └── xslthl-config.xml /.gitignore: -------------------------------------------------------------------------------- 1 | *~ 2 | *.swp 3 | *.html 4 | *.png 5 | revision.rss 6 | gnu-eprog.xml 7 | -------------------------------------------------------------------------------- /.hgtags: -------------------------------------------------------------------------------- 1 | f714bdca445389a274b4a84bb14c874e7f922cd7 0.1.0 2 | 67bdc74810d373f74fc46a5d420f7ebe75045027 0.2.0 3 | 06977448985148c030fa0d5b1ebefe25bba8b2a6 0.3.0 4 | 06977448985148c030fa0d5b1ebefe25bba8b2a6 0.3.0 5 | 0000000000000000000000000000000000000000 0.3.0 6 | 0000000000000000000000000000000000000000 0.3.0 7 | 4714f4e341a4e65819432bd4a39655ec092bca24 0.3.0 8 | -------------------------------------------------------------------------------- /CONTRIBUTING.adoc: -------------------------------------------------------------------------------- 1 | = Contributing to the Tutorial 2 | 3 | == Contributing 4 | 5 | Like every other open source project, we gladly accept 6 | contributions. Sections that need help have been marked with 7 | FIXMEs. All contributions will be duly credited in the credits page. 8 | 9 | This document's source is maintained in a public git repo located at 10 | https://github.com/bravegnu/gnu-eprog To contribute to the project, 11 | fork the project on github and send in a pull request. 12 | 13 | The document is written in 14 | http://www.methods.co.nz/asciidoc/[asciidoc], and converted to HTML 15 | using the http://docbook.sourceforge.net/[docbook-xsl] stylesheets. 16 | 17 | * Fork this repo into your GitHub account. 18 | 19 | * Install required software, for Debian / Ubuntu, use the following command. 20 | + 21 | ------ 22 | sudo apt install asciidoc docbook libsaxon-java libxslthl-java imgsizer dia 23 | ------ 24 | + 25 | * Clone your repo. 26 | + 27 | ------ 28 | git clone -o gh https://github.com/yourname/gnu-eprog 29 | cd gnu-eprog 30 | ------ 31 | + 32 | * Make your changes. 33 | 34 | * Push you changes with `git`. Do use desriptive comments in your 35 | commits. 36 | 37 | * Send pull request to `gnu-eprog` maintainer, to review your 38 | changes and merge them into `master` `gnu-eprog` branch. 39 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | images = flash-ram-mm.png \ 2 | linker.png \ 3 | relocation.png \ 4 | sections.png \ 5 | stack.png \ 6 | csections.png 7 | 8 | htmls = arm-iset.html \ 9 | asm-directives.html \ 10 | data-in-ram.html \ 11 | index.html \ 12 | using-ram.html \ 13 | arm-lab.html \ 14 | copyright.html \ 15 | lds.html \ 16 | arm-prog-model.html \ 17 | hello-arm.html \ 18 | linker.html \ 19 | c-startup.html \ 20 | exc-handle.html \ 21 | contributing.html \ 22 | credits.html \ 23 | c-library.html \ 24 | inline-assembly.html \ 25 | arm-stacks.html 26 | 27 | sources = code/sum.s code/strlen.s code/sum-sub.s code/main.s 28 | 29 | # available multilanguage versions see lang-*.conf files 30 | # use make ALANG=ru override for translated version build 31 | ALANG = en 32 | 33 | all: $(htmls) $(images) revision.rss 34 | 35 | gnu-eprog.epub: gnu-eprog.asciidoc $(images) 36 | a2x -d book -f epub $< 37 | 38 | $(htmls): gnu-eprog.xml 39 | java -cp "/usr/share/java/saxon.jar:/usr/share/java/xslthl.jar" \ 40 | -Dxslthl.config="file://$(PWD)/xslthl-config.xml" \ 41 | com.icl.saxon.StyleSheet gnu-eprog.xml docbook.xsl 42 | imgsizer $(htmls) 43 | -tidy --quiet -m $(htmls) 2> /dev/null 44 | 45 | revision.rss: gnu-eprog.xml 46 | xsltproc rss.xsl gnu-eprog.xml | tr -s "\n" > revision.rss 47 | 48 | %.xml: %.asciidoc $(sources) 49 | asciidoc -a lang=$(ALANG) -b docbook $< 50 | 51 | %.png: %.dia 52 | dia --export=$@ --filter=png-libart $< 53 | 54 | clean: 55 | rm -f *.html 56 | rm -f gnu-eprog.xml 57 | rm -f $(images) 58 | 59 | distclean: clean 60 | find . -name "*~" -exec rm -f {} ";" 61 | 62 | upload: 63 | lftp -f upload.lftp 64 | -------------------------------------------------------------------------------- /README.adoc: -------------------------------------------------------------------------------- 1 | = Embedded Programming using the GNU Toolchain 2 | 3 | This is a short tutorial on using the GNU toolchain for bare metal 4 | programming. The tutorial uses Qemu to simulate an ARM board, and 5 | provides instructions to test programs within the simulated 6 | machine. The following topics will be covered. 7 | 8 | * Writing assembly language programs 9 | * Using make for build automation 10 | * Writing linker scripts 11 | * Writing C Startup code 12 | * Using the C library 13 | * Inline Assembler 14 | 15 | The tutorial is written in asciidoc. The asciidoc source is converted 16 | to DocBook and then rendered to HTML. 17 | 18 | The instructions to build the documentation on Debian Jessie is given 19 | below. 20 | 21 | ------ 22 | # apt-get install openjdk-7-jre libsaxon-java libxslthl-java docbookxsl asciidoc imgsizer dia 23 | $ make 24 | ------ 25 | 26 | The official rendered version of the is book is available from 27 | http://www.bravegnu.org/gnu-eprog/ 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /armasm-hl.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | ;; 5 | 6 | 7 | @ 8 | 9 | " 10 | \ 11 | 12 | 13 | #0x 14 | 15 | 16 | 17 | 0x 18 | 19 | 20 | 21 | # 22 | . 23 | 24 | 25 | 26 | 27 | . 28 | 29 | 30 | 31 | 32 | 33 | MULTILINE 34 | ^[a-zA-Z0-9_]+[:] 35 | 36 | 37 | 38 | . 39 | data 40 | text 41 | global 42 | asciz 43 | space 44 | align 45 | skip 46 | equ 47 | 4byte 48 | 2byte 49 | byte 50 | 51 | -------------------------------------------------------------------------------- /c-hl.xml: -------------------------------------------------------------------------------- 1 | 2 | 14 | 15 | 16 | /** 17 | */ 18 | 19 | 20 | 21 | /// 22 | 23 | 24 | 25 | /* 26 | */ 27 | 28 | // 29 | 30 | 31 | # 32 | \ 33 | 34 | 35 | 36 | " 37 | \ 38 | 39 | 40 | ' 41 | \ 42 | 43 | 44 | 0x 45 | ul 46 | lu 47 | u 48 | l 49 | 50 | 51 | 52 | . 53 | 54 | e 55 | ul 56 | lu 57 | u 58 | f 59 | l 60 | 61 | 62 | 63 | auto 64 | _Bool 65 | break 66 | case 67 | char 68 | _Complex 69 | const 70 | continue 71 | default 72 | do 73 | double 74 | else 75 | enum 76 | extern 77 | float 78 | for 79 | goto 80 | if 81 | _Imaginary 82 | inline 83 | int 84 | long 85 | register 86 | restrict 87 | return 88 | short 89 | signed 90 | sizeof 91 | static 92 | struct 93 | switch 94 | typedef 95 | union 96 | unsigned 97 | void 98 | volatile 99 | while 100 | 101 | -------------------------------------------------------------------------------- /code/add-mem.s: -------------------------------------------------------------------------------- 1 | .data 2 | val1: .4byte 10 @ First number 3 | val2: .4byte 30 @ Second number 4 | result: .4byte 0 @ 4 byte space for result 5 | 6 | .text 7 | .align 8 | start: 9 | ldr r0, =val1 @ r0 = &val1 10 | ldr r1, =val2 @ r1 = &val2 11 | 12 | ldr r2, [r0] @ r2 = *r0 13 | ldr r3, [r1] @ r3 = *r1 14 | 15 | add r4, r2, r3 @ r4 = r2 + r3 16 | 17 | ldr r0, =result @ r0 = &result 18 | str r4, [r0] @ *r0 = r4 19 | 20 | stop: b stop 21 | -------------------------------------------------------------------------------- /code/add-ram.s: -------------------------------------------------------------------------------- 1 | .data 2 | val1: .4byte 10 @ First number 3 | val2: .4byte 30 @ Second number 4 | result: .space 4 @ 1 byte space for result 5 | 6 | .text 7 | 8 | ;; Copy data to RAM. 9 | start: 10 | ldr r0, =flash_sdata 11 | ldr r1, =ram_sdata 12 | ldr r2, =data_size 13 | 14 | copy: 15 | ldrb r4, [r0], #1 16 | strb r4, [r1], #1 17 | subs r2, r2, #1 18 | bne copy 19 | 20 | ;; Add and store result. 21 | ldr r0, =val1 @ r0 = &val1 22 | ldr r1, =val2 @ r1 = &val2 23 | 24 | ldr r2, [r0] @ r2 = *r0 25 | ldr r3, [r1] @ r3 = *r1 26 | 27 | add r4, r2, r3 @ r4 = r2 + r3 28 | 29 | ldr r0, =result @ r0 = &result 30 | str r4, [r0] @ *r0 = r4 31 | 32 | stop: b stop 33 | -------------------------------------------------------------------------------- /code/csum.c: -------------------------------------------------------------------------------- 1 | static int arr[] = { 1, 10, 4, 5, 6, 7 }; 2 | static int sum; 3 | static const int n = sizeof(arr) / sizeof(arr[0]); 4 | 5 | int main() 6 | { 7 | int i; 8 | 9 | for (i = 0; i < n; i++) 10 | sum += arr[i]; 11 | } 12 | -------------------------------------------------------------------------------- /code/csum.lds: -------------------------------------------------------------------------------- 1 | SECTIONS { 2 | . = 0x00000000; 3 | .text : { 4 | * (vectors); 5 | * (.text); 6 | } 7 | .rodata : { 8 | * (.rodata); 9 | } 10 | flash_sdata = .; 11 | 12 | . = 0xA0000000; 13 | ram_sdata = .; 14 | .data : AT (flash_sdata) { 15 | * (.data); 16 | } 17 | ram_edata = .; 18 | data_size = ram_edata - ram_sdata; 19 | 20 | sbss = .; 21 | .bss : { 22 | * (.bss); 23 | } 24 | ebss = .; 25 | bss_size = ebss - sbss; 26 | } -------------------------------------------------------------------------------- /code/flash-ram.lds: -------------------------------------------------------------------------------- 1 | SECTIONS { 2 | . = 0x00000000; 3 | .text : { * (.text); } 4 | 5 | . = 0xA0000000; 6 | .data : { * (.data); } 7 | } -------------------------------------------------------------------------------- /code/main.s: -------------------------------------------------------------------------------- 1 | .text 2 | b start @ Skip over the data 3 | arr: .byte 10, 20, 25 @ Read-only array of bytes 4 | eoa: @ Address of end of array + 1 5 | 6 | .align 7 | start: 8 | ldr r0, =arr @ r0 = &arr 9 | ldr r1, =eoa @ r1 = &eoa 10 | 11 | bl sum @ Invoke the sum subroutine 12 | 13 | stop: b stop 14 | -------------------------------------------------------------------------------- /code/startup.s: -------------------------------------------------------------------------------- 1 | .section "vectors" 2 | reset: b start 3 | undef: b undef 4 | swi: b swi 5 | pabt: b pabt 6 | dabt: b dabt 7 | nop 8 | irq: b irq 9 | fiq: b fiq 10 | 11 | .text 12 | start: 13 | @@ Copy data to RAM. 14 | ldr r0, =flash_sdata 15 | ldr r1, =ram_sdata 16 | ldr r2, =data_size 17 | 18 | @@ Handle data_size == 0 19 | cmp r2, #0 20 | beq init_bss 21 | copy: 22 | ldrb r4, [r0], #1 23 | strb r4, [r1], #1 24 | subs r2, r2, #1 25 | bne copy 26 | 27 | init_bss: 28 | @@ Initialize .bss 29 | ldr r0, =sbss 30 | ldr r1, =ebss 31 | ldr r2, =bss_size 32 | 33 | @@ Handle bss_size == 0 34 | cmp r2, #0 35 | beq init_stack 36 | 37 | mov r4, #0 38 | zero: 39 | strb r4, [r0], #1 40 | subs r2, r2, #1 41 | bne zero 42 | 43 | init_stack: 44 | @@ Initialize the stack pointer 45 | ldr sp, =0xA4000000 46 | 47 | bl main 48 | 49 | stop: b stop 50 | -------------------------------------------------------------------------------- /code/strlen.s: -------------------------------------------------------------------------------- 1 | .text 2 | b start 3 | 4 | str: .asciz "Hello World" 5 | 6 | .equ nul, 0 7 | 8 | .align 9 | start: ldr r0, =str @ r0 = &str 10 | mov r1, #0 11 | 12 | loop: ldrb r2, [r0], #1 @ r2 = *(r0++) 13 | add r1, r1, #1 @ r1 += 1 14 | cmp r2, #nul @ if (r1 != nul) 15 | bne loop @ goto loop 16 | 17 | sub r1, r1, #1 @ r1 -= 1 18 | stop: b stop 19 | -------------------------------------------------------------------------------- /code/sum-data.lds: -------------------------------------------------------------------------------- 1 | SECTIONS { 2 | . = 0x00000000; 3 | .text : { * (.text); } 4 | 5 | . = 0x00000400; 6 | .data : { * (.data); } 7 | } -------------------------------------------------------------------------------- /code/sum-data.s: -------------------------------------------------------------------------------- 1 | .data 2 | arr: .byte 10, 20, 25 @ Read-only array of bytes 3 | eoa: @ Address of end of array + 1 4 | 5 | .text 6 | start: 7 | ldr r0, =eoa @ r0 = &eoa 8 | ldr r1, =arr @ r1 = &arr 9 | mov r3, #0 @ r3 = 0 10 | loop: ldrb r2, [r1], #1 @ r2 = *(r1++) 11 | add r3, r2, r3 @ r3 += r2 12 | cmp r1, r0 @ if (r1 != r2) 13 | bne loop @ goto loop 14 | stop: b stop 15 | -------------------------------------------------------------------------------- /code/sum-sub.s: -------------------------------------------------------------------------------- 1 | @ Args 2 | @ r0: Start address of array 3 | @ r1: End address of array 4 | @ 5 | @ Result 6 | @ r3: Sum of Array 7 | 8 | .global sum 9 | 10 | sum: mov r3, #0 @ r3 = 0 11 | loop: ldrb r2, [r0], #1 @ r2 = *r0++ ; Get array element 12 | add r3, r2, r3 @ r3 += r2 ; Calculate sum 13 | cmp r0, r1 @ if (r0 != r1) ; Check if hit end-of-array 14 | bne loop @ goto loop ; Loop 15 | mov pc, lr @ pc = lr ; Return when done 16 | -------------------------------------------------------------------------------- /code/sum.s: -------------------------------------------------------------------------------- 1 | .text 2 | entry: b start @ Skip over the data 3 | arr: .byte 10, 20, 25 @ Read-only array of bytes 4 | eoa: @ Address of end of array + 1 5 | 6 | .align 7 | start: 8 | ldr r0, =eoa @ r0 = &eoa 9 | ldr r1, =arr @ r1 = &arr 10 | mov r3, #0 @ r3 = 0 11 | loop: ldrb r2, [r1], #1 @ r2 = *r1++ 12 | add r3, r2, r3 @ r3 += r2 13 | cmp r1, r0 @ if (r1 != r0) 14 | bne loop @ goto loop 15 | stop: b stop 16 | -------------------------------------------------------------------------------- /csections.dia: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | #A4# 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | ## 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | #0xA000_0000# 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | #0xA400_0000# 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | #RAM# 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | 261 | 262 | 263 | 264 | 265 | 266 | 267 | 268 | 269 | 270 | 271 | 272 | 273 | 274 | 275 | 276 | 277 | 278 | 279 | 280 | 281 | 282 | 283 | 284 | 285 | 286 | 287 | 288 | 289 | 290 | 291 | 292 | 293 | 294 | 295 | 296 | 297 | 298 | 299 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 309 | 310 | 311 | 312 | 313 | 314 | 315 | 316 | 317 | 318 | 319 | 320 | 321 | 322 | 323 | 324 | 325 | 326 | 327 | 328 | 329 | 330 | 331 | 332 | 333 | 334 | 335 | 336 | 337 | 338 | 339 | 340 | 341 | 342 | 343 | 344 | 345 | 346 | 347 | 348 | 349 | 350 | 351 | 352 | 353 | 354 | 355 | 356 | 357 | 358 | 359 | 360 | 361 | 362 | ## 363 | 364 | 365 | 366 | 367 | 368 | 369 | 370 | 371 | 372 | 373 | 374 | 375 | 376 | 377 | 378 | 379 | 380 | 381 | 382 | 383 | 384 | 385 | 386 | 387 | 388 | 389 | 390 | 391 | 392 | 393 | 394 | 395 | 396 | 397 | 398 | 399 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 419 | 420 | 421 | 422 | 423 | 424 | 425 | 426 | 427 | 428 | 429 | 430 | 431 | 432 | 433 | 434 | 435 | 436 | 437 | 438 | 439 | 440 | 441 | 442 | 443 | 444 | 445 | 446 | 447 | 448 | 449 | 450 | 451 | 452 | 453 | 454 | 455 | 456 | 457 | 458 | #.data# 459 | 460 | 461 | 462 | 463 | 464 | 465 | 466 | 467 | 468 | 469 | 470 | 471 | 472 | 473 | 474 | 475 | 476 | 477 | 478 | 479 | 480 | 481 | 482 | 483 | 484 | 485 | 486 | 487 | 488 | 489 | 490 | 491 | 492 | 493 | 494 | 495 | 496 | 497 | 498 | 499 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | #.data# 507 | 508 | 509 | 510 | 511 | 512 | 513 | 514 | 515 | 516 | 517 | 518 | 519 | 520 | 521 | 522 | 523 | 524 | 525 | 526 | 527 | 528 | 529 | 530 | 531 | 532 | 533 | 534 | 535 | 536 | 537 | 538 | 539 | 540 | 541 | 542 | 543 | 544 | 545 | 546 | 547 | 548 | 549 | 550 | 551 | 552 | 553 | 554 | #.bss# 555 | 556 | 557 | 558 | 559 | 560 | 561 | 562 | 563 | 564 | 565 | 566 | 567 | 568 | 569 | 570 | 571 | 572 | 573 | 574 | 575 | 576 | 577 | 578 | 579 | 580 | 581 | 582 | 583 | 584 | #Flash# 585 | 586 | 587 | 588 | 589 | 590 | 591 | 592 | 593 | 594 | 595 | 596 | 597 | 598 | 599 | 600 | 601 | 602 | 603 | 604 | 605 | 606 | 607 | 608 | 609 | 610 | 611 | 612 | 613 | 614 | 615 | 616 | 617 | #0x0000_0000# 618 | 619 | 620 | 621 | 622 | 623 | 624 | 625 | 626 | 627 | 628 | 629 | 630 | 631 | 632 | 633 | 634 | 635 | 636 | 637 | 638 | 639 | 640 | 641 | 642 | 643 | 644 | 645 | 646 | 647 | 648 | 649 | 650 | #0x0100_0000# 651 | 652 | 653 | 654 | 655 | 656 | 657 | 658 | 659 | 660 | 661 | 662 | 663 | 664 | 665 | 666 | 667 | 668 | 669 | 670 | 671 | 672 | 673 | 674 | 675 | 676 | 677 | 678 | 679 | 680 | 681 | 682 | 683 | 684 | 685 | 686 | 687 | 688 | 689 | 690 | 691 | 692 | 693 | 694 | 695 | 696 | 697 | 698 | 699 | 700 | 701 | #.rodata# 702 | 703 | 704 | 705 | 706 | 707 | 708 | 709 | 710 | 711 | 712 | 713 | 714 | 715 | 716 | 717 | 718 | 719 | 720 | 721 | 722 | 723 | 724 | 725 | 726 | 727 | 728 | 729 | 730 | 731 | 732 | 733 | 734 | 735 | 736 | 737 | 738 | 739 | 740 | 741 | 742 | 743 | 744 | 745 | 746 | 747 | 748 | 749 | ## 750 | 751 | 752 | 753 | 754 | 755 | 756 | 757 | 758 | 759 | 760 | 761 | 762 | 763 | 764 | 765 | 766 | 767 | 768 | 769 | 770 | 771 | 772 | 773 | 774 | 775 | 776 | 777 | 778 | 779 | 780 | 781 | 782 | 783 | 784 | 785 | 786 | 787 | 788 | 789 | 790 | 791 | 792 | 793 | 794 | 795 | 796 | 797 | ## 798 | 799 | 800 | 801 | 802 | 803 | 804 | 805 | 806 | 807 | 808 | 809 | 810 | 811 | 812 | 813 | 814 | 815 | 816 | 817 | 818 | 819 | 820 | 821 | 822 | 823 | 824 | 825 | 826 | 827 | 828 | 829 | 830 | 831 | 832 | 833 | 834 | 835 | 836 | 837 | 838 | 839 | 840 | 841 | 842 | 843 | 844 | 845 | ## 846 | 847 | 848 | 849 | 850 | 851 | 852 | 853 | 854 | 855 | 856 | 857 | 858 | 859 | 860 | 861 | 862 | 863 | 864 | 865 | 866 | 867 | 868 | 869 | 870 | 871 | 872 | 873 | 874 | 875 | #Load Location# 876 | 877 | 878 | 879 | 880 | 881 | 882 | 883 | 884 | 885 | 886 | 887 | 888 | 889 | 890 | 891 | 892 | 893 | 894 | 895 | 896 | 897 | 898 | 899 | 900 | 901 | 902 | 903 | 904 | 905 | 906 | 907 | 908 | #Runtime Location# 909 | 910 | 911 | 912 | 913 | 914 | 915 | 916 | 917 | 918 | 919 | 920 | 921 | 922 | 923 | 924 | 925 | 926 | 927 | 928 | 929 | 930 | 931 | 932 | 933 | 934 | 935 | 936 | 937 | 938 | 939 | 940 | 941 | #Both Load and Runtime Location# 942 | 943 | 944 | 945 | 946 | 947 | 948 | 949 | 950 | 951 | 952 | 953 | 954 | 955 | 956 | 957 | 958 | 959 | 960 | 961 | 962 | 963 | 964 | 965 | 966 | 967 | 968 | 969 | 970 | 971 | 972 | 973 | 974 | 975 | 976 | 977 | 978 | 979 | 980 | 981 | 982 | 983 | 984 | 985 | 986 | 987 | 988 | 989 | 990 | 991 | 992 | #vectors# 993 | 994 | 995 | 996 | 997 | 998 | 999 | 1000 | 1001 | 1002 | 1003 | 1004 | 1005 | 1006 | 1007 | 1008 | 1009 | 1010 | 1011 | 1012 | 1013 | 1014 | 1015 | 1016 | 1017 | 1018 | 1019 | 1020 | 1021 | 1022 | 1023 | 1024 | 1025 | 1026 | 1027 | 1028 | 1029 | 1030 | 1031 | 1032 | 1033 | 1034 | 1035 | 1036 | 1037 | 1038 | 1039 | 1040 | #.text# 1041 | 1042 | 1043 | 1044 | 1045 | 1046 | 1047 | 1048 | 1049 | 1050 | 1051 | 1052 | 1053 | 1054 | 1055 | 1056 | 1057 | 1058 | 1059 | 1060 | 1061 | 1062 | -------------------------------------------------------------------------------- /docbook.conf: -------------------------------------------------------------------------------- 1 | [listingblock] 2 | {title} 3 | 4 | | 5 | 6 | {title#} -------------------------------------------------------------------------------- /docbook.xsl: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | article toc,title 19 | 20 | 21 | style.css 22 | 23 | 24 | 25 | 32 | 33 | 0pt 34 | 35 | 36 | figure before 37 | example before 38 | equation before 39 | table before 40 | procedure before 41 | 42 | 43 | 45 | 46 | 47 | always 48 | 49 | 50 | 51 | 0.4em 52 | 0.4em 53 | 0.4em 54 | 0.4em 55 | 0.4em 56 | 0.4em 57 | 58 | 59 | 60 | 0.4em 61 | 0.4em 62 | 0.4em 63 | 0.4em 64 | 0.4em 65 | 0.4em 66 | 67 | 68 | 69 | 70 | 1 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | The shade.verbatim parameter is deprecated. 128 | Use CSS instead, 129 | 130 | 131 | for example: pre. 132 | 133 | { background-color: #E0E0E0; } 134 | 135 | 136 | 137 | 138 | 142 | 143 | 144 | 145 |

146 | 	
147 | 	  
148 | 	
149 |       
150 |
151 | 152 |

153 | 	
154 |       
155 |
156 |
157 |
158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 |
182 | 183 | Fork me on GitHub 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 |
207 | 208 | 209 | 210 |
211 | 212 |
213 | -------------------------------------------------------------------------------- /flash-ram-mm.dia: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | #A4# 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | ## 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | ## 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | #Flash (16 MB)# 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | #RAM (64 MB)# 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | 261 | 262 | 263 | 264 | 265 | 266 | 267 | 268 | #0x0000_0000# 269 | 270 | 271 | 272 | 273 | 274 | 275 | 276 | 277 | 278 | 279 | 280 | 281 | 282 | 283 | 284 | 285 | 286 | 287 | 288 | 289 | 290 | 291 | 292 | 293 | 294 | 295 | 296 | 297 | 298 | 299 | 300 | 301 | #0x0100_0000# 302 | 303 | 304 | 305 | 306 | 307 | 308 | 309 | 310 | 311 | 312 | 313 | 314 | 315 | 316 | 317 | 318 | 319 | 320 | 321 | 322 | 323 | 324 | 325 | 326 | 327 | 328 | 329 | 330 | 331 | 332 | 333 | 334 | #0xA000_0000# 335 | 336 | 337 | 338 | 339 | 340 | 341 | 342 | 343 | 344 | 345 | 346 | 347 | 348 | 349 | 350 | 351 | 352 | 353 | 354 | 355 | 356 | 357 | 358 | 359 | 360 | 361 | 362 | 363 | 364 | 365 | 366 | 367 | #0xA400_0000# 368 | 369 | 370 | 371 | 372 | 373 | 374 | 375 | 376 | 377 | 378 | 379 | 380 | 381 | 382 | 383 | 384 | 385 | 386 | 387 | 388 | 389 | 390 | 391 | 392 | -------------------------------------------------------------------------------- /gnu-eprog-revhistory.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 0.1.0 5 | Wed, 13 May 2009 00:00:00 +0530 6 | BVK 7 | Initial release. 8 | 9 | 10 | 11 | 0.2.0 12 | Thu, 14 May 2009 00:00:00 +0530 13 | BVK 14 | Created C startup section. Improvised introduction section. 15 | 16 | 17 | 18 | 0.3.0 19 | Sun, 17 May 2009 00:00:00 +0530 20 | BVK 21 | Added placement of read-only data, when compiling C programs. 22 | 23 | 24 | 25 | 0.4.0 26 | Sun, 17 May 2009 00:00:00 +0530 27 | BVK 28 | Code fixes reported by Goodwealth Chu and Jesus Vicenti 29 | 30 | 31 | 32 | 0.5.0 33 | Sun, 19 Sep 2011 00:00:00 +0530 34 | BVK 35 | Typo fixes reported by Jeffrey Antony, Jonathan Grant and David LeBlanc. 36 | 37 | 38 | 39 | 0.6.0 40 | Sun, 2 Mar 2013 00:00:00 +0530 41 | BVK 42 | 43 | Contributing section updated with the new location of the 44 | gnu-eprog source repository. Qemu installation updated with 45 | package installation for Squeeze and Wheezy. Grammar and typo 46 | fixes in the text. 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /images/blank.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bravegnu/gnu-eprog/903cfc80c0396c5334ff75ae13704db15935e0c5/images/blank.png -------------------------------------------------------------------------------- /images/caution.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bravegnu/gnu-eprog/903cfc80c0396c5334ff75ae13704db15935e0c5/images/caution.png -------------------------------------------------------------------------------- /images/caution.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | ]> 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /images/draft.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bravegnu/gnu-eprog/903cfc80c0396c5334ff75ae13704db15935e0c5/images/draft.png -------------------------------------------------------------------------------- /images/home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bravegnu/gnu-eprog/903cfc80c0396c5334ff75ae13704db15935e0c5/images/home.png -------------------------------------------------------------------------------- /images/home.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 18 | 20 | 28 | 32 | 33 | 37 | 38 | 39 | 40 | 59 | 61 | 62 | 64 | image/svg+xml 65 | 67 | 68 | 69 | 70 | 74 | 77 | 87 | 88 | 89 | 97 | 101 | 102 | 106 | 107 | 108 | 109 | 113 | 114 | 115 | 116 | 117 | -------------------------------------------------------------------------------- /images/important.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bravegnu/gnu-eprog/903cfc80c0396c5334ff75ae13704db15935e0c5/images/important.png -------------------------------------------------------------------------------- /images/important.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | ]> 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /images/next.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bravegnu/gnu-eprog/903cfc80c0396c5334ff75ae13704db15935e0c5/images/next.png -------------------------------------------------------------------------------- /images/next.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 18 | 20 | 28 | 32 | 33 | 37 | 38 | 39 | 40 | 59 | 61 | 62 | 64 | image/svg+xml 65 | 67 | 68 | 69 | 70 | 74 | 77 | 87 | 88 | 95 | 99 | 100 | 104 | 105 | 106 | 107 | 111 | 112 | 113 | 114 | 115 | -------------------------------------------------------------------------------- /images/note.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bravegnu/gnu-eprog/903cfc80c0396c5334ff75ae13704db15935e0c5/images/note.png -------------------------------------------------------------------------------- /images/note.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | image/svg+xml 24 | 25 | 26 | 27 | 28 | 29 | 47 | 54 | 57 | 61 | 65 | 69 | 73 | 77 | 78 | 81 | 85 | 86 | -------------------------------------------------------------------------------- /images/prev.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bravegnu/gnu-eprog/903cfc80c0396c5334ff75ae13704db15935e0c5/images/prev.png -------------------------------------------------------------------------------- /images/prev.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 18 | 20 | 28 | 32 | 33 | 37 | 38 | 39 | 40 | 59 | 61 | 62 | 64 | image/svg+xml 65 | 67 | 68 | 69 | 70 | 74 | 77 | 87 | 88 | 89 | 97 | 101 | 102 | 106 | 107 | 108 | 109 | 113 | 114 | 115 | 116 | 117 | -------------------------------------------------------------------------------- /images/tip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bravegnu/gnu-eprog/903cfc80c0396c5334ff75ae13704db15935e0c5/images/tip.png -------------------------------------------------------------------------------- /images/tip.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | image/svg+xml 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 56 | 78 | 81 | 85 | 86 | -------------------------------------------------------------------------------- /images/toc-blank.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bravegnu/gnu-eprog/903cfc80c0396c5334ff75ae13704db15935e0c5/images/toc-blank.png -------------------------------------------------------------------------------- /images/toc-minus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bravegnu/gnu-eprog/903cfc80c0396c5334ff75ae13704db15935e0c5/images/toc-minus.png -------------------------------------------------------------------------------- /images/toc-plus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bravegnu/gnu-eprog/903cfc80c0396c5334ff75ae13704db15935e0c5/images/toc-plus.png -------------------------------------------------------------------------------- /images/up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bravegnu/gnu-eprog/903cfc80c0396c5334ff75ae13704db15935e0c5/images/up.png -------------------------------------------------------------------------------- /images/up.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | ]> 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /images/warning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bravegnu/gnu-eprog/903cfc80c0396c5334ff75ae13704db15935e0c5/images/warning.png -------------------------------------------------------------------------------- /images/warning.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | ]> 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /linker.dia: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | #A4# 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | 261 | 262 | 263 | 264 | 265 | 266 | 267 | 268 | 269 | 270 | 271 | 272 | 273 | 274 | 275 | 276 | 277 | 278 | 279 | 280 | 281 | 282 | 283 | 284 | 285 | 286 | 287 | 288 | 289 | 290 | 291 | 292 | 293 | 294 | 295 | 296 | 297 | 298 | 299 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 309 | 310 | 311 | 312 | 313 | 314 | 315 | 316 | 317 | 318 | 319 | 320 | 321 | 322 | 323 | 324 | 325 | 326 | 327 | 328 | 329 | 330 | 331 | 332 | 333 | 334 | 335 | 336 | 337 | 338 | 339 | 340 | 341 | 342 | 343 | 344 | 345 | 346 | 347 | 348 | 349 | 350 | 351 | 352 | 353 | 354 | 355 | 356 | 357 | 358 | 359 | 360 | 361 | 362 | 363 | 364 | 365 | 366 | 367 | 368 | #a.s# 369 | 370 | 371 | 372 | 373 | 374 | 375 | 376 | 377 | 378 | 379 | 380 | 381 | 382 | 383 | 384 | 385 | 386 | 387 | 388 | 389 | 390 | 391 | 392 | 393 | 394 | 395 | 396 | 397 | 398 | 399 | 400 | 401 | #b.s# 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 419 | 420 | 421 | 422 | 423 | 424 | 425 | 426 | 427 | 428 | 429 | 430 | 431 | 432 | 433 | 434 | #c.s# 435 | 436 | 437 | 438 | 439 | 440 | 441 | 442 | 443 | 444 | 445 | 446 | 447 | 448 | 449 | 450 | 451 | 452 | 453 | 454 | 455 | 456 | 457 | 458 | 459 | 460 | 461 | 462 | 463 | 464 | 465 | 466 | 467 | #a.o# 468 | 469 | 470 | 471 | 472 | 473 | 474 | 475 | 476 | 477 | 478 | 479 | 480 | 481 | 482 | 483 | 484 | 485 | 486 | 487 | 488 | 489 | 490 | 491 | 492 | 493 | 494 | 495 | 496 | 497 | 498 | 499 | 500 | #b.o# 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 509 | 510 | 511 | 512 | 513 | 514 | 515 | 516 | 517 | 518 | 519 | 520 | 521 | 522 | 523 | 524 | 525 | 526 | 527 | 528 | 529 | 530 | 531 | 532 | 533 | #c.o# 534 | 535 | 536 | 537 | 538 | 539 | 540 | 541 | 542 | 543 | 544 | 545 | 546 | 547 | 548 | 549 | 550 | 551 | 552 | 553 | 554 | 555 | 556 | 557 | 558 | 559 | 560 | 561 | 562 | 563 | 564 | 565 | 566 | #abc# 567 | 568 | 569 | 570 | 571 | 572 | 573 | 574 | 575 | 576 | 577 | 578 | 579 | 580 | 581 | 582 | 583 | 584 | 585 | 586 | 587 | 588 | 589 | 590 | 591 | 592 | 593 | 594 | 595 | 596 | 597 | 598 | 599 | 600 | 601 | 602 | 603 | 604 | 605 | 606 | 607 | 608 | 609 | 610 | 611 | 612 | 613 | 614 | 615 | 616 | #assembler# 617 | 618 | 619 | 620 | 621 | 622 | 623 | 624 | 625 | 626 | 627 | 628 | 629 | 630 | 631 | 632 | 633 | 634 | 635 | 636 | 637 | 638 | 639 | 640 | 641 | 642 | 643 | 644 | 645 | 646 | 647 | 648 | 649 | 650 | 651 | 652 | 653 | 654 | 655 | 656 | 657 | 658 | 659 | 660 | 661 | #assembler# 662 | 663 | 664 | 665 | 666 | 667 | 668 | 669 | 670 | 671 | 672 | 673 | 674 | 675 | 676 | 677 | 678 | 679 | 680 | 681 | 682 | 683 | 684 | 685 | 686 | 687 | 688 | 689 | 690 | 691 | 692 | 693 | 694 | 695 | 696 | 697 | 698 | 699 | 700 | 701 | 702 | 703 | 704 | 705 | 706 | #assembler# 707 | 708 | 709 | 710 | 711 | 712 | 713 | 714 | 715 | 716 | 717 | 718 | 719 | 720 | 721 | 722 | 723 | 724 | 725 | 726 | 727 | 728 | 729 | 730 | 731 | 732 | 733 | 734 | 735 | 736 | 737 | 738 | 739 | 740 | 741 | 742 | 743 | 744 | 745 | 746 | 747 | 748 | 749 | 750 | 751 | #linker# 752 | 753 | 754 | 755 | 756 | 757 | 758 | 759 | 760 | 761 | 762 | 763 | 764 | 765 | 766 | 767 | 768 | 769 | 770 | 771 | 772 | 773 | 774 | -------------------------------------------------------------------------------- /relocation.dia: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | #A4# 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | # strcpy: ldrb r0, [r1], #1 150 | strb r0, [r2], #1 151 | cmp r0, 0 152 | bne strcpy 153 | mov pc, lr# 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | #a.s (.text)# 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | #b.s (.text)# 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | 261 | 262 | 263 | 264 | # strlen: ldrb r0, [r1], #1 265 | add r2, #1 266 | cmp r0, 0 267 | bne strlen 268 | mov pc, lr# 269 | 270 | 271 | 272 | 273 | 274 | 275 | 276 | 277 | 278 | 279 | 280 | 281 | 282 | 283 | 284 | 285 | 286 | 287 | 288 | 289 | 290 | 291 | 292 | 293 | 294 | 295 | 296 | 297 | 298 | 299 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 309 | 310 | 311 | 312 | 313 | #0000_0000 strcpy: ldrb r0, [r1], #1 314 | 0000_0004 strb r0, [r2], #1 315 | 0000_0008 cmp r0, 0 316 | 0000_000C bne strcpy 317 | 0000_0010 mov pc, lr# 318 | 319 | 320 | 321 | 322 | 323 | 324 | 325 | 326 | 327 | 328 | 329 | 330 | 331 | 332 | 333 | 334 | 335 | 336 | 337 | 338 | 339 | 340 | 341 | 342 | 343 | 344 | 345 | 346 | 347 | 348 | 349 | 350 | 351 | 352 | 353 | 354 | 355 | 356 | 357 | 358 | 359 | 360 | 361 | 362 | #0000_0000 strlen: ldrb r0, [r1], #1 363 | 0000_0004 add r2, #1 364 | 0000_0008 cmp r0, 0 365 | 0000_000C bne strlen 366 | 0000_0010 mov pc, lr# 367 | 368 | 369 | 370 | 371 | 372 | 373 | 374 | 375 | 376 | 377 | 378 | 379 | 380 | 381 | 382 | 383 | 384 | 385 | 386 | 387 | 388 | 389 | 390 | 391 | 392 | 393 | 394 | 395 | 396 | 397 | 398 | 399 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 419 | 420 | 421 | 422 | 423 | 424 | 425 | 426 | 427 | 428 | 429 | 430 | 431 | 432 | 433 | 434 | 435 | 436 | 437 | 438 | 439 | 440 | 441 | 442 | 443 | 444 | 445 | 446 | 447 | 448 | 449 | 450 | 451 | 452 | 453 | 454 | 455 | 456 | 457 | 458 | 459 | 460 | 461 | 462 | 463 | 464 | 465 | 466 | 467 | 468 | 469 | 470 | 471 | 472 | 473 | 474 | 475 | 476 | 477 | 478 | 479 | 480 | 481 | 482 | 483 | 484 | 485 | 486 | 487 | 488 | 489 | 490 | 491 | 492 | 493 | 494 | 495 | 496 | 497 | 498 | 499 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 509 | 510 | 511 | 512 | 513 | 514 | 515 | 516 | 517 | 518 | 519 | 520 | 521 | 522 | 523 | 524 | 525 | 526 | 527 | 528 | 529 | 530 | 531 | 532 | 533 | 534 | 535 | 536 | 537 | 538 | 539 | 540 | 541 | 542 | 543 | 544 | 545 | 546 | 547 | 548 | 549 | 550 | #Assembler# 551 | 552 | 553 | 554 | 555 | 556 | 557 | 558 | 559 | 560 | 561 | 562 | 563 | 564 | 565 | 566 | 567 | 568 | 569 | 570 | 571 | 572 | 573 | 574 | 575 | 576 | 577 | 578 | 579 | 580 | 581 | 582 | 583 | #Assembler# 584 | 585 | 586 | 587 | 588 | 589 | 590 | 591 | 592 | 593 | 594 | 595 | 596 | 597 | 598 | 599 | 600 | 601 | 602 | 603 | 604 | 605 | 606 | 607 | 608 | 609 | 610 | 611 | 612 | 613 | 614 | 615 | 616 | #Merging .text sections from two files# 617 | 618 | 619 | 620 | 621 | 622 | 623 | 624 | 625 | 626 | 627 | 628 | 629 | 630 | 631 | 632 | 633 | 634 | 635 | 636 | 637 | 638 | 639 | 640 | 641 | 642 | 643 | 644 | 645 | 646 | 647 | 648 | 649 | #Placing .text section at 0x2000_0000 # 650 | 651 | 652 | 653 | 654 | 655 | 656 | 657 | 658 | 659 | 660 | 661 | 662 | 663 | 664 | 665 | 666 | 667 | 668 | 669 | 670 | 671 | 672 | 673 | 674 | 675 | 676 | 677 | 678 | 679 | 680 | 681 | 682 | 683 | 684 | 685 | 686 | 687 | 688 | 689 | 690 | 691 | 692 | 693 | 694 | 695 | 696 | 697 | 698 | 699 | 700 | 701 | 702 | 703 | 704 | 705 | 706 | 707 | 708 | 709 | 710 | 711 | 712 | 713 | 714 | 715 | 716 | 717 | 718 | 719 | 720 | 721 | 722 | 723 | 724 | 725 | 726 | 727 | 728 | 729 | 730 | 731 | 732 | 733 | 734 | 735 | 736 | 737 | 738 | 739 | 740 | 741 | 742 | 743 | 744 | 745 | 746 | 747 | 748 | 749 | 750 | 751 | 752 | 753 | 754 | 755 | #2000_0000 strcpy: ldrb r0, [r1], #1 756 | 2000_0004 strb r0, [r2], #1 757 | 2000_0008 cmp r0, 0 758 | 2000_000C bne strcpy 759 | 2000_0010 mov pc, lr 760 | 2000_0014 strlen: ldrb r0, [r1], #1 761 | 2000_0018 add r2, #1 762 | 2000_001C cmp r0, 0 763 | 2000_0020 bne strlen 764 | 2000_0024 mov pc, lr# 765 | 766 | 767 | 768 | 769 | 770 | 771 | 772 | 773 | 774 | 775 | 776 | 777 | 778 | 779 | 780 | 781 | 782 | 783 | 784 | 785 | 786 | 787 | 788 | 789 | 790 | 791 | 792 | 793 | 794 | 795 | 796 | 797 | 798 | 799 | 800 | 801 | 802 | 803 | 804 | 805 | 806 | 807 | 808 | 809 | 810 | 811 | 812 | 813 | 814 | 815 | 816 | 817 | 818 | 819 | 820 | 821 | 822 | 823 | 824 | 825 | 826 | 827 | 828 | 829 | 830 | 831 | 832 | 833 | 834 | 835 | 836 | 837 | 838 | 839 | 840 | 841 | 842 | 843 | 844 | 845 | 846 | 847 | 848 | 849 | 850 | 851 | 852 | 853 | 854 | 855 | 856 | 857 | 858 | 859 | 860 | 861 | 862 | 863 | 864 | 865 | 866 | 867 | 868 | #Patched# 869 | 870 | 871 | 872 | 873 | 874 | 875 | 876 | 877 | 878 | 879 | 880 | 881 | 882 | 883 | 884 | 885 | 886 | 887 | 888 | 889 | 890 | 891 | 892 | 893 | 894 | 895 | 896 | 897 | 898 | 899 | 900 | 901 | 902 | 903 | 904 | 905 | 906 | 907 | 908 | 909 | 910 | 911 | 912 | 913 | 914 | 915 | 916 | 917 | 918 | 919 | 920 | 921 | 922 | 923 | 924 | 925 | 926 | 927 | 928 | 929 | 930 | 931 | 932 | 933 | 934 | 935 | 936 | 937 | 938 | 939 | 940 | 941 | 942 | 943 | 944 | 945 | 946 | 947 | 948 | 949 | 950 | 951 | 952 | 953 | 954 | 955 | 956 | 957 | 958 | 959 | 960 | 961 | 962 | 963 | 964 | 965 | 966 | 967 | 968 | 969 | 970 | 971 | 972 | 973 | 974 | 975 | #Patched# 976 | 977 | 978 | 979 | 980 | 981 | 982 | 983 | 984 | 985 | 986 | 987 | 988 | 989 | 990 | 991 | 992 | 993 | 994 | 995 | 996 | 997 | 998 | 999 | 1000 | 1001 | 1002 | 1003 | 1004 | 1005 | 1006 | 1007 | 1008 | 1009 | 1010 | 1011 | 1012 | 1013 | 1014 | 1015 | 1016 | 1017 | 1018 | 1019 | 1020 | 1021 | 1022 | 1023 | 1024 | 1025 | 1026 | 1027 | 1028 | 1029 | 1030 | 1031 | 1032 | 1033 | 1034 | 1035 | 1036 | 1037 | 1038 | 1039 | 1040 | 1041 | 1042 | 1043 | 1044 | 1045 | #New address 1046 | after merge# 1047 | 1048 | 1049 | 1050 | 1051 | 1052 | 1053 | 1054 | 1055 | 1056 | 1057 | 1058 | 1059 | 1060 | 1061 | 1062 | 1063 | 1064 | 1065 | 1066 | 1067 | 1068 | 1069 | 1070 | 1071 | 1072 | 1073 | 1074 | 1075 | 1076 | 1077 | 1078 | 1079 | 1080 | 1081 | 1082 | 1083 | 1084 | 1085 | 1086 | 1087 | 1088 | 1089 | 1090 | 1091 | 1092 | 1093 | 1094 | 1095 | 1096 | 1097 | 1098 | 1099 | 1100 | 1101 | 1102 | 1103 | 1104 | 1105 | 1106 | 1107 | 1108 | 1109 | 1110 | 1111 | 1112 | 1113 | 1114 | 1115 | 1116 | 1117 | 1118 | 1119 | 1120 | 1121 | 1122 | 1123 | #0000_0000 strcpy: ldrb r0, [r1], #1 1124 | 0000_0004 strb r0, [r2], #1 1125 | 0000_0008 cmp r0, 0 1126 | 0000_000C bne strcpy 1127 | 0000_0010 mov pc, lr 1128 | 0000_0014 strlen: ldrb r0, [r1], #1 1129 | 0000_0018 add r2, #1 1130 | 0000_001C cmp r0, 0 1131 | 0000_0020 bne strlen 1132 | 0000_0024 mov pc, lr# 1133 | 1134 | 1135 | 1136 | 1137 | 1138 | 1139 | 1140 | 1141 | 1142 | 1143 | 1144 | 1145 | 1146 | 1147 | 1148 | 1149 | 1150 | 1151 | 1152 | 1153 | 1154 | -------------------------------------------------------------------------------- /rss.xsl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | http://www.bravegnu.org/gnu-eprog/revision.rss 7 | Updates for 8 | 9 | Updates for <xsl:apply-templates select="articleinfo/title" mode="text"/> 10 | 11 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | <xsl:apply-templates select="revremark" mode="text"/> 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | -------------------------------------------------------------------------------- /sections.dia: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | #A4# 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | ## 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | #0000_0000 arr: .word 10, 20, 30, 40, 50 207 | 0000_0014 len: .word 5 208 | 0000_0018 result: .skip 4# 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | #.data section# 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | 261 | 262 | 263 | 264 | 265 | 266 | 267 | 268 | 269 | 270 | 271 | #.text section# 272 | 273 | 274 | 275 | 276 | 277 | 278 | 279 | 280 | 281 | 282 | 283 | 284 | 285 | 286 | 287 | 288 | 289 | 290 | 291 | 292 | 293 | 294 | 295 | 296 | 297 | 298 | 299 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 309 | 310 | 311 | 312 | 313 | 314 | 315 | 316 | 317 | 318 | 319 | 320 | 321 | 322 | 323 | 324 | 325 | #0000_0000 start: mov r1, #10 326 | 0000_0004 mov r2, #20 327 | 0000_0008 add r3, r2, r1 328 | 0000_000C sub r3, r2, r1# 329 | 330 | 331 | 332 | 333 | 334 | 335 | 336 | 337 | 338 | 339 | 340 | 341 | 342 | 343 | 344 | 345 | 346 | 347 | 348 | 349 | 350 | 351 | 352 | 353 | 354 | 355 | 356 | 357 | 358 | 359 | 360 | 361 | 362 | 363 | 364 | 365 | 366 | 367 | 368 | 369 | 370 | 371 | 372 | 373 | 374 | 375 | 376 | 377 | 378 | 379 | 380 | 381 | 382 | 383 | 384 | 385 | 386 | 387 | 388 | 389 | 390 | 391 | 392 | 393 | 394 | 395 | 396 | 397 | 398 | 399 | 400 | 401 | 402 | # .data 403 | arr: .word 10, 20, 30, 40, 50 404 | len: .word 5 405 | .text 406 | start: mov r1, #10 407 | mov r2, #20 408 | .data 409 | result: .skip 4 410 | .text 411 | add r3, r2, r1 412 | sub r3, r2, r1 413 | # 414 | 415 | 416 | 417 | 418 | 419 | 420 | 421 | 422 | 423 | 424 | 425 | 426 | 427 | 428 | 429 | 430 | 431 | 432 | 433 | 434 | 435 | -------------------------------------------------------------------------------- /stack.dia: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | #A4# 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | ## 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | #Global Variables# 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | #0xA000_0000# 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | #0xA400_0000# 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | 258 | 259 | #Stack# 260 | 261 | 262 | 263 | 264 | 265 | 266 | 267 | 268 | 269 | 270 | 271 | 272 | 273 | 274 | 275 | 276 | 277 | 278 | 279 | 280 | 281 | 282 | 283 | 284 | 285 | 286 | 287 | 288 | 289 | 290 | 291 | 292 | 293 | 294 | 295 | 296 | 297 | 298 | 299 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 309 | 310 | 311 | 312 | 313 | 314 | 315 | 316 | 317 | 318 | 319 | 320 | 321 | 322 | 323 | 324 | 325 | 326 | 327 | 328 | 329 | 330 | 331 | 332 | #Initial Stack 333 | Pointer# 334 | 335 | 336 | 337 | 338 | 339 | 340 | 341 | 342 | 343 | 344 | 345 | 346 | 347 | 348 | 349 | 350 | 351 | 352 | 353 | 354 | 355 | 356 | 357 | 358 | 359 | 360 | 361 | 362 | 363 | 364 | 365 | 366 | #RAM# 367 | 368 | 369 | 370 | 371 | 372 | 373 | 374 | 375 | 376 | 377 | 378 | 379 | 380 | 381 | 382 | 383 | 384 | 385 | 386 | 387 | 388 | 389 | 390 | 391 | 392 | 393 | 394 | 395 | 396 | 397 | 398 | 399 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 419 | 420 | 421 | 422 | 423 | 424 | 425 | 426 | 427 | 428 | 429 | 430 | 431 | 432 | 433 | 434 | 435 | 436 | 437 | 438 | 439 | 440 | 441 | 442 | 443 | 444 | 445 | 446 | 447 | 448 | 449 | 450 | 451 | 452 | 453 | 454 | 455 | 456 | 457 | 458 | 459 | 460 | 461 | 462 | 463 | 464 | 465 | 466 | 467 | 468 | 469 | 470 | 471 | 472 | 473 | 474 | 475 | 476 | 477 | 478 | 479 | 480 | 481 | 482 | 483 | 484 | 485 | 486 | 487 | -------------------------------------------------------------------------------- /style.css: -------------------------------------------------------------------------------- 1 | .literal { 2 | font-family: dejavusansmono, courier, monospace; 3 | font-size: 110%; 4 | } 5 | 6 | body { 7 | font-family: serif; 8 | background-color: #dddddd; 9 | margin: 0px; 10 | height: 100%; 11 | } 12 | 13 | .body { 14 | background-color: #ffffff; 15 | border-left: 1px solid black; 16 | border-right: 1px solid black; 17 | max-width: 900px; 18 | margin-left: auto; 19 | margin-right: auto; 20 | padding-left: 50px; 21 | padding-right: 50px; 22 | min-height: 100%; 23 | } 24 | 25 | .navheader { 26 | padding: 10px; 27 | } 28 | 29 | .title, .author { 30 | color: #990000; 31 | font-family: dejavusans, verdana, sans-serif; 32 | } 33 | 34 | .informaltable td, .informaltable th { 35 | border-style: none; 36 | padding-left: 1em; 37 | padding-right: 1em; 38 | } 39 | 40 | .table table td, .table table th { 41 | border-style: none; 42 | padding-left: 1em; 43 | padding-right: 1em; 44 | } 45 | 46 | h1 { 47 | font-size: 200%; 48 | } 49 | 50 | h2 { 51 | font-size: 145%; 52 | } 53 | 54 | h3 { 55 | font-size: 130%; 56 | } 57 | 58 | h4 { 59 | font-size: 100%; 60 | } 61 | 62 | a img { 63 | border: 0; 64 | } 65 | 66 | .tip, .note { 67 | border: thin solid #CCCCCC; 68 | padding: 1em; 69 | background-color: #FFFFCC; 70 | } 71 | 72 | pre code { 73 | font-family: dejavusansmono, courier, monospace; 74 | display: block; 75 | background: #eeeeee; 76 | border: thin solid #cccccc; 77 | font-size: 140%; 78 | padding: 0.5em; 79 | } 80 | 81 | pre code, 82 | .ruby .subst, 83 | .xml .title, 84 | .lisp .title { 85 | color: black; 86 | } 87 | 88 | .string, 89 | .title, 90 | .parent, 91 | .tag .attribute .value, 92 | .rules .value, 93 | .rules .value .number, 94 | .preprocessor, 95 | .ruby .symbol, 96 | .instancevar, 97 | .aggregate, 98 | .template_tag, 99 | .django .variable, 100 | .smalltalk .class, 101 | .addition, 102 | .flow, 103 | .stream, 104 | .bash .variable, 105 | .apache .tag, 106 | .apache .cbracket { 107 | color: #800; 108 | } 109 | 110 | .comment, 111 | .annotation, 112 | .template_comment, 113 | .diff .header, 114 | .chunk { 115 | color: #888; 116 | } 117 | 118 | .hl-number, 119 | .number, 120 | .date, 121 | .regexp, 122 | .literal, 123 | .smalltalk .symbol, 124 | .smalltalk .char, 125 | .change { 126 | color: #080; 127 | } 128 | 129 | .label, 130 | .javadoc, 131 | .ruby .string, 132 | .decorator, 133 | .filter .argument, 134 | .localvars, 135 | .array, 136 | .attr_selector, 137 | .pi, 138 | .doctype, 139 | .deletion, 140 | .envvar, 141 | .shebang, 142 | .apache .sqbracket { 143 | color: #88F; 144 | } 145 | 146 | .keyword, 147 | .id, 148 | .phpdoc, 149 | .title, 150 | .vbscript .built_in, 151 | .rsl .built_in, 152 | .cpp .built_in, 153 | .avrasm .built_in, 154 | .armasm .built_in, 155 | .aggregate, 156 | .smalltalk .class, 157 | .winutils, 158 | .bash .variable, 159 | .apache .tag { 160 | font-weight: bold; 161 | } 162 | 163 | .html .css, 164 | .html .javascript, 165 | .html .vbscript { 166 | opacity: 0.5; 167 | } 168 | 169 | /* Github Banner */ 170 | 171 | #forkongithub a { 172 | background:#000; 173 | color:#fff; 174 | text-decoration:none; 175 | font-family:arial, sans-serif; 176 | text-align:center; 177 | font-weight:bold; 178 | padding:5px 40px; 179 | font-size:1rem; 180 | line-height:2rem; 181 | position:relative; 182 | transition:0.5s; 183 | } 184 | 185 | #forkongithub a:hover { 186 | background:#060; 187 | color:#fff; 188 | } 189 | 190 | #forkongithub a::before,#forkongithub a::after { 191 | content:""; 192 | width:100%; 193 | display:block; 194 | position:absolute; 195 | top:1px; 196 | left:0; 197 | height:1px; 198 | background:#fff; 199 | } 200 | 201 | #forkongithub a::after { 202 | bottom:1px; 203 | top:auto; 204 | } 205 | 206 | @media screen and (min-width:1300px) { 207 | #forkongithub { 208 | position:absolute; 209 | display:block; 210 | top:0; 211 | right:0; 212 | width:200px; 213 | overflow:hidden; 214 | height:200px; 215 | } 216 | 217 | #forkongithub a { 218 | width:200px; 219 | position:absolute; 220 | top:60px; 221 | right:-60px; 222 | transform:rotate(45deg);-webkit-transform:rotate(45deg); 223 | box-shadow:4px 4px 10px rgba(0,0,0,0.8); 224 | } 225 | } -------------------------------------------------------------------------------- /upload.lftp: -------------------------------------------------------------------------------- 1 | set ftp:ssl-allow no 2 | open bravegnu.org 3 | user bravegnu 4 | mirror -e --parallel=4 --exclude=.hg --verbose=3 -R . /public_html/gnu-eprog/ 5 | !touch .last 6 | exit 7 | -------------------------------------------------------------------------------- /xslthl-config.xml: -------------------------------------------------------------------------------- 1 | 2 | 29 | 30 | 31 | 32 | 33 | --------------------------------------------------------------------------------